Commit f5acb971 authored by 高滢's avatar 高滢

feat(个人用户): 接口

parent 925bfcd1
import request from '@/utils/request'
export function selectPersonalStatistics(){
return request({
url: '/pc/sysuser/queryUserStudyInfo',
method: 'get'
})
}
export function selectPagingBLesson(params){
return request({
url: '/blesson/pagingBLesson',
headers: {
'Content-Type': 'application/json'
},
method: 'get',
params: params
})
}
...@@ -14,35 +14,34 @@ ...@@ -14,35 +14,34 @@
<div class="teamMembers_header"> <div class="teamMembers_header">
<div class="teamMembers_headerCard"> <div class="teamMembers_headerCard">
<div class="header_child"> <div class="header_child">
<div class="value">2课时</div> <div class="value">{{ personalStatistics.todayStudy||'0' }}课时</div>
<div class="title">今日学习</div> <div class="title">今日学习</div>
</div> </div>
<div class="header_child"> <div class="header_child">
<div class="value">10课时</div> <div class="value">{{ personalStatistics.totalStudy ||'0' }}课时</div>
<div class="title">累计学习</div> <div class="title">累计学习</div>
</div> </div>
</div> </div>
<div class="teamMembers_headerCard"> <div class="teamMembers_headerCard">
<div class="header_child"> <div class="header_child">
<div class="value">3</div> <div class="value">{{ personalStatistics.studying ||'0' }}</div>
<div class="title">学习中课程</div> <div class="title">学习中课程</div>
</div> </div>
<div class="header_child"> <div class="header_child">
<div class="value">2</div> <div class="value">{{ personalStatistics.studyFinish ||'0' }}</div>
<div class="title">已学完课程</div> <div class="title">已学完课程</div>
</div> </div>
</div> </div>
</div> </div>
<div class="userInfo"> <div class="userInfo">
<img class="avatarImg" :src="avatar"> <img class="avatarImg" :src="avatar">
<div class="user_name">张笑笑</div> <div class="user_name">{{personalInfo.name}}</div>
<div class="user_company">天津南开大学</div>
<div style="display: flex;justify-content: center"> <div style="display: flex;justify-content: center">
<div class="user_type">个人</div> <div class="user_type">个人</div>
</div> </div>
</div> </div>
</div> </div>
<div class="teamMembers_content"> <div class="teamMembers_content" v-loading="loading">
<div class="teamMembers_content_left"> <div class="teamMembers_content_left">
<div class="left_top"> <div class="left_top">
<div class="chose_btnRow"> <div class="chose_btnRow">
...@@ -52,17 +51,18 @@ ...@@ -52,17 +51,18 @@
:class="activeType === item.type ? 'activeBtn' : 'classBtn'" :class="activeType === item.type ? 'activeBtn' : 'classBtn'"
@click="choseBtn(item)" @click="choseBtn(item)"
> >
{{ item.name }}{{ item.value ? "(" + item.value + ")" : '' }} {{ item.name }}{{ item.value ? "(" + item.value + ")" : "(" + '0'+")" }}
</div> </div>
</div> </div>
<div class="top_search"> <div class="top_search">
<el-form ref="formRef" :model="form"> <el-form ref="formRef" :model="form">
<el-form-item prop="username"> <el-form-item prop="username">
<el-input <el-input
v-model="form.username" v-model="queryParams.lessonName"
type="text" type="text"
auto-complete="off" auto-complete="off"
suffix-icon="el-icon-search" suffix-icon="el-icon-search"
@change="getList()"
placeholder="请输入课程关键词" placeholder="请输入课程关键词"
/> />
</el-form-item> </el-form-item>
...@@ -73,8 +73,8 @@ ...@@ -73,8 +73,8 @@
<div class="left_content"> <div class="left_content">
<div> <div>
<el-checkbox-group v-model="checkList"> <el-checkbox-group v-model="checkList">
<el-checkbox label="只看付费"></el-checkbox> <el-checkbox v-model="isPay" label="只看付费" @change="selectIsPay('1')" />
<el-checkbox label="只看试用"></el-checkbox> <el-checkbox v-model="isLessonIsPay" label="只看试用" @change="selectLessonIsPay('0')" />
</el-checkbox-group> </el-checkbox-group>
</div> </div>
<div class="leftCardList"> <div class="leftCardList">
...@@ -84,38 +84,39 @@ ...@@ -84,38 +84,39 @@
class="classCard" class="classCard"
> >
<div class="classCardImgCard"> <div class="classCardImgCard">
<img :src="item.img" class="classCardImg"> <img :src="item.defaultUrl" class="classCardImg">
<div :class=" item.level === '1' ? 'class_level' :item.level === '2' ? 'class_levelTwo' : 'class_levelThree'"> <div :class=" item.difficultyClassifyLabels === '初级' ? 'class_level' :item.difficultyClassifyLabels === '中级' ? 'class_levelTwo' : 'class_levelThree'">
{{ item.level === '1' ? '初级' :item.level === '2' ? '中级' :item.level === '3' ? '高级' : '' }} {{ item.difficultyClassifyLabels }}
</div> </div>
</div> </div>
<div class="classInfo"> <div class="classInfo">
<div :title="item.title" class="info_title">{{ item.title }} <div :title="item.title" class="info_title">{{ item.lessonName }}
<span :class="item.date? 'alreadyDate' : 'getMoney'">{{item.date? '已过期' : '已收费'}}</span> <span v-if="item.isExpired==='1'||item.isPay==='1'" :class="item.isExpired==='1'? 'alreadyDate' :(item.isPay==='1'?'getMoney':'alreadyDate')">{{ item.isExpired==='1'? '已过期' :(item.isPay==='1'?'已收费':'免费') }}</span>
</div> </div>
<div class="learnTime_class"> <div class="learnTime_class">
<div> <div>
<span class="commonText">已学习</span><span class="colorText">{{ item.learnTime + '小节' }}</span> <span class="commonText">已学习</span><span class="colorText">{{ item.learnedChapterNum + '小节' }}</span>
</div> </div>
<el-divider direction="vertical" /> <el-divider direction="vertical" />
<div class="commonText">{{ item.allTiem }}小节</div> <div class="commonText">{{ item.allChapterNum }}小节</div>
<el-divider direction="vertical" /> <el-divider direction="vertical" />
<div class="commonText">有效期还剩:{{haveDays}}</div> <div class="commonText">有效期还剩:{{ item.remainingDate||'-' }}</div>
</div> </div>
<div :title="item.technology" class="commonText_technology">上次学习:1.1.2 快闪带你快速掌握</div> <div :title="item.technology" class="commonText_technology">上次学习:{{ item.chapterName||'-' }}</div>
<div v-if="!item.getMoney" class="learn_btn">继续学习</div> <div v-if="item.isExpired==='1'" class="moneyInfo">该课程已过期,无法继续学习!</div>
<div v-else class="moneyInfo">该课程已开始收费,无法继续学习!</div> <div v-else-if="item.isPay==='1'" class="moneyInfo">该课程已开始收费,无法继续学习!</div>
<div v-else class="learn_btn">继续学习</div>
</div> </div>
<div class="tagArea"> <div class="tagArea">
<img :src="trialImg" class="trialImg"> <img v-show="item.lessonIsPay===0" :src="trialImg" class="trialImg">
</div> </div>
</div> </div>
</div> </div>
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
:page.sync="queryParams.page" :page.sync="queryParams.current"
:limit.sync="queryParams.rows" :limit.sync="queryParams.size"
@pagination="getList" @pagination="getList"
/> />
</div> </div>
...@@ -128,6 +129,8 @@ ...@@ -128,6 +129,8 @@
<script> <script>
import NavList from '@/views/homePage/components/NavList/index' import NavList from '@/views/homePage/components/NavList/index'
import trialImg from '@/assets/image/xuexi_shiyong_test.png' import trialImg from '@/assets/image/xuexi_shiyong_test.png'
import { selectPagingBLesson, selectPersonalStatistics } from '@/api/learncenter/individualUser'
import store from "@/store";
export default { export default {
name: 'Index', name: 'Index',
components: { components: {
...@@ -135,13 +138,24 @@ export default { ...@@ -135,13 +138,24 @@ export default {
}, },
data() { data() {
return { return {
loading:true,
personalInfo: {},
personalStatistics: {},
trialImg, trialImg,
haveDays: '14', haveDays: '14',
isLessonIsPay: false,
isPay: false,
checkList: [], checkList: [],
// 查询参数 // 查询参数
queryParams: { queryParams: {
page: 1, userId: '100',
rows: 10 current: 1,
size: 10,
isObligatory: '0',
lessonName: '',
isPay: '',
lessonIsPay: '',
isCompleteLearned: ''
}, },
// 总条数 // 总条数
total: 10, total: 10,
...@@ -169,10 +183,10 @@ export default { ...@@ -169,10 +183,10 @@ export default {
{ img: require('@/assets/image/courseOne.jpg'), level: '2', title: 'visual C++案例教程visual C++案例教程教visualaaaaaaaaaaaa', learnTime: '2', allTiem: '30', technology: '环境感知技术、智能决策技术、环境感知技术、智能决策aaaaaaa' }, { img: require('@/assets/image/courseOne.jpg'), level: '2', title: 'visual C++案例教程visual C++案例教程教visualaaaaaaaaaaaa', learnTime: '2', allTiem: '30', technology: '环境感知技术、智能决策技术、环境感知技术、智能决策aaaaaaa' },
{ img: require('@/assets/image/courseOne.jpg'), level: '3', title: 'visual C++案例教程visual C++案例教程教visualaaaaaaaaaaaa', learnTime: '2', allTiem: '30', technology: '环境感知技术、智能决策技术、环境感知技术、智能决策aaaaaaa' } { img: require('@/assets/image/courseOne.jpg'), level: '3', title: 'visual C++案例教程visual C++案例教程教visualaaaaaaaaaaaa', learnTime: '2', allTiem: '30', technology: '环境感知技术、智能决策技术、环境感知技术、智能决策aaaaaaa' }
], ],
activeType: '1', activeType: '0',
btnList: [ btnList: [
{ name: '未完成', type: '1', value: '3' }, { name: '未完成', type: '0', value: '0' },
{ name: '已完成', type: '2', value: '2' } { name: '已完成', type: '1', value: '0' }
], ],
backTop: require('@/assets/image/top.png'), backTop: require('@/assets/image/top.png'),
suggestion: require('@/assets/image/suggestion.png'), suggestion: require('@/assets/image/suggestion.png'),
...@@ -194,16 +208,51 @@ export default { ...@@ -194,16 +208,51 @@ export default {
} }
}, },
created() { created() {
this.getPersonalStatistics()
this.getList()
this.personalInfo.name = store.getters.name
}, },
mounted() { mounted() {
}, },
methods: { methods: {
selectIsPay(data) {
if (this.isPay === false) {
this.queryParams.lessonIsPay = data
this.getList()
}
this.isPay = !this.isPay
this.isLessonIsPay = false
},
selectLessonIsPay(data) {
if (this.isLessonIsPay = false) {
this.queryParams.lessonIsPay = data
this.getList()
}
this.isLessonIsPay = !this.isLessonIsPay
this.isPay = false
},
getPersonalStatistics() {
selectPersonalStatistics().then(res => {
this.personalStatistics = res.data
console.log('32', res)
})
},
getList() { getList() {
this.loading = true
selectPagingBLesson(this.queryParams).then(res => {
this.btnList[1].value = res.data.courseStatisticsArray[3]
this.btnList[0].value = res.data.courseStatisticsArray[2]
this.courseStatisticsArray = res.data.courseStatisticsArray
this.classDataList = res.data.dataList.records
this.total = res.data.dataList.total
this.loading = false
})
}, },
/** 课程类型选择*/ /** 课程类型选择*/
choseBtn(item) { choseBtn(item) {
this.activeType = item.type this.activeType = item.type
this.queryParams.isCompleteLearned = item.type
this.getList()
}, },
/** 跳转意见反馈页面*/ /** 跳转意见反馈页面*/
handleToSuggestion() { handleToSuggestion() {
...@@ -338,7 +387,7 @@ export default { ...@@ -338,7 +387,7 @@ export default {
.teamMembers_content_left{ .teamMembers_content_left{
margin-right: 25px; margin-right: 25px;
width: 1200px; width: 1200px;
height: 845px; min-height: 845px;
background: #ffffff; background: #ffffff;
box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.05); box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.05);
.left_top{ .left_top{
......
...@@ -24,10 +24,10 @@ ...@@ -24,10 +24,10 @@
<div class="avatarItem">上传头像</div> <div class="avatarItem">上传头像</div>
</div> </div>
<el-form-item label="登录名:" class="formItemSpace"> <el-form-item label="登录名:" class="formItemSpace">
<el-input v-model="personalForm.name" :disabled="roleKey==='unit_admin'" /> <el-input v-model="personalForm.userName" :disabled="roleKey==='unit_admin'" />
</el-form-item> </el-form-item>
<el-form-item label="姓名:" class="formItemSpace"> <el-form-item label="姓名:" class="formItemSpace">
<el-input v-model="personalForm.userName" :disabled="roleKey==='unit_admin'" /> <el-input v-model="personalForm.name" :disabled="roleKey==='unit_admin'" />
</el-form-item> </el-form-item>
<el-form-item v-show="roleKey!=='unit_admin'" label="性别:" class="formItemSpace"> <el-form-item v-show="roleKey!=='unit_admin'" label="性别:" class="formItemSpace">
<div class="genderLaout"> <div class="genderLaout">
...@@ -106,6 +106,7 @@ export default { ...@@ -106,6 +106,7 @@ export default {
}, },
selectGender(data) { selectGender(data) {
this.genderFlag = data this.genderFlag = data
this.personalForm.sex = data
}, },
beforeUpload(file) { beforeUpload(file) {
if (file.name) { if (file.name) {
......
...@@ -53,6 +53,7 @@ import BrowsingHistory from '@/views/personalCenter/component/browsingHistory.vu ...@@ -53,6 +53,7 @@ import BrowsingHistory from '@/views/personalCenter/component/browsingHistory.vu
import MyMessage from '@/views/personalCenter/component/myMessage.vue' import MyMessage from '@/views/personalCenter/component/myMessage.vue'
import { getUserInfo } from '@/api/personalCenter' import { getUserInfo } from '@/api/personalCenter'
import store from '@/store' import store from '@/store'
import { getInfo } from '@/api/login'
export default { export default {
name: 'Index', name: 'Index',
...@@ -95,8 +96,15 @@ export default { ...@@ -95,8 +96,15 @@ export default {
} }
}, },
created() { created() {
this.handleToTop() // 一进入页面自动滚动到最顶部 if (this.authority === 'individual') {
this.user.username = store.getters.name
getInfo().then(res => {
this.user.avatar = res.data.user.avatar
})
} else {
this.selectUserInfo() this.selectUserInfo()
}
this.handleToTop() // 一进入页面自动滚动到最顶部
}, },
mounted() { mounted() {
}, },
......
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