From 28fcbc85bcb8be593f57cbf232968c30d31e8e86 Mon Sep 17 00:00:00 2001 From: zhaowei <zhaowei> Date: 星期二, 18 三月 2025 10:36:48 +0800 Subject: [PATCH] 1、DNC结构树页面解决因keep-alive标签缓存组件后切换路由无法正常销毁组件从而使组件内事件通过$bus重复调用的问题 2、DNC产品结构树页面工艺规程版本层级下可以导入和挂载其它文档并且展示相关属性信息 3、DNC设备结构树设备的层级由2调整到7并且调整层级影响的相关功能 --- src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue | 4 src/views/dnc/base/modules/ProductStructure/ProductStructureTreeContextMenu.vue | 3 src/views/dnc/base/modules/DeviceStructure/DeviceStructureTreeContextMenu.vue | 4 src/views/dnc/base/modules/DeviceStructure/Document/HasReceivedDocumentTableList.vue | 7 src/views/dnc/base/modules/ProductStructure/ProcessSpecVersion/ProcessSpecVersionInfo.vue | 36 ++ src/views/dnc/base/modules/DeviceStructure/Document/HasSentDocumentTableList.vue | 7 src/api/dnc.js | 2 src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModal.vue | 2 src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue | 26 + src/views/dnc/base/modules/DeviceStructure/DeviceStructureMainTop.vue | 715 +++++++++++++++++++++++++------------------------- src/views/dnc/base/modules/DeviceStructure/DeviceStructureTree.vue | 5 src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue | 11 src/views/dnc/base/modules/DeviceStructure/DeviceStructureMain.vue | 4 src/views/dnc/common/DocumentInfo.vue | 12 14 files changed, 459 insertions(+), 379 deletions(-) diff --git a/src/api/dnc.js b/src/api/dnc.js index 4875d2a..7945af3 100644 --- a/src/api/dnc.js +++ b/src/api/dnc.js @@ -28,7 +28,7 @@ // 鎸囨淳鏂囨。鍒拌澶� assignDocumentToDeviceApi: params => postAction('/nc/activit/assign/file/apply', params), // 涓嬭浇鏂囨。 - downloadDocumentApi: ({ docId, docName }) => downloadFile(`/nc/doc/download/${docId}`, docName), + downloadDocumentApi: ({ docId, docName }) => requestGetDownLoad(`/nc/doc/download/${docId}`, docName), // 鍒犻櫎鏂囨。 deleteDocumentApi: docId => deleteAction(`/nc/doc/delete?id=${docId}`), // 鏂囨。鍑哄簱 diff --git a/src/views/dnc/base/modules/DeviceStructure/DeviceStructureMain.vue b/src/views/dnc/base/modules/DeviceStructure/DeviceStructureMain.vue index 3014644..259d088 100644 --- a/src/views/dnc/base/modules/DeviceStructure/DeviceStructureMain.vue +++ b/src/views/dnc/base/modules/DeviceStructure/DeviceStructureMain.vue @@ -3,12 +3,12 @@ <template v-if="+currentTreeNodeInfo.type===2"> <div style="height: 100%;max-height: 748px"> <!--浜у搧缁撴瀯鏍戝彸渚ч《閮ㄥ尯鍩�--> - <div style="height: 45%;overflow: hidden"> + <div style="height: 55%;overflow: hidden"> <DeviceStructureMainTop :size="containerSize" ref="mainTopRef" :currentTreeNodeInfo="currentTreeNodeInfo"/> </div> <!--浜у搧缁撴瀯鏍戝彸渚у簳閮ㄥ尯鍩�--> - <div style="height: 55%;overflow: hidden"> + <div style="height: 45%;overflow: hidden"> <DeviceStructureMainBottom :size="containerSize" :currentTreeNodeInfo="currentTreeNodeInfo"/> </div> </div> diff --git a/src/views/dnc/base/modules/DeviceStructure/DeviceStructureMainTop.vue b/src/views/dnc/base/modules/DeviceStructure/DeviceStructureMainTop.vue index cfaa481..bdca851 100644 --- a/src/views/dnc/base/modules/DeviceStructure/DeviceStructureMainTop.vue +++ b/src/views/dnc/base/modules/DeviceStructure/DeviceStructureMainTop.vue @@ -4,11 +4,13 @@ v-if="Object.keys(currentTreeNodeInfo).length!==0"> <a-tab-pane :key="1" tab="鍙戦��"> <HasSentDocumentTableList ref="hasSentDocumentTableListRef" :currentTreeNodeInfo="currentTreeNodeInfo" + :currentTypeOfDevice="currentTypeOfDevice" @handleTableContextMenuOpen="handleTableContextMenuOpen" :size="tableContainerSize"/> </a-tab-pane> <a-tab-pane :key="2" tab="鎺ユ敹"> <HasReceivedDocumentTableList ref="hasReceivedDocumentTableListRef" :currentTreeNodeInfo="currentTreeNodeInfo" + :currentTypeOfDevice="currentTypeOfDevice" @handleTableContextMenuOpen="handleTableContextMenuOpen" :size="tableContainerSize"/> </a-tab-pane> @@ -22,403 +24,408 @@ </template> <script> - import dncApi from '@/api/dnc' - import TableContextMenu from '../../../common/TableContextMenu' - import HasSentDocumentTableList from './Document/HasSentDocumentTableList' - import HasReceivedDocumentTableList from './Document/HasReceivedDocumentTableList' - import DocumentBatchDeleteModal from '../../../common/DocumentBatchDeleteModal' +import dncApi from '@/api/dnc' +import TableContextMenu from '../../../common/TableContextMenu' +import HasSentDocumentTableList from './Document/HasSentDocumentTableList' +import HasReceivedDocumentTableList from './Document/HasReceivedDocumentTableList' +import DocumentBatchDeleteModal from '../../../common/DocumentBatchDeleteModal' - export default { - name: 'DeviceStructureMainTop', - components: { DocumentBatchDeleteModal, HasReceivedDocumentTableList, HasSentDocumentTableList, TableContextMenu }, - props: { - currentTreeNodeInfo: { - type: Object - } +export default { + name: 'DeviceStructureMainTop', + components: { DocumentBatchDeleteModal, HasReceivedDocumentTableList, HasSentDocumentTableList, TableContextMenu }, + props: { + currentTreeNodeInfo: { + type: Object + } + }, + data() { + return { + activeTabKey: 1, + tableContainerSize: 'small', + currentTypeOfDevice: 7,// 浜у搧缁撴瀯鏍戜腑瀹氫箟鐨勮澶囧眰绾ype涓�7 + currentRightClickedTableRowInfo: {}, + hasLoadedDataTabKeyArray: [] + } + }, + created() { + this.$bus.$on('reloadDocumentListData', this.reloadDocumentListData) + this.$bus.$on('tableMenuItemMethodTrigger', this.triggerCorrespondingMethod) + }, + beforeDestroy() { + this.$bus.$off('reloadDocumentListData', this.reloadDocumentListData) + this.$bus.$off('tableMenuItemMethodTrigger', this.triggerCorrespondingMethod) + }, + methods: { + /** + * 鎺у埗鍙抽敭鑿滃崟寮�鍚� + * @param record 褰撳墠琛ㄦ牸琛屼俊鎭� + */ + handleTableContextMenuOpen(record) { + this.currentRightClickedTableRowInfo = Object.assign({}, record) + this.$refs.tableContextMenuRef.currentMenuLevel = record.param + this.$refs.tableContextMenuRef.menuStyle.top = event.clientY + 'px' + this.$refs.tableContextMenuRef.menuStyle.left = event.clientX + 'px' + this.$refs.tableContextMenuRef.menuVisible = true + document.body.addEventListener('click', this.handleMenuClose) }, - data() { - return { - activeTabKey: 1, - tableContainerSize: 'small', - currentRightClickedTableRowInfo: {}, - hasLoadedDataTabKeyArray: [] - } - }, - created() { - this.$bus.$on('reloadDocumentListData', this.reloadDocumentListData) - this.$bus.$on('tableMenuItemMethodTrigger', this.triggerCorrespondingMethod) - }, - methods: { - /** - * 鎺у埗鍙抽敭鑿滃崟寮�鍚� - * @param record 褰撳墠琛ㄦ牸琛屼俊鎭� - */ - handleTableContextMenuOpen(record) { - this.currentRightClickedTableRowInfo = Object.assign({}, record) - this.$refs.tableContextMenuRef.currentMenuLevel = record.param - this.$refs.tableContextMenuRef.menuStyle.top = event.clientY + 'px' - this.$refs.tableContextMenuRef.menuStyle.left = event.clientX + 'px' - this.$refs.tableContextMenuRef.menuVisible = true - document.body.addEventListener('click', this.handleMenuClose) - }, - /** - * 褰撴爲缁勪欢閫変腑璁惧灞傜骇鑺傜偣鏃惰Е鍙戣幏鍙栧凡鍙戦�佹枃妗e垪琛� - * @param treeNodeInfo 鏍戣妭鐐逛俊鎭� - */ - loadHasSentDocumentListData(treeNodeInfo) { - this.$nextTick(() => { - if (this.$refs.hasSentDocumentTableListRef) { - this.$refs.hasSentDocumentTableListRef.loadData(1) - this.hasLoadedDataTabKeyArray.push(this.activeTabKey) - } - }) - }, - - /** - * tab鏍囩鍒囨崲鏃惰Е鍙� - * @param activeTabKey 褰撳墠宸叉縺娲籺ab鐨刱ey - */ - handleTabChange(activeTabKey) { - this.$bus.$emit('handleSwitchDeviceDocClassCode', activeTabKey) - if (activeTabKey && !this.hasLoadedDataTabKeyArray.includes(activeTabKey)) { - if (activeTabKey === 1) { - this.$nextTick(() => { - if (this.$refs.hasSentDocumentTableListRef) this.$refs.hasSentDocumentTableListRef.loadData(1) - }) - } else { - this.$nextTick(() => { - if (this.$refs.hasReceivedDocumentTableListRef) this.$refs.hasReceivedDocumentTableListRef.loadData(1) - }) - } - this.hasLoadedDataTabKeyArray.push(activeTabKey) + /** + * 褰撴爲缁勪欢閫変腑璁惧灞傜骇鑺傜偣鏃惰Е鍙戣幏鍙栧凡鍙戦�佹枃妗e垪琛� + * @param treeNodeInfo 鏍戣妭鐐逛俊鎭� + */ + loadHasSentDocumentListData(treeNodeInfo) { + this.$nextTick(() => { + if (this.$refs.hasSentDocumentTableListRef) { + this.$refs.hasSentDocumentTableListRef.loadData(1) + this.hasLoadedDataTabKeyArray.push(this.activeTabKey) } - }, + }) + }, - /** - * 鏂囨。浠ュ強NC绋嬪簭瀵煎叆/鍑哄簱/鍏ュ簱/鍒犻櫎鎴愬姛鍚庤Е鍙戦噸鏂板姞杞芥枃妗e垪琛� - * @param docClassCode 鏂囨。绫诲埆 - * @param attributionId 鑺傜偣Id - */ - reloadDocumentListData({ docClassCode, attributionId }) { - // 濡傛灉涓婁紶鐨勬枃妗d笉鏄墍灞炰簬褰撳墠鎵�灞曠ず鑺傜偣鐨勬枃妗e垯涓嶉噸鏂拌幏鍙栨枃妗e垪琛� - if (this.currentTreeNodeInfo.key !== attributionId) return - if (docClassCode === 'SEND') { - if (this.$refs.hasSentDocumentTableListRef) this.$refs.hasSentDocumentTableListRef.loadData(1) - } else { - if (this.$refs.hasReceivedDocumentTableListRef) this.$refs.hasReceivedDocumentTableListRef.loadData(1) - } - }, - - // 涓嬭浇褰撳墠鍙抽敭閫変腑鏂囨。 - handleDownload() { - const that = this - const { docId, docName } = this.currentRightClickedTableRowInfo - dncApi.downloadDocumentApi({ docId, docName }) - .then(res => { - if (res && !res.success) { - that.$notification.error({ - message: '娑堟伅', - description: res.message - }) - } + /** + * tab鏍囩鍒囨崲鏃惰Е鍙� + * @param activeTabKey 褰撳墠宸叉縺娲籺ab鐨刱ey + */ + handleTabChange(activeTabKey) { + this.$bus.$emit('handleSwitchDeviceDocClassCode', activeTabKey) + if (activeTabKey && !this.hasLoadedDataTabKeyArray.includes(activeTabKey)) { + if (activeTabKey === 1) { + this.$nextTick(() => { + if (this.$refs.hasSentDocumentTableListRef) this.$refs.hasSentDocumentTableListRef.loadData(1) }) - .catch(err => { + } else { + this.$nextTick(() => { + if (this.$refs.hasReceivedDocumentTableListRef) this.$refs.hasReceivedDocumentTableListRef.loadData(1) + }) + } + this.hasLoadedDataTabKeyArray.push(activeTabKey) + } + }, + + /** + * 鏂囨。浠ュ強NC绋嬪簭瀵煎叆/鍑哄簱/鍏ュ簱/鍒犻櫎鎴愬姛鍚庤Е鍙戦噸鏂板姞杞芥枃妗e垪琛� + * @param docClassCode 鏂囨。绫诲埆 + * @param attributionId 鑺傜偣Id + */ + reloadDocumentListData({ docClassCode, attributionId }) { + // 濡傛灉涓婁紶鐨勬枃妗d笉鏄墍灞炰簬褰撳墠鎵�灞曠ず鑺傜偣鐨勬枃妗e垯涓嶉噸鏂拌幏鍙栨枃妗e垪琛� + if (this.currentTreeNodeInfo.key !== attributionId) return + if (docClassCode === 'SEND') { + if (this.$refs.hasSentDocumentTableListRef) this.$refs.hasSentDocumentTableListRef.loadData(1) + } else { + if (this.$refs.hasReceivedDocumentTableListRef) this.$refs.hasReceivedDocumentTableListRef.loadData(1) + } + }, + + // 涓嬭浇褰撳墠鍙抽敭閫変腑鏂囨。 + handleDownload() { + const that = this + const { docId, docName } = this.currentRightClickedTableRowInfo + dncApi.downloadDocumentApi({ docId, docName }) + .then(res => { + if (res && !res.success) { that.$notification.error({ message: '娑堟伅', - description: err.message + description: res.message }) + } + }) + .catch(err => { + that.$notification.error({ + message: '娑堟伅', + description: err.message }) - }, - - // 鍒犻櫎褰撳墠鍙抽敭閫変腑鏂囨。 - handleDelete() { - const { docId, param, attributionId } = this.currentRightClickedTableRowInfo - const that = this - that.$confirm({ - title: '鎻愮ず', - content: `鍒犻櫎鍚庝笉鍙彇娑堬紝纭鍒犻櫎鍚楋紵`, - okText: '纭', - cancelText: '鍙栨秷', - onOk: () => { - dncApi.deleteDeviceRelativeDocumentApi({ docId, attributionId }) - .then((res) => { - if (res.success) { - that.$notification.success({ - message: '娑堟伅', - description: res.message - }) - that.reloadDocumentListData({ docClassCode: param, attributionId }) - } else { - that.$notification.warning({ - message: '娑堟伅', - description: res.message - }) - } - }) - .finally(() => { - that.$destroyAll() - }) - }, - onCancel: () => { - that.$destroyAll() - } }) - }, + }, - /** - * 鐐瑰嚮鎵归噺鍒犻櫎鍚庡嚭鐜板脊绐� - * @param modalTitle 寮圭獥鏍囬 - */ - handleBatchRemove(modalTitle) { - if (!this.$refs.documentBatchDeleteModalRef) return - this.$refs.documentBatchDeleteModalRef.title = modalTitle - this.$refs.documentBatchDeleteModalRef.visible = true - }, + // 鍒犻櫎褰撳墠鍙抽敭閫変腑鏂囨。 + handleDelete() { + const { docId, param, attributionId } = this.currentRightClickedTableRowInfo + const that = this + that.$confirm({ + title: '鎻愮ず', + content: `鍒犻櫎鍚庝笉鍙彇娑堬紝纭鍒犻櫎鍚楋紵`, + okText: '纭', + cancelText: '鍙栨秷', + onOk: () => { + dncApi.deleteDeviceRelativeDocumentApi({ docId, attributionId }) + .then((res) => { + if (res.success) { + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + that.reloadDocumentListData({ docClassCode: param, attributionId }) + } else { + that.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + } + }) + .finally(() => { + that.$destroyAll() + }) + }, + onCancel: () => { + that.$destroyAll() + } + }) + }, - /** - * 鍑哄簱褰撳墠鍙抽敭閫変腑鏂囨。 - * @param menuLabel - */ - handlePull(menuLabel) { - const that = this - const { docId, docName, param, attributionId } = this.currentRightClickedTableRowInfo - that.$confirm({ - title: '鎻愮ず', - content: `纭${menuLabel}鍚楋紵`, - okText: '纭', - cancelText: '鍙栨秷', - onOk: () => { - dncApi.documentOutboundApi({ docId, docName }) - .then(res => { - console.log('res------------------', res) - if (res.success) { - this.reloadDocumentListData({ docClassCode: param, attributionId }) - that.$notification.success({ - message: '娑堟伅', - description: `${menuLabel}鎴愬姛` - }) - } else { - that.$notification.error({ - message: '娑堟伅', - description: res.message - }) - } - }) - .catch(err => { + /** + * 鐐瑰嚮鎵归噺鍒犻櫎鍚庡嚭鐜板脊绐� + * @param modalTitle 寮圭獥鏍囬 + */ + handleBatchRemove(modalTitle) { + if (!this.$refs.documentBatchDeleteModalRef) return + this.$refs.documentBatchDeleteModalRef.title = modalTitle + this.$refs.documentBatchDeleteModalRef.visible = true + }, + + /** + * 鍑哄簱褰撳墠鍙抽敭閫変腑鏂囨。 + * @param menuLabel + */ + handlePull(menuLabel) { + const that = this + const { docId, docName, param, attributionId } = this.currentRightClickedTableRowInfo + that.$confirm({ + title: '鎻愮ず', + content: `纭${menuLabel}鍚楋紵`, + okText: '纭', + cancelText: '鍙栨秷', + onOk: () => { + dncApi.documentOutboundApi({ docId, docName }) + .then(res => { + console.log('res------------------', res) + if (res.success) { + this.reloadDocumentListData({ docClassCode: param, attributionId }) + that.$notification.success({ + message: '娑堟伅', + description: `${menuLabel}鎴愬姛` + }) + } else { that.$notification.error({ message: '娑堟伅', - description: err.message + description: res.message }) + } + }) + .catch(err => { + that.$notification.error({ + message: '娑堟伅', + description: err.message }) - .finally(() => { - that.$destroyAll() - }) - }, - onCancel: () => { - that.$destroyAll() - } - }) - }, + }) + .finally(() => { + that.$destroyAll() + }) + }, + onCancel: () => { + that.$destroyAll() + } + }) + }, - /** - * 鍙戝竷褰撳墠鍙抽敭閫変腑鏂囨。 - * @param menuLabel - */ - handleCancelPull(menuLabel) { - const that = this - const { docId, param, attributionId } = this.currentRightClickedTableRowInfo - that.$confirm({ - title: '鎻愮ず', - content: `纭${menuLabel}鍚楋紵`, - okText: '纭', - cancelText: '鍙栨秷', - onOk: () => { - dncApi.documentCancelOutboundApi(docId) - .then(res => { - if (res.success) { - this.reloadDocumentListData({ docClassCode: param, attributionId }) - that.$notification.success({ - message: '娑堟伅', - description: res.message - }) - } else { - that.$notification.error({ - message: '娑堟伅', - description: res.message - }) - } - }) - .catch(err => { + /** + * 鍙戝竷褰撳墠鍙抽敭閫変腑鏂囨。 + * @param menuLabel + */ + handleCancelPull(menuLabel) { + const that = this + const { docId, param, attributionId } = this.currentRightClickedTableRowInfo + that.$confirm({ + title: '鎻愮ず', + content: `纭${menuLabel}鍚楋紵`, + okText: '纭', + cancelText: '鍙栨秷', + onOk: () => { + dncApi.documentCancelOutboundApi(docId) + .then(res => { + if (res.success) { + this.reloadDocumentListData({ docClassCode: param, attributionId }) + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + } else { that.$notification.error({ message: '娑堟伅', - description: err.message + description: res.message }) + } + }) + .catch(err => { + that.$notification.error({ + message: '娑堟伅', + description: err.message }) - .finally(() => { - that.$destroyAll() - }) - }, - onCancel: () => { - that.$destroyAll() - } - }) - }, + }) + .finally(() => { + that.$destroyAll() + }) + }, + onCancel: () => { + that.$destroyAll() + } + }) + }, - /** - * 鐐瑰嚮鍙戝竷鏃惰Е鍙戝綋鍓嶆枃妗e彂甯� - * @param menuLabel - */ - handlePublish(menuLabel) { - const that = this - const { docId, param, attributionId } = this.currentRightClickedTableRowInfo - that.$confirm({ - title: '鎻愮ず', - content: `纭${menuLabel}鍚楋紵`, - okText: '纭', - cancelText: '鍙栨秷', - onOk: () => { - dncApi.documentPublishApi(docId) - .then(res => { - if (res.success) { - this.reloadDocumentListData({ docClassCode: param, attributionId }) - this.$bus.$emit('reloadMainBottomTableData', 'documentVersion') - that.$notification.success({ - message: '娑堟伅', - description: res.message - }) - } else { - that.$notification.error({ - message: '娑堟伅', - description: res.message - }) - } - }) - .catch(err => { + /** + * 鐐瑰嚮鍙戝竷鏃惰Е鍙戝綋鍓嶆枃妗e彂甯� + * @param menuLabel + */ + handlePublish(menuLabel) { + const that = this + const { docId, param, attributionId } = this.currentRightClickedTableRowInfo + that.$confirm({ + title: '鎻愮ず', + content: `纭${menuLabel}鍚楋紵`, + okText: '纭', + cancelText: '鍙栨秷', + onOk: () => { + dncApi.documentPublishApi(docId) + .then(res => { + if (res.success) { + this.reloadDocumentListData({ docClassCode: param, attributionId }) + this.$bus.$emit('reloadMainBottomTableData', 'documentVersion') + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + } else { that.$notification.error({ message: '娑堟伅', - description: err.message + description: res.message }) + } + }) + .catch(err => { + that.$notification.error({ + message: '娑堟伅', + description: err.message }) - .finally(() => { - that.$destroyAll() - }) - }, - onCancel: () => { - that.$destroyAll() - } - }) - }, + }) + .finally(() => { + that.$destroyAll() + }) + }, + onCancel: () => { + that.$destroyAll() + } + }) + }, - /** - * 閲嶆柊鍙戝竷褰撳墠鍙抽敭閫変腑鏂囨。骞堕噸鏂板彂甯冮��鍥炰笂涓�鏂囨。鐗堟湰 - * @param menuLabel - */ - handleRepublish(menuLabel) { - const that = this - const { docId, param, attributionId } = this.currentRightClickedTableRowInfo - that.$confirm({ - title: '鎻愮ず', - content: `纭${menuLabel}鍚楋紵`, - okText: '纭', - cancelText: '鍙栨秷', - onOk: () => { - dncApi.documentRepublishApi(docId) - .then(res => { - if (res.success) { - this.reloadDocumentListData({ docClassCode: param, attributionId }) - that.$notification.success({ - message: '娑堟伅', - description: res.message - }) - } else { - that.$notification.error({ - message: '娑堟伅', - description: res.message - }) - } - }) - .catch(err => { + /** + * 閲嶆柊鍙戝竷褰撳墠鍙抽敭閫変腑鏂囨。骞堕噸鏂板彂甯冮��鍥炰笂涓�鏂囨。鐗堟湰 + * @param menuLabel + */ + handleRepublish(menuLabel) { + const that = this + const { docId, param, attributionId } = this.currentRightClickedTableRowInfo + that.$confirm({ + title: '鎻愮ず', + content: `纭${menuLabel}鍚楋紵`, + okText: '纭', + cancelText: '鍙栨秷', + onOk: () => { + dncApi.documentRepublishApi(docId) + .then(res => { + if (res.success) { + this.reloadDocumentListData({ docClassCode: param, attributionId }) + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + } else { that.$notification.error({ message: '娑堟伅', - description: err.message + description: res.message }) + } + }) + .catch(err => { + that.$notification.error({ + message: '娑堟伅', + description: err.message }) - .finally(() => { - that.$destroyAll() - }) - }, - onCancel: () => { - that.$destroyAll() - } - }) - }, + }) + .finally(() => { + that.$destroyAll() + }) + }, + onCancel: () => { + that.$destroyAll() + } + }) + }, - /** - * 閲嶅綊妗e綋鍓嶅彸閿�変腑鏂囨。涓斿悗缁棤娉曠户缁彂甯冩垨褰掓。 - * @param menuLabel - */ - handlePigeonhole(menuLabel) { - const that = this - const { docId, param, attributionId } = this.currentRightClickedTableRowInfo - that.$confirm({ - title: '鎻愮ず', - content: `${menuLabel}鍚庝笉鍙彇娑堬紝纭${menuLabel}鍚楋紵`, - okText: '纭', - cancelText: '鍙栨秷', - onOk: () => { - dncApi.documentPigeonholeApi(docId) - .then(res => { - if (res.success) { - this.reloadDocumentListData({ docClassCode: param, attributionId }) - that.$notification.success({ - message: '娑堟伅', - description: res.message - }) - } else { - that.$notification.error({ - message: '娑堟伅', - description: res.message - }) - } - }) - .catch(err => { + /** + * 閲嶅綊妗e綋鍓嶅彸閿�変腑鏂囨。涓斿悗缁棤娉曠户缁彂甯冩垨褰掓。 + * @param menuLabel + */ + handlePigeonhole(menuLabel) { + const that = this + const { docId, param, attributionId } = this.currentRightClickedTableRowInfo + that.$confirm({ + title: '鎻愮ず', + content: `${menuLabel}鍚庝笉鍙彇娑堬紝纭${menuLabel}鍚楋紵`, + okText: '纭', + cancelText: '鍙栨秷', + onOk: () => { + dncApi.documentPigeonholeApi(docId) + .then(res => { + if (res.success) { + this.reloadDocumentListData({ docClassCode: param, attributionId }) + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + } else { that.$notification.error({ message: '娑堟伅', - description: err.message + description: res.message }) + } + }) + .catch(err => { + that.$notification.error({ + message: '娑堟伅', + description: err.message }) - .finally(() => { - that.$destroyAll() - }) - }, - onCancel: () => { - that.$destroyAll() - } - }) - }, + }) + .finally(() => { + that.$destroyAll() + }) + }, + onCancel: () => { + that.$destroyAll() + } + }) + }, - // 閲嶇疆tabKey骞朵笖閲婃斁鍔犺浇鏂囨。鍒楄〃鐨勬帴鍙� - releaseLoadDocumentListApi() { - this.hasLoadedDataTabKeyArray = [] - this.handleTabChange(this.activeTabKey) - }, + // 閲嶇疆tabKey骞朵笖閲婃斁鍔犺浇鏂囨。鍒楄〃鐨勬帴鍙� + releaseLoadDocumentListApi() { + this.hasLoadedDataTabKeyArray = [] + this.handleTabChange(this.activeTabKey) + }, - // 鎺у埗鍙抽敭鑿滃崟鍏抽棴 - handleMenuClose() { - this.$refs.tableContextMenuRef.menuVisible = false - document.body.removeEventListener('click', this.handleMenuClose) - }, + // 鎺у埗鍙抽敭鑿滃崟鍏抽棴 + handleMenuClose() { + this.$refs.tableContextMenuRef.menuVisible = false + document.body.removeEventListener('click', this.handleMenuClose) + }, - triggerCorrespondingMethod({ methodName, modalTitle }) { - if (this[methodName]) this[methodName](modalTitle) - } + triggerCorrespondingMethod({ methodName, modalTitle }) { + if (this[methodName]) this[methodName](modalTitle) } } +} </script> <style scoped> - /deep/ .ant-table-tbody .ant-table-row { - cursor: pointer; - } +/deep/ .ant-table-tbody .ant-table-row { + cursor: pointer; +} </style> \ No newline at end of file diff --git a/src/views/dnc/base/modules/DeviceStructure/DeviceStructureTree.vue b/src/views/dnc/base/modules/DeviceStructure/DeviceStructureTree.vue index fef8b3d..11ff894 100644 --- a/src/views/dnc/base/modules/DeviceStructure/DeviceStructureTree.vue +++ b/src/views/dnc/base/modules/DeviceStructure/DeviceStructureTree.vue @@ -78,6 +78,10 @@ this.$bus.$on('treeMenuItemMethodTrigger', this.triggerCorrespondingMethod) this.$bus.$on('handleSwitchDeviceDocClassCode', this.setCurrentDeviceDocClassCode) }, + beforeDestroy() { + this.$bus.$off('treeMenuItemMethodTrigger', this.triggerCorrespondingMethod) + this.$bus.$off('handleSwitchDeviceDocClassCode', this.setCurrentDeviceDocClassCode) + }, methods: { getTreeDataByApi() { this.loading = true @@ -119,7 +123,6 @@ this.$bus.$emit('sendDeviceTreeNodeInfo', this.currentSelected) if (selectedKeys.length === 0) return this.selectedKeys = selectedKeys - }, /** diff --git a/src/views/dnc/base/modules/DeviceStructure/DeviceStructureTreeContextMenu.vue b/src/views/dnc/base/modules/DeviceStructure/DeviceStructureTreeContextMenu.vue index 61f72e4..912ebd5 100644 --- a/src/views/dnc/base/modules/DeviceStructure/DeviceStructureTreeContextMenu.vue +++ b/src/views/dnc/base/modules/DeviceStructure/DeviceStructureTreeContextMenu.vue @@ -51,8 +51,8 @@ const { param } = this.treeParams const treeNodeInfo = Object.assign({}, this.treeParams, { param }) console.log('treeNodeInfo++++++++++++++++++++++++++++', treeNodeInfo) - if (treeNodeInfo.type === 2) treeNodeInfo.type = 4 - // 璁惧缁撴瀯鏍戣妭鐐逛腑鐨勮澶囧眰绾т负2锛屼絾鍦ㄤ骇鍝佺粨鏋勬爲涓皢璁惧灞傜骇鐨則ype璁剧疆涓�4锛屼负淇濊瘉涓や釜缁撴瀯鏍戝叡鐢ㄧ殑鏂规硶鑳芥甯歌繍琛岋紝鍥犳鍦ㄦ澶勫悓鏍疯缃负4 + if (treeNodeInfo.type === 2) treeNodeInfo.type = 7 + // 璁惧缁撴瀯鏍戣妭鐐逛腑鐨勮澶囧眰绾т负2锛屼絾鍦ㄤ骇鍝佺粨鏋勬爲涓皢璁惧灞傜骇鐨則ype璁剧疆涓�7锛屽洜姝ゅ湪姝ゅ璁剧疆涓�7 const menuKeyArray = menuKey.split('_') const isCommonMethod = this.defaultContextMenuList[level].find(item => item.code === menuKey).isCommonMethod // product_add => handleAdd 瑙﹀彂瀵瑰簲缁勪欢浜嬩欢 diff --git a/src/views/dnc/base/modules/DeviceStructure/Document/HasReceivedDocumentTableList.vue b/src/views/dnc/base/modules/DeviceStructure/Document/HasReceivedDocumentTableList.vue index 46d1425..64dbc46 100644 --- a/src/views/dnc/base/modules/DeviceStructure/Document/HasReceivedDocumentTableList.vue +++ b/src/views/dnc/base/modules/DeviceStructure/Document/HasReceivedDocumentTableList.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" @change="handleTableChange"> + :scroll="{y:265}" :customRow="customRow" :size="size" rowKey="docId" @change="handleTableChange"> </a-table> @@ -21,6 +21,9 @@ props: { currentTreeNodeInfo: { type: Object + }, + currentTypeOfDevice:{ + type:Number }, size: { type: String @@ -109,7 +112,7 @@ var params = this.getQueryParams()//鏌ヨ鏉′欢 console.log('currentTreeNodeInfo', this.currentTreeNodeInfo) params.attributionId = this.currentTreeNodeInfo.key - params.attributionType = 4 + params.attributionType = this.currentTypeOfDevice params.docClassCode = 'REC' if (!params) return false this.dataSource = [] diff --git a/src/views/dnc/base/modules/DeviceStructure/Document/HasSentDocumentTableList.vue b/src/views/dnc/base/modules/DeviceStructure/Document/HasSentDocumentTableList.vue index 46ab561..ff4f57e 100644 --- a/src/views/dnc/base/modules/DeviceStructure/Document/HasSentDocumentTableList.vue +++ b/src/views/dnc/base/modules/DeviceStructure/Document/HasSentDocumentTableList.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" @change="handleTableChange"> + :scroll="{y:265}" :customRow="customRow" :size="size" rowKey="docId" @change="handleTableChange"> </a-table> @@ -21,6 +21,9 @@ props: { currentTreeNodeInfo: { type: Object + }, + currentTypeOfDevice:{ + type:Number }, size: { type: String @@ -119,7 +122,7 @@ var params = this.getQueryParams()//鏌ヨ鏉′欢 console.log('currentTreeNodeInfo', this.currentTreeNodeInfo) params.attributionId = this.currentTreeNodeInfo.key - params.attributionType = 4 + params.attributionType = this.currentTypeOfDevice params.docClassCode = 'SEND' if (!params) return false this.dataSource = [] diff --git a/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModal.vue b/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModal.vue index 388f440..3e61670 100644 --- a/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModal.vue +++ b/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModal.vue @@ -69,8 +69,8 @@ }, triggerCorrespondingMethod({ methodName, modalTitle, treeNodeInfo, tableRowInfo }) { - console.log('瑙﹀彂鍙抽敭鑿滃崟') if (this[methodName]) { + console.log('瑙﹀彂鍙抽敭鑿滃崟') this.title = modalTitle this[methodName](treeNodeInfo, tableRowInfo) } diff --git a/src/views/dnc/base/modules/ProductStructure/ProcessSpecVersion/ProcessSpecVersionInfo.vue b/src/views/dnc/base/modules/ProductStructure/ProcessSpecVersion/ProcessSpecVersionInfo.vue new file mode 100644 index 0000000..fc15cd8 --- /dev/null +++ b/src/views/dnc/base/modules/ProductStructure/ProcessSpecVersion/ProcessSpecVersionInfo.vue @@ -0,0 +1,36 @@ +<template> + <a-descriptions bordered :size="size" :column="4"> + <a-descriptions-item label="宸ヨ壓瑙勭▼鐗堟湰鍙�" :span="2">{{ currentLevelDetails.processSpecVersionCode }} + </a-descriptions-item> + <a-descriptions-item label="宸ヨ壓瑙勭▼鐗堟湰鍚嶇О" :span="2">{{ currentLevelDetails.processSpecVersionName }} + </a-descriptions-item> + <a-descriptions-item label="鍒涘缓浜�">{{ currentLevelDetails.createBy_dictText }}</a-descriptions-item> + <a-descriptions-item label="鍒涘缓鏃堕棿">{{ currentLevelDetails.createTime }}</a-descriptions-item> + <a-descriptions-item label="淇敼浜�">{{ currentLevelDetails.updateBy_dictText }}</a-descriptions-item> + <a-descriptions-item label="淇敼鏃堕棿">{{ currentLevelDetails.updateTime }}</a-descriptions-item> + <a-descriptions-item label="鎻忚堪" :span="4">{{ currentLevelDetails.description }}</a-descriptions-item> + </a-descriptions> +</template> + +<script> +export default { + name: 'ProcessSpecVersionInfo', + components: {}, + props: { + currentLevelDetails: { + type: Object + }, + size: { + type: String + } + }, + data() { + return {} + }, + methods: {} +} +</script> + +<style scoped> + +</style> \ 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 518c220..1c1145a 100644 --- a/src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue +++ b/src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue @@ -1,5 +1,5 @@ <template> - <div v-if="+currentLevelInfo.type!==4" style="height: 100%"> + <div style="height: 100%"> <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"> @@ -12,6 +12,10 @@ <a-tab-pane :key="1" tab="闆朵欢灞炴��" v-if="+currentLevelInfo.type===3"> <PartInfo :currentLevelDetails="currentLevelInfo.entity" :size="containerSize"/> + </a-tab-pane> + + <a-tab-pane :key="1" tab="灞炴�т俊鎭�" v-if="+currentLevelInfo.type===4"> + <ProcessSpecVersionInfo :currentLevelDetails="currentLevelInfo.entity" :size="containerSize"/> </a-tab-pane> <a-tab-pane :key="1" tab="宸ュ簭灞炴��" v-if="+currentLevelInfo.type===5"> @@ -72,13 +76,16 @@ import UseDocumentEquipmentTableList from './Document/UseNcDocumentEquipmentTableList' import FilePreview from '../../../common/FilePreview' import TableContextMenu from '../../../common/TableContextMenu' -import { getAction } from '@/api/manage' import UseDeviceCustomTypeEquipmentTableList from '@views/dnc/base/modules/ProductStructure/DeviceCustomType/UseDeviceCustomTypeEquipmentTableList.vue' +import ProcessSpecVersionInfo + from '@views/dnc/base/modules/ProductStructure/ProcessSpecVersion/ProcessSpecVersionInfo.vue' +import { getAction } from '@/api/manage' export default { name: 'ProductStructureMainBottom', components: { + ProcessSpecVersionInfo, UseDeviceCustomTypeEquipmentTableList, CutterTableList, TableContextMenu, diff --git a/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue b/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue index e961d5f..7655c68 100644 --- a/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue +++ b/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue @@ -1,5 +1,5 @@ <template> - <div v-if="+currentTreeNodeInfo.type!==4"> + <div> <a-tabs v-model="activeTabKey" @contextmenu.native="e=>e.preventDefault()" @change="handleTabChange" v-if="Object.keys(currentTreeNodeInfo).length!==0"> <a-tab-pane :key="1" tab="NC绠$悊" v-if="+currentTreeNodeInfo.type===5||+currentTreeNodeInfo.type===6"> @@ -69,6 +69,12 @@ this.getDeviceTypeListDisplayPermission('dnc_device_type_process', 'isProcessHasDeviceTypeList') this.getDeviceTypeListDisplayPermission('dnc_device_type_step', 'isProcessStepHasDeviceTypeList') }, + beforeDestroy() { + this.$bus.$off('sendCurrentTreeNodeInfo', this.receiveCurrentTreeNodeInfo) + this.$bus.$off('sendCurrentClickedTypeInfo', this.receiveCurrentClickedTypeInfo) + this.$bus.$off('reloadDocumentListData', this.reloadDocumentListData) + this.$bus.$off('tableMenuItemMethodTrigger', this.triggerCorrespondingMethod) + }, methods: { /** * 鑾峰彇璁惧绫诲瀷鍒楄〃鍦ㄥ伐搴忓拰宸ユ灞傜骇鐨勫睍绀烘潈闄� @@ -89,15 +95,24 @@ */ receiveCurrentTreeNodeInfo(treeNodeInfo) { console.log('treeNodeInfo', treeNodeInfo) + const { id, type } = treeNodeInfo // 浠庢爲缁勪欢鎺ュ彈鏍戣妭鐐逛俊鎭悗浠庣埗缁勪欢娴佸叆瀛愮粍浠� this.currentTreeNodeInfo = treeNodeInfo + this.currentNCDocumentAttributionInfo = Object.assign({}, { + attributionId: id, + attributionType: type, + docClassCode: 'NC' + }) // 娓呯┖涓婁竴鑺傜偣宸茬粡鍔犺浇杩囧緱鏂囨。鍒楄〃tabKey this.hasLoadedDataTabKeyArray = [] - if (+treeNodeInfo.type === 5 || +treeNodeInfo.type === 6) { + if (+type === 5 || +type === 6) { this.activeTabKey = 1 this.$nextTick(() => { - if (this.$refs.deviceCustomTypeTableList) this.$refs.deviceCustomTypeTableList.setQueryParamAndLoadData() - else if (this.$refs.ncDocumentTableListRef) this.$refs.ncDocumentTableListRef.loadData(1) + if (this.$refs.deviceCustomTypeTableList) { + this.$refs.deviceCustomTypeTableList.setQueryParamAndLoadData() + // 鍒囨崲鏍戜箣鍚庢竻绌篘C绋嬪簭鍒楄〃 + if (this.$refs.ncDocumentTableListRef && this.$refs.ncDocumentTableListRef.dataSource.length > 0) this.$refs.ncDocumentTableListRef.dataSource = [] + } else if (this.$refs.ncDocumentTableListRef) this.$refs.ncDocumentTableListRef.loadData(1) }) } else { this.activeTabKey = 2 @@ -179,7 +194,7 @@ const { docId, docName } = this.currentRightClickedTableRowInfo dncApi.downloadDocumentApi({ docId, docName }) .then(res => { - if (res && !res.success) { + if (!res.success) { that.$notification.error({ message: '娑堟伅', description: res.message @@ -254,7 +269,6 @@ onOk: () => { dncApi.documentOutboundApi({ docId, docName }) .then(res => { - console.log('res------------------', res) if (res.success) { that.reloadDocumentListData({ docClassCode: param, attributionId, attributionType }) that.$notification.success({ diff --git a/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue b/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue index 6e45ede..3fea23d 100644 --- a/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue +++ b/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue @@ -114,6 +114,9 @@ this.getTreeDataByApi() this.$bus.$on('treeMenuItemMethodTrigger', this.triggerCorrespondingMethod) }, + beforeDestroy() { + this.$bus.$off('treeMenuItemMethodTrigger', this.triggerCorrespondingMethod) + }, methods: { getTreeDataByApi() { this.loading = true @@ -243,6 +246,7 @@ /** * 鑷姩灞曞紑娣诲姞涓嬬骇鑺傜偣鐨勭埗鑺傜偣 + * @param isAddNextLevel 鏄惁闇�瑕佸睍寮�涓嬬骇 */ modalFormSubmitSuccess(isAddNextLevel) { // 鍒ゆ柇鏄惁涓烘坊鍔犱笅绾у苟涓斿垽鏂埗鑺傜偣鏄惁灞曞紑 diff --git a/src/views/dnc/base/modules/ProductStructure/ProductStructureTreeContextMenu.vue b/src/views/dnc/base/modules/ProductStructure/ProductStructureTreeContextMenu.vue index 338a3a0..6e4eacb 100644 --- a/src/views/dnc/base/modules/ProductStructure/ProductStructureTreeContextMenu.vue +++ b/src/views/dnc/base/modules/ProductStructure/ProductStructureTreeContextMenu.vue @@ -70,6 +70,7 @@ { label: '鍒涘缓宸ヨ壓瑙勭▼鐗堟湰', code: 'version_add', icon: 'plus', isCommonMethod: false }, { label: '鍒涘缓宸ュ簭', code: 'version_add_child', icon: 'plus', isCommonMethod: false }, { label: '缂栬緫宸ヨ壓瑙勭▼鐗堟湰淇℃伅', code: 'version_edit', icon: 'edit', isCommonMethod: false }, + { label: '瀵煎叆鍏朵粬鏂囨。', code: 'version_import', icon: 'import', isCommonMethod: true }, { label: '鍒犻櫎', code: 'version_delete', icon: 'delete', isCommonMethod: true }, { label: '鏉冮檺閰嶇疆', code: 'public_assign_permission', icon: 'idcard', isCommonMethod: true } ], @@ -122,6 +123,8 @@ return 'OTHER' case 3: return 'OTHER' + case 4: + return 'OTHER' case 5: return 'NC' case 6: diff --git a/src/views/dnc/common/DocumentInfo.vue b/src/views/dnc/common/DocumentInfo.vue index 218d3e0..f5708c5 100644 --- a/src/views/dnc/common/DocumentInfo.vue +++ b/src/views/dnc/common/DocumentInfo.vue @@ -1,18 +1,18 @@ <template> - <a-descriptions bordered :size="size"> + <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.docCode}}</a-descriptions-item> <a-descriptions-item label="鏂囨。鍚庣紑">{{currentLevelDetails.docSuffix}}</a-descriptions-item> <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_dictText}}</a-descriptions-item> + <a-descriptions-item label="鍑哄簱浜�">{{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.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-item label="淇敼鏃堕棿">{{currentLevelDetails.updateTime}}</a-descriptions-item> + <a-descriptions-item label="鎻忚堪" :span="4">{{currentLevelDetails.description}}</a-descriptions-item> </a-descriptions> </template> -- Gitblit v1.9.3