From 5a74ff63f47921f97b6c3c35751b24b085a1a78c Mon Sep 17 00:00:00 2001 From: qushaowei <qushaowei@163.com> Date: 星期五, 26 一月 2024 10:51:14 +0800 Subject: [PATCH] Merge branch 'master' of http://117.34.109.166:18448/r/vue_mdc_430 into develop --- src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModalEdit.vue | 27 + src/views/mdc/base/DeviceBaseInfo.vue | 59 ++++ src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModal.vue | 116 ++++++--- src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue | 1 src/views/mdc/base/modules/DeviceProcessReport/DeviceProcessReportList.vue | 52 ++-- src/views/mdc/base/EquipmentOperationParamsAlarm.vue | 107 ++++++++ src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationList.vue | 10 src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementList.vue | 70 ++++- src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModal.vue | 29 + src/views/WorkshopSignage.vue | 13 src/views/mdc/base/modules/deviceBaseInfo/EquipmentList.vue | 49 +++ src/views/mdc/base/modules/WorkshopSignage/EquipmentDetailModal.vue | 93 ++----- src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModalEdit.vue | 33 ++ src/views/mdc/base/modules/alarmAnalysis/alarmAnalysisMain.vue | 16 14 files changed, 472 insertions(+), 203 deletions(-) diff --git a/src/views/WorkshopSignage.vue b/src/views/WorkshopSignage.vue index 0d993f3..c9209c4 100644 --- a/src/views/WorkshopSignage.vue +++ b/src/views/WorkshopSignage.vue @@ -37,6 +37,7 @@ v-on:resizing="resize($event, index)" v-on:dragging="resize($event, index)" :parentLimitation="parentLimitation" + :parentH="parentH" :minw="70" :minh="70" :isDraggable="isDraggable" @@ -108,6 +109,7 @@ isResizable: false, // 鏄惁寮�鍚缉鏀� isSwitchChecked: false, // 鏄惁寮�鍚姛鑳� timingAcquisition: null, // 瀹氭椂鍒锋柊鏄惁寮�鍚� + parentH: 5000,//鐖剁骇楂樺害 deviceList: [ // { // equipmentId: '123213213123232',// 璁惧ID @@ -190,6 +192,7 @@ )})` this.$refs.deviceContainerRef.style.height = (this.windowHeight - this.pageHeaderHeight) + 'px' + this.parentH = this.windowHeight - this.pageHeaderHeight this.parentLimitation = true // 鍦ㄧ埗鍏冪礌楂樺害璁剧疆鍚庡啀璁剧疆闄愬埗鎷栨嫿鍖哄煙锛屼笉杩欐牱鏈夋鐜囧鑷寸埗鍏冪礌楂樺害鏈缃氨闄愬埗鎷栨嫿 }) }, @@ -277,7 +280,6 @@ openDetail(item) { if (!this.isSwitchChecked) { if (item.equipmentStatus == 0) { - // this.$message.warn("璁惧澶勪簬鍏虫満鐘舵�侊紒"); this.$message.warning('璁惧澶勪簬鍏虫満鐘舵�侊紒') return false } @@ -295,7 +297,8 @@ * 娴忚鍣ㄥ昂瀵稿彂鐢熸敼鍙樻椂瑙﹀彂 */ handleWindowSizeChange() { - if (this.isFullScreen) location.reload() // 濡傛灉椤甸潰杩涘叆鏃朵负鍏ㄥ睆妯″紡锛屽垯鍦ㄥ垏鎹㈡ā寮忔椂閲嶆柊鍔犺浇椤甸潰浠ラ噸鏂拌幏鍙栨祻瑙堝櫒鍙鍖哄煙楂樺害 + this.isFullScreen = !this.isFullScreen + if (!this.isFullScreen) location.reload() // 濡傛灉涓哄叏灞忔ā寮忥紝鍒欏湪鍒囨崲妯″紡鏃堕噸鏂板姞杞介〉闈互閲嶆柊鑾峰彇娴忚鍣ㄥ彲瑙嗗尯鍩熼珮搴� } }, created() { @@ -359,10 +362,6 @@ justify-content: space-between; .single-status-info { - /*width: 70px;*/ - /*display: flex;*/ - /*align-items: center;*/ - /*justify-content: space-between;*/ .status-square { width: 14px; @@ -376,8 +375,6 @@ .content-container { width: 100%; - /*height: calc(100% - 200px);*/ - /*height: 100%;*/ background-repeat: no-repeat; background-size: 100% 100%; diff --git a/src/views/mdc/base/DeviceBaseInfo.vue b/src/views/mdc/base/DeviceBaseInfo.vue index 3c7ccf1..b697ecf 100644 --- a/src/views/mdc/base/DeviceBaseInfo.vue +++ b/src/views/mdc/base/DeviceBaseInfo.vue @@ -36,7 +36,7 @@ <equipment-layout :dataList="dataList" :equipmentId="selectEquementId" :node="selectEquement"></equipment-layout> </a-tab-pane> <a-tab-pane key="2" tab="鍒楄〃" force-render> - <equipment-list :dataSource="dataList"></equipment-list> + <equipment-list :dataSource="dataList" @editEquipmentStatus="editEquipmentStatus"></equipment-list> </a-tab-pane> </a-tabs> </div> @@ -81,8 +81,10 @@ workNumber: 0, allNumber: 0, url: { - list: '/mdc/mdcEquipment/queryEquipmentMonitorList' + list: '/mdc/mdcEquipment/queryEquipmentMonitorList', + updateEquipmentStatus:'/mdc/mdcEquipment/updateEquipmentStatus' }, + param:{}, timer:null, timerzhun:null } @@ -92,7 +94,7 @@ // setInterval(this.equipmentStatistics(), 5*1000); }, methods: { - equipmentStatistics(param) { + equipmentStatistics(param,resopnse={key:false}) { getAction(this.url.list, param).then((res) => { this.dataList = [] if (res.success) { @@ -105,6 +107,13 @@ this.dataList = res.result // console.log(this.dataList) this.allNumber = this.dataList.length + if(resopnse.key){ + this.$notification.success({ + key:'equipmentStatus', + message: '娑堟伅', + description: resopnse.message, + }); + } for (let i = 0; i < this.dataList.length; i++) { let item = this.dataList[i] switch (item.oporationDict) { @@ -140,24 +149,54 @@ this.selectEquement = val.equipmentId clearInterval(this.timer); this.timer = null - let param = {} if (!val.equipmentId) { - param.key = val.key + this.param.key=val.key clearInterval(this.timerzhun); this.timerzhun = null - this.equipmentStatistics(param) + this.equipmentStatistics(this.param) this.timer = setInterval(() => { - setTimeout( this.equipmentStatistics(param),0) + setTimeout( this.equipmentStatistics(this.param),0) },1000*10) }else{ - param.key = val.parentId + this.param.key=val.parentId clearInterval(this.timerzhun); this.timerzhun = null - this.equipmentStatistics(param) + this.equipmentStatistics(this.param) this.timer = setInterval(() => { - setTimeout( this.equipmentStatistics(param),0) + setTimeout( this.equipmentStatistics(this.param),0) },1000*10) } + }, + + /** + * 鍗曞嚮鐘舵�佸弽棣堝悗瑙﹀彂 + * @param record + */ + editEquipmentStatus(record){ + console.log('瀛愮粍浠秗ecord',record.id) + const _this=this + this.$notification.info({ + key:'equipmentStatus', + message: '娑堟伅', + description: '鍙嶉涓�...', + }); + getAction(this.url.updateEquipmentStatus,{id:record.id}) + .then(res=>{ + if(res.success) { + _this.equipmentStatistics(this.param,{key:true,message:res.message}) + }else{ + this.$notification.warning({ + message:'娑堟伅', + description:res.message + }); + } + }) + .catch(err=>{ + this.$notification.error({ + message:'娑堟伅', + description:err.message + }); + }) } }, mounted(){ diff --git a/src/views/mdc/base/EquipmentOperationParamsAlarm.vue b/src/views/mdc/base/EquipmentOperationParamsAlarm.vue new file mode 100644 index 0000000..2c37b68 --- /dev/null +++ b/src/views/mdc/base/EquipmentOperationParamsAlarm.vue @@ -0,0 +1,107 @@ +<template> + <a-card :bordered="false"> + <!-- 鏌ヨ鍖哄煙 --> + <div class="table-page-search-wrapper"> + <a-form layout="inline" @keyup.enter.native="searchQuery"> + <a-row :gutter="24"> + <a-col :md="6" :sm="12"> + <a-form-item label="璁惧缂栧彿"> + <a-input placeholder="璇疯緭鍏ヨ澶囩紪鍙�" v-model="queryParam.equipmentid"></a-input> + </a-form-item> + </a-col> + + <a-col :md="6" :sm="8"> + <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> + <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button> + </a-col> + </a-row> + </a-form> + </div> + + <a-table + ref="table" + bordered + size="middle" + rowKey="equipmentid" + :scroll="{x:'max-content',y:600}" + :columns="columns" + :dataSource="dataSource" + :pagination="ipagination" + :loading="loading"></a-table> + </a-card> +</template> + +<script> + import { JeecgListMixin } from '@/mixins/JeecgListMixin' + + export default { + name: 'EquipmentOperationParamsAlarm', + mixins: [JeecgListMixin], + data() { + return { + name: 'EquipmentOperationParamsAlarm', + description: '杩欐槸璁惧杩愯鍙傛暟鎶ヨ椤甸潰', + queryParam: {}, + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 + } + }, + { + title: '璁惧缂栧彿', + align: 'center', + dataIndex: 'equipmentid', + width: 250 + }, + { + title: '鎶ヨ鏃堕棿', + align: 'center', + dataIndex: 'collecttime', + width: 250 + }, + { + title: '璁惧畾鍊�', + align: 'center', + width: 250, + dataIndex: 'setvalue' + }, + { + title: '瀹為檯鍊�', + align: 'center', + width: 250, + dataIndex: 'realvalue' + }, + { + title: '鎶ヨ鍙�', + align: 'center', + width: 250, + dataIndex: 'alarmno' + }, + { + title: '鎶ヨ鍐呭', + align: 'center', + width: 250, + dataIndex: 'alarmcontent' + } + ], + url: { + list: '/mdc/equipmentBeilvAlarm/list' + }, + /* 鎺掑簭鍙傛暟 */ + isorter: { + column: 'collecttime', + order: 'desc' + } + } + } + } +</script> +<style scoped> + @import '~@assets/less/common.less' +</style> \ No newline at end of file diff --git a/src/views/mdc/base/modules/DeviceProcessReport/DeviceProcessReportList.vue b/src/views/mdc/base/modules/DeviceProcessReport/DeviceProcessReportList.vue index 3f87906..f301ebf 100644 --- a/src/views/mdc/base/modules/DeviceProcessReport/DeviceProcessReportList.vue +++ b/src/views/mdc/base/modules/DeviceProcessReport/DeviceProcessReportList.vue @@ -41,23 +41,23 @@ </div> <div class="container" id="EfficiencyShift" style="flex:1;overflow: hidden"> - <a-table :columns="columns" rowKey="equipmentId" :dataSource="dataSource.records" :scroll="{x:'max-content',y:scrollY}" :pagination="false" bordered> + <a-table :columns="columns" rowKey="equipmentId" :dataSource="dataSource" :scroll="{x:'max-content',y:scrollY}" :pagination="false" bordered> <span slot="duration" slot-scope="text">{{getFormattedTime(text)}}</span> </a-table> </div> - <div class="pagination"> - <a-pagination - :total=dataSource.total - :show-total="(total, range) => `${range[0]}-${range[1]} 鍏� ${total} 鏉" - :page-size="+queryParam.pageSize" - :default-current="1" - :current=+queryParam.pageNo - show-size-changer - :pageSizeOptions="['20','30','40','50']" - @change="handlePageNoChange" - @showSizeChange="handlePageSizeChange" - /> - </div> + <!--<div class="pagination">--> + <!--<a-pagination--> + <!--:total=dataSource.total--> + <!--:show-total="(total, range) => `${range[0]}-${range[1]} 鍏� ${total} 鏉"--> + <!--:page-size="+queryParam.pageSize"--> + <!--:default-current="1"--> + <!--:current=+queryParam.pageNo--> + <!--show-size-changer--> + <!--:pageSizeOptions="['20','30','40','50']"--> + <!--@change="handlePageNoChange"--> + <!--@showSizeChange="handlePageSizeChange"--> + <!--/>--> + <!--</div>--> </div> </template> @@ -95,7 +95,7 @@ title: '搴忓彿', dataIndex: '', key: 'rowIndex', - width: 70, + width: 60, align: 'center', customRender: function(t, r, index) { return parseInt(index) + 1 @@ -106,18 +106,18 @@ title: '璁惧缁熶竴缂栧彿', align: 'center', dataIndex: 'equipmentId', - width: 120 + width: 200 }, { title: '璁惧鍚嶇О', align: 'center', - width: 150, + width: 200, dataIndex: 'equipmentName' }, { title: '椹卞姩绫诲瀷', align: 'center', - width: 110, + width: 100, dataIndex: 'driveType' }, { @@ -129,7 +129,7 @@ { title: '鍔犲伐浠舵暟', align: 'center', - width: 80, + width: 100, dataIndex: 'processCount' }, { @@ -137,14 +137,14 @@ dataIndex: 'duration', align: 'center', scopedSlots: { customRender: 'duration' }, - width: 110 + width: 150 }, - { - title: '鏃ユ湡', - dataIndex: 'theDate', - align: 'center', - width: 110 - } + // { + // title: '鏃ユ湡', + // dataIndex: 'theDate', + // align: 'center', + // width: 110 + // } ], dataSource: [], driveTypeList: [], diff --git a/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementList.vue b/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementList.vue index f8ee888..f04727f 100644 --- a/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementList.vue +++ b/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementList.vue @@ -6,7 +6,7 @@ <a-row :gutter="24"> <a-col :md="7" :sm="7"> <a-form-item label="鏃堕棿"> - <a-range-picker @change="dateParamChange" v-model="dates" format="YYYY-MM-DD HH:mm:ss"/> + <a-range-picker @change="dateParamChange" v-model="dates" format="YYYYMMDD"/> </a-form-item> </a-col> <a-col :md="5" :sm="5"> @@ -79,6 +79,9 @@ </span> <span slot="model" slot-scope="text" style="font-weight: bold"> <j-ellipsis :value="text" :length="8"/> + </span> + <span slot="duration" slot-scope="text"> + {{text|getFormattedTime}} </span> </a-table> </div> @@ -163,25 +166,25 @@ { title: '鏃ユ湡', align: 'center', - dataIndex: 'effectiveDate', + dataIndex: 'theDate', width:150 // scopedSlots:{customRender:'startTime'}, // customRender:(text,row,index) => { // return moment(text).format("YYYY-MM-DD HH:mm:ss") // } }, - { - title: '鐝寮�濮嬫椂闂�', - align: 'center', - dataIndex: 'startDate', - width:150 - }, - { - title: '鐝缁撴潫鏃堕棿', - align: 'center', - dataIndex: 'endDate', - width:150 - }, + // { + // title: '鐝寮�濮嬫椂闂�', + // align: 'center', + // dataIndex: 'startDate', + // width:150 + // }, + // { + // title: '鐝缁撴潫鏃堕棿', + // align: 'center', + // dataIndex: 'endDate', + // width:150 + // }, { title: '鍔犵彮寮�濮嬫椂闂�', align: 'center', @@ -195,10 +198,17 @@ width:150 }, { + title: '鍔犵彮鏃堕暱', + align: 'center', + dataIndex: 'duration', + scopedSlots: {customRender: 'duration'}, + width:200 + }, + { title: '澶囨敞', align: 'center', dataIndex: 'remark', - width:150 + width:210 }, { title: '鎿嶄綔', @@ -257,6 +267,36 @@ return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; }, }, + filters:{ + /** + * 鏍煎紡鍖栨椂闂� + * @param seconds 绉掓暟 + * @returns '' 鏍煎紡鍖栧悗鏃堕棿瀛楃涓� + */ + getFormattedTime(seconds) { + var hours = Math.floor(seconds / 3600) + var minutes = Math.floor((seconds % 3600) / 60) + var secs = seconds % 60 + + if (hours === 0) { + if (minutes === 0) { + return secs === 0 ? 0 : `${secs}绉抈 + } else { + if (secs === 0) { + return `${minutes}鍒哷 + } + return `${minutes}鍒� ${secs}绉抈 + } + } else { + if (minutes === 0 && secs === 0) { + return `${hours}灏忔椂` + } else if (minutes !== 0 && secs === 0) { + return `${hours}灏忔椂 ${minutes}鍒哷 + } + } + return `${hours}灏忔椂 ${minutes}鍒� ${secs}绉抈 + } + }, methods: { importTemplate(fileName){ var a = document.createElement("a"); diff --git a/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModal.vue b/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModal.vue index 0ed4b81..5e65299 100644 --- a/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModal.vue +++ b/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModal.vue @@ -4,10 +4,22 @@ <a-spin :spinning="confirmLoading"> <a-form :form="form"> <a-row :gutter="24"> - <a-col :span="24"> - <a-form-item label="鐝閫夋嫨" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> - <a-input-search :readOnly="true" v-decorator="['calendarId', validatorRules.calendarId]" - @search="deviceSearch" enter-button/> + <!--<a-col :span="24">--> + <!--<a-form-item label="鐝閫夋嫨" :labelCol="labelColLong" :wrapperCol="wrapperColLong">--> + <!--<a-input-search :readOnly="true" v-decorator="['calendarId', validatorRules.calendarId]"--> + <!--@search="deviceSearch" enter-button/>--> + <!--</a-form-item>--> + <!--</a-col>--> + <a-col :span="12"> + <a-form-item label="璁惧缁�" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input-search :readOnly="true" v-decorator="['equipmentId', validatorRules.equipmentId]" + @search="deviceSearch" enter-button placeholder="璇烽�夋嫨璁惧"/> + </a-form-item> + </a-col> + <a-col :span="12"> + <a-form-item label="鏃ユ湡" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-date-picker :disabled="disableSubmit" :readOnly="disableSubmit" + v-decorator="['theDate',validatorRules.theDate]" format="YYYYMMDD" valueFormat="YYYYMMDD" style="width: 100%" placeholder="璇烽�夋嫨鍔犵彮鏃ユ湡"/> </a-form-item> </a-col> </a-row> @@ -15,27 +27,27 @@ <a-col :span="12"> <a-form-item label="鍔犵彮寮�濮嬫椂闂�" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-time-picker :disabled="disableSubmit" :readOnly="disableSubmit" allow-clear - v-decorator="['startTime',validatorRules.startTime]" valueFormat="HH:mm:ss"/> + v-decorator="['startTime',validatorRules.startTime]" valueFormat="HH:mm:ss" style="width: 100%"/> </a-form-item> </a-col> <a-col :span="12"> <a-form-item label="鍔犵彮缁撴潫鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-time-picker :disabled="disableSubmit" :readOnly="disableSubmit" - v-decorator="['endTime',validatorRules.endTime]" valueFormat="HH:mm:ss"/> + v-decorator="['endTime',validatorRules.endTime]" valueFormat="HH:mm:ss" style="width: 100%"/> </a-form-item> </a-col> </a-row> <a-row :gutter="24"> <a-col :span="24"> <a-form-item label="澶囨敞" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> - <a-textarea :maxLength="20" v-decorator="['remark', validatorRules.remark]" placeholder="璇疯緭鍏ュ娉�" ></a-textarea> + <a-textarea :maxLength="20" v-decorator="['remark', validatorRules.remark]" placeholder="璇疯緭鍏ュ娉�"></a-textarea> </a-form-item> </a-col> </a-row> </a-form> </a-spin> - <torqueconfiguration-modal-list ref="deviceRepairListModel" @sendSelectionRows="getDeviceRows"></torqueconfiguration-modal-list> - + <!--<torqueconfiguration-modal-list ref="deviceRepairListModel" @sendSelectionRows="getDeviceRows"></torqueconfiguration-modal-list>--> + <select-device-modal ref="selectDeviceModal" @selectFinished="selectOK" :title="'閫夋嫨璁惧'"/> </a-modal> </template> @@ -52,10 +64,11 @@ import { duplicateCheck } from '@/api/api' + import SelectDeviceModal from '../../../../system/modules/SelectDeviceModal' export default { name: 'TorqueconfigurationModal', - components: {TorqueconfigurationModalList}, + components: { SelectDeviceModal, TorqueconfigurationModalList}, props: {}, data() { return { @@ -103,7 +116,7 @@ confirmLoading: false, form: this.$form.createForm(this), validatorRules: { - equipmentIds:{ + equipmentId:{ rules:[ { required:true, @@ -111,11 +124,19 @@ }, ], }, - calendarId:{ + // calendarId:{ + // rules:[ + // { + // required:true, + // message: "璇烽�夋嫨鐝" + // }, + // ], + // }, + theDate:{ rules:[ { required:true, - message: "璇烽�夋嫨鐝" + message: "璇烽�夋嫨鍔犵彮鏃ユ湡" }, ], }, @@ -169,32 +190,33 @@ onChangeEnd(dates, dateStrings){ this.endTime = dateStrings[0]; }, - getDeviceRows(val) { - var calendarId; - for(var i = 0;i<val.length;i++){ - if (i == 0) { - calendarId = val[i].id; - } else { - calendarId = calendarId + "," + val[i].id; - } - } - // console.log("========",equipmentIds); - this.form.setFieldsValue({ - calendarId: calendarId, - }) - // this.form.setFieldsValue({ - // equipmentId: val.equipmentId, - // equipmentName: val.equipmentName, - // equipmentModel: val.equipmentModel, - // equipmentIp: val.equipmentIp, - // dataPort: val.dataPort, - // driveType: val.driveType - // }) - }, + // getDeviceRows(val) { + // var calendarId; + // for(var i = 0;i<val.length;i++){ + // if (i == 0) { + // calendarId = val[i].id; + // } else { + // calendarId = calendarId + "," + val[i].id; + // } + // } + // // console.log("========",equipmentIds); + // this.form.setFieldsValue({ + // calendarId: calendarId, + // }) + // // this.form.setFieldsValue({ + // // equipmentId: val.equipmentId, + // // equipmentName: val.equipmentName, + // // equipmentModel: val.equipmentModel, + // // equipmentIp: val.equipmentIp, + // // dataPort: val.dataPort, + // // driveType: val.driveType + // // }) + // }, deviceSearch() { - this.$refs.deviceRepairListModel.openPage() - this.$refs.deviceRepairListModel.title = '閫夋嫨璁惧' - this.$refs.deviceRepairListModel.disableSubmit = false + this.$refs.selectDeviceModal.visible = true + this.$refs.selectDeviceModal.selectedRowKeys = [] + this.$refs.selectDeviceModal.selectedRows = [] + this.$refs.selectDeviceModal.checkedKeys = this.form.getFieldValue('equipmentId') ? this.form.getFieldValue('equipmentId').split(',') : [] }, //绾ц仈妗唎nChange浜嬩欢 // onChange(value) { @@ -227,7 +249,7 @@ this.model = Object.assign({}, record) this.visible = true this.$nextTick(() => { - this.form.setFieldsValue(pick(this.model, 'equipmentIds', 'equipmentName', 'mdcRepairType', 'startTime', 'endTime', + this.form.setFieldsValue(pick(this.model, 'equipmentId', 'equipmentName', 'mdcRepairType', 'startTime', 'endTime', )) }) }, @@ -322,6 +344,22 @@ }, checkboxChange(e) { this.checked = e.target.checked + }, + + /** + * 閫夋嫨宸叉湁璁惧鍚庣偣鍑荤‘瀹氭椂瑙﹀彂 + * @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.form.setFieldsValue({ + equipmentId: data.join(',') + }) } } } diff --git a/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModalEdit.vue b/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModalEdit.vue index 41abd9e..9236b92 100644 --- a/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModalEdit.vue +++ b/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModalEdit.vue @@ -9,12 +9,11 @@ <a-input :disabled="disableSubmit" :readOnly="readOnly" allow-clear placeholder="璇疯緭鍏ヨ澶囩紪鍙�" v-decorator="['equipmentId',validatorRules.equipmentId]"/> </a-form-item> - </a-col> <a-col :span="12"> <a-form-item label="鍔犵彮寮�濮嬫椂闂�" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-time-picker :disabled="disableSubmit" :readOnly="disableSubmit" @change="changeStartTime" - v-decorator="['startTime',validatorRules.startTime]"/> + v-decorator="['startTime',validatorRules.startTime]" style="width: 100%"/> </a-form-item> </a-col> </a-row> @@ -25,17 +24,24 @@ v-decorator="['equipmentName',validatorRules.equipmentName]"/> </a-form-item> </a-col> - <a-col :span="12"> <a-form-item label="鍔犵彮缁撴潫鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-time-picker :disabled="disableSubmit" :readOnly="disableSubmit" @change="changeEndTime" - v-decorator="['endTime',validatorRules.endTime]"/> + v-decorator="['endTime',validatorRules.endTime]" style="width: 100%"/> + </a-form-item> + </a-col> + </a-row> + <a-row :gutter="24"> + <a-col :span="12"> + <a-form-item label="鏃ユ湡" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-date-picker :disabled="disableSubmit" :readOnly="disableSubmit" + v-decorator="['theDate',validatorRules.theDate]" format="YYYYMMDD" valueFormat="YYYYMMDD" style="width: 100%" placeholder="璇烽�夋嫨鍔犵彮鏃ユ湡"/> </a-form-item> </a-col> </a-row> <a-row :gutter="24"> <a-form-item label="澶囨敞" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> - <a-textarea :maxLength="20" :disabled="disableSubmit" v-decorator="['remark', validatorRules.remark]" placeholder="璇疯緭鍏ュ娉�" ></a-textarea> + <a-textarea :maxLength="20" :disabled="disableSubmit" v-decorator="['remark', validatorRules.remark]" placeholder="璇疯緭鍏ュ娉�"></a-textarea> </a-form-item> </a-row> </a-form> @@ -62,6 +68,7 @@ export default { name: 'TorqueconfigurationModalEdit', + components: { }, // components: {DeviceRepairListModel,JDate,DeviceRepairEditListModel}, props: {}, data() { @@ -141,6 +148,14 @@ }, ], }, + theDate:{ + rules:[ + { + required:true, + message: "璇烽�夋嫨鍔犵彮鏃ユ湡" + }, + ], + } // mdcRepairType:{ // rules:[ // { @@ -264,7 +279,7 @@ // this.editStart = (this.model.startTime).replace(/:/g,''); this.visible = true this.$nextTick(() => { - this.form.setFieldsValue(pick(this.model,'equipmentId', 'equipmentName','startTime', 'endTime','remark' + this.form.setFieldsValue(pick(this.model,'equipmentId', 'equipmentName','startTime', 'endTime','theDate','remark' )) this.form.setFieldsValue({ startTime: moment(this.model.startTime, 'HH:mm:ss'), diff --git a/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationList.vue b/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationList.vue index eb0e098..bac753b 100644 --- a/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationList.vue +++ b/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationList.vue @@ -150,7 +150,7 @@ title: '璁惧缂栧彿', align: 'center', dataIndex: 'equipmentId', - width:250 + width:200 }, { title: '璁惧鍚嶇О', @@ -177,10 +177,16 @@ width:150 }, { + title: '杩涚粰鍙傛暟', + align: 'center', + dataIndex: 'feedParameter', + width:150 + }, + { title: '澶囨敞', align: 'center', dataIndex: 'notes', - width:350 + width:250 }, { title: '鎿嶄綔', diff --git a/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModal.vue b/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModal.vue index 26e2386..ea4852a 100644 --- a/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModal.vue +++ b/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModal.vue @@ -4,24 +4,29 @@ <a-spin :spinning="confirmLoading"> <a-form :form="form"> <a-row :gutter="24"> - <a-col :span="24"> - <a-form-item label="璁惧缁�" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> + <a-col :span="12"> + <a-form-item label="璁惧缁�" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-input-search :readOnly="true" v-decorator="['equipmentIds', validatorRules.equipmentIds]" @search="deviceSearch" enter-button placeholder="璇烽�夋嫨璁惧"/> + </a-form-item> + </a-col> + <a-col :span="12"> + <a-form-item label="鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="璇烽�夋嫨鏃堕棿" + v-decorator="['torqueDate', validatorRules.torqueDate]" style="width: 100%"></j-date> </a-form-item> </a-col> </a-row> <a-row :gutter="24"> <a-col :span="12"> - <a-form-item label="鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="璇烽�夋嫨鏃堕棿" - v-decorator="['torqueDate', validatorRules.torqueDate]"></j-date> - </a-form-item> - </a-col> - <a-col :span="12"> <a-form-item label="鎵煩鍊�" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-input-number :min="0" :disabled="disableSubmit" placeholder="璇疯緭鍏ユ壄鐭╁��" v-decorator="['torqueValue', validatorRules.torqueValue]"/> + </a-form-item> + </a-col> + <a-col :span="12"> + <a-form-item label="杩涚粰鍙傛暟" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input placeholder="璇疯緭鍏ヨ繘缁欏弬鏁�" v-decorator="['feedParameter', validatorRules.feedParameter]"></a-input> </a-form-item> </a-col> </a-row> @@ -127,6 +132,14 @@ message: '璇疯緭鍏ユ壄鐭╁��' } ] + }, + feedParameter:{ + rules:[ + { + required:true, + message:'璇疯緭鍏ヨ繘缁欏弬鏁�' + } + ] } }, diff --git a/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModalEdit.vue b/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModalEdit.vue index d12b328..ba239b5 100644 --- a/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModalEdit.vue +++ b/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModalEdit.vue @@ -5,12 +5,12 @@ <a-form :form="form"> <a-row :gutter="24"> <a-col :span="12"> - <a-form-item label="鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="璇烽�夋嫨鏃堕棿" - class="query-group-cust" v-decorator="['torqueDate', validatorRules.torqueDate]"></j-date> + <a-form-item label="璁惧缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input :disabled="disableSubmit" :readOnly="readOnly" allow-clear placeholder="璇疯緭鍏ヨ澶囩紪鍙�" + v-decorator="['equipmentId',validatorRules.equipmentId]"/> </a-form-item> - </a-col> + <a-col :span="12"> <a-form-item label="璁惧鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-input :disabled="disableSubmit" :readOnly="readOnly" allow-clear placeholder="璇疯緭鍏ヨ澶囧悕绉�" @@ -20,16 +20,23 @@ </a-row> <a-row :gutter="24"> <a-col :span="12"> + <a-form-item label="鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="璇烽�夋嫨鏃堕棿" + class="query-group-cust" v-decorator="['torqueDate', validatorRules.torqueDate]" style="width: 100%"></j-date> + </a-form-item> + </a-col> + + <a-col :span="12"> <a-form-item label="鎵煩鍊�" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-input-number :min="0" :disabled="disableSubmit" placeholder="璇疯緭鍏ユ壄鐭╁��" v-decorator="['torqueValue', validatorRules.torqueValue]"/> </a-form-item> </a-col> + </a-row> + <a-row :gutter="24"> <a-col :span="12"> - - <a-form-item label="璁惧缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <a-input :disabled="disableSubmit" :readOnly="readOnly" allow-clear placeholder="璇疯緭鍏ヨ澶囩紪鍙�" - v-decorator="['equipmentId',validatorRules.equipmentId]"/> + <a-form-item label="杩涚粰鍙傛暟" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input placeholder="璇疯緭鍏ヨ繘缁欏弬鏁�" v-decorator="['feedParameter', validatorRules.feedParameter]"></a-input> </a-form-item> </a-col> </a-row> @@ -141,6 +148,14 @@ }, ], }, + feedParameter:{ + rules:[ + { + required:true, + message:'璇疯緭鍏ヨ繘缁欏弬鏁�' + } + ] + } // mdcRepairType:{ // rules:[ // { @@ -244,7 +259,7 @@ // this.editStart = (this.model.startTime).replace(/:/g,''); this.visible = true this.$nextTick(() => { - this.form.setFieldsValue(pick(this.model,'equipmentId', 'equipmentName','torqueDate', 'torqueValue','notes' + this.form.setFieldsValue(pick(this.model,'equipmentId', 'equipmentName','torqueDate', 'torqueValue','feedParameter','notes' )) }) }, diff --git a/src/views/mdc/base/modules/WorkshopSignage/EquipmentDetailModal.vue b/src/views/mdc/base/modules/WorkshopSignage/EquipmentDetailModal.vue index c234759..8f038ea 100644 --- a/src/views/mdc/base/modules/WorkshopSignage/EquipmentDetailModal.vue +++ b/src/views/mdc/base/modules/WorkshopSignage/EquipmentDetailModal.vue @@ -81,18 +81,18 @@ title="鍩虹淇℃伅" :column="4" > - <a-descriptions-item label="璁惧缂栧彿">{{resultData.equipmentID}}</a-descriptions-item> - <a-descriptions-item label="璁惧鍚嶇О">{{resultData.equipmentName}}</a-descriptions-item> - <a-descriptions-item label="IP鍦板潃">{{resultData.equipmentIP}}</a-descriptions-item> - <a-descriptions-item label="绔彛鍙�">{{resultData.dataPort}}</a-descriptions-item> - <a-descriptions-item label="绯荤粺鐗堟湰鍙�">{{resultData.systemVersion}}</a-descriptions-item> - <a-descriptions-item label="椹卞姩绫诲瀷">{{resultData.driveType}}</a-descriptions-item> - <a-descriptions-item label="璁惧鍨嬪彿">{{resultData.equipmentModel}}</a-descriptions-item> - <a-descriptions-item label="璁惧绫诲瀷">{{resultData.deviceType}}</a-descriptions-item> - <a-descriptions-item label="璁惧鍔熺巼">{{resultData.devicePower}}</a-descriptions-item> - <a-descriptions-item label="鏈夋晥杞存暟">{{resultData.validAxis}}</a-descriptions-item> - <a-descriptions-item label="鏈�澶ц酱鏁�">{{resultData.maxAxis}}</a-descriptions-item> - <a-descriptions-item label="澶囨敞">{{resultData.remark}}</a-descriptions-item> + <a-descriptions-item label="璁惧缂栧彿">{{resultData.equipmentID|formatDescriptionsItem}}</a-descriptions-item> + <a-descriptions-item label="璁惧鍚嶇О">{{resultData.equipmentName|formatDescriptionsItem}}</a-descriptions-item> + <a-descriptions-item label="IP鍦板潃">{{resultData.equipmentIP|formatDescriptionsItem}}</a-descriptions-item> + <a-descriptions-item label="绔彛鍙�">{{resultData.dataPort|formatDescriptionsItem}}</a-descriptions-item> + <a-descriptions-item label="绯荤粺鐗堟湰鍙�">{{resultData.systemVersion|formatDescriptionsItem}}</a-descriptions-item> + <a-descriptions-item label="椹卞姩绫诲瀷">{{resultData.driveType|formatDescriptionsItem}}</a-descriptions-item> + <a-descriptions-item label="璁惧鍨嬪彿">{{resultData.equipmentModel|formatDescriptionsItem}}</a-descriptions-item> + <a-descriptions-item label="璁惧绫诲瀷">{{resultData.deviceType|formatDescriptionsItem}}</a-descriptions-item> + <a-descriptions-item label="璁惧鍔熺巼">{{resultData.devicePower|formatDescriptionsItem}}</a-descriptions-item> + <a-descriptions-item label="鏈夋晥杞存暟">{{resultData.validAxis|formatDescriptionsItem}}</a-descriptions-item> + <a-descriptions-item label="鏈�澶ц酱鏁�">{{resultData.maxAxis|formatDescriptionsItem}}</a-descriptions-item> + <a-descriptions-item label="澶囨敞">{{resultData.remark|formatDescriptionsItem}}</a-descriptions-item> </a-descriptions> <!-- <a-descriptions @@ -239,9 +239,9 @@ > <a-tooltip @mouseenter="mouseEnterItem"> <template slot="title"> - {{item.value}} + {{item.value|formatDescriptionsItem}} </template> - <div class="description-item-class">{{item.value}}</div> + <div class="description-item-class">{{item.value|formatDescriptionsItem}}</div> </a-tooltip> </a-descriptions-item> @@ -331,6 +331,11 @@ }, watch: {}, + filters:{ + formatDescriptionsItem(value){ + return value?value:'鏃�' + } + }, methods: { drawLine() { let _this = this @@ -1423,10 +1428,7 @@ }, mouseEnterItem(e){ - console.log(e, e.target, e.target.clientWidth, e.target.scrollWidth) - if (e.target.clientWidth >= e.target.scrollWidth) { - e.target.style.pointerEvents = 'none' // 闃绘榧犳爣浜嬩欢 pointer-events 灞炴�х敤浜庤缃厓绱犳槸鍚﹀榧犳爣浜嬩欢鍋氬嚭鍙嶅簲銆� - } + if (e.target.clientWidth >= e.target.scrollWidth) e.target.style.pointerEvents = 'none' // 闃绘榧犳爣浜嬩欢 pointer-events 灞炴�х敤浜庤缃厓绱犳槸鍚﹀榧犳爣浜嬩欢鍋氬嚭鍙嶅簲銆� } }, beforeDestroy() { @@ -1495,9 +1497,9 @@ margin-bottom: 0; } - /deep/ .ant-descriptions-view { - padding: 0 20px; - } + /*/deep/ .ant-descriptions-view {*/ + /*padding: 0 20px;*/ + /*}*/ /deep/ .ant-descriptions-view .ant-descriptions-row .ant-descriptions-item { padding-bottom: 5px; @@ -1505,63 +1507,18 @@ /deep/ .ant-descriptions-item-colon { color: #fff; - width: 5.1vw; + /*width: 5.1vw;*/ } /deep/ .ant-descriptions-item-content { color: #fff; border: 1px solid #4bcfc8; padding: 0 10px; - width: auto; min-width: 130px; - /*max-width: 300px;*/ - height: 25px; } .mdcEquipMon { color: #fff; - } - - fieldset { - border: 1px solid #16738d; - padding: 17px; - margin: 14px; - } - - fieldset legend { - display: inline; - width: 88px; - } - - table tr td { - text-align: left; - color: #fff; - } - - table tr td input { - border: 1px solid #a6eff9; - } - - .ant-btn { - padding: 0 10px; - margin-left: 3px; - color: #fff !important; - background-color: #1191b0; - border: none; - } - - .ant-form-item-control { - line-height: 0px; - } - - /** 涓昏〃鍗曡闂磋窛 */ - .ant-form .ant-form-item { - margin-bottom: 10px; - } - - /** Tab椤甸潰琛岄棿璺� */ - .ant-tabs-content .ant-form-item { - margin-bottom: 0px; } /deep/ .ant-descriptions-item-label{ @@ -1574,7 +1531,7 @@ .lsv2Data .ant-descriptions-item-content { width: 130px; - overflow: hidden; + vertical-align: bottom; } .description-item-class{ diff --git a/src/views/mdc/base/modules/alarmAnalysis/alarmAnalysisMain.vue b/src/views/mdc/base/modules/alarmAnalysis/alarmAnalysisMain.vue index 12d210a..da98855 100644 --- a/src/views/mdc/base/modules/alarmAnalysis/alarmAnalysisMain.vue +++ b/src/views/mdc/base/modules/alarmAnalysis/alarmAnalysisMain.vue @@ -159,10 +159,10 @@ }, mounted() { this.drawWrin() - window.addEventListener('resize',this.handleWindowResize) + window.addEventListener('resize', this.handleWindowResize) }, - beforeDestroy(){ - window.removeEventListener('resize',this.handleWindowResize) + beforeDestroy() { + window.removeEventListener('resize', this.handleWindowResize) }, watch: { Type(valmath) { @@ -560,10 +560,10 @@ handleExpandChange(expanded, record) { let _this = this // 褰撳睍寮�鏃惰嫢璇ヨ鏈灞曞紑杩囨墠浼氳姹傚悗鍙版暟鎹紝灞曞紑杩囩殑鏁版嵁浼氳缂撳瓨鏃犻渶閲嶅璇锋眰 - const param = Object.assign({ alarmCode: record.alarmCode }, this.queryParam) + this.queryParam.alarmCode = record.alarmCode if (expanded && !this.hasRequsetAlarmCodeList.includes(record.alarmCode)) { this.innerDataLoading = true - getAction(this.url.equipmentAlarmList, param).then(res => { + getAction(this.url.equipmentAlarmList, this.queryParam).then(res => { if (res.success) { _this.dataList.forEach(item => { if (item.alarmCode === record.alarmCode) { @@ -582,9 +582,9 @@ /** * 褰撴祻瑙堝櫒鍙绐楀彛灏哄鍙戠敓鏀瑰彉鏃惰Е鍙� */ - handleWindowResize(){ - if(this.equipmentWarningPie) this.equipmentWarningPie.resize() - if(this.equipmentWarningLine) this.equipmentWarningLine.resize() + handleWindowResize() { + if (this.equipmentWarningPie) this.equipmentWarningPie.resize() + if (this.equipmentWarningLine) this.equipmentWarningLine.resize() } } } diff --git a/src/views/mdc/base/modules/deviceBaseInfo/EquipmentList.vue b/src/views/mdc/base/modules/deviceBaseInfo/EquipmentList.vue index fc8afcb..07795c1 100644 --- a/src/views/mdc/base/modules/deviceBaseInfo/EquipmentList.vue +++ b/src/views/mdc/base/modules/deviceBaseInfo/EquipmentList.vue @@ -57,16 +57,38 @@ <a-table ref="table" bordered size="middle" rowKey="equipmentId" :columns="columns" :dataSource="dataSource" :pagination="false" :loading="loading" :scroll="{x:'max-content',y:scrollY}"> + <template slot="equipmentId" slot-scope="text, record"> + <div :style="{color:record.equipmentStatus!==0?'#f00':null}">{{text}}</div> + </template> + <template slot="equipmentName" slot-scope="text, record"> + <div :style="{color:record.equipmentStatus!==0?'#f00':null}">{{text}}</div> + </template> + <template slot="oporationDict" slot-scope="text, record"> + <div :style="{color:record.equipmentStatus!==0?'#f00':null}">{{text}}</div> + </template> + <template slot="equipmentStatus" slot-scope="text"> + <div :style="{color:text!==0?'#f00':null}">{{text===0?'姝e父':'寮傚父'}}</div> + </template> + <template slot="collecttime" slot-scope="text, record"> + <div :style="{color:record.equipmentStatus!==0?'#f00':null}">{{text}}</div> + </template> + <template slot="action" slot-scope="text, record"> + <a-popconfirm title="纭畾鍙嶉鍚�?" @confirm="$emit('editEquipmentStatus',record)" v-has="'deiveBaseInfo:responseStatus'"> + <a>鐘舵�佸弽棣�</a> + </a-popconfirm> + </template> </a-table> + </div> </a-card> </template> <script> + import { postAction } from '@/api/manage' export default { name: 'EquipmentLayout', - components: {}, + components: { }, data() { return { loading:false, @@ -78,19 +100,29 @@ title: '璁惧ID', align: "center", dataIndex: 'equipmentId', - width:250 + scopedSlots: {customRender: 'equipmentId'}, + width:210 }, { title: '璁惧鍚嶇О', align: "center", dataIndex: 'equipmentName', + scopedSlots: {customRender: 'equipmentName'}, width:300 }, { title: '鐘舵��', align: "center", dataIndex: 'oporationDict', - width:150 + scopedSlots: {customRender: 'oporationDict'}, + width:200 + }, + { + title: '璁惧寮傚父', + align: "center", + dataIndex: 'equipmentStatus', + scopedSlots: {customRender: 'equipmentStatus'}, + width:200 }, { title: '閲囬泦鏃堕棿', @@ -98,8 +130,17 @@ dataIndex: 'collecttime', defaultSortOrder:'descend', sorter: (a, b) => {return a.collecttime>b.collecttime?1:-1}, + scopedSlots: {customRender: 'collecttime'}, width:350 }, + { + title: '鎿嶄綔', + dataIndex: 'action', + scopedSlots: {customRender: 'action'}, + align: "center", + width: 150, + fixed:'right' + } ], scrollY:465, } @@ -116,7 +157,7 @@ const boxHeight = +window.getComputedStyle(document.getElementById('DeviceList')).height.slice(0,-2) const tableHeadHeight = +window.getComputedStyle(document.querySelector('.ant-table-thead th')).height.slice(0,-2) this.scrollY = boxHeight - tableHeadHeight - } + }, }, mounted(){ window.addEventListener('resize',this.handleWindowResize) diff --git a/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue b/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue index 7f2f038..9e2abec 100644 --- a/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue +++ b/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue @@ -27,6 +27,7 @@ <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="'#Efficiency'" v-has="'efficiency:print'">鎵撳嵃</a-button> </a-space> <table cellpadding="5" cellspacing="1" style="border: 1px solid darkgray;margin-left: 24px"> <tr> -- Gitblit v1.9.3