| | |
| | | @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> |
| | | |
| | |
| | | } 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: { |
| | |
| | | data: [], |
| | | option: { |
| | | ...basicOption, |
| | | size:'mini', |
| | | height: this.height, |
| | | addBtn: false, |
| | | index: true, |
| | |
| | | { |
| | | label: '名称', |
| | | prop: 'name', |
| | | labelWidth: 110, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | |
| | | { |
| | | label: '编号', |
| | | prop: 'seq', |
| | | labelWidth: 110, |
| | | hide: false, |
| | | rules: [ |
| | | { |
| | |
| | | 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: [ |
| | |
| | | label: '显示类型', |
| | | prop: 'navigatorType', |
| | | type: 'radio', |
| | | labelWidth: 110, |
| | | span: 24, |
| | | value: '1', |
| | | hide: true, |
| | |
| | | label: '搜索类型', |
| | | prop: 'searchTarger', |
| | | display: true, |
| | | labelWidth: 110, |
| | | type: 'radio', |
| | | value: '1', |
| | | span: 24, |
| | |
| | | |
| | | 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] = ''; |
| | | }) |
| | |
| | | } |
| | | } |
| | | }, |
| | | { |
| | | 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', |
| | |
| | | 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; |
| | |
| | | prop: 'linkType', |
| | | type: 'select', |
| | | display: false, |
| | | labelWidth: 115, |
| | | filterable: true, |
| | | props: { |
| | | label: 'name', |
| | |
| | | { |
| | | label: '选择模板', |
| | | prop: 'templateId', |
| | | labelWidth: 115, |
| | | display: false, |
| | | formslot: true, |
| | | rules: [ |
| | |
| | | label: 'UI定义', |
| | | prop: 'SubUILayout', |
| | | type: 'select', |
| | | labelWidth: 115, |
| | | filterable: true, |
| | | display: false, |
| | | props: { |
| | |
| | | display: false, |
| | | value: '1', |
| | | type: 'radio', |
| | | labelWidth: 115, |
| | | span: 24, |
| | | dicData: [ |
| | | { |
| | |
| | | prop: 'searchObjType', |
| | | type: 'select', |
| | | display: false, |
| | | labelWidth: 100, |
| | | labelWidth: 115, |
| | | props: { |
| | | label: 'qtName', |
| | | value: 'qtName', |
| | |
| | | { |
| | | label: '查询模板', |
| | | prop: 'queryTemplateName', |
| | | labelWidth: 115, |
| | | type: 'select', |
| | | display: false, |
| | | formslot: true, |
| | |
| | | { |
| | | label: '控制路径', |
| | | prop: 'controlPath', |
| | | labelWidth: 115, |
| | | display: false, |
| | | type: 'textarea', |
| | | span: 24, |
| | |
| | | { |
| | | 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, |
| | | }, |
| | | { |
| | |
| | | prop: 'expandMode', |
| | | display: false, |
| | | type: 'radio', |
| | | labelWidth: 115, |
| | | value: '1', |
| | | dicData: [ |
| | | { |
| | |
| | | ] |
| | | }, |
| | | { |
| | | 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, |
| | |
| | | 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 |
| | | }, |
| | | ] |
| | |
| | | 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) { |
| | |
| | | deep: true |
| | | } |
| | | }, |
| | | computed: {}, |
| | | methods: { |
| | | //获取列表数据 |
| | | getTableList() { |
| | |
| | | // 增加关闭对话框 清空event数组 |
| | | beforeClose(done) { |
| | | this.eventData = []; |
| | | this.showTypeChangeFlag = false; |
| | | this.linkTypeChangeFlag = false; |
| | | done(); |
| | | }, |
| | | |
| | |
| | | }; |
| | | }); |
| | | } |
| | | console.log('row',row); |
| | | this.searchTargerChangeFlag = false; |
| | | this.$refs.crud.rowEdit(row); |
| | | }, |
| | |
| | | // 模板类型为表格 |
| | | templateTypeTable(val) { |
| | | if (!val) return; |
| | | this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName', 'bsCustQueryCLsOrUrl', 'csCustQueryCLsOrUrl']); |
| | | this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName', 'bsDataModel', 'csDataModel']); |
| | | }, |
| | | |
| | | // 模板类型为自定义模板 |
| | |
| | | // 模板类型为树表 |
| | | 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']); |
| | | }, |
| | | |
| | | // 模板类型为树 |
| | |
| | | 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定义 |
| | |
| | | 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']); |
| | | }, |
| | | |
| | | // 查找数组中对象索引 |