| | |
| | | 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 => { |
| | |
| | | m.setting.laypage = 'false' |
| | | m.setting.$top = true |
| | | |
| | | let sql = this.formatDataSource(m, regs) |
| | | 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 => { |
| | | 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) { |
| | |
| | | item.setting.$top = true |
| | | } |
| | | |
| | | let sql = this.formatDataSource(item, regs, _mainSearch) |
| | | 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() |
| | | } |
| | |
| | | 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 (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}', |
| | |
| | | _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++ |
| | | }) |
| | |
| | | _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 = '' |