From 66d1227cd753d6d747b1cc54be1e5898d9d662c8 Mon Sep 17 00:00:00 2001 From: zhaowei <zhaowei> Date: 星期三, 27 八月 2025 20:13:43 +0800 Subject: [PATCH] 设备结构树模块指派NC文件到产品中的产品结构树展开选中节点下的所有子项功能 --- src/views/dnc/base/modules/DeviceStructure/Document/HasReceivedDocumentAssignModal.vue | 54 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 46 insertions(+), 8 deletions(-) diff --git a/src/views/dnc/base/modules/DeviceStructure/Document/HasReceivedDocumentAssignModal.vue b/src/views/dnc/base/modules/DeviceStructure/Document/HasReceivedDocumentAssignModal.vue index f640e40..07e7ef2 100644 --- a/src/views/dnc/base/modules/DeviceStructure/Document/HasReceivedDocumentAssignModal.vue +++ b/src/views/dnc/base/modules/DeviceStructure/Document/HasReceivedDocumentAssignModal.vue @@ -45,14 +45,17 @@ <div style="width: 26%"> <a-tabs> - <a-tab-pane tab="璁惧鍒楄〃"> + <a-tab-pane tab="浜у搧鍒楄〃"> <a-spin :spinning="spinning"> <div style="display: flex;flex-direction: column;"> <div style="display: flex"> <a-input placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" allowClear v-model="searchInput" @change="handleSearchInputChange"/> - <a-button type="primary" @click="isExpandAllTreeNode=!isExpandAllTreeNode" style="margin: 0 8px"> - 灞曞紑/鎶樺彔 + <a-button type="primary" @click="expandCurrentActiveTreeNodeSon" style="margin: 0 8px" + :disabled="!currentActiveTreeNode.children||(currentActiveTreeNode.children&¤tActiveTreeNode.children.length===0)"> + <span v-if="!expandedKeys.includes(currentActiveTreeNode.id)">灞曞紑</span> + <span v-else>鎶樺彔</span> + 褰撳墠鑺傜偣 </a-button> </div> @@ -62,6 +65,7 @@ :autoExpandParent="autoExpandParent" @select="handleTreeNodeSelect" checkStrictly :treeData="treeDataSource" @check="handleTreeNodeCheck" @expand="handleTreeNodeExpand"> <template slot="title" slot-scope="{ label, parentId, entity, key:treeKey,type}"> + <!--nc鏂囦欢灞傜骇--> <a-tooltip :title="label" v-if="type==99"> <span v-if="label.indexOf(searchValue) > -1"> {{ label.substr(0, label.indexOf(searchValue)) }} @@ -70,6 +74,8 @@ </span> <span v-else>{{ label }}</span> </a-tooltip> + + <!--闈炴枃浠跺眰绾�--> <template v-else> <span v-if="label.indexOf(searchValue) > -1"> {{ label.substr(0, label.indexOf(searchValue)) }} @@ -187,6 +193,7 @@ autoExpandParent: true, isExpandAllTreeNode: false, confirmLoading: false, + currentActiveTreeNode: {}, date: [], url: { list: '/nc/doc/find/list' @@ -412,12 +419,10 @@ /** * 鏍戣妭鐐瑰閫夋閫変腑鏃惰Е鍙� - * @param selectedKeys 閫変腑鑺傜偣key + * @param checkedObj 閫変腑鑺傜偣瀵硅薄 * @param {node} node 鑺傜偣瀵硅薄 */ handleTreeNodeCheck(checkedObj, { node }) { - console.log('checkedObj', checkedObj) - console.log('node', node.dataRef) let record = node.dataRef if (record.type !== 99) return this.checkedKeys = checkedObj.checked.slice(-1) @@ -429,7 +434,40 @@ * @param {node} node 鑺傜偣瀵硅薄 */ handleTreeNodeSelect(selectedKeys, { node }) { + const record = node.dataRef node.$el.childNodes[1].click() + if (this.currentActiveTreeNode.key === record.key) { + this.currentActiveTreeNode = {} + return + } + this.currentActiveTreeNode = Object.assign({}, record) + }, + + // 灞曞紑褰撳墠閫変腑鏍戣妭鐐逛笅鎵�鏈夊瓙椤� + expandCurrentActiveTreeNodeSon() { + const activeNode = this.currentActiveTreeNode + const sonKeys = this.getCurrentTreeNodeSonKeys(activeNode) + if (!this.expandedKeys.includes(activeNode.id)) { + this.expandedKeys = [...this.expandedKeys, this.currentActiveTreeNode.id, ...sonKeys] + } else { + this.expandedKeys = this.expandedKeys.filter(expandKey => !sonKeys.includes(expandKey) && expandKey !== activeNode.id) + } + }, + + /** + * 閫掑綊鑾峰彇閫変腑鑺傜偣鎵�鏈夊瓙鑺傜偣key + * @param treeNode 鏍戣妭鐐� + */ + getCurrentTreeNodeSonKeys(treeNode) { + let sonKeys = [] + if (treeNode.children && treeNode.children.length > 0) { + for (let index = 0; index < treeNode.children.length; index++) { + const node = treeNode.children[index] + sonKeys.push(node.id) + sonKeys = [...sonKeys, ...this.getCurrentTreeNodeSonKeys(node)] + } + } + return sonKeys }, /** @@ -455,7 +493,7 @@ /** * 閫掑綊鑾峰緱鎵�鏈夋爲鑺傜偣key - * @param data 璁惧鏍戞暟鎹� + * @param data 鏍戞暟鎹� */ generateList(data) { for (let i = 0; i < data.length; i++) { @@ -502,7 +540,7 @@ this.searchInput = this.searchValue = '' this.expandedKeys = [] this.selectedRowKeys = [] - this.selectionRows = {} + this.selectionRows = this.currentActiveTreeNode = {} this.checkedKeys = [] this.filters = {} this.isorter = Object.assign({}, this.defaultSorter) -- Gitblit v1.9.3