From 4c8b185fea72bc3bb8fc380a196b8fe2a8e5f1af Mon Sep 17 00:00:00 2001 From: qushaowei <qushaowei@163.com> Date: 星期四, 03 七月 2025 20:13:28 +0800 Subject: [PATCH] 设备管理问题修改 --- src/views/eam/base/EamMaintenanceStandardList.vue | 303 ++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 241 insertions(+), 62 deletions(-) diff --git a/src/views/eam/base/EamMaintenanceStandardList.vue b/src/views/eam/base/EamMaintenanceStandardList.vue index fe262e6..d053dff 100644 --- a/src/views/eam/base/EamMaintenanceStandardList.vue +++ b/src/views/eam/base/EamMaintenanceStandardList.vue @@ -4,37 +4,99 @@ <template v-if="isDisplayOperation"> <!-- 鏌ヨ鍖哄煙 --> <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-col + :xl="4" + :lg="7" + :md="8" + :sm="24" + > <a-form-item label="鏍囧噯缂栫爜"> - <a-input placeholder="璇疯緭鍏ユ爣鍑嗙紪鐮�" v-model="queryParam.standardCode"></a-input> + <a-input + placeholder="璇疯緭鍏ユ爣鍑嗙紪鐮�" + v-model="queryParam.standardCode" + ></a-input> </a-form-item> </a-col> - <a-col :xl="4" :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.standardName"></a-input> + <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-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-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" /> + <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-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" /> + <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> + <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> @@ -43,43 +105,94 @@ <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> <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-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-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-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-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 + 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> </template> - <!-- table鍖哄煙-begin --> <div> - <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> + <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> </div> <a-table @@ -94,27 +207,54 @@ 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> + @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 v-if="record.standardStatus === 'NORMAL'" @click.stop="handleEdit(record)">缂栬緫</a> + <span + slot="action" + slot-scope="text, record" + > + <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-popconfirm + title="纭畾浣滃簾鍚�?" + @confirm="() => handleAbolish(record.id)" + > <a>浣滃簾</a> </a-popconfirm> </a-menu-item> + <a-menu-item v-if="record.referenceFile !== null"> + <a-popconfirm + title="纭畾涓嬭浇鏂囦欢鍚�?" + @confirm="() => handleDownload(record)" + > + <a>涓嬭浇</a> + </a-popconfirm> + </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> @@ -125,9 +265,18 @@ </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"/> + <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> @@ -136,8 +285,14 @@ <!-- table鍖哄煙-end --> <!-- 琛ㄥ崟鍖哄煙 --> - <eamMaintenanceStandard-modal ref="modalForm" @ok="modalFormOk"></eamMaintenanceStandard-modal> - <lx-file-preview ref="lxFilePreview" :fileUrl="fileUrl"></lx-file-preview> + <eamMaintenanceStandard-modal + ref="modalForm" + @ok="modalFormOk" + ></eamMaintenanceStandard-modal> + <lx-file-preview + ref="lxFilePreview" + :fileUrl="fileUrl" + ></lx-file-preview> </a-card> </template> @@ -146,7 +301,7 @@ 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 { deleteAction, templateXlsDownload, downFile } from '@api/manage' import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' @@ -236,22 +391,23 @@ secondMaintenanceXlsDownloadUrl: '瀵煎叆妯℃澘/浜屼繚鏍囧噯瀵煎叆妯℃澘_v1.0.xlsx', thirdMaintenanceXlsDownloadUrl: '瀵煎叆妯℃澘/涓変繚鏍囧噯瀵煎叆妯℃澘_v1.0.xlsx', abolish: '/eam/maintenanceStandard/abolish', + download: '/eam/maintenanceStandard/downloadFile', }, fileUrl: '', standardId: '-1' } }, computed: { - inspectionImportExcel: function() { + inspectionImportExcel: function () { return `${window._CONFIG['domianURL']}/${this.url.inspectionImportExcel}` }, - weekMaintenanceImportExcel: function() { + weekMaintenanceImportExcel: function () { return `${window._CONFIG['domianURL']}/${this.url.weekMaintenanceImportExcel}` }, - secondMaintenanceImportExcel: function() { + secondMaintenanceImportExcel: function () { return `${window._CONFIG['domianURL']}/${this.url.secondMaintenanceImportExcel}` }, - thirdMaintenanceImportExcel: function() { + thirdMaintenanceImportExcel: function () { return `${window._CONFIG['domianURL']}/${this.url.thirdMaintenanceImportExcel}` } }, @@ -269,7 +425,7 @@ this.loadData(1) }, methods: { - handlePreview: function(record) { + handlePreview: function (record) { if (record.referenceFile) { try { let file = JSON.parse(record.referenceFile) @@ -317,26 +473,26 @@ templateXlsDownload(url) }, handleAbolish: function (id) { - if(!this.url.abolish){ + if (!this.url.abolish) { this.$message.error("璇疯缃畊rl.abolish灞炴��!") return } var that = this; - deleteAction(that.url.abolish, {id: id}).then((res) => { + 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 + message: '娑堟伅', + description: res.message }); that.loadData(); } else { // that.$message.warning(res.message); that.$notification.warning({ - message:'娑堟伅', - description:res.message + message: '娑堟伅', + description: res.message }); } }); @@ -347,6 +503,29 @@ this.$refs.modalForm.title = "鍗囩増"; this.$refs.modalForm.disableSubmit = false; }, + handleDownload(record) { + downFile(this.url.download, { id: record.id }).then((res) => { + if (!res) { + this.$message.warning('鏂囦欢涓嬭浇澶辫触') + return + } else { + let fileName = record.fileName; + if (typeof window.navigator.msSaveBlob !== 'undefined') { + window.navigator.msSaveBlob(new Blob([res]), fileName); + } else { + let url = window.URL.createObjectURL(new Blob([res])); + let link = document.createElement('a'); + link.style.display = 'none'; + link.href = url; + link.setAttribute('download', fileName); + document.body.appendChild(link); + link.click() + document.body.removeChild(link) //涓嬭浇瀹屾垚绉婚櫎鍏冪礌 + window.URL.revokeObjectURL(url) //閲婃斁鎺塨lob瀵硅薄 + } + } + }) + }, } } </script> -- Gitblit v1.9.3