Commit 68e2db69 authored by 郭晓清's avatar 郭晓清

Merge branch 'master' of https://git.banshouhui.com/lijundan/self-support

# Conflicts:
#	src/common/api/order.js
parents 9bd5bf70 f845fd84
...@@ -5,8 +5,8 @@ const UNI_APP = { ...@@ -5,8 +5,8 @@ const UNI_APP = {
// banshou: 'https://m.banshou.com', //扳手app // banshou: 'https://m.banshou.com', //扳手app
}, },
systemUrl: { systemUrl: {
apiUrl: 'http://192.168.1.22', //java端域名请求头 // apiUrl: 'http://192.168.1.22', //java端域名请求头
// apiUrl: 'http://apidoc.banshouhui.com:3000/mock/31', // mock端域名请求头 apiUrl: 'http://apidoc.banshouhui.com:3000/mock/31', // mock端域名请求头
}, },
qn_base_url: 'https://qn-static.banshouhui.com/self-support/' qn_base_url: 'https://qn-static.banshouhui.com/self-support/'
} }
......
...@@ -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);
/* 获取课程节信息*/ /* 获取课程节信息*/
......
import util from '@/utils/util.js' import util from '@/utils/util.js'
// 接口公共前缀
const prefix = '/wxh-worker-rest/rest/'
let orderApiFun = function(vm){ let orderApiFun = function(vm){
let listByRecommendOrder = async (params = {}) => await vm.$u.get('/wxh-worker-rest/rest/recommend/order', params); let listByRecommendOrder = async (params = {}) => await vm.$u.get('/wxh-worker-rest/rest/recommend/order', params);
/** /**
* 工单数量查询接口 * 工单数量查询接口
*/ */
let listOrderCount = async (params = {}) => await vm.$u.get('/wxh-worker-rest/rest/'+ vm.vuex_token+'/wokerOrder/queryOrdersCount/V2', params); let listOrderCount = async (params = {}) => await vm.$u.get(prefix + vm.vuex_token + '/wokerOrder/queryOrdersCount/V2', params);
/** /**
* 工单列表接口 wxh-worker-rest/rest/order/revision/{token}/list * 工单列表接口
*/ */
let listOrder = async (params = {}) => await vm.$u.get('/wxh-worker-rest/rest/order/revision/'+ vm.vuex_token+'/list', params); let listOrder = async (params = {}) => await vm.$u.get('/wxh-worker-rest/rest/order/revision/' + vm.vuex_token + '/list', params);
/** /**
* 获取师傅的预约日历 * 获取师傅的预约日历
*/ */
let workerCalendar = async (params = {}) => await vm.$u.get('/wxh-worker-rest/rest/'+ vm.vuex_token+'/wokerOrder/appointment/calendar', params); let workerCalendar = async (params = {}) => await vm.$u.get(prefix + vm.vuex_token + '/wokerOrder/appointment/calendar', params);
/** /**
* 师傅预约 * 师傅预约
...@@ -27,20 +29,20 @@ let orderApiFun = function(vm){ ...@@ -27,20 +29,20 @@ let orderApiFun = function(vm){
/** /**
* 师傅签到接口 * 师傅签到接口
*/ */
let maintainWorkerCheckin = async (params = {},orderId) => await vm.$u.post(prefix + '/wxh-worker-rest/rest/'+ vm.vuex_token+'/order/'+orderId+'/maintainWorkerCheckin', params,{'content-type': 'application/x-www-form-urlencoded'}); let maintainWorkerCheckin = async (params = {},orderId) => await vm.$u.post(prefix + vm.vuex_token + '/order/'+orderId+'/maintainWorkerCheckin', params,{'content-type': 'application/x-www-form-urlencoded'});
/** /**
* 订单详情查询 * 订单详情查询
*/ */
let orderDetail = async (params = {},orderId) => await vm.$u.get('/wxh-worker-rest/rest/order/revision/'+ vm.vuex_token+'/'+orderId, params); let orderDetail = async (params = {},orderId) => await vm.$u.get('/wxh-worker-rest/rest/order/revision/'+ vm.vuex_token+'/'+orderId, params);
/* 过程反馈查询接口 */ /* 过程反馈查询接口 */
let feedbackConfig = async (params = {}) => await vm.$u.get('/wxh-worker-rest/rst/order/v2/getFeedBack/' + vm.vuex_token, params) let feedbackConfig = async (params = {}) => await vm.$u.get('/wxh-worker-rest/rest/order/v2/getFeedBack/' + vm.vuex_token, params)
/* 预约+过程反馈 接口 */ /* 预约+过程反馈 接口 */
let traceAndAppointment = async (params = {}, orderId) => await vm.$u.post('/wxh-worker-rest/rest/order/traceAndAppointment/trace/V2/' + vm.vuex_token + '/' + orderId, params) let traceAndAppointment = async (params = {}, orderId) => await vm.$u.post('/wxh-worker-rest/rest/order/traceAndAppointment/trace/V2/' + vm.vuex_token + `/${orderId}`, params)
/* 师傅拒单 */ /* 师傅拒单 */
let rejectOrder = async (params = {}, orderId) => await vm.$u.get('/wxh-worker-rest/rest/' + vm.vuex_token + '/order/' + orderId + '/workerReject/V2', params) let rejectOrder = async (params = {}, orderId) => await vm.$u.get(prefix + vm.vuex_token + `/order/${orderId}/workerReject/V2`, params)
/** /**
...@@ -51,7 +53,7 @@ let orderApiFun = function(vm){ ...@@ -51,7 +53,7 @@ let orderApiFun = function(vm){
/** /**
* 接单 * 接单
*/ */
let orderAccept= async (params = {},orderId) => await vm.$u.get('/wxh-worker-rest/rest/'+ vm.vuex_token+'/order/'+orderId+'/accept', params); let orderAccept = async (params = {},orderId) => await vm.$u.get(prefix + vm.vuex_token+'/order/'+orderId+'/accept', params);
/** /**
* 抢单 * 抢单
...@@ -61,17 +63,22 @@ let orderApiFun = function(vm){ ...@@ -61,17 +63,22 @@ let orderApiFun = function(vm){
/** /**
* 获取拍照标准 * 获取拍照标准
*/ */
let orderStandard = async (params = {}) => await vm.$u.get('wxh-worker-rest/rest/'+ vm.vuex_token+'/photo/standard', params); let orderStandard = async (params = {}) => await vm.$u.get(prefix + vm.vuex_token+'/photo/standard', params);
/** /**
* 保存图片信息 * 保存图片信息
*/ */
let saveImage = async (params = {},orderId) => await vm.$u.post('/wxh-worker-rest/rest/'+ vm.vuex_token+'/order/'+orderId+'/maintain/saveImage', params); let saveImage = async (params = {},orderId) => await vm.$u.post(prefix + vm.vuex_token + '/order/'+orderId+'/maintain/saveImage', params);
/** /**
* 获取师傅水印 or 默认水印 * 获取师傅水印 or 默认水印
*/ */
let getWatermark= async (params = {}) => await vm.$u.get('/wxh-worker-rest/rest/'+ vm.vuex_token+'/photo/watermark', params); let getWatermark = async (params = {}) => await vm.$u.get(prefix + vm.vuex_token + '/photo/watermark', params);
/**
* 获取师傅开放可选时间段
*/
let openTimerange = async (params = {}) => await vm.$u.get(prefix + vm.vuex_token + '/wokerOrder/appointment/timerange', params);
/** /**
* 联系时间接口 * 联系时间接口
...@@ -102,6 +109,7 @@ let orderApiFun = function(vm){ ...@@ -102,6 +109,7 @@ let orderApiFun = function(vm){
orderStandard, orderStandard,
saveImage, saveImage,
getWatermark, getWatermark,
openTimerange,
contactTime, contactTime,
checkRejectable checkRejectable
} }
......
...@@ -39,7 +39,7 @@ let settledApiFun = function(vm){ ...@@ -39,7 +39,7 @@ let settledApiFun = function(vm){
let saveCourseRate = async (params = {}) => await vm.$u.post(ucenterApiUrl+'/v1/settled/save-course-rate', params); let saveCourseRate = async (params = {}) => await vm.$u.post(ucenterApiUrl+'/v1/settled/save-course-rate', params);
/* 获取消息内容列表 */ /* 获取消息内容列表 */
let listByNotice = async (params = {}) => await vm.$u.get(ucenterApiUrl+'/v1/notice/list', params); let listByNotice = async (params = {}) => await vm.$u.get(ucenterApiUrl+'/v1/notice/home-list', params);
const settledApi = { const settledApi = {
getSettleBaseInfo, getSettleBaseInfo,
......
...@@ -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">
...@@ -47,33 +47,19 @@ ...@@ -47,33 +47,19 @@
type: Boolean, type: Boolean,
default: true default: true
}, },
dateList: {
type: Array,
default: []
},
timeList: {
type: Array,
default: []
},
}, },
data() { data() {
return { return {
currentDay: 0, currentDay: 0,
currentTime: null, currentTime: null,
dateList: [{
weekDay: '周三',
day: '21',
}, {
weekDay: '周四',
day: '22',
}, {
weekDay: '周五',
day: '23',
}, {
weekDay: '周六',
day: '24',
}, {
weekDay: '周日',
day: '25',
}, {
weekDay: '周一',
day: '26',
}, ],
timeList: ['06:00-08:00', '08:00-10:00', '10:00-12:00', '12:00-14:00', '14:00-16:00', '16:00-18:00',
'18:00-20:00', '20:00-22:00', '22:00-24:00'
],
} }
}, },
computed: { computed: {
...@@ -88,13 +74,15 @@ ...@@ -88,13 +74,15 @@
getDateList() { getDateList() {
// 获取日期 // 获取日期
}, },
dateChange(item, index, list) { async dateChange(item, index, list) {
let data = { let data = {
item, item,
index, index,
list, list,
} }
this.currentDay = index this.currentDay = index
let res = await this.$u.api.openTimerange()
debugger
this.$emit('date-change', data) this.$emit('date-change', data)
}, },
timeChange(item, index, list) { timeChange(item, index, list) {
...@@ -195,8 +183,8 @@ ...@@ -195,8 +183,8 @@
.time-item { .time-item {
min-width: 196rpx; min-width: 196rpx;
margin-right: 21rpx; margin-right: 24rpx;
margin-bottom: 24rpx; margin-bottom: 20rpx;
border-radius: 12rpx; border-radius: 12rpx;
padding: 26rpx 20rpx 24rpx; padding: 26rpx 20rpx 24rpx;
background-color: #F4F5F7; background-color: #F4F5F7;
......
...@@ -26,8 +26,8 @@ ...@@ -26,8 +26,8 @@
</view> </view>
<view class="line-view"></view> <view class="line-view"></view>
<view class="reason-view" v-if="showReason"><text>未通过原因:</text> <view class="reason-view" v-if="showReason"><text class="reason-text">未通过原因:</text>
<text class="reason-text">{{orderData.auditResults.remark}}</text> <text>{{orderData.auditResults.remark}}</text>
</view> </view>
<view class="bottom-view"> <view class="bottom-view">
<view> <view>
...@@ -78,13 +78,15 @@ ...@@ -78,13 +78,15 @@
} }
} }
}, },
// waitAccept:待接单、 /* 订单类型
// waitAppointment:待预约、 waitAccept:待接单、
// waitCheckIn:待签到、 waitAppointment:待预约、
// waitFinish:待完工、 waitCheckIn:待签到、
// review: 审核中、 waitFinish:待完工、
// exception:异常单、 audit: 审核中、
// finish:已完工 exception:异常单、
finish:已完工
*/
type: String, type: String,
location: { // 当前坐标 location: { // 当前坐标
type: Array, type: Array,
...@@ -156,7 +158,7 @@ ...@@ -156,7 +158,7 @@
.orderBusinessType != 'R') .orderBusinessType != 'R')
}, },
showTime() { showTime() {
return [4, 6].indexOf(this.orderType) != -1 return [4, 5, 6].indexOf(this.orderType) != -1
}, },
infoTexts() { infoTexts() {
return { return {
...@@ -222,7 +224,7 @@ ...@@ -222,7 +224,7 @@
'waitAppointment': 1, // 待预约、 'waitAppointment': 1, // 待预约、
'waitCheckIn': 2, // 待签到、 'waitCheckIn': 2, // 待签到、
'waitFinish': 3, // 待完工、 'waitFinish': 3, // 待完工、
'review': 4, // 审核中、 'audit': 4, // 审核中、
'exception': 5, // 异常单、 'exception': 5, // 异常单、
'finish': 6, //已完工 'finish': 6, //已完工
} }
...@@ -367,10 +369,12 @@ ...@@ -367,10 +369,12 @@
text-align: left; text-align: left;
margin-top: 30rpx; margin-top: 30rpx;
font-size: 26rpx; font-size: 26rpx;
color: #666666;
.reason-text {
color: #FA5A49; color: #FA5A49;
display: flex;
align-items: flex-start;
.reason-text {
flex-shrink: 0;
color: #666666;
} }
} }
......
...@@ -7,9 +7,11 @@ ...@@ -7,9 +7,11 @@
<text>{{title}}</text> <text>{{title}}</text>
</view> </view>
<view class="line-view" /> <view class="line-view" />
<view v-if="count" class="order-content"> <view class="order-content">
<view v-if="count">
你本月还有<text class="order-content-count">{{count}}</text>次拒单机会 你本月还有<text class="order-content-count">{{count}}</text>次拒单机会
</view> </view>
</view>
<view class="order-pop-text"> <view class="order-pop-text">
<text>{{message}}</text> <text>{{message}}</text>
</view> </view>
...@@ -94,6 +96,7 @@ ...@@ -94,6 +96,7 @@
} }
.order-content { .order-content {
min-height: 14rpx;
text-align: center; text-align: center;
color: #333333; color: #333333;
font-size: 32rpx; font-size: 32rpx;
......
...@@ -325,8 +325,9 @@ ...@@ -325,8 +325,9 @@
"query": "" //启动参数,在页面的onLoad函数里面得到 "query": "" //启动参数,在页面的onLoad函数里面得到
}, },
{ {
"name": "工单搜索", // gaomingbo
"path": "pages/order/search", "name": "工单-过程反馈",
"path": "pages/order/feedback",
"query": "" "query": ""
}, },
{ {
...@@ -368,6 +369,11 @@ ...@@ -368,6 +369,11 @@
"name": "订单 - 拒单", //模式名称 "name": "订单 - 拒单", //模式名称
"path": "pages/order/refuse", //启动页面,必选 "path": "pages/order/refuse", //启动页面,必选
"query": "" //启动参数,在页面的onLoad函数里面得到 "query": "" //启动参数,在页面的onLoad函数里面得到
},
{
"name": "订单 - 过程反馈", //模式名称
"path": "pages/order/feedback", //启动页面,必选
"query": "" //启动参数,在页面的onLoad函数里面得到
} }
] ]
} }
......
...@@ -13,12 +13,12 @@ ...@@ -13,12 +13,12 @@
</view> </view>
<image class="right-icon" :src="shouyeyouImage"></image> <image class="right-icon" :src="shouyeyouImage"></image>
</view> </view>
<view class="line-view" v-if="index != 2"></view> <view class="line-view" v-if="index != 1"></view>
</view> </view>
</view> </view>
</view> </view>
<!-- 订单推荐吸顶 --> <!-- 订单推荐吸顶 -->
<u-sticky> <u-sticky offset-top="60">
<view class="sticky"> <view class="sticky">
<text>订单推荐</text> <text>订单推荐</text>
</view> </view>
...@@ -87,7 +87,7 @@ ...@@ -87,7 +87,7 @@
search: { search: {
token: "", token: "",
pageNumber: 0, pageNumber: 0,
pageSize: 100, pageSize: 10,
}, },
bottomLoading: false bottomLoading: false
}; };
...@@ -179,8 +179,8 @@ ...@@ -179,8 +179,8 @@
self.$u.api.listByNotice().then((res) => { self.$u.api.listByNotice().then((res) => {
uni.stopPullDownRefresh() // 结束下拉刷新 uni.stopPullDownRefresh() // 结束下拉刷新
if (res.code == 200) { if (res.code == 200) {
if (res.data && res.data.length > 3) { if (res.data && res.data.length > 2) {
self.messageList = res.data.slice(0, 3); self.messageList = res.data.slice(0, 2);
} else { } else {
self.messageList = res.data || []; self.messageList = res.data || [];
} }
...@@ -197,8 +197,8 @@ ...@@ -197,8 +197,8 @@
self.$u.api.listByRecommendOrder(self.search).then((res) => { self.$u.api.listByRecommendOrder(self.search).then((res) => {
uni.stopPullDownRefresh() // 结束下拉刷新 uni.stopPullDownRefresh() // 结束下拉刷新
if (res.code == 200) { if (res.code == 200) {
if (res.data && res.data.length > 0) { if (res.data && res.data.list && res.data.list.length > 0) {
self.orderList.push(...res.data); self.orderList.push(...res.data.list);
} }
} else { } else {
console.log(res.message, "初始化订单列表异常"); console.log(res.message, "初始化订单列表异常");
...@@ -235,10 +235,12 @@ ...@@ -235,10 +235,12 @@
handleScroll() { handleScroll() {
console.log("-----scroll-------"); console.log("-----scroll-------");
}, },
/* 立即入驻 */
immediatelyIn() { immediatelyIn() {
if (this.vuex_token) { if (this.vuex_token) {
// 0=>'待提交',1=>'待审核',2=>'已通过',3=>'备选',4=>'已驳回',5=>'已签约',6=>'未支付保证金',7=>'已支付保证金',8=>'已通过考试',9=>'待提交' // 用户已登录
var pageIndex = 1; var pageIndex = 1;
// 0=>'待提交',1=>'待审核',2=>'已通过',3=>'备选',4=>'已驳回',5=>'已签约',6=>'未支付保证金',7=>'已支付保证金',8=>'已通过考试',9=>'待提交'
switch (this.status) { switch (this.status) {
case 1: case 1:
case 2: case 2:
...@@ -266,6 +268,7 @@ ...@@ -266,6 +268,7 @@
"/pages/settle/prompt?pageIndex=" + pageIndex : "/pages/settle/index", "/pages/settle/prompt?pageIndex=" + pageIndex : "/pages/settle/index",
}); });
} else { } else {
// 用户未登录
uni.navigateTo({ uni.navigateTo({
url: "pages/login/index", url: "pages/login/index",
}); });
...@@ -294,7 +297,7 @@ ...@@ -294,7 +297,7 @@
border-radius: 12rpx; border-radius: 12rpx;
background-color: #ffffff; background-color: #ffffff;
padding: 12rpx 30rpx; padding: 12rpx 30rpx;
height: 252rpx; height: 174rpx;
} }
.msg-content { .msg-content {
......
...@@ -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() {
let courseLength = this.courselist.length;
for(let i = 0;i < courseLength; i++){
let param = {
course_id: this.courselist[i].id
};
this.$u.api this.$u.api
.CourseList() .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",
});
}); });
} }
} }
......
...@@ -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,21 @@ ...@@ -53,16 +55,21 @@
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;margin-right: 18rpx">
<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> <view class="input-view" v-show="showRemark">
<u-input v-model="trace.remark" class="textarea" height="156" type="textarea" placeholder="请补充详细说明,以便于记录您的接单信用分"></u-input>
</view> </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 class="u-m-60"> </view>
<button class="btn" @click="submitForm" :loading="submiting" :disabled="disabledSubmit">确定</button> </view>
<view class="bottom-view">
<button class="btn, bottom-btn" @click="submitForm" :loading="submiting" :disabled="disabledSubmit"><text class="button-text">确定</text></button>
</view> </view>
</view> </view>
</template> </template>
...@@ -134,6 +141,7 @@ ...@@ -134,6 +141,7 @@
}, },
}, },
async onLoad(e) { async onLoad(e) {
this.$u.vuex('vuex_token', 'RTOKEN7493e6defc2f1a77782f105dc297a9366763fec5');
this.orderId = 1 this.orderId = 1
this.categoryId = 88 this.categoryId = 88
if(e) { if(e) {
...@@ -144,9 +152,11 @@ ...@@ -144,9 +152,11 @@
title: "数据加载中", title: "数据加载中",
mask: true mask: true
}) })
this.loadCalendar()
await this.initPageData() await this.initPageData()
}, },
methods: { methods: {
/* 初始化页面数据 */
async initPageData() { async initPageData() {
let self = this let self = this
let params = {categoryId: self.categoryId} let params = {categoryId: self.categoryId}
...@@ -158,6 +168,7 @@ ...@@ -158,6 +168,7 @@
} }
uni.hideLoading() uni.hideLoading()
}, },
/* 组装参数 */
buildConfig() { buildConfig() {
let self = this let self = this
if(self.config) { if(self.config) {
...@@ -169,6 +180,7 @@ ...@@ -169,6 +180,7 @@
}) })
} }
}, },
/* 初始化参数 */
initParams() { initParams() {
let self = this let self = this
if(self.config) { if(self.config) {
...@@ -188,6 +200,17 @@ ...@@ -188,6 +200,17 @@
} }
} }
}, },
/* 加载日历数据 */
async loadCalendar() {
let self = this
let res = await this.$u.api.workerCalendar()
if(res && res.code == 200) {
}
debugger
},
/** /**
* 切换tab项 * 切换tab项
*/ */
...@@ -257,11 +280,13 @@ ...@@ -257,11 +280,13 @@
height: 100vh; height: 100vh;
overflow: auto; overflow: auto;
background-color: #F4F5F7; background-color: #F4F5F7;
background-image: linear-gradient(to top, #F4F5F7 0%, #2272FF 100%); background-image: linear-gradient(to top, #F4F5F7 0%, #2272FF 50%);
background-size: 750rpx 600rpx; background-size: 750rpx 600rpx;
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;
...@@ -280,9 +305,43 @@ ...@@ -280,9 +305,43 @@
.top-tab{ .top-tab{
text-align: center; text-align: center;
} }
.con-box{ .content {
display: flex;
flex-direction: column;
overflow: hidden;
margin-bottom: 188rpx;
.content-view {
height: 100%;
border-radius: 12rpx;
overflow: auto;
margin-top:30rpx; margin-top:30rpx;
padding: 30rpx 30rpx 28rpx 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{
padding: 30rpx 30rpx 8rpx 30rpx;
border-radius: 12rpx; border-radius: 12rpx;
background-color: #FFFFFF; background-color: #FFFFFF;
.title{ .title{
...@@ -293,28 +352,39 @@ ...@@ -293,28 +352,39 @@
} }
&>.u-flex{ &>.u-flex{
margin-top:40rpx; margin-top:40rpx;
margin-right:-20rpx; margin-right:-24rpx;
.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;
}
.input-view {
margin-bottom: 30rpx;
} }
.textarea{ .textarea{
......
...@@ -107,7 +107,7 @@ ...@@ -107,7 +107,7 @@
'waitAppointment': 0, // 待预约、 'waitAppointment': 0, // 待预约、
'waitCheckIn': 1, // 待签到、 'waitCheckIn': 1, // 待签到、
'waitFinish': 2, // 待完工、 'waitFinish': 2, // 待完工、
'review': 3, // 审核中、 'audit': 3, // 审核中、
'exception': 4, // 异常单、 'exception': 4, // 异常单、
'finish': 5, //已完工 'finish': 5, //已完工
} }
...@@ -118,7 +118,7 @@ ...@@ -118,7 +118,7 @@
0: 'waitAppointment', 0: 'waitAppointment',
1: 'waitCheckIn', 1: 'waitCheckIn',
2: 'waitFinish', 2: 'waitFinish',
3: 'review', 3: 'audit',
4: 'exception', 4: 'exception',
5: 'finish' 5: 'finish'
} }
...@@ -134,7 +134,7 @@ ...@@ -134,7 +134,7 @@
this.pageNumber = 0 this.pageNumber = 0
this.orderList = [] this.orderList = []
this.loadStatus = 'loading' this.loadStatus = 'loading'
this.getOrderList(index === 0 ? 0 : 5) this.getOrderList(index === 0 ? this.currentIndex : 5)
}, },
// tab栏切换 // tab栏切换
change(index) { change(index) {
......
...@@ -19,12 +19,12 @@ ...@@ -19,12 +19,12 @@
</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>
<view class="bottm-btn-view"> <view class="bottom-btn-view">
<button :loading="submiting" :disabled="disabledSubmit" class="btn" @click="handleClickSubmit">确定</button> <button :loading="submiting" :disabled="disabledSubmit" class="btn bottom-btn" @click="handleClickSubmit"><text class="button-text">提交</text></button>
</view> </view>
<PopView title="拒单提示" message="确定“拒单”操作,将影响对您的派单频率,\n甚至进入黑名单,请谨慎操作" <PopView title="拒单提示" message="确定“拒单”操作,将影响对您的派单频率,\n甚至进入黑名单,请谨慎操作"
:visible.sync="visibale" :count="count" @click="handleClick" buttonText="确定"/> :visible.sync="visibale" :count="count" @click="handleClick" buttonText="确定"/>
...@@ -76,10 +76,9 @@ ...@@ -76,10 +76,9 @@
if (this.count > 0) { if (this.count > 0) {
this.visibale = true this.visibale = true
} else { } else {
let message = '本月无拒单机会,请联系客服'
uni.showToast({ uni.showToast({
icon: 'none', icon: 'none',
title: message, title: '本月无拒单机会,请联系客服',
}) })
} }
}, },
...@@ -218,10 +217,21 @@ ...@@ -218,10 +217,21 @@
margin-right: 10rpx; margin-right: 10rpx;
color:#FA5A49 color:#FA5A49
} }
.bottm-btn-view { .bottom-btn-view {
width: 100%; width: 100%;
padding: 0 80rpx; padding: 0 80rpx;
position: absolute; position: absolute;
bottom: 40rpx; bottom: 44rpx;
.bottom-btn {
height: 104rpx;
display: flex;
align-items: center;
justify-content: center;
.button-text {
font-size: 32rpx;
font-weight: bold;
}
}
} }
</style> </style>
...@@ -470,7 +470,7 @@ ...@@ -470,7 +470,7 @@
} }
.item { .item {
display: flex; display: flex;
padding: 28rpx 30rpx; padding: 28rpx 0rpx;
width: 100%; width: 100%;
font-size: 32rpx; font-size: 32rpx;
color: #333; color: #333;
......
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