From dbb3445dc720a8f36b3424e73f2e02a6b0f9deb6 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期日, 27 四月 2025 11:31:57 +0800 Subject: [PATCH] art: 从沃克项目迁移设备管理代码到航宇 --- src/views/eam/maintenance/EamWeekMaintenanceOrderList.vue | 618 ++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 382 insertions(+), 236 deletions(-) diff --git a/src/views/eam/maintenance/EamWeekMaintenanceOrderList.vue b/src/views/eam/maintenance/EamWeekMaintenanceOrderList.vue index 39ccbf6..2b5c30b 100644 --- a/src/views/eam/maintenance/EamWeekMaintenanceOrderList.vue +++ b/src/views/eam/maintenance/EamWeekMaintenanceOrderList.vue @@ -2,7 +2,7 @@ <a-card :bordered="false"> <!-- 鏌ヨ鍖哄煙 --> - <div class="table-page-search-wrapper"> + <div class="table-page-search-wrapper" v-if="isDisplayOperation"> <a-form layout="inline" @keyup.enter.native="searchQuery"> <a-row :gutter="24"> <a-col :xl="4" :lg="7" :md="8" :sm="24"> @@ -12,17 +12,20 @@ </a-col> <a-col :xl="4" :lg="7" :md="8" :sm="24"> <a-form-item label="璁惧缂栧彿"> - <lx-search-equipment-select placeholder="璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储" v-model="queryParam.equipmentId"></lx-search-equipment-select> + <lx-search-equipment-select placeholder="璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储" + v-model="queryParam.equipmentId"></lx-search-equipment-select> </a-form-item> </a-col> <a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-form-item label="璁″垝淇濆吇鏃ユ湡"> - <a-range-picker v-model="queryParam.maintenanceDateRange" @change="onMaintenanceDateChange" format="YYYY-MM-DD" value-format="YYYY-MM-DD" /> + <a-range-picker v-model="queryParam.maintenanceDateRange" @change="onMaintenanceDateChange" + format="YYYY-MM-DD" value-format="YYYY-MM-DD"/> </a-form-item> </a-col> <a-col :xl="4" :lg="7" :md="8" :sm="24"> <a-form-item label="淇濆吇鐘舵��"> - <j-dict-select-tag placeholder="璇烽�夋嫨淇濆吇鐘舵��" dict-code="week_maintenance_status" v-model="queryParam.maintenanceStatus" /> + <j-dict-select-tag placeholder="璇烽�夋嫨淇濆吇鐘舵��" dict-code="week_maintenance_status" + v-model="queryParam.maintenanceStatus"/> </a-form-item> </a-col> <a-col :xl="4" :lg="7" :md="8" :sm="24"> @@ -37,28 +40,28 @@ </div> <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> - <div class="table-operator"> - <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button> + <div class="table-operator" v-if="isDisplayOperation"> + <a-button @click="handleAdd" type="primary" icon="plus" v-if="isShowAuth('eam:weekMaintenance:add')">鏂板</a-button> <a-dropdown v-if="selectedRowKeys.length > 0"> <a-menu slot="overlay"> - <a-menu-item key="1" @click="handlerBatchAbolish"> - <a-icon type="delete" /> + <a-menu-item key="1" @click="handlerBatchAbolish" v-if="isShowAuth('eam:weekMaintenance:abolish')"> + <a-icon type="delete"/> 浣滃簾 </a-menu-item> - <a-menu-item key="1" @click="handlerBatchCollect"> - <a-icon type="delete" /> + <a-menu-item key="2" @click="handlerBatchCollect" v-if="isShowAuth('eam:weekMaintenance:collect')"> + <a-icon type="form"/> 棰嗗彇 </a-menu-item> </a-menu> <a-button style="margin-left: 8px"> 鎵归噺鎿嶄綔 - <a-icon type="down" /> + <a-icon type="down"/> </a-button> </a-dropdown> </div> <!-- table鍖哄煙-begin --> <div> - <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> + <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;" v-if="isDisplayOperation"> <i class="anticon anticon-info-circle ant-alert-icon"></i> 宸查�夋嫨 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>椤� <a style="margin-left: 24px" @click="onClearSelected">娓呯┖</a> @@ -74,268 +77,411 @@ :pagination="ipagination" :loading="loading" class="j-table-force-nowrap" + :scroll="{x:'max-content'}" :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" @change="handleTableChange"> <span slot="action" slot-scope="text, record"> - <a v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE'" @click="handleEdit(record)">缂栬緫</a> - <a-divider type="vertical" /> + <template v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE' && isShowAuth('eam:weekMaintenance:edit')"> + <a @click="handleEdit(record)">缂栬緫</a> + + <a-divider type="vertical"/> + + <a-popconfirm title="纭畾棰嗗彇鍚�?" @confirm="() => handlerCollect(record.id)"> + <a>棰嗗彇</a> + </a-popconfirm> + + <a-divider type="vertical"/> + <a-dropdown> - <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a> + <a class="ant-dropdown-link">鏇村 <a-icon type="down"/></a> <a-menu slot="overlay"> - <a-menu-item v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE'"> - <a-popconfirm title="纭畾棰嗗彇鍚�?" @confirm="() => handlerCollect(record.id)"> - <a>棰嗗彇</a> - </a-popconfirm> - </a-menu-item> - <a-menu-item v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE'"> + <a-menu-item> <a-popconfirm title="纭畾浣滃簾鍚�?" @confirm="() => handlerAbolish(record.id)"> <a>浣滃簾</a> </a-popconfirm> </a-menu-item> - <a-menu-item > + <a-menu-item> <a @click="handleDetail(record)">璇︽儏</a> </a-menu-item> </a-menu> </a-dropdown> - </span> + </template> + <template v-else> + <a @click="handleDetail(record)">璇︽儏</a> + </template> + </span> </a-table> </div> <!-- table鍖哄煙-end --> <!-- 琛ㄥ崟鍖哄煙 --> <eamWeekMaintenanceOrder-modal ref="modalForm" @ok="modalFormOk"></eamWeekMaintenanceOrder-modal> + <week-maintenance-approval-modal ref="weekMaintenanceApprovalModal" + :selectShenpiData="selectWeekMaintenanceData"></week-maintenance-approval-modal> </a-card> </template> <script> -import '@/assets/less/TableExpand.less' -import EamWeekMaintenanceOrderModal from './modules/EamWeekMaintenanceOrderModal' -import { JeecgListMixin } from '@/mixins/JeecgListMixin' -import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' -import { deleteAction, getAction } from '@api/manage' + import '@/assets/less/TableExpand.less' + import EamWeekMaintenanceOrderModal from './modules/EamWeekMaintenanceOrderModal' + import { JeecgListMixin } from '@/mixins/JeecgListMixin' + import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' + import { deleteAction, getAction } from '@api/manage' + import WeekMaintenanceApprovalModal from '@views/flowable/workflow/weekMaintenance/WeekMaintenanceApprovalModal' -export default { - name: 'EamWeekMaintenanceOrderList', - mixins: [JeecgListMixin], - components: { - LxSearchEquipmentSelect, - EamWeekMaintenanceOrderModal - }, - data() { - return { - description: '鍛ㄤ繚宸ュ崟绠$悊椤甸潰', - // 琛ㄥご - columns: [ - { - title: '#', - dataIndex: '', - key: 'rowIndex', - width: 60, - align: 'center', - customRender: function(t, r, index) { - return parseInt(index) + 1 + export default { + name: 'EamWeekMaintenanceOrderList', + mixins: [JeecgListMixin], + components: { + LxSearchEquipmentSelect, + EamWeekMaintenanceOrderModal, + WeekMaintenanceApprovalModal + }, + props: { + isDisplayOperation: { + type: Boolean, + default: true + } + }, + data() { + return { + description: '鍛ㄤ繚宸ュ崟绠$悊椤甸潰', + disableMixinCreated: true, + selectWeekMaintenanceData: {}, + // 琛ㄥご + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + fixed: 'left', + customRender: function(t, r, index) { + return parseInt(index) + 1 + } + }, + { + title: '宸ュ崟鍙�', + align: 'center', + dataIndex: 'orderNum', + fixed: 'left', + width: 60 + }, + { + title: '璁惧缂栧彿', + align: 'center', + dataIndex: 'equipmentCode', + fixed: 'left', + width: 60 + }, + { + title: '璁惧鍚嶇О', + align: 'center', + dataIndex: 'equipmentName', + fixed: 'left', + width: 60 + }, + { + title: '鏍囧噯鍚嶇О', + align: 'center', + dataIndex: 'standardId_dictText', + width: 100 + }, + { + title: '璁″垝淇濆吇鏃ユ湡', + align: 'center', + dataIndex: 'maintenanceDate', + width: 60 + }, + { + title: '瀹為檯寮�濮嬫椂闂�', + align: 'center', + dataIndex: 'actualStartTime', + width: 60 + }, + { + title: '瀹為檯缁撴潫鏃堕棿', + align: 'center', + dataIndex: 'actualEndTime', + width: 60 + }, + { + title: '淇濆吇浜�', + align: 'center', + dataIndex: 'operator_dictText', + width: 60 + }, + { + title: '淇濆吇鐘舵��', + align: 'center', + dataIndex: 'maintenanceStatus_dictText', + width: 60 + }, + { + title: '鍒涘缓鏂瑰紡', + align: 'center', + dataIndex: 'creationMethod_dictText', + width: 60 + }, + { + title: '纭浜�', + align: 'center', + dataIndex: 'confirmUser_dictText', + width: 60 + }, + { + title: '纭鏃堕棿', + align: 'center', + dataIndex: 'confirmTime', + width: 60 + }, + { + title: '纭鎰忚', + align: 'center', + dataIndex: 'confirmComment', + width: 60 + }, + { + title: '鍒濋獙鏀朵汉', + align: 'center', + dataIndex: 'initialAcceptanceUser_dictText', + width: 60 + }, + { + title: '鍒濋獙鏀舵椂闂�', + align: 'center', + dataIndex: 'initialAcceptanceTime', + width: 60 + }, + { + title: '鍒濋獙鏀舵剰瑙�', + align: 'center', + dataIndex: 'initialAcceptanceComment', + width: 60 + }, + { + title: '缁堥獙鏀朵汉', + align: 'center', + dataIndex: 'finalAcceptanceUser_dictText', + width: 60 + }, + { + title: '缁堥獙鏀舵椂闂�', + align: 'center', + dataIndex: 'finalAcceptanceTime', + width: 60 + }, + { + title: '缁堥獙鏀舵剰瑙�', + align: 'center', + dataIndex: 'finalAcceptanceComment', + width: 60 + }, + { + title: '澶囨敞', + align: 'center', + dataIndex: 'remark', + width: 60 } - }, - { - title: '宸ュ崟鍙�', - align: 'center', - dataIndex: 'orderNum' - }, - { - title: '璁惧缂栧彿', - align: 'center', - dataIndex: 'equipmentCode' - }, - { - title: '璁惧鍚嶇О', - align: 'center', - dataIndex: 'equipmentName' - }, - { - title: '鏍囧噯鍚嶇О', - align: 'center', - dataIndex: 'standardId_dictText' - }, - { - title: '璁″垝淇濆吇鏃ユ湡', - align: 'center', - dataIndex: 'maintenanceDate' - }, - { - title: '瀹為檯寮�濮嬫椂闂�', - align: 'center', - dataIndex: 'actualStartTime' - }, - { - title: '瀹為檯缁撴潫鏃堕棿', - align: 'center', - dataIndex: 'actualEndTime' - }, - { - title: '淇濆吇浜�', - align: 'center', - dataIndex: 'operator_dictText' - }, - { - title: '淇濆吇鐘舵��', - align: 'center', - dataIndex: 'maintenanceStatus_dictText' - }, - { - title: '鍒涘缓鏂瑰紡', - align: 'center', - dataIndex: 'creationMethod_dictText' - }, - { - title: '纭浜�', - align: 'center', - dataIndex: 'confirmUser_dictText' - }, - { - title: '纭鏃堕棿', - align: 'center', - dataIndex: 'confirmTime' - }, - { - title: '淇濆吇鍥剧墖', - align: 'center', - dataIndex: 'imageFiles' - }, - { - title: '澶囨敞', - align: 'center', - dataIndex: 'remark', - editable: true, - }, - { - title: '鎿嶄綔', - dataIndex: 'action', - align: 'center', - scopedSlots: { customRender: 'action' } + // { + // title: '鎿嶄綔', + // dataIndex: 'action', + // align: 'center', + // fixed: 'right', + // width: 100, + // scopedSlots: { customRender: 'action' } + // } + ], + url: { + list: '/eam/weekMaintenanceOrder/list', + abolish: '/eam/weekMaintenanceOrder/abolish', + abolishBatch: '/eam/weekMaintenanceOrder/abolishBatch', + collect: '/eam/weekMaintenanceOrder/collect', + collectBatch: '/eam/weekMaintenanceOrder/collectBatch' } - ], - url: { - list: '/eam/weekMaintenanceOrder/list', - abolish: '/eam/weekMaintenanceOrder/abolish', - abolishBatch: '/eam/weekMaintenanceOrder/abolishBatch', - collect: '/eam/weekMaintenanceOrder/collect', } - } - }, - computed: {}, - methods: { - onMaintenanceDateChange: function(value, dateString) { - this.queryParam.maintenanceDateBegin = dateString[0] - this.queryParam.maintenanceDateEnd = dateString[1] }, - handlerAbolish(id) { - if(!this.url.abolish){ - this.$message.error("璇疯缃畊rl.abolish灞炴��!") + created() { + if (!this.isDisplayOperation) { return } - var that = this; - deleteAction(that.url.abolish, {id: id}).then((res) => { - if (res.success) { - //閲嶆柊璁$畻鍒嗛〉闂 - that.reCalculatePage(1) - // that.$message.success(res.message); - that.$notification.success({ - message:'娑堟伅', - description:res.message - }); - that.loadData(); - } else { - // that.$message.warning(res.message); - that.$notification.warning({ - message:'娑堟伅', - description:res.message - }); - } - }); - }, - handlerBatchAbolish() { - if(!this.url.abolishBatch){ - this.$message.error("璇疯缃畊rl.abolishBatch灞炴��!") - return + const operationColumn = { + title: '鎿嶄綔', + dataIndex: 'action', + align: 'center', + fixed: 'right', + width: 200, + scopedSlots: { customRender: 'action' } } - if (this.selectedRowKeys.length <= 0) { - // this.$message.warning('璇烽�夋嫨涓�鏉¤褰曪紒'); - this.$notification.warning({ - message:'娑堟伅', - description:"璇烽�夋嫨涓�鏉¤褰�" - }); - return; - } else { - var ids = ""; - for (var a = 0; a < this.selectedRowKeys.length; a++) { - ids += this.selectedRowKeys[a] + ","; + this.columns = [...this.columns, operationColumn] + this.loadData(1) + }, + computed: {}, + methods: { + onMaintenanceDateChange: function(value, dateString) { + this.queryParam.maintenanceDateBegin = dateString[0] + this.queryParam.maintenanceDateEnd = dateString[1] + }, + handlerAbolish(id) { + if (!this.url.abolish) { + this.$message.error('璇疯缃畊rl.abolish灞炴��!') + return } - var that = this; - this.$confirm({ - title: "纭浣滃簾", - content: "鏄惁浣滃簾閫変腑鏁版嵁锛屽彧鏈夊緟淇濆吇鐘舵�佺殑鏁版嵁鎵嶅彲浣滃簾鎴愬姛?", - onOk: function () { - that.loading = true; - deleteAction(that.url.abolishBatch, {ids: ids}).then((res) => { - if (res.success) { - //閲嶆柊璁$畻鍒嗛〉闂 - that.reCalculatePage(that.selectedRowKeys.length) - // that.$message.success(res.message); - that.$notification.success({ - message:'娑堟伅', - description:res.message - }); - that.loadData(); - that.onClearSelected(); - } else { - // that.$message.warning(res.message); - that.$notification.warning({ - message:'娑堟伅', - description:res.message - }); - } - }).finally(() => { - that.loading = false; - }); + var that = this + deleteAction(that.url.abolish, { id: id }).then((res) => { + if (res.success) { + //閲嶆柊璁$畻鍒嗛〉闂 + that.reCalculatePage(1) + // that.$message.success(res.message); + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + that.loadData() + } else { + // that.$message.warning(res.message); + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }) } - }); - } - }, - //鍗曚釜棰嗗彇 - handlerCollect(id) { - if(!this.url.collect){ - this.$message.error("璇疯缃畊rl.collect灞炴��!") - return - } - var that = this; - getAction(that.url.collect, {id: id}).then((res) => { - if (res.success) { - //閲嶆柊璁$畻鍒嗛〉闂 - that.reCalculatePage(1) - // that.$message.success(res.message); - that.$notification.success({ - message:'娑堟伅', - description:res.message - }); - that.loadData(); - } else { - // that.$message.warning(res.message); - that.$notification.warning({ - message:'娑堟伅', - description:res.message - }); + }) + }, + handlerBatchAbolish() { + if (!this.url.abolishBatch) { + this.$message.error('璇疯缃畊rl.abolishBatch灞炴��!') + return } - }); - }, - //鎵归噺棰嗗彇 - handlerBatchCollect(){ - + if (this.selectedRowKeys.length <= 0) { + // this.$message.warning('璇烽�夋嫨涓�鏉¤褰曪紒'); + this.$notification.warning({ + message: '娑堟伅', + description: '璇烽�夋嫨涓�鏉¤褰�' + }) + return + } else { + var ids = '' + for (var a = 0; a < this.selectedRowKeys.length; a++) { + ids += this.selectedRowKeys[a] + ',' + } + var that = this + this.$confirm({ + title: '纭浣滃簾', + content: '鏄惁浣滃簾閫変腑鏁版嵁锛屽彧鏈夊緟淇濆吇鐘舵�佺殑鏁版嵁鎵嶅彲浣滃簾鎴愬姛?', + onOk: function() { + that.loading = true + deleteAction(that.url.abolishBatch, { ids: ids }).then((res) => { + if (res.success) { + //閲嶆柊璁$畻鍒嗛〉闂 + that.reCalculatePage(that.selectedRowKeys.length) + // that.$message.success(res.message); + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + that.loadData() + that.onClearSelected() + } else { + // that.$message.warning(res.message); + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + } + }).finally(() => { + that.loading = false + }) + } + }) + } + }, + //鍗曚釜棰嗗彇 + handlerCollect(id) { + if (!this.url.collect) { + this.$message.error('璇疯缃畊rl.collect灞炴��!') + return + } + let that = this + getAction(that.url.collect, { id: id }).then((res) => { + if (res.success) { + //閲嶆柊璁$畻鍒嗛〉闂 + that.reCalculatePage(1) + // that.$message.success(res.message); + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + that.loadData() + } else { + // that.$message.warning(res.message); + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + } + }) + }, + //鎵归噺棰嗗彇 + handlerBatchCollect() { + if (!this.url.collectBatch) { + this.$message.error('璇疯缃畊rl.abolishBatch灞炴��!') + return + } + if (this.selectedRowKeys.length <= 0) { + // this.$message.warning('璇烽�夋嫨涓�鏉¤褰曪紒'); + this.$notification.warning({ + message: '娑堟伅', + description: '璇烽�夋嫨涓�鏉¤褰�' + }) + return + } else { + var ids = '' + for (var a = 0; a < this.selectedRowKeys.length; a++) { + ids += this.selectedRowKeys[a] + ',' + } + var that = this + this.$confirm({ + title: '纭棰嗗彇', + content: '鏄惁棰嗗彇閫変腑鏁版嵁锛屽彧鏈夊緟淇濆吇鐘舵�佺殑鏁版嵁鎵嶅彲棰嗗彇鎴愬姛?', + onOk: function() { + that.loading = true + deleteAction(that.url.collectBatch, { ids: ids }).then((res) => { + if (res.success) { + //閲嶆柊璁$畻鍒嗛〉闂 + that.reCalculatePage(that.selectedRowKeys.length) + // that.$message.success(res.message); + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + that.loadData() + that.onClearSelected() + } else { + // that.$message.warning(res.message); + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + } + }).finally(() => { + that.loading = false + }) + } + }) + } + }, + handleDetail(record) { + this.selectWeekMaintenanceData = Object.assign({}, record) + this.$refs.weekMaintenanceApprovalModal.recordDetail(record) + this.$refs.weekMaintenanceApprovalModal.title = '璇︽儏' + this.$refs.weekMaintenanceApprovalModal.disableSubmit = true + } } } -} </script> <style scoped> -@import '~@assets/less/common.less'; + @import '~@assets/less/common.less'; </style> \ No newline at end of file -- Gitblit v1.9.3