| | |
| | | item.$forbid = item.query === 'false' |
| | | |
| | | if (item.type === 'date') { // 时间搜索 |
| | | item.initval = item.initval ? moment().subtract(item.initval, 'days').format('YYYY-MM-DD') : '' |
| | | item.precision = item.precision || 'day' |
| | | let format = 'YYYY-MM-DD' |
| | | if (item.precision === 'day') { |
| | | |
| | | } else if (item.precision === 'hour') { |
| | | format = 'YYYY-MM-DD HH' |
| | | } else if (item.precision === 'minute') { |
| | | format = 'YYYY-MM-DD HH:mm' |
| | | } else if (item.precision === 'second') { |
| | | format = 'YYYY-MM-DD HH:mm:ss' |
| | | } |
| | | |
| | | item.initval = item.initval ? moment().subtract(item.initval, 'days').format(format) : '' |
| | | } else if (item.type === 'datemonth') { |
| | | item.initval = item.initval ? moment().subtract(item.initval, 'month').format('YYYY-MM') : '' |
| | | } else if (item.type === 'dateweek') { |
| | | item.initval = item.initval ? moment().subtract(item.initval * 7, 'days').format('YYYY-MM-DD') : '' |
| | | } else if (item.type === 'daterange') { |
| | | item.precision = item.precision || 'day' |
| | | let format = 'YYYY-MM-DD' |
| | | if (item.precision === 'day') { |
| | | |
| | | } else if (item.precision === 'hour') { |
| | | format = 'YYYY-MM-DD HH' |
| | | } else if (item.precision === 'minute') { |
| | | format = 'YYYY-MM-DD HH:mm' |
| | | } else if (item.precision === 'second') { |
| | | format = 'YYYY-MM-DD HH:mm:ss' |
| | | } |
| | | if (item.initval === 'week') { |
| | | item.initval = [moment().startOf('week').format('YYYY-MM-DD'), moment().endOf('week').format('YYYY-MM-DD')].join(',') |
| | | item.initval = [moment().startOf('week').format(format), moment().endOf('week').format(format)].join(',') |
| | | } else if (item.initval === 'month') { |
| | | item.initval = [moment().startOf('month').format('YYYY-MM-DD'), moment().endOf('month').format('YYYY-MM-DD')].join(',') |
| | | item.initval = [moment().startOf('month').format(format), moment().endOf('month').format(format)].join(',') |
| | | } else if (item.initval) { |
| | | try { |
| | | let _initval = JSON.parse(item.initval) |
| | | let _vals = [moment().subtract(_initval[0], 'days').format('YYYY-MM-DD'), moment().subtract(_initval[1], 'days').format('YYYY-MM-DD')] |
| | | let _vals = [moment().subtract(_initval[0], 'days').format(format), moment().subtract(_initval[1], 'days').format(format)] |
| | | item.initval = _vals.join(',') |
| | | } catch (e) { |
| | | item.initval = '' |
| | |
| | | label: cell.label, |
| | | value: cell.initval, |
| | | required: cell.required, |
| | | precision: cell.precision || '', |
| | | forbid: cell.$forbid |
| | | } |
| | | |
| | |
| | | let _val = item.value || '' |
| | | |
| | | if (_val) { |
| | | if (item.match === '<' || item.match === '<=') { |
| | | _val = moment(_val, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | } else if (item.match === '>' || item.match === '>=') { |
| | | _val = _val + ' 00:00:00.000' |
| | | if (item.precision === 'day') { |
| | | if (item.match === '<' || item.match === '<=') { |
| | | _val = moment(_val, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | } else if (item.match === '>' || item.match === '>=') { |
| | | _val = _val + ' 00:00:00.000' |
| | | } |
| | | } else if (item.precision === 'hour') { |
| | | _val = _val + ':00:00.000' |
| | | } else if (item.precision === 'minute') { |
| | | _val = _val + ':00.000' |
| | | } else if (item.precision === 'second') { |
| | | _val = _val + '.000' |
| | | } |
| | | } |
| | | |
| | |
| | | let _endval = '' |
| | | if (item.value) { |
| | | let val = item.value.split(',') |
| | | _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' |
| | | |
| | | 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' |
| | | } |
| | | } |
| | | |
| | | newsearches[item.key] = _startval |
| | |
| | | static joinMainSearchkey (searches) { |
| | | if (!searches || searches.length === 0) return '' |
| | | |
| | | let searchText = '' |
| | | let searchText = [] |
| | | searches.forEach(item => { |
| | | if (item.forbid || !item.value) return |
| | | |
| | | searchText += (searchText !== '' ? ' AND ' : '') |
| | | if (item.type === 'text' || item.type === 'select') { // 综合搜索,文本或下拉,所有字段拼接 |
| | | let str = item.match === '=' ? '' : '%' |
| | | let str = item.match === 'like' || item.match === 'not like' ? '%' : '' |
| | | let fields = item.key.split(',').map(field => { |
| | | return field + ' ' + item.match + ' \'' + str + item.value + str + '\'' |
| | | }) |
| | | |
| | | searchText += '(' + fields.join(' OR ') + ')' |
| | | searchText.push('(' + fields.join(' OR ') + ')') |
| | | } else if (item.type === 'checkcard') { |
| | | let str = item.match === 'like' || item.match === 'not like' ? '%' : '' |
| | | |
| | | searchText.push('(' + item.key + ' ' + item.match + ' \'' + str + item.value + str + '\')') |
| | | } else if (item.type === 'multi') { |
| | | searchText += `'${item.value}' ${item.match} '%'+${item.key}+'%'` |
| | | searchText.push(`('${item.value}' ${item.match} '%'+${item.key}+'%')`) |
| | | } else if (item.type === 'date') { |
| | | let _val = item.value |
| | | let timetail = ' 00:00:00.000' |
| | | let timetail = '' |
| | | let _match = item.match |
| | | |
| | | if (item.match === '<' || item.match === '<=') { // 时间为<=时,匹配后一天的0点,匹配方式为< |
| | | _match = '<' |
| | | _val = moment(_val, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') |
| | | } else if (item.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' |
| | | } |
| | | |
| | | searchText += '(' + item.key + ' ' + _match + ' \'' + _val + timetail + '\')' |
| | | searchText.push('(' + item.key + ' ' + _match + ' \'' + _val + timetail + '\')') |
| | | } else if (item.type === 'datemonth') { // 月-过滤条件,从月开始至结束,结束时间为月末加一天的0点,方式为< |
| | | 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 += '(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')' |
| | | searchText.push('(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _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 += '(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')' |
| | | searchText.push('(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')') |
| | | } else if (item.type === 'daterange') { |
| | | let val = item.value.split(',') |
| | | let _startval = val[0] + ' 00:00:00.000' |
| | | let _endval = moment(val[1], 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | let _startval = '' |
| | | let _endval = '' |
| | | |
| | | searchText += '(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _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' |
| | | } |
| | | |
| | | searchText.push('(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')') |
| | | } else if (item.type === 'range') { |
| | | let val = item.value.split(',') |
| | | |
| | | searchText += '(' + item.key + ' >= \'' + val[0] + '\' AND ' + item.key + ' < \'' + val[1] + '\')' |
| | | searchText.push('(' + item.key + ' >= \'' + val[0] + '\' AND ' + item.key + ' < \'' + val[1] + '\')') |
| | | } else { |
| | | searchText += '(' + item.key + ' ' + item.match + ' \'' + item.value + '\')' |
| | | searchText.push('(' + item.key + ' ' + item.match + ' \'' + item.value + '\')') |
| | | } |
| | | }) |
| | | |
| | | return searchText |
| | | return searchText.join(' AND ') |
| | | } |
| | | |
| | | /** |
| | |
| | | fieldmap.set(item.key, true) |
| | | |
| | | if (item.type === 'date') { |
| | | if (['>=', '>'].includes(item.match)) { |
| | | item.value = item.value ? item.value + ' 00:00:00.000' : '1970-01-01 00:00:00.000' |
| | | } else if (['<=', '<'].includes(item.match)) { |
| | | item.value = item.value ? moment(item.value, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' : '2050-01-01 00:00:00.000' |
| | | if (!item.value) { |
| | | if (['>=', '>'].includes(item.match)) { |
| | | item.value = '1970-01-01 00:00:00.000' |
| | | } else if (['<=', '<'].includes(item.match)) { |
| | | item.value = '2050-01-01 00:00:00.000' |
| | | } |
| | | } else if (search.precision === 'day') { |
| | | if (['>=', '>'].includes(item.match)) { |
| | | item.value = item.value + ' 00:00:00.000' |
| | | } else if (['<=', '<'].includes(item.match)) { |
| | | item.value = moment(item.value, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | } |
| | | } else if (search.precision === 'hour') { |
| | | item.value = item.value + ':00:00.000' |
| | | } else if (search.precision === 'minute') { |
| | | item.value = item.value + ':00.000' |
| | | } else if (search.precision === 'second') { |
| | | item.value = item.value + '.000' |
| | | } |
| | | |
| | | options.push(item) |
| | |
| | | } else if (item.type === 'daterange') { |
| | | let _startval = '1970-01-01 00:00:00.000' |
| | | let _endval = '2050-01-01 00:00:00.000' |
| | | |
| | | |
| | | if (item.value) { |
| | | let val = item.value.split(',') |
| | | _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' |
| | | |
| | | if (search.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 (search.precision === 'hour') { |
| | | _startval = val[0] + ':00:00.000' |
| | | _endval = val[1] + ':00:00.000' |
| | | } else if (search.precision === 'minute') { |
| | | _startval = val[0] + ':00.000' |
| | | _endval = val[1] + ':00.000' |
| | | } else if (search.precision === 'second') { |
| | | _startval = val[0] + '.000' |
| | | _endval = val[1] + '.000' |
| | | } |
| | | } |
| | | |
| | | let copy = JSON.parse(JSON.stringify(item)) |
| | |
| | | sql = sql.replace(/@db@/ig, window.GLOB.externalDatabase) |
| | | } |
| | | |
| | | if ((window.GLOB.systemType !== 'production' && options.sysType !== 'cloud') || window.debugger === true) { |
| | | if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) { |
| | | console.info(sql) |
| | | } |
| | | |
| | |
| | | |
| | | aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg` |
| | | |
| | | if ((window.GLOB.systemType !== 'production' && options.sysType !== 'cloud') || window.debugger === true) { |
| | | if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) { |
| | | let fsql = ` |
| | | ${_sql} |
| | | ${_sqlInsert} |
| | |
| | | |
| | | database = database ? (database[0] || '') : '' |
| | | |
| | | let getuuid = () => { |
| | | let uuid = [] |
| | | let timestamp = new Date().getTime() |
| | | let _options = '0123456789abcdefghigklmnopqrstuv' |
| | | for (let i = 0; i < 19; i++) { |
| | | uuid.push(_options.substr(Math.floor(Math.random() * 0x20), 1)) |
| | | } |
| | | uuid = timestamp + uuid.join('') |
| | | return uuid |
| | | } |
| | | |
| | | // let upId = getuuid() |
| | | |
| | | let _initCustomScript = '' // 初始化脚本 |
| | | let _prevCustomScript = '' // 默认sql前执行脚本 |
| | | let _backCustomScript = '' // 默认sql后执行脚本 |
| | |
| | | }) |
| | | |
| | | let key = item.$$uuid |
| | | let type = 'upt' |
| | | if (key === '$new') { |
| | | key = getuuid() |
| | | type = 'add' |
| | | } else if (item.$deleted) { |
| | | type = 'del' |
| | | } |
| | | let type = item.$type || 'upt' |
| | | |
| | | vals.push(`'${key}'`) |
| | | vals.push(`'${type}'`) |
| | |
| | | |
| | | aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg` |
| | | |
| | | if ((window.GLOB.systemType !== 'production' && options.sysType !== 'cloud') || window.debugger === true) { |
| | | if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) { |
| | | let fsql = ` |
| | | ${_sql} |
| | | ${_sqlInsert} |
| | |
| | | aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg` |
| | | } |
| | | |
| | | if ((window.GLOB.systemType !== 'production' && options.sysType !== 'cloud') || window.debugger === true) { |
| | | if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) { |
| | | // _sql = _sql.replace(/\n\s{8}/ig, '\n') |
| | | console.info(_sql) |
| | | } |