From 7713e63365e74047c08f3416b5a95108fdee7002 Mon Sep 17 00:00:00 2001 From: zhaowei <zhaowei> Date: 星期一, 20 一月 2025 10:53:02 +0800 Subject: [PATCH] 产品结构树: 1、工序和工步层级新增加工设备型号和加工设备类型字段 2、各层级详细信息调整创建人及修改人字段 3、指派到设备窗口布局完成100% --- src/views/dnc/base/modules/ProductStructure/Document/DocumentInfo.vue | 6 src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepInfo.vue | 9 src/views/dnc/base/modules/ProductStructure/Document/DocumentVersionTableList.vue | 82 ++ src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue | 5 src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue | 14 src/views/dnc/common/ImportFileModal.vue | 42 + src/views/dnc/base/modules/ProductStructure/Process/ProcessInfo.vue | 6 src/views/dnc/base/modules/ProductStructure/Process/ProcessModal.vue | 18 src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepModal.vue | 18 src/views/dnc/base/modules/ProductStructure/Product/ProductInfo.vue | 4 src/views/dnc/base/modules/ProductStructure/Component/ComponentInfo.vue | 4 src/views/dnc/base/modules/ProductStructure/Document/OtherDocumentTableList.vue | 7 src/views/dnc/base/modules/ProductStructure/Process/ProcessModalForm.vue | 25 + src/api/dnc.js | 7 src/views/dnc/base/modules/ProductStructure/Document/NcDocumentAssignModal.vue | 943 ++++++++++-------------------------------- src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue | 3 src/views/dnc/base/modules/ProductStructure/Part/PartInfo.vue | 4 src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepModalForm.vue | 20 src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue | 46 + 19 files changed, 471 insertions(+), 792 deletions(-) diff --git a/src/api/dnc.js b/src/api/dnc.js index 0c55a47..2a0862b 100644 --- a/src/api/dnc.js +++ b/src/api/dnc.js @@ -12,14 +12,17 @@ export default { //-------------------------浜у搧缁撴瀯鏍�------------------------------------------------ + // 鑾峰彇浜у搧缁撴瀯鏍� getProductStructureTreeApi: () => getAction('/nc/product/load/tree'), - + // 鑾峰彇鎵�鏈夎澶囩殑鍒楄〃 + getAllDeviceListApi: (type) => getAction('/nc/device/list/all'), // 瀵煎叆NC绋嬪簭/鏂囨。 importDocumentFromLocalApi: ({ params, formData }) => { const paramsStringify = querystring.stringify(params) return uploadAction(`/nc/doc/add?${paramsStringify}`, formData) }, - + // 鑾峰彇鎸囨淳鍒拌澶囦腑鐨勮澶囨爲 + getDocumentAssignDeviceTreeApi: ({ attributionType, attributionId }) => getAction(`/nc/device/load/depart/tree/${attributionType}/${attributionId}`), // 涓嬭浇鏂囨。 downloadDocumentApi: ({ id, docName }) => downloadFile(`/nc/doc/download/${id}`, docName), // 鏂囨。鍑哄簱 diff --git a/src/views/dnc/base/modules/ProductStructure/Component/ComponentInfo.vue b/src/views/dnc/base/modules/ProductStructure/Component/ComponentInfo.vue index 84d9e3a..c409cde 100644 --- a/src/views/dnc/base/modules/ProductStructure/Component/ComponentInfo.vue +++ b/src/views/dnc/base/modules/ProductStructure/Component/ComponentInfo.vue @@ -11,9 +11,9 @@ <a-descriptions-item label="澶勭悊绫诲瀷 ">{{currentLevelDetails.processType}}</a-descriptions-item> <a-descriptions-item label="缁撴瀯绫诲瀷 ">{{currentLevelDetails.structureType}}</a-descriptions-item> <a-descriptions-item label="閲嶉噺" :span="2">{{currentLevelDetails.componentWeight}}</a-descriptions-item> - <a-descriptions-item label="鍒涘缓浜�">{{currentLevelDetails.createUser_dicText}}</a-descriptions-item> + <a-descriptions-item label="鍒涘缓浜�">{{currentLevelDetails.createName}}</a-descriptions-item> <a-descriptions-item label="鍒涘缓鏃堕棿" :span="2">{{currentLevelDetails.createTime}}</a-descriptions-item> - <a-descriptions-item label="淇敼浜�">{{currentLevelDetails.updateUser_dicText}}</a-descriptions-item> + <a-descriptions-item label="淇敼浜�">{{currentLevelDetails.updateName}}</a-descriptions-item> <a-descriptions-item label="淇敼鏃堕棿" :span="2">{{currentLevelDetails.updateTime}}</a-descriptions-item> <a-descriptions-item label="鎻忚堪" :span="3">{{currentLevelDetails.description}}</a-descriptions-item> </a-descriptions> diff --git a/src/views/dnc/base/modules/ProductStructure/Document/DocumentInfo.vue b/src/views/dnc/base/modules/ProductStructure/Document/DocumentInfo.vue index 95743e5..218d3e0 100644 --- a/src/views/dnc/base/modules/ProductStructure/Document/DocumentInfo.vue +++ b/src/views/dnc/base/modules/ProductStructure/Document/DocumentInfo.vue @@ -7,7 +7,11 @@ <a-descriptions-item label="鏂囨。鐘舵��">{{currentLevelDetails.docStatus_dictText}}</a-descriptions-item> <a-descriptions-item label="绯荤粺鎸囧畾鐗堟湰">{{currentLevelDetails.publishVersion}}</a-descriptions-item> <a-descriptions-item label="鍑哄簱鐘舵��">{{currentLevelDetails.pullStatus_dictText}}</a-descriptions-item> - <a-descriptions-item label="鍑哄簱浜�" :span="2">{{currentLevelDetails.pullUser}}</a-descriptions-item> + <a-descriptions-item label="鍑哄簱浜�" :span="2">{{currentLevelDetails.pullUser_dictText}}</a-descriptions-item> + <a-descriptions-item label="鍒涘缓浜�">{{currentLevelDetails.createBy_dictText}}</a-descriptions-item> + <a-descriptions-item label="鍒涘缓鏃堕棿" :span="2">{{currentLevelDetails.createTime}}</a-descriptions-item> + <a-descriptions-item label="淇敼浜�">{{currentLevelDetails.updateBy_dictText}}</a-descriptions-item> + <a-descriptions-item label="淇敼鏃堕棿" :span="2">{{currentLevelDetails.updateTime}}</a-descriptions-item> <a-descriptions-item label="鎻忚堪" :span="3">{{currentLevelDetails.description}}</a-descriptions-item> </a-descriptions> </template> diff --git a/src/views/dnc/base/modules/ProductStructure/Document/DocumentVersionTableList.vue b/src/views/dnc/base/modules/ProductStructure/Document/DocumentVersionTableList.vue index 14f5344..b909b4c 100644 --- a/src/views/dnc/base/modules/ProductStructure/Document/DocumentVersionTableList.vue +++ b/src/views/dnc/base/modules/ProductStructure/Document/DocumentVersionTableList.vue @@ -1,39 +1,87 @@ <template> - <a-table :columns="columns" :data-source="dataSource" bordered :pagination="false"> - + <a-table :columns="columns" :data-source="dataSource" bordered :pagination="false" :size="size" rowKey="fileId"> + <template slot="rowIndex" slot-scope="text,record,index"> + <span :style="{color:setCurrentVersionColor(record.publishFlag)}">{{parseInt(index) + 1}}</span> + </template> + <template slot="fileName" slot-scope="text,record,index"> + <span :style="{color:setCurrentVersionColor(record.publishFlag)}"> + {{text}}.{{record.fileSuffix}} + <span v-if="record.publishFlag">[褰撳墠鐗堟湰]</span> + </span> + </template> + <template slot="docVersion" slot-scope="text,record"> + <span :style="{color:setCurrentVersionColor(record.publishFlag)}">{{text}}</span> + </template> + <template slot="fileSize" slot-scope="text,record"> + <span :style="{color:setCurrentVersionColor(record.publishFlag)}">{{(text/1024).toFixed(2)}}KB</span> + </template> </a-table> </template> <script> import { JeecgListMixin } from '@/mixins/JeecgListMixin' + import { getAction } from '@/api/manage' export default { name: 'DocumentVersionTableList', mixins: [JeecgListMixin], components: {}, + props: { + currentDocumentInfo: { + type: Object + }, + size: { + type: String + } + }, data() { return { + disableMixinCreated: true, + queryParams: {}, columns: [ - { - title: '搴忓彿', - dataIndex: 'rowIndex', - key: 'rowIndex', - width: 65, - align: 'center', - customRender: function(t, r, index) { - return parseInt(index) + 1 - } - }, - { title: '鏂囦欢鍚嶇О', dataIndex: 'fileName', align: 'center' }, - { title: '鐗堟湰鍙�', dataIndex: 'docVersion', align: 'center' }, - { title: '鏂囦欢澶у皬', dataIndex: 'fileSize', align: 'center' } + { title: '搴忓彿', dataIndex: 'rowIndex', width: 65, align: 'center', scopedSlots: { customRender: 'rowIndex' } }, + { title: '鏂囦欢鍚嶇О', dataIndex: 'fileName', align: 'center', scopedSlots: { customRender: 'fileName' } }, + { title: '鐗堟湰鍙�', dataIndex: 'docVersion', align: 'center', scopedSlots: { customRender: 'docVersion' } }, + { title: '鏂囦欢澶у皬', dataIndex: 'fileSize', align: 'center', scopedSlots: { customRender: 'fileSize' } } ], url: { - list: '' + list: '/nc/file/find/list' } } }, - methods: {} + methods: { + loadData() { + this.dataSource = [] + if (!this.url.list) { + this.$message.error('璇疯缃畊rl.list灞炴��!') + return + } + var params = this.getQueryParams()//鏌ヨ鏉′欢 + params.docId = this.currentDocumentInfo.docId + if (!params) { + return false + } + this.loading = true + getAction(this.url.list, params).then((res) => { + if (res.success) { + this.dataSource = res.list + } else { + this.$message.warning(res.message) + } + }).finally(() => { + this.loading = false + }) + }, + + /** + * 璁剧疆琛ㄦ牸涓负褰撳墠鐗堟湰鐨勬枃浠惰〃鏍艰棰滆壊鏍囪瘑 + * @param publishFlag 鏄惁涓哄綋鍓嶇増鏈� + * @returns {string} 棰滆壊鏍囪瘑 + */ + setCurrentVersionColor(publishFlag) { + return publishFlag ? '#DB9538' : '' + } + } } </script> diff --git a/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentAssignModal.vue b/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentAssignModal.vue index 01a4e69..f00bfda 100644 --- a/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentAssignModal.vue +++ b/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentAssignModal.vue @@ -1,5 +1,6 @@ <template> - <a-modal width="75%" :title="title" :visible="visible" @cancel="visible=false" :maskClosable="false" centered> + <a-modal width="75%" :title="title" :visible="visible" @cancel="visible=false" :maskClosable="false" centered + @ok="handleAssignDocumentToDevice"> <div class="tabs-container"> <div style="width: 72%"> <a-tabs> @@ -27,8 +28,9 @@ </div> - <a-table :columns="columns" :data-source="dataSource" bordered :pagination="false" - :scroll="{y:440}" :size="size" rowKey="docId"> + <a-table :columns="columns" :data-source="dataSource" bordered :pagination="false" :loading="loading" + :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" + :scroll="{y:456}" :size="size" rowKey="docId"> </a-table> </a-tab-pane> @@ -38,7 +40,44 @@ <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-dropdown :trigger="['click']" placement="bottomCenter" style="margin: 0 8px"> + <a-menu slot="overlay"> + <a-menu-item key="1" @click="expandedKeys = allTreeKeys">灞曞紑鎵�鏈�</a-menu-item> + <a-menu-item key="2" @click="expandedKeys = []">鍚堝苟鎵�鏈�</a-menu-item> + </a-menu> + <a-button> + <a-icon type="bars"/> + </a-button> + </a-dropdown> + </div> + <!--浜у搧缁撴瀯鏍�--> + <div style="overflow:auto;margin-top: 10px;height: 400px"> + <a-tree ref="tree" checkable :checkedKeys="checkedKeys" :expandedKeys.sync="expandedKeys" + :autoExpandParent="autoExpandParent" + :treeData="treeDataSource" @check="handleTreeNodeCheck" @expand="handleTreeExpand"> + <template slot="title" slot-scope="{ label, parentId, entity, key:treeKey,type}"> + <span v-if="label.indexOf(searchValue) > -1">{{ label.substr(0, label.indexOf(searchValue)) }}<span + class="replaceSearch">{{ searchValue }}</span>{{ label.substr(label.indexOf(searchValue) + searchValue.length) }}</span> + <span v-else>{{ label }}</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> @@ -47,13 +86,19 @@ </template> <script> + import { getAction } from '@/api/manage' + import dncApi from '@/api/dnc' import { JeecgListMixin } from '@/mixins/JeecgListMixin' + import ATextarea from 'ant-design-vue/es/input/TextArea' export default { name: 'NcDocumentAssignModal', - components: {}, + components: { ATextarea }, mixins: [JeecgListMixin], props: { + currentDocumentInfo: { + type: Object + }, size: { type: String } @@ -76,736 +121,194 @@ }, { title: '鏂囦欢鍚嶇О', dataIndex: 'docName', align: 'center', width: 300 }, { title: '璁惧缂栧彿', dataIndex: 'docCode', align: 'center' }, - { title: '鍑哄簱鐘舵��', dataIndex: 'pullStatus', align: 'center' }, - { title: '鐘� 鎬�', dataIndex: 'docStatus', align: 'center' }, + { title: '鍑哄簱鐘舵��', dataIndex: 'pullStatus_dictText', align: 'center' }, + { title: '鐘� 鎬�', dataIndex: 'docStatus_dictText', align: 'center' }, { title: '涓婁紶鏃堕棿', dataIndex: 'createTime', align: 'center', width: 200 } ], - dataSource: [ - { - 'docId': '1872116579179859971', - 'docName': 'api-ms-win-core-heap-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116579423129601', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:50', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116579179859972', - 'docName': 'api-ms-win-core-libraryloader-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116579423129606', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:50', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116581352509442', - 'docName': 'api-ms-win-core-processthreads-l1-1-1.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116581453172737', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:50', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116581352509441', - 'docName': 'api-ms-win-core-profile-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116581453172738', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:50', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116581398646787', - 'docName': 'api-ms-win-core-processenvironment-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116581499310083', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:50', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116581394452482', - 'docName': 'api-ms-win-core-processthreads-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116581499310082', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:50', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116581398646786', - 'docName': 'api-ms-win-core-namedpipe-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116581503504385', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:50', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116581398646791', - 'docName': 'api-ms-win-core-rtlsupport-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116581503504386', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:50', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116583265112065', - 'docName': 'api-ms-win-core-synch-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116583357386754', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:50', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116583298666502', - 'docName': 'api-ms-win-core-timezone-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116583386746881', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:50', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116583298666498', - 'docName': 'api-ms-win-core-sysinfo-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116583399329795', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:50', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116583298666499', - 'docName': 'api-ms-win-core-util-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116583399329794', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:50', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116585123188739', - 'docName': 'api-ms-win-crt-convert-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116585219657730', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:51', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116585123188738', - 'docName': 'api-ms-win-crt-heap-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116585219657729', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:51', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116585131577347', - 'docName': 'api-ms-win-crt-environment-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116585223852035', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:51', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116585131577350', - 'docName': 'api-ms-win-crt-conio-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116585223852036', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:51', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116585131577346', - 'docName': 'api-ms-win-crt-locale-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116585223852034', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:51', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116585139965954', - 'docName': 'api-ms-win-crt-filesystem-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116585232240641', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:51', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116587392307203', - 'docName': 'api-ms-win-crt-stdio-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116587505553412', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:52', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116587392307207', - 'docName': 'api-ms-win-crt-process-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116587505553409', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:51', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116587379724289', - 'docName': 'api-ms-win-crt-multibyte-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116587497164802', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:51', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116587388112901', - 'docName': 'api-ms-win-crt-private-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116587497164801', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:52', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116587388112899', - 'docName': 'api-ms-win-crt-runtime-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116587505553410', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:51', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116587392307205', - 'docName': 'api-ms-win-crt-math-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116587505553411', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:51', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116589451710466', - 'docName': 'api-ms-win-crt-string-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116589644648450', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:52', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116589472681986', - 'docName': 'api-ms-win-crt-time-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116589653037060', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:52', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116589472681987', - 'docName': 'api-ms-win-crt-utility-l1-1-0.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116589653037058', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:52', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116589472681985', - 'docName': 'chrome_100_qq.pak', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'pak', - 'docStatus': 1, - 'publishFileId': '1872116589653037059', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:52', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116589787254785', - 'docName': 'chrome_200_qq.pak', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'pak', - 'docStatus': 1, - 'publishFileId': '1872116589896306690', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:52', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116590152159233', - 'docName': 'd3dcompiler_47.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116590277988354', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:52', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1872116591695663106', - 'docName': 'ffmpeg.dll', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'dll', - 'docStatus': 1, - 'publishFileId': '1872116591783743489', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2024-12-26 11:05:52', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - }, - { - 'docId': '1878649744767254529', - 'docName': 'avatar2.jpg', - 'docAlias': null, - 'docCode': null, - 'docSuffix': 'jpg', - 'docStatus': 1, - 'publishFileId': '1878649744901472258', - 'publishVersion': 'a.1', - 'description': null, - 'createTime': '2025-01-13 11:46:18', - 'updateTime': null, - 'createUser': '1254966905669160962', - 'updateUser': null, - 'docClassCode': null, - 'pullStatus': 1, - 'pullUser': null, - 'attributionType': 5, - 'attributionId': '1327523708556668930', - 'classificationId': '1257965381181095938', - 'syncStatus': null - } - ], - queryParam: {}, + searchValue: '', + searchInput: '', + spinning: false, + treeDataSource: [], + allTreeKeys: [], + checkedKeys: [], + expandedKeys: [], + autoExpandParent: true, url: { - list: '' + list: '/nc/doc/find/list' } } }, watch: { visible: { handler(value) { - if (value) this.loadData(1) + if (value) { + this.resetData() + this.loadData() + this.getDocumentAssignDeviceTreeByApi() + } } } }, - methods: {} + methods: { + loadData() { + this.dataSource = [] + if (!this.url.list) { + this.$message.error('璇疯缃畊rl.list灞炴��!') + return + } + var params = this.getQueryParams()//鏌ヨ鏉′欢 + if (!params) { + return false + } + const { attributionType, attributionId, param } = this.currentDocumentInfo + console.log('currentDocumentInfo', this.currentDocumentInfo) + params.attributionType = attributionType + params.attributionId = attributionId + params.docClassCode = param + console.log('params', params) + 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 + }) + }, + + getDocumentAssignDeviceTreeByApi() { + this.spinning = true + this.treeDataSource = [] + dncApi.getDocumentAssignDeviceTreeApi(this.currentDocumentInfo) + .then(res => { + if (res.success) { + this.dataList = [] + this.allTreeKeys = [] + this.treeDataSource = res.list + this.generateList(this.treeDataSource) + } else { + this.$message.warn(res.message) + } + }) + .finally(() => { + this.spinning = false + }) + }, + + handleAssignDocumentToDevice() { + const param = {} + console.log('table', this.selectedRowKeys) + const treeCheckedDeviceKeys = [] + this.checkedKeys.forEach(checkedKey => { + const deviceId = this.dataList.find(item => item.key === checkedKey && item.type === 2) + if (deviceId) treeCheckedDeviceKeys.push(deviceId.key) + }) + + console.log('treeCheckedDeviceKeys', treeCheckedDeviceKeys) + }, + + /* 杈撳叆鏌ヨ鍐呭鍙樺寲鏃惰Е鍙� */ + 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 + */ + handleTreeExpand(expandedKeys) { + this.expandedKeys = expandedKeys + this.autoExpandParent = false + }, + + /** + * 鏍戣妭鐐瑰閫夋閫変腑鏃惰Е鍙� + * @param selectedKeys 閫変腑鑺傜偣key + * @param {node} node 鑺傜偣瀵硅薄 + */ + handleTreeNodeCheck(checkedKeys, { node }) { + let record = node.dataRef + this.checkedKeys = checkedKeys + }, + + /** + * 閫掑綊鑾峰緱杈撳叆椤圭殑鐖剁骇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++) { + data[i].key = data[i].id + const node = data[i] + const key = node.id + const title = node.label + 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.checkedKeys = [] + } + } } </script> -<style scoped> - .tabs-container { - display: flex; - justify-content: space-between; +<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); + } + } + } + </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 f2f401a..c4ac74f 100644 --- a/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue +++ b/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue @@ -1,13 +1,14 @@ <template> <div> <a-table :columns="columns" :data-source="dataSource" bordered :pagination="ipagination" - :scroll="{y:189}" :customRow="customRow" :size="size" rowKey="docId"> + :scroll="{y:189}" :customRow="customRow" :size="size" rowKey="docId" @change="handleTableChange"> </a-table> <DocumentModal ref="modalForm" @ok="modalFormOk"/> - <NcDocumentAssignModal :size="size" ref="documentAssignModalRef"/> + <NcDocumentAssignModal :size="size" ref="documentAssignModalRef" + :currentDocumentInfo="currentRightClickedDocumentInfo"/> </div> </template> @@ -51,6 +52,8 @@ { title: '涓婁紶鏃堕棿', dataIndex: 'createTime', align: 'center' } ], dataSource: [], + currentRightClickedDocumentInfo: {}, + currentClickedDocumentInfo: {}, url: { list: '/nc/doc/find/page' } @@ -96,10 +99,13 @@ on: { contextmenu: event => { event.preventDefault() - this.$emit('handleTableContextMenuOpen', { ...record, param: 'NC' }) + this.currentRightClickedDocumentInfo = Object.assign({ param: 'NC' }, record) + this.$emit('handleTableContextMenuOpen', this.currentRightClickedDocumentInfo) }, click: () => { - this.$bus.$emit('sendCurrentLevelInfo', record) + if (this.currentClickedDocumentInfo.docId === record.docId) return + this.currentClickedDocumentInfo = Object.assign({}, record) + this.$bus.$emit('sendCurrentClickedDocumentInfo', record) } } } diff --git a/src/views/dnc/base/modules/ProductStructure/Document/OtherDocumentTableList.vue b/src/views/dnc/base/modules/ProductStructure/Document/OtherDocumentTableList.vue index 5c71c42..e4191af 100644 --- a/src/views/dnc/base/modules/ProductStructure/Document/OtherDocumentTableList.vue +++ b/src/views/dnc/base/modules/ProductStructure/Document/OtherDocumentTableList.vue @@ -1,7 +1,7 @@ <template> <div> <a-table :columns="columns" :data-source="dataSource" bordered :pagination="ipagination" - :scroll="{y:189}" :customRow="customRow" :size="size" rowKey="docId"> + :scroll="{y:189}" :customRow="customRow" :size="size" rowKey="docId" @change="handleTableChange"> </a-table> @@ -48,6 +48,7 @@ { title: '涓婁紶鏃堕棿', dataIndex: 'createTime', align: 'center' } ], dataSource: [], + currentDocumentInfo: {}, url: { list: '/nc/doc/find/page' } @@ -96,7 +97,9 @@ this.$emit('handleTableContextMenuOpen', { ...record, param: 'OTHER' }) }, click: () => { - this.$bus.$emit('sendCurrentLevelInfo', record) + if (this.currentDocumentInfo.docId === record.docId) return + this.currentDocumentInfo = Object.assign({}, record) + this.$bus.$emit('sendCurrentClickedDocumentInfo', record) } } } diff --git a/src/views/dnc/base/modules/ProductStructure/Part/PartInfo.vue b/src/views/dnc/base/modules/ProductStructure/Part/PartInfo.vue index 5f43682..b91d89a 100644 --- a/src/views/dnc/base/modules/ProductStructure/Part/PartInfo.vue +++ b/src/views/dnc/base/modules/ProductStructure/Part/PartInfo.vue @@ -11,9 +11,9 @@ <a-descriptions-item label="澶勭悊绫诲瀷 ">{{currentLevelDetails.processType}}</a-descriptions-item> <a-descriptions-item label="缁撴瀯绫诲瀷 ">{{currentLevelDetails.structureType}}</a-descriptions-item> <a-descriptions-item label="閲嶉噺" :span="2">{{currentLevelDetails.partsWeight}}</a-descriptions-item> - <a-descriptions-item label="鍒涘缓浜�">{{currentLevelDetails.createUser_dicText}}</a-descriptions-item> + <a-descriptions-item label="鍒涘缓浜�">{{currentLevelDetails.createName}}</a-descriptions-item> <a-descriptions-item label="鍒涘缓鏃堕棿" :span="2">{{currentLevelDetails.createTime}}</a-descriptions-item> - <a-descriptions-item label="淇敼浜�">{{currentLevelDetails.updateUser_dicText}}</a-descriptions-item> + <a-descriptions-item label="淇敼浜�">{{currentLevelDetails.updateName}}</a-descriptions-item> <a-descriptions-item label="淇敼鏃堕棿" :span="2">{{currentLevelDetails.updateTime}}</a-descriptions-item> <a-descriptions-item label="鎻忚堪" :span="3">{{currentLevelDetails.description}}</a-descriptions-item> </a-descriptions> diff --git a/src/views/dnc/base/modules/ProductStructure/Process/ProcessInfo.vue b/src/views/dnc/base/modules/ProductStructure/Process/ProcessInfo.vue index ec530a9..2595b24 100644 --- a/src/views/dnc/base/modules/ProductStructure/Process/ProcessInfo.vue +++ b/src/views/dnc/base/modules/ProductStructure/Process/ProcessInfo.vue @@ -5,10 +5,14 @@ <a-descriptions-item label="宸ヨ壓缂栧彿 ">{{currentLevelDetails.craftNo}}</a-descriptions-item> <a-descriptions-item label="宸ュ簭绫诲瀷">{{currentLevelDetails.processType}}</a-descriptions-item> <a-descriptions-item label="鍔犲伐璁惧鍨嬪彿">{{currentLevelDetails.processingEquipmentModel}}</a-descriptions-item> - <!--<a-descriptions-item label="鍔犲伐璁惧绫诲瀷">{{currentLevelDetails.processingEquipmentOs}}</a-descriptions-item>--> + <a-descriptions-item label="鍔犲伐璁惧绫诲瀷">{{currentLevelDetails.processingEquipmentOs}}</a-descriptions-item> <a-descriptions-item label="鍔犲伐璁惧缂栧彿">{{currentLevelDetails.processingEquipmentCode}}</a-descriptions-item> <a-descriptions-item label="宸ヨ缂栧彿">{{currentLevelDetails.assembleStep}}</a-descriptions-item> <a-descriptions-item label="宸ヨ鍚嶇О ">{{currentLevelDetails.assembleName}}</a-descriptions-item> + <a-descriptions-item label="鍒涘缓浜�">{{currentLevelDetails.createName}}</a-descriptions-item> + <a-descriptions-item label="鍒涘缓鏃堕棿" :span="2">{{currentLevelDetails.createTime}}</a-descriptions-item> + <a-descriptions-item label="淇敼浜�">{{currentLevelDetails.updateName}}</a-descriptions-item> + <a-descriptions-item label="淇敼鏃堕棿" :span="2">{{currentLevelDetails.updateTime}}</a-descriptions-item> <a-descriptions-item label="鎻忚堪" :span="3">{{currentLevelDetails.description}}</a-descriptions-item> </a-descriptions> </template> diff --git a/src/views/dnc/base/modules/ProductStructure/Process/ProcessModal.vue b/src/views/dnc/base/modules/ProductStructure/Process/ProcessModal.vue index 57f3e4c..3d5c716 100644 --- a/src/views/dnc/base/modules/ProductStructure/Process/ProcessModal.vue +++ b/src/views/dnc/base/modules/ProductStructure/Process/ProcessModal.vue @@ -8,11 +8,12 @@ @ok="handleOk" @cancel="handleCancel" cancelText="鍏抽棴"> - <ProcessModalForm ref="realForm" @ok="submitCallback"/> + <ProcessModalForm ref="realForm" @ok="submitCallback" :allDeviceList="allDeviceList"/> </j-modal> </template> <script> + import dncApi from '@/api/dnc' import ProcessModalForm from './ProcessModalForm.vue' export default { @@ -30,13 +31,28 @@ title: '', width: 700, visible: false, + allDeviceList: [], isAddNextLevel: false // 鏄惁涓烘坊鍔犱笅绾э紝浣滀负鏍戣妭鐐规槸鍚﹀睍寮�鐨勫垽鏂� + } + }, + watch: { + visible: { + handler(value) { + if (value) this.getAllDeviceListByApi() + } } }, created() { this.$bus.$on('treeMenuItemMethodTrigger', this.triggerCorrespondingMethod) }, methods: { + getAllDeviceListByApi() { + dncApi.getAllDeviceListApi() + .then(res => { + if (res.success) this.allDeviceList = res.list + }) + }, + /** * 鐐瑰嚮閮ㄤ欢鍒涘缓閮ㄤ欢涓嬬骇宸ュ簭 */ diff --git a/src/views/dnc/base/modules/ProductStructure/Process/ProcessModalForm.vue b/src/views/dnc/base/modules/ProductStructure/Process/ProcessModalForm.vue index d077f67..c60ec92 100644 --- a/src/views/dnc/base/modules/ProductStructure/Process/ProcessModalForm.vue +++ b/src/views/dnc/base/modules/ProductStructure/Process/ProcessModalForm.vue @@ -17,7 +17,24 @@ <a-row> <a-col :span="24"> <a-form-model-item label="鍔犲伐璁惧缂栧彿" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> - <a-select v-model="model.processingEquipmentCode" placeholder="璇烽�夋嫨鍔犲伐璁惧缂栧彿"></a-select> + <a-select v-model="model.processingEquipmentCode" placeholder="璇烽�夋嫨鍔犲伐璁惧缂栧彿"> + <a-select-option v-for="item in allDeviceList" :key="item.deviceId"> + {{item.deviceId}} + </a-select-option> + </a-select> + </a-form-model-item> + </a-col> + </a-row> + + <a-row> + <a-col :span="12"> + <a-form-model-item label="鍔犲伐璁惧鍨嬪彿"> + <a-input v-model="model.processingEquipmentModel" placeholder="璇疯緭鍏ュ姞宸ヨ澶囧瀷鍙�"></a-input> + </a-form-model-item> + </a-col> + <a-col :span="12"> + <a-form-model-item label="鍔犲伐璁惧绫诲瀷"> + <a-input v-model="model.processingEquipmentOs" placeholder="璇疯緭鍏ュ姞宸ヨ澶囩被鍨�"></a-input> </a-form-model-item> </a-col> </a-row> @@ -70,6 +87,11 @@ export default { name: 'ProcessModalForm', components: {}, + props: { + allDeviceList: { + type: Array + } + }, data() { return { model: { @@ -109,6 +131,7 @@ created() { //澶囦唤model鍘熷鍊� this.modelDefault = JSON.parse(JSON.stringify(this.model)) + this.$bus.$on('sendAllDeviceList', deviceList => this.deviceList = deviceList) }, methods: { add(params) { diff --git a/src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepInfo.vue b/src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepInfo.vue index ceb18bb..d4649d5 100644 --- a/src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepInfo.vue +++ b/src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepInfo.vue @@ -2,11 +2,16 @@ <a-descriptions bordered :size="size"> <a-descriptions-item label="宸ユ鍚嶇О">{{currentLevelDetails.stepName}}</a-descriptions-item> <a-descriptions-item label="宸ユ鍙�">{{currentLevelDetails.stepCode}}</a-descriptions-item> - <a-descriptions-item label="宸ヨ壓缂栧彿 ">{{currentLevelDetails.craftNo}}</a-descriptions-item> <a-descriptions-item label="宸ユ绫诲瀷">{{currentLevelDetails.stepType}}</a-descriptions-item> + <a-descriptions-item label="鍔犲伐璁惧鍨嬪彿">{{currentLevelDetails.processingEquipmentModel}}</a-descriptions-item> + <a-descriptions-item label="鍔犲伐璁惧绫诲瀷">{{currentLevelDetails.processingEquipmentOs}}</a-descriptions-item> <a-descriptions-item label="鍔犲伐璁惧缂栧彿">{{currentLevelDetails.deviceNo}}</a-descriptions-item> <a-descriptions-item label="宸ヨ缂栧彿">{{currentLevelDetails.assembleStep}}</a-descriptions-item> - <a-descriptions-item label="宸ヨ鍚嶇О ">{{currentLevelDetails.assembleName}}</a-descriptions-item> + <a-descriptions-item label="宸ヨ鍚嶇О " :span="2">{{currentLevelDetails.assembleName}}</a-descriptions-item> + <a-descriptions-item label="鍒涘缓浜�">{{currentLevelDetails.createName}}</a-descriptions-item> + <a-descriptions-item label="鍒涘缓鏃堕棿" :span="2">{{currentLevelDetails.createTime}}</a-descriptions-item> + <a-descriptions-item label="淇敼浜�">{{currentLevelDetails.updateName}}</a-descriptions-item> + <a-descriptions-item label="淇敼鏃堕棿" :span="2">{{currentLevelDetails.updateTime}}</a-descriptions-item> <a-descriptions-item label="鎻忚堪" :span="3">{{currentLevelDetails.description}}</a-descriptions-item> </a-descriptions> </template> diff --git a/src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepModal.vue b/src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepModal.vue index c430569..5456b2f 100644 --- a/src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepModal.vue +++ b/src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepModal.vue @@ -8,11 +8,12 @@ @ok="handleOk" @cancel="handleCancel" cancelText="鍏抽棴"> - <ProcessStepModalForm ref="realForm" @ok="submitCallback"/> + <ProcessStepModalForm ref="realForm" @ok="submitCallback" :allDeviceList="allDeviceList"/> </j-modal> </template> <script> + import dncApi from '@/api/dnc' import ProcessStepModalForm from './ProcessStepModalForm.vue' export default { @@ -25,11 +26,19 @@ type: Object } }, + watch: { + visible: { + handler(value) { + if (value) this.getAllDeviceListByApi() + } + } + }, data() { return { title: '', width: 700, visible: false, + allDeviceList: [], isAddNextLevel: false // 鏄惁涓烘坊鍔犱笅绾э紝浣滀负鏍戣妭鐐规槸鍚﹀睍寮�鐨勫垽鏂� } }, @@ -37,6 +46,13 @@ this.$bus.$on('treeMenuItemMethodTrigger', this.triggerCorrespondingMethod) }, methods: { + getAllDeviceListByApi() { + dncApi.getAllDeviceListApi() + .then(res => { + if (res.success) this.allDeviceList = res.list + }) + }, + /** * 鐐瑰嚮宸ュ簭鍒涘缓宸ュ簭涓嬬骇宸ユ */ diff --git a/src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepModalForm.vue b/src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepModalForm.vue index d6982b6..8fcebaf 100644 --- a/src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepModalForm.vue +++ b/src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepModalForm.vue @@ -17,23 +17,28 @@ <a-row> <a-col :span="24"> <a-form-model-item label="鍔犲伐璁惧缂栧彿" :labelCol="labelColLong" :wrapperCol="wrapperColLong"> - <a-select v-model="model.deviceNo" placeholder="璇烽�夋嫨鍔犲伐璁惧缂栧彿"></a-select> + <a-select v-model="model.deviceNo" placeholder="璇烽�夋嫨鍔犲伐璁惧缂栧彿"> + <a-select-option v-for="item in allDeviceList" :key="item.deviceId"> + {{item.deviceId}} + </a-select-option> + </a-select> </a-form-model-item> </a-col> </a-row> <a-row> <a-col :span="12"> - <a-form-model-item label="宸ヨ壓缂栧彿"> - <a-input v-model="model.craftNo" placeholder="璇疯緭鍏ュ伐鑹虹紪鍙�"></a-input> + <a-form-model-item label="鍔犲伐璁惧鍨嬪彿"> + <a-input v-model="model.processingEquipmentModel" placeholder="璇疯緭鍏ュ姞宸ヨ澶囧瀷鍙�"></a-input> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="宸ヨ壓瑙勭▼鐗堟湰"> - <a-input v-model="model.craftVersion" placeholder="璇疯緭鍏ュ伐鑹鸿绋嬬増鏈�"></a-input> + <a-form-model-item label="鍔犲伐璁惧绫诲瀷"> + <a-input v-model="model.processingEquipmentOs" placeholder="璇疯緭鍏ュ姞宸ヨ澶囩被鍨�"></a-input> </a-form-model-item> </a-col> </a-row> + <a-row> <a-col :span="12"> @@ -70,6 +75,11 @@ export default { name: 'ProcessStepModalForm', components: {}, + props: { + allDeviceList: { + type: Array + } + }, data() { return { model: { diff --git a/src/views/dnc/base/modules/ProductStructure/Product/ProductInfo.vue b/src/views/dnc/base/modules/ProductStructure/Product/ProductInfo.vue index da4feb0..f8ea01c 100644 --- a/src/views/dnc/base/modules/ProductStructure/Product/ProductInfo.vue +++ b/src/views/dnc/base/modules/ProductStructure/Product/ProductInfo.vue @@ -3,9 +3,9 @@ <a-descriptions-item label="浜у搧鍚嶇О">{{currentLevelDetails.productName}}</a-descriptions-item> <a-descriptions-item label="浜у搧鍨嬪彿">{{currentLevelDetails.productModel}}</a-descriptions-item> <a-descriptions-item label="浜у搧浠g爜 ">{{currentLevelDetails.productNo}}</a-descriptions-item> - <a-descriptions-item label="鍒涘缓浜�">{{currentLevelDetails.createUser_dicText}}</a-descriptions-item> + <a-descriptions-item label="鍒涘缓浜�">{{currentLevelDetails.createName}}</a-descriptions-item> <a-descriptions-item label="鍒涘缓鏃堕棿" :span="2">{{currentLevelDetails.createTime}}</a-descriptions-item> - <a-descriptions-item label="淇敼浜�">{{currentLevelDetails.updateUser_dicText}}</a-descriptions-item> + <a-descriptions-item label="淇敼浜�">{{currentLevelDetails.updateName}}</a-descriptions-item> <a-descriptions-item label="淇敼鏃堕棿" :span="2">{{currentLevelDetails.updateTime}}</a-descriptions-item> </a-descriptions> </template> diff --git a/src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue b/src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue index 5774215..c3a67b5 100644 --- a/src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue +++ b/src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue @@ -1,28 +1,29 @@ <template> - <a-tabs style="height: 100%" v-model="activeTabKey" v-if="Object.keys(currentLevelInfo).length>0"> + <a-tabs style="height: 100%" v-model="activeTabKey" v-if="Object.keys(currentLevelInfo).length>0" + @change="handleTabChange"> <a-tab-pane :key="1" tab="浜у搧灞炴��" v-if="currentLevelInfo.type===1"> - <ProductInfo :currentLevelDetails="currentLevelInfo.entity" :size="descriptionsContainerSize"/> + <ProductInfo :currentLevelDetails="currentLevelInfo.entity" :size="containerSize"/> </a-tab-pane> <a-tab-pane :key="1" tab="閮ㄤ欢灞炴��" v-if="currentLevelInfo.type===2"> - <ComponentInfo :currentLevelDetails="currentLevelInfo.entity" :size="descriptionsContainerSize"/> + <ComponentInfo :currentLevelDetails="currentLevelInfo.entity" :size="containerSize"/> </a-tab-pane> <a-tab-pane :key="1" tab="闆朵欢灞炴��" v-if="currentLevelInfo.type===3"> - <PartInfo :currentLevelDetails="currentLevelInfo.entity" :size="descriptionsContainerSize"/> + <PartInfo :currentLevelDetails="currentLevelInfo.entity" :size="containerSize"/> </a-tab-pane> <a-tab-pane :key="1" tab="宸ュ簭灞炴��" v-if="currentLevelInfo.type===5"> - <ProcessInfo :currentLevelDetails="currentLevelInfo.entity" :size="descriptionsContainerSize"/> + <ProcessInfo :currentLevelDetails="currentLevelInfo.entity" :size="containerSize"/> </a-tab-pane> <a-tab-pane :key="1" tab="宸ユ灞炴��" v-if="currentLevelInfo.type===6"> - <ProcessStepInfo :currentLevelDetails="currentLevelInfo.entity" :size="descriptionsContainerSize"/> + <ProcessStepInfo :currentLevelDetails="currentLevelInfo.entity" :size="containerSize"/> </a-tab-pane> <template v-if="currentLevelInfo.hasOwnProperty('attributionType')"> <a-tab-pane :key="1" tab="鏂囨。灞炴��"> - <DocumentInfo :currentLevelDetails="currentLevelInfo" :size="descriptionsContainerSize"/> + <DocumentInfo :currentLevelDetails="currentLevelInfo" :size="containerSize"/> </a-tab-pane> <a-tab-pane :key="2" tab="棰勮"> @@ -30,11 +31,12 @@ </a-tab-pane> <a-tab-pane :key="3" tab="鏂囨。鐗堟湰"> - <DocumentVersionTableList/> + <DocumentVersionTableList ref="documentVersionTableRef" :currentDocumentInfo="currentLevelInfo" + :size="containerSize"/> </a-tab-pane> <a-tab-pane :key="4" tab="浣跨敤璁惧" v-if="currentLevelInfo.attributionType===5"> - <UseDocumentEquipmentTableList/> + <UseDocumentEquipmentTableList ref="useDocumentEquipmentTableRef"/> </a-tab-pane> </template> </a-tabs> @@ -65,13 +67,15 @@ data() { return { activeTabKey: 1, - descriptionsContainerSize: 'small', - currentLevelInfo: {} + containerSize: 'small', + currentLevelInfo: {}, + hasLoadedDataTabKeyArray: [] } }, created() { - this.$bus.$on('sendCurrentLevelInfo', this.receiveCurrentLevelInfo) + this.$bus.$on('sendCurrentClickedDocumentInfo', this.receiveCurrentLevelInfo) this.$bus.$on('sendCurrentTreeNodeInfo', this.receiveCurrentLevelInfo) + this.$bus.$on('reloadMainBottomTableData', this.reloadMainBottomTableData) }, methods: { /** @@ -80,7 +84,23 @@ */ receiveCurrentLevelInfo(levelInfo) { this.currentLevelInfo = levelInfo - if (levelInfo.attributionType) this.activeTabKey = 1 + this.activeTabKey = 1 + this.hasLoadedDataTabKeyArray = [] + }, + + handleTabChange(activeTabKey) { + if (!this.hasLoadedDataTabKeyArray.includes(activeTabKey)) { + if (activeTabKey === 3) { + this.$nextTick(() => this.$refs.documentVersionTableRef.loadData()) + } else if (activeTabKey === 4) { + this.$nextTick(() => this.$refs.useDocumentEquipmentTableRef.loadData()) + } + this.hasLoadedDataTabKeyArray.push(activeTabKey) + } + }, + + reloadMainBottomTableData(tableName) { + if (this.$refs[tableName + 'TableRef']) this.$refs[tableName + 'TableRef'].loadData() } } } diff --git a/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue b/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue index 3619a9b..0847514 100644 --- a/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue +++ b/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue @@ -34,7 +34,7 @@ }, created() { this.$bus.$on('sendCurrentTreeNodeInfo', this.receiveCurrentTreeNodeInfo) - this.$bus.$on('importFileSuccess', this.reloadDocumentListData) + this.$bus.$on('reloadDocumentListData', this.reloadDocumentListData) this.$bus.$on('tableMenuItemMethodTrigger', this.triggerCorrespondingMethod) }, methods: { @@ -204,6 +204,7 @@ .then(res => { if (res.success) { this.reloadDocumentListData({ docClassCode: param, attributionId }) + this.$bus.$emit('reloadMainBottomTableData', 'documentVersion') that.$notification.success({ message: '娑堟伅', description: res.message diff --git a/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue b/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue index 2930dd4..328e26f 100644 --- a/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue +++ b/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue @@ -23,8 +23,8 @@ </div> <!--浜у搧缁撴瀯鏍�--> - <div class="" style="flex: 1;overflow:auto;margin-top: 10px"> - <a-tree ref="tree" show-icon :checkStrictly="checkStrictly" :expandedKeys.sync="expandedKeys" + <div style="flex: 1;overflow:auto;margin-top: 10px"> + <a-tree ref="tree" show-icon :expandedKeys.sync="expandedKeys" :selectedKeys="selectedKeys" :treeData="treeDataSource" :autoExpandParent="autoExpandParent" @select="handleTreeSelect" @expand="handleTreeExpand" @rightClick="handleTreeRightClick"> <template slot="title" slot-scope="{ label, parentId, entity, key:treeKey,type}"> @@ -106,7 +106,6 @@ this.loading = true this.cardLoading = true dncApi.getProductStructureTreeApi().then(res => { - console.log('res', res) if (res.success) { this.dataList = [] this.allTreeKeys = [] diff --git a/src/views/dnc/common/ImportFileModal.vue b/src/views/dnc/common/ImportFileModal.vue index 6dd4ce0..d5d1af0 100644 --- a/src/views/dnc/common/ImportFileModal.vue +++ b/src/views/dnc/common/ImportFileModal.vue @@ -49,7 +49,7 @@ /** * 鐐瑰嚮瀵煎叆鏂囨。鎴朜C绋嬪簭鏃惰Е鍙� * @param treeNodeInfo 鐐瑰嚮鏍戣妭鐐瑰彸閿彍鍗曞鍏ョ▼搴忔椂浼犲叆鏍戣妭鐐逛俊鎭� - * @param tableRowInfo 鐐瑰嚮琛ㄦ牸琛屽彸閿彍鍗曞鍏ョ▼搴忔椂浼犲叆琛屼俊鎭� + * @param tableRowInfo 鍙抽敭琛ㄦ牸琛屾椂浼犲叆琛屼俊鎭� */ handleImport(treeNodeInfo, tableRowInfo) { this.isUploadMultiple = true @@ -69,6 +69,11 @@ this.visible = true }, + /** + * 鐐瑰嚮鏂囨。鐢熷懡鍛ㄦ湡鐨勫叆搴撴椂瑙﹀彂 + * @param _ + * @param tableRowInfo 鍙抽敭琛ㄦ牸琛屾椂浼犲叆琛屼俊鎭� + */ handlePush(_, tableRowInfo) { this.isUploadMultiple = false console.log('tableRowInfo', tableRowInfo) @@ -80,22 +85,21 @@ this.visible = true }, - handleRemove(file) { - const index = this.fileList.indexOf(file) - const newFileList = this.fileList.slice() - newFileList.splice(index, 1) - this.fileList = newFileList - }, - + /** + * 閫夋嫨濂芥枃浠剁偣鍑荤‘瀹氬悗 + * @param file 鏂囦欢瀵硅薄 + */ beforeUpload(file) { if (this.isUploadMultiple) { if (!this.fileList.find(item => item.name === file.name)) this.fileList = [...this.fileList, file] - } else { - this.fileList.splice(0, 1, file) } + else this.fileList.splice(0, 1, file) return false }, + /** + * 鐐瑰嚮涓婁紶鑷虫湇鍔″櫒鎸夐挳鏃惰Е鍙� + */ handleUpload() { const { fileList, $notification, isUploadMultiple, uploadParams, $bus } = this this.uploading = true @@ -144,8 +148,11 @@ if (uploadedFileCount === fileList.length) { // 鑷冲皯鏈変竴涓枃浠朵笂浼犳垚鍔熷悗灏遍渶瑕侀噸鏂板姞杞芥枃妗e垪琛� if (uploadSuccessFileCount > 0) { - $bus.$emit('importFileSuccess', uploadParams) - if (!isUploadMultiple) this.visible = false //鏃犳硶杩炵画鍏ュ簱澶氫釜鐗堟湰鍥犳鍏ュ簱鎴愬姛鍚庡嵆鍙��鍑虹獥鍙� + $bus.$emit('reloadDocumentListData', uploadParams) + if (!isUploadMultiple) { + $bus.$emit('reloadMainBottomTableData', 'documentVersion') + this.visible = false //鏃犳硶杩炵画鍏ュ簱澶氫釜鐗堟湰鍥犳鍏ュ簱鎴愬姛鍚庡嵆鍙��鍑虹獥鍙� + } } this.uploading = false } @@ -154,6 +161,17 @@ }, /** + * 鍒犻櫎鏂囦欢鍒楄〃椤规椂瑙﹀彂 + * @param file 鏂囦欢瀵硅薄 + */ + handleRemove(file) { + const index = this.fileList.indexOf(file) + const newFileList = this.fileList.slice() + newFileList.splice(index, 1) + this.fileList = newFileList + }, + + /** * 鎺у埗鏂囦欢涓婁紶绐楀彛鍏抽棴骞舵竻绌烘枃浠跺垪琛� */ handleModalClose() { -- Gitblit v1.9.3