田源
2024-09-20 3c6c92b68a1b113b5450554db750ebe1d8bd26bb
Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/tableDialog.vue
@@ -9,35 +9,35 @@
    width="60%"
    @close="closeDialog"
  >
    <el-form :model="form" :rules="rules" label-position="right" label-width="100px">
    <el-form v-loading="formLoading" :model="form" :rules="rules" label-position="right" label-width="100px">
      <el-row>
        <el-col :span="12">
          <el-form-item label="名称">
            <el-input v-model="user" placeholder="请输入内容" size="mini"></el-input>
            <el-input v-model="form.viName" placeholder="请输入名称" size="mini"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="每页行数">
            <el-input v-model="user" placeholder="请输入内容" size="mini"></el-input>
            <el-input v-model="form.itemPageSize" placeholder="请输入每页行数" size="mini" type="number"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="24">
          <el-form-item label="附加查询条件">
            <el-input v-model="user" placeholder="请输入内容" size="mini"></el-input>
            <el-input v-model="form.itemAddFilter" placeholder="请输入查询条件" size="mini"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="绑定表单">
            <div style="display: flex;align-items: center;">
              <el-select v-model="form.region" placeholder="请选择活动区域" size="mini">
                <el-option label="区域一" value="shanghai"></el-option>
                <el-option label="区域二" value="beijing"></el-option>
              <el-select v-model="form.itemInObj" clearable placeholder="请选择绑定表单" size="mini">
                <el-option v-for="(item,index) in selectList" :key="index" :label="item.viName"
                           :value="item.id"></el-option>
              </el-select>
              <el-button plain size="mini" style="margin-left: 3px" type="success">选择</el-button>
              <el-button plain size="mini" style="margin-left: 3px" type="success" @click="formSelectClickHandler">选择
              </el-button>
            </div>
          </el-form-item>
        </el-col>
@@ -45,9 +45,11 @@
        <el-col :span="12">
          <el-form-item label="父名称">
            <div style="display: flex;align-items: center;">
              <el-input v-model="user" placeholder="请输入内容" size="mini"></el-input>
              <el-checkbox v-model="checked" style="margin-left: 5px; margin-right: 5px">显示查询区域</el-checkbox>
              <el-checkbox v-model="checked" style="margin-left: 5px;margin-right: 0px">显示文件夹</el-checkbox>
              <el-input v-model="form.itemParentFolderName" placeholder="请输入父名称" size="mini"></el-input>
              <el-checkbox v-model="form.itemIsNavigatorExpand" style="margin-left: 5px; margin-right: 5px">显示查询区域
              </el-checkbox>
              <el-checkbox v-model="form.itemIsShowFolder" style="margin-left: 5px;margin-right: 0px">显示文件夹
              </el-checkbox>
            </div>
          </el-form-item>
        </el-col>
@@ -57,8 +59,10 @@
            <div style="display: flex; align-items: center">
              <div style="height: 260px; width: 160px; border: 1px solid #bdbbbb;overflow-y: auto">
                <el-table
                  :data="showLifeTable"
                  style="width: 100%">
                  :data="form.itemSelectOutFieldList"
                  :highlight-current-row="true"
                  style="width: 100%"
                  @row-click="showLabelLeftRowClick">
                  <el-table-column
                    align="center"
                    label="可使用字段"
@@ -67,13 +71,16 @@
                </el-table>
              </div>
              <div style="margin-left: 10px; margin-right: 10px">
                <el-button circle icon="el-icon-back" style="margin-right: 10px"></el-button>
                <el-button circle icon="el-icon-right"></el-button>
                <el-button circle icon="el-icon-back" style="margin-right: 10px"
                           @click="showLeftTransferClick"></el-button>
                <el-button circle icon="el-icon-right" @click="showRightTransferClick"></el-button>
              </div>
              <div style="height: 260px; width: 160px; border: 1px solid #bdbbbb;overflow-y: auto">
                <el-table
                  :data="showRightTable"
                  style="width: 100%">
                  :data="form.itemOutFieldList"
                  :highlight-current-row="true"
                  style="width: 100%"
                  @row-click="showLabelRightRowClick">
                  <el-table-column
                    align="center"
                    label="需要使用字段"
@@ -90,8 +97,10 @@
            <div style="display: flex; align-items: center">
              <div style="height: 260px; width: 160px; border: 1px solid #bdbbbb;overflow-y: auto">
                <el-table
                  :data="searchLifeTable"
                  style="width: 100%">
                  :data="form.itemSearchFieldList"
                  :highlight-current-row="true"
                  style="width: 100%"
                  @row-click="searchLeftRowClick">
                  <el-table-column
                    align="center"
                    label="可供搜索字段"
@@ -100,13 +109,16 @@
                </el-table>
              </div>
              <div style="margin-left: 10px; margin-right: 10px">
                <el-button circle icon="el-icon-back" style="margin-right: 10px"></el-button>
                <el-button circle icon="el-icon-right"></el-button>
                <el-button circle icon="el-icon-back" style="margin-right: 10px"
                           @click="searchLeftTransferClick"></el-button>
                <el-button circle icon="el-icon-right" @click="searchRightTransferClick"></el-button>
              </div>
              <div style="height: 260px; width: 160px; border: 1px solid #bdbbbb;overflow-y: auto">
                <el-table
                  :data="searchRightTable"
                  style="width: 100%">
                  :data="form.itemKeyFieldList"
                  :highlight-current-row="true"
                  style="width: 100%"
                  @row-click="searchRightRowClick">
                  <el-table-column
                    align="center"
                    label="需搜索字段"
@@ -120,9 +132,9 @@
        <el-col :span="12">
          <el-form-item label="列">
            <el-select v-model="form.region" placeholder="请选择列" size="mini">
              <el-option label="区域一" value="shanghai"></el-option>
              <el-option label="区域二" value="beijing"></el-option>
            <el-select v-model="form.itemFileWidthSelect" placeholder="请选择列" size="mini" @change="itemFileWidthChange">
              <el-option v-for="(item,index) in form.itemFieldWidthList" :key="index" :label="item.key"
                         :value="item.key"></el-option>
            </el-select>
          </el-form-item>
        </el-col>
@@ -130,8 +142,10 @@
        <el-col :span="12">
          <el-form-item label="宽度">
            <div style="display: flex;align-items: center;">
              <el-input v-model="user" placeholder="请输入内容" size="mini" style="width: 193px"></el-input>
              <el-button plain size="mini" style="margin-left: 3px" type="success">设置</el-button>
              <el-input v-model="form.itemWidth" placeholder="请输入宽度" size="mini" style="width: 193px"
                        type="number"></el-input>
              <el-button plain size="mini" style="margin-left: 3px" type="success" @click="widthSetUpClickHandler">设置
              </el-button>
            </div>
          </el-form-item>
        </el-col>
@@ -141,25 +155,26 @@
        <el-form-item label="设置列宽">
          <div style="height: 150px; width: 100%; border: 1px solid #bdbbbb;overflow-y: auto">
            <el-table
              :data="columnWidthData"
              :data="form.itemFieldWidthList"
              :highlight-current-row="true"
              border
              stripe
              style="width: 100%">
              style="width: 100%"
              @row-click="itemFileWidthRowClick">
              <el-table-column
                align="center"
                label="列名"
                prop="id">
                prop="key">
                <template slot-scope="scope">
                  <el-tag size="medium">{{ scope.row.id }}</el-tag>
                  <el-tag size="medium">{{ scope.row.key }}</el-tag>
                </template>
              </el-table-column>
              <el-table-column
                align="center"
                label="列宽"
                prop="width">
                prop="value">
                <template slot-scope="scope">
                  <el-tag size="medium">{{ scope.row.width }}</el-tag>
                  <el-tag size="medium">{{ scope.row.value }}</el-tag>
                </template>
              </el-table-column>
            </el-table>
@@ -169,22 +184,24 @@
      <el-col :span="8">
        <el-form-item label="查询字段">
          <el-input v-model="user" placeholder="请输入内容" size="mini"></el-input>
          <el-input v-model="form.searchLabel" placeholder="请输入查询字段" size="mini"></el-input>
        </el-form-item>
      </el-col>
      <el-col :span="8">
        <el-form-item label="查询次数">
          <el-input v-model="user" placeholder="请输入内容" size="mini"></el-input>
          <el-input v-model="form.searchNumber" placeholder="请输入查询次数" size="mini"></el-input>
        </el-form-item>
      </el-col>
      <el-col :span="8">
        <el-form-item label="查询sql">
          <div style="display: flex;align-items: center">
            <el-input v-model="user" placeholder="请输入内容" size="mini"></el-input>
            <el-button plain size="mini" style="margin-left: 3px" type="success">添加</el-button>
            <el-button plain size="mini" style="margin-left: 3px" type="danger">删除</el-button>
            <el-input v-model="form.searchSql" placeholder="请输入sql" size="mini"></el-input>
            <el-button plain size="mini" style="margin-left: 3px" type="success" @click="searchAddClickHandler">添加
            </el-button>
            <el-button plain size="mini" style="margin-left: 3px" type="danger" @click="searchDelClickHandler">删除
            </el-button>
          </div>
        </el-form-item>
      </el-col>
@@ -193,33 +210,34 @@
        <el-form-item label="查询字段">
          <div style="height: 150px; width: 100%; border: 1px solid #bdbbbb;overflow-y: auto">
            <el-table
              :data="columnSearchData"
              :data="form.itemSeniorQueryBOS"
              :highlight-current-row="true"
              border
              stripe
              style="width: 100%">
              style="width: 100%"
              @row-click="itemSeniorRowClick">
              <el-table-column
                align="center"
                label="查询字段"
                prop="id">
                prop="itemSeniorQueryCols">
                <template slot-scope="scope">
                  <el-tag size="medium">{{ scope.row.id }}</el-tag>
                  <el-tag size="medium">{{ scope.row.itemSeniorQueryCols }}</el-tag>
                </template>
              </el-table-column>
              <el-table-column
                align="center"
                label="查询次数"
                prop="name">
                prop="itemSeniorQueryColsCounts">
                <template slot-scope="scope">
                  <el-tag size="medium">{{ scope.row.name }}</el-tag>
                  <el-tag size="medium">{{ scope.row.itemSeniorQueryColsCounts }}</el-tag>
                </template>
              </el-table-column>
              <el-table-column
                align="center"
                label="查询sql"
                prop="sql">
                prop="itemQuerySql">
                <template slot-scope="scope">
                  <el-tag size="medium">{{ scope.row.sql }}</el-tag>
                  <el-tag size="medium">{{ scope.row.itemQuerySql }}</el-tag>
                </template>
              </el-table-column>
            </el-table>
@@ -229,9 +247,9 @@
      <el-col :span="24">
        <el-form-item label="双击操作">
          <el-select v-model="form.region" placeholder="请选择双击操作" size="mini">
            <el-option label="区域一" value="shanghai"></el-option>
            <el-option label="区域二" value="beijing"></el-option>
          <el-select v-model="form.itemDbl" placeholder="请选择双击操作" size="mini">
            <el-option v-for="(item,index) in itemDblList" :key="index" :label="item.value"
                       :value="item.key"></el-option>
          </el-select>
        </el-form-item>
      </el-col>
@@ -241,11 +259,11 @@
          <div style="display: flex;align-items: center">
            <div style="display: flex;align-items: center;width: 100%;">
              <span>长:</span>
              <el-input v-model="user" placeholder="请输入内容" size="mini"></el-input>
              <el-input v-model="itemImgHeight" placeholder="请输入长度" size="mini"></el-input>
            </div>
            <div style="display: flex;align-items: center;width: 100%;margin-left: 30px">
              <span>宽:</span>
              <el-input v-model="user" placeholder="请输入内容" size="mini"></el-input>
              <el-input v-model="itemImgWidth" placeholder="请输入宽度" size="mini"></el-input>
            </div>
          </div>
        </el-form-item>
@@ -253,19 +271,19 @@
      <el-col :span="12">
        <el-form-item label="字符串截取">
          <el-input v-model="user" placeholder="请输入内容" size="mini"></el-input>
          <el-input v-model="form.itemCut" placeholder="请输入字符串" size="mini"></el-input>
        </el-form-item>
      </el-col>
      <el-col :span="8">
        <el-form-item label="超链接">
          <el-input v-model="user" placeholder="请输入内容" size="mini"></el-input>
          <el-input v-model="form.itemHrefConf" placeholder="请输入超链接" size="mini"></el-input>
        </el-form-item>
      </el-col>
      <el-col :span="24">
        <el-form-item label="查询模板">
          <el-select v-model="form.region" placeholder="请选择查询模板" size="mini">
          <el-select v-model="form.itemQtName" placeholder="请选择查询模板" size="mini">
            <el-option label="区域一" value="shanghai"></el-option>
            <el-option label="区域二" value="beijing"></el-option>
          </el-select>
@@ -274,62 +292,432 @@
    </el-form>
    <span slot="footer" class="dialog-footer">
         <el-button>取 消</el-button>
         <el-button type="primary">确 定</el-button>
         <el-button @click="closeDialog">取 消</el-button>
         <el-button type="primary" @click="dialogSaveClickHandler">确 定</el-button>
    </span>
    <el-dialog
      v-dialogDrag
      v-loading="selectFormLoading"
      :visible.sync="selectFormVisible"
      append-to-body="true"
      class="avue-dialog"
      title="表单选择"
      width="50%">
      <avue-crud
        ref="crud"
        :data="selectFormData"
        :option="selectFormOption"
        @selection-change="selectionChange"
        @row-click="rowClick">
      </avue-crud>
      <span slot="footer" class="dialog-footer">
         <el-button @click="selectFormVisible = false">取 消</el-button>
         <el-button type="primary" @click="selectFormAddClickHandler">确 定</el-button>
    </span>
    </el-dialog>
  </el-dialog>
</template>
<script>
import basicOption from "@/util/basic-option";
import {gridPortalVIDatas, getPortalVIById, getItemDblList, savePortalVI} from "@/api/UI/formDefine/api";
import func from "@/util/func";
export default {
  name: "tableDialog",
  props: {
    TreeNodeRow: {
      type: Object,
      default: () => {
      }
    },
    treeRadio: {
      type: String,
      default: ""
    }
  },
  created() {
    // this.getDbList();
  },
  data() {
    return {
      columnSearchData: [
        {
          id: 'test',
          name: '3',
          sql: 'xxxxx'
        }
      ],
      columnWidthData: [
        {
          id: 'test',
          width: '250'
        }
      ],
      searchLifeTable: [],
      searchRightTable: [],
      showRightTable: [],
      showLifeTable: [
        {
          id: 'test1'
        },
        {
          id: 'test2'
        },
        {
          id: 'test1'
        },
        {
          id: 'test2'
        },
        {
          id: 'test1'
        },
        {
          id: 'test2'
        }
      ],
      formLoading: false,
      itemImgHeight: '',
      itemImgWidth: '',
      itemSeniorRow: {},
      itemDblList: [],
      selectFormOption: {
        ...basicOption,
        addBtn: false,
        menu: false,
        refreshBtn: false,
        column: [
          {
            label: '业务名称',
            prop: 'typeName',
          },
          {
            label: '名称',
            prop: 'viName',
            sortable: true,
          },
          {
            label: '类型',
            prop: 'viTypeText',
          },
        ]
      },
      selectFormData: [],
      selectFormLoading: false,
      selectFormVisible: false,
      rules: {},
      form: {},
      form: {
        viName: '', // 名称
        itemPageSize: '', // 每页可显示行数
        itemAddFilter: '', // 附加查询条件
        itemInObj: '', // 绑定表单
        itemParentFolderName: '', // 父名称
        itemIsShowFolder: false, // 是否显示文件夹
        itemIsNavigatorExpand: false, // 显示查询区域
        itemSelectOutFieldList: [], // 可使用字段
        itemOutFieldList: [], // 需要使用字段 // 列下拉框
        itemSearchFieldList: [], // 可供搜索使用字段
        itemKeyFieldList: [], // 需要搜索字段
        itemWidth: '250', // 宽度
        itemFieldWidthList: [], // 设置列宽数组 与 itemOutFieldList 相匹配
        itemFileWidthSelect: '', // 列下拉框
        searchLabel: '', // 查询字段
        searchNumber: '1', // 查询次数
        searchSql: '', // 查询sql
        itemSeniorQueryBOS: [], // 查询字段列表
        itemDbl: [], // 双击操作
        itemImgWH: '', // 图片宽高 w,h
        itemCut: '', // 字符串截取
        itemHrefConf: '', // 超链接
        itemQtName: '', // 查询模板
      },
      defaultForm: {
        viName: '', // 名称
        itemPageSize: '', // 每页可显示行数
        itemAddFilter: '', // 附加查询条件
        itemInObj: '', // 绑定表单
        itemParentFolderName: '', // 父名称
        itemIsShowFolder: false, // 是否显示文件夹
        itemIsNavigatorExpand: false, // 显示查询区域
        itemSelectOutFieldList: [], // 可使用字段
        itemOutFieldList: [], // 需要使用字段 // 列下拉框
        itemSearchFieldList: [], // 可供搜索使用字段
        itemKeyFieldList: [], // 需要搜索字段
        itemWidth: '250', // 宽度
        itemFieldWidthList: [], // 设置列宽数组 与 itemOutFieldList 相匹配
        itemFileWidthSelect: '', // 列下拉框
        searchLabel: '', // 查询字段
        searchNumber: '1', // 查询次数
        searchSql: '', // 查询sql
        itemSeniorQueryBOS: [], // 查询字段列表
        itemDbl: [], // 双击操作
        itemImgWH: '', // 图片宽高 w,h
        itemCut: '', // 字符串截取
        itemHrefConf: '', // 超链接
        itemQtName: '', // 查询模板
      },
      loading: false,
      visible: false
      visible: false,
      selectList: [],
      lastIndex: null,
      showLabelLeftRow: {},
      showLabelRightRow: {},
      searchLeftRow: {},
      searchRightRow: {},
      itemFileWidthRow: {},
      itemFileWidthChangeVal: '',
    }
  },
  methods: {
    // 关闭对话框
    closeDialog() {
      this.visible = false;
      this.form = {...this.defaultForm};
    },
    // 选择表单关闭对话框
    closeSelectFormDialog() {
    },
    // 选择绑定表单
    formSelectClickHandler() {
      this.selectFormVisible = true;
      const params = {
        'conditionMap[typeName]': this.TreeNodeRow.attributes.id,
        'conditionMap[viType]': 'Form',
        'conditionMap[viTypeFlag]': this.treeRadio === '0' ? 'BtmType' : this.treeRadio === '1' ? 'LinkType' : '',
      }
      gridPortalVIDatas(1, -1, params).then(res => {
        if (res.data.code === 200) {
          const data = res.data.data;
          this.selectFormData = data;
        }
      });
    },
    // 获取初始化表格里需要的默认数据
    getFormSelectList() {
      this.formLoading = true;
      const params = {
        'conditionMap[typeName]': this.TreeNodeRow.id,
        'conditionMap[viType]': 'Form',
        'conditionMap[viTypeFlag]': this.treeRadio === '0' ? 'BtmType' : this.treeRadio === '1' ? 'LinkType' : '',
      };
      // 发起第一个请求
      gridPortalVIDatas(1, -1, params).then(res => {
        if (res.data.code === 200) {
          const data = res.data.data;
          this.selectList = data;
          // 确保 this.selectList 已经赋值且不为空
          if (this.selectList && this.selectList.length > 0) {
            const param = {
              id: this.selectList[0].id,
              viType: '1'
            };
            // 发起第二个请求
            return getPortalVIById(param);
          }
        }
      }).then(res => {
        if (res.data.code === 200) {
          const data = res.data.obj.prm.prmItemList.map(item => ({
            id: item.itemField
          }));
          // 过滤出来需要使用字段 赋值给 可使用字段渲染 (使用字段由编辑接口传递)
          const list = data.filter(item =>
            !this.form.itemOutFieldList.some(outItem => outItem.id === item.id)
          );
          this.$set(this.form, 'itemSelectOutFieldList', list);
          this.formLoading = false;
        }
      })
    },
    // 表格多选
    selectionChange(list) {
      this.selectList = list;
    },
    // 行点击
    rowClick(row) {
      func.rowClickHandler(
        row,
        this.$refs.crud,
        this.lastIndex,
        (newIndex) => {
          this.lastIndex = newIndex;
        },
        () => {
          this.selectList = [];
        }
      );
    },
    // 表单选择确定
    selectFormAddClickHandler() {
      if (this.selectList.length <= 0) {
        this.$message.error('请至少选择一条数据');
        return;
      }
      if (this.selectList.length > 1) {
        this.$message.error('只能选择一条数据');
        return;
      }
      const params = {
        id: this.selectList[0].id,
        viType: '1'
      }
      getPortalVIById(params).then(res => {
        if (res.data.code === 200) {
          const data = res.data.obj.prm.prmItemList.map(item => {
            return {
              id: item.itemField
            }
          });
          this.form.itemSelectOutFieldList = data;
          this.selectFormVisible = false;
        }
      })
      this.form.itemInObj = this.selectList[0].id;
    },
    // 显示字段左侧表格行点击
    showLabelLeftRowClick(row) {
      this.showLabelLeftRow = row;
    },
    // 显示字段右侧表格行点击
    showLabelRightRowClick(row) {
      this.showLabelRightRow = row;
    },
    // 搜索字段左侧表格行点击
    searchLeftRowClick(row) {
      this.searchLeftRow = row;
    },
    // 搜索字段右侧表格行点击
    searchRightRowClick(row) {
      this.searchRightRow = row;
    },
    // 显示字段穿梭框左移
    showLeftTransferClick() {
      if (func.isEmptyObject(this.showLabelRightRow)) {
        this.$message.error('请选择一条数据');
        return;
      }
      this.form.itemSelectOutFieldList.unshift(this.showLabelRightRow);
      this.form.itemOutFieldList = this.form.itemOutFieldList.filter(item => item.id !== this.showLabelRightRow.id);
      this.form.itemSearchFieldList = this.form.itemOutFieldList;
      this.form.itemFieldWidthList = this.form.itemFieldWidthList.filter(item => item.key !== this.showLabelRightRow.id);
      this.form.itemFileWidthSelect = this.form.itemFieldWidthList.length >= 1 ? this.form.itemFieldWidthList[0].key : '';
      this.showLabelRightRow = {};
    },
    // 显示字段穿梭框右移
    showRightTransferClick() {
      if (func.isEmptyObject(this.showLabelLeftRow)) {
        this.$message.error('请选择一条数据');
        return;
      }
      this.form.itemOutFieldList.push(this.showLabelLeftRow);
      this.form.itemSearchFieldList = this.form.itemOutFieldList;
      // 过滤 itemSelectOutFieldList,移除 id 与 showLabelLeftRow.id 相同的对象
      this.form.itemSelectOutFieldList = this.form.itemSelectOutFieldList.filter(item => item.id !== this.showLabelLeftRow.id);
      this.form.itemFieldWidthList.push({
        key: this.showLabelLeftRow.id,
        value: this.form.itemWidth
      });
      this.form.itemFileWidthSelect = this.form.itemFieldWidthList[0].key;
      this.showLabelLeftRow = {};
    },
    // 搜索字段穿梭框左移
    searchLeftTransferClick() {
      if (func.isEmptyObject(this.searchRightRow)) {
        this.$message.error('请选择一条数据');
        return;
      }
      this.form.itemSearchFieldList.unshift(this.searchRightRow);
      this.form.itemKeyFieldList = this.form.itemKeyFieldList.filter(item => item.id !== this.searchRightRow.id)
      this.searchRightRow = {};
    },
    // 搜索自动穿梭框右移
    searchRightTransferClick() {
      if (func.isEmptyObject(this.searchLeftRow)) {
        this.$message.error('请选择一条数据');
        return;
      }
      this.form.itemKeyFieldList.push(this.searchLeftRow);
      this.form.itemSearchFieldList = this.form.itemSearchFieldList.filter(item => item.id !== this.searchLeftRow.id);
      this.searchLeftRow = {};
    },
    // 设置列宽行点击
    itemFileWidthRowClick(row) {
      this.itemFileWidthRow = row;
      this.form.itemFileWidthSelect = row.key;
      this.form.itemWidth = row.value;
    },
    // 列下拉change
    itemFileWidthChange(val) {
      this.itemFileWidthChangeVal = val;
    },
    // 设置宽度
    widthSetUpClickHandler() {
      if (this.form.itemFileWidthSelect) {
        const item = this.form.itemFieldWidthList.find(item => item.key === this.form.itemFileWidthSelect);
        item.value = this.form.itemWidth;
      }
    },
    // 获取双击操作数据
    getDbList() {
      getItemDblList().then(res => {
        if (res.data.code === 200) {
          const data = res.data.data;
          this.itemDblList = data;
        }
      })
    },
    // 查询模板表格行点击
    itemSeniorRowClick(row) {
      this.itemSeniorRow = row;
    },
    // 查询模板添加
    searchAddClickHandler() {
      this.form.itemSeniorQueryBOS.push({
        itemSeniorQueryCols: this.form.searchLabel,
        itemSeniorQueryColsCounts: this.form.searchNumber,
        itemQuerySql: this.form.searchSql
      });
    },
    // 查询模板删除
    searchDelClickHandler() {
      if (func.isEmptyObject(this.itemSeniorRow)) {
        this.$message.error('请选择一条数据进行删除');
        return;
      }
      this.form.itemSeniorQueryBOS = this.form.itemSeniorQueryBOS.filter(item => item.itemSeniorQueryCols != this.itemSeniorRow.id);
      this.itemSeniorRow = {};
    },
    // 表格对话框保存
    dialogSaveClickHandler() {
      this.form.itemSelectOutFieldList = this.form.itemSelectOutFieldList.map(item => item.id); // 可使用字段
      this.form.itemOutFieldList = this.form.itemOutFieldList.map(item => item.id); // 需要使用字段
      this.form.itemSearchFieldList = this.form.itemSearchFieldList.map(item => item.id); // 可供搜索字段
      this.form.itemKeyFieldList = this.form.itemKeyFieldList.map(item => item.id); // 需要使用字段
      this.form.itemImgWH = `${this.itemImgHeight},${this.itemImgWidth}`;
      const params = {
        id: this.form.editNodeId,
        prm: {
          formQtName: '',
          prmItemList: [
            this.form
          ],
        },
        typeFlag: this.treeRadio,
        typeFlagText: this.treeRadio === '0' ? "业务类型的表单" : '链接类型的表单',
        typeName: this.TreeNodeRow.attributes.id,
        viName: this.form.viName,
        viType: 0,
        viTypeText: "表格"
      }
      savePortalVI(params).then(res => {
        if (res.data.code === 200) {
          this.$message.success('保存成功');
          this.closeDialog();
          this.$emit('updataTable');
        }
      })
    }
  }
}
@@ -342,3 +730,4 @@
  }
}
</style>