From 15762e4a3658e6afe5221d79d9ce4525300bfe8d Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 24 八月 2023 17:54:11 +0800 Subject: [PATCH] 2023-08-24 --- src/tabviews/custom/index.jsx | 128 ++++++++++++++++++++++++++++++------------ 1 files changed, 91 insertions(+), 37 deletions(-) diff --git a/src/tabviews/custom/index.jsx b/src/tabviews/custom/index.jsx index c859a83..80d4e93 100644 --- a/src/tabviews/custom/index.jsx +++ b/src/tabviews/custom/index.jsx @@ -50,7 +50,6 @@ class CustomPage extends Component { static propTpyes = { param: PropTypes.any, // 鍏朵粬椤甸潰浼犻�掔殑鍙傛暟 - Tab: PropTypes.string, // 寮圭獥鏍囩 MenuID: PropTypes.string, // 鑿滃崟Id MenuName: PropTypes.string, // 鑿滃崟鍚嶇О changeTemp: PropTypes.func @@ -189,19 +188,13 @@ }) } - let popview = 'CustomPage' - - if (config.version === 2.0) { - popview = 'popview' - } - config.$cache = config.cacheLocal === 'true' config.$time = config.localCacheTime || 0 let initInters = [] config.interfaces = this.formatInterSetting(config.interfaces, regs, MenuID, initInters) - config.components = this.filterComponent(config.components, roleId, window.GLOB.mkActions, balMap, skip, param, MenuID, config.interfaces, popview, config.$cache, config.$time, config.MenuName, MenuID, MenuID) + config.components = this.filterComponent(config.components, roleId, window.GLOB.mkActions, balMap, skip, param, MenuID, config.interfaces, config.$cache, config.$time, config.MenuName, MenuID, MenuID) let params = [] let BID = param.$BID || '' @@ -278,9 +271,7 @@ this.loadmaindata(params) } - if (!this.props.Tab) { - this.setShortcut() - } + this.setShortcut() }) } else { this.setState({ @@ -334,14 +325,27 @@ } } - filterComponent = (components, roleId, permAction, balMap, skip, urlparam, pageId, interfaces, popview, cache, time, MenuName, searchId, syncId) => { + filterComponent = (components, roleId, permAction, balMap, skip, urlparam, pageId, interfaces, cache, time, MenuName, searchId, syncId) => { return components.filter(item => { item.$pageId = pageId - item.$cache = cache - item.$time = time item.$searchId = searchId item.$syncId = syncId + if (cache) { + item.$cache = cache + item.$time = time + + if (item.wrap && item.wrap.cacheLocal === 'false') { + item.$cache = false + } else if (item.plot && item.plot.cacheLocal === 'false') { + item.$cache = false + } + + if (!item.$cache && item.setting && item.setting.sync === 'true') { + item.setting.sync = 'false' + } + } + if (item.style && item.style.boxShadow) { delete item.style.hShadow delete item.style.vShadow @@ -441,7 +445,7 @@ _searchId = tab.uuid } - tab.components = this.filterComponent(tab.components, roleId, permAction, balMap, skip, urlparam, pageId, interfaces, popview, cache, time, MenuName, _searchId, tab.uuid) + tab.components = this.filterComponent(tab.components, roleId, permAction, balMap, skip, urlparam, pageId, interfaces, cache, time, MenuName, _searchId, tab.uuid) if (_searchId === tab.uuid) { tab.components.forEach(cell => { @@ -465,7 +469,7 @@ return false } - item.components = this.filterComponent(item.components, roleId, permAction, balMap, skip, urlparam, pageId, interfaces, popview, cache, time, MenuName, searchId, syncId) + item.components = this.filterComponent(item.components, roleId, permAction, balMap, skip, urlparam, pageId, interfaces, cache, time, MenuName, searchId, syncId) return true } else if (['pie', 'bar', 'line', 'dashboard', 'scatter', 'chart', 'antvG6', 'antvX6'].includes(item.type)) { @@ -526,7 +530,7 @@ item.action = item.action.filter(cell => { if (cell.hidden === 'true') return false - cell = this.resetButton(item, cell, popview) + cell = this.resetButton(item, cell) cell.$toolbtn = true @@ -539,7 +543,6 @@ } if (item.type === 'table') { - let statFields = [] let getCols = (cols) => { return cols.filter(col => { if (col.blacklist && col.blacklist.filter(v => roleId.indexOf(v) > -1).length > 0) { @@ -551,9 +554,6 @@ } if (col.type === 'number') { - if (col.sum === 'true' && !statFields.includes(col.field)) { - statFields.push(col) - } if (typeof(col.decimal) === 'number') { col.round = Math.pow(10, col.decimal) if (col.format === 'percent') { @@ -574,7 +574,7 @@ if (cell.eleType === 'button') { if (cell.hidden === 'true') return false - cell = this.resetButton(item, cell, popview) + cell = this.resetButton(item, cell) if (cell.OpenType === 'funcbutton' && cell.funcType === 'print' && cell.verify) { // 鎵撳嵃鏈鸿缃� cell = this.getPrinter(cell, item.uuid) @@ -604,7 +604,6 @@ } item.cols = getCols(item.cols) - item.statFields = statFields if (item.subtype === 'editable') { item.submit.logLabel = item.$menuname + '-鎻愪氦' @@ -631,7 +630,7 @@ if (cell.eleType === 'button') { if (cell.hidden === 'true') return false - cell = this.resetButton(item, cell, popview) + cell = this.resetButton(item, cell) if (cell.OpenType === 'funcbutton' && cell.funcType === 'print' && cell.verify) { // 鎵撳嵃鏈鸿缃� cell = this.getPrinter(cell, item.uuid) @@ -673,7 +672,7 @@ if (cell.eleType === 'button') { if (cell.hidden === 'true') return false - cell = this.resetButton(item, cell, popview) + cell = this.resetButton(item, cell) if (cell.OpenType === 'funcbutton' && cell.funcType === 'print' && cell.verify) { // 鎵撳嵃鏈鸿缃� cell = this.getPrinter(cell, item.uuid) @@ -697,7 +696,7 @@ if (cell.eleType === 'button') { if (cell.hidden === 'true') return false - cell = this.resetButton(item, cell, popview) + cell = this.resetButton(item, cell) if (cell.OpenType === 'funcbutton' && cell.funcType === 'print' && cell.verify) { // 鎵撳嵃鏈鸿缃� cell = this.getPrinter(cell, item.uuid) @@ -720,6 +719,11 @@ if (!group.subButton.Ot) { group.subButton.Ot = item.wrap.datatype === 'static' ? 'notRequired' : 'requiredSgl' + } + + if (item.$cache && item.$time) { + group.$cache = item.$cache + group.$time = item.$time } group.subButton.syncComponentId = group.subButton.syncComponent ? (group.subButton.syncComponent.pop() || '') : '' @@ -801,14 +805,14 @@ }) } - resetButton = (item, cell, popview) => { + resetButton = (item, cell) => { cell.logLabel = item.$menuname + '-' + cell.label cell.Ot = cell.Ot || 'requiredSgl' cell.ContainerId = this.state.ContainerId cell.syncComponentId = cell.syncComponent ? (cell.syncComponent.pop() || '') : '' cell.$menuId = item.uuid cell.$MenuID = this.props.MenuID - cell.$view = popview + cell.$view = 'popview' if (cell.btnstyle) { // 鍏煎 cell.style = cell.style || {} @@ -821,6 +825,24 @@ } else { cell.controlVals = [(cell.controlVal || '')] } + } + + if (cell.OpenType === 'excelOut') { // 瀵煎嚭 + cell.$menuName = item.name + + if (!cell.verify || !cell.verify.columns || cell.verify.columns.length === 0) { + cell.errorType = 'error1' + } else if (cell.intertype === 'system' && cell.verify.dataType !== 'custom') { + if (item.setting.interType !== 'system') { + cell.errorType = 'error2' + } else if (item.type === 'balcony' || item.subtype === 'propcard') { + cell.errorType = 'error2' + } + } + } else if (cell.OpenType === 'pop' && item.$cache && item.$time && cell.modal) { + cell.modal.$cache = item.$cache + cell.modal.$time = item.$time + cell.modal.uuid = cell.uuid + 'pop' } if (cell.syncComponentId) { @@ -854,6 +876,11 @@ resetElement = (cell) => { cell.style = cell.style || {} + + if (cell.style.display === 'inline-block') { + cell.style.verticalAlign = 'top' + } + if (['text', 'number', 'formula'].includes(cell.eleType)) { if (!cell.height) { cell.innerHeight = 'auto' @@ -937,6 +964,7 @@ return component } + component.setting.arr_field = component.columns ? component.columns.map(col => col.field).join(',') : '' component.setting.useMSearch = component.setting.useMSearch === 'true' if (component.setting.useMSearch) { if (!window.GLOB.SearchBox.has(component.$searchId)) { @@ -957,9 +985,15 @@ } let _customScript = '' + let _tailScript = '' component.scripts && component.scripts.forEach(script => { - if (script.status !== 'false') { + if (script.status === 'false') return + if (script.position !== 'back') { _customScript += ` + ${script.sql} + ` + } else { + _tailScript += ` ${script.sql} ` } @@ -979,20 +1013,26 @@ if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺 component.setting.dataresource = component.setting.dataresource.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'') _customScript = _customScript.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'') + _tailScript = _tailScript.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'') } else { component.setting.dataresource = component.setting.dataresource.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'') _customScript = _customScript.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'') + _tailScript = _tailScript.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'') } regs.forEach(cell => { component.setting.dataresource = component.setting.dataresource.replace(cell.reg, cell.value) _customScript = _customScript.replace(cell.reg, cell.value) + _tailScript = _tailScript.replace(cell.reg, cell.value) }) component.setting.customScript = _customScript // 鏁寸悊鍚庤嚜瀹氫箟鑴氭湰 + component.setting.tailScript = _tailScript // 鍚庣疆鑷畾涔夎剼鏈� - if (component.setting.laypage) { - component.setting.custompage = /@pageSize@/i.test(component.setting.dataresource + component.setting.customScript) + component.setting.custompage = /@pageSize@|@orderBy@/i.test(component.setting.dataresource + component.setting.customScript) + + if (!component.setting.execute || component.setting.custompage) { + component.forbidLine = true } if (component.setting.sync === 'true') { @@ -1077,12 +1117,20 @@ inter.setting.onload = 'false' } + inter.setting.arr_field = inter.columns.map(col => col.field).join(',') + if (inter.setting.interType !== 'system') return inter let _customScript = '' + let _tailScript = '' inter.scripts.forEach(script => { - if (script.status !== 'false') { + if (script.status === 'false') return + if (script.position !== 'back') { _customScript += ` + ${script.sql} + ` + } else { + _tailScript += ` ${script.sql} ` } @@ -1103,17 +1151,23 @@ if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺 inter.setting.dataresource = inter.setting.dataresource.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'') _customScript = _customScript.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'') + _tailScript = _tailScript.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'') } else { inter.setting.dataresource = inter.setting.dataresource.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'') _customScript = _customScript.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'') + _tailScript = _tailScript.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'') } regs.forEach(cell => { inter.setting.dataresource = inter.setting.dataresource.replace(cell.reg, cell.value) _customScript = _customScript.replace(cell.reg, cell.value) + _tailScript = _tailScript.replace(cell.reg, cell.value) }) inter.setting.customScript = _customScript // 鏁寸悊鍚庤嚜瀹氫箟鑴氭湰 + inter.setting.tailScript = _tailScript // 鍚庣疆鑷畾涔夎剼鏈� + + inter.setting.custompage = /@pageSize@|@orderBy@/i.test(inter.setting.dataresource + inter.setting.customScript) return inter }) @@ -1123,13 +1177,13 @@ * @description 涓昏〃鏁版嵁鍔犺浇 */ loadmaindata = (params) => { - const { config } = this.state - let param = getStructuredParams(params, config, this.state.BID || '') + const { config, BID } = this.state + let param = getStructuredParams(params, config, BID || '') this.setState({loading: true, loadingview: false}) if (config.$cache && config.$time) { - Api.getLCacheConfig(params[0].uuid, config.$time).then(res => { + Api.getLCacheConfig(params[0].uuid, config.$time, BID).then(res => { if (!res.valid) { this.getMainData(param, params, config.MenuID) } else { @@ -1201,9 +1255,9 @@ } resetActiveMenu = (menuId) => { - const { MenuID, Tab } = this.props + const { MenuID } = this.props - if (MenuID !== menuId || Tab) return + if (MenuID !== menuId) return this.setShortcut() } -- Gitblit v1.8.0