From b16bdc8dd68b72d2a2491f9e5d3656120532e2fc Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 29 四月 2022 19:07:45 +0800 Subject: [PATCH] 2022-04-29 --- src/views/pcdesign/index.jsx | 127 +++++++++++++++++++++++++++++++++++++++++ src/menu/viewnodes/index.scss | 2 src/menu/viewnodes/index.jsx | 12 ++-- 3 files changed, 132 insertions(+), 9 deletions(-) diff --git a/src/menu/viewnodes/index.jsx b/src/menu/viewnodes/index.jsx index 34e0551..c0515df 100644 --- a/src/menu/viewnodes/index.jsx +++ b/src/menu/viewnodes/index.jsx @@ -144,13 +144,13 @@ G6.registerNode( 'dice-mind-map-root', { jsx: (cfg) => { - const width = Util.getTextSize(cfg.label, 16)[0] + 24; + const width = Util.getTextSize(cfg.label, 14)[0] + 12; const stroke = cfg.style.stroke || '#096dd9'; return ` <group> - <rect draggable="true" style={{width: ${width}, height: 42, stroke: ${stroke}, radius: 4}} keyshape> - <text style={{ fontSize: 16, marginLeft: 12, marginTop: 12 }}>${cfg.label}</text> + <rect draggable="true" style={{width: ${width}, height: 30, stroke: ${stroke}, radius: 4}} keyshape> + <text style={{ fontSize: 14, marginLeft: 6, marginTop: 6 }}>${cfg.label}</text> </rect> </group> `; @@ -268,8 +268,8 @@ const tree = new G6.TreeGraph({ container: 'mountNode', - width: 750, - height: 500, + width: 600, + height: 350, fitView: true, fitViewPadding: [10, 20], layout: { @@ -320,7 +320,7 @@ title="" wrapClassName="view-nodes-modal" visible={visible} - width={850} + width={700} closable={false} maskClosable={false} footer={[]} diff --git a/src/menu/viewnodes/index.scss b/src/menu/viewnodes/index.scss index 26316ea..0a6cb1b 100644 --- a/src/menu/viewnodes/index.scss +++ b/src/menu/viewnodes/index.scss @@ -8,7 +8,7 @@ } .wrap { position: relative; - height: 505px; + height: 350px; margin: 10px 0px; overflow: hidden; diff --git a/src/views/pcdesign/index.jsx b/src/views/pcdesign/index.jsx index b71d127..d5519f2 100644 --- a/src/views/pcdesign/index.jsx +++ b/src/views/pcdesign/index.jsx @@ -29,6 +29,7 @@ const PopviewController = asyncComponent(() => import('@/menu/popview')) const Versions = asyncComponent(() => import('@/menu/versions')) const MenuShell = asyncComponent(() => import('@/pc/menushell')) +const ViewNodes = asyncComponent(() => import('@/menu/viewnodes')) const SourceWrap = asyncComponent(() => import('@/pc/modulesource')) const CreateView = asyncComponent(() => import('@/pc/createview')) const BgController = asyncComponent(() => import('@/pc/bgcontroller')) @@ -691,6 +692,7 @@ return item }) sessionStorage.setItem('appMenus', JSON.stringify(menus)) + sessionStorage.setItem('allMenus', JSON.stringify(res.menus || [])) }) } @@ -1057,6 +1059,121 @@ } } + 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 === 'login') { + if (item.wrap.linkmenu && menuObj[item.wrap.linkmenu]) { + menus.push(menuObj[item.wrap.linkmenu]) + } + } 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 + } + submitConfig = () => { const { delButtons, copyButtons, thawButtons } = this.state let config = fromJS(this.state.config).toJS() @@ -1086,6 +1203,10 @@ let roleParam = this.getMenuMessage() + 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', @@ -1102,7 +1223,8 @@ menus_rolelist: window.btoa(window.encodeURIComponent(JSON.stringify(roleParam))), open_edition: config.open_edition, LText: '', - LTexttb: '' + LTexttb: '', + menus_used_list } param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') @@ -1814,7 +1936,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}/> @@ -1823,6 +1945,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