From 9a1416e0b5cdb40f49b3c2061b04b35551d77e99 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 19 九月 2023 18:14:21 +0800 Subject: [PATCH] 2023-09-19 --- src/utils/utils-custom.js | 736 +++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 621 insertions(+), 115 deletions(-) diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js index 3d8f378..9ad1446 100644 --- a/src/utils/utils-custom.js +++ b/src/utils/utils-custom.js @@ -19,6 +19,8 @@ } else if (item.type === 'tabs') { if (item.subtype === 'tabletabs') { item.subtabs.forEach(tab => { + if (tab.components[0].uuid === selfId) return + modules.push({ value: tab.components[0].uuid, label: tab.label, @@ -268,6 +270,7 @@ if (interfaces && interfaces.length > 0) { interfaces.forEach(item => { + if (item.uuid === selfId) return modules.push({ value: item.uuid, label: item.name @@ -429,6 +432,9 @@ if (item.wrap.datatype === 'public' && item.wrap.publicId) { item.wrap.publicId = md5(commonId + item.wrap.publicId) } + if (item.wrap.autoExec) { + item.wrap.autoExec = md5(commonId + item.wrap.autoExec) + } if (item.supNodes && item.supNodes.length > 0) { item.supNodes = item.supNodes.map(cell => { @@ -514,73 +520,44 @@ }) } } else if (item.type === 'table' && item.cols) { - let loopCol = (col) => { - col.subcols = col.subcols.map(c => { - c.uuid = md5(commonId + c.uuid) - - if (c.type === 'colspan' && c.subcols) { - c = loopCol(c) - } else if (c.type === 'custom' && c.elements) { - c.elements = c.elements.map(cell => { - cell.uuid = this.getuuid() + let loopCol = (cols) => { + return cols.map(col => { + if (col.type === 'action') { + col.type = 'custom' + } - return cell - }) - } else if (c.type === 'action' && c.elements) { - c.elements = c.elements.map(cell => { + col.uuid = md5(commonId + col.uuid) + + if (col.type === 'colspan' && col.subcols) { + col.subcols = loopCol(col.subcols) + } else if (col.type === 'custom' && col.elements) { + col.elements = col.elements.map(cell => { cell.uuid = md5(commonId + cell.uuid) - if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) { - cell.pageTemplate = '' - cell.linkmenu = '' - } + if (cell.eleType === 'button') { + if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) { + cell.pageTemplate = '' + cell.linkmenu = '' + } - this.resetBtn(cell, commonId) + this.resetBtn(cell, commonId) + } return cell }) + } else if (col.editable === 'true' && col.enter && col.enter !== '$next' && col.enter !== '$sub') { + if (/\$next_/.test(col.enter)) { + col.enter = '$next_' + md5(commonId + col.enter.split('_')[1]) + } else { + col.enter = md5(commonId + col.enter) + } } - return c - }) - - return col - } - item.cols = item.cols.map(col => { - col.uuid = md5(commonId + col.uuid) - - if (col.type === 'colspan' && col.subcols) { - col = loopCol(col) - } else if (col.type === 'custom' && col.elements) { - col.elements = col.elements.map(cell => { - cell.uuid = this.getuuid() - return cell - }) - } else if (col.type === 'action' && col.elements) { - col.elements = col.elements.map(cell => { - cell.uuid = md5(commonId + cell.uuid) - this.resetBtn(cell, commonId) - return cell - }) - } - return col - }) - - if (item.subtype === 'editable') { - item.cols = item.cols.map(col => { - if (col.editable === 'true' && col.enter) { - col.enter = md5(commonId + col.enter) - } else if (col.type === 'colspan' && col.subcols) { - col.subcols = col.subcols.map(c => { - if (c.editable === 'true' && c.enter) { - c.enter = md5(commonId + c.enter) - } - return c - }) - } return col }) } + + item.cols = loopCol(item.cols) } else if (item.type === 'form') { item.subcards = item.subcards.map(cell => { cell.uuid = this.getuuid() @@ -671,13 +648,26 @@ * @description 鎸夐挳閲嶇疆 */ static resetBtn (btn, commonId) { + if (btn.OpenType === 'pop' || (btn.OpenType === 'funcbutton' && btn.execMode === 'pop')) { + if (btn.modal && btn.modal.fields.length > 0) { + btn.modal.fields = btn.modal.fields.map(m => { + m.uuid = this.getuuid() + return m + }) + } + } if (btn.switchTab && btn.switchTab.length > 0) { btn.switchTab = btn.switchTab.map(m => md5(commonId + m)) } if (btn.anchors && btn.anchors.length > 0) { btn.anchors = btn.anchors.map(m => md5(commonId + m)) } - if (btn.syncComponent && btn.syncComponent.length > 0) { + if (btn.syncComponent && btn.syncComponent[0] === 'multiComponent' && btn.syncComponents) { + btn.syncComponents = btn.syncComponents.map(m => { + m.syncComId = m.syncComId.map(n => md5(commonId + n)) + return m + }) + } else if (btn.syncComponent && btn.syncComponent.length > 0) { btn.syncComponent = btn.syncComponent.map(m => md5(commonId + m)) } } @@ -698,7 +688,7 @@ * @description 閲嶇疆缁勪欢閰嶇疆 * @return {String} item 缁勪欢淇℃伅 */ - static resetComponentConfig = (item) => { + static resetComponentConfig = (item, appType) => { if (item.type === 'navbar') { return item } @@ -713,13 +703,13 @@ // 閲嶇疆缁勪欢鍚嶇О let sign = this.getSignName() if (item.plot) { // 鍥捐〃 - item.plot.name = item.plot.name + sign + item.plot.name = (item.plot.name || '') + sign item.name = item.plot.name } else if (item.wrap) { // 閫氱敤 - item.wrap.name = item.wrap.name + sign + item.wrap.name = (item.wrap.name || '') + sign item.name = item.wrap.name } else if (item.setting) { // 鍒嗙粍銆佹爣绛鹃〉绛� - item.setting.name = item.setting.name + sign + item.setting.name = (item.setting.name || '') + sign item.name = item.setting.name } @@ -729,6 +719,20 @@ return cell }) } else if (['card', 'carousel', 'timeline'].includes(item.type)) { + if (item.wrap.autoExec) { + item.wrap.autoExec = md5(commonId + item.wrap.autoExec) + } + + if (appType !== 'mob') { + if (item.wrap.pagestyle === 'slide') { + item.wrap.pagestyle = 'page' + } + } else { + if (item.wrap.pagestyle === 'switch') { + item.wrap.pagestyle = 'page' + } + } + item.subcards.forEach(card => { card.uuid = this.getuuid() @@ -743,6 +747,15 @@ card.elements = card.elements.map(cell => { if (cell.eleType === 'button') { cell.uuid = md5(commonId + cell.uuid) + + if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) { + if (cell.modal && cell.modal.fields.length > 0) { + cell.modal.fields = cell.modal.fields.map(m => { + m.uuid = this.getuuid() + return m + }) + } + } } else { cell.uuid = this.getuuid() } @@ -756,6 +769,14 @@ card.backElements = card.backElements.map(cell => { if (cell.eleType === 'button') { cell.uuid = md5(commonId + cell.uuid) + if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) { + if (cell.modal && cell.modal.fields.length > 0) { + cell.modal.fields = cell.modal.fields.map(m => { + m.uuid = this.getuuid() + return m + }) + } + } } else { cell.uuid = this.getuuid() } @@ -774,6 +795,14 @@ item.elements = item.elements.map(cell => { if (cell.eleType === 'button') { cell.uuid = md5(commonId + cell.uuid) + if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) { + if (cell.modal && cell.modal.fields.length > 0) { + cell.modal.fields = cell.modal.fields.map(m => { + m.uuid = this.getuuid() + return m + }) + } + } } else { cell.uuid = this.getuuid() } @@ -781,55 +810,47 @@ }) } } else if (item.type === 'table' && item.cols) { - let loopCol = (col) => { - col.subcols = col.subcols.map(c => { - c.uuid = this.getuuid() + let loopCol = (cols) => { + return cols.map(col => { + if (col.type === 'action') { + col.type = 'custom' + } - if (c.type === 'colspan' && c.subcols) { - c = loopCol(c) - } else if (c.type === 'custom' && c.elements) { - c.elements = c.elements.map(cell => { - cell.uuid = this.getuuid() + col.uuid = md5(commonId + col.uuid) + + if (col.type === 'colspan' && col.subcols) { + col.subcols = loopCol(col.subcols) + } else if (col.type === 'custom' && col.elements) { + if (sessionStorage.getItem('editMenuType') === 'popview') { + col.elements = col.elements.filter(c => c.eleType !== 'button' || (c.OpenType !== 'popview' && c.OpenType !== 'funcbutton')) + } + col.elements = col.elements.map(cell => { + cell.uuid = md5(commonId + cell.uuid) + if (cell.eleType === 'button') { + if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) { + if (cell.modal && cell.modal.fields.length > 0) { + cell.modal.fields = cell.modal.fields.map(m => { + m.uuid = this.getuuid() + return m + }) + } + } + } return cell }) + } else if (col.editable === 'true' && col.enter && col.enter !== '$next' && col.enter !== '$sub') { // 鍙紪杈戣〃 + if (/\$next_/.test(col.enter)) { + col.enter = '$next_' + md5(commonId + col.enter.split('_')[1]) + } else { + col.enter = md5(commonId + col.enter) + } } - return c - }) - return col - } - - item.cols = item.cols.map(col => { - col.uuid = md5(commonId + col.uuid) - - if (col.type === 'colspan' && col.subcols) { - col = loopCol(col) - } else if (col.type === 'custom' && col.elements) { - col.elements = col.elements.map(cell => { - cell.uuid = this.getuuid() - return cell - }) - } else if (col.type === 'action' && col.elements) { - if (sessionStorage.getItem('editMenuType') === 'popview') { - col.elements = col.elements.filter(c => c.OpenType !== 'popview' && c.OpenType !== 'funcbutton') - } - col.elements = col.elements.map(cell => { - cell.uuid = md5(commonId + cell.uuid) - - return cell - }) - } - return col - }) - - if (item.subtype === 'editable') { - item.cols = item.cols.map(col => { - if (col.editable === 'true' && col.enter) { - col.enter = md5(commonId + col.enter) - } return col }) } + + item.cols = loopCol(item.cols) } else if (item.type === 'form') { item.subcards = item.subcards.map(cell => { cell.uuid = this.getuuid() @@ -851,6 +872,14 @@ } item.action = item.action.map(cell => { cell.uuid = md5(commonId + cell.uuid) + if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) { + if (cell.modal && cell.modal.fields.length > 0) { + cell.modal.fields = cell.modal.fields.map(m => { + m.uuid = this.getuuid() + return m + }) + } + } return cell }) @@ -900,6 +929,178 @@ return item } +} + +/** + * @description 鏍煎紡鍖栨悳绱㈡潯浠� + */ +export function formatSearch (searches) { + if (!searches) return [] + + let newsearches = [] + searches.forEach(item => { + if (!item.field) return + + if (item.type === 'group') { + newsearches.push({ + key: item.field, + match: '', + type: item.type, + value: 'customized', + forbid: true + }, { + key: item.datefield, + match: 'between', + type: 'daterange', + value: '1949-10-01 00:00:00.000,1949-10-02 00:00:00.000', + forbid: item.query === 'false' + }) + } else { + let value = item.initval + let type = item.type + + if (item.type === 'date') { + value = '1949-10-01 00:00:00.000' + } else if (item.type === 'datemonth') { + value = '1949-10-01 00:00:00.000,1949-10-02 00:00:00.000' + } else if (item.type === 'dateweek') { + value = '1949-10-01 00:00:00.000,1949-10-02 00:00:00.000' + } 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}` + } 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, + type: type, + value: value, + precision: item.precision || 'day', + forbid: item.query === 'false' + }) + } + }) + + return newsearches +} + +/** + * @description 鎷兼帴where鏉′欢 + */ +export function joinMainSearchkey (searches) { + if (!searches || searches.length === 0) return '' + + let searchText = [] + searches.forEach(item => { + if (item.forbid) return + + if (item.type === 'text' || item.type === 'select') { // 缁煎悎鎼滅储锛屾枃鏈垨涓嬫媺锛屾墍鏈夊瓧娈垫嫾鎺� + let str = item.match === 'like' || item.match === 'not like' ? '%' : '' + let fields = item.key.split(',').map(field => { + return field + ' ' + item.match + ' \'' + str + item.value + str + '\'' + }) + + searchText.push('(' + fields.join(' OR ') + ')') + } else if (item.type === 'checkcard') { + let str = item.match === 'like' || item.match === 'not like' ? '%' : '' + + searchText.push('(' + item.key + ' ' + item.match + ' \'' + str + item.value + str + '\')') + } else if (item.type === 'multi') { + 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 === 'datemonth' || item.type === 'dateweek' || item.type === 'range') { + let val = item.value.split(',') + searchText.push('(' + item.key + ' >= \'' + val[0] + '\' AND ' + item.key + ' < \'' + val[1] + '\')') + } else if (item.type === 'daterange') { + let val = item.value.split(',') + + let _skey = item.key + let _ekey = item.key + + if (/,/.test(item.key)) { + _skey = item.key.split(',')[0] + _ekey = item.key.split(',')[1] + } + + searchText.push('(' + _skey + ' >= \'' + val[0] + '\' AND ' + _ekey + ' < \'' + val[1] + '\')') + } else { + searchText.push('(' + item.key + ' ' + item.match + ' \'' + item.value + '\')') + } + }) + + return searchText.join(' AND ') +} + +/** + * @description 鑾峰彇鎼滅储姝e垯鏇挎崲 + */ +export function getSearchRegs (searches) { + if (!searches) return [] + + let options = [] + let fieldmap = new Map() + searches.forEach(item => { + if (item.type === 'date') { + if (fieldmap.has(item.key)) { + options.push({ + reg: new RegExp('@' + item.key + '1@', 'ig'), + value: `'${item.value}'` + }) + } else { + fieldmap.set(item.key, true) + options.push({ + reg: new RegExp('@' + item.key + '@', 'ig'), + value: `'${item.value}'` + }) + } + } else if (['dateweek', 'datemonth', 'range'].includes(item.type)) { + let val = item.value.split(',') + options.push({ + reg: new RegExp('@' + item.key + '@', 'ig'), + value: `'${val[0]}'` + }, { + reg: new RegExp('@' + item.key + '1@', 'ig'), + value: `'${val[1]}'` + }) + } else if (item.type === 'daterange') { + let val = item.value.split(',') + let _skey = item.key + let _ekey = item.key + '1' + + if (/,/.test(item.key)) { + _skey = item.key.split(',')[0] + _ekey = item.key.split(',')[1] + } + + options.push({ + reg: new RegExp('@' + _skey + '@', 'ig'), + value: `'${val[0]}'` + }, { + reg: new RegExp('@' + _ekey + '@', 'ig'), + value: `'${val[1]}'` + }) + } else if (item.type === 'text' || item.type === 'select') { + item.key.split(',').forEach(field => { + options.push({ + reg: new RegExp('@' + field + '@', 'ig'), + value: `'${item.value}'` + }) + }) + } else { + options.push({ + reg: new RegExp('@' + item.key + '@', 'ig'), + value: `'${item.value}'` + }) + } + }) + + return options } /** @@ -1028,23 +1229,31 @@ }) } - 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 === 'funcbutton' && cell.funcType === 'print' && cell.verify) { - 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 (config.cols) { + let loopCol = (cols) => { + cols.forEach(col => { + if (col.type === 'colspan') { + loopCol(col.subcols) + } else if (col.type === 'custom') { + col.elements.forEach(cell => { + if (cell.eleType !== 'button') return + if (['form', 'pop', 'prompt', 'exec', 'excelIn', 'excelOut'].includes(cell.OpenType)) { + action.push(cell) + } else if (cell.OpenType === 'funcbutton' && cell.funcType === 'print' && cell.verify) { + 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) + } + } + }) } }) } - }) + loopCol(config.cols) + } config.elements && config.elements.forEach(cell => { if (cell.eleType !== 'button') return @@ -1184,4 +1393,301 @@ tables = Array.from(new Set(tables)) return tables +} + +/** + * @description 鑾峰彇鎺ュ彛鍙婂嚱鏁� + */ +export function getFuncsAndInters (config) { + let inters = 'false' + + let filterBtn = (cell) => { + if ((cell.intertype === 'outer' && cell.sysInterface !== 'true') || cell.intertype === 'custom') { + inters = 'true' + } + } + + let traversal = (components) => { + if (!components || inters === 'true') return + + components.forEach(item => { + if (item.type === 'tabs') { + item.subtabs.forEach(tab => { + traversal(tab.components) + }) + } else if (item.type === 'group') { + traversal(item.components) + } else { + if (item.setting && item.setting.interType === 'outer' && item.setting.sysInterface !== 'true') { + inters = 'true' + } + + if (item.action) { + item.action.forEach(cell => { + if (cell.OpenType === 'popview') { + if (cell.config) { + traversal(cell.config.components) + } + } else { + filterBtn(cell) + } + }) + } + + if (item.type === 'card' || item.type === 'carousel' || item.type === 'timeline') { + item.subcards.forEach(card => { + card.elements && card.elements.forEach(cell => { + if (cell.eleType !== 'button') return + + if (cell.OpenType === 'popview') { + if (cell.config) { + traversal(cell.config.components) + } + } else { + filterBtn(cell) + } + }) + card.backElements && card.backElements.forEach(cell => { + if (cell.eleType !== 'button') return + + if (cell.OpenType === 'popview') { + if (cell.config) { + traversal(cell.config.components) + } + } else { + filterBtn(cell) + } + }) + }) + } else if (item.type === 'balcony') { + item.elements && item.elements.forEach(cell => { + if (cell.eleType !== 'button') return + + if (cell.OpenType === 'popview') { + if (cell.config) { + traversal(cell.config.components) + } + } else { + filterBtn(cell) + } + }) + } else if (item.type === 'table') { + let loopCol = (cols) => { + cols.forEach(col => { + if (col.type === 'colspan') { + loopCol(col.subcols) + } else if (col.type === 'custom') { + col.elements.forEach(cell => { + if (cell.eleType !== 'button') return + + if (cell.OpenType === 'popview') { + if (cell.config) { + traversal(cell.config.components) + } + } else { + filterBtn(cell) + } + }) + } + }) + } + loopCol(item.cols) + } else if (item.type === 'form') { + item.subcards.forEach(group => { + filterBtn(group.subButton) + }) + } + } + }) + } + + if (config.interfaces) { + config.interfaces.forEach(item => { + if (item.setting && item.setting.interType === 'outer' && item.setting.sysInterface !== 'true') { + inters = 'true' + } + }) + } + + traversal(config.components) + + return inters +} + +/** + * @description 妫�娴嬬粍浠跺唴瀹� + */ +export function checkComponent (card) { + let errors = [] + let columns = [] + + if (card.$c_ds) { + columns = card.columns.map(c => c.field) + 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) { + errors.push({ level: 0, detail: '鏁版嵁婧愪腑鏃犲彲鐢ㄨ剼鏈紒'}) + } else if (!card.setting.primaryKey) { + errors.push({ level: 0, detail: '鏈缃富閿紒'}) + } else if (!columns.includes(card.setting.primaryKey)) { + errors.push({ level: 0, detail: '涓婚敭宸插け鏁堬紒'}) + } else if (card.subtype === 'dualdatacard') { // 鍙岄噸鍗� + if (!card.setting.subKey) { + errors.push({ level: 0, detail: '鏈缃瓙琛ㄤ富閿紒'}) + } else if (!card.setting.subBID) { + errors.push({ level: 0, detail: '鏈缃瓙琛˙ID锛�'}) + } else if (!card.setting.supModule) { + errors.push({ level: 0, detail: '鏈缃笂绾х粍浠讹紒'}) + } + } else if (card.type === 'card' && card.subtype === 'datacard') { // 鏁版嵁鍗★紝鍙兘鏈夊涓婄骇 + if (card.wrap.supType !== 'multi' && !card.setting.supModule) { + errors.push({ level: 0, detail: '鏈缃笂绾х粍浠讹紒'}) + } + } else if (card.type !== 'balcony' && !card.setting.supModule) { // 鎮诞妗嗕笂绾х粍浠堕渶鍗曠嫭璁剧疆 + errors.push({ level: 0, detail: '鏈缃笂绾х粍浠讹紒'}) + } + } else if ((card.type === 'balcony' || card.type === 'card') && card.wrap.datatype === 'public') { + columns = card.columns.map(c => c.field) + } + + let doubleClick = '' + if (card.type === 'table') { + doubleClick = card.wrap.doubleClick || '' + } + + if (card.$c_ac) { + card.action.forEach(cell => { + if (cell.hidden === 'true' || cell.origin) return + // if (cell.OpenType === 'popview') { + // if (!cell.config) { + // errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅腑寮圭獥鏍囩灏氭湭璁剧疆`}) + // } else if (!cell.config.enabled) { + // errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅腑寮圭獥鏍囩鏈惎鐢╜}) + // } + // } + if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) { + if (!cell.modal || cell.modal.fields.length === 0) { + errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅腑琛ㄥ崟灏氭湭娣诲姞`}) + } + } else if (cell.OpenType === 'excelIn' && (!cell.verify || !cell.verify.sheet || !cell.verify.columns || cell.verify.columns.length === 0)) { + errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅腑瀵煎叆鍒楁湭璁剧疆锛乣}) + } else if (cell.OpenType === 'excelOut' && (!cell.verify || !cell.verify.columns || cell.verify.columns.length === 0)) { + errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅腑瀵煎嚭鍒楁湭璁剧疆锛乣}) + } + if (doubleClick === cell.uuid) { + doubleClick = '' + } + }) + } + + if (card.$c_sc) { + card.subcards.forEach((item, i) => { + let linkbtn = item.setting.linkbtn || '' + item.elements.forEach(cell => { + if (cell.eleType === 'button') { + if (cell.hidden === 'true') return + if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) { + if (!cell.modal || cell.modal.fields.length === 0) { + errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅腑琛ㄥ崟灏氭湭娣诲姞`}) + } + } else if (cell.OpenType === 'excelIn' && (!cell.verify || !cell.verify.sheet || !cell.verify.columns || cell.verify.columns.length === 0)) { + errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅腑瀵煎叆鍒楁湭璁剧疆锛乣}) + } else if (cell.OpenType === 'excelOut' && (!cell.verify || !cell.verify.columns || cell.verify.columns.length === 0)) { + errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅腑瀵煎嚭鍒楁湭璁剧疆锛乣}) + } + if (linkbtn && linkbtn === cell.uuid) { + linkbtn = '' + } + } else if (cell.datatype === 'dynamic' && cell.field && !columns.includes(cell.field)) { + errors.push({ level: 1, detail: `鍗$墖涓姩鎬佸瓧娈碘��${cell.field}鈥濇棤鏁坄}) + } + }) + + if (card.subtype === 'dualdatacard' || (item.setting.type === 'multi' && item.backElements && sessionStorage.getItem('appType') !== 'mob')) { + item.backElements.forEach(cell => { + if (cell.eleType === 'button') { + if (cell.hidden === 'true') return + if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) { + if (!cell.modal || cell.modal.fields.length === 0) { + errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅腑琛ㄥ崟灏氭湭娣诲姞`}) + } + } else if (cell.OpenType === 'excelIn' && (!cell.verify || !cell.verify.sheet || !cell.verify.columns || cell.verify.columns.length === 0)) { + errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅腑瀵煎叆鍒楁湭璁剧疆锛乣}) + } else if (cell.OpenType === 'excelOut' && (!cell.verify || !cell.verify.columns || cell.verify.columns.length === 0)) { + errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅腑瀵煎嚭鍒楁湭璁剧疆锛乣}) + } + if (linkbtn && linkbtn === cell.uuid) { + linkbtn = '' + } + } else if (cell.datatype === 'dynamic' && cell.field && !columns.includes(cell.field)) { + errors.push({ level: 1, detail: `鍗$墖涓姩鎬佸瓧娈碘��${cell.field}鈥濇棤鏁坄}) + } + }) + } + + if (linkbtn) { + errors.push({ level: 1, detail: `绗�${i + 1}寮犲崱鐗囦腑缁戝畾鎸夐挳宸插垹闄}) + } + }) + + if (card.subcards.length === 0) { + errors.push({ level: 0, detail: '鍗$墖涓嶅彲涓虹┖锛�'}) + } + } + + if (card.$c_el) { + card.elements.forEach(cell => { + if (cell.eleType === 'button') { + if (cell.hidden === 'true') return + if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) { + if (!cell.modal || cell.modal.fields.length === 0) { + errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅腑琛ㄥ崟灏氭湭娣诲姞`}) + } + } else if (cell.OpenType === 'excelIn' && (!cell.verify || !cell.verify.sheet || !cell.verify.columns || cell.verify.columns.length === 0)) { + errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅腑瀵煎叆鍒楁湭璁剧疆锛乣}) + } else if (cell.OpenType === 'excelOut' && (!cell.verify || !cell.verify.columns || cell.verify.columns.length === 0)) { + errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅腑瀵煎嚭鍒楁湭璁剧疆锛乣}) + } + } else if (cell.datatype === 'dynamic' && cell.field && !columns.includes(cell.field)) { + errors.push({ level: 1, detail: `鍗$墖涓姩鎬佸瓧娈碘��${cell.field}鈥濇棤鏁坄}) + } + }) + } + + if (card.$c_cl) { + card.cols.forEach(col => { + if (col.type === 'custom') { + col.elements.forEach(cell => { + if (cell.eleType === 'button') { + if (cell.hidden === 'true') return + if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) { + if (!cell.modal || cell.modal.fields.length === 0) { + errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅腑琛ㄥ崟灏氭湭娣诲姞`}) + } + } else if (cell.OpenType === 'excelIn' && (!cell.verify || !cell.verify.sheet || !cell.verify.columns || cell.verify.columns.length === 0)) { + errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅腑瀵煎叆鍒楁湭璁剧疆锛乣}) + } else if (cell.OpenType === 'excelOut' && (!cell.verify || !cell.verify.columns || cell.verify.columns.length === 0)) { + errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濅腑瀵煎嚭鍒楁湭璁剧疆锛乣}) + } + + if (doubleClick === cell.uuid) { + doubleClick = '' + } + } else { + if (cell.datatype === 'dynamic' && cell.field && !columns.includes(cell.field)) { + errors.push({ level: 1, detail: `鏄剧ず鍒椻��${col.label}鈥濅腑鍔ㄦ�佸瓧娈碘��${cell.field}鈥濇棤鏁坄}) + } + } + }) + } else if (col.field && !columns.includes(col.field)) { + errors.push({ level: 1, detail: `鏄剧ず鍒椻��${col.label}鈥濅腑瀛楁鈥�${col.field}鈥濇棤鏁坄}) + } + }) + + if (doubleClick) { + errors.push({ level: 1, detail: `缁戝畾鐨勫弻鍑绘寜閽凡鍒犻櫎`}) + } + } + + return errors } \ No newline at end of file -- Gitblit v1.8.0