From 08cce3334a2dc81d690b518136b0aaea64e48b0b Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 14 六月 2023 09:55:50 +0800 Subject: [PATCH] 2023-06-14 --- src/tabviews/zshare/mutilform/index.jsx | 87 +++++++++++++++++++++++++++++++++++-------- 1 files changed, 71 insertions(+), 16 deletions(-) diff --git a/src/tabviews/zshare/mutilform/index.jsx b/src/tabviews/zshare/mutilform/index.jsx index a1ea659..067bfd2 100644 --- a/src/tabviews/zshare/mutilform/index.jsx +++ b/src/tabviews/zshare/mutilform/index.jsx @@ -19,6 +19,7 @@ const MKCheckCard = asyncComponent(() => import('./mkCheckCard')) const MKSwitch = asyncComponent(() => import('./mkSwitch')) +const MKCheck = asyncComponent(() => import('./mkCheck')) const MKCheckbox = asyncComponent(() => import('./mkCheckbox')) const MKRadio = asyncComponent(() => import('./mkRadio')) const MKDatePicker = asyncComponent(() => import('./mkDatePicker')) @@ -117,18 +118,20 @@ } delete item.field return true - } else if (item.type === 'date') { // 鏃堕棿鎼滅储 + } else if (item.type === 'date') { item.precision = item.precision || 'day' } else if (item.type === 'datetime') { item.type = 'date' item.precision = 'second' } - if (!item.field || !['text', 'number', 'switch', 'rate', 'select', 'link', 'cascader', 'linkMain', 'funcvar', 'date', 'datemonth', 'radio', 'checkbox', 'checkcard', 'fileupload', 'textarea', 'multiselect', 'brafteditor', 'color', 'vercode'].includes(item.type)) return false + if (!item.field || !['text', 'number', 'switch', 'check', 'rate', 'select', 'link', 'cascader', 'linkMain', 'funcvar', 'date', 'datemonth', 'radio', 'checkbox', 'checkcard', 'fileupload', 'textarea', 'multiselect', 'brafteditor', 'color', 'vercode'].includes(item.type)) return false if (/^\s+$/.test(item.label)) { item.style = item.style || {} - item.style.color = 'transparent' + item.style.opacity = 0 + item.style.width = 1 + item.style.display = 'inline-block' } // 鏁版嵁鑷姩濉厖 @@ -175,6 +178,19 @@ if (item.empty === 'hidden' && item.oriOptions.length === 0) { item.hidden = true } + if (item.type === 'checkcard' && item.readonly && item.unchecked === 'hidden') { + let selectKeys = item.initval + if (item.multiple === 'true') { + selectKeys = selectKeys ? selectKeys.split(',') : [] + item.options = item.options.filter(item => selectKeys.includes(item.$value)) + } else { + item.options = item.options.filter(item => selectKeys === item.$value) + } + item.oriOptions = fromJS(item.options).toJS() + if (item.options.length === 0) { + item.hidden = true + } + } } let newval = '$empty' @@ -205,7 +221,7 @@ if (newval === '$empty' && item.initval) { newval = moment().subtract(item.initval, 'month').format('YYYY-MM') } - } else if (item.type === 'switch') { // 寮�鍏冲彧鎺ユ敹鍥哄畾鍊� + } else if (item.type === 'switch' || item.type === 'check') { // 寮�鍏冲嬀閫夋鍙帴鏀跺浐瀹氬�� if (newval !== '$empty' && (newval === item.closeVal || newval === item.openVal)) { } else if (item.initval === true) { @@ -397,10 +413,13 @@ let cell = fieldMap.get(item.field) - if (cell.hidden) return - + // if (cell.hidden) return + if (supItem.hidden || !item.values.includes(supItem.initval)) { cell.hidden = true + if (cell.empty === 'hidden') { + cell.$hidden = true + } fieldMap.set(item.field, cell) } @@ -464,7 +483,7 @@ } if (['select', 'link', 'radio'].includes(item.type)) { // 閫変腑绗竴椤� - if (typeof(item.initval) === 'string' && item.initval.indexOf('$first') > -1) { + if (/^\s*\$first\s*$/.test(item.initval)) { item.$first = true item.initval = '' } @@ -527,9 +546,17 @@ if (unload) return if (action.setting && action.setting.focus && fieldMap.has(action.setting.focus)) { - setTimeout(() => { - MKEmitter.emit('mkFC', 'focus', fieldMap.get(action.setting.focus).uuid) - }, 500) + let focusItem = fieldMap.get(action.setting.focus) + + if (focusItem.type === 'text' || focusItem.type === 'number') { + setTimeout(() => { + MKEmitter.emit('mkFC', 'focus', focusItem.uuid) + }, 50) + } else { + setTimeout(() => { + MKEmitter.emit('mkFC', 'focus', focusItem.uuid) + }, 500) + } } if (deForms.length > 0) { @@ -568,6 +595,9 @@ if (debug) { console.info(sql) } + + sql = sql.replace(/%/ig, ' mpercent ') + mainItems.push(`select '${item.field}' as obj_name,'${item.arr_field}' as arr_field,'${window.btoa(window.encodeURIComponent(sql))}' as LText`) } else { let sql = _sql + item.base_sql @@ -579,6 +609,9 @@ if (debug) { console.info(sql) } + + sql = sql.replace(/%/ig, ' mpercent ') + localItems.push(`select '${item.field}' as obj_name,'${item.arr_field}' as arr_field,'${window.btoa(window.encodeURIComponent(sql))}' as LText`) } }) @@ -821,8 +854,23 @@ } } - if (item.empty === 'hidden' && item.oriOptions.length > 0) { + if (item.empty === 'hidden' && item.oriOptions.length > 0 && !item.$hidden) { item.hidden = false + } + if (item.type === 'checkcard' && item.readonly && item.unchecked === 'hidden') { + let selectKeys = item.initval + if (item.multiple === 'true') { + selectKeys = selectKeys ? selectKeys.split(',') : [] + item.options = item.options.filter(item => selectKeys.includes(item.$value)) + } else { + item.options = item.options.filter(item => selectKeys === item.$value) + } + item.oriOptions = fromJS(item.options).toJS() + if (item.options.length === 0) { + item.hidden = true + } else { + item.hidden = false + } } } @@ -882,6 +930,10 @@ current.controlFields.forEach(cell => { let m = map.get(cell.field) m.hidden = current.hidden || !cell.values.includes(val) + + if (m.empty === 'hidden' && m.oriOptions.length === 0) { + m.hidden = true + } if (m.hidden) { m.initval = this.record[m.field] @@ -960,6 +1012,8 @@ content = (<MKCheckCard config={item} onChange={(val, other) => this.recordChange({[item.field]: val, ...other}, item)}/>) } else if (item.type === 'switch') { content = (<MKSwitch config={item} onChange={(val) => this.recordChange({[item.field]: val}, item)}/>) + } else if (item.type === 'check') { + content = (<MKCheck config={item} onChange={(val) => this.recordChange({[item.field]: val}, item)}/>) } else if (item.type === 'checkbox') { content = (<MKCheckbox config={item} onChange={(val) => this.recordChange({[item.field]: val})}/>) } else if (item.type === 'radio') { @@ -1027,7 +1081,8 @@ readin: item.readin, writein: item.writein, fieldlen: item.fieldlength, - key: item.field + key: item.field, + isconst: item.constant === 'true' } _item.value = record[item.field] !== undefined ? record[item.field] : '' @@ -1054,10 +1109,10 @@ _item.value = _item.value.slice(-item.fieldlength) } } - } else if (item.type.indexOf('date') > -1) { - if (item.declareType === 'nvarchar(50)') { - _item.type = 'text' - } + } else if (item.type === 'datemonth') { + _item.type = 'text' + } else if (item.type === 'date') { + _item.type = item.declareType === 'nvarchar(50)' ? 'text' : 'date' } else if (item.type === 'vercode') { _item.type = 'text' forms.push({ -- Gitblit v1.8.0