田源
2025-01-15 78fa1f005a9ec2581611e53d7eba8efeacb4df6e
Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue
@@ -13,20 +13,34 @@
      @selection-change="selectChangeHandler"
      @row-click="rowClickHandler">
      <template slot="menuLeft" slot-scope="scope">
        <el-button v-if="permissionChildrenList.UiPageLayoutAddBtn" icon="el-icon-plus" plain size="small" type="primary"
                   @click="addClickHandler">增加
        <el-button v-if="permissionChildrenList.UiPageLayoutAddBtn" class="button-custom-icon" plain size="small"
                   type="primary"
                   @click="addClickHandler">
          <icon-show :name="permissionChildrenList.UiPageLayoutAddBtn.source"></icon-show>
          增加
        </el-button>
      </template>
      <template slot="menu" slot-scope="scope">
        <el-button v-if="permissionChildrenList.UiPageLayoutDesignBtn" icon="el-icon-edit-outline" size="small" type="text"
                   @click="btnDesignClickHandler(scope.row)">按钮设计
        <el-button v-if="permissionChildrenList.UiPageLayoutDesignBtn" size="small" type="text"
                   @click="btnDesignClickHandler(scope.row)">
          <icon-show :name="permissionChildrenList.UiPageLayoutDesignBtn.source"></icon-show>
          按钮设计
        </el-button>
        <el-button v-if="permissionChildrenList.UiPageLayoutEditBtn" icon="el-icon-edit" size="small" type="text" @click="editBtnClick(scope.row)">编辑
        <el-button v-if="permissionChildrenList.UiPageLayoutEditBtn" size="small" type="text"
                   @click="editBtnClick(scope.row)">
          <icon-show :name="permissionChildrenList.UiPageLayoutEditBtn.source"></icon-show>
          编辑
        </el-button>
        <el-button v-if="permissionChildrenList.UiPageLayoutDelBtn" icon="el-icon-delete" size="small" type="text" @click="rowDeleteHandler(scope.row)">删除
        <el-button v-if="permissionChildrenList.UiPageLayoutDelBtn" size="small" type="text"
                   @click="rowDeleteHandler(scope.row)">
          <icon-show :name="permissionChildrenList.UiPageLayoutDelBtn.source"></icon-show>
          删除
        </el-button>
        <el-button v-if="permissionChildrenList.UiPageLayoutCloneBtn" icon="el-icon-document-copy" size="small" type="text" @click="rowCloneHandler(scope.row)">克隆
        <el-button v-if="permissionChildrenList.UiPageLayoutCloneBtn" size="small" type="text"
                   @click="rowCloneHandler(scope.row)">
          <icon-show :name="permissionChildrenList.UiPageLayoutCloneBtn.source"></icon-show>
          克隆
        </el-button>
      </template>
@@ -114,19 +128,27 @@
      <el-container v-loading="dialogLoading">
        <el-header style="height: 40px !important;padding-left: 5px;">
          <div style="display: flex">
            <el-button v-show="disabledBtn" :disabled="!disabledBtn" plain size="mini" type="primary" @click="addClickBtnHandler">添加
            <el-button v-show="disabledBtn" :disabled="!disabledBtn" plain size="mini" type="primary"
                       @click="addClickBtnHandler">添加
            </el-button>
            <el-button v-show="disabledBtn" :disabled="!disabledBtn" plain size="mini" type="primary" @click="editClickBtnHandler">修改
            <el-button v-show="disabledBtn" :disabled="!disabledBtn" plain size="mini" type="primary"
                       @click="editClickBtnHandler">修改
            </el-button>
            <el-button v-show="disabledBtn" :disabled="!disabledBtn" plain size="mini" type="danger" @click="delClickBtnHandler">删除
            <el-button v-show="disabledBtn" :disabled="!disabledBtn" plain size="mini" type="danger"
                       @click="delClickBtnHandler">删除
            </el-button>
            <el-button v-show="!disabledBtn" :disabled="disabledBtn" plain size="mini" icon="el-icon-check" type="success" @click="saveClickBtnHandler">保存
            <el-button v-show="!disabledBtn" :disabled="disabledBtn" icon="el-icon-check" plain size="mini"
                       type="success" @click="saveClickBtnHandler">保存
            </el-button>
            <el-button v-show="!disabledBtn" :disabled="disabledBtn" plain size="mini" icon="el-icon-close" type="danger" @click="escClickBtnHandler">取消
            <el-button v-show="!disabledBtn" :disabled="disabledBtn" icon="el-icon-close" plain size="mini"
                       type="danger" @click="escClickBtnHandler">取消
            </el-button>
            <el-button v-show="disabledBtn"  plain size="mini" type="primary" @click="changeBottomBtnHandler">调整为下级按钮</el-button>
            <el-button v-show="disabledBtn"  plain size="mini" type="primary" @click="changeTopBtnHandler">调整为上级按钮</el-button>
            <el-button v-show="disabledBtn"  plain size="mini" type="primary" @click="cloneClickBtnHandler">复制到其他组件</el-button>
            <el-button v-show="disabledBtn" plain size="mini" type="primary" @click="changeBottomBtnHandler">调整为下级按钮
            </el-button>
            <el-button v-show="disabledBtn" plain size="mini" type="primary" @click="changeTopBtnHandler">调整为上级按钮
            </el-button>
            <el-button v-show="disabledBtn" plain size="mini" type="primary" @click="cloneClickBtnHandler">复制到其他组件
            </el-button>
          </div>
        </el-header>
        <el-container>
@@ -143,7 +165,7 @@
                  <span slot-scope="{ node, data }" class="el-tree-node__label">
                    <span style="display: flex">
                      <i v-if="data.oId=='parentNode'" class="iconShow el-icon-s-home"></i>
                      <icon-show v-else :name="data.iconPath"></icon-show>
                      <icon-show v-if="data.oId!='parentNode' && data.iconPath && data.iconPath!='undefined'" :name="data.iconPath"></icon-show>
                        {{ (node || {}).label }}
                    </span>
                  </span>
@@ -166,15 +188,17 @@
                  </el-col>
                  <el-col :span="12">
                    <el-form-item :inline-message='true' label="名称:" prop="label">
                    <el-form-item label="名称:" prop="label">
                      <el-input v-model="basicForm.label" :disabled="disabledBtn"></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col :span="12">
                    <el-form-item label="Action:" prop="actionName">
                      <el-input v-model="basicForm.actionName" :disabled="disabledBtn" :clearable="true" @focus="actionFoucus" @clear="clearActionValue">
                        <i slot="suffix" class="el-input__icon el-icon-search" style="cursor: pointer" @click="actionFoucus"></i>
                      <el-input v-model="basicForm.actionName" :clearable="true" :disabled="disabledBtn"
                                @clear="clearActionValue" @focus="actionFoucus">
                        <i slot="suffix" class="el-input__icon el-icon-search" style="cursor: pointer"
                           @click="actionFoucus"></i>
                      </el-input>
                    </el-form-item>
                  </el-col>
@@ -194,15 +218,16 @@
                    </el-form-item>
                  </el-col>
                  <el-col :span="12" v-show="basicForm.show=='0'">
                  <el-col v-show="basicForm.show=='0'" :span="12">
                    <el-form-item label="显示方式:" prop="showType">
                      <el-radio v-model="basicForm.displayMode" :disabled="disabledBtn" label="text">文字</el-radio>
                      <el-radio v-model="basicForm.displayMode" :disabled="disabledBtn" label="image">图标</el-radio>
                      <el-radio v-model="basicForm.displayMode" :disabled="disabledBtn" label="textandimage">文字和图标</el-radio>
                      <el-radio v-model="basicForm.displayMode" :disabled="disabledBtn" label="textandimage">文字和图标
                      </el-radio>
                    </el-form-item>
                  </el-col>
                  <el-col :span="24" v-show="basicForm.show=='0' && (basicForm.displayMode=='image'||basicForm.displayMode=='textandimage')">
                    <el-form-item label="图标:" prop="iconPath">
                    <el-form-item :class="basicForm.displayMode==='image'?'is-required':''" label="图标:" prop="iconPath">
                      <input-icon v-model="basicForm.iconPath" :disabled="disabledBtn"></input-icon>
                    </el-form-item>
                  </el-col>
@@ -246,7 +271,8 @@
        </el-container>
      </el-container>
    </el-dialog>
    <action-dialog ref="actionDialog" @cancelAction="actionCancelHandler" @updataAction="actionSaveHandler"></action-dialog>
    <action-dialog ref="actionDialog" @cancelAction="actionCancelHandler"
                   @updataAction="actionSaveHandler"></action-dialog>
    <clone-dialog ref="cloneDialog" :fromOid="fromOid" :sourceOId="sourceOId" paramsType="tab"
                  type="pageDef"></clone-dialog>
    <clone-dialog ref="cloneBtnDialog" :fromOid="formBtnOid" :sourceOId="sourceBtnOid" paramsType="pageDef"
@@ -363,14 +389,15 @@
        editBtn: false,
        delBtn: false,
        refreshBtn: false,
        dialogWidth:'600',
        menuWidth:'150',
        dialogWidth: '600',
        menuWidth: '140',
        column: [
          {
            label: '名称',
            prop: 'name',
            width:180,
            width: 180,
            span: 24,
            overHidden: true,
            rules: [
              {
                required: true,
@@ -382,8 +409,9 @@
          {
            label: '值',
            prop: 'value',
            type:'textarea',
            type: 'textarea',
            span: 24,
            overHidden: true,
            rules: [
              {
                required: true,
@@ -402,13 +430,11 @@
          {required: true, message: '请输入名称', trigger: 'blur'},
        ],
        actionName: [
          {required: true, message: '请选择Action', trigger: 'blur'},
          {required: true, message: '请选择Action', trigger: 'change'},
        ],
      },
      // 按钮设计 基础信息
      basicForm: {
        seq: 1
      },
      basicForm: {},
      treeData: [],
      treeOption: {
        menu: false,
@@ -427,14 +453,14 @@
      data: [],
      option: {
        ...basicOption,
        size:'mini',
        size: 'mini',
        height: this.height,
        addBtn: false,
        index: true,
        calcHeight: -30,
        editBtn: false,
        delBtn: false,
        menuWidth:300,
        menuWidth: 300,
        column: [
          {
            label: '名称',
@@ -450,9 +476,10 @@
            ]
          },
          {
            label: '编号',
            label: '序号',
            prop: 'seq',
            width:100,
            width: 100,
            type:'number',
            labelWidth: 110,
            hide: false,
            rules: [
@@ -605,8 +632,8 @@
        ],
        group: [
          {
            icon:'el-icon-info',
            label:'',
            icon: 'el-icon-info',
            label: '',
            arrow: true,
            prop: 'group1',
            column: [
@@ -856,17 +883,18 @@
      lastIndex: null,
      selectList: [],
      formDataRow: {},
      defaultForm: {},
    }
  },
  computed:{
  computed: {
    ...mapGetters(["permission"]),
    permissionChildrenList() {
      return {
        UiPageLayoutAddBtn: this.vaildData(this.permission[this.$route.query.id].UiPageLayoutAdd, false),
        UiPageLayoutEditBtn: this.vaildData(this.permission[this.$route.query.id].UiPageLayoutEdit, false),
        UiPageLayoutDelBtn: this.vaildData(this.permission[this.$route.query.id].UiPageLayoutDel, false),
        UiPageLayoutCloneBtn: this.vaildData(this.permission[this.$route.query.id].UiPageLayoutClone, false),
        UiPageLayoutDesignBtn: this.vaildData(this.permission[this.$route.query.id].UiPageLayoutDesign, false),
        UiPageLayoutAddBtn: this.vaildData(this.permission[this.$route.query.id].CLSRIGHT, false),
        UiPageLayoutEditBtn: this.vaildData(this.permission[this.$route.query.id].DATARIGHT, false),
        UiPageLayoutDelBtn: this.vaildData(this.permission[this.$route.query.id].ATTRRIGHT, false),
        UiPageLayoutCloneBtn: this.vaildData(this.permission[this.$route.query.id].CLONE, false),
        UiPageLayoutDesignBtn: this.vaildData(this.permission[this.$route.query.id].UPLOAD, false),
      }
    }
  },
@@ -997,6 +1025,10 @@
      if (row.templateType === '6') {
        row.SubUIObjType = row.showType;
        row.showType = "";
      }
      if (row.templateType === '5' && this.form.linkType && !this.form.showLinkAbs) {
        this.$message.error('请选择参照树设置');
        return loading();
      }
      const params = {
        ...row,
@@ -1166,13 +1198,14 @@
    // 按钮设计行点击
    nodeTreeClick(row) {
      this.nodeTreeRow = row;
      this.defaultForm = {...row};
      this.basicForm = {...row};
      this.paramsData = row.buttonParams ? Object.entries(row.buttonParams).map(([key, value]) => ({
        name: key,
        value: value
      })) : [];
      this.disabledBtn = true;
      this.$refs.form.clearValidate()
      this.$refs.form.clearValidate();
    },
    // 按钮设计参数信息删除
@@ -1245,12 +1278,15 @@
      this.disabledBtn = true;
      if (this.saveType === 'add') {
        this.$refs.Tree.setCurrentKey(null);
        this.$refs.form.resetFields();
      } else {
        this.basicForm = {...this.defaultForm};
      }
    },
    // 按钮设计保存
    saveClickBtnHandler() {
      if (this.basicForm.show == '0' && (this.basicForm.displayMode == 'image' || this.basicForm.displayMode == 'textandimage') && this.basicForm.iconPath == '') {
      if (this.basicForm.show == '0' && this.basicForm.displayMode == 'image' && this.basicForm.iconPath == '') {
        this.$message.error('请选择图标');
        return;
      }
@@ -1279,9 +1315,9 @@
              this.$message.success(res.data.obj);
              this.disabledBtn = true;
              this.getTabBtnTree();
              this.basicForm = {};
              this.paramsData = [];
              this.dialogLoading = false;
              this.$refs.form.resetFields();
            }
          }).catch(err => {
            this.dialogLoading = false;
@@ -1289,7 +1325,6 @@
        } else {
          return false;
        }
        done();
      });
    },
@@ -1354,13 +1389,13 @@
    },
    // action选择弹窗直接关闭
    actionCancelHandler() {
      if(this.basicForm.actionOId){
      if (this.basicForm.actionOId) {
        this.$refs.form.clearValidate('Action')
      }
    },
    //清除action
    clearActionValue(){
    clearActionValue() {
      this.$set(this.basicForm, 'actionName', '');
      this.$set(this.basicForm, 'actionOId', '');
    },