| | |
| | | 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> |
| | |
| | | <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> |
| | |
| | | <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="可使用字段" |
| | |
| | | </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="需要使用字段" |
| | |
| | | <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="可供搜索字段" |
| | |
| | | </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="需搜索字段" |
| | |
| | | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | |
| | | <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> |
| | |
| | | </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'); |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | </style> |
| | | |