lion 2 months ago
parent 42be8e103b
commit 42d656f3b5

@ -63,7 +63,10 @@ let apiApp = {
signCheck:'/api/mobile/course/content-check',
signDistance:'/api/mobile/course/distance',
// 课程签到
courseCheck:'/api/mobile/course/course-check'
courseCheck:'/api/mobile/course/course-check',
// 问卷
courseEvaluationDetail:'/api/mobile/course/evaluation-detail',
}
@ -136,6 +139,8 @@ const install = (Vue, vm) => {
let signCheck = (params = {}) => vm.$u.get(apiApp.signCheck, params);
let signDistance = (params = {}) => vm.$u.get(apiApp.signDistance, params);
let courseCheck = (params = {}) => vm.$u.get(apiApp.courseCheck, params);
// 问卷
let courseEvaluationDetail = (params = {}) => vm.$u.get(apiApp.courseEvaluationDetail, params);
// 将各个定义的接口名称统一放进对象挂载到vm.$u.api(因为vm就是this也即this.$u.api)下
vm.$u.api = {
// 用户
@ -196,6 +201,8 @@ const install = (Vue, vm) => {
signCheck,
signDistance,
courseCheck,
// 问卷
courseEvaluationDetail,
};
}

@ -34,10 +34,10 @@
<view class="item-img">
<image :src="base.imgHost('mycourse-c3.png')" style="width:19rpx;height:27rpx"></image>
<text>{{item.address}}</text>
</view>
<view class="item-btn">
<view @click="goSign(item.id)"></view>
<view v-if="item.course_content_evaluation && item.course_content_evaluation.status==1" @click="goSurvey(item.id)"></view>
</view>
<view class="item-btn">
<view @click="goSign(item.id)"></view>
// <view v-if="item.course_content_evaluation && item.course_content_evaluation.status==1" @click="goSurvey(item.id)"></view>
</view>
</view>
</view>
@ -79,16 +79,16 @@
});
this.getMyCourseContents(options.id)
},
methods: {
goSign(id){
uni.navigateTo({
url:'/packages/sign/index?id='+id
})
},
goSurvey(id){
uni.navigateTo({
url:'/packages/surveyFill/index?id='+id
})
methods: {
goSign(id){
uni.navigateTo({
url:'/packages/sign/index?id='+id
})
},
goSurvey(id){
uni.navigateTo({
url:'/packages/surveyFill/index?id='+id
})
},
async getMyCourseContents(id) {
let res = {
@ -311,22 +311,22 @@
image {
margin-right: 10rpx;
}
}
&-btn{
width: 100%;
position: relative;
padding: 20rpx 0;
display: flex;
justify-content: flex-end;
&>view {
width: 30%;
text-align: center;
margin-left:20rpx;
color: #fff;
background: linear-gradient(to right, #5e5fbc, #0d0398);
border-radius: 30rpx;
padding: 10rpx;
}
}
&-btn{
width: 100%;
position: relative;
padding: 20rpx 0;
display: flex;
justify-content: flex-end;
&>view {
width: 30%;
text-align: center;
margin-left:20rpx;
color: #fff;
background: linear-gradient(to right, #5e5fbc, #0d0398);
border-radius: 30rpx;
padding: 10rpx;
}
}
}

@ -274,43 +274,41 @@
}
},
shouldShowSurvey(item) {
// 1
if (!item.course_content_evaluation || item.course_content_evaluation.status != 1) {
return false;
}
//
const now = new Date();
const currentTime = now.getTime();
// start_time
if (!item.course_content_evaluation.start_time) {
return false;
}
const startTime = new Date(item.course_content_evaluation.start_time).getTime();
// start_time
if (currentTime < startTime) {
return false;
}
// end_time
if (item.course_content_evaluation.end_time) {
const endTime = new Date(item.course_content_evaluation.end_time).getTime();
// start_timeend_time
return currentTime >= startTime && currentTime <= endTime;
} else {
// end_timestart_time
return currentTime >= startTime;
getAvailableEvaluation(item){
const evalList = Array.isArray(item.course_content_evaluation)
? item.course_content_evaluation
: (item.course_content_evaluation ? [item.course_content_evaluation] : []);
if (!evalList.length) return null;
const nowTs = Date.now();
const parseTs = (s) => {
if (!s) return NaN;
const t = new Date(s).getTime();
return isNaN(t) ? NaN : t;
};
for (let i = 0; i < evalList.length; i += 1) {
const ev = evalList[i];
if (!ev || ev.status != 1) continue;
const startTs = parseTs(ev.start_time);
if (!(startTs > 0) || nowTs < startTs) continue;
if (ev.end_time) {
const endTs = parseTs(ev.end_time);
if (!(endTs > 0) || nowTs > endTs) continue;
}
return ev;
}
return null;
},
shouldShowSurvey(item) {
return !!this.getAvailableEvaluation(item);
},
goSurvey(item) {
// course_id
const courseContentId = item.id;
const available = this.getAvailableEvaluation(item);
if (!available) {
this.base.toast('暂无可填写的问卷');
return;
}
uni.navigateTo({
url: '/packages/surveyFill/index?course_id=' + courseContentId
url: '/packages/surveyFill/index?id=' + available.id
});
}
}

@ -15,14 +15,14 @@
<view class="survey-container">
<view class="survey-header">
<h1 class="survey-title">{{survey.course_content_evaluation?survey.course_content_evaluation.title:''}}
<h1 class="survey-title">{{survey.title||''}}
</h1>
<p class="survey-description">
{{survey.course_content_evaluation?survey.course_content_evaluation.desc:''}}
{{survey.desc||''}}
</p>
</view>
<!-- 问卷头部 -->
<view class="survey-header">
<!-- <view class="survey-header">
<view class="survey-header-item">
<view>
<span>课程名称</span>
@ -42,7 +42,7 @@
<span v-else>{{survey.date}} {{survey.start_time?survey.start_time:''}}-{{survey.end_time?survey.end_time:''}}</span>
</view>
</view>
</view>
</view> -->
<!-- 问卷表单 -->
<view class="survey-form">
@ -159,7 +159,7 @@
onLoad(options) {
//
this.id = options.id || options.course_content_id
this.id = options.id
this.course_id = options.course_id
console.log("页面参数:", { id: this.id, course_id: this.course_id })
@ -171,25 +171,32 @@
//
async getDetail(id) {
//
if (this.course_id) {
// course_id使courseDetail
const res = await this.$u.api.courseDetail({
course_id: this.course_id
})
console.log("courseDetail res", res)
this.survey = res
} else {
// course_id使courseContentDetail
const res = await this.$u.api.courseContentDetail({
course_content_id: id
})
console.log("courseContentDetail res", res)
this.survey = res
}
// if (this.course_id) {
// // course_id使courseDetail
// const res = await this.$u.api.courseDetail({
// course_id: this.course_id
// })
// console.log("courseDetail res", res)
// this.survey = res
// } else {
// // course_id使courseContentDetail
// const res = await this.$u.api.courseContentDetail({
// course_content_id: id
// })
// console.log("courseContentDetail res", res)
// this.survey = res
// }
const res = await this.$u.api.courseEvaluationDetail({
course_content_evaluation_id:id
})
console.log("courseEvaluationDetail res", res)
this.survey = res
//
if (this.survey && this.survey.course_content_evaluation && this.survey.course_content_evaluation.course_content_evaluation_asks) {
this.questionList = this.survey.course_content_evaluation.course_content_evaluation_asks
console.log("courseEvaluationDetail res", res.course_content_evaluation_asks)
if (res && res.course_content_evaluation_asks) {
this.questionList = res.course_content_evaluation_asks
} else {
this.questionList = []
console.warn("未找到问卷调查数据")
@ -356,7 +363,7 @@
success: (res) => {
if (res.confirm) {
that.$u.api.courseContentForm({
course_content_evaluation_id:that.survey.course_content_evaluation.id,
course_content_evaluation_id:that.id,
data:that.questionList
}).then(res=>{
that.base.toast('提交成功',1500,function(){

Loading…
Cancel
Save