From da64ab0923bf8817fc8599a6e37b953ce38f64c8 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期日, 27 八月 2023 18:37:36 +0800 Subject: [PATCH] 2023-08-27 --- src/templates/comtableconfig/updatetable/index.jsx | 200 +++++++++++++++++-------------------------------- 1 files changed, 69 insertions(+), 131 deletions(-) diff --git a/src/templates/comtableconfig/updatetable/index.jsx b/src/templates/comtableconfig/updatetable/index.jsx index 82d0052..3ce78d5 100644 --- a/src/templates/comtableconfig/updatetable/index.jsx +++ b/src/templates/comtableconfig/updatetable/index.jsx @@ -87,14 +87,13 @@ let formActions = [] let popActions = [] let errors = [] - let formTabs = [] let mainTb = {name: '涓昏〃', uuid: Utils.getuuid(), useMSearch: 'false', isMain: true} let oldtabs = { mainTable: mainTb.uuid } - let tbl = this.getTable(config, mainTb, errors, formActions, formTabs, popActions, oldtabs) + let tbl = this.getTable(config, mainTb, errors, formActions, popActions, oldtabs) if (config.autoMatic && config.autoMatic.enable === 'true') { if (tbl.action.filter(item => item.uuid === config.autoMatic.action && (['pop', 'prompt', 'exec'].includes(item.OpenType) || (item.OpenType === 'funcbutton' && item.funcType === 'print'))).length === 0) { @@ -111,7 +110,11 @@ let _tbs = [] if (config.tabgroups && config.tabgroups.length > 0) { config.tabgroups.forEach(m => { - if (!m.sublist || m.sublist.length === 0) return + if (!m.sublist) return + + m.sublist = m.sublist.filter(c => !!c.linkTab) + + if (m.sublist.length === 0) return let tabs = { uuid: Utils.getuuid(), @@ -120,7 +123,7 @@ setting: {}, style: {}, subtabs: m.sublist.map(n => { - let tab = { uuid: Utils.getuuid(), label: n.label, icon: n.icon, permission: 'false', components: [ + let tab = { uuid: Utils.getuuid(), label: n.label, icon: n.icon, permission: 'true', components: [ { uuid: Utils.getuuid(), linkTab: n.linkTab, @@ -147,7 +150,7 @@ let defers = _tbs.map((item, i) => { return new Promise((resolve) => { setTimeout(() => { - Api.getSystemConfig({ + Api.getCloudConfig({ func: 'sPC_Get_LongParam', MenuID: item.linkTab }).then(res => { @@ -188,10 +191,12 @@ } }) + let supIds = [] _config.components = _config.components.map(item => { if (item.type === 'tabs') { item.subtabs = item.subtabs.map(tab => { - tab.components[0] = this.getTable(menus[tab.components[0].linkTab], tab.components[0], errors, formActions, formTabs, popActions, oldtabs) + tab.components[0] = this.getTable(menus[tab.components[0].linkTab], tab.components[0], errors, formActions, popActions, oldtabs) + supIds.push([item.uuid, tab.uuid, tab.components[0].uuid]) return tab }) @@ -199,19 +204,35 @@ return item }) - this.setPopView(_resolve, _config, formActions, formTabs, popActions, errors) + _config.components = _config.components.map(item => { + if (item.type === 'tabs') { + item.subtabs = item.subtabs.map(tab => { + if (tab.components[0].setting.supModule && tab.components[0].setting.supModule.length === 1) { + supIds.forEach(ids => { + if (ids[2] === tab.components[0].setting.supModule[0]) { + tab.components[0].setting.supModule = ids + } + }) + } + return tab + }) + } + return item + }) + + this.setPopView(_resolve, _config, formActions, popActions, errors) }) } else { - this.setPopView(_resolve, _config, formActions, formTabs, popActions, errors) + this.setPopView(_resolve, _config, formActions, popActions, errors) } } - setPopView = (_resolve, _config, formActions, formTabs, popActions, errors) => { + setPopView = (_resolve, _config, formActions, popActions, errors) => { if (popActions.length > 0) { let defers = popActions.map((item, i) => { return new Promise((resolve) => { setTimeout(() => { - Api.getSystemConfig({ + Api.getCloudConfig({ func: 'sPC_Get_LongParam', MenuID: item.linkTab }).then(res => { @@ -267,7 +288,7 @@ MenuName: btn.label, tables: _config.tables || [], Template: 'BaseTable', - components: [this.getTable(menus[btn.uuid], mainTb, errors, formActions, formTabs)], + components: [this.getTable(menus[btn.uuid], mainTb, errors, formActions)], viewType: 'popview', style: { backgroundColor: '#ffffff', backgroundImage: '', paddingTop: '16px', paddingBottom: '40px', paddingLeft: '16px', paddingRight: '16px' } } @@ -293,7 +314,7 @@ MenuName: btn.label, tables: _config.tables || [], Template: 'BaseTable', - components: [this.getTable(menus[btn.uuid], mainTb, errors, formActions, formTabs)], + components: [this.getTable(menus[btn.uuid], mainTb, errors, formActions)], viewType: 'popview', style: { backgroundColor: '#ffffff', backgroundImage: '', paddingTop: '16px', paddingBottom: '40px', paddingLeft: '16px', paddingRight: '16px' } } @@ -319,7 +340,7 @@ MenuName: btn.label, tables: _config.tables || [], Template: 'BaseTable', - components: [this.getTable(menus[btn.uuid], mainTb, errors, formActions, formTabs)], + components: [this.getTable(menus[btn.uuid], mainTb, errors, formActions)], viewType: 'popview', style: { backgroundColor: '#ffffff', backgroundImage: '', paddingTop: '16px', paddingBottom: '40px', paddingLeft: '16px', paddingRight: '16px' } } @@ -345,7 +366,7 @@ MenuName: btn.label, tables: _config.tables || [], Template: 'BaseTable', - components: [this.getTable(menus[btn.uuid], mainTb, errors, formActions, formTabs)], + components: [this.getTable(menus[btn.uuid], mainTb, errors, formActions)], viewType: 'popview', style: { backgroundColor: '#ffffff', backgroundImage: '', paddingTop: '16px', paddingBottom: '40px', paddingLeft: '16px', paddingRight: '16px' } } @@ -360,10 +381,10 @@ } }) - this.setPopForm(_resolve, _config, formActions, formTabs, errors) + this.setPopForm(_resolve, _config, formActions, errors) }) } else { - this.setPopForm(_resolve, _config, formActions, formTabs, errors) + this.setPopForm(_resolve, _config, formActions, errors) } } @@ -386,12 +407,12 @@ return enabled } - setPopForm = (_resolve, _config, formActions, formTabs, errors) => { + setPopForm = (_resolve, _config, formActions, errors) => { if (formActions.length > 0) { let defers = formActions.map((item, i) => { return new Promise((resolve) => { setTimeout(() => { - Api.getSystemConfig({ + Api.getCloudConfig({ func: 'sPC_Get_LongParam', MenuID: item.origin }).then(res => { @@ -512,10 +533,10 @@ } }) - this.saveConfig(_resolve, _config, errors, formTabs) + this.saveConfig(_resolve, _config, errors) }) } else { - this.saveConfig(_resolve, _config, errors, formTabs) + this.saveConfig(_resolve, _config, errors) } } @@ -554,7 +575,7 @@ }) } - saveConfig = (_resolve, _config, errors, formTabs) => { + saveConfig = (_resolve, _config, errors) => { let err = errors.join('锛�') let _this = this @@ -565,17 +586,17 @@ content: '', onOk() { return new Promise(resolve => { - _this.saveNewMenu(resolve, _config, formTabs) + _this.saveNewMenu(resolve, _config) }) }, onCancel() {} }) } else { - this.saveNewMenu(_resolve, _config, formTabs) + this.saveNewMenu(_resolve, _config) } } - saveNewMenu = (_resolve, _config, formTabs) => { + saveNewMenu = (_resolve, _config) => { _config.components.forEach(item => { if (item.type === 'tabs') { item.subtabs.forEach(tab => { @@ -616,82 +637,7 @@ } }) - // if (formTabs.length > 0) { - // this.transformTabs(_resolve, _config, formTabs) - // } else { - this.submitConfig(_resolve, _config) - // } - } - - transformTabs = (_resolve, _config, formTabs) => { - let tab = formTabs.shift() - - Api.getSystemConfig({ - func: 'sPC_Get_LongParam', - MenuID: tab.uuid - }).then(res => { - if (res.status) { - let _LongParam = '' - if (res.LongParam) { - try { - _LongParam = JSON.parse(window.decodeURIComponent(window.atob(res.LongParam))) - } catch (e) { - console.warn('Parse Failure') - _LongParam = '' - } - } - - if (_LongParam && (_LongParam.type === 'FormTab' || _LongParam.Template === 'FormTab') && _LongParam.enabled) { - if (!_LongParam.tabgroups) { - _LongParam.tabgroups = [] - } else if (typeof(_LongParam.tabgroups[0]) === 'string') { - let _tabgroups = [] - _LongParam.tabgroups.forEach(groupId => { - let _group = { - uuid: groupId, - sublist: fromJS(_LongParam[groupId]).toJS() - } - - delete _LongParam[groupId] - - _tabgroups.push(_group) - }) - - _LongParam.tabgroups = _tabgroups - } - - _LongParam.tabgroups = _LongParam.tabgroups.filter(group => group.sublist.length > 0) - - _LongParam.tabgroups.forEach(group => { - group.sublist = group.sublist.map(tab => { - if (tab.supMenu === 'mainTable') { - tab.supMenu = '' - } - return tab - }) - }) - - _LongParam.action = _LongParam.action.map(item => { - if (item.intertype === 'inner' && !item.innerFunc) { - item.intertype = 'system' - } - return item - }) - - delete _LongParam.funcs - delete _LongParam.tables - } else { - _config.components[0].action = _config.components[0].action.filter(btn => btn.uuid !== tab.uuid) - } - } else { - notification.warning({ - top: 92, - message: res.message, - duration: 5 - }) - _resolve() - } - }) + this.submitConfig(_resolve, _config) } checkBtns = (card) => { @@ -803,7 +749,7 @@ let save = false new Promise(resolve => { - Api.getSystemConfig(param).then(res => { + Api.getCloudConfig(param).then(res => { resolve(res) }) }).then(res => { // 鍒犻櫎鍘熻彍鍗� @@ -814,7 +760,7 @@ if (this.delButtons.length === 0) return res - return Api.getSystemConfig({ + return Api.getCloudConfig({ func: 'sPC_MainMenu_Del', up_type: 'Y', MenuID: this.delButtons.join(',') @@ -854,7 +800,7 @@ }) } - getTable = (config, newCon, errors, formActions, formTabs, popActions, oldtabs) => { + getTable = (config, newCon, errors, formActions, popActions, oldtabs) => { let _card = { uuid: newCon.uuid, type: 'table', @@ -866,7 +812,7 @@ action: [], subtype: 'basetable', setting: { useMSearch: newCon.useMSearch }, - wrap: {}, + wrap: {name: newCon.name}, style: {}, headerStyle: {}, columns: [], @@ -895,7 +841,11 @@ let lineMarks = [] config.columns.forEach(col => { if (col.type === 'colspan') { - _colspan.push(...col.subfield.split(', ')) + if (col.subfield) { + _colspan.push(...col.subfield.split(', ')) + } else if (col.sublist && col.sublist.length > 0) { + _colspan.push(...col.sublist) + } } if (!col.field) return @@ -966,7 +916,7 @@ if (_colspan.includes(col.field)) { _col.Hide = 'true' } - + _col.uuid = Utils.getuuid() _card.cols.push(_col) } @@ -977,14 +927,21 @@ label: col.label, marks: [], isSub: false, - uuid: col.uuid, + uuid: Utils.getuuid(), blacklist: [] } + let _subs = [] + if (col.subfield) { + _subs = col.subfield.split(', ') + } else if (col.sublist) { + _subs = col.sublist + } + if (col.unfold === 'true') { ucol.type = 'colspan' ucol.subcols = [] - col.subfield.split(', ').forEach(sub => { + _subs.forEach(sub => { if (_cols[sub]) { let _col = fromJS(_cols[sub]).toJS() _col.Hide = 'false' @@ -1004,7 +961,7 @@ ucol.elements = [] ucol.style = {paddingTop: '12px', paddingLeft: '8px', paddingBottom: '12px', paddingRight: '8px'} - col.subfield.split(', ').forEach(sub => { + _subs.forEach(sub => { if (_cols[sub]) { let _col = { copyable: 'false', @@ -1155,27 +1112,6 @@ if (btn.tabTemplate === 'FormTab') { errors.push(newCon.name + '涓寜閽��' + btn.label + '銆嬩笉鍦ㄦ敮鎸�') return - // if (newCon.isMain !== true) { - // errors.push(newCon.name + '涓寜閽��' + btn.label + '銆嬩笉鍦ㄦ敮鎸�') - // return - // } - - // delete _btn.tabTemplate - - // _btn.MenuID = 'tab' + md5(btn.uuid).substr(3) - // _btn.MenuName = this.baseMsg.MenuName + '-' + btn.label - // _btn.MenuNo = this.baseMsg.MenuNo + '_' + _btn.MenuID.substr(-4).toUpperCase() - // _btn.hidden = _btn.hidden || 'false' - // _btn.tabType = 'CustomPage' - // _btn.linkmenu = [this.baseMsg.fstMenuId, this.baseMsg.parentId, _btn.MenuID] - - // let _tab = {...btn} - - // _tab.MenuID = _btn.MenuID - // _tab.MenuNo = _btn.MenuNo - // _tab.MenuName = _btn.MenuName - - // formTabs.push(_tab) } else if (!btn.linkmenu || btn.linkmenu.length !== 3) { errors.push(newCon.name + '涓寜閽��' + btn.label + '銆嬩笉鍦ㄦ敮鎸�') @@ -1220,7 +1156,7 @@ }) } - let sets = ['tableName', 'interType', 'sysInterface', 'innerFunc', 'interface', 'proInterface', 'outerFunc', 'dataresource', ['queryType', 'query'], 'primaryKey', 'order', 'execute', ['laypage', 'true'], ['pageSize', 10], ['onload', 'true']] + let sets = ['tableName', 'interType', 'sysInterface', 'innerFunc', 'interface', 'proInterface', 'outerFunc', 'dataresource', ['queryType', 'query'], 'primaryKey', 'order', ['laypage', 'true'], ['pageSize', 10], ['onload', 'true']] let wraps = ['tableType', ['bordered', 'true'], 'actionfixed', ['size', 'middle'], ['selected', 'false'], ['tableMode', 'compatible'], ['mask', 'show'], ['borderColor', '#e8e8e8'], 'height', 'controlField', 'controlVal'] _card.scripts = config.setting.scripts || [] @@ -1253,6 +1189,8 @@ _card.wrap.doubleClick = '' } + _card.setting.execute = config.setting.default || 'true' + _card.errors = [] let columns = _card.columns.map(c => c.field) if (_card.setting.interType === 'system' && _card.setting.execute !== 'false' && !_card.setting.dataresource) { -- Gitblit v1.8.0