From 10566ae6b8a9c01e8b63cecab9d8b8520a446f8f Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 14 一月 2025 20:43:03 +0800 Subject: [PATCH] 2025-01-14 --- src/views/syscheck/index.jsx | 183 ++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 171 insertions(+), 12 deletions(-) diff --git a/src/views/syscheck/index.jsx b/src/views/syscheck/index.jsx index 4c2100d..6095b3a 100644 --- a/src/views/syscheck/index.jsx +++ b/src/views/syscheck/index.jsx @@ -21,6 +21,7 @@ activeMenu: null, remain: 0, lackmenus: [], + lacklinks: [], outmenus: [], backmenus: [], appbackmenus: [], @@ -31,6 +32,8 @@ sqlmap = null btnmap = null + allMenus = [] + appMenus = {} // delete _val.controlField 鍒犻櫎鎸夐挳鎺у埗瀛楁 @@ -61,6 +64,7 @@ remain: 0, menulist: [], lackmenus: [], + lacklinks: [], outmenus: [], backmenus: [], appbackmenus: [], @@ -69,6 +73,8 @@ unablemenus: [], loading: true }) + + this.allMenus = [] Api.getCloudConfig({func: 's_get_pc_menus', systemType: window.GLOB.sysType, debug: 'Y'}).then(result => { if (result.status) { let menulist = [] @@ -77,6 +83,8 @@ fst.snd_menu.forEach(snd => { if (snd.trd_menu) { snd.trd_menu.forEach(trd => { + this.allMenus.push(trd.MenuID) + if (trd.PageParam) { let pass = false try { @@ -171,6 +179,7 @@ remain: 0, menulist: [], lackmenus: [], + lacklinks: [], outmenus: [], backmenus: [], appbackmenus: [], @@ -180,6 +189,8 @@ loading: true }) + this.allMenus = [] + this.appMenus = {} Api.getCloudConfig(param).then(result => { if (result.status) { let applist = [] @@ -226,7 +237,11 @@ app.status = true app.menus = [] + this.appMenus[app.ID] = [] + result.menus.forEach(m => { + this.appMenus[app.ID].push(m.MenuID) + if (m.menus_rolelist) { try { let pageParam = JSON.parse(window.decodeURIComponent(window.atob(m.menus_rolelist))) @@ -239,6 +254,7 @@ if (m.type === 'navbar') return } delete m.menus_rolelist + m.$pid = app.ID app.menus.push(m) }) @@ -338,7 +354,7 @@ } getMenuParam = (menus) => { - const { lackmenus, outmenus, unablemenus, backmenus, appbackmenus, btnmenus, appbtnmenus, stop } = this.state + const { lackmenus, lacklinks, outmenus, unablemenus, backmenus, appbackmenus, btnmenus, appbtnmenus, stop } = this.state let menu = menus.shift() @@ -347,15 +363,18 @@ MenuID: menu.MenuID } - let appType = 'pc' + let appType = 'admin' if (menu.kei_no) { param.TypeCharOne = menu.kei_no param.typename = menu.typename param.lang = menu.lang + appType = 'pc' if (['pad', 'mob'].includes(menu.typename)) { appType = 'mob' } + + this.allMenus = this.appMenus[menu.$pid] || [] } this.setState({ @@ -386,8 +405,16 @@ } else { let sqls = [] let btns = [] + let links = [] - this.getAllSqls(config, appType, sqls, btns) + this.getAllSqls(config, appType, sqls, btns, links) + + if (links.length) { + links.forEach(item => { + window.mkInfo(menu.pName + '锛�' + item) + }) + this.setState({lacklinks: [...lacklinks, menu]}) + } if (sqls.length) { let keys = sqls.map(item => item.uuid) @@ -461,7 +488,7 @@ }) } - getAllSqls = (config, appType, sqls, btns) => { + getAllSqls = (config, appType, sqls, btns, links) => { let filterComponent = (components, label = '') => { components.forEach(item => { item.$menuname = (config.MenuName || '') + label + '-' + (item.name || '') @@ -520,7 +547,10 @@ getCols(col.subcols || []) } else if (col.type === 'custom') { col.elements.forEach(cell => { - if (cell.eleType !== 'button') return + if (cell.eleType !== 'button') { + resetElement(item, cell) + return + } cell.logLabel = item.$menuname + '-' + cell.label @@ -553,10 +583,46 @@ sqls.push({uuid: 'submit_' + item.uuid, type: 'editable', LText: item.submit.logLabel}) } - } else if (item.type === 'card' || item.type === 'carousel' || item.type === 'timeline') { + } else if (['card', 'carousel', 'timeline'].includes(item.type)) { item.subcards && item.subcards.forEach(card => { + if (card.setting.click === 'menu' && card.setting.menu) { + if (appType === 'admin') { + if (!Array.isArray(card.setting.menu)) { + links.push(item.$menuname) + } else { + let menuId = card.setting.menu.slice(-1)[0] + if (!this.allMenus.includes(menuId)) { + links.push(item.$menuname) + } + } + } else { + if (typeof(card.setting.menu) !== 'string') { + links.push(item.$menuname) + } else if (!this.allMenus.includes(card.setting.menu)) { + links.push(item.$menuname) + } + } + } else if (card.setting.click === 'menus' && card.menus && card.menus.length > 0) { + if (appType === 'admin') { + card.menus.forEach(m => { + if (!m.MenuID || !this.allMenus.includes(m.MenuID)) { + links.push(item.$menuname) + } + }) + } else { + card.menus.forEach(m => { + if (typeof(m.menu) !== 'string' || !this.allMenus.includes(m.menu)) { + links.push(item.$menuname) + } + }) + } + } + card.elements && card.elements.forEach(cell => { - if (cell.eleType !== 'button') return + if (cell.eleType !== 'button') { + resetElement(item, cell) + return + } cell.logLabel = item.$menuname + '-' + cell.label @@ -570,7 +636,10 @@ if (!card.backElements || card.backElements.length === 0) return card.backElements.forEach(cell => { - if (cell.eleType !== 'button') return + if (cell.eleType !== 'button') { + resetElement(item, cell) + return + } cell.logLabel = item.$menuname + '-' + cell.label @@ -583,7 +652,10 @@ }) } else if (item.type === 'balcony') { item.elements.forEach(cell => { - if (cell.eleType !== 'button') return + if (cell.eleType !== 'button') { + resetElement(item, cell) + return + } cell.logLabel = item.$menuname + '-' + cell.label @@ -621,9 +693,52 @@ sqls.push({uuid: item.uuid + item.billOutBtn.type, type: 'button', LText: item.$menuname + '-' + item.billOutBtn.label}) sqls.push({uuid: item.uuid + 'billback', type: 'btnCallBack', LText: item.$menuname + '-' + item.billOutBtn.label + '(鍥炶皟)'}) + } else if (item.type === 'menubar') { + item.subMenus.forEach(cell => { + if (cell.setting.type === 'menu') { + if (!this.allMenus.includes(cell.uuid)) { + links.push(item.$menuname + '-' + cell.setting.name) + } + } else if (cell.setting.type === 'linkmenu') { + if (!this.allMenus.includes(cell.setting.linkMenuId)) { + links.push(item.$menuname + '-' + cell.setting.name) + } + } + }) + } else if (item.type === 'login') { + if (!item.wrap.linkmenu || !this.allMenus.includes(item.wrap.linkmenu)) { + links.push(item.$menuname) + } + } else if (item.type === 'topbar') { + if (item.wrap.menus) { + item.wrap.menus.forEach(m => { + if (!this.allMenus.includes(m.menu)) { + links.push(item.$menuname) + } + }) + } } } }) + } + + let resetElement = (item, cell) => { + if (cell.linkmenu && cell.linkmenu.length) { + if (appType === 'admin') { + if (!Array.isArray(cell.linkmenu)) { + links.push(item.$menuname) + } else { + let menuId = cell.linkmenu.slice(-1)[0] + if (!this.allMenus.includes(menuId)) { + links.push(item.$menuname) + } + } + } else { + if (cell.linkmenu !== 'goback' && (typeof(cell.linkmenu) !== 'string' || !this.allMenus.includes(cell.linkmenu))) { + links.push(item.$menuname) + } + } + } } let resetButton = (item, cell) => { @@ -659,7 +774,6 @@ sqls.push({uuid: cell.uuid, type: 'excelOut', LText: cell.logLabel || ''}) } } - } else if (cell.OpenType === 'funcbutton') { if (cell.funcType === 'print') { if (cell.intertype === 'system' && cell.verify && cell.verify.dataType === 'custom') { @@ -687,6 +801,42 @@ let label = (item.name ? '-' + item.name : '') + '-' + cell.label filterComponent(cell.config.components, label, true) + } + } + + if (appType === 'admin') { + if (cell.refreshTab && cell.refreshTab.length) { + let tabId = cell.refreshTab[cell.refreshTab.length - 1] + if (!this.allMenus.includes(tabId)) { + links.push(cell.logLabel) + } + } + if (cell.openmenu && cell.openmenu.length) { + if (!Array.isArray(cell.openmenu)) { + links.push(cell.logLabel) + } else { + let menuId = cell.openmenu.slice(-1)[0] + if (!this.allMenus.includes(menuId)) { + links.push(cell.logLabel) + } + } + } + if (cell.linkmenu && cell.linkmenu.length) { + if (!Array.isArray(cell.linkmenu)) { + links.push(cell.logLabel) + } else { + let menuId = cell.linkmenu.slice(-1)[0] + if (!this.allMenus.includes(menuId)) { + links.push(cell.logLabel) + } + } + } + } else { + if (cell.openmenu && cell.openmenu.length && cell.openmenu !== 'goback' && (typeof(cell.openmenu) !== 'string' || !this.allMenus.includes(cell.openmenu))) { + links.push(cell.logLabel) + } + if (cell.linkmenu && cell.linkmenu.length && cell.linkmenu !== 'goback' && (typeof(cell.linkmenu) !== 'string' || !this.allMenus.includes(cell.linkmenu))) { + links.push(cell.logLabel) } } } @@ -726,11 +876,14 @@ } record = (type) => { - const { lackmenus, outmenus, unablemenus, backmenus, appbackmenus, btnmenus, appbtnmenus } = this.state + const { lackmenus, lacklinks, outmenus, unablemenus, backmenus, appbackmenus, btnmenus, appbtnmenus } = this.state let menus = [] lackmenus.forEach(item => { + menus.push(item.MenuID) + }) + lacklinks.forEach(item => { menus.push(item.MenuID) }) outmenus.forEach(item => { @@ -772,7 +925,7 @@ } render () { - const { loading, activeMenu, menulist, remain, lackmenus, outmenus, unablemenus, backmenus, appbackmenus, btnmenus, appbtnmenus } = this.state + const { loading, activeMenu, menulist, remain, lackmenus, lacklinks, outmenus, unablemenus, backmenus, appbackmenus, btnmenus, appbtnmenus } = this.state if (!sessionStorage.getItem('UserID')) return null @@ -805,6 +958,12 @@ return <div key={i}>{item.MenuName} <span></span> {item.pName}</div> })} </div> : null} + {lacklinks.length ? <div className="item-wrap"> + <div className="title">鍏宠仈鑿滃崟涓嶅瓨鍦�</div> + {lacklinks.map((item, i) => { + return <div key={i}>{item.MenuName} <span></span> {item.pName}</div> + })} + </div> : null} {backmenus.length ? <div className="item-wrap"> <div className="title">鑿滃崟鍚庣鑴氭湰ID閲嶅</div> {backmenus.map((item, i) => { -- Gitblit v1.8.0