ludc
2023-12-27 42726b70e761da50251a886d239c7d456b5044af
Source/UBCS-WEB/src/components/Theme/ThemeClassifyTrees.vue
@@ -32,79 +32,98 @@
              </div>
            </div>
            <div style="display: flex;margin-top: 5px;margin-bottom: 5px">
              <el-button v-if="permissionList.flowingBtnStuatus" plain size="mini" type="primary" @click="testHandler">流水处理
              <el-button v-if="permissionList.flowingBtnStuatus" plain size="mini" type="primary"
                         @click="flowingDependHandler">流水处理
              </el-button>
              <el-button v-if="permissionList.classifyAuth" plain size="mini" type="primary"
                         @click="classifyAuthHandler">分类授权
              </el-button>
            </div>
          </div>
        </div>
          <!--          左侧树-->
          <div style="height: calc(100vh - 257px);overflow: auto">
            <avue-tree ref="tree" v-model="CloneTreeAvueform" v-loading="loading" :data="CloneTreedata"
                       :defaultExpandAll="false"
                       :option="Treeoption"
                       class="classifyTree"
                       style="height: calc(100vh - 310px)"
                       @node-click="nodeClick"
            >
            </avue-tree>
          </div>
        <!-- 左侧树-->
        <div style="height: calc(100vh - 230px);overflow: auto">
          <avue-tree ref="tree" v-model="CloneTreeAvueform" v-loading="loading" :data="CloneTreedata"
                     :defaultExpandAll="false"
                     :option="Treeoption"
                     class="classifyTree"
                     style="height: calc(100vh - 290px)"
                     @node-click="nodeClick"
          >
            <template slot-scope="{ node, data }" class="el-tree-node__label">
              <el-tooltip :content="$createElement('div', { domProps: { innerHTML: node.label } })" class="item"
                          effect="dark"
                          open-delay="500"
                          placement="right-start">
                <span style="font-size: 14px;">
                {{ (node || {}).label }}
              </span>
              </el-tooltip>
            </template>
          </avue-tree>
        </div>
          <!--        树节点添加对话框-->
          <el-dialog v-loading="AddLoading" :before-close="TreeEscHandler"
                     :title="this.TreeFlag ? '添加分类' :'添加主题库'" :visible.sync="TreeAddFormVisible" append-to-body
                     style="width: 1700px;margin: auto">
            <el-form ref="myForm" :model="TreeAddform" :rules="rules">
              <el-form-item :label="this.TreeFlag ? '分类编号:' :'主题库编号:'" label-width="150px" prop="id"
                            style="display: inline-block">
                <el-input v-model="TreeAddform.id" autocomplete="off" style="width: 170px"></el-input>
              </el-form-item>
              <el-form-item :label="this.TreeFlag ? '分类名称:' :'主题库名称:'" label-width="110px" prop="name"
                            style="display: inline-block">
                <el-input v-model="TreeAddform.name" autocomplete="off" style="width: 170px"></el-input>
              </el-form-item>
              <el-form-item v-if="TreeFlagCode" label="存储的业务类型:" label-width="150px" prop="btmTypeName">
                <el-input v-model="TreeAddform.btmTypeName" autocomplete="off" style="width: 585px"
                          @focus="btmFoucus"></el-input>
              </el-form-item>
              <el-form-item label="描述:" label-width="150px">
                <el-input v-model="TreeAddform.description" autocomplete="off" style="width: 585px"></el-input>
              </el-form-item>
              <el-form-item label="编码规则:" label-width="150px">
                <el-input v-model="TreeAddform.codeRuleOidName" autocomplete="off" style="width: 585px"
                          @focus="CodeFoucus"></el-input>
              </el-form-item>
              <el-form-item label="关键属性查询规则:" label-width="150px">
                <el-input v-model="TreeAddform.codeKeyAttrRepeatOidName" autocomplete="off" style="width: 585px"
                          @focus="Keyfouce"></el-input>
              </el-form-item>
              <el-form-item label="是否参与关键属性校验:" label-width="170px">
                <el-switch
                  v-model="TreeAddform.codeKeyAttrValue"
                  active-color="#13ce66"
                  active-text="是"
                  inactive-color="#ff4949"
                  inactive-text="否"
                  @change="switchChange">
                </el-switch>
              </el-form-item>
              <el-form-item label="相似查询规则:" label-width="150px">
                <el-input v-model="TreeAddform.codeResembleRuleOidName" autocomplete="off" style="width: 585px"
                          @focus="simFouce"></el-input>
              </el-form-item>
            </el-form>
            <div slot="footer" class="dialog-footer">
              <el-button @click="TreeEscHandler">取 消</el-button>
              <el-button type="primary" @click="TreeAddHandler">确 定</el-button>
            </div>
          </el-dialog>
          <!--        修改对话框-->
          <el-dialog :visible.sync="TreeEditFormVisible" append-to-body title="修改分类">
            <classifyTreeform ref="childForm" :Editclose=" ()=>{TreeEditFormVisible=false}" :TreeFlag="editTreeFLagCode"
                              :flag="'edit'"
                              :loneTreeNewForm="TreeList" :nodeClickList="nodeClickList"
                              :nodeList="nodeList" @MasterHandler="MasterHandler" @flushed="flushed"
                              @referTreeForm="referTreeForm"></classifyTreeform>
          </el-dialog>
        <!-- 树节点添加对话框-->
        <el-dialog v-loading="AddLoading" :before-close="TreeEscHandler"
                   :title="this.TreeFlag ? '添加分类' :'添加主题库'" :visible.sync="TreeAddFormVisible" append-to-body
                   style="width: 1700px;margin: auto">
          <el-form ref="myForm" :model="TreeAddform" :rules="rules">
            <el-form-item :label="this.TreeFlag ? '分类编号:' :'主题库编号:'" label-width="150px" prop="id"
                          style="display: inline-block">
              <el-input v-model="TreeAddform.id" autocomplete="off" style="width: 170px"></el-input>
            </el-form-item>
            <el-form-item :label="this.TreeFlag ? '分类名称:' :'主题库名称:'" label-width="110px" prop="name"
                          style="display: inline-block">
              <el-input v-model="TreeAddform.name" autocomplete="off" style="width: 170px"></el-input>
            </el-form-item>
            <el-form-item v-if="TreeFlagCode" label="存储的业务类型:" label-width="150px" prop="btmTypeName">
              <el-input v-model="TreeAddform.btmTypeName" autocomplete="off" style="width: 585px"
                        @focus="btmFoucus"></el-input>
            </el-form-item>
            <el-form-item label="描述:" label-width="150px">
              <el-input v-model="TreeAddform.description" autocomplete="off" style="width: 585px"></el-input>
            </el-form-item>
            <el-form-item label="编码规则:" label-width="150px">
              <el-input v-model="TreeAddform.codeRuleOidName" autocomplete="off" style="width: 585px"
                        @focus="CodeFoucus"></el-input>
            </el-form-item>
            <el-form-item label="关键属性查询规则:" label-width="150px">
              <el-input v-model="TreeAddform.codeKeyAttrRepeatOidName" autocomplete="off" style="width: 585px"
                        @focus="Keyfouce"></el-input>
            </el-form-item>
            <el-form-item label="是否参与关键属性校验:" label-width="170px">
              <el-switch
                v-model="TreeAddform.codeKeyAttrValue"
                active-color="#13ce66"
                active-text="是"
                inactive-color="#ff4949"
                inactive-text="否"
                @change="switchChange">
              </el-switch>
            </el-form-item>
            <el-form-item label="相似查询规则:" label-width="150px">
              <el-input v-model="TreeAddform.codeResembleRuleOidName" autocomplete="off" style="width: 585px"
                        @focus="simFouce"></el-input>
            </el-form-item>
          </el-form>
          <div slot="footer" class="dialog-footer">
            <el-button @click="TreeEscHandler">取 消</el-button>
            <el-button type="primary" @click="TreeAddHandler">确 定</el-button>
          </div>
        </el-dialog>
        <!-- 修改对话框-->
        <el-dialog :visible.sync="TreeEditFormVisible" append-to-body title="修改分类">
          <classifyTreeform ref="childForm" :Editclose=" ()=>{TreeEditFormVisible=false}" :TreeFlag="editTreeFLagCode"
                            :flag="'edit'"
                            :loneTreeNewForm="TreeEditObj" :nodeClickList="nodeClickList"
                            :nodeList="nodeList" @MasterHandler="MasterHandler" @flushed="flushed"
                            @referTreeForm="referTreeForm"></classifyTreeform>
        </el-dialog>
        <!-- 分类授权对话框-->
        <classify-auth-dialog
          :classifyData="classifyData"
          :visible.sync="classifyAuthVisible"
        ></classify-auth-dialog>
      </basic-container>
    </el-aside>
    <el-main>
@@ -112,7 +131,7 @@
        <!--        右侧表格-->
        <avue-tabs :option="tabOption" @change="handleChange"></avue-tabs>
        <span v-if="type.prop==='tab1'">
           <classifyTreeform ref="childForm" :flag="'renonly'" :loneTreeNewForm="TreeList"
           <classifyTreeform ref="childForm" :flag="'renonly'" :loneTreeNewForm="TreeEditObj"
                             :nodeList="nodeList"></classifyTreeform>
        </span>
        <span v-else-if="type.prop==='tab2'">
@@ -431,8 +450,10 @@
import {defaultReferDataGrid, referDataGrid} from '@/api/MasterData/master'
import func from "@/util/func";
import {mapGetters} from "vuex";
import ClassifyAuth from './ClassifyAuthDialog.vue';
export default {
  components: {ClassifyAuth},
  name: "classifyTrees.vue",
  data() {
    return {
@@ -476,6 +497,8 @@
      masterOption: {
        addBtn: false,
        index: true,
        refreshBtn: false,
        columnBtn: false,
        border: true,
        menu: false,
        height: 380,
@@ -504,6 +527,7 @@
        addBtn: false,
        index: true,
        columnBtn: false,
        refreshBtn: false,
        border: true,
        menu: false,
        height: 380,
@@ -595,6 +619,8 @@
      TreeEditFormVisible: false,
      //添加对话框
      TreeAddFormVisible: false,
      //分类授权对话框
      classifyAuthVisible: false,
      //当前点击项
      nodeClickList: "",
      ClonenodeClickList: "",
@@ -766,7 +792,7 @@
        }
      ],
      //传递给子组件动态渲染的数据
      TreeList: {},
      TreeEditObj: {},
      codeClassifyOid: "",
      upAndStopAndStartData: {
        upVersion: {
@@ -790,6 +816,8 @@
      },
      //模板管理编辑
      showEditBtn: false,
      //传递给分类授权子组件对话框的当前选中的分类节点信息
      classifyData: "",
    }
  },
  watch: {},
@@ -799,9 +827,8 @@
    const treeEle = this.$refs.tree.$el
    treeEle.addEventListener('click', (e) => {
      if (e.target.nodeName !== 'SPAN') {
        this.$refs.tree.setCurrentKey(null)
        this.nodeClickList = {}
        this.TreeList = []
        this.$refs.tree.setCurrentKey(null);
        this.nodeClickList = {};
        this.TreeFlagCode = true;
      }
    }, true)
@@ -822,6 +849,7 @@
        TemRefreshStatus: this.vaildData(this.permission.classifyTree.manage_break, false),
        CloneBtnStuatus: this.vaildData(this.permission.classifyTree.manage_clone, false),
        flowingBtnStuatus: this.vaildData(this.permission.classifyTree.tree_flowing, false),
        classifyAuth: this.vaildData(this.permission.classifyTree.classify_auth, false),
      }
    },
    crudTreeOption() {
@@ -884,11 +912,17 @@
  created() {
  },
  methods: {
    handleTabClick(){
    // 分类授权对话框打开
    classifyAuthHandler() {
      if (this.nodeClickList.oid === '' || this.nodeClickList.oid === undefined) {
        this.$message.warning('请至少选择一条数据!')
        return;
      }
      this.classifyData = this.nodeClickList;
      this.classifyAuthVisible = true;
    },
    testHandler(){
      if(this.nodeClickList.length <=0 ){
    flowingDependHandler() {
      if (this.nodeClickList.length <= 0) {
        this.$message.warning('请至少选择一条数据!')
        return;
      }
@@ -1121,7 +1155,7 @@
    },
    //子传父
    MasterHandler(val) {
      this.TreeList = val;
      this.TreeEditObj = val;
    },
    rowHandle(row, column) {
      this.selectRow = row.$index;
@@ -1301,11 +1335,11 @@
    },
    //树刷新
    async flushed() {
        await this.getAttr()
        this.$refs.tree.setCurrentKey(null);
        this.nodeClickList = {}
        this.TreeList = []
        this.TreeFlagCode = true;
      await this.getAttr()
      this.$refs.tree.setCurrentKey(null);
      this.nodeClickList = {};
      this.TreeEditObj = {};
      this.TreeFlagCode = true;
    },
    //启用和停用都先判断状态
    //启用
@@ -1423,9 +1457,9 @@
          this.ProData = [];
          this.crudOid = ''
        }
        this.TreeList = res3.data.data;
        if (this.TreeList.isParticipateCheck === null || this.TreeList.isParticipateCheck === undefined || this.TreeList.isParticipateCheck === "") {
          this.$set(this.TreeList, "isParticipateCheck", 1)
        this.TreeEditObj = res3.data.data;
        if (this.TreeEditObj.isParticipateCheck === null || this.TreeEditObj.isParticipateCheck === undefined || this.TreeEditObj.isParticipateCheck === "") {
          this.$set(this.TreeEditObj, "isParticipateCheck", 1)
          return
        }
      } catch (error) {
@@ -1462,7 +1496,7 @@
    //基本信息表单刷新
    referTreeForm() {
      getObjectByOid(this.nodeClickList.oid).then(res => {
        this.TreeList = res.data.data;
        this.TreeEditObj = res.data.data;
      }).catch(res => {
        this.$message.error(res)
      })