From fe7c43f16b81a6352b74d3cac84c891000f41659 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期二, 04 三月 2025 15:38:34 +0800 Subject: [PATCH] art: 所有设备 台账 增加点检工单Tab页签 --- src/views/eam/OperationCertificateApplyList.vue | 506 +++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 333 insertions(+), 173 deletions(-) diff --git a/src/views/eam/OperationCertificateApplyList.vue b/src/views/eam/OperationCertificateApplyList.vue index 1bdf51b..6c946b0 100644 --- a/src/views/eam/OperationCertificateApplyList.vue +++ b/src/views/eam/OperationCertificateApplyList.vue @@ -1,34 +1,86 @@ <template> - <a-card :bordered="false"> + <a-card + title="鎿嶄綔璇佺敵璇�" + :bordered="false" + > <!-- 鏌ヨ鍖哄煙 --> <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="6" :lg="7" :md="8" :sm="24"> + <a-col + :xl="6" + :lg="7" + :md="8" + :sm="24" + > <a-form-item label="鐢宠鍗曠紪鍙�"> - <a-input placeholder="璇疯緭鍏ョ敵璇峰崟缂栧彿" v-model="queryParam.num"></a-input> + <j-input + placeholder="璇疯緭鍏ョ敵璇峰崟缂栧彿" + v-model="queryParam.num" + ></j-input> </a-form-item> </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-col + :xl="6" + :lg="7" + :md="8" + :sm="24" + > <a-form-item label="绫诲瀷"> - <j-dict-select-tag placeholder="璇烽�夋嫨绫诲瀷" v-model="queryParam.type" dictCode="apply_type"/> + <j-dict-select-tag + placeholder="璇烽�夋嫨绫诲瀷" + v-model="queryParam.type" + dictCode="apply_type" + /> </a-form-item> </a-col> - <template v-if="toggleSearchStatus"> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="瀹℃牳鐘舵��"> - <j-dict-select-tag placeholder="璇烽�夋嫨瀹℃牳鐘舵��" v-model="queryParam.auditStatus" dictCode="certificate_apply_status"/> - </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"> + <!-- <template v-if="toggleSearchStatus"> --> + <a-col + :xl="6" + :lg="7" + :md="8" + :sm="24" + > + <a-form-item label="瀹℃牳鐘舵��"> + <j-dict-select-tag + placeholder="璇烽�夋嫨瀹℃牳鐘舵��" + v-model="queryParam.auditStatus" + dictCode="certificate_apply_status" + /> + </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-icon :type="toggleSearchStatus ? 'up' : 'down'" /> + </a> --> </span> </a-col> </a-row> @@ -38,17 +90,43 @@ <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> <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-button @click="handleAchievement" type="primary" icon="plus" v-if="selectedRowKeys.length == 1">鎴愮哗褰曞叆</a-button> + <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-button + @click="handleAchievement" + type="primary" + icon="plus" + v-if="selectedRowKeys.length == 1 && selectionRows[0].auditStatus == 'audited'" + >鎴愮哗褰曞叆</a-button> <!-- 楂樼骇鏌ヨ鍖哄煙 --> -<!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>--> + <!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>--> <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="batchDel" + ><a-icon type="delete" />鍒犻櫎</a-menu-item> </a-menu> <a-button style="margin-left: 8px"> 鎵归噺鎿嶄綔 <a-icon type="down" /></a-button> </a-dropdown> @@ -56,9 +134,15 @@ <!-- 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;" + > <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 @@ -73,32 +157,60 @@ :pagination="ipagination" :loading="loading" :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" - @change="handleTableChange"> + @change="handleTableChange" + > + <span + slot="action" + slot-scope="text, record" + > - <template slot="htmlSlot" slot-scope="text"> - <div v-html="text"></div> - </template> - <template slot="imgSlot" slot-scope="text,record"> - <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犲浘鐗�</span> - <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/> - </template> - <template slot="fileSlot" slot-scope="text"> - <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犳枃浠�</span> - <a-button - v-else - :ghost="true" - type="primary" - icon="download" - size="small" - @click="downloadFile(text)"> - 涓嬭浇 - </a-button> - </template> - - <span slot="action" slot-scope="text, record"> - <a @click="handleEdit(record)">缂栬緫</a> - - <a-divider type="vertical" /> + <a-popconfirm + v-if="record.auditStatus == 'created'" + title="纭鎻愪氦鍚�?" + @confirm="() =>handleCommit(record, 'commit')" + > + <a>鎻愪氦</a> + </a-popconfirm> + <a-popconfirm + v-if="record.auditStatus == 'submitted'" + title="纭鎾ゅ洖鍚�?" + @confirm="() =>handleCommit(record, 'back')" + > + <a>鎾ゅ洖</a> + </a-popconfirm> + <!-- <a-popconfirm + v-if="record.auditStatus == 'submitted' || record.auditStatus == 'approved'" + title="纭椹冲洖鍚�?" + @confirm="() =>handleCommit(record, 'back')" + > + <a>椹冲洖</a> + </a-popconfirm> --> + <a-divider + v-if="record.auditStatus == 'created' || record.auditStatus == 'submitted'" + type="vertical" + /> + <a + @click="handleEdit(record)" + v-if="record.auditStatus == 'created'" + >缂栬緫</a> + <a-divider + v-if="record.auditStatus == 'created'" + type="vertical" + /> + <a + v-show="record.auditStatus == 'submitted'" + @click="handleFinish(record)" + v-has="'OperationCertificateApply:operationCertificateAudit'" + >瀹℃牳</a> + <a + v-show="record.auditStatus == 'approved'" + @click="handleFinish(record)" + v-has="'OperationCertificateApply:equipmentAdmin'" + >瀹℃牳</a> + <a-divider + type="vertical" + v-if="record.auditStatus == 'created' || record.auditStatus == 'submitted' || record.auditStatus == 'approved'" + /> <a-dropdown> <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a> <a-menu slot="overlay"> @@ -106,7 +218,11 @@ <a @click="handleDetail(record)">璇︽儏</a> </a-menu-item> <a-menu-item> - <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)"> + <a-popconfirm + title="纭畾鍒犻櫎鍚�?" + @confirm="() => handleDelete(record.id)" + v-if="record.auditStatus == 'created'" + > <a>鍒犻櫎</a> </a-popconfirm> </a-menu-item> @@ -117,131 +233,170 @@ </a-table> </div> <a-tabs defaultActiveKey='1'> - <a-tab-pane tab='鎿嶄綔璇佺敵璇锋槑缁�' key='1'> + <a-tab-pane + tab='鎿嶄綔璇佺敵璇锋槑缁�' + key='1' + > <div class='table-operator' - style='margin:-20px'> + style='margin:-20px' + > <operation-certificate-apply-detail-list :mainId='operationCretificateApplyId' /> </div> </a-tab-pane> </a-tabs> - <operation-certificate-apply-modal ref="modalForm" @ok="modalFormOk" /> + <operation-certificate-apply-modal + ref="modalForm" + @ok="modalFormOk" + /> + <operation-certificate-apply-audit + ref="modalFormAudit" + @ok="modalFormOk" + /> </a-card> </template> <script> - import { JeecgListMixin } from '@/mixins/JeecgListMixin' - import OperationCertificateApplyModal from './modules/operationCertificateApply/OperationCertificateApplyModal' - import {filterMultiDictText} from '@/components/dict/JDictSelectUtil' - import OperationCertificateApplyDetailList from './modules/operationCertificateApply/OperationCertificateApplyDetailList' - import '@/assets/less/TableExpand.less' +import { JeecgListMixin } from '@/mixins/JeecgListMixin' +import OperationCertificateApplyModal from './modules/operationCertificateApply/OperationCertificateApplyModal' +import OperationCertificateApplyAudit from './modules/operationCertificateApply/OperationCertificateApplyAudit' +import { filterMultiDictText } from '@/components/dict/JDictSelectUtil' +import { getAction, postAction } from '@/api/manage' +import OperationCertificateApplyDetailList from './modules/operationCertificateApply/OperationCertificateApplyDetailList' +import '@/assets/less/TableExpand.less' - export default { - name: "OperationCertificateApplyList", - mixins:[JeecgListMixin], - components: { - OperationCertificateApplyModal, - OperationCertificateApplyDetailList - }, - data () { - return { - description: '鎿嶄綔璇佺敵璇疯〃绠$悊椤甸潰', - operationCretificateApplyId:'', - selectedMainId: '', - // 琛ㄥご - columns: [ - { - title: '#', - dataIndex: '', - key:'rowIndex', - width:60, - align:"center", - customRender:function (t,r,index) { - return parseInt(index)+1; - } - }, - { - title:'鐢宠鍗曠紪鍙�', - align:"center", - dataIndex: 'num' - }, - { - title:'绫诲瀷', - align:"center", - dataIndex: 'type_dictText' - }, - { - title:'鎵�鍦ㄥ崟浣�', - align:"center", - dataIndex: 'departId_dictText' - }, - { - title:'鐢宠鍗曚綅鑱旂郴鐢佃瘽', - align:"center", - dataIndex: 'contactNumber' - }, - { - title:'鐢宠浜�', - align:"center", - dataIndex: 'applicant_dictText' - }, - { - title:'瀹℃牳鐘舵��', - align:"center", - dataIndex: 'auditStatus_dictText' - }, - { - title:'澶囨敞', - align:"center", - dataIndex: 'remark' - }, - { - title: '鎿嶄綔', - dataIndex: 'action', - align:"center", - fixed:"right", - width:147, - scopedSlots: { customRender: 'action' }, +export default { + name: "OperationCertificateApplyList", + mixins: [JeecgListMixin], + components: { + OperationCertificateApplyModal, + OperationCertificateApplyDetailList, + OperationCertificateApplyAudit + }, + data() { + return { + description: '鎿嶄綔璇佺敵璇疯〃绠$悊椤甸潰', + operationCretificateApplyId: '', + selectedMainId: '', + // 琛ㄥご + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: "center", + customRender: function (t, r, index) { + return parseInt(index) + 1; } - ], - url: { - list: "/eam/operationCertificateApply/list", - delete: "/eam/operationCertificateApply/delete", - deleteBatch: "/eam/operationCertificateApply/deleteBatch", - exportXlsUrl: "/eam/operationCertificateApply/exportXls", - importExcelUrl: "eam/operationCertificateApply/importExcel", - }, - dictOptions:{}, - superFieldList:[], - } - }, - created() { - this.getSuperFieldList(); - }, - computed: { - importExcelUrl: function(){ - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; - } - }, - methods: { - initDictConfig(){ + { + title: '鐢宠鍗曠紪鍙�', + align: "center", + dataIndex: 'num' + }, + { + title: '绫诲瀷', + align: "center", + dataIndex: 'type_dictText' + }, + { + title: '鎵�鍦ㄥ崟浣�', + align: "center", + dataIndex: 'departId_dictText' + }, + { + title: '鐢宠鍗曚綅鑱旂郴鐢佃瘽', + align: "center", + dataIndex: 'contactNumber' + }, + { + title: '鐢宠浜�', + align: "center", + dataIndex: 'applicant_dictText' + }, + { + title: '瀹℃牳鐘舵��', + align: "center", + dataIndex: 'auditStatus_dictText' + }, + { + title: '鍔炵悊浜�', + align: "center", + dataIndex: 'handlePerson_dictText' + }, + { + title: '鍔炵悊鏃堕棿', + align: "center", + dataIndex: 'createTime' + }, + { + title: '鎿嶄綔', + dataIndex: 'action', + align: "center", + fixed: "right", + width: 147, + scopedSlots: { customRender: 'action' }, + } + ], + url: { + list: "/eam/operationCertificateApply/list", + delete: "/eam/operationCertificateApply/delete", + deleteBatch: "/eam/operationCertificateApply/deleteBatch", + exportXlsUrl: "/eam/operationCertificateApply/exportXls", + importExcelUrl: "eam/operationCertificateApply/importExcel", + approve: "/eam/operationCertificateApply/approve" }, - getSuperFieldList(){ - let fieldList=[]; - fieldList.push({type:'string',value:'num',text:'鐢宠鍗曠紪鍙�',dictCode:''}) - fieldList.push({type:'string',value:'type',text:'绫诲瀷',dictCode:'apply_type'}) - fieldList.push({type:'sel_depart',value:'departId',text:'鎵�鍦ㄥ崟浣�'}) - fieldList.push({type:'string',value:'contactNumber',text:'鐢宠鍗曚綅鑱旂郴鐢佃瘽',dictCode:''}) - fieldList.push({type:'string',value:'applicant',text:'鐢宠浜�',dictCode:"sys_user,realname,id"}) - fieldList.push({type:'string',value:'auditStatus',text:'瀹℃牳鐘舵��',dictCode:'certificate_apply_status'}) - fieldList.push({type:'string',value:'remark',text:'澶囨敞',dictCode:''}) - this.superFieldList = fieldList - }, - handleEdit: function (record) { + dictOptions: {}, + // superFieldList: [], + } + }, + created() { + // this.getSuperFieldList(); + }, + computed: { + importExcelUrl: function () { + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; + } + }, + methods: { + // initDictConfig() { + // }, + // getSuperFieldList() { + // let fieldList = []; + // fieldList.push({ type: 'string', value: 'num', text: '鐢宠鍗曠紪鍙�', dictCode: '' }) + // fieldList.push({ type: 'string', value: 'type', text: '绫诲瀷', dictCode: 'apply_type' }) + // fieldList.push({ type: 'sel_depart', value: 'departId', text: '鎵�鍦ㄥ崟浣�' }) + // fieldList.push({ type: 'string', value: 'contactNumber', text: '鐢宠鍗曚綅鑱旂郴鐢佃瘽', dictCode: '' }) + // fieldList.push({ type: 'string', value: 'applicant', text: '鐢宠浜�', dictCode: "sys_user,realname,id" }) + // fieldList.push({ type: 'string', value: 'auditStatus', text: '瀹℃牳鐘舵��', dictCode: 'certificate_apply_status' }) + // fieldList.push({ type: 'string', value: 'remark', text: '澶囨敞', dictCode: '' }) + // this.superFieldList = fieldList + // }, + handleCommit(record, type) { + if (type == 'commit') { + record.auditStatus = 'submitted' + } else if (type == 'back') { + record.auditStatus = 'created' + } else if (type == 'approved') { + record.auditStatus = 'approved' + } else if (type == 'audited') { + record.auditStatus = 'audited' + } + + postAction(this.url.approve, record).then(res => { + if (res.success) { + this.$message.success("鎿嶄綔鎴愬姛锛�"); + this.loadData(1); + } else { + this.$message.warning(res.message); + } + }) + }, + handleEdit: function (record) { this.$refs.modalForm.edit(record); this.$refs.modalForm.title = "缂栬緫"; this.$refs.modalForm.disableSubmit = false; @@ -251,13 +406,18 @@ this.$refs.modalForm.title = "鏂板"; this.$refs.modalForm.disableSubmit = false; }, - handleAchievement(){ - this.$refs.modalForm.edit(this.selectionRows[0]); - this.$refs.modalForm.title = "鎴愮哗褰曞叆"; - this.$refs.modalForm.disableSubmit = false; - this.$refs.modalForm.isAchievement = true; - }, - onSelectChange(selectedRowKeys, selectionRows) { + handleAchievement() { + this.$refs.modalForm.edit(this.selectionRows[0]); + this.$refs.modalForm.title = "鎴愮哗褰曞叆"; + this.$refs.modalForm.disableSubmit = false; + this.$refs.modalForm.isAchievement = true; + }, + handleFinish: function (record) { + this.$refs.modalFormAudit.edit(record); + this.$refs.modalFormAudit.title = "鎿嶄綔璇佺敵璇峰鏍�"; + this.$refs.modalFormAudit.disableSubmit = true; + }, + onSelectChange(selectedRowKeys, selectionRows) { if (selectedRowKeys.length == 1) { this.operationCretificateApplyId = selectionRows[0]['id'] @@ -280,9 +440,9 @@ this.selectedMainId = '' this.operationCretificateApplyId = '' } - } } +} </script> <style scoped> - @import '~@assets/less/common.less'; +@import '~@assets/less/common.less'; </style> \ No newline at end of file -- Gitblit v1.9.3