From e8edfdadb561cd83bf6e1c3e00d55b8cc2aee6d5 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期一, 17 十月 2022 17:57:34 +0800 Subject: [PATCH] 2022-10-17 --- src/utils/utils-custom.js | 212 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 194 insertions(+), 18 deletions(-) diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js index 98ae0de..e667b47 100644 --- a/src/utils/utils-custom.js +++ b/src/utils/utils-custom.js @@ -463,6 +463,10 @@ return cell }) } else if (['card', 'carousel', 'timeline'].includes(item.type) || (item.type === 'table' && item.subtype === 'tablecard')) { + if (item.wrap.datatype === 'public' && uuids[item.wrap.publicId]) { + item.wrap.publicId = uuids[item.wrap.publicId] + } + item.subcards.forEach(card => { card.uuid = this.getuuid() @@ -503,6 +507,9 @@ } }) } else if (item.type === 'balcony') { + if (item.wrap.datatype === 'public' && uuids[item.wrap.publicId]) { + item.wrap.publicId = uuids[item.wrap.publicId] + } if (item.elements) { item.elements = item.elements.map(cell => { cell.uuid = this.getuuid() @@ -576,10 +583,21 @@ return col }) } + } else if (item.type === 'form') { + item.subcards = item.subcards.map(cell => { + cell.uuid = this.getuuid() + + cell.fields = cell.fields.map(m => { + m.uuid = this.getuuid() + + return m + }) + return cell + }) } if (item.btnlog) { - item.btnlog = [] + item.btnlog = null } let oriUids = {} @@ -682,17 +700,15 @@ } /** - * @description 鏁版嵁婧愬悕绉帮紝鐢ㄤ簬缁熶竴鏌ヨ - * @return {String} name + * @description 缁勪欢鍚嶅姞鍚庣紑 */ - static getdataName () { + static getSignName () { let name = [] let _options = 'abcdefghigklmnopqrstuvwxyz' - for (let i = 0; i < 6; i++) { + for (let i = 0; i < 3; i++) { name.push(_options.substr(Math.floor(Math.random() * 26), 1)) } - name.splice(3, 0, new Date().getTime()) - return name.join('') + return (Math.floor(Math.random()*10) + name.join('')).toUpperCase() } /** @@ -710,12 +726,8 @@ item.uuid = _uuid - if (item.dataName) { - item.dataName = this.getdataName() - } - // 閲嶇疆缁勪欢鍚嶇О - let sign = this.getdataName().toUpperCase().substr(-4) + let sign = this.getSignName() if (item.plot) { // 鍥捐〃 item.plot.name = item.plot.name + sign item.name = item.plot.name @@ -859,7 +871,7 @@ } if (item.btnlog) { - item.btnlog = [] + item.btnlog = null } let oriUids = {} @@ -943,9 +955,11 @@ */ export function resetStyle (style) { if (!style) return {} - if (sessionStorage.getItem('appType') === 'mob') { - let _style = JSON.stringify(style) + let _style = JSON.stringify(style) + _style = _style.replace(/@mywebsite@\//ig, window.GLOB.baseurl) + + if (sessionStorage.getItem('appType') === 'mob') { // scaleview _style = _style.replace(/\d+vw/ig, (word) => { return parseFloat(word) * (window.GLOB.winWidth || 420) / 100 + 'px' @@ -954,8 +968,170 @@ return parseFloat(word) * (window.GLOB.winHeight || 738) / 100 + 'px' // return parseFloat(word) * 615 / 100 + 'px' }) - - return JSON.parse(_style) } - return JSON.parse(JSON.stringify(style)) + + return JSON.parse(_style) +} + +/** + * @description 鑾峰彇琛ㄥ悕 + */ +export function getTables (config) { + let tables = [] + let cuts = [] + let cutreg = /(from|update|insert\s+into)\s+(@db@)?[a-z_]+/ig + let trimreg = /(from|update|insert\s+into)\s+(@db@)?/ig + + if (!config.wrap || !config.wrap.datatype || config.wrap.datatype === 'dynamic') { + if (config.setting.interType === 'system') { + if (config.setting.execute !== 'false') { + let tbs = config.setting.dataresource.match(cutreg) + tbs && cuts.push(...tbs) + } + config.scripts && config.scripts.forEach(script => { + if (script.status === 'false') return + let tbs = script.sql.match(cutreg) + tbs && cuts.push(...tbs) + }) + } else { + let tb = config.setting.tableName.replace(/@db@|\s+/ig, '') + if (/[a-z_]+/ig.test(tb)) { + tables.push(tb) + } + } + } + + let action = [] + + if (config.type === 'form') { + config.subcards.forEach(item => { + action.push(item.subButton) + }) + } else if (config.subcards) { + config.subcards.forEach(item => { + item.elements.forEach(cell => { + if (cell.eleType === 'button' && ['form', 'pop', 'prompt', 'exec', 'excelIn', 'excelOut'].includes(cell.OpenType)) { + action.push(cell) + } + }) + + if (item.backElements && item.setting.type === 'multi') { + item.backElements.forEach(cell => { + if (cell.eleType === 'button' && ['form', 'pop', 'prompt', 'exec', 'excelIn', 'excelOut'].includes(cell.OpenType)) { + action.push(cell) + } + }) + } + }) + } + config.cols && config.cols.forEach(col => { + if (col.type === 'action') { + col.elements.forEach(cell => { + if (['form', 'pop', 'prompt', 'exec', 'excelIn', 'excelOut'].includes(cell.OpenType)) { + action.push(cell) + } + }) + } + }) + + config.elements && config.elements.forEach(cell => { + if (cell.eleType === 'button' && ['form', 'pop', 'prompt', 'exec', 'excelIn', 'excelOut'].includes(cell.OpenType)) { + action.push(cell) + } + }) + + config.action && config.action.forEach(cell => { + if (['pop', 'prompt', 'exec', 'excelIn', 'excelOut'].includes(cell.OpenType)) { + action.push(cell) + } + }) + + action.forEach(btn => { + if (btn.OpenType === 'excelIn') { + if (!btn.verify) return + if (btn.intertype !== 'system' || btn.verify.default !== 'false') { + let tb = btn.sheet.replace(/@db@|\s+/ig, '') + if (/[a-z_]+/ig.test(tb)) { + tables.push(tb) + } + } + if (btn.intertype === 'system' && btn.verify.scripts) { + btn.verify.scripts.forEach(script => { + if (script.status === 'false') return + let tbs = script.sql.match(cutreg) + tbs && cuts.push(...tbs) + }) + } + } else if (btn.OpenType === 'excelOut') { + if (btn.intertype !== 'system' || !btn.verify) return + if (btn.verify.dataType === 'custom') { + if (btn.verify.defaultSql !== 'false') { + let tbs = btn.verify.dataresource.match(cutreg) + tbs && cuts.push(...tbs) + } + btn.verify.scripts && btn.verify.scripts.forEach(script => { + if (script.status === 'false') return + let tbs = script.sql.match(cutreg) + tbs && cuts.push(...tbs) + }) + } + if (btn.verify.enable === 'true' && btn.verify.script) { + let tbs = btn.verify.script.match(cutreg) + tbs && cuts.push(...tbs) + } + } else { + if (btn.intertype === 'inner') return + if (btn.intertype === 'outer' || btn.intertype === 'custom') { + if (btn.procMode === 'system' && btn.verify) { + if (btn.verify.default !== 'false' && btn.sql) { + let tb = btn.sql.replace(/@db@|\s+/ig, '') + if (/[a-z_]+/ig.test(tb)) { + tables.push(tb) + } + } + btn.verify.customverifys && btn.verify.customverifys.forEach(script => { + if (script.status === 'false') return + let tbs = script.sql.match(cutreg) + tbs && cuts.push(...tbs) + }) + btn.verify.scripts && btn.verify.scripts.forEach(script => { + if (script.status === 'false') return + let tbs = script.sql.match(cutreg) + tbs && cuts.push(...tbs) + }) + } + if (btn.callbackType === 'script' && btn.verify) { + btn.verify.cbScripts && btn.verify.cbScripts.forEach(script => { + if (script.status === 'false') return + let tbs = script.sql.match(cutreg) + tbs && cuts.push(...tbs) + }) + } + } else if (btn.verify) { + if (btn.verify.default !== 'false' && btn.sql) { + let tb = btn.sql.replace(/@db@|\s+/ig, '') + if (/[a-z_]+/ig.test(tb)) { + tables.push(tb) + } + } + btn.verify.customverifys && btn.verify.customverifys.forEach(script => { + if (script.status === 'false') return + let tbs = script.sql.match(cutreg) + tbs && cuts.push(...tbs) + }) + btn.verify.scripts && btn.verify.scripts.forEach(script => { + if (script.status === 'false') return + let tbs = script.sql.match(cutreg) + tbs && cuts.push(...tbs) + }) + } + } + }) + + cuts = cuts.map(item => item.replace(trimreg, '')) + tables.push(...cuts) + tables = tables.filter(Boolean) + tables = Array.from(new Set(tables)) + + return tables } \ No newline at end of file -- Gitblit v1.8.0