From 5ec0f02101cb4255c6398856bbf17a2a0b2c9a7e Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期一, 14 十一月 2022 17:33:55 +0800 Subject: [PATCH] 2022-11-14 --- src/utils/utils-custom.js | 271 ++++++++++++++++++++++++++++-------------------------- 1 files changed, 140 insertions(+), 131 deletions(-) diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js index b783fc3..be31708 100644 --- a/src/utils/utils-custom.js +++ b/src/utils/utils-custom.js @@ -171,7 +171,7 @@ * @description 鑾峰彇涓婄骇妯″潡 * @return {String} selfId 褰撳墠缁勪欢id */ - static getSupModules (components, selfId) { + static getSupModules (components, selfId, interfaces) { let modules = [] components.forEach(item => { if (item.uuid === selfId) { @@ -264,7 +264,41 @@ } }) + if (interfaces && interfaces.length > 0) { + interfaces.forEach(item => { + modules.push({ + value: item.uuid, + label: item.name + }) + }) + } + return modules + } + + /** + * @description 鑾峰彇涓婄骇妯″潡 + * @return {String} selfId 褰撳墠缁勪欢id + */ + static checkSupModules (modules, supId) { + let has = false + + let check = (list) => { + list.forEach(m => { + if (has) return + if (supId === m.value) { + has = true + return + } + if (m.children) { + check(m.children) + } + }) + } + + check(modules) + + return has } /** @@ -342,73 +376,6 @@ } /** - * @description 鑾峰彇鍒犻櫎鎸夐挳Id - * @return {String} name - */ - static getDelButtonIds (card) { - let appType = sessionStorage.getItem('appType') - let uuids = [] - - if (appType === 'mob') return uuids - - const getUuids = (item) => { - if (item.type === 'tabs') { - item.subtabs.forEach(tab => { - tab.components.forEach(c => { - getUuids(c) - }) - }) - } else if (item.type === 'group') { - item.components.forEach(c => { - getUuids(c) - }) - } else { - item.action && item.action.forEach(act => { - if (act.origin || (appType === 'pc' && act.OpenType !== 'popview')) return - - uuids.push(act.uuid) - }) - - if (['card', 'carousel', 'timeline'].includes(item.type) || (item.type === 'table' && item.subtype === 'tablecard')) { - item.subcards.forEach(_card => { - _card.elements && _card.elements.forEach(cell => { - if (cell.eleType !== 'button') return - if (appType === 'pc' && cell.OpenType !== 'popview') return - - uuids.push(cell.uuid) - }) - _card.backElements && _card.backElements.forEach(cell => { - if (cell.eleType !== 'button') return - if (appType === 'pc' && cell.OpenType !== 'popview') return - - uuids.push(cell.uuid) - }) - }) - } else if (item.type === 'table' && (item.subtype === 'normaltable' || item.subtype === 'editable')) { - item.cols && item.cols.forEach(col => { - if (col.type !== 'action') return - col.elements && col.elements.forEach(cell => { - if (appType === 'pc' && cell.OpenType !== 'popview') return - - uuids.push(cell.uuid) - }) - }) - } else if (item.type === 'balcony') { - item.elements && item.elements.forEach(cell => { - if (appType === 'pc' && cell.OpenType !== 'popview') return - - uuids.push(cell.uuid) - }) - } - } - } - - getUuids(card) - - return uuids - } - - /** * @description 鐢熸垚32浣島uid string + 鏃堕棿 * @return {String} uuid */ @@ -433,6 +400,10 @@ return item } + if (item.subtype === 'tablecard') { // 鍏煎 + item.type = 'card' + } + uuids[item.uuid] = this.getuuid() item.uuid = uuids[item.uuid] @@ -454,7 +425,7 @@ } return cell }) - } else if (['card', 'carousel', 'timeline'].includes(item.type) || (item.type === 'table' && item.subtype === 'tablecard')) { + } else if (['card', 'carousel', 'timeline'].includes(item.type)) { if (item.wrap.datatype === 'public' && uuids[item.wrap.publicId]) { item.wrap.publicId = uuids[item.wrap.publicId] } @@ -514,7 +485,7 @@ return cell }) } - } else if (item.type === 'table' && (item.subtype === 'normaltable' || item.subtype === 'editable') && item.cols) { + } else if (item.type === 'table' && item.cols) { let loopCol = (col) => { col.subcols = col.subcols.map(c => { c.uuid = this.getuuid() @@ -652,6 +623,9 @@ if (em) { item.setting.supModule = '' } + if (item.wrap && item.wrap.supModule) { + item.wrap.supModule = item.setting.supModule + } } if (item.wrap && item.wrap.doubleClick) { @@ -678,9 +652,13 @@ * @description 閲嶇疆缁勪欢閰嶇疆 * @return {String} item 缁勪欢淇℃伅 */ - static resetComponentConfig = (item, copyBtns, uuids = {}) => { + static resetComponentConfig = (item, uuids = {}) => { if (item.type === 'navbar') { return item + } + + if (item.subtype === 'tablecard') { // 鍏煎 + item.type = 'card' } let _uuid = this.getuuid() @@ -707,7 +685,7 @@ cell.uuid = this.getuuid() return cell }) - } else if (['card', 'carousel', 'timeline'].includes(item.type) || (item.type === 'table' && item.subtype === 'tablecard')) { + } else if (['card', 'carousel', 'timeline'].includes(item.type)) { item.subcards.forEach(card => { card.uuid = this.getuuid() if (card.elements) { @@ -715,14 +693,7 @@ card.elements = card.elements.filter(b => b.OpenType !== 'popview' && b.OpenType !== 'funcbutton') } card.elements = card.elements.map(cell => { - let _uuid = this.getuuid() - if (cell.OpenType === 'popview' && copyBtns) { - let _cell = JSON.parse(JSON.stringify(cell)) - _cell.$originUuid = _cell.uuid - _cell.uuid = _uuid - copyBtns.set(_uuid, _cell) - } - cell.uuid = _uuid + cell.uuid = this.getuuid() return cell }) } @@ -731,14 +702,7 @@ card.elements = card.elements.filter(b => b.OpenType !== 'popview' && b.OpenType !== 'funcbutton') } card.backElements = card.backElements.map(cell => { - let _uuid = this.getuuid() - if (cell.OpenType === 'popview' && copyBtns) { - let _cell = JSON.parse(JSON.stringify(cell)) - _cell.$originUuid = _cell.uuid - _cell.uuid = _uuid - copyBtns.set(_uuid, _cell) - } - cell.uuid = _uuid + cell.uuid = this.getuuid() return cell }) } @@ -749,18 +713,11 @@ item.elements = item.elements.filter(b => b.OpenType !== 'popview' && b.OpenType !== 'funcbutton') } item.elements = item.elements.map(cell => { - let _uuid = this.getuuid() - if (cell.OpenType === 'popview' && copyBtns) { - let _cell = JSON.parse(JSON.stringify(cell)) - _cell.$originUuid = _cell.uuid - _cell.uuid = _uuid - copyBtns.set(_uuid, _cell) - } - cell.uuid = _uuid + cell.uuid = this.getuuid() return cell }) } - } else if (item.type === 'table' && (item.subtype === 'normaltable' || item.subtype === 'editable') && item.cols) { + } else if (item.type === 'table' && item.cols) { let loopCol = (col) => { col.subcols = col.subcols.map(c => { c.uuid = this.getuuid() @@ -798,14 +755,7 @@ col.elements = col.elements.filter(c => c.OpenType !== 'popview' && c.OpenType !== 'funcbutton') } col.elements = col.elements.map(cell => { - let _uuid = this.getuuid() - if (cell.OpenType === 'popview' && copyBtns) { - let _cell = JSON.parse(JSON.stringify(cell)) - _cell.$originUuid = _cell.uuid - _cell.uuid = _uuid - copyBtns.set(_uuid, _cell) - } - cell.uuid = _uuid + cell.uuid = this.getuuid() return cell }) } @@ -833,9 +783,7 @@ }) } - if (item.btnlog) { - item.btnlog = null - } + delete item.btnlog let oriUids = {} if (item.action) { @@ -846,13 +794,6 @@ let _uuid = this.getuuid() oriUids[cell.uuid] = _uuid - - if (cell.OpenType === 'popview' && copyBtns) { - let _cell = JSON.parse(JSON.stringify(cell)) - _cell.$originUuid = _cell.uuid - _cell.uuid = _uuid - copyBtns.set(_uuid, _cell) - } cell.uuid = _uuid @@ -892,16 +833,10 @@ } if (item.setting && item.setting.supModule && item.setting.supModule[0] !== 'empty') { - let em = false - item.setting.supModule = item.setting.supModule.map(c => { - if (!uuids[c]) { - em = true - } - return uuids[c] || '' - }) - if (em) { - item.setting.supModule = '' - } + item.setting.supModule = '' + } + if (item.wrap && item.wrap.supModule) { + item.wrap.supModule = '' } if (item.wrap && item.wrap.doubleClick) { @@ -937,15 +872,34 @@ } /** + * @description 鑾峰彇鍥捐〃楂樺害 + */ +export function getHeight (val) { + if (typeof(val) === 'string') { + if (val.indexOf('px') > -1) { + val = parseFloat(val) + } else if (val.indexOf('vw') > -1) { + val = parseFloat(val) + val = document.body.clientWidth * val / 100 + } else if (val.indexOf('vh') > -1) { + val = parseFloat(val) + val = document.body.clientHeight * val / 100 + } + } + + return parseInt(val || 400) - 30 +} + +/** * @description 鑾峰彇琛ㄥ悕 */ -export function getTables (config) { +export function getTables (config, pops) { 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 && (!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) @@ -956,7 +910,7 @@ let tbs = script.sql.match(cutreg) tbs && cuts.push(...tbs) }) - } else { + } else if (config.setting.tableName) { let tb = config.setting.tableName.replace(/@db@|\s+/ig, '') if (/[a-z_]+/ig.test(tb)) { tables.push(tb) @@ -964,48 +918,95 @@ } } + config.search && config.search.forEach(cell => { + if (cell.resourceType === '1' && cell.dataSource) { + let tbs = cell.dataSource.match(cutreg) + tbs && cuts.push(...tbs) + } + }) + let action = [] if (config.type === 'form') { config.subcards.forEach(item => { action.push(item.subButton) + item.fields && item.fields.forEach(cell => { + if (cell.resourceType === '1' && cell.dataSource) { + let tbs = cell.dataSource.match(cutreg) + tbs && cuts.push(...tbs) + } + }) }) } 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)) { + if (cell.eleType !== 'button') return + if (['form', 'pop', 'prompt', 'exec', 'excelIn', 'excelOut'].includes(cell.OpenType)) { action.push(cell) + } else if (cell.OpenType === 'popview') { + if (pops) { + pops.push({...cell, parentId: config.uuid}) + } else if (cell.config && cell.config.$tables) { + tables.push(...cell.config.$tables) + } } }) if (item.backElements && item.setting.type === 'multi') { item.backElements.forEach(cell => { - if (cell.eleType === 'button' && ['form', 'pop', 'prompt', 'exec', 'excelIn', 'excelOut'].includes(cell.OpenType)) { + if (cell.eleType !== 'button') return + if (['form', 'pop', 'prompt', 'exec', 'excelIn', 'excelOut'].includes(cell.OpenType)) { action.push(cell) + } else if (cell.OpenType === 'popview') { + if (pops) { + pops.push({...cell, parentId: config.uuid}) + } else if (cell.config && cell.config.$tables) { + tables.push(...cell.config.$tables) + } } }) } }) } + 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) + } else if (cell.OpenType === 'popview') { + if (pops) { + pops.push({...cell, parentId: config.uuid}) + } else if (cell.config && cell.config.$tables) { + tables.push(...cell.config.$tables) + } } }) } }) config.elements && config.elements.forEach(cell => { - if (cell.eleType === 'button' && ['form', 'pop', 'prompt', 'exec', 'excelIn', 'excelOut'].includes(cell.OpenType)) { + if (cell.eleType !== 'button') return + if (['form', 'pop', 'prompt', 'exec', 'excelIn', 'excelOut'].includes(cell.OpenType)) { action.push(cell) + } else if (cell.OpenType === 'popview') { + if (pops) { + pops.push({...cell, parentId: config.uuid}) + } else if (cell.config && cell.config.$tables) { + tables.push(...cell.config.$tables) + } } }) config.action && config.action.forEach(cell => { if (['pop', 'prompt', 'exec', 'excelIn', 'excelOut'].includes(cell.OpenType)) { action.push(cell) + } else if (cell.OpenType === 'popview') { + if (pops) { + pops.push({...cell, parentId: config.uuid}) + } else if (cell.config && cell.config.$tables) { + tables.push(...cell.config.$tables) + } } }) @@ -1043,6 +1044,14 @@ tbs && cuts.push(...tbs) } } else { + if (btn.OpenType === 'pop' && btn.modal && btn.modal.fields) { + btn.modal.fields.forEach(cell => { + if (cell.resourceType === '1' && cell.dataSource) { + let tbs = cell.dataSource.match(cutreg) + tbs && cuts.push(...tbs) + } + }) + } if (btn.intertype === 'inner') return if (btn.intertype === 'outer' || btn.intertype === 'custom') { if (btn.procMode === 'system' && btn.verify) { -- Gitblit v1.8.0