From eec619b6e3339e9999a7a1c2c5454cef5d763b24 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 29 四月 2022 18:38:55 +0800 Subject: [PATCH] 2022-04-29 --- src/utils/utils.js | 312 ++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 232 insertions(+), 80 deletions(-) diff --git a/src/utils/utils.js b/src/utils/utils.js index e96a81f..b3a0d14 100644 --- a/src/utils/utils.js +++ b/src/utils/utils.js @@ -249,22 +249,44 @@ item.required = !item.hidden && item.required === 'true' item.advanced = item.advanced === 'true' item.$forbid = item.query === 'false' + item.precision = item.precision || 'day' if (item.type === 'date') { // 鏃堕棿鎼滅储 - item.initval = item.initval ? moment().subtract(item.initval, 'days').format('YYYY-MM-DD') : '' + 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') { + 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 = '' @@ -358,6 +380,7 @@ label: cell.label, value: cell.initval, required: cell.required, + precision: cell.precision || 'day', forbid: cell.$forbid } @@ -398,10 +421,18 @@ 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' } } @@ -437,8 +468,20 @@ 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 @@ -463,59 +506,87 @@ 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 ') } /** @@ -543,10 +614,24 @@ 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) @@ -577,11 +662,23 @@ } 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)) @@ -707,14 +804,16 @@ static getSelectQueryOptions (item) { let arrfield = [item.valueField, item.valueText] - if (item.type === 'link') { - arrfield.push(item.linkField) - } else if (item.type === 'checkcard') { + if (item.type === 'checkcard') { arrfield = item.fields.map(f => f.field) arrfield.push(item.cardValField) if (item.urlField) { arrfield.push(item.urlField) } + } + + if (item.linkField) { + arrfield.push(item.linkField) } if (['select', 'radio', 'link', 'checkcard'].includes(item.type) && item.linkSubField && item.linkSubField.length > 0) { arrfield.push(...item.linkSubField) @@ -754,7 +853,7 @@ 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) } @@ -1046,7 +1145,7 @@ 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} @@ -1112,19 +1211,6 @@ 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鍚庢墽琛岃剼鏈� @@ -1166,13 +1252,7 @@ }) 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}'`) @@ -1277,7 +1357,7 @@ 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} @@ -1392,6 +1472,8 @@ } } _initFormfields.push(`@${_key}=${val}`) + } else if (['date', 'datemonth', 'datetime'].includes(form.type)) { + _initFormfields.push(`@${_key}='${form.value || '1949-10-01'}'`) } else { _initFormfields.push(`@${_key}='${form.value}'`) } @@ -1436,7 +1518,7 @@ let _val = datavars.hasOwnProperty(_key) ? datavars[_key] : '' if (col.datatype && /^date/ig.test(col.datatype) && !_val) { - _val = '1900-01-01' + _val = '1949-10-01' } _initvars.push(_key) @@ -1489,6 +1571,24 @@ Declare @tbid nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@BillCode nvarchar(50),@BVoucher nvarchar(50),@FIBVoucherDate nvarchar(50), @FiYear nvarchar(50), @UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(50),@mk_organization nvarchar(50),@login_city nvarchar(50),@bid nvarchar(50),@ModularDetailCode nvarchar(50)${_declarefields} ` + let userName = sessionStorage.getItem('User_Name') || '' + let fullName = sessionStorage.getItem('Full_Name') || '' + let RoleID = sessionStorage.getItem('role_id') || '' + let departmentcode = sessionStorage.getItem('departmentcode') || '' + let organization = sessionStorage.getItem('organization') || '' + let city = sessionStorage.getItem('city') || '' + + if (sessionStorage.getItem('isEditState') === 'true') { + userName = sessionStorage.getItem('CloudUserName') || '' + fullName = sessionStorage.getItem('CloudFullName') || '' + } + + // 鍒濆鍖栧嚟璇佸強鐢ㄦ埛淇℃伅瀛楁 + _sql += ` + /* 鍑瘉鍙婄敤鎴蜂俊鎭垵濮嬪寲璧嬪�� */ + select @BVoucher='',@FIBVoucherDate='',@FiYear='',@ErrorCode='',@retmsg='',@UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @login_city='${city}', @BillCode='', @ModularDetailCode='' + ` + // 琛ㄥ崟鍙橀噺璧嬪�� if (_initFormfields.length > 0) { _sql += ` @@ -1517,24 +1617,6 @@ if (verify.billcodes) { verify.billcodes = verify.billcodes.filter(item => item.status !== 'false') } - - let userName = sessionStorage.getItem('User_Name') || '' - let fullName = sessionStorage.getItem('Full_Name') || '' - let RoleID = sessionStorage.getItem('role_id') || '' - let departmentcode = sessionStorage.getItem('departmentcode') || '' - let organization = sessionStorage.getItem('organization') || '' - let city = sessionStorage.getItem('city') || '' - - if (sessionStorage.getItem('isEditState') === 'true') { - userName = sessionStorage.getItem('CloudUserName') || '' - fullName = sessionStorage.getItem('CloudFullName') || '' - } - - // 鍒濆鍖栧嚟璇佸強鐢ㄦ埛淇℃伅瀛楁 - _sql += ` - /* 鍑瘉鍙婄敤鎴蜂俊鎭垵濮嬪寲璧嬪�� */ - select @BVoucher='',@FIBVoucherDate='',@FiYear='',@ErrorCode='',@retmsg='',@UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @login_city='${city}', @BillCode='', @ModularDetailCode='' - ` if (retmsg) { _callbacksql = _sql @@ -2022,7 +2104,7 @@ 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) } @@ -2038,6 +2120,76 @@ } /** + * @description 鑾峰彇鏍囪淇℃伅 + */ +export function getMark (marks, record, style = {}) { + let icon = null + let color = null + let position = null + style = JSON.parse(JSON.stringify(style)) + + marks.some(mark => { + let originVal = record[mark.field[0]] + '' + let contrastVal = '' + let result = false + + if (mark.field[1] === 'static') { + contrastVal = mark.contrastValue + '' + } else { + contrastVal = record[mark.field[2]] + '' + } + + if (mark.match === '=') { + result = originVal === contrastVal + } else if (mark.match === '!=') { + result = originVal !== contrastVal + } else if (mark.match === 'like') { + result = originVal.indexOf(contrastVal) > -1 + } else if (mark.match === '>') { + result = parseFloat(originVal) > parseFloat(contrastVal) + } else if (mark.match === '<') { + result = parseFloat(originVal) < parseFloat(contrastVal) + } + + if (!result) return false + + let type = mark.signType[0] + + if (type === 'font') { + style.color = mark.color + } else if (type === 'background') { + style.background = mark.color + if (mark.fontColor) { + style.color = mark.fontColor + } + } else if (type === 'underline') { + style.textDecoration = 'underline' + style.color = mark.color + } else if (type === 'line-through') { + style.textDecoration = 'line-through' + style.color = mark.color + } else if (type.indexOf('icon') > -1) { + icon = mark.signType[mark.signType.length - 1] + color = mark.color + if (type === 'iconfront' || mark.signType[1] === 'front') { + position = 'front' + } else { + position = 'back' + } + } + + return true + }) + + return { + style, + icon, + color, + position + } +} + +/** * @description 鐢熸垚鏇挎崲鍑芥暟鍒楄〃 */ export function setGLOBFuncs () { -- Gitblit v1.8.0