'订单详情'
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>
|
||||||
@ -99,3 +99,7 @@ export const question_list = (data, callback) => post('api/recover/recover/quest
|
|||||||
export const recycleOrderList = (data, callback) => post('api/recover/person/orderlist', 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 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": "代理加盟",
|
"navigationBarTitleText": "代理加盟",
|
||||||
"enablePullDownRefresh": false
|
"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": {
|
"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>
|
||||||
<view class="blockBox1"></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-between">
|
||||||
<view class="flex-center">
|
<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>
|
<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>
|
||||||
<view style="height: 195rpx;"></view>
|
<view style="height: 195rpx;"></view>
|
||||||
<!-- {{recycleList}} -->
|
<!-- {{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-between">
|
||||||
<view class="flex-center">
|
<view class="flex-center">
|
||||||
<view class="timeLabel">36分钟内</view>
|
<view class="timeLabel">36分钟内</view>
|
||||||
@ -448,6 +448,11 @@
|
|||||||
onReachBottom (){
|
onReachBottom (){
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
goDetail(id){
|
||||||
|
uni.navigateTo({
|
||||||
|
url:'../order/detail?id=' + id
|
||||||
|
})
|
||||||
|
},
|
||||||
cancleClickOrder(){
|
cancleClickOrder(){
|
||||||
this.cancleShow = true
|
this.cancleShow = true
|
||||||
this.moreShow = false
|
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>
|
||||||
<view class="flex-between" style="margin-top: 20rpx;">
|
<view class="flex-between" style="margin-top: 20rpx;">
|
||||||
<view>
|
<view>
|
||||||
<u-upload
|
<img-upload @imgList="imgListz" style="width: 300rpx;height: 190rpx;">
|
||||||
:fileList="fileList1"
|
<template v-slot:upLoadImg>
|
||||||
@afterRead="afterRead"
|
<image :src="path+'/assets/img/icon/IDbgz.png'" mode="widthFix" style="width: 300rpx;height: 190rpx;">
|
||||||
@delete="deletePic"
|
</image>
|
||||||
name="1"
|
</template>
|
||||||
multiple
|
</img-upload>
|
||||||
:maxCount="10"
|
|
||||||
>
|
|
||||||
<image
|
|
||||||
:src="path+'/assets/img/icon/IDbgz.png'"
|
|
||||||
mode="widthFix"
|
|
||||||
style="width: 300rpx;height: 190rpx;"
|
|
||||||
></image>
|
|
||||||
</u-upload>
|
|
||||||
</view>
|
</view>
|
||||||
<view>
|
<view>
|
||||||
<u-upload
|
<img-upload @imgList="imgListf" style="width: 300rpx;height: 190rpx;">
|
||||||
:fileList="fileList1"
|
<template v-slot:upLoadImg>
|
||||||
@afterRead="afterRead"
|
<image :src="path+'/assets/img/icon/IDbgf.png'" mode="widthFix" style="width: 300rpx;height: 190rpx;">
|
||||||
@delete="deletePic"
|
</image>
|
||||||
name="1"
|
</template>
|
||||||
multiple
|
</img-upload>
|
||||||
: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>
|
</view>
|
||||||
@ -46,33 +30,47 @@
|
|||||||
<view class="moduleBox">
|
<view class="moduleBox">
|
||||||
<view class="text4">真实姓名</view>
|
<view class="text4">真实姓名</view>
|
||||||
<view class="inputBox">
|
<view class="inputBox">
|
||||||
<input class="input1" type="text" placeholder="输入和身份证姓名一致" />
|
<input v-model="realname" class="input1" type="text" placeholder="输入和身份证姓名一致" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="moduleBox">
|
<view class="moduleBox">
|
||||||
<view class="text4">身份证号</view>
|
<view class="text4">身份证号</view>
|
||||||
<view class="inputBox">
|
<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>
|
</view>
|
||||||
<view class="moduleBox">
|
<view class="moduleBox">
|
||||||
<view class="text4">有效日期</view>
|
<view class="text4">有效日期</view>
|
||||||
<view class="inputBox inputTwoBox">
|
<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>
|
<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>
|
</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>
|
||||||
<view class="moduleBox">
|
<view class="moduleBox">
|
||||||
<view class="text4">证件地址</view>
|
<view class="text4">证件地址</view>
|
||||||
<view class="inputBox">
|
<view class="inputBox">
|
||||||
<input class="input1" type="text" placeholder="与身份证住址保持一致" />
|
<input v-model="id_card_address" class="input1" type="text" placeholder="与身份证住址保持一致" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="moduleBox">
|
<view class="moduleBox">
|
||||||
<view class="text4">联系电话</view>
|
<view class="text4">联系电话</view>
|
||||||
<view class="inputBox">
|
<view class="inputBox">
|
||||||
<input class="input1" type="text" placeholder="输入您的联系方式" />
|
<input v-model="mobile" class="input1" type="text" placeholder="输入您的联系方式" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="moduleBox" style="padding-bottom: 60rpx;">
|
<view class="moduleBox" style="padding-bottom: 60rpx;">
|
||||||
@ -89,7 +87,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<view style="height: 130rpx;"></view>
|
<view style="height: 130rpx;"></view>
|
||||||
<view class="btnBox">
|
<view class="btnBox">
|
||||||
<view class="btnEle flex-center">
|
<view class="btnEle flex-center" @click="apply">
|
||||||
提交申请
|
提交申请
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -98,13 +96,27 @@
|
|||||||
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import imgUpload from '@/components/imgUpload.vue'
|
||||||
|
import util from '../../common/util.js'
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
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:{
|
components:{
|
||||||
|
imgUpload
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
|
|
||||||
@ -113,6 +125,44 @@
|
|||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
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>
|
</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="walletBox">
|
||||||
<view class="flex-between">
|
<view class="flex-between">
|
||||||
<image :src="path+'/assets/img/icon/wallet.png'" class="img1"></image>
|
<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>
|
<text class="text1">资金记录</text>
|
||||||
<u-icon name="arrow-right" color="#333333" size="12" style="margin-top: 5rpx;"></u-icon>
|
<u-icon name="arrow-right" color="#333333" size="12" style="margin-top: 5rpx;"></u-icon>
|
||||||
</view>
|
</view>
|
||||||
@ -83,7 +83,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<image src="/static/img/right.png" style="width: 50rpx;height:50rpx;"></image>
|
<image src="/static/img/right.png" style="width: 50rpx;height:50rpx;"></image>
|
||||||
</view>
|
</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">
|
<view class="flex-center">
|
||||||
<image :src="path+'/assets/img/icon/pen.png'" class="listIcon"></image>
|
<image :src="path+'/assets/img/icon/pen.png'" class="listIcon"></image>
|
||||||
<text class="listLabel">我的签约</text>
|
<text class="listLabel">我的签约</text>
|
||||||
@ -122,6 +122,20 @@
|
|||||||
</view>
|
</view>
|
||||||
<image src="/static/img/right.png" style="width: 50rpx;height:50rpx;"></image>
|
<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>
|
||||||
<view class="fuwu mainwidth2 qrcodeBox">
|
<view class="fuwu mainwidth2 qrcodeBox">
|
||||||
<!-- <view class="padding15 fsz32" @click="shareShow = true">
|
<!-- <view class="padding15 fsz32" @click="shareShow = true">
|
||||||
@ -140,6 +154,26 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</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="fuwu mainwidth2">
|
||||||
<view class="h3-title fsz32">
|
<view class="h3-title fsz32">
|
||||||
我的服务
|
我的服务
|
||||||
@ -246,7 +280,8 @@
|
|||||||
goodsData: {},
|
goodsData: {},
|
||||||
scrollAnimation: 300,
|
scrollAnimation: 300,
|
||||||
shareShow: false,
|
shareShow: false,
|
||||||
path: this.path
|
path: this.path,
|
||||||
|
passwordShow: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components:{
|
components:{
|
||||||
@ -816,4 +851,30 @@ button::after{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.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>
|
</style>
|
||||||
@ -77,13 +77,80 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</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>
|
</view>
|
||||||
|
<view style="height: 20rpx;"></view>
|
||||||
<!-- <view class="button-bottom">
|
<view class="button-bottom">
|
||||||
<button class="btn btn-success" @click="toAdd()" >保存</button>
|
<button class="btn btn-success" @click="checkPassword()" >保存</button>
|
||||||
</view> -->
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -96,12 +163,18 @@
|
|||||||
headflag:false,
|
headflag:false,
|
||||||
nickname:'微信用户',
|
nickname:'微信用户',
|
||||||
avatar:'/static/img/t2.png',
|
avatar:'/static/img/t2.png',
|
||||||
|
isConfigPassword: false,
|
||||||
|
yuanPassword: '',
|
||||||
|
pay_password: '',
|
||||||
|
rePassword: ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components:{
|
components:{
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
|
this.userinfo = uni.getStorageSync('userInfo');
|
||||||
// this.getAgreement()
|
// this.getAgreement()
|
||||||
|
this.checkPayPassword()
|
||||||
},
|
},
|
||||||
onShow() {
|
onShow() {
|
||||||
var token = uni.getStorageSync('userToken');
|
var token = uni.getStorageSync('userToken');
|
||||||
@ -111,6 +184,55 @@
|
|||||||
this.getauth()
|
this.getauth()
|
||||||
},
|
},
|
||||||
methods: {
|
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(){
|
escLogin(){
|
||||||
this.$api.escLogin({},res=>{
|
this.$api.escLogin({},res=>{
|
||||||
if(res.code == '1'){
|
if(res.code == '1'){
|
||||||
@ -239,6 +361,7 @@
|
|||||||
padding: 8rpx 35rpx;
|
padding: 8rpx 35rpx;
|
||||||
background: #F5F5FA;
|
background: #F5F5FA;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
overflow: auto;
|
||||||
}
|
}
|
||||||
.hs-row{
|
.hs-row{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -333,4 +456,13 @@
|
|||||||
font-size: 30rpx;
|
font-size: 30rpx;
|
||||||
color: #FB8F0C;
|
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>
|
</style>
|
||||||
@ -42,7 +42,8 @@
|
|||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
page: 1,
|
||||||
|
limit: 10
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components:{
|
components:{
|
||||||
@ -54,6 +55,19 @@
|
|||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
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>
|
</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>
|
<template>
|
||||||
<view class="content">
|
<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">
|
<view class="fsz30 overflow2 title tag">
|
||||||
{{orderInfo.status_name||''}}
|
{{orderInfo.status_name||''}}
|
||||||
</view>
|
</view>
|
||||||
@ -91,12 +185,12 @@
|
|||||||
<view >{{orderInfo.jiedan_time||''}}</view>
|
<view >{{orderInfo.jiedan_time||''}}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view> -->
|
||||||
<view style="height:100px"></view>
|
<view style="height:100px"></view>
|
||||||
</view>
|
</view>
|
||||||
<view class="button-bottom" v-if="orderInfo.status==1 || orderInfo.status==2">
|
<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>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
@ -114,6 +208,33 @@ export default {
|
|||||||
this.getOrderDetail();
|
this.getOrderDetail();
|
||||||
},
|
},
|
||||||
methods: {
|
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() {
|
cancelOrder() {
|
||||||
uni.showModal({
|
uni.showModal({
|
||||||
title:'提示',
|
title:'提示',
|
||||||
@ -168,7 +289,9 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
page{
|
||||||
|
background: #F5F5FA;
|
||||||
|
}
|
||||||
|
|
||||||
.news_title{
|
.news_title{
|
||||||
border-bottom: 1px solid #eee;
|
border-bottom: 1px solid #eee;
|
||||||
@ -208,10 +331,256 @@ export default {
|
|||||||
padding: 15upx 26upx;
|
padding: 15upx 26upx;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
display: block;
|
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 {
|
.button-bottom .btn {
|
||||||
margin-left: 20upx;
|
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}
|
.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>
|
</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>
|
<template>
|
||||||
<view class="content">
|
<view class="content">
|
||||||
<view class="problem " v-if="list.length > 0">
|
<view class="problem " v-if="list.length > 0">
|
||||||
<view class="problem_main">
|
<view class="problem_main">
|
||||||
<view class="li" v-for="(item,index) in list" :key="index" @click="show(index)">
|
<view class="li" v-for="(item,index) in list" :key="index" @click="show(index)">
|
||||||
<view class="left">
|
<view class="left frex-start">
|
||||||
<view class="left_2">{{item.name}}</view>
|
<view class="zmLable">Q</view>
|
||||||
<view class="left_1" >
|
<view class="left_2 rightContent">{{item.name}}</view>
|
||||||
<image v-if="item.is_show==1" class="icon" src="/static/img/up.png" mode=""></image>
|
<!-- <view class="left_1" >
|
||||||
<image v-if="item.is_show==0" class="icon" src="/static/img/down.png" mode=""></image>
|
<image v-if="item.is_show==1" class="icon" src="/static/img/up.png" mode=""></image>
|
||||||
</view>
|
<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>
|
||||||
<view class="left_3"><text style="white-space: pre-wrap;line-height: 20px;">{{item.content}}</text></view>
|
<view class="frex-start">
|
||||||
|
<view class="zmLable">A</view>
|
||||||
|
<view class="rightContent">
|
||||||
|
<lookMore :content="item.content"></lookMore>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<uni-load-more :status="loadmore" :content-text="contentText" />
|
<!-- <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>
|
</view>
|
||||||
|
<!-- <uni-load-more :status="loadmore" :content-text="contentText" /> -->
|
||||||
</view>
|
</view>
|
||||||
|
</view>
|
||||||
|
<uni-load-more :status="loadmore" :content-text="contentText" />
|
||||||
<view class="zanwuimg" v-if="list.length == 0">
|
<view class="zanwuimg" v-if="list.length == 0">
|
||||||
<image src="../../static/img/null.png" mode="widthFix"></image>
|
<image src="../../static/img/null.png" mode="widthFix"></image>
|
||||||
<view>暂无相关数据</view>
|
<view>暂无相关数据</view>
|
||||||
@ -36,7 +52,7 @@
|
|||||||
contentdown: '查看更多',
|
contentdown: '查看更多',
|
||||||
contentrefresh: '加载中',
|
contentrefresh: '加载中',
|
||||||
contentnomore: ''
|
contentnomore: ''
|
||||||
},
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad(e) {
|
onLoad(e) {
|
||||||
@ -51,6 +67,15 @@
|
|||||||
this.getData()
|
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){
|
show(index){
|
||||||
var list = this.list;
|
var list = this.list;
|
||||||
list.forEach((item,index2) => {
|
list.forEach((item,index2) => {
|
||||||
@ -75,11 +100,17 @@
|
|||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
page{
|
page{
|
||||||
background: #fff;
|
// background: #fff;
|
||||||
|
background: rgb(245,245,250);
|
||||||
}
|
}
|
||||||
|
.content{
|
||||||
|
padding: 20rpx 35rpx;
|
||||||
|
}
|
||||||
.problem{
|
.problem{
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
padding-top: 15rpx;
|
||||||
|
padding-bottom: 17rpx;
|
||||||
.problem_main{
|
.problem_main{
|
||||||
width: 92%;
|
width: 92%;
|
||||||
margin: 0 auto;padding-bottom: 10px;
|
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>
|
</style>
|
||||||
Loading…
x
Reference in New Issue
Block a user