Commit a029c047 authored by 李俊赕's avatar 李俊赕
parents 85794c00 5d47a90d
......@@ -21,3 +21,4 @@ yarn-error.log*
*.njsproj
*.sln
*.sw*
.history/
<script>
import './../.env.js'
import {
AnalysysAgent
} from '@/utils/analysys_paas.js'
import util from '@/utils/util.js'
export default {
globalData:{
// 开发环境
uniEnv:process.uniEnv,
token: '',
//lyf的token:RTOKENf7d46ea33a7923515abfa779e04eccba77f98604
//RTOKEN45f41a3053238cb72b3b72fe14df8d7040c9f502
// 授权用户信息
// 登录凭证
token: '',
//授权提示 图标
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: '',
},
onLaunch: function() {
// 应用初始化(全局只触发一次)
let that = this
that.globalData.token = util.getToken()
AnalysysAgent.registerSuperProperty("platform", "self-support");
},
onShow: function() {
// 应用启动,或从后台进入前台显示
......@@ -96,6 +125,76 @@
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>
......@@ -106,4 +205,5 @@
<style lang="scss">
/* 注意要写在第一行,同时给style标签加入lang="scss"属性 */
@import "uview-ui/index.scss";
@import '@/common/index.scss';
</style>
\ No newline at end of file
......@@ -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 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 = {
getSettleBaseInfo,
getSettleArea,
......@@ -43,7 +49,9 @@ let settledApiFun = function(vm){
getSettleDepositResult,
// checkSettleBank,
// checkSettleAlipay,
checkSettleSignInfo
checkSettleSignInfo,
listOrderingTutorials,
saveCourseRate,
}
return settledApi
}
......
page{
background-color: #FAFAFA;
page {
background-color: #fafafa;
}
.btn-share {
background-color: transparent;
......@@ -13,4 +13,17 @@ page{
width: 48rpx;
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 @@
"style": {
"navigationBarTitleText": "订单"
}
},{
"path": "pages/order/complete",
"style": {
"navigationBarTitleText": "订单-完工配置"
}
},
{
"path": "pages/study/index",
"path": "pages/order/complete",
"style": {
"navigationBarTitleText": "学习"
"navigationBarTitleText": "订单-完工配置"
}
},
{
......@@ -35,7 +30,7 @@
{
"path": "pages/login/index",
"style": {
"navigationBarTitleText": "我的"
"navigationBarTitleText": "授权登录"
}
},
{
......@@ -57,60 +52,57 @@
{
"path": "pages/learn/index",
"style": {
"navigationBarTitleText": "uni-xue"
"navigationBarTitleText": "学习"
}
},
{
"path":"pages/learn/assessment",
"path": "pages/learn/assessment",
"style": {
"navigationBarTitleText":"认证介绍"
"navigationBarTitleText": "认证介绍"
}
},
{
"path":"pages/learn/answer",
"path": "pages/learn/answer",
"style": {
"navigationBarTitleText":"考试答题"
"navigationBarTitleText": "考试答题"
}
},
{
"path":"pages/learn/result",
"style":{
"navigationBarTitleText":"考试结果页"
"path": "pages/learn/result",
"style": {
"navigationBarTitleText": "考试结果页"
}
},
{
"path":"pages/learn/news-details",
"style":{
"navigationBarTitleText":""
"path": "pages/learn/news-details",
"style": {
"navigationBarTitleText": ""
}
},
{
"path":"pages/learn/curriculum",
"style":{
"navigationBarTitleText":""
"path": "pages/learn/curriculum",
"style": {
"navigationBarTitleText": ""
}
},
{
"path": "pages/settle/select",
"style": {
"navigationBarTitleText": "选择可服务的城市",
"navigationBarBackgroundColor":"#FFFFFF"
"navigationBarBackgroundColor": "#FFFFFF"
}
},
{
"path": "pages/settle/file-upload",
"style": {
"navigationBarTitleText": "图片上传"
}
},
{
"path": "pages/settle/pay-ensure",
"style": {
"navigationBarTitleText": "缴纳设备押金"
}
},
{
"path": "pages/settle/prompt",
......@@ -119,20 +111,18 @@
"navigationStyle": "custom",
"disableScroll": true
}
}, {
},
{
"path": "pages/settle/web",
"style": {
"navigationBarTitleText": "签约页面"
}
},
{
"path": "pages/settle/sign-contract",
"style": {
"navigationBarTitleText": "签约页面"
}
},
{
"path": "pages/settle/file",
......@@ -141,20 +131,36 @@
"navigationStyle": "custom",
"disableScroll": true
}
},{
},
{
"path": "pages/exam/start",
"style": {
"navigationBarTitleText": "考试"
}
},{
},
{
"path": "pages/exam/index",
"style": {
"navigationBarTitleText": "入驻考试"
}
},
{
"path": "pages/learn/exam",
"style": {
"navigationBarTitleText": "在线考试",
"enablePullDownRefresh": false,
"navigationStyle": "custom", // 隐藏系统导航栏
"disableScroll": true
}
},
{
"path": "pages/learn/course-detail",
"style": {
"navigationBarTitleText": "培训视频",
"enablePullDownRefresh": false
}
}
],
],
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "uni-app",
......@@ -166,7 +172,8 @@
"selectedColor": "#007AFF",
"borderStyle": "black",
"backgroundColor": "#F8F8F8",
"list": [{
"list": [
{
"pagePath": "pages/index/index",
"iconPath": "static/logo.png",
"selectedIconPath": "static/logo.png",
......@@ -177,12 +184,14 @@
"iconPath": "static/logo.png",
"selectedIconPath": "static/logo.png",
"text": "订单"
}, {
},
{
"pagePath": "pages/learn/index",
"iconPath": "static/logo.png",
"selectedIconPath": "static/logo.png",
"text": "学习"
}, {
},
{
"pagePath": "pages/mine/index",
"iconPath": "static/logo.png",
"selectedIconPath": "static/logo.png",
......@@ -192,35 +201,42 @@
},
"condition": { //模式配置,仅开发期间生效
"current": 0, //当前激活的模式(list 的索引项)
"list": [{
"name": "自营平台", //模式名称
"path": "pages/index/index", //启动页面,必选
"query": "" //启动参数,在页面的onLoad函数里面得到
},{
"name": "入驻首页",
"path": "pages/settle/index",
"query": ""
},{
"name": "基本信息", //模式名称
"path": "pages/settle/base", //启动页面,必选
"query": "" //启动参数,在页面的onLoad函数里面得到
},{
"name": "入驻提示", //模式名称
"path": "pages/settle/prompt", //启动页面,必选
"query": "" //启动参数,在页面的onLoad函数里面得到
},{
"name": "资料信息", //模式名称
"path": "pages/settle/file", //启动页面,必选
"query": "" //启动参数,在页面的onLoad函数里面得到
},{
"name": "缴纳保证金", //模式名称
"path": "pages/settle/pay-ensure", //启动页面,必选
"query": "" //启动参数,在页面的onLoad函数里面得到
},{
"name": "订单 - 完工配置", //模式名称
"path": "pages/order/complete", //启动页面,必选
"query": "" //启动参数,在页面的onLoad函数里面得到
}]
"list": [
{
"name": "自营平台", //模式名称
"path": "pages/index/index", //启动页面,必选
"query": "" //启动参数,在页面的onLoad函数里面得到
},
{
"name": "入驻首页",
"path": "pages/settle/index",
"query": ""
},
{
"name": "基本信息", //模式名称
"path": "pages/settle/base", //启动页面,必选
"query": "" //启动参数,在页面的onLoad函数里面得到
},
{
"name": "入驻提示", //模式名称
"path": "pages/settle/prompt", //启动页面,必选
"query": "" //启动参数,在页面的onLoad函数里面得到
},
{
"name": "资料信息", //模式名称
"path": "pages/settle/file", //启动页面,必选
"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 @@
<image class="noticeImage" :src="icon_auth_notice_new" mode=""></image>
</view>
<view class="noticeTitleView">
<text class="noticeTitle">{{ noticeTitle }}</text>
<text class="noticeTitle" v-if="needAuth">{{ authNoticeTitle }}</text>
<text class="noticeTitle" v-else>{{ suginNoticeTitle }}</text>
</view>
<button class="loginBtn" v-if="needAuth" lang="zh_CN" @tap="getUserProfile">
<text class="u-font-32 white">立即登录</text>
......@@ -35,13 +36,14 @@ export default {
icon_notice: '',
TimeID: -1,
icon_auth_notice_new: '',
noticeTitle: '申请获得您的公开信息(昵称,头像等)以便于为您提供更好的服务',
authNoticeTitle: '申请获得您的公开信息(昵称,头像等)以便于为您提供更好的服务',
suginNoticeTitle: '申请获得您的公开信息(昵称,头像等)以便于为您提供更好的服务',
}
},
onLoad() {
// getApp().trackPage('授权登录页')
// this.icon_notice = getApp().globalData.icon_auth_notice
// this.icon_auth_notice_new = getApp().globalData.icon_auth_notice_new
app.trackPage('授权登录页')
this.icon_notice = app.globalData.icon_auth_notice
this.icon_auth_notice_new = app.globalData.icon_auth_notice_new
},
onShow() {
app.globalData.jumpLoginStatus = true
......@@ -101,6 +103,10 @@ export default {
signupLogin(e) {
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) {
wx.showModal({
title: '提示',
......@@ -143,13 +149,20 @@ export default {
goBackPage() {
let pages = getCurrentPages();
if(pages.length) {
let prevPage = pages[pages.length - 1]; //上一个页面
if (prevPage && prevPage.$vm) {
prevPage.$vm.isRefresh = true;
let index = pages.length - 1;
if(index) {
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 {
uni.navigateTo({
url: "pages/mine/index"
......
<template>
<view class="back_view">
<Settle :index="2">
<view class="base-list">
<view class="tip-text">
<image class="tip-image" mode="widthFix" src="../../static/settle/anquan@3x.png"></image>
<text>身份证照片、电工证照片、行驶证/驾驶证照片及车辆照片仅用于申请入驻。</text>
<view class="base-list">
<view class="tip-text">
<image class="tip-image" mode="widthFix" src="../../static/settle/anquan@3x.png"></image>
<text>身份证照片、电工证照片、行驶证/驾驶证照片及车辆照片仅用于申请入驻。</text>
</view>
<view class="base-item">
<view class="item item-select" @click="gopage('/pages/settle/select?selectType=area')">
......@@ -51,7 +51,7 @@
<text class="itemTitle">详细地址</text>
</view>
<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>
</view>
</view>
......@@ -426,7 +426,7 @@
margin-right: 10rpx;
}
.item-image {
.item-image-l {
width: 26rpx;
height: 30rpx;
margin-right: 6rpx;
......@@ -672,23 +672,23 @@
.address-textarea {
font-size: 26rpx;
}
.tip-text {
background-color: #FFFFFF;
border-radius: 12rpx;
padding: 38rpx 30rpx 30rpx 30rpx;
height: 140rpx;
margin-bottom: 20rpx;
font-size: 24rpx;
color: #000000;
display: flex;
align-items: flex-start;
}
.tip-image {
width: 34rpx;
margin-right: 8rpx;
margin-top: 2rpx;
}
.tip-text {
background-color: #FFFFFF;
border-radius: 12rpx;
padding: 38rpx 30rpx 30rpx 30rpx;
height: 140rpx;
margin-bottom: 20rpx;
font-size: 24rpx;
color: #000000;
display: flex;
align-items: flex-start;
}
.tip-image {
width: 34rpx;
margin-right: 8rpx;
margin-top: 2rpx;
}
</style>
......@@ -4,19 +4,47 @@
<view class="tip-text">
<image class="tip-image" mode="widthFix" src="../../static/settle/anquan@3x.png"></image>
<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>
<template v-slot:bottom>
<view class="btn-wrap flex-xc">
<button class="btn-submit" :disabled="!submitBtnStatus" @click="$u.debounce(submitFileInfo, 500)">
{{
!submitBtnStatus ? "完成必填项,可提交资料" : "提交"
}}
{{!submitBtnStatus ? "完成必填项,可提交资料" : "提交"}}
</button>
</view>
</template>
<view class="base-list">
<template v-for="(fileItem, index) in formShowList">
......@@ -74,7 +102,8 @@
fileInfo: {
id: "",
id_card_name: "",
id_card_number: "",
id_card_number: "",
id_card_date: '',
id_card_front: "",
id_card_back: "",
electrician_certificate: "",
......@@ -92,41 +121,47 @@
formShowList: [{
filedName: "id_card_front",
required: true,
maxImgs: 1,
label: "身份证人像面",
tips: "(必选项)拍身份证人像面,证件需清晰可见",
maxImgs: 2,
label: "实名认证",
tips: "上传二代身份证照片,图片大小不大于3M",
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,
label: "身份证国徽面",
maxImgs: 1,
tips: "(必选项)拍身份证国徽面,证件需清晰可见",
tips: "上传电工证证照片,图片大小不大于3M",
imgs: [],
placeholderImages: ['../../static/settle/diangong@3x.png']
},
{
filedName: "electrician_certificate",
label: "电工证照",
required: true,
maxImgs: 1,
tips: "(必选项)拍电工证照,证件需清晰可见",
filedName: "other_certificates",
label: "驾驶证/行驶证照片",
imgs: [],
maxImgs: 999,
tips: "两证单张照片需包含两页内容,图片大小不大于3M",
placeholderImages: ['../../static/settle/jiashi@3x.png', '../../static/settle/jiashi@3x.png']
},
{
filedName: "vehicle_photos",
label: "车辆照",
maxImgs: 1,
tips: "(可选项)45度拍摄车辆照片,车牌清晰可见",
imgs: [],
},
{
filedName: "other_certificates",
label: "其他工作证件",
tips: "两证单张照片需包含两页内容,图片大小不大于3M",
imgs: [],
maxImgs: 999,
tips: "(可选项)可拍多张",
placeholderImages: ['../../static/settle/zhengmian@3x.png',
'../../static/settle/cemian@3x.png']
},
],
submitSuccess: false,
saving: false,
......@@ -159,12 +194,36 @@
const fileInfo = this.fileInfo
const flag = fileInfo.id_card_front && fileInfo.id_card_back && fileInfo.electrician_certificate
return flag && !this.saving;
},
},
cardTitle() {
return {
'id_card_name': '姓名',
'id_card_number': '身份证号',
'id_card_date': '有效期'
}
}
},
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() {
const uploadType = this.uploadType
const uploadImgs = this.imgObj[uploadType]
......@@ -494,6 +553,21 @@
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 {
padding-bottom: 144rpx;
}
......@@ -516,16 +590,67 @@
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{
background-color: #FFFFFF;
position: absolute;
top: 0;
left: 0;
width: 100%;
display: flex;
flex-direction: column;
.title-image {
width: 24rpx;
height: 24rpx;
margin-right: 10rpx;
}
}
.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>
......@@ -163,11 +163,11 @@
width: 750rpx;
// height:500rpx;
display: flex;
flex-direction: column;
background-color: #F4F5F7;
flex-direction: column;
background-color: #F4F5F7;
height: 100%;
position: absolute;
position: absolute;
.icon {
margin-top: 68rpx;
width: 334rpx;
......@@ -182,11 +182,11 @@
.content-view {
background-color: #FFFFFF;
margin-bottom: 188rpx;
border-radius: 12rpx;
border-radius: 12rpx;
padding: 30rpx;
}
.txt-box {
.txt-box {
padding-bottom: 50rpx;
}
......@@ -200,9 +200,9 @@
color: #2272FF;
&.active {
color: #666666;
font-size: 24rpx;
font-weight: 300rpx;
color: #666666;
font-size: 24rpx;
font-weight: 300rpx;
margin-top: 26rpx;
}
}
......
......@@ -11,7 +11,7 @@ if (AnalysysAgent) {
// AnalysysAgent.autoShare = true
AnalysysAgent.allowTimeCheck = true
AnalysysAgent.autoTrack = true
AnalysysAgent.registerSuperProperty("platform","take-order");
AnalysysAgent.registerSuperProperty("platform","self-support");
}
// #endif
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