田源
2023-07-27 4b88f8fa8ff1e401abaf606db815546af68e0c86
Source/UBCS-WEB/src/components/Tree/attrCrud.vue
@@ -115,23 +115,23 @@
          <div style="padding-top: 15px;padding-left: 35px">
            <el-form ref="injectForm" label-width="80px">
              <el-form-item label="注入类型">
                <el-radio-group v-model="injectOption.type">
                  <el-radio label="分类名称"></el-radio>
                  <el-radio label="分类代号"></el-radio>
                <el-radio-group v-model="injectOption.classifyInvokeAttr">
                  <el-radio label="name">分类名称</el-radio>
                  <el-radio label="id">分类代号</el-radio>
                </el-radio-group>
              </el-form-item>
              <el-form-item label="层级设置">
                <el-radio-group v-model="injectOption.set">
                  <el-radio label="最小层"></el-radio>
                  <el-radio label="指定层"></el-radio>
                  <el-input-number v-if="this.injectOption.set == '指定层'" v-model="injectOption.injectNum" :max="10" :min="0"
                <el-radio-group v-model="injectOption.classifyInvokeLevel">
                  <el-radio label="min">最小层</el-radio>
                  <el-radio label="max">指定层</el-radio>
                  <el-input-number v-if="this.injectOption.classifyInvokeLevel == 'max'" v-model="injectOption.classifyNumber" :max="10" :min="0"
                                   controls-position="right"></el-input-number>
                </el-radio-group>
              </el-form-item>
              <el-form-item label="可修改">
                <el-radio-group v-model="injectOption.change">
                  <el-radio label="是"></el-radio>
                  <el-radio label="否"></el-radio>
                <el-radio-group v-model="injectOption.classifyInvokeEditFlag">
                  <el-radio label="true">是</el-radio>
                  <el-radio label="false">否</el-radio>
                </el-radio-group>
              </el-form-item>
            </el-form>
@@ -246,6 +246,7 @@
              @selection-change="selectionChange"
              v-if="this.crudArrayFlag"
              ref="referAttrCrud"
              v-loading="loading"
    >
      <el-table-column
        type="selection"
@@ -354,10 +355,40 @@
      },
      deep:true,
      immediate:true
    }
    },
    'injectOption.classifyInvokeAttr': function(newVal) {
      console.log('newVal',newVal)
      if (newVal === "name") {
        this.injectOption.classifyInvokeAttrName='分类名称'
      } else if (newVal === "id") {
        this.injectOption.classifyInvokeAttrName='分类代号'
      }
      return '';
    },
        ProData: {
          handler(newVal, oldVal) {
            if(this.initializing){
              newVal.forEach((item) => {
                item.classifyInvokeText = {
                  "注入类型": item.classifyInvokeAttr,
                  "注入类型名称": item.classifyInvokeAttrName,
                  "层级设置": item.classifyInvokeLevel,
                  "是否可修改": item.classifyInvokeEditFlag
                };
              });
            }
            this.ProData=newVal;
            this.initializing = false;
            console.log('ProData',this.ProData)
          },
          deep: true,
          immediate:true
      },
  },
  data() {
    return {
      initializing:false,
      loading:false,
      referConfigText:"",
      referConfigVisble:false,
      referConfigOption:{
@@ -787,11 +818,12 @@
      addvisible: false,
      //分类注入option
      injectOption: {
        type: "分类名称",
        set: "最小层",
        change: "是",
        classifyInvokeAttrName:'分类名称',
        classifyInvokeAttr: "name",
        classifyInvokeEditFlag: "true",
        classifyInvokeLevel:'min',
        //分类注入计数器
        injectNum: 0,
        classifyNumber:0,
      },
      // 属性验证输入框
      RulesForm: {
@@ -1220,15 +1252,9 @@
          },
          {
            label: "分类注入",
            prop: "classifyInvokeLevelName",
            prop: "classifyInvokeText",
            cell: false,
            edit: 'refer'
          },
          {
            label: "分类注入",
            prop: "classifyInvokeLevel",
            cell: false,
            edit: 'referName',
          },
          {
            label: "枚举注入",
@@ -1357,7 +1383,7 @@
        oids.push(ele.oid);
      });
      return oids.join(",");
    }
    },
  },
  mounted() {
  },
@@ -1435,7 +1461,12 @@
    CrudRend() {
      if (this.crudOid != '') {
        gridCodeClassifyTemplateAttr({'conditionMap[classifyTemplateOid]': this.crudOid}).then(res => {
          this.ProData = res.data.data;
          this.loading=true
          setTimeout(() => {
            this.ProData = res.data.data;
            this.loading=false
          }, 1000);
        }).catch(res => {
          this.$message.error(res)
        })
@@ -1579,7 +1610,7 @@
        }
        console.log('--',this.referConfigOption)
        // this.$refs.referConfigFormDialog.onloadAttrData();
      }else if(column.property == 'classifyInvokeLevelName'){
      }else if(column.property == 'classifyInvokeText'){
        this.injectVisible=true;
      }else if(column.property == 'componentRule'){
        if(this.CurrentCell){
@@ -1730,35 +1761,58 @@
      } else if (this.attrSelectList.length < 1) {
        this.$message.warning('请选择一条模板数据')
      } else if (this.attrSelectList.length === 1) {
        console.log(this.injectOption)
        this.injectVisible = true;
      }
    },
    //分类注入保存
    injectAddHandle() {
      // 定义展示类型
      let data = {
        "注入类型": this.injectOption.type,
        "注入类型名称": this.injectOption.set,
        "层级设置": this.injectOption.injectNum,
        "是否可修改": this.injectOption.change
        "注入类型": this.injectOption.classifyInvokeAttr,
        "注入类型名称": this.injectOption.classifyInvokeAttrName,
        "层级设置": this.injectOption.classifyInvokeLevel=='max'?this.injectOption.classifyNumber :'min',
        "是否可修改": this.injectOption.classifyInvokeEditFlag
      }
      //单元格编辑赋值一遍
      if(this.CurrentCell){
        this.$set(this.CurrentCell, "classifyInvokeLevelName", data);
        this.$set(this.CurrentCell, "classifyInvokeLevel", JSON.stringify(this.injectOption));
        //如果是指定层赋值为数字
        if(this.CurrentCell.classifyInvokeLevel!== 'min'){
          this.CurrentCell.classifyInvokeLevel=this.injectOption.classifyNumber
        }
        //其余正常赋值
        this.CurrentCell.classifyInvokeAttr=this.injectOption.classifyInvokeAttr,
        this.CurrentCell.classifyInvokeAttrName=this.injectOption.classifyInvokeAttrName,
        this.CurrentCell.classifyInvokeEditFlag=this.injectOption.classifyInvokeEditFlag,
        this.$set(this.CurrentCell, "classifyInvokeText", data);
        this.injectHandleReset()
      }else {
        this.$set(this.attrSelectList[0], 'classifyInvokeLevelName', data);
        this.$set(this.attrSelectList[0], 'classifyInvokeLevel', JSON.stringify(this.injectOption));
        //勾选操作
        for (const key in this.injectOption) {
          this.attrSelectList[0][key] = this.injectOption[key];
          //如果是指定层赋值为数字
          if(this.injectOption.classifyInvokeLevel !== 'min'){
            this.attrSelectList[0].classifyInvokeLevel=this.injectOption.classifyNumber
          }
          this.$set(this.attrSelectList[0],'classifyInvokeText',data)
        }
        this.injectHandleReset()
      }
      this.injectVisible = false
      if(this.injectOption.classifyInvokeLevel !== 'min'){
        this.injectOption.classifyInvokeLevel=this.injectOption.classifyNumber;
      }else  {
        this.injectOption.classifyNumber=0;
      }
      this.injectVisible = false;
    },
    //分类注入清空
    injectHandleReset() {
      this.injectOption.type = "分类名称";
      this.injectOption.set = "最小层";
      this.injectOption.change = "是";
      this.injectOption.injectNum = "0";
      this.injectOption.classifyInvokeAttrName = "分类名称";
      this.injectOption.classifyInvokeAttr = "name";
      this.injectOption.classifyInvokeLevel = "min";
      this.injectOption.classifyInvokeEditFlag = "true";
      this.injectOption.classifyNumber = "0";
    },
    // 分类注入取消
    injectRemove() {
@@ -1778,12 +1832,7 @@
    },
    //表格重置
    reset() {
      // this.CrudRend(
      this.referConfigVisble=true;
      this.referConfigOption = {
        referConfig: 'confing',
      }
      console.log(this.referConfigOption)
      this.CrudRend()
    },
    //同步到其他模板
    syncHandle() {