UNPKG

ttk-app-core

Version:

@ttk/recat enterprise develop framework

64 lines (56 loc) 2.19 kB
import webapi from './webapi' import * as validator from '@/utils/validator' /************************** 属性表单 start **************************/ // 定义需要校验的字段和校验规则, 支持同一个字段多条规则和异步校验,详情可参考 // https://github.com/yiminghe/async-validator const rules = { name: { type: 'string', max: 12, min: 4, required: true, message: '请输入长度为4-12的名称'}, sortNo: [{ type: 'number', required: true, message: '请输入顺序', transform(value) { // 转换字段值 return parseInt(value); }}, { pattern: /^\d{1,12}$/, message: '顺序必须是1-12位的数字' }], isCycle: { type: 'number', required: true, message: '请选择是否循环' }, isUse: { type: 'number', required: true, message: '请选择是否启用' }, remark: { validator: (rule, value, cb) => { // 同步方法验证 if (value && !/^.{5,}$/.test(value)) { cb('描述填写时,不能少于5个字') } else { cb() } }} } // 初始化表单 export function initForm(reduce, gf, param) { return async (dispatch, getState) => { let data = param reduce('attributeForm', { type: 'update', data }) } } // 更新表单 export function updateFormObj(reduce, gf, fields) { return async (dispatch, getState) => { if (!fields) fields = gf(['attributeForm']) // 字段校验。返回一个长度为2的数组,第一个是boolean值,代表是否校验成功,第二个是错误消息状态 const [result, resultObj] = await validator.fieldValidator(fields, rules) // 更新文本域验证状态 reduce('validateState', { type: 'update', data: resultObj }) // 更新表单数据 reduce('attributeForm', { type: 'update', data: fields }) return result } } // 更新加载中状态 export function loading(reduce, gf, data) { return async (dispatch, getState) => { reduce('status', { type: 'loading', data }) } } // 更新步骤 export function skipToStep(reduce, gf, data) { return async (dispatch, getState) => { reduce('status', { type: 'step', data }) } } /************************** 属性表单 end **************************/