yujialong 2 days ago
parent d4dc133ef0
commit b728ec2d21
  1. 4
      apis/modules/course.js
  2. 3
      components/realName/realName.vue
  3. 11
      course/courseDetail/courseDetail.vue
  4. 2
      course/practiceDetail/practiceDetail.vue
  5. 2
      libs/share.js
  6. 26
      pages/achievement/achievement.vue
  7. 2
      pages/index/index.vue
  8. 6
      styles/common.scss
  9. 29
      user/info/info.vue
  10. 2
      user/phone/phone.vue
  11. 5
      user/reg/reg.vue

@ -52,3 +52,7 @@ export const exportExamPaperReport = data => {
export const playRecordSave = data => { export const playRecordSave = data => {
return post('occupationlab/occupationlab/playRecord/save', data) return post('occupationlab/occupationlab/playRecord/save', data)
} }
export const recordRecentUsage = mallId => {
return post(`nakadai/nakadai/curriculum/recordRecentUsage?mallId=${mallId}`)
}

@ -2,7 +2,7 @@
<uni-popup ref="alertDialog" :is-mask-click="false"> <uni-popup ref="alertDialog" :is-mask-click="false">
<view class="realname-wrap"> <view class="realname-wrap">
<view class="realname-form"> <view class="realname-form">
<uni-forms class=""> <uni-forms label-width="70" label-align="right">
<uni-forms-item label="真实姓名" required> <uni-forms-item label="真实姓名" required>
<uni-easyinput type="text" v-model.trim="realNameForm.userName" placeholder="请输入真实姓名" /> <uni-easyinput type="text" v-model.trim="realNameForm.userName" placeholder="请输入真实姓名" />
</uni-forms-item> </uni-forms-item>
@ -36,6 +36,7 @@
async handleRealName () { async handleRealName () {
const res = await checkUserNameOrWorkNumber() const res = await checkUserNameOrWorkNumber()
// //
if (!res.hasName) this.realNameForm.workNumber = res.workNumber
this.$refs.alertDialog[res.hasName ? 'close' : 'open']() this.$refs.alertDialog[res.hasName ? 'close' : 'open']()
}, },
// //

@ -104,7 +104,7 @@
</template> </template>
<script> <script>
import { queryChaptersAndSubsections, detailsOfGoods, queryPracticeByStudent, queryAssessmentByStudent, getPlayAuth, playRecordSave } from '@/apis/modules/course.js' import { queryChaptersAndSubsections, detailsOfGoods, queryPracticeByStudent, queryAssessmentByStudent, getPlayAuth, playRecordSave, recordRecentUsage } from '@/apis/modules/course.js'
export default { export default {
data() { data() {
return { return {
@ -226,6 +226,7 @@
this.mallId = options.mallId this.mallId = options.mallId
this.getInfo() this.getInfo()
this.getChapter() this.getChapter()
this.addRecord()
}, },
methods: { methods: {
// //
@ -249,6 +250,10 @@
this.briefIntroduction = e.detailedIntroduction this.briefIntroduction = e.detailedIntroduction
} }
}, },
// 使
async addRecord () {
await recordRecentUsage(this.mallId)
},
// //
async getPractices () { async getPractices () {
const { page } = await queryPracticeByStudent({ const { page } = await queryPracticeByStudent({
@ -399,7 +404,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
page { .wrap {
min-height: 100%;
background-color: #fff; background-color: #fff;
} }
.file-wrap { .file-wrap {
@ -524,7 +530,6 @@ page {
} }
.detail { .detail {
padding: 0 30rpx 30rpx; padding: 0 30rpx 30rpx;
background-color: #fff;
.chapters { .chapters {
margin-top: 20rpx; margin-top: 20rpx;
} }

@ -3,7 +3,7 @@
<view v-if="practices.length" class="list"> <view v-if="practices.length" class="list">
<view v-for="(item, i) in practices" :key="i" class="item" @click="toDetail(item)"> <view v-for="(item, i) in practices" :key="i" class="item" @click="toDetail(item)">
<view class="c-name">{{ item.projectName }}</view> <view class="c-name">{{ item.projectName }}</view>
<view class="line">得分{{ item.score }}&emsp;&emsp;耗时{{ item.timeSum }}min</view> <view class="line">得分{{ item.score || 0 }}&emsp;&emsp;耗时{{ item.timeSum }}min</view>
<view class="line">练习开始时间{{ item.startTime }}</view> <view class="line">练习开始时间{{ item.startTime }}</view>
<view class="line">练习结束时间{{ item.submitTime }}</view> <view class="line">练习结束时间{{ item.submitTime }}</view>
<view class="btn">成绩报告</view> <view class="btn">成绩报告</view>

@ -5,7 +5,7 @@ export default{
return { return {
title: "慧教云舟", title: "慧教云舟",
// path: '', // path: '',
imageUrl: "", imageUrl: 'https://eduvessel.com/images/occupationlab/share-cover.jpg',
success: function(res) { success: function(res) {
if (res.errMsg == 'shareAppMessage:ok') { if (res.errMsg == 'shareAppMessage:ok') {
console.log("成功", res) console.log("成功", res)

@ -12,17 +12,17 @@
<view class="item"> <view class="item">
<view class="val">{{ overview.experimentalNum }}</view> <view class="val">{{ overview.experimentalNum }}</view>
<view class="name">实验次数()</view> <view class="name">提交次数()</view>
</view> </view>
<view class="item"> <view class="item">
<view class="val">{{ overview.duration ? overview.duration : 0 }}小时</view> <view class="val">{{ overview.duration ? overview.duration : 0 }}小时</view>
<view class="name">实验总时长()</view> <view class="name">答题总时长</view>
</view> </view>
<view class="item"> <view class="item">
<view class="val">{{ overview.avgScore ? overview.avgScore.toFixed(2) : overview.avgScore }}</view> <view class="val">{{ overview.avgScore ? overview.avgScore.toFixed(2) : overview.avgScore }}</view>
<view class="name">实验平均分</view> <view class="name">平均分</view>
</view> </view>
</view> </view>
</view> </view>
@ -46,8 +46,8 @@
<view v-for="(item, i) in list" :key="i" class="item" @click="toPrac(item)"> <view v-for="(item, i) in list" :key="i" class="item" @click="toPrac(item)">
<view class="c-name">{{ item.projectName }}</view> <view class="c-name">{{ item.projectName }}</view>
<view class="line">最高分{{ item.hightScore }}&emsp;&emsp;练习次数{{ item.practiceNum }}</view> <view class="line">最高分{{ item.hightScore }}&emsp;&emsp;练习次数{{ item.practiceNum }}</view>
<view class="line">累计练习时长小时{{ item.hightScore }}</view> <view class="line">累计练习时长小时{{ item.duration }}</view>
<view class="line">最近练习时间{{ item.duration }}</view> <view class="line">最近练习时间{{ item.lastTime }}</view>
<view class="btn">练习情况</view> <view class="btn">练习情况</view>
</view> </view>
</view> </view>
@ -181,10 +181,14 @@
background-color: #fff; background-color: #fff;
} }
.tab-wrap { .tab-wrap {
z-index: 1;
position: sticky;
top: 0;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
margin-bottom: 20rpx; padding: 20rpx 0;
background-color: #fff;
/deep/.picker-input { /deep/.picker-input {
max-width: 70%; max-width: 70%;
} }
@ -220,23 +224,23 @@
gap: 32rpx; gap: 32rpx;
.item:nth-child(1) { .item:nth-child(1) {
background: url(https://eduvessel.com/images/occupationlab/record1.png) (88% 25px) / auto no-repeat, background: url(https://eduvessel.com/images/occupationlab/record1-1.png) 90% 14px/120rpx no-repeat,
url(https://eduvessel.com/images/occupationlab/record1.png) 0 0/100% 100% no-repeat; url(https://eduvessel.com/images/occupationlab/record1.png) 0 0/100% 100% no-repeat;
} }
.item:nth-child(2) { .item:nth-child(2) {
background: url(https://eduvessel.com/images/occupationlab/record2-1.png) (88% 15px) / auto no-repeat, background: url(https://eduvessel.com/images/occupationlab/record2-1.png) 90% 14px/90rpx no-repeat,
url(https://eduvessel.com/images/occupationlab/record2.png) 0 0/100% 100% no-repeat; url(https://eduvessel.com/images/occupationlab/record2.png) 0 0/100% 100% no-repeat;
} }
.item:nth-child(3) { .item:nth-child(3) {
background: url(https://eduvessel.com/images/occupationlab/record3-1.png) (88% 20px) / auto no-repeat, background: url(https://eduvessel.com/images/occupationlab/record3-1.png) 90% 18px/90rpx no-repeat,
url(https://eduvessel.com/images/occupationlab/record3.png) 0 0/100% 100% no-repeat; url(https://eduvessel.com/images/occupationlab/record3.png) 0 0/100% 100% no-repeat;
} }
.item:nth-child(4) { .item:nth-child(4) {
margin-right: 0; margin-right: 0;
background: url(https://eduvessel.com/images/occupationlab/record4-1.png) (88% 18px) / auto no-repeat, background: url(https://eduvessel.com/images/occupationlab/record4-1.png) 90% 14px/100rpx no-repeat,
url(https://eduvessel.com/images/occupationlab/record4.png) 0 0/100% 100% no-repeat; url(https://eduvessel.com/images/occupationlab/record4.png) 0 0/100% 100% no-repeat;
} }
@ -253,7 +257,7 @@
} }
.val { .val {
font-size: 42rpx; font-size: 36rpx;
color: #fff; color: #fff;
} }
} }

@ -129,7 +129,7 @@
.item { .item {
position: relative; position: relative;
display: inline-block; display: inline-block;
padding: 0 4rpx 8rpx; padding: 0 4rpx 16rpx;
text-align: center; text-align: center;
font-size: 28rpx; font-size: 28rpx;
color: #333; color: #333;

@ -25,7 +25,7 @@ ul {
display: flex; display: flex;
align-items: center; align-items: center;
margin-bottom: 20rpx; margin-bottom: 20rpx;
font-size: 28rpx; font-size: 30rpx;
color: #333; color: #333;
.icon { .icon {
width: 44rpx; width: 44rpx;
@ -71,6 +71,10 @@ ul {
input { input {
flex: 1; flex: 1;
} }
.readonly {
font-size: 28rpx;
color: #7d7d7d;
}
.req { .req {
.name:after { .name:after {
content: '*'; content: '*';

@ -6,9 +6,16 @@
</view> </view>
<view class="form-list"> <view class="form-list">
<button class="avatar-btn" open-type="chooseAvatar" @chooseavatar="onChooseAvatar"> <button class="avatar-btn" open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
<view class="avatar-left">
<image class="avatar" :src="hrUserInfo.avatar" mode=""></image> <image class="avatar" :src="hrUserInfo.avatar" mode=""></image>
</view>
<view class="val">修改头像</view> <view class="val">修改头像</view>
<uni-icons class="arrow" type="right" size="18" color="#ababab"></uni-icons>
</button> </button>
<view class="line">
<view class="name">账号</view>
<view class="readonly">{{ userAccount.account }}</view>
</view>
<view class="line"> <view class="line">
<view class="name">学号</view> <view class="name">学号</view>
<input type="text" placeholder="请输入学号" v-model="userAccount.workNumber" /> <input type="text" placeholder="请输入学号" v-model="userAccount.workNumber" />
@ -56,7 +63,7 @@
</view> </view>
<view class="line"> <view class="line">
<view class="name">所在国家</view> <view class="name">所在国家</view>
<view class="val">中国</view> <view class="readonly">中国</view>
</view> </view>
<view class="line"> <view class="line">
<view class="name">所在省份</view> <view class="name">所在省份</view>
@ -72,7 +79,7 @@
</view> </view>
<view class="line"> <view class="line">
<view class="name">当前所在学校</view> <view class="name">当前所在学校</view>
<view class="val">{{ hrUserInfo.schoolName }}</view> <view class="readonly">{{ hrUserInfo.schoolName }}</view>
</view> </view>
</view> </view>
</view> </view>
@ -93,7 +100,7 @@
</view> </view>
<view class="line"> <view class="line">
<view class="name">所在国家</view> <view class="name">所在国家</view>
<view class="val">中国</view> <view class="readonly">中国</view>
</view> </view>
<view class="line"> <view class="line">
<view class="name">学校名称</view> <view class="name">学校名称</view>
@ -149,7 +156,9 @@
dateBirth: '', dateBirth: '',
educationDegree: '' educationDegree: ''
}, },
userAccount: {}, userAccount: {
account: '',
},
sex: [{ sex: [{
text: '男', text: '男',
value: 1 value: 1
@ -494,6 +503,7 @@
padding-bottom: 130rpx; padding-bottom: 130rpx;
} }
.avatar-btn { .avatar-btn {
position: relative;
display: flex; display: flex;
align-items: center; align-items: center;
padding: 14rpx 0; padding: 14rpx 0;
@ -507,6 +517,9 @@
&:after { &:after {
display: none; display: none;
} }
.avatar-left {
width: 200rpx;
}
.avatar { .avatar {
width: 60rpx; width: 60rpx;
height: 60rpx; height: 60rpx;
@ -514,6 +527,14 @@
border: 0; border: 0;
border-radius: 50%; border-radius: 50%;
} }
.val {
color: #7d7d7d;
}
.arrow {
position: absolute;
top: 44rpx;
right: 20rpx;
}
} }
.arch-title { .arch-title {
display: flex; display: flex;

@ -37,7 +37,6 @@
if (!phone) return this.$util.errMsg('请输入手机号') if (!phone) return this.$util.errMsg('请输入手机号')
if (!/^1[3456789]\d{9}$/.test(phone) && !/^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/.test(phone)) return this.$util.errMsg('请输入正确的手机号') if (!/^1[3456789]\d{9}$/.test(phone) && !/^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/.test(phone)) return this.$util.errMsg('请输入正确的手机号')
// //
checkIfThePhoneNumberExists(phone).then(() => {
sendPhoneOrEmailCode({ sendPhoneOrEmailCode({
userId: this.userId, userId: this.userId,
phone, phone,
@ -50,7 +49,6 @@
this.$util.errMsg(message) this.$util.errMsg(message)
} }
}).catch(res => {}) }).catch(res => {})
}).catch(res => {})
}, },
// //
phoneCountdown() { phoneCountdown() {

@ -60,7 +60,7 @@
<style scoped lang="scss"> <style scoped lang="scss">
.page { .page {
padding-top: 300rpx; padding-top: 170rpx;
min-height: 100%; min-height: 100%;
text-align: center; text-align: center;
background: url(https://eduvessel.com/images/occupationlab/login1.png) 0 0/175rpx auto no-repeat, background: url(https://eduvessel.com/images/occupationlab/login1.png) 0 0/175rpx auto no-repeat,
@ -73,7 +73,8 @@
} }
.wrap { .wrap {
position: relative; position: relative;
padding: 60rpx; height: 60vh;
padding: 214rpx 74rpx 28rpx;
margin: 0 61rpx; margin: 0 61rpx;
text-align: center; text-align: center;
border-radius: 20rpx; border-radius: 20rpx;

Loading…
Cancel
Save