田源
2025-01-16 cfd8d4c470cc6db6f6689ebf01eae07e47a46990
Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/cloneDialog.vue
@@ -11,11 +11,11 @@
    <el-container style="height: 580px">
      <el-aside style="width: 380px">
        <basic-container v-loading="leftLoading" style="height: 530px">
          <h3 style="margin: 0 0 10px 0">业务类型</h3>
          <div style="height: 435px">
            <avue-tree ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick">
              <span slot-scope="{ node, data }" class="el-tree-node__label">
               <span style="font-size: 15px">
               <span>
                 <icon-show :name="data.icon"></icon-show>
                    {{ (node || {}).label }}
                </span>
              </span>
@@ -29,7 +29,7 @@
          <div style="height: 490px;">
            <avue-tree ref="uiTree" :data="uiTreeData" :option="uiTreeOption" @check-change="checkChange">
              <span slot-scope="{ node, data }" class="el-tree-node__label">
                <span style="font-size: 15px">
                <span>
                  <i :class="data.icon"></i>
                    {{ (node || {}).label }}
                </span>
@@ -40,14 +40,13 @@
      </el-main>
    </el-container>
    <div class="dialog-footer avue-dialog__footer">
      <el-button plain size="small" type="primary" @click="submitDialog">保 存</el-button>
      <el-button size="small" type="primary" @click="submitDialog">保 存</el-button>
      <el-button size="small" @click="cancelDialog">取 消</el-button>
    </div>
  </el-dialog>
</template>
<script>
import {getUIAuthor} from "@/api/authority/ui/uiAuthor";
import {getBizTree, getAllLevelTreeByBtm, clonePageDef, clonetabPage, cloneTabButton} from "@/api/UI/uiDefine";
export default {
@@ -66,6 +65,7 @@
      treeOption: {
        menu: false,
        addBtn: false,
        defaultExpandAll:true,
        props: {
          label: 'text',
          value: 'oid',
@@ -78,7 +78,8 @@
      uiTreeOption: {
        nodeKey: 'oid',
        checkOnClickNode: true,
        defaultExpandedKeys: [],
        defaultExpandAll:true,
        //defaultExpandedKeys: this.defaultExpandKeys,
        multiple: false,
        menu: false,
        addBtn: false,
@@ -104,7 +105,6 @@
    },
    submitDialog() {
      const node = this.$refs.uiTree.getCurrentNode();
      console.log(node);
      if (!node.leaf) {
        this.$message.error('请选择最下层子节点进行克隆');
        return;
@@ -135,7 +135,17 @@
    getTreeList() {
      this.leftLoading = true;
      getBizTree().then(res => {
        this.treeData = res.data.obj.children;
        this.treeData = [{
          attributes: {},
          checked: false,
          expanded: true,
          data: "root",
          level: res.data.obj.level,
          icon: 'vci:home',
          oid: res.data.obj.oid,
          text: res.data.obj.text,
          children: res.data.obj.children
        }] ;
        this.leftLoading = false;
      }).catch(error => {
        this.leftLoading = false;
@@ -143,18 +153,23 @@
    },
    // 角色点击
    nodeClick(row, node) {
      if(row.oid==''){
        return false;
      }
      this.nodeRow = row;
      this.rightLoading = true;
      const params = {
        btmName: this.nodeRow.attributes.name,
        level: this.paramsType
      }
      this.defaultExpandKeys = ['root'];
      console.log(row);
      //this.defaultExpandKeys = ['UILayout'];
      getAllLevelTreeByBtm(params).then(res => {
        this.uiTreeOption.defaultExpandedKeys = [res.data.obj.oid];
        //this.defaultExpandedKeys = [res.data.obj.oid];
        res.data.obj.icon='el-icon-s-home';
        let level=0;
        this.processChildren(res.data.obj,level); // 处理每个节点
        //this.uiTreeOption.defaultExpandedKeys = this.defaultExpandKeys;
        this.uiTreeData = [res.data.obj];
        console.log(res);
        this.rightLoading = false;
      }).catch(error => {
        this.rightLoading = false;
@@ -162,29 +177,25 @@
    },
    //处理树
    processChildren(item) {
    processChildren(item,level) {
      if (item.children && item.children.length > 0) {
        level++;
        item.children = item.children.map(child => {
          if (child.level < 4) {
            this.defaultExpandKeys.push(child.oid)
            //this.defaultExpandKeys.push(child.oid)
          }
          if (child.level == 1) {
          if (level == 1) {
            child.icon = 'el-icon-s-promotion';
            child.label = child.data.label + '(' + child.data.name + ')'
          } else if (child.level == 2) {
          } else if (level == 2) {
            child.icon = 'el-icon-s-order';
            child.label = child.text
          } else if (child.level == 3) {
          } else if (level == 3) {
            child.icon = 'el-icon-office-building';
            child.label = child.text
          } else if (child.level == 4) {
          } else if (level == 4) {
            child.icon = 'el-icon-document';
            child.label = child.text
          } else if (child.level == 5) {
          } else if (level == 5) {
            child.icon = 'el-icon-s-tools';
            child.label = child.text
          }
          this.processChildren(child); // 递归处理每个子节点
          this.processChildren(child,level); // 递归处理每个子节点
          return child; // 只返回子节点的 attributes
        });
      }