田源
2024-12-18 06a70b6f1f24c5105b1705e892867acf488ca5dd
Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue
@@ -13,20 +13,20 @@
      @selection-change="selectChangeHandler"
      @row-click="rowClickHandler">
      <template slot="menuLeft" slot-scope="scope">
        <el-button icon="el-icon-plus" plain size="small" type="primary"
        <el-button v-if="permissionChildrenList.UiPageLayoutAddBtn" icon="el-icon-plus" plain size="small" type="primary"
                   @click="addClickHandler">增加
        </el-button>
        <el-button icon="el-icon-edit-outline" plain size="small" type="primary"
        <el-button v-if="permissionChildrenList.UiPageLayoutDesignBtn" icon="el-icon-edit-outline" plain size="small" type="primary"
                   @click="btnDesignClickHandler">按钮设计
        </el-button>
      </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="permissionChildrenList.UiPageLayoutEditBtn" icon="el-icon-edit" size="small" type="text" @click="editBtnClick(scope.row)">编辑
        </el-button>
        <el-button icon="el-icon-delete" size="small" type="text" @click="rowDeleteHandler(scope.row)">删除
        <el-button v-if="permissionChildrenList.UiPageLayoutDelBtn" icon="el-icon-delete" size="small" type="text" @click="rowDeleteHandler(scope.row)">删除
        </el-button>
        <el-button icon="el-icon-document-copy" size="small" type="text" @click="rowCloneHandler(scope.row)">克隆
        <el-button v-if="permissionChildrenList.UiPageLayoutCloneBtn" icon="el-icon-document-copy" size="small" type="text" @click="rowCloneHandler(scope.row)">克隆
        </el-button>
      </template>
@@ -268,6 +268,7 @@
} from "@/api/UI/uiDefine";
import actionDialog from '@/views/modelingMenu/ui/Aciton/components/dialog';
import cloneDialog from "@/views/modelingMenu/ui/uiDefine/rightRegion/cloneDialog";
import {mapGetters} from "vuex";
export default {
  props: {
@@ -414,6 +415,7 @@
      data: [],
      option: {
        ...basicOption,
        size:'mini',
        height: this.height,
        addBtn: false,
        index: true,
@@ -424,6 +426,7 @@
          {
            label: '名称',
            prop: 'name',
            labelWidth: 110,
            rules: [
              {
                required: true,
@@ -435,6 +438,7 @@
          {
            label: '编号',
            prop: 'seq',
            labelWidth: 110,
            hide: false,
            rules: [
              {
@@ -448,17 +452,25 @@
            label: '',
            prop: 'uiParser',
            hide: true,
            labelWidth: 100,
            labelWidth: 110,
          },
          {
            label: '',
            prop: 'extAttr',
            hide: true,
            labelWidth: 110,
          },
          {
            label: '描述',
            prop: 'description',
            labelWidth: 110,
            hide: false,
          },
          {
            label: '模板类型',
            prop: 'templateType',
            type: 'radio',
            labelWidth: 110,
            span: 24,
            value: '1',
            dicData: [
@@ -517,6 +529,7 @@
            label: '显示类型',
            prop: 'navigatorType',
            type: 'radio',
            labelWidth: 110,
            span: 24,
            value: '1',
            hide: true,
@@ -539,6 +552,7 @@
            label: '搜索类型',
            prop: 'searchTarger',
            display: true,
            labelWidth: 110,
            type: 'radio',
            value: '1',
            span: 24,
@@ -564,7 +578,7 @@
              if (this.searchTargerChangeFlag) {
                // 切换清空模板类型
                const list = ['showType', 'linkType', 'templateId', 'SubUILayout', 'queryTemplateName', 'searchObjType', 'bsCustQueryCLsOrUrl', 'csCustQueryCLsOrUrl'];
                const list = ['showType', 'linkType', 'templateId', 'SubUILayout', 'queryTemplateName', 'searchObjType', 'bsDataModel', 'csDataModel'];
                list.forEach(item => {
                  this.form[item] = '';
                })
@@ -573,22 +587,19 @@
              }
            }
          },
          {
            label: '描述',
            prop: 'description',
            display: false
          },
        ],
        group: [
          {
            label: '',
            arrow: false,
            icon:'el-icon-info',
            label:'',
            arrow: true,
            prop: 'group1',
            column: [
              {
                label: '源对象',
                prop: 'showType',
                type: 'select',
                labelWidth: 115,
                cascader: ['linkType', 'SubUILayout', 'searchObjType'],
                placeholder: "请输入内容",
                dicUrl: '/api/uiManagerController/getBtmDatasByPage?page=1&limit=-1',
@@ -596,7 +607,7 @@
                change: (val) => {
                  if (val.value) {
                    let params = {
                      'conditionMap[selectBtmType]': this.form.searchTarger === '1' ? this.form.showType : this.form.linkType
                      'conditionMap[selectBtmType]': this.form.searchTarger === '1' ? val.value : this.form.linkType
                    }
                    getPortalVIDatasByPage(1, -1, params).then(res => {
                      this.templateIdList = res.data.data;
@@ -638,6 +649,7 @@
                prop: 'linkType',
                type: 'select',
                display: false,
                labelWidth: 115,
                filterable: true,
                props: {
                  label: 'name',
@@ -670,6 +682,7 @@
              {
                label: '选择模板',
                prop: 'templateId',
                labelWidth: 115,
                display: false,
                formslot: true,
                rules: [
@@ -684,6 +697,7 @@
                label: 'UI定义',
                prop: 'SubUILayout',
                type: 'select',
                labelWidth: 115,
                filterable: true,
                display: false,
                props: {
@@ -698,6 +712,7 @@
                display: false,
                value: '1',
                type: 'radio',
                labelWidth: 115,
                span: 24,
                dicData: [
                  {
@@ -715,7 +730,7 @@
                prop: 'searchObjType',
                type: 'select',
                display: false,
                labelWidth: 100,
                labelWidth: 115,
                props: {
                  label: 'qtName',
                  value: 'qtName',
@@ -726,6 +741,7 @@
              {
                label: '查询模板',
                prop: 'queryTemplateName',
                labelWidth: 115,
                type: 'select',
                display: false,
                formslot: true,
@@ -733,6 +749,7 @@
              {
                label: '控制路径',
                prop: 'controlPath',
                labelWidth: 115,
                display: false,
                type: 'textarea',
                span: 24,
@@ -741,18 +758,20 @@
              {
                label: '树结构展开列',
                prop: 'expandCols',
                labelWidth: 110,
                labelWidth: 115,
                display: false,
                span: 12
              },
              {
                label: '参照树设置',
                prop: 'showLinkAbs',
                labelWidth: 115,
                display: false,
              },
              {
                label: '分隔符',
                prop: 'separator',
                labelWidth: 115,
                display: false,
              },
              {
@@ -760,6 +779,7 @@
                prop: 'expandMode',
                display: false,
                type: 'radio',
                labelWidth: 115,
                value: '1',
                dicData: [
                  {
@@ -773,6 +793,20 @@
                ]
              },
              {
                label: 'B/S自定义查询',
                prop: 'bsDataModel',
                display: false,
                labelWidth: 115,
                span: 12
              },
              {
                label: 'C/S自定义查询',
                prop: 'csDataModel',
                display: false,
                labelWidth: 115,
                span: 12
              },
              {
                label: '根节点显示表达式',
                prop: 'rootContent',
                display: false,
@@ -784,20 +818,6 @@
                prop: 'showAbs',
                display: false,
                labelWidth: 135,
                span: 12
              },
              {
                label: 'B/S自定义查询',
                prop: 'bsCustQueryCLsOrUrl',
                display: false,
                labelWidth: 115,
                span: 12
              },
              {
                label: 'C/S自定义查询',
                prop: 'csCustQueryCLsOrUrl',
                display: false,
                labelWidth: 115,
                span: 12
              },
            ]
@@ -823,6 +843,18 @@
      formDataRow: {},
    }
  },
  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),
      }
    }
  },
  watch: {
    sourceData: {
      handler(val) {
@@ -836,7 +868,6 @@
      deep: true
    }
  },
  computed: {},
  methods: {
    //获取列表数据
    getTableList() {
@@ -897,6 +928,8 @@
    // 增加关闭对话框 清空event数组
    beforeClose(done) {
      this.eventData = [];
      this.showTypeChangeFlag = false;
      this.linkTypeChangeFlag = false;
      done();
    },
@@ -916,6 +949,7 @@
          };
        });
      }
      console.log('row',row);
      this.searchTargerChangeFlag = false;
      this.$refs.crud.rowEdit(row);
    },
@@ -1036,7 +1070,7 @@
    // 模板类型为表格
    templateTypeTable(val) {
      if (!val) return;
      this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName', 'bsCustQueryCLsOrUrl', 'csCustQueryCLsOrUrl']);
      this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName', 'bsDataModel', 'csDataModel']);
    },
    // 模板类型为自定义模板
@@ -1050,13 +1084,13 @@
    // 模板类型为树表
    templateTypeTreeTable(val) {
      if (!val) return;
      this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName', 'expandCols', 'expandMode', 'bsCustQueryCLsOrUrl', 'csCustQueryCLsOrUrl']);
      this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName', 'expandCols', 'expandMode', 'bsDataModel', 'csDataModel']);
    },
    // 模板类型为表单
    templateTypeForm(val) {
      if (!val) return;
      this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName', 'bsCustQueryCLsOrUrl', 'csCustQueryCLsOrUrl']);
      this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName', 'bsDataModel', 'csDataModel']);
    },
    // 模板类型为树
@@ -1064,7 +1098,7 @@
      if (!val) return;
      const searchTarger = this.option.column.find(item => item.prop === 'searchTarger');  // 获取搜索类型配置项
      searchTarger.display = false; // 不展示搜索类型
      this.updateDisplay(val, ['showType', 'queryTemplateName', 'rootContent', 'showAbs', 'showLinkAbs', 'separator', 'expandMode', 'linkType', 'bsCustQueryCLsOrUrl', 'csCustQueryCLsOrUrl']);
      this.updateDisplay(val, ['showType', 'queryTemplateName', 'rootContent', 'showAbs', 'showLinkAbs', 'separator', 'expandMode', 'linkType', 'bsDataModel', 'csDataModel']);
    },
    // 模板类型为UI定义
@@ -1072,7 +1106,7 @@
      if (!val) return;
      const searchTarger = this.option.column.find(item => item.prop === 'searchTarger');  // 获取搜索类型配置项
      searchTarger.display = false; // 不展示搜索类型
      this.updateDisplay(val, ['showType', 'SubUILayout', 'searchType', 'searchObjType', 'queryTemplateName', 'bsCustQueryCLsOrUrl', 'csCustQueryCLsOrUrl']);
      this.updateDisplay(val, ['showType', 'SubUILayout', 'searchType', 'searchObjType', 'queryTemplateName', 'bsDataModel', 'csDataModel']);
    },
    // 查找数组中对象索引