From f9455c981f94d5fd89103b1d332baefd039bebb2 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 25 十月 2024 09:17:14 +0800 Subject: [PATCH] 2024-10-25 --- src/menu/debug/index.jsx | 540 ++++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 347 insertions(+), 193 deletions(-) diff --git a/src/menu/debug/index.jsx b/src/menu/debug/index.jsx index be6eaec..b66ef90 100644 --- a/src/menu/debug/index.jsx +++ b/src/menu/debug/index.jsx @@ -1,4 +1,4 @@ -import React, {Component} from 'react' +import React, { Component } from 'react' import PropTypes from 'prop-types' import { fromJS } from 'immutable' import { Modal, Button, Drawer, Tooltip } from 'antd' @@ -26,6 +26,7 @@ sqlList = [] verSqls = [] + linkMain = null trigger = () => { let config = fromJS(this.props.config).toJS() @@ -66,6 +67,7 @@ } this.sqlList = [] + this.linkMain = [] let regs = [ { reg: /@userName@/ig, value: `'User_Name'` }, @@ -88,76 +90,13 @@ if (process) { regs.push({ reg: /@works_flow_code@/ig, value: `'1949-10-01 15:00:00'` }) } - - if (config.interfaces && config.interfaces.length > 0) { - config.interfaces.forEach(m => { - if (m.status !== 'true' || m.setting.interType !== 'system') return false - - let sql = this.formatDataSource(m, regs) - - this.sqlList.push({label: m.setting.name, children: [{label: '鏁版嵁婧�', sql: sql}]}) - }) - } - this.filterComponent(config.components, [], regs, process) + let _mainSearch = [] - let sqls = [] - let foreachSql = (list, name, tabName = '', supName = '') => { - list.forEach(item => { - if (item.children) { - if (item.tabName) { - item.children.forEach(cell => { - if (cell.children) { - foreachSql(cell.children, cell.label, item.tabName, name) - } - }) - } else { - foreachSql(item.children, name, tabName, supName) - } - } else if (item.sql) { - sqls.push({uuid: Utils.getuuid() ,label: item.label, name: name, tabName: tabName, supName: supName, sql: item.sql}) - } - }) - } - - this.sqlList.forEach(item => { - if (item.children) { - foreachSql(item.children, item.label) - } - }) - - if (sqls.length === 0) { - Modal.warning({ - title: '褰撳墠鑿滃崟鏃犲彲楠岃瘉鑴氭湰銆�', - okText: '鐭ラ亾浜�' - }) - return - } - - this.verSqls = sqls - let that = this - - Modal.confirm({ - content: `褰撳墠鑿滃崟鍏�${this.sqlList.length}涓粍浠讹紝${sqls.length}椤硅剼鏈渶瑕佹楠�${sqls.length > 20 ? '锛屾椂闂村ぇ姒傞渶瑕�' + parseInt(sqls.length / 2) + '绉�' : ''}銆俙, - onOk() { - that.setState({visible: true, status: 'loading', sqlList: fromJS(sqls).toJS(), successIds: [], errorIds: [], errorMsg: {}, execId: ''}, () => { - that.roopSql() - }) - }, - onCancel() {} - }) - - this.sqlList = [] - } - - filterComponent = (components, mainSearch, regs, process, ispop = false) => { - let appType = sessionStorage.getItem('appType') - let _mainSearch = mainSearch || [] - - if (appType === 'mob') { + if (sessionStorage.getItem('appType') === 'mob') { let search = [] let ms = null - components.forEach(item => { + config.components.forEach(item => { if (item.type === 'topbar' && item.wrap.type !== 'navbar' && item.search) { ms = item.search } else if (item.type === 'search' && item.wrap.field) { @@ -204,20 +143,170 @@ _mainSearch = search } } else { - components.forEach(component => { + config.components.forEach(component => { if (component.type !== 'search') return _mainSearch = component.search || [] }) } + + if (config.interfaces && config.interfaces.length > 0) { + config.interfaces.forEach(m => { + if (m.status !== 'true' || m.setting.interType !== 'system') return false + + m.setting.laypage = 'false' + m.setting.$top = true + + let sql = this.formatDataSource(m, regs, _mainSearch) + + this.sqlList.push({label: m.setting.name, children: [{label: '鏁版嵁婧�', sql: sql}]}) + }) + } + + this.filterComponent(config.components, _mainSearch, regs, process) + + let sqls = [] + let foreachSql = (list, name, tabName = '', supName = '') => { + list.forEach(item => { + if (item.children) { + if (item.tabName) { + item.children.forEach(cell => { + if (cell.children) { + foreachSql(cell.children, cell.label, item.tabName, name) + } + }) + } else { + foreachSql(item.children, name, tabName, supName) + } + } else if (item.sql) { + sqls.push({uuid: Utils.getuuid() ,label: item.label, name: name, tabName: tabName, supName: supName, sql: item.sql}) + } + }) + } + + this.sqlList.forEach(item => { + if (item.children) { + foreachSql(item.children, item.label) + } + }) + + if (sqls.length === 0) { + Modal.warning({ + title: '褰撳墠鑿滃崟鏃犲彲楠岃瘉鑴氭湰銆�', + okText: '鐭ラ亾浜�' + }) + return + } + + this.verSqls = sqls + let that = this + + let formErrors = [] + if (this.linkMain.length) { + let map = new Map() + if (config.interfaces) { + config.interfaces.forEach(m => { + if (m.status !== 'true' || !m.columns) return false + + map.set(m.uuid, m.columns) + }) + } + + let forEachComs = (components) => { + components.forEach(item => { + if (item.type === 'tabs') { + item.subtabs.forEach(tab => { + forEachComs(tab.components) + }) + } else if (item.type === 'group') { + forEachComs(item.components) + } else if (item.columns && item.columns.length) { + map.set(item.uuid, item.columns) + } + }) + } + + forEachComs(config.components) + + this.linkMain.forEach(item => { + if (item.config.wrap && item.config.wrap.datatype === 'public') return + + let supModule = '' + if (item.config.wrap && item.config.wrap.datatype === 'static') { + supModule = item.config.wrap.supModule ? item.config.wrap.supModule[item.config.wrap.supModule.length - 1] : '' + } else if (item.config.setting && item.config.setting.supModule) { + supModule = item.config.setting.supModule[item.config.setting.supModule.length - 1] || '' + if (supModule === 'empty') { + supModule = '' + } + } + + if (!supModule) return + + let cols = map.get(supModule) + + if (!cols) { + formErrors.push(<div key={item.forms[0].uuid}> + 缁勪欢<span style={{color: '#1890ff', margin: '0 2px 0 2px'}}>{item.config.name}{item.label ? '-' + item.label : ''}</span>涓〃鍗�<span style={{color: 'orange', margin: '0 2px 0 2px'}}>{item.forms.map(c => c.label + ' (' + c.field + ')').join('銆�')}</span>鏃犳晥 + </div>) + } else { + let _forms = [] + let _cols = cols.map(col => col.field.toLowerCase()) + + item.forms.forEach(m => { + if (_cols.includes(m.field.toLowerCase())) return + + _forms.push(m.label + ' (' + m.field + ')') + }) + + if (_forms.length) { + formErrors.push(<div key={item.forms[0].uuid}> + 缁勪欢<span style={{color: '#1890ff', margin: '0 2px 0 2px'}}>{item.config.name}{item.label ? '-' + item.label : ''}</span>涓〃鍗�<span style={{color: 'orange', margin: '0 2px 0 2px'}}>{_forms.join('銆�')}</span>鏃犳晥 + </div>) + } + } + }) + } + + formErrors = formErrors.length ? formErrors : '' + + Modal.confirm({ + content: <div style={{paddingLeft: '38px'}}> + {`褰撳墠鑿滃崟鍏�${this.sqlList.length}涓粍浠讹紝${sqls.length}椤硅剼鏈渶瑕佹楠�${sqls.length > 20 ? '锛屾椂闂村ぇ姒傞渶瑕�' + parseInt(sqls.length / 2) + '绉�' : ''}銆俙} + {formErrors} + </div>, + onOk() { + that.setState({visible: true, status: 'loading', sqlList: fromJS(sqls).toJS(), successIds: [], errorIds: [], errorMsg: {}, execId: ''}, () => { + that.roopSql() + }) + }, + onCancel() {} + }) + + this.sqlList = [] + } + + filterComponent = (components, mainSearch, regs, process, ispop = false) => { + let appType = sessionStorage.getItem('appType') components.forEach(item => { if (item.type === 'tabs') { item.subtabs.forEach(tab => { + if (tab.hide === 'true') return + + let _mainSearch = mainSearch || [] + + if (appType !== 'mob') { + tab.components.forEach(com => { + if (com.type !== 'search') return + + _mainSearch = com.search || [] + }) + } this.filterComponent(tab.components, _mainSearch, regs, process) }) } else if (item.type === 'group') { - this.filterComponent(item.components, _mainSearch, regs, process) + this.filterComponent(item.components, mainSearch, regs, process) } else { let children = [] if (item.wrap && item.setting) { @@ -235,13 +324,18 @@ } if (item.setting && item.setting.interType === 'system') { - let sql = this.formatDataSource(item, regs, _mainSearch) + if (item.format === 'object') { + item.setting.laypage = 'false' + item.setting.$top = true + } + + let sql = this.formatDataSource(item, regs, mainSearch) children.push({label: '鏁版嵁婧�', sql: sql}) } else if (item.setting && item.setting.useMSearch === 'true') { let searches = item.search || [] - if (_mainSearch.length > 0) { - searches = [...searches, ..._mainSearch] + if (mainSearch.length > 0) { + searches = [...searches, ...mainSearch] } item.$searches = fromJS(searches).toJS() } @@ -293,7 +387,7 @@ getCols(item.cols) if (item.subtype === 'editable' && item.submit.intertype === 'system') { - let sql = this.getEditTableSql(item.submit, item.cols, item.columns) + let sql = this.getEditTableSql(item.submit, item.cols, item.columns, item.setting) children.push({label: '鎻愪氦', sql: sql}) } } else if (item.type === 'card' || item.type === 'carousel' || item.type === 'timeline') { @@ -354,6 +448,18 @@ if (!group.subButton.Ot) { group.subButton.Ot = item.wrap.datatype === 'static' ? 'notRequired' : 'requiredSgl' } + + if (group.fields) { + let cells = group.fields.filter(cell => cell.type === 'linkMain') + + if (cells.length) { + this.linkMain.push({ + config: item, + forms: cells + }) + } + } + let res = this.resetButton(item, group.subButton, process, group) if (res) { @@ -380,6 +486,19 @@ resetButton = (item, cell, process, group, isback) => { let sql = '' + if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) { + if (cell.modal && cell.modal.fields.length) { + let cells = cell.modal.fields.filter(n => n.type === 'linkMain') + + if (cells.length) { + this.linkMain.push({ + config: item, + forms: cells, + label: cell.label + }) + } + } + } if (['exec', 'prompt', 'pop', 'form', 'formSubmit'].includes(cell.OpenType)) { if (cell.intertype === 'system' || cell.procMode === 'system') { // 绯荤粺鎺ュ彛 if (item.subtype === 'dualdatacard' && isback) { @@ -460,7 +579,31 @@ if (process) { regs.push({ reg: /@works_flow_code@/ig, value: `'1949-10-01 15:00:00'` }) } - this.filterComponent(cell.config.components, [], regs, process, true) + + let _mainSearch = [] + + if (sessionStorage.getItem('appType') === 'mob') { + cell.config.components.forEach(item => { + if (item.type === 'search' && item.wrap.field) { + _mainSearch.push({ + type: 'text', + label: item.wrap.label, + field: item.wrap.field, + match: item.wrap.match, + required: item.wrap.required, + value: item.wrap.initval || '' + }) + } + }) + } else { + cell.config.components.forEach(component => { + if (component.type !== 'search') return + + _mainSearch = component.search || [] + }) + } + + this.filterComponent(cell.config.components, _mainSearch, regs, process, true) if (this.sqlPopList.length) { sql = fromJS(this.sqlPopList).toJS() @@ -491,7 +634,7 @@ } }) - if (!_prev) return '' + if (!_prev) return _back let tbs = [] _prev.replace(/\n|\r/g, ' ').split(/\sdeclare\s/ig).forEach(line => { @@ -557,8 +700,29 @@ let BID = Utils.getuuid() let verify = btn.verify || {} let _actionType = null - let setting = component.setting + let setting = component.setting || {} let columns = component.columns || [] + + if (verify.invalid === 'true') { + if (component.wrap && (component.wrap.datatype === 'static' || component.wrap.datatype === 'public')) { + verify.invalid = 'false' + } else if (setting.maxScript && setting.maxScript >= 300) { + verify.invalid = 'false' + } else if (!setting.dataresource) { + verify.invalid = 'false' + } else if (btn.intertype !== 'system' && btn.procMode !== 'system') { + verify.invalid = 'false' + } else if (btn.sqlType === 'insert') { + verify.invalid = 'false' + } else if (btn.Ot === 'notRequired') { + verify.invalid = 'false' + } + } + if (verify.uniques && verify.uniques.length > 0 && btn.Ot === 'requiredOnce') { + if (component.wrap && (component.wrap.datatype === 'static' || component.wrap.datatype === 'public')) { + verify.uniques = [] + } + } if (verify.default !== 'false') { // 鍒ゆ柇鏄惁浣跨敤榛樿sql _actionType = btn.sqlType @@ -621,8 +785,10 @@ _item.type = 'text' } else if (_item.type === 'number' || _item.type === 'rate') { _item.fieldlen = item.decimal || 0 - } else if (_item.type === 'date') { + } else if (_item.type === 'date') { _item.type = item.declareType === 'nvarchar(50)' ? 'text' : 'date' + } else if (_item.type === 'datetime') { + _item.type = 'date' } else if (item.declare === 'decimal') { _item.type = 'number' _item.fieldlen = item.decimal || 0 @@ -668,8 +834,10 @@ _item.type = 'text' } else if (_item.type === 'number' || _item.type === 'rate') { _item.fieldlen = item.decimal || 0 - } else if (_item.type === 'date') { + } else if (_item.type === 'date') { _item.type = item.declareType === 'nvarchar(50)' ? 'text' : 'date' + } else if (_item.type === 'datetime') { + _item.type = 'date' } else if (item.declare === 'decimal') { _item.type = 'number' _item.fieldlen = item.decimal || 0 @@ -711,14 +879,16 @@ } else if (form.type === 'rate') { _type = `decimal(18,2)` } + + if (['appkey'].includes(_key)) return _declarefields.push(`@${_key} ${_type}`) } }) // 娣诲姞鏁版嵁涓瓧娈碉紝琛ㄥ崟鍊间紭鍏�(鎸夐挳涓嶉�夎鎴栧琛屾嫾鎺ユ椂璺宠繃) - if (btn.Ot !== 'notRequired' && columns && columns.length > 0) { - const setField = (col) => { + if (btn.Ot !== 'notRequired' && columns.length > 0) { + columns.forEach(col => { if (!col.field) return let _key = col.field.toLowerCase() @@ -734,37 +904,9 @@ } } - if (!_vars.includes(_key)) { + if (!_vars.includes(_key) && !['appkey'].includes(_key)) { _vars.push(_key) - - if (col.datatype) { - _declarefields.push(`@${_key} ${col.datatype}`) - } else { - if (col.fieldlength && col.fieldlength > 4000) { - col.fieldlength = 'max' - } - - let _type = `nvarchar(${col.fieldlength || 50})` - - if (col.type === 'number') { - let _length = col.decimal ? col.decimal : 0 - _type = `decimal(18,${_length})` - } else if (col.type === 'picture' || col.type === 'textarea') { - _type = `nvarchar(${col.fieldlength || 512})` - } - - _declarefields.push(`@${_key} ${_type}`) - } - } - } - - columns.forEach(col => { - if (col.type === 'colspan' || col.type === 'old_colspan') { - col.subcols.forEach(cell => { - setField(cell) - }) - } else { - setField(col) + _declarefields.push(`@${_key} ${col.datatype || 'nvarchar(50)'}`) } }) } @@ -852,37 +994,31 @@ } // 澶辨晥楠岃瘉锛屾坊鍔犳暟鎹椂涓嶇敤 - if (btn.sqlType !== 'insert' && btn.Ot !== 'notRequired' && verify.invalid === 'true' && setting.dataresource) { + if (verify.invalid === 'true') { let datasource = setting.dataresource let customScript = setting.customScript || '' - let orderBy = setting.order + + let regoptions = [{ + reg: new RegExp('@userName@', 'ig'), + value: `'${userName}'` + }, { + reg: new RegExp('@fullName@', 'ig'), + value: `'${fullName}'` + }, { + reg: new RegExp('@orderBy@', 'ig'), + value: setting.order || primaryKey + }, { + reg: new RegExp('@pageSize@', 'ig'), + value: 1 + }, { + reg: new RegExp('@pageIndex@', 'ig'), + value: 1 + }] - if (setting.queryType === 'statistics' || customScript) { - let searches = formatSearch(component.$searches || []) - let regoptions = getSearchRegs(searches) - - regoptions.push({ - reg: new RegExp('@userName@', 'ig'), - value: `'${userName}'` - }, { - reg: new RegExp('@fullName@', 'ig'), - value: `'${fullName}'` - }, { - reg: new RegExp('@orderBy@', 'ig'), - value: orderBy - }, { - reg: new RegExp('@pageSize@', 'ig'), - value: 999999 - }, { - reg: new RegExp('@pageIndex@', 'ig'), - value: 1 - }) - - regoptions.forEach(item => { - datasource = datasource.replace(item.reg, item.value) - customScript = customScript.replace(item.reg, item.value) - }) - } + regoptions.forEach(item => { + datasource = datasource.replace(item.reg, item.value) + customScript = customScript.replace(item.reg, item.value) + }) if (customScript) { _sql += ` @@ -957,7 +1093,6 @@ if (!keys.includes(_key)) return // 琛ㄥ崟涓笉鍚崟鍙风敓鎴愬瓧娈� - let _ModularDetailCode = '' let _lpline = '' if (item.TypeCharOne === 'Lp') { if (_linkKey === 'bid' && BID) { // 鏇挎崲bid @@ -965,33 +1100,22 @@ } else { _lpline = `set @ModularDetailCode= 'Lp'+ right('${item.mark || btn.uuid}'+@${_linkKey},48)` } - _ModularDetailCode = '@ModularDetailCode' } else if (item.TypeCharOne === 'BN') { - let _val = '' if (_linkKey === 'bid' && BID) { // 鏇挎崲bid - _val = BID + _lpline = `set @ModularDetailCode= 'BN'+ right(@BID@,48)` } else { - _val = 0 + _lpline = `set @ModularDetailCode= 'BN'+ right(@${_linkKey},48)` } - _ModularDetailCode = `'${item.TypeCharOne + _val}'` } else { - _ModularDetailCode = `'${item.ModularDetailCode}'` - } - - let _declare = '' - - if (!_vars.includes(_key)) { - _declare = `Declare @${_key} nvarchar(50)` - _vars.push(_key) + _lpline = `set @ModularDetailCode= right('${item.ModularDetailCode}',50)` } _billcodesSql += ` /* 鍗曞彿鐢熸垚 */ - ${_declare} select @BillCode='', @${_key}='', @ModularDetailCode='' ${_lpline} exec s_get_BillCode - @ModularDetailCode=${_ModularDetailCode}, + @ModularDetailCode=@ModularDetailCode, @Type=${item.Type}, @TypeCharOne='${item.TypeCharOne}', @TypeCharTwo ='${item.TypeCharTwo}', @@ -1011,6 +1135,17 @@ // 鍞竴鎬ч獙璇侊紝蹇呴』瀛樺湪琛ㄥ崟锛堣〃鍗曞瓨鍦ㄦ椂锛屼富閿潎涓哄崟鍊硷級,蹇呴』濉啓鏁版嵁婧愶紝澶氳鎷兼帴鏃朵笉鍙敤 if (formdata && verify.uniques && verify.uniques.length > 0 && btn.Ot !== 'requiredOnce') { + let dateForms = [] + let numForms = [] + formdata.forEach(form => { + let _key = form.key.toLowerCase() + if (form.type === 'date') { + dateForms.push(_key) + } else if (form.type === 'number' || form.type === 'rate') { + numForms.push(_key) + } + }) + verify.uniques.forEach(item => { let _fieldValue = [] // 琛ㄥ崟閿�煎field=value let _value = [] // 琛ㄥ崟鍊硷紝鐢ㄤ簬閿欒鎻愮ず @@ -1024,16 +1159,15 @@ arr.push(_key) if (_key === 'bid') { // 琛ㄥ崟涓病鏈塨id鍒欎娇鐢ㄧ郴缁焍id鍙橀噺 _val = BID + } else if (numForms.includes(_key)) { + _val = '1' + } else if (dateForms.includes(_key)) { + _val = '1949-10-01' } _fieldValue.push(`${_key}='${_val}'`) _value.push(`${_labels[index] || ''}锛�${_val || ''}`) }) - - let _verifyType = '' - if (item.verifyType === 'logic') { - _verifyType = ' and deleted=0' - } if (!arr.includes(primaryKey.toLowerCase())) { _fieldValue.push(`${primaryKey} !='${primaryId}'`) @@ -1042,7 +1176,7 @@ _sql += ` /* 鍞竴鎬ч獙璇� */ select @tbid='', @ErrorCode='',@retmsg='' - select @tbid='X' from ${btn.sql} where ${_fieldValue.join(' and ')}${_verifyType} + select @tbid='X' from ${btn.sql} where ${_fieldValue.join(' and ')}${item.verifyType === 'logic' ? ' and deleted=0' : ''} If @tbid!='' Begin select @ErrorCode='${item.errorCode}',@retmsg='${_value.join(', ')} 宸插瓨鍦�' @@ -1249,7 +1383,7 @@ if (columns && columns.length > 0 && btn.Ot !== 'notRequired') { let _index = 0 columns.forEach(col => { - if (!col.field || col.Hide === 'true' || _index >= 4) return + if (!col.field || col.Hide === 'true' || _index >= 4 || col.field === primaryKey) return _msg += col.label + '=0,' _index++ }) @@ -1334,13 +1468,7 @@ if (_backCustomScript) { _sql += _backCustomScript } - - _sql = _sql.replace(/@start_type@/ig, `'寮�濮�'`) - _sql = _sql.replace(/@check_type@/ig, `'瀹℃牳'`) - _sql = _sql.replace(/@notice_type@/ig, `'鎶勯��'`) - _sql = _sql.replace(/@check_userids@/ig, `''`) - _sql = _sql.replace(/@notice_userids@/ig, `''`) - _sql = _sql.replace(/@works_flow_sign@/ig, `''`) + _sql = _sql.replace(/@works_flow_code@/ig, `'mk'`) _sql = _sql.replace(/@works_flow_name@/ig, `'mk'`) _sql = _sql.replace(/@works_flow_param@/ig, `''`) @@ -1349,6 +1477,18 @@ _sql = _sql.replace(/@statusname@/ig, `'${statusName}'`) _sql = _sql.replace(/@work_group@/ig, `'mk'`) _sql = _sql.replace(/@work_grade@/ig, `'0'`) + + if (verify.flowType === 'start') { + _sql = _sql.replace(/@start_type@/ig, `'寮�濮�'`) + } else { + _sql = _sql.replace(/@check_type@/ig, `'瀹℃牳'`) + _sql = _sql.replace(/@notice_type@/ig, `'鎶勯��'`) + + _sql = _sql.replace(/@check_userids@/ig, `''`) + _sql = _sql.replace(/@notice_userids@/ig, `''`) + + _sql = _sql.replace(/@works_flow_sign@/ig, `''`) + } } else if (_backCustomScript) { _sql += _backCustomScript } @@ -1638,7 +1778,7 @@ return sql } - getEditTableSql = (verify, cols, columns) => { + getEditTableSql = (verify, cols, columns, setting) => { let btn = verify let userName = sessionStorage.getItem('User_Name') || '' let fullName = sessionStorage.getItem('Full_Name') || '' @@ -1666,30 +1806,46 @@ let vals = [] let forms = [] - let _fields = {} - - columns.forEach(col => { - _fields[col.field] = col.datatype - }) + let _forms = {} + let index = 0 let getColumns = (cols) => { cols.forEach(item => { if (item.type === 'colspan') { getColumns(item.subcols) } else if (item.editable === 'true') { - forms.push({ - field: item.field, - type: item.type, - datatype: _fields[item.field] || 'nvarchar(50)' - }) + item.$sort = index + _forms[item.field] = item + index++ } }) } getColumns(cols) + columns.forEach(item => { + if (item.field === setting.primaryKey) return + + if (_forms[item.field]) { + let _item = {..._forms[item.field]} + if (_item.editType === 'date') { + _item.datatype = _item.declareType || 'datetime' + } else { + _item.datatype = item.datatype + } + + forms.push(_item) + } else { + forms.push({...item, $sort: 999}) + } + }) + + forms.sort((a, b) => a.$sort - b.$sort) + forms.forEach(col => { - if (col.type === 'number') { + if (/date/.test(col.datatype)) { + vals.push(`'1949-10-01'`) + } else if (col.type === 'number') { vals.push(`1`) } else { vals.push(`'mk'`) @@ -1952,7 +2108,7 @@ formatDataSource = (item, regs, mainSearch = []) => { if (!item.setting || item.setting.interType !== 'system') return false - + let searches = item.search || [] if (item.setting.useMSearch === 'true' && mainSearch.length > 0) { searches = [...searches, ...mainSearch] @@ -2017,8 +2173,14 @@ _dataresource = `/*system_query*/select ${arr_field} from ${_dataresource} ${_search} ` } else if (item.setting.laypage === 'true' && item.setting.order) { _dataresource = `/*system_query*/select top 10 ${arr_field} from (select ${arr_field} ,ROW_NUMBER() over(order by ${item.setting.order}) as rows from ${_dataresource} ${_search}) tmptable where rows > 0 order by tmptable.rows ` + } else if (item.setting.$top) { + if (item.setting.order) { + _dataresource = `/*system_query*/select top 1 ${arr_field} from ${_dataresource} ${_search} order by ${item.setting.order} ` + } else { + _dataresource = `/*system_query*/select top 1 ${arr_field} from ${_dataresource} ${_search} ` + } } else if (item.setting.order) { - _dataresource = `/*system_query*/select ${arr_field} from (select ${arr_field} ,ROW_NUMBER() over(order by ${item.setting.order}) as rows from ${_dataresource} ${_search}) tmptable order by tmptable.rows ` + _dataresource = `/*system_query*/select ${arr_field} from ${_dataresource} ${_search} order by ${item.setting.order} ` } else { _dataresource = `/*system_query*/select ${arr_field} from ${_dataresource} ${_search} ` } @@ -2063,10 +2225,10 @@ ) if (item.hasExtend) { - regoptions.push({reg: /@mk_time@/ig, value: '2024-04-29 17:20:00'}) + regoptions.push({reg: /@mk_time@/ig, value: `'2024-04-29 17:20:00'`}) } if (item.type === 'calendar') { - regoptions.push({ reg: /@mk_year@/ig, value: '2024' }) + regoptions.push({ reg: /@mk_year@/ig, value: `'2024'` }) } if (window.GLOB.getLocation) { regoptions.push( @@ -2100,7 +2262,7 @@ this.setState({status: this.verSqls.length > 0 ? 'loading' : 'over', execId: item.uuid}) - console.info(`/* 缁勪欢锛�${item.name} 妫�楠岄」锛�${item.label} */`) + window.mkInfo(`/* 缁勪欢锛�${item.name} 妫�楠岄」锛�${item.label} */`) Api.sDebug(item.sql).then(result => { if (result.status || result.ErrCode === '-2') { @@ -2152,14 +2314,6 @@ destroyOnClose > <div className="mk-sql-wrap"> - {/* <div className="header"> - <div className="sql-item"> - <div className="sql-1">缁勪欢</div> - <div className="sql-2">妫�楠岄」</div> - <div className="sql-3">鍏朵粬</div> - <div className="sql-4">鐘舵��</div> - </div> - </div> */} <div className="body"> {sqlList.map(item => { let other = '' -- Gitblit v1.8.0