From 34feb4908ec7b7e5b51adf6355603978c67bd3a4 Mon Sep 17 00:00:00 2001 From: cuijian <cuijian@xalxzn.com> Date: 星期四, 05 六月 2025 09:53:14 +0800 Subject: [PATCH] 申请单入库 --- src/views/eam/base/EamMaintenanceStandardList.vue | 328 ++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 242 insertions(+), 86 deletions(-) diff --git a/src/views/eam/base/EamMaintenanceStandardList.vue b/src/views/eam/base/EamMaintenanceStandardList.vue index 7d68d68..fe262e6 100644 --- a/src/views/eam/base/EamMaintenanceStandardList.vue +++ b/src/views/eam/base/EamMaintenanceStandardList.vue @@ -1,71 +1,82 @@ <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 :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="鏍囧噯缂栫爜"> - <a-input placeholder="璇疯緭鍏ユ爣鍑嗙紪鐮�" v-model="queryParam.standardCode"></a-input> - </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.standardName"></a-input> - </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.equipmentCode"></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="淇濆吇鍒嗙被"> - <a-input placeholder="璇疯緭鍏ヤ繚鍏诲垎绫�" v-model="queryParam.maintenanceCategory"></a-input> + <template v-if="isDisplayOperation"> + <!-- 鏌ヨ鍖哄煙 --> + <div class="table-page-search-wrapper"> + <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="鏍囧噯缂栫爜"> + <a-input placeholder="璇疯緭鍏ユ爣鍑嗙紪鐮�" v-model="queryParam.standardCode"></a-input> </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="info" @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> - </span> - </a-col> + <a-col :xl="4" :lg="7" :md="8" :sm="24"> + <a-form-item label="鏍囧噯鍚嶇О"> + <a-input placeholder="璇疯緭鍏ユ爣鍑嗗悕绉�" v-model="queryParam.standardName"></a-input> + </a-form-item> + </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> + </a-form-item> + </a-col> + <a-col :xl="4" :lg="7" :md="8" :sm="24"> + <a-form-item label="淇濆吇鍒嗙被"> + <j-dict-select-tag dict-code="maintenance_category" placeholder="璇烽�夋嫨淇濆吇鍒嗙被" v-model="queryParam.maintenanceCategory" /> + </a-form-item> + </a-col> + <a-col :xl="4" :lg="7" :md="8" :sm="24"> + <a-form-item label="鏍囧噯鐘舵��"> + <j-dict-select-tag dict-code="maintenance_standard_status" placeholder="璇烽�夋嫨鏍囧噯鐘舵��" v-model="queryParam.standardStatus" /> + </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> + </a-form> + </div> - </a-row> - </a-form> - </div> + <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> + <div class="table-operator"> + <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button> + <a-upload name="file" :showUploadList="false" :multiple="true" :headers="tokenHeader" :action="inspectionImportExcel" + @change="handleImportExcel"> + <a-button type="primary" icon="import">鐐规鏍囧噯瀵煎叆</a-button> + </a-upload> + <a-button type="primary" icon="download" @click="handleTemplateXlsDownload(url.inspectionXlsDownloadUrl)">鐐规鏍囧噯妯℃澘涓嬭浇</a-button> + <a-upload name="file" :showUploadList="false" :multiple="true" :headers="tokenHeader" :action="secondMaintenanceImportExcel" + @change="handleImportExcel"> + <a-button type="primary" icon="import">浜屼繚鏍囧噯瀵煎叆</a-button> + </a-upload> + <a-button type="primary" icon="download" @click="handleTemplateXlsDownload(url.secondMaintenanceXlsDownloadUrl)">浜屼繚鏍囧噯妯℃澘涓嬭浇</a-button> + <a-upload name="file" :showUploadList="false" :multiple="true" :headers="tokenHeader" :action="thirdMaintenanceImportExcel" + @change="handleImportExcel"> + <a-button type="primary" icon="import">涓変繚鏍囧噯瀵煎叆</a-button> + </a-upload> + <a-button type="primary" icon="download" @click="handleTemplateXlsDownload(url.thirdMaintenanceXlsDownloadUrl)">涓変繚鏍囧噯妯℃澘涓嬭浇</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> + <a-button style="margin-left: 8px"> 鎵归噺鎿嶄綔 + <a-icon type="down"/> + </a-button> + </a-dropdown> + </div> + </template> - <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> - <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> - <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> - <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> @@ -82,15 +93,26 @@ :loading="loading" class="j-table-force-nowrap" :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" + :customRow='clickThenSelect' @change="handleTableChange"> - + <template slot="referenceFile" slot-scope="text, record, index"> + <a v-if="text && text !== ''" @click.stop="handlePreview(record)">棰勮</a> + </template> <span slot="action" slot-scope="text, record"> - <a @click="handleEdit(record)">缂栬緫</a> + <a v-if="record.standardStatus === 'NORMAL'" @click.stop="handleEdit(record)">缂栬緫</a> - <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 v-if="record.standardStatus === 'NORMAL'"> + <a @click.stop="handleUpgrade(record)">鍗囩増</a> + </a-menu-item> + <a-menu-item v-if="record.standardStatus === 'NORMAL'"> + <a-popconfirm title="纭畾浣滃簾鍚�?" @confirm="() => handleAbolish(record.id)"> + <a>浣滃簾</a> + </a-popconfirm> + </a-menu-item> <a-menu-item> <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)"> <a>鍒犻櫎</a> @@ -101,11 +123,21 @@ </span> </a-table> + + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab='淇濆吇鏍囧噯鏄庣粏椤�' key="1"> + <div class="table-operator" style="margin:-16px"> + <eam-maintenance-standard-detail-list ref="standardDetailRef" :standardId="standardId"/> + </div> + </a-tab-pane> + + </a-tabs> </div> <!-- table鍖哄煙-end --> <!-- 琛ㄥ崟鍖哄煙 --> <eamMaintenanceStandard-modal ref="modalForm" @ok="modalFormOk"></eamMaintenanceStandard-modal> + <lx-file-preview ref="lxFilePreview" :fileUrl="fileUrl"></lx-file-preview> </a-card> </template> @@ -113,28 +145,31 @@ import '@/assets/less/TableExpand.less' import EamMaintenanceStandardModal from './modules/EamMaintenanceStandardModal' import { JeecgListMixin } from '@/mixins/JeecgListMixin' +import EamMaintenanceStandardDetailList from '@views/eam/base/modules/EamMaintenanceStandardDetailList' +import { deleteAction, templateXlsDownload } from '@api/manage' +import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' + export default { name: 'EamMaintenanceStandardList', mixins: [JeecgListMixin], + props: { + isDisplayOperation: { + type: Boolean, + default: true + } + }, components: { - EamMaintenanceStandardModal + LxSearchEquipmentSelect, + EamMaintenanceStandardModal, + EamMaintenanceStandardDetailList }, data() { return { description: '淇濆吇鏍囧噯绠$悊椤甸潰', + disableMixinCreated: true, // 琛ㄥご columns: [ - { - title: '#', - dataIndex: '', - key: 'rowIndex', - width: 60, - align: 'center', - customRender: function(t, r, index) { - return parseInt(index) + 1 - } - }, { title: '鏍囧噯缂栫爜', align: 'center', @@ -146,35 +181,45 @@ dataIndex: 'standardName' }, { - title: '淇濆吇鍛ㄦ湡', + title: '鏂囦欢缂栧彿', + align: 'center', + dataIndex: 'fileCode' + }, + { + title: '淇濆吇鍛ㄦ湡(澶�)', align: 'center', dataIndex: 'maintenancePeriod' }, { + title: '鍒濆鏃ユ湡', + align: 'center', + dataIndex: 'initialDate' + }, + { title: '淇濆吇鍒嗙被', align: 'center', - dataIndex: 'maintenanceCategory' + dataIndex: 'maintenanceCategory_dictText' }, { title: '璁惧缂栧彿', align: 'center', - dataIndex: 'equipmentCode' + dataIndex: 'equipmentId_dictText' }, { title: '鏍囧噯鐘舵��', align: 'center', - dataIndex: 'standardStatus' + dataIndex: 'standardStatus_dictText' }, { - title: '鏍囧噯鐗堟湰', + title: '鐗堟湰', align: 'center', dataIndex: 'standardVersion' }, { - title: '鎿嶄綔', - dataIndex: 'action', + title: '鍙傝�冩枃浠�', align: 'center', - scopedSlots: { customRender: 'action' } + dataIndex: 'referenceFile', + scopedSlots: { customRender: 'referenceFile' } } ], url: { @@ -182,16 +227,127 @@ delete: '/eam/maintenanceStandard/delete', deleteBatch: '/eam/maintenanceStandard/deleteBatch', exportXlsUrl: 'eam/maintenanceStandard/exportXls', - importExcelUrl: 'eam/maintenanceStandard/importExcel' - } + inspectionImportExcel: 'eam/maintenanceStandard/inspectionImportExcel', + weekMaintenanceImportExcel: 'eam/maintenanceStandard/weekMaintenanceImportExcel', + secondMaintenanceImportExcel: 'eam/maintenanceStandard/secondMaintenanceImportExcel', + thirdMaintenanceImportExcel: 'eam/maintenanceStandard/thirdMaintenanceImportExcel', + inspectionXlsDownloadUrl: '瀵煎叆妯℃澘/鐐规鏍囧噯瀵煎叆妯℃澘_v1.0.xlsx', + weekMaintenanceXlsDownloadUrl: '瀵煎叆妯℃澘/鍛ㄤ繚鏍囧噯瀵煎叆妯℃澘_v1.0.xlsx', + secondMaintenanceXlsDownloadUrl: '瀵煎叆妯℃澘/浜屼繚鏍囧噯瀵煎叆妯℃澘_v1.0.xlsx', + thirdMaintenanceXlsDownloadUrl: '瀵煎叆妯℃澘/涓変繚鏍囧噯瀵煎叆妯℃澘_v1.0.xlsx', + abolish: '/eam/maintenanceStandard/abolish', + }, + fileUrl: '', + standardId: '-1' } }, computed: { - importExcelUrl: function() { - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` + inspectionImportExcel: function() { + return `${window._CONFIG['domianURL']}/${this.url.inspectionImportExcel}` + }, + weekMaintenanceImportExcel: function() { + return `${window._CONFIG['domianURL']}/${this.url.weekMaintenanceImportExcel}` + }, + secondMaintenanceImportExcel: function() { + return `${window._CONFIG['domianURL']}/${this.url.secondMaintenanceImportExcel}` + }, + thirdMaintenanceImportExcel: function() { + return `${window._CONFIG['domianURL']}/${this.url.thirdMaintenanceImportExcel}` } }, - methods: {} + created() { + if (!this.isDisplayOperation) { + return + } + const operationColumn = { + title: '鎿嶄綔', + dataIndex: 'action', + align: 'center', + scopedSlots: { customRender: 'action' } + } + this.columns = [...this.columns, operationColumn] + this.loadData(1) + }, + methods: { + handlePreview: function(record) { + if (record.referenceFile) { + try { + let file = JSON.parse(record.referenceFile) + this.$refs.lxFilePreview.preview(file.filePath) + } catch (e) { + console.error(e) + this.$message.error(e.message) + } + } else { + this.$message.warning('鍙傝�冩枃浠朵负绌猴紒') + } + }, + clickThenSelect(record) { + return { + style: { + cursor: 'pointer' + }, + on: { + click: () => { + this.onSelectChange(record.id.split(','), [record]) + } + } + } + }, + onClearSelected() { + this.selectedRowKeys = [] + this.selectionRows = [] + this.standardId = '-1' + }, + onSelectChange(selectedRowKeys, selectionRows) { + this.selectedRowKeys = selectedRowKeys + this.selectionRows = selectionRows + if (selectedRowKeys.length === 1) { + this.standardId = selectedRowKeys[0] + } else { + this.standardId = '-1' + } + }, + searchReset() { + this.standardId = '-1' + this.queryParam = {} + this.loadData(1) + }, + handleTemplateXlsDownload(url) { + templateXlsDownload(url) + }, + handleAbolish: function (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 + }); + } + }); + }, + handleUpgrade(record) { + //鍗囩増 + this.$refs.modalForm.upgrade(record); + this.$refs.modalForm.title = "鍗囩増"; + this.$refs.modalForm.disableSubmit = false; + }, + } } </script> <style scoped> -- Gitblit v1.9.3