From 49fabbaab6ad5ab8ab6d8da3954384e0281f6134 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 05 六月 2024 23:49:17 +0800 Subject: [PATCH] 2024-06-05 --- src/utils/utils-custom.js | 383 +++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 277 insertions(+), 106 deletions(-) diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js index 44a9750..6d66833 100644 --- a/src/utils/utils-custom.js +++ b/src/utils/utils-custom.js @@ -6,7 +6,7 @@ * @description 鑾峰彇涓嬬骇妯″潡 * @return {String} selfId 褰撳墠缁勪欢id */ - static getSubModules (components, selfId, supId, has) { + static getSubModules (components, selfId, supId, interfaces) { let modules = [] components.forEach(item => { if (item.uuid === selfId || item.type === 'navbar') { @@ -49,7 +49,7 @@ type: 'tab', value: f_tab.uuid, label: f_tab.label, - children: this.getSubModules(f_tab.components, selfId, supId, has) + children: this.getSubModules(f_tab.components, selfId, supId) } if (subItem.children.length === 0) { @@ -94,6 +94,15 @@ } } }) + + if (interfaces && interfaces.length > 0) { + interfaces.forEach(item => { + modules.push({ + value: item.uuid, + label: item.name + }) + }) + } return modules } @@ -181,6 +190,42 @@ return null } return modules + } + + /** + * @description 鑾峰彇鎸囧畾缁勪欢 + * @return {String} 缁勪欢id + */ + static getComponent (Id) { + let interfaces = window.GLOB.customMenu.interfaces + let components = window.GLOB.customMenu.components + let cell = null + + let mapComponents = (components = []) => { + components.forEach(item => { + if (item.uuid === Id) { + cell = item + }else if (item.type === 'tabs') { + item.subtabs.forEach(f_tab => { + mapComponents(f_tab.components) + }) + } else if (item.type === 'group') { + mapComponents(item.components) + } + }) + } + + mapComponents(components) + + if (!cell && interfaces) { + interfaces.forEach(m => { + if (m.uuid === Id && m.status === 'true') { + cell = m + } + }) + } + + return cell } /** @@ -316,80 +361,6 @@ check(modules) return has - } - - /** - * @description 鑾峰彇鍙叧鑱旀ā鍧� - */ - static getLinkModules (components) { - let modules = components.map(item => { - if ((item.type === 'card' && item.subtype === 'datacard') || (item.type === 'table' && item.subtype === 'normaltable')) { - return { - value: item.uuid, - label: item.name - } - } else if (item.type === 'tabs') { - let _item = { - value: item.uuid, - label: item.name, - children: item.subtabs.map(f_tab => { - let subItem = { - value: f_tab.uuid, - label: f_tab.label, - children: this.getLinkModules(f_tab.components) - } - - if (!subItem.children || subItem.children.length === 0) { - return {children: null} - } - return subItem - }) - } - - _item.children = _item.children.filter(t => t.children !== null) - - if (_item.children.length === 0) { - return {children: null} - } - - return _item - } else if (item.type === 'group') { - let _item = { - value: item.uuid, - label: item.name, - children: item.components.map(f_tab => { - if ((f_tab.type === 'card' && f_tab.subtype === 'datacard') || (f_tab.type === 'table' && f_tab.subtype === 'normaltable')) { - return { - value: f_tab.uuid, - label: f_tab.name - } - } - return { - children: null - } - }) - } - - _item.children = _item.children.filter(t => t.children !== null) - - if (_item.children.length === 0) { - return {children: null} - } - - return _item - } else { - return { - children: null - } - } - }) - - modules = modules.filter(mod => mod.children !== null) - - if (modules.length === 0) { - return null - } - return modules } /** @@ -531,7 +502,16 @@ return cell }) } - } else if (item.type === 'table' && item.cols) { + } else if (item.type === 'table') { + if (item.supNodes && item.supNodes.length > 0) { + item.supNodes = item.supNodes.map(cell => { + cell.nodes = cell.nodes.map(n => md5(commonId + n)) + cell.componentId = cell.nodes[cell.nodes.length - 1] + + return cell + }) + } + let loopCol = (cols) => { return cols.map(col => { if (col.type === 'action') { @@ -569,7 +549,7 @@ }) } - item.cols = loopCol(item.cols) + item.cols = loopCol(item.cols || []) if (item.colsCtrls) { item.colsCtrls = item.colsCtrls.map(col => { @@ -719,7 +699,7 @@ * @description 閲嶇疆缁勪欢閰嶇疆 * @return {String} item 缁勪欢淇℃伅 */ - static resetComponentConfig = (item, appType) => { + static resetComponentConfig = (item, appType, commonId) => { if (item.type === 'navbar') { return item } @@ -727,9 +707,6 @@ if (item.subtype === 'tablecard') { // 鍏煎 item.type = 'card' } - - item.uuid = this.getuuid() - let commonId = this.getuuid() // 閲嶇疆缁勪欢鍚嶇О let sign = this.getSignName() @@ -840,7 +817,7 @@ return cell }) } - } else if (item.type === 'table' && item.cols) { + } else if (item.type === 'table') { let loopCol = (cols) => { return cols.map(col => { if (col.type === 'action') { @@ -881,7 +858,7 @@ }) } - item.cols = loopCol(item.cols) + item.cols = loopCol(item.cols || []) if (item.colsCtrls) { item.colsCtrls = item.colsCtrls.map(col => { @@ -954,26 +931,134 @@ }) } - if (item.setting && item.setting.supModule && item.setting.supModule[0] !== 'empty') { - item.setting.supModule = '' - } - - if (item.wrap && item.wrap.supType === 'multi') { - item.wrap.supType = 'single' - - delete item.supNodes - } - - if (item.wrap && item.wrap.supModule) { - item.wrap.supModule = '' - } - if (item.wrap && item.wrap.doubleClick) { item.wrap.doubleClick = md5(commonId + item.wrap.doubleClick) } return item } +} + +/** + * @description 鑾峰彇鍙叧鑱旀ā鍧� + */ +export function getLinkModules (components) { + let modules = components.map(item => { + if ((item.type === 'card' && item.subtype === 'datacard') || (item.type === 'table' && item.subtype === 'normaltable')) { + return { + value: item.uuid, + label: item.name + } + } else if (item.type === 'tabs') { + let _item = { + value: item.uuid, + label: item.name, + children: item.subtabs.map(f_tab => { + let subItem = { + value: f_tab.uuid, + label: f_tab.label, + children: getLinkModules(f_tab.components) + } + + if (!subItem.children || subItem.children.length === 0) { + return {children: null} + } + return subItem + }) + } + + _item.children = _item.children.filter(t => t.children !== null) + + if (_item.children.length === 0) { + return {children: null} + } + + return _item + } else if (item.type === 'group') { + let _item = { + value: item.uuid, + label: item.name, + children: item.components.map(f_tab => { + if ((f_tab.type === 'card' && f_tab.subtype === 'datacard') || (f_tab.type === 'table' && f_tab.subtype === 'normaltable')) { + return { + value: f_tab.uuid, + label: f_tab.name + } + } + return { + children: null + } + }) + } + + _item.children = _item.children.filter(t => t.children !== null) + + if (_item.children.length === 0) { + return {children: null} + } + + return _item + } else { + return { + children: null + } + } + }) + + modules = modules.filter(mod => mod.children !== null) + + if (modules.length === 0) { + return null + } + return modules +} + +/** + * @description 鑾峰彇鍏叡鏁版嵁婧� + */ +export function getInterfaces () { + let menu = window.GLOB.customMenu + + let interfaces = [] + if (menu.interfaces) { + menu.interfaces.forEach(item => { + if (item.status === 'true') { + interfaces.push({ + value: item.uuid, + label: item.name, + columns: JSON.parse(JSON.stringify(item.columns)) + }) + } + }) + } + + let mapComponents = (components = []) => { + components.forEach(item => { + if (item.type === 'card' && item.subtype === 'datacard') { + interfaces.push({ + value: item.uuid, + label: item.name + '锛堟暟鎹崱锛�', + columns: JSON.parse(JSON.stringify(item.columns)) + }) + } else if (item.type === 'table' && item.subtype === 'normaltable') { + interfaces.push({ + value: item.uuid, + label: item.name + '锛堝父鐢ㄨ〃锛�', + columns: JSON.parse(JSON.stringify(item.columns)) + }) + } else if (item.type === 'tabs') { + item.subtabs.forEach(f_tab => { + mapComponents(f_tab.components) + }) + } else if (item.type === 'group') { + mapComponents(item.components) + } + }) + } + + mapComponents(menu.components) + + return interfaces } /** @@ -1001,7 +1086,7 @@ forbid: item.query === 'false' }) } else { - let value = item.initval + let value = '0' let type = item.type if (item.type === 'date') { @@ -1017,13 +1102,11 @@ } else if (item.type === 'daterange') { value = '1949-10-01 00:00:00.000,1949-10-02 00:00:00.000' } else if (item.type === 'range') { - value = `${item.minValue},${item.maxValue}` + value = item.initval || `${item.minValue || '-999999999'},${item.maxValue || '999999999'}` } else if (item.type === 'multiselect' || (item.type === 'checkcard' && item.multiple === 'true')) { type = 'multi' - value = '0' - } else { - value = '0' } + newsearches.push({ key: item.field, match: item.match, @@ -1063,9 +1146,12 @@ searchText.push(`('${item.value}' ${item.match} '%'+${item.key}+'%')`) } else if (item.type === 'date') { searchText.push('(' + item.key + ' ' + item.match + ' \'' + item.value + '\')') - } else if (item.type === 'dateweek' || item.type === 'range') { + } else if (item.type === 'dateweek') { let val = item.value.split(',') searchText.push('(' + item.key + ' >= \'' + val[0] + '\' AND ' + item.key + ' < \'' + val[1] + '\')') + } else if (item.type === 'range') { + let val = item.value.split(',') + searchText.push('(' + item.key + ' >= ' + (val[0] || -999999999) + ' AND ' + item.key + ' <= ' + (val[1] || 999999999) + ')') } else if (item.type === 'datemonth') { if (item.match === '=') { searchText.push('(' + item.key + ' = \'' + item.value + '\')') @@ -1116,7 +1202,7 @@ }) } - } else if (['dateweek', 'range'].includes(item.type)) { + } else if (item.type === 'dateweek') { let val = item.value.split(',') options.push({ reg: new RegExp('@' + item.key + '@', 'ig'), @@ -1124,6 +1210,15 @@ }, { reg: new RegExp('@' + item.key + '1@', 'ig'), value: `'${val[1]}'` + }) + } else if (item.type === 'range') { + let val = item.value.split(',') + options.push({ + reg: new RegExp('@' + item.key + '@', 'ig'), + value: `${val[0] || -999999999}` + }, { + reg: new RegExp('@' + item.key + '1@', 'ig'), + value: `${val[1] || 999999999}` }) } else if (item.type === 'datemonth') { if (item.match === '=') { @@ -1174,6 +1269,57 @@ }) return options +} + +/** + * @description 鑾峰彇鎼滅储瀛楁 + */ +export function getSearchFields (searches) { + if (!searches) return '' + + let _usefulFields = [] + searches.forEach(item => { + let key = item.key || item.field + + if (!key) return + + if (item.type === 'group') { + _usefulFields.push(key) + if (item.datefield) { + _usefulFields.push(item.datefield) + _usefulFields.push(item.datefield + '1') + } + } else if (item.type === 'dateweek') { + _usefulFields.push(key) + _usefulFields.push(key + '1') + } else if (item.type === 'datemonth') { + if (item.match === '=') { + _usefulFields.push(key) + } else { + _usefulFields.push(key) + _usefulFields.push(key + '1') + } + } else if (item.type === 'range') { + _usefulFields.push(key) + _usefulFields.push(key + '1') + } else if (item.type === 'daterange') { + let _skey = key + let _ekey = key + '1' + + if (/,/.test(key)) { + _skey = key.split(',')[0] + _ekey = key.split(',')[1] + } + _usefulFields.push(_skey) + _usefulFields.push(_ekey) + } else if (item.type === 'date' && _usefulFields.includes(key)) { + _usefulFields.push(key + '1') + } else { + _usefulFields.push(key) + } + }) + + return _usefulFields.join(', ') } /** @@ -1596,6 +1742,16 @@ if (card.$c_ds) { columns = card.columns.map(c => c.field) + + if (card.setting.primaryKey && !columns.includes(card.setting.primaryKey)) { + let key = card.setting.primaryKey.toLowerCase() + columns.forEach(f => { + if (f.toLowerCase() === key) { + card.setting.primaryKey = f + } + }) + } + if (card.setting.interType === 'system' && card.setting.execute !== 'false' && !card.setting.dataresource) { errors.push({ level: 0, detail: '鏈缃暟鎹簮锛�'}) } else if (card.setting.interType === 'system' && card.setting.execute === 'false' && card.scripts.filter(script => script.status !== 'false').length === 0) { @@ -1612,7 +1768,7 @@ } else if (!card.setting.supModule) { errors.push({ level: 0, detail: '鏈缃笂绾х粍浠讹紒'}) } - } else if (card.type === 'card' && card.subtype === 'datacard') { // 鏁版嵁鍗★紝鍙兘鏈夊涓婄骇 + } else if ((card.type === 'card' && card.subtype === 'datacard') || card.subtype === 'normaltable') { // 鏁版嵁鍗°�乼able锛屽彲鑳芥湁澶氫笂绾� if (card.wrap.supType !== 'multi' && !card.setting.supModule) { errors.push({ level: 0, detail: '鏈缃笂绾х粍浠讹紒'}) } @@ -1654,6 +1810,14 @@ if (cols.length) { errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅腑瀵煎嚭鍒楋紙${cols.join('銆�')}锛夊湪瀛楁闆嗕腑涓嶅瓨鍦紒`}) } + } + } + + if (['pop', 'prompt', 'exec'].includes(cell.OpenType) && cell.verify && !cell.output) { + if (cell.verify.noteEnable === 'true') { + errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濇湭璁剧疆杩斿洖鍊肩煭淇″彂閫佹棤鏁堬紒`}) + } else if (cell.verify.emailEnable === 'true') { + errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濇湭璁剧疆杩斿洖鍊奸偖浠跺彂閫佹棤鏁堬紒`}) } } } @@ -1840,6 +2004,13 @@ duration: 5 }) return false + } else if (/\send\s+begin\s/ig.test(sql)) { + notification.warning({ + top: 92, + message: `end 鍚庝笉鍙揣璺� begin銆俙, + duration: 5 + }) + return false } else if (type === 'customscript' && /\son\s+[a-z0-9_]+\.[a-z0-9_]+\s*=\s*[a-z0-9_]+\.[a-z0-9_]+/ig.test(sql)) { let list = sql.match(/\son\s+[a-z0-9_]+\.[a-z0-9_]+\s*=\s*[a-z0-9_]+\.[a-z0-9_]+/ig) let errors = [] -- Gitblit v1.8.0