Commit 4b8810bc authored by Morson's avatar Morson
parents 36734e60 3954d3f5
...@@ -7,7 +7,7 @@ let learnApiFun = function(vm){ ...@@ -7,7 +7,7 @@ let learnApiFun = function(vm){
let getTrainingNoticeList = async (params = {}) => await vm.$u.get(ucenterApiUrl+'/v1/notice/list', params); let getTrainingNoticeList = async (params = {}) => await vm.$u.get(ucenterApiUrl+'/v1/notice/list', params);
/* 获取学习视频基本信息 */ /* 获取学习视频基本信息 */
let CourseList = async (params = {}) => await vm.$u.get(collegeApiUrl+'/v1/course-details?course_id=173',params); let CourseList = async (params = {}) => await vm.$u.get(collegeApiUrl+'/v1/course-details',params);
/* 获取章节详情 */ /* 获取章节详情 */
let ChapterDetails = async (params = {}) => await vm.$u.get(collegeApiUrl+'/v1/chapter-sections',params); let ChapterDetails = async (params = {}) => await vm.$u.get(collegeApiUrl+'/v1/chapter-sections',params);
/* 获取课程节信息*/ /* 获取课程节信息*/
......
...@@ -12,6 +12,7 @@ const globalUrl = process.uniEnv || {} ...@@ -12,6 +12,7 @@ const globalUrl = process.uniEnv || {}
const install = (Vue, vm) => { const install = (Vue, vm) => {
let systemApiUrl = globalUrl.systemUrl.apiUrl let systemApiUrl = globalUrl.systemUrl.apiUrl
let ucenterApiUrl = globalUrl.ucenterUrl.apiUrl let ucenterApiUrl = globalUrl.ucenterUrl.apiUrl
let xueApiUrl = globalUrl.ucenterUrl.xueUrl
function toLoginPage(){ function toLoginPage(){
const app = getApp() const app = getApp()
...@@ -48,7 +49,7 @@ const install = (Vue, vm) => { ...@@ -48,7 +49,7 @@ const install = (Vue, vm) => {
config.url += '?access-token=' + token config.url += '?access-token=' + token
} }
} }
if(config.url.indexOf(ucenterApiUrl)>-1){ if(config.url.indexOf(ucenterApiUrl)>-1 || config.url.indexOf(xueApiUrl)>-1){
// php端增加header Authorization // php端增加header Authorization
config.header['Authorization'] = token config.header['Authorization'] = token
} }
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<view class="appoint-box"> <view class="appoint-box">
<view class="select-date"> <view class="select-date">
<view class="u-flex u-row-between "> <view class="u-flex u-row-between ">
<view class="txt">选择日期</view> <view class="txt">选择日期</view>
<view class="txt active">{{ dateList[currentDay].day }}</view> <view class="txt active">{{ dateList[currentDay].day }}</view>
</view> </view>
<view class="u-m-t-30 u-flex u-row-between date-list"> <view class="u-m-t-30 u-flex u-row-between date-list">
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
<!-- weekChange --> <!-- weekChange -->
<view class="select-time u-p-t-50"> <view class="select-time u-p-t-50">
<view class="u-flex u-row-between"> <view class="u-flex u-row-between">
<view class="txt">选择时间</view> <view class="txt">选择时间</view>
<view class="txt active">{{ currentTimeTxt }}</view> <view class="txt active">{{ currentTimeTxt }}</view>
</view> </view>
<view class="u-p-t-30 u-flex u-flex-wrap time-list"> <view class="u-p-t-30 u-flex u-flex-wrap time-list">
......
...@@ -78,13 +78,15 @@ ...@@ -78,13 +78,15 @@
} }
} }
}, },
// waitAccept:待接单、 /* 订单类型
// waitAppointment:待预约、 waitAccept:待接单、
// waitCheckIn:待签到、 waitAppointment:待预约、
// waitFinish:待完工、 waitCheckIn:待签到、
// review: 审核中、 waitFinish:待完工、
// exception:异常单、 review: 审核中、
// finish:已完工 exception:异常单、
finish:已完工
*/
type: String, type: String,
location: { // 当前坐标 location: { // 当前坐标
type: Array, type: Array,
......
...@@ -40,57 +40,57 @@ ...@@ -40,57 +40,57 @@
<view class="top"> <view class="top">
<view class="currency-class"> <view class="currency-class">
<view class="title">通用课程</view> <view class="title">通用课程</view>
<view class="class1" @click=ccc(173)> <view class="class1" @click=ccc(courselist[0].id)>
<image class="img" :src=courselist.course.preview_pic mode=""></image> <image class="img" :src=courselist[0].pic mode=""></image>
<view class="right"> <view class="right">
<view class=""> <view class="">
{{ courselist[0].title }}
{{courselist.course.name}}
</view> </view>
<view class="intro" v-html="courselist.course.intro"> <view class="intro">
{{courselist.course.intro}} {{ courselist[0].desc }}
</view> </view>
<view class="" style="display:flex;justify-content: space-between;"> <view class="" style="display:flex;justify-content: space-between;">
<u-line-progress active-color="#2979ff" <u-line-progress active-color="#2979ff"
:percent=courselist.learnedInfo.learnPercent style="width:54%;"> :percent=courselist[0].percent style="width:54%;">
</u-line-progress> </u-line-progress>
<text <text v-text="courselist[0].status"></text>
v-text="(courselist.learnedInfo.isLearned) ?(courselist.learnedInfo.learnPercent==1)?'已完成':'继续':'未观看' "></text>
</view> </view>
</view> </view>
</view> </view>
<view class="class1"> <view class="class1" @click=ccc(courselist[1].id)>
<image class="img" src="../../static/logo.png" mode=""></image> <image class="img" :src=courselist[1].pic mode=""></image>
<view class="right"> <view class="right">
<view class=""> <view class="">
接单操作 {{ courselist[1].title }}
</view> </view>
<view class=""> <view class="">
快速学习,使用APP接单、抢单 {{ courselist[1].desc }}
</view> </view>
<view class="" style="display:flex;justify-content: space-between;"> <view class="" style="display:flex;justify-content: space-between;">
<u-line-progress active-color="#2979ff" :percent="30" style="width:54%;"> <u-line-progress active-color="#2979ff"
:percent="courselist[1].percent" style="width:54%;">
</u-line-progress> </u-line-progress>
<text>继续</text> <text v-text="courselist[1].status"></text>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<view class="currency-class"> <view class="currency-class">
<view class="title">技能课程</view> <view class="title">技能课程</view>
<view class="class1"> <view class="class1" @click=ccc(courselist[2].id)>
<image class="img" src="../../static/logo.png" mode=""></image> <image class="img" :src=courselist[2].pic mode=""></image>
<view class="right"> <view class="right">
<view class=""> <view class="">
从0-1学习充电桩安装服务 {{ courselist[2].title }}
</view> </view>
<view class=""> <view class="">
让你全面了解充电桩市场及服务规范 {{ courselist[2].desc }}
</view> </view>
<view class="" style="display:flex;justify-content: space-between;"> <view class="" style="display:flex;justify-content: space-between;">
<u-line-progress active-color="#2979ff" :percent="100" style="width:54%;"> <u-line-progress active-color="#2979ff"
:percent="courselist[2].percent" style="width:54%;">
</u-line-progress> </u-line-progress>
<text>完成</text> <text v-text="courselist[2].status"></text>
</view> </view>
</view> </view>
</view> </view>
...@@ -187,7 +187,31 @@ ...@@ -187,7 +187,31 @@
start: 0, start: 0,
}, },
list: [], list: [],
courselist: null, courselist: [{
title: '服务规范',
desc: '为用户提供更好服务,自己赚更多钱',
percent: 0,
status: '',
pic: 'http://deimg.c.xixia.cc/preview/f5/e7/0e/Pbm9Q3V5ymTn8VeK0521.png',
id: 173
},
{
title: '接单操作',
desc: '快速学习,使用APP 接单、抢单',
percent: 0,
status: '',
pic: 'http://deimg.c.xixia.cc/preview/f5/e7/0e/Pbm9Q3V5ymTn8VeK0521.png',
id: 173
},
{
title: '从0-1学习充电桩安装服务',
desc: '让你全面了解充电桩市场及服务规范',
percent: 0,
status: '',
pic: 'http://deimg.c.xixia.cc/preview/f5/e7/0e/Pbm9Q3V5ymTn8VeK0521.png',
id: 173
}
],
loadStatus: "loading", //加载样式:loadMore-加载前样式,loading-加载加载中样式,nomore-没有数据样式 loadStatus: "loading", //加载样式:loadMore-加载前样式,loading-加载加载中样式,nomore-没有数据样式
isLoadMore: false, //是否加载中 isLoadMore: false, //是否加载中
course_id: "course_id_=173", course_id: "course_id_=173",
...@@ -246,36 +270,29 @@ ...@@ -246,36 +270,29 @@
} }
}); });
}, },
getTypeName(percent){
if(percent == 0){
return '未开始';
}else if(percent == '100'){
return '已完成';
}else{
return '继续';
}
},
//在线学习通用课程信息 //在线学习通用课程信息
getCourseList() { getCourseList() {
this.$u.api let courseLength = this.courselist.length;
.CourseList() for(let i = 0;i < courseLength; i++){
let param = {
course_id: this.courselist[i].id
};
this.$u.api
.CourseList(param)
.then((res) => { .then((res) => {
if (res.code == 200) { if (res.code == 200) {
if (res.data) { if (res.data) {
this.courselist = res.data; this.courselist[i].status = this.getTypeName(res.data.learnedInfo.learnPercent);
console.log("--------"); this.courselist[i].percent = res.data.learnedInfo.learnPercent;
console.log(this.courselist);
if (res.data.length < 5) {
//判断接口返回数据量小于请求数据量,则表示此为最后一页
this.isLoadMore = true;
this.loadStatus = "nomore";
} else {
this.isLoadMore = false;
}
} else {
this.isLoadMore = true;
this.loadStatus = "nomore";
}
} else {
//接口请求失败的处理
uni.showToast({
title: res.message,
icon: "none",
});
this.isLoadMore = false;
if (this.params.start > 0) {
this.page -= 5;
} }
} }
}) })
...@@ -284,17 +301,16 @@ ...@@ -284,17 +301,16 @@
title: err, title: err,
icon: "none", icon: "none",
}); });
this.isLoadMore = false; });
if (this.params.start > 0) { }
this.page -= 5;
}
});
}, },
//tabs通知swiper切换 //tabs通知swiper切换
tabsChange(index) { tabsChange(index) {
this.swiperCurrent = index; this.swiperCurrent = index;
switch (index) { switch (index) {
case 1: case 1:
this.params.start = 0;
this.list = [];
this.getList(); this.getList();
break; break;
case 2: case 2:
......
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
currentIndex: -1, // 第几个视频 currentIndex: -1, // 第几个视频
section_id: 0, section_id: 0,
isShowVideo: false, isShowVideo: false,
CourseSectionlist: {}, //节信息 CourseSectionlist: {name: '', content: ''}, //节信息
playerOptions: { playerOptions: {
playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度 playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度
autoplay: true, //如果true,浏览器准备好时开始回放。 autoplay: true, //如果true,浏览器准备好时开始回放。
...@@ -145,33 +145,11 @@ ...@@ -145,33 +145,11 @@
if (this.courseStatus && (this.courseStatus == "1" || this.courseStatus == 1)) { if (this.courseStatus && (this.courseStatus == "1" || this.courseStatus == 1)) {
return return
} }
this.changeCourseStatus();
}, },
playerReadied(player) { playerReadied(player) {
console.log('i go to playerReadied gklog:' + this.gklog) console.log('i go to playerReadied gklog:' + this.gklog)
player.currentTime(this.gklog) player.currentTime(this.gklog)
}, },
changeCourseStatus() {
let that = this;
if (that.courseId) {
that.$u.api
.saveCourseRate({
courseId: that.courseId,
})
.then((res) => {
if (res.code !== 200) {
uni.showToast({
icon: "none",
title: "更新课程状态失败",
});
}
});
} else {
uni.showToast({
title: "课程ID为空,请重新选择课程",
});
}
},
getCourseSection(param) { getCourseSection(param) {
this.$u.api this.$u.api
.CourseSection(param) .CourseSection(param)
...@@ -183,15 +161,17 @@ ...@@ -183,15 +161,17 @@
console.log(this.CourseSectionlist) console.log(this.CourseSectionlist)
let wareVal = this.CourseSectionlist.ware; let wareVal = this.CourseSectionlist.ware;
this.isShowVideo = wareVal == "0"; this.isShowVideo = wareVal == "0";
this.courseTitle = res.data.name;
this.courseDesc = res.data.content;
this.section_id = res.data.id;
this.section_content = res.data.content;
if (this.isShowVideo) { if (this.isShowVideo) {
let coureWareList = res.data.courseware; let coureWareList = res.data.courseware;
this.courseSrc = coureWareList[0].src; this.courseSrc = coureWareList[0].src;
this.videoTotalTime = parseInt(JSON.parse(coureWareList[0].info).time); this.videoTotalTime = parseInt(JSON.parse(coureWareList[0].info).time);
console.log('视频时长信息:' + this.videoTotalTime); console.log('视频时长信息:' + this.videoTotalTime);
this.courseTitle = res.data.name; }else{
this.courseDesc = res.data.content; this.updateLearnedStatusForText();
this.section_id = res.data.id;
this.section_content = res.data.content;
} }
} }
} }
...@@ -205,6 +185,26 @@ ...@@ -205,6 +185,26 @@
}); });
}); });
}, },
updateLearnedStatusForText() {
if (this.isShowVideo) {
return false;
}
let param = {
section_id: this.section_id,
video_time: 0,
status: 1,
};
this.$u.api.updateLearnCourses(param).then((res) => {
console.log('--' + this.howTimeToUpdateLearnedStatus + '更新一次观看状态--time:' + nowTime);
}).catch((err) => {
console.log('--------updateLearnedStatusForText---------');
console.log(err);
uni.showToast({
title: err,
icon: "none",
});
});
},
updateLearnedStatus(nowTime) { updateLearnedStatus(nowTime) {
if (this.gklog != nowTime && nowTime % this.howTimeToUpdateLearnedStatus == 0) { if (this.gklog != nowTime && nowTime % this.howTimeToUpdateLearnedStatus == 0) {
if (nowTime < this.howLongIsLearned) { if (nowTime < this.howLongIsLearned) {
...@@ -221,6 +221,13 @@ ...@@ -221,6 +221,13 @@
}; };
this.$u.api.updateLearnCourses(param).then((res) => { this.$u.api.updateLearnCourses(param).then((res) => {
console.log('--' + this.howTimeToUpdateLearnedStatus + '更新一次观看状态--time:' + nowTime); console.log('--' + this.howTimeToUpdateLearnedStatus + '更新一次观看状态--time:' + nowTime);
}).catch((err) => {
console.log('--------updateLearnedStatus---------');
console.log(err);
uni.showToast({
title: err,
icon: "none",
});
}); });
} }
} }
...@@ -345,7 +352,7 @@ ...@@ -345,7 +352,7 @@
} }
} }
} }
.u-content { .u-content {
// margin-top: 10rpx; // margin-top: 10rpx;
padding: 40rpx 30rpx; padding: 40rpx 30rpx;
......
...@@ -20,14 +20,15 @@ ...@@ -20,14 +20,15 @@
<u-tabs <u-tabs
:list="tabList" :list="tabList"
:current="curTab" :current="curTab"
height="80" height="60"
gutter="89" gutter="89"
bar-height="4" bar-height="4"
bar-width="44" bar-width="44"
bg-color="none" bg-color="none"
active-color="#FFFFFF" active-color="#FFFFFF"
inactive-color="#FFFFFF" inactive-color="#DEDEDE"
font-size="32" font-size="32"
bold
@change="changeTab" @change="changeTab"
></u-tabs> ></u-tabs>
</view> </view>
...@@ -35,6 +36,7 @@ ...@@ -35,6 +36,7 @@
<!-- <view class="con-box"> <!-- <view class="con-box">
</view> --> </view> -->
<view class="content-view">
<view class="con-box"> <view class="con-box">
<view class="title">{{feedback.own.title}}</view> <view class="title">{{feedback.own.title}}</view>
<view class="u-flex u-flex-wrap"> <view class="u-flex u-flex-wrap">
...@@ -43,7 +45,7 @@ ...@@ -43,7 +45,7 @@
:key="index" :key="index"
@click="changeOwn(index)" @click="changeOwn(index)"
:class="{'txt-item':true,'active': (trace.reasonRelegation == index)}"> :class="{'txt-item':true,'active': (trace.reasonRelegation == index)}">
<text class="txt">{{index}}</text> <text class="txt">{{item}}</text>
</view> </view>
</view> </view>
<u-gap height="30"></u-gap> <u-gap height="30"></u-gap>
...@@ -53,16 +55,19 @@ ...@@ -53,16 +55,19 @@
v-for="(txt, index) in options[curTab][trace.reasonRelegation]" v-for="(txt, index) in options[curTab][trace.reasonRelegation]"
:key="index" :key="index"
@click="changeType(txt)" @click="changeType(txt)"
:class="{'txt-item':true,'active': (trace.reason == txt)}"> :class="{'txt-item':true,'active': (trace.reason == txt)}" style="width: 306rpx;">
<text class="txt">{{txt}}</text> <text class="txt">{{txt}}</text>
</view> </view>
</view> </view>
<u-input v-show="showRemark" v-model="trace.remark" class="textarea" height="156" type="textarea" placeholder="请补充详细说明,以便于记录您的接单信用分"></u-input> <u-input v-show="showRemark" v-model="trace.remark" class="textarea" height="156" type="textarea" placeholder="请补充详细说明,以便于记录您的接单信用分"></u-input>
</view> </view>
<view class="time-view">
<appoint-time @dateChange="dateChange" @timeChange="timeChange" @weekChange="weekChange"></appoint-time> <appoint-time @dateChange="dateChange" @timeChange="timeChange" @weekChange="weekChange"></appoint-time>
</view>
</view>
</view> </view>
<view class="u-m-60"> <view class="bottom-view">
<button class="btn" @click="submitForm" :loading="submiting" :disabled="disabledSubmit">确定</button> <button class="btn, bottom-btn" @click="submitForm" :loading="submiting" :disabled="disabledSubmit"><text class="button-text">确定</text></button>
</view> </view>
</view> </view>
</template> </template>
...@@ -278,6 +283,8 @@ ...@@ -278,6 +283,8 @@
background-repeat: no-repeat; background-repeat: no-repeat;
} }
.feedback-box { .feedback-box {
display: flex;
flex-direction: column;
.header { .header {
padding: 12rpx 30rpx 40rpx 30rpx; padding: 12rpx 30rpx 40rpx 30rpx;
display: flex; display: flex;
...@@ -296,9 +303,43 @@ ...@@ -296,9 +303,43 @@
.top-tab{ .top-tab{
text-align: center; text-align: center;
} }
.content {
display: flex;
flex-direction: column;
overflow: hidden;
margin-bottom: 188rpx;
.content-view {
height: 100%;
border-radius: 12rpx;
overflow: auto;
margin-top:30rpx;
.time-view {
border-radius: 12rpx;
background-color: #FFFFFF;
padding-bottom: 20rpx;
}
}
}
.bottom-view {
position: fixed;
bottom: 44rpx;
width: 100%;
}
.bottom-btn {
height: 104rpx;
width: 600rpx;
display: flex;
align-items: center;
justify-content: center;
.button-text {
font-size: 32rpx;
font-weight: bold;
}
}
.con-box{ .con-box{
margin-top:30rpx; padding: 30rpx 30rpx 8rpx 30rpx;
padding: 30rpx 30rpx 28rpx 30rpx;
border-radius: 12rpx; border-radius: 12rpx;
background-color: #FFFFFF; background-color: #FFFFFF;
.title{ .title{
...@@ -313,24 +354,32 @@ ...@@ -313,24 +354,32 @@
.txt-item{ .txt-item{
border-radius: 12rpx; border-radius: 12rpx;
padding:24rpx 38rpx; padding:24rpx 38rpx;
min-width: 196rpx; width: 196rpx;
height: 72rpx;
text-align: center; text-align: center;
margin-right: 20rpx; margin-right: 22rpx;
margin-bottom: 20rpx; margin-bottom: 20rpx;
background-color: #F4F5F7; background-color: #F4F5F7;
&.active{ &.active{
background-color: #2272FF; background-color: #2272FF;
.txt{ .txt{
color: #fff; color: #fff;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
} }
} }
} }
} }
.txt{ .txt{
display:block; display:block;
font-size: 26rpx; font-size: 26rpx;
line-height: 26rpx; line-height: 26rpx;
color: #333; color: #333;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
} }
.textarea{ .textarea{
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
</view> </view>
<view class="con-box" style="padding-top: 10rpx;"> <view class="con-box" style="padding-top: 10rpx;">
<view class="tit u-m-b-20">补充说明</view> <view class="tit u-m-b-20">补充说明</view>
<u-input v-model="formData.remark" class="textarea" height="156" type="textarea" placeholder="请补充详细说明,以便于记录您的接单信用分"></u-input> <u-input v-model="formData.remark" class="textarea" height="156" type="textarea" placeholder="请补充详细说明,以便于记录您的接单信用分" :clearable="false"></u-input>
</view> </view>
</view> </view>
...@@ -221,7 +221,7 @@ ...@@ -221,7 +221,7 @@
width: 100%; width: 100%;
padding: 0 80rpx; padding: 0 80rpx;
position: absolute; position: absolute;
bottom: 40rpx; bottom: 44rpx;
.bottom-btn { .bottom-btn {
height: 104rpx; height: 104rpx;
display: flex; display: flex;
......
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