From 2bccb9ec7bdefe23292a22bc153463cfa1479a49 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 21 六月 2024 16:25:42 +0800 Subject: [PATCH] 2024-06-21 --- src/tabviews/zshare/mutilform/index.jsx | 95 +++++++++++++++++++++++++++++++++-------------- 1 files changed, 67 insertions(+), 28 deletions(-) diff --git a/src/tabviews/zshare/mutilform/index.jsx b/src/tabviews/zshare/mutilform/index.jsx index 309cff6..3b6fcc1 100644 --- a/src/tabviews/zshare/mutilform/index.jsx +++ b/src/tabviews/zshare/mutilform/index.jsx @@ -6,7 +6,6 @@ import moment from 'moment' import Api from '@/api' -import { formRule } from '@/utils/option.js' import Utils from '@/utils/utils.js' import asyncComponent from '@/utils/asyncComponent' import MKEmitter from '@/utils/events.js' @@ -48,7 +47,8 @@ timestamp: '', n_id: '', focusId: '', - reFocusId: '' + reFocusId: '', + dict: window.GLOB.dict } record = {} @@ -56,6 +56,7 @@ componentDidMount () { const { action, unload } = this.props + const { dict } = this.state let data = {} let BData = {} @@ -315,14 +316,14 @@ if (item.required === 'true') { item.rules.push({ required: true, - message: item.label + '涓嶅彲涓虹┖!' + message: item.label + (dict['not_empty'] || '涓嶅彲涓虹┖锛�') }) } item.rules.push({ validator: (rule, value, callback) => { if (/'/.test(value)) { - callback('涓嶅彲浣跨敤鑻辨枃鐘舵�佺殑鍗曞紩鍙凤紒') + callback(dict['single_quot'] || '涓嶅彲浣跨敤鑻辨枃鐘舵�佺殑鍗曞紩鍙凤紒') // } else if (/--/.test(value)) { // callback('涓嶅彲浣跨敤 -- 锛�') } else { @@ -334,7 +335,7 @@ if (!item.lenControl || item.lenControl === 'limit') { item.rules.push({ max: item.fieldlength, - message: formRule.input.formMessage.replace('@max', item.fieldlength) + message: (dict['max_char'] || '鏈�澶欯max涓瓧绗�').replace('@max', item.fieldlength) }) } @@ -346,7 +347,7 @@ } item.rules.push({ pattern: reg, - message: item.regularText || formRule.input.numbermsg + message: item.regularText || dict['enter_num'] || '璇疯緭鍏ユ暟瀛楋紒' }) } else if (item.regular === 'letter') { let reg = /^[a-zA-Z]*$/ @@ -355,7 +356,7 @@ } item.rules.push({ pattern: reg, - message: item.regularText || formRule.input.lettermsg + message: item.regularText || dict['enter_letter'] || '璇疯緭鍏ュ瓧姣嶏紒' }) } else if (item.regular === 'letter_number') { let reg = /^[a-zA-Z0-9]*$/ @@ -364,7 +365,7 @@ } item.rules.push({ pattern: reg, - message: item.regularText || '璇疯緭鍏ユ暟瀛楁垨瀛楁瘝' + message: item.regularText || dict['enter_num_letter'] || '璇疯緭鍏ユ暟瀛楁垨瀛楁瘝' }) } else if (item.regular === 'letter&number') { let reg = /^[a-zA-Z0-9@_.]*$/ @@ -373,31 +374,33 @@ } item.rules.push({ pattern: reg, - message: item.regularText || '璇疯緭鍏ユ暟瀛椼�佸瓧姣嶄互鍙夽_.' + message: item.regularText || dict['enter_num_letter_char'] || '璇疯緭鍏ユ暟瀛椼�佸瓧姣嶄互鍙夽_.' }) } else if (item.regular === 'phone') { item.rules.push({ pattern: /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/, - message: item.regularText || '璇锋纭緭鍏ユ墜鏈哄彿' + message: item.regularText || dict['phone_error'] || '璇锋纭緭鍏ユ墜鏈哄彿' }) } else if (item.regular === 'email') { item.rules.push({ pattern: /^([a-zA-Z0-9._-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/, - message: item.regularText || '璇锋纭緭鍏ラ偖绠卞湴鍧�' + message: item.regularText || dict['email_error'] || '璇锋纭緭鍏ラ偖绠卞湴鍧�' }) } } } else if (item.type === 'number') { item.rules = [{ required: true, - message: item.label + '涓嶅彲涓虹┖!' + message: item.label + (dict['not_empty'] || '涓嶅彲涓虹┖锛�') }] - if (typeof(item.min) === 'number' || typeof(item.max) === 'number') { + if (typeof(item.min) === 'number' || typeof(item.max) === 'number' || item.notZero === 'true') { item.rules.push({ validator: (rule, value, callback) => { if (isNaN(value)) { callback() + } else if (item.notZero === 'true' && value === 0) { + callback(item.label + (dict['not_zero'] || '涓嶅彲涓�0')) } else if (typeof(item.min) === 'number' && value < item.min) { if (item.min < 1e-6) { if (item.min === 1e-6) { @@ -416,10 +419,10 @@ callback(item.label + '鏈�灏忓�间负 ' + item.min) } } else { - callback(item.label + '鏈�灏忓�间负 ' + item.min) + callback(item.label + (dict['less_limit'] || '鏈�灏忓�间负 ') + item.min) } } else if (typeof(item.max) === 'number' && value > item.max) { - callback(item.label + '鏈�澶у�间负 ' + item.max) + callback(item.label + (dict['max_limit'] || '鏈�澶у�间负 ') + item.max) } else { callback() } @@ -430,14 +433,14 @@ if (item.required === 'true') { item.rules.push({ required: true, - message: item.label + '涓嶅彲涓虹┖!' + message: item.label + (dict['not_empty'] || '涓嶅彲涓虹┖锛�') }) } item.rules.push({ validator: (rule, value, callback) => { if (/'/.test(value)) { - callback('涓嶅彲浣跨敤鑻辨枃鐘舵�佺殑鍗曞紩鍙凤紒') + callback(dict['single_quot'] || '涓嶅彲浣跨敤鑻辨枃鐘舵�佺殑鍗曞紩鍙凤紒') // } else if (/--/.test(value)) { // callback('涓嶅彲浣跨敤 -- 锛�') } else { @@ -446,32 +449,38 @@ } }, { max: item.fieldlength, - message: formRule.input.formMessage.replace('@max', item.fieldlength) + message: (dict['max_char'] || '鏈�澶欯max涓瓧绗�').replace('@max', item.fieldlength) }) } else if (item.type === 'brafteditor') { if (item.required === 'true') { item.rules.push({ required: true, - message: item.label + '涓嶅彲涓虹┖!' + message: item.label + (dict['not_empty'] || '涓嶅彲涓虹┖锛�') }) } item.rules.push({ max: item.fieldlength, - message: formRule.input.formMessage.replace('@max', item.fieldlength) + message: (dict['max_char'] || '鏈�澶欯max涓瓧绗�').replace('@max', item.fieldlength) }) } else if (item.type === 'linkMain' || item.type === 'vercode') { if (item.required === 'true') { item.rules.push({ required: true, - message: item.label + '涓嶅彲涓虹┖!' + message: item.label + (dict['not_empty'] || '涓嶅彲涓虹┖锛�') }) } } else { if (item.required === 'true') { item.rules.push({ required: true, - message: '璇烽�夋嫨' + item.label + '!' + message: (dict['select_tip'] || '璇烽�夋嫨') + item.label + '!' + }) + } + if (['cascader', 'checkbox', 'checkcard', 'fileupload', 'multiselect'].includes(item.type) && item.fieldlength) { + item.rules.push({ + max: item.fieldlength, + message: (dict['max_char'] || '鏈�澶欯max涓瓧绗�').replace('@max', item.fieldlength) }) } } @@ -545,7 +554,7 @@ item.subFields = [] item.linkSubField.forEach(m => { let n = fieldMap.get(m) - if (n && ['text', 'number', 'textarea'].includes(n.type)) { + if (n && ['text', 'number', 'textarea', 'select'].includes(n.type)) { item.subFields.push({ uuid: n.uuid, field: m @@ -568,7 +577,7 @@ item.subFields = [] item.linkSubField.forEach(m => { let n = fieldMap.get(m) - if (n && ['text', 'number', 'textarea'].includes(n.type)) { + if (n && ['text', 'number', 'textarea', 'select'].includes(n.type)) { item.subFields.push({ uuid: n.uuid, field: m @@ -588,7 +597,7 @@ item.subFields = [] item.linkSubField.forEach(m => { let n = fieldMap.get(m) - if (n && ['text', 'number', 'textarea'].includes(n.type)) { + if (n && ['text', 'number', 'textarea', 'select'].includes(n.type)) { item.subFields.push({ uuid: n.uuid, field: m @@ -600,7 +609,7 @@ item.subFields = [] item.linkSubField.forEach(m => { let n = fieldMap.get(m) - if (n && ['text', 'number', 'textarea'].includes(n.type)) { + if (n && ['text', 'number', 'textarea', 'select'].includes(n.type)) { item.subFields.push({ uuid: n.uuid, field: m @@ -617,7 +626,11 @@ item.supInitVal = '' if (fieldMap.has(item.linkField)) { - item.supInitVal = fieldMap.get(item.linkField).initval || '' + let supitem = fieldMap.get(item.linkField) + item.supInitVal = supitem.initval || '' + if (supitem.$first) { + item.$resetSup = true + } } else if (data.hasOwnProperty(item.linkField.toLowerCase())) { item.supInitVal = data[item.linkField.toLowerCase()] } @@ -736,6 +749,7 @@ if (action.subButton && action.subButton.resetForms) { MKEmitter.addListener('resetForms', this.resetForms) } + MKEmitter.addListener('resetFocus', this.resetFocus) } componentWillUnmount () { @@ -743,6 +757,27 @@ return } MKEmitter.removeListener('resetForms', this.resetForms) + MKEmitter.removeListener('resetFocus', this.resetFocus) + } + + resetFocus = (id, field) => { + const { action } = this.props + + if (id !== action.uuid) return + + let focusId = '' + + this.state.formlist.forEach(item => { + if (item.field === field) { + focusId = item.uuid + } + }) + + if (!focusId) return + + setTimeout(() => { + MKEmitter.emit('mkFC', 'focus', focusId) + }, 20) } resetForms = (id, data) => { @@ -1087,7 +1122,11 @@ // if (item.type === 'link') { if (item.linkField) { - item.options = item.oriOptions.filter(option => option.ParentID === item.supInitVal || option.value === '') + let supInitVal = item.supInitVal + if (item.$resetSup) { + supInitVal = this.record[item.linkField] + } + item.options = item.oriOptions.filter(option => option.ParentID === supInitVal || option.value === '') // } else if (['select', 'radio', 'checkbox', 'checkcard', 'multiselect'].includes(item.type)) { } else { item.options = item.oriOptions -- Gitblit v1.8.0