From 8905bdd0a74c4bd6cabc206c36a299341488041e Mon Sep 17 00:00:00 2001 From: zhaowei <zhaowei> Date: 星期四, 11 九月 2025 11:00:26 +0800 Subject: [PATCH] 合并设备借出与归还流程,增加借出归还列表详情功能 --- src/views/eam/dispose/EamEquipmentLeanOutList.vue | 427 +++++++++++++++++++++++++++++++---------------------- 1 files changed, 248 insertions(+), 179 deletions(-) diff --git a/src/views/eam/dispose/EamEquipmentLeanOutList.vue b/src/views/eam/dispose/EamEquipmentLeanOutList.vue index ec649a4..47e6bb6 100644 --- a/src/views/eam/dispose/EamEquipmentLeanOutList.vue +++ b/src/views/eam/dispose/EamEquipmentLeanOutList.vue @@ -3,23 +3,50 @@ <!-- 鏌ヨ鍖哄煙 --> <div class="table-page-search-wrapper"> - <a-form layout="inline" @keyup.enter.native="searchQuery"> + <a-form + layout="inline" + @keyup.enter.native="searchQuery" + > <a-row :gutter="24"> <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="4" :lg="7" :md="8" :sm="24"> <a-form-item label="鍗曟嵁鍙�"> - <a-input placeholder="璇疯緭鍏ュ崟鎹彿" v-model="queryParam.code"></a-input> + <a-input + placeholder="璇疯緭鍏ュ崟鎹彿" + v-model="queryParam.code" + ></a-input> </a-form-item> </a-col> - <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="info" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button> + <a-col :xl="4" :lg="7" :md="8" :sm="24"> + <a-form-item label="鍊熺敤鐘舵��"> + <j-dict-select-tag placeholder="璇烽�夋嫨鍊熺敤鐘舵��" dictCode="equipment_lean_out_status" + v-model="queryParam.leanStatus" + allow-clear/> + </a-form-item> + </a-col> + <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> </a-row> @@ -28,26 +55,40 @@ <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> <div class="table-operator"> - <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button> + <a-button + @click="handleAdd" + type="primary" + icon="plus" + >鏂板 + </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 + key="1" + @click="batchDel" + > + <a-icon type="delete"/> 鍒犻櫎 </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;"> - <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> + <div + class="ant-alert ant-alert-info" + style="margin-bottom: 16px;" + > + <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> </div> <a-table @@ -61,32 +102,56 @@ :loading="loading" :scroll="{ x: 'max-content' }" :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" - @change="handleTableChange"> + @change="handleTableChange" + > - <span slot="action" slot-scope="text, record"> + <span + slot="action" + slot-scope="text, record" + > <template v-if="record.leanStatus === 'WAIT_SUBMIT'"> <a @click="handleEdit(record)">缂栬緫</a> - <a-divider type="vertical" /> - <a-popconfirm title="纭畾鎻愪氦鍚�?" @confirm="() => handleSubmit(record.id)"> + <a-divider type="vertical"/> + <a-popconfirm + title="纭畾鎻愪氦鍚�?" + @confirm="() => handleSubmit(record.id)" + > <a>鎻愪氦</a> </a-popconfirm> - <a-divider type="vertical" /> + <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> - <a href="javascript:;" @click="handleDetail(record)">璇︽儏</a> + <a-menu-item> + <a + href="javascript:;" + @click="handleDetail(record)" + >璇︽儏</a> </a-menu-item> <a-menu-item> - <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)"> + <a-popconfirm + title="纭畾鍒犻櫎鍚�?" + @confirm="() => handleDelete(record.id)" + > <a>鍒犻櫎</a> </a-popconfirm> </a-menu-item> </a-menu> </a-dropdown> </template> - <template v-else> - <a href="javascript:;" @click="handleDetail(record)">璇︽儏</a> + + <template v-if="record.leanStatus === 'WAIT_RETURN'"> + <a-popconfirm title='纭畾褰掕繕鍚�?' @confirm='() => equipmentReturn(record.id)'> + <a>褰掕繕</a> + </a-popconfirm> + <a-divider type='vertical'/> + </template> + + <template v-if="record.leanStatus !== 'WAIT_SUBMIT'"> + <a + href="javascript:;" + @click="handleDetail(record)" + >璇︽儏</a> </template> </span> @@ -95,169 +160,173 @@ <!-- table鍖哄煙-end --> <!-- 琛ㄥ崟鍖哄煙 --> - <eamEquipmentLeanOut-modal ref="modalForm" @ok="modalFormOk"></eamEquipmentLeanOut-modal> + <eamEquipmentLeanOut-modal + ref="modalForm" + @ok="modalFormOk" + ></eamEquipmentLeanOut-modal> + + <!--瀹℃壒寮圭獥--> + <equipment-lean-out-and-return-approval-modal ref="approvalModal" + :selectShenpiData="selectRowData"/> </a-card> </template> <script> -import '@/assets/less/TableExpand.less' -import EamEquipmentLeanOutModal from './modules/EamEquipmentLeanOutModal' -import { JeecgListMixin } from '@/mixins/JeecgListMixin' -import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' -import { getAction } from '@api/manage' + import '@/assets/less/TableExpand.less' + import EamEquipmentLeanOutModal from './modules/EamEquipmentLeanOutModal' + import { JeecgListMixin } from '@/mixins/JeecgListMixin' + import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' + import { getAction } from '@api/manage' + import EquipmentLeanOutAndReturnApprovalModal + from '../../flowable/workflow/leanOut/EquipmentLeanOutAndReturnApprovalModal' -export default { - name: 'EamEquipmentLeanOutList', - mixins: [JeecgListMixin], - components: { - LxSearchEquipmentSelect, - EamEquipmentLeanOutModal - }, - data() { - return { - description: '璁惧鍊熷嚭褰掕繕绠$悊椤甸潰', - // 琛ㄥご - columns: [ - { - title: '#', - dataIndex: '', - key: 'rowIndex', - width: 60, - fixed: 'left', - align: 'center', - customRender: function(t, r, index) { - return parseInt(index) + 1 + export default { + name: 'EamEquipmentLeanOutList', + mixins: [JeecgListMixin], + components: { + EquipmentLeanOutAndReturnApprovalModal, + LxSearchEquipmentSelect, + EamEquipmentLeanOutModal + }, + data() { + return { + description: '璁惧鍊熷嚭褰掕繕绠$悊椤甸潰', + selectRowData: {}, + // 琛ㄥご + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + fixed: 'left', + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 + } + }, + { + title: '璁惧缂栧彿', + align: 'center', + dataIndex: 'equipmentCode', + fixed: 'left' + }, + { + title: '璁惧鍚嶇О', + align: 'center', + dataIndex: 'equipmentName', + fixed: 'left' + }, + { + title: '鍗曟嵁鍙�', + align: 'center', + dataIndex: 'code' + }, + { + title: '鍊熷叆杞﹂棿', + align: 'center', + dataIndex: 'leanDepartId_dictText' + }, + { + title: '鍊熷叆浜�', + align: 'center', + dataIndex: 'leanPerson_dictText' + }, + { + title: '鍊熺敤鍘熷洜', + align: 'center', + dataIndex: 'leanReason' + }, + { + title: '鍊熺敤鐘舵��', + align: 'center', + dataIndex: 'leanStatus_dictText' + }, + { + title: '鍊熺敤寮�濮嬫椂闂�', + align: 'center', + dataIndex: 'leanStartTime' + }, + { + title: '鍊熺敤褰掕繕鏃堕棿', + align: 'center', + dataIndex: 'leanEndTime' + }, + { + title: '澶囨敞', + align: 'center', + dataIndex: 'remark' + }, + { + title: '鎿嶄綔', + dataIndex: 'action', + align: 'center', + fixed: 'right', + width: 200, + scopedSlots: { customRender: 'action' } } - }, - { - title: '璁惧缂栧彿', - align: 'center', - dataIndex: 'equipmentCode', - fixed: 'left', - }, - { - title: '璁惧鍚嶇О', - align: 'center', - dataIndex: 'equipmentName', - fixed: 'left', - }, - { - title: '鍗曟嵁鍙�', - align: 'center', - dataIndex: 'code' - }, - { - title: '鍊熷叆杞﹂棿', - align: 'center', - dataIndex: 'leanDepartId_dictText' - }, - { - title: '鍊熷叆浜�', - align: 'center', - dataIndex: 'leanPerson_dictText' - }, - { - title: '鍊熺敤鍘熷洜', - align: 'center', - dataIndex: 'leanReason' - }, - { - title: '鍊熺敤鐘舵��', - align: 'center', - dataIndex: 'leanStatus_dictText' - }, - { - title: '鍊熺敤寮�濮嬫椂闂�', - align: 'center', - dataIndex: 'leanStartTime' - }, - { - title: '鍊熺敤褰掕繕鏃堕棿', - align: 'center', - dataIndex: 'leanEndTime' - }, - { - title: '瀹℃牳浜�', - align: 'center', - dataIndex: 'approvalUser_dictText' - }, - { - title: '瀹℃牳鎰忚', - align: 'center', - dataIndex: 'approvalComment' - }, - { - title: '瀹℃牳鏃堕棿', - align: 'center', - dataIndex: 'approvalTime' - }, - { - title: '褰掕繕纭浜�', - align: 'center', - dataIndex: 'confirmUser_dictText' - }, - { - title: '纭鎰忚', - align: 'center', - dataIndex: 'confirmComment' - }, - { - title: '纭鏃堕棿', - align: 'center', - dataIndex: 'confirmTime' - }, - { - title: '澶囨敞', - align: 'center', - dataIndex: 'remark' - }, - { - title: '鎿嶄綔', - dataIndex: 'action', - align: 'center', - fixed: 'right', - width: 200, - scopedSlots: { customRender: 'action' } + ], + url: { + list: '/eam/eamEquipmentLeanOut/list', + delete: '/eam/eamEquipmentLeanOut/delete', + deleteBatch: '/eam/eamEquipmentLeanOut/deleteBatch', + submit: '/eam/eamEquipmentLeanOut/submit', + equipmentReturn: '/eam/eamEquipmentLeanOut/equipmentReturn' } - ], - url: { - list: '/eam/eamEquipmentLeanOut/list', - delete: '/eam/eamEquipmentLeanOut/delete', - deleteBatch: '/eam/eamEquipmentLeanOut/deleteBatch', - submit: '/eam/eamEquipmentLeanOut/submit', } - } - }, - computed: {}, - methods: { - handleSubmit(id) { - if (!this.url.submit) { - this.$message.error('璇疯缃畊rl.submit灞炴��!') - return + }, + computed: {}, + methods: { + equipmentReturn(id) { + this.loading = true + let that = this + getAction(that.url.equipmentReturn, { id: id }).then((res) => { + if (res.success) { + //閲嶆柊璁$畻鍒嗛〉闂 + that.reCalculatePage(1) + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + that.loadData() + } else { + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + } + }) + }, + handleSubmit(id) { + this.loading = true + let that = this + getAction(that.url.submit, { id: id }).then((res) => { + if (res.success) { + //閲嶆柊璁$畻鍒嗛〉闂 + that.reCalculatePage(1) + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + that.loadData() + } else { + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + } + }) + }, + + handleDetail(record) { + this.selectRowData = Object.assign({}, record) + this.$refs.approvalModal.recordDetail(record) + this.$refs.approvalModal.title = '璇︽儏' + this.$refs.approvalModal.disableSubmit = true } - let that = this - getAction(that.url.submit, { 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 - }) - } - }) } } -} </script> <style scoped> -@import '~@assets/less/common.less'; + @import '~@assets/less/common.less'; </style> \ No newline at end of file -- Gitblit v1.9.3