From 9ff5920c0a58771219b134a7b46b7d0c1e1542ad Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 19 六月 2024 23:50:13 +0800 Subject: [PATCH] 2024-06-19 --- src/utils/utils-custom.js | 542 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 483 insertions(+), 59 deletions(-) diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js index 16fba25..68420fa 100644 --- a/src/utils/utils-custom.js +++ b/src/utils/utils-custom.js @@ -629,7 +629,7 @@ }) } - if (item.setting && item.setting.supModule && item.setting.supModule[0] !== 'empty') { + if (item.setting && item.setting.supModule && item.setting.supModule[0] !== 'empty' && item.setting.supModule[0] !== 'preview') { item.setting.supModule = item.setting.supModule.map(c => { return md5(commonId + c) }) @@ -1108,6 +1108,8 @@ value = item.initval || `${item.minValue || '-999999999'},${item.maxValue || '999999999'}` } else if (item.type === 'multiselect' || (item.type === 'checkcard' && item.multiple === 'true')) { type = 'multi' + } else { + value = item.initval || '0' } newsearches.push({ @@ -2080,25 +2082,21 @@ * @description 鑾峰彇璇█杞崲淇℃伅 */ export function getLangTrans (config) { - let defLang = window.GLOB.defLang || '' let langList = sessionStorage.getItem('langList') + let appType = sessionStorage.getItem('appType') + + if (appType === 'mob' || appType === 'pc') { + langList = sessionStorage.getItem('applangList') + } - if (langList) { - try { - langList = JSON.parse(langList) - if (langList.length === 1) { - defLang = '' - } else if (!defLang || langList.findIndex(item => item.Lang === defLang) === -1) { - if (langList.findIndex(item => item.Lang === 'zh-CN') === -1) { - defLang = langList[0].Lang - } else { - defLang = 'zh-CN' - } - } - } catch (e) { - defLang = '' - } - } else { + if (!langList) return + + let defLang = '' + + try { + langList = JSON.parse(langList) + defLang = langList[0] + } catch (e) { defLang = '' } @@ -2108,9 +2106,10 @@ let btn = [] let ops = [] let text = [] + let menu = [] let filterElement = (card) => { - if (card.datatype === 'static' && card.eleType === 'text') { + if (card.datatype === 'static' && card.eleType === 'text' && !/@.+@/g.test(card.value)) { sql.push(card.value) } if (card.prefix) { @@ -2154,6 +2153,17 @@ } } + let filterForm = (n) => { + sql.push(n.label) + if (n.resourceType === '1') { + filterSql(n.dataSource) + } else if (n.options) { + n.options.forEach(o => { + ops.push(o.Text) + }) + } + } + let traversal = (components) => { if (!components) return @@ -2181,17 +2191,26 @@ }) } if (item.search) { - item.search.forEach(cell => { - sql.push(cell.label) - if (cell.options) { - cell.options.forEach(o => { - ops.push(o.Text) + if (item.type === 'topbar') { + if (item.search.fields) { + item.search.fields.forEach(cell => { + filterForm(cell) }) } - if (cell.resourceType === '1') { - filterSql(cell.dataSource) + if (item.search.groups) { + item.search.groups.forEach(group => { + if (group.fields) { + group.fields.forEach(cell => { + filterForm(cell) + }) + } + }) } - }) + } else { + item.search.forEach(cell => { + filterForm(cell) + }) + } } if (item.action) { item.action.forEach(cell => { @@ -2202,17 +2221,36 @@ } else if (cell.OpenType === 'pop') { if (cell.modal && cell.modal.fields.length) { cell.modal.fields.forEach(n => { - sql.push(n.label) - if (n.resourceType === '1') { - filterSql(n.dataSource) - } + filterForm(n) }) } } }) } - if (item.type === 'card' || item.type === 'carousel' || item.type === 'timeline') { + if (item.type === 'navbar') { + if (item.menus) { + item.menus.forEach(first => { + menu.push(first.name) + if (first.sublist) { + first.sublist.forEach(sec => { + menu.push(sec.name) + if (sec.sublist) { + sec.sublist.forEach(thd => { + menu.push(thd.name) + }) + } + }) + } + }) + } + } else if (item.type === 'menubar') { + item.subMenus.forEach(cell => { + if (cell.setting.name) { + menu.push(cell.setting.name) + } + }) + } else if (item.type === 'card' || item.type === 'carousel' || item.type === 'timeline') { item.subcards.forEach(card => { card.elements && card.elements.forEach(cell => { if (cell.eleType === 'button') { @@ -2223,10 +2261,7 @@ } else if (cell.OpenType === 'pop') { if (cell.modal && cell.modal.fields.length) { cell.modal.fields.forEach(n => { - sql.push(n.label) - if (n.resourceType === '1') { - filterSql(n.dataSource) - } + filterForm(n) }) } } @@ -2243,10 +2278,7 @@ } else if (cell.OpenType === 'pop') { if (cell.modal && cell.modal.fields.length) { cell.modal.fields.forEach(n => { - sql.push(n.label) - if (n.resourceType === '1') { - filterSql(n.dataSource) - } + filterForm(n) }) } } @@ -2265,10 +2297,7 @@ } else if (cell.OpenType === 'pop') { if (cell.modal && cell.modal.fields.length) { cell.modal.fields.forEach(n => { - sql.push(n.label) - if (n.resourceType === '1') { - filterSql(n.dataSource) - } + filterForm(n) }) } } @@ -2298,10 +2327,7 @@ } else if (cell.OpenType === 'pop') { if (cell.modal && cell.modal.fields.length) { cell.modal.fields.forEach(n => { - sql.push(n.label) - if (n.resourceType === '1') { - filterSql(n.dataSource) - } + filterForm(n) }) } } @@ -2317,10 +2343,7 @@ item.subcards.forEach(cell => { filterBtn(cell.subButton) cell.fields.forEach(n => { - sql.push(n.label) - if (n.resourceType === '1') { - filterSql(n.dataSource) - } + filterForm(n) }) }) } @@ -2341,36 +2364,437 @@ traversal(config.components) + if (config.MenuName) { + menu.push(config.MenuName) + } + + if (config.fstMenuId && config.parentId && config.fstMenuId !== 'BillPrintTemp') { + let menulist = sessionStorage.getItem('fstMenuList') + try { + menulist = JSON.parse(menulist) + } catch(e) { + menulist = [] + } + + menulist.forEach(item => { + if (item.MenuID !== config.fstMenuId) return + menu.push(item.MenuName) + item.children.forEach(cell => { + if (cell.MenuID !== config.parentId) return + menu.push(cell.MenuName) + }) + }) + } + sql = sql.filter(Boolean) btn = btn.filter(Boolean) ops = ops.filter(Boolean) text = text.filter(Boolean) + menu = menu.filter(Boolean) sql = Array.from(new Set(sql)) btn = Array.from(new Set(btn)) ops = Array.from(new Set(ops)) text = Array.from(new Set(text)) + menu = Array.from(new Set(menu)) sql = sql.map(l => `'${l}','title'`) btn = btn.map(l => `'${l}','button'`) ops = ops.map(l => `'${l}','list'`) text = text.map(l => `'${l}','text'`) + menu = menu.map(l => `'${l}','menu'`) - let list = [...btn, ...sql, ...ops, ...text] - - if (config.MenuName) { - list.unshift(`'${config.MenuName}','menu'`) - } + let list = [...menu, ...btn, ...sql, ...ops, ...text] let result = [] langList.forEach(lan => { - if (lan.Lang === defLang) return + if (lan === defLang) return list.forEach(n => { - result.push(`'${lan.Lang}',${n}`) + result.push(`'${lan}',${n}`) }) }) + + config.trans = true return result.join(';') +} + +/** + * @description 璇█杞崲 + */ +export function setLangTrans (config, btnDict, titDict, lisDict, menuDict, regs, tail) { + let filterElement = (card) => { + if (card.datatype === 'static' && card.eleType === 'text' && !/@.+@/g.test(card.value)) { + if (card.value && titDict[card.value]) { + card.value = titDict[card.value] + } + } + if (card.prefix && titDict[card.prefix]) { + card.prefix = titDict[card.prefix] + } + if (card.postfix && titDict[card.postfix]) { + card.postfix = titDict[card.postfix] + } + } + + let filterSql = (sl) => { + if (!sl) return + + regs.forEach(item => { + sl = sl.replace(item.reg, item.value) + }) + + return sl + } + + let filterBtn = (btn) => { + if (btn.label && btnDict[btn.label]) { + btn.label = btnDict[btn.label] + } + + if (btn.OpenType === 'tab' && btn.linkmenu) { + if (btn.linkmenu[0] === 'multiMenu') { + btn.multiMenus.forEach(menu => { + menu.menuId = menu.menuId.map(c => { + if (c.length <= 24) { + return md5(window.GLOB.appkey + c + sessionStorage.getItem('lang')).toLowerCase() + } else { + return c.slice(0, 24) + tail + } + }) + + menu.MenuID = menu.menuId[menu.menuId.length - 1] + }) + } else { + btn.linkmenu = btn.linkmenu.map(c => { + if (c.length <= 24) { + return md5(window.GLOB.appkey + c + sessionStorage.getItem('lang')).toLowerCase() + } else { + return c.slice(0, 24) + tail + } + }) + btn.MenuID = btn.linkmenu[btn.linkmenu.length - 1] + } + } else { + if (btn.refreshTab && btn.refreshTab.length > 0) { + btn.refreshTab = btn.refreshTab.map(c => { + if (c.length <= 24) { + return md5(window.GLOB.appkey + c + sessionStorage.getItem('lang')).toLowerCase() + } else { + return c.slice(0, 24) + tail + } + }) + } + if (btn.openmenu && Array.isArray(btn.openmenu) && btn.openmenu.length > 0) { + btn.openmenu = btn.openmenu.map(c => { + if (c.length <= 24) { + return md5(window.GLOB.appkey + c + sessionStorage.getItem('lang')).toLowerCase() + } else { + return c.slice(0, 24) + tail + } + }) + btn.MenuID = btn.openmenu[btn.openmenu.length - 1] + } else if (btn.openmenu && typeof(btn.openmenu) === 'string' && btn.openmenu !== 'goback') { + btn.openmenu = btn.openmenu.slice(0, 24) + tail + } + + if (btn.pageTemplate === 'linkpage' && btn.linkmenu && typeof(btn.linkmenu) === 'string') { + btn.linkmenu = btn.linkmenu.slice(0, 24) + tail + } + } + + if (!btn.verify) return + + btn.verify.customverifys && btn.verify.customverifys.forEach(script => { + script.sql = filterSql(script.sql) + }) + btn.verify.scripts && btn.verify.scripts.forEach(script => { + script.sql = filterSql(script.sql) + }) + btn.verify.cbScripts && btn.verify.cbScripts.forEach(script => { + script.sql = filterSql(script.sql) + }) + + if (btn.OpenType === 'funcbutton') { + if (btn.intertype === 'system' && btn.verify.dataType === 'custom' && btn.verify.setting) { + btn.verify.setting.dataresource = filterSql(btn.verify.setting.dataresource) + } + } else if (btn.OpenType === 'excelOut' && btn.verify.dataresource) { + btn.verify.dataresource = filterSql(btn.verify.dataresource) + } + } + + let filterForm = (n) => { + if (n.label && titDict[n.label]) { + n.label = titDict[n.label] + } + if (n.resourceType === '1') { + n.dataSource = filterSql(n.dataSource) + } else if (n.options) { + n.options.forEach(o => { + if (o.Text && lisDict[o.Text]) { + o.Text = lisDict[o.Text] + } + }) + } + } + + let resetMenu = (wrap) => { + if (!wrap.menu) return + + if (typeof(wrap.menu) === 'string') { + wrap.menu = wrap.menu.slice(0, 24) + tail + if (wrap.MenuID) { + wrap.MenuID = wrap.menu + } + } else { + wrap.menu = wrap.menu.map(c => { + if (c.length <= 24) { + return md5(window.GLOB.appkey + c + sessionStorage.getItem('lang')).toLowerCase() + } else { + return c.slice(0, 24) + tail + } + }) + if (wrap.MenuID) { + wrap.MenuID = wrap.menu[wrap.menu.length - 1] + } + } + } + let resetMenus = (wrap) => { + if (!wrap.menus) return + + wrap.menus.forEach(m => { + if (typeof(m.menu) === 'string') { + m.menu = m.menu.slice(0, 24) + tail + } else { + m.menu = m.menu.map(c => { + if (c.length <= 24) { + return md5(window.GLOB.appkey + c + sessionStorage.getItem('lang')).toLowerCase() + } else { + return c.slice(0, 24) + tail + } + }) + if (m.MenuID) { + m.MenuID = m.menu[m.menu.length - 1] + } + } + }) + } + + let traversal = (components) => { + if (!components) return + + components.forEach(item => { + if (item.type === 'tabs') { + item.subtabs.forEach(tab => { + if (tab.label && titDict[tab.label]) { + tab.label = titDict[tab.label] + } + traversal(tab.components) + }) + } else if (item.type === 'group') { + traversal(item.components) + } else { + if (item.wrap && (item.wrap.click === 'menu' || item.wrap.click === 'menus')) { + if (item.wrap.click === 'menu') { + resetMenu(item.wrap) + } else if (item.wrap.click === 'menus') { + resetMenus(config.wrap) + } + } else if (item.plot && (item.plot.click === 'menu' || item.plot.click === 'menus')) { + if (item.plot.click === 'menu') { + resetMenu(item.plot) + } else if (item.plot.click === 'menus') { + resetMenus(config.plot) + } + } + if (item.setting && (!item.wrap || !item.wrap.datatype || item.wrap.datatype === 'dynamic')) { + if (item.setting.interType === 'system') { + item.setting.dataresource = filterSql(item.setting.dataresource) + item.scripts && item.scripts.forEach(script => { + script.sql = filterSql(script.sql) + }) + } + } + + if (item.columns) { + item.columns.forEach(cell => { + if (cell.label && titDict[cell.label]) { + cell.label = titDict[cell.label] + } + }) + } + if (item.search) { + if (item.type === 'topbar') { + if (item.search.fields) { + item.search.fields.forEach(cell => { + filterForm(cell) + }) + } + if (item.search.groups) { + item.search.groups.forEach(group => { + if (group.fields) { + group.fields.forEach(cell => { + filterForm(cell) + }) + } + }) + } + } else { + item.search.forEach(cell => { + filterForm(cell) + }) + } + } + if (item.action) { + item.action.forEach(cell => { + filterBtn(cell) + if (cell.OpenType === 'popview' && cell.config) { + traversal(cell.config.components) + } else if (cell.OpenType === 'pop') { + if (cell.modal && cell.modal.fields.length) { + cell.modal.fields.forEach(n => { + filterForm(n) + }) + } + } + }) + } + + if (item.type === 'navbar') { + item.uuid = item.uuid.slice(0, 24) + tail + } else if (item.type === 'login') { + item.wrap.linkmenu = item.wrap.linkmenu.slice(0, 24) + tail + } else if (item.type === 'menubar') { + item.subMenus = item.subMenus.map(cell => { + if (cell.setting.name && menuDict[cell.setting.name]) { + cell.setting.name = menuDict[cell.setting.name] + } + if (cell.setting.type === 'linkmenu') { + cell.setting.linkMenuId = cell.setting.linkMenuId.slice(0, 24) + tail + } + return cell + }) + } else if (item.type === 'topbar') { + if (item.wrap.menus) { + resetMenus(item.wrap) + } + } else if (item.type === 'card' || item.type === 'carousel' || item.type === 'timeline') { + item.subcards.forEach(card => { + if (card.setting.click === 'menus') { + resetMenus(card) + } else if (card.setting.click === 'menu') { + resetMenu(card.setting) + } + card.elements && card.elements.forEach(cell => { + if (cell.eleType === 'button') { + filterBtn(cell) + if (cell.OpenType === 'popview' && cell.config) { + traversal(cell.config.components) + } else if (cell.OpenType === 'pop') { + if (cell.modal && cell.modal.fields.length) { + cell.modal.fields.forEach(n => { + filterForm(n) + }) + } + } + } else { + filterElement(cell) + } + }) + card.backElements && card.backElements.forEach(cell => { + if (cell.eleType === 'button') { + filterBtn(cell) + if (cell.OpenType === 'popview' && cell.config) { + traversal(cell.config.components) + } else if (cell.OpenType === 'pop') { + if (cell.modal && cell.modal.fields.length) { + cell.modal.fields.forEach(n => { + filterForm(n) + }) + } + } + } else { + filterElement(cell) + } + }) + }) + } else if (item.type === 'balcony') { + item.elements && item.elements.forEach(cell => { + if (cell.eleType === 'button') { + filterBtn(cell) + if (cell.OpenType === 'popview' && cell.config) { + traversal(cell.config.components) + } else if (cell.OpenType === 'pop') { + if (cell.modal && cell.modal.fields.length) { + cell.modal.fields.forEach(n => { + filterForm(n) + }) + } + } + } else { + filterElement(cell) + } + }) + } else if (item.type === 'table') { + let loopCol = (cols) => { + cols.forEach(col => { + if (col.label && titDict[col.label]) { + col.label = titDict[col.label] + } + if (col.prefix && titDict[col.prefix]) { + col.prefix = titDict[col.prefix] + } + if (col.postfix && titDict[col.postfix]) { + col.postfix = titDict[col.postfix] + } + if (col.type === 'colspan') { + loopCol(col.subcols) + } else if (col.type === 'custom') { + col.elements.forEach(cell => { + if (cell.eleType === 'button') { + filterBtn(cell) + if (cell.OpenType === 'popview' && cell.config) { + traversal(cell.config.components) + } else if (cell.OpenType === 'pop') { + if (cell.modal && cell.modal.fields.length) { + cell.modal.fields.forEach(n => { + filterForm(n) + }) + } + } + } else { + filterElement(cell) + } + }) + } + }) + } + loopCol(item.cols) + } else if (item.type === 'form') { + item.subcards.forEach(cell => { + filterBtn(cell.subButton) + cell.fields.forEach(n => { + filterForm(n) + }) + }) + } + } + }) + } + + if (config.interfaces) { + config.interfaces.forEach(item => { + if (item.setting.interType === 'system') { + item.setting.dataresource = filterSql(item.setting.dataresource) + item.scripts && item.scripts.forEach(script => { + script.sql = filterSql(script.sql) + }) + } + }) + } + + traversal(config.components) } \ No newline at end of file -- Gitblit v1.8.0