vue中季度选择器

240 阅读1分钟

一.data中定义

valueArr: ['-01', '-02', '-03', '-04'], //接口接受的格式(一个季度传一个整体时间)

showSeason: false,

season: '1',

year: new Date().getFullYear(),

showValue: '',

二.代码

 <div v-if="activeTyp == 'J'">
    <mark
        style="position:absolute;top:0;bottom:0;left:0;right:0;background:rgba(0,0,0,0);z-index:999;cursor: pointer;"
        v-show="showSeason"
        @click.stop="showSeason=!showSeason"
      ></mark>
      <el-input
        size="mini"
        placeholder="请选择季度"
        v-model="showValue"
        style="width:138px;"
        @focus="showSeason=true"
      >
        <i slot="prefix" class="el-input__icon el-icon-date"></i>
      </el-input>
      <el-card
        class="box-card"
        style="width:322px;padding: 0 3px 20px;margin-top:10px;position:fixed;z-index:9999"
        v-show="showSeason"
      >
        <div slot="header" class="clearfix" style="text-align:center;padding:0">
          <button
            type="button"
            aria-label="前一年"
            class="el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-d-arrow-left"
            @click="prev"
          ></button>
          <span role="button" class="el-date-picker__header-label">{{year}}年</span>
          <button
            type="button"
            aria-label="后一年"
            @click="next"
            class="el-picker-panel__icon-btn el-date-picker__next-btn el-icon-d-arrow-right"
          ></button>
        </div>
        <div class="text item" style="text-align:center;">
          <el-button
            type="text"
            size="medium"
            style="width:40%;color: #606266;float:left;"
            @click="selectSeason(0)"
          >第一季度</el-button>
          <el-button
            type="text"
            size="medium"
            style="float:right;width:40%;color: #606266;"
            @click="selectSeason(1)"
          >第二季度</el-button>
        </div>
        <div class="text item" style="text-align:center;">
          <el-button
            type="text"
            size="medium"
            style="width:40%;color: #606266;float:left;"
            @click="selectSeason(2)"
          >第三季度</el-button>
          <el-button
            type="text"
            size="medium"
            style="float:right;width:40%;color: #606266;"
            @click="selectSeason(3)"
          >第四季度</el-button>
        </div>
      </el-card>
    </div>

三.点击事件

prev() {

this.year = this.year - 1

},

next() {

this.year = this.year + 1

},

// 季度选择

selectSeason(i) {

this.season = i + 1

this.showSeason = ${this.year} + this.valueArr[i]

this.showSeason = false

this.showValue = ${this.year}年第${this.season}季度

},