src/components/tools/UserMenu.vue
@@ -16,7 +16,7 @@ :filterOption="filterOption" :open="isMobile()?true:null" :getPopupContainer="(node) => node.parentNode" :style="isMobile()?{width: '100%',marginBottom:'50px'}:{}" :style="isMobile()?{width: '100%',marginBottom:'50px',color:theme=='dark'?'#fff':'#000'}:{color:theme=='dark'?'#fff':'#000'}" @change="searchMethods" @blur="hiddenClick" > @@ -268,7 +268,6 @@ /* update-begin author:sunjianlei date:20191220 for: 解决全局样式冲突问题 */ .user-wrapper .search-input { width: 180px; color: inherit; /deep/ .ant-select-selection { background-color: inherit; src/views/mdc/base/MdcUtilizationRateList.vue
@@ -9,11 +9,11 @@ <a-input placeholder="请输入类别" v-model="queryParam.rateParameterCategory"></a-input> </a-form-item> </a-col> <a-col :md="2" :sm="2"> <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> </a-col> <a-col :md="2" :sm="2"> <a-button type="primary" @click="searchReset" icon="reload">重置</a-button> <a-col> <a-space> <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> <a-button type="primary" @click="searchReset" icon="reload">重置</a-button> </a-space> </a-col> </a-row> </a-form> src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue
@@ -18,24 +18,24 @@ </a-form-item> </a-col> <!--<a-col :md="5" :sm="5" :xs="5">--> <!--<a-form-item label="班制">--> <!--<a-select v-model="queryParam.shiftId" placeholder="请选择班制"--> <!--@change="initShiftSubList" :allowClear="allowClear">--> <!--<a-select-option v-for="(em,index) in shiftList" :key="index" :value="em.value">--> <!--{{ em.label }}--> <!--</a-select-option>--> <!--</a-select>--> <!--</a-form-item>--> <!--<a-form-item label="班制">--> <!--<a-select v-model="queryParam.shiftId" placeholder="请选择班制"--> <!--@change="initShiftSubList" :allowClear="allowClear">--> <!--<a-select-option v-for="(em,index) in shiftList" :key="index" :value="em.value">--> <!--{{ em.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 v-model="queryParam.shiftSubId" placeholder="请选择班次" @change="initShiftSubListChange"--> <!--:allowClear="allowClearSu">--> <!--<a-select-option v-for="(em,index) in shiftSubList" :key="index" :value="em.value">--> <!--{{ em.label }}--> <!--</a-select-option>--> <!--</a-select>--> <!--</a-form-item>--> <!--<a-form-item label="班次">--> <!--<a-select v-model="queryParam.shiftSubId" placeholder="请选择班次" @change="initShiftSubListChange"--> <!--:allowClear="allowClearSu">--> <!--<a-select-option v-for="(em,index) in shiftSubList" :key="index" :value="em.value">--> <!--{{ em.label }}--> <!--</a-select-option>--> <!--</a-select>--> <!--</a-form-item>--> <!--</a-col>--> <a-col :md="8" :sm="8" :xs="8"> @@ -54,8 +54,7 @@ <div class="container" id="EfficiencyShift" style="margin-top: 20px;"> <div class="table2"> <a-table :columns="columns" :dataSource="dataSource.records" :pagination="false" bordered :scroll="{ x: 1500, y: false }"> :scroll="{ x: 3000, y: false }"> </a-table> </div> </div> @@ -117,21 +116,21 @@ align: 'center', customRender: function(t, r, index) { return parseInt(index) + 1 }, } // fixed: 'left' }, { title: '设备统一编号', align: 'center', dataIndex: 'equipmentId', width: 120, width: 120 // fixed: 'left' }, { title: '设备名称', align: 'center', width: 150, dataIndex: 'equipmentName', dataIndex: 'equipmentName' // fixed: 'left' }, { src/views/mdc/base/modules/comparativeAnalysis/comparativeAnalysismain.vue
@@ -1,58 +1,67 @@ <template> <div :bordered="false" class="device_list"> <div class="com_box"> <!-- 查询区域 --> <div style="width: 100%; background-color: #fff" class="table-page-search-wrapper"> <a-form layout="inline" @keyup.enter.native="searchQuery"> <a-row :gutter="24"> <!--<a-col :md="5" :sm="5">--> <!-- 查询区域 --> <div style="width: 100%; background-color: #fff" class="table-page-search-wrapper"> <a-form layout="inline" @keyup.enter.native="searchQuery"> <a-row :gutter="24"> <!--<a-col :md="5" :sm="5">--> <!--<a-form-item label="名称">--> <!--<a-input placeholder="输入设备名称查询" :readOnly="readOnly" v-model="queryParam.tierName"></a-input>--> <!--<a-input placeholder="输入设备名称查询" :readOnly="readOnly" v-model="queryParam.tierName"></a-input>--> <!--</a-form-item>--> <!--</a-col>--> <a-col :md="5" :sm="5"> <a-form-item label="驱动类型"> <!--<j-dict-select-tag placeholder="请选择驱动类型"--> <!--:triggerChange="true" dictCode="mdc_driveType"--> <!--v-model="queryParam.driveType" allow-clear/>--> <a-auto-complete v-model="queryParam.driveType" :data-source="driveTypeList" placeholder="驱动类型" :filter-option="filterOption" /> </a-form-item> </a-col> <a-col :md="9" :sm="9" :xs="4"> <a-form-item label="时间"> <a-range-picker @change="dateParamChange" v-model="dates" format="YYYYMMDD"/> </a-form-item> </a-col> <a-col :md="2" :sm="3" :xs="3"> <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> </a-col> <a-col :md="2" :sm="2" :xs="2"> <a-button type="primary" @click="searchReset" icon="reload">重置</a-button> </a-col> </a-row> </a-form> <!--</a-col>--> <a-col :md="5" :sm="5"> <a-form-item label="设备"> <a-input-search :readOnly="true" v-model="queryParam.equipmentId" @search="deviceSearch" placeholder='请选择设备'/> </a-form-item> </a-col> <a-col :md="5" :sm="5"> <a-form-item label="驱动类型"> <!--<j-dict-select-tag placeholder="请选择驱动类型"--> <!--:triggerChange="true" dictCode="mdc_driveType"--> <!--v-model="queryParam.driveType" allow-clear/>--> <a-auto-complete v-model="queryParam.driveType" :data-source="driveTypeList" placeholder="驱动类型" :filter-option="filterOption" /> </a-form-item> </a-col> <a-col :md="6" :sm="6" :xs="6"> <a-form-item label="时间"> <a-range-picker @change="dateParamChange" v-model="dates" format="YYYYMMDD"/> </a-form-item> </a-col> <a-col> <a-space> <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> <a-button type="primary" @click="searchReset" icon="reload">重置</a-button> </a-space> </a-col> </a-row> </a-form> </div> <!-- table区域-begin --> <div id="DeviceList"> <a-tabs :activeKey="activeKey" @change="tabChange" tabPosition="top"> <a-tab-pane key="1" tab="图形"> <comparative-analysis-bar ref="AnalysisBar" :dataList='AnalysisBarList'></comparative-analysis-bar> </a-tab-pane> <a-tab-pane key="2" tab="仪表" forceRender> <comparative-analysis-gauge ref="AnalysisGauge" :dataList="AnalysisGauge"></comparative-analysis-gauge> </a-tab-pane> <a-tab-pane key="3" tab="饼图" forceRender> <conparative-analysis-pie ref="AnalysisPie" :dataList="AnalysisPie"></conparative-analysis-pie> </a-tab-pane> </a-tabs> </div> <!-- table区域-end --> </div> <!-- table区域-begin --> <div id="DeviceList"> <a-tabs :activeKey="activeKey" @change="tabChange" tabPosition="top"> <a-tab-pane key="1" tab="图形"> <comparative-analysis-bar ref="AnalysisBar" :dataList='AnalysisBarList'></comparative-analysis-bar> </a-tab-pane> <a-tab-pane key="2" tab="仪表" forceRender> <comparative-analysis-gauge ref="AnalysisGauge" :dataList="AnalysisGauge"></comparative-analysis-gauge> </a-tab-pane> <a-tab-pane key="3" tab="饼图" forceRender> <conparative-analysis-pie ref="AnalysisPie" :dataList="AnalysisPie"></conparative-analysis-pie> </a-tab-pane> </a-tabs> </div> <!-- table区域-end --> </div> <selectDeviceModal ref="selectDeviceModal" @selectFinished="selectOK" :title="'选择设备'"></selectDeviceModal> </div> </template> @@ -67,7 +76,7 @@ getAction } from '@/api/manage' import comparativeAnalysisBar from './comparativeAnalysisBar' import comparativeAnalysisGauge from'./comparativeAnalysisGauge' import comparativeAnalysisGauge from './comparativeAnalysisGauge' import conparativeAnalysisPie from './conparativeAnalysisPie' import '@/components/table2excel/table2excel' import JInput from '@/components/jeecg/JInput' @@ -75,6 +84,8 @@ import Tooltip from 'ant-design-vue/es/tooltip' import { ajaxGetDictItems, getDictItemsFromCache, duplicateCheck } from '@/api/api' import api from '@/api/mdc' import selectDeviceModal from '../../../../system/modules/SelectDeviceModal.vue' export default { name: 'comparativeAnalysismain', // mixins: [JeecgListMixin], @@ -86,36 +97,39 @@ JDictSelectTag, JInput, JDate, JEllipsis JEllipsis, selectDeviceModal }, props: { nodeTree: '', Type:'',nodePeople: '' }, props: { nodeTree: '', Type: '', nodePeople: '' }, data() { return { activeKey: '1', typeTree:"", typeParent:1, typeEquipment:1, AnalysisBarList:[], AnalysisGauge:[], AnalysisPie:[], typeTree: '', typeParent: 1, typeEquipment: 1, AnalysisBarList: [], AnalysisGauge: [], AnalysisPie: [], dates: [], xianshi:"", readOnly:true, queryParam: {}, queryParams:{}, queryParamEquip:{}, queryParamPeople:{}, dataStartsoucre:[], url: { comparativeAnalysis:'/mdc/efficiencyReport/comparativeAnalysis' xianshi: '', readOnly: true, queryParam: { equipmentId: '' }, AnalysisList:{}, driveTypeList:[] queryParams: {}, queryParamEquip: {}, queryParamPeople: {}, dataStartsoucre: [], url: { comparativeAnalysis: '/mdc/efficiencyReport/comparativeAnalysis' }, AnalysisList: {}, driveTypeList: [] } }, watch:{ Type(valmath){ this.dataList = []; watch: { Type(valmath) { this.dataList = [] this.queryParams.typeTree = valmath // console.log(this.queryParams.typeTree) }, @@ -123,8 +137,9 @@ if (JSON.stringify(val) != '{}') { if (val.equipmentId) { // this.$set(this.queryParam, 'tierName', val.title) this.queryParamEquip.parentId = "" this.queryParams.equipmentId = val.equipmentId this.queryParamEquip.parentId = '' // this.queryParams.equipmentId = val.equipmentId this.queryParam.equipmentId = val.equipmentId this.queryParamEquip.equipmentId = val.equipmentId } else { // this.$set(this.queryParam, 'tierName', val.title) @@ -132,14 +147,13 @@ this.queryParams.equipmentId = '' } this.searchQuery() } }, nodePeople(val){ nodePeople(val) { if (JSON.stringify(val) != '{}') { if (val.equipmentId) { // this.$set(this.queryParam, 'tierName', val.title) this.queryParamEquip.parentId = "" this.queryParamEquip.parentId = '' this.queryParams.equipmentId = val.equipmentId this.queryParamEquip.equipmentId = val.equipmentId } else { @@ -159,10 +173,10 @@ // console.log(v1,v2) this.queryParam.startTime = v2[0] this.queryParam.endTime = v2[1] console.log(v2[0],v2[1]) console.log(v2[0], v2[1]) }, loadAnalysis(){ getAction(this.url.comparativeAnalysis,this.queryParam).then(res => { loadAnalysis() { getAction(this.url.comparativeAnalysis, this.queryParam).then(res => { if (res.success) { this.AnalysisList = res.result this.AnalysisBarList = res.result.graphics @@ -175,44 +189,44 @@ this.loading = false }) }, searchQuery(){ if(this.dates&&this.dates.length>0){ searchQuery() { if (this.dates && this.dates.length > 0) { this.AnalysisList = [] this.AnalysisBarList = [] this.AnalysisGauge = [] this.AnalysisPie = [] if(this.queryParams.typeTree == "1"){ this.queryParams.parentId = this.queryParamEquip.parentId if (this.queryParams.typeTree == '1') { this.queryParams.parentId = this.queryParamEquip.parentId // this.queryParams.equipmentId = this.queryParamEquip.equipmentId }else{ } else { this.queryParams.parentId = this.queryParamEquip.parentId // this.queryParams.equipmentId = "" } this.AnalysisList = [] //获取查询条件 this.queryParam.parentId = this.queryParams.parentId; this.queryParam.equipmentId = this.queryParams.equipmentId; this.queryParam.parentId = this.queryParams.parentId // this.queryParam.equipmentId = this.queryParams.equipmentId this.queryParam.typeTree = this.queryParams.typeTree getAction(this.url.comparativeAnalysis,this.queryParam).then((res) => { if(res.success){ getAction(this.url.comparativeAnalysis, this.queryParam).then((res) => { if (res.success) { this.AnalysisList = res.result this.AnalysisBarList = res.result.graphics this.AnalysisGauge = res.result.meters this.AnalysisPie.push(res.result.pieCharts) }else{ } else { // this.$message.warning(res.message) this.$notification.warning({ message:'消息', description:res.message }); message: '消息', description: res.message }) } }).finally(() => { this.loading = false }) }else{ } else { this.$notification.warning({ message:'提示' , description:'请选择时间' message: '提示', description: '请选择时间' }) } @@ -222,70 +236,70 @@ this.AnalysisBarList = [] this.AnalysisGauge = [] this.AnalysisPie = [] if(this.queryParams.typeTree == "1"){ if (this.queryParams.typeTree == '1') { this.typeTree = this.queryParams.typeTree this.typeParent = this.queryParams.parentId this.typeParent = this.queryParams.parentId this.typeEquipment = this.queryParams.equipmentId this.queryParams = {} this.queryParam = {} this.dates = [] this.queryParams.typeTree = this.typeTree this.queryParams.parentId = this.typeParent if(this.queryParams.parentId != ""){ this.queryParams.equipmentId = "" }else{ if(this.queryParams.equipmentId == this.queryParamEquip.equipmentId){ this.queryParams.equipmentId = this.typeEquipment }else{ if (this.queryParams.parentId != '') { this.queryParams.equipmentId = '' } else { if (this.queryParams.equipmentId == this.queryParamEquip.equipmentId) { this.queryParams.equipmentId = this.typeEquipment } else { this.queryParams.equipmentId = this.queryParamEquip.equipmentId } } getAction(this.url.comparativeAnalysis,this.queryParams).then((res) => { if(res.success){ getAction(this.url.comparativeAnalysis, this.queryParams).then((res) => { if (res.success) { this.AnalysisList = res.result this.AnalysisBarList = res.result.graphics this.AnalysisGauge = res.result.meters this.AnalysisPie.push(res.result.pieCharts) }else{ } else { // this.$message.warning(res.message) this.$notification.warning({ message:'消息', description:res.message }); message: '消息', description: res.message }) } }).finally(() => { this.loading = false }) }else{ } else { this.typeTree = this.queryParams.typeTree this.typeParent = this.queryParams.parentId this.typeParent = this.queryParams.parentId this.typeEquipment = this.queryParams.equipmentId this.queryParams = {} this.queryParam = {} this.dates = [] this.queryParams.typeTree = this.typeTree this.queryParams.parentId = this.typeParent if(this.queryParams.parentId != ""){ this.queryParams.equipmentId = "" }else{ if(this.queryParams.equipmentId == this.queryParamEquip.equipmentId){ this.queryParams.equipmentId = this.typeEquipment }else{ if (this.queryParams.parentId != '') { this.queryParams.equipmentId = '' } else { if (this.queryParams.equipmentId == this.queryParamEquip.equipmentId) { this.queryParams.equipmentId = this.typeEquipment } else { this.queryParams.equipmentId = this.queryParamEquip.equipmentId } } getAction(this.url.comparativeAnalysis,this.queryParams).then((res) => { if(res.success){ getAction(this.url.comparativeAnalysis, this.queryParams).then((res) => { if (res.success) { this.AnalysisList = res.result this.AnalysisBarList = res.result.graphics this.AnalysisGauge = res.result.meters this.AnalysisPie.push(res.result.pieCharts) }else{ } else { // this.$message.warning(res.message) this.$notification.warning({ message:'消息', description:res.message }); message: '消息', description: res.message }) } }).finally(() => { this.loading = false @@ -295,9 +309,9 @@ /** * 调用接口获取控制系统类型 */ getDriveTypeByApi(){ api.getDriveTypeApi().then((res)=>{ this.driveTypeList=res.result.map(item=>item.value) getDriveTypeByApi() { api.getDriveTypeApi().then((res) => { this.driveTypeList = res.result.map(item => item.value) }) }, /** @@ -309,7 +323,7 @@ filterOption(input, option) { return ( option.componentOptions.children[0].text.toUpperCase().indexOf(input.toUpperCase()) >= 0 ); ) }, // onChange(value, dateString) { // // console.log('Selected Time: ', value); @@ -422,13 +436,36 @@ // this.loading = false // }) // }, deviceSearch() { console.log('触发') this.$refs.selectDeviceModal.visible = true this.$refs.selectDeviceModal.selectedRowKeys = [] this.$refs.selectDeviceModal.selectedRows = [] this.$refs.selectDeviceModal.checkedKeys = this.queryParam.equipmentId.split(',') this.$refs.selectDeviceModal.expandAll() }, /** * 选择已有设备后点击确定时触发 * @param data 已选择的设备 */ selectOK(data) { // let params = {} // params.equipmentIdList = [] // for (var a = 0; a < data.length; a++) { // params.equipmentIdList.push(data[a]) // } console.log('data=', data) this.queryParam.equipmentId = data.join(',') console.log('queryParam', this.queryParam.equipmentId) } }, created() { this.dates = [moment().subtract('days', 7), moment().subtract('days', 0)] this.queryParam.startTime = moment(this.dates[0]).format('YYYYMMDD') this.queryParam.endTime = moment(this.dates[1]).format('YYYYMMDD') this.queryParam.typeTree = "1"; this.loadAnalysis(); this.queryParam.typeTree = '1' this.loadAnalysis() this.getDriveTypeByApi() } } @@ -437,54 +474,62 @@ <style lang="less" scoped> /*@import '~@assets/less/common.less';*/ @media screen and (min-width: 1920px){ .device_list{ height: 811px!important; @media screen and (min-width: 1920px) { .device_list { height: 811px !important; overflow: scroll; } } @media screen and (min-width: 1680px) and (max-width: 1920px){ .device_list{ height: 811px!important; @media screen and (min-width: 1680px) and (max-width: 1920px) { .device_list { height: 811px !important; overflow: scroll; } } @media screen and (min-width: 1400px) and (max-width: 1680px){ .device_list{ height: 663px!important; @media screen and (min-width: 1400px) and (max-width: 1680px) { .device_list { height: 663px !important; overflow: scroll; } } @media screen and (min-width: 1280px) and (max-width: 1400px){ .device_list{ height: 564px!important; @media screen and (min-width: 1280px) and (max-width: 1400px) { .device_list { height: 564px !important; overflow: scroll; } } @media screen and (max-width: 1280px){ .device_list{ height: 564px!important; @media screen and (max-width: 1280px) { .device_list { height: 564px !important; overflow: scroll; } } /*.device_list{*/ /*display: flex;*/ /*display: flex;*/ /*}*/ /*.device_list .table-page-search-wrapper{*/ /**/ /**/ /*}*/ /deep/ .ant-card-body{ height: 100%!important; /deep/ .ant-card-body { height: 100% !important; } .device_list .com_box{ display: flex!important; height: 100%!important; flex-direction: column!important; .device_list .com_box { display: flex !important; height: 100% !important; flex-direction: column !important; } .device_list .table-page-search-wrapper{ height: 6%!important; .device_list .table-page-search-wrapper { height: 6% !important; } .device_list #DeviceList{ height: 90%!important; .device_list #DeviceList { height: 90% !important; } </style> src/views/mdc/base/modules/efficiencyPOReport/EfficiencyPOList.vue
@@ -5,19 +5,26 @@ <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-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="6" :sm="6"> <a-form-item label="时间"> <a-range-picker @change="dateParamChange" :disabledDate="disabledDate" format="YYYYMMDD" v-model="dates"/> </a-form-item> </a-col> <a-col :lg="2" :md="3" :sm="3" :xs="3"> <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> </a-col> <a-col :lg="2" :md="3" :sm="3" :xs="3"> <a-button type="primary" @click="searchReset" icon="reload">重置</a-button> </a-col> <a-col :lg="2" :md="3" :sm="3" :xs="3"> <a-button type="primary" @click="exportExcel" icon="download">导出</a-button> <a-col :md="14" :sm="14"> <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-space> </a-col> </a-row> <a-row :gutter="24"> @@ -120,6 +127,7 @@ typeParent:1, typeEquipment:1, dates: [], selectList:[], queryParam: {}, queryParamEquip:{}, queryParamPeople:{}, @@ -136,7 +144,8 @@ dataList: [], url: { list: '/mdc/efficiencyReport/efficiencyPOList', listByType: '/mdc/MdcUtilizationRate/getByType' listByType: '/mdc/MdcUtilizationRate/getByType', queryEquipmentType: '/mdc/mdcEquipmentType/queryEquipmentType' }, tableHeads: [] } @@ -149,6 +158,7 @@ this.queryParam.endTime = moment(this.dates[1]).format('YYYYMMDD') this.queryParam.typeTree = "1" this.loadData() this.queryGroup() }, watch: { Type(valmath){ @@ -393,6 +403,24 @@ // this.initDeviceType(this.dataList) } }) }, 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 }) } } } src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue
@@ -6,19 +6,27 @@ <div class="table-page-search-wrapper"> <a-form layout="inline" @keyup.enter.native="searchQuery"> <a-row :gutter="24"> <a-col :md="6" :sm="6"> <a-form-item label="时间"> <a-range-picker @change="dateParamChange" :disabledDate="disabledDate" format="YYYYMMDD" v-model="dates"/> <a-col :md="4" :sm="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 :lg="2" :md="3" :sm="3" :xs="3"> <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> <a-col :md="6" :sm="6"> <a-form-item label="时间"> <a-range-picker @change="dateParamChange" :disabledDate="disabledDate" format="YYYYMMDD" v-model="dates"/> </a-form-item> </a-col> <a-col :lg="2" :md="3" :sm="3" :xs="3"> <a-button type="primary" @click="searchReset" icon="reload">重置</a-button> </a-col> <a-col :lg="2" :md="3" :sm="3" :xs="3"> <a-button type="primary" @click="exportExcel" icon="download">导出</a-button> <a-col :md="14" :sm="14"> <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-space> </a-col> </a-row> <a-row :gutter="24"> @@ -51,8 +59,8 @@ <thead> <tr class="thead fixed equipname"> <th class="thgu dong1 name" rowspan="2" style="min-width: 50px; max-width: 50px;width: 50px;"></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 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;">设备编号</th> <th class="thgu dong5 name" rowspan="2" style="min-width: 150px; max-width: 150px;width: 150px;">设备名称</th> <th class="thgu dong6 name" rowspan="2" style="min-width: 100px; max-width: 100px;width: 100px;">设备类型</th> @@ -74,12 +82,18 @@ </thead> <tbody> <tr class="mathData" v-for="(item, index) in dataList"> <td class="tdgu kaitou wenzi" :rowspan="item.level1span" :class="{hidden: item.level1dis,noExl:item.level1dis}" v-show="!item.level1dis">{{item.level1}}</td> <td class="tdgu1 kaitou wenzi" :rowspan="item.level2span" :class="{hidden: item.level2dis,noExl:item.level2dis}" v-show="!item.level2dis">{{item.level2}}</td> <td class="tdgu2 kaitou wenzi" :rowspan="item.level3span" :class="{hidden: item.level3dis,noExl:item.level3dis}" v-show="!item.level3dis">{{item.level3}}</td> <td class="tdgu3 kaitou">{{item.equipmentId}}</td> <td class="tdgu4 kaitou">{{item.equipmentName}}</td> <td class="tdgu5 kaitou">{{item.equipmentType}}</td> <td class="tdgu kaitou wenzi" :rowspan="item.level1span" :class="{hidden: item.level1dis,noExl:item.level1dis}" v-show="!item.level1dis">{{item.level1}} </td> <td class="tdgu1 kaitou wenzi" :rowspan="item.level2span" :class="{hidden: item.level2dis,noExl:item.level2dis}" v-show="!item.level2dis">{{item.level2}} </td> <td class="tdgu2 kaitou wenzi" :rowspan="item.level3span" :class="{hidden: item.level3dis,noExl:item.level3dis}" v-show="!item.level3dis">{{item.level3}} </td> <td class="tdgu3 kaitou">{{item.equipmentId}}</td> <td class="tdgu4 kaitou">{{item.equipmentName}}</td> <td class="tdgu5 kaitou">{{item.equipmentType}}</td> <template v-for="(tableHead, index) in item.dataList"> <td :style="{background:tableHead.color }">{{tableHead.utilizationRate | numFilter}}</td> <td :style="{background:tableHead.color }" v-if="checkedList.indexOf('kjl') > -1"> @@ -88,13 +102,13 @@ <td :style="{background:tableHead.color }" v-if="checkedList.indexOf('kjsj') > -1"> {{tableHead.openLong}} </td> <td :style="{background:tableHead.color }" v-if="checkedList.indexOf('jgsj') > -1"> <td :style="{background:tableHead.color }" v-if="checkedList.indexOf('jgsj') > -1"> {{tableHead.processLong}} </td> <td :style="{background:tableHead.color }" v-if="checkedList.indexOf('djsj') > -1"> <td :style="{background:tableHead.color }" v-if="checkedList.indexOf('djsj') > -1"> {{tableHead.waitLong}} </td> <td :style="{background:tableHead.color }" v-if="checkedList.indexOf('gjsj') > -1"> <td :style="{background:tableHead.color }" v-if="checkedList.indexOf('gjsj') > -1"> {{tableHead.closeLong}} </td> </template> @@ -108,520 +122,569 @@ </template> <script> import moment from 'moment' import { putAction, getAction } from '@/api/manage' import $ from 'jquery' import '@/components/table2excel/table2excel' import { ajaxGetDictItems, getDictItemsFromCache, duplicateCheck } from '@/api/api' export default { name: 'EfficiencyList', components: {}, data() { return { typeTree:"", typeParent:1, typeEquipment:1, TreeIDOne:1, TreeIDTwo:2, deviceTypeDict: '', dates: [], identifying: [], queryParam: {}, queryParams:{}, queryParamEquip:{}, queryParamPeople:{}, efficiencyOptions: [ { label: '利用率', value: 'lyl' }, { label: '开机率', value: 'kjl' }, { label: '开机时间', value: 'kjsj' }, { label: '加工时间', value: 'jgsj' }, { label: '待机时间', value: 'djsj' }, { label: '关机时间', value: 'gjsj' } ], checkedList: ['lyl'], dataList: [], url: { list: '/mdc/efficiencyReport/efficiencyList', listByType: '/mdc/MdcUtilizationRate/getByType', }, tableHeads: [], import moment from 'moment' import { putAction, getAction } from '@/api/manage' import $ from 'jquery' import '@/components/table2excel/table2excel' import { ajaxGetDictItems, getDictItemsFromCache, duplicateCheck } from '@/api/api' } }, props: { nodeTree: '',Type:'',nodePeople:'' }, created() { this.showIdentifying() this.dates = [moment().subtract('days', 8), moment().subtract('days', 1)] this.queryParam.startTime = moment(this.dates[0]).format('YYYYMMDD') this.queryParam.endTime = moment(this.dates[1]).format('YYYYMMDD') this.queryParam.typeTree = "1" this.loadData() }, watch: { Type(valmath){ this.dataList = []; this.queryParam.typeTree = valmath }, nodeTree(val) { //监听currSelected 变化,将变化后的数值传递给 getCurrSelected 事件 if (JSON.stringify(val) != '{}') { if (val.equipmentId != null) { this.queryParamEquip.parentId = '' this.queryParamEquip.equipmentId = val.equipmentId } else { this.queryParamEquip.parentId = val.key this.queryParamEquip.equipmentId = '' } this.searchQuery() export default { name: 'EfficiencyList', components: {}, data() { return { typeTree: '', typeParent: 1, typeEquipment: 1, TreeIDOne: 1, TreeIDTwo: 2, deviceTypeDict: '', dates: [], selectList: [], identifying: [], queryParam: {}, queryParams: {}, queryParamEquip: {}, queryParamPeople: {}, efficiencyOptions: [ { label: '利用率', value: 'lyl' }, { label: '开机率', value: 'kjl' }, { label: '开机时间', value: 'kjsj' }, { label: '加工时间', value: 'jgsj' }, { label: '待机时间', value: 'djsj' }, { label: '关机时间', value: 'gjsj' } ], checkedList: ['lyl'], dataList: [], url: { list: '/mdc/efficiencyReport/efficiencyList', listByType: '/mdc/MdcUtilizationRate/getByType', queryEquipmentType: '/mdc/mdcEquipmentType/queryEquipmentType' }, tableHeads: [] } }, nodePeople(val){ if (JSON.stringify(val) != '{}') { if (val.equipmentId != null) { this.queryParamPeople.parentId = val.equipmentId this.queryParamPeople.equipmentId = '' } else { this.queryParamPeople.parentId = val.key this.queryParamPeople.equipmentId = '' } this.searchQuery() } } }, filters: { numFilter(value) { if (value) { return parseFloat((value * 100).toFixed(2)) } else { return '0' } } }, methods: { checkSameData(dataList){ let cache = {}; //存储的是键是kclx 的值,值是kclx 在indeces中数组的下标 let indices = []; //数组中每一个值是一个数组,数组中的每一个元素是原数组中相同kclx的下标 dataList.map((item,index)=>{ let level1 = item.level1; let _index = cache[level1]; if(_index!==undefined){ indices[_index].push(index) }else{ cache[level1] = indices.length indices.push([index]) } }) let result = []; indices.map((item)=>{ item.map((index)=>{ result.push(dataList[index]) }) }) this.dataList = result props: { nodeTree: '', Type: '', nodePeople: '' }, created() { this.showIdentifying() this.dates = [moment().subtract('days', 8), moment().subtract('days', 1)] this.queryParam.startTime = moment(this.dates[0]).format('YYYYMMDD') this.queryParam.endTime = moment(this.dates[1]).format('YYYYMMDD') this.queryParam.typeTree = '1' this.loadData() this.queryGroup() }, checkSameData1(dataList){ let cache = {}; //存储的是键是kclx 的值,值是kclx 在indeces中数组的下标 let indices = []; //数组中每一个值是一个数组,数组中的每一个元素是原数组中相同kclx的下标 dataList.map((item,index)=>{ let level2 = item.level2; let _index = cache[level2]; if(_index!==undefined){ indices[_index].push(index) }else{ cache[level2] = indices.length indices.push([index]) } }) let result = []; indices.map((item)=>{ item.map((index)=>{ result.push(dataList[index]) }) }) this.dataList = result }, checkSameData2(dataList){ let cache = {}; //存储的是键是kclx 的值,值是kclx 在indeces中数组的下标 let indices = []; //数组中每一个值是一个数组,数组中的每一个元素是原数组中相同kclx的下标 dataList.map((item,index)=>{ let level3 = item.level3; let _index = cache[level3]; if(_index!==undefined){ indices[_index].push(index) }else{ cache[level3] = indices.length indices.push([index]) } }) let result = []; indices.map((item)=>{ item.map((index)=>{ result.push(dataList[index]) }) }) this.dataList = result }, // 合并 combineCell() { console.log(this.dataList) let list =this.dataList; for (let field in list[0]) { var k = 0; while (k < list.length) { list[k][field + 'span'] = 1; list[k][field + 'dis'] = false; for (var i = k + 1; i <= list.length - 1; i++) { if (list[k][field] == list[i][field] && list[k][field] != '') { list[k][field + 'span']++; list[k][field + 'dis'] = false; list[i][field + 'span'] = 1; list[i][field + 'dis'] = true; } else { break; } watch: { Type(valmath) { this.dataList = [] this.queryParam.typeTree = valmath }, nodeTree(val) { //监听currSelected 变化,将变化后的数值传递给 getCurrSelected 事件 if (JSON.stringify(val) != '{}') { if (val.equipmentId != null) { this.queryParamEquip.parentId = '' this.queryParamEquip.equipmentId = val.equipmentId } else { this.queryParamEquip.parentId = val.key this.queryParamEquip.equipmentId = '' } k = i; this.searchQuery() } }, nodePeople(val) { if (JSON.stringify(val) != '{}') { if (val.equipmentId != null) { this.queryParamPeople.parentId = val.equipmentId this.queryParamPeople.equipmentId = '' } else { this.queryParamPeople.parentId = val.key this.queryParamPeople.equipmentId = '' } this.searchQuery() } } return list; }, disabledDate(current){ //Can not slect days before today and today return current && current > moment().subtract('days', 1); filters: { numFilter(value) { if (value) { return parseFloat((value * 100).toFixed(2)) } else { return '0' } } }, initDeviceType(deviceList) { let dictCode = 'mdc_equipmentType' let items = [] items = getDictItemsFromCache(dictCode) if (deviceList && items.length > 0) { for (let a = 0; a < deviceList.length; a++) { if (items && items.length > 0) { for (let i = 0; i < items.length; i++) { if (deviceList[a].equipmentType == items[i].value) { deviceList[a].equipmentType = items[i].title methods: { checkSameData(dataList) { let cache = {} //存储的是键是kclx 的值,值是kclx 在indeces中数组的下标 let indices = [] //数组中每一个值是一个数组,数组中的每一个元素是原数组中相同kclx的下标 dataList.map((item, index) => { let level1 = item.level1 let _index = cache[level1] if (_index !== undefined) { indices[_index].push(index) } else { cache[level1] = indices.length indices.push([index]) } }) let result = [] indices.map((item) => { item.map((index) => { result.push(dataList[index]) }) }) this.dataList = result }, checkSameData1(dataList) { let cache = {} //存储的是键是kclx 的值,值是kclx 在indeces中数组的下标 let indices = [] //数组中每一个值是一个数组,数组中的每一个元素是原数组中相同kclx的下标 dataList.map((item, index) => { let level2 = item.level2 let _index = cache[level2] if (_index !== undefined) { indices[_index].push(index) } else { cache[level2] = indices.length indices.push([index]) } }) let result = [] indices.map((item) => { item.map((index) => { result.push(dataList[index]) }) }) this.dataList = result }, checkSameData2(dataList) { let cache = {} //存储的是键是kclx 的值,值是kclx 在indeces中数组的下标 let indices = [] //数组中每一个值是一个数组,数组中的每一个元素是原数组中相同kclx的下标 dataList.map((item, index) => { let level3 = item.level3 let _index = cache[level3] if (_index !== undefined) { indices[_index].push(index) } else { cache[level3] = indices.length indices.push([index]) } }) let result = [] indices.map((item) => { item.map((index) => { result.push(dataList[index]) }) }) this.dataList = result }, // 合并 combineCell() { console.log(this.dataList) let list = this.dataList for (let field in list[0]) { var k = 0 while (k < list.length) { list[k][field + 'span'] = 1 list[k][field + 'dis'] = false for (var i = k + 1; i <= list.length - 1; i++) { if (list[k][field] == list[i][field] && list[k][field] != '') { list[k][field + 'span']++ list[k][field + 'dis'] = false list[i][field + 'span'] = 1 list[i][field + 'dis'] = true } else { break } } } else { ajaxGetDictItems(dictCode, null).then((res) => { if (res.success) { let items = res.result for (let i = 0; i < items.length; i++) { if (deviceList[a].equipmentType == items[i].value) { deviceList[a].equipmentType = items[i].title } k = i } } return list }, disabledDate(current) { //Can not slect days before today and today return current && current > moment().subtract('days', 1) }, initDeviceType(deviceList) { let dictCode = 'mdc_equipmentType' let items = [] items = getDictItemsFromCache(dictCode) if (deviceList && items.length > 0) { for (let a = 0; a < deviceList.length; a++) { if (items && items.length > 0) { for (let i = 0; i < items.length; i++) { if (deviceList[a].equipmentType == items[i].value) { deviceList[a].equipmentType = items[i].title } } }) } else { ajaxGetDictItems(dictCode, null).then((res) => { if (res.success) { let items = res.result for (let i = 0; i < items.length; i++) { if (deviceList[a].equipmentType == items[i].value) { deviceList[a].equipmentType = items[i].title } } } }) } } } } }, exportExcel() { $("#Efficiency").table2excel({ exclude: ".noExl", name: "Excel Document Name", filename: "设备利用率", exclude_img: true, fileext: ".xls", exclude_links: true, exclude_inputs: false }); }, showIdentifying() { getAction(this.url.listByType, { type: 'lyl' }).then(res => { if (res.success) { this.identifying = res.result } }) }, 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:"不能取消查询开动率" }, exportExcel() { $('#Efficiency').table2excel({ exclude: '.noExl', name: 'Excel Document Name', filename: '设备利用率', exclude_img: true, fileext: '.xls', exclude_links: true, exclude_inputs: false }) }, showIdentifying() { getAction(this.url.listByType, { type: 'lyl' }).then(res => { if (res.success) { this.identifying = res.result } }) }, 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() { // if(this.queryParam.typeTree == "1"){ // // this.queryParam.TreeIDTwo = "" // this.queryParam.parentId = this.queryParamEquip.parentId // this.queryParam.equipmentId = this.queryParamEquip.equipmentId // }else{ // // this.queryParam.TreeIDOne = "" // this.queryParam.parentId = this.queryParamPeople.parentId // this.queryParam.equipmentId = "" // } // this.loadData() // // this.onClearSelected() // }, // searchReset() { // this.typeTree = this.queryParam.typeTree // this.typeParent = this.queryParams.parentId // this.queryParam = {} // this.dates = [] // this.queryParam.typeTree = this.typeTree // this.queryParam.parentId = this.typeParent // this.loadData() // // this.onClearSelected() // }, searchQuery() { if(this.dates != ''){ if(this.queryParam.typeTree == "1"){ this.queryParam.parentId = this.queryParamEquip.parentId this.queryParam.equipmentId = this.queryParamEquip.equipmentId }else{ this.queryParam.parentId = this.queryParamPeople.parentId this.queryParam.equipmentId = "" return false } this.checkedList = checkedList }, // searchQuery() { // if(this.queryParam.typeTree == "1"){ // // this.queryParam.TreeIDTwo = "" // this.queryParam.parentId = this.queryParamEquip.parentId // this.queryParam.equipmentId = this.queryParamEquip.equipmentId // }else{ // // this.queryParam.TreeIDOne = "" // this.queryParam.parentId = this.queryParamPeople.parentId // this.queryParam.equipmentId = "" // } // this.loadData() // // this.onClearSelected() // }, // searchReset() { // this.typeTree = this.queryParam.typeTree // this.typeParent = this.queryParams.parentId // this.queryParam = {} // this.dates = [] // this.queryParam.typeTree = this.typeTree // this.queryParam.parentId = this.typeParent // this.loadData() // // this.onClearSelected() // }, searchQuery() { console.log('dates',this.dates) if (this.dates != '') { if (this.queryParam.typeTree == '1') { this.queryParam.parentId = this.queryParamEquip.parentId this.queryParam.equipmentId = this.queryParamEquip.equipmentId } else { this.queryParam.parentId = this.queryParamPeople.parentId this.queryParam.equipmentId = '' } this.loadData() } else { this.$notification.warning({ message: '消息', description: '请选择时间' }) } // this.onClearSelected() }, searchReset() { this.typeTree = this.queryParam.typeTree this.typeParent = this.queryParam.parentId this.typeEquipment = this.queryParam.equipmentId this.queryParam = {} this.dates = [] this.queryParam.typeTree = this.typeTree this.queryParam.parentId = this.typeParent this.queryParam.equipmentId = this.typeEquipment // this.ipagination.current = 1 this.loadData() }else{ this.$notification.warning({ message:'消息', description:"请选择时间" }); } // this.onClearSelected() }, searchReset() { this.typeTree = this.queryParam.typeTree this.typeParent = this.queryParam.parentId this.typeEquipment = this.queryParam.equipmentId this.queryParam = {} this.dates = [] this.queryParam.typeTree = this.typeTree this.queryParam.parentId = this.typeParent this.queryParam.equipmentId = this.typeEquipment // this.ipagination.current = 1 this.loadData(); // this.queryParam = {} // this.dates = [] // this.loadData() // this.onClearSelected() }, loadData() { this.tableHeads = [] this.dataList = [] getAction(this.url.list, this.queryParam).then(res => { if (res.success) { this.tableHeads = res.result.dates this.dataList = res.result.mdcEfficiencyList this.checkSameData(this.dataList) this.checkSameData1(this.dataList) this.checkSameData2(this.dataList) this.combineCell(); // this.initDeviceType(this.dataList) // this.queryParam = {} // this.dates = [] // this.loadData() // this.onClearSelected() }, loadData() { this.tableHeads = [] this.dataList = [] getAction(this.url.list, this.queryParam).then(res => { if (res.success) { this.tableHeads = res.result.dates this.dataList = res.result.mdcEfficiencyList this.checkSameData(this.dataList) this.checkSameData1(this.dataList) this.checkSameData2(this.dataList) this.combineCell() // this.initDeviceType(this.dataList) } }) } }) }, 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 }) } } } } </script> <style scoped> .table2{ width: 100%; height: 100%; overflow: auto; } .table2 thead tr th:first-child, .table tbody tr .tdgu{ position: sticky; left: 0; z-index: 1; } .table tbody tr .wenzi{ /*writing-mode: vertical-lr;*/ /*text-orientation: upright;*/ transform: rotate(360deg); writing-mode: vertical-lr; letter-spacing: 2px; } .table tbody tr .kaitou{ z-index: 1; background-color: white; } .table tbody tr .tdgu1{ position: sticky; left: 50px; z-index: 2; } .table tbody tr .tdgu2{ position: sticky; left: 100px; z-index: 2; } .table tbody tr .tdgu3{ position: sticky; left: 150px; z-index: 2; } .table tbody tr .tdgu4{ position: sticky; left: 250px; z-index: 2; } .table tbody tr .tdgu5{ position: sticky; left: 400px; z-index: 2; } .table2 thead tr .timeth, .table2 thead tr .thgu { position: sticky; top:0; z-index: 3; } .table2 thead .gudingth th{ position: sticky; top: 32px; z-index: 2; } .table2 thead .equipname .name{ z-index: 3; } .table2 thead .equipname .dong1{ z-index: 4; left: 0; /*border: 1px solid #000;*/ } .table2 thead .equipname .dong2{ z-index: 5; left: 50px; } .table2 thead .equipname .dong3{ z-index: 5; left: 100px; } .table2 thead .equipname .dong4{ z-index: 5; left: 150px; } .table2 thead .equipname .dong5{ z-index: 5; left: 250px; } .table2 thead .equipname .dong6{ z-index: 5; left: 400px; } @media screen and (min-width: 1920px){ #Efficiency{ height: 687px!important; overflow: scroll; .table2 { width: 100%; height: 100%; overflow: auto; } } @media screen and (min-width: 1680px) and (max-width: 1920px){ #Efficiency{ height: 687px!important; overflow: scroll; .table2 thead tr th:first-child, .table tbody tr .tdgu { position: sticky; left: 0; z-index: 1; } } @media screen and (min-width: 1400px) and (max-width: 1680px){ #Efficiency{ height: 540px!important; overflow: scroll; .table tbody tr .wenzi { /*writing-mode: vertical-lr;*/ /*text-orientation: upright;*/ transform: rotate(360deg); writing-mode: vertical-lr; letter-spacing: 2px; } } @media screen and (min-width: 1280px) and (max-width: 1400px){ #Efficiency{ height: 440px!important; overflow: scroll; .table tbody tr .kaitou { z-index: 1; background-color: white; } } @media screen and (max-width: 1280px){ #Efficiency{ height: 440px!important; overflow: scroll; .table tbody tr .tdgu1 { position: sticky; left: 50px; z-index: 2; } } #Efficiency .table_guding1{ position: absolute; overflow: hidden; width: 500px; } #Efficiency .table_guding2{ overflow-x: scroll; width: 500px; } .identifyingclass { width: 55px; height: 15px; display: inline-block } .dataContent { white-space: nowrap; /*margin: 0;*/ /*border: none;*/ border-collapse: separate; border-spacing: 0; /*table-layout: fixed;*/ border: 1px solid #ccc; /*border: 1px solid #ccc;*/ width: 100%; /*height: 100%;*/ /*overflow: hidden;*/ /*overflow-y: auto;*/ text-align: center; } .table tbody tr .tdgu2 { position: sticky; left: 100px; z-index: 2; } /*.dataContent .fixed th {*/ /*width: 50px;*/ /*}*/ .table tbody tr .tdgu3 { position: sticky; left: 150px; z-index: 2; } .dataContent .thead th { background-color: #fafafa; text-align: center; height: 30px; padding: 5px; } .table tbody tr .tdgu4 { position: sticky; left: 250px; z-index: 2; } .dataContent .notfixed th { /*width: auto;*/ } .table tbody tr .tdgu5 { position: sticky; left: 400px; z-index: 2; } /*.dataContent tr td {*/ .table2 thead tr .timeth, .table2 thead tr .thgu { position: sticky; top: 0; z-index: 3; } .table2 thead .gudingth th { position: sticky; top: 32px; z-index: 2; } .table2 thead .equipname .name { z-index: 3; } .table2 thead .equipname .dong1 { z-index: 4; left: 0; /*border: 1px solid #000;*/ } .table2 thead .equipname .dong2 { z-index: 5; left: 50px; } .table2 thead .equipname .dong3 { z-index: 5; left: 100px; } .table2 thead .equipname .dong4 { z-index: 5; left: 150px; } .table2 thead .equipname .dong5 { z-index: 5; left: 250px; } .table2 thead .equipname .dong6 { z-index: 5; left: 400px; } @media screen and (min-width: 1920px) { #Efficiency { height: 687px !important; overflow: scroll; } } @media screen and (min-width: 1680px) and (max-width: 1920px) { #Efficiency { height: 687px !important; overflow: scroll; } } @media screen and (min-width: 1400px) and (max-width: 1680px) { #Efficiency { height: 540px !important; overflow: scroll; } } @media screen and (min-width: 1280px) and (max-width: 1400px) { #Efficiency { height: 440px !important; overflow: scroll; } } @media screen and (max-width: 1280px) { #Efficiency { height: 440px !important; overflow: scroll; } } #Efficiency .table_guding1 { position: absolute; overflow: hidden; width: 500px; } #Efficiency .table_guding2 { overflow-x: scroll; width: 500px; } .identifyingclass { width: 55px; height: 15px; display: inline-block } .dataContent { white-space: nowrap; /*margin: 0;*/ /*border: none;*/ border-collapse: separate; border-spacing: 0; /*table-layout: fixed;*/ border: 1px solid #ccc; /*border: 1px solid #ccc;*/ width: 100%; /*height: 100%;*/ /*overflow: hidden;*/ /*overflow-y: auto;*/ text-align: center; } /*.dataContent .fixed th {*/ /*width: 50px;*/ /*}*/ .dataContent .thead th { background-color: #fafafa; text-align: center; height: 30px; padding: 5px; } .dataContent .notfixed th { /*width: auto;*/ } /*.dataContent tr td {*/ /*height: 35px;*/ /*}*/ /*}*/ .dataContent .mathData td { padding: 10px; /*display: none;*/ } .dataContent .mathData td { padding: 10px; /*display: none;*/ } .dataContent .mathData .td { /*background-color: #ff9bd2;*/ display: inline-block; padding: 10px; } .dataContent .mathData .td { /*background-color: #ff9bd2;*/ display: inline-block; padding: 10px; } .dataContent .mathData .tdd { /*display: none;*/ } td { vertical-align: middle; } .pink { background-color: #ff9bd2; } .dataContent .mathData .tdd { /*display: none;*/ } .yellow { background-color: #e8ff37; } td { vertical-align: middle; } .green { background-color: #99ff4e; } .pink { background-color: #ff9bd2; } .yellow { background-color: #e8ff37; } .green { background-color: #99ff4e; } </style> src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue
@@ -6,12 +6,21 @@ <div class="table-page-search-wrapper"> <a-form layout="inline" @keyup.enter.native="searchQuery"> <a-row :gutter="24"> <a-col :md="9" :sm="9" :xs="9"> <a-col :md="4" :sm="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="5" :sm="5" :xs="5"> <a-form-item label="时间"> <a-range-picker @change="dateParamChange" :disabledDate="disabledDate" format="YYYYMMDD" v-model="dates"/> </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-select v-model="queryParam.shiftId" placeholder="请选择班制" @change="initShiftSubList" :allowClear = "allowClear"> @@ -21,7 +30,7 @@ </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-select v-model="queryParam.shiftSubId" placeholder="请选择班次" @change="initShiftSubListChange" :allowClear = "allowClearSu"> <a-select-option v-for="(em,index) in shiftSubList" :key="index" :value="em.value"> @@ -30,37 +39,46 @@ </a-select> </a-form-item> </a-col> </a-row> <a-row :gutter="24"> <a-col :md="15" :sm="15" :xs="15"> <a-col :md="9" :sm="9" :xs="9"> <a-checkbox-group :value="checkedList" :default-value="['lyl']" :options="efficiencyOptions" @change="efficiencyOptionsOnChange"/> </a-col> <a-col :md="3" :sm="3" :xs="3"> <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> <a-col :md="5" :sm="5"> <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-space> </a-col> <a-col :md="3" :sm="3" :xs="3"> <a-button type="primary" @click="searchReset" icon="reload">重置</a-button> </a-col> <a-col :md="3" :sm="3" :xs="3"> <a-button type="primary" @click="exportExcel" icon="download">导出</a-button> <a-col :md="10" :sm="10"> <table cellpadding="5" cellspacing="1" style="border: 1px solid darkgray;"> <tr> <td v-for="(item, index) in identifying">{{item.title}}</td> </tr> <tr> <td style="text-align:center;" v-for="(item, index) in identifying"> <div class="identifyingclass" :style="{background: item.color}"></div> </td> </tr> </table> </a-col> </a-row> </a-form> </div> <div style="width: 530px;top: 0; right: 0px;"> <table cellpadding="5" cellspacing="1" style="border: 1px solid darkgray;"> <tr> <td v-for="(item, index) in identifying">{{item.title}}</td> </tr> <tr> <td style="text-align:center;" v-for="(item, index) in identifying"> <div class="identifyingclass" :style="{background: item.color}"></div> </td> </tr> </table> </div> </div> <!--<div style="width: 530px;position:absolute;top: 10px; right: 0;">--> <!--<table cellpadding="5" cellspacing="1" style="border: 1px solid darkgray;">--> <!--<tr>--> <!--<td v-for="(item, index) in identifying">{{item.title}}</td>--> <!--</tr>--> <!--<tr>--> <!--<td style="text-align:center;" v-for="(item, index) in identifying">--> <!--<div class="identifyingclass" :style="{background: item.color}"></div>--> <!--</td>--> <!--</tr>--> <!--</table>--> <!--</div>--> </div> <div class="container" id="EfficiencyShift" style="margin-top: 20px;"> <div class="table2"> @@ -164,6 +182,7 @@ allowClear:true, allowClearSu:true, dates: [], selectList:[], identifying: [], queryParam: {}, queryParamEquip:{}, @@ -186,7 +205,8 @@ list: '/mdc/efficiencyReport/efficiencyShiftList', listByType: '/mdc/MdcUtilizationRate/getByType', initShiftList: '/mdc/mdcMdcShift/initShiftList', initShiftSubList: '/mdc/mdcShiftSub/initShiftSubList' initShiftSubList: '/mdc/mdcShiftSub/initShiftSubList', queryEquipmentType: '/mdc/mdcEquipmentType/queryEquipmentType' }, tableHeads: [], shiftList: [], @@ -202,6 +222,7 @@ this.queryParam.endTime = moment(this.dates[1]).format('YYYYMMDD') this.queryParam.typeTree = "1" this.loadData(); this.queryGroup() }, watch: { Type(valmath){ @@ -466,6 +487,24 @@ // this.initDeviceType(this.dataList) } }) }, 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 }) } } } @@ -654,9 +693,9 @@ .dataContent .mathData .tdd { /*display: none;*/ } .seach-content{ display: flex; justify-content: space-between; } /*.seach-content{*/ /*display: flex;*/ /*justify-content: space-between;*/ /*}*/ </style> src/views/mdc/base/modules/equipmentAvailCompare/equipmentAvailCompareMain.vue
@@ -125,6 +125,7 @@ // this.$set(this.queryParam, 'tierName', val.title) this.queryParamEquip.parentId = '' this.queryParams.equipmentId = val.equipmentId this.queryParams.equipmentName = val.equipmentName this.queryParamEquip.equipmentId = val.equipmentId this.searchQuery() } else { src/views/mdc/base/modules/equipmentDayAvail/equipmentDayAvailMain.vue
@@ -138,6 +138,8 @@ // this.$set(this.queryParam, 'tierName', val.title) this.queryParamEquip.parentId = '' this.queryParams.equipmentId = val.equipmentId this.queryParams.equipmentName = val.equipmentName console.log('XXXval=', val) this.queryParamEquip.equipmentId = val.equipmentId this.searchQuery() } else { src/views/mdc/base/modules/mdcDriveTypeParamConfig/MdcDriveTypeParamConfigForm.vue
@@ -139,7 +139,7 @@ ], englishName: [ { required: true, message: '请输入英文名称!' }, { pattern: /^.{6,18}$/, message: '请输入6到18位任意字符!' }, { pattern: /^.{2,18}$/, message: '请输入2到18位任意字符!' ,trigger:'blur'}, ], showFlag: [ { required: true, message: '请输入显示标志!' }, src/views/mdc/base/modules/mdcUtilizationRate/MdcUtilizationRateModel.vue
@@ -32,6 +32,13 @@ </a-form-item> </a-col> </a-row> <a-row :gutter="24"> <a-col :span="24"> <a-form-item label="颜色" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-input type="color" v-decorator="['rateParameterColor',validatorRules.rateParameterColor]"></a-input> </a-form-item> </a-col> </a-row> </a-form> </a-spin> </a-modal> @@ -95,7 +102,7 @@ this.model = Object.assign({}, record) this.visible = true this.$nextTick(() => { this.form.setFieldsValue(pick(this.model, 'rateParameterCategory', 'rateParameterLevel', 'minimumRange', 'maximumRange')) this.form.setFieldsValue(pick(this.model, 'rateParameterCategory', 'rateParameterLevel', 'minimumRange', 'maximumRange', 'rateParameterColor')) }) }, close() { @@ -116,16 +123,16 @@ if (res.success) { // that.$message.success("保存成功") that.$notification.success({ message:'消息', description:"保存成功" }); message: '消息', description: '保存成功' }) that.$emit('ok', res.result) } else { // that.$message.warning(res.message) that.$notification.warning({ message:'消息', description:res.message }); message: '消息', description: res.message }) } }).finally(() => { that.confirmLoading = false src/views/system/WorkshopSignageManagement.vue
@@ -7,15 +7,17 @@ <!-- 搜索区域 --> <a-form layout="inline" @keyup.enter.native="searchQuery"> <a-row :gutter="24"> <a-col :md="12" :sm="8"> <a-form-item label="车间名称" :labelCol="{ span: 5 }" :wrapperCol="{ span: 18, offset: 1 }"> <a-col :md="6" :sm="6"> <a-form-item label="车间名称" :labelCol="{ span: 5 }" :wrapperCol="{ span: 19}"> <a-input placeholder="" v-model="queryParam.workshopName"></a-input> </a-form-item> </a-col> <span style="float: left; overflow: hidden" class="table-page-search-submitButtons"> <a-col :md="12" :sm="24"> <a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 21px">查询</a-button> <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> <a-col> <a-space> <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> <a-button type="primary" @click="searchReset" icon="reload">重置</a-button> </a-space> </a-col> </span> </a-row> @@ -148,7 +150,7 @@ <!-- 表单区域 --> <workshop-modal ref="modalForm" @ok="modalFormOk"></workshop-modal> <!--新增车间--> <select-device-modal ref="selectUserModal" @selectFinished="selectOK"></select-device-modal> <select-device-modal ref="selectDeviceModal" @selectFinished="selectOK" :title="'添加已有设备'"></select-device-modal> <!--已有设备--> </a-row> </template> @@ -355,6 +357,8 @@ if (res.success) { this.dataSource2 = res.result.records this.ipagination2.total = res.result.total }else{ this.dataSource2=[] } this.loading2 = false }) @@ -456,11 +460,11 @@ if (this.currentWorkshopId == '') { this.$message.error('请选择一个车间!') } else { this.$refs.selectUserModal.visible = true this.$refs.selectUserModal.selectedRowKeys = [] this.$refs.selectUserModal.selectedRows = [] this.$refs.selectUserModal.checkedKeys = [] this.$refs.selectUserModal.expandAll() this.$refs.selectDeviceModal.visible = true this.$refs.selectDeviceModal.selectedRowKeys = [] this.$refs.selectDeviceModal.selectedRows = [] this.$refs.selectDeviceModal.checkedKeys = [] this.$refs.selectDeviceModal.expandAll() } }, @@ -508,7 +512,7 @@ } .close-circle{ position: absolute; z-index: 9999; z-index: 1; right: 15px; top: 15px; cursor: pointer; src/views/system/modules/SelectDeviceModal.vue
@@ -112,11 +112,13 @@ default() { return true } }, title: { type: String } }, data() { return { title: '添加已有设备', cardLoading: false, loading: false, treeDataSource: [], @@ -264,19 +266,21 @@ refreshTree() { this.queryTreeData() }, onCheck(value) { onCheck(value, obj) { this.checkedKeys = value console.log('obj,', obj) this.deviceNodes = obj.checkedNodes.filter(item => item.data.props.equipmentId).map(item => item.data.props.equipmentId) console.log(this.deviceNodes) }, handleCancel() { this.visible = false }, handleOk() { if (this.checkedKeys.length > 0) { this.$emit('selectFinished', this.checkedKeys) this.$emit('selectFinished', this.deviceNodes) } this.visible = false } // add() { // this.visible = true src/views/user/Login.vue
@@ -144,7 +144,10 @@ }, // 登录后台成功 requestSuccess(loginResult) { this.$router.push({ path: "/isps/userAnnouncement" }).catch(() => { // this.$router.push({ path: "/isps/userAnnouncement" }).catch(() => { // console.log('登录跳转首页出错,这个错误从哪里来的') // }) this.$router.push({ path: "/dashboard/analysis" }).catch(() => { console.log('登录跳转首页出错,这个错误从哪里来的') }) this.$notification.success({