| | |
| | | if (process) { |
| | | regs.push({ reg: /@works_flow_code@/ig, value: `'1949-10-01 15:00:00'` }) |
| | | } |
| | | |
| | | let _mainSearch = [] |
| | | |
| | | if (sessionStorage.getItem('appType') === 'mob') { |
| | | let search = [] |
| | | let ms = null |
| | | 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) { |
| | | search.push({ |
| | | type: 'text', |
| | | label: item.wrap.label, |
| | | field: item.wrap.field, |
| | | match: item.wrap.match, |
| | | required: item.wrap.required, |
| | | value: item.wrap.initval || '' |
| | | }) |
| | | } |
| | | }) |
| | | |
| | | if (ms) { |
| | | if (ms.setting.type === 'search') { |
| | | search.push({ |
| | | type: 'text', |
| | | label: '搜索栏', |
| | | field: ms.setting.field, |
| | | match: ms.setting.match, |
| | | required: ms.setting.required, |
| | | value: ms.setting.initval || '' |
| | | }) |
| | | } |
| | | search.push(...ms.fields) |
| | | |
| | | ms.groups.forEach(group => { |
| | | if (group.setting.type === 'search') { |
| | | search.push({ |
| | | type: 'text', |
| | | label: group.wrap.name, |
| | | field: group.setting.field, |
| | | match: group.setting.match, |
| | | required: group.setting.required, |
| | | value: group.setting.initval || '' |
| | | }) |
| | | } |
| | | search.push(...group.fields) |
| | | }) |
| | | } |
| | | |
| | | if (search.length > 0) { |
| | | _mainSearch = search |
| | | } |
| | | } else { |
| | | 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 |
| | | |
| | | let sql = this.formatDataSource(m, regs) |
| | | 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, [], regs, process) |
| | | this.filterComponent(config.components, _mainSearch, regs, process) |
| | | |
| | | let sqls = [] |
| | | let foreachSql = (list, name, tabName = '', supName = '') => { |
| | |
| | | |
| | | filterComponent = (components, mainSearch, regs, process, ispop = false) => { |
| | | let appType = sessionStorage.getItem('appType') |
| | | let _mainSearch = mainSearch || [] |
| | | |
| | | if (appType === 'mob') { |
| | | let search = [] |
| | | let ms = null |
| | | components.forEach(item => { |
| | | if (item.type === 'topbar' && item.wrap.type !== 'navbar' && item.search) { |
| | | ms = item.search |
| | | } else if (item.type === 'search' && item.wrap.field) { |
| | | search.push({ |
| | | type: 'text', |
| | | label: item.wrap.label, |
| | | field: item.wrap.field, |
| | | match: item.wrap.match, |
| | | required: item.wrap.required, |
| | | value: item.wrap.initval || '' |
| | | }) |
| | | } |
| | | }) |
| | | |
| | | if (ms) { |
| | | if (ms.setting.type === 'search') { |
| | | search.push({ |
| | | type: 'text', |
| | | label: '搜索栏', |
| | | field: ms.setting.field, |
| | | match: ms.setting.match, |
| | | required: ms.setting.required, |
| | | value: ms.setting.initval || '' |
| | | }) |
| | | } |
| | | search.push(...ms.fields) |
| | | |
| | | ms.groups.forEach(group => { |
| | | if (group.setting.type === 'search') { |
| | | search.push({ |
| | | type: 'text', |
| | | label: group.wrap.name, |
| | | field: group.setting.field, |
| | | match: group.setting.match, |
| | | required: group.setting.required, |
| | | value: group.setting.initval || '' |
| | | }) |
| | | } |
| | | search.push(...group.fields) |
| | | }) |
| | | } |
| | | |
| | | if (search.length > 0) { |
| | | _mainSearch = search |
| | | } |
| | | } else { |
| | | components.forEach(component => { |
| | | if (component.type !== 'search') return |
| | | |
| | | _mainSearch = component.search || [] |
| | | }) |
| | | } |
| | | |
| | | 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) { |
| | |
| | | } |
| | | |
| | | 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() |
| | | } |
| | |
| | | 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') { |
| | |
| | | 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() |
| | |
| | | } |
| | | }) |
| | | |
| | | if (!_prev) return '' |
| | | if (!_prev) return _back |
| | | |
| | | let tbs = [] |
| | | _prev.replace(/\n|\r/g, ' ').split(/\sdeclare\s/ig).forEach(line => { |
| | |
| | | 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 |
| | |
| | | } 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() |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | 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)'}`) |
| | | } |
| | | }) |
| | | } |
| | |
| | | } |
| | | |
| | | // 失效验证,添加数据时不用 |
| | | 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 += ` |
| | |
| | | |
| | | if (!keys.includes(_key)) return // 表单中不含单号生成字段 |
| | | |
| | | let _ModularDetailCode = '' |
| | | let _lpline = '' |
| | | if (item.TypeCharOne === 'Lp') { |
| | | if (_linkKey === 'bid' && BID) { // 替换bid |
| | |
| | | } 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}', |
| | |
| | | |
| | | // 唯一性验证,必须存在表单(表单存在时,主键均为单值),必须填写数据源,多行拼接时不可用 |
| | | 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 = [] // 表单值,用于错误提示 |
| | |
| | | arr.push(_key) |
| | | if (_key === 'bid') { // 表单中没有bid则使用系统bid变量 |
| | | _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}'`) |
| | |
| | | _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(', ')} 已存在' |
| | |
| | | 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++ |
| | | }) |
| | |
| | | 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, `''`) |
| | |
| | | _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 |
| | | } |
| | |
| | | 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') || '' |
| | |
| | | |
| | | 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'`) |
| | |
| | | |
| | | 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] |
| | |
| | | _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} ` |
| | | } |
| | |
| | | ) |
| | | |
| | | 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( |
| | |
| | | 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 = '' |