课程学习

master
Administrator 3 years ago
parent e27d144741
commit bec18e434e

@ -1,33 +1,97 @@
import { AlignLeftOutlined, LaptopOutlined, NotificationOutlined, PlusOutlined, UserOutlined } from '@ant-design/icons'; import { AlignLeftOutlined, LaptopOutlined, NotificationOutlined, PlusOutlined, UserOutlined } from '@ant-design/icons';
import {useEffect} from 'react';
import { Button, Card, Col, Layout, List, Menu, Progress, Row, Typography } from 'antd'; import { Button, Card, Col, Layout, List, Menu, Progress, Row, Typography } from 'antd';
import { PageContainer } from '@ant-design/pro-layout'; import { PageContainer } from '@ant-design/pro-layout';
import { useRequest } from 'umi'; import {useParams, useRequest} from 'umi';
import { queryFakeList } from './service'; import { viewMyLearningSubject,listMyLearningChapterCourse } from './service';
import type { CardListItemDataType } from './data.d'; import type { CardListItemDataType } from './data.d';
import styles from './style.less'; import styles from './style.less';
import { Content } from 'antd/lib/layout/layout';
import Sider from 'antd/lib/layout/Sider';
import SubMenu from 'antd/lib/menu/SubMenu'; import SubMenu from 'antd/lib/menu/SubMenu';
console.log('course/list') console.log('course/list')
const { Paragraph } = Typography; const { Paragraph } = Typography;
import cookie from 'react-cookies';
const getList = async (subject_id,chapter_id ) => {
// const hide = message.loading('正在配置');
try {
const a=await listMyLearningChapterCourse({
identity_id:cookie.load('identity_id'),
person_id:cookie.load('person_id'),
subject_id:subject_id,
chapter_id:chapter_id,
});
// message.success('配置成功');
return a;
} catch (error) {
// message.error('配置失败请重试!');
return false;
}
};
const CardList = () => { const CardList = () => {
const { data, loading } = useRequest(() => { const params=useParams();
return queryFakeList({ console.log('params',params);
count: 8, const ids=params.msg.split(',');
const { data } = useRequest(() => {
return viewMyLearningSubject({
identity_id:cookie.load('identity_id'),
person_id:cookie.load('person_id'),
data_id:ids[0],
data_type:ids[1],
subject_id:ids[2]
}); });
},{
formatResult: (result) => {
console.log('result',result);
}
}); });
const list = data?.list||[]; const list = data?.list||[];
const subject_data=data?data.subject:[];
const last_data=data?data.last_learning_course:[];
const chapter_list=data?data.chapter_list:[];
useEffect(() => {
console.log('getList',getList)
// const a=await listMyLearningChapterCourse({
// identity_id:cookie.load('identity_id'),
// person_id:cookie.load('person_id'),
// subject_id:subject_id,
// chapter_id:chapter_id,
// });
},[]);
if(chapter_list.length!==0){
// const msg = useRequest(() => {
// return listMyLearningChapterCourse({
// identity_id:cookie.load('identity_id'),
// person_id:cookie.load('person_id'),
// subject_id:chapter_list?chapter_list[0].subject_id:'',
// chapter_id:chapter_list?chapter_list[0].chapter_id:'',
//
// });
// });
// console.log('msg',msg)
}
// const msg = await listMyLearningChapterCourse({
// identity_id:cookie.load('identity_id'),
// person_id:cookie.load('person_id'),
// subject_id:chapter_list[0].subject_id,
// chapter_id:chapter_list[0].chapter_id,
// });
// console.log('msg======',msg)
const content = ( const content = (
<div className={styles.pageHeaderContent}> <div className={styles.pageHeaderContent}>
<Card <Card
title={<a>{'生涯规划师初级认证培训课程你收到了 14 份新周报'}</a>} title={<a>{subject_data?subject_data.subject_name:'--'}</a>}
hoverable={false} hoverable={false}
className={styles.card} className={styles.card}
actions={[]} actions={[]}
extra={<><span style={{padding:10}}>: 2020-4-9</span><span style={{padding:10}}>300</span><span style={{padding:10}}>36</span></>} extra={<><span style={{padding:10}}>: {subject_data?subject_data.learning_start_time:'--'}</span><span style={{padding:10}}>{subject_data?subject_data.distance_end_time:'--'}</span><span style={{padding:10}}>{subject_data?subject_data.total_course_hours:'--'}</span></>}
> >
<Card.Meta <Card.Meta
avatar={<img alt="" className={styles.cardAvatar} src={'https://gw.alipayobjects.com/zos/rmsportal/uMfMFlvUuceEyPpotzlq.png'} style={{width:'270px', height:'150px', borderRadius:'10px'}} />} avatar={<img alt="" className={styles.cardAvatar} src={'https://gw.alipayobjects.com/zos/rmsportal/uMfMFlvUuceEyPpotzlq.png'} style={{width:'270px', height:'150px', borderRadius:'10px'}} />}
@ -36,13 +100,13 @@ const CardList = () => {
<> <>
<Card.Grid hoverable={false} style={{width:'100%',padding:0, boxShadow:'none'}}> <Card.Grid hoverable={false} style={{width:'100%',padding:0, boxShadow:'none'}}>
<Paragraph className={styles.item} ellipsis={{ rows: 4 }} style={{paddingLeft:10}}> <Paragraph className={styles.item} ellipsis={{ rows: 4 }} style={{paddingLeft:10}}>
{'请大家在规定时间内完成本培训任务安排,逾期本培训任务将自动关闭。祝大家学习愉快!请大家在规定时间内完成本培训任务安排,逾期本培训任务将自动关闭。祝大家学习愉快!这种模板用于提醒谁与你发生了互动,左侧放『谁』的头像'} {subject_data?subject_data.subject_describe:'--'}
</Paragraph> </Paragraph>
<Row> <Row>
<Col span={16} style={{display:'inline-block', padding:10}}><span></span><span style={{display:'inline-block', width:'80%'}}><Progress percent={75} /></span></Col> <Col span={16} style={{display:'inline-block', padding:10}}><span></span><span style={{display:'inline-block', width:'80%'}}><Progress percent={subject_data?subject_data.subject_learning_progress*100:0} /></span></Col>
</Row> </Row>
<Row> <Row>
<Col span={10} style={{padding:10}}><span></span><span></span></Col> <Col span={10} style={{padding:10}}><span></span></Col> <Col span={4} style={{padding:10}}><Button type="primary"></Button></Col> <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>
</Row> </Row>
</Card.Grid> </Card.Grid>
</> </>
@ -53,6 +117,7 @@ const CardList = () => {
); );
console.log('iddddddd',chapter_list.length!==0?chapter_list[0].chapter_id.toString():'')
const nullData: Partial<CardListItemDataType> = {}; const nullData: Partial<CardListItemDataType> = {};
return ( return (
<PageContainer content={content} extraContent={false}> <PageContainer content={content} extraContent={false}>
@ -60,31 +125,46 @@ const CardList = () => {
<Col span={6} style={{paddingRight:24}}> <Col span={6} style={{paddingRight:24}}>
<Menu <Menu
mode="inline" mode="inline"
defaultSelectedKeys={['1']} selectedKeys={[chapter_list.length!==0?chapter_list[0].chapter_id.toString():'']}
defaultOpenKeys={['sub1']} defaultOpenKeys={['sub1']}
style={{ height: '100%', width:'100%' }} style={{ height: '100%', width:'100%' }}
> >
<SubMenu key="sub1" icon={<AlignLeftOutlined />} title="章节目录"> <SubMenu key="sub1" icon={<AlignLeftOutlined />} title="章节目录">
<Menu.Item key="1"></Menu.Item> {
<Menu.Item key="2"></Menu.Item> chapter_list.length!==0?
<Menu.Item key="3"></Menu.Item> chapter_list.map((item)=>{
<Menu.Item key="4"></Menu.Item> return(
<Menu.Item key="5"></Menu.Item> <Menu.Item key={item.chapter_id}
<Menu.Item key="6"></Menu.Item> onClick={()=>{
<Menu.Item key="7"></Menu.Item>
<Menu.Item key="8"></Menu.Item>
}}
<Menu.Item key="9"></Menu.Item>
<Menu.Item key="10"></Menu.Item> >{item.chapter_name}</Menu.Item>
<Menu.Item key="11"></Menu.Item> )
<Menu.Item key="12"></Menu.Item>
}):''
}
{/*<Menu.Item key="1">生涯规划理论</Menu.Item>*/}
{/*<Menu.Item key="2">生涯规划基本步骤</Menu.Item>*/}
{/*<Menu.Item key="3">生涯测评的应用与实践</Menu.Item>*/}
{/*<Menu.Item key="4">生涯测评的应用与实践</Menu.Item>*/}
{/*<Menu.Item key="5">生涯测评的应用与实践</Menu.Item>*/}
{/*<Menu.Item key="6">生涯测评的应用与实践</Menu.Item>*/}
{/*<Menu.Item key="7">生涯测评的应用与实践</Menu.Item>*/}
{/*<Menu.Item key="8">生涯测评的应用与实践</Menu.Item>*/}
{/*<Menu.Item key="9">生涯测评的应用与实践</Menu.Item>*/}
{/*<Menu.Item key="10">生涯测评的应用与实践</Menu.Item>*/}
{/*<Menu.Item key="11">生涯测评的应用与实践</Menu.Item>*/}
{/*<Menu.Item key="12">生涯测评的应用与实践</Menu.Item>*/}
</SubMenu> </SubMenu>
</Menu> </Menu>
</Col> </Col>
<Col span={18} style={{background:'#ffffff', padding:24}}> <Col span={18} style={{background:'#ffffff', padding:24}}>
<List<Partial<CardListItemDataType>> <List<Partial<CardListItemDataType>>
rowKey="id" rowKey="id"
loading={loading} // loading={loading}
grid={{ grid={{
gutter: 1, gutter: 1,
xs: 1, xs: 1,

@ -1,10 +1,37 @@
import { request } from 'umi'; import { request } from 'umi';
import type { CardListItemDataType } from './data.d'; import type { CardListItemDataType } from './data.d';
import {TableListItem} from "../../../../../admin/src/pages/course/option/data";
export async function queryFakeList(params: { export async function viewMyLearningSubject(params: {
count: number; identity_id: number;
}): Promise<{ data: { list: CardListItemDataType[] } }> { person_id: number;
return request('/api/subjects', { data_id: number;
data_type: number;
subject_id: number
}){
return request(' /dsideal_yy/ypt/careerTraining/learning/viewMyLearningSubject', {
params, params,
}); });
} }
export async function listMyLearningChapterCourse(params: {
chapter_id: number;
identity_id: number;
person_id: number;
subject_id: number
}){
return request(' /dsideal_yy/ypt/careerTraining/learning/listMyLearningChapterCourse', {
params,
});
}
// export async function listMyLearningChapterCourse(params: {
// chapter_id: number;
// identity_id: number;
// person_id: number;
// subject_id: number
// }){
// return request('/dsideal_yy/ypt/careerTraining/learning/listMyLearningChapterCourse', {
// params,
// });
// }

@ -1,24 +1,24 @@
import { PlusOutlined } from '@ant-design/icons'; import { PlusOutlined } from '@ant-design/icons';
import { Button, Card, List, Progress, Typography, Image } from 'antd'; import { Button, Card, List, Progress, Typography, Image } from 'antd';
import { PageContainer } from '@ant-design/pro-layout'; import { PageContainer } from '@ant-design/pro-layout';
import { useRequest } from 'umi'; import { useRequest,history } from 'umi';
import { querySubjectList } from './service'; import { querySubjectList,listMyLearningSubject } from './service';
import type { SubjectListItemDataType } from './data.d'; import type { SubjectListItemDataType } from './data.d';
import styles from './style.less'; import styles from './style.less';
import NumberInfo from './components/NumberInfo'; import NumberInfo from './components/NumberInfo';
import cookie from 'react-cookies';
const { Paragraph } = Typography; const { Paragraph } = Typography;
const SubjectList = () => { const SubjectList = () => {
/** 获取主题列表数据 */ /** 获取主题列表数据 */
const { data, loading } = useRequest(() => { const { data, loading } = useRequest(() => {
return querySubjectList({ return listMyLearningSubject({
count: 10, identity_id: cookie.load('identity_id'),
person_id:cookie.load('person_id')
}); });
}); });
const list = data?data : [];
const list = data?.list || [];
return ( return (
<PageContainer content={false} extraContent={false}> <PageContainer content={false} extraContent={false}>
@ -45,7 +45,7 @@ const SubjectList = () => {
hoverable hoverable
className={styles.card} className={styles.card}
actions={[]} actions={[]}
extra={<><span style={{padding:10}}>: ---</span><span style={{padding:10}}>---</span><span style={{padding:10}}>{item?.total_course_hours}</span></>} extra={<><span style={{padding:10}}>:{item?.learning_start_time}</span><span style={{padding:10}}>{item?.distance_end_time}</span><span style={{padding:10}}>{item?.total_course_hours}</span></>}
> >
<Card.Meta <Card.Meta
avatar={<Image preview={false} width={200} height={150} src={`${item.attachment_json.url}`} fallback="../fallback.svg" />} avatar={<Image preview={false} width={200} height={150} src={`${item.attachment_json.url}`} fallback="../fallback.svg" />}
@ -57,8 +57,13 @@ const SubjectList = () => {
{item.subject_describe} {item.subject_describe}
</Paragraph> </Paragraph>
</Card.Grid> </Card.Grid>
<Card.Grid hoverable={false} style={{width:'30%',textAlign:'center'}}><Progress type="circle" percent={75} /></Card.Grid> <Card.Grid hoverable={false} style={{width:'30%',textAlign:'center'}}><Progress type="circle" percent={item?.subject_learning_progress*100} /></Card.Grid>
<Card.Grid hoverable={false} style={{width:'20%',textAlign:'center'}}><Button type="primary"></Button></Card.Grid> <Card.Grid hoverable={false} style={{width:'20%',textAlign:'center'}}>
<Button type="primary" onClick={()=>{
const info=item.data_id+','+item.data_type+','+item.subject_id;
history.push( '/course/list/'+info);
}}></Button>
</Card.Grid>
</> </>
} }
/> />

@ -23,6 +23,20 @@ export async function querySubjectList(params: {
}); });
} }
/**
*
* @param params
* @returns
*/
export async function listMyLearningSubject(params: {
identity_id: number;
person_id: number;
}){
return request(' /dsideal_yy/ypt/careerTraining/learning/listMyLearningSubject', {
params,
});
}
/** /**
* *
* https://www.xiaopiu.com/web/byId?type=project&id=61c45503a4381246987496c6 * https://www.xiaopiu.com/web/byId?type=project&id=61c45503a4381246987496c6

@ -7,6 +7,7 @@ import ProForm, {
ProFormText, ProFormText,
ProFormDatePicker, ProFormDatePicker,
ProFormSelect, ProFormSelect,
ProFormDigit,
ProFormTextArea, ProFormTextArea,
ProFormCheckbox, ProFormCheckbox,
ProFormDateRangePicker, ProFormDateRangePicker,
@ -53,7 +54,6 @@ export default () => {
// return result; // return result;
// } // }
// }); // });
console.log('valu111111111111e',backInfo);
return ( return (
<PageContainer content={''} extraContent={''}> <PageContainer content={''} extraContent={''}>
<ProCard> <ProCard>
@ -124,10 +124,11 @@ export default () => {
fieldProps={{ fieldProps={{
format: 'YYYY-MM', format: 'YYYY-MM',
}} }}
rules={[{ required: true, message: '请选择出生年月' }]}
/> />
<ProFormText name="idCard" label="身份证号" /> <ProFormText name="idCard" label="身份证号" width="sm" rules={[{ required: true, message: '请输入正确身份证号' }]}/>
<ProFormText name="address" label="家庭地址" /> <ProFormText name="address" label="家庭地址" rules={[{ required: true, message: '请输入家庭地址' }]}/>
<ProFormText name="contact" label="联系方式" width="lg" placeholder="联系方式" /> <ProFormText name="contact" label="联系方式" width="lg" placeholder="联系方式" rules={[{ required: true, message: '请输入联系方式' }]} />
</Col> </Col>
<Col lg={12} md={12} sm={24}> <Col lg={12} md={12} sm={24}>
<ProFormText name="org" label="所在学校" width="md" placeholder="请填写" value={backInfo?.bureau_name} disabled /> <ProFormText name="org" label="所在学校" width="md" placeholder="请填写" value={backInfo?.bureau_name} disabled />
@ -151,8 +152,8 @@ export default () => {
]} ]}
placeholder="请选择" placeholder="请选择"
/> />
<ProFormText name="graduation" label="毕业院校" /> <ProFormText name="graduation" label="毕业院校" rules={[{ required: true, message: '请输入毕业院校' }]}/>
<ProFormText name="major" label="专业" /> <ProFormText name="major" label="专业" rules={[{ required: true, message: '请输入专业' }]}/>
<ProFormSelect <ProFormSelect
label='任教学科' label='任教学科'
name="subject" name="subject"
@ -255,51 +256,53 @@ export default () => {
description: false, description: false,
}} }}
onFinish={async () => { onFinish={async () => {
console.log(formRef.current?.getFieldsValue()); // console.log(formRef.current?.getFieldsValue());
// 跳转到指定路由 // 跳转到指定路由
// const success = await savePersonSignUpInfo({ const success = await savePersonSignUpInfo({
// address:baseInfo?.address, address:baseInfo?.address,
// birthday:baseInfo?.birthday, birthday:baseInfo?.birthday,
// bureau_id:backInfo?.bureau_id, bureau_id:backInfo?.bureau_id,
// bureau_name:backInfo?.bureau_name, bureau_name:backInfo?.bureau_name,
// city_id:backInfo?.city_id, city_id:backInfo?.city_id,
// city_name:backInfo?.city_name, city_name:backInfo?.city_name,
// district_id:backInfo?.district_id, district_id:backInfo?.district_id,
// district_name:backInfo?.district_name, district_name:backInfo?.district_name,
// education:baseInfo?.qualifications, education:baseInfo?.qualifications,
// examination_id:1, examination_id:1,
// gender:baseInfo?.sex, gender:baseInfo?.sex,
// id_code:baseInfo?.idCard, id_code:baseInfo?.idCard,
// identity_id:backInfo?.identity_id, identity_id:backInfo?.identity_id,
// major:baseInfo?.major, major:baseInfo?.major,
// person_id:backInfo?.person_id, person_id:backInfo?.person_id,
// person_name:backInfo?.person_name, person_name:backInfo?.person_name,
// province_id:backInfo?.province_id, province_id:backInfo?.province_id,
// province_name:backInfo?.province_name, province_name:backInfo?.province_name,
// subject:baseInfo?.subject, subject:baseInfo?.subject,
// tel:baseInfo?.contact, tel:baseInfo?.contact,
// university:baseInfo?.graduation, university:baseInfo?.graduation,
// }); });
// console.log('success',success); console.log('success',success);
// if (success) { if (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) const info=JSON.stringify(msg)
// console.log('msg',msg); // console.log('msg',msg);
// console.log('info',info); // console.log('info',info);
// history.push( '/registration/success/'+info); history.push( '/registration/success/'+info);
//
// // history.push('/registration/success');
// }
const msg='你已报名'+testInfo.examination_start_time+'-'+testInfo.examination_end_time+' '+testInfo.examination_name+',准考证号是'+',请准时参加考试!'; // history.push('/registration/success');
const info=Base64.toByteArray(msg.toString()); }
console.log('info',info);
const aa=Base64.decode(info); // const msg='你已报名'+testInfo.examination_start_time+'-'+testInfo.examination_end_time+' '+testInfo.examination_name+',准考证号是'+',请准时参加考试!';
console.log('msg',msg); // const info=JSON.stringify(msg);
//
// console.log('info',info); // console.log('info',info);
console.log('aa',aa) //
// const aa=Base64.byteLength(info);
// console.log('msg',msg);
// // console.log('info',info);
// console.log('aa',aa)
// return true; // return true;
@ -313,8 +316,8 @@ export default () => {
column={1} column={1}
//actionRef={actionRef} //actionRef={actionRef}
request={async () => { request={async () => {
console.log('testInfo---',testInfo) // console.log('testInfo---',testInfo)
console.log('baseInfo----',baseInfo) // console.log('baseInfo----',baseInfo)
// return Promise.resolve({ // return Promise.resolve({
// success: true, // success: true,
// data: { // data: {

Loading…
Cancel
Save