From eec619b6e3339e9999a7a1c2c5454cef5d763b24 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 29 四月 2022 18:38:55 +0800 Subject: [PATCH] 2022-04-29 --- src/views/mobdesign/index.jsx | 178 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 176 insertions(+), 2 deletions(-) diff --git a/src/views/mobdesign/index.jsx b/src/views/mobdesign/index.jsx index 98854e4..7734346 100644 --- a/src/views/mobdesign/index.jsx +++ b/src/views/mobdesign/index.jsx @@ -30,6 +30,7 @@ const CreateView = asyncComponent(() => import('@/pc/createview')) const Transfer = asyncComponent(() => import('@/pc/transfer')) const Versions = asyncComponent(() => import('@/menu/versions')) +const ViewNodes = asyncComponent(() => import('@/menu/viewnodes')) const SourceWrap = asyncComponent(() => import('@/mob/modulesource')) const BgController = asyncComponent(() => import('@/pc/bgcontroller')) const ReplaceField = asyncComponent(() => import('@/menu/replaceField')) @@ -124,6 +125,7 @@ viewType: /^userbind/.test(param.MenuID) ? 'userbind' : 'menu' }, () => { this.getMenuParam(param) + this.getRelationMenus() }) } } catch (e) { @@ -570,6 +572,29 @@ this.getAppMenus() } + getRelationMenus = () => { + const { MenuId } = this.state + + let param = { + func: 's_get_menu_used_list', + TypeCharOne: sessionStorage.getItem('kei_no'), + typename: sessionStorage.getItem('typename'), + par_menuid: MenuId, + // used_menuid: MenuId + } + + Api.getSystemConfig(param).then(result => { + if (!result.status) { + notification.warning({ + top: 92, + message: result.message, + duration: 5 + }) + return + } + }) + } + setUserBindMenu = (config, result) => { const { MenuId } = this.state let isCreate = !config @@ -691,6 +716,7 @@ return item }) sessionStorage.setItem('appMenus', JSON.stringify(menus)) + sessionStorage.setItem('allMenus', JSON.stringify(res.menus || [])) }) } @@ -996,6 +1022,148 @@ return trees } + getSubMenus = () => { + const { config } = this.state + let menus = [] + let menuObj = {} + let allMenus = JSON.parse(sessionStorage.getItem('allMenus')) + + allMenus.forEach(item => { + menuObj[item.MenuID] = item + }) + + let traversal = (components) => { + components.forEach(item => { + if (item.type === 'topbar') { + if (item.wrap.linkmenu && menuObj[item.wrap.linkmenu]) { + menus.push(menuObj[item.wrap.linkmenu]) + } + if (item.wrap.menus) { + item.wrap.menus.forEach(m => { + if (!menuObj[m.menu]) return + + menus.push(menuObj[m.menu]) + }) + } + } else if (item.type === 'login') { + if (item.wrap.linkmenu && menuObj[item.wrap.linkmenu]) { + menus.push(menuObj[item.wrap.linkmenu]) + } + } else if (item.type === 'menubar' && item.subtype !== 'commonbar') { + item.subMenus.forEach(m => { + if (m.setting.type === 'menu') { + if (menuObj[m.uuid]) { + menus.push(menuObj[m.uuid]) + } else { + menus.push({ + MenuID: m.uuid, + MenuName: m.setting.name, + MenuNo: m.setting.MenuNo + }) + } + } else if (m.setting.type === 'linkmenu' && menuObj[m.setting.linkMenuId]) { + menus.push(menuObj[m.setting.linkMenuId]) + } + }) + } else if (item.type === 'tabs') { + item.subtabs.forEach(tab => { + traversal(tab.components) + }) + } else if (item.type === 'group') { + traversal(item.components) + } else if (item.type === 'card' || (item.type === 'table' && item.subtype === 'tablecard')) { + item.action && item.action.forEach(btn => { + if (btn.linkmenu && menuObj[btn.linkmenu]) { + menus.push(menuObj[btn.linkmenu]) + } else if (btn.openmenu && menuObj[btn.openmenu]) { + menus.push(menuObj[btn.openmenu]) + } + }) + item.subcards.forEach(card => { + if (card.setting.click === 'menu' && menuObj[card.setting.menu]) { + menus.push(menuObj[card.setting.menu]) + } else if (card.setting.click === 'menus' && card.menus) { + card.menus.forEach(m => { + if (menuObj[m.menu]) { + menus.push(menuObj[m.menu]) + } + }) + } + card.elements && card.elements.forEach(cell => { + if (cell.eleType !== 'button') return + + if (cell.linkmenu && menuObj[cell.linkmenu]) { + menus.push(menuObj[cell.linkmenu]) + } else if (cell.openmenu && menuObj[cell.openmenu]) { + menus.push(menuObj[cell.openmenu]) + } + }) + }) + } else if (item.type === 'carousel' || item.type === 'timeline') { + item.subcards.forEach(card => { + if (card.setting.click === 'menu' && menuObj[card.setting.menu]) { + menus.push(menuObj[card.setting.menu]) + } + card.elements && card.elements.forEach(cell => { + if (cell.eleType !== 'button') return + + if (cell.linkmenu && menuObj[cell.linkmenu]) { + menus.push(menuObj[cell.linkmenu]) + } else if (cell.openmenu && menuObj[cell.openmenu]) { + menus.push(menuObj[cell.openmenu]) + } + }) + }) + } else if (item.type === 'balcony') { + item.elements && item.elements.forEach(cell => { + if (cell.eleType !== 'button') return + + if (cell.linkmenu && menuObj[cell.linkmenu]) { + menus.push(menuObj[cell.linkmenu]) + } else if (cell.openmenu && menuObj[cell.openmenu]) { + menus.push(menuObj[cell.openmenu]) + } + }) + } else if (item.type === 'form') { + item.subcards.forEach(m => { + if (m.subButton && m.subButton.linkmenu && menuObj[m.subButton.linkmenu]) { + menus.push(menuObj[m.subButton.linkmenu]) + } + }) + } else if (item.type === 'table' && item.subtype === 'normaltable') { + item.action && item.action.forEach(btn => { + if (btn.linkmenu && menuObj[btn.linkmenu]) { + menus.push(menuObj[btn.linkmenu]) + } else if (btn.openmenu && menuObj[btn.openmenu]) { + menus.push(menuObj[btn.openmenu]) + } + }) + item.cols && item.cols.forEach(col => { + if (col.type !== 'action') return + col.elements.forEach(btn => { + if (btn.linkmenu && menuObj[btn.linkmenu]) { + menus.push(menuObj[btn.linkmenu]) + } else if (btn.openmenu && menuObj[btn.openmenu]) { + menus.push(menuObj[btn.openmenu]) + } + }) + }) + } + }) + } + + traversal(config.components) + + let map = new Map() + menus = menus.filter(m => { + if (map.has(m.MenuID)) return false + map.set(m.MenuID, true) + return true + }) + + return menus + } + checkBtn = (btn) => { if (['prompt', 'exec', 'pop'].includes(btn.OpenType) && btn.Ot === 'required' && btn.verify && btn.verify.scripts && btn.verify.scripts.length > 0) { let hascheck = false @@ -1147,6 +1315,10 @@ config = this.getMiniStyle(config) } + let subMenus = this.getSubMenus() + let menus_used_list = subMenus.map(m => `'${config.uuid}','${config.MenuName || ''}','${config.MenuNo || ''}','${m.MenuID}','${m.MenuName}'`).join(';') + menus_used_list = window.btoa(window.encodeURIComponent(menus_used_list || 'del')) + let param = { func: 'sPC_TrdMenu_AddUpt', FstID: 'mk_app', @@ -1163,7 +1335,8 @@ open_edition: config.open_edition, menus_rolelist: window.btoa(window.encodeURIComponent(JSON.stringify(roleParam))), LText: '', - LTexttb: '' + LTexttb: '', + menus_used_list } param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') @@ -1768,7 +1941,7 @@ <ArrowLeftOutlined title="鍚庨��" className="back-view" onClick={this.backView}/> <CreateView resetmenu={this.getAppMenus} /> <PasteController insert={this.insert} /> - <StyleCombControlButton menu={config} /> + <ViewNodes config={config} MenuId={MenuId}/> <SysInterface config={config} updateConfig={this.updateConfig}/> <PictureController/> <Quotecomponent config={config} updateConfig={this.updateConfig}/> @@ -1777,6 +1950,7 @@ <ReplaceField type="custom" config={config} updateConfig={this.resetConfig}/> <Transfer MenuID={MenuId} /> <Versions MenuId={MenuId} open_edition={config ? config.open_edition : ''}/> + <StyleCombControlButton menu={config} /> <Button className="mk-border-danger" onClick={this.refreshView}><RedoOutlined /> 寮哄埗鍒锋柊</Button> <Button type="default" onClick={this.closeView}>鍏抽棴</Button> </div> -- Gitblit v1.8.0