浏览代码

ETA图库目录改成三级

cxmo 1 年之前
父节点
当前提交
d11e06392e

+ 63 - 14
src/views/dataEntry_manage/chartSetting.vue

@@ -74,7 +74,7 @@
               check-strictly
               empty-text="暂无分类"
               lazy
-						  :load="handleTreeLoad"
+						  :load="getLazyTreeData"
               @node-expand="handleNodeExpand"
               @node-collapse="handleNodeCollapse"
               @current-change="nodeChange"
@@ -119,7 +119,7 @@
                     alt=""
                     style="width: 14px; height: 14px; margin-right: 8px"
                     @click.stop="addNode(node, data)"
-                    v-if="node.level === 1 && role === 'admin'"
+                    v-if="(node.level === 1||node.level === 2) && role === 'admin'"
                   />
                   <img
                     src="~@/assets/img/set_m/edit.png"
@@ -897,7 +897,7 @@ export default {
           (item) => item.ChartInfoId === newval
         );
         // 查找图表的父级id
-        let arr = this.findParentNodeForClassifyId(search_obj.ChartClassifyId,search_obj.UniqueCode);
+        let arr = this.findParentNodeHandle(this.treeData,search_obj.ChartClassifyId);
         this.defaultShowNodes = arr;
         this.select_node = search_obj.UniqueCode;
       
@@ -1165,7 +1165,7 @@ export default {
             : node.level === 2
             ? data.ChartClassifyName
             : node.parent.data.ChartClassifyName,
-        // level_3: node.level === 3 ? data.ChartClassifyName : '',
+        level_3: node.level === 3 ? data.ChartClassifyName : '',
         classify_id: data.ChartClassifyId,
         level: node.level,
       };
@@ -1267,7 +1267,7 @@ export default {
           return item === code;
         });
         // console.log(flag)
-        !flag && this.defaultShowNodes.push(code);
+        !flag && code && this.defaultShowNodes.push(code);
         sessionStorage.removeItem('expandCode');
       }
     },
@@ -1295,12 +1295,18 @@ export default {
 				}
 			}
 
-			//三级指标层
+			//三级目录
 			if(draggingNode.level===3){
 				if((dropNode.level===2&&type==='inner')||(dropNode.level===3&&type!=='inner')){
 					canDrop=true
 				}
 			}
+			//四级指标层
+			if(draggingNode.level===4){
+				if((dropNode.level===3&&type==='inner')||(dropNode.level===4&&type!=='inner')){
+					canDrop=true
+				}
+			}
 
       return canDrop;
     },
@@ -1309,17 +1315,17 @@ export default {
       // console.log(i, a);
       // 被拖拽节点对应的 Node、结束拖拽时最后进入的节点、被拖拽节点的放置位置
       // 一/二级目录
-      if (b.level === 1 || b.level === 2) {
+      if (b.level === 1 || b.level === 2||b.level===3) {
         this.handleMoveCatalogue(b, a, i, e)
       }
 
       // 指标层
-      if (b.level === 3) {
+      if (b.level === 4) {
         this.handleMoveChart(b, a, i, e)
       }
     },
 
-    // 移动的为一、二级目录
+    // 移动的为一、二、三级目录
 		handleMoveCatalogue(b,a,i,e){
 			let list=a.parent.childNodes,targetIndex=0,PrevClassifyId=0,NextClassifyId=0,ParentClassifyId=0;
 
@@ -1350,6 +1356,15 @@ export default {
 					ParentClassifyId=a.data.ParentId
 				}
 			}
+			if(b.level===3){
+				if(i==='inner'){
+					ParentClassifyId=a.data.ChartClassifyId
+					PrevClassifyId=0
+					NextClassifyId=a.data.Children.length>1?a.data.Children[1].ChartClassifyId:0
+				}else{
+					ParentClassifyId=a.data.ParentId
+				}
+			}
 
       dataBaseInterface.chartClassifyMove({
         ClassifyId: b.data.ChartClassifyId,
@@ -1364,7 +1379,7 @@ export default {
       });
 		},
 
-		// 移动的为指标层 
+		// 移动的为指标层 
 		handleMoveChart(b,a,i,e){
 			let PrevChartInfoId=0,NextChartInfoId=0,targetIndex=0, list=a.parent.childNodes.map(_ => _.data)
 			if(i==='inner'){
@@ -1453,7 +1468,7 @@ export default {
     },
     // 树节点关闭
     handleNodeCollapse(data) {
-      this.defaultShowNodes.forEach((item, index) => {
+      this.defaultShowNodes.some((item, index) => {
         if (item === data.UniqueCode) {
           // 删除关闭节点
           this.defaultShowNodes.length = index;
@@ -1500,6 +1515,40 @@ export default {
 				resolve([])
 			}
 		},
+		//绑定el-tree的load属性
+		getLazyTreeData (node,resolve,maxLevel=3){
+			if(node.level===0){
+				resolve(this.treeData)
+			}
+			if(node.level>0&&node.level<=maxLevel){
+				//获取对应层级的Child
+				resolve(node.data.Children||[])
+			}
+			if(node.level===maxLevel){
+				//调接口获取该分类下图表的数据
+				dataBaseInterface.getChartListForClassify({
+					ChartClassifyId:node.data.ChartClassifyId,
+					IsShowMe:this.isOnlyMe
+				}).then(res=>{
+					if(res.Ret===200){
+						let arr=res.Data.AllNodes||[]
+						arr=arr.map(item=>{
+							return {
+								...item,
+								isLeaf:true
+							}
+						})
+						resolve(arr)
+					}else{
+						resolve([])
+					}
+					this.changeTreeNode()
+				})
+			}
+			if(node.level>maxLevel){
+				resolve([])
+			}
+		},
 
     /* 获取图表详情信息  type为refresh刷新指标不存储时间 */
     getChartInfo(type) {
@@ -1577,7 +1626,7 @@ export default {
           //将指标添加进标签列表中
             const {ChartNameEn,ChartName,ChartInfoId,UniqueCode,ChartClassifyId}=res.Data.ChartInfo
             this.addLabel({code:UniqueCode,id:ChartInfoId,classifyId:ChartClassifyId,EdbName:ChartName,EdbNameEn:ChartNameEn,chartData:res.Data.ChartInfo})
-            this.defaultShowNodes=this.findParentNodeForClassifyId(ChartClassifyId,UniqueCode)
+            this.defaultShowNodes=this.findParentNodeHandle(this.treeData,ChartClassifyId)
             this.changeTreeNode()
         }
         
@@ -1915,7 +1964,7 @@ export default {
       // 查找选中的节点信息
       let select_obj = chartData?chartData:await this.findNode(deep_arr, id);
       // 查找图表的分类父级id
-      let arr = this.findParentNodeForClassifyId(select_obj.ChartClassifyId, code); // 父的父的父-父的父-父
+      let arr = this.findParentNodeHandle(this.treeData,select_obj.ChartClassifyId); // 父的父的父-父的父-父
       this.defaultShowNodes = arr;
       this.select_node = code;
       
@@ -2001,7 +2050,7 @@ export default {
     findParentNodeHandle(arr, id) {
       // 遍历取父级code push数组
       for (let i of arr) {
-        if (i.UniqueCode === id) {
+        if (i.ChartClassifyId === id) {
           return [i.UniqueCode];
         }
         if (i.Children) {

+ 1 - 1
src/views/dataEntry_manage/components/SaveChartOther.vue

@@ -129,7 +129,7 @@ export default {
       }else if([7,8,9,'statistic_feature'].includes(this.source)) { //标准差 百分位 频率图
         this.filterNodes(res.Data.AllNodes,1)
       }else{
-        this.filterNodes(res.Data.AllNodes,2)
+        this.filterNodes(res.Data.AllNodes,3)
       }
 
 			this.classifyOptions = res.Data.AllNodes || [];

+ 8 - 4
src/views/dataEntry_manage/components/chartDialog.vue

@@ -47,7 +47,7 @@
 						</el-form-item>
 					</template>
 					<!-- 添加/编辑三级目录 -->
-				<!-- 	<template v-else-if="(title=='添加'&&formData.level === 2)
+					<template v-else-if="(title=='添加'&&formData.level === 2)
 					|| (title=='编辑'&&formData.level === 3)">
 						<el-form-item label="一级目录" prop="level_1">
 							<span>{{formData.level_1}}</span>
@@ -61,7 +61,7 @@
 							style="width: 80%"
 							placeholder="必填项"></el-input>
 						</el-form-item>
-					</template> -->
+					</template>
 				</el-form>
 			</div>
 			<div class="dia-bot">
@@ -120,6 +120,8 @@ export default {
 							? this.formData.level_1
 							: this.formData.level === 1
 							? this.formData.level_2
+							: this.formData.level === 2
+							? this.formData.level_3
 							:'',
 						ParentId:this.formData.parent_id || 0,
 						Level: this.formData.level
@@ -130,7 +132,7 @@ export default {
 						}
 					})
 					//修改图表
-					if(this.title==='编辑' && this.formData.level===3) {
+					if(this.title==='编辑' && this.formData.level===4) {
 						dataBaseInterface.chartEdit({
 							ChartClassifyId: this.formData.level_menu[this.formData.level_menu.length - 1],
 							ChartInfoId: this.formData.chart_id,
@@ -141,13 +143,15 @@ export default {
 								this.callbackHandle('update');
 							}
 						})
-					}else if(this.title==='编辑' && this.formData.level!==3) {
+					}else if(this.title==='编辑' && this.formData.level!==4) {
 						//修改目录
 						dataBaseInterface.editChartClassify({
 							ChartClassifyName: this.formData.level === 1
 								? this.formData.level_1
 								: this.formData.level === 2
 								? this.formData.level_2
+								:this.formData.level === 3
+								?this.formData.level_3
 								:'',
 							ChartClassifyId:this.formData.classify_id || 0
 						}).then(res => {

+ 2 - 1
src/views/dataEntry_manage/databaseList.vue

@@ -672,7 +672,7 @@ export default {
 				this.page_no = 1;
 				this.$refs.valueUl.scrollTop = 0;
 				// 查找图表的父级code
-				this.defaultShowNodes = this.findParentNodeForClassifyId(search_obj.ClassifyId,search_obj.UniqueCode);
+				this.defaultShowNodes = this.findParentNodeHandle(this.treeData,search_obj.ClassifyId);
 				this.select_node = search_obj.UniqueCode;
 				this.selected_edbid = newval;
 
@@ -1430,6 +1430,7 @@ export default {
 		},
 		// 查找树节点所有父节点
 		findParentNodeHandle(arr, id) {
+            console.log('findParentNodeHandle')
 			// 遍历取父级code push数组
 			for (let i of arr) {
 				if (i.ClassifyId === id) {

+ 1 - 1
src/views/dataEntry_manage/editChart.vue

@@ -581,7 +581,7 @@ export default {
           if (res.Ret !== 200) return;
 					const { ChartInfo,EdbInfoList,BarChartInfo } = res.Data;
 
-          this.chartInfo = {...ChartInfo, classify: ChartInfo.ChartClassify.map(item => item.ChartClassifyId)};
+          this.chartInfo = {...ChartInfo, classify: [ChartInfo.ChartClassify[0].ParentId,...ChartInfo.ChartClassify.map(item => item.ChartClassifyId)]};
           this.tableData = EdbInfoList;
           this.setDefaultDateSelect(); //设置默认的日期选中
 					

+ 2 - 2
src/views/dataEntry_manage/mixins/addOreditMixin.js

@@ -400,11 +400,11 @@ export default {
 			})
 		},
 
-		// 递归改变第级目录结构
+		// 递归改变第级目录结构
 		filterNodes(arr) {
 			arr.length && arr.forEach(item => {
 				item.Children.length && this.filterNodes(item.Children)
-				if(item.Level === 2) {
+				if(item.Level === 3) {
 					delete item.Children
 				}
 			})