From 46059e342d70b51bd9775f30feb5f29304bda6ac Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期一, 19 九月 2022 17:15:04 +0800 Subject: [PATCH] 2022-09-19 --- src/utils/utils-custom.js | 123 ++++++++++++++++++++++++++++++++++++++--- 1 files changed, 114 insertions(+), 9 deletions(-) diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js index 4ad2bfd..eca6187 100644 --- a/src/utils/utils-custom.js +++ b/src/utils/utils-custom.js @@ -3,16 +3,17 @@ * @description 鑾峰彇涓嬬骇妯″潡 * @return {String} selfId 褰撳墠缁勪欢id */ - static getSubModules (components, selfId) { + static getSubModules (components, selfId, supId) { let modules = components.map(item => { - if (item.uuid === selfId) { + if (item.uuid === selfId || item.type === 'navbar') { return { children: null } } else if (item.format) { // 鏁版嵁鏍煎紡锛屽瓨鍦ㄦ暟鎹簮 return { value: item.uuid, - label: item.name + label: item.name, + disabled: supId === item.uuid } } else if (item.type === 'tabs') { let _item = { @@ -85,6 +86,91 @@ } /** + * @description 鑾峰彇涓嬬骇妯″潡 + * @return {String} selfId 褰撳墠缁勪欢id + */ + static getAnchors (components, selfId) { + let modules = components.map(item => { + if (item.uuid === selfId) { + return { + children: null + } + } else if (item.type === 'tabs') { + let _item = { + type: 'tabs', + value: item.uuid, + label: item.name, + children: item.subtabs.map(f_tab => { + let subItem = { + type: 'tab', + value: f_tab.uuid, + label: f_tab.label, + children: this.getSubModules(f_tab.components, selfId) + } + + if (!subItem.children || subItem.children.length === 0) { + return {children: null} + } + return subItem + }) + } + + _item.children = _item.children.filter(t => t.children !== null) + + if (_item.children.length === 0) { + return {children: null} + } + + return _item + } else if (item.type === 'group') { + let _item = { + value: item.uuid, + label: item.name, + children: item.components.map(f_tab => { + if (f_tab.uuid === selfId) { + return { + children: null + } + } else if (f_tab.format) { + return { + value: f_tab.uuid, + label: f_tab.name + } + } + return { + children: null + } + }) + } + + _item.children = _item.children.filter(t => t.children !== null) + + if (_item.children.length === 0) { + return {children: null} + } + + return _item + } else if (!['login', 'navbar', 'topbar', 'tabs', 'search', 'group', 'balcony'].includes(item.type)) { // 鏁版嵁鏍煎紡锛屽瓨鍦ㄦ暟鎹簮 + return { + value: item.uuid, + label: item.name + } + } else { + return { + children: null + } + } + }) + + modules = modules.filter(mod => mod.children !== null) + + if (modules.length === 0) { + return null + } + return modules + } + + /** * @description 鑾峰彇涓婄骇妯″潡 * @return {String} selfId 褰撳墠缁勪欢id */ @@ -95,9 +181,16 @@ children: null } } else if (item.switchable) { // 鏁版嵁鍙垏鎹� + let disabled = false + if (item.type === 'card') { + disabled = item.wrap.cardType === '' + } else if (item.type === 'table') { + disabled = item.wrap.tableType === '' + } return { value: item.uuid, - label: item.name + label: item.name, + disabled: disabled } } else if (item.type === 'form') { // 鏁版嵁鏍煎紡锛屽瓨鍦ㄦ暟鎹簮 return { @@ -483,6 +576,17 @@ return col }) } + } else if (item.type === 'form') { + item.subcards = item.subcards.map(cell => { + cell.uuid = this.getuuid() + + cell.fields = cell.fields.map(m => { + m.uuid = this.getuuid() + + return m + }) + return cell + }) } if (item.btnlog) { @@ -850,9 +954,11 @@ */ export function resetStyle (style) { if (!style) return {} - if (sessionStorage.getItem('appType') === 'mob') { - let _style = JSON.stringify(style) + let _style = JSON.stringify(style) + _style = _style.replace(/@mywebsite@\//ig, window.GLOB.baseurl) + + if (sessionStorage.getItem('appType') === 'mob') { // scaleview _style = _style.replace(/\d+vw/ig, (word) => { return parseFloat(word) * (window.GLOB.winWidth || 420) / 100 + 'px' @@ -861,8 +967,7 @@ return parseFloat(word) * (window.GLOB.winHeight || 738) / 100 + 'px' // return parseFloat(word) * 615 / 100 + 'px' }) - - return JSON.parse(_style) } - return JSON.parse(JSON.stringify(style)) + + return JSON.parse(_style) } \ No newline at end of file -- Gitblit v1.8.0