| | |
| | | |
| | | 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}) |
| | | } |
| | | } |
| | | }) |
| | |
| | | } 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}) |
| | | } |
| | | } |
| | | }) |
| | |
| | | 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}) |
| | | } |
| | | } |
| | | }) |
| | |
| | | |
| | | 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}) |
| | | } |
| | | } |
| | | }) |
| | |
| | | } 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}) |
| | | } |
| | | } |
| | | }) |
| | |
| | | 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}) |
| | | } |
| | | } |
| | | }) |
| | | } |
| | |
| | | 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) |
| | | |
| | | 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') { |
| | |
| | | return sql |
| | | } |
| | | |
| | | getSysDefaultSql = (btn, component, process, group) => { |
| | | getSysBackSql = (scripts) => { |
| | | 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 |
| | | |
| | | tbName = tbName.replace(/@|#/, '') |
| | | |
| | | let content = tb.replace(/(@|#)[a-zA-Z0-9_]+\s+table\s+\(\s*/, '').replace(/\s*\)$/, '') |
| | | |
| | | let keys = [] |
| | | let vals = [] |
| | | let error = false |
| | | |
| | | content.split(/\s*,\s*/).forEach(m => { |
| | | let ms = m.split(/\s+/) |
| | | if (ms.length > 1) { |
| | | keys.push(ms[0]) |
| | | 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 || {} |
| | |
| | | ` |
| | | } |
| | | |
| | | if (retmsg) { |
| | | return _sql |
| | | } |
| | | |
| | | // 去除禁用的验证 |
| | | if (verify.contrasts) { |
| | | verify.contrasts = verify.contrasts.filter(item => item.status !== 'false') |