| | |
| | | let filterBtn = (btn) => { |
| | | if (!btn.verify) return |
| | | |
| | | btn.verify.columns && btn.verify.columns.forEach(col => { |
| | | if (col.Text) { |
| | | sql.push(col.Text) |
| | | } |
| | | }) |
| | | |
| | | btn.verify.customverifys && btn.verify.customverifys.forEach(script => { |
| | | filterSql(script.sql) |
| | | |
| | | if (script.errmsg) { |
| | | sql.push(script.errmsg) |
| | | } |
| | | }) |
| | | btn.verify.scripts && btn.verify.scripts.forEach(script => { |
| | | filterSql(script.sql) |
| | |
| | | |
| | | if (!btn.verify) return |
| | | |
| | | btn.verify.columns && btn.verify.columns.forEach(col => { |
| | | if (col.Text) { |
| | | col.Text = replaceTitle(col.Text) |
| | | } |
| | | }) |
| | | |
| | | btn.verify.uniques && btn.verify.uniques.forEach(col => { |
| | | if (col.fieldlabel) { |
| | | col.fieldlabel = col.fieldlabel.split(',').map(n => replaceTitle(n)).join(',') |
| | | } |
| | | }) |
| | | |
| | | btn.verify.customverifys && btn.verify.customverifys.forEach(script => { |
| | | script.sql = filterSql(script.sql) |
| | | |
| | | if (script.errmsg) { |
| | | script.errmsg = replaceTitle(script.errmsg) |
| | | } |
| | | }) |
| | | btn.verify.scripts && btn.verify.scripts.forEach(script => { |
| | | script.sql = filterSql(script.sql) |
| | |
| | | } |
| | | |
| | | /** |
| | | * @description 语言转换 |
| | | */ |
| | | export function setLangSingleTrans (config, btnDict, titDict, lisDict, menuDict, regs) { |
| | | let filterElement = (card) => { |
| | | if (card.datatype === 'static' && card.eleType === 'text' && !/@.+@/g.test(card.value)) { |
| | | if (card.value) { |
| | | card.value = replaceTitle(card.value) |
| | | } |
| | | } |
| | | if (card.prefix) { |
| | | card.prefix = replaceTitle(card.prefix) |
| | | } |
| | | if (card.postfix) { |
| | | card.postfix = replaceTitle(card.postfix) |
| | | } |
| | | } |
| | | |
| | | let replaceTitle = (val) => { |
| | | if (/(:|:)$/g.test(val)) { |
| | | let _val = val.replace(/(:|:)$/g, '') |
| | | if (titDict[_val]) { |
| | | val = titDict[_val] + val.substr(-1) |
| | | } else if (titDict[val]) { |
| | | val = titDict[val] |
| | | } |
| | | } else if (titDict[val]) { |
| | | val = titDict[val] |
| | | } |
| | | |
| | | return val |
| | | } |
| | | |
| | | let getuuid = () => { |
| | | let uuid = [] |
| | | let _options = '0123456789abcdefghigklmnopqrstuv' |
| | | for (let i = 0; i < 19; i++) { |
| | | uuid.push(_options.substr(Math.floor(Math.random() * 0x20), 1)) |
| | | } |
| | | return uuid.join('') |
| | | } |
| | | |
| | | let filterSql = (sl) => { |
| | | if (!sl) return |
| | | |
| | | let arr = [] |
| | | |
| | | sl = sl.replace(/\/\*[^*/]+\*\//g, (word) => { |
| | | let uuid = getuuid() |
| | | arr.push({id: `/*${uuid}*/`, value: word}) |
| | | return `/*${uuid}*/` |
| | | }) |
| | | |
| | | regs.forEach(item => { |
| | | sl = sl.replace(item.reg, item.value) |
| | | }) |
| | | |
| | | arr.forEach(item => { |
| | | sl = sl.replace(item.id, item.value) |
| | | }) |
| | | |
| | | return sl |
| | | } |
| | | |
| | | let filterBtn = (btn) => { |
| | | if (btn.label && btnDict[btn.label]) { |
| | | btn.label = btnDict[btn.label] |
| | | } |
| | | |
| | | if (!btn.verify) return |
| | | |
| | | btn.verify.columns && btn.verify.columns.forEach(col => { |
| | | if (col.Text) { |
| | | col.Text = replaceTitle(col.Text) |
| | | } |
| | | }) |
| | | |
| | | btn.verify.uniques && btn.verify.uniques.forEach(col => { |
| | | if (col.fieldlabel) { |
| | | col.fieldlabel = col.fieldlabel.split(',').map(n => replaceTitle(n)).join(',') |
| | | } |
| | | }) |
| | | |
| | | btn.verify.customverifys && btn.verify.customverifys.forEach(script => { |
| | | script.sql = filterSql(script.sql) |
| | | |
| | | if (script.errmsg) { |
| | | script.errmsg = replaceTitle(script.errmsg) |
| | | } |
| | | }) |
| | | 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) { |
| | | n.label = replaceTitle(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 traversal = (components) => { |
| | | if (!components) return |
| | | |
| | | components.forEach(item => { |
| | | if (item.type === 'tabs') { |
| | | item.subtabs.forEach(tab => { |
| | | if (tab.label) { |
| | | tab.label = replaceTitle(tab.label) |
| | | } |
| | | traversal(tab.components) |
| | | }) |
| | | } else if (item.type === 'group') { |
| | | traversal(item.components) |
| | | } else { |
| | | if (item.wrap && item.wrap.title) { |
| | | item.wrap.title = replaceTitle(item.wrap.title) |
| | | } |
| | | 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) { |
| | | cell.label = replaceTitle(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 === 'menubar') { |
| | | item.subMenus = item.subMenus.map(cell => { |
| | | if (cell.setting.name && menuDict[cell.setting.name]) { |
| | | cell.setting.name = menuDict[cell.setting.name] |
| | | } |
| | | return cell |
| | | }) |
| | | } 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') { |
| | | 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) { |
| | | col.label = replaceTitle(col.label) |
| | | } |
| | | if (col.prefix) { |
| | | col.prefix = replaceTitle(col.prefix) |
| | | } |
| | | if (col.postfix) { |
| | | col.postfix = replaceTitle(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) |
| | | } |
| | | |
| | | /** |
| | | * @description 获取执行脚本 |
| | | */ |
| | | export function getAllSqls (conf) { |