From 3e13e3e61854671fce6aac45679e1b7252126105 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期日, 24 十二月 2023 23:41:01 +0800 Subject: [PATCH] Merge branch 'master' into positec --- src/menu/debug/index.jsx | 224 +++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 188 insertions(+), 36 deletions(-) diff --git a/src/menu/debug/index.jsx b/src/menu/debug/index.jsx index d761bee..afaf6ae 100644 --- a/src/menu/debug/index.jsx +++ b/src/menu/debug/index.jsx @@ -254,13 +254,16 @@ item.action && item.action.forEach(cell => { if (cell.hidden === 'true') return false - let sql = this.resetButton(item, cell, process) + let res = this.resetButton(item, cell, process) - if (sql) { - if (typeof(sql) === 'string') { - children.push({label: cell.label, sql: sql}) + if (res) { + if (typeof(res) === 'string') { + children.push({label: cell.label, sql: res}) + } else if (res.backSql) { + children.push({label: cell.label, sql: res.sql}) + children.push({label: cell.label + '锛堝洖璋冿級', sql: res.backSql}) } else { - children.push({label: cell.label, tabName: cell.label, sql: '', children: sql}) + children.push({label: cell.label, tabName: cell.label, sql: '', children: res}) } } }) @@ -276,13 +279,16 @@ } else if (col.type === 'custom') { col.elements.forEach(cell => { if (cell.eleType !== 'button' || cell.hidden === 'true') return - let sql = this.resetButton(item, cell, process) + let res = this.resetButton(item, cell, process) - if (sql) { - if (typeof(sql) === 'string') { - children.push({label: cell.label, sql: sql}) + if (res) { + if (typeof(res) === 'string') { + children.push({label: cell.label, sql: res}) + } else if (res.backSql) { + children.push({label: cell.label, sql: res.sql}) + children.push({label: cell.label + '锛堝洖璋冿級', sql: res.backSql}) } else { - children.push({label: cell.label, tabName: cell.label, sql: '', children: sql}) + children.push({label: cell.label, tabName: cell.label, sql: '', children: res}) } } }) @@ -300,13 +306,16 @@ item.subcards && item.subcards.forEach(card => { card.elements && card.elements.forEach(cell => { if (cell.eleType !== 'button' || cell.hidden === 'true') return - let sql = this.resetButton(item, cell, process) + let res = this.resetButton(item, cell, process) - if (sql) { - if (typeof(sql) === 'string') { - children.push({label: cell.label, sql: sql}) + if (res) { + if (typeof(res) === 'string') { + children.push({label: cell.label, sql: res}) + } else if (res.backSql) { + children.push({label: cell.label, sql: res.sql}) + children.push({label: cell.label + '锛堝洖璋冿級', sql: res.backSql}) } else { - children.push({label: cell.label, tabName: cell.label, sql: '', children: sql}) + children.push({label: cell.label, tabName: cell.label, sql: '', children: res}) } } }) @@ -315,13 +324,16 @@ card.backElements.forEach(cell => { if (cell.eleType !== 'button' || cell.hidden === 'true') return - let sql = this.resetButton(item, cell, process, null, true) + let res = this.resetButton(item, cell, process, null, true) - if (sql) { - if (typeof(sql) === 'string') { - children.push({label: cell.label, sql: sql}) + if (res) { + if (typeof(res) === 'string') { + children.push({label: cell.label, sql: res}) + } else if (res.backSql) { + children.push({label: cell.label, sql: res.sql}) + children.push({label: cell.label + '锛堝洖璋冿級', sql: res.backSql}) } else { - children.push({label: cell.label, tabName: cell.label, sql: '', children: sql}) + children.push({label: cell.label, tabName: cell.label, sql: '', children: res}) } } }) @@ -329,13 +341,16 @@ } else if (item.type === 'balcony') { item.elements.forEach(cell => { if (cell.eleType !== 'button' || cell.hidden === 'true') return - let sql = this.resetButton(item, cell, process) + let res = this.resetButton(item, cell, process) - if (sql) { - if (typeof(sql) === 'string') { - children.push({label: cell.label, sql: sql}) + if (res) { + if (typeof(res) === 'string') { + children.push({label: cell.label, sql: res}) + } else if (res.backSql) { + children.push({label: cell.label, sql: res.sql}) + children.push({label: cell.label + '锛堝洖璋冿級', sql: res.backSql}) } else { - children.push({label: cell.label, tabName: cell.label, sql: '', children: sql}) + children.push({label: cell.label, tabName: cell.label, sql: '', children: res}) } } }) @@ -345,10 +360,15 @@ if (!group.subButton.Ot) { group.subButton.Ot = item.wrap.datatype === 'static' ? 'notRequired' : 'requiredSgl' } - let sql = this.resetButton(item, group.subButton, process, group) + let res = this.resetButton(item, group.subButton, process, group) - if (sql) { - children.push({label: group.subButton.label, sql: sql}) + if (res) { + if (typeof(res) === 'string') { + children.push({label: group.subButton.label, sql: res}) + } else if (res.backSql) { + children.push({label: group.subButton.label, sql: res.sql}) + children.push({label: group.subButton.label + '锛堝洖璋冿級', sql: res.backSql}) + } } }) } @@ -372,9 +392,52 @@ let _item = fromJS(item).toJS() _item.columns = _item.subColumns || [] _item.setting.primaryKey = _item.setting.subKey - sql = this.getSysDefaultSql(cell, _item, process, group) + sql = this.getSysDefaultSql(cell, _item, process, group, false) } else { - sql = this.getSysDefaultSql(cell, item, process, group) + sql = this.getSysDefaultSql(cell, item, process, group, false) + } + } + if (cell.callbackType === 'script' && cell.verify && cell.verify.cbScripts) { + let defSql = '' + if (item.subtype === 'dualdatacard' && isback) { + let _item = fromJS(item).toJS() + _item.columns = _item.subColumns || [] + _item.setting.primaryKey = _item.setting.subKey + defSql = this.getSysDefaultSql(cell, _item, process, group, true) + } else { + defSql = this.getSysDefaultSql(cell, item, process, group, true) + } + + let backSql = this.getSysBackSql(cell.verify.cbScripts, cell.cbTable) + + if (backSql) { + backSql = `${defSql} + ${backSql} + ` + + if (cell.output) { + backSql += ` + aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg,${cell.output} as mk_b_id` + } else { + backSql += ` + aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg` + } + + backSql = backSql.replace(/@ID@/ig, `'id'`) + backSql = backSql.replace(/@BID@/ig, `'bid'`) + backSql = backSql.replace(/@LoginUID@/ig, `'LoginUID'`) + backSql = backSql.replace(/@SessionUid@/ig, `'SessionUid'`) + backSql = backSql.replace(/@UserID@/ig, `'UserID'`) + backSql = backSql.replace(/@Appkey@/ig, `'appkey'`) + backSql = backSql.replace(/@typename@/ig, `'typename'`) + backSql = backSql.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, `''`) + } + + if (backSql) { + return { + backSql, + sql + } } } } else if (cell.OpenType === 'excelIn') { @@ -421,7 +484,88 @@ return sql } - getSysDefaultSql = (btn, component, process, group) => { + getSysBackSql = (scripts, cbTable) => { + let _prev = '' + let _back = '' + + scripts.forEach(script => { + if (script.status === 'false') return + + if (script.position === 'front') { + _prev += ` + /* 鑷畾涔夎剼鏈� */ + ${script.sql} + ` + } else { + _back += ` + /* 鑷畾涔夎剼鏈� */ + ${script.sql} + ` + } + }) + + if (!_prev) return '' + + let tbs = [] + _prev.replace(/\n|\r/g, ' ').split(/\sdeclare\s/ig).forEach(line => { + if (!/^\s*(@|#)[a-zA-Z0-9_]+\s+table\s+\(/ig.test(line)) return + let tb = line.match(/(@|#)[a-zA-Z0-9_]+\s+table\s+\(.+(\)|date|datetime)\s*\)/ig) + + if (tb && tb.length === 1) { + tbs.push(tb[0]) + } + }) + + tbs.forEach(tb => { + let tbName = tb.match(/(@|#)[a-zA-Z0-9_]+/ig)[0] + + if (!tbName) return + + let content = tb.replace(/(@|#)[a-zA-Z0-9_]+\s+table\s+\(\s*/, '').replace(/\s*\)$/, '') + content = content.replace(/decimal\(\s*\d+\s*,\s*\d+\s*\)/ig, 'decimal') + + let keys = [] + let vals = [] + let error = false + let istop = new RegExp(cbTable + '$', 'ig').test(tbName) + let id = tbName.replace(/@|#/, '') + + content.split(/\s*,\s*/).forEach(m => { + let ms = m.split(/\s+/) + if (ms.length > 1) { + keys.push(ms[0]) + if (/^mk_level$/i.test(ms[0])) { + vals.push(istop ? `'1'` : `'2'`) + } else if (/^mk_id$/i.test(ms[0])) { + vals.push(istop ? `'${cbTable}'` : `'${id}'`) + } else if (/^mk_bid$/i.test(ms[0])) { + vals.push(istop ? `''` : `'${cbTable}'`) + } else if (/nvarchar/i.test(ms[1])) { + vals.push(`'mk'`) + } else if (/date/i.test(ms[1])) { + vals.push(`'1949-10-01'`) + } else if (/int|decimal/i.test(ms[1])) { + vals.push('0') + } else { + error = true + } + } else { + error = true + } + }) + + if (error || vals.length === 0) return + + _prev += ` + Insert into ${tbName} (${keys.join(',')}) + Select ${vals.join(',')} + ` + }) + + return _prev + _back + } + + getSysDefaultSql = (btn, component, process, group, retmsg) => { let primaryId = 'id' let BID = 'bid' let verify = btn.verify || {} @@ -492,6 +636,9 @@ _item.fieldlen = item.decimal || 0 } else if (_item.type === 'date') { _item.type = item.declareType === 'nvarchar(50)' ? 'text' : 'date' + } else if (item.declare === 'decimal') { + _item.type = 'number' + _item.fieldlen = item.decimal || 0 } formdata.push(_item) @@ -536,6 +683,9 @@ _item.fieldlen = item.decimal || 0 } else if (_item.type === 'date') { _item.type = item.declareType === 'nvarchar(50)' ? 'text' : 'date' + } else if (item.declare === 'decimal') { + _item.type = 'number' + _item.fieldlen = item.decimal || 0 } formdata.push(_item) @@ -671,6 +821,10 @@ /* 鏄剧ず鍒楀彉閲忚祴鍊� */ select ${_initColfields.join(',')} ` + } + + if (retmsg) { + return _sql } // 鍘婚櫎绂佺敤鐨勯獙璇� @@ -879,15 +1033,13 @@ item.field.split(',').forEach((_field, index) => { let _key = _field.toLowerCase() let _val = '' - let _fval = `'${_val}'` + arr.push(_key) if (_key === 'bid') { // 琛ㄥ崟涓病鏈塨id鍒欎娇鐢ㄧ郴缁焍id鍙橀噺 - _fval = '@BID@' + _val = BID } - arr.push(_key) - _fieldValue.push(`${_key}=${_fval}`) - + _fieldValue.push(`${_key}='${_val}'`) _value.push(`${_labels[index] || ''}锛�${_val || ''}`) }) -- Gitblit v1.8.0