zhuzhuanzhuan
2024-04-28 533f845339e3cd73d5ef5123283f6b70536a8f83
src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue
@@ -5,7 +5,17 @@
      <div class="table-page-search-wrapper">
        <a-form layout="inline" @keyup.enter.native="searchQuery">
          <a-row :gutter="24">
            <a-col :md="5" :sm="5" :xs="5">
            <a-col :md="4" :sm="4" :xs="4">
              <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-option>
                </a-select>
              </a-form-item>
            </a-col>
            <a-col :md="4" :sm="4" :xs="4">
              <a-form-item label="驱动类型">
                <a-auto-complete
                  v-model="queryParam.driveType"
@@ -16,7 +26,19 @@
                />
              </a-form-item>
            </a-col>
            <a-col :md="7" :sm="7" :xs="7">
            <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-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-form-item>
            </a-col>
            <a-col :md="5" :sm="5" :xs="5">
              <a-form-item label="时间">
                <a-range-picker
                  :placeholder="['开始时间', '结束时间']"
@@ -28,11 +50,18 @@
                />
              </a-form-item>
            </a-col>
            <a-col :md="2" :sm="2" :xs="2">
          </a-row>
          <a-row :gutter="24" style="margin-bottom: 20px">
            <a-col :md="4" :sm="4" :xs="4">
              <a-space>
                <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" icon="printer" v-print="'#EfficiencyShift'" v-has="'efficiencyShift:print'">
                  打印
                </a-button>
              </a-space>
            </a-col>
          </a-row>
@@ -84,7 +113,8 @@
        url: {
          list: '/mdc/mdcOverallEquipmentEfficiency/list',
          initShiftList: '/mdc/mdcMdcShift/initShiftList',
          initShiftSubList: '/mdc/mdcShiftSub/initShiftSubList'
          initShiftSubList: '/mdc/mdcShiftSub/initShiftSubList',
          queryEquipmentType: '/mdc/mdcEquipmentType/queryEquipmentType'
        },
        shiftList: [],
        shiftSubList: [],
@@ -272,17 +302,27 @@
        ],
        dataSource: [],
        driveTypeList: [],
        selectList: [],
        scrollY: 465,
        tableLoading: false
      }
    },
    props: { nodeTree: '', Type: '', nodePeople: '' },
    created() {
      const { isEquipment, productionId } = this.$route.params
      if (productionId) {
        console.log('productionId', productionId)
        console.log('isEquipment', isEquipment)
        if (!isEquipment) this.queryParam.parentId = productionId
        else this.queryParam.equipmentId = productionId
      }
      this.queryParam.startTime = moment(this.dates[0]).format('YYYY-MM')
      this.queryParam.endTime = moment(this.dates[1]).format('YYYY-MM')
      this.queryParam.typeTree = '1'
      this.loadData()
      this.getDriveTypeByApi()
      this.queryGroup()
    },
    mounted() {
      window.addEventListener('resize', this.handleWindowResize)
@@ -392,6 +432,8 @@
          this.queryParam.parentId = this.queryParamPeople.parentId
          this.queryParam.equipmentId = ''
        }
        this.queryParam.pageNo = 1
        this.loadData()
      },
@@ -411,6 +453,25 @@
      getDriveTypeByApi() {
        api.getDriveTypeApi().then((res) => {
          this.driveTypeList = res.result.map(item => item.value)
        })
      },
      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 + '' }
            // })
          } else {
            // this.$message.warning(res.message)
            this.$notification.warning({
              message: '消息',
              description: res.message
            })
          }
        }).finally(() => {
          this.loading = false
        })
      },
@@ -463,9 +524,12 @@
       * 当浏览器可视窗口尺寸发生改变时触发
       */
      handleWindowResize() {
        const boxHeight = +window.getComputedStyle(document.getElementById('EfficiencyShift')).height.slice(0, -2)
        const tableHeadHeight = +window.getComputedStyle(document.querySelector('.ant-table-thead th')).height.slice(0, -2)
        this.scrollY = boxHeight - tableHeadHeight
        const devicePixelRatio = window.devicePixelRatio // 浏览器缩放比
        if (devicePixelRatio < 1) return // 缩放比小于1时不进行高度重新设置,因为scrollY变大后表格超出部分会被隐藏导致滚动条不可见
        const clientHeight = document.body.clientHeight // 浏览器可视区域高度
        const containerTopToClientTopHeight = document.getElementById('EfficiencyShift').getBoundingClientRect().top // 表格容器顶部到浏览器可视区域顶部的间距
        const tableHeadHeight = +window.getComputedStyle(document.querySelector('.ant-table-thead th')).height.slice(0, -2) // 表格表头高度
        this.scrollY = clientHeight - containerTopToClientTopHeight - tableHeadHeight  // 表格垂直滚动条高度
      }
    }
  }