From ba9490368b8bf27e0d4a6471420044dadf5b720e Mon Sep 17 00:00:00 2001 From: zhaowei <zhaowei> Date: 星期二, 21 一月 2025 15:33:42 +0800 Subject: [PATCH] 产品结构树: 1、新增指定文档为当前版本功能与文档版本内容差异比对功能(新增插件vue-code-diff) 2、调整产品及部件属性tab栏标题为属性信息 3、删除产品及部件属性信息中对应层级名称 全局: 调整设置后端接口地址方式由vue.config.js改为env环境文件配置 --- src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue | 99 +++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 82 insertions(+), 17 deletions(-) diff --git a/src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue b/src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue index 5774215..4d36158 100644 --- a/src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue +++ b/src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue @@ -1,42 +1,49 @@ <template> - <a-tabs style="height: 100%" v-model="activeTabKey" v-if="Object.keys(currentLevelInfo).length>0"> - <a-tab-pane :key="1" tab="浜у搧灞炴��" v-if="currentLevelInfo.type===1"> - <ProductInfo :currentLevelDetails="currentLevelInfo.entity" :size="descriptionsContainerSize"/> + <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="containerSize"/> </a-tab-pane> - <a-tab-pane :key="1" tab="閮ㄤ欢灞炴��" v-if="currentLevelInfo.type===2"> - <ComponentInfo :currentLevelDetails="currentLevelInfo.entity" :size="descriptionsContainerSize"/> + <a-tab-pane :key="1" tab="灞炴�т俊鎭�" v-if="currentLevelInfo.type===2"> + <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="棰勮"> - + <FilePreview ref="filePreviewRef" :currentDocumentInfo="currentLevelInfo"/> </a-tab-pane> <a-tab-pane :key="3" tab="鏂囨。鐗堟湰"> - <DocumentVersionTableList/> + <DocumentVersionTableList ref="documentVersionTableRef" :currentDocumentInfo="currentLevelInfo" + @handleTableContextMenuOpen="handleTableContextMenuOpen" + @releaseFilePreviewApi="releaseFilePreviewApi" + :size="containerSize"/> </a-tab-pane> <a-tab-pane :key="4" tab="浣跨敤璁惧" v-if="currentLevelInfo.attributionType===5"> - <UseDocumentEquipmentTableList/> + <UseDocumentEquipmentTableList ref="useDocumentEquipmentTableRef" :currentDocumentInfo="currentLevelInfo" + :size="containerSize"/> </a-tab-pane> </template> + + <TableContextMenu :tableRowInfo="currentRightClickedTableRowInfo" ref="tableContextMenuRef"/> </a-tabs> </template> @@ -49,10 +56,14 @@ import DocumentVersionTableList from './Document/DocumentVersionTableList' import UseDocumentEquipmentTableList from './Document/UseNcDocumentEquipmentTableList' import ProcessStepInfo from './ProcessStep/ProcessStepInfo' + import FilePreview from './Document/FilePreview' + import TableContextMenu from '../../../common/TableContextMenu' export default { name: 'ProductStructureMainBottom', components: { + TableContextMenu, + FilePreview, ProcessStepInfo, UseDocumentEquipmentTableList, DocumentVersionTableList, @@ -65,22 +76,76 @@ data() { return { activeTabKey: 1, - descriptionsContainerSize: 'small', - currentLevelInfo: {} + containerSize: 'small', + currentLevelInfo: {}, + currentRightClickedTableRowInfo: {}, + 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: { /** * 鎺ユ敹鏍戠粍浠朵互鍙婅〃鏍间紶鏉ョ殑褰撳墠閫変腑鎴栫偣鍑荤殑椤逛俊鎭� - * @param levelInfo + * @param levelInfo 褰撳墠灞傜骇淇℃伅 */ receiveCurrentLevelInfo(levelInfo) { this.currentLevelInfo = levelInfo - if (levelInfo.attributionType) this.activeTabKey = 1 + this.activeTabKey = 1 + this.hasLoadedDataTabKeyArray = [] + }, + + handleTabChange(activeTabKey) { + if (!this.hasLoadedDataTabKeyArray.includes(activeTabKey)) { + switch (activeTabKey) { + case 2: + this.$nextTick(() => this.$refs.filePreviewRef.getFilePreviewByApi()) + break + case 3: + this.$nextTick(() => this.$refs.documentVersionTableRef.loadData()) + break + case 4: + this.$nextTick(() => this.$refs.useDocumentEquipmentTableRef.loadData()) + break + default: + } + // 闃绘鎺ュ彛鍦ㄥ悓涓�鏂囨。涓�娆$偣鍑诲唴澶氭瑙﹀彂 + this.hasLoadedDataTabKeyArray.push(activeTabKey) + } + }, + + // 閲婃斁鏂囦欢棰勮鎺ュ彛 + releaseFilePreviewApi() { + // 濡傛灉宸茬粡棰勮杩囨鏂囨。锛屽彲鍦ㄦ鏂囨。褰撳墠鐗堟湰鍙戠敓鏀瑰彉鍚庡啀娆¢瑙堟柊鐗堟湰鍐呭 + if (this.hasLoadedDataTabKeyArray.includes(2)) this.hasLoadedDataTabKeyArray = this.hasLoadedDataTabKeyArray.filter(item => item !== 2) + }, + + /** + * 鎺у埗鍙抽敭鑿滃崟寮�鍚� + * @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) + }, + + /** + * 鎺у埗鍙抽敭鑿滃崟鐐瑰嚮鍏抽棴 + */ + handleMenuClose() { + this.$refs.tableContextMenuRef.menuVisible = false + document.body.removeEventListener('click', this.handleMenuClose) + }, + + reloadMainBottomTableData(tableName) { + if (this.$refs[tableName + 'TableRef']) this.$refs[tableName + 'TableRef'].loadData() } } } -- Gitblit v1.9.3