wangting
2025-01-08 354cad3d3ab22ba147169beb6a0f6f51b9bab3a8
Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/index.vue
@@ -11,12 +11,12 @@
              <el-radio v-model="treeRadio" label="1" @input="TreeRadioChange">链接类型树</el-radio>
            </div>
            <avue-tree v-loading="treeLoading" :data="treeData" :option="treeOption" @node-click="nodeClick">
          <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>
              <span slot-scope="{ node, data }" class="el-tree-node__label">
               <span>
                  <icon-show :name="data.icon"></icon-show>
                    {{ (node || {}).label }}
                </span>
              </span>
            </avue-tree>
          </div>
        </div>
@@ -26,12 +26,30 @@
    <el-main>
      <basic-container>
        <div v-if="!tableStatus" style="display: flex;justify-content: left;margin-top: 15px">
          <el-button icon="el-icon-plus" plain size="small" type="primary" @click="addClickHandler">增加</el-button>
          <el-button icon="el-icon-delete" plain size="small" type="danger" @click="deleteClickHandler">删除</el-button>
          <el-button icon="el-icon-document-add" plain size="small" type="primary" @click="copyClickHandler">克隆
          <el-button v-if="permissionList.addBtn" class="button-custom-icon" plain size="small" type="primary"
                     @click="addClickHandler">
            <icon-show :name="permissionList.addBtn.source"></icon-show>
            增加
          </el-button>
          <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="upLoadClickHandler">导入</el-button>
          <el-button icon="el-icon-download" plain size="small" type="primary" @click="exportClickHandler">导出
          <el-button v-if="permissionList.delBtn" class="button-custom-icon" plain size="small" type="danger"
                     @click="deleteClickHandler">
            <icon-show :name="permissionList.delBtn.source"></icon-show>
            删除
          </el-button>
          <el-button v-if="permissionList.cloneBtn" class="button-custom-icon" plain size="small" type="primary"
                     @click="copyClickHandler">
            <icon-show :name="permissionList.cloneBtn.source"></icon-show>
            克隆
          </el-button>
          <el-button v-if="permissionList.importBtn" class="button-custom-icon" plain size="small" type="primary"
                     @click="upLoadClickHandler">
            <icon-show :name="permissionList.importBtn.source"></icon-show>
            导入
          </el-button>
          <el-button v-if="permissionList.exportBtn" class="button-custom-icon" plain size="small" type="primary"
                     @click="exportClickHandler">
            <icon-show :name="permissionList.exportBtn.source"></icon-show>
            导出
          </el-button>
        </div>
        <avue-crud
@@ -58,15 +76,20 @@
            </div>
          </template>
          <template slot="menu" slot-scope="scope">
            <el-button icon="el-icon-edit" size="small" type="text" @click="editBtnClick(scope.row)">编辑
            <el-button v-if="permissionList.editBtn" size="small" type="text" @click="editBtnClick(scope.row)">
              <icon-show :name="permissionList.editBtn.source"></icon-show>
              编辑
            </el-button>
            <el-button icon="el-icon-delete" size="small" type="text" @click="rowDeleteHandler(scope.row)">删除
            <el-button v-if="permissionList.delBtn" size="small" type="text" @click="rowDeleteHandler(scope.row)">
              <icon-show :name="permissionList.delBtn.source"></icon-show>
              删除
            </el-button>
          </template>
        </avue-crud>
      </basic-container>
    </el-main>
    <form-dialog ref="formDialog" :TreeNodeRow="this.nodeRow" :editRow="editRow" :treeRadio="treeRadio"  @updataTable="getRightPortalVIDatas"></form-dialog>
    <form-dialog ref="formDialog" :TreeNodeRow="this.nodeRow" :editRow="editRow" :treeRadio="treeRadio"
                 @updataTable="getRightPortalVIDatas"></form-dialog>
    <table-dialog ref="tableDialog" :TreeNodeRow="this.nodeRow" :treeRadio="treeRadio"
                  @updataTable="getRightPortalVIDatas"></table-dialog>
    <!-- 导入 -->
@@ -89,12 +112,12 @@
            </div>
            <avue-tree ref="cloneTree" v-loading="cloneTreeLoading" :data="cloneTreeData" :option="treeOption"
                       @node-click="cloneTreeNodeClick">
          <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>
              <span slot-scope="{ node, data }" class="el-tree-node__label">
               <span>
                 <icon-show :name="data.icon"></icon-show>
                    {{ (node || {}).label }}
                </span>
              </span>
            </avue-tree>
          </div>
        </div>
@@ -115,6 +138,7 @@
import {getBizTypes} from "@/api/modeling/businessType/api";
import {gridLink} from "@/api/modeling/linkType/api";
import func from "@/util/func";
import {mapGetters} from "vuex";
export default {
  name: "index",
@@ -187,6 +211,17 @@
    this.getTreeList();
  },
  computed: {
    ...mapGetters(["permission"]),
    permissionList() {
      return {
        addBtn: this.vaildData(this.permission[this.$route.query.id].ADD, false),
        delBtn: this.vaildData(this.permission[this.$route.query.id].DELETE, false),
        editBtn: this.vaildData(this.permission[this.$route.query.id].EDIT, false),
        exportBtn: this.vaildData(this.permission[this.$route.query.id].EXPORT, false),
        importBtn: this.vaildData(this.permission[this.$route.query.id].IMPORT, false),
        cloneBtn: this.vaildData(this.permission[this.$route.query.id].CLONE, false),
      };
    },
    tableStatus() {
      return func.isEmptyObject(this.nodeRow);
    }
@@ -217,6 +252,7 @@
        const data = res.data.data.map(item => {
          this.processChildren(item); // 处理每个节点
          item.attributes.id = item.attributes.id;
          item.attributes.icon = item.attributes.imageName;
          return item.attributes; // 返回处理后的 attributes
        });
        this.treeData = data;
@@ -235,6 +271,7 @@
          const data = res.data.data.map(item => {
            this.processChildren(item); // 处理每个节点
            item.attributes.id = item.attributes.id;
            item.attributes.icon = item.attributes.imageName;
            return item.attributes; // 返回处理后的 attributes
          });
          this.treeData = data;
@@ -257,6 +294,7 @@
      if (item.children && item.children.length > 0) {
        item.attributes.children = item.children.map(child => {
          child.attributes.id = child.attributes.id;
          child.attributes.icon = child.attributes.imageName;
          this.processChildren(child); // 递归处理每个子节点
          return child.attributes; // 只返回子节点的 attributes
        });
@@ -311,7 +349,6 @@
    // 编辑按钮
    editBtnClick(row) {
      console.log('row', row);
      // 表格
      if (row.viType === 0) {
        const params = {
@@ -330,14 +367,14 @@
            // 更新表单
            this.$refs.tableDialog.form = {
              ...prmItem,
              itemFieldWidthList:prmItem.itemFieldWidthList.map(item => {
                return{
              itemFieldWidthList: prmItem.itemFieldWidthList.map(item => {
                return {
                  ...item,
                  $cellEdit: true,
                }
              }),
              viName: res.data.obj.viName,
              itemQtName:res.data.obj.prm.formQtName,
              itemQtName: res.data.obj.prm.formQtName,
              editNodeId: row.id,
              itemOutFieldList: (prmItem.itemOutFieldList || []),
              itemSearchFieldList: (prmItem.itemSearchFieldList || []).map(item => ({id: item})),
@@ -379,7 +416,6 @@
            this.$refs.formDialog.topForm.itemQtName = res.data.obj.prm.formQtName;
            this.$refs.formDialog.topForm.columnNumber = this.getValueBasedOnInput(res.data.obj.prm.showCols);
            this.$refs.formDialog.topForm.showColumn = res.data.obj.prm.showCols;
            this.$refs.formDialog.visible = true;
          }
        })
@@ -464,7 +500,7 @@
          this.lastIndex = newIndex;
        },
        () => {
          this.selectList = [];
          this.selectList = [row];
        }
      );
    },
@@ -482,8 +518,6 @@
      exportExcel(params).then(res => {
        func.downloadFileByBlobHandler(res);
        this.$message.success('导出成功');
      }).catch(err => {
        this.$message.error(err);
      });
    },
@@ -521,7 +555,6 @@
    // 克隆树点击
    cloneTreeNodeClick(row) {
      console.log(row);
      this.cloneTreeNode = row;
    },
@@ -577,7 +610,6 @@
        confirmButtonText: '确定',
        cancelButtonText: '取消',
      }).then(({value}) => {
        console.log(obj);
        const params = {
          clonePortalVIDTOList: [
            {