| | |
| | | return searchText.join(' AND ') |
| | | } |
| | | |
| | | static getSearchkeys (searches) { |
| | | let searchText = [] |
| | | |
| | | searches.forEach(item => { |
| | | if (item.forbid || !item.value) return |
| | | |
| | | let cell = { |
| | | key: item.key, |
| | | match: item.match, |
| | | type: 'text', |
| | | value: item.value |
| | | } |
| | | |
| | | if (item.type === 'text' || item.type === 'select') { // 综合搜索,文本或下拉,所有字段拼接 |
| | | if (/,/.test(item.key)) { |
| | | cell.type = 'text_or' |
| | | } |
| | | } else if (item.type === 'multi') { |
| | | cell.type = 'text_multi' |
| | | } else if (item.type === 'date') { |
| | | let _val = item.value |
| | | let timetail = '' |
| | | |
| | | if (item.match === '<' || item.match === '<=') { // 时间为<=时,匹配后一天的0点,匹配方式为< |
| | | cell.match = '<' |
| | | if (item.precision === 'day') { |
| | | _val = moment(_val, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') |
| | | } |
| | | } |
| | | if (item.match === '=') { |
| | | timetail = '' |
| | | } else if (item.precision === 'day') { |
| | | timetail = ' 00:00:00.000' |
| | | } else if (item.precision === 'hour') { |
| | | timetail = ':00:00.000' |
| | | } else if (item.precision === 'minute') { |
| | | timetail = ':00.000' |
| | | } else if (item.precision === 'second') { |
| | | timetail = '.000' |
| | | } |
| | | |
| | | cell.value = _val + timetail |
| | | } |
| | | |
| | | if (item.type === 'datemonth') { // 月-过滤条件,从月开始至结束,结束时间为月末加一天的0点,方式为< |
| | | if (item.match === '=') { |
| | | searchText.push(cell) |
| | | } else { |
| | | let _startval = moment(item.value, 'YYYY-MM').startOf('month').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | let _endval = moment(item.value, 'YYYY-MM').endOf('month').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | |
| | | searchText.push({ |
| | | key: item.key, |
| | | match: '>=', |
| | | type: 'text', |
| | | value: _startval |
| | | }, { |
| | | key: item.key, |
| | | match: '<', |
| | | type: 'text', |
| | | value: _endval |
| | | }) |
| | | } |
| | | } else if (item.type === 'dateweek') { // 周-过滤条件 |
| | | let _startval = moment(item.value, 'YYYY-MM-DD' ).startOf('week').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | let _endval = moment(item.value, 'YYYY-MM-DD').endOf('week').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | |
| | | searchText.push({ |
| | | key: item.key, |
| | | match: '>=', |
| | | type: 'text', |
| | | value: _startval |
| | | }, { |
| | | key: item.key, |
| | | match: '<', |
| | | type: 'text', |
| | | value: _endval |
| | | }) |
| | | } else if (item.type === 'daterange') { |
| | | let val = item.value.split(',') |
| | | let _startval = '' |
| | | let _endval = '' |
| | | |
| | | if (item.precision === 'day') { |
| | | _startval = val[0] + ' 00:00:00.000' |
| | | _endval = moment(val[1], 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | } else if (item.precision === 'hour') { |
| | | _startval = val[0] + ':00:00.000' |
| | | _endval = val[1] + ':00:00.000' |
| | | } else if (item.precision === 'minute') { |
| | | _startval = val[0] + ':00.000' |
| | | _endval = val[1] + ':00.000' |
| | | } else if (item.precision === 'second') { |
| | | _startval = val[0] + '.000' |
| | | _endval = val[1] + '.000' |
| | | } |
| | | |
| | | let _skey = item.key |
| | | let _ekey = item.key |
| | | |
| | | if (/,/.test(item.key)) { |
| | | _skey = item.key.split(',')[0] |
| | | _ekey = item.key.split(',')[1] |
| | | } |
| | | |
| | | searchText.push({ |
| | | key: _skey, |
| | | match: '>=', |
| | | type: 'text', |
| | | value: _startval |
| | | }, { |
| | | key: _ekey, |
| | | match: '<', |
| | | type: 'text', |
| | | value: _endval |
| | | }) |
| | | } else if (item.type === 'range') { |
| | | let val = item.value.split(',') |
| | | |
| | | searchText.push({ |
| | | key: item.key, |
| | | match: '>=', |
| | | type: 'number', |
| | | value: val[0] || -999999999 |
| | | }, { |
| | | key: item.key, |
| | | match: '<=', |
| | | type: 'number', |
| | | value: val[1] || 999999999 |
| | | }) |
| | | } else { |
| | | searchText.push(cell) |
| | | } |
| | | }) |
| | | |
| | | return searchText |
| | | } |
| | | |
| | | /** |
| | | * @description 获取搜索用于正则替换 |
| | | * @param {Array} searches 搜索条件 |
| | |
| | | * @return {Array} columns 显示列 |
| | | * @return {Boolean} retmsg 是否需要数据返回 |
| | | */ |
| | | export function getSysDefaultSql (btn, setting, formdata, param, data, columns, retmsg = false, moduleParams) { |
| | | export function getSysDefaultSql (btn, setting, formdata, param, data, columns, retmsg = false) { |
| | | let primaryId = param.ID |
| | | let BID = param.BID || '' |
| | | let verify = btn.verify || {} |
| | |
| | | } |
| | | |
| | | // 失效验证,添加数据时不用 |
| | | if (verify.invalid === 'true' && moduleParams && moduleParams.dataresource) { |
| | | let datasource = moduleParams.dataresource |
| | | let customScript = moduleParams.customScript || '' |
| | | if (verify.invalid === 'true' && setting.dataresource) { |
| | | let datasource = setting.dataresource |
| | | let customScript = setting.customScript || '' |
| | | |
| | | let regoptions = [{ |
| | | reg: new RegExp('@userName@', 'ig'), |
| | | value: `'${sessionStorage.getItem('User_Name') || ''}'` |
| | | }, { |
| | | reg: new RegExp('@fullName@', 'ig'), |
| | | value: `'${sessionStorage.getItem('Full_Name') || ''}'` |
| | | }, { |
| | | reg: new RegExp('@orderBy@', 'ig'), |
| | | value: setting.order || primaryKey |
| | | }, { |
| | | reg: new RegExp('@pageSize@', 'ig'), |
| | | value: 1 |
| | | }, { |
| | | reg: new RegExp('@pageIndex@', 'ig'), |
| | | value: 1 |
| | | }] |
| | | |
| | | 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 |
| | | } else if (_data.hasOwnProperty(_linkKey)) { |
| | | _val = _data[_linkKey] |
| | | _lpline = `set @ModularDetailCode= 'BN'+ right(@BID@,48)` |
| | | } else { |
| | | _lpline = `set @ModularDetailCode= 'BN'+ right(@${_linkKey},48)` |
| | | } |
| | | _ModularDetailCode = `'${item.TypeCharOne + _val}'` |
| | | } else { |
| | | _ModularDetailCode = `'${item.ModularDetailCode}'` |
| | | _lpline = `set @ModularDetailCode= right('${item.ModularDetailCode}',50)` |
| | | } |
| | | |
| | | let _declare = '' |
| | | // let _declare = '' |
| | | |
| | | if (!_vars.includes(_key)) { |
| | | _declare = `Declare @${_key} nvarchar(50)` |
| | | _vars.push(_key) |
| | | } |
| | | // if (!_vars.includes(_key)) { |
| | | // _declare = `Declare @${_key} nvarchar(50)` |
| | | // _vars.push(_key) |
| | | // } |
| | | |
| | | _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 (data && 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 + '=' + data[col.field] + ',' |
| | | _index++ |
| | | }) |
| | |
| | | _sql += _backCustomScript |
| | | } |
| | | |
| | | _sql = _sql.replace(/@works_flow_sign@/ig, `'${sign}'`) |
| | | if (verify.flowType === 'start') { |
| | | _sql = _sql.replace(/@start_type@/ig, `'开始'`) |
| | | } else { |
| | | _sql = _sql.replace(/@works_flow_sign@/ig, `'${sign}'`) |
| | | |
| | | _sql = _sql.replace(/@check_userids@/ig, `'${checkIds.join(',')}'`) |
| | | _sql = _sql.replace(/@notice_userids@/ig, `'${noticeIds.join(',')}'`) |
| | | _sql = _sql.replace(/@check_type@/ig, verify.flowType === 'reject' ? `'驳回'` : `'审核'`) |
| | | _sql = _sql.replace(/@notice_type@/ig, `'抄送'`) |
| | | |
| | | _sql = _sql.replace(/@start_type@/ig, `'开始'`) |
| | | _sql = _sql.replace(/@check_type@/ig, verify.flowType === 'reject' ? `'驳回'` : `'审核'`) |
| | | _sql = _sql.replace(/@notice_type@/ig, `'抄送'`) |
| | | _sql = _sql.replace(/@check_userids@/ig, `'${checkIds.join(',')}'`) |
| | | _sql = _sql.replace(/@notice_userids@/ig, `'${noticeIds.join(',')}'`) |
| | | } |
| | | |
| | | _sql = _sql.replace(/@works_flow_code@/ig, `'${flow.flow_code}'`) |
| | | _sql = _sql.replace(/@works_flow_name@/ig, `'${flow.flow_name}'`) |
| | |
| | | /** |
| | | * @description 生成替换函数列表 |
| | | */ |
| | | export function setGLOBFuncs () { |
| | | window.GLOB.funcs = [] |
| | | if (!window.GLOB.IndexDB) { |
| | | return |
| | | } |
| | | // export function setGLOBFuncs () { |
| | | // window.GLOB.funcs = [] |
| | | // if (!window.GLOB.IndexDB) { |
| | | // return |
| | | // } |
| | | |
| | | let objectStore = window.GLOB.IndexDB.transaction('funcs').objectStore('funcs') |
| | | // let objectStore = window.GLOB.IndexDB.transaction('funcs').objectStore('funcs') |
| | | |
| | | objectStore.openCursor().onsuccess = (event) => { |
| | | let cursor = event.target.result |
| | | // objectStore.openCursor().onsuccess = (event) => { |
| | | // let cursor = event.target.result |
| | | |
| | | if (cursor) { |
| | | window.GLOB.funcs.push({ |
| | | func_code: cursor.value.func_code, |
| | | key_sql: window.decodeURIComponent(window.atob(cursor.value.key_sql)) |
| | | }) |
| | | cursor.continue() |
| | | } |
| | | } |
| | | } |
| | | // if (cursor) { |
| | | // window.GLOB.funcs.push({ |
| | | // func_code: cursor.value.func_code, |
| | | // key_sql: window.decodeURIComponent(window.atob(cursor.value.key_sql)) |
| | | // }) |
| | | // cursor.continue() |
| | | // } |
| | | // } |
| | | // } |