zhengpengju 3 years ago
commit 90135140c3

@ -92,13 +92,6 @@ export default defineConfig({
},
]
},
{
name: '成功',
icon: 'smile',
path: '/registration/success',
component: './registration/success',
// hideInMenu: true,
},
{
name: '课程学习',
icon: 'table',
@ -115,12 +108,14 @@ export default defineConfig({
icon: 'smile',
path: '/course/list/:msg',
component: './course/list',
hideInMenu: true,
},
{
name: '课列表',
name: '课列表',
icon: 'smile',
path: '/course/detail/:msg',
component: './course/detail',
hideInMenu: true,
},
],
},
@ -170,6 +165,12 @@ export default defineConfig({
},
],
},
{
name: '个人中心',
icon: 'dashboard',
path: '/personalCenter',
component: './personalCenter/index',
},
{
name: 'analysis',
icon: 'dashboard',

@ -90,7 +90,17 @@ const CardList = () => {
<Row>
<Col span={10} style={{padding:10}}><span></span><span>{last_data?last_data.course_name:'--'}</span></Col>
<Col span={10} style={{padding:10}}><span>{last_data?last_data.lecture_teacher:'--'}</span></Col>
<Col span={4} style={{padding:10}}><Button type="primary"></Button></Col>
<Col span={4} style={{padding:10}}>
<Button type="primary"
onClick={()=>{
if(last_data){
const info=last_data.chapter_id+','+last_data.course_id+','+subject_data.subject_id;
window.open('/#/course/detail/'+info)
}
}}
></Button>
</Col>
</Row>
</Card.Grid>
</>
@ -131,8 +141,6 @@ const CardList = () => {
</Menu>
</Col>
<Col span={18} style={{background:'#ffffff', padding:24,minHeight:'20rem'}}>
{console.log('chapterCourse', chapterCourse)}
{console.log('chapterCourse', typeof (chapterCourse))}
{
chapterCourse !== undefined &&chapterCourse !== ''?
chapterCourse.map((item,index)=>{

@ -0,0 +1,22 @@
@import '~antd/es/style/themes/default.less';
.personalCenter{
.condition{
width:20rem;
margin-bottom: 2rem;
.condition-title{
text-align: right;
width:5rem;
display: inline-block;
}
.condition-text{
margin-left:2rem
}
}
.tip{
color:red;
font-size:12px;
text-align: center;
margin-top:3rem
}
}

@ -0,0 +1,198 @@
import React, {useEffect, useRef, useState} from 'react';
import { history,useRequest } from 'umi';
import Base64 from 'base64-js';
import { ProFormInstance, ProFormRadio } from '@ant-design/pro-form';
import ProForm, {
StepsForm,
ProFormText,
ProFormDatePicker,
ProFormSelect,
ProFormDigit,
ProFormTextArea,
ProFormCheckbox,
ProFormDateRangePicker,
} from '@ant-design/pro-form';
import ProCard from '@ant-design/pro-card';
// import { Button, Col, message, Row } from 'antd';
import { PageContainer } from '@ant-design/pro-layout';
import ProDescriptions from '@ant-design/pro-descriptions';
import { queryPersonInfo,changePwd } from './service';
import './index.less';
import cookie from 'react-cookies';
import { Tabs,Input,Button,message,Modal } from 'antd';
import {saveTrain} from "../../../../admin/src/pages/training/option/service";
import {outLogin} from "@/services/ant-design-pro/api";
import {stringify} from "querystring";
// import {savePersonSignUpInfo,changePwd} from "@/pages/registration/service";
const { TabPane } = Tabs;
const { confirm } = Modal;
export default () => {
const [personInfo, setPersonInfo] = useState({});
const [oldPassWord,setOldPassWord] = useState('');
const [newPassWord,setNewPassWord] = useState('');
const [secondNewPassWord,setSecondNewPassWord] = useState('');
const data = useRequest(() => {
return queryPersonInfo({
identity_id:cookie.load('identity_id'),
person_id:cookie.load('person_id')
});
},{
formatResult: (result) => {
setPersonInfo(result.table_List);
}
});
const showConfirm=async ()=>{
confirm({
title: '确认进行密码修改吗?',
centered:true,
onOk() {
savePassWord()
},
onCancel() {
},
});
};
const loginOut = async () => {
await outLogin();
const { query = {}, pathname } = history.location;
const { redirect } = query;
// Note: There may be security issues, please note
if (window.location.pathname !== '/user/login' && !redirect) {
history.replace({
pathname: '/user/login',
search: stringify({
redirect: pathname,
}),
});
}
};
const savePassWord = async ()=>{
// const success = await changePwd({
// pwd_original:oldPassWord,
// pwd_new:newPassWord
// });
try {
const code=await changePwd({
pwd_original:oldPassWord,
pwd_new:newPassWord
});
if(code.success){
message.success('密码修改成功');
loginOut();
}
return true;
} catch (error) {
if(error.response){
message.error(error.response.info);
}else {
message.error('修改失败');
}
}
};
return (
<div className="personalCenter" style={{background:'#fff',padding:24,height:window.innerHeight-150,}}>
<Tabs defaultActiveKey="1" onChange={()=>{
}}>
<TabPane tab="个人信息" key="1">
<div style={{paddingTop:'3rem',width:'20rem',margin:'0 auto'}}>
<div className='condition' >
<div className='condition-title' ></div>
<span className='condition-text' >{personInfo?.person_name}</span>
</div>
<div className='condition'>
<div className='condition-title' ></div>
<span className='condition-text'>{personInfo?.bureau_name}</span></div>
<div className='condition'>
<div className='condition-title' ></div>
<span className='condition-text'>{personInfo?.xb_name}</span></div>
</div>
</TabPane>
<TabPane tab="密码修改" key="2">
<div style={{paddingTop:'3rem',width:'20rem',margin:'0 auto'}}>
<div className='condition' >
<div className='condition-title' ></div>
<div className='condition-text' style={{display:'inline-block',}} >
<Input.Password maxLength='12'
value={oldPassWord}
onChange={(e)=>{
const strExp= /^[A-Za-z0-9]+$/;
if(strExp.test(e.target.value) || e.target.value===''){
setOldPassWord(e.target.value);
return true;
}else {
message.warning('请输入英文或者是数字!');
setOldPassWord(e.target.value.replace(/[\W]/g, ''));
}
}}
/>
</div>
</div>
<div className='condition'>
<div className='condition-title' ></div>
<div className='condition-text' style={{display:'inline-block',}} >
<Input.Password maxLength='12'
value={newPassWord}
onChange={(e)=>{
const strExp= /^[A-Za-z0-9]+$/;
if(strExp.test(e.target.value) || e.target.value===''){
setNewPassWord(e.target.value);
return true;
}else {
message.warning('请输入英文或者是数字!');
setNewPassWord(e.target.value.replace(/[\W]/g, ''));
}
}}
/>
</div>
</div>
<div className='condition'>
<div className='condition-title' ></div>
<div className='condition-text' style={{display:'inline-block',}} >
<Input.Password maxLength='12'
value={secondNewPassWord}
onChange={(e)=>{
const strExp= /^[A-Za-z0-9]+$/;
if(strExp.test(e.target.value) || e.target.value===''){
setSecondNewPassWord(e.target.value);
return true;
}else {
message.warning('请输入英文或者是数字!');
setSecondNewPassWord(e.target.value.replace(/[\W]/g, ''));
}
}}
/>
</div>
</div>
<div className="tip">6-12</div>
<div style={{marginTop:'3rem',textAlign:'center'}}>
<Button type="primary" onClick={async ()=>{
if(oldPassWord.trim()===''||newPassWord.trim()===''||secondNewPassWord.trim()===''){
message.warning('密码不能为空!');
}else if(oldPassWord.length<6||newPassWord.length<6||secondNewPassWord.length<6){
message.warning('密码长度不能小于6位');
}else if(newPassWord!==secondNewPassWord){
message.warning('两次输入的新密码不一致!');
}else {
showConfirm();
}
}}></Button>
</div>
</div>
</TabPane>
</Tabs>
</div>
);
};

@ -0,0 +1,25 @@
import { request } from 'umi';
import type { ExaminationRuleType } from './data.d';
import {TableListItem} from "../../../../admin/src/pages/course/option/data";
// 获取人员信息
export async function queryPersonInfo(params: {
identity_id: number;
person_id: number;
//count: number;
}) {
return request('/dsideal_yy/person/getPersonInfo', {
params,
});
}
// /dsideal_yy/ypt/personal/changePwd修改密码
export async function changePwd(data: { [key: string]: any }, options?: { [key: string]: any }) {
return request('/dsideal_yy/ypt/personal/changePwd', {
data,
method: 'POST',
requestType: "form",
...(options || {}),
});
}

@ -9,3 +9,20 @@
font-weight: 500;
font-size: 16px;
}
.registration{
:global {
//.ant-pro-steps-form-step{
// min-width: 960px;
//}
.ant-space-align-center{
padding:24px;
display: block;
text-align: center;
.ant-space-item{
display: inline-block;
margin-right: 1rem;
}
}
}
}

@ -18,6 +18,8 @@ import { PageContainer } from '@ant-design/pro-layout';
import ProDescriptions from '@ant-design/pro-descriptions';
import { queryExaminationRule,queryPersonInfo,savePersonSignUpInfo } from './service';
import cookie from 'react-cookies';
import styles from './index.less'
const waitTime = (time: number = 100) => {
return new Promise((resolve) => {
setTimeout(() => {
@ -42,7 +44,6 @@ export default () => {
});
},{
formatResult: (result) => {
console.log('result',result);
setBackInfo(result.table_List);
}
});
@ -56,14 +57,13 @@ export default () => {
// });
return (
<PageContainer content={''} extraContent={''}>
<ProCard>
<ProCard className={styles.registration}>
<StepsForm<{
name: string;
}>
formRef={formRef}
style={{textAlign:'center'}}
onFinish={async () => {
const data = await waitTime(1000);
message.success('提交成功');
}}
formProps={{
layout: "horizontal",
@ -83,9 +83,9 @@ export default () => {
description: false,
}}
onFinish={async (values) => {
console.log('values',values);
console.log(formRef.current?.getFieldsValue());
await waitTime(2000);
// console.log('values',values);
// console.log(formRef.current?.getFieldsValue());
// await waitTime(2000);
setBaseInfo(values);
return true;
}}
@ -126,9 +126,9 @@ export default () => {
}}
rules={[{ required: true, message: '请选择出生年月' }]}
/>
<ProFormText name="idCard" label="身份证号" width="sm" rules={[{ required: true, message: '请输入正确身份证号' }]}/>
<ProFormText name="idCard" label="身份证号" width="sm" rules={[{ required: true, message: '请输入身份证号' },{len:18,message:'请输入18位身份证号'},{pattern:/^[0-9]+$/,message:'只允许输入数字'}]}/>
<ProFormText name="address" label="家庭地址" rules={[{ required: true, message: '请输入家庭地址' }]}/>
<ProFormText name="contact" label="联系方式" width="lg" placeholder="联系方式" rules={[{ required: true, message: '请输入联系方式' }]} />
<ProFormText name="contact" label="联系方式" width="lg" placeholder="联系方式" rules={[{ required: true, message: '请输入联系方式' },{len:11,message:'请输入11位联系方式'},{pattern:/^[0-9]+$/,message:'只允许输入数字'}]} />
</Col>
<Col lg={12} md={12} sm={24}>
<ProFormText name="org" label="所在学校" width="md" placeholder="请填写" value={backInfo?.bureau_name} disabled />
@ -219,7 +219,7 @@ export default () => {
//actionRef={actionRef}
request={async (value) => {
const data = await queryExaminationRule({
examination_id: 1
examination_id: 2
});
setTestInfo(data.bean);
@ -258,6 +258,7 @@ export default () => {
onFinish={async () => {
// console.log(formRef.current?.getFieldsValue());
// 跳转到指定路由
try {
const success = await savePersonSignUpInfo({
address:baseInfo?.address,
birthday:baseInfo?.birthday,
@ -268,7 +269,7 @@ export default () => {
district_id:backInfo?.district_id,
district_name:backInfo?.district_name,
education:baseInfo?.qualifications,
examination_id:1,
examination_id:2,
gender:baseInfo?.sex,
id_code:baseInfo?.idCard,
identity_id:backInfo?.identity_id,
@ -281,31 +282,30 @@ export default () => {
tel:baseInfo?.contact,
university:baseInfo?.graduation,
});
const msg=testInfo.examination_start_time+','+testInfo.examination_end_time+','+testInfo.examination_name+','+success.admission_number;
history.push( '/registration/success/'+msg);
}catch (error) {
if(error.response){
message.error(error.response.info);
}else {
message.error('报名失败');
}
console.log('success',success);
if (success) {
const msg='你已报名'+testInfo.examination_start_time+'-'+testInfo.examination_end_time+' '+testInfo.examination_name+',准考证号是'+success.admission_number+',请准时参加考试!';
const info=JSON.stringify(msg)
// console.log('msg',msg);
// console.log('info',info);
history.push( '/registration/success/'+info);
// history.push('/registration/success');
}
// const msg='你已报名'+testInfo.examination_start_time+'-'+testInfo.examination_end_time+' '+testInfo.examination_name+',准考证号是'+',请准时参加考试!';
// const info=JSON.stringify(msg);
//
// console.log('info',info);
//
// const aa=Base64.byteLength(info);
// console.log('msg',msg);
// // console.log('info',info);
// console.log('aa',aa)
// console.log('success',success);
// if (success.success) {
// // const msg='你已报名'+testInfo.examination_start_time+'-'+testInfo.examination_end_time+' '+testInfo.examination_name+',准考证号是'+success.admission_number+',请准时参加考试!';
// const msg=testInfo.examination_start_time+','+testInfo.examination_end_time+','+testInfo.examination_name+','+success.admission_number;
// // const info=JSON.stringify(msg)
// console.log('mag',msg);
// history.push( '/registration/success/'+msg);
//
// }else {
// message.config('报名失败!')
// }
// return true;
}}
>
@ -316,14 +316,6 @@ export default () => {
column={1}
//actionRef={actionRef}
request={async () => {
// console.log('testInfo---',testInfo)
// console.log('baseInfo----',baseInfo)
// return Promise.resolve({
// success: true,
// data: {
// last_id:testInfo.id,
// },
// });
}}
extra={false}
>

@ -15,14 +15,14 @@ const extra = (
export default () => {
const params=useParams();
console.log('params',params);
const info=params.msg.split(',');
return(
<GridContent>
<Card bordered={false}>
<Result
status="success"
title="资质考试报名成功"
subTitle={params.msg}
subTitle={'你已报名'+info[0]+'-'+info[1]+' '+info[2]+',准考证号是'+info[3]+',请准时参加考试!'}
extra={extra}
style={{ marginBottom: 16 }}
/>

Loading…
Cancel
Save