Commit a029c047 authored by 李俊赕's avatar 李俊赕
parents 85794c00 5d47a90d
...@@ -21,3 +21,4 @@ yarn-error.log* ...@@ -21,3 +21,4 @@ yarn-error.log*
*.njsproj *.njsproj
*.sln *.sln
*.sw* *.sw*
.history/
<script> <script>
import './../.env.js' import './../.env.js'
import {
AnalysysAgent
} from '@/utils/analysys_paas.js'
import util from '@/utils/util.js' import util from '@/utils/util.js'
export default { export default {
globalData:{ globalData:{
// 开发环境
uniEnv:process.uniEnv, uniEnv:process.uniEnv,
token: '', // 登录凭证
//lyf的token:RTOKENf7d46ea33a7923515abfa779e04eccba77f98604 token: '',
//RTOKEN45f41a3053238cb72b3b72fe14df8d7040c9f502
// 授权用户信息 //授权提示 图标
icon_auth_notice: 'https://qn-static.banshouhui.com/auth_notice.png',
//授权提示新 图标
icon_auth_notice_new: 'https://qn-static.banshouhui.com/auth_notice_new.png',
// 服务规范教程视频
service_standard: {
"Course1": {
url: "https://xy-hybrid.kakalili.com/web/vivaVideo/home/static/img/videoen.mp4",
title: "第一节 接单服务标准",
desc: "1.不同车企品牌结算价格不一,675元-1890元不等;",
},
"Course2": {
url: "https://xy-hybrid.kakalili.com/web/vivaVideo/home/static/img/videoen.mp4",
title: "第二节 完工服务标准",
desc: "2.结算价格为包工包料价,安装材料根据车企品牌规格自行采购(电缆、空开、漏保);",
},
"Course3": {
url: "https://xy-hybrid.kakalili.com/web/vivaVideo/home/static/img/videoen.mp4",
title: "第二节 结算服务标准",
desc: "3.需具备一定的作业工具:如液压压线钳、冲击钻、电锤、登高安全带、电锤、绝缘电阻仪(摇表)、交流充电模拟器等;",
},
},
// 授权用户信息
authUserInfo: '', authUserInfo: '',
}, },
onLaunch: function() { onLaunch: function() {
// 应用初始化(全局只触发一次) // 应用初始化(全局只触发一次)
let that = this let that = this
that.globalData.token = util.getToken() that.globalData.token = util.getToken()
AnalysysAgent.registerSuperProperty("platform", "self-support");
}, },
onShow: function() { onShow: function() {
// 应用启动,或从后台进入前台显示 // 应用启动,或从后台进入前台显示
...@@ -96,6 +125,76 @@ ...@@ -96,6 +125,76 @@
util.setToken('') util.setToken('')
} }
}, },
/* ------------------------- 数据埋点begin ------------------------------ */
track(event, properties) {
if (AnalysysAgent) {
// 易观添加事件
let AnalysysAgent = wx.AnalysysAgent;
AnalysysAgent.track("take_order_" + event, properties);
}
},
identify(userInfo, openid, unionid = null) {
// 设备身份表示
if (AnalysysAgent) {
let setProfile = {
'openid': openid,
'unionid': unionid,
}
setProfile = Object.assign(setProfile, userInfo)
AnalysysAgent.profileSet(setProfile);
}
},
setUserId(userId) {
// 用户id设置
if (AnalysysAgent) {
AnalysysAgent.alias(userId + '')
}
},
setUser(user) {
// 用户附加属性
if (AnalysysAgent) {
let userInfo = {
'mobile': user.mobile,
'userfrom_id': user.uid,
'userfrom': '家维广场',
'avatar': user.avatar,
'nickname': user.nickname,
'username': user.username,
'wxhuid': user.wxhuid,
'id': user.id,
'money': user.money,
'score': user.score
};
Object.keys(userInfo).map(key => {
if (key && userInfo[key]) {
AnalysysAgent.profileAppend(key, userInfo[key])
}
})
}
},
share(toShareProperties, trackProperties) {
if (AnalysysAgent) {
AnalysysAgent.share(toShareProperties, trackProperties);
}
},
trackPage(pageName, properties) {
if (AnalysysAgent) {
AnalysysAgent.pageView(pageName, properties);
}
},
initShare(option) {
console.log(option, 'option-initShare')
option = option || {}
if (AnalysysAgent && option.user_id) {
let shareUserInfo = {
'share_from_id': option.user_id || '',
'share_from_nickname': option.user_name || '',
}
AnalysysAgent.registerSuperProperties(shareUserInfo);
}
},
/* ------------------------- 数据埋点end ------------------------------ */
} }
} }
</script> </script>
...@@ -106,4 +205,5 @@ ...@@ -106,4 +205,5 @@
<style lang="scss"> <style lang="scss">
/* 注意要写在第一行,同时给style标签加入lang="scss"属性 */ /* 注意要写在第一行,同时给style标签加入lang="scss"属性 */
@import "uview-ui/index.scss"; @import "uview-ui/index.scss";
@import '@/common/index.scss';
</style> </style>
\ No newline at end of file
...@@ -32,6 +32,12 @@ let settledApiFun = function(vm){ ...@@ -32,6 +32,12 @@ let settledApiFun = function(vm){
/* 提交认证资料 */ /* 提交认证资料 */
let checkSettleSignInfo = async (params = {}) => await vm.$u.post(ucenterApiUrl+'/v1/settled/check-sign-info', params,{'content-type': 'application/x-www-form-urlencoded'}); let checkSettleSignInfo = async (params = {}) => await vm.$u.post(ucenterApiUrl+'/v1/settled/check-sign-info', params,{'content-type': 'application/x-www-form-urlencoded'});
/* 获取接单教程列表 */
let listOrderingTutorials = async (params = {}) => await vm.$u.get(ucenterApiUrl+'/v1/settled/get-course-rate', params);
/* 更新接单教程状态 */
let saveCourseRate = async (params = {}) => await vm.$u.get(ucenterApiUrl+'/v1/settled/save-course-rate', params);
const settledApi = { const settledApi = {
getSettleBaseInfo, getSettleBaseInfo,
getSettleArea, getSettleArea,
...@@ -43,7 +49,9 @@ let settledApiFun = function(vm){ ...@@ -43,7 +49,9 @@ let settledApiFun = function(vm){
getSettleDepositResult, getSettleDepositResult,
// checkSettleBank, // checkSettleBank,
// checkSettleAlipay, // checkSettleAlipay,
checkSettleSignInfo checkSettleSignInfo,
listOrderingTutorials,
saveCourseRate,
} }
return settledApi return settledApi
} }
......
page{ page {
background-color: #FAFAFA; background-color: #fafafa;
} }
.btn-share { .btn-share {
background-color: transparent; background-color: transparent;
...@@ -13,4 +13,17 @@ page{ ...@@ -13,4 +13,17 @@ page{
width: 48rpx; width: 48rpx;
height: 39rpx; height: 39rpx;
} }
} }
\ No newline at end of file .bottom-fix-btn {
position: fixed;
z-index: 2;
bottom: 0rpx;
padding-bottom: 40rpx;
width: 100%;
display: flex;
justify-content: center;
.btn-block {
width: 460rpx;
}
}
//易观方舟
let argo ={
appkey: "5f2ac5996f36c714",
open: true,
/*
0 关闭调试模式(默认)。类型:Number。
1 开启调试模式,数据不入库。类型:Number。
2 开启调试模式,数据入库。类型:Number。
*/
debugMode:0,
autoTrack:true,
uploadURL: 'https://argo.banshouhui.com/'
}
export {
argo,
}
\ No newline at end of file
...@@ -14,16 +14,11 @@ ...@@ -14,16 +14,11 @@
"style": { "style": {
"navigationBarTitleText": "订单" "navigationBarTitleText": "订单"
} }
},{
"path": "pages/order/complete",
"style": {
"navigationBarTitleText": "订单-完工配置"
}
}, },
{ {
"path": "pages/study/index", "path": "pages/order/complete",
"style": { "style": {
"navigationBarTitleText": "学习" "navigationBarTitleText": "订单-完工配置"
} }
}, },
{ {
...@@ -35,7 +30,7 @@ ...@@ -35,7 +30,7 @@
{ {
"path": "pages/login/index", "path": "pages/login/index",
"style": { "style": {
"navigationBarTitleText": "我的" "navigationBarTitleText": "授权登录"
} }
}, },
{ {
...@@ -57,60 +52,57 @@ ...@@ -57,60 +52,57 @@
{ {
"path": "pages/learn/index", "path": "pages/learn/index",
"style": { "style": {
"navigationBarTitleText": "uni-xue" "navigationBarTitleText": "学习"
} }
}, },
{ {
"path":"pages/learn/assessment", "path": "pages/learn/assessment",
"style": { "style": {
"navigationBarTitleText":"认证介绍" "navigationBarTitleText": "认证介绍"
} }
}, },
{ {
"path":"pages/learn/answer", "path": "pages/learn/answer",
"style": { "style": {
"navigationBarTitleText":"考试答题" "navigationBarTitleText": "考试答题"
} }
}, },
{ {
"path":"pages/learn/result", "path": "pages/learn/result",
"style":{ "style": {
"navigationBarTitleText":"考试结果页" "navigationBarTitleText": "考试结果页"
} }
}, },
{ {
"path":"pages/learn/news-details", "path": "pages/learn/news-details",
"style":{ "style": {
"navigationBarTitleText":"" "navigationBarTitleText": ""
} }
}, },
{ {
"path":"pages/learn/curriculum", "path": "pages/learn/curriculum",
"style":{ "style": {
"navigationBarTitleText":"" "navigationBarTitleText": ""
} }
}, },
{ {
"path": "pages/settle/select", "path": "pages/settle/select",
"style": { "style": {
"navigationBarTitleText": "选择可服务的城市", "navigationBarTitleText": "选择可服务的城市",
"navigationBarBackgroundColor":"#FFFFFF" "navigationBarBackgroundColor": "#FFFFFF"
} }
}, },
{ {
"path": "pages/settle/file-upload", "path": "pages/settle/file-upload",
"style": { "style": {
"navigationBarTitleText": "图片上传" "navigationBarTitleText": "图片上传"
} }
}, },
{ {
"path": "pages/settle/pay-ensure", "path": "pages/settle/pay-ensure",
"style": { "style": {
"navigationBarTitleText": "缴纳设备押金" "navigationBarTitleText": "缴纳设备押金"
} }
}, },
{ {
"path": "pages/settle/prompt", "path": "pages/settle/prompt",
...@@ -119,20 +111,18 @@ ...@@ -119,20 +111,18 @@
"navigationStyle": "custom", "navigationStyle": "custom",
"disableScroll": true "disableScroll": true
} }
},
}, { {
"path": "pages/settle/web", "path": "pages/settle/web",
"style": { "style": {
"navigationBarTitleText": "签约页面" "navigationBarTitleText": "签约页面"
} }
}, },
{ {
"path": "pages/settle/sign-contract", "path": "pages/settle/sign-contract",
"style": { "style": {
"navigationBarTitleText": "签约页面" "navigationBarTitleText": "签约页面"
} }
}, },
{ {
"path": "pages/settle/file", "path": "pages/settle/file",
...@@ -141,20 +131,36 @@ ...@@ -141,20 +131,36 @@
"navigationStyle": "custom", "navigationStyle": "custom",
"disableScroll": true "disableScroll": true
} }
},{ },
{
"path": "pages/exam/start", "path": "pages/exam/start",
"style": { "style": {
"navigationBarTitleText": "考试" "navigationBarTitleText": "考试"
} }
},
},{ {
"path": "pages/exam/index", "path": "pages/exam/index",
"style": { "style": {
"navigationBarTitleText": "入驻考试" "navigationBarTitleText": "入驻考试"
} }
},
{
"path": "pages/learn/exam",
"style": {
"navigationBarTitleText": "在线考试",
"enablePullDownRefresh": false,
"navigationStyle": "custom", // 隐藏系统导航栏
"disableScroll": true
}
},
{
"path": "pages/learn/course-detail",
"style": {
"navigationBarTitleText": "培训视频",
"enablePullDownRefresh": false
}
} }
], ],
"globalStyle": { "globalStyle": {
"navigationBarTextStyle": "black", "navigationBarTextStyle": "black",
"navigationBarTitleText": "uni-app", "navigationBarTitleText": "uni-app",
...@@ -166,7 +172,8 @@ ...@@ -166,7 +172,8 @@
"selectedColor": "#007AFF", "selectedColor": "#007AFF",
"borderStyle": "black", "borderStyle": "black",
"backgroundColor": "#F8F8F8", "backgroundColor": "#F8F8F8",
"list": [{ "list": [
{
"pagePath": "pages/index/index", "pagePath": "pages/index/index",
"iconPath": "static/logo.png", "iconPath": "static/logo.png",
"selectedIconPath": "static/logo.png", "selectedIconPath": "static/logo.png",
...@@ -177,12 +184,14 @@ ...@@ -177,12 +184,14 @@
"iconPath": "static/logo.png", "iconPath": "static/logo.png",
"selectedIconPath": "static/logo.png", "selectedIconPath": "static/logo.png",
"text": "订单" "text": "订单"
}, { },
{
"pagePath": "pages/learn/index", "pagePath": "pages/learn/index",
"iconPath": "static/logo.png", "iconPath": "static/logo.png",
"selectedIconPath": "static/logo.png", "selectedIconPath": "static/logo.png",
"text": "学习" "text": "学习"
}, { },
{
"pagePath": "pages/mine/index", "pagePath": "pages/mine/index",
"iconPath": "static/logo.png", "iconPath": "static/logo.png",
"selectedIconPath": "static/logo.png", "selectedIconPath": "static/logo.png",
...@@ -192,35 +201,42 @@ ...@@ -192,35 +201,42 @@
}, },
"condition": { //模式配置,仅开发期间生效 "condition": { //模式配置,仅开发期间生效
"current": 0, //当前激活的模式(list 的索引项) "current": 0, //当前激活的模式(list 的索引项)
"list": [{ "list": [
"name": "自营平台", //模式名称 {
"path": "pages/index/index", //启动页面,必选 "name": "自营平台", //模式名称
"query": "" //启动参数,在页面的onLoad函数里面得到 "path": "pages/index/index", //启动页面,必选
},{ "query": "" //启动参数,在页面的onLoad函数里面得到
"name": "入驻首页", },
"path": "pages/settle/index", {
"query": "" "name": "入驻首页",
},{ "path": "pages/settle/index",
"name": "基本信息", //模式名称 "query": ""
"path": "pages/settle/base", //启动页面,必选 },
"query": "" //启动参数,在页面的onLoad函数里面得到 {
},{ "name": "基本信息", //模式名称
"name": "入驻提示", //模式名称 "path": "pages/settle/base", //启动页面,必选
"path": "pages/settle/prompt", //启动页面,必选 "query": "" //启动参数,在页面的onLoad函数里面得到
"query": "" //启动参数,在页面的onLoad函数里面得到 },
},{ {
"name": "资料信息", //模式名称 "name": "入驻提示", //模式名称
"path": "pages/settle/file", //启动页面,必选 "path": "pages/settle/prompt", //启动页面,必选
"query": "" //启动参数,在页面的onLoad函数里面得到 "query": "" //启动参数,在页面的onLoad函数里面得到
},{ },
"name": "缴纳保证金", //模式名称 {
"path": "pages/settle/pay-ensure", //启动页面,必选 "name": "资料信息", //模式名称
"query": "" //启动参数,在页面的onLoad函数里面得到 "path": "pages/settle/file", //启动页面,必选
},{ "query": "" //启动参数,在页面的onLoad函数里面得到
"name": "订单 - 完工配置", //模式名称 },
"path": "pages/order/complete", //启动页面,必选 {
"query": "" //启动参数,在页面的onLoad函数里面得到 "name": "缴纳保证金", //模式名称
}] "path": "pages/settle/pay-ensure", //启动页面,必选
"query": "" //启动参数,在页面的onLoad函数里面得到
},
{
"name": "订单 - 完工配置", //模式名称
"path": "pages/order/complete", //启动页面,必选
"query": "" //启动参数,在页面的onLoad函数里面得到
}
]
} }
}
} \ No newline at end of file
This diff is collapsed.
<template>
<view>
<view class="uni-padding-wrap uni-common-mt">
<view><video object-fit="cover" class="course-video" id="courseVideo" :src="courseSrc" @error="videoErrorCallback" controls></video></view>
<uni-group>
<view class="course-title">{{ courseTitle }}</view>
<view class="course-desc">{{ courseDesc }}</view>
</uni-group>
</view>
</view>
</template>
<script>
let app = getApp();
export default {
data() {
return {
courseId: '',
courseStatus: 0,
courseSrc: '',
courseTitle: '',
courseDesc: '',
};
},
onLoad(e) {
if (e) {
if(e.courseId) {
this.courseId = e.courseId;
}
if(e.id) {
this.courseId = e.courseId;
this.courseSrc = app.globalData.service_standard[e.id].url;
this.courseTitle = app.globalData.service_standard[e.id].title;
this.courseDesc = app.globalData.service_standard[e.id].desc;
this.changeCourseStatus();
}
if(e.status) {
this.courseStatus = e.status;
}
}
},
onReady: function(res) {
// #ifndef MP-ALIPAY
this.videoContext = uni.createVideoContext('courseVideo');
// #endif
},
methods: {
videoErrorCallback: function(e) {
uni.showModal({
content: e.target.errMsg,
showCancel: false
});
},
getRandomColor: function() {
const rgb = [];
for (let i = 0; i < 3; ++i) {
let color = Math.floor(Math.random() * 256).toString(16);
color = color.length == 1 ? '0' + color : color;
rgb.push(color);
}
return '#' + rgb.join('');
},
changeCourseStatus() {
let that = this
if(that.courseId) {
that.$u.api.saveCourseRate({courseId: that.courseId}).then(res => {
debugger
if(res.code == 200) {
// uni.navigateBack({delta: 1})
uni.navigateTo({
url: "/pages/learn/exam"
})
} else {
uni.showToast({
icon: "none",
title: "更新课程状态失败"
})
}
}).catch(e=> {
})
} else {
uni.showToast({
title: "课程ID为空,请重新选择课程"
})
}
},
}
};
</script>
<style lang="scss">
.course-video {
width: 750rpx;
}
.course-title {
font-size: 36rpx;
font-weight: 700;
padding: 80rpx 60rpx 40rpx 60rpx;
}
.course-desc {
margin-left: 60rpx;
}
</style>
<template>
<view class="exam-wrap">
<Settle :index="3">
<view class="exam-tips"><u-alert-tips :show-icon="true" class="exam-tips" type="warning" :title="tipsTitle" :description="tipsDescription"></u-alert-tips></view>
<view class="exam-course">
<u-card margin="20rpx 0rpx 30rpx 0rpx" :border="false" :border-radius="cardRadius">
<view class="exam-head" slot="head">师傅接单教程</view>
<view class="exam-body" slot="body">
<u-cell-group :border="false">
<u-cell-item
v-for="(item, key) in tutorials"
:key="key"
icon="play-circle"
:border-bottom="false"
:title="item.title"
:value="item.value"
:value-style="item.courseActive"
@click="viewCourse(item)"
></u-cell-item>
</u-cell-group>
</view>
</u-card>
</view>
<view class="exam-course">
<u-card margin="0rpx" :border="false" :border-radius="cardRadius">
<view class="exam-head" slot="head">师傅接单考试</view>
<uni-group slot="body">
<view>总共20题,每题5分,答题时间不超过40分钟</view>
<view>请认真对待,预祝顺利通过考试!</view>
</uni-group>
</u-card>
</view>
<view class="content-gap"></view>
</Settle>
<view class="bottom-fix-btn">
<view class="btn-block"><u-button type="primary" shape="circle">去考试</u-button></view>
</view>
</view>
</template>
<script>
import Settle from '@/components/settle/index.vue';
let app = getApp()
export default {
components: {
Settle
},
data() {
return {
cardRadius: 12,
tipsTitle: '提示:',
// 简单使用固定培训视频
tutorials: [
{ id: 'Course1', courseId: 1, title: '', value: '已查看', courseActive: {}, status: 1, url: ''},
{ id: 'Course2', courseId: 2, title: '', value: '未查看', courseActive: {}, status: 0, url: ''},
{ id: 'Course3', courseId: 3, title: '', value: '未查看', courseActive: {}, status: 0, url: ''}
],
tipsDescription: '接单考核可让您快速了解如何使用小程序,建议先查看学习教程'
};
},
computed: {
},
onLoad() {
this.tutorials.map((item, key) => {
item['url'] = app.globalData.service_standard[item.id].url
item['title'] = app.globalData.service_standard[item.id].title
item['value'] = item['status'] ? '已查看' : '未查看';
item['courseActive'] = item['status'] ? {"color": "#2979ff"} : {"color": "#ff0000"}
})
this.loadLearnData();
},
methods: {
loadLearnData() {
let that = this;
that.$u.api
.listOrderingTutorials()
.then(res => {
const results = res.data;
if (res.status == 200 && results && results.length > 0) {
that.tutorials.forEach((data, i) => {
if (results.hasOwnProperty(data.id)) {
data.status = results[data.id];
data.value = data.status ? '已查看' : '未查看';
data.courseActive = data.status ? {"color": "#2979ff"} : {"color": "red"}
that.tutorials[i] = data;
}
});
}
})
.catch(e => {
debugger;
console.log(e, 'loadLearnData');
});
},
viewCourse(e) {
let that = this;
let params = `id=${e.id}&courseId=${e.courseId}&status=${e.status}`
uni.navigateTo({
url: `/pages/learn/course-detail?${params}`
})
},
}
};
</script>
<style lang="scss">
.exam-tips .u-alert-tips {
border-radius: 12rpx !important;
border: none !important;
.u-alert-title {
font-size: 28rpx !important;
font-weight: bold;
}
}
.exam-wrap {
background: #f4f5f7;
}
.exam-head {
font-size: 36rpx;
font-weight: bold;
}
.content-gap {
height: 1rpx;
margin-bottom: 200rpx;
}
</style>
...@@ -5,7 +5,8 @@ ...@@ -5,7 +5,8 @@
<image class="noticeImage" :src="icon_auth_notice_new" mode=""></image> <image class="noticeImage" :src="icon_auth_notice_new" mode=""></image>
</view> </view>
<view class="noticeTitleView"> <view class="noticeTitleView">
<text class="noticeTitle">{{ noticeTitle }}</text> <text class="noticeTitle" v-if="needAuth">{{ authNoticeTitle }}</text>
<text class="noticeTitle" v-else>{{ suginNoticeTitle }}</text>
</view> </view>
<button class="loginBtn" v-if="needAuth" lang="zh_CN" @tap="getUserProfile"> <button class="loginBtn" v-if="needAuth" lang="zh_CN" @tap="getUserProfile">
<text class="u-font-32 white">立即登录</text> <text class="u-font-32 white">立即登录</text>
...@@ -35,13 +36,14 @@ export default { ...@@ -35,13 +36,14 @@ export default {
icon_notice: '', icon_notice: '',
TimeID: -1, TimeID: -1,
icon_auth_notice_new: '', icon_auth_notice_new: '',
noticeTitle: '申请获得您的公开信息(昵称,头像等)以便于为您提供更好的服务', authNoticeTitle: '申请获得您的公开信息(昵称,头像等)以便于为您提供更好的服务',
suginNoticeTitle: '申请获得您的公开信息(昵称,头像等)以便于为您提供更好的服务',
} }
}, },
onLoad() { onLoad() {
// getApp().trackPage('授权登录页') app.trackPage('授权登录页')
// this.icon_notice = getApp().globalData.icon_auth_notice this.icon_notice = app.globalData.icon_auth_notice
// this.icon_auth_notice_new = getApp().globalData.icon_auth_notice_new this.icon_auth_notice_new = app.globalData.icon_auth_notice_new
}, },
onShow() { onShow() {
app.globalData.jumpLoginStatus = true app.globalData.jumpLoginStatus = true
...@@ -101,6 +103,10 @@ export default { ...@@ -101,6 +103,10 @@ export default {
signupLogin(e) { signupLogin(e) {
var that = this var that = this
debugger
console.log(e.detail.errMsg)
console.log(e.detail.iv)
console.log(e.detail.encryptedData)
if (!e || !e.detail || e.detail.errMsg.indexOf('user deny') > -1) { if (!e || !e.detail || e.detail.errMsg.indexOf('user deny') > -1) {
wx.showModal({ wx.showModal({
title: '提示', title: '提示',
...@@ -143,13 +149,20 @@ export default { ...@@ -143,13 +149,20 @@ export default {
goBackPage() { goBackPage() {
let pages = getCurrentPages(); let pages = getCurrentPages();
if(pages.length) { if(pages.length) {
let prevPage = pages[pages.length - 1]; //上一个页面 let index = pages.length - 1;
if (prevPage && prevPage.$vm) { if(index) {
prevPage.$vm.isRefresh = true; let prevPage = pages[pages.length - 1]; //上一个页面
if (prevPage && prevPage.$vm) {
prevPage.$vm.isRefresh = true;
}
uni.navigateBack({
delta: 1
})
} else {
uni.navigateTo({
url:'pages/index/index'
})
} }
uni.navigateBack({
delta: 1
})
} else { } else {
uni.navigateTo({ uni.navigateTo({
url: "pages/mine/index" url: "pages/mine/index"
......
<template> <template>
<view class="back_view"> <view class="back_view">
<Settle :index="2"> <Settle :index="2">
<view class="base-list"> <view class="base-list">
<view class="tip-text"> <view class="tip-text">
<image class="tip-image" mode="widthFix" src="../../static/settle/anquan@3x.png"></image> <image class="tip-image" mode="widthFix" src="../../static/settle/anquan@3x.png"></image>
<text>身份证照片、电工证照片、行驶证/驾驶证照片及车辆照片仅用于申请入驻。</text> <text>身份证照片、电工证照片、行驶证/驾驶证照片及车辆照片仅用于申请入驻。</text>
</view> </view>
<view class="base-item"> <view class="base-item">
<view class="item item-select" @click="gopage('/pages/settle/select?selectType=area')"> <view class="item item-select" @click="gopage('/pages/settle/select?selectType=area')">
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
<text class="itemTitle">详细地址</text> <text class="itemTitle">详细地址</text>
</view> </view>
<view class="flex-center"> <view class="flex-center">
<image class="item-image" src="../../static/settle/dizhi@3x.png"></image> <image class="item-image-l" src="../../static/settle/dizhi@3x.png"></image>
<text class="right-label blueColor">自动定位</text> <text class="right-label blueColor">自动定位</text>
</view> </view>
</view> </view>
...@@ -426,7 +426,7 @@ ...@@ -426,7 +426,7 @@
margin-right: 10rpx; margin-right: 10rpx;
} }
.item-image { .item-image-l {
width: 26rpx; width: 26rpx;
height: 30rpx; height: 30rpx;
margin-right: 6rpx; margin-right: 6rpx;
...@@ -672,23 +672,23 @@ ...@@ -672,23 +672,23 @@
.address-textarea { .address-textarea {
font-size: 26rpx; font-size: 26rpx;
} }
.tip-text { .tip-text {
background-color: #FFFFFF; background-color: #FFFFFF;
border-radius: 12rpx; border-radius: 12rpx;
padding: 38rpx 30rpx 30rpx 30rpx; padding: 38rpx 30rpx 30rpx 30rpx;
height: 140rpx; height: 140rpx;
margin-bottom: 20rpx; margin-bottom: 20rpx;
font-size: 24rpx; font-size: 24rpx;
color: #000000; color: #000000;
display: flex; display: flex;
align-items: flex-start; align-items: flex-start;
} }
.tip-image { .tip-image {
width: 34rpx; width: 34rpx;
margin-right: 8rpx; margin-right: 8rpx;
margin-top: 2rpx; margin-top: 2rpx;
} }
</style> </style>
...@@ -4,19 +4,47 @@ ...@@ -4,19 +4,47 @@
<view class="tip-text"> <view class="tip-text">
<image class="tip-image" mode="widthFix" src="../../static/settle/anquan@3x.png"></image> <image class="tip-image" mode="widthFix" src="../../static/settle/anquan@3x.png"></image>
<text>身份证照片、电工证照片、行驶证/驾驶证照片及车辆照片仅用于申请入驻。</text> <text>身份证照片、电工证照片、行驶证/驾驶证照片及车辆照片仅用于申请入驻。</text>
</view>
<view class="info-view">
<view v-for="(fileItem, index) in formShowList" class="title-view" :key="index">
<view>
<image class="title-image" src="../../static/settle/mixing@3x.png"></image>
<text>{{ fileItem.label }}</text>
</view>
<view class="info-tip-text">{{ fileItem.tips }}</view>
<view class="image-view">
<image class="info-image" mode="aspectFill" v-for="(src, key) in fileItem.placeholderImages"
:src="fileItem.imgs.length > key ? fileItem.imgs[key] : src" :key="src + key"
@click="handleClick(fileItem, index, key)"></image>
</view>
<view v-if="index == 0" class="bottom-tip-view">
<image class="bottom-tip-image" mode="widthFix" src="../../static/settle/tishi@3x.png"></image>
<text>所上传的身份证信息必须与银行卡开户绑定身份证信息一致,否则将导致订单报酬无法交付</text>
</view>
<view class="card-info-view" v-if="index == 0 && (fileInfo.id_card_name || fileInfo.id_card_number || fileInfo.id_card_date)">
<view class="card-list-view" v-for="(value, cardkey) in cardTitle" :key="cardkey">
<view class="card-list-item">
<text>{{value}}</text>
<text class="card-item-text">{{fileInfo[cardkey]}}</text>
</view>
<view class="line-view"></view>
<view class="card-item-error" v-if="fileInfo[cardkey] && (cardkey == 'id_card_date' ? fileInfo.id_card_back : fileInfo.id_card_front)">识别失败,请重新上传</view>
</view>
</view>
</view>
</view> </view>
<template v-slot:bottom> <template v-slot:bottom>
<view class="btn-wrap flex-xc"> <view class="btn-wrap flex-xc">
<button class="btn-submit" :disabled="!submitBtnStatus" @click="$u.debounce(submitFileInfo, 500)"> <button class="btn-submit" :disabled="!submitBtnStatus" @click="$u.debounce(submitFileInfo, 500)">
{{ {{!submitBtnStatus ? "完成必填项,可提交资料" : "提交"}}
!submitBtnStatus ? "完成必填项,可提交资料" : "提交"
}}
</button> </button>
</view> </view>
</template> </template>
<view class="base-list"> <view class="base-list">
<template v-for="(fileItem, index) in formShowList"> <template v-for="(fileItem, index) in formShowList">
...@@ -74,7 +102,8 @@ ...@@ -74,7 +102,8 @@
fileInfo: { fileInfo: {
id: "", id: "",
id_card_name: "", id_card_name: "",
id_card_number: "", id_card_number: "",
id_card_date: '',
id_card_front: "", id_card_front: "",
id_card_back: "", id_card_back: "",
electrician_certificate: "", electrician_certificate: "",
...@@ -92,41 +121,47 @@ ...@@ -92,41 +121,47 @@
formShowList: [{ formShowList: [{
filedName: "id_card_front", filedName: "id_card_front",
required: true, required: true,
maxImgs: 1, maxImgs: 2,
label: "身份证人像面", label: "实名认证",
tips: "(必选项)拍身份证人像面,证件需清晰可见", tips: "上传二代身份证照片,图片大小不大于3M",
imgs: [], imgs: [],
placeholderImages: ['../../static/settle/renxiang@3x.png', '../../static/settle/guohui@3x.png']
}, },
// {
// filedName: "id_card_back",
// required: true,
// label: "身份证国徽面",
// maxImgs: 1,
// tips: "上传二代身份证照片,图片大小不大于3M",
// imgs: [],
// },
{ {
filedName: "id_card_back", filedName: "electrician_certificate",
label: "电工证照",
required: true, required: true,
label: "身份证国徽面",
maxImgs: 1, maxImgs: 1,
tips: "(必选项)拍身份证国徽面,证件需清晰可见", tips: "上传电工证证照片,图片大小不大于3M",
imgs: [], imgs: [],
placeholderImages: ['../../static/settle/diangong@3x.png']
}, },
{ {
filedName: "electrician_certificate", filedName: "other_certificates",
label: "电工证照", label: "驾驶证/行驶证照片",
required: true,
maxImgs: 1,
tips: "(必选项)拍电工证照,证件需清晰可见",
imgs: [], imgs: [],
maxImgs: 999,
tips: "两证单张照片需包含两页内容,图片大小不大于3M",
placeholderImages: ['../../static/settle/jiashi@3x.png', '../../static/settle/jiashi@3x.png']
}, },
{ {
filedName: "vehicle_photos", filedName: "vehicle_photos",
label: "车辆照", label: "车辆照",
maxImgs: 1, maxImgs: 1,
tips: "(可选项)45度拍摄车辆照片,车牌清晰可见", tips: "两证单张照片需包含两页内容,图片大小不大于3M",
imgs: [],
},
{
filedName: "other_certificates",
label: "其他工作证件",
imgs: [], imgs: [],
maxImgs: 999, placeholderImages: ['../../static/settle/zhengmian@3x.png',
tips: "(可选项)可拍多张", '../../static/settle/cemian@3x.png']
}, },
], ],
submitSuccess: false, submitSuccess: false,
saving: false, saving: false,
...@@ -159,12 +194,36 @@ ...@@ -159,12 +194,36 @@
const fileInfo = this.fileInfo const fileInfo = this.fileInfo
const flag = fileInfo.id_card_front && fileInfo.id_card_back && fileInfo.electrician_certificate const flag = fileInfo.id_card_front && fileInfo.id_card_back && fileInfo.electrician_certificate
return flag && !this.saving; return flag && !this.saving;
}, },
cardTitle() {
return {
'id_card_name': '姓名',
'id_card_number': '身份证号',
'id_card_date': '有效期'
}
}
}, },
components: { components: {
}, },
methods: { methods: {
// item: formShowList的元素
// index、key: 选中的是formShowList的第index里面的第key个图片选择器
handleClick(item, index, key) {
switch (index) {
case 0:
// 身份证
// 上传图片
// 成功之后更新 fileInfo、 item里的imgs
break;
default:
//其他
// 上传图片
// 成功之后更新 item里的imgs
break;
}
},
updateImgs() { updateImgs() {
const uploadType = this.uploadType const uploadType = this.uploadType
const uploadImgs = this.imgObj[uploadType] const uploadImgs = this.imgObj[uploadType]
...@@ -494,6 +553,21 @@ ...@@ -494,6 +553,21 @@
margin-top: 2rpx; margin-top: 2rpx;
} }
.bottom-tip-view {
color: #999999;
font-size: 20rpx;
display: flex;
align-items: flex-start;
margin-top: 30rpx;
}
.bottom-tip-image {
width: 24rpx;
height: 24rpx;
margin-right: 8rpx;
margin-top: 4rpx;
}
.seat { .seat {
padding-bottom: 144rpx; padding-bottom: 144rpx;
} }
...@@ -516,16 +590,67 @@ ...@@ -516,16 +590,67 @@
color: #FFFFFF; color: #FFFFFF;
} }
} }
} }
.card-info-view {
margin-top: 30rpx;
.card-list-view {
.card-list-item {
display: flex;
justify-content: space-between;
font-size: 28rpx;
margin-top: 20rpx;
margin-bottom: 20rpx;
color: #333333;
.card-item-text {
color: #666666;
width: 60%;
}
}
.line-view {
background-color: #F4F5F7;
height: 2rpx;
width: 100%;
}
.card-item-error{
color: red;
font-size: 20rpx;
}
}
}
.info-view {
margin-bottom: 188rpx;
.title-view {
background-color: #FFFFFF;
border-radius: 12rpx;
padding: 38rpx 30rpx 30rpx 30rpx;
margin-bottom: 20rpx;
font-size: 32rpx;
color: #333333;
/* .back_view{ .title-image {
background-color: #FFFFFF; width: 24rpx;
position: absolute; height: 24rpx;
top: 0; margin-right: 10rpx;
left: 0; }
width: 100%; }
display: flex;
flex-direction: column; .info-tip-text {
font-size: 24rpx;
color: #666666;
margin-top: 10rpx;
}
.image-view {
margin-top: 30rpx;
display: flex;
justify-content: space-between;
.info-image {
width: 300rpx;
height: 226rpx;
}
}
} }
*/
</style> </style>
...@@ -163,11 +163,11 @@ ...@@ -163,11 +163,11 @@
width: 750rpx; width: 750rpx;
// height:500rpx; // height:500rpx;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
background-color: #F4F5F7; background-color: #F4F5F7;
height: 100%; height: 100%;
position: absolute; position: absolute;
.icon { .icon {
margin-top: 68rpx; margin-top: 68rpx;
width: 334rpx; width: 334rpx;
...@@ -182,11 +182,11 @@ ...@@ -182,11 +182,11 @@
.content-view { .content-view {
background-color: #FFFFFF; background-color: #FFFFFF;
margin-bottom: 188rpx; margin-bottom: 188rpx;
border-radius: 12rpx; border-radius: 12rpx;
padding: 30rpx; padding: 30rpx;
} }
.txt-box { .txt-box {
padding-bottom: 50rpx; padding-bottom: 50rpx;
} }
...@@ -200,9 +200,9 @@ ...@@ -200,9 +200,9 @@
color: #2272FF; color: #2272FF;
&.active { &.active {
color: #666666; color: #666666;
font-size: 24rpx; font-size: 24rpx;
font-weight: 300rpx; font-weight: 300rpx;
margin-top: 26rpx; margin-top: 26rpx;
} }
} }
......
...@@ -11,7 +11,7 @@ if (AnalysysAgent) { ...@@ -11,7 +11,7 @@ if (AnalysysAgent) {
// AnalysysAgent.autoShare = true // AnalysysAgent.autoShare = true
AnalysysAgent.allowTimeCheck = true AnalysysAgent.allowTimeCheck = true
AnalysysAgent.autoTrack = true AnalysysAgent.autoTrack = true
AnalysysAgent.registerSuperProperty("platform","take-order"); AnalysysAgent.registerSuperProperty("platform","self-support");
} }
// #endif // #endif
export { export {
......
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