| | |
| | | @echoSelectedAttr="echoSelectedAttr"> |
| | | </refer-select-btm-attr-dialog> |
| | | |
| | | <el-dialog title="选择显示字段" |
| | | <el-dialog title="选取IN或NOTIN条件" |
| | | append-to-body |
| | | :visible.sync="isShowShowField" |
| | | :visible.sync="isShowInOrNotInCondition" |
| | | width="70%" |
| | | destroy-on-close |
| | | style="height: 110vh; margin-top: -12vh; overflow-y: hidden"> |
| | | <avue-crud :option="selectionShowFieldOption" |
| | | :table-loading="selectShowFieldLoading" |
| | | :data="selectShowFieldData" |
| | | ref="selectShowFieldCrud" |
| | | @row-click="showFieldRowClick" |
| | | @selection-change="selectionShowFieldDataChange" |
| | | @search-change="showFieldSearchChange" |
| | | @search-reset="showFieldSearchReset"> |
| | | <avue-crud :option="selectInOrNotInCondOption" |
| | | :page.sync="inOrNotInPage" |
| | | @current-change="inOrNotInCurrentChange" |
| | | @size-change="inOrNotInSizeChange" |
| | | @selection-change="selectionInOrNotInChange" |
| | | @row-click="rowInOrNotInClick" |
| | | @search-change="selectInOrNotInSearchChange" |
| | | @search-reset="searchInOrNotInReset" |
| | | :data="selectInOrNotInCondData" |
| | | ref="inOrNotInConditionCrud"> |
| | | </avue-crud> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="selectedShowField">确 定</el-button> |
| | | <el-button @click="isShowShowField = false">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <el-dialog title="选择查询条件" |
| | | append-to-body |
| | | :visible.sync="isShowSearchCondition" |
| | | width="70%" |
| | | destroy-on-close |
| | | style="height: 110vh; margin-top: -12vh; overflow-y: hidden"> |
| | | <avue-crud :option="selectionSearchConditionOption" |
| | | :table-loading="selectSearchConditionLoading" |
| | | :data="selectSearchConditionData" |
| | | ref="selectSearchConditionCrud" |
| | | @row-click="searchConditionRowClick" |
| | | @selection-change="searchConditionDataChange" |
| | | @search-change="searchConditionSearchChange" |
| | | @search-reset="searchConditionSearchReset"> |
| | | </avue-crud> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="selectedSearchCondition">确 定</el-button> |
| | | <el-button @click="isShowSearchCondition = false">取 消</el-button> |
| | | <!-- <div class="avue-dialog__footer--left valueInfo">{{ valueInfo }}</div> --> |
| | | <el-button type="primary" @click="selectedInOrNotInCond">确 定</el-button> |
| | | <el-button @click="isShowInOrNotInCondition = false">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | </el-dialog> |
| | | |
| | | </template> |
| | | |
| | | <script> |
| | | import func from "@/util/func"; |
| | | import {getList} from "@/api/refer/table"; |
| | | export default { |
| | | name: "referConfigFormDialog", |
| | | props: { |
| | |
| | | cell: true, |
| | | clearable: false, |
| | | dicData: [ |
| | | { |
| | | { |
| | | value: '_in', label: '存在于' |
| | | },{ |
| | | value: '_notin', label: '不存在于' |
| | | },{ |
| | | value: '_like', label: '包含' |
| | | },{ |
| | | value: "_notlike", label: "不包含", |
| | |
| | | preClickAttrRow: '', |
| | | preClickAddSearchConditionRow: '', |
| | | |
| | | //点击行弹出in或notin的值 |
| | | isShowInOrNotInCondition: false, |
| | | selectInOrNotInCondData: [], |
| | | selectInOrNotInCondOption: { |
| | | height:'220', |
| | | tip: false, |
| | | addBtn: false, |
| | | editBtn: false, |
| | | searchShow: true, |
| | | searchMenuSpan: 6, |
| | | border: false, |
| | | index: true, |
| | | viewBtn: false, |
| | | delBtn: false, |
| | | selection: true, |
| | | disablePage: false, |
| | | refreshBtn: false, |
| | | columnBtn: false, |
| | | menu: false, |
| | | dialogClickModal: false, |
| | | highlightCurrentRow: true, |
| | | column: [] |
| | | }, |
| | | inOrNotInPage: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | }, |
| | | selectionInOrNotInList: [], |
| | | inOrNotInParam: {}, |
| | | |
| | | }; |
| | | }, |
| | | // 表单界面显示内容配置 |
| | | computed: { |
| | | formOption() { |
| | | /** 检验是否为数字 */ |
| | | let validateNumber = ""; |
| | | validateNumber = (rule, value,callback) => { |
| | | if(/[^\d]/g.test(value)){ |
| | | callback(new Error('窗口显示的高度必须为数值类型')); |
| | | }else { |
| | | callback(); |
| | | formOption() { |
| | | /** 检验是否为数字 */ |
| | | let validateNumber = ""; |
| | | validateNumber = (rule, value, callback) => { |
| | | if (/[^\d]/g.test(value)) { |
| | | callback(new Error('窗口显示的高度必须为数值类型')); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | return { |
| | | submitBtn: false, |
| | | emptyBtn: false, |
| | | labelWidth: '145', //默认标签宽度 |
| | | group: [ |
| | | { |
| | | // 基础表单信息展示区域 |
| | | //display: this.form.type=='default'||this.form.type=='grid', |
| | | icon: 'el-icon-info', |
| | | label: '必填的参照配置', |
| | | collapse: true, |
| | | labelWidth: '115', |
| | | prop: 'groupDdefaultOrGrid', |
| | | column: [ |
| | | { |
| | | label: '参照的业务类型', |
| | | prop: 'referTypeName', |
| | | span: 6, |
| | | labelWidth: '130', |
| | | disabled: this.referTypeIsReadOnly, |
| | | clearable: !this.referTypeIsReadOnly, |
| | | tip: '参照数据查询的业务类型。', |
| | | tipPlacement: 'bottom', |
| | | rules: [{ |
| | | required: true, |
| | | message: "(参照的业务类型)必填项不能为空", |
| | | trigger: ["blur", "change"], |
| | | }], |
| | | }, { |
| | | label: '显示的属性', |
| | | prop: 'textField', |
| | | tip: '选择数据后,显示到字段上的信息所属的属性,一般都是name,如果是多个属性使用逗号分割,如id,name。', |
| | | tipPlacement: 'bottom', |
| | | span: 6, |
| | | value: 'name', |
| | | rules: [{ |
| | | required: true, |
| | | message: "(显示的属性)必填项不能为空", |
| | | trigger: "blur", |
| | | }], |
| | | }, { |
| | | label: '存储值的属性', |
| | | prop: 'valueField', |
| | | tip: '选择数据后,保存到数据库里的属性,一般都是oid或者id,如果是多个属性使用逗号分割,如oid ,id', |
| | | value: 'oid', |
| | | tipPlacement: 'bottom', |
| | | span: 6, |
| | | rules: [{ |
| | | required: true, |
| | | message: "(存储值的属性)必填项不能为空", |
| | | trigger: "blur", |
| | | }], |
| | | }, { |
| | | label: '参照窗口类型', |
| | | prop: 'type', |
| | | tip: 'default:默认的参照窗口样式; stand:UI上下文配置的方式; classify:分类+档案的显示; 自定义的参照直接写js的组件路径;tree:树形展示;grid:列表展示', |
| | | tipPlacement: 'bottom', |
| | | span: 6, |
| | | value: 'default', |
| | | type: 'select', |
| | | dicData: [{ |
| | | label: '默认样式', |
| | | value: 'default' |
| | | }, { |
| | | label: '平台配置', |
| | | value: 'stand' |
| | | }, { |
| | | label: '树形', |
| | | value: 'tree' |
| | | }, { |
| | | label: '列表', |
| | | value: 'grid' |
| | | }, { |
| | | label: '部门树', |
| | | value: 'refer/OrgDepartmentRefer' |
| | | }, { |
| | | label: '部门列表', |
| | | value: 'refer/OrgDepartmentGridRefers' |
| | | }, { |
| | | label: '用户', |
| | | value: 'refer/SmUserRefer' |
| | | }, { |
| | | label: '用户列表', |
| | | value: 'refer/SmUserGridRefer' |
| | | }, { |
| | | label: '角色列表', |
| | | value: 'refer/SmRoleRefer' |
| | | }, { |
| | | label: '职务', |
| | | value: 'refer/OrgDutyRefer' |
| | | }, { |
| | | label: '工种', |
| | | value: 'refer/SmWorkTypeRefer' |
| | | }, { |
| | | label: '流程模板', |
| | | value: 'refer/WfProcessTemplateRefer' |
| | | }], |
| | | rules: [{ |
| | | required: true, |
| | | message: "(参照窗口类型)必填项不能为空", |
| | | trigger: "blur", |
| | | }], |
| | | change: ({value, column}) => { |
| | | // console.log("start",value); |
| | | // 复原表单,因为其他分组中如果存在值,在切换时,会保留输入的字段值所以需要还原 |
| | | let addFrom = {}; |
| | | this.activeName = 'first'; // 默认切换至第一个tab |
| | | //根据类型对form表单属性进行调整 |
| | | if (value == 'stand') { |
| | | addFrom = { |
| | | referContent: '', |
| | | displayTable: '', |
| | | }; |
| | | this.isDisabledTabs = false; |
| | | } else if (value == 'default' || value == 'grid') { |
| | | addFrom = { |
| | | limit: 15, |
| | | sortField: '', |
| | | sortType: 'asc', |
| | | }; |
| | | this.isDisabledTabs = false; |
| | | } else if (value == 'tree') { |
| | | addFrom = { |
| | | parentFieldName: '', |
| | | parentUsedField: 'oid', |
| | | parentValue: '', |
| | | loadType: 'all', |
| | | onlyLeaf: false, |
| | | sortField: '', |
| | | sortType: 'asc', |
| | | }; |
| | | // 不知道为什么type为tree的时候会触发两次change事件 |
| | | // 导致type切换失败 |
| | | this.form.type = 'tree'; |
| | | this.isDisabledTabs = false; |
| | | } else { |
| | | this.isDisabledTabs = true; |
| | | this.activeName = 'second'; |
| | | } |
| | | // 类型切换时,对不需要的属性进行筛除 |
| | | this.removeFormAttr.forEach(attr => { |
| | | // console.log(attr); |
| | | this.$delete(this.form, attr) |
| | | }) |
| | | // 合并两个表单 |
| | | this.form = Object.assign(addFrom, this.form); |
| | | // console.log("endFilter",this.form.type); |
| | | // console.log(this.form); |
| | | }, |
| | | }, { |
| | | label: '是否持久化参照配置', |
| | | prop: 'isPersistence', |
| | | labelWidth: '142', |
| | | tip: 'true:开启持久化,对当前定义的参照配置进行持久化存储,下次可直接选取;false:仅对当前次码段新增生效。', |
| | | tipPlacement: 'bottom', |
| | | span: 6, |
| | | type: 'switch', |
| | | }, { |
| | | display: this.form.isPersistence || this.form.isPersistence == 'true', |
| | | label: '参照配置编号', |
| | | prop: 'id', |
| | | tip: '设置该参照配置持久化存储时的编号。', |
| | | rules: [{ |
| | | required: true, |
| | | message: "(开启持久化时编号)必填项不能为空", |
| | | trigger: "blur", |
| | | }], |
| | | span: 6, |
| | | }, { |
| | | display: this.form.isPersistence || this.form.isPersistence == 'true', |
| | | label: '参照配置名称', |
| | | prop: 'name', |
| | | tip: '设置该参照配置持久化存储时的名称。', |
| | | rules: [{ |
| | | required: true, |
| | | message: "(开启持久化时名称)必填项不能为空", |
| | | trigger: "blur", |
| | | }], |
| | | span: 6, |
| | | } |
| | | }; |
| | | return { |
| | | submitBtn: false, |
| | | emptyBtn: false, |
| | | labelWidth: '145', //默认标签宽度 |
| | | group: [ |
| | | { |
| | | // 基础表单信息展示区域 |
| | | //display: this.form.type=='default'||this.form.type=='grid', |
| | | icon: 'el-icon-info', |
| | | label: '必填的参照配置', |
| | | collapse: true, |
| | | labelWidth: '115', |
| | | prop: 'groupDdefaultOrGrid', |
| | | column: [ |
| | | { |
| | | label: '参照的业务类型', |
| | | prop: 'referTypeName', |
| | | span: 6, |
| | | labelWidth: '130', |
| | | disabled: this.referTypeIsReadOnly, |
| | | clearable: !this.referTypeIsReadOnly, |
| | | tip: '参照数据查询的业务类型。', |
| | | tipPlacement: 'bottom', |
| | | rules: [{ |
| | | required: true, |
| | | message: "(参照的业务类型)必填项不能为空", |
| | | trigger: ["blur","change"], |
| | | }], |
| | | },{ |
| | | label: '显示的属性', |
| | | prop: 'textField', |
| | | tip: '选择数据后,显示到字段上的信息所属的属性,一般都是name,如果是多个属性使用逗号分割,如id,name。', |
| | | tipPlacement: 'bottom', |
| | | span: 6, |
| | | value: 'name', |
| | | rules: [{ |
| | | required: true, |
| | | message: "(显示的属性)必填项不能为空", |
| | | trigger: "blur", |
| | | }], |
| | | },{ |
| | | label: '存储值的属性', |
| | | prop: 'valueField', |
| | | tip: '选择数据后,保存到数据库里的属性,一般都是oid或者id,如果是多个属性使用逗号分割,如oid ,id', |
| | | value: 'oid', |
| | | tipPlacement: 'bottom', |
| | | span: 6, |
| | | rules: [{ |
| | | required: true, |
| | | message: "(存储值的属性)必填项不能为空", |
| | | trigger: "blur", |
| | | }], |
| | | },{ |
| | | label: '参照窗口类型', |
| | | prop: 'type', |
| | | tip: 'default:默认的参照窗口样式; stand:UI上下文配置的方式; classify:分类+档案的显示; 自定义的参照直接写js的组件路径;tree:树形展示;grid:列表展示', |
| | | tipPlacement: 'bottom', |
| | | span: 6, |
| | | value: 'default', |
| | | type: 'select', |
| | | dicData: [{ |
| | | label: '默认样式', |
| | | value: 'default' |
| | | }, { |
| | | label: '平台配置', |
| | | value: 'stand' |
| | | }, { |
| | | label: '树形', |
| | | value: 'tree' |
| | | }, { |
| | | label: '列表', |
| | | value: 'grid' |
| | | }, { |
| | | label: '部门树', |
| | | value: 'refer/OrgDepartmentRefer' |
| | | }, { |
| | | label: '部门列表', |
| | | value: 'refer/OrgDepartmentGridRefers' |
| | | }, { |
| | | label: '用户', |
| | | value: 'refer/SmUserRefer' |
| | | }, { |
| | | label: '用户列表', |
| | | value: 'refer/SmUserGridRefer' |
| | | }, { |
| | | label: '角色列表', |
| | | value: 'refer/SmRoleRefer' |
| | | }, { |
| | | label: '职务', |
| | | value: 'refer/OrgDutyRefer' |
| | | }, { |
| | | label: '工种', |
| | | value: 'refer/SmWorkTypeRefer' |
| | | }, { |
| | | label: '流程模板', |
| | | value: 'refer/WfProcessTemplateRefer' |
| | | }], |
| | | rules: [{ |
| | | required: true, |
| | | message: "(参照窗口类型)必填项不能为空", |
| | | trigger: "blur", |
| | | }], |
| | | change: ({ value, column }) => { |
| | | // console.log("start",value); |
| | | // 复原表单,因为其他分组中如果存在值,在切换时,会保留输入的字段值所以需要还原 |
| | | let addFrom = {}; |
| | | this.activeName = 'first'; // 默认切换至第一个tab |
| | | //根据类型对form表单属性进行调整 |
| | | if(value == 'stand'){ |
| | | addFrom = { |
| | | referContent: '', |
| | | displayTable: '', |
| | | }; |
| | | this.isDisabledTabs = false; |
| | | } else if(value == 'default' || value == 'grid'){ |
| | | addFrom = { |
| | | limit: 15, |
| | | sortField: '', |
| | | sortType: 'asc', |
| | | }; |
| | | this.isDisabledTabs = false; |
| | | } else if(value == 'tree'){ |
| | | addFrom = { |
| | | parentFieldName: '', |
| | | parentUsedField: 'oid', |
| | | parentValue: '', |
| | | loadType: 'all', |
| | | onlyLeaf: false, |
| | | sortField: '', |
| | | sortType: 'asc', |
| | | }; |
| | | // 不知道为什么type为tree的时候会触发两次change事件 |
| | | // 导致type切换失败 |
| | | this.form.type = 'tree'; |
| | | this.isDisabledTabs = false; |
| | | }else { |
| | | this.isDisabledTabs = true; |
| | | this.activeName = 'second'; |
| | | } |
| | | // 类型切换时,对不需要的属性进行筛除 |
| | | this.removeFormAttr.forEach(attr=>{ |
| | | // console.log(attr); |
| | | this.$delete(this.form,attr) |
| | | }) |
| | | // 合并两个表单 |
| | | this.form = Object.assign(addFrom,this.form); |
| | | // console.log("endFilter",this.form.type); |
| | | // console.log(this.form); |
| | | }, |
| | | },{ |
| | | label: '是否持久化参照配置', |
| | | prop: 'isPersistence', |
| | | labelWidth: '142', |
| | | tip: 'true:开启持久化,对当前定义的参照配置进行持久化存储,下次可直接选取;false:仅对当前次码段新增生效。', |
| | | tipPlacement: 'bottom', |
| | | span: 6, |
| | | type: 'switch', |
| | | },{ |
| | | display: this.form.isPersistence || this.form.isPersistence=='true', |
| | | label: '参照配置编号', |
| | | prop: 'id', |
| | | tip: '设置该参照配置持久化存储时的编号。', |
| | | rules: [{ |
| | | required: true, |
| | | message: "(开启持久化时编号)必填项不能为空", |
| | | trigger: "blur", |
| | | }], |
| | | span: 6, |
| | | },{ |
| | | display: this.form.isPersistence || this.form.isPersistence=='true', |
| | | label: '参照配置名称', |
| | | prop: 'name', |
| | | tip: '设置该参照配置持久化存储时的名称。', |
| | | rules: [{ |
| | | required: true, |
| | | message: "(开启持久化时名称)必填项不能为空", |
| | | trigger: "blur", |
| | | }], |
| | | span: 6, |
| | | } |
| | | |
| | | ] |
| | | }, |
| | | ] |
| | | }, |
| | | { |
| | | icon: 'el-icon-info', |
| | | label: '页面参数配置', |
| | | collapse: false, |
| | | prop: 'webConfig', |
| | | column: [ |
| | | { |
| | | label: '窗口显示的高度', |
| | | prop: 'height', |
| | | tip: '默认空着,设置后表示强制显示这样的高度', |
| | | tipPlacement: 'right', |
| | | span: 7, |
| | | rules: [{ |
| | | validator: validateNumber, |
| | | message: "窗口显示的高度必须为数值类型", |
| | | trigger: "blur", |
| | | }] |
| | | }, { |
| | | label: '过滤(级联)属性', |
| | | prop: 'useFormKey', |
| | | tip: '获取表单上的其他属性的属性的值来过滤,或者使用某个属性来级联选择', |
| | | tipPlacement: 'right', |
| | | span: 7, |
| | | }, { |
| | | label: '过滤属性请求参数', |
| | | prop: 'paramForFormKey', |
| | | tip: '使用过滤属性时,发送给后台的请求参数', |
| | | tipPlacement: 'right', |
| | | span: 7, |
| | | }, { |
| | | label: '映射其他属性', |
| | | prop: 'mapFields', |
| | | tip: '选择数据后,将选择的数据拷贝到表单里的其他属性,书写格式为{当前表单上的属性:选择数据里的属性,"XXXXx":"yyyy"}', |
| | | tipPlacement: 'right', |
| | | span: 7, |
| | | }, { |
| | | label: '是否开启全局', |
| | | prop: 'isOpenGlobal', |
| | | tip: '开启全局之后对全部参照配置数据进行查询,默认根据租户进行查询。', |
| | | tipPlacement: 'right', |
| | | type: 'switch', |
| | | span: 7, |
| | | }, { |
| | | label: '是否多选', |
| | | type: 'switch', |
| | | prop: 'isMuti', |
| | | value: false, |
| | | span: 7, |
| | | row: true, |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | icon: 'el-icon-info', |
| | | label: '后台参数配置', |
| | | collapse: false, |
| | | prop: 'backstageConfig', |
| | | column: [ |
| | | { |
| | | label: '自定义的后台路径', |
| | | prop: 'url', |
| | | tip: '通常为空;如果是列表,后台必须返回DataGrid,如果是树,后台必须返回List<Theme>', |
| | | tipPlacement: 'right', |
| | | span: 7, |
| | | }, { |
| | | label: '服务的地址', |
| | | prop: 'backPath', |
| | | tip: '通常为空,在支持微服务或者分布式部署的时候才配置', |
| | | tipPlacement: 'right', |
| | | span: 7, |
| | | }, { |
| | | label: '请求后台的协议方式', |
| | | prop: 'method', |
| | | tip: 'HTTP的协议方式,支持POST,PUT,GET,一般都是GET', |
| | | tipPlacement: 'right', |
| | | span: 7, |
| | | value: 'GET', |
| | | type: 'select', |
| | | dicData: [{ |
| | | label: 'GET', value: "GET" |
| | | }, { |
| | | label: 'PUT', value: "PUT" |
| | | }, |
| | | { |
| | | icon: 'el-icon-info', |
| | | label: '页面参数配置', |
| | | collapse: false, |
| | | prop: 'webConfig', |
| | | column: [ |
| | | { |
| | | label: '窗口显示的高度', |
| | | prop: 'height', |
| | | tip: '默认空着,设置后表示强制显示这样的高度', |
| | | tipPlacement: 'right', |
| | | span: 7, |
| | | rules:[{ |
| | | validator: validateNumber, |
| | | message: "窗口显示的高度必须为数值类型", |
| | | trigger: "blur", |
| | | }] |
| | | },{ |
| | | label: '过滤(级联)属性', |
| | | prop: 'useFormKey', |
| | | tip: '获取表单上的其他属性的属性的值来过滤,或者使用某个属性来级联选择', |
| | | tipPlacement: 'right', |
| | | span: 7, |
| | | },{ |
| | | label: '过滤属性请求参数', |
| | | prop: 'paramForFormKey', |
| | | tip: '使用过滤属性时,发送给后台的请求参数', |
| | | tipPlacement: 'right', |
| | | span: 7, |
| | | },{ |
| | | label: '映射其他属性', |
| | | prop: 'mapFields', |
| | | tip: '选择数据后,将选择的数据拷贝到表单里的其他属性,书写格式为{当前表单上的属性:选择数据里的属性,XXXXx:yyyy}', |
| | | tipPlacement: 'right', |
| | | span: 7, |
| | | },{ |
| | | label: '是否开启全局', |
| | | prop: 'isOpenGlobal', |
| | | tip: '开启全局之后对全部参照配置数据进行查询,默认根据租户进行查询。', |
| | | tipPlacement: 'right', |
| | | type: 'switch', |
| | | span: 7, |
| | | },{ |
| | | label: '是否多选', |
| | | type: 'switch', |
| | | prop: 'isMuti', |
| | | value: false, |
| | | span: 7, |
| | | row: true, |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | icon: 'el-icon-info', |
| | | label: '后台参数配置', |
| | | collapse: false, |
| | | prop: 'backstageConfig', |
| | | column: [ |
| | | { |
| | | label: '自定义的后台路径', |
| | | prop: 'url', |
| | | tip: '通常为空;如果是列表,后台必须返回DataGrid,如果是树,后台必须返回List<Theme>', |
| | | tipPlacement: 'right', |
| | | span: 7, |
| | | },{ |
| | | label: '服务的地址', |
| | | prop: 'backPath', |
| | | tip: '通常为空,在支持微服务或者分布式部署的时候才配置', |
| | | tipPlacement: 'right', |
| | | span: 7, |
| | | },{ |
| | | label: '请求后台的协议方式', |
| | | prop: 'method', |
| | | tip: 'HTTP的协议方式,支持POST,PUT,GET,一般都是GET', |
| | | tipPlacement: 'right', |
| | | span: 7, |
| | | value: 'GET', |
| | | type: 'select', |
| | | dicData: [{ |
| | | label:'GET',value: "GET" |
| | | },{ |
| | | label:'PUT',value: "PUT" |
| | | }, |
| | | { |
| | | label:'POST',value: "POST" |
| | | }], |
| | | }, |
| | | ] |
| | | }, |
| | | ] |
| | | } |
| | | }, |
| | | formOtherOption(){ |
| | | return { |
| | | // 变动的表单区域 |
| | | submitBtn: false, |
| | | emptyBtn: false, |
| | | labelWidth: '145', //默认标签宽度 |
| | | group: [ |
| | | { |
| | | display: this.form.type=='default'||this.form.type=='grid', |
| | | icon: 'el-icon-info', |
| | | label: this.form.type=='default' ? '默认参照的配置(下方列表)':'列表参照的配置(下方列表)', |
| | | collapse: true, |
| | | prop: 'groupDdefaultOrGrid', |
| | | column: [ |
| | | { |
| | | label: '每页显示条数', |
| | | prop: 'limit', |
| | | span: 8, |
| | | tip: '分页时每页显示的数量,不分页填-1', |
| | | value: 15, |
| | | tipPlacement: 'right', |
| | | },{ |
| | | label: '排序字段', |
| | | prop: 'sortField', |
| | | span: 8, |
| | | tip: '查询数据时的排序字段', |
| | | //clearable: false, |
| | | tipPlacement: 'right', |
| | | },{ |
| | | label: '排序类型', |
| | | prop: 'sortType', |
| | | span: 8, |
| | | dicData: [{ |
| | | label: '升序', value: 'asc' |
| | | }, { |
| | | label: '降序', value: 'desc' |
| | | }], |
| | | //value: 'asc', |
| | | type: 'select', |
| | | tip: '查询数据时的排序类型', |
| | | tipPlacement: 'right', |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | display: this.form.type=='stand', |
| | | icon: 'el-icon-info', |
| | | label: 'stand(平台配置)参照', |
| | | collapse: true, |
| | | prop: 'groupStand', |
| | | column: [ |
| | | { |
| | | label: '参考的UI上下文', |
| | | prop: 'referContent', |
| | | span: 8, |
| | | tip: '只有参照窗口类型是stand时才必须设置,且在stand类型下才能生效', |
| | | tipPlacement: 'right', |
| | | }, |
| | | { |
| | | label: '平台的表格编号', |
| | | prop: 'displayTable', |
| | | span: 8, |
| | | tip: '与参照的UI上下文互斥,只有参照窗口类型是stand时才必须设置,且在stand类型下才能生效', |
| | | tipPlacement: 'right', |
| | | }, |
| | | ] |
| | | }, |
| | | { |
| | | display: this.form.type=='tree', |
| | | icon: 'el-icon-info', |
| | | label: '树形参照信息', |
| | | collapse: true, |
| | | prop: 'groupTree', |
| | | labelWidth: '158', |
| | | column: [ |
| | | { |
| | | label: '树形的上级属性', |
| | | prop: 'parentFieldName', |
| | | span: 7, |
| | | tip: '树形展示的时候,上下级关系查找的属性。', |
| | | tipPlacement: 'right', |
| | | rules: [{ |
| | | required: true, |
| | | message: "(树形的上级属性)必填项不能为空", |
| | | trigger: "blur", |
| | | }], |
| | | },{ |
| | | label: '上级属性值对应属性', |
| | | prop: 'parentUsedField', |
| | | span: 7, |
| | | tip: '上级属性存储的值,是上级数据的什么属性。一般都是oid。', |
| | | value: 'oid', |
| | | tipPlacement: 'right', |
| | | },{ |
| | | label: '根节点的值', |
| | | prop: 'parentValue', |
| | | span: 7, |
| | | tip: '树形展示的时候,上级的值。', |
| | | tipPlacement: 'right', |
| | | },{ |
| | | label: '树加载方式', |
| | | prop: 'loadType', |
| | | span: 7, |
| | | value: 'all', |
| | | dicData: [{ |
| | | label: '全部', value: 'all' |
| | | }, { |
| | | label: '逐级加载', value: 'node' |
| | | }], |
| | | type: 'select', |
| | | },{ |
| | | label: '排序字段', |
| | | prop: 'sortField', |
| | | span: 7, |
| | | //type: 'table', |
| | | tip: '查询数据时的排序字段', |
| | | tipPlacement: 'right', |
| | | },{ |
| | | label: '排序类型', |
| | | prop: 'sortType', |
| | | span: 7, |
| | | type: 'select', |
| | | value: 'asc', |
| | | dicData: [{ |
| | | label: '升序', value: 'asc' |
| | | }, { |
| | | label: '降序', value: 'desc' |
| | | }], |
| | | },{ |
| | | label: '是否只能选择叶子节点', |
| | | prop: 'onlyLeaf', |
| | | span: 7, |
| | | value: false, |
| | | type: 'switch', |
| | | } |
| | | ] |
| | | }, |
| | | ], |
| | | } |
| | | }, |
| | | label: 'POST', value: "POST" |
| | | }], |
| | | }, |
| | | ] |
| | | }, |
| | | ] |
| | | } |
| | | }, |
| | | formOtherOption() { |
| | | return { |
| | | // 变动的表单区域 |
| | | submitBtn: false, |
| | | emptyBtn: false, |
| | | labelWidth: '145', //默认标签宽度 |
| | | group: [ |
| | | { |
| | | display: this.form.type == 'default' || this.form.type == 'grid', |
| | | icon: 'el-icon-info', |
| | | label: this.form.type == 'default' ? '默认参照的配置(下方列表)' : '列表参照的配置(下方列表)', |
| | | collapse: true, |
| | | prop: 'groupDdefaultOrGrid', |
| | | column: [ |
| | | { |
| | | label: '每页显示条数', |
| | | prop: 'limit', |
| | | span: 8, |
| | | tip: '分页时每页显示的数量,不分页填-1', |
| | | value: 15, |
| | | rules: [{ |
| | | required: true, |
| | | message: "必填项不能为空", |
| | | trigger: "blur", |
| | | }], |
| | | tipPlacement: 'right', |
| | | }, { |
| | | label: '排序字段', |
| | | prop: 'sortField', |
| | | span: 8, |
| | | tip: '查询数据时的排序字段', |
| | | //clearable: false, |
| | | tipPlacement: 'right', |
| | | }, { |
| | | label: '排序类型', |
| | | prop: 'sortType', |
| | | span: 8, |
| | | dicData: [{ |
| | | label: '升序', value: 'asc' |
| | | }, { |
| | | label: '降序', value: 'desc' |
| | | }], |
| | | //value: 'asc', |
| | | type: 'select', |
| | | tip: '查询数据时的排序类型', |
| | | tipPlacement: 'right', |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | display: this.form.type == 'stand', |
| | | icon: 'el-icon-info', |
| | | label: 'stand(平台配置)参照', |
| | | collapse: true, |
| | | prop: 'groupStand', |
| | | column: [ |
| | | { |
| | | label: '参考的UI上下文', |
| | | prop: 'referContent', |
| | | span: 8, |
| | | tip: '只有参照窗口类型是stand时才必须设置,且在stand类型下才能生效', |
| | | tipPlacement: 'right', |
| | | }, |
| | | { |
| | | label: '平台的表格编号', |
| | | prop: 'displayTable', |
| | | span: 8, |
| | | tip: '与参照的UI上下文互斥,只有参照窗口类型是stand时才必须设置,且在stand类型下才能生效', |
| | | tipPlacement: 'right', |
| | | }, |
| | | ] |
| | | }, |
| | | { |
| | | display: this.form.type == 'tree', |
| | | icon: 'el-icon-info', |
| | | label: '树形参照信息', |
| | | collapse: true, |
| | | prop: 'groupTree', |
| | | labelWidth: '158', |
| | | column: [ |
| | | { |
| | | label: '树形的上级属性', |
| | | prop: 'parentFieldName', |
| | | span: 7, |
| | | tip: '树形展示的时候,上下级关系查找的属性。', |
| | | tipPlacement: 'right', |
| | | rules: [{ |
| | | required: true, |
| | | message: "(树形的上级属性)必填项不能为空", |
| | | trigger: "blur", |
| | | }], |
| | | }, { |
| | | label: '上级属性值对应属性', |
| | | prop: 'parentUsedField', |
| | | span: 7, |
| | | tip: '上级属性存储的值,是上级数据的什么属性。一般都是oid。', |
| | | value: 'oid', |
| | | tipPlacement: 'right', |
| | | }, { |
| | | label: '根节点的值', |
| | | prop: 'parentValue', |
| | | span: 7, |
| | | tip: '树形展示的时候,上级的值。', |
| | | tipPlacement: 'right', |
| | | }, { |
| | | label: '树加载方式', |
| | | prop: 'loadType', |
| | | span: 7, |
| | | value: 'all', |
| | | dicData: [{ |
| | | label: '全部', value: 'all' |
| | | }, { |
| | | label: '逐级加载', value: 'node' |
| | | }], |
| | | type: 'select', |
| | | }, { |
| | | label: '排序字段', |
| | | prop: 'sortField', |
| | | span: 7, |
| | | //type: 'table', |
| | | tip: '查询数据时的排序字段', |
| | | tipPlacement: 'right', |
| | | }, { |
| | | label: '排序类型', |
| | | prop: 'sortType', |
| | | span: 7, |
| | | type: 'select', |
| | | value: 'asc', |
| | | dicData: [{ |
| | | label: '升序', value: 'asc' |
| | | }, { |
| | | label: '降序', value: 'desc' |
| | | }], |
| | | }, { |
| | | label: '是否只能选择叶子节点', |
| | | prop: 'onlyLeaf', |
| | | span: 7, |
| | | value: false, |
| | | type: 'switch', |
| | | } |
| | | ] |
| | | }, |
| | | ], |
| | | } |
| | | }, |
| | | }, |
| | | mounted() { |
| | | // 事件监听,实现表格行编辑点击表格区域外内容时退出编辑状态 |
| | |
| | | } |
| | | }, |
| | | methods: { |
| | | |
| | | // 选择完参照配置之后点击保存按钮触发 |
| | | async selectedListReferConfig(){ |
| | | // 标记所有表单是否通过校验的变量 |
| | |
| | | break; |
| | | } |
| | | isValid = false; |
| | | //console.log(valid); |
| | | } |
| | | done(); |
| | | }) |
| | |
| | | if (isValid) { |
| | | // 根据类型对form表单中的参数进行过滤,只保留非空且需要的属性 |
| | | let submitForm = this.filterForm(); |
| | | // console.log(submitForm); |
| | | this.$emit('echoReferConfig', submitForm) // 触发update:data将子组件值传递给父组件 |
| | | this.isShowReferConfigForm = false; |
| | | } |
| | |
| | | // 单击表格实现表格行编辑 |
| | | clickAttrEdit(row, column, event){ |
| | | if(this.preClickAttrRow && this.preClickAttrRow != row){ |
| | | //console.log(this.codeShowFieldConfigVOS[this.preClickAttrRow.$index]); |
| | | this.codeShowFieldConfigVOS[this.preClickAttrRow.$index].$cellEdit = false; |
| | | } |
| | | row.$cellEdit = true; |
| | |
| | | //console.log(this.codeShowFieldConfigVOS[this.preClickAttrRow.$index]); |
| | | this.form.codeSrchCondConfigVOS[this.preClickAddSearchConditionRow.$index].$cellEdit = false; |
| | | } |
| | | if(row.filterType === '_in' || row.filterType === '_notin'){ |
| | | //console.log(row); |
| | | this.selectInOrNotInCondOption.column = [{ |
| | | prop: row.filterField, |
| | | label: row.filterTypeText, |
| | | search: true, |
| | | searchLabelWidth: 45, |
| | | searchSpan: 8, |
| | | sortable: true, |
| | | }] |
| | | this.initPageData.pageSize = 10; |
| | | this.initPageData.currentPage = 1; |
| | | this.loadInOrNotInConditionData(this.initPageData); |
| | | this.isShowInOrNotInCondition = true; |
| | | } |
| | | row.$cellEdit = true; |
| | | this.preClickAddSearchConditionRow = row; |
| | | }, |
| | | loadInOrNotInConditionData(page, params = {}){ |
| | | let mustParams = { |
| | | referType: this.form.referType, |
| | | referBo: this.form.referType, |
| | | }; |
| | | getList(Object.assign(mustParams,params),page.currentPage,page.pageSize,'/api/ubcs-code/mdmEngineController/defaultReferDataGrid','GET').then(res=>{ |
| | | //console.log(res.data); |
| | | this.selectInOrNotInCondData = res.data.records; |
| | | this.inOrNotInPage.total = res.data.total; |
| | | }); |
| | | }, |
| | | inOrNotInCurrentChange(currentPage) { |
| | | this.inOrNotInPage.currentPage = currentPage; |
| | | }, |
| | | inOrNotInSizeChange(pageSize) { |
| | | this.inOrNotInPage.pageSize = pageSize; |
| | | }, |
| | | rowInOrNotInClick(row){ |
| | | this.$refs.inOrNotInConditionCrud.toggleSelection(); |
| | | this.$refs.inOrNotInConditionCrud.toggleRowSelection(row); //选中当前行 |
| | | }, |
| | | selectionInOrNotInChange(list){ |
| | | if (this.isMuti && list.length > 1) { |
| | | const nowVal = list.shift(); |
| | | this.$refs.inOrNotInConditionCrud.toggleRowSelection(nowVal, false); |
| | | } |
| | | this.selectionInOrNotInList = list |
| | | }, |
| | | selectedInOrNotInCond(){ |
| | | if(this.selectionInOrNotInList && this.selectionInOrNotInList.length > 0){ |
| | | // console.log(this.selectionInOrNotInList) |
| | | this.preClickAddSearchConditionRow.filterValue = this.selectionInOrNotInList.map(item => item[this.selectInOrNotInCondOption.column[0].prop]).join(','); |
| | | this.isShowInOrNotInCondition = false; |
| | | } |
| | | }, |
| | | /** 点击搜索后触发该事件 */ |
| | | selectInOrNotInSearchChange(params, done) { |
| | | this.initPageData.currentPage = 1; |
| | | let requestData = {}; |
| | | if(params) { |
| | | Object.keys(params).forEach((key)=>{ |
| | | requestData["conditionMap" + "["+ key +"_like]"] = params[key].trim(); |
| | | }) |
| | | } |
| | | this.inOrNotInParam = requestData; |
| | | this.loadInOrNotInConditionData(this.initPageData,this.inOrNotInParam); |
| | | done(); |
| | | }, |
| | | /** 重置位属性选取值表格的搜索框之后的回调 */ |
| | | searchInOrNotInReset() { |
| | | this.inOrNotInParam = {}; |
| | | this.loadInOrNotInConditionData(this.initPageData); |
| | | }, |
| | | |
| | | //上一个页面已经选中参照应用的业务类型的情况,和上一次已经配置过参照配置的情况下进行页面初始化渲染 |
| | | initPageData(val){ |
| | | // console.log(val.referConfig); |
| | |
| | | transition:opacity .0s !important; |
| | | } |
| | | |
| | | /* .valueInfo { |
| | | float: left; |
| | | border: 1px solid #E9E7E7; |
| | | display: inline-block; |
| | | vertical-align: middle; |
| | | padding: 9px 15px; |
| | | line-height: 1; |
| | | } */ |
| | | |
| | | </style> |