From 352780a799d49510eb75b48e75015e8528612fec Mon Sep 17 00:00:00 2001 From: zhaowei <zhaowei> Date: 星期三, 23 七月 2025 15:45:21 +0800 Subject: [PATCH] 1、停用申请页面功能及流程 2、调整技术状态变更申请驳回时的审批节点展示条件 --- src/views/eam/technical/EamTechnicalStatusDeactivateList.vue | 349 +++++++++++++++++++++++++++++++++------------------------ 1 files changed, 202 insertions(+), 147 deletions(-) diff --git a/src/views/eam/technical/EamTechnicalStatusDeactivateList.vue b/src/views/eam/technical/EamTechnicalStatusDeactivateList.vue index b419324..3e4ce41 100644 --- a/src/views/eam/technical/EamTechnicalStatusDeactivateList.vue +++ b/src/views/eam/technical/EamTechnicalStatusDeactivateList.vue @@ -1,46 +1,39 @@ <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.delFlag"></a-input> - </a-form-item> - </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-col :xl="4" :lg="6" :md="8" :sm="12"> <a-form-item label="鍋滅敤鍗曞彿"> - <a-input placeholder="璇疯緭鍏ュ仠鐢ㄥ崟鍙�" v-model="queryParam.deactivateOrderNum"></a-input> + <a-input placeholder="璇疯緭鍏ュ仠鐢ㄥ崟鍙�" v-model="queryParam.deactivateOrderNum"/> </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.applicant"></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.factoryOrgCode"></a-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="12"> <a-form-item label="鐢宠鏃ユ湡"> - <a-input placeholder="璇疯緭鍏ョ敵璇锋棩鏈�" v-model="queryParam.applyDate"></a-input> + <a-range-picker v-model="queryParam.applyDate" value-format="YYYY-MM-DD" @change="handleDateRangeChange"/> </a-form-item> </a-col> - </template> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-col :xl="5" :lg="6" :md="8" :sm="12"> + <a-form-item label="鐢宠鍗曠姸鎬�"> + <j-dict-select-tag placeholder="璇烽�夋嫨鐢宠鍗曠姸鎬�" v-model="queryParam.applicationStatus" + dict-code="technical_status_deactivate_status"/> + </a-form-item> + </a-col> + <a-col :xl="6" :lg="7" :md="8" :sm="12"> + <a-form-item label="鐢宠閮ㄩ棬"> + <a-tree-select v-model="queryParam.factoryOrgCode" style="width: 100%" :tree-data="productionTreeData" + show-search :replaceFields="{key:'orgCode',value:'orgCode'}" + treeNodeFilterProp="title" searchPlaceholder="璇疯緭鍏ュ叧閿瓧鎼滅储" + :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" placeholder="璇烽�夋嫨鐢宠閮ㄩ棬" + allow-clear tree-default-expand-all/> + </a-form-item> + </a-col> + + <a-col :xl="3" :lg="6" :md="8" :sm="12"> <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> @@ -51,180 +44,242 @@ <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> <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-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-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;"> - <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 - ref="table" - size="middle" - bordered - rowKey="id" - :columns="columns" - :dataSource="dataSource" - :pagination="ipagination" - :loading="loading" - class="j-table-force-nowrap" - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" - @change="handleTableChange"> + <a-table ref="table" size="middle" bordered rowKey="id" :columns="columns" :dataSource="dataSource" + :pagination="ipagination" :loading="loading" :scroll="{x:'max-content'}" @change="handleTableChange"> <span slot="action" slot-scope="text, record"> - <a @click="handleEdit(record)">缂栬緫</a> + <template v-if="record.applicationStatus=='WAIT_SUBMIT'"> + <a @click.stop="handleEdit(record)">缂栬緫</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"/> + + <a-popconfirm title="纭畾鎻愪氦鍚楋紵" @confirm="handleSubmit(record.id)"> + <a @click="e=>e.stopPropagation()">鎻愪氦</a> + </a-popconfirm> + + <a-divider type="vertical"/> + + <a-popconfirm title="纭畾浣滃簾鍚楋紵" @confirm="handleAbolish(record.id)"> + <a @click="e=>e.stopPropagation()">浣滃簾</a> + </a-popconfirm> + </template> + + <a @click.stop="handleDetail(record)" + v-if="record.applicationStatus!='WAIT_SUBMIT'&&record.applicationStatus!='ABOLISH'">璇︽儏</a> </span> - - </a-table> - </div> + </a-table> <!-- table鍖哄煙-end --> <!-- 琛ㄥ崟鍖哄煙 --> - <eamTechnicalStatusDeactivate-modal ref="modalForm" @ok="modalFormOk"></eamTechnicalStatusDeactivate-modal> + <eamTechnicalStatusDeactivate-modal ref="modalForm" @ok="modalFormOk" :productionTreeData="productionTreeData"/> + + <!--瀹℃壒绐楀彛--> + <technical-status-deactivate-approval-modal ref="technicalStatusDeactivateApprovalModal" + :selectShenpiData="selectedRowData"/> </a-card> </template> <script> - import '@/assets/less/TableExpand.less' import EamTechnicalStatusDeactivateModal from './modules/EamTechnicalStatusDeactivateModal' import { JeecgListMixin } from '@/mixins/JeecgListMixin' + import { getAction } from '@/api/manage' + import TechnicalStatusDeactivateApprovalModal + from '../../flowable/workflow/TechnicalStatus/TechnicalStatusDeactivateApprovalModal' export default { - name: "EamTechnicalStatusDeactivateList", - mixins:[JeecgListMixin], + name: 'EamTechnicalStatusDeactivateList', + mixins: [JeecgListMixin], components: { + TechnicalStatusDeactivateApprovalModal, EamTechnicalStatusDeactivateModal }, - data () { + data() { return { description: '鍋滅敤鍔犲伐璁惧鐢宠鍗曠鐞嗛〉闈�', + productionTreeData: [], + selectedRowData: {}, // 琛ㄥご columns: [ { title: '#', dataIndex: '', - key:'rowIndex', - width:60, - align:"center", - customRender:function (t,r,index) { - return parseInt(index)+1; + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 } - }, - { - title: '鍒犻櫎鏍囪', - align:"center", - dataIndex: 'delFlag' - }, - { + }, + { title: '鍋滅敤鍗曞彿', - align:"center", + align: 'center', dataIndex: 'deactivateOrderNum' - }, - { + }, + { title: '鐢宠浜�', - align:"center", - dataIndex: 'applicant' - }, - { + align: 'center', + dataIndex: 'applicant_dictText' + }, + { title: '鐢宠閮ㄩ棬', - align:"center", - dataIndex: 'factoryOrgCode' - }, - { + align: 'center', + dataIndex: 'factoryOrgCode_dictText' + }, + { title: '鐢宠鏃ユ湡', - align:"center", + align: 'center', dataIndex: 'applyDate' - }, - { - title: '鐢宠鍗曠姸鎬�;寰呮彁浜ゃ�佸緟鍗曚綅瀹ょ骇棰嗗瀹℃牳銆佺敓浜ц澶囩鐞嗕富绠″鏍搞�佸緟淇濋殰閮ㄩ瀵煎鏍搞�佸凡浣滃簾銆佸凡瀹屾垚', - align:"center", - dataIndex: 'applicationStatus' - }, - { + }, + { + title: '鐢宠鍗曠姸鎬�', + align: 'center', + dataIndex: 'applicationStatus_dictText' + }, + { title: '浣跨敤鍗曚綅瀹や富绠$瀛�', - align:"center", + align: 'center', dataIndex: 'departHeaderSignature' - }, - { + }, + { title: '浣跨敤鍗曚綅瀹や富绠$瀛楁椂闂�', - align:"center", + align: 'center', dataIndex: 'departHeaderSignatureTime' - }, - { - title: '浣跨敤鍗曚綅瀹や富绠℃剰瑙�', - align:"center", - dataIndex: 'departHeaderSignatureComment' - }, - { + }, + { title: '浣跨敤鍗曚綅閮ㄤ富绠$瀛�', - align:"center", + align: 'center', dataIndex: 'departLeaderSignature' - }, - { + }, + { title: '浣跨敤鍗曚綅閮ㄤ富绠$瀛楁椂闂�', - align:"center", + align: 'center', dataIndex: 'departLeaderSignatureTime' - }, - { - title: '浣跨敤鍗曚綅閮ㄤ富绠$瀛�', - align:"center", - dataIndex: 'departLeaderSignatureComment' - }, - { + }, + { title: 'HF缂栫爜', - align:"center", + align: 'center', dataIndex: 'hfCode' - }, + }, { title: '鎿嶄綔', dataIndex: 'action', - align:"center", + align: 'center', scopedSlots: { customRender: 'action' }, + width: 200, + fixed: 'right' } ], - url: { - list: "/eam/eamTechnicalStatusDeactivate/list", - delete: "/eam/eamTechnicalStatusDeactivate/delete", - deleteBatch: "/eam/eamTechnicalStatusDeactivate/deleteBatch", - exportXlsUrl: "eam/eamTechnicalStatusDeactivate/exportXls", - importExcelUrl: "eam/eamTechnicalStatusDeactivate/importExcel", - }, - } - }, - computed: { - importExcelUrl: function(){ - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; - } - }, + url: { + list: '/eam/eamTechnicalStatusDeactivate/list', + submit: '/eam/eamTechnicalStatusDeactivate/submit', + abolish: '/eam/eamTechnicalStatusDeactivate/abolish', + getProductionTreeList: '/eam/BaseFactory/queryTreeList' + } + } + }, + created() { + this.getProductionTreeDataByApi() + }, methods: { - + // 鑾峰彇鐢宠閮ㄩ棬鏍� + getProductionTreeDataByApi() { + getAction(this.url.getProductionTreeList) + .then(res => { + if (res.success) { + this.productionTreeData = res.result + } else { + this.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + } + }) + }, + + /** + * 鎻愪氦鏃惰Е鍙� + * @param id + */ + handleSubmit(id) { + const that = this + that.loading = true + getAction(this.url.submit, { id }) + .then(res => { + if (res.success) { + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + that.loadData() + } else { + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + that.loading = false + } + }) + }, + + /** + * 浣滃簾鏃惰Е鍙� + * @param id + */ + handleAbolish(id) { + const that = this + that.loading = true + getAction(this.url.abolish, { id }) + .then(res => { + if (res.success) { + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + that.loadData() + } else { + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + that.loading = false + } + }) + }, + + /** + * 鐐瑰嚮璇︽儏鏃惰Е鍙戞椂瑙﹀彂 + * @param record + */ + handleDetail(record) { + this.selectedRowData = Object.assign({}, record) + this.$refs.technicalStatusDeactivateApprovalModal.title = '璇︽儏' + this.$refs.technicalStatusDeactivateApprovalModal.disableSubmit = true + this.$refs.technicalStatusDeactivateApprovalModal.visible = true + this.$refs.technicalStatusDeactivateApprovalModal.handleDetail(record) + }, + + /** + * 鐢宠鏃ユ湡鍊煎彂鐢熸敼鍙樻椂瑙﹀彂 + * @param dateStringArray + */ + handleDateRangeChange(dateStringArray) { + this.queryParam.dateBegin = dateStringArray[0] + this.queryParam.dateEnd = dateStringArray[1] + } } } -</script> -<style scoped> - @import '~@assets/less/common.less'; -</style> \ No newline at end of file +</script> \ No newline at end of file -- Gitblit v1.9.3