| | |
| | | const MKFileUpload = asyncComponent(() => import('../fileupload')) |
| | | const MKColor = asyncComponent(() => import('./mkColor')) |
| | | const MkFormula = asyncComponent(() => import('./mkFormula')) |
| | | const MkCascader = asyncComponent(() => import('./mkCascader')) |
| | | const MKEditor = asyncComponent(() => import('@/components/editor')) |
| | | |
| | | class MainSearch extends Component { |
| | |
| | | item.precision = 'second' |
| | | } |
| | | |
| | | if (!item.field || !['text', 'number', 'switch', 'rate', 'select', 'link', 'linkMain', 'funcvar', 'date', 'datemonth', 'radio', 'checkbox', 'checkcard', 'fileupload', 'textarea', 'multiselect', 'brafteditor', 'color'].includes(item.type)) return false |
| | | if (!item.field || !['text', 'number', 'switch', 'rate', 'select', 'link', 'cascader', 'linkMain', 'funcvar', 'date', 'datemonth', 'radio', 'checkbox', 'checkcard', 'fileupload', 'textarea', 'multiselect', 'brafteditor', 'color'].includes(item.type)) return false |
| | | |
| | | if (/^\s+$/.test(item.label)) { |
| | | item.style = item.style || {} |
| | |
| | | item.initval = item.initval || 0 |
| | | } |
| | | |
| | | if (['select', 'link', 'radio', 'checkbox', 'checkcard', 'multiselect'].includes(item.type)) { |
| | | if (['select', 'link', 'radio', 'checkbox', 'checkcard', 'multiselect', 'cascader'].includes(item.type)) { |
| | | item.options = item.options || [] |
| | | item.options = item.options.filter(cell => { |
| | | cell.value = cell.Value |
| | |
| | | item.initval = '' |
| | | } |
| | | |
| | | if (['select', 'link', 'radio', 'checkbox', 'checkcard', 'multiselect'].includes(item.type) && item.resourceType === '1') { |
| | | if (['select', 'link', 'radio', 'checkbox', 'checkcard', 'multiselect', 'cascader'].includes(item.type) && item.resourceType === '1') { |
| | | deForms.push(item) |
| | | } else if (item.type === 'rate') { |
| | | item.rateCount = item.rateCount || 5 |
| | |
| | | pattern: /^[^']*$/ig, |
| | | message: '不可使用英文状态的单引号!' |
| | | }, { |
| | | pattern: /^[^--]*$/ig, |
| | | message: '不可使用 -- !' |
| | | validator: (rule, value, callback) => { |
| | | if (/--/ig.test(value)) { |
| | | callback('不可使用 -- !') |
| | | } else { |
| | | callback() |
| | | } |
| | | } |
| | | }, { |
| | | required: item.required === 'true', |
| | | message: item.label + '不可为空!' |
| | |
| | | pattern: /^[^']*$/ig, |
| | | message: '不可使用英文状态的单引号!' |
| | | }, { |
| | | pattern: /^[^--]*$/ig, |
| | | message: '不可使用 -- !' |
| | | validator: (rule, value, callback) => { |
| | | if (/--/ig.test(value)) { |
| | | callback('不可使用 -- !') |
| | | } else { |
| | | callback() |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | item.rules = _rules |
| | |
| | | item.options = fromJS(item.oriOptions).toJS() |
| | | } |
| | | item.linkSubField = null |
| | | } else if (item.type === 'cascader' && item.fillField) { |
| | | let n = fieldMap.get(item.fillField) |
| | | item.fillFieldId = n ? n.uuid : '' |
| | | } |
| | | |
| | | // if (item.type === 'link') { |
| | |
| | | item.options = item.oriOptions.filter(option => option.ParentID === item.supInitVal || option.value === '') |
| | | } |
| | | |
| | | if (['select', 'link', 'radio'].includes(item.type) && item.resourceType !== '1') { // 选中第一项 |
| | | if (['select', 'link', 'radio'].includes(item.type) && item.resourceType === '0') { // 选中第一项 |
| | | if (typeof(item.initval) === 'string' && item.initval.indexOf('$first') > -1) { |
| | | item.initval = item.options[0] ? item.options[0].value : '' |
| | | } |
| | |
| | | item.subFields.forEach(n => { |
| | | reFieldsVal[n.field] = option[n.field] |
| | | }) |
| | | } |
| | | } else if (item.fillField && item.initval && item.separator && item.options.length > 0) { |
| | | let initvals = item.initval.split(item.separator) |
| | | let label = [] |
| | | initvals.forEach(m => { |
| | | // eslint-disable-next-line |
| | | let option = item.options.filter(cell => m == cell.value)[0] |
| | | if (option) { |
| | | label.push(option.label) |
| | | } |
| | | }) |
| | | |
| | | label = label.join(item.separator) |
| | | |
| | | if (label) { |
| | | reFieldsVal = reFieldsVal || {} |
| | | reFieldsVal[item.fillField] = label |
| | | } |
| | | } |
| | | |
| | |
| | | resetFormList = (result) => { |
| | | let reFieldsVal = null |
| | | let _formlist = fromJS(this.state.formlist).toJS().map(item => { |
| | | if (['select', 'link', 'radio', 'checkbox', 'checkcard', 'multiselect'].includes(item.type) && result[item.field] && result[item.field].length > 0) { |
| | | if (['select', 'link', 'radio', 'checkbox', 'checkcard', 'multiselect', 'cascader'].includes(item.type) && result[item.field] && result[item.field].length > 0) { |
| | | let options = [] |
| | | result[item.field].forEach(cell => { |
| | | let _cell = { key: Utils.getuuid() } |
| | |
| | | reFieldsVal[n.field] = option[n.field] |
| | | }) |
| | | } |
| | | } else if (item.fillField && item.initval && item.separator && item.options.length > 0) { |
| | | let initvals = item.initval.split(item.separator) |
| | | let label = [] |
| | | initvals.forEach(m => { |
| | | // eslint-disable-next-line |
| | | let option = item.options.filter(cell => m == cell.value)[0] |
| | | if (option) { |
| | | label.push(option.label) |
| | | } |
| | | }) |
| | | |
| | | label = label.join(item.separator) |
| | | |
| | | if (label) { |
| | | reFieldsVal = reFieldsVal || {} |
| | | reFieldsVal[item.fillField] = label |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | callback(item.label + '最小值为 ' + item.min) |
| | | } else if (typeof(item.max) === 'number' && val > item.max) { |
| | | callback(item.label + '最大值为 ' + item.max) |
| | | } else { |
| | | callback() |
| | | } |
| | | } else { |
| | | callback() |
| | | } |
| | | callback() |
| | | } |
| | | |
| | | recordChange = (values, item) => { |
| | |
| | | content = (<MKNumberInput config={item} onChange={(val, defer) => !defer && this.recordChange({[item.field]: val})} onSubmit={this.props.inputSubmit} />) |
| | | } else if (item.type === 'select' || item.type === 'link' || item.type === 'multiselect') { |
| | | content = (<MKSelect config={item} onChange={(val, other) => this.recordChange({[item.field]: val, ...other}, item)} onSubmit={this.props.inputSubmit} />) |
| | | } else if (item.type === 'cascader') { |
| | | content = (<MkCascader 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})}/>) |
| | | } else if (item.type === 'checkcard') { |