田源
2023-07-27 4b88f8fa8ff1e401abaf606db815546af68e0c86
Source/UBCS-WEB/src/components/Tree/attrCrud.vue
@@ -1,38 +1,38 @@
<template>
  <div>
    <div style="display: flex;flex-wrap: wrap;" v-if="this.crudArrayFlag">
      <el-button-group>
    <div style="display: flex;flex-wrap: wrap;" v-if="this.crudArrayFlag"class="app">
      <!--新增-->
      <el-button v-if="attrEditVisible == false && attrFlagChiledren==false" size="small" type="primary" icon="el-icon-plus" @click="busineHandle">添加 {{ msg }}</el-button>
      <el-button v-if="attrEditVisible == false && attrFlagChiledren==false && (!checkStatus || crudLCStatus=='Editing')" size="small" type="primary" icon="el-icon-plus" @click="busineHandle">添加 {{ msg }}</el-button>
      <!--        全屏编辑-->
      <el-button v-if=" attrEditVisible == false && attrFlagChiledren==false" size="small" @click="fullscreenHandle" icon="el-icon-full-screen">全屏编辑</el-button>
      <el-button v-if=" attrEditVisible == false && attrFlagChiledren==false && (!checkStatus || crudLCStatus=='Editing')" size="small" @click="fullscreenHandle" icon="el-icon-full-screen">全屏编辑</el-button>
      <!--        验证规则-->
      <el-button icon="el-icon-info" size="small" @click="rulesVisible=true">验证规则</el-button>
      <el-button v-if="!checkStatus || crudLCStatus=='Editing'" icon="el-icon-info" size="small" @click="ruleAddHandler">验证规则</el-button>
      <!--        属性分组-->
      <el-button icon="el-icon-menu" size="small" @click="attrVisibleHandle">属性分组</el-button>
      </el-button-group>
      <el-button-group>
      <el-button v-if="!checkStatus || crudLCStatus=='Editing'" icon="el-icon-menu" size="small" @click="attrVisibleHandle">属性分组</el-button>
      <!--        分类注入-->
      <el-button icon="el-icon-magic-stick" size="small" @click="injectBtn">分类注入</el-button>
      <el-button v-if="!checkStatus || crudLCStatus=='Editing'" icon="el-icon-magic-stick" size="small" @click="injectBtn">分类注入</el-button>
        <!--    组合规则-->
        <el-button size="small" @click="isShowHandler">组合规则</el-button>
        <el-button v-if="!checkStatus || crudLCStatus=='Editing'" size="small" @click="isShowHandler">组合规则</el-button>
      <!--        枚举注入-->
      <el-button size="small" @click="enmuVisHandle">枚举注入</el-button>
      <el-button v-if="!checkStatus || crudLCStatus=='Editing'" size="small" @click="enmuVisHandle">枚举注入</el-button>
      <!--    级联属性-->
      <el-button size="small" @click="CascadeHandle">级联属性</el-button>
      <el-button v-if="!checkStatus|| crudLCStatus=='Editing'" size="small" @click="CascadeHandle">级联属性</el-button>
      <!--    预览排序-->
        <el-button size="small" @click="orderHandle" icon="el-icon-arrow-down">预览排序</el-button>
      </el-button-group>
      <el-button-group>
      <!--    保存-->
      <el-button size="small" @click="addsHandler" icon="el-icon-check">保存</el-button>
      <el-button v-if="!checkStatus|| crudLCStatus=='Editing'" size="small" @click="addsHandler" icon="el-icon-check">保存</el-button>
      <!--    删除-->
      <el-button size="small" @click="CrudRemove" icon="el-icon-delete">删除</el-button>
      <el-button v-if="!checkStatus || crudLCStatus=='Editing'" size="small" @click="CrudRemove" icon="el-icon-delete">删除</el-button>
      <!--    重置-->
      <el-button size="small" @click="reset" icon="el-icon-refresh-right">重置</el-button>
      <!--    同步到其他模板-->
      <el-button size="small"@click="syncHandle" icon="el-icon-share">同步到其他模板</el-button>
      </el-button-group>
      <!--    编码申请预览-->
      <el-button size="small" @click="applicationHandle" style="">编码申请预览</el-button>
      <!--        验证规则-->
@@ -64,7 +64,7 @@
        </div>
      </el-dialog>
      <!--        枚举注入-->
      <el-dialog :visible.sync="enumVisible" append-to-body title="枚举注入">
      <el-dialog :visible.sync="enumVisible" append-to-body title="枚举注入" :before-close="this.enumBeforeClose">
        <!-- 渲染表格及按钮 -->
        <!-- 渲染表格及按钮 -->
        <div>
@@ -72,11 +72,6 @@
          <el-table :data="tableData" style="width: 100%" @cell-click="handleCellClick"
                    @selection-change="handleSelectionChange">
            <!-- 渲染表格列及传参 -->
            <el-table-column label="序号" type="index"></el-table-column>
            <el-table-column
              type="selection"
              width="55">
            </el-table-column>
            <el-table-column label="选项值" prop="key">
              <template slot-scope="{ row }">
                <!-- 编辑和展示逻辑 -->
@@ -103,7 +98,7 @@
          <template>
            <div style="display: flex;justify-content: right;margin-top: 15px">
              <el-button size="small" type="primary" @click="enumAddHandle">保存</el-button>
              <el-button size="small" @click="enumVisible=false">取消</el-button>
              <el-button size="small" @click="enumCancell">取消</el-button>
            </div>
          </template>
        </div>
@@ -120,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>
@@ -208,20 +203,25 @@
                      :thisSceneTableData="thisSceneTableData"
                      :visible.sync="isShowformulaEdit"
                      @updateFormulaContent="updataFormlaContent"
                      :componentRuleText="componentRuleText"
      ></formula-editor>
      <!--    新增  -->
      <el-dialog :visible.sync="addVisible" append-to-body title="从业务类型中选择属性">
        <avue-crud :data="businessData" :option="businessOption" @selection-change="businessSelect">
        <avue-crud ref="AddOriginPlace" :data="businessData" :option="businessOption" @selection-change="businessSelect">
          <template slot="menuLeft">
            <div style="display: flex;">
              <el-select>
                <el-option>属性英文名称</el-option>
                <el-option>属性中文名称</el-option>
              <el-select v-model="SelectValue" placeholder="请选择" style="width: 150px !important;">
                <el-option
                  v-for="item in SelectOption"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                  style="width: 150px">
                </el-option>
              </el-select>
              <el-input style="width: 300px;margin-left: 20px"></el-input>
              <el-button size="small" style="margin-left: 10px">查询</el-button>
              <el-input style="width: 400px;margin-left: 20px" v-model="SelectFInd"></el-input>
              <el-button size="small" style="margin-left: 10px" @click="AddFindHandler">查询</el-button>
            </div>
          </template>
        </avue-crud>
        <div style="display: flex;justify-content: flex-end;margin-top: 15px">
@@ -229,20 +229,24 @@
          <el-button size="small" type="primary" @click="addVisible=false">取消</el-button>
        </div>
      </el-dialog>
      <!--      参照配置-->
        <refer-config-form-dialog
          ref="referConfigFormDialog"
          @echoReferConfig="echoReferConfig"
        ></refer-config-form-dialog>
        <refer-config-dialog
          :display="referConfigVisble"
          @setReferConfigValue="setReferConfigValue"
          :referConfigOption="referConfigOption"
        ></refer-config-dialog>
    </div>
    <el-table :data="ProData"
              style="width: 100%"
              height="280"
              height="400"
              @cell-click="handleCellClicks"
              @select="selectHandle"
              @selection-change="selectionChange"
              v-if="this.crudArrayFlag"
              ref="referAttrCrud"
              v-loading="loading"
    >
      <el-table-column
        type="selection"
@@ -258,18 +262,19 @@
                       :sortable="item.sortable"
                       :fixed="item.fixed"
                       align="center"
                       v-if="item.edit !='referName'"
      >
        <template slot-scope="{ row }">
          <el-input v-if="editingRows === row && editShows== item.prop && item.prop != 'codeDateFormat' && (item.edit == 'text'  ||item.edit == 'refer' )" v-model="row[item.prop]"
                    @blur="saveRows"></el-input>
          <el-input-number size="small" controls-position="right" v-if="editingRows === row && editShows== item.prop && item.edit == 'number'" v-model="row[item.prop]"
                           @blur="saveRows" :style="{width:(item.width-10)+'px'}"></el-input-number>
          <el-select v-model="row[item.prop]" filterable  allow-create  default-first-option slot="prepend" v-if="editingRows === row && editShows== item.prop && item.edit == 'select' " @focus="DataChangeHandler(item.editConfig,index)">
          <el-select v-model="row[item.prop]" filterable  allow-create  default-first-option slot="prepend" v-if="editingRows === row && editShows== item.prop && item.edit == 'select' " @blur="selectChangeHandler(item.editConfig,index)">
            <el-option
              v-for="optionItem in item.data"
              :key="optionItem.key"
              :label="optionItem.value"
              :value="optionItem.key">
              :key="optionItem.dictValue"
              :label="optionItem.dictValue"
              :value="optionItem.dictValue">
            </el-option>
          </el-select>
          <el-switch
@@ -287,7 +292,7 @@
          <el-button
            size="small"
            type="text"
            @click.native.prevent="CrudRowDel(scope.row)">
            @click.native.prevent="CrudRowDel(scope.$index)">
            移除
          </el-button>
        </template>
@@ -298,6 +303,7 @@
<script>
import {AttrByBtm, gridCodeClassifyTemplateAttr, batchAddSave, copyto,listByFlag} from '@/api/template/templateAttr'
import {getList} from "@/api/refer/table";
export default {
  name: "attrCrud .vue",
@@ -308,6 +314,14 @@
    crudOid: {
      type: String,
      default: ''
    },
    checkStatus:{
      type: Boolean,
      default: false
    },
    crudLCStatus: {
      type: String,
      default: 'Editing'
    },
    crudArray: {
      type: Array,
@@ -341,16 +355,68 @@
      },
      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:{
        referConfig:'',
      },
      screenWidth: document.documentElement.clientWidth, // 屏幕宽度
      //当前单元格
      CurrentCell:'',
      // 新增
      SelectValue:"",
      SelectFInd:"",
      SelectOption:[
        {
          value: 'name',
          label: '属性中文名称'
        },
        {
          value: 'id',
          label: '属性英文名称'
        }
      ],
      //参照
      referVisible:false,
      crudArrayFlag:false,
      editingRows: null,
      editShows:"",
      attrFlag: false,
      referObject:{},
      //编码申请预览option
      applicationoption: {
        column: []
@@ -752,16 +818,18 @@
      addvisible: false,
      //分类注入option
      injectOption: {
        type: "分类名称",
        set: "最小层",
        change: "是",
        classifyInvokeAttrName:'分类名称',
        classifyInvokeAttr: "name",
        classifyInvokeEditFlag: "true",
        classifyInvokeLevel:'min',
        //分类注入计数器
        injectNum: 0,
        classifyNumber:0,
      },
      // 属性验证输入框
      RulesForm: {
        expressionText: "",
        TestContent: ""
        TestContent: "",
        ruleRowBds:""
      },
      //属性验证规则配置
      rulesOption: {
@@ -1184,7 +1252,7 @@
          },
          {
            label: "分类注入",
            prop: "classifyInvokeLevel",
            prop: "classifyInvokeText",
            cell: false,
            edit: 'refer'
          },
@@ -1296,6 +1364,9 @@
      },
      //时间格式下拉框
      codeDataFlag:false,
    //  组合规单元格编辑回填
      componentRuleText:"",
    }
  },
  computed:{
@@ -1312,43 +1383,75 @@
        oids.push(ele.oid);
      });
      return oids.join(",");
    }
    },
  },
  mounted() {
  },
  created() {
    this.option.column.forEach((item,index) => {
      if (item.edit == 'select') {
        this.selectChangeHandler(item.editConfig,index)
      }
    })
  },
  methods: {
    formAttr(row, column) {
      console.log(row,column)
    },
    //新增搜索
    AddFindHandler(){
      if(this.SelectValue == 'id'){
        const masterParameter={
          'conditionMap[id]':this.SelectFInd
        }
        this.BuineAttrByBtm(masterParameter);
        this.SelectValue=""
        this.SelectFInd=""
      }else if(this.SelectValue == 'name'){
        const masterParameter={
          'conditionMap[name]':this.SelectFInd
        }
        this.BuineAttrByBtm(masterParameter)
        this.SelectValue=""
        this.SelectFInd=""
      }
    },
    //参照配置子组件
    echoReferConfig(val){
      console.log(val)
      console.log('val--',val)
      this.referObject=val
      this.$set(this.CurrentCell,'referConfig',JSON.stringify(val))
    },
    //时间下拉格式
    DataChangeHandler(editConfig,index){
    //可输可选下拉
    selectChangeHandler(editConfig,index){
      let that=this;
      /*if(that.option.column[index].data && that.option.column[index].data.length>=0){
        return;
      }*/
      listByFlag(editConfig.extraParams).then(res=>{
        console.log(res);
        this.option.column[index].data=res;
        that.option.column[index].data=res.data.data;
      })
    },
    //属性分组按钮
    attrVisibleHandle() {
      if (this.attrSelectList.length > 1) {
        this.$message.warning('只能选择一条模板属性')
      } else if (this.attrSelectList < 1) {
        this.$message.warning('请选择一条模板属性')
      } else if (this.attrSelectList.length === 1) {
     if (this.attrSelectList < 1) {
        this.$message.warning('请选择模板属性')
      } else  {
        this.attrVisible = true;
       console.log(this.attrSelectList)
      }
    },
    //属性分组提交
    attrHandle() {
      this.$set(this.attrRow, 'attributeGroup', this.attrModel)
      this.attrModel = ""
      this.attrVisible = false
      console.log(this.attrSelectList)
      // this.$set(this.attrRow, 'attributeGroup', this.attrModel)
      // this.attrSelectList.attributeGroup=this.attrModel
      this.attrSelectList.forEach(item=>{
        item.attributeGroup=this.attrModel
      })
      this.attrModel = "";
      this.attrVisible = false;
    },
    //属性分组清空
    attrRemove() {
@@ -1358,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)
        })
@@ -1383,7 +1491,7 @@
          citem.oid = ''
          this.busineAddList=Object.assign(citem, {
            orderNum: ++ordernum,
            attributedatatype: citem.attrDataType,
            attributeDataType: citem.attrDataType,
            attributeDataTypeText: this.vciFieldTypeMap[citem.attrDataType],
            controlLength: citem.attributeLength,
            valueArea: citem.range,
@@ -1399,7 +1507,8 @@
            sortAttrFlag: 'false',
            queryAttrFlag: 'true',
            seniorQueryAttrFlag: 'true',
            attrTableWidth: 120
            attrTableWidth: 120,
            ts:""
          })
          this.ProData.push(JSON.parse(JSON.stringify(this.busineAddList)))
        }
@@ -1409,14 +1518,19 @@
    },
    //业务类型选择
    businessSelect(selection, row) {
      this.busineSelectList = selection
      this.busineSelectList = selection;
      console.log(selection)
    },
    // 从业务类型中选择数据弹窗
    busineHandle() {
      this.addVisible = true;
      this.busineSelectList = []
      this.busineAddList = [];
      AttrByBtm({'conditionMap[oid]': this.crudOid}).then(res => {
      this.BuineAttrByBtm()
    },
    //业务类型数据
    BuineAttrByBtm(masterParameter){
      AttrByBtm({'conditionMap[oid]': this.crudOid,...masterParameter}).then(res => {
        this.businessData = res.data.data;
      })
    },
@@ -1432,7 +1546,6 @@
          'conditionMap[classifyTemplateOid]': this.Formlist[0].oid,
          'conditionMap[oid_notequal]': this.attrOid
        }).then(res => {
          console.log(res)
          this.CascadeData = res.data.data;
        })
      }
@@ -1441,7 +1554,11 @@
    CascadeAddHandle() {
      let CascadeString = "";
      CascadeString = this.selectRowArr.id + (this.selectRowArr.name);
      this.$set(this.attrRow, 'parentCode', CascadeString)
      if(this.CurrentCell){
        this.$set(this.CurrentCell, 'parentCode', CascadeString)
      }else {
        this.$set(this.attrSelectList[0], 'parentCode', CascadeString)
      }
      this.CascadeVisible = false;
    },
    //级联属性清除
@@ -1466,6 +1583,7 @@
    //表格选择
    selectionChange(list) {
      this.attrSelectList = list;
      console.log(list)
    },
    //保存
    addsHandler() {
@@ -1479,14 +1597,50 @@
        this.editingRows = row;
        this.editShows = column.property;
        this.rowOid = row.oid;
      console.log(row,column)
      this.CurrentCell=row;
      if(column.property == 'referConfig' ){
        this.$refs.referConfigFormDialog.isShowReferConfigForm = true;
        this.referConfigVisble= true;
        this.referConfigOption = {
          referConfig: this.referConfigText || '',
        }
        if(this.CurrentCell.referConfig == ''){
          this.referConfigOption = {
            referConfig:'',
          }
        }
        console.log('--',this.referConfigOption)
        // this.$refs.referConfigFormDialog.onloadAttrData();
      }else if(column.property == 'classifyInvokeText'){
        this.injectVisible=true;
      }else if(column.property == 'componentRule'){
        if(this.CurrentCell){
          this.CurrentCell.componentRule=this.componentRuleText;
        }
        this.isShowformulaEdit = true;
      }else if(column.property == 'enumString'){
        this.enumVisible=true;
        if(this.attrSelectList[0].enumString != ""){
          this.tableData=JSON.parse(this.attrSelectList[0].enumString)
          return
        }
      }else if(column.property == 'parentCode'){
        gridCodeClassifyTemplateAttr({
          'conditionMap[classifyTemplateOid]': this.Formlist[0].oid,
          'conditionMap[oid_notequal]': this.CurrentCell.oid
        }).then(res => {
          console.log(res)
          this.CascadeData = res.data.data;
        })
        this.CascadeVisible=true;
      }else if(column.property == 'verifyRule'){
        this.RulesForm.expressionTextt=this.CurrentCell.verifyRule;
        this.rulesVisible=true;
        console.log(this.CurrentCell.verifyRule)
        console.log(this.RulesForm.expressionText)
      }
    },
    saveRows() {
      this.editingRows = null;
      console.log('1321')
    },
    // 枚举注入添加一行空数据
    addRow() {
@@ -1512,7 +1666,20 @@
        this.$message.warning('请选择一条模板属性')
      } else if (this.attrSelectList.length === 1) {
        this.enumVisible = true;
        if(this.attrSelectList[0].enumString != ""){
          this.tableData=JSON.parse(this.attrSelectList[0].enumString)
          return
        }
      }
    },
    enumBeforeClose(done){
      this.tableData=[]
      done()
    },
    enumCancell(){
      this.tableData=[]
      this.enumVisible=false;
    },
    //枚举注入多选框
    handleSelectionChange(row) {
@@ -1520,19 +1687,46 @@
    },
    //枚举注入保存
    enumAddHandle() {
      if (this.enumRow.length < 1) {
        this.$message.warning('请至少选择一条数据')
      } else {
        this.$set(this.attrRow, 'enumString', this.enumRow);
        this.enumVisible = false;
      let hasError = false; // 添加一个变量
      this.tableData.forEach((item, index) => {
        if (item.key === '') {
          this.$message.warning(`第${index + 1}行的选项值不能为空`);
          hasError = true;
          return;
        } else if (item.value === '') {
          this.$message.warning(`第${index + 1}行的选项中文标签不能为空`);
          hasError = true;
          return;
        }
      });
        // 保存执行逻辑
      if (!hasError) {
        if (this.CurrentCell) {
          this.$set(this.CurrentCell, 'enumString', JSON.stringify(this.tableData));
          this.enumVisible = false;
        } else {
          this.$set(this.attrSelectList[0], 'enumString', JSON.stringify(this.tableData));
          this.tableData=[];
          this.enumVisible = false;
        }
      }
    },
    // 将正在编辑的行的状态变为 null ,即退出编辑状态
    // 将正在编辑的行的状态变为 null,即退出编辑状态
    saveRow() {
      this.editingRow = null;
    },
    //验证规则按钮
    ruleAddHandler(){
      if (this.attrSelectList < 1) {
        this.$message.warning('请选择模板属性')
      } else{
        this.rulesVisible=true
      }
    },
    //规则校验,双击表单事件
    handleRulesRowDBLClick(row) {
      this.ruleRowBds=row.bds
      this.RulesForm.expressionText = row.bds
    },
    // 验证规则清除内容
@@ -1542,11 +1736,21 @@
    },
    // 验证规则确定
    rulesHandle() {
     if(this.CurrentCell){
       this.$set(this.CurrentCell,'verifyRule',this.RulesForm.expressionText)
     }else {
       this.attrSelectList.forEach((item)=>{
         this.$set(item,'verifyRule',this.RulesForm.expressionText)
       })
       this.rulesremove()
     }
      this.rulesVisible = false
    },
    //验证规则检查
    rulesExamine() {
      if (this.RulesForm.expressionText.test(this.RulesForm.TestContent)) {
      console.log(this.RulesForm.expressionText)
      const regex = new RegExp(this.rulesData.ruleRowBds);
      if(regex.test(this.RulesForm.TestContent)){
        this.$message.success('校验成功')
      }
    },
@@ -1557,27 +1761,58 @@
      } else if (this.attrSelectList.length < 1) {
        this.$message.warning('请选择一条模板数据')
      } else if (this.attrSelectList.length === 1) {
        this.injectVisible = true
        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
      }
      console.log(this.injectOption)
      this.$set(this.attrRow, 'classifyInvokeLevel', data);
      this.injectVisible = false
      //单元格编辑赋值一遍
      if(this.CurrentCell){
        //如果是指定层赋值为数字
        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 {
        //勾选操作
        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()
      }
      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 = "";
      this.injectOption.classifyInvokeAttrName = "分类名称";
      this.injectOption.classifyInvokeAttr = "name";
      this.injectOption.classifyInvokeLevel = "min";
      this.injectOption.classifyInvokeEditFlag = "true";
      this.injectOption.classifyNumber = "0";
    },
    // 分类注入取消
    injectRemove() {
@@ -1585,13 +1820,14 @@
    },
    //属性模板表格单元格点击事件
    //表格操作栏删除
    CrudRowDel(row) {
      this.ProData.splice(row.$index, 1)
    CrudRowDel(index) {
      this.ProData.splice(index, 1)
    },
    //表格删除
    CrudRemove() {
      this.attrSelectList.forEach((item)=>{
        this.ProData.splice(item.$index, 1)
        const index = this.ProData.indexOf(item);
        this.ProData.splice(index, 1)
      })
    },
    //表格重置
@@ -1621,7 +1857,7 @@
      } else if (this.attrSelectList.length < 1) {
        this.$message.warning('请选择一条模板属性数据')
      } else if (this.attrSelectList.length === 1) {
        this.isShowformulaEdit = true;
        this.isShowformulaEdit=true
      }
    },
    //全屏编辑
@@ -1639,8 +1875,23 @@
      this.attrFlagChiledren = false;
      this.attrEditVisible = false;
    },
    //组合规则确定
    updataFormlaContent(val) {
      this.$set(this.attrRow, 'componentRule', val)
      if(this.CurrentCell){
        this.$set(this.CurrentCell, 'componentRule', val.replace(/"/g, ''))
      }else {
        this.$set(this.attrRow, 'componentRule', val.replace(/"/g, ''))
      }
    },
    setReferConfigValue(content){
      let submitFormJson = JSON.stringify(content);
      this.referConfigText=submitFormJson
      if(this.CurrentCell){
        this.$set(this.CurrentCell, 'referConfig', JSON.stringify(content))
      }else {
        this.$set(this.attrRow, 'referConfig', JSON.stringify(content))
      }
    },
    // 排序
    sortChange(val) {
@@ -1660,8 +1911,10 @@
}
</script>
<style scoped lang="scss">
/deep/ .el-button {
  margin: 0 10px 10px 0;
<style scoped lang="scss" >
.app {
   /deep/ .el-button {
   margin: 0 10px 10px 0;
   }
}
</style>