| | |
| | | import md5 from 'md5' |
| | | |
| | | export default class MenuUtils { |
| | | /** |
| | | * @description 获取下级模块 |
| | |
| | | * @description 重置菜单配置,页面整体复制 |
| | | * @return {String} components 配置信息 |
| | | */ |
| | | static resetConfig = (components, uuids = {}, clear = false) => { |
| | | static resetConfig = (components, commonId, clear = false) => { |
| | | return components.map(item => { |
| | | if (item.type === 'navbar') { |
| | | return item |
| | |
| | | item.type = 'card' |
| | | } |
| | | |
| | | uuids[item.uuid] = this.getuuid() |
| | | item.uuid = uuids[item.uuid] |
| | | item.uuid = md5(commonId + item.uuid) |
| | | |
| | | if (item.type === 'tabs') { |
| | | item.subtabs.forEach(tab => { |
| | | uuids[tab.uuid] = this.getuuid() |
| | | tab.uuid = uuids[tab.uuid] |
| | | tab.uuid = md5(commonId + tab.uuid) |
| | | |
| | | tab.components = this.resetConfig(tab.components, uuids, clear) |
| | | tab.components = this.resetConfig(tab.components, commonId, clear) |
| | | }) |
| | | } else if (item.type === 'group') { |
| | | item.components = this.resetConfig(item.components, uuids, clear) |
| | | item.components = this.resetConfig(item.components, commonId, clear) |
| | | } else if (item.type === 'menubar') { |
| | | item.subMenus = item.subMenus.map(cell => { |
| | | cell.uuid = this.getuuid() |
| | |
| | | return cell |
| | | }) |
| | | } else if (['card', 'carousel', 'timeline'].includes(item.type)) { |
| | | if (item.wrap.datatype === 'public' && uuids[item.wrap.publicId]) { |
| | | item.wrap.publicId = uuids[item.wrap.publicId] |
| | | if (item.wrap.datatype === 'public' && item.wrap.publicId) { |
| | | item.wrap.publicId = md5(commonId + item.wrap.publicId) |
| | | } |
| | | |
| | | if (item.supNodes && item.supNodes.length > 0) { |
| | | item.supNodes = item.supNodes.map(cell => { |
| | | cell.nodes = cell.nodes.map(n => md5(commonId + n)) |
| | | cell.componentId = cell.nodes[cell.nodes.length - 1] |
| | | |
| | | return cell |
| | | }) |
| | | } |
| | | |
| | | item.subcards.forEach(card => { |
| | |
| | | card.elements = card.elements.map(cell => { |
| | | cell.uuid = this.getuuid() |
| | | |
| | | if (clear && cell.eleType === 'button' && cell.pageTemplate === 'linkpage' && cell.linkmenu) { |
| | | cell.pageTemplate = '' |
| | | cell.linkmenu = '' |
| | | if (cell.eleType === 'button') { |
| | | if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) { |
| | | cell.pageTemplate = '' |
| | | cell.linkmenu = '' |
| | | } |
| | | this.resetBtn(cell, commonId) |
| | | } |
| | | |
| | | return cell |
| | |
| | | card.backElements = card.backElements.map(cell => { |
| | | cell.uuid = this.getuuid() |
| | | |
| | | if (clear && cell.eleType === 'button' && cell.pageTemplate === 'linkpage' && cell.linkmenu) { |
| | | cell.pageTemplate = '' |
| | | cell.linkmenu = '' |
| | | if (cell.eleType === 'button') { |
| | | if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) { |
| | | cell.pageTemplate = '' |
| | | cell.linkmenu = '' |
| | | } |
| | | this.resetBtn(cell, commonId) |
| | | } |
| | | |
| | | return cell |
| | |
| | | } |
| | | }) |
| | | } else if (item.type === 'balcony') { |
| | | if (item.wrap.datatype === 'public' && uuids[item.wrap.publicId]) { |
| | | item.wrap.publicId = uuids[item.wrap.publicId] |
| | | if (item.wrap.datatype === 'public' && item.wrap.publicId) { |
| | | item.wrap.publicId = md5(commonId + item.wrap.publicId) |
| | | } |
| | | if (item.elements) { |
| | | item.elements = item.elements.map(cell => { |
| | | cell.uuid = this.getuuid() |
| | | |
| | | if (clear && cell.eleType === 'button' && cell.pageTemplate === 'linkpage' && cell.linkmenu) { |
| | | cell.pageTemplate = '' |
| | | cell.linkmenu = '' |
| | | if (cell.eleType === 'button') { |
| | | if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) { |
| | | cell.pageTemplate = '' |
| | | cell.linkmenu = '' |
| | | } |
| | | this.resetBtn(cell, commonId) |
| | | } |
| | | |
| | | return cell |
| | |
| | | } else if (item.type === 'table' && item.cols) { |
| | | let loopCol = (col) => { |
| | | col.subcols = col.subcols.map(c => { |
| | | c.uuid = this.getuuid() |
| | | c.uuid = md5(commonId + c.uuid) |
| | | |
| | | if (c.type === 'colspan' && c.subcols) { |
| | | c = loopCol(c) |
| | |
| | | cell.linkmenu = '' |
| | | } |
| | | |
| | | this.resetBtn(cell, commonId) |
| | | |
| | | return cell |
| | | }) |
| | | } |
| | |
| | | |
| | | return col |
| | | } |
| | | let _uuids = {} |
| | | item.cols = item.cols.map(col => { |
| | | let uuid = this.getuuid() |
| | | |
| | | _uuids[col.uuid] = uuid |
| | | col.uuid = uuid |
| | | item.cols = item.cols.map(col => { |
| | | col.uuid = md5(commonId + col.uuid) |
| | | |
| | | if (col.type === 'colspan' && col.subcols) { |
| | | col = loopCol(col) |
| | |
| | | } else if (col.type === 'action' && col.elements) { |
| | | col.elements = col.elements.map(cell => { |
| | | cell.uuid = this.getuuid() |
| | | this.resetBtn(cell, commonId) |
| | | return cell |
| | | }) |
| | | } |
| | |
| | | |
| | | if (item.subtype === 'editable') { |
| | | item.cols = item.cols.map(col => { |
| | | if (col.editable === 'true' && col.enter && _uuids[col.enter]) { |
| | | col.enter = _uuids[col.enter] |
| | | if (col.editable === 'true' && col.enter) { |
| | | col.enter = md5(commonId + col.enter) |
| | | } else if (col.type === 'colspan' && col.subcols) { |
| | | col.subcols = col.subcols.map(c => { |
| | | if (c.editable === 'true' && c.enter) { |
| | | c.enter = md5(commonId + c.enter) |
| | | } |
| | | return c |
| | | }) |
| | | } |
| | | return col |
| | | }) |
| | |
| | | |
| | | return m |
| | | }) |
| | | |
| | | if (cell.subButton) { |
| | | this.resetBtn(cell.subButton, commonId) |
| | | } |
| | | |
| | | return cell |
| | | }) |
| | | } |
| | |
| | | item.btnlog = null |
| | | } |
| | | |
| | | let oriUids = {} |
| | | if (item.action) { |
| | | item.action = item.action.map(cell => { |
| | | let _uuid = this.getuuid() |
| | | |
| | | oriUids[cell.uuid] = _uuid |
| | | cell.uuid = _uuid |
| | | cell.uuid = md5(commonId + cell.uuid) |
| | | |
| | | if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) { |
| | | cell.pageTemplate = '' |
| | | cell.linkmenu = '' |
| | | } |
| | | |
| | | this.resetBtn(cell, commonId) |
| | | |
| | | return cell |
| | | }) |
| | |
| | | } |
| | | |
| | | if (item.setting && item.setting.supModule && item.setting.supModule[0] !== 'empty') { |
| | | let em = false |
| | | item.setting.supModule = item.setting.supModule.map(c => { |
| | | if (!uuids[c]) { |
| | | em = true |
| | | } |
| | | return uuids[c] || '' |
| | | return md5(commonId + c) |
| | | }) |
| | | if (em) { |
| | | item.setting.supModule = '' |
| | | } |
| | | if (item.wrap && item.wrap.supModule) { |
| | | item.wrap.supModule = item.setting.supModule |
| | | } |
| | | } |
| | | |
| | | if (item.wrap && item.wrap.doubleClick) { |
| | | item.wrap.doubleClick = oriUids[item.wrap.doubleClick] || '' |
| | | item.wrap.doubleClick = md5(commonId + item.wrap.doubleClick) |
| | | } |
| | | |
| | | return item |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * @description 按钮重置 |
| | | */ |
| | | static resetBtn (btn, commonId) { |
| | | if (btn.switchTab && btn.switchTab.length > 0) { |
| | | btn.switchTab = btn.switchTab.map(m => md5(commonId + m)) |
| | | } |
| | | if (btn.anchors && btn.anchors.length > 0) { |
| | | btn.anchors = btn.anchors.map(m => md5(commonId + m)) |
| | | } |
| | | if (btn.syncComponent && btn.syncComponent.length > 0) { |
| | | btn.syncComponent = btn.syncComponent.map(m => md5(commonId + m)) |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | * @description 重置组件配置 |
| | | * @return {String} item 组件信息 |
| | | */ |
| | | static resetComponentConfig = (item, uuids = {}) => { |
| | | static resetComponentConfig = (item) => { |
| | | if (item.type === 'navbar') { |
| | | return item |
| | | } |
| | |
| | | item.type = 'card' |
| | | } |
| | | |
| | | let _uuid = this.getuuid() |
| | | |
| | | uuids[item.uuid] = _uuid |
| | | |
| | | item.uuid = _uuid |
| | | item.uuid = this.getuuid() |
| | | let commonId = this.getuuid() |
| | | |
| | | // 重置组件名称 |
| | | let sign = this.getSignName() |
| | |
| | | return col |
| | | } |
| | | |
| | | let _uuids = {} |
| | | item.cols = item.cols.map(col => { |
| | | let uuid = this.getuuid() |
| | | |
| | | _uuids[col.uuid] = uuid |
| | | col.uuid = uuid |
| | | col.uuid = md5(commonId + col.uuid) |
| | | |
| | | if (col.type === 'colspan' && col.subcols) { |
| | | col = loopCol(col) |
| | |
| | | |
| | | if (item.subtype === 'editable') { |
| | | item.cols = item.cols.map(col => { |
| | | if (col.editable === 'true' && col.enter && _uuids[col.enter]) { |
| | | col.enter = _uuids[col.enter] |
| | | if (col.editable === 'true' && col.enter) { |
| | | col.enter = md5(commonId + col.enter) |
| | | } |
| | | return col |
| | | }) |
| | |
| | | |
| | | delete item.btnlog |
| | | |
| | | let oriUids = {} |
| | | if (item.action) { |
| | | if (sessionStorage.getItem('editMenuType') === 'popview') { |
| | | item.action = item.action.filter(c => c.OpenType !== 'popview' && c.OpenType !== 'funcbutton') |
| | | } |
| | | item.action = item.action.map(cell => { |
| | | let _uuid = this.getuuid() |
| | | |
| | | oriUids[cell.uuid] = _uuid |
| | | |
| | | cell.uuid = _uuid |
| | | cell.uuid = md5(commonId + cell.uuid) |
| | | |
| | | return cell |
| | | }) |
| | |
| | | } |
| | | |
| | | if (item.wrap && item.wrap.doubleClick) { |
| | | item.wrap.doubleClick = oriUids[item.wrap.doubleClick] || '' |
| | | item.wrap.doubleClick = md5(commonId + item.wrap.doubleClick) |
| | | } |
| | | |
| | | return item |