Commit 4d4be482 authored by 前端-钟卫鹏's avatar 前端-钟卫鹏

添加用户注册相关api

parent 9949e9e8
......@@ -11,6 +11,7 @@ import { FormPage } from 'god'
import { IFormControllers, IFormButtonTypes } from 'god/dist/src/form-page'
import { Link, history } from 'umi'
import im_success from '../../../mockStatic/im_success.png'
import { postMemberRegister, getRegisterTypeList, postMemberRegisterType } from '@/services/member'
const { TextArea } = Input;
const Step = Steps.Step
......@@ -40,11 +41,14 @@ const registerForm: IFormControllers[] = [
inputProps: {
addonBefore: <div className={styles.formBefore}>+86</div>,
placeholder: '请输入你的手机号码',
}
},
rules: [
{ required: true, message: '手机号为必填项!' }
]
},
{
type: 'Verification',
name: 'code',
name: 'smsCode',
span: 24,
inputProps: {
......@@ -58,31 +62,31 @@ const registerForm: IFormControllers[] = [
type: 'password',
placeholder: '设置你的密码',
},
// rules: [
// { required: true, message: '密码为必填项!' },
// { pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,20}$/, message: '密码长度8-20个字符,必须包含大小写字母和数字!' }
// ],
rules: [
{ required: true, message: '密码为必填项!' },
{ pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,20}$/, message: '密码长度8-20个字符,必须包含大小写字母和数字!' }
],
},
{
type: 'Input',
name: 'confirmPassword',
name: 'confirm',
span: 24,
dependencies: ['password'],
inputProps: {
type: 'password',
placeholder: '请再次输入你的登录密码',
},
// rules: [
// { required: true, message: '请再次确认密码!' },
// ({ getFieldValue }) => ({
// validator(rule, value) {
// if (!value || getFieldValue('password') === value) {
// return Promise.resolve();
// }
// return Promise.reject('两次的密码输入不一致!');
// },
// }),
// ]
rules: [
{ required: true, message: '请再次确认密码!' },
({ getFieldValue }) => ({
validator(rule, value) {
if (!value || getFieldValue('password') === value) {
return Promise.resolve();
}
return Promise.reject('两次的密码输入不一致!');
},
}),
]
},
{
type: 'Input',
......@@ -125,13 +129,26 @@ let timeChange: any; // 定时器
const UserRegistry = () => {
const [identityForm1] = Form.useForm();
const [licenseForm] = Form.useForm();
const [current, setCurrent] = useState(0)
const [current, setCurrent] = useState(1.1)
const handleOneSubmit = (values: any) => {
console.log(values, 'values')
let obj = { ...values }
delete obj.readme
delete obj.confirm
console.log(obj, 'values')
postMemberRegister(obj).then(res => {
console.log(res,'res')
// if(res.data.id) setCurrent(1)
})
if(values.phone) setCurrent(1)
}
const handleRegisterTypeList = () => {
getRegisterTypeList().then(res=>{
console.log(res, 'res')
})
}
const handleJumpLogin = () => {
history.push('/user/login')
}
......@@ -153,6 +170,7 @@ const UserRegistry = () => {
const [time, setTime] = useState(5);
useEffect(() => {
clearInterval(timeChange)
handleRegisterTypeList()
}, [])
useEffect(() => {
console.log(current)
......@@ -233,16 +251,16 @@ const UserRegistry = () => {
>
<h3 className="commonPanelTitle">请选择您的身份</h3>
<Divider />
<Form.Item name='identity'>
<Radio.Group onChange={onChange} defaultValue="a" className={styles.identityRadio} name="identity">
<Form.Item name='typeId' initialValue="a">
<Radio.Group onChange={onChange} className={styles.identityRadio} name="typeId">
<Radio.Button value="a">企业</Radio.Button>
<Radio.Button value="b">个人</Radio.Button>
</Radio.Group>
</Form.Item>
<h3 className="commonPanelTitle">请选择您要开展的业务</h3>
<Divider />
<Form.Item name='business'>
<Radio.Group onChange={onChange} defaultValue="f" className={styles.businessRadio} name="business">
<Form.Item name='businessTypeId' initialValue="f">
<Radio.Group onChange={onChange} className={styles.businessRadio} name="businessTypeId">
<Radio.Button value="c">采购</Radio.Button>
<Radio.Button value="d">商品销售</Radio.Button>
<Radio.Button value="e">加工服务</Radio.Button>
......
declare namespace MemberApi {
interface RegisterBasicModel {
interface RegisterBasicDTO {
phone: string;
smsCode: string;
password: string;
email: string;
}
interface RegisterBasicDTO {
interface RegisterBasicModel {
id: number
}
interface RegisterTypeDTO {
id: number;
typeId: number;
businessTypeId: number;
}
interface MemberTypeItem {
id: number;
typeName: string;
}
interface BusinessTypeItem {
id: number;
businessTypeName: string;
}
interface RegisterTypeModel {
memberType: MemberTypeItem[];
businessType: BusinessTypeItem[];
}
interface CheckRulesItem {
id: number;
ruleName: string;
ruleType: string;
rulePattern: RegExp;
msg: string;
}
interface RegisterElementItem {
id: number;
fieldName: string;
fieldCNName: string;
fieldType: string;
fieldLength: number;
fieldEmpty: number;
fieldOrder: number;
fieldRemark: string;
checkRules: CheckRulesItem[];
}
interface RegisterDetailElementModel{
groupName: string;
elements: RegisterElementItem[];
}
}
\ No newline at end of file
......@@ -6,10 +6,58 @@ const prefix = '/member/merchant'
* @description 用户基础注册接口
* @param {MemberApi.RegisterBasicModel} params
*/
export async function postMemberRegister(params: MemberApi.RegisterBasicModel) {
return request<MemberApi.RegisterBasicDTO>('/member/register/basic', {
export async function postMemberRegister(params: MemberApi.RegisterBasicDTO) {
return request<MemberApi.RegisterBasicModel>('/member/register/basic', {
prefix,
method: 'post',
data: params
})
}
/**
* @description 用户会员注册 获取会员/业务类型
*
*/
export async function getRegisterTypeList() {
return request<MemberApi.RegisterTypeModel>('/menu/member/register/type', {
prefix
})
}
/**
* @description 用户会员注册 提交会员类型业务类型
* @param {MemberApi.RegisterTypeDTO}
*/
export async function postMemberRegisterType(params: MemberApi.RegisterTypeDTO) {
return request('/member/register/type', {
prefix,
method: 'post',
data: params
})
}
/**
* @description 获取注册详情页 element元素数据
*
*/
export async function getRegisterElementList() {
return request<MemberApi.RegisterDetailElementModel>('/menu/member/register/detail', {
prefix
})
}
/**
* @description 用户会员注册 提交注册详情
* @param {T}
*/
export async function postMemberRegisterDetail<T>(params: T) {
return request('/member/register/detail', {
prefix,
method: 'post',
data: params
})
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment