'订单详情'
This commit is contained in:
parent
7b9db5202e
commit
0dc0682754
70
common/util.js
Normal file
70
common/util.js
Normal file
@ -0,0 +1,70 @@
|
||||
const util = {
|
||||
delRepeat(arr,key){ //去重
|
||||
let resArr = []
|
||||
arr.some(function(item,index){
|
||||
console.log(item);
|
||||
let isRepeat = false;
|
||||
resArr.some(function(item1,index1){
|
||||
if(item.tn == item1.tn){
|
||||
isRepeat = true;
|
||||
}
|
||||
});
|
||||
if(!isRepeat){
|
||||
resArr.push(item);
|
||||
}
|
||||
})
|
||||
return resArr;
|
||||
},
|
||||
Format(date,fmt){
|
||||
date = new Date(date);
|
||||
var o = {
|
||||
"M+": date.getMonth() + 1, //月份
|
||||
"d+": date.getDate(), //日
|
||||
"h+": date.getHours(), //小时
|
||||
"m+": date.getMinutes(), //分
|
||||
"s+": date.getSeconds(), //秒
|
||||
"q+": Math.floor((date.getMonth() + 3) / 3), //季度
|
||||
"S": date.getMilliseconds() //毫秒
|
||||
};
|
||||
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
|
||||
for (var k in o)
|
||||
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
|
||||
return fmt;
|
||||
},
|
||||
formatDate(timestamp, format = 'YYYY-MM-DD HH:mm:ss') {
|
||||
const date = new Date(timestamp);
|
||||
const map = {
|
||||
'YYYY': date.getFullYear(),
|
||||
'MM': String(date.getMonth() + 1).padStart(2, '0'),
|
||||
'DD': String(date.getDate()).padStart(2, '0'),
|
||||
'HH': String(date.getHours()).padStart(2, '0'),
|
||||
'mm': String(date.getMinutes()).padStart(2, '0'),
|
||||
'ss': String(date.getSeconds()).padStart(2, '0')
|
||||
};
|
||||
return format.replace(/YYYY|MM|DD|HH|mm|ss/g, match => map[match]);
|
||||
},
|
||||
showMsg(msg,icon,duration = 1600) {
|
||||
uni.showToast({
|
||||
title: msg,
|
||||
duration: duration,
|
||||
icon: icon||'none'
|
||||
});
|
||||
},
|
||||
getDate(time){
|
||||
let timeStr = this.Format(time,'yyyy/MM/dd hh:mm');
|
||||
let timeParse = Date.parse(new Date(timeStr))
|
||||
let timer = {};
|
||||
timer.timeStr = timeStr;
|
||||
timer.timeParse = timeParse;
|
||||
return timer
|
||||
},
|
||||
backPage(time){
|
||||
setTimeout(function(){
|
||||
uni.navigateBack({
|
||||
delta:1
|
||||
})
|
||||
},time||3000)
|
||||
}
|
||||
}
|
||||
|
||||
export default util
|
||||
109
components/commonUpload.vue
Normal file
109
components/commonUpload.vue
Normal file
@ -0,0 +1,109 @@
|
||||
<template>
|
||||
<view class="content2">
|
||||
<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple :maxCount="1">
|
||||
<slot name="upLoadImg"></slot>
|
||||
</u-upload>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
fileList1: [],
|
||||
imgList: [],
|
||||
}
|
||||
},
|
||||
components: {},
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
onShow() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
// 删除图片
|
||||
deletePic(event) {
|
||||
this[`fileList${event.name}`].splice(event.index, 1);
|
||||
},
|
||||
// 新增图片
|
||||
async afterRead(event) {
|
||||
// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
|
||||
let lists = [].concat(event.file);
|
||||
let fileListLen = this[`fileList${event.name}`].length;
|
||||
lists.map((item) => {
|
||||
this[`fileList${event.name}`].push({
|
||||
...item,
|
||||
status: "uploading",
|
||||
message: "上传中",
|
||||
});
|
||||
});
|
||||
for (let i = 0; i < lists.length; i++) {
|
||||
const result = await this.uploadFilePromise(lists[i].url);
|
||||
let item = this[`fileList${event.name}`][fileListLen];
|
||||
this[`fileList${event.name}`].splice(
|
||||
fileListLen,
|
||||
1,
|
||||
Object.assign(item, {
|
||||
status: "success",
|
||||
message: "",
|
||||
url: result,
|
||||
})
|
||||
);
|
||||
fileListLen++;
|
||||
}
|
||||
},
|
||||
uploadFilePromise(url) {
|
||||
console.log(url, 'dfff')
|
||||
return new Promise((resolve, reject) => {
|
||||
this.$api.uploadImg(url,res=>{
|
||||
console.log(res,'=====')
|
||||
if(res.code == '1'){
|
||||
setTimeout(() => {
|
||||
resolve(res.data.data);
|
||||
}, 1000);
|
||||
// resolve(res.data);
|
||||
this.imgList= this.imgList.concat([res.data.url])
|
||||
this.$emit('imgList',res.data.url);
|
||||
console.log(res.data, this.imgList, '-----------')
|
||||
}else{
|
||||
uni.showToast({ title: res.msg , icon: 'fail' })
|
||||
}
|
||||
})
|
||||
console.log(this.imgList)
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
page {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
.content {
|
||||
// padding: 20rpx 35rpx;
|
||||
background: #F5F5FA;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
}
|
||||
// .content2{
|
||||
// height: 100%;
|
||||
// width: 100%;
|
||||
// display: flex;
|
||||
// flex-direction: column;
|
||||
// justify-content: center;
|
||||
// align-items: center;
|
||||
// }
|
||||
// ::v-deep .u-upload__wrap__preview{
|
||||
// margin: 0;
|
||||
// }
|
||||
// ::v-deep .u-upload__wrap{
|
||||
// display: flex;
|
||||
// flex-direction: column;
|
||||
// justify-content: center;
|
||||
// align-items: center;
|
||||
// }
|
||||
</style>
|
||||
109
components/imgUpload.vue
Normal file
109
components/imgUpload.vue
Normal file
@ -0,0 +1,109 @@
|
||||
<template>
|
||||
<view class="content2">
|
||||
<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple :maxCount="1">
|
||||
<slot name="upLoadImg"></slot>
|
||||
</u-upload>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
fileList1: [],
|
||||
imgList: [],
|
||||
}
|
||||
},
|
||||
components: {},
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
onShow() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
// 删除图片
|
||||
deletePic(event) {
|
||||
this[`fileList${event.name}`].splice(event.index, 1);
|
||||
},
|
||||
// 新增图片
|
||||
async afterRead(event) {
|
||||
// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
|
||||
let lists = [].concat(event.file);
|
||||
let fileListLen = this[`fileList${event.name}`].length;
|
||||
lists.map((item) => {
|
||||
this[`fileList${event.name}`].push({
|
||||
...item,
|
||||
status: "uploading",
|
||||
message: "上传中",
|
||||
});
|
||||
});
|
||||
for (let i = 0; i < lists.length; i++) {
|
||||
const result = await this.uploadFilePromise(lists[i].url);
|
||||
let item = this[`fileList${event.name}`][fileListLen];
|
||||
this[`fileList${event.name}`].splice(
|
||||
fileListLen,
|
||||
1,
|
||||
Object.assign(item, {
|
||||
status: "success",
|
||||
message: "",
|
||||
url: result,
|
||||
})
|
||||
);
|
||||
fileListLen++;
|
||||
}
|
||||
},
|
||||
uploadFilePromise(url) {
|
||||
console.log(url, 'dfff')
|
||||
return new Promise((resolve, reject) => {
|
||||
this.$api.uploadImg(url,res=>{
|
||||
console.log(res,'=====')
|
||||
if(res.code == '1'){
|
||||
setTimeout(() => {
|
||||
resolve(res.data.data);
|
||||
}, 1000);
|
||||
// resolve(res.data);
|
||||
this.imgList= this.imgList.concat([res.data.url])
|
||||
this.$emit('imgList',res.data.url);
|
||||
console.log(res.data, this.imgList, '-----------')
|
||||
}else{
|
||||
uni.showToast({ title: res.msg , icon: 'fail' })
|
||||
}
|
||||
})
|
||||
console.log(this.imgList)
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
page {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
.content {
|
||||
// padding: 20rpx 35rpx;
|
||||
background: #F5F5FA;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
}
|
||||
.content2{
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
::v-deep .u-upload__wrap__preview{
|
||||
margin: 0;
|
||||
}
|
||||
::v-deep .u-upload__wrap{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
</style>
|
||||
@ -98,4 +98,8 @@ export const exchangeRefund = (data, callback) => post('api/recover/exchange/ref
|
||||
export const question_list = (data, callback) => post('api/recover/recover/question_list', data, callback);
|
||||
export const recycleOrderList = (data, callback) => post('api/recover/person/orderlist', data, callback);
|
||||
// export const qiangdanlist = (data, callback) => post('api/recover/person/qiangdanlist', data, callback);
|
||||
export const personlogin = (data, callback) => post('api/recover/person/personlogin', data, callback);
|
||||
export const personlogin = (data, callback) => post('api/recover/person/personlogin', data, callback);
|
||||
export const applyCertification = (data, callback) => post('api/recover/person/applyCertification', data, callback);
|
||||
export const checkPayPassword = (data, callback) => post('api/recover/person/checkPayPassword', data, callback);
|
||||
export const verifyPayPassword = (data, callback) => post('api/recover/person/verifyPayPassword', data, callback);
|
||||
export const priceList = (data, callback) => post('api/recover/personmoneylog/index', data, callback);
|
||||
|
||||
21
pages.json
21
pages.json
@ -203,6 +203,27 @@
|
||||
"navigationBarTitleText": "代理加盟",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
},{
|
||||
"path" : "pages/feedback/index",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "意见反馈",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
},{
|
||||
"path" : "pages/mine/editInfo",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "信息编辑",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
},{
|
||||
"path" : "pages/order/pay",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "支付订单",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"globalStyle": {
|
||||
|
||||
178
pages/feedback/index.vue
Normal file
178
pages/feedback/index.vue
Normal file
@ -0,0 +1,178 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<view class="question">
|
||||
<view class="questionLabel">问题描述</view>
|
||||
<u--textarea v-model="notesText" placeholder="请输入您要反馈的问题(10~500字以内)" style="background: #FFF;border: none"></u--textarea>
|
||||
</view>
|
||||
<view class="question">
|
||||
<view class="questionLabel" style="margin-bottom: 20rpx;">请提供问题的截图或照片(选填)</view>
|
||||
<u-upload
|
||||
:fileList="fileList1"
|
||||
@afterRead="afterRead"
|
||||
@delete="deletePic"
|
||||
name="1"
|
||||
multiple
|
||||
:maxCount="10"
|
||||
></u-upload>
|
||||
</view>
|
||||
<view class="contact flex-between">
|
||||
<view>联系方式</view>
|
||||
<input v-model="phoneNum" type="text" style="font-size: 28rpx;flex:1;text-align: right;" placeholder="请输入手机号" />
|
||||
</view>
|
||||
<view class="commitBtn flex-center" @click="feedback">提交</view>
|
||||
<view class="tip">您的反馈我们会尽快解决,但无法保证每一条都能及时反馈,如果有紧急咨询,请直接拨打客服电话:400-000-000</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
info:'',
|
||||
fileList1: [],
|
||||
notesText: '',
|
||||
imgList: [],
|
||||
phoneNum: ''
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
|
||||
|
||||
},
|
||||
onReachBottom (){
|
||||
|
||||
},
|
||||
methods: {
|
||||
feedback() {
|
||||
this.$api.feedback({
|
||||
content: this.notesText,
|
||||
contact: this.phoneNum,
|
||||
images: this.imgList
|
||||
},res=>{
|
||||
if(res.code == '1'){
|
||||
uni.showToast({ title: res.msg , icon: 'success' })
|
||||
setTimeout(()=>{
|
||||
uni.navigateBack({
|
||||
delta: 1
|
||||
})
|
||||
}, 2000)
|
||||
}
|
||||
})
|
||||
},
|
||||
// 删除图片
|
||||
deletePic(event) {
|
||||
this[`fileList${event.name}`].splice(event.index, 1);
|
||||
},
|
||||
// 新增图片
|
||||
async afterRead(event) {
|
||||
// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
|
||||
let lists = [].concat(event.file);
|
||||
let fileListLen = this[`fileList${event.name}`].length;
|
||||
lists.map((item) => {
|
||||
this[`fileList${event.name}`].push({
|
||||
...item,
|
||||
status: "uploading",
|
||||
message: "上传中",
|
||||
});
|
||||
});
|
||||
for (let i = 0; i < lists.length; i++) {
|
||||
const result = await this.uploadFilePromise(lists[i].url);
|
||||
let item = this[`fileList${event.name}`][fileListLen];
|
||||
this[`fileList${event.name}`].splice(
|
||||
fileListLen,
|
||||
1,
|
||||
Object.assign(item, {
|
||||
status: "success",
|
||||
message: "",
|
||||
url: result,
|
||||
})
|
||||
);
|
||||
fileListLen++;
|
||||
}
|
||||
},
|
||||
uploadFilePromise(url) {
|
||||
console.log(url, 'dfff')
|
||||
return new Promise((resolve, reject) => {
|
||||
this.$api.uploadImg(url,res=>{
|
||||
console.log(res,'=====')
|
||||
if(res.code == '1'){
|
||||
setTimeout(() => {
|
||||
resolve(res.data.data);
|
||||
}, 1000);
|
||||
// resolve(res.data);
|
||||
this.imgList= this.imgList.concat([res.data.full_url])
|
||||
console.log(res.data, this.imgList, '-----------')
|
||||
}else{
|
||||
uni.showToast({ title: res.msg , icon: 'fail' })
|
||||
}
|
||||
})
|
||||
console.log(this.imgList)
|
||||
// let a = uni.uploadFile({
|
||||
// url: "https://admin.dbcdq.cn/api/feedback/upload", // 仅为示例,非真实的接口地址
|
||||
// filePath: url,
|
||||
// name: "file",
|
||||
// formData: {
|
||||
// user: "test",
|
||||
// },
|
||||
// success: (res) => {
|
||||
// setTimeout(() => {
|
||||
// resolve(res.data.data);
|
||||
// }, 1000);
|
||||
// },
|
||||
// });
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
page {
|
||||
// background: #fff;
|
||||
background: rgba(243,243,249,1);
|
||||
}
|
||||
.content{
|
||||
padding:20px 35rpx;
|
||||
padding-bottom: 208rpx;
|
||||
}
|
||||
.aimg{
|
||||
width: 100%;
|
||||
height: 1040upx;
|
||||
margin-top: 10upx;
|
||||
}
|
||||
.aimg image{height:100%;width:100%}
|
||||
.question{
|
||||
background: #fff;
|
||||
padding: 37rpx 35rpx;
|
||||
border-radius: 30rpx;
|
||||
margin-bottom: 20rpx;
|
||||
.questionLabel{
|
||||
border-bottom: 1rpx solid #DEDEDE;
|
||||
padding-bottom: 20rpx;
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
}
|
||||
.contact{
|
||||
padding: 41rpx 34rpx;
|
||||
border-radius: 30rpx;
|
||||
background: #fff;
|
||||
}
|
||||
.commitBtn{
|
||||
width: 680rpx;
|
||||
height: 90rpx;
|
||||
background: linear-gradient(90deg, #FFAD38 0%, #FF884E 100%);
|
||||
border-radius: 10rpx;
|
||||
ont-weight: 500;
|
||||
font-size: 30rpx;
|
||||
color: #FFFFFF;
|
||||
margin-top: 214rpx;
|
||||
}
|
||||
.tip{
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #999999;
|
||||
line-height: 36rpx;
|
||||
margin-top: 42rpx;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -50,7 +50,7 @@
|
||||
</view>
|
||||
<view class="blockBox1"></view>
|
||||
|
||||
<view class="orderBox" v-for="item in qiangdanArr">
|
||||
<view class="orderBox" v-for="item in qiangdanArr" @click="goDetail(item.id)">
|
||||
<view class="flex-between">
|
||||
<view class="flex-center">
|
||||
<image :src="path+'/assets/img/icon/yu.png'" style="width: 79rpx;height: 71rpx;margin-top: -25rpx;margin-left: -33rpx;margin-right: 21rpx;"></image>
|
||||
@ -109,7 +109,7 @@
|
||||
</view>
|
||||
<view style="height: 195rpx;"></view>
|
||||
<!-- {{recycleList}} -->
|
||||
<view class="orderBox" v-for="item in recycleList">
|
||||
<view class="orderBox" v-for="item in recycleList" @click="goDetail(item.id)">
|
||||
<view class="flex-between">
|
||||
<view class="flex-center">
|
||||
<view class="timeLabel">36分钟内</view>
|
||||
@ -448,6 +448,11 @@
|
||||
onReachBottom (){
|
||||
},
|
||||
methods: {
|
||||
goDetail(id){
|
||||
uni.navigateTo({
|
||||
url:'../order/detail?id=' + id
|
||||
})
|
||||
},
|
||||
cancleClickOrder(){
|
||||
this.cancleShow = true
|
||||
this.moreShow = false
|
||||
|
||||
238
pages/mine/apply-.vue
Normal file
238
pages/mine/apply-.vue
Normal file
@ -0,0 +1,238 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<view class="moduleWrap">
|
||||
<view class="moduleBox" style="padding-bottom: 40rpx;">
|
||||
<view class="monthBox">
|
||||
<view class="text1">身份证信息</view>
|
||||
<text class="text2">上传本人身份证照片,保持图片清晰完整</text>
|
||||
</view>
|
||||
<view class="flex-between" style="margin-top: 20rpx;">
|
||||
<view>
|
||||
<u-upload
|
||||
:fileList="fileList1"
|
||||
@afterRead="afterRead"
|
||||
@delete="deletePic"
|
||||
name="1"
|
||||
multiple
|
||||
:maxCount="10"
|
||||
>
|
||||
<image
|
||||
:src="path+'/assets/img/icon/IDbgz.png'"
|
||||
mode="widthFix"
|
||||
style="width: 300rpx;height: 190rpx;"
|
||||
></image>
|
||||
</u-upload>
|
||||
</view>
|
||||
<view>
|
||||
<u-upload
|
||||
:fileList="fileList1"
|
||||
@afterRead="afterRead"
|
||||
@delete="deletePic"
|
||||
name="1"
|
||||
multiple
|
||||
:maxCount="10"
|
||||
>
|
||||
<image
|
||||
:src="path+'/assets/img/icon/IDbgz.png'"
|
||||
mode="widthFix"
|
||||
style="width: 300rpx;height: 190rpx;"
|
||||
></image>
|
||||
</u-upload>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="moduleWrap">
|
||||
<view class="moduleBox">
|
||||
<view class="text4">真实姓名</view>
|
||||
<view class="inputBox">
|
||||
<input class="input1" type="text" placeholder="输入和身份证姓名一致" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="moduleBox">
|
||||
<view class="text4">身份证号</view>
|
||||
<view class="inputBox">
|
||||
<input class="input1" type="text" placeholder="输入18位身份证号" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="moduleBox">
|
||||
<view class="text4">有效日期</view>
|
||||
<view class="inputBox inputTwoBox">
|
||||
<input class="input1" type="text" placeholder="开始日期" />
|
||||
<text class="centerIcon">至</text>
|
||||
<input class="input2" type="text" placeholder="开始日期" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="moduleBox">
|
||||
<view class="text4">证件地址</view>
|
||||
<view class="inputBox">
|
||||
<input class="input1" type="text" placeholder="与身份证住址保持一致" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="moduleBox">
|
||||
<view class="text4">联系电话</view>
|
||||
<view class="inputBox">
|
||||
<input class="input1" type="text" placeholder="输入您的联系方式" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="moduleBox" style="padding-bottom: 60rpx;">
|
||||
<view class="text4">代理区域</view>
|
||||
<view class="inputBox inputTwoBox2">
|
||||
<input class="input1" type="text" placeholder="请选择省份" />
|
||||
<text class="centerIcon">-</text>
|
||||
<input class="input2" type="text" placeholder="请选择城市" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="tipBox">
|
||||
Tips:我们会在3个工作日内审核并与您联系,请注意接听电话。
|
||||
</view>
|
||||
<view style="height: 130rpx;"></view>
|
||||
<view class="btnBox">
|
||||
<view class="btnEle flex-center">
|
||||
提交申请
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
}
|
||||
},
|
||||
components:{
|
||||
},
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
onShow() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
page{
|
||||
height: 100%;
|
||||
}
|
||||
.content{
|
||||
padding: 20rpx 35rpx;
|
||||
background: #F5F5FA;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
}
|
||||
.monthBox{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.text1{
|
||||
font-weight: bold;
|
||||
font-size: 32rpx;
|
||||
color: #333333;
|
||||
}
|
||||
.text2{
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #999999;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
}
|
||||
.moduleBox{
|
||||
background: #fff;
|
||||
padding: 34rpx 30rpx 28rpx;
|
||||
// border-bottom: 1rpx solid #DEDEDE;
|
||||
.text4{
|
||||
font-weight: bold;
|
||||
font-size: 28rpx;
|
||||
color: #333333;
|
||||
}
|
||||
.input1{
|
||||
margin-top: 40rpx;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
.input2{
|
||||
margin-top: 40rpx;
|
||||
font-size: 28rpx;
|
||||
text-align: right;
|
||||
}
|
||||
.centerIcon{
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #333333;
|
||||
}
|
||||
.inputBox{
|
||||
border-bottom: 1rpx solid #DEDEDE;
|
||||
padding-bottom: 22rpx;
|
||||
}
|
||||
}
|
||||
.moduleBox:last-child{
|
||||
border-bottom: none;
|
||||
}
|
||||
.moduleWrap{
|
||||
|
||||
margin-bottom: 20rpx;
|
||||
border-radius: 30rpx;
|
||||
overflow: hidden;
|
||||
}
|
||||
.inputTwoBox{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: flex-end;
|
||||
}
|
||||
.inputTwoBox2{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
align-items: flex-end;
|
||||
.input1{
|
||||
margin-top: 40rpx;
|
||||
font-size: 28rpx;
|
||||
width: 200rpx;
|
||||
}
|
||||
.input2{
|
||||
margin-top: 40rpx;
|
||||
font-size: 28rpx;
|
||||
width: 200rpx;
|
||||
}
|
||||
}
|
||||
.tipBox{
|
||||
width: 680rpx;
|
||||
height: 110rpx;
|
||||
background: #FFF4ED;
|
||||
border-radius: 20rpx;
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #FF9348;
|
||||
line-height: 36rpx;
|
||||
padding: 0 30rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.btnBox{
|
||||
padding: 10rpx 35rpx;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
.btnEle{
|
||||
width: 100%;
|
||||
height: 90rpx;
|
||||
background: linear-gradient(90deg, #FFAD38 0%, #FF884E 100%);
|
||||
border-radius: 10rpx;
|
||||
font-weight: 500;
|
||||
font-size: 30rpx;
|
||||
color: #FFFFFF;
|
||||
line-height: 36rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -8,36 +8,20 @@
|
||||
</view>
|
||||
<view class="flex-between" style="margin-top: 20rpx;">
|
||||
<view>
|
||||
<u-upload
|
||||
:fileList="fileList1"
|
||||
@afterRead="afterRead"
|
||||
@delete="deletePic"
|
||||
name="1"
|
||||
multiple
|
||||
:maxCount="10"
|
||||
>
|
||||
<image
|
||||
:src="path+'/assets/img/icon/IDbgz.png'"
|
||||
mode="widthFix"
|
||||
style="width: 300rpx;height: 190rpx;"
|
||||
></image>
|
||||
</u-upload>
|
||||
<img-upload @imgList="imgListz" style="width: 300rpx;height: 190rpx;">
|
||||
<template v-slot:upLoadImg>
|
||||
<image :src="path+'/assets/img/icon/IDbgz.png'" mode="widthFix" style="width: 300rpx;height: 190rpx;">
|
||||
</image>
|
||||
</template>
|
||||
</img-upload>
|
||||
</view>
|
||||
<view>
|
||||
<u-upload
|
||||
:fileList="fileList1"
|
||||
@afterRead="afterRead"
|
||||
@delete="deletePic"
|
||||
name="1"
|
||||
multiple
|
||||
:maxCount="10"
|
||||
>
|
||||
<image
|
||||
:src="path+'/assets/img/icon/IDbgz.png'"
|
||||
mode="widthFix"
|
||||
style="width: 300rpx;height: 190rpx;"
|
||||
></image>
|
||||
</u-upload>
|
||||
<img-upload @imgList="imgListf" style="width: 300rpx;height: 190rpx;">
|
||||
<template v-slot:upLoadImg>
|
||||
<image :src="path+'/assets/img/icon/IDbgf.png'" mode="widthFix" style="width: 300rpx;height: 190rpx;">
|
||||
</image>
|
||||
</template>
|
||||
</img-upload>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -46,33 +30,47 @@
|
||||
<view class="moduleBox">
|
||||
<view class="text4">真实姓名</view>
|
||||
<view class="inputBox">
|
||||
<input class="input1" type="text" placeholder="输入和身份证姓名一致" />
|
||||
<input v-model="realname" class="input1" type="text" placeholder="输入和身份证姓名一致" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="moduleBox">
|
||||
<view class="text4">身份证号</view>
|
||||
<view class="inputBox">
|
||||
<input class="input1" type="text" placeholder="输入18位身份证号" />
|
||||
<input v-model="id_card_number" class="input1" type="text" placeholder="输入18位身份证号" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="moduleBox">
|
||||
<view class="text4">有效日期</view>
|
||||
<view class="inputBox inputTwoBox">
|
||||
<input class="input1" type="text" placeholder="开始日期" />
|
||||
<text class="input1" @click="showStartDate=true">{{id_card_start_date||'开始时间'}}</text>
|
||||
<!-- <input class="input1" type="text" placeholder="开始日期" /> -->
|
||||
<text class="centerIcon">至</text>
|
||||
<input class="input2" type="text" placeholder="开始日期" />
|
||||
<text class="input2" @click="showEndDate=true">{{id_card_end_date||'结束时间'}}</text>
|
||||
<!-- <input class="input2" type="text" placeholder="开始日期" /> -->
|
||||
</view>
|
||||
<u-datetime-picker
|
||||
:show="showStartDate"
|
||||
v-model="dateStart"
|
||||
mode="date"
|
||||
@confirm="confirmStartDate"
|
||||
></u-datetime-picker>
|
||||
<u-datetime-picker
|
||||
:show="showEndDate"
|
||||
v-model="dateEnd"
|
||||
mode="date"
|
||||
@confirm="confirmEndDate"
|
||||
></u-datetime-picker>
|
||||
</view>
|
||||
<view class="moduleBox">
|
||||
<view class="text4">证件地址</view>
|
||||
<view class="inputBox">
|
||||
<input class="input1" type="text" placeholder="与身份证住址保持一致" />
|
||||
<input v-model="id_card_address" class="input1" type="text" placeholder="与身份证住址保持一致" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="moduleBox">
|
||||
<view class="text4">联系电话</view>
|
||||
<view class="inputBox">
|
||||
<input class="input1" type="text" placeholder="输入您的联系方式" />
|
||||
<input v-model="mobile" class="input1" type="text" placeholder="输入您的联系方式" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="moduleBox" style="padding-bottom: 60rpx;">
|
||||
@ -89,7 +87,7 @@
|
||||
</view>
|
||||
<view style="height: 130rpx;"></view>
|
||||
<view class="btnBox">
|
||||
<view class="btnEle flex-center">
|
||||
<view class="btnEle flex-center" @click="apply">
|
||||
提交申请
|
||||
</view>
|
||||
</view>
|
||||
@ -98,13 +96,27 @@
|
||||
|
||||
|
||||
<script>
|
||||
import imgUpload from '@/components/imgUpload.vue'
|
||||
import util from '../../common/util.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
showStartDate: false,
|
||||
showEndDate: false,
|
||||
dateStart: Number(new Date()),
|
||||
dateEnd: Number(new Date()),
|
||||
realname: '',
|
||||
id_card_number: '',
|
||||
id_card_front: '',
|
||||
id_card_back: '',
|
||||
id_card_start_date: '',
|
||||
id_card_end_date: '',
|
||||
id_card_address: '',
|
||||
mobile: ''
|
||||
}
|
||||
},
|
||||
components:{
|
||||
imgUpload
|
||||
},
|
||||
onLoad() {
|
||||
|
||||
@ -113,6 +125,44 @@
|
||||
|
||||
},
|
||||
methods: {
|
||||
apply(){
|
||||
let data = {
|
||||
realname: this.realname,
|
||||
id_card_number: this.id_card_number,
|
||||
id_card_front: this.id_card_front,
|
||||
id_card_back: this.id_card_back,
|
||||
id_card_start_date: this.id_card_start_date,
|
||||
id_card_end_date: this.id_card_end_date,
|
||||
id_card_address: this.id_card_address,
|
||||
mobile: this.mobile
|
||||
}
|
||||
this.$api.applyCertification(data,res=>{
|
||||
if(res.code == '1'){
|
||||
uni.showToast({ title: res.msg , icon: 'success' })
|
||||
setTimeout(()=>{
|
||||
uni.navigateBack({
|
||||
delta: 1
|
||||
})
|
||||
}, 2000)
|
||||
}else{
|
||||
uni.showToast({ title: res.msg , icon: 'none' })
|
||||
}
|
||||
})
|
||||
},
|
||||
imgListz(val){
|
||||
this.id_card_front = val
|
||||
},
|
||||
imgListf(val){
|
||||
this.id_card_back = val
|
||||
},
|
||||
confirmStartDate(val){
|
||||
this.showStartDate = false
|
||||
this.id_card_start_date = util.formatDate(val.value,'YYYY-MM-DD')
|
||||
},
|
||||
confirmEndDate(val){
|
||||
this.showEndDate = false
|
||||
this.id_card_end_date = util.formatDate(val.value,'YYYY-MM-DD')
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
288
pages/mine/editInfo.vue
Normal file
288
pages/mine/editInfo.vue
Normal file
@ -0,0 +1,288 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<!-- <view class="moduleWrap">
|
||||
<view class="moduleBox" style="padding-bottom: 40rpx;">
|
||||
<view class="monthBox">
|
||||
<view class="text1">身份证信息</view>
|
||||
<text class="text2">上传本人身份证照片,保持图片清晰完整</text>
|
||||
</view>
|
||||
<view class="flex-between" style="margin-top: 20rpx;">
|
||||
<view>
|
||||
<img-upload @imgList="imgListz" style="width: 300rpx;height: 190rpx;">
|
||||
<template v-slot:upLoadImg>
|
||||
<image :src="path+'/assets/img/icon/IDbgz.png'" mode="widthFix" style="width: 300rpx;height: 190rpx;">
|
||||
</image>
|
||||
</template>
|
||||
</img-upload>
|
||||
</view>
|
||||
<view>
|
||||
<img-upload @imgList="imgListf" style="width: 300rpx;height: 190rpx;">
|
||||
<template v-slot:upLoadImg>
|
||||
<image :src="path+'/assets/img/icon/IDbgf.png'" mode="widthFix" style="width: 300rpx;height: 190rpx;">
|
||||
</image>
|
||||
</template>
|
||||
</img-upload>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<view class="moduleWrap">
|
||||
<view class="moduleBox">
|
||||
<view class="text4">真实姓名</view>
|
||||
<view class="inputBox">
|
||||
<input v-model="realname" class="input1" type="text" placeholder="输入和身份证姓名一致" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="moduleBox">
|
||||
<view class="text4">身份证号</view>
|
||||
<view class="inputBox">
|
||||
<input v-model="id_card_number" class="input1" type="text" placeholder="输入18位身份证号" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="moduleBox">
|
||||
<view class="text4">有效日期</view>
|
||||
<view class="inputBox inputTwoBox">
|
||||
<text class="input1" @click="showStartDate=true">{{id_card_start_date||'开始时间'}}</text>
|
||||
<!-- <input class="input1" type="text" placeholder="开始日期" /> -->
|
||||
<text class="centerIcon">至</text>
|
||||
<text class="input2" @click="showEndDate=true">{{id_card_end_date||'结束时间'}}</text>
|
||||
<!-- <input class="input2" type="text" placeholder="开始日期" /> -->
|
||||
</view>
|
||||
<u-datetime-picker
|
||||
:show="showStartDate"
|
||||
v-model="dateStart"
|
||||
mode="date"
|
||||
@confirm="confirmStartDate"
|
||||
></u-datetime-picker>
|
||||
<u-datetime-picker
|
||||
:show="showEndDate"
|
||||
v-model="dateEnd"
|
||||
mode="date"
|
||||
@confirm="confirmEndDate"
|
||||
></u-datetime-picker>
|
||||
</view>
|
||||
<view class="moduleBox">
|
||||
<view class="text4">证件地址</view>
|
||||
<view class="inputBox">
|
||||
<input v-model="id_card_address" class="input1" type="text" placeholder="与身份证住址保持一致" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="moduleBox">
|
||||
<view class="text4">联系电话</view>
|
||||
<view class="inputBox">
|
||||
<input v-model="mobile" class="input1" type="text" placeholder="输入您的联系方式" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="moduleBox" style="padding-bottom: 60rpx;">
|
||||
<view class="text4">代理区域</view>
|
||||
<view class="inputBox inputTwoBox2">
|
||||
<input class="input1" type="text" placeholder="请选择省份" />
|
||||
<text class="centerIcon">-</text>
|
||||
<input class="input2" type="text" placeholder="请选择城市" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="tipBox">
|
||||
Tips:我们会在3个工作日内审核并与您联系,请注意接听电话。
|
||||
</view>
|
||||
<view style="height: 130rpx;"></view>
|
||||
<view class="btnBox">
|
||||
<view class="btnEle flex-center" @click="apply">
|
||||
提交申请
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
import imgUpload from '@/components/imgUpload.vue'
|
||||
import util from '../../common/util.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
showStartDate: false,
|
||||
showEndDate: false,
|
||||
dateStart: Number(new Date()),
|
||||
dateEnd: Number(new Date()),
|
||||
realname: '',
|
||||
id_card_number: '',
|
||||
id_card_front: '',
|
||||
id_card_back: '',
|
||||
id_card_start_date: '',
|
||||
id_card_end_date: '',
|
||||
id_card_address: '',
|
||||
mobile: ''
|
||||
}
|
||||
},
|
||||
components:{
|
||||
imgUpload
|
||||
},
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
onShow() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
apply(){
|
||||
let data = {
|
||||
realname: this.realname,
|
||||
id_card_number: this.id_card_number,
|
||||
id_card_front: this.id_card_front,
|
||||
id_card_back: this.id_card_back,
|
||||
id_card_start_date: this.id_card_start_date,
|
||||
id_card_end_date: this.id_card_end_date,
|
||||
id_card_address: this.id_card_address,
|
||||
mobile: this.mobile
|
||||
}
|
||||
this.$api.applyCertification(data,res=>{
|
||||
if(res.code == '1'){
|
||||
uni.showToast({ title: res.msg , icon: 'success' })
|
||||
setTimeout(()=>{
|
||||
uni.navigateBack({
|
||||
delta: 1
|
||||
})
|
||||
}, 2000)
|
||||
}else{
|
||||
uni.showToast({ title: res.msg , icon: 'none' })
|
||||
}
|
||||
})
|
||||
},
|
||||
imgListz(val){
|
||||
this.id_card_front = val
|
||||
},
|
||||
imgListf(val){
|
||||
this.id_card_back = val
|
||||
},
|
||||
confirmStartDate(val){
|
||||
this.showStartDate = false
|
||||
this.id_card_start_date = util.formatDate(val.value,'YYYY-MM-DD')
|
||||
},
|
||||
confirmEndDate(val){
|
||||
this.showEndDate = false
|
||||
this.id_card_end_date = util.formatDate(val.value,'YYYY-MM-DD')
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
page{
|
||||
height: 100%;
|
||||
}
|
||||
.content{
|
||||
padding: 20rpx 35rpx;
|
||||
background: #F5F5FA;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
}
|
||||
.monthBox{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.text1{
|
||||
font-weight: bold;
|
||||
font-size: 32rpx;
|
||||
color: #333333;
|
||||
}
|
||||
.text2{
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #999999;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
}
|
||||
.moduleBox{
|
||||
background: #fff;
|
||||
padding: 34rpx 30rpx 28rpx;
|
||||
// border-bottom: 1rpx solid #DEDEDE;
|
||||
.text4{
|
||||
font-weight: bold;
|
||||
font-size: 28rpx;
|
||||
color: #333333;
|
||||
}
|
||||
.input1{
|
||||
margin-top: 40rpx;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
.input2{
|
||||
margin-top: 40rpx;
|
||||
font-size: 28rpx;
|
||||
text-align: right;
|
||||
}
|
||||
.centerIcon{
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #333333;
|
||||
}
|
||||
.inputBox{
|
||||
border-bottom: 1rpx solid #DEDEDE;
|
||||
padding-bottom: 22rpx;
|
||||
}
|
||||
}
|
||||
.moduleBox:last-child{
|
||||
border-bottom: none;
|
||||
}
|
||||
.moduleWrap{
|
||||
|
||||
margin-bottom: 20rpx;
|
||||
border-radius: 30rpx;
|
||||
overflow: hidden;
|
||||
}
|
||||
.inputTwoBox{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: flex-end;
|
||||
}
|
||||
.inputTwoBox2{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
align-items: flex-end;
|
||||
.input1{
|
||||
margin-top: 40rpx;
|
||||
font-size: 28rpx;
|
||||
width: 200rpx;
|
||||
}
|
||||
.input2{
|
||||
margin-top: 40rpx;
|
||||
font-size: 28rpx;
|
||||
width: 200rpx;
|
||||
}
|
||||
}
|
||||
.tipBox{
|
||||
width: 680rpx;
|
||||
height: 110rpx;
|
||||
background: #FFF4ED;
|
||||
border-radius: 20rpx;
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #FF9348;
|
||||
line-height: 36rpx;
|
||||
padding: 0 30rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.btnBox{
|
||||
padding: 10rpx 35rpx;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
.btnEle{
|
||||
width: 100%;
|
||||
height: 90rpx;
|
||||
background: linear-gradient(90deg, #FFAD38 0%, #FF884E 100%);
|
||||
border-radius: 10rpx;
|
||||
font-weight: 500;
|
||||
font-size: 30rpx;
|
||||
color: #FFFFFF;
|
||||
line-height: 36rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -24,7 +24,7 @@
|
||||
<view class="walletBox">
|
||||
<view class="flex-between">
|
||||
<image :src="path+'/assets/img/icon/wallet.png'" class="img1"></image>
|
||||
<view class="flex-center">
|
||||
<view class="flex-center" @click="gopage2('/pages/mine/priceRecord')">
|
||||
<text class="text1">资金记录</text>
|
||||
<u-icon name="arrow-right" color="#333333" size="12" style="margin-top: 5rpx;"></u-icon>
|
||||
</view>
|
||||
@ -83,7 +83,7 @@
|
||||
</view>
|
||||
<image src="/static/img/right.png" style="width: 50rpx;height:50rpx;"></image>
|
||||
</view>
|
||||
<view class="fsz32 flex-between listBox" @click="linkPage('/pages/mine/promotion')">
|
||||
<view class="fsz32 flex-between listBox" @click="linkPage('/pages/mine/apply')">
|
||||
<view class="flex-center">
|
||||
<image :src="path+'/assets/img/icon/pen.png'" class="listIcon"></image>
|
||||
<text class="listLabel">我的签约</text>
|
||||
@ -121,7 +121,21 @@
|
||||
<text class="listLabel">在线客服</text>
|
||||
</view>
|
||||
<image src="/static/img/right.png" style="width: 50rpx;height:50rpx;"></image>
|
||||
</button>
|
||||
</button>
|
||||
<view class="fsz32 flex-between listBox" @click="linkPage('/pages/mine/editInfo')">
|
||||
<view class="flex-center">
|
||||
<image :src="path+'/assets/img/icon/question.png'" class="listIcon"></image>
|
||||
<text class="listLabel">信息编辑</text>
|
||||
</view>
|
||||
<image src="/static/img/right.png" style="width: 50rpx;height:50rpx;"></image>
|
||||
</view>
|
||||
<view class="fsz32 flex-between listBox" @click="linkPage('/pages/question/index')">
|
||||
<view class="flex-center">
|
||||
<image :src="path+'/assets/img/icon/question.png'" class="listIcon"></image>
|
||||
<text class="listLabel">密码设置</text>
|
||||
</view>
|
||||
<image src="/static/img/right.png" style="width: 50rpx;height:50rpx;"></image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="fuwu mainwidth2 qrcodeBox">
|
||||
<!-- <view class="padding15 fsz32" @click="shareShow = true">
|
||||
@ -140,6 +154,26 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<u-popup :show="passwordShow" mode="center" @close="close" @open="open" :round="10">
|
||||
<view class="passwordBox">
|
||||
<view class="flex-between">
|
||||
<text class="text2">设置支付密码</text>
|
||||
<u-icon name="close" color="#333333" size="18" @click="passwordShow = false"></u-icon>
|
||||
</view>
|
||||
<view class="passwordView flex-between">
|
||||
<text class="text1">原密码:</text>
|
||||
<input type="text" class="input1" placeholder="请输入原密码" />
|
||||
</view>
|
||||
<view class="passwordView flex-between">
|
||||
<text class="text1">新密码:</text>
|
||||
<input type="text" class="input1" placeholder="请输入原密码" />
|
||||
</view>
|
||||
<view class="passwordView flex-between">
|
||||
<text class="text1">确认密码:</text>
|
||||
<input type="text" class="input1" placeholder="请输入原密码" />
|
||||
</view>
|
||||
</view>
|
||||
</u-popup>
|
||||
<!-- <view class="fuwu mainwidth2">
|
||||
<view class="h3-title fsz32">
|
||||
我的服务
|
||||
@ -246,7 +280,8 @@
|
||||
goodsData: {},
|
||||
scrollAnimation: 300,
|
||||
shareShow: false,
|
||||
path: this.path
|
||||
path: this.path,
|
||||
passwordShow: false
|
||||
}
|
||||
},
|
||||
components:{
|
||||
@ -815,5 +850,31 @@ button::after{
|
||||
color: #62442B;
|
||||
}
|
||||
}
|
||||
}
|
||||
.passwordBox{
|
||||
padding: 40rpx 45rpx;
|
||||
border-radius: 30rpx;
|
||||
.text2{
|
||||
font-weight: bold;
|
||||
font-size: 36rpx;
|
||||
color: #000000;
|
||||
}
|
||||
.passwordView{
|
||||
margin-top: 40rpx;
|
||||
.text1{
|
||||
font-size: 30rpx;
|
||||
color: #000000;
|
||||
width: 160rpx;
|
||||
text-align: right;
|
||||
}
|
||||
.input1{
|
||||
margin-left: 15rpx;
|
||||
border: 1rpx solid rgba(0,0,0,.1);
|
||||
border-radius: 10rpx;
|
||||
padding: 15rpx;
|
||||
padding-left: 20rpx;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -77,13 +77,80 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="escLogin" @click="escLogin">退出登录</view>
|
||||
<!-- <view class="escLogin" @click="escLogin">退出登录</view> -->
|
||||
<view class="infoBox" style="margin-top: 17rpx;">
|
||||
<view class='hs-list flex-between'>
|
||||
<view class='hs-list-hd'>
|
||||
真实姓名
|
||||
</view>
|
||||
<view class='hs-row-ft flex-center'>
|
||||
<input v-model="userinfo.nickname" type="text" placeholder="请输入真实姓名"/>
|
||||
<!-- <u-icon name="arrow-right" color="#282F38" size="14" style="margin-left: 19rpx;"></u-icon> -->
|
||||
</view>
|
||||
</view>
|
||||
<view class='hs-list flex-between'>
|
||||
<view class='hs-list-hd'>
|
||||
手机号码
|
||||
</view>
|
||||
<view class='hs-row-ft flex-center'>
|
||||
<input v-model="userinfo.mobile" type="text" placeholder="请输入手机号"/>
|
||||
<!-- <u-icon name="arrow-right" color="#282F38" size="14" style="margin-left: 19rpx;"></u-icon> -->
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="infoBox" style="margin-top: 17rpx;" v-if="isConfigPassword">
|
||||
<view class='hs-list flex-between'>
|
||||
<view class='hs-list-hd'>
|
||||
原支付密码
|
||||
</view>
|
||||
<view class='hs-row-ft flex-center'>
|
||||
<input v-model="yuanPassword" type="password" placeholder="请输入原密码"/>
|
||||
<!-- <u-icon name="arrow-right" color="#282F38" size="14" style="margin-left: 19rpx;"></u-icon> -->
|
||||
</view>
|
||||
</view>
|
||||
<view class='hs-list flex-between'>
|
||||
<view class='hs-list-hd'>
|
||||
新支付密码
|
||||
</view>
|
||||
<view class='hs-row-ft flex-center'>
|
||||
<input v-model="pay_password" type="password" placeholder="请输入新密码"/>
|
||||
<!-- <u-icon name="arrow-right" color="#282F38" size="14" style="margin-left: 19rpx;"></u-icon> -->
|
||||
</view>
|
||||
</view>
|
||||
<view class='hs-list flex-between'>
|
||||
<view class='hs-list-hd'>
|
||||
确认密码
|
||||
</view>
|
||||
<view class='hs-row-ft flex-center'>
|
||||
<input v-model="rePassword" type="password" placeholder="请确认密码"/>
|
||||
<!-- <u-icon name="arrow-right" color="#282F38" size="14" style="margin-left: 19rpx;"></u-icon> -->
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="infoBox" style="margin-top: 17rpx;" v-else>
|
||||
<view class='hs-list flex-between'>
|
||||
<view class='hs-list-hd'>
|
||||
支付密码
|
||||
</view>
|
||||
<view class='hs-row-ft flex-center'>
|
||||
<input v-model="pay_password" type="password" placeholder="请输入支付密码"/>
|
||||
</view>
|
||||
</view>
|
||||
<view class='hs-list flex-between'>
|
||||
<view class='hs-list-hd'>
|
||||
确认密码
|
||||
</view>
|
||||
<view class='hs-row-ft flex-center'>
|
||||
<input v-model="rePassword" type="password" placeholder="请输入确认密码"/>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- <view class="button-bottom">
|
||||
<button class="btn btn-success" @click="toAdd()" >保存</button>
|
||||
</view> -->
|
||||
<view style="height: 20rpx;"></view>
|
||||
<view class="button-bottom">
|
||||
<button class="btn btn-success" @click="checkPassword()" >保存</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@ -96,12 +163,18 @@
|
||||
headflag:false,
|
||||
nickname:'微信用户',
|
||||
avatar:'/static/img/t2.png',
|
||||
isConfigPassword: false,
|
||||
yuanPassword: '',
|
||||
pay_password: '',
|
||||
rePassword: ''
|
||||
}
|
||||
},
|
||||
components:{
|
||||
},
|
||||
onLoad() {
|
||||
this.userinfo = uni.getStorageSync('userInfo');
|
||||
// this.getAgreement()
|
||||
this.checkPayPassword()
|
||||
},
|
||||
onShow() {
|
||||
var token = uni.getStorageSync('userToken');
|
||||
@ -111,6 +184,55 @@
|
||||
this.getauth()
|
||||
},
|
||||
methods: {
|
||||
checkPayPassword(){
|
||||
var _this = this;
|
||||
_this.$api.checkPayPassword({},res=>{
|
||||
if(res.code == '1'){
|
||||
console.log(res.data)
|
||||
this.isConfigPassword = res.data.has_pay_password
|
||||
// uni.showToast({ title: res.msg , icon: 'success' })
|
||||
|
||||
}
|
||||
})
|
||||
},
|
||||
checkPassword() {
|
||||
var _this = this;
|
||||
if(this.isConfigPassword){
|
||||
_this.$api.verifyPayPassword({
|
||||
pay_password: this.yuanPassword
|
||||
},res=>{
|
||||
if(res.code == '1'){
|
||||
console.log(res.data)
|
||||
this.setConfig()
|
||||
}else{
|
||||
uni.showToast({ title: res.msg , icon: 'none' })
|
||||
}
|
||||
})
|
||||
}else{
|
||||
this.setConfig()
|
||||
}
|
||||
},
|
||||
setConfig() {
|
||||
var _this = this;
|
||||
if(this.pay_password != this.rePassword){
|
||||
uni.showToast({ title: '密码和确认密码不一致', icon: 'none' })
|
||||
return false;
|
||||
}
|
||||
let data = {
|
||||
realname: this.userinfo.nickname,
|
||||
mobile: this.userinfo.mobile,
|
||||
pay_password: this.pay_password
|
||||
}
|
||||
_this.$api.editperson(data,res=>{
|
||||
if(res.code == '1'){
|
||||
console.log(res.data)
|
||||
uni.showToast({ title: res.msg , icon: 'success' })
|
||||
|
||||
}else{
|
||||
uni.showToast({ title: res.msg , icon: 'none' })
|
||||
}
|
||||
})
|
||||
},
|
||||
escLogin(){
|
||||
this.$api.escLogin({},res=>{
|
||||
if(res.code == '1'){
|
||||
@ -239,6 +361,7 @@
|
||||
padding: 8rpx 35rpx;
|
||||
background: #F5F5FA;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
}
|
||||
.hs-row{
|
||||
width: 100%;
|
||||
@ -333,4 +456,13 @@
|
||||
font-size: 30rpx;
|
||||
color: #FB8F0C;
|
||||
}
|
||||
.button-bottom{
|
||||
background: #fff;
|
||||
left: 0;
|
||||
padding: 10rpx 35rpx;
|
||||
height: unset!important;
|
||||
}
|
||||
.btn-success{
|
||||
background: linear-gradient(90deg, #FFAD38 0%, #FF884E 100%);
|
||||
}
|
||||
</style>
|
||||
@ -42,7 +42,8 @@
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
page: 1,
|
||||
limit: 10
|
||||
}
|
||||
},
|
||||
components:{
|
||||
@ -54,6 +55,19 @@
|
||||
|
||||
},
|
||||
methods: {
|
||||
getPriceList(){
|
||||
var _this = this;
|
||||
_this.$api.priceList({},res=>{
|
||||
if(res.code == '1'){
|
||||
if(res.data.user.avatar){
|
||||
_this.avatar = res.data.user.avatar
|
||||
}
|
||||
_this.nickname = res.data.user.nickname
|
||||
_this.userinfo = res.data.user
|
||||
}else{
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
217
pages/order/detail-.vue
Normal file
217
pages/order/detail-.vue
Normal file
@ -0,0 +1,217 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<view style="overflow: hidden;">
|
||||
|
||||
<view class="news_title">
|
||||
<view class="fsz30 overflow2 title tag">
|
||||
{{orderInfo.status_name||''}}
|
||||
</view>
|
||||
<view class="time fsz26">
|
||||
订单号:{{orderInfo.order_no||''}}
|
||||
</view>
|
||||
<view class="time fsz26">
|
||||
下单时间:{{orderInfo.createtime||''}}
|
||||
</view>
|
||||
<view class="time fsz26" v-if="orderInfo.status ==3">
|
||||
完成时间:{{orderInfo.finish_time||''}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="line"></view>
|
||||
<view class=" w">
|
||||
<view class="biaoti fsz30">
|
||||
预约信息
|
||||
</view>
|
||||
<view class="main">
|
||||
<view class="li fsz30">
|
||||
<view class="ti">联系人 : </view>
|
||||
<view>{{orderInfo.accept_name||''}}</view>
|
||||
</view>
|
||||
<view class="li fsz30">
|
||||
<view class="ti">电话 : </view>
|
||||
<view>{{orderInfo.accept_mobile||''}}</view>
|
||||
</view>
|
||||
<view class="li fsz30">
|
||||
<view class="ti">地址 : </view>
|
||||
<view>{{orderInfo.area_name||''}} </view>
|
||||
</view>
|
||||
<view class="li fsz30">
|
||||
<view class="ti"></view>
|
||||
<view style=" text-align: right;">{{orderInfo.accept_address||''}}</view>
|
||||
</view>
|
||||
<view class="li fsz30" v-if="orderInfo.status ==3">
|
||||
<view class="ti">订单金额 : </view>
|
||||
<view style="text-align: right;" class="red-price">{{orderInfo.price||''}}</view>
|
||||
</view>
|
||||
<view class="li fsz30" v-if="orderInfo.status ==3">
|
||||
<view class="ti">订单赠送积分 : </view>
|
||||
<view style="text-align: right;" class="red-price">{{orderInfo.send_point||''}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="line"></view>
|
||||
<view class=" w">
|
||||
<view class="biaoti fsz30">
|
||||
回收信息
|
||||
</view>
|
||||
<view class="main">
|
||||
<view class="li fsz30">
|
||||
<view class="ti">预约回收品类 : </view>
|
||||
<view>{{orderInfo.type_name||''}}</view>
|
||||
</view>
|
||||
<view class="li fsz30">
|
||||
<view class="ti">预约时间 : </view>
|
||||
<view>{{orderInfo.order_time||''}}</view>
|
||||
</view>
|
||||
<view class="li fsz30">
|
||||
<view class="ti">预约重量 : </view>
|
||||
<view>{{orderInfo.weight||''}}</view>
|
||||
</view>
|
||||
<view class="li fsz30">
|
||||
<view class="ti">备注 : </view>
|
||||
<view>{{orderInfo.remark||'无'}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="line"></view>
|
||||
<view class=" w" v-if="orderInfo.status==2">
|
||||
<view class="biaoti fsz30">
|
||||
回收员
|
||||
</view>
|
||||
<view class="main">
|
||||
<view class="li fsz30">
|
||||
<view>姓名 : </view>
|
||||
<view>{{orderInfo.person_name||''}}</view>
|
||||
</view>
|
||||
<view class="li fsz30">
|
||||
<view >电话 : </view>
|
||||
<view @tap="call(orderInfo.person_mobile)" >{{orderInfo.person_mobile||''}}</view>
|
||||
</view>
|
||||
<view class="li fsz30">
|
||||
<view >接单时间 : </view>
|
||||
<view >{{orderInfo.jiedan_time||''}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view style="height:100px"></view>
|
||||
</view>
|
||||
<view class="button-bottom" v-if="orderInfo.status==1 || orderInfo.status==2">
|
||||
<button class='btn btn-default' v-if="orderInfo.status == 1 || orderInfo.status == 2" @click="cancelOrder()">取消订单</button>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
order_id: '',
|
||||
orderInfo: {},
|
||||
};
|
||||
},
|
||||
onLoad(e) {
|
||||
this.order_id = e.id;
|
||||
this.getOrderDetail();
|
||||
},
|
||||
methods: {
|
||||
cancelOrder() {
|
||||
uni.showModal({
|
||||
title:'提示',
|
||||
content: '确认要取消订单吗?',
|
||||
success:(ret)=>{
|
||||
if(ret.confirm){
|
||||
let data = {
|
||||
id: this.order_id
|
||||
}
|
||||
|
||||
this.$api.cancelorder(data, res => {
|
||||
if (res.code ==1) {
|
||||
uni.showToast({ title: res.msg , icon: 'success' })
|
||||
setTimeout(function() {
|
||||
this.getOrderDetail()
|
||||
},2000);
|
||||
} else {
|
||||
uni.showToast({ title: res.msg , icon: 'none' })
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
getOrderDetail() {
|
||||
let _this = this
|
||||
let data = {
|
||||
id: _this.order_id
|
||||
}
|
||||
_this.$api.orderdetail(data, function(res) {
|
||||
if (res.code ==1 ) {
|
||||
let data = res.data.info
|
||||
_this.orderInfo = data;
|
||||
} else {
|
||||
uni.showToast({ title: res.msg , icon: 'none' })
|
||||
}
|
||||
})
|
||||
},
|
||||
call(phone){
|
||||
uni.makePhoneCall({
|
||||
phoneNumber:phone,
|
||||
success:function(){
|
||||
console.log('拨打电话成功');
|
||||
},
|
||||
fail() {
|
||||
console.log('打电话失败了');
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
|
||||
.news_title{
|
||||
border-bottom: 1px solid #eee;
|
||||
padding: 20rpx 5%;
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
width: 100%; }
|
||||
.news_title .title{
|
||||
color: #333;
|
||||
line-height: 50rpx;
|
||||
}
|
||||
.news_title .time{
|
||||
color: #777;
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
.news_title .tag{
|
||||
color: #e01f20;
|
||||
}
|
||||
|
||||
|
||||
.biaoti{
|
||||
color: #777777;
|
||||
height: 90rpx;
|
||||
line-height: 90rpx;
|
||||
margin-top: 20rpx; }
|
||||
.biaoti image{width: 35rpx;margin-right: 10rpx; margin-bottom: -6rpx;}
|
||||
.main{
|
||||
line-height: 60rpx;}
|
||||
.main .li{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
|
||||
.line{border:solid 3px #eee}.button-bottom {
|
||||
padding: 15upx 26upx;
|
||||
text-align: right;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.button-bottom .btn {
|
||||
margin-left: 20upx;
|
||||
}
|
||||
.ti{width:115px}
|
||||
</style>
|
||||
@ -1,8 +1,102 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<view style="overflow: hidden;">
|
||||
<view class="topBox">
|
||||
<view class="statusText">{{orderInfo.status_name}}</view>
|
||||
<view class="statusTip">{{orderInfo.order_status_content}}</view>
|
||||
</view>
|
||||
<view class="orderInfoBox" style="overflow: hidden;">
|
||||
<view class="viewBox">
|
||||
<view>货物信息</view>
|
||||
<view class="goodsInfo flex-between">
|
||||
<view class="infoLeft flex-center">
|
||||
<image src="/static/img/40.png" class="goodsImg"></image>
|
||||
<view style="margin-left: 22rpx;">
|
||||
<view class="text1">回收品类</view>
|
||||
<view class="text2">{{orderInfo.type_name}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="infoCenter">
|
||||
<view class="text1">数量</view>
|
||||
<view style="margin-top: 15rpx;">
|
||||
<text class="textIcon">x</text>
|
||||
<text class="textNum">{{orderInfo.quantity}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="infoRight">
|
||||
<view class="text1">单价</view>
|
||||
<view style="margin-top: 15rpx;">
|
||||
<text class="textIcon">¥</text>
|
||||
<text class="textNum">{{orderInfo.single_price}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="news_title">
|
||||
<view class="specsBox">
|
||||
<text class="specsText">规格:</text>
|
||||
<text>{{deelData(orderInfo.spec_value)}}</text>
|
||||
<!-- <text v-for="item in orderInfo.spec_value">{{item}}</text> -->
|
||||
<!-- <u-icon name="arrow-right" color="#282F38" size="10"></u-icon> -->
|
||||
</view>
|
||||
|
||||
<view class="countBox">
|
||||
<view class="text1">合计</view>
|
||||
<view style="margin-top: 0rpx;">
|
||||
<text class="textIcon">¥</text>
|
||||
<text class="textNum">{{orderInfo.price}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view v-show="orderInfo.person_name" class="infoWrap" style="border-radius: 30rpx;background: #fff;margin-top: 20rpx;">
|
||||
<view class="bgHead">
|
||||
回收员信息
|
||||
</view>
|
||||
<view class="infoBox">
|
||||
<text class="infoText1">{{orderInfo.person_name}}</text>
|
||||
<text class="infoText2">{{orderInfo.person_mobile}}</text>
|
||||
<view class="infoTip">平台已认证师傅资质,上门请校核是否本人上门</view>
|
||||
<view class="flex-center infoBtnBox" @click="callPhone(orderInfo.person_mobile)">
|
||||
<u-icon name="phone" color="#282F38" size="22" style="margin-right: 12rpx;margin-top: 5rpx;"></u-icon>
|
||||
联系师傅
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="infoWrap" style="border-radius: 30rpx;background: #fff;margin-top: 20rpx;">
|
||||
<view class="bgHead">
|
||||
用户信息
|
||||
</view>
|
||||
<view class="infoBox">
|
||||
<view style="border-bottom: 1px solid #DEDEDE;">
|
||||
<text class="infoText1">{{orderInfo.accept_name}}</text>
|
||||
<text class="infoText2">{{orderInfo.accept_mobile}}</text>
|
||||
<view class="infoAddress" style="margin-top: 10rpx;">{{orderInfo.area_name}}{{orderInfo.accept_address}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="infoWrap" style="border-radius: 30rpx;background: #fff;margin-top: 20rpx;">
|
||||
<view class="bgHead">
|
||||
预约上门时间
|
||||
<text class="infoTip2">待师傅与您确认哦~</text>
|
||||
</view>
|
||||
<view class="infoBox">
|
||||
<view class="flex-between">
|
||||
<text class="infoDate">请选择上门服务时间</text>
|
||||
<view class="infoTip3">此项由师傅填写</view>
|
||||
</view>
|
||||
<view class="infoAddress">期望上门时间:{{orderInfo.order_time}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="detailBox">
|
||||
<view>订单备注</view>
|
||||
<view class="detailText">{{orderInfo.remark}}</view>
|
||||
</view>
|
||||
<view class="detailBox">
|
||||
<view>订单信息</view>
|
||||
<view class="detailText">下单时间:{{orderInfo.order_time}}</view>
|
||||
<view class="detailText">订单编号:{{orderInfo.order_no}}</view>
|
||||
</view>
|
||||
|
||||
<!-- <view class="news_title">
|
||||
<view class="fsz30 overflow2 title tag">
|
||||
{{orderInfo.status_name||''}}
|
||||
</view>
|
||||
@ -91,12 +185,12 @@
|
||||
<view >{{orderInfo.jiedan_time||''}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<view style="height:100px"></view>
|
||||
</view>
|
||||
<view class="button-bottom" v-if="orderInfo.status==1 || orderInfo.status==2">
|
||||
<button class='btn btn-default' v-if="orderInfo.status == 1 || orderInfo.status == 2" @click="cancelOrder()">取消订单</button>
|
||||
|
||||
<button class='btn btn-default flex-center' v-if="orderInfo.status == 1 || orderInfo.status == 2" @click="cancelOrder()">取消订单</button>
|
||||
<view class="buttonEdit flex-center">修改订单</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
@ -114,6 +208,33 @@ export default {
|
||||
this.getOrderDetail();
|
||||
},
|
||||
methods: {
|
||||
callPhone(phoneNumber) {
|
||||
uni.makePhoneCall({
|
||||
phoneNumber: phoneNumber, // 必需,电话号码字符串
|
||||
success: (res) => {
|
||||
console.log("拨号成功", res);
|
||||
},
|
||||
fail: (err) => {
|
||||
console.error("拨号失败", err);
|
||||
}
|
||||
});
|
||||
},
|
||||
deelData(val){
|
||||
console.log(val)
|
||||
let str = ''
|
||||
let index = 1
|
||||
for(let key in val){
|
||||
console.log(key)
|
||||
if(index>1){
|
||||
str += ' | ' + key+':'+val[key]
|
||||
}else{
|
||||
str += key+':'+val[key]
|
||||
}
|
||||
index++
|
||||
}
|
||||
console.log(str)
|
||||
return str
|
||||
},
|
||||
cancelOrder() {
|
||||
uni.showModal({
|
||||
title:'提示',
|
||||
@ -168,7 +289,9 @@ export default {
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
page{
|
||||
background: #F5F5FA;
|
||||
}
|
||||
|
||||
.news_title{
|
||||
border-bottom: 1px solid #eee;
|
||||
@ -208,10 +331,256 @@ export default {
|
||||
padding: 15upx 26upx;
|
||||
text-align: right;
|
||||
display: block;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
height: unset;
|
||||
}
|
||||
.buttonEdit{
|
||||
width: 224rpx;
|
||||
height: 90rpx;
|
||||
background: #FFFFFF;
|
||||
border-radius: 45rpx;
|
||||
border: 1px solid #FB8F0C;
|
||||
font-weight: 500;
|
||||
font-size: 30rpx;
|
||||
color: #FB8F0C;
|
||||
}
|
||||
|
||||
.button-bottom .btn {
|
||||
margin-left: 20upx;
|
||||
width: 224rpx!important;
|
||||
height: 90rpx;
|
||||
background: #FFFFFF;
|
||||
border-radius: 45rpx;
|
||||
border: 1px solid #FB8F0C;
|
||||
font-weight: 500;
|
||||
font-size: 30rpx;
|
||||
color: #FB8F0C;
|
||||
flex: unset;
|
||||
}
|
||||
.ti{width:115px}
|
||||
|
||||
.topBox{
|
||||
width: 100%;
|
||||
height: 280rpx;
|
||||
background: linear-gradient(0deg, #F5F5FA 0%, #FFF3D5 100%);
|
||||
padding: 0 72rpx;
|
||||
overflow: hidden;
|
||||
}
|
||||
.statusText{
|
||||
font-weight: bold;
|
||||
font-size: 36rpx;
|
||||
color: #413A2A;
|
||||
margin-top: 52rpx;
|
||||
}
|
||||
.statusTip{
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #A69879;
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
|
||||
|
||||
.orderInfoBox{
|
||||
padding: 0 35rpx;
|
||||
margin-top: -80rpx;
|
||||
}
|
||||
|
||||
.viewBox{
|
||||
background: #fff;
|
||||
border-radius: 30rpx;
|
||||
padding: 35rpx;
|
||||
.goodsInfo{
|
||||
margin-top: 32rpx;
|
||||
background: #FFF9F5;
|
||||
border-radius: 20rpx;
|
||||
padding: 14rpx 16rpx;
|
||||
padding-right: 35rpx;
|
||||
.infoLeft{
|
||||
.goodsImg{
|
||||
width: 80rpx;
|
||||
height: 80rpx;
|
||||
}
|
||||
.text1{
|
||||
font-weight: 500;
|
||||
font-size: 22rpx;
|
||||
color: #333333;
|
||||
}
|
||||
.text2{
|
||||
font-weight: 500;
|
||||
font-size: 30rpx;
|
||||
color: #333333;
|
||||
margin-top: 15rpx;
|
||||
}
|
||||
}
|
||||
.infoCenter{
|
||||
.text1{
|
||||
font-weight: 500;
|
||||
font-size: 22rpx;
|
||||
color: #333333;
|
||||
}
|
||||
.textIcon{
|
||||
font-weight: 500;
|
||||
font-size: 30rpx;
|
||||
color: #333333;
|
||||
}
|
||||
.textNum{
|
||||
font-weight: 500;
|
||||
font-size: 30rpx;
|
||||
color: #333333;
|
||||
margin-left: 7rpx;
|
||||
}
|
||||
}
|
||||
.infoRight{
|
||||
.text1{
|
||||
font-weight: 500;
|
||||
font-size: 22rpx;
|
||||
color: #333333;
|
||||
text-align: center;
|
||||
}
|
||||
.textIcon{
|
||||
font-weight: 500;
|
||||
font-size: 24rpx;
|
||||
color: #ED6343;
|
||||
}
|
||||
.textNum{
|
||||
font-weight: 500;
|
||||
font-size: 36rpx;
|
||||
color: #ED6343;
|
||||
margin-left: 7rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.specsBox{
|
||||
height: 70rpx;
|
||||
background: #FFF7F7;
|
||||
border-radius: 20rpx;
|
||||
margin-top: 10rpx;
|
||||
font-weight: 500;
|
||||
font-size: 22rpx;
|
||||
color: #333333;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
padding-left: 33rpx;
|
||||
.specsText{
|
||||
font-weight: 500;
|
||||
font-size: 22rpx;
|
||||
color: #333333;
|
||||
margin-right: 18rpx;
|
||||
margin-top: -5rpx;
|
||||
}
|
||||
}
|
||||
.countBox{
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
// align-items: flex-end;
|
||||
align-items: center;
|
||||
margin-top: 15rpx;
|
||||
padding-left: 10rpx;
|
||||
.text1{
|
||||
font-weight: 500;
|
||||
font-size: 22rpx;
|
||||
color: #333333;
|
||||
text-align: center;
|
||||
margin-right: 14rpx;
|
||||
margin-top: 7rpx;
|
||||
}
|
||||
.textIcon{
|
||||
font-weight: 500;
|
||||
font-size: 24rpx;
|
||||
color: #ED6343;
|
||||
}
|
||||
.textNum{
|
||||
font-weight: 500;
|
||||
font-size: 36rpx;
|
||||
color: #ED6343;
|
||||
margin-left: 7rpx;
|
||||
}
|
||||
}
|
||||
.infoWrap{
|
||||
.bgHead{
|
||||
height: 108rpx;
|
||||
line-height: 108rpx;
|
||||
background: linear-gradient(180deg, #FFFAF5 0%, #FFFFFF 100%);
|
||||
border-radius: 30rpx 30rpx 0rpx 0rpx;
|
||||
padding-left: 41rpx;
|
||||
font-weight: bold;
|
||||
font-size: 30rpx;
|
||||
color: #333333;
|
||||
.infoTip2{
|
||||
font-weight: 400;
|
||||
font-size: 22rpx;
|
||||
color: #FF7F18;
|
||||
margin-left: 38rpx;
|
||||
}
|
||||
}
|
||||
.infoBox{
|
||||
padding: 0 39rpx 45rpx;
|
||||
margin-top: -5rpx;
|
||||
.infoText1{
|
||||
font-weight: bold;
|
||||
font-size: 32rpx;
|
||||
color: #333333;
|
||||
}
|
||||
.infoText2{
|
||||
font-weight: bold;
|
||||
font-size: 32rpx;
|
||||
color: #333333;
|
||||
margin-left: 28rpx;
|
||||
}
|
||||
.infoAddress{
|
||||
font-weight: 300;
|
||||
font-size: 22rpx;
|
||||
color: #95979B;
|
||||
// font-weight: 300;
|
||||
// font-size: 28rpx;
|
||||
// color: #95979B;
|
||||
// margin-top: 30rpx;
|
||||
}
|
||||
.infoTip{
|
||||
font-weight: 400;
|
||||
font-size: 22rpx;
|
||||
color: #E4AA45;
|
||||
margin-top: 12rpx;
|
||||
border-bottom: 1px solid #DEDEDE;
|
||||
padding-bottom: 29rpx;
|
||||
}
|
||||
.infoDate{
|
||||
font-weight: 400;
|
||||
font-size: 32rpx;
|
||||
color: #999999;
|
||||
}
|
||||
.infoTip3{
|
||||
background: #FFF4ED;
|
||||
border-radius: 10rpx;
|
||||
font-weight: 400;
|
||||
font-size: 22rpx;
|
||||
color: #FF7F18;
|
||||
padding: 16rpx 11rpx;
|
||||
}
|
||||
.infoBtnBox{
|
||||
font-weight: 400;
|
||||
font-size: 32rpx;
|
||||
color: #333333;
|
||||
margin-top: 41rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
.detailBox{
|
||||
padding: 45rpx 37rpx 60rpx;
|
||||
border-radius: 30rpx;
|
||||
background: #fff;
|
||||
margin-top: 20rpx;
|
||||
font-weight: bold;
|
||||
font-size: 30rpx;
|
||||
color: #333333;
|
||||
.detailText{
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #333333;
|
||||
margin-top: 41rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
608
pages/order/pay.vue
Normal file
608
pages/order/pay.vue
Normal file
@ -0,0 +1,608 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<view style="padding: 0 0rpx;">
|
||||
<view class="moduleBox">
|
||||
<view class="moduleLabel">支付方式</view>
|
||||
<view class="flex-between" style="margin-top: 46rpx;">
|
||||
<view class="flex-center">
|
||||
<image src="/static/img/41.png" class="icon1"></image>
|
||||
<view class="text1">线下支付</view>
|
||||
</view>
|
||||
<image v-if="!upPayCheck" :src="path+'/assets/img/icon/noSelected.png'" @click="upPayClick" class="img1"></image>
|
||||
<image v-else :src="path+'/assets/img/icon/selected.png'" @click="upPayClick" class="img1"></image>
|
||||
</view>
|
||||
<view class="flex-between" style="margin-top: 46rpx;margin-bottom: 20rpx;">
|
||||
<view class="flex-center">
|
||||
<image src="/static/img/41.png" class="icon1"></image>
|
||||
<view class="text1">线上支付</view>
|
||||
</view>
|
||||
<image v-if="!downPayCheck" :src="path+'/assets/img/icon/noSelected.png'" @click="downPayClick" class="img1"></image>
|
||||
<image v-else :src="path+'/assets/img/icon/selected.png'" @click="downPayClick" class="img1"></image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="moduleBox">
|
||||
<view class="moduleLabel">
|
||||
支付方式
|
||||
<text class="text2">请上传支付记录截图或照片</text>
|
||||
</view>
|
||||
<view style="margin-top: 35rpx;">
|
||||
<commonUpload></commonUpload>
|
||||
</view>
|
||||
</view>
|
||||
<view class="moduleBox2">
|
||||
<view class="moduleBox3">
|
||||
<view class="moduleLabel">
|
||||
回收价格
|
||||
</view>
|
||||
<view style="line-height: 39rpx;margin-top: 46rpx;">
|
||||
<text class="text3">平台预估费用</text>
|
||||
<text class="text4">¥</text>
|
||||
<text class="text5">323</text>
|
||||
</view>
|
||||
<view class="text3" style="margin-top: 46rpx;">实际结算费用</view>
|
||||
<view class="flex-between" style="margin-top: 36rpx;">
|
||||
<view>
|
||||
<text class="text6">¥</text>
|
||||
<text class="text7">323</text>
|
||||
</view>
|
||||
<image :src="path+'/assets/img/icon/edit2.png'" class="img2"></image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="payLable">
|
||||
<view>费用说明:</view>
|
||||
<view>实际结算费用包含支付用户商品货款+平台技术服务费</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="moduleBox">
|
||||
<view class="moduleLabel">
|
||||
货物图片
|
||||
<text class="text2">请上传回收货物照片</text>
|
||||
</view>
|
||||
<view style="margin-top: 35rpx;">
|
||||
<commonUpload></commonUpload>
|
||||
</view>
|
||||
</view>
|
||||
<view style="height:130px"></view>
|
||||
<view class="footer">
|
||||
<view class="protBox">
|
||||
<image v-if="!isRead" @click="selectRead" :src="path+'/assets/img/icon/noSelected.png'"></image>
|
||||
<image v-else @click="selectRead" :src="path+'/assets/img/icon/selected.png'"></image>
|
||||
<text>我已阅读并同意</text>
|
||||
<text class="protText" @click="toshow()">《用户回收协议》</text>
|
||||
</view>
|
||||
<!-- <view class="fsz28" @click="toshow()">
|
||||
<view>下单即同意</view>
|
||||
<view style="color: #31b977;">《回收协议》</view>
|
||||
</view> -->
|
||||
<view>
|
||||
<view class="evalueBox">
|
||||
<text class="text1">合计预估</text>
|
||||
<text class="text2">结算金额以实际为准</text>
|
||||
</view>
|
||||
<view class="priceBox" :style="{opacity: evaluate?1:0}">
|
||||
<text class="text1">¥</text>
|
||||
<text class="text2">{{evaluate}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="btn btn-default" @click="createOrder()" >去下单</view>
|
||||
</view>
|
||||
|
||||
<lvv-popup position="bottom" ref="lvvpopref">
|
||||
<view style="width: 100%;height: 700upx;background: #F8F8F8;;position: absolute;left:0;bottom: 0;">
|
||||
<view class="pop-c">
|
||||
<view class="pop-t">
|
||||
<view class='li-b '>
|
||||
<view class='li-b-hd'>
|
||||
回收免责条款
|
||||
</view>
|
||||
<view class='li-b-ft'
|
||||
@click="toclose()">
|
||||
<image class='icon' src='/static/img/close.png'></image>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="neirong">
|
||||
<text style="white-space: pre-wrap;font-size: 28rpx;color: #4c4c4c;">{{xieyi}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</lvv-popup>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import lvvPopup from '@/components/lvv-popup/lvv-popup.vue';
|
||||
import commonUpload from '@/components/commonUpload.vue'
|
||||
import util from '../../common/util.js'
|
||||
export default {
|
||||
components: { lvvPopup,commonUpload },
|
||||
data() {
|
||||
return {
|
||||
useraddress:{},
|
||||
id:0,
|
||||
xieyi:'',
|
||||
address_id:0,
|
||||
weight:-1 ,
|
||||
typeinfo:'',
|
||||
detail:[],
|
||||
remark:'',
|
||||
weightlist:[],
|
||||
index:[0,0],
|
||||
timeflag:'',
|
||||
yuyue_time:[],
|
||||
typelist: [],
|
||||
typeShow: false,
|
||||
value1: '',
|
||||
recyclingType: {},
|
||||
specifications: [],
|
||||
addressInfo: {},
|
||||
toDoorShow: false,
|
||||
showTime: Number(new Date()),
|
||||
toDoorTime: '',
|
||||
notesText: '',
|
||||
specsList: [],
|
||||
quantity: '',
|
||||
path: this.path,
|
||||
isRead: false,
|
||||
evaluate: '',
|
||||
|
||||
upPayCheck: false,
|
||||
downPayCheck: false
|
||||
}
|
||||
},
|
||||
onShow() {
|
||||
this.getdata()
|
||||
let user_address = uni.getStorageSync('user_address');
|
||||
|
||||
if (user_address) {
|
||||
this.useraddress = user_address;
|
||||
this.address_id = user_address.id;
|
||||
uni.removeStorageSync('user_address');
|
||||
}
|
||||
},
|
||||
onHide() {
|
||||
},
|
||||
onLoad(options) {
|
||||
this.id = options.id;
|
||||
if(options.id){
|
||||
this.recyclingType.id = options.id;
|
||||
}
|
||||
this.getdata()
|
||||
this.getTypeData()
|
||||
var token = uni.getStorageSync('userToken');
|
||||
if (token) {
|
||||
this.userDefaultaddress();
|
||||
}
|
||||
|
||||
},
|
||||
onReachBottom (){
|
||||
|
||||
},
|
||||
methods: {
|
||||
upPayClick(){
|
||||
this.upPayCheck = !this.upPayCheck
|
||||
},
|
||||
downPayClick(){
|
||||
this.downPayCheck = !this.downPayCheck
|
||||
},
|
||||
selectRead(){
|
||||
this.isRead = !this.isRead;
|
||||
},
|
||||
doorTimeClick(){
|
||||
this.toDoorShow = true;
|
||||
// if(!this.toDoorTime){
|
||||
// this.showTime = util.formatDate(new Date(),'YYYY-MM-DD')
|
||||
// }
|
||||
},
|
||||
confirmTime(data){
|
||||
console.log(data)
|
||||
this.showTime = data.value;
|
||||
this.toDoorTime = util.formatDate(data.value,'YYYY-MM-DD HH:mm')
|
||||
this.toDoorShow = false;
|
||||
},
|
||||
cancelClick(){
|
||||
this.toDoorShow = false;
|
||||
},
|
||||
openSelect(item,index) {
|
||||
this.specifications[index].show = true;
|
||||
console.log(index, this.specifications[index])
|
||||
},
|
||||
selectConfirm(value,item,index) {
|
||||
console.log(value,item,index, 'dddddddddww')
|
||||
this.specifications[index].select = {
|
||||
key: item.name,
|
||||
val: value.value[0]
|
||||
}
|
||||
this.specifications[index].show = false;
|
||||
console.log(this.specifications)
|
||||
this.getPrice()
|
||||
},
|
||||
selectType(val) {
|
||||
console.log(val.value[0])
|
||||
this.recyclingType = val.value[0]
|
||||
this.typeShow = false
|
||||
this.getTypeSpecs(val.value[0].name)
|
||||
},
|
||||
getTypeData(){
|
||||
let data = {
|
||||
}
|
||||
this.$api.indexpage(data,res=>{
|
||||
if(res.code == '1'){
|
||||
this.typelist = [res.data.type]
|
||||
res.data.type.some((item,index)=>{
|
||||
if(item.id == this.recyclingType.id){
|
||||
this.recyclingType = item;
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
getTypeSpecs(name){
|
||||
// /api/recover/recover/type_specs
|
||||
this.$api.type_specs({type_name: name}, res => {
|
||||
if (res.code ==1) {
|
||||
if(res.data){
|
||||
// this.useraddress = res.data;
|
||||
// this.address_id = this.useraddress.id;
|
||||
console.log(res.data,'dddd')
|
||||
this.specsList = res.data.specs;
|
||||
for (let key in res.data.specArr) {
|
||||
this.specifications.push({
|
||||
name: key,
|
||||
arr: res.data.specArr[key],
|
||||
show: false,
|
||||
select: {}
|
||||
})
|
||||
}
|
||||
console.log(this.specifications)
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
},
|
||||
userDefaultaddress() {
|
||||
this.$api.userDefaultAddress({}, res => {
|
||||
if (res.code ==1) {
|
||||
if(res.data){
|
||||
this.useraddress = res.data;
|
||||
this.address_id = this.useraddress.id;
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
},
|
||||
goAddress() {
|
||||
var token = uni.getStorageSync('userToken');
|
||||
if (!token) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/login/authorize'
|
||||
});
|
||||
}else{
|
||||
uni.navigateTo({
|
||||
url: '/pages/address/list?type=order'
|
||||
});
|
||||
}
|
||||
},
|
||||
toshow() {
|
||||
this.$refs.lvvpopref.show();
|
||||
},
|
||||
toclose() {
|
||||
this.$refs.lvvpopref.close();
|
||||
},
|
||||
changeWeight(e){
|
||||
this.weight=e;console.log(e);
|
||||
},
|
||||
bindPickerChange(e) {
|
||||
this.index = e.detail.value
|
||||
let left = e.detail.value[0]
|
||||
let right = e.detail.value[1]
|
||||
if(this.yuyue_time[1].length ==0){
|
||||
this.timeflag = this.yuyue_time[0][left]
|
||||
}else{
|
||||
this.timeflag = this.yuyue_time[0][left] +'-'+this.yuyue_time[1][right]
|
||||
}
|
||||
},
|
||||
getdata(){
|
||||
let data = {
|
||||
id:this.id
|
||||
}
|
||||
this.$api.typeinit(data,res=>{
|
||||
if(res.code == '1'){
|
||||
this.yuyue_time = res.data.yuyue_time
|
||||
this.typeinfo= res.data.typeinfo
|
||||
this.weightlist= res.data.weight
|
||||
this.detail= res.data.detail
|
||||
this.xieyi=res.data.xieyi
|
||||
}
|
||||
})
|
||||
},
|
||||
areObjectsEqual(obj1, obj2) {
|
||||
const keys1 = Object.keys(obj1);
|
||||
const keys2 = Object.keys(obj2);
|
||||
if (keys1.length !== keys2.length) {
|
||||
return false;
|
||||
}
|
||||
for (let key of keys1) {
|
||||
if (obj1[key] !== obj2[key]) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
},
|
||||
getPrice(){
|
||||
let selecObj = {}
|
||||
this.specifications.some((item,index)=>{
|
||||
selecObj[item.select.key] = item.select.val
|
||||
})
|
||||
let priceId = ''
|
||||
this.specsList.some((item,index)=>{
|
||||
if(this.areObjectsEqual(item.spec_data,selecObj)){
|
||||
priceId = item.id
|
||||
if(this.quantity){
|
||||
this.evaluate = item.current_price*this.quantity
|
||||
}else{
|
||||
this.evaluate = ''
|
||||
}
|
||||
}
|
||||
})
|
||||
return priceId
|
||||
},
|
||||
createOrder(){
|
||||
console.log(this.specifications,'fff')
|
||||
if(!this.isRead){
|
||||
uni.showToast({ icon: "none", title: '请勾选用户回收协议' })
|
||||
return false;
|
||||
}
|
||||
// let selecObj = {}
|
||||
// this.specifications.some((item,index)=>{
|
||||
// selecObj[item.select.key] = item.select.val
|
||||
// })
|
||||
// let priceId = ''
|
||||
// this.specsList.some((item,index)=>{
|
||||
// if(this.areObjectsEqual(item.spec_data,selecObj)){
|
||||
// priceId = item.id
|
||||
// }
|
||||
// })
|
||||
let priceId = this.getPrice
|
||||
// console.log(selecObj,priceId);
|
||||
// if(this.weight =='-1'){
|
||||
// uni.showToast({ icon: "none", title: '请选择预约重量' })
|
||||
// return false;
|
||||
// }if(this.address_id ==0 || !this.address_id ){
|
||||
// uni.showToast({ icon: "none", title: '请选择回收地址' })
|
||||
// return false;
|
||||
// } if(this.timeflag ==''){
|
||||
// uni.showToast({ icon: "none", title: '请选择回收时间' })
|
||||
// return false;
|
||||
// }
|
||||
let data = {
|
||||
id: this.recyclingType.id,//this.id,
|
||||
order_time: this.toDoorTime,//this.timeflag,
|
||||
// weight:this.weightlist[this.weight],
|
||||
address_id: this.useraddress.id,//this.address_id,
|
||||
remark: this.notesText, //this.remark,
|
||||
specsId: priceId,
|
||||
quantity: this.quantity
|
||||
}
|
||||
console.log(data,'gggggg')
|
||||
// return;
|
||||
this.$api.addorder(data,res=>{
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: 'none'
|
||||
})
|
||||
if(res.code == '1'){
|
||||
|
||||
setTimeout(function() {
|
||||
uni.switchTab({
|
||||
url: '/pages/order/order'
|
||||
})
|
||||
}, 1500)
|
||||
} else {
|
||||
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
page {
|
||||
background: #eee;
|
||||
}
|
||||
|
||||
.footer{
|
||||
padding: 20upx 30upx 30upx;
|
||||
justify-content: space-between;
|
||||
display:flex;
|
||||
background-color: #FFFFFF;position: fixed;
|
||||
width: 100%;
|
||||
bottom: 0px;z-index: 90;
|
||||
border:solid 1px #eee;
|
||||
}
|
||||
.footer .fsz28{
|
||||
text-align:center
|
||||
}
|
||||
.footer .btn{ background-color: #fe5047;
|
||||
color: #ffffff;
|
||||
height: 80rpx;
|
||||
line-height: 80rpx;
|
||||
font-size: 28rpx;
|
||||
// border: solid 1px #fe5047;width: 132px;
|
||||
width: 224rpx;
|
||||
background: linear-gradient(45deg, #FFAD38 0%, #FF9023 100%);
|
||||
border-radius: 45rpx;
|
||||
border: none;
|
||||
}
|
||||
.protBox{
|
||||
width: 100%;
|
||||
height: 60rpx;
|
||||
line-height: 60rpx;
|
||||
background: #F8F4F0;
|
||||
position: absolute;
|
||||
top: -60rpx;
|
||||
left: 0;
|
||||
font-weight: 500;
|
||||
font-size: 24rpx;
|
||||
color: #333333;
|
||||
padding-left: 40rpx;
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
image{
|
||||
width: 24rpx;
|
||||
height: 24rpx;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
.protText{
|
||||
color: #FF852C;
|
||||
}
|
||||
}
|
||||
.evalueBox{
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
.text1{
|
||||
font-weight: bold;
|
||||
font-size: 28rpx;
|
||||
color: #333333;
|
||||
}
|
||||
.text2{
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #999999;
|
||||
margin-left: 22rpx;
|
||||
}
|
||||
}
|
||||
.priceBox{
|
||||
margin-top: 6rpx;
|
||||
.text1{
|
||||
font-weight: 500;
|
||||
font-size: 30rpx;
|
||||
color: #FF852C;
|
||||
}
|
||||
.text2{
|
||||
font-weight: bold;
|
||||
font-size: 40rpx;
|
||||
color: #FF852C;
|
||||
margin-left: 9rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.moduleBox2{
|
||||
margin: 20rpx 36rpx;
|
||||
background: #fff;
|
||||
border-radius: 30rpx;
|
||||
background: #FFF9F0;
|
||||
}
|
||||
.moduleBox3{
|
||||
padding: 31rpx 35rpx 40rpx;
|
||||
border-radius: 20rpx;
|
||||
background: #fff;
|
||||
.moduleLabel{
|
||||
font-weight: bold;
|
||||
font-size: 30rpx;
|
||||
color: #282F38;
|
||||
}
|
||||
.text3{
|
||||
font-weight: 500;
|
||||
font-size: 28rpx;
|
||||
color: #282F38;
|
||||
}
|
||||
.text4{
|
||||
font-weight: 500;
|
||||
font-size: 30rpx;
|
||||
color: #333333;
|
||||
margin-left: 28rpx;
|
||||
}
|
||||
.text5{
|
||||
font-weight: bold;
|
||||
font-size: 36rpx;
|
||||
color: #333333;
|
||||
}
|
||||
.img2{
|
||||
width: 28rpx;
|
||||
height: 28rpx;
|
||||
}
|
||||
.text6{
|
||||
font-weight: 500;
|
||||
font-size: 30rpx;
|
||||
color: #FF852C;
|
||||
}
|
||||
.text7{
|
||||
font-weight: bold;
|
||||
font-size: 40rpx;
|
||||
color: #FF852C;
|
||||
}
|
||||
}
|
||||
.moduleBox{
|
||||
margin: 20rpx 36rpx;
|
||||
background: #fff;
|
||||
border-radius: 30rpx;
|
||||
padding: 31rpx 35rpx 40rpx;
|
||||
.moduleLabel{
|
||||
font-weight: bold;
|
||||
font-size: 30rpx;
|
||||
color: #282F38;
|
||||
}
|
||||
.icon1{
|
||||
width: 26rpx;
|
||||
height: 26rpx;
|
||||
}
|
||||
.img1{
|
||||
width: 30rpx;
|
||||
height: 30rpx;
|
||||
}
|
||||
.text1{
|
||||
font-weight: bold;
|
||||
font-size: 28rpx;
|
||||
color: #282F38;
|
||||
margin-left: 16rpx;
|
||||
}
|
||||
.text2{
|
||||
font-weight: 500;
|
||||
font-size: 28rpx;
|
||||
color: #95979B;
|
||||
margin-left: 22rpx;
|
||||
}
|
||||
.text3{
|
||||
font-weight: 500;
|
||||
font-size: 28rpx;
|
||||
color: #282F38;
|
||||
}
|
||||
.text4{
|
||||
font-weight: 500;
|
||||
font-size: 30rpx;
|
||||
color: #333333;
|
||||
margin-left: 28rpx;
|
||||
}
|
||||
.text5{
|
||||
font-weight: bold;
|
||||
font-size: 36rpx;
|
||||
color: #333333;
|
||||
}
|
||||
.img2{
|
||||
width: 28rpx;
|
||||
height: 28rpx;
|
||||
}
|
||||
.text6{
|
||||
font-weight: 500;
|
||||
font-size: 30rpx;
|
||||
color: #FF852C;
|
||||
}
|
||||
.text7{
|
||||
font-weight: bold;
|
||||
font-size: 40rpx;
|
||||
color: #FF852C;
|
||||
}
|
||||
}
|
||||
.payLable{
|
||||
font-weight: 400;
|
||||
font-size: 26rpx;
|
||||
color: #FF9526;
|
||||
padding: 33rpx;
|
||||
}
|
||||
</style>
|
||||
116
pages/question/index-.vue
Normal file
116
pages/question/index-.vue
Normal file
@ -0,0 +1,116 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<view class="problem " v-if="list.length > 0">
|
||||
<view class="problem_main">
|
||||
<view class="li" v-for="(item,index) in list" :key="index" @click="show(index)">
|
||||
<view class="left">
|
||||
<view class="left_2">{{item.name}}</view>
|
||||
<view class="left_1" >
|
||||
<image v-if="item.is_show==1" class="icon" src="/static/img/up.png" mode=""></image>
|
||||
<image v-if="item.is_show==0" class="icon" src="/static/img/down.png" mode=""></image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="left " v-if="item.is_show==1">
|
||||
<view class="left_3"><text style="white-space: pre-wrap;line-height: 20px;">{{item.content}}</text></view>
|
||||
</view>
|
||||
</view>
|
||||
<uni-load-more :status="loadmore" :content-text="contentText" />
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="zanwuimg" v-if="list.length == 0">
|
||||
<image src="../../static/img/null.png" mode="widthFix"></image>
|
||||
<view>暂无相关数据</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default{
|
||||
data(){
|
||||
return{
|
||||
list:[],
|
||||
ifBottomRefresh:false,
|
||||
loadmore: 'more',
|
||||
contentText: {
|
||||
contentdown: '查看更多',
|
||||
contentrefresh: '加载中',
|
||||
contentnomore: ''
|
||||
},
|
||||
}
|
||||
},
|
||||
onLoad(e) {
|
||||
this.getdata()
|
||||
},
|
||||
onShow() {
|
||||
},
|
||||
onReachBottom() {
|
||||
this.page += 1
|
||||
if (this.loadmore == 'noMore') return
|
||||
this.ifBottomRefresh = true
|
||||
this.getData()
|
||||
},
|
||||
methods:{
|
||||
show(index){
|
||||
var list = this.list;
|
||||
list.forEach((item,index2) => {
|
||||
if(index == index2){
|
||||
list[index2].is_show = item.is_show==1 ? 0: 1;
|
||||
}
|
||||
})
|
||||
this.list = list;
|
||||
},
|
||||
getdata(){
|
||||
let data={page:this.page}
|
||||
this.$api.question_list(data,res=>{
|
||||
if(res.code == '1'){
|
||||
this.list= this.list.concat(res.data.list.data)
|
||||
this.loadmore = this.list.length < res.data.list.total ? 'more' : 'noMore'
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
page{
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.problem{
|
||||
background-color: #fff;
|
||||
.problem_main{
|
||||
width: 92%;
|
||||
margin: 0 auto;padding-bottom: 10px;
|
||||
|
||||
.li{
|
||||
padding-top: 20rpx;
|
||||
border-bottom: 1px solid #eee;
|
||||
.left{
|
||||
overflow: hidden;
|
||||
margin-bottom: 20rpx;
|
||||
.left_1{
|
||||
float: left;
|
||||
height: 4vh;
|
||||
width: 4vh;
|
||||
}
|
||||
.left_2{
|
||||
font-size: 30rpx;
|
||||
float:left;
|
||||
width: 90%;
|
||||
}
|
||||
.left_3{
|
||||
font-size: 24rpx;
|
||||
float:left;
|
||||
width: 92%;color: #676767;padding-left: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
.li:last-child{
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -1,23 +1,39 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<view class="problem " v-if="list.length > 0">
|
||||
<view class="problem_main">
|
||||
<view class="li" v-for="(item,index) in list" :key="index" @click="show(index)">
|
||||
<view class="left">
|
||||
<view class="left_2">{{item.name}}</view>
|
||||
<view class="left_1" >
|
||||
<image v-if="item.is_show==1" class="icon" src="/static/img/up.png" mode=""></image>
|
||||
<image v-if="item.is_show==0" class="icon" src="/static/img/down.png" mode=""></image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="left " v-if="item.is_show==1">
|
||||
<view class="left_3"><text style="white-space: pre-wrap;line-height: 20px;">{{item.content}}</text></view>
|
||||
</view>
|
||||
</view>
|
||||
<uni-load-more :status="loadmore" :content-text="contentText" />
|
||||
<view class="problem " v-if="list.length > 0">
|
||||
<view class="problem_main">
|
||||
<view class="li" v-for="(item,index) in list" :key="index" @click="show(index)">
|
||||
<view class="left frex-start">
|
||||
<view class="zmLable">Q</view>
|
||||
<view class="left_2 rightContent">{{item.name}}</view>
|
||||
<!-- <view class="left_1" >
|
||||
<image v-if="item.is_show==1" class="icon" src="/static/img/up.png" mode=""></image>
|
||||
<image v-if="item.is_show==0" class="icon" src="/static/img/down.png" mode=""></image>
|
||||
</view> -->
|
||||
</view>
|
||||
<view class="frex-start">
|
||||
<view class="zmLable">A</view>
|
||||
<view class="rightContent">
|
||||
<lookMore :content="item.content"></lookMore>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="textBox" @click="getH">
|
||||
{{item.content}}
|
||||
</view> -->
|
||||
<!-- <u-read-more>
|
||||
<rich-text :nodes="content" :showHeight="30"></rich-text>
|
||||
</u-read-more> -->
|
||||
<!-- <u-read-more ref="uReadMore">
|
||||
<u-parse :content="item.content" @load="load"></u-parse>
|
||||
</u-read-more> -->
|
||||
<!-- <view class="left " v-if="item.is_show==1">
|
||||
<view class="left_3"><text style="white-space: pre-wrap;line-height: 20px;">{{item.content}}</text></view>
|
||||
</view> -->
|
||||
</view>
|
||||
<!-- <uni-load-more :status="loadmore" :content-text="contentText" /> -->
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<uni-load-more :status="loadmore" :content-text="contentText" />
|
||||
<view class="zanwuimg" v-if="list.length == 0">
|
||||
<image src="../../static/img/null.png" mode="widthFix"></image>
|
||||
<view>暂无相关数据</view>
|
||||
@ -36,7 +52,7 @@
|
||||
contentdown: '查看更多',
|
||||
contentrefresh: '加载中',
|
||||
contentnomore: ''
|
||||
},
|
||||
}
|
||||
}
|
||||
},
|
||||
onLoad(e) {
|
||||
@ -50,7 +66,16 @@
|
||||
this.ifBottomRefresh = true
|
||||
this.getData()
|
||||
},
|
||||
methods:{
|
||||
methods:{
|
||||
getH(){
|
||||
const query = uni.createSelectorQuery().in(this);
|
||||
query.select('.textBox').boundingClientRect(({ height }) => {
|
||||
console.log('square_giant的高度是:' + height + 'px');
|
||||
}).exec();
|
||||
},
|
||||
load() {
|
||||
this.$refs.uReadMore.init();
|
||||
},
|
||||
show(index){
|
||||
var list = this.list;
|
||||
list.forEach((item,index2) => {
|
||||
@ -75,11 +100,17 @@
|
||||
|
||||
<style lang="scss">
|
||||
page{
|
||||
background: #fff;
|
||||
// background: #fff;
|
||||
background: rgb(245,245,250);
|
||||
}
|
||||
|
||||
.content{
|
||||
padding: 20rpx 35rpx;
|
||||
}
|
||||
.problem{
|
||||
background-color: #fff;
|
||||
background-color: #fff;
|
||||
border-radius: 30rpx;
|
||||
padding-top: 15rpx;
|
||||
padding-bottom: 17rpx;
|
||||
.problem_main{
|
||||
width: 92%;
|
||||
margin: 0 auto;padding-bottom: 10px;
|
||||
@ -113,4 +144,40 @@ page{
|
||||
}
|
||||
}
|
||||
}
|
||||
.articleBox{
|
||||
padding: 29rpx 24rpx 38rpx 35rpx;
|
||||
.articleInfo{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: flex-start;
|
||||
.articleTitle{
|
||||
margin-top: 10rpx;
|
||||
font-weight: bold;
|
||||
font-size: 30rpx;
|
||||
color: #282F38;
|
||||
width: 350rpx;
|
||||
}
|
||||
img{
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
}
|
||||
.articleData{
|
||||
font-size: 24rpx;
|
||||
color: #999999;
|
||||
margin-top: 36rpx;
|
||||
}
|
||||
}
|
||||
.zmLable{
|
||||
color: #FB8F0C;
|
||||
font-weight: 800;
|
||||
// margin-right: 15rpx;
|
||||
width: 38rpx;
|
||||
}
|
||||
.frex-start{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.rightContent{
|
||||
width: calc(100% - 38rpx)
|
||||
}
|
||||
</style>
|
||||
Loading…
x
Reference in New Issue
Block a user