From 61a19a514eed8796ee2c6e7ab1111addf053cf67 Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期三, 28 五月 2025 15:46:18 +0800 Subject: [PATCH] 1.新增NC文件批次页签 2.批次页签新增 数控加工确认表按钮,点击按钮出现对应批次确认表 3.处理修改查询电子样板与NC文件查询页面处理文件名折叠问题 --- src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchModal.vue | 60 ++ src/views/flowable/workflow/assignFileStream/AssignFileStreamHandle.vue | 4 src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeTableList.vue | 4 src/views/dnc/base/modules/DeviceStructure/Document/HasReceivedDocumentTableList.vue | 1 src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchModal.Style#Drawer.vue | 84 ++ src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchForm.vue | 213 +++++++ src/views/dnc/base/modules/DeviceCustomTypeManagement/DeviceCustomTypeManagementModal.vue | 12 src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchList.vue | 250 ++++++++ src/views/flowable/workflow/FlowLedger.vue | 11 src/views/flowable/workflow/assignFileStream/AssignFileStreamXq.vue | 4 src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue | 32 src/views/dnc/common/DocumentInfoFlow.vue | 205 +++++++ src/views/dnc/base/DeviceCustomTypeManagement.vue | 8 src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModalForm.vue | 4 src/views/dnc/common/DocumentInfo.vue | 1 src/views/dnc/base/modules/ProductStructure/Document/NcDocumentSearchNcModal.vue | 543 ++++++++++++++++++ src/views/dnc/common/TableContextMenu.vue | 1 src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue | 4 src/views/dnc/base/modules/ProductStructure/ProductStructureTreeContextMenu.vue | 8 src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue | 58 + src/views/dnc/base/modules/ProductStructure/Cutter/CutterModal.vue | 7 src/views/dnc/base/modules/DeviceStructure/Document/HasSentDocumentTableList.vue | 1 src/views/dnc/base/modules/ProductStructure/Cutter/CutterTableList.vue | 50 + src/views/dnc/common/DocumentVersionTableList.vue | 6 src/api/dnc.js | 2 src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchEditForm.vue | 121 ++++ src/views/dnc/common/DocumentModalForm.vue | 8 src/views/flowable/workflow/dispatchFile/DispatchFileXq.vue | 2 src/views/dnc/base/modules/ProductStructure/Cutter/CutterModalForm.vue | 16 29 files changed, 1,647 insertions(+), 73 deletions(-) diff --git a/src/api/dnc.js b/src/api/dnc.js index a140a97..4fa01c3 100644 --- a/src/api/dnc.js +++ b/src/api/dnc.js @@ -27,6 +27,8 @@ getDocumentAssignDeviceTreeApi: ({ attributionType, attributionId }) => getAction(`/nc/device/load/depart/tree/${attributionType}/${attributionId}`), // 鎸囨淳鏂囨。鍒拌澶� assignDocumentToDeviceApi: params => postAction('/nc/activit/assign/file/apply', params), + // 鎻愬彇鍒�鍏� + extractToolsApi: ({ docId,attributionType, attributionId}) => getAction(`/nc/cutter/extractCutterInfo/${docId}/${attributionType}/${attributionId}`), // 涓嬭浇鏂囨。 downloadDocumentApi: ({ docId, docName }) => requestGetDownLoad(`/nc/doc/download/${docId}`, docName), // 鍒犻櫎鏂囨。 diff --git a/src/views/dnc/base/DeviceCustomTypeManagement.vue b/src/views/dnc/base/DeviceCustomTypeManagement.vue index 10187b2..a7f8603 100644 --- a/src/views/dnc/base/DeviceCustomTypeManagement.vue +++ b/src/views/dnc/base/DeviceCustomTypeManagement.vue @@ -16,8 +16,8 @@ </a-col> <a-col :md="4" :sm="4"> - <a-form-item label="璁惧绫诲悕绉�"> - <a-input placeholder="璇疯緭鍏ヨ澶囩被鍚嶇О" v-model="queryParam.deviceManagementName"></a-input> + <a-form-item label="鏁版帶绯荤粺绫诲埆"> + <a-input placeholder="璇疯緭鍏ユ暟鎺х郴缁熺被鍒�" v-model="queryParam.deviceManagementName"></a-input> </a-form-item> </a-col> @@ -119,13 +119,13 @@ dataIndex: 'productionId_dictText' }, { - title: '璁惧绫�', + title: '杞存暟', align: 'center', width: 200, dataIndex: 'deviceManagementCode' }, { - title: '璁惧绫诲悕绉�', + title: '鏁版帶绯荤粺绫诲埆', align: 'center', width: 200, dataIndex: 'deviceManagementName' diff --git a/src/views/dnc/base/modules/DeviceCustomTypeManagement/DeviceCustomTypeManagementModal.vue b/src/views/dnc/base/modules/DeviceCustomTypeManagement/DeviceCustomTypeManagementModal.vue index 04289e6..02fe64d 100644 --- a/src/views/dnc/base/modules/DeviceCustomTypeManagement/DeviceCustomTypeManagementModal.vue +++ b/src/views/dnc/base/modules/DeviceCustomTypeManagement/DeviceCustomTypeManagementModal.vue @@ -23,8 +23,8 @@ </a-col> <a-col :span="12"> - <a-form-model-item label="璁惧绫�" prop="deviceManagementCode"> - <a-input allow-clear placeholder="璇疯緭鍏ヨ澶囩被" :readOnly="disabledEdit" + <a-form-model-item label="杞存暟" prop="deviceManagementCode"> + <a-input allow-clear placeholder="璇疯緭鍏ヨ酱鏁�" :readOnly="disabledEdit" v-model="model.deviceManagementCode"/> </a-form-model-item> </a-col> @@ -32,8 +32,8 @@ <a-row :gutter="24"> <a-col :span="12"> - <a-form-model-item label="璁惧绫诲悕绉�" prop="deviceManagementName"> - <a-input allow-clear placeholder="璇疯緭鍏ヨ澶囩被鍚嶇О" :readOnly="disabledEdit" + <a-form-model-item label="鏁版帶绯荤粺绫诲埆" prop="deviceManagementName"> + <a-input allow-clear placeholder="璇疯緭鍏ユ暟鎺х郴缁熺被鍒�" :readOnly="disabledEdit" v-model="model.deviceManagementName"/> </a-form-model-item> </a-col> @@ -88,12 +88,12 @@ ], deviceManagementCode: [ { - required: true, message: '璇疯緭鍏ヨ澶囩被!' + required: true, message: '璇疯緭鍏ヨ酱鏁�!' } ], deviceManagementName: [ { - required: true, message: '璇疯緭鍏ヨ澶囩被鍚嶇О!' + required: true, message: '璇疯緭鍏ユ暟鎺х郴缁熺被鍒�!' } ], equipmentIds: [ diff --git a/src/views/dnc/base/modules/DeviceStructure/Document/HasReceivedDocumentTableList.vue b/src/views/dnc/base/modules/DeviceStructure/Document/HasReceivedDocumentTableList.vue index 0594357..c56927b 100644 --- a/src/views/dnc/base/modules/DeviceStructure/Document/HasReceivedDocumentTableList.vue +++ b/src/views/dnc/base/modules/DeviceStructure/Document/HasReceivedDocumentTableList.vue @@ -51,7 +51,6 @@ width: 300, sorter: true }, - { title: '浠g爜鐗堟湰', dataIndex: 'docAlias', align: 'center' }, { title: '鍑哄簱鐘舵��', dataIndex: 'pullStatus_dictText', diff --git a/src/views/dnc/base/modules/DeviceStructure/Document/HasSentDocumentTableList.vue b/src/views/dnc/base/modules/DeviceStructure/Document/HasSentDocumentTableList.vue index 6740776..e9a470b 100644 --- a/src/views/dnc/base/modules/DeviceStructure/Document/HasSentDocumentTableList.vue +++ b/src/views/dnc/base/modules/DeviceStructure/Document/HasSentDocumentTableList.vue @@ -51,7 +51,6 @@ width: 300, sorter: true }, - { title: '浠g爜鐗堟湰', dataIndex: 'docAlias', align: 'center' }, { title: '鍑哄簱鐘舵��', dataIndex: 'pullStatus_dictText', diff --git a/src/views/dnc/base/modules/ProductStructure/Cutter/CutterModal.vue b/src/views/dnc/base/modules/ProductStructure/Cutter/CutterModal.vue index 2503b1c..14533d6 100644 --- a/src/views/dnc/base/modules/ProductStructure/Cutter/CutterModal.vue +++ b/src/views/dnc/base/modules/ProductStructure/Cutter/CutterModal.vue @@ -37,13 +37,14 @@ methods: { // 娣诲姞鎵�鐢ㄥ垁鍏� handleCutterAdd() { - const { id, type } = this.currentTreeNodeInfo + const { attributionId, attributionType, docId } = this.currentTreeNodeInfo this.visible = true this.$nextTick(() => { if (this.$refs.realForm) { this.$refs.realForm.add({ - attributionId: id, - attributionType: type + attributionId: attributionId, + attributionType: attributionType, + docId: docId }) } }) diff --git a/src/views/dnc/base/modules/ProductStructure/Cutter/CutterModalForm.vue b/src/views/dnc/base/modules/ProductStructure/Cutter/CutterModalForm.vue index 3c5c2c9..11718fe 100644 --- a/src/views/dnc/base/modules/ProductStructure/Cutter/CutterModalForm.vue +++ b/src/views/dnc/base/modules/ProductStructure/Cutter/CutterModalForm.vue @@ -3,7 +3,7 @@ <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-row> <a-col :span="12"> - <a-form-model-item label="鍒�鍏风紪鍙�" prop="cutterCode"> + <a-form-model-item label="鍒�鍏风紪鍙�"> <a-input v-model="model.cutterCode" placeholder="璇疯緭鍏ュ垁鍏风紪鍙�" :readOnly="disableSubmit"/> </a-form-model-item> </a-col> @@ -16,9 +16,8 @@ <a-row> <a-col :span="12"> - <a-form-model-item label="鍒�鍏风被鍨�"> - <j-dict-select-tag v-model="model.cutterType" placeholder="璇烽�夋嫨鍒�鍏风被鍨�" dictCode="cutter_type" - :disabled="disableSubmit"/> + <a-form-model-item label="鍒�鍏风畝绉�" prop="cutterType"> + <a-input v-model="model.cutterType" placeholder="璇疯緭鍏ュ垁鍏风畝绉�" :readOnly="disableSubmit"/> </a-form-model-item> </a-col> <a-col :span="12"> @@ -31,7 +30,7 @@ <a-row> <a-col :span="12"> - <a-form-model-item label="鍒�浣�"> + <a-form-model-item label="鍒�浣�" prop="cutterSpacing"> <a-input v-model="model.cutterSpacing" placeholder="璇疯緭鍏ュ垁浣�" :readOnly="disableSubmit"/> </a-form-model-item> </a-col> @@ -88,11 +87,14 @@ }, confirmLoading: false, validatorRules: { - cutterCode: [ - { required: true, message: '璇疯緭鍏ュ垁鍏风紪鍙�!' } + cutterType: [ + { required: true, message: '璇疯緭鍏ュ垁鍏风畝绉�!' } ], cutterName: [ { required: true, message: '璇疯緭鍏ュ垁鍏峰悕绉�!' } + ], + cutterSpacing: [ + { required: true, message: '璇疯緭鍏ュ垁浣�!' } ] }, url: { diff --git a/src/views/dnc/base/modules/ProductStructure/Cutter/CutterTableList.vue b/src/views/dnc/base/modules/ProductStructure/Cutter/CutterTableList.vue index 09270d2..451c5bb 100644 --- a/src/views/dnc/base/modules/ProductStructure/Cutter/CutterTableList.vue +++ b/src/views/dnc/base/modules/ProductStructure/Cutter/CutterTableList.vue @@ -20,11 +20,7 @@ <a-space> <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> <a-button type="primary" @click="handleAdd" icon="plus" v-has="'cutter_add'">鏂板</a-button> - <a-button type="primary" @click="handleExportXls('鍒�鍏峰垪琛�')" icon="export">瀵煎嚭</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 type="primary" @click="handleAdd()" icon="export">鍙戦�佸垁鍏风郴缁�</a-button> </a-space> </a-col> </a-row> @@ -34,7 +30,8 @@ <a-table :columns="columns" :data-source="dataSource" bordered :pagination="ipagination" :size="size" rowKey="id" @change="handleTableChange" :scroll="{y:189}"> <template slot="action" slot-scope="text, record"> - <a @click="handleEdit(record)">缂栬緫</a> + + <a @click="handleEdit(record)">閫夋嫨鍒�鍏�</a> <a-divider type="vertical"/> @@ -92,12 +89,14 @@ return parseInt(index) + 1 } }, - { title: '鍒�鍏风紪鍙�', dataIndex: 'cutterCode', align: 'center' }, - { title: '鍒�鍏峰悕绉�', dataIndex: 'cutterName', align: 'center' }, - { title: '鍒�鍏风被鍨�', dataIndex: 'cutterType_dictText', align: 'center' }, + { title: '鍒�鍏风紪鍙�', dataIndex: 'cutterCode', width: 100, align: 'center' }, + { title: '鍒�鍏峰悕绉�', dataIndex: 'cutterName', width: 100, align: 'center' }, + { title: '鍒�鍏风畝绉�', dataIndex: 'cutterType', width: 80, align: 'center' }, + { title: '鍒�鍏疯鏍�', dataIndex: 'cutterSpec', align: 'center' }, { title: '棰濆畾瀵垮懡', dataIndex: 'lifetime', width: 150, align: 'center' }, - { title: '鍒�浣�', dataIndex: 'cutterSpacing', width: 150, align: 'center' }, - { title: '鍒�鍏锋暟閲�', dataIndex: 'quantity', width: 150, align: 'center' }, + { title: '鍒�浣�', dataIndex: 'cutterSpacing', width: 50, align: 'center' }, + { title: '鍒�鍏锋暟閲�', dataIndex: 'quantity', width: 80, align: 'center' }, + { title: '鎻忚堪', dataIndex: 'description', width: 200, align: 'center' }, { title: '鎿嶄綔', dataIndex: 'action', scopedSlots: { customRender: 'action' }, align: 'center', width: 150 } ], url: { @@ -115,8 +114,33 @@ }, methods: { setQueryParamAndLoadData(pageNo = 1) { - const { id, type } = this.currentLevelInfo - this.queryParam = Object.assign({}, { attributionId: id, attributionType: type }) + if (this.currentLevelInfo.classificationId_dictText==='nc'){ + const {docId,attributionType,attributionId} = this.currentLevelInfo + this.queryParam = Object.assign({}, { docId:docId,attributionType:attributionType,attributionId:attributionId }) + } + if (this.currentLevelInfo.deviceManagementId !== null && this.currentLevelInfo.deviceManagementId !== undefined){ + const {attributionType,id} = this.currentLevelInfo + this.queryParam = Object.assign({}, {attributionType:attributionType,attributionId:id }) + } + if (this.currentLevelInfo.id !== null && this.currentLevelInfo.type !== null && this.currentLevelInfo.type !== undefined && this.currentLevelInfo.id !== undefined){ + const { id, type } = this.currentLevelInfo + this.queryParam = Object.assign({}, { attributionId: id, attributionType: type }) + } + this.loadData(pageNo) + }, + searchQuery(pageNo = 1) { + if (this.currentLevelInfo.classificationId_dictText==='nc'){ + const {docId,attributionType,attributionId} = this.currentLevelInfo + this.queryParam = Object.assign({}, { docId:docId,attributionType:attributionType,attributionId:attributionId }) + } + if (this.currentLevelInfo.deviceManagementId !== null && this.currentLevelInfo.deviceManagementId !== undefined){ + const {attributionType,id} = this.currentLevelInfo + this.queryParam = Object.assign({}, {attributionType:attributionType,attributionId:id }) + } + if (this.currentLevelInfo.id !== null && this.currentLevelInfo.type !== null && this.currentLevelInfo.type !== undefined && this.currentLevelInfo.id !== undefined){ + const { id, type } = this.currentLevelInfo + this.queryParam = Object.assign({}, { attributionId: id, attributionType: type }) + } this.loadData(pageNo) }, diff --git a/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModalForm.vue b/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModalForm.vue index dbeef07..cc8b2e5 100644 --- a/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModalForm.vue +++ b/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModalForm.vue @@ -26,7 +26,7 @@ <a-row> <a-col :span="12"> - <a-form-model-item label="璁惧绫诲悕绉�"> + <a-form-model-item label="鏁版帶绯荤粺绫诲埆"> <a-input v-model="model.deviceManagementId_dictText" placeholder="璇烽�夋嫨璁惧绫�" readOnly/> </a-form-model-item> </a-col> @@ -94,7 +94,7 @@ }, /** - * 璁惧绫婚�夋嫨鏀瑰彉鍚庤Е鍙戝~鍏呰澶囩被瀵瑰簲璁惧绫诲悕绉� + * 璁惧绫婚�夋嫨鏀瑰彉鍚庤Е鍙戝~鍏呰澶囩被瀵瑰簲鏁版帶绯荤粺绫诲埆 * @param value */ handleCodeSelectChange(value) { diff --git a/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeTableList.vue b/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeTableList.vue index b17e2f7..0389769 100644 --- a/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeTableList.vue +++ b/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeTableList.vue @@ -34,12 +34,12 @@ // align: 'center' // }, { - title: '璁惧绫�', + title: '杞存暟', dataIndex: 'deviceManagementCode_dictText', align: 'center' }, { - title: '璁惧绫诲悕绉�', + title: '鏁版帶绯荤粺绫诲埆', dataIndex: 'deviceManagementId_dictText', align: 'center' } diff --git a/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentSearchNcModal.vue b/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentSearchNcModal.vue new file mode 100644 index 0000000..2d92113 --- /dev/null +++ b/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentSearchNcModal.vue @@ -0,0 +1,543 @@ +<!-- + Description: 妫�绱㈢數瀛愭牱鏉縇ist + Author: 浣滆�� liuyh + Date: 2025-02-27 +--> +<template> + <a-modal width="95%" :title="title" :visible="visible" @cancel="visible=false" :maskClosable="false" centered + @ok="handleAssignDocumentToDevice"> + <div class="tabs-container"> + <div style="width: 72%"> + <a-tabs> + <a-tab-pane tab="鏂囨。鍒楄〃"> + <div class="table-page-search-wrapper"> + <a-form layout="inline" @keyup.enter.native="searchQuery"> + <a-row :gutter="24"> + <a-col :md="7" :sm="7"> + <a-form-item label="鏂囦欢鍚嶇О"> + <a-input placeholder="璇疯緭鍏ユ枃浠跺悕绉�" v-model="queryParam.docName" allow-clear></a-input> + </a-form-item> + </a-col> + + <a-col :md="7" :sm="7"> + <a-form-item label="鏁版帶绯荤粺绫诲埆"> + <a-input placeholder="璇疯緭鍏ユ暟鎺х郴缁熺被鍒�" v-model="queryParam.deviceManagementName" allow-clear></a-input> + </a-form-item> + </a-col> + + <a-col :md="7" :sm="7"> + <a-form-item label="杞存暟"> + <a-input placeholder="璇疯緭鍏ヨ酱鏁�" v-model="queryParam.deviceManagementCode" allow-clear></a-input> + </a-form-item> + </a-col> + + <a-col :md="7" :sm="7"> + <a-form-item label="鑺傜偣鍚嶇О"> + <a-input placeholder="璇疯緭鍏ヨ妭鐐瑰悕绉�" v-model="queryParam.treeName" allow-clear></a-input> + </a-form-item> + </a-col> + + <a-col :md="7" :sm="7"> + <a-form-item label="鑺傜偣浠e彿"> + <a-input placeholder="璇疯緭鍏ヨ妭鐐逛唬鍙�" v-model="queryParam.treeCode" allow-clear></a-input> + </a-form-item> + </a-col> + + <a-col :md="7" :sm="7"> + <a-form-item label="鏉愯川"> + <a-input placeholder="璇疯緭鍏ユ潗璐�" v-model="queryParam.structureType" allow-clear></a-input> + </a-form-item> + </a-col> + + <a-col :md="11" :sm="11"> + <a-form-item label="涓婁紶鏃堕棿"> + <a-range-picker v-model="date" value-format="YYYY-MM-DD" + @change="handleDateChange" allow-clear></a-range-picker> + </a-form-item> + </a-col> + + <a-col :md="4" :sm="4"> + <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> + </a-col> + </a-row> + </a-form> + </div> + + + <a-table :columns="columns" :data-source="dataSource" bordered :pagination="false" :loading="loading" + :rowSelection="{selectedRowKeys: selectedRowKeys,selectedRows:selectionRows, onChange: onSelectChange}" + @change="handleTableChange" + :scroll="{y:456}" :size="size" rowKey="docId"> + + </a-table> + </a-tab-pane> + </a-tabs> + </div> + + <div style="width: 25%"> + <a-tabs> + <a-tab-pane tab="璁惧鍒楄〃"> + <a-spin :spinning="spinning"> + <div style="display: flex;flex-direction: column;"> + <div style="display: flex"> + <a-input placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" allowClear v-model="searchInput" + @change="handleSearchInputChange"/> + <a-button type="primary" @click="isExpandAllTreeNode=!isExpandAllTreeNode" style="margin: 0 8px"> + 灞曞紑/鎶樺彔 + </a-button> + </div> + + <!--浜у搧缁撴瀯鏍�--> + <div style="overflow:auto;margin-top: 10px;height: 400px"> + <a-tree blockNode checkable :checkedKeys="checkedKeys" :expandedKeys.sync="expandedKeys" + :autoExpandParent="autoExpandParent" @select="handleTreeNodeSelect" + :treeData="treeDataSource" @check="handleTreeNodeCheck" @expand="handleTreeNodeExpand"> + <template slot="title" slot-scope="{ title, parentId, entity, key:treeKey,type}"> + <span v-if="title.indexOf(searchValue) > -1">{{ title.substr(0, title.indexOf(searchValue)) }}<span + class="replaceSearch">{{ + searchValue + }}</span>{{ title.substr(title.indexOf(searchValue) + searchValue.length) }}</span> + <span v-else>{{ title }}</span> + </template> + </a-tree> + </div> + + <div> + <a-form> + <a-form-item label="鎸囨淳鍘熷洜"> + <a-textarea v-model="queryParam.applyReason" rows="3" style="resize: none"></a-textarea> + </a-form-item> + </a-form> + </div> + </div> + </a-spin> + </a-tab-pane> + </a-tabs> + </div> + </div> + </a-modal> +</template> + +<script> +import { getAction } from '@/api/manage' +import dncApi from '@/api/dnc' +import { JeecgListMixin } from '@/mixins/JeecgListMixin' + +export default { + name: 'NcDocumentSearchNcModal', + components: {}, + mixins: [JeecgListMixin], + props: { + currentDocumentInfo: { + type: Object + }, + size: { + type: String + } + }, + data() { + return { + disableMixinCreated: true, + visible: false, + title: '', + columns: [ + { + title: '搴忓彿', + dataIndex: 'rowIndex', + key: 'rowIndex', + width: 50, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 + } + }, + { + title: '鑺傜偣鍚嶇О', + dataIndex: 'nodeName', + align: 'center', + width: 80, + sorter: false + }, + { + title: '鑺傜偣浠e彿', + dataIndex: 'nodeCode', + align: 'center', + width: 80, + sorter: false + }, + { + title: '鏁版帶绯荤粺绫诲埆', + dataIndex: 'deviceName', + align: 'center', + width: 80, + sorter: false + }, + { + title: '杞存暟', + dataIndex: 'deviceCode', + align: 'center', + width: 80, + sorter: false + }, + { + title: '鏂囦欢鍚嶇О', + dataIndex: 'docName', + key: 'docName', + align: 'center', + width: 200, + sorter: true + }, + { + title: '鍑哄簱鐘舵��', + dataIndex: 'pullStatus_dictText', + key: 'pullStatus', + align: 'center', + width: 100, + filters: [ + { text: '鏈嚭搴�', value: 1 }, + { text: '宸插嚭搴�', value: 2 } + ] + }, + { + title: '鐘� 鎬�', + dataIndex: 'docDispatchStatus_dictText', + key: 'docDispatchStatus', + align: 'center', + width: 60, + filters: [ + { text: '缂栧埗', value: 1 }, + { text: '鏍″', value: 2 }, + { text: '鎵瑰噯', value: 3 }, + { text: '璇曞垏', value: 4 }, + { text: '瀹氬瀷', value: 5 } + ] + }, + { + title: '鍒涘缓鏃堕棿', + dataIndex: 'createTime', + align: 'center', + width: 150, + sorter: true + } + ], + searchValue: '', + searchInput: '', + spinning: false, + treeDataSource: [], + allTreeKeys: [], + checkedKeys: [], + expandedKeys: [], + autoExpandParent: true, + isExpandAllTreeNode: true, + date: [], + url: { + list: '/nc/product/query/nc' + } + } + }, + watch: { + visible: { + handler(value) { + if (value) { + this.resetData() + this.loadData() + this.getDocumentAssignDeviceTreeByApi() + } + } + }, + isExpandAllTreeNode: { + handler(value) { + if (value) this.expandedKeys = this.allTreeKeys + else this.expandedKeys = [] + } + } + }, + created() { + this.$bus.$on('treeMenuItemMethodTrigger', this.triggerCorrespondingMethod) + }, + methods: { + handleSearchNc() { + this.visible = true + }, + // 鑾峰彇褰撳墠瀵瑰簲鏂囨。鍒楄〃 + loadData() { + this.dataSource = [] + if (!this.url.list) { + this.$message.error('璇疯缃畊rl.list灞炴��!') + return + } + var params = this.getQueryParams()//鏌ヨ鏉′欢 + if (!params) return false + params.attributionType = this.currentDocumentInfo.type + params.attributionId = this.currentDocumentInfo.key + this.loading = true + getAction(this.url.list, params).then((res) => { + if (res.success) this.dataSource = res.result + else this.$message.warning(res.message) + }).finally(() => { + this.loading = false + }) + }, + + // 鑾峰彇DNC璁惧鏍� + getDocumentAssignDeviceTreeByApi() { + this.spinning = true + this.treeDataSource = [] + dncApi.getDeviceTreeDataApi() + .then(res => { + if (res.success) { + this.dataList = [] + this.allTreeKeys = [] + this.treeDataSource = res.result + this.generateList(this.treeDataSource) + this.expandedKeys = this.allTreeKeys + } else { + this.$message.warn(res.message) + } + }) + .finally(() => { + this.spinning = false + }) + }, + + // 鏃堕棿閫夋嫨鍣ㄩ�夋嫨瀹屾垚鍚庤Е鍙� + handleDateChange(value) { + this.queryParam.startTime = value[0] + this.queryParam.endTime = value[1] + }, + + /** + * 琛ㄦ牸鍒嗛〉銆佹帓搴忔敼鍙樸�佺瓫閫夋椂瑙﹀彂 + * @param pagination 鍒嗛〉鍣ㄩ�夐」 + * @param filters 绛涢�夐�夐」 + * @param sorter 鎺掑簭閫夐」 + */ + handleTableChange(pagination, filters, sorter) { + if (sorter.order) { + this.isorter.column = sorter.field + this.isorter.order = sorter.order === 'ascend' ? 'asc' : 'desc' + } else { + this.isorter.column = 'createTime' + this.isorter.order = 'desc' + } + for (let key in filters) { + this.filters[key] = filters[key].join(',') + } + this.loadData() + }, + + // 鎸囨淳鍒拌澶囩獥鍙g偣鍑荤‘瀹氭寚娲捐澶囧悗瑙﹀彂 + handleAssignDocumentToDevice() { + const { + checkedKeys, + selectedRowKeys, + selectionRows, + dataList, + $confirm, + $notification, + currentDocumentInfo, + queryParam: { applyReason }, + $destroyAll, + $bus + } = this + const { attributionId, attributionType } = currentDocumentInfo + const paramsArray = [] + // 杩囨护杞﹂棿key浠呮斁鍏ヨ澶噆ey + const treeCheckedDeviceKeys = [] + checkedKeys.forEach(checkedKey => { + const device = dataList.find(item => item.key === checkedKey && item.type === 2) + if (device) treeCheckedDeviceKeys.push(device.key) + }) + + if (treeCheckedDeviceKeys.length === 0 || selectedRowKeys.length === 0) { + $notification.warning({ + message: '娑堟伅', + description: '璇烽�夋嫨璁惧鎴栨枃妗�' + }) + return + } + + $confirm({ + title: '鎻愮ず', + content: `纭鎻愪氦鍚楋紵`, + okText: '纭', + cancelText: '鍙栨秷', + onOk: () => { + // 鍙岄噸寰幆纭畾姣忎竴缁勮澶囦笌鏂囨。鐨勫弬鏁� + treeCheckedDeviceKeys.forEach(deviceId => { + selectionRows.forEach(({ docId, publishFileId ,attributionId,attributionType}) => { + paramsArray.push({ + docId, + deviceId, + fileId: publishFileId, + attributionId, + attributionType, + applyReason + }) + }) + }) + + paramsArray.forEach(item => { + dncApi.assignDocumentToDeviceApi(item) + .then(res => { + if (res.success) { + $bus.$emit('reloadMainBottomTableData', 'useDocumentEquipment') + $notification.success({ + message: '娑堟伅', + description: res.message + }) + } else { + $notification.error({ + message: '娑堟伅', + description: res.message + }) + } + }) + .catch(err => { + $notification.error({ + message: '娑堟伅', + description: err.message + }) + }) + .finally(() => { + $destroyAll() + }) + }) + }, + onCancel: () => { + $destroyAll() + } + }) + }, + + /* 杈撳叆鏌ヨ鍐呭鍙樺寲鏃惰Е鍙� */ + handleSearchInputChange() { + let search = this.searchInput + console.log('data', this.dataList) + console.log('search', search) + let expandedKeys = this.dataList + .map(item => { + if (item.title != null) { + if (item.title.indexOf(search) > -1) { + return this.getParentKey(item.key, this.treeDataSource) + } + return null + } + }) + .filter((item, i, self) => item && self.indexOf(item) === i) + Object.assign(this, { + expandedKeys, + searchValue: search, + autoExpandParent: true + }) + }, + + /** + * 鏍戣妭鐐瑰睍寮�鍚堝苟鏃惰Е鍙� + * @param expandedKeys 灞曞紑椤筴ey + */ + handleTreeNodeExpand(expandedKeys) { + this.expandedKeys = expandedKeys + this.autoExpandParent = false + }, + + /** + * 鏍戣妭鐐瑰閫夋閫変腑鏃惰Е鍙� + * @param selectedKeys 閫変腑鑺傜偣key + * @param {node} node 鑺傜偣瀵硅薄 + */ + handleTreeNodeCheck(checkedKeys, { node }) { + let record = node.dataRef + this.checkedKeys = checkedKeys + }, + + /** + * 鏍戣妭鐐归�変腑鏃惰Е鍙戯紙妯℃嫙鏍戣妭鐐瑰閫夋閫変腑鏃剁殑鏁堟灉锛� + * @param selectedKeys 閫変腑鑺傜偣key + * @param {node} node 鑺傜偣瀵硅薄 + */ + handleTreeNodeSelect(selectedKeys, { node }) { + node.$el.childNodes[1].click() + }, + + /** + * 閫掑綊鑾峰緱杈撳叆椤圭殑鐖剁骇key + * @param key 瀛愰」key + * @param tree 瀛愰」 + */ + getParentKey(key, tree) { + let parentKey + for (let i = 0; i < tree.length; i++) { + const node = tree[i] + if (node.children) { + if (node.children.some(item => item.key === key)) { + parentKey = node.key + console.log('parentKey', parentKey) + } else if ( + this.getParentKey(key, node.children)) { + parentKey = this.getParentKey(key, node.children) + } + } + } + return parentKey + }, + + /** + * 閫掑綊鑾峰緱鎵�鏈夋爲鑺傜偣key + * @param data 璁惧鏍戞暟鎹� + */ + generateList(data) { + for (let i = 0; i < data.length; i++) { + const node = data[i] + const key = node.key + const title = node.title + const type = node.type + this.dataList.push({ key, title, type }) + this.allTreeKeys.push(key) + if (node.children) this.generateList(node.children) + } + }, + + resetData() { + this.searchInput = '' + this.expandedKeys = [] + this.selectedRowKeys = [] + this.selectionRows = {} + this.checkedKeys = [] + this.filters = {} + this.isorter = Object.assign({}, this.defaultSorter) + }, + + handleDelete() { + // 姝ゅ鍑芥暟涓哄睆钄絤ixins涓殑鍚屽悕鍑芥暟锛岄�氱敤鍑芥暟鍐欏湪鐖剁骇涓� + }, + + triggerCorrespondingMethod({ methodName, modalTitle }) { + if (this[methodName]) { + this[methodName]() + this.title = modalTitle + } + } + } +} +</script> + +<style scoped lang="less"> +/deep/ .ant-modal { + .tabs-container { + display: flex; + justify-content: space-between; + + .replaceSearch { + color: #40a9ff; + font-weight: bold; + background-color: rgb(204, 204, 204); + } + } + +} + +::-webkit-scrollbar { + width: 8px; +} +</style> \ No newline at end of file diff --git a/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue b/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue index d79b070..a05c9d4 100644 --- a/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue +++ b/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue @@ -17,6 +17,7 @@ import { JeecgListMixin } from '@/mixins/JeecgListMixin' import DocumentModal from '../../../../common/DocumentModal' import NcDocumentAssignModal from './NcDocumentAssignModal' +import dncApi from '@api/dnc' export default { name: 'NcDocumentTableList', @@ -38,7 +39,7 @@ title: '搴忓彿', dataIndex: 'rowIndex', key: 'rowIndex', - width: 65, + width: 50, align: 'center', customRender: function(t, r, index) { return parseInt(index) + 1 @@ -49,10 +50,10 @@ dataIndex: 'docName', key: 'docName', align: 'center', - width: 300, + scopedSlots: {customRender: 'docName'}, + width: 500, sorter: true }, - { title: '浠g爜鐗堟湰', dataIndex: 'docAlias', align: 'center' }, { title: '鍑哄簱鐘舵��', dataIndex: 'pullStatus_dictText', @@ -61,10 +62,11 @@ filters: [ { text: '鏈嚭搴�', value: 1 }, { text: '宸插嚭搴�', value: 2 } - ] + ], + width: 100 }, { - title: '鐘� 鎬�', + title: '鐘舵��', dataIndex: 'docDispatchStatus_dictText', key: 'docDispatchStatus', align: 'center', @@ -74,14 +76,15 @@ { text: '鎵瑰噯', value: 3 }, { text: '璇曞垏', value: 4 }, { text: '瀹氬瀷', value: 5 } - ] + ], + width: 70 }, - { title: '绯荤粺鎸囧畾鐗堟湰', dataIndex: 'publishVersion', align: 'center', width: 200 }, + { title: '绯荤粺鎸囧畾鐗堟湰', dataIndex: 'publishVersion', align: 'center', width: 120 }, { title: '鍒涘缓鏃堕棿', dataIndex: 'createTime', align: 'center', - width: 200, + width: 150, sorter: true } ], @@ -190,6 +193,45 @@ this.$refs.documentAssignModalRef.visible = true }, + handleDocumentExtract(record){ + const that = this + const { docId,attributionId, attributionType } = record + that.$confirm({ + title: '鎻愮ず', + content: `纭鎻愬彇鍒�鍏峰悧锛焋, + okText: '纭', + cancelText: '鍙栨秷', + onOk: () => { + dncApi.extractToolsApi({ docId, attributionId, attributionType }) + .then(res => { + if (res.success) { + that.$notification.success({ + message: '娑堟伅', + description: `鎻愬彇鎴愬姛` + }) + } else { + that.$notification.error({ + message: '娑堟伅', + description: res.message + }) + } + }) + .catch(err => { + that.$notification.error({ + message: '娑堟伅', + description: err.message + }) + }) + .finally(() => { + that.$destroyAll() + }) + }, + onCancel: () => { + that.$destroyAll() + } + }) + }, + handleDelete() { // 姝ゅ鍑芥暟涓哄睆钄絤ixins涓殑鍚屽悕鍑芥暟锛岄�氱敤鍑芥暟鍐欏湪鐖剁骇涓� }, diff --git a/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchEditForm.vue b/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchEditForm.vue new file mode 100644 index 0000000..5004198 --- /dev/null +++ b/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchEditForm.vue @@ -0,0 +1,121 @@ +<template> + <a-spin :spinning="confirmLoading"> + <j-form-container :disabled="formDisabled"> + <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> + <a-row> + <a-col :span="24"> + <a-form-model-item label="澶瑰叿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="fixtureInformation"> + <a-input v-model="model.fixtureInformation" placeholder="璇疯緭鍏ュす鍏�" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="鍥剧墖" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="picture"> + <j-image-upload isMultiple :number="1" v-model="model.picture" ></j-image-upload> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="璇存槑淇℃伅" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remake"> + <a-textarea v-model="model.remake" rows="4" placeholder="璇疯緭鍏ヨ鏄庝俊鎭�" /> + </a-form-model-item> + </a-col> + </a-row> + </a-form-model> + </j-form-container> + </a-spin> +</template> + +<script> + + import { httpAction, getAction } from '@api/manage' + import { validateDuplicateValue } from '@/utils/util' + + export default { + name: 'GuideCardBatchForm', + components: { + }, + props: { + //琛ㄥ崟绂佺敤 + disabled: { + type: Boolean, + default: false, + required: false + } + }, + data () { + return { + model:{ + }, + labelCol: { + xs: { span: 24 }, + sm: { span: 5 }, + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 16 }, + }, + confirmLoading: false, + validatorRules: { + fixtureInformation: [ + { required: true, message: '璇疯緭鍏ュす鍏�!'}, + ], + picture: [ + { required: true, message: '璇疯緭鍏ュ浘鐗�!'}, + ], + remake: [ + { required: true, message: '璇疯緭鍏ヨ鏄庝俊鎭�!'}, + ], + }, + url: { + edit: "/dnc/guideCardBatch/edit", + } + } + }, + computed: { + formDisabled(){ + return this.disabled + }, + }, + created () { + //澶囦唤model鍘熷鍊� + this.modelDefault = JSON.parse(JSON.stringify(this.model)); + }, + methods: { + add () { + this.edit(this.modelDefault); + }, + edit (record) { + this.model = Object.assign({}, record); + this.visible = true; + }, + submitForm () { + const that = this; + // 瑙﹀彂琛ㄥ崟楠岃瘉 + this.$refs.form.validate(valid => { + if (valid) { + that.confirmLoading = true; + let httpurl = ''; + let method = ''; + if(!this.model.id){ + httpurl+=this.url.add; + method = 'post'; + }else{ + httpurl+=this.url.edit; + method = 'put'; + } + httpAction(httpurl,this.model,method).then((res)=>{ + if(res.success){ + that.$message.success(res.message); + that.$emit('ok'); + }else{ + that.$message.warning(res.message); + } + }).finally(() => { + that.confirmLoading = false; + }) + } + + }) + }, + } + } +</script> \ No newline at end of file diff --git a/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchForm.vue b/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchForm.vue new file mode 100644 index 0000000..b859014 --- /dev/null +++ b/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchForm.vue @@ -0,0 +1,213 @@ +<template> + <a-spin :spinning="confirmLoading"> + <j-form-container :disabled="formDisabled"> + <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> + <a-row> + <a-col :span="24"> + <a-form-model-item label="娴佹按鍙�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="serialNumber"> + <a-input v-model="model.serialNumber" placeholder="璇疯緭鍏ユ祦姘村彿" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="鍗曚綅" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="unit"> + <a-input v-model="model.unit" placeholder="璇疯緭鍏ュ崟浣�" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="绋嬪簭鏂囦欢鍚�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="docName"> + <a-input v-model="model.docName" placeholder="璇疯緭鍏ョ▼搴忔枃浠跺悕" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="闆朵欢鍥惧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="partsCode"> + <a-input v-model="model.partsCode" placeholder="璇疯緭鍏ラ浂浠跺浘鍙�" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="闆朵欢鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="partsName"> + <a-input v-model="model.partsName" placeholder="璇疯緭鍏ラ浂浠跺悕绉�" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="闆朵欢鏉愭枡" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materielDesp"> + <a-input v-model="model.materielDesp" placeholder="璇疯緭鍏ラ浂浠舵潗鏂�" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="澶瑰叿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="fixtureInformation"> + <a-input v-model="model.fixtureInformation" placeholder="璇疯緭鍏ュす鍏�" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="宸ュ簭锛堝伐姝ュ彿锛�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processWorkCode"> + <a-input v-model="model.processWorkCode" placeholder="璇疯緭鍏ュ伐搴忥紙宸ユ鍙凤級" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="鍔犲伐鎵规" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processingBatch"> + <a-input v-model="model.processingBatch" placeholder="璇疯緭鍏ュ姞宸ユ壒娆�" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="鍔犲伐鏁伴噺" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processingQuantity"> + <a-input v-model="model.processingQuantity" placeholder="璇疯緭鍏ュ姞宸ユ暟閲�" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="鍔犲伐璁惧" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processingEquipment"> + <a-input v-model="model.processingEquipment" placeholder="璇疯緭鍏ュ姞宸ヨ澶�" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="鍥剧墖" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="picture"> + <j-image-upload isMultiple v-model="model.picture" ></j-image-upload> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="璇存槑淇℃伅" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remake"> + <a-textarea v-model="model.remake" rows="4" placeholder="璇疯緭鍏ヨ鏄庝俊鎭�" /> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="缂栧啓浜�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="compiler"> + <a-input v-model="model.compiler" placeholder="璇疯緭鍏ョ紪鍐欎汉" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="缂栧啓鏃ユ湡" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="compilerTime"> + <j-date placeholder="璇烽�夋嫨缂栧啓鏃ユ湡" v-model="model.compilerTime" style="width: 100%" /> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="鏍″浜�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="proofreader"> + <a-input v-model="model.proofreader" placeholder="璇疯緭鍏ユ牎瀵逛汉" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="鏍″鏃ユ湡" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="proofreaderTime"> + <j-date placeholder="璇烽�夋嫨鏍″鏃ユ湡" v-model="model.proofreaderTime" style="width: 100%" /> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="鎿嶄綔鑰�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operator"> + <a-input v-model="model.operator" placeholder="璇疯緭鍏ユ搷浣滆��" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="棣栨鏃ユ湡" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="inspectionTime"> + <j-date placeholder="璇烽�夋嫨棣栨鏃ユ湡" v-model="model.inspectionTime" style="width: 100%" /> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="瀹℃壒浜�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="approver"> + <a-input v-model="model.approver" placeholder="璇疯緭鍏ュ鎵逛汉" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="瀹℃壒鏃ユ湡" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="approverTime"> + <j-date placeholder="璇烽�夋嫨瀹℃壒鏃ユ湡" v-model="model.approverTime" style="width: 100%" /> + </a-form-model-item> + </a-col> + </a-row> + </a-form-model> + </j-form-container> + </a-spin> +</template> + +<script> + + import { httpAction, getAction } from '@api/manage' + import { validateDuplicateValue } from '@/utils/util' + + export default { + name: 'GuideCardBatchForm', + components: { + }, + props: { + //琛ㄥ崟绂佺敤 + disabled: { + type: Boolean, + default: false, + required: false + } + }, + data () { + return { + model:{ + }, + labelCol: { + xs: { span: 24 }, + sm: { span: 5 }, + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 16 }, + }, + confirmLoading: false, + validatorRules: { + fixtureInformation: [ + { required: true, message: '璇疯緭鍏ュす鍏�!'}, + ], + picture: [ + { required: true, message: '璇疯緭鍏ュ浘鐗�!'}, + ], + remake: [ + { required: true, message: '璇疯緭鍏ヨ鏄庝俊鎭�!'}, + ], + }, + url: { + add: "/dnc/guideCardBatch/add", + edit: "/dnc/guideCardBatch/edit", + queryById: "/dnc/guideCardBatch/queryById" + } + } + }, + computed: { + formDisabled(){ + return this.disabled + }, + }, + created () { + //澶囦唤model鍘熷鍊� + this.modelDefault = JSON.parse(JSON.stringify(this.model)); + }, + methods: { + add () { + this.edit(this.modelDefault); + }, + edit (record) { + this.model = Object.assign({}, record); + this.visible = true; + }, + submitForm () { + const that = this; + // 瑙﹀彂琛ㄥ崟楠岃瘉 + this.$refs.form.validate(valid => { + if (valid) { + that.confirmLoading = true; + let httpurl = ''; + let method = ''; + if(!this.model.id){ + httpurl+=this.url.add; + method = 'post'; + }else{ + httpurl+=this.url.edit; + method = 'put'; + } + httpAction(httpurl,this.model,method).then((res)=>{ + if(res.success){ + that.$message.success(res.message); + that.$emit('ok'); + }else{ + that.$message.warning(res.message); + } + }).finally(() => { + that.confirmLoading = false; + }) + } + + }) + }, + } + } +</script> \ No newline at end of file diff --git a/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchList.vue b/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchList.vue new file mode 100644 index 0000000..1057724 --- /dev/null +++ b/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchList.vue @@ -0,0 +1,250 @@ +<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.serialNumber"></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.fixtureInformation"></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.processingBatch"></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="primary" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button> + </span> + </a-col> + </a-row> + </a-form> + </div> + <!-- 鏌ヨ鍖哄煙-END --> + + <!-- table鍖哄煙-begin --> + <div> + <a-table + ref="table" + size="middle" + :scroll="{x:true}" + bordered + rowKey="id" + :columns="columns" + :dataSource="dataSource" + :pagination="ipagination" + :loading="loading" + class="j-table-force-nowrap" + @change="handleTableChange"> + + <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 @click="handleDetail(record)">鐢熸垚鏁版帶鍔犲伐绋嬪簭纭琛�</a> + + <a-divider type="vertical" /> + + <a @click="handleDetail(record)">鍙戣捣娴佺▼</a> + + <a-divider type="vertical" /> + + <a @click="handleDetail(record)">璇︽儏</a> + + </span> + + </a-table> + </div> + + <guide-card-batch-modal ref="modalForm" @ok="modalFormOk"></guide-card-batch-modal> + + <GuideCardBatchModalDrawer ref="modalEditForm" @ok="modalFormOk"></GuideCardBatchModalDrawer> + </a-card> +</template> + +<script> + + import '@assets/less/TableExpand.less' + import { mixinDevice } from '@/utils/mixin' + import { JeecgListMixin } from '@/mixins/JeecgListMixin' + import GuideCardBatchModal from './GuideCardBatchModal' + import GuideCardBatchModalDrawer from './GuideCardBatchModal.Style#Drawer.vue' + import { getAction } from '@api/manage' + + export default { + name: 'GuideCardBatchList', + mixins:[JeecgListMixin, mixinDevice], + props: { + guideCardBatchInfo: { + type: Object + }, + size: { + type: String + } + }, + components: { + GuideCardBatchModal, + GuideCardBatchModalDrawer + }, + data () { + return { + description: 'nc鏂囦欢瀵瑰簲鏁版帶绋嬪簭鍔犲伐纭琛ㄧ鐞嗛〉闈�', + // 琛ㄥご + columns: [ + { + title: '#', + dataIndex: '', + key:'rowIndex', + width:60, + align:"center", + customRender:function (t,r,index) { + return parseInt(index)+1; + } + }, + { + title:'娴佹按鍙�', + align:"center", + dataIndex: 'serialNumber' + }, + { + title:'澶瑰叿', + align:"center", + dataIndex: 'fixtureInformation' + }, + { + title:'鍔犲伐鎵规', + align:"center", + dataIndex: 'processingBatch' + }, + { + title:'鍔犲伐鏁伴噺', + align:"center", + dataIndex: 'processingQuantity' + }, + { + title:'鍔犲伐璁惧', + align:"center", + dataIndex: 'processingEquipment' + }, + { + title: '鎿嶄綔', + dataIndex: 'action', + align:"center", + fixed:"right", + width:147, + scopedSlots: { customRender: 'action' } + } + ], + url: { + list: "/dnc/guideCardBatch/list", + delete: "/dnc/guideCardBatch/delete", + deleteBatch: "/dnc/guideCardBatch/deleteBatch", + exportXlsUrl: "/dnc/guideCardBatch/exportXls", + importExcelUrl: "dnc/guideCardBatch/importExcel", + + }, + dictOptions:{}, + superFieldList:[], + } + }, + created() { + this.getSuperFieldList(); + }, + computed: { + importExcelUrl: function(){ + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; + }, + }, + methods: { + initDictConfig(){ + }, + getGuideCardBatchList(){ + console.log('currentDocumentInfo', this.guideCardBatchInfo) + let params + params.docId=this.guideCardBatchInfo.docId; + params.serialNumber=this.queryParam.serialNumber; + params.fixtureInformation=this.guideCardBatchInfo.fixtureInformation; + params.processingBatch=this.guideCardBatchInfo.processingBatch; + this.loading = true + getAction(this.url.list,params).then((res) => { + if (res.success) { + this.dataSource = res.result.records||res.result; + if(res.result.total) + { + this.ipagination.total = res.result.total; + }else{ + this.ipagination.total = 0; + } + }else{ + this.$message.warning(res.message) + } + }).finally(() => { + this.loading = false + }) + }, + getSuperFieldList(){ + let fieldList=[]; + fieldList.push({type:'string',value:'serialNumber',text:'娴佹按鍙�',dictCode:''}) + fieldList.push({type:'string',value:'unit',text:'鍗曚綅',dictCode:''}) + fieldList.push({type:'string',value:'docName',text:'绋嬪簭鏂囦欢鍚�',dictCode:''}) + fieldList.push({type:'string',value:'partsCode',text:'闆朵欢鍥惧彿',dictCode:''}) + fieldList.push({type:'string',value:'partsName',text:'闆朵欢鍚嶇О',dictCode:''}) + fieldList.push({type:'string',value:'materielDesp',text:'闆朵欢鏉愭枡',dictCode:''}) + fieldList.push({type:'string',value:'fixtureInformation',text:'澶瑰叿',dictCode:''}) + fieldList.push({type:'string',value:'processWorkCode',text:'宸ュ簭锛堝伐姝ュ彿锛�',dictCode:''}) + fieldList.push({type:'string',value:'processingBatch',text:'鍔犲伐鎵规',dictCode:''}) + fieldList.push({type:'string',value:'processingQuantity',text:'鍔犲伐鏁伴噺',dictCode:''}) + fieldList.push({type:'string',value:'processingEquipment',text:'鍔犲伐璁惧',dictCode:''}) + fieldList.push({type:'Text',value:'picture',text:'鍥剧墖',dictCode:''}) + fieldList.push({type:'string',value:'remake',text:'璇存槑淇℃伅',dictCode:''}) + fieldList.push({type:'string',value:'compiler',text:'缂栧啓浜�',dictCode:''}) + fieldList.push({type:'date',value:'compilerTime',text:'缂栧啓鏃ユ湡'}) + fieldList.push({type:'string',value:'proofreader',text:'鏍″浜�',dictCode:''}) + fieldList.push({type:'date',value:'proofreaderTime',text:'鏍″鏃ユ湡'}) + fieldList.push({type:'string',value:'operator',text:'鎿嶄綔鑰�',dictCode:''}) + fieldList.push({type:'date',value:'inspectionTime',text:'棣栨鏃ユ湡'}) + fieldList.push({type:'string',value:'approver',text:'瀹℃壒浜�',dictCode:''}) + fieldList.push({type:'date',value:'approverTime',text:'瀹℃壒鏃ユ湡'}) + this.superFieldList = fieldList + }, + handleEdit(record) { + this.$refs.modalEditForm.edit(record); + this.$refs.modalEditForm.title = "涓婁紶/淇敼淇℃伅"; + this.$refs.modalEditForm.disableSubmit = false; + }, + } + } +</script> +<style scoped> + @import '~@assets/less/common.less'; +</style> \ No newline at end of file diff --git "a/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchModal.Style\043Drawer.vue" "b/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchModal.Style\043Drawer.vue" new file mode 100644 index 0000000..da04747 --- /dev/null +++ "b/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchModal.Style\043Drawer.vue" @@ -0,0 +1,84 @@ +<template> + <a-drawer + :title="title" + :width="width" + placement="right" + :closable="false" + @close="close" + destroyOnClose + :visible="visible"> + <GuideCardBatchEditForm ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></GuideCardBatchEditForm> + <div class="drawer-footer"> + <a-button @click="handleCancel" style="margin-bottom: 0;">鍏抽棴</a-button> + <a-button v-if="!disableSubmit" @click="handleOk" type="primary" style="margin-bottom: 0;">鎻愪氦</a-button> + </div> + </a-drawer> +</template> + +<script> + + import GuideCardBatchEditForm from './GuideCardBatchEditForm.vue' + + export default { + name: 'GuideCardBatchModal', + components: { + GuideCardBatchEditForm + }, + data () { + return { + title:"鎿嶄綔", + width:800, + visible: false, + disableSubmit: false + } + }, + methods: { + add () { + this.visible=true + this.$nextTick(()=>{ + this.$refs.realForm.add(); + }) + }, + edit (record) { + this.visible=true + this.$nextTick(()=>{ + this.$refs.realForm.edit(record); + }); + }, + close () { + this.$emit('close'); + this.visible = false; + }, + submitCallback(){ + this.$emit('ok'); + this.visible = false; + }, + handleOk () { + this.$refs.realForm.submitForm(); + }, + handleCancel () { + this.close() + } + } + } +</script> + +<style lang="less" scoped> +/** Button鎸夐挳闂磋窛 */ + .ant-btn { + margin-left: 30px; + margin-bottom: 30px; + float: right; + } + .drawer-footer{ + position: absolute; + bottom: -8px; + width: 100%; + border-top: 1px solid #e8e8e8; + padding: 10px 16px; + text-align: right; + left: 0; + background: #fff; + border-radius: 0 0 2px 2px; + } +</style> \ No newline at end of file diff --git a/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchModal.vue b/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchModal.vue new file mode 100644 index 0000000..d4f6ea1 --- /dev/null +++ b/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchModal.vue @@ -0,0 +1,60 @@ +<template> + <j-modal + :title="title" + :width="width" + :visible="visible" + switchFullscreen + @ok="handleOk" + :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" + @cancel="handleCancel" + cancelText="鍏抽棴"> + <guide-card-batch-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></guide-card-batch-form> + </j-modal> +</template> + +<script> + + import GuideCardBatchForm from './GuideCardBatchForm' + export default { + name: 'GuideCardBatchModal', + components: { + GuideCardBatchForm + }, + data () { + return { + title:'', + width:800, + visible: false, + disableSubmit: false + } + }, + methods: { + add () { + this.visible=true + this.$nextTick(()=>{ + this.$refs.realForm.add(); + }) + }, + edit (record) { + this.visible=true + this.$nextTick(()=>{ + this.$refs.realForm.edit(record); + }) + }, + close () { + this.$emit('close'); + this.visible = false; + }, + handleOk () { + this.$refs.realForm.submitForm(); + }, + submitCallback(){ + this.$emit('ok'); + this.visible = false; + }, + handleCancel () { + this.close() + } + } + } +</script> \ No newline at end of file diff --git a/src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue b/src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue index 1c1145a..ac589c8 100644 --- a/src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue +++ b/src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue @@ -31,12 +31,6 @@ :currentLevelDetails="currentLevelInfo" :size="containerSize"/> </a-tab-pane> - <!--绯荤粺鍙傛暟閰嶇疆涓嫢鍙傛暟涓�1鏃舵墠灞曠ず瀵瑰簲灞傜骇鐨勫垁鍏峰垪琛�--> - <a-tab-pane :key="2" tab="鍒�鍏峰垪琛�" - v-if="+currentLevelInfo.type===5&&isProcessHasCutterList||+currentLevelInfo.type===6&&isProcessStepHasCutterList"> - <CutterTableList ref="cutterTableListRef" :currentLevelInfo="currentLevelInfo" :size="containerSize"/> - </a-tab-pane> - <template v-if="currentLevelInfo.hasOwnProperty('docId')"> <a-tab-pane :key="1" tab="鏂囨。灞炴��"> <DocumentInfo :currentLevelDetails="currentLevelInfo" :size="containerSize"/> @@ -57,6 +51,20 @@ <UseDocumentEquipmentTableList ref="useDocumentEquipmentTableRef" :currentDocumentInfo="currentLevelInfo" :size="containerSize"/> </a-tab-pane> + + <a-tab-pane :key="5" tab="鍒�鍏峰垪琛�"> + <CutterTableList ref="cutterTableListRef" :currentLevelInfo="currentLevelInfo" :size="containerSize"/> + </a-tab-pane> + + <a-tab-pane :key="6" tab="瀹$璇︽儏"> + <DocumentInfoFlow ref="flowTableListRef" :currentLevelDetails="currentLevelInfo" :size="containerSize"/> + </a-tab-pane> + + <a-tab-pane :key="7" tab="鎵规鍒楄〃"> + <GuideCardBatchList ref="guideCardBatchInfoRef" :guideCardBatchInfo="currentLevelInfo" :size="containerSize"/> + </a-tab-pane> + + </template> </a-tabs> @@ -72,6 +80,7 @@ import ProcessStepInfo from './ProcessStep/ProcessStepInfo' import CutterTableList from './Cutter/CutterTableList' import DocumentInfo from '../../../common/DocumentInfo' +import DocumentInfoFlow from '../../../common/DocumentInfoFlow.vue' import DocumentVersionTableList from '../../../common/DocumentVersionTableList' import UseDocumentEquipmentTableList from './Document/UseNcDocumentEquipmentTableList' import FilePreview from '../../../common/FilePreview' @@ -81,10 +90,12 @@ import ProcessSpecVersionInfo from '@views/dnc/base/modules/ProductStructure/ProcessSpecVersion/ProcessSpecVersionInfo.vue' import { getAction } from '@/api/manage' +import GuideCardBatchList from '@views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchList.vue' export default { name: 'ProductStructureMainBottom', components: { + GuideCardBatchList, ProcessSpecVersionInfo, UseDeviceCustomTypeEquipmentTableList, CutterTableList, @@ -94,6 +105,7 @@ UseDocumentEquipmentTableList, DocumentVersionTableList, DocumentInfo, + DocumentInfoFlow, ProcessInfo, PartInfo, ProductInfo, @@ -170,6 +182,14 @@ case 4: this.$nextTick(() => this.$refs.useDocumentEquipmentTableRef.loadData()) break + case 5: + this.$nextTick(() => this.$refs.cutterTableListRef.setQueryParamAndLoadData(1)) + break + case 6: + this.$nextTick(() => this.$refs.flowTableListRef.getAllApproveData()) + break + case 7: + this.$nextTick(() => this.$refs.guideCardBatchInfoRef.getGuideCardBatchList()) default: } // 闃绘鎺ュ彛鍦ㄥ悓涓�鏂囨。涓�娆$偣鍑诲唴澶氭瑙﹀彂 diff --git a/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue b/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue index 514efc1..9d8320b 100644 --- a/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue +++ b/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue @@ -63,6 +63,8 @@ <AssignPermissionModal :currentTreeNodeInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess" /> <!--妫�绱㈢數瀛愭ā鏉垮脊绐�--> <NcDocumentSearchModal :currentDocumentInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess" /> + <!--妫�绱C鏂囦欢寮圭獥--> + <NcDocumentSearchNcModal :currentDocumentInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess" /> <!--寮曠敤閮ㄤ欢--> <NcComponentBorrowModal :currentBorrowInfo="rightClickSelected" @submitSuccess="modalFormSubmitSuccess" /> <!--浜у搧缁撴瀯鏍戝熀鏈彸閿彍鍗�(绌虹櫧澶勮Е鍙�)--> @@ -85,6 +87,7 @@ import ProductStructureBaseContextMenu from '@views/dnc/base/modules/ProductStructure/ProductStructureBaseContextMenu.vue' import NcDocumentSearchModal from '@views/dnc/base/modules/ProductStructure/Document/NcDocumentSearchModal.vue' +import NcDocumentSearchNcModal from '@views/dnc/base/modules/ProductStructure/Document/NcDocumentSearchNcModal.vue' import NcComponentBorrowModal from '@views/dnc/base/modules/ProductStructure/Document/NcComponentBorrowModal.vue' export default { @@ -101,6 +104,7 @@ ProductModal, ProductStructureTreeContextMenu, NcDocumentSearchModal, + NcDocumentSearchNcModal, NcComponentBorrowModal }, data() { diff --git a/src/views/dnc/base/modules/ProductStructure/ProductStructureTreeContextMenu.vue b/src/views/dnc/base/modules/ProductStructure/ProductStructureTreeContextMenu.vue index a6f2026..a57934e 100644 --- a/src/views/dnc/base/modules/ProductStructure/ProductStructureTreeContextMenu.vue +++ b/src/views/dnc/base/modules/ProductStructure/ProductStructureTreeContextMenu.vue @@ -41,6 +41,7 @@ // { label: '瀵煎嚭鏂囨。', code: 'product_export', icon: 'export', isCommonMethod: true }, { label: '瀵煎叆鍏朵粬鏂囨。', code: 'product_other_import', icon: 'import', isCommonMethod: true }, { label: '妫�绱㈢數瀛愭牱鏉�', code: 'product_search', icon: 'search', isCommonMethod: true }, + { label: '妫�绱C鏂囦欢', code: 'product_search_nc', icon: 'search', isCommonMethod: true }, { label: '鍒犻櫎', code: 'product_delete', icon: 'delete', isCommonMethod: true }, { label: '鏉冮檺閰嶇疆', code: 'public_assign_permission', icon: 'idcard', isCommonMethod: true } ], @@ -53,6 +54,7 @@ // { label: '瀵煎嚭鏂囨。', code: 'component_export', icon: 'export', isCommonMethod: true }, { label: '瀵煎叆鍏朵粬鏂囨。', code: 'component_other_import', icon: 'import', isCommonMethod: true }, { label: '妫�绱㈢數瀛愭牱鏉�', code: 'component_search', icon: 'search', isCommonMethod: true }, + { label: '妫�绱C鏂囦欢', code: 'component_search_nc', icon: 'search', isCommonMethod: true }, { label: '寮曠敤閮ㄤ欢',code: 'component_borrow',icon: 'plus',isCommonMethod: false}, { label: '鍒犻櫎', code: 'component_delete', icon: 'delete', isCommonMethod: true }, { label: '鏉冮檺閰嶇疆', code: 'public_assign_permission', icon: 'idcard', isCommonMethod: true } @@ -66,6 +68,7 @@ // { label: '瀵煎嚭鏂囨。', code: 'parts_export', icon: 'export', isCommonMethod: true }, { label: '瀵煎叆鍏朵粬鏂囨。', code: 'parts_other_import', icon: 'import', isCommonMethod: true }, { label: '妫�绱㈢數瀛愭牱鏉�', code: 'parts_search', icon: 'search', isCommonMethod: true }, + { label: '妫�绱C鏂囦欢', code: 'parts_search_nc', icon: 'search', isCommonMethod: true }, { label: '鍒犻櫎', code: 'parts_delete', icon: 'delete', isCommonMethod: true }, { label: '鏉冮檺閰嶇疆', code: 'public_assign_permission', icon: 'idcard', isCommonMethod: true } ], @@ -76,6 +79,7 @@ { label: '缂栬緫宸ヨ壓瑙勭▼鐗堟湰淇℃伅', code: 'version_edit', icon: 'edit', isCommonMethod: false }, { label: '瀵煎叆鍏朵粬鏂囨。', code: 'version_other_import', icon: 'import', isCommonMethod: true }, { label: '妫�绱㈢數瀛愭牱鏉�', code: 'version_search', icon: 'search', isCommonMethod: true }, + { label: '妫�绱C鏂囦欢', code: 'version_search_nc', icon: 'search', isCommonMethod: true }, { label: '鍒犻櫎', code: 'version_delete', icon: 'delete', isCommonMethod: true }, { label: '鏉冮檺閰嶇疆', code: 'public_assign_permission', icon: 'idcard', isCommonMethod: true } ], @@ -89,6 +93,8 @@ // { label: '瀵煎嚭NC绋嬪簭', code: 'process_export', icon: 'export', isCommonMethod: true }, { label: '瀵煎叆NC绋嬪簭', code: 'process_nc_import', icon: 'import', isCommonMethod: true }, { label: '瀵煎叆鍏朵粬鏂囨。', code: 'process_other_import', icon: 'import', isCommonMethod: true }, + { label: '妫�绱㈢數瀛愭牱鏉�', code: 'process_search', icon: 'search', isCommonMethod: true }, + { label: '妫�绱C鏂囦欢', code: 'process_search_nc', icon: 'search', isCommonMethod: true }, { label: '鏉冮檺閰嶇疆', code: 'public_assign_permission', icon: 'idcard', isCommonMethod: true } ], //宸ユ @@ -100,6 +106,8 @@ // { label: '瀵煎嚭NC绋嬪簭', code: 'processStep_export', icon: 'import', isCommonMethod: true }, { label: '瀵煎叆NC绋嬪簭', code: 'processStep_nc_import', icon: 'import', isCommonMethod: true }, { label: '瀵煎叆鍏朵粬鏂囨。', code: 'processStep_other_import', icon: 'import', isCommonMethod: true }, + { label: '妫�绱㈢數瀛愭牱鏉�', code: 'processStep_search', icon: 'search', isCommonMethod: true }, + { label: '妫�绱C鏂囦欢', code: 'processStep_search_nc', icon: 'search', isCommonMethod: true }, { label: '鏉冮檺閰嶇疆', code: 'public_assign_permission', icon: 'idcard', isCommonMethod: true } ] } diff --git a/src/views/dnc/common/DocumentInfo.vue b/src/views/dnc/common/DocumentInfo.vue index a33165c..32a5336 100644 --- a/src/views/dnc/common/DocumentInfo.vue +++ b/src/views/dnc/common/DocumentInfo.vue @@ -1,7 +1,6 @@ <template> <a-descriptions bordered :size="size" :column="4"> <a-descriptions-item label="鏂囨。鍚嶇О">{{currentLevelDetails.docName}}</a-descriptions-item> - <a-descriptions-item label="浠g爜鐗堟湰">{{currentLevelDetails.docAlias}}</a-descriptions-item> <a-descriptions-item label="璁惧缂栧彿">{{currentLevelDetails.docCode}}</a-descriptions-item> <a-descriptions-item label="鏂囨。鍚庣紑">{{currentLevelDetails.docSuffix}}</a-descriptions-item> <a-descriptions-item label="鏂囨。鐘舵��">{{currentLevelDetails.docDispatchStatus_dictText}}</a-descriptions-item> diff --git a/src/views/dnc/common/DocumentInfoFlow.vue b/src/views/dnc/common/DocumentInfoFlow.vue new file mode 100644 index 0000000..8b03581 --- /dev/null +++ b/src/views/dnc/common/DocumentInfoFlow.vue @@ -0,0 +1,205 @@ +<!-- + Description: 宸ヤ綔娴�-鎸囨淳璁惧璇︽儏椤甸潰 List + Author: 浣滆�� liuyh + Date: 2025-02-27 +--> +<template> + <a-card :bordered="false"> + <div> + <a-timeline style="padding:0 1% 0 12%" > + <a-timeline-item color='white' v-for="(item,index1) in hitaskDataSource" :key="index1"> + <div class="bottom"> + <p>澶勭悊浜猴細{{item.assignee_dictText}}</p> + <p v-if="index1 !==0">澶勭悊鏃堕暱锛歿{item.duration}}</p> + <p v-if="item.name !== '鎻愪氦鐢宠'">澶勭悊绫诲瀷锛歿{item.sequenceFlowName}}</p> + <p v-if="item.description != null">澶勭悊鎰忚锛歿{item.description}}</p> + <div class="left_qiu"><span>{{item.taskName}}</span></div> + </div> + </a-timeline-item> + </a-timeline> + </div> + </a-card> +</template> + +<script> + +import '@assets/less/TableExpand.less' +import { mixinDevice } from '@/utils/mixin' +import { getAction, deleteAction, postAction, downFile, httpAction } from '@api/manage' +export default { + name: 'FlowShenPi', + mixins: [mixinDevice], + props: { + currentLevelDetails: { + type: Object + }, + size: { + type: String + } + }, + + data() { + return { + form: this.$form.createForm(this), + span: 12, + span1: 8, + coldisabled: true, + spinning: false, + tableRowRecord: {}, + assignFileStream:{}, + tableDataSource: [], + usageDataSource: [], + hitaskDataSource:[], + bomForm: {}, + approveContent:"", + imageSrc: null, + drawerVisible: true, + labelCol: { + xs: { span: 24 }, + sm: { span: 5 } + }, + wrapperCol: { + xs: { span: 30 }, + sm: { span: 16 } + }, + validatorRules: { + version: { + rules: [ + { required: true, message: '璇疯緭鍏ユ枃妗g増鏈�!'}, + ] + }, + applyUser: { + rules: [ + { required: true, message: '璇烽�夋嫨鐢宠浜�!'}, + ] + }, + approveContent: { + rules: [ + { required: true, message: '璇疯緭鍏ュ鎵规剰瑙�!'}, + ] + }, + docName: { + rules: [ + { required: true, message: '璇疯緭鍏ユ枃妗e悕绉�!'}, + ] + }, + status: { + rules: [ + { required: true, message: '璇烽�夋嫨瀹℃壒鐘舵��!'}, + ] + }, + }, + approveData: {}, + flowData: {}, + title: '璇︽儏椤甸潰', + width: 1000, + visible: false, + // 琛ㄥご + url: { + queryHisTaskList:'/dncFlow/dispatchFile/queryDispatchDocFile', + }, + dictOptions: {}, + superFieldList: [], + workflowSource: [] + } + }, + created() { + }, + computed: {}, + methods: { + callback() { + }, + handCancel() { + this.visible = false + }, + getAllApproveData() { + console.log('currentLevelDetails----->', this.currentLevelDetails) + let parmhis={ + 'attributionId': this.currentLevelDetails.attributionId, + 'attributionType': this.currentLevelDetails.attributionType, + 'docId': this.currentLevelDetails.docId + } + getAction(this.url.queryHisTaskList,parmhis).then(res=>{ + this.hitaskDataSource=res.result + }).finally( + this.visible = true, + console.log('this.approveData---->', this.approveData) + ) + } + } +} +</script> +<style scoped> +.shallow-hr { + border: 0; + height: 1px; /* 鍒嗙晫绾跨殑楂樺害 */ + background-color: rgba(0, 0, 0, 0.1); /* 浣跨敤 RGBA 棰滆壊锛屽苟璁剧疆杈冧綆鐨勯�忔槑搴� */ + margin: 20px 0; /* 鍒嗙晫绾夸笂涓嬬殑澶栬竟璺� */ +} +.btn-custom { + background-color: #4CAF50; /* 缁胯壊鑳屾櫙 */ + color: white; /* 鐧借壊鏂囧瓧 */ + border: none; /* 鏃犺竟妗� */ + padding: 5px 15px; /* 鍐呰竟璺� */ + text-align: center; /* 鏂囧瓧灞呬腑 */ + text-decoration: none; /* 鏃犱笅鍒掔嚎 */ + display: inline-block; /* 琛屽唴鍧楀厓绱� */ + font-size: 12px; /* 瀛椾綋澶у皬 */ + margin: 4px 2px; /* 澶栬竟璺� */ + cursor: pointer; /* 榧犳爣鎮仠鏃舵樉绀烘墜鍨� */ + border-radius: 4px; /* 鍦嗚杈规 */ +} + +.bold-large-label { + font-weight: bold; + font-size: 20px; /* 鎴栦綘闇�瑕佺殑浠讳綍澶у皬 */ +} +.left_qiu{ + position: absolute; + left: -74px; + top: 0; + width:54px; + border-radius: 50%; + height:54px; + font-size: 13px; + margin: auto; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: center; + background: #0099ff; + transform: translate(0, 0); +} +/deep/ .ant-timeline-item-tail{ + left: -29px !important; +} +.left_qiu span{ + width: 3em; + display: block; + color: #fff; + text-align: center; +} +.img{ + width: 75%; +} + +.wrap{ + clear: both; + width: 100%; + display: flex; + height: 50px; + border: 1px solid #ccc; + /* background-color: aqua; */ +} +.box{ + width:21%; + height:50px; + border-right: 1px solid #ccc; + line-height: 50px; + /* background: red; */ + text-align:center; + margin: auto; +} + +@import '~@assets/less/common.less'; +</style> \ No newline at end of file diff --git a/src/views/dnc/common/DocumentModalForm.vue b/src/views/dnc/common/DocumentModalForm.vue index d6e34da..405af63 100644 --- a/src/views/dnc/common/DocumentModalForm.vue +++ b/src/views/dnc/common/DocumentModalForm.vue @@ -20,14 +20,6 @@ <a-row> <a-col :span="24"> - <a-form-model-item label="浠g爜鐗堟湰"> - <a-input v-model="model.docAlias" placeholder="璇疯緭鍏ヤ唬鐮佺増鏈�"></a-input> - </a-form-model-item> - </a-col> - </a-row> - - <a-row> - <a-col :span="24"> <a-form-model-item label="鎻忚堪"> <a-textarea v-model="model.description" placeholder="璇疯緭鍏ユ枃妗f弿杩�"></a-textarea> </a-form-model-item> diff --git a/src/views/dnc/common/DocumentVersionTableList.vue b/src/views/dnc/common/DocumentVersionTableList.vue index ac703ba..3242bff 100644 --- a/src/views/dnc/common/DocumentVersionTableList.vue +++ b/src/views/dnc/common/DocumentVersionTableList.vue @@ -47,9 +47,9 @@ return parseInt(index) + 1 } }, - { title: '鏂囦欢鍚嶇О', dataIndex: 'fileName', align: 'center', scopedSlots: { customRender: 'fileName' } }, - { title: '鐗堟湰鍙�', dataIndex: 'docVersion', align: 'center' }, - { title: '鏂囦欢澶у皬', dataIndex: 'fileSize', align: 'center' } + { title: '鏂囦欢鍚嶇О', dataIndex: 'fileName', align: 'center', scopedSlots: { customRender: 'fileName' },width: 500}, + { title: '鐗堟湰鍙�', dataIndex: 'docVersion', align: 'center' ,width: 200}, + { title: '鏂囦欢澶у皬', dataIndex: 'fileSize', align: 'center' ,width: 150} ], url: { list: '/nc/file/find/list' diff --git a/src/views/dnc/common/TableContextMenu.vue b/src/views/dnc/common/TableContextMenu.vue index ba41200..28f045f 100644 --- a/src/views/dnc/common/TableContextMenu.vue +++ b/src/views/dnc/common/TableContextMenu.vue @@ -51,6 +51,7 @@ NC: [ { label: '缂栬緫鏂囨。淇℃伅', code: 'document_edit', subMenu: [], icon: 'edit', isCommonMethod: false }, { label: '鎸囨淳鍒拌澶�', code: 'document_assign', subMenu: [], icon: 'cluster', isCommonMethod: false }, + { label: '鎻愬彇鍒�鍏�', code: 'document_extract', subMenu: [], icon: 'tool', isCommonMethod: false }, { label: '瀵煎叆NC绋嬪簭', code: 'document_nc_import', subMenu: [], icon: 'import', isCommonMethod: true }, { label: '涓嬭浇', code: 'document_download', subMenu: [], icon: 'download', isCommonMethod: true }, { label: '鍒犻櫎', code: 'document_delete', subMenu: [], icon: 'delete', isCommonMethod: true }, diff --git a/src/views/flowable/workflow/FlowLedger.vue b/src/views/flowable/workflow/FlowLedger.vue index 8d683d4..fe4a2f9 100644 --- a/src/views/flowable/workflow/FlowLedger.vue +++ b/src/views/flowable/workflow/FlowLedger.vue @@ -200,15 +200,15 @@ console.log('approcesstype--->', approcesstype) switch (approcesstype) { case 'drApproval': - item.description=item.title + item.description=item.description this.handDrDetial(item) break case 'ggApproval': - item.description=item.title + item.description=item.description this.handDispatchFileDetial(item) break case 'sbdjApproval': - item.description = item.title + item.description = item.description this.handInspectionOrderDetail(item) break default: @@ -230,6 +230,11 @@ }, handDispatchFileDetial(item){ this.selectDispatchFileXqData = item + + + + + this.selectDispatchFileXqData.assignee_dictText=item.todoUsers_dictText this.selectDispatchFileXqData.createTime=item.startTime this.selectDispatchFileXqData.procInstId=item.processInstanceId diff --git a/src/views/flowable/workflow/assignFileStream/AssignFileStreamHandle.vue b/src/views/flowable/workflow/assignFileStream/AssignFileStreamHandle.vue index cd6c700..745176b 100644 --- a/src/views/flowable/workflow/assignFileStream/AssignFileStreamHandle.vue +++ b/src/views/flowable/workflow/assignFileStream/AssignFileStreamHandle.vue @@ -76,12 +76,12 @@ </a-row> <a-row> <a-col :span='span'> - <a-form-model-item label='璁惧绫诲悕绉�' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='deviceManagementCode'> + <a-form-model-item label='鏁版帶绯荤粺绫诲埆' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='deviceManagementCode'> <a-input :disabled='coldisabled' v-model='tableRowRecord.deviceManagementCode'></a-input> </a-form-model-item> </a-col> <a-col :span='span'> - <a-form-model-item label='璁惧绫诲悕绉�' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='deviceManagementName'> + <a-form-model-item label='鏁版帶绯荤粺绫诲埆' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='deviceManagementName'> <a-input :disabled='coldisabled' v-model='tableRowRecord.deviceManagementName'></a-input> </a-form-model-item> </a-col> diff --git a/src/views/flowable/workflow/assignFileStream/AssignFileStreamXq.vue b/src/views/flowable/workflow/assignFileStream/AssignFileStreamXq.vue index 004cdbd..e74754c 100644 --- a/src/views/flowable/workflow/assignFileStream/AssignFileStreamXq.vue +++ b/src/views/flowable/workflow/assignFileStream/AssignFileStreamXq.vue @@ -76,12 +76,12 @@ </a-row> <a-row> <a-col :span='span'> - <a-form-model-item label='璁惧绫诲悕绉�' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='deviceManagementCode'> + <a-form-model-item label='鏁版帶绯荤粺绫诲埆' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='deviceManagementCode'> <a-input :disabled='coldisabled' v-model='tableRowRecord.deviceManagementCode'></a-input> </a-form-model-item> </a-col> <a-col :span='span'> - <a-form-model-item label='璁惧绫诲悕绉�' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='deviceManagementName'> + <a-form-model-item label='鏁版帶绯荤粺绫诲埆' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='deviceManagementName'> <a-input :disabled='coldisabled' v-model='tableRowRecord.deviceManagementName'></a-input> </a-form-model-item> </a-col> diff --git a/src/views/flowable/workflow/dispatchFile/DispatchFileXq.vue b/src/views/flowable/workflow/dispatchFile/DispatchFileXq.vue index 3e0c806..f0f148b 100644 --- a/src/views/flowable/workflow/dispatchFile/DispatchFileXq.vue +++ b/src/views/flowable/workflow/dispatchFile/DispatchFileXq.vue @@ -13,7 +13,7 @@ > <a-card :bordered="false"> <div> - <b>{{ selectShenpiData.title }}</b> + <b>{{ selectShenpiData.description }}</b> <br> <br> <a-tag color="blue"> -- Gitblit v1.9.3