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. 31
      user/info/info.vue
  10. 24
      user/phone/phone.vue
  11. 5
      user/reg/reg.vue

@ -51,4 +51,8 @@ export const exportExamPaperReport = data => {
export const playRecordSave = 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">
<view class="realname-wrap">
<view class="realname-form">
<uni-forms class="">
<uni-forms label-width="70" label-align="right">
<uni-forms-item label="真实姓名" required>
<uni-easyinput type="text" v-model.trim="realNameForm.userName" placeholder="请输入真实姓名" />
</uni-forms-item>
@ -36,6 +36,7 @@
async handleRealName () {
const res = await checkUserNameOrWorkNumber()
//
if (!res.hasName) this.realNameForm.workNumber = res.workNumber
this.$refs.alertDialog[res.hasName ? 'close' : 'open']()
},
//

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

@ -3,7 +3,7 @@
<view v-if="practices.length" class="list">
<view v-for="(item, i) in practices" :key="i" class="item" @click="toDetail(item)">
<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.submitTime }}</view>
<view class="btn">成绩报告</view>

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

@ -12,17 +12,17 @@
<view class="item">
<view class="val">{{ overview.experimentalNum }}</view>
<view class="name">实验次数()</view>
<view class="name">提交次数()</view>
</view>
<view class="item">
<view class="val">{{ overview.duration ? overview.duration : 0 }}小时</view>
<view class="name">实验总时长()</view>
<view class="name">答题总时长</view>
</view>
<view class="item">
<view class="val">{{ overview.avgScore ? overview.avgScore.toFixed(2) : overview.avgScore }}</view>
<view class="name">实验平均分</view>
<view class="name">平均分</view>
</view>
</view>
</view>
@ -46,8 +46,8 @@
<view v-for="(item, i) in list" :key="i" class="item" @click="toPrac(item)">
<view class="c-name">{{ item.projectName }}</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>
</view>
@ -181,10 +181,14 @@
background-color: #fff;
}
.tab-wrap {
z-index: 1;
position: sticky;
top: 0;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20rpx;
padding: 20rpx 0;
background-color: #fff;
/deep/.picker-input {
max-width: 70%;
}
@ -220,23 +224,23 @@
gap: 32rpx;
.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;
}
.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;
}
.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;
}
.item:nth-child(4) {
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;
}
@ -253,7 +257,7 @@
}
.val {
font-size: 42rpx;
font-size: 36rpx;
color: #fff;
}
}

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

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

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

@ -37,19 +37,17 @@
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('请输入正确的手机号')
//
checkIfThePhoneNumberExists(phone).then(() => {
sendPhoneOrEmailCode({
userId: this.userId,
phone,
types: 2
}).then(({ message }) => {
if (message.opener) {
this.phoneCountdown()
this.phoneOpener = message.opener
} else {
this.$util.errMsg(message)
}
}).catch(res => {})
sendPhoneOrEmailCode({
userId: this.userId,
phone,
types: 2
}).then(({ message }) => {
if (message.opener) {
this.phoneCountdown()
this.phoneOpener = message.opener
} else {
this.$util.errMsg(message)
}
}).catch(res => {})
},
//

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

Loading…
Cancel
Save