From 0eb129a9beddbb86ae74d7106a8e60823206b8d5 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 14 十二月 2023 11:29:15 +0800 Subject: [PATCH] 2023-12-14 --- src/components/normalform/modalform/index.jsx | 41 ++++++++++++++++++++++++----------------- 1 files changed, 24 insertions(+), 17 deletions(-) diff --git a/src/components/normalform/modalform/index.jsx b/src/components/normalform/modalform/index.jsx index 2b9b80c..aafd7bf 100644 --- a/src/components/normalform/modalform/index.jsx +++ b/src/components/normalform/modalform/index.jsx @@ -7,6 +7,7 @@ import asyncComponent from '@/utils/asyncComponent' import MKEInput from './mkInput' import MKNumberInput from './mkNumberInput' +import MKEmitter from '@/utils/events.js' import MKSelect from './mkSelect' import './index.scss' @@ -17,14 +18,16 @@ const MKCheckbox = asyncComponent(() => import('./mkCheckbox')) const StyleInput = asyncComponent(() => import('./styleInput')) const MKFileUpload = asyncComponent(() => import('@/tabviews/zshare/fileupload')) -const MKColor = asyncComponent(() => import('@/tabviews/zshare/mutilform/mkColor')) +const MKColor = asyncComponent(() => import('@/mob/colorsketch')) +// const MKColor = asyncComponent(() => import('@/tabviews/zshare/mutilform/mkColor')) const MkEditIcon = asyncComponent(() => import('@/components/mkIcon')) const SourceComponent = asyncComponent(() => import('@/menu/components/share/sourcecomponent')) class ModalForm extends Component { static propTpyes = { - formlist: PropTypes.array, // 琛ㄥ崟鍒楄〃 - inputSubmit: PropTypes.func // input鍥炶溅鎻愪氦 + formlist: PropTypes.array, + inputSubmit: PropTypes.func, + transVals: PropTypes.func, } state = { @@ -70,7 +73,7 @@ required: item.required, message: item.label + '涓嶅彲涓虹┖!' }, { - validator: (rule, value, callback) => this.handleConfirmPassword(rule, value, callback, item) + validator: (rule, value, callback) => this.checkNumber(rule, value, callback, item) }] } else if (item.type === 'textarea') { item.rules = [ @@ -108,7 +111,7 @@ let supItem = fieldMap.get(key) let supval = supItem.initval - if (supItem.initval && supItem.type !== 'checkbox' && JSON.stringify(supItem.initval) === '[]') { + if (supval && JSON.stringify(supval) === '[]') { supval = '' } @@ -124,13 +127,13 @@ } else if (supItem.hidden) { cell.hidden = true - } else if (supItem.type === 'checkbox') { - let vals = [...supval, ...item.values] + } else if (item.notNull) { + cell.hidden = !supval + } else if (supItem.type === 'checkbox' || supItem.type === 'multiselect') { + let vals = [...(supval || []), ...item.values] if (vals.length === new Set(vals).size) { cell.hidden = true } - } else if (item.notNull) { - cell.hidden = !supval } else if (!item.values.includes(supval)) { cell.hidden = true } @@ -162,7 +165,7 @@ this.setState({ formlist }) } - handleConfirmPassword = (rule, value, callback, item) => { + checkNumber = (rule, value, callback, item) => { let val = parseFloat(value) if (!isNaN(val)) { @@ -179,6 +182,10 @@ this.record = {...this.record, ...values} if (!item) return + + if (item.$trans) { + this.props.transVals && this.props.transVals(values, item.field) + } if (item.controlFields) { let map = new Map() @@ -190,7 +197,7 @@ let reset = (current) => { let val = this.record[current.field] - if (val && current.type !== 'checkbox' && JSON.stringify(val) === '[]') { + if (val && JSON.stringify(val) === '[]') { val = '' } @@ -199,15 +206,15 @@ if (current.hidden) { m.hidden = true - } else if (current.type === 'checkbox') { - let vals = [...val, ...cell.values] + } else if (cell.notNull) { + m.hidden = !val + } else if (current.type === 'checkbox' || current.type === 'multiselect') { + let vals = [...(val || []), ...cell.values] if (vals.length !== new Set(vals).size) { m.hidden = false } else { m.hidden = true } - } else if (cell.notNull) { - m.hidden = !val } else { m.hidden = !cell.values.includes(val) } @@ -248,7 +255,7 @@ map.set(cell.field, cell) }) - item.callback(map, this.record) + item.callback(map, this.record, MKEmitter) this.setState({ formlist: this.state.formlist.map(cell => { @@ -281,7 +288,7 @@ } else if (item.type === 'select' || item.type === 'multiselect') { content = (<MKSelect config={item} onChange={(val, other) => this.recordChange({[item.field]: val, ...other}, item)} />) } else if (item.type === 'color') { - content = (<MKColor config={item} onChange={(val) => this.recordChange({[item.field]: val})}/>) + content = (<MKColor config={item} allowClear={item.allowClear} onChange={(val) => this.recordChange({[item.field]: val})}/>) } else if (item.type === 'styleInput') { content = (<StyleInput config={item} onChange={(val) => this.recordChange({[item.field]: val})}/>) } else if (item.type === 'radio') { -- Gitblit v1.8.0