src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue
@@ -6,28 +6,39 @@
        <div class="table-page-search-wrapper">
          <a-form layout="inline" @keyup.enter.native="searchQuery">
            <a-row :gutter="24">
              <a-col :md="4" :sm="4">
              <a-col :md="5" :sm="5">
                <a-form-item label="设备类型">
                  <a-select placeholder="请选择设备类型" :triggerChange="true" v-model="queryParam.equipmentType"
                            :allowClear="true">
                    <a-select-option v-for='item in selectList' :key='item.id' :value='item.equipmentTypeName'>
                      {{item.equipmentTypeName}}
                  <a-select
                    :value="queryParams.equipmentType"
                    mode="multiple"
                    placeholder="请选择设备类型"
                    allow-clear
                    :maxTagCount="1"
                    @change="selectChange($event,'equipmentType')"
                  >
                    <a-select-option v-for="(item,index) in equipmentTypeList" :value="item.value" :key="index">
                      {{item.label}}
                    </a-select-option>
                  </a-select>
                </a-form-item>
              </a-col>
              <a-col :md="4" :sm="4">
              <a-col :md="5" :sm="5">
                <a-form-item label="驱动类型">
                  <a-auto-complete
                    v-model="queryParam.driveType"
                    :data-source="driveTypeList"
                  <a-select
                    :value="queryParams.driveType"
                    mode="multiple"
                    placeholder="请选择驱动类型"
                    :filter-option="filterOption"
                    :allowClear="true"
                  />
                    allow-clear
                    :maxTagCount="1"
                    @change="selectChange($event,'driveType')"
                  >
                    <a-select-option v-for="(item,index) in driveTypeList" :value="item.value" :key="index">
                      {{item.label}}
                    </a-select-option>
                  </a-select>
                </a-form-item>
              </a-col>
              <a-col :md="6" :sm="6" :xs="6">
              <a-col :md="4" :sm="4" :xs="4">
                <a-form-item label="时间">
                  <a-range-picker @change="dateParamChange" :disabledDate="disabledDate" format="YYYYMMDD"
                                  v-model="dates" :allowClear="false"/>
@@ -66,17 +77,53 @@
            </a-row>
            <a-row :gutter="24" v-if="toggleSearchStatus">
              <a-col :md="4" :sm="4" :xs="4">
                <a-form-item label="设备级别">
                  <j-dict-select-tag placeholder="请选择设备级别" dictCode="device_level" v-model="queryParam.deviceLevel"
                                     allow-clear/>
              <a-col :md="5" :sm="5" :xs="5">
                <a-form-item label="设备种类">
                  <a-select
                    :value="queryParams.deviceCategory"
                    mode="multiple"
                    placeholder="请选择设备种类"
                    allow-clear
                    :maxTagCount="1"
                    @change="selectChange($event,'deviceCategory')"
                  >
                    <a-select-option v-for="(item,index) in device_category_list" :value="item.value" :key="index">
                      {{item.label}}
                    </a-select-option>
                  </a-select>
                </a-form-item>
              </a-col>
              <a-col :md="4" :sm="4" :xs="4">
                <a-form-item label="设备种类">
                  <j-dict-select-tag placeholder="请选择设备种类" dictCode="device_category"
                                     v-model="queryParam.deviceCategory"
                                     allow-clear/>
              <a-col :md="5" :sm="5" :xs="5">
                <a-form-item label="设备级别">
                  <a-select
                    :value="queryParams.deviceLevel"
                    mode="multiple"
                    placeholder="请选择设备级别"
                    allow-clear
                    :maxTagCount="1"
                    @change="selectChange($event,'deviceLevel')"
                  >
                    <a-select-option v-for="(item,index) in device_level_list" :value="item.value" :key="index">
                      {{item.label}}
                    </a-select-option>
                  </a-select>
                </a-form-item>
              </a-col>
              <a-col :md="5" :sm="5" :xs="5">
                <a-form-item label="重要程度">
                  <a-select
                    :value="queryParams.deviceImportanceLevel"
                    mode="multiple"
                    placeholder="请选择设备重要程度"
                    allow-clear
                    :maxTagCount="1"
                    @change="selectChange($event,'deviceImportanceLevel')"
                  >
                    <a-select-option v-for="(item,index) in device_importance_level_list" :value="item.value"
                                     :key="index">
                      {{item.label}}
                    </a-select-option>
                  </a-select>
                </a-form-item>
              </a-col>
            </a-row>
@@ -111,6 +158,7 @@
          </a-form>
        </div>
      </div>
      <a-spin :spinning="spinning">
        <div class="container" id="EfficiencyShift" style="margin-top: 20px;">
          <div class="table2">
@@ -118,7 +166,9 @@
                   v-if="dataList.length>0">
              <thead>
              <tr class="thead fixed equipname">
                <th class="thgu dong1 name" rowspan="2" style="min-width: 50px; max-width: 50px;width: 50px;height: 66px">公司</th>
                <th class="thgu dong1 name" rowspan="2"
                    style="min-width: 50px; max-width: 50px;width: 50px;height: 66px">公司
                </th>
                <th class="thgu dong2 name" rowspan="2" style="min-width: 50px; max-width: 50px;width: 50px;">车间</th>
                <th class="thgu dong3 name" rowspan="2" style="min-width: 50px; max-width: 50px;width: 50px;">工段</th>
                <th class="thgu dong4 name" rowspan="2" style="min-width: 100px; max-width: 100px;width: 100px;">设备编号
@@ -177,7 +227,9 @@
                </template>
                <!--<td>{{item.tierType}}</td>-->
                <template v-for="(tableHead, index) in item.dataList">
                  <td :style="{background:tableHead.color }" v-if="checkedList.indexOf('lyl') > -1">{{tableHead.utilizationRate | numFilter}}</td>
                  <td :style="{background:tableHead.color }" v-if="checkedList.indexOf('lyl') > -1">
                    {{tableHead.utilizationRate | numFilter}}
                  </td>
                  <td :style="{background:tableHead.color }" v-if="checkedList.indexOf('kjsj') > -1">
                    {{tableHead.openLong | getFormattedTime}}
                  </td>
@@ -220,10 +272,20 @@
        allowClear: true,
        allowClearSu: true,
        dates: [],
        selectList: [],
        equipmentTypeList: [],
        driveTypeList: [],
        device_level_list: [],
        device_category_list: [],
        device_importance_level_list: [],
        identifying: [],
        queryParam: {},
        queryParams: {
          equipmentType: [],
          driveType: [],
          deviceLevel: [],
          deviceCategory: [],
          deviceImportanceLevel: []
        },
        queryParamEquip: {},
        queryParamPeople: {},
        efficiencyOptions: [
@@ -265,6 +327,9 @@
      this.loadData()
      this.queryGroup()
      this.getDriveTypeByApi()
      this.initDictData('device_level')
      this.initDictData('device_category')
      this.initDictData('device_importance_level')
    },
    mounted() {
      window.addEventListener('resize', this.handleWindowResize)
@@ -324,6 +389,23 @@
      }
    },
    methods: {
      initDictData(dictCode) {
        // //优先从缓存中读取字典配置
        if (getDictItemsFromCache(dictCode)) {
          this[dictCode + '_list'] = getDictItemsFromCache(dictCode)
          return
        }
        //根据字典Code, 初始化字典数组
        ajaxGetDictItems(dictCode, null).then((res) => {
          if (res.success) {
            this[dictCode + '_list'] = res.result
            return
          }
        })
      },
      selectChange(value, key) {
        this.queryParams[key] = value
      },
      checkSameData(dataList) {
        let cache = {}  //存储的是键是kclx 的值,值是kclx 在indeces中数组的下标
        let indices = []  //数组中每一个值是一个数组,数组中的每一个元素是原数组中相同kclx的下标
@@ -509,6 +591,11 @@
          this.queryParam.parentId = this.queryParamPeople.parentId
          this.queryParam.equipmentId = ''
        }
        Object.keys(this.queryParams).forEach(item => {
          this.queryParam[item] = this.queryParams[item].join()
          // 此处为保证接口参数不多余,可省略
          if (this.queryParams[item].length === 0) delete this.queryParam[item]
        })
        this.loadData()
        // this.onClearSelected()
      },
@@ -523,6 +610,12 @@
        this.queryParam.typeTree = this.typeTree
        this.queryParam.parentId = this.typeParent
        this.queryParam.equipmentId = this.typeEquipment
        this.queryParams = {
          equipmentType: [],
          driveType: [],
          deviceLevel: [],
          deviceCategory: []
        }
        this.loadData()
        // this.onClearSelected()
      },
@@ -537,7 +630,7 @@
            if (res.result.mdcEfficiencyList && !res.result.mdcEfficiencyList.length) {
              this.$notification.info({
                message: '消息',
                description: '暂无该设备类型数据'
                description: '暂无该类型数据'
              })
            }
            this.checkSameData(this.dataList)
@@ -553,19 +646,18 @@
      queryGroup() {
        getAction(this.url.queryEquipmentType).then(res => {
          if (res.success) {
            this.selectList = res.result
            // this.selectList = res.result.map((item, index, arr) => {
            //   return { label: item.id, value: item.equipmentTypeName + '' }
            // })
            this.equipmentTypeList = res.result.map(item => {
              return {
                label: item.equipmentTypeName,
                value: item.equipmentTypeName
              }
            })
          } else {
            // this.$message.warning(res.message)
            this.$notification.warning({
              message: '消息',
              description: res.message
            })
          }
        }).finally(() => {
          this.loading = false
        })
      },
@@ -574,20 +666,8 @@
       */
      getDriveTypeByApi() {
        api.getDriveTypeApi().then((res) => {
          this.driveTypeList = res.result.map(item => item.value)
          if (res.success) this.driveTypeList = res.result
        })
      },
      /**
       * 联想输入框筛选功能
       * @param input 输入的内容
       * @param option 配置
       * @returns {boolean} 判断是否筛选
       */
      filterOption(input, option) {
        return (
          option.componentOptions.children[0].text.toUpperCase().indexOf(input.toUpperCase()) >= 0
        )
      },
      /**