田源
2023-12-27 fab1e8f1779f98cc43816e6b06c55458a1bd1133
Source/UBCS-WEB/src/components/Theme/ThemeClassifyTrees.vue
@@ -32,95 +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="flowingDependHandler">流水处理
              <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 v-if="permissionList.classifyAuth" plain size="mini" type="primary"
                         @click="classifyAuthHandler">分类授权
              </el-button>
            </div>
          </div>
        </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">
        <!-- 左侧树-->
        <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-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>
           <!-- 分类授权对话框-->
           <classify-auth-dialog
              :visible.sync="classifyAuthVisible"
              :classifyData="classifyData"
              ></classify-auth-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>
@@ -128,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'">
@@ -450,7 +453,7 @@
import ClassifyAuth from './ClassifyAuthDialog.vue';
export default {
  components: { ClassifyAuth },
  components: {ClassifyAuth},
  name: "classifyTrees.vue",
  data() {
    return {
@@ -494,7 +497,7 @@
      masterOption: {
        addBtn: false,
        index: true,
        refreshBtn:false,
        refreshBtn: false,
        columnBtn: false,
        border: true,
        menu: false,
@@ -524,7 +527,7 @@
        addBtn: false,
        index: true,
        columnBtn: false,
        refreshBtn:false,
        refreshBtn: false,
        border: true,
        menu: false,
        height: 380,
@@ -789,7 +792,7 @@
        }
      ],
      //传递给子组件动态渲染的数据
      TreeList: {},
      TreeEditObj: {},
      codeClassifyOid: "",
      upAndStopAndStartData: {
        upVersion: {
@@ -824,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)
@@ -911,16 +913,16 @@
  },
  methods: {
    // 分类授权对话框打开
    classifyAuthHandler(){
      if(this.nodeClickList.oid === '' || this.nodeClickList.oid === undefined){
    classifyAuthHandler() {
      if (this.nodeClickList.oid === '' || this.nodeClickList.oid === undefined) {
        this.$message.warning('请至少选择一条数据!')
        return;
      }
      this.classifyData = this.nodeClickList;
      this.classifyAuthVisible = true;
    },
    flowingDependHandler(){
      if(this.nodeClickList.length <=0 ){
    flowingDependHandler() {
      if (this.nodeClickList.length <= 0) {
        this.$message.warning('请至少选择一条数据!')
        return;
      }
@@ -1153,7 +1155,7 @@
    },
    //子传父
    MasterHandler(val) {
      this.TreeList = val;
      this.TreeEditObj = val;
    },
    rowHandle(row, column) {
      this.selectRow = row.$index;
@@ -1333,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;
    },
    //启用和停用都先判断状态
    //启用
@@ -1455,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) {
@@ -1494,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)
      })