From 7be77bb648c8dc92539d02f4d678ff60b2d5f3db Mon Sep 17 00:00:00 2001 From: zhaowei <zhaowei> Date: 星期四, 19 六月 2025 17:51:57 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/eam/maintenance/EamThirdMaintenanceOrderList.vue | 699 +++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 521 insertions(+), 178 deletions(-) diff --git a/src/views/eam/maintenance/EamThirdMaintenanceOrderList.vue b/src/views/eam/maintenance/EamThirdMaintenanceOrderList.vue index 6b32590..2b65b8a 100644 --- a/src/views/eam/maintenance/EamThirdMaintenanceOrderList.vue +++ b/src/views/eam/maintenance/EamThirdMaintenanceOrderList.vue @@ -2,45 +2,91 @@ <a-card :bordered="false"> <!-- 鏌ヨ鍖哄煙 --> - <div class="table-page-search-wrapper"> - <a-form layout="inline" @keyup.enter.native="searchQuery"> + <div + class="table-page-search-wrapper" + v-if="isDisplayOperation" + > + <a-form + layout="inline" + @keyup.enter.native="searchQuery" + > <a-row :gutter="24"> - - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="鍒犻櫎鏍囪"> - <a-input placeholder="璇疯緭鍏ュ垹闄ゆ爣璁�" v-model="queryParam.delFlag"></a-input> - </a-form-item> - </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-col + :xl="4" + :lg="7" + :md="8" + :sm="24" + > <a-form-item label="宸ュ崟鍙�"> - <a-input placeholder="璇疯緭鍏ュ伐鍗曞彿" v-model="queryParam.orderNum"></a-input> + <a-input + placeholder="璇疯緭鍏ュ伐鍗曞彿" + v-model="queryParam.orderNum" + ></a-input> </a-form-item> </a-col> - <template v-if="toggleSearchStatus"> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="璁惧ID"> - <a-input placeholder="璇疯緭鍏ヨ澶嘔D" v-model="queryParam.equipmentId"></a-input> + <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> </a-form-item> </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="鏍囧噯ID"> - <a-input placeholder="璇疯緭鍏ユ爣鍑咺D" v-model="queryParam.standardId"></a-input> + <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-form-item> </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="璁″垝寮�濮嬫椂闂�"> - <a-input placeholder="璇疯緭鍏ヨ鍒掑紑濮嬫椂闂�" v-model="queryParam.planStartTime"></a-input> + <a-col + :xl="4" + :lg="7" + :md="8" + :sm="24" + > + <a-form-item label="淇濆吇鐘舵��"> + <j-dict-select-tag + placeholder="璇烽�夋嫨淇濆吇鐘舵��" + dict-code="second_maintenance_status" + v-model="queryParam.maintenanceStatus" + /> </a-form-item> </a-col> - </template> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> - <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 @click="handleToggleSearch" style="margin-left: 8px"> - {{ toggleSearchStatus ? '鏀惰捣' : '灞曞紑' }} - <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> - </a> + <a-col + :xl="4" + :lg="7" + :md="8" + :sm="24" + > + <span + style="float: left;overflow: hidden;" + class="table-page-search-submitButtons" + > + <a-button + type="primary" + @click="searchQuery" + icon="search" + >鏌ヨ</a-button> + <a-button + type="info" + @click="searchReset" + icon="reload" + style="margin-left: 8px" + >閲嶇疆</a-button> </span> </a-col> @@ -49,25 +95,54 @@ </div> <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> - <div class="table-operator"> - <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button> - <a-button type="primary" icon="download" @click="handleExportXls('璁惧涓夌骇淇濆吇')">瀵煎嚭</a-button> - <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> - <a-button type="primary" icon="import">瀵煎叆</a-button> - </a-upload> + <div + class="table-operator" + v-if="isDisplayOperation" + > + <a-button + @click="handleAdd" + type="primary" + icon="plus" + v-if="isShowAuth('eam:secondMaintenance:add')" + >鏂板 + </a-button> <a-dropdown v-if="selectedRowKeys.length > 0"> <a-menu slot="overlay"> - <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>鍒犻櫎</a-menu-item> + <a-menu-item + key="1" + @click="handlerBatchAbolish" + v-if="isShowAuth('eam:secondMaintenance:abolish')" + > + <a-icon type="delete" /> + 浣滃簾 + </a-menu-item> + <a-menu-item + key="2" + @click="handlerBatchCollect" + v-if="isShowAuth('eam:secondMaintenance:collect')" + > + <a-icon type="form" /> + 棰嗗彇 + </a-menu-item> </a-menu> - <a-button style="margin-left: 8px"> 鎵归噺鎿嶄綔 <a-icon type="down" /></a-button> + <a-button style="margin-left: 8px"> 鎵归噺鎿嶄綔 + <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> + <a + style="margin-left: 24px" + @click="onClearSelected" + >娓呯┖</a> </div> <a-table @@ -80,23 +155,69 @@ :pagination="ipagination" :loading="loading" class="j-table-force-nowrap" + :scroll="{x:'max-content'}" :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" - @change="handleTableChange"> + @change="handleTableChange" + > - <span slot="action" slot-scope="text, record"> - <a @click="handleEdit(record)">缂栬緫</a> + <span + slot="action" + slot-scope="text, record" + > + <template v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE'"> + <a + @click="handleEdit(record)" + v-if="isShowAuth('eam:thirdMaintenance:edit')" + >缂栬緫</a> - <a-divider type="vertical" /> - <a-dropdown> - <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a> - <a-menu slot="overlay"> - <a-menu-item> - <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)"> - <a>鍒犻櫎</a> - </a-popconfirm> - </a-menu-item> - </a-menu> - </a-dropdown> + <a-divider + type="vertical" + v-if="isShowAuth('eam:thirdMaintenance:edit')" + /> + + <a-popconfirm + title="纭畾棰嗗彇鍚�?" + @confirm="() => handlerCollect(record.id)" + v-if="isShowAuth('eam:thirdMaintenance:collect')" + > + <a>棰嗗彇</a> + </a-popconfirm> + + <a-divider + type="vertical" + v-if="isShowAuth('eam:thirdMaintenance:collect')" + /> + + <a-dropdown> + <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a> + <a-menu slot="overlay"> + <a-menu-item v-if="isShowAuth('eam:thirdMaintenance:abolish')"> + <a-popconfirm + title="纭畾浣滃簾鍚�?" + @confirm="() => handlerAbolish(record.id)" + > + <a>浣滃簾</a> + </a-popconfirm> + </a-menu-item> + <a-menu-item> + <a @click="handleDetail(record)">璇︽儏</a> + </a-menu-item> + </a-menu> + </a-dropdown> + </template> + + <template v-else> + <a @click="handleDetail(record)">璇︽儏</a> + </template> + + <a-divider + v-if="record.maintenanceStatus === 'COMPLETE'" + type="vertical" + /> + <a + v-if="record.maintenanceStatus === 'COMPLETE'" + @click="handlePrint(record)" + >鎵撳嵃</a> </span> </a-table> @@ -104,142 +225,364 @@ <!-- table鍖哄煙-end --> <!-- 琛ㄥ崟鍖哄煙 --> - <eamThirdMaintenanceOrder-modal ref="modalForm" @ok="modalFormOk"></eamThirdMaintenanceOrder-modal> + <eamThirdMaintenanceOrder-modal + ref="modalForm" + @ok="modalFormOk" + ></eamThirdMaintenanceOrder-modal> + + <third-maintenance-approval-modal + ref="thirdMaintenanceApprovalModal" + :selectShenpiData="selectThirdMaintenanceData" + /> </a-card> </template> <script> - import '@/assets/less/TableExpand.less' - import EamThirdMaintenanceOrderModal from './modules/EamThirdMaintenanceOrderModal' - import { JeecgListMixin } from '@/mixins/JeecgListMixin' +import '@/assets/less/TableExpand.less' +import EamThirdMaintenanceOrderModal from './modules/EamThirdMaintenanceOrderModal' +import { JeecgListMixin } from '@/mixins/JeecgListMixin' +import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' +import { deleteAction, getAction } from '@api/manage' +import ThirdMaintenanceApprovalModal from '@views/flowable/workflow/thirdMaintenance/ThirdMaintenanceApprovalModal.vue' - export default { - name: "EamThirdMaintenanceOrderList", - mixins:[JeecgListMixin], - components: { - EamThirdMaintenanceOrderModal - }, - data () { - return { - description: '璁惧涓夌骇淇濆吇绠$悊椤甸潰', - // 琛ㄥご - columns: [ - { - title: '#', - dataIndex: '', - key:'rowIndex', - width:60, - align:"center", - customRender:function (t,r,index) { - return parseInt(index)+1; - } - }, - { - title: '鍒犻櫎鏍囪', - align:"center", - dataIndex: 'delFlag' - }, - { - title: '宸ュ崟鍙�', - align:"center", - dataIndex: 'orderNum' - }, - { - title: '璁惧ID', - align:"center", - dataIndex: 'equipmentId' - }, - { - title: '鏍囧噯ID', - align:"center", - dataIndex: 'standardId' - }, - { - title: '璁″垝寮�濮嬫椂闂�', - align:"center", - dataIndex: 'planStartTime' - }, - { - title: '璁″垝缁撴潫鏃堕棿', - align:"center", - dataIndex: 'planEndTime' - }, - { - title: '瀹為檯寮�濮嬫椂闂�', - align:"center", - dataIndex: 'actualStartTime' - }, - { - title: '瀹為檯缁撴潫鏃堕棿', - align:"center", - dataIndex: 'actualEndTime' - }, - { - title: '淇濆吇浜�', - align:"center", - dataIndex: 'operator' - }, - { - title: '淇濆吇鐘舵��', - align:"center", - dataIndex: 'maintenanceStatus' - }, - { - title: '鍒涘缓鏂瑰紡', - align:"center", - dataIndex: 'creationMethod' - }, - { - title: '璁惧绠$悊鍛樼‘璁�', - align:"center", - dataIndex: 'confirmUser' - }, - { - title: '纭鏃堕棿', - align:"center", - dataIndex: 'confirmTime' - }, - { - title: '纭鐘舵��', - align:"center", - dataIndex: 'confirmStatus' - }, - { - title: '鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧', - align:"center", - dataIndex: 'imageFiles' - }, - { - title: '澶囨敞', - align:"center", - dataIndex: 'remark' - }, - { - title: '鎿嶄綔', - dataIndex: 'action', - align:"center", - scopedSlots: { customRender: 'action' }, +export default { + name: 'EamThirdMaintenanceOrderList', + mixins: [JeecgListMixin], + components: { + LxSearchEquipmentSelect, + EamThirdMaintenanceOrderModal, + ThirdMaintenanceApprovalModal + }, + props: { + isDisplayOperation: { + type: Boolean, + default: true + } + }, + data() { + return { + description: '璁惧涓夌骇淇濆吇绠$悊椤甸潰', + disableMixinCreated: true, + selectThirdMaintenanceData: {}, + // 琛ㄥご + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + fixed: 'left', + customRender: function (t, r, index) { + return parseInt(index) + 1 } - ], - url: { - list: "/eam/eamThirdMaintenanceOrder/list", - delete: "/eam/eamThirdMaintenanceOrder/delete", - deleteBatch: "/eam/eamThirdMaintenanceOrder/deleteBatch", - exportXlsUrl: "eam/eamThirdMaintenanceOrder/exportXls", - importExcelUrl: "eam/eamThirdMaintenanceOrder/importExcel", - }, + }, + { + 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' + }, + { + 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: 'precisionChecker_dictText' + }, + { + title: '绮惧害妫�楠屾椂闂�', + align: 'center', + dataIndex: 'precisionCheckTime' + }, + { + title: '淇濆吇鐘舵��', + align: 'center', + dataIndex: 'maintenanceStatus_dictText' + }, + { + title: '鍒涘缓鏂瑰紡', + align: 'center', + dataIndex: 'creationMethod_dictText' + }, + { + 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: 'confirmLeader_dictText', + width: 60 + }, + { + title: '棰嗗纭鏃堕棿', + align: 'center', + dataIndex: 'leaderConfirmTime', + width: 60 + }, + { + title: '棰嗗鎰忚', + align: 'center', + dataIndex: 'leaderConfirmComment', + width: 60 + }, + { + title: '澶囨敞', + align: 'center', + dataIndex: 'remark' + } + ], + url: { + list: '/eam/thirdMaintenanceOrder/list', + abolish: '/eam/thirdMaintenanceOrder/abolish', + abolishBatch: '/eam/thirdMaintenanceOrder/abolishBatch', + collect: '/eam/thirdMaintenanceOrder/collect', + collectBatch: '/eam/thirdMaintenanceOrder/collectBatch' + } } }, - computed: { - importExcelUrl: function(){ - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; + created() { + if (!this.isDisplayOperation) { + return } + const operationColumn = { + title: '鎿嶄綔', + dataIndex: 'action', + align: 'center', + fixed: 'right', + width: 200, + scopedSlots: { customRender: 'action' } + } + this.columns = [...this.columns, operationColumn] + this.loadData(1) }, - methods: { - - } + computed: {}, + methods: { + onMaintenanceDateChange: function (value, dateString) { + if (dateString && dateString.length === 2) { + this.queryParam.maintenanceDateBegin = dateString[0] + this.queryParam.maintenanceDateEnd = dateString[1] + } else { + this.queryParam.maintenanceDateBegin = undefined + this.queryParam.maintenanceDateEnd = undefined + } + }, + handlerAbolish(id) { + if (!this.url.abolish) { + this.$message.error('璇疯缃畊rl.abolish灞炴��!') + 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 + } + 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.selectThirdMaintenanceData = Object.assign({}, record) + this.$refs.thirdMaintenanceApprovalModal.recordDetail(record) + this.$refs.thirdMaintenanceApprovalModal.title = '璇︽儏' + this.$refs.thirdMaintenanceApprovalModal.disableSubmit = true + }, + + handlePrint(record) { + let href = `${window._CONFIG['domianURL']}/jmreport/view/1094880052100399104?id=` + record.id; + // + `&orderId=` + record.id; //缃戠珯閾炬帴 + window.open(href, "_blank"); + }, } +} </script> <style scoped> - @import '~@assets/less/common.less'; +@import '~@assets/less/common.less'; </style> \ No newline at end of file -- Gitblit v1.9.3