src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue
@@ -40,7 +40,9 @@
              </a-col>
              <a-col :md="4" :sm="4" :xs="4">
                <a-form-item label="时间">
                  <a-range-picker @change="dateParamChange" :disabledDate="disabledDate" format="YYYYMMDD"
                  <a-range-picker @change="dateParamChange" :disabledDate="disabledDate"
                                  @calendarChange="handleCalendarChange" @openChange="handleCalendarOpenChange"
                                  format="YYYYMMDD"
                                  v-model="dates" :allowClear="false"/>
                </a-form-item>
              </a-col>
@@ -94,16 +96,14 @@
                </a-form-item>
              </a-col>
              <a-col :md="5" :sm="5" :xs="5">
                <a-form-item label="设备种类">
                <a-form-item label="重要程度">
                  <a-select
                    :value="queryParams.deviceCategory"
                    mode="multiple"
                    placeholder="请选择设备种类"
                    v-model="queryParam.deviceImportanceLevel"
                    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">
                    <a-select-option v-for="(item,index) in device_importance_level_list" :value="item.value"
                                     :key="index">
                      {{item.label}}
                    </a-select-option>
                  </a-select>
@@ -119,12 +119,13 @@
                    <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
                    <a-button type="primary" @click="searchReset" icon="reload">重置</a-button>
                    <a-button type="primary" @click="exportExcel" icon="download">导出</a-button>
                    <a-button type="primary" @click="handleShowFeedbackModal" icon="plus"
                              v-has="'efficiencyShiftReport:feedback'">异常反馈
                    </a-button>
                    <a-button type="primary" icon="printer" v-print="'#EfficiencyShift'"
                              v-has="'efficiencyShiftReport:print'">打印
                    </a-button>
                  </a-space>
                  <a-checkbox-group :value="checkedList" :default-value="['lyl']" :options="efficiencyOptions"
                                    @change="efficiencyOptionsOnChange"/>
                </div>
                <table cellpadding="5" cellspacing="1" style="border: 1px solid darkgray;">
                  <tr>
@@ -138,9 +139,17 @@
                </table>
              </a-col>
            </a-row>
            <a-row :gutter="24">
              <a-col>
                <a-checkbox-group :value="checkedList" :default-value="['lyl']" :options="efficiencyOptions"
                                  @change="efficiencyOptionsOnChange"/>
              </a-col>
            </a-row>
          </a-form>
        </div>
      </div>
      <a-spin :spinning="spinning">
        <div class="container" id="EfficiencyShift" style="margin-top: 20px;">
          <div class="table2">
@@ -148,7 +157,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;">设备编号
@@ -157,7 +168,9 @@
                </th>
                <th class="thgu dong6 name" rowspan="2" style="min-width: 100px; max-width: 100px;width: 100px;">设备类型
                </th>
                <th class="thgu dong7 name" rowspan="2" style="min-width: 100px; max-width: 100px;width: 100px;">班次</th>
                <th class="thgu dong7 name" rowspan="2" style="min-width: 120px; max-width: 120px;width: 120px;">设备型号
                </th>
                <th class="thgu dong8 name" rowspan="2" style="min-width: 100px; max-width: 100px;width: 100px;">班次</th>
                <template v-for="(tableHead, index) in tableHeads">
                  <th class="timeth" :colspan="checkedList.length">{{tableHead}}</th>
                </template>
@@ -199,15 +212,18 @@
                    {{item.equipmentName}}
                  </td>
                  <td class="tdgu5  kaitou">{{item.equipmentType}}</td>
                  <td class="tdgu6  kaitou">{{item.shiftSubName}}</td>
                  <td class="tdgu6 kaitou">{{item.equipmentModel}}</td>
                  <td class="tdgu7  kaitou">{{item.shiftSubName}}</td>
                </template>
                <template v-else>
                  <td colspan="7" class="tdgu kaitou">{{item.level1}}</td>
                  <td colspan="8" class="tdgu kaitou">{{item.level1}}</td>
                </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>
@@ -228,6 +244,8 @@
        </div>
      </a-spin>
    </div>
    <mdc-message-approval-modal ref="modalForm" :visible="modalVisible" @closeModal="modalVisible = false"/>
  </div>
</template>
@@ -238,10 +256,11 @@
  import '@/components/table2excel/table2excel'
  import { ajaxGetDictItems, getDictItemsFromCache, duplicateCheck } from '@/api/api'
  import api from '@/api/mdc'
  import MdcMessageApprovalModal from '../MdcMessageApproval/MdcMessageApprovalModal'
  export default {
    name: 'EfficiencyShiftList',
    components: {},
    components: { MdcMessageApprovalModal },
    data() {
      return {
        typeTree: '',
@@ -253,14 +272,13 @@
        equipmentTypeList: [],
        driveTypeList: [],
        device_level_list: [],
        device_category_list: [],
        device_importance_level_list: [],
        identifying: [],
        queryParam: {},
        queryParams: {
          equipmentType: [],
          driveType: [],
          deviceLevel: [],
          deviceCategory: []
          deviceLevel: []
        },
        queryParamEquip: {},
        queryParamPeople: {},
@@ -289,7 +307,9 @@
        shiftList: [],
        shiftSubList: [],
        spinning: false,
        toggleSearchStatus: false
        toggleSearchStatus: false,
        modalVisible: false,// 异常反馈弹窗是否弹出
        preSelectFirstDate: null
      }
    },
    props: { nodeTree: '', Type: '', nodePeople: '' },
@@ -305,6 +325,7 @@
      this.getDriveTypeByApi()
      this.initDictData('device_level')
      this.initDictData('device_category')
      this.initDictData('device_importance_level')
    },
    mounted() {
      window.addEventListener('resize', this.handleWindowResize)
@@ -468,10 +489,37 @@
        }
        return list
      },
      disabledDate(current) {
        //Can not slect days before today and today
        return current && current > moment().subtract('days', 1)
      /**
       * 时间选择器面板上的值发生改变时触发
       * @param dates 面板上的两个值组成的数组
       */
      handleCalendarChange(dates) {
        if (dates.length === 1) this.preSelectFirstDate = dates[0]
      },
      /**
       * 控制时间选择器面板开启与关闭
       * @param status 开启状态
       */
      handleCalendarOpenChange(status) {
        if (status) this.preSelectFirstDate = null
      },
      /**
       * 面板上禁止选择的日期
       * @param current 禁止的时间范围
       */
      disabledDate(current) {
        if (!this.preSelectFirstDate) {
          return current > moment().startOf('days')
        } else {
          return current < moment(this.preSelectFirstDate).subtract(365, 'days').startOf('days')
            || current > moment().startOf('days')
            || current > moment(this.preSelectFirstDate).add(365, 'days').endOf('days')
        }
      },
      initDeviceType(deviceList) {
        let dictCode = 'mdc_equipmentType'
        let items = []
@@ -543,19 +591,8 @@
      dateParamChange(v1, v2) {
        this.queryParam.startTime = v2[0]
        this.queryParam.endTime = v2[1]
        // 点击时间选择器的清空按钮时会触发此判断(点击重置按钮不会触发),实现重置列表功能,切实改变列表显示效果
        // if(!this.queryParam.startTime&&!this.queryParam.endTime)this.searchReset()
      },
      efficiencyOptionsOnChange(checkedList) {
        // let index = checkedList.indexOf('lyl')
        // if (index < 0) {
        //   // this.$message.warn('不能取消查询利用率')
        //   this.$notification.warning({
        //     message: '消息',
        //     description: '不能取消查询班次利用率'
        //   })
        //   return false
        // }
        this.checkedList = checkedList
      },
      searchQuery() {
@@ -572,7 +609,6 @@
          if (this.queryParams[item].length === 0) delete this.queryParam[item]
        })
        this.loadData()
        // this.onClearSelected()
      },
      searchReset() {
        this.typeTree = this.queryParam.typeTree
@@ -588,8 +624,7 @@
        this.queryParams = {
          equipmentType: [],
          driveType: [],
          deviceLevel: [],
          deviceCategory: []
          deviceLevel: []
        }
        this.loadData()
        // this.onClearSelected()
@@ -618,6 +653,13 @@
          this.spinning = false
        })
      },
      // 控制异常反馈弹窗弹出
      handleShowFeedbackModal() {
        this.$refs.modalForm.formParams = {}
        this.modalVisible = true
      },
      queryGroup() {
        getAction(this.url.queryEquipmentType).then(res => {
          if (res.success) {
@@ -720,6 +762,12 @@
    z-index: 2;
  }
  .table tbody tr .tdgu7 {
    position: sticky;
    left: 632px;
    z-index: 2;
  }
  .table2 thead tr .timeth,
  .table2 thead tr .thgu {
    position: sticky;
@@ -772,6 +820,11 @@
    left: 512px;
  }
  .table2 thead .equipname .dong8 {
    z-index: 6;
    left: 632px;
  }
  #EfficiencyShift {
    overflow: hidden;
  }