田源
2024-01-25 eac13244556686dfecf5aaeb6efee931745b9cd7
Source/UBCS-WEB/src/components/Theme/ThemeClassifyTrees.vue
@@ -6,33 +6,39 @@
      <basic-container>
        <div style="height: calc(100vh - 142px);!important;">
          <div class="headerCon" style="display: flex; flex-wrap: wrap;margin-bottom: 5px">
            <el-button plain size="small" type="primary" @click="TreeAdd">添加
            <el-button v-if="permissionList.TreeAddStatus" plain size="small" type="primary" @click="TreeAdd">添加
            </el-button>
            <el-button v-if="permissionList.TreeEditStatus" plain size="small" type="primary" @click="TreeEdit">修改
            <el-button v-if="permissionList.TreeEditStatus" v-show="allButtons" plain size="small" type="primary"
                       @click="TreeEdit">修改
            </el-button>
            <el-button v-if="permissionList.TreeDelStatus" plain size="small" type="primary" @click="TreeDel">删除
            <el-button v-if="permissionList.TreeDelStatus" v-show="allButtons" plain size="small" type="primary"
                       @click="TreeDel">删除
            </el-button>
            <el-button v-if="permissionList.flushedStatus" plain size="small" type="primary" @click="flushed">刷新
            <el-button v-if="permissionList.flushedStatus" v-show="allButtons" plain size="small" type="primary"
                       @click="flushed">刷新
            </el-button>
            <el-button v-if="permissionList.EnableStatus" plain size="small" type="primary" @click="Enable">启用
            <el-button v-if="permissionList.EnableStatus" v-show="allButtons" plain size="small" type="primary"
                       @click="Enable">启用
            </el-button>
            <el-button v-if="permissionList.DeactivateStatus" plain size="small" type="primary" @click="Deactivate">停用
            <el-button v-if="permissionList.DeactivateStatus" v-show="allButtons" plain size="small" type="primary"
                       @click="Deactivate">停用
            </el-button>
            <el-button v-if="permissionList.ImportExcelStatus" plain size="small" type="primary"
            <el-button v-if="permissionList.ImportExcelStatus" v-show="allButtons" plain size="small" type="primary"
                       @click.native="ImportExcel">导入
            </el-button>
            <el-button v-if="permissionList.ExportExcelStatus" plain size="small" type="primary" @click="ExportExcel">
            <el-button v-if="permissionList.ExportExcelStatus" v-show="allButtons" plain size="small" type="primary"
                       @click="ExportExcel">
              导出
            </el-button>
            <el-button v-if="permissionList.flowingBtnStuatus" plain
            <el-button v-if="permissionList.flowingBtnStuatus" v-show="allButtons" plain
                       size="small" style="width: 56px;text-align: center;padding-left: 3px" type="primary"
                       @click="flowingDependHandler">流水处理
            </el-button>
            <el-button v-if="permissionList.classifyAuth" plain size="small"
            <el-button v-if="permissionList.classifyAuth" v-show="allButtons" plain size="small"
                       style="width: 56px;text-align: center;padding-left: 3px" type="primary"
                       @click="classifyAuthHandler">分类授权
            </el-button>
            <el-button v-if="permissionList.classifyAuth" plain size="small"
            <el-button v-if="permissionList.classifyAuth" v-show="allButtons" plain size="small"
                       style="width: 56px;text-align: center;padding-left: 3px" type="primary"
                       @click="dataAuthHandler">数据授权
            </el-button>
@@ -122,9 +128,9 @@
        ></classify-auth-dialog>
        <!-- 数据授权对话框 -->
        <data-auth-dialog
          :TreeNode="TreeEditObj"
          :classifyData="classifyData"
          :visible.sync="dataAuthVisible"
          :TreeNode="TreeEditObj"
        ></data-auth-dialog>
      </basic-container>
    </el-aside>
@@ -372,6 +378,7 @@
  name: "classifyTrees.vue",
  data() {
    return {
      allButtons: Boolean,
      btnAuthList: [],
      activeName: 'first',
      masterRow: null,
@@ -673,6 +680,7 @@
        this.$refs.tree.setCurrentKey(null);
        this.nodeClickList = {};
        this.TreeFlagCode = true;
        this.allButtons = false;
        // this.$nextTick(()=>{
        //   this.btnAuthList = [];
        // })
@@ -683,7 +691,7 @@
    ...mapGetters(["permission"]),
    permissionList() {
      return {
        TreeAddStatus: this.vaildData(this.btnAuthList.tree_add, false),
        TreeAddStatus: this.vaildData(this.permission.classifyTree.tree_add, false),
        TreeEditStatus: this.vaildData(this.btnAuthList.tree_edit, false),
        TreeDelStatus: this.vaildData(this.btnAuthList.tree_delete, false),
        flushedStatus: this.vaildData(this.btnAuthList.tree_break, false),
@@ -709,7 +717,7 @@
        border: true,
        columnBtn: false,
        height: 150,
        refreshBtn:false,
        refreshBtn: false,
        addBtn: this.Formlist.length <= 0 && this.nodeClickList != "",
        editBtn: false,
        delBtn: false,
@@ -1143,7 +1151,10 @@
    },
    //树点击事件
    async nodeClick(data) {
      getAuthButtonList({classifyId: data.oid,code: "classifyTree",authType: "classify_auth"}).then(res => {
        const response = this.findTheTopLevelNode(data,this.Treedata)
        console.log('response',response.label)
      this.allButtons = true;
      getAuthButtonList({classifyId: data.oid, code: "classifyTree", authType: "classify_auth"}).then(res => {
        this.btnAuthList = res.data.data;
      }).catch(error => {
        console.log(error)
@@ -1187,6 +1198,32 @@
      }
    },
    // 递归查找顶层节点Id
    findTheTopLevelNode(data,TreeData){
      if(data.parentId === ""){
        return data;
      }
      const parentNode = this.findParentNode(data.parentId, TreeData);
      if (parentNode) {
        return this.findTheTopLevelNode(parentNode, TreeData); // 继续查找父节点
      }
    },
    // 递归查找出来多层节点的父节点
    findParentNode(parentId, TreeData){
      for (const node of TreeData) {
        if (node.oid === parentId) {
          return node;
        }
        // 如果当前节点还有子节点,继续去查子节点的父节点
        if (node.children) {
          const parentNode = this.findParentNode(parentId, node.children);
          if (parentNode) {
            return parentNode;
          }
        }
      }
      return null;
    },
    async gridCode() {
      try {
        const res = await gridCodeClassifyTemplateAttr({