|
@@ -56,6 +56,8 @@
|
|
|
:expand-on-click-node="false"
|
|
|
check-strictly
|
|
|
empty-text="暂无分类"
|
|
|
+ lazy
|
|
|
+ :load="getLazyTreeData"
|
|
|
@node-expand="handleNodeExpand"
|
|
|
@node-collapse="handleNodeCollapse"
|
|
|
@current-change="nodeChange"
|
|
@@ -94,12 +96,19 @@
|
|
|
style="width: 14px; height: 14px; margin-right: 8px"
|
|
|
v-if="data.Button.MoveButton"
|
|
|
/>
|
|
|
+ <img
|
|
|
+ src="~@/assets/img/set_m/add.png"
|
|
|
+ alt=""
|
|
|
+ style="width: 14px; height: 14px; margin-right: 8px"
|
|
|
+ @click.stop="addNode(node, data)"
|
|
|
+ v-if="data.Button.AddButton&&!data.EdbInfoId"
|
|
|
+ />
|
|
|
<img
|
|
|
src="~@/assets/img/set_m/edit.png"
|
|
|
alt=""
|
|
|
style="width: 15px; height: 14px; margin-right: 8px"
|
|
|
@click.stop="editNode(node, data)"
|
|
|
- v-if="data.Button.OpButton"
|
|
|
+ v-if="data.Button.OpButton&&!data.EdbInfoId"
|
|
|
/>
|
|
|
<img
|
|
|
slot="reference"
|
|
@@ -107,7 +116,7 @@
|
|
|
alt=""
|
|
|
style="width: 14px; height: 14px"
|
|
|
@click.stop="removeNode(node, data)"
|
|
|
- v-if="data.Button.DeleteButton"
|
|
|
+ v-if="data.Button.DeleteButton&&!data.EdbInfoId"
|
|
|
/>
|
|
|
<i class="el-icon-view" v-if="data.EdbInfoId" @click.stop="viewNode(node,data)"></i>
|
|
|
</span>
|
|
@@ -435,11 +444,12 @@ export default {
|
|
|
select_classify: '',
|
|
|
new_label:'',//双击修改的value
|
|
|
treeData: [], //分类数据
|
|
|
- defaultShowNodes: [], //展开节点
|
|
|
- defaultProp: {
|
|
|
- label: 'ClassifyName',
|
|
|
- children: 'Children',
|
|
|
- }, //树结构配置项
|
|
|
+ defaultShowNodes: [], //展开节点
|
|
|
+ defaultProp: {
|
|
|
+ label: 'ClassifyName',
|
|
|
+ children: 'Children',
|
|
|
+ isLeaf:'isLeaf'
|
|
|
+ }, //树结构配置项
|
|
|
dynamicNode: null,
|
|
|
edbName: '',
|
|
|
edb_nameEn: '',
|
|
@@ -581,7 +591,8 @@ export default {
|
|
|
this.detail_show_chart = true;
|
|
|
this.$nextTick(()=>{
|
|
|
//切换为曲线图
|
|
|
- this.$refs.detailComponentRef.$refs.chartInfo.chartInfo.ChartType=1
|
|
|
+ this.$refs.detailComponentRef&&
|
|
|
+ (this.$refs.detailComponentRef.$refs.chartInfo.chartInfo.ChartType=1)
|
|
|
})
|
|
|
|
|
|
},
|
|
@@ -600,7 +611,7 @@ export default {
|
|
|
let search_obj = this.searchOptions.find(_ => _.EdbInfoId === newval);
|
|
|
let deep_arr = _.cloneDeep(this.treeData);
|
|
|
// 查找图表的分类父级id
|
|
|
- let arr = this.findParentNodeHandle(deep_arr, search_obj.UniqueCode).slice(1).reverse(); // 父的父的父-父的父-父
|
|
|
+ let arr = this.findParentNodeHandle(deep_arr, search_obj.ClassifyId).reverse(); // 父的父的父-父的父-父
|
|
|
this.defaultShowNodes = arr;
|
|
|
this.select_node = search_obj.UniqueCode;
|
|
|
this.$refs.treeRef.setCurrentKey(this.select_node);
|
|
@@ -627,7 +638,7 @@ export default {
|
|
|
|
|
|
/* 获取分类 */
|
|
|
getTreeData(params=null) {
|
|
|
- preDictEdbInterface.classifyList({IsOnlyMe:this.isOnlyMe||false}).then(res => {
|
|
|
+ preDictEdbInterface.classifyListV2({IsOnlyMe:this.isOnlyMe||false}).then(res => {
|
|
|
const { Ret,Data } = res;
|
|
|
|
|
|
if(Ret !== 200) return
|
|
@@ -689,18 +700,51 @@ export default {
|
|
|
this.dialog_title = '添加';
|
|
|
this.classifyForm = {
|
|
|
classify_name: '',
|
|
|
+ Level:0,
|
|
|
+ ParentId:0
|
|
|
+ }
|
|
|
+ this.classifyDia = true;
|
|
|
+ },
|
|
|
+ addNode(node,{ClassifyName,ClassifyId}){
|
|
|
+ this.dialog_title = '添加'
|
|
|
+ /* 添加目录 */
|
|
|
+ this.classifyForm = {
|
|
|
+ classify_name:'',
|
|
|
+ Level:node.level,
|
|
|
+ ParentId:ClassifyId,
|
|
|
+ level_1_Name:node.level === 1
|
|
|
+ ? ClassifyName
|
|
|
+ : node.level === 2
|
|
|
+ ? node.parent.data.ClassifyName
|
|
|
+ : node.parent.parent.data.ClassifyName,
|
|
|
+ level_2_Name:node.level === 1
|
|
|
+ ? ''
|
|
|
+ : node.level === 2
|
|
|
+ ? ClassifyName
|
|
|
+ : node.parent.data.ClassifyName,
|
|
|
}
|
|
|
this.classifyDia = true;
|
|
|
},
|
|
|
-
|
|
|
/* 编辑节点 */
|
|
|
- editNode(node, { ClassifyName,ClassifyId }) {
|
|
|
+ editNode(node, { ClassifyName,ClassifyId,Level,ParentId}) {
|
|
|
|
|
|
this.dialog_title = '编辑';
|
|
|
/* 编辑目录 */
|
|
|
this.classifyForm = {
|
|
|
classify_name: ClassifyName,
|
|
|
classify_id: ClassifyId,
|
|
|
+ Level:node.Level,
|
|
|
+ ParentId:ParentId,
|
|
|
+ level_1_Name:node.level === 1
|
|
|
+ ? ClassifyName
|
|
|
+ : node.level === 2
|
|
|
+ ? node.parent.data.ClassifyName
|
|
|
+ : node.parent.parent.data.ClassifyName,
|
|
|
+ level_2_Name:node.level === 1
|
|
|
+ ? ''
|
|
|
+ : node.level === 2
|
|
|
+ ? ClassifyName
|
|
|
+ : node.parent.data.ClassifyName,
|
|
|
};
|
|
|
this.classifyDia = true;
|
|
|
},
|
|
@@ -745,7 +789,8 @@ export default {
|
|
|
type && res.Data.EdbInfoId
|
|
|
? this.getTreeData({
|
|
|
code: res.Data.UniqueCode,
|
|
|
- id: res.Data.EdbInfoId
|
|
|
+ id: res.Data.EdbInfoId,
|
|
|
+ classifyId:res.Data.ClassifyId
|
|
|
})
|
|
|
: this.getTreeData();
|
|
|
});
|
|
@@ -783,10 +828,11 @@ export default {
|
|
|
},
|
|
|
|
|
|
/* 展开对应菜单 显示详情 */
|
|
|
- detailShowHandle({ UniqueCode, EdbInfoId }) {
|
|
|
+ detailShowHandle({ UniqueCode, EdbInfoId,ClassifyId}) {
|
|
|
let params = {
|
|
|
code: UniqueCode,
|
|
|
- id: EdbInfoId
|
|
|
+ id: EdbInfoId,
|
|
|
+ classifyId:ClassifyId
|
|
|
};
|
|
|
this.selectCurrentNode(params);
|
|
|
this.select_classify = 0;
|
|
@@ -886,6 +932,9 @@ export default {
|
|
|
|
|
|
/* 计算指标回显 */
|
|
|
setComputedDialogForm({Source,CalculateList,CalculateFormula,EdbInfoId,EdbName,Unit,Frequency,ClassifyId,MoveType,MoveFrequency,Calendar},type='') {
|
|
|
+ //找到指标的父级
|
|
|
+ let deep_arr = _.cloneDeep(this.treeData);
|
|
|
+ const parentNodes = this.findParentNodeHandle(deep_arr,ClassifyId,'ClassifyId')
|
|
|
//指标运算 or 其他计算类型指标
|
|
|
if( Source === 31 ) {
|
|
|
/* 回显指标和表单 */
|
|
@@ -902,7 +951,7 @@ export default {
|
|
|
this.calulateForm = {
|
|
|
edb_id:EdbInfoId,
|
|
|
formula: CalculateFormula,
|
|
|
- menu: ClassifyId,
|
|
|
+ menu: parentNodes.reverse(),
|
|
|
targetName: EdbName,
|
|
|
unit: Unit,
|
|
|
frequency: Frequency,
|
|
@@ -915,9 +964,7 @@ export default {
|
|
|
targetName: EdbName,
|
|
|
frequency: Frequency,
|
|
|
unit: Unit,
|
|
|
- menu: [
|
|
|
- ClassifyId
|
|
|
- ],
|
|
|
+ menu: parentNodes.reverse(),
|
|
|
view: type === 'view',
|
|
|
source: Source,
|
|
|
date: CalculateFormula,
|
|
@@ -935,7 +982,7 @@ export default {
|
|
|
edb_id: EdbInfoId,
|
|
|
targetName: EdbName,
|
|
|
unit: Unit,
|
|
|
- menu: ClassifyId,
|
|
|
+ menu: parentNodes.reverse(),
|
|
|
frequency: Frequency,
|
|
|
formula: CalculateFormula || '',
|
|
|
view: type === 'view',
|
|
@@ -1125,13 +1172,56 @@ export default {
|
|
|
this.$refs.listRef.scrollTop = 0;
|
|
|
this.getPublicList();
|
|
|
},
|
|
|
+ //懒加载el-tree
|
|
|
+ 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){
|
|
|
+ //调接口获取该分类下图表的数据
|
|
|
+ preDictEdbInterface.classifyChartList({
|
|
|
+ ClassifyId:node.data.ClassifyId,
|
|
|
+ IsShowMe:this.isOnlyMe
|
|
|
+ }).then(res=>{
|
|
|
+ if(res.Ret===200){
|
|
|
+ let arr=res.Data.EdbInfoList||[]
|
|
|
+ arr=arr.map(item=>{
|
|
|
+ return {
|
|
|
+ ...item,
|
|
|
+ isLeaf:true
|
|
|
+ }
|
|
|
+ })
|
|
|
+ resolve(arr)
|
|
|
+ }else{
|
|
|
+ resolve([])
|
|
|
+ }
|
|
|
+ this.changeTreeNode()
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if(node.level>maxLevel){
|
|
|
+ resolve([])
|
|
|
+ }
|
|
|
+ },
|
|
|
+ changeTreeNode(){
|
|
|
+ this.$refs.treeRef.setCurrentKey(this.select_node);
|
|
|
+ this.$nextTick(()=>{
|
|
|
+ const _node = this.$refs.treeRef.getNode(this.select_node)
|
|
|
+ this.dynamicNode = _node;
|
|
|
+ this.dynamicNode&&this.resetNodeStyle(this.dynamicNode)
|
|
|
+ })
|
|
|
+ }
|
|
|
},
|
|
|
mounted() {
|
|
|
const obj=sessionStorage.getItem('predictEdbTreeData')
|
|
|
if(obj||this.$route.query.code){
|
|
|
let code=obj?JSON.parse(obj).code:this.$route.query.code
|
|
|
let id=obj?JSON.parse(obj).id:this.$route.query.id
|
|
|
- this.getTreeData({code: code,id: id})
|
|
|
+ let classifyId=obj?JSON.parse(obj).classifyId:this.$route.query.classifyId
|
|
|
+ this.getTreeData({code: code,id: Number(id),classifyId:Number(classifyId)})
|
|
|
}else{
|
|
|
this.getTreeData()
|
|
|
}
|