田源
2023-07-28 3e20408521d46b1086a5e77b914d04afb9630ab0
Source/UBCS-WEB/src/components/Tree/classifyTrees.vue
@@ -3,7 +3,7 @@
  <el-container>
    <!--    左侧菜单-->
    <el-aside >
      <basic-container style="height: 85vh; max-height: 155vh; overflow-y: scroll;">
      <basic-container style="overflow:hidden;">
        <div>
        <div>
          <div style="display: flex; flex-direction: column;">
@@ -33,14 +33,14 @@
            <el-form-item :label="this.TreeFlag ? '分类名称:' :'主题库名称:'" label-width="110px" style="display: inline-block" prop="name">
              <el-input v-model="TreeAddform.name" autocomplete="off" style="width: 170px"></el-input>
            </el-form-item>
            <el-form-item label="存储的业务类型:" label-width="150px" v-if="TreeFlagCode==false" 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" v-if="TreeFlagCode==false">
              <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.codeKeyAttrRepeatOidName" autocomplete="off" @focus="Keyfouce"
@@ -62,7 +62,7 @@
        </el-dialog>
        <avue-tree ref="tree" v-model="CloneTreeAvueform" v-loading="loading" :data="CloneTreedata" :defaultExpandAll="false"
                   :option="Treeoption"
                   style="height: 80.5vh;padding-top: 5px;padding-bottom: 30px"
                   style="height: calc(100vh - 230px);"
                   @node-click="nodeClick"
                   class="classifyTree"
        >
@@ -71,7 +71,7 @@
      </basic-container>
    </el-aside>
    <el-main>
      <basic-container style="height: 85vh; max-height: 155vh; ">
      <basic-container style="height: calc(100vh - 150px);">
        <!--        右侧表格-->
        <avue-tabs :option="tabOption" @change="handleChange"></avue-tabs>
        <span v-if="type.prop==='tab1'">
@@ -83,9 +83,12 @@
                          @row-save="CrudRowSave"
                          @row-del="CrudRowDel"
                          @row-update="CrudRowUpdata"
                          :before-close="beforeClose"
                          @select="selectHandle"
                          @row-click="rowHandle"
               >
                  <template slot="radio" slot-scope="{row}">
                       <el-radio v-model="selectRow" :label="row.$index" style="padding-left: 10px !important;">{{''}}</el-radio>
                  </template>
            <template slot="menuLeft">
              <el-button plain size="small" type="primary" @click="FindeHanler">查询</el-button>
              <el-button plain size="small" type="primary" @click="TemRefresh">刷新</el-button>
@@ -124,10 +127,10 @@
                      <div style="margin-bottom: 5px"><el-tag>主题库分类</el-tag></div>
                      <!--                      克隆模板的树 沿用首页树的loading和option,但是data和v-model绑定的数据创建一个新的变量,另外点击方法也是重新获取来操作克隆模板的数据-->
                        <avue-tree  v-model="TreeAvueform" v-loading="loading" :data="Treedata"
                                   :defaultExpandAll="false"
                                   :option="Treeoption"
                                   style="height: 50.5vh;margin-right: 10px"
                                   @node-click="ClonenodeClick"
                                    :defaultExpandAll="false"
                                    :option="Treeoption"
                                    style="height: 50.5vh;margin-right: 10px"
                                    @node-click="ClonenodeClick"
                        >
                        </avue-tree>
                    </el-aside>
@@ -172,11 +175,12 @@
            </template>
                  <template #menu="{ size, row ,index}">
                    <el-button type="text"
                               v-if="row.lcStatus != 'Released'"
                               v-if="row.lcStatus == 'Editing'"
                               icon="el-icon-edit-outline "
                                :size="size"
                                @click="$refs.textCrud.rowEdit(row)">编辑</el-button>
                               :size="size"
                               @click="$refs.textCrud.rowEdit(row)">编辑</el-button>
                    <el-button type="text"
                               v-if="row.lcStatus == 'Editing'"
                               icon="el-icon-delete"
                               :size="size"
                               @click="$refs.textCrud.rowDel(row,index)">删除</el-button>
@@ -209,9 +213,8 @@
                >
              </template>
          </avue-crud>
          </basic-container>
          <templatePro :ProData="this.ProData" :crudOid="this.crudOid" :crudArray="this.crudArray" :Formlist="this.Formlist" :codeClassifyOid="this.codeClassifyOid"></templatePro>
          <templatePro :ProData="this.ProData" :rowIndex="this.selectRow" :crudOid="this.crudOid" :crudLCStatus="this.crudLCStatus" :crudArray="this.crudArray" :Formlist="this.Formlist" :codeClassifyOid="this.codeClassifyOid"></templatePro>
        </span>
        <!--     编码规则-->
        <el-dialog  :visible.sync="MasterdialogVisible"   title="为【编码规则】选取值" append-to-body>
@@ -343,6 +346,7 @@
  inject: ["crudTreeData"],
  data() {
    return {
      selectRow:'',
      //树节点显示隐藏
      TreeFlagCode:false,
      //编码规则
@@ -351,7 +355,7 @@
      masterSelectList:[],
      masterName:"",
      masterOid:"",
      //关键属性
      //关键属性btmTypeId
      KeydialogVisible:false,
      KeyName:"",
      KeyOid:"",
@@ -403,17 +407,11 @@
      ],
      SelectValue:"",
      SelectFInd:"",
      rules: {
        id: [
          { required: true, message: '请输入名称', trigger: 'blur' },
        ],
        name:[
          { required: true, message: '请输入编号', trigger: 'blur' },
        ]
      },
      addFlag:false,
      // 表格当前行id
      crudOid:"",
      //当前选中模板状态
      crudLCStatus:'',
      //表格当前选择数组
      crudArray:[],
      //模板属性展示内容
@@ -475,6 +473,17 @@
        codeRuleOidName: "",
        //存储的业务类型
        btmTypeName: ""
      },
      rules: {
        id: [
          { required: true, message: '请输入名称', trigger: 'blur' },
        ],
        name:[
          { required: true, message: '请输入编号', trigger: 'blur' },
        ],
        btmTypeName:[
          { required: true, message: '请选择业务类型', trigger: 'blur' },
        ]
      },
      //avue-tree数据,暂时没有作用,里面功能用element写了,只用avue的一个树组件不用内置表单了。
      TreeAvueform: {},
@@ -625,13 +634,13 @@
        },
        stopLose: {
          tip: "模板只有发布状态才能被使用,是否确定停用?",
          typeText: "停用/失效",
          typeText: "停用",
          funAPi: stopLose,
          load: 'stopLoseLoad'
        },
        startRelease: {
          tip: "是否确定启用/发布这个模板,模板只有发布状态才能被使用,是否继续?",
          typeText: "启用/发布",
          typeText: "启用",
          funAPi: startRelease,
          load: 'startReleaseLoad'
        }
@@ -660,11 +669,16 @@
        index: true,
        border: true,
        height:180,
        selection:true,
        addBtn:this.Formlist.length<=0  && this.nodeClickList != "",
        editBtn:false,
        delBtn:false,
        column: [
          {
            label: '',
            prop: 'radio',
            width: 60,
            hide: false,
          },
          {
            label: "模板编号",
            prop: "id",
@@ -785,8 +799,8 @@
          'conditionMap[id]':this.SelectFInd
        }
        this.KeydefaultRend(masterParameter);
        this.SelectValue=""
        this.SelectFInd=""
        this.SelectValue="";
        this.SelectFInd="";
      }else if(this.SelectValue == 'name'){
        const masterParameter={
          'conditionMap[name]':this.SelectFInd
@@ -897,34 +911,53 @@
        const masterParameter={
          'conditionMap[name]':this.SelectFInd
        }
        this.btmdefaultRend(masterParameter)
        this.SelectValue=""
        this.SelectFInd=""
        this.btmdefaultRend(masterParameter);
        this.SelectValue="";
        this.SelectFInd="";
      }
    },
    //业务类型多选
    btmSelect(row){
      this.btmSelectList=row;
      this.btmName=row[0].name;
      this.btmOid=row[0].oid;
      this.btmOid=row[0].id;
    },
    //业务类型接口
    btmdefaultRend(masterParameter){
      referDataGrid({valueField:'id',isMuti:'false',...masterParameter}).then(res=>{
        // console.log(res)
        this.BtmData=res.data.data.records
      })
    },
    //子传父
    MasterHandler(val){
      this.TreeList=val
      this.TreeList=val;
    },
    //行单选事件
    selectHandle(selection,row){
    rowHandle(row, column){
      this.selectRow=row.$index;
      this.crudOid=row.oid;
      this.crudArray=selection;
      gridCodeClassifyTemplateAttr({'conditionMap[classifyTemplateOid]': this.Formlist[0].oid}).then(res => {
      this.crudLCStatus=row.lcStatus;
      this.crudArray.push(row);
      console.log(row.$index)
      gridCodeClassifyTemplateAttr({'conditionMap[classifyTemplateOid]': row.oid}).then(res => {
        this.ProData = res.data.data;
        //分类注入数据格式
        this.ProData =  res.data.data.map((item) => {
          //如果分类注入classifyInvokeAttr为空说明是初始状态
          if(item.classifyInvokeAttr !== ''){
            if (!item.hasOwnProperty('classifyInvokeText')) { // 检查classifyInvokeText属性是否存在
              item = {
                ...item,
                classifyInvokeText: {
                  "注入类型": item.classifyInvokeAttr,
                  "注入类型名称": item.classifyInvokeAttrName,
                  "层级设置": item.classifyInvokeLevel,
                  "是否可修改": item.classifyInvokeEditFlag
                }
              };
            }
          }
          return item;
        });
      }).catch(res => {
        this.$message.error(res)
      })
@@ -1222,6 +1255,7 @@
        });
      } else {
        this.$set(row, "codeclassifyoid", this.nodeClickList.oid)
        console.log(this.nodeClickList)
        addSave(row).then(() => {
          this.$message({
            type: "success",
@@ -1389,6 +1423,15 @@
</script>
<style lang="scss" scoped>
.el-container{
  height: 100%;
}
.el-aside {
  height: calc(100% - 30px);
}
.el-main {
  height: calc(100% - 30px);
}
.el-form {
  display: flex;
  flex-wrap: wrap; /* 设置可换行,以便在小屏幕设备上使用多行布局 */