wangting
2024-11-04 1f8e24520ed07be80f2190656fd35bf24a0cd14f
业务类型添加修改窗口
已修改1个文件
276 ■■■■ 文件已修改
Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue 276 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue
@@ -162,13 +162,11 @@
              <el-input v-model="form.name"></el-input>
            </el-form-item>
            <el-form-item label="继承自:">
              <div style="display: flex;gap: 5px;align-items: center">
                <el-input v-model="form.fName" :readOnly="true"></el-input>
                <el-button :disabled="title === 'add'" plain size="small" style="margin-left: 5px;height: 30px"
                           type="success"
                           @click="inheritClickHandler">选择
                </el-button>
              </div>
              <avue-input-tree :disabled="title === 'add'"
                               v-model="form.fName"
                               placeholder="请选择业务类型"
                               :props="{label: 'id', value: 'id',children: 'children'}"
                               :dic="inheritTreeData"></avue-input-tree>
            </el-form-item>
            <el-form-item label="实现类:">
              <el-input v-model="form.implClass"></el-input>
@@ -186,19 +184,18 @@
              </el-select>
            </el-form-item>
            <el-form-item v-if="form.revLevel !== '0'" label="版本号规则:" label-width="110px" prop="revisionRuleId">
              <div style="display: flex;gap: 5px;align-items: center">
                <el-input v-model="form.revisionRuleId" :readOnly="true"></el-input>
                <el-button :disabled="form.inputRevisionFlag" plain size="small" style="margin-left: 5px;height: 30px"
                           type="success"
                           @click="versionAddHandler">添加
                </el-button>
                <el-switch
                  v-model="form.inputRevisionFlag"
                  active-text="手工输入"
                  style="width: 300px"
                  @change="form.revisionRuleId = ''">
                </el-switch>
              </div>
              <avue-select v-model="form.revisionRuleId"
                           :disabled="form.inputRevisionFlag"
                           placeholder="请选择版本号规则"
                           :filterable="true"
                           :props="{label: 'id', value: 'id'}"
                           :dic="versionData"></avue-select>
              <el-switch
                v-model="form.inputRevisionFlag"
                active-text="手工输入"
                style="width: 300px"
                @change="form.revisionRuleId = ''">
              </el-switch>
            </el-form-item>
            <el-form-item v-if="form.revLevel !== '0'" label="分隔符:" label-width="110px" prop="delimiter">
              <el-select v-model="form.delimiter" clearable>
@@ -217,12 +214,11 @@
          </div>
          <div class="rightForm" style="width: 26%">
            <el-form-item label="生命周期:" label-width="138px" prop="lifeCycleId">
              <div style="display: flex;gap: 5px;align-items: center">
                <el-input v-model="form.lifeCycleId" :readOnly="true"></el-input>
                <el-button plain size="small" style="margin-left: 5px;height: 30px" type="success"
                           @click="lifeAddHandler('input')">添加
                </el-button>
              </div>
              <avue-select v-model="form.lifeCycleId"
                           placeholder="请选择生命周期"
                           :filterable="true"
                           :props="{label: 'id', value: 'id'}"
                           :dic="dialogLifeData"></avue-select>
            </el-form-item>
            <el-form-item label="备选生命周期列表:" label-width="138px">
@@ -310,35 +306,6 @@
        </span>
    </el-dialog>
    <!-- 版本号规则选择 -->
    <el-dialog
      v-dialogDrag
      :visible.sync="dialogVersionVisible"
      append-to-body="true"
      class="avue-dialog"
      title="版本号规则"
      width="60%"
    >
      <avue-crud
        :key="dialogVersionKey"
        ref="dialogAttrCrud"
        :data="dialogVersionData"
        :option="dialogVersionOption"
        :table-loading="dialogVersionLoading"
        @row-click="dialogVersionRowClick"
        @search-change="versionHandleSearch"
        @search-reset="versionHandleReset"
      >
      </avue-crud>
      <span slot="footer" class="dialog-footer">
         <el-button @click="dialogVersionVisible = false">取 消</el-button>
         <el-button type="primary" @click="dialogVersionAddClickHandler">确 定</el-button>
        </span>
    </el-dialog>
    <!-- 生命周期 -->
    <el-dialog
      v-dialogDrag
@@ -353,7 +320,6 @@
        ref="dialogAttrCrud"
        :data="dialogLifeData"
        :option="dialogLifeOption"
        :table-loading="dialogLifeLoading"
        @row-click="dialogLifeRowClick"
        @search-change="lifeHandleSearch"
        @search-reset="lifeHandleReset"
@@ -364,31 +330,6 @@
         <el-button type="primary" @click="dialogLifeAddClickHandler">确 定</el-button>
        </span>
    </el-dialog>
    <!-- 继承自 -->
    <el-dialog
      v-dialogDrag
      :visible.sync="dialogInheritVisible"
      append-to-body="true"
      class="avue-dialog"
      title="继承业务类型"
      width="30%"
      @close="inheritClose"
    >
      <avue-tree ref="inheritTree" v-model="treeForm" :data="inheritTreeData" :option="inheritTreeOption"
                 @node-click="inheritNodeClick">
         <span slot-scope="{ node, data }" class="el-tree-node__label">
           <span style="font-size: 15px">
              <i class="el-icon-s-promotion"></i>
                {{ (node || {}).label }}
            </span>
          </span>
      </avue-tree>
      <span slot="footer" class="dialog-footer">
         <el-button type="primary" @click="inheritSaveClickHandler">确 定</el-button>
         <el-button @click="inheritClose">取 消</el-button>
        </span>
    </el-dialog>
    <!-- 导入 -->
@@ -667,21 +608,7 @@
      fileUrl: 'api/linkTypeController/impData',
      createViewLoading: false, // 创建视图
      versionAddFlag: false,
      treeForm: {},
      inheritNodeRow: {},
      inheritTreeOption: {
        height: 'auto',
        defaultExpandAll: false,
        menu: false,
        addBtn: false,
        props: {
          label: 'id',
          value: 'id',
          children: 'children'
        }
      },
      inheritTreeData: [],
      dialogInheritVisible: false,
      dialogLifeDefalutData: [], // 查询重置默认数据
      lifeType: '',
      dialogLifeTable: [],
@@ -708,32 +635,7 @@
      },
      dialogLifeLoading: false,
      dialogLfeVisible: false,
      dialogVersionDefalutData: [], // 查询重置默认数据
      dialogSwitchValue: false,
      dialogVersionSaveRow: {},
      dialogVersionVisible: false,
      dialogVersionKey: Math.random(),
      dialogVersionData: [],
      dialogVersionOption: {
        ...basicOption,
        addBtn: false,
        selection: false,
        refreshBtn: false,
        menu: false,
        height: 450,
        searchMenuSpan: 8,
        highlightCurrentRow: true,
        // calcHeight: 100,
        column: [
          {
            label: '版本号规则',
            prop: 'id',
            searchLabelWidth: 110,
            search: true
          }
        ]
      },
      dialogVersionLoading: false,
      versionData: [],//版本规则数据
      dialogAttrSelectList: [],
      searchAttrParams: {},
      dialogAttrLoading: false,
@@ -923,6 +825,8 @@
  },
  created() {
    this.getTreeList();
    this.getVersionList();
    this.getLifeCycle();
  },
  mounted() {
  },
@@ -958,7 +862,19 @@
      this.attrData = row.attributes ? JSON.parse(row.attributes) : [];
      this.nodeRow = row;
    },
    //获取版本规则数据
    getVersionList(){
      getVersionRuleAllList().then(res => {
        this.versionData = res.data.data;
      });
    },
    //获取生命周期数据
    getLifeCycle(){
      gridLifeCycle().then(res => {
        this.dialogLifeData = res.data.data;
        this.dialogLifeDefalutData = res.data.data;
      });
    },
    // 创建按钮
    addClickHandler() {
      if (func.isEmptyObject(this.nodeRow)) {
@@ -967,31 +883,8 @@
      }
      this.title = 'add';
      this.form.fName = this.nodeRow.id === 'topNode' ? "" : this.nodeRow.id;
      console.log(this.nodeRow);
      this.form.inputRevisionFlag = JSON.parse(this.form.inputRevisionFlag); // 字符串false转换为布尔值
      this.visible = true;
    },
    // 关闭继承对话框
    inheritClose() {
      this.dialogInheritVisible = false;
      this.$refs.inheritTree.setCurrentKey(null); // 取消当前选中的节点
    },
    // 继承按钮
    inheritClickHandler() {
      this.dialogInheritVisible = true;
    },
    // 继承树行点击
    inheritNodeClick(row) {
      this.inheritNodeRow = row;
    },
    // 继承树保存
    inheritSaveClickHandler() {
      this.form.fName = this.inheritNodeRow.id;
      this.dialogInheritVisible = false;
    },
    // 对话框 属性池列表增加按钮
@@ -1111,81 +1004,12 @@
      this.dialogAttrData.splice(index, 1);
    },
    // 版本规则管理添加
    versionAddHandler() {
      this.dialogVersionVisible = true;
      this.dialogVersionKey = Math.random(); // 打开时刷新表格避免表格错行
      this.dialogVersionLoading = true;
      getVersionRuleAllList().then(res => {
        const data = res.data.data.map(item => {
          return {
            id: item.id
          }
        });
        this.dialogVersionData = data;
        this.dialogVersionDefalutData = data;
        this.dialogVersionLoading = false;
      }).catch(err => {
        this.$message.error(err)
      });
    },
    // 版本规则行点击
    dialogVersionRowClick(row) {
      this.dialogVersionSaveRow = row;
    },
    // 版本规则搜索
    versionHandleSearch(params, done) {
      const {id} = params;
      if (!params.id) {
        this.dialogVersionData = this.dialogVersionDefalutData;
        return done();
      }
      ;
      this.dialogVersionData = this.dialogVersionDefalutData.filter(item => {
        return item.id && item.id.includes(id);
      });
      done();
    },
    // 版本管理置空
    versionHandleReset() {
      this.dialogVersionData = this.dialogVersionDefalutData;
    },
    // 版本号规则保存
    dialogVersionAddClickHandler() {
      if (func.isEmptyObject(this.dialogVersionSaveRow)) {
        this.$message.error('请至少选择一条数据');
        return;
      }
      this.form.revisionRuleId = this.dialogVersionSaveRow.id;
      this.dialogVersionVisible = false;
    },
    // 生命周期新增
    lifeAddHandler(val) {
      this.dialogLfeVisible = true;
      this.dialogLifeKey = Math.random(); // 打开时刷新表格避免表格错行
      this.dialogLifeLoading = true;
      this.lifeType = val;
      gridLifeCycle().then(res => {
        const data = res.data.data.map(item => {
          return {
            id: item.id
          }
        });
        this.dialogLifeData = data;
        this.dialogLifeDefalutData = data;
        this.dialogLifeLoading = false
      }).catch(err => {
        this.$message.error(err)
      });
    },
    // 生命周期行点击
@@ -1350,9 +1174,31 @@
        ? this.nodeRow.lifeCycleIds.split(',').map(item => ({id: item.trim()}))
        : [];
      this.dialogAttrData = this.nodeRow.attributes ? JSON.parse(this.nodeRow.attributes) : [];
      function  processChildren(item,fName) {
        if (item.children && item.children.length > 0) {
          item.children = item.children.map(child => {
            processChildren(child,fName); // 递归处理每个子节点
            if(fName==child.id){
              child.disabled=true;
            }else {
              child.disabled=false;
            }
            return child;
          });
        }
      };
      const inheritTreeData=this.inheritTreeData.map(item => {
        processChildren(item,this.form.id); // 处理每个节点
        if(this.form.id==item.id){
          item.disabled=true;
        }else {
          item.disabled=false;
        }
        return item;
      });
      this.inheritTreeData=inheritTreeData
      this.title = 'edit';
      this.visible = true;
      console.log(this.form);
    },
    // 删除按钮