'订单详情'

This commit is contained in:
unknown 2025-10-26 16:36:59 +08:00
parent 7b9db5202e
commit 0dc0682754
18 changed files with 2733 additions and 77 deletions

70
common/util.js Normal file
View 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
View 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
View 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>

View File

@ -98,4 +98,8 @@ export const exchangeRefund = (data, callback) => post('api/recover/exchange/ref
export const question_list = (data, callback) => post('api/recover/recover/question_list', data, callback);
export const recycleOrderList = (data, callback) => post('api/recover/person/orderlist', data, callback);
// export const qiangdanlist = (data, callback) => post('api/recover/person/qiangdanlist', data, callback);
export const personlogin = (data, callback) => post('api/recover/person/personlogin', data, callback);
export const personlogin = (data, callback) => post('api/recover/person/personlogin', data, callback);
export const applyCertification = (data, callback) => post('api/recover/person/applyCertification', data, callback);
export const checkPayPassword = (data, callback) => post('api/recover/person/checkPayPassword', data, callback);
export const verifyPayPassword = (data, callback) => post('api/recover/person/verifyPayPassword', data, callback);
export const priceList = (data, callback) => post('api/recover/personmoneylog/index', data, callback);

View File

@ -203,6 +203,27 @@
"navigationBarTitleText": "代理加盟",
"enablePullDownRefresh": false
}
},{
"path" : "pages/feedback/index",
"style" :
{
"navigationBarTitleText": "意见反馈",
"enablePullDownRefresh": false
}
},{
"path" : "pages/mine/editInfo",
"style" :
{
"navigationBarTitleText": "信息编辑",
"enablePullDownRefresh": false
}
},{
"path" : "pages/order/pay",
"style" :
{
"navigationBarTitleText": "支付订单",
"enablePullDownRefresh": false
}
}
],
"globalStyle": {

178
pages/feedback/index.vue Normal file
View 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>

View File

@ -50,7 +50,7 @@
</view>
<view class="blockBox1"></view>
<view class="orderBox" v-for="item in qiangdanArr">
<view class="orderBox" v-for="item in qiangdanArr" @click="goDetail(item.id)">
<view class="flex-between">
<view class="flex-center">
<image :src="path+'/assets/img/icon/yu.png'" style="width: 79rpx;height: 71rpx;margin-top: -25rpx;margin-left: -33rpx;margin-right: 21rpx;"></image>
@ -109,7 +109,7 @@
</view>
<view style="height: 195rpx;"></view>
<!-- {{recycleList}} -->
<view class="orderBox" v-for="item in recycleList">
<view class="orderBox" v-for="item in recycleList" @click="goDetail(item.id)">
<view class="flex-between">
<view class="flex-center">
<view class="timeLabel">36分钟内</view>
@ -448,6 +448,11 @@
onReachBottom (){
},
methods: {
goDetail(id){
uni.navigateTo({
url:'../order/detail?id=' + id
})
},
cancleClickOrder(){
this.cancleShow = true
this.moreShow = false

238
pages/mine/apply-.vue Normal file
View 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>

View File

@ -8,36 +8,20 @@
</view>
<view class="flex-between" style="margin-top: 20rpx;">
<view>
<u-upload
:fileList="fileList1"
@afterRead="afterRead"
@delete="deletePic"
name="1"
multiple
:maxCount="10"
>
<image
:src="path+'/assets/img/icon/IDbgz.png'"
mode="widthFix"
style="width: 300rpx;height: 190rpx;"
></image>
</u-upload>
<img-upload @imgList="imgListz" style="width: 300rpx;height: 190rpx;">
<template v-slot:upLoadImg>
<image :src="path+'/assets/img/icon/IDbgz.png'" mode="widthFix" style="width: 300rpx;height: 190rpx;">
</image>
</template>
</img-upload>
</view>
<view>
<u-upload
:fileList="fileList1"
@afterRead="afterRead"
@delete="deletePic"
name="1"
multiple
:maxCount="10"
>
<image
:src="path+'/assets/img/icon/IDbgz.png'"
mode="widthFix"
style="width: 300rpx;height: 190rpx;"
></image>
</u-upload>
<img-upload @imgList="imgListf" style="width: 300rpx;height: 190rpx;">
<template v-slot:upLoadImg>
<image :src="path+'/assets/img/icon/IDbgf.png'" mode="widthFix" style="width: 300rpx;height: 190rpx;">
</image>
</template>
</img-upload>
</view>
</view>
</view>
@ -46,33 +30,47 @@
<view class="moduleBox">
<view class="text4">真实姓名</view>
<view class="inputBox">
<input class="input1" type="text" placeholder="输入和身份证姓名一致" />
<input v-model="realname" class="input1" type="text" placeholder="输入和身份证姓名一致" />
</view>
</view>
<view class="moduleBox">
<view class="text4">身份证号</view>
<view class="inputBox">
<input class="input1" type="text" placeholder="输入18位身份证号" />
<input v-model="id_card_number" class="input1" type="text" placeholder="输入18位身份证号" />
</view>
</view>
<view class="moduleBox">
<view class="text4">有效日期</view>
<view class="inputBox inputTwoBox">
<input class="input1" type="text" placeholder="开始日期" />
<text class="input1" @click="showStartDate=true">{{id_card_start_date||'开始时间'}}</text>
<!-- <input class="input1" type="text" placeholder="开始日期" /> -->
<text class="centerIcon"></text>
<input class="input2" type="text" placeholder="开始日期" />
<text class="input2" @click="showEndDate=true">{{id_card_end_date||'结束时间'}}</text>
<!-- <input class="input2" type="text" placeholder="开始日期" /> -->
</view>
<u-datetime-picker
:show="showStartDate"
v-model="dateStart"
mode="date"
@confirm="confirmStartDate"
></u-datetime-picker>
<u-datetime-picker
:show="showEndDate"
v-model="dateEnd"
mode="date"
@confirm="confirmEndDate"
></u-datetime-picker>
</view>
<view class="moduleBox">
<view class="text4">证件地址</view>
<view class="inputBox">
<input class="input1" type="text" placeholder="与身份证住址保持一致" />
<input v-model="id_card_address" class="input1" type="text" placeholder="与身份证住址保持一致" />
</view>
</view>
<view class="moduleBox">
<view class="text4">联系电话</view>
<view class="inputBox">
<input class="input1" type="text" placeholder="输入您的联系方式" />
<input v-model="mobile" class="input1" type="text" placeholder="输入您的联系方式" />
</view>
</view>
<view class="moduleBox" style="padding-bottom: 60rpx;">
@ -89,7 +87,7 @@
</view>
<view style="height: 130rpx;"></view>
<view class="btnBox">
<view class="btnEle flex-center">
<view class="btnEle flex-center" @click="apply">
提交申请
</view>
</view>
@ -98,13 +96,27 @@
<script>
import imgUpload from '@/components/imgUpload.vue'
import util from '../../common/util.js'
export default {
data() {
return {
showStartDate: false,
showEndDate: false,
dateStart: Number(new Date()),
dateEnd: Number(new Date()),
realname: '',
id_card_number: '',
id_card_front: '',
id_card_back: '',
id_card_start_date: '',
id_card_end_date: '',
id_card_address: '',
mobile: ''
}
},
components:{
imgUpload
},
onLoad() {
@ -113,6 +125,44 @@
},
methods: {
apply(){
let data = {
realname: this.realname,
id_card_number: this.id_card_number,
id_card_front: this.id_card_front,
id_card_back: this.id_card_back,
id_card_start_date: this.id_card_start_date,
id_card_end_date: this.id_card_end_date,
id_card_address: this.id_card_address,
mobile: this.mobile
}
this.$api.applyCertification(data,res=>{
if(res.code == '1'){
uni.showToast({ title: res.msg , icon: 'success' })
setTimeout(()=>{
uni.navigateBack({
delta: 1
})
}, 2000)
}else{
uni.showToast({ title: res.msg , icon: 'none' })
}
})
},
imgListz(val){
this.id_card_front = val
},
imgListf(val){
this.id_card_back = val
},
confirmStartDate(val){
this.showStartDate = false
this.id_card_start_date = util.formatDate(val.value,'YYYY-MM-DD')
},
confirmEndDate(val){
this.showEndDate = false
this.id_card_end_date = util.formatDate(val.value,'YYYY-MM-DD')
}
}
}
</script>

288
pages/mine/editInfo.vue Normal file
View 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>

View File

@ -24,7 +24,7 @@
<view class="walletBox">
<view class="flex-between">
<image :src="path+'/assets/img/icon/wallet.png'" class="img1"></image>
<view class="flex-center">
<view class="flex-center" @click="gopage2('/pages/mine/priceRecord')">
<text class="text1">资金记录</text>
<u-icon name="arrow-right" color="#333333" size="12" style="margin-top: 5rpx;"></u-icon>
</view>
@ -83,7 +83,7 @@
</view>
<image src="/static/img/right.png" style="width: 50rpx;height:50rpx;"></image>
</view>
<view class="fsz32 flex-between listBox" @click="linkPage('/pages/mine/promotion')">
<view class="fsz32 flex-between listBox" @click="linkPage('/pages/mine/apply')">
<view class="flex-center">
<image :src="path+'/assets/img/icon/pen.png'" class="listIcon"></image>
<text class="listLabel">我的签约</text>
@ -121,7 +121,21 @@
<text class="listLabel">在线客服</text>
</view>
<image src="/static/img/right.png" style="width: 50rpx;height:50rpx;"></image>
</button>
</button>
<view class="fsz32 flex-between listBox" @click="linkPage('/pages/mine/editInfo')">
<view class="flex-center">
<image :src="path+'/assets/img/icon/question.png'" class="listIcon"></image>
<text class="listLabel">信息编辑</text>
</view>
<image src="/static/img/right.png" style="width: 50rpx;height:50rpx;"></image>
</view>
<view class="fsz32 flex-between listBox" @click="linkPage('/pages/question/index')">
<view class="flex-center">
<image :src="path+'/assets/img/icon/question.png'" class="listIcon"></image>
<text class="listLabel">密码设置</text>
</view>
<image src="/static/img/right.png" style="width: 50rpx;height:50rpx;"></image>
</view>
</view>
<view class="fuwu mainwidth2 qrcodeBox">
<!-- <view class="padding15 fsz32" @click="shareShow = true">
@ -140,6 +154,26 @@
</view>
</view>
</view>
<u-popup :show="passwordShow" mode="center" @close="close" @open="open" :round="10">
<view class="passwordBox">
<view class="flex-between">
<text class="text2">设置支付密码</text>
<u-icon name="close" color="#333333" size="18" @click="passwordShow = false"></u-icon>
</view>
<view class="passwordView flex-between">
<text class="text1">原密码:</text>
<input type="text" class="input1" placeholder="请输入原密码" />
</view>
<view class="passwordView flex-between">
<text class="text1">新密码:</text>
<input type="text" class="input1" placeholder="请输入原密码" />
</view>
<view class="passwordView flex-between">
<text class="text1">确认密码:</text>
<input type="text" class="input1" placeholder="请输入原密码" />
</view>
</view>
</u-popup>
<!-- <view class="fuwu mainwidth2">
<view class="h3-title fsz32">
我的服务
@ -246,7 +280,8 @@
goodsData: {},
scrollAnimation: 300,
shareShow: false,
path: this.path
path: this.path,
passwordShow: false
}
},
components:{
@ -815,5 +850,31 @@ button::after{
color: #62442B;
}
}
}
.passwordBox{
padding: 40rpx 45rpx;
border-radius: 30rpx;
.text2{
font-weight: bold;
font-size: 36rpx;
color: #000000;
}
.passwordView{
margin-top: 40rpx;
.text1{
font-size: 30rpx;
color: #000000;
width: 160rpx;
text-align: right;
}
.input1{
margin-left: 15rpx;
border: 1rpx solid rgba(0,0,0,.1);
border-radius: 10rpx;
padding: 15rpx;
padding-left: 20rpx;
font-size: 30rpx;
}
}
}
</style>

View File

@ -77,13 +77,80 @@
</view>
</view>
</view>
<view class="escLogin" @click="escLogin">退出登录</view>
<!-- <view class="escLogin" @click="escLogin">退出登录</view> -->
<view class="infoBox" style="margin-top: 17rpx;">
<view class='hs-list flex-between'>
<view class='hs-list-hd'>
真实姓名
</view>
<view class='hs-row-ft flex-center'>
<input v-model="userinfo.nickname" type="text" placeholder="请输入真实姓名"/>
<!-- <u-icon name="arrow-right" color="#282F38" size="14" style="margin-left: 19rpx;"></u-icon> -->
</view>
</view>
<view class='hs-list flex-between'>
<view class='hs-list-hd'>
手机号码
</view>
<view class='hs-row-ft flex-center'>
<input v-model="userinfo.mobile" type="text" placeholder="请输入手机号"/>
<!-- <u-icon name="arrow-right" color="#282F38" size="14" style="margin-left: 19rpx;"></u-icon> -->
</view>
</view>
</view>
<view class="infoBox" style="margin-top: 17rpx;" v-if="isConfigPassword">
<view class='hs-list flex-between'>
<view class='hs-list-hd'>
原支付密码
</view>
<view class='hs-row-ft flex-center'>
<input v-model="yuanPassword" type="password" placeholder="请输入原密码"/>
<!-- <u-icon name="arrow-right" color="#282F38" size="14" style="margin-left: 19rpx;"></u-icon> -->
</view>
</view>
<view class='hs-list flex-between'>
<view class='hs-list-hd'>
新支付密码
</view>
<view class='hs-row-ft flex-center'>
<input v-model="pay_password" type="password" placeholder="请输入新密码"/>
<!-- <u-icon name="arrow-right" color="#282F38" size="14" style="margin-left: 19rpx;"></u-icon> -->
</view>
</view>
<view class='hs-list flex-between'>
<view class='hs-list-hd'>
确认密码
</view>
<view class='hs-row-ft flex-center'>
<input v-model="rePassword" type="password" placeholder="请确认密码"/>
<!-- <u-icon name="arrow-right" color="#282F38" size="14" style="margin-left: 19rpx;"></u-icon> -->
</view>
</view>
</view>
<view class="infoBox" style="margin-top: 17rpx;" v-else>
<view class='hs-list flex-between'>
<view class='hs-list-hd'>
支付密码
</view>
<view class='hs-row-ft flex-center'>
<input v-model="pay_password" type="password" placeholder="请输入支付密码"/>
</view>
</view>
<view class='hs-list flex-between'>
<view class='hs-list-hd'>
确认密码
</view>
<view class='hs-row-ft flex-center'>
<input v-model="rePassword" type="password" placeholder="请输入确认密码"/>
</view>
</view>
</view>
</view>
</view>
<!-- <view class="button-bottom">
<button class="btn btn-success" @click="toAdd()" >保存</button>
</view> -->
<view style="height: 20rpx;"></view>
<view class="button-bottom">
<button class="btn btn-success" @click="checkPassword()" >保存</button>
</view>
</view>
</template>
@ -96,12 +163,18 @@
headflag:false,
nickname:'微信用户',
avatar:'/static/img/t2.png',
isConfigPassword: false,
yuanPassword: '',
pay_password: '',
rePassword: ''
}
},
components:{
},
onLoad() {
this.userinfo = uni.getStorageSync('userInfo');
// this.getAgreement()
this.checkPayPassword()
},
onShow() {
var token = uni.getStorageSync('userToken');
@ -111,6 +184,55 @@
this.getauth()
},
methods: {
checkPayPassword(){
var _this = this;
_this.$api.checkPayPassword({},res=>{
if(res.code == '1'){
console.log(res.data)
this.isConfigPassword = res.data.has_pay_password
// uni.showToast({ title: res.msg , icon: 'success' })
}
})
},
checkPassword() {
var _this = this;
if(this.isConfigPassword){
_this.$api.verifyPayPassword({
pay_password: this.yuanPassword
},res=>{
if(res.code == '1'){
console.log(res.data)
this.setConfig()
}else{
uni.showToast({ title: res.msg , icon: 'none' })
}
})
}else{
this.setConfig()
}
},
setConfig() {
var _this = this;
if(this.pay_password != this.rePassword){
uni.showToast({ title: '密码和确认密码不一致', icon: 'none' })
return false;
}
let data = {
realname: this.userinfo.nickname,
mobile: this.userinfo.mobile,
pay_password: this.pay_password
}
_this.$api.editperson(data,res=>{
if(res.code == '1'){
console.log(res.data)
uni.showToast({ title: res.msg , icon: 'success' })
}else{
uni.showToast({ title: res.msg , icon: 'none' })
}
})
},
escLogin(){
this.$api.escLogin({},res=>{
if(res.code == '1'){
@ -239,6 +361,7 @@
padding: 8rpx 35rpx;
background: #F5F5FA;
height: 100%;
overflow: auto;
}
.hs-row{
width: 100%;
@ -333,4 +456,13 @@
font-size: 30rpx;
color: #FB8F0C;
}
.button-bottom{
background: #fff;
left: 0;
padding: 10rpx 35rpx;
height: unset!important;
}
.btn-success{
background: linear-gradient(90deg, #FFAD38 0%, #FF884E 100%);
}
</style>

View File

@ -42,7 +42,8 @@
export default {
data() {
return {
page: 1,
limit: 10
}
},
components:{
@ -54,6 +55,19 @@
},
methods: {
getPriceList(){
var _this = this;
_this.$api.priceList({},res=>{
if(res.code == '1'){
if(res.data.user.avatar){
_this.avatar = res.data.user.avatar
}
_this.nickname = res.data.user.nickname
_this.userinfo = res.data.user
}else{
}
})
},
}
}
</script>

217
pages/order/detail-.vue Normal file
View 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>

View File

@ -1,8 +1,102 @@
<template>
<view class="content">
<view style="overflow: hidden;">
<view class="topBox">
<view class="statusText">{{orderInfo.status_name}}</view>
<view class="statusTip">{{orderInfo.order_status_content}}</view>
</view>
<view class="orderInfoBox" style="overflow: hidden;">
<view class="viewBox">
<view>货物信息</view>
<view class="goodsInfo flex-between">
<view class="infoLeft flex-center">
<image src="/static/img/40.png" class="goodsImg"></image>
<view style="margin-left: 22rpx;">
<view class="text1">回收品类</view>
<view class="text2">{{orderInfo.type_name}}</view>
</view>
</view>
<view class="infoCenter">
<view class="text1">数量</view>
<view style="margin-top: 15rpx;">
<text class="textIcon">x</text>
<text class="textNum">{{orderInfo.quantity}}</text>
</view>
</view>
<view class="infoRight">
<view class="text1">单价</view>
<view style="margin-top: 15rpx;">
<text class="textIcon"></text>
<text class="textNum">{{orderInfo.single_price}}</text>
</view>
</view>
</view>
<view class="news_title">
<view class="specsBox">
<text class="specsText">规格</text>
<text>{{deelData(orderInfo.spec_value)}}</text>
<!-- <text v-for="item in orderInfo.spec_value">{{item}}</text> -->
<!-- <u-icon name="arrow-right" color="#282F38" size="10"></u-icon> -->
</view>
<view class="countBox">
<view class="text1">合计</view>
<view style="margin-top: 0rpx;">
<text class="textIcon"></text>
<text class="textNum">{{orderInfo.price}}</text>
</view>
</view>
</view>
<view v-show="orderInfo.person_name" class="infoWrap" style="border-radius: 30rpx;background: #fff;margin-top: 20rpx;">
<view class="bgHead">
回收员信息
</view>
<view class="infoBox">
<text class="infoText1">{{orderInfo.person_name}}</text>
<text class="infoText2">{{orderInfo.person_mobile}}</text>
<view class="infoTip">平台已认证师傅资质上门请校核是否本人上门</view>
<view class="flex-center infoBtnBox" @click="callPhone(orderInfo.person_mobile)">
<u-icon name="phone" color="#282F38" size="22" style="margin-right: 12rpx;margin-top: 5rpx;"></u-icon>
联系师傅
</view>
</view>
</view>
<view class="infoWrap" style="border-radius: 30rpx;background: #fff;margin-top: 20rpx;">
<view class="bgHead">
用户信息
</view>
<view class="infoBox">
<view style="border-bottom: 1px solid #DEDEDE;">
<text class="infoText1">{{orderInfo.accept_name}}</text>
<text class="infoText2">{{orderInfo.accept_mobile}}</text>
<view class="infoAddress" style="margin-top: 10rpx;">{{orderInfo.area_name}}{{orderInfo.accept_address}}</view>
</view>
</view>
</view>
<view class="infoWrap" style="border-radius: 30rpx;background: #fff;margin-top: 20rpx;">
<view class="bgHead">
预约上门时间
<text class="infoTip2">待师傅与您确认哦~</text>
</view>
<view class="infoBox">
<view class="flex-between">
<text class="infoDate">请选择上门服务时间</text>
<view class="infoTip3">此项由师傅填写</view>
</view>
<view class="infoAddress">期望上门时间{{orderInfo.order_time}}</view>
</view>
</view>
<view class="detailBox">
<view>订单备注</view>
<view class="detailText">{{orderInfo.remark}}</view>
</view>
<view class="detailBox">
<view>订单信息</view>
<view class="detailText">下单时间{{orderInfo.order_time}}</view>
<view class="detailText">订单编号{{orderInfo.order_no}}</view>
</view>
<!-- <view class="news_title">
<view class="fsz30 overflow2 title tag">
{{orderInfo.status_name||''}}
</view>
@ -91,12 +185,12 @@
<view >{{orderInfo.jiedan_time||''}}</view>
</view>
</view>
</view>
</view> -->
<view style="height:100px"></view>
</view>
<view class="button-bottom" v-if="orderInfo.status==1 || orderInfo.status==2">
<button class='btn btn-default' v-if="orderInfo.status == 1 || orderInfo.status == 2" @click="cancelOrder()">取消订单</button>
<button class='btn btn-default flex-center' v-if="orderInfo.status == 1 || orderInfo.status == 2" @click="cancelOrder()">取消订单</button>
<view class="buttonEdit flex-center">修改订单</view>
</view>
</view>
</template>
@ -114,6 +208,33 @@ export default {
this.getOrderDetail();
},
methods: {
callPhone(phoneNumber) {
uni.makePhoneCall({
phoneNumber: phoneNumber, //
success: (res) => {
console.log("拨号成功", res);
},
fail: (err) => {
console.error("拨号失败", err);
}
});
},
deelData(val){
console.log(val)
let str = ''
let index = 1
for(let key in val){
console.log(key)
if(index>1){
str += ' | ' + key+':'+val[key]
}else{
str += key+':'+val[key]
}
index++
}
console.log(str)
return str
},
cancelOrder() {
uni.showModal({
title:'提示',
@ -168,7 +289,9 @@ export default {
</script>
<style lang="scss">
page{
background: #F5F5FA;
}
.news_title{
border-bottom: 1px solid #eee;
@ -208,10 +331,256 @@ export default {
padding: 15upx 26upx;
text-align: right;
display: block;
display: flex;
justify-content: flex-end;
height: unset;
}
.buttonEdit{
width: 224rpx;
height: 90rpx;
background: #FFFFFF;
border-radius: 45rpx;
border: 1px solid #FB8F0C;
font-weight: 500;
font-size: 30rpx;
color: #FB8F0C;
}
.button-bottom .btn {
margin-left: 20upx;
width: 224rpx!important;
height: 90rpx;
background: #FFFFFF;
border-radius: 45rpx;
border: 1px solid #FB8F0C;
font-weight: 500;
font-size: 30rpx;
color: #FB8F0C;
flex: unset;
}
.ti{width:115px}
.topBox{
width: 100%;
height: 280rpx;
background: linear-gradient(0deg, #F5F5FA 0%, #FFF3D5 100%);
padding: 0 72rpx;
overflow: hidden;
}
.statusText{
font-weight: bold;
font-size: 36rpx;
color: #413A2A;
margin-top: 52rpx;
}
.statusTip{
font-weight: 400;
font-size: 24rpx;
color: #A69879;
margin-top: 20rpx;
}
.orderInfoBox{
padding: 0 35rpx;
margin-top: -80rpx;
}
.viewBox{
background: #fff;
border-radius: 30rpx;
padding: 35rpx;
.goodsInfo{
margin-top: 32rpx;
background: #FFF9F5;
border-radius: 20rpx;
padding: 14rpx 16rpx;
padding-right: 35rpx;
.infoLeft{
.goodsImg{
width: 80rpx;
height: 80rpx;
}
.text1{
font-weight: 500;
font-size: 22rpx;
color: #333333;
}
.text2{
font-weight: 500;
font-size: 30rpx;
color: #333333;
margin-top: 15rpx;
}
}
.infoCenter{
.text1{
font-weight: 500;
font-size: 22rpx;
color: #333333;
}
.textIcon{
font-weight: 500;
font-size: 30rpx;
color: #333333;
}
.textNum{
font-weight: 500;
font-size: 30rpx;
color: #333333;
margin-left: 7rpx;
}
}
.infoRight{
.text1{
font-weight: 500;
font-size: 22rpx;
color: #333333;
text-align: center;
}
.textIcon{
font-weight: 500;
font-size: 24rpx;
color: #ED6343;
}
.textNum{
font-weight: 500;
font-size: 36rpx;
color: #ED6343;
margin-left: 7rpx;
}
}
}
}
.specsBox{
height: 70rpx;
background: #FFF7F7;
border-radius: 20rpx;
margin-top: 10rpx;
font-weight: 500;
font-size: 22rpx;
color: #333333;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
padding-left: 33rpx;
.specsText{
font-weight: 500;
font-size: 22rpx;
color: #333333;
margin-right: 18rpx;
margin-top: -5rpx;
}
}
.countBox{
display: flex;
justify-content: flex-start;
// align-items: flex-end;
align-items: center;
margin-top: 15rpx;
padding-left: 10rpx;
.text1{
font-weight: 500;
font-size: 22rpx;
color: #333333;
text-align: center;
margin-right: 14rpx;
margin-top: 7rpx;
}
.textIcon{
font-weight: 500;
font-size: 24rpx;
color: #ED6343;
}
.textNum{
font-weight: 500;
font-size: 36rpx;
color: #ED6343;
margin-left: 7rpx;
}
}
.infoWrap{
.bgHead{
height: 108rpx;
line-height: 108rpx;
background: linear-gradient(180deg, #FFFAF5 0%, #FFFFFF 100%);
border-radius: 30rpx 30rpx 0rpx 0rpx;
padding-left: 41rpx;
font-weight: bold;
font-size: 30rpx;
color: #333333;
.infoTip2{
font-weight: 400;
font-size: 22rpx;
color: #FF7F18;
margin-left: 38rpx;
}
}
.infoBox{
padding: 0 39rpx 45rpx;
margin-top: -5rpx;
.infoText1{
font-weight: bold;
font-size: 32rpx;
color: #333333;
}
.infoText2{
font-weight: bold;
font-size: 32rpx;
color: #333333;
margin-left: 28rpx;
}
.infoAddress{
font-weight: 300;
font-size: 22rpx;
color: #95979B;
// font-weight: 300;
// font-size: 28rpx;
// color: #95979B;
// margin-top: 30rpx;
}
.infoTip{
font-weight: 400;
font-size: 22rpx;
color: #E4AA45;
margin-top: 12rpx;
border-bottom: 1px solid #DEDEDE;
padding-bottom: 29rpx;
}
.infoDate{
font-weight: 400;
font-size: 32rpx;
color: #999999;
}
.infoTip3{
background: #FFF4ED;
border-radius: 10rpx;
font-weight: 400;
font-size: 22rpx;
color: #FF7F18;
padding: 16rpx 11rpx;
}
.infoBtnBox{
font-weight: 400;
font-size: 32rpx;
color: #333333;
margin-top: 41rpx;
}
}
}
.detailBox{
padding: 45rpx 37rpx 60rpx;
border-radius: 30rpx;
background: #fff;
margin-top: 20rpx;
font-weight: bold;
font-size: 30rpx;
color: #333333;
.detailText{
font-weight: 400;
font-size: 28rpx;
color: #333333;
margin-top: 41rpx;
}
}
</style>

608
pages/order/pay.vue Normal file
View 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
View 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>

View File

@ -1,23 +1,39 @@
<template>
<view class="content">
<view class="problem " v-if="list.length > 0">
<view class="problem_main">
<view class="li" v-for="(item,index) in list" :key="index" @click="show(index)">
<view class="left">
<view class="left_2">{{item.name}}</view>
<view class="left_1" >
<image v-if="item.is_show==1" class="icon" src="/static/img/up.png" mode=""></image>
<image v-if="item.is_show==0" class="icon" src="/static/img/down.png" mode=""></image>
</view>
</view>
<view class="left " v-if="item.is_show==1">
<view class="left_3"><text style="white-space: pre-wrap;line-height: 20px;">{{item.content}}</text></view>
</view>
</view>
<uni-load-more :status="loadmore" :content-text="contentText" />
<view class="problem " v-if="list.length > 0">
<view class="problem_main">
<view class="li" v-for="(item,index) in list" :key="index" @click="show(index)">
<view class="left frex-start">
<view class="zmLable">Q</view>
<view class="left_2 rightContent">{{item.name}}</view>
<!-- <view class="left_1" >
<image v-if="item.is_show==1" class="icon" src="/static/img/up.png" mode=""></image>
<image v-if="item.is_show==0" class="icon" src="/static/img/down.png" mode=""></image>
</view> -->
</view>
<view class="frex-start">
<view class="zmLable">A</view>
<view class="rightContent">
<lookMore :content="item.content"></lookMore>
</view>
</view>
<!-- <view class="textBox" @click="getH">
{{item.content}}
</view> -->
<!-- <u-read-more>
<rich-text :nodes="content" :showHeight="30"></rich-text>
</u-read-more> -->
<!-- <u-read-more ref="uReadMore">
<u-parse :content="item.content" @load="load"></u-parse>
</u-read-more> -->
<!-- <view class="left " v-if="item.is_show==1">
<view class="left_3"><text style="white-space: pre-wrap;line-height: 20px;">{{item.content}}</text></view>
</view> -->
</view>
<!-- <uni-load-more :status="loadmore" :content-text="contentText" /> -->
</view>
</view>
<uni-load-more :status="loadmore" :content-text="contentText" />
<view class="zanwuimg" v-if="list.length == 0">
<image src="../../static/img/null.png" mode="widthFix"></image>
<view>暂无相关数据</view>
@ -36,7 +52,7 @@
contentdown: '查看更多',
contentrefresh: '加载中',
contentnomore: ''
},
}
}
},
onLoad(e) {
@ -50,7 +66,16 @@
this.ifBottomRefresh = true
this.getData()
},
methods:{
methods:{
getH(){
const query = uni.createSelectorQuery().in(this);
query.select('.textBox').boundingClientRect(({ height }) => {
console.log('square_giant的高度是' + height + 'px');
}).exec();
},
load() {
this.$refs.uReadMore.init();
},
show(index){
var list = this.list;
list.forEach((item,index2) => {
@ -75,11 +100,17 @@
<style lang="scss">
page{
background: #fff;
// background: #fff;
background: rgb(245,245,250);
}
.content{
padding: 20rpx 35rpx;
}
.problem{
background-color: #fff;
background-color: #fff;
border-radius: 30rpx;
padding-top: 15rpx;
padding-bottom: 17rpx;
.problem_main{
width: 92%;
margin: 0 auto;padding-bottom: 10px;
@ -113,4 +144,40 @@ page{
}
}
}
.articleBox{
padding: 29rpx 24rpx 38rpx 35rpx;
.articleInfo{
display: flex;
justify-content: space-between;
align-items: flex-start;
.articleTitle{
margin-top: 10rpx;
font-weight: bold;
font-size: 30rpx;
color: #282F38;
width: 350rpx;
}
img{
margin-left: 20rpx;
}
}
.articleData{
font-size: 24rpx;
color: #999999;
margin-top: 36rpx;
}
}
.zmLable{
color: #FB8F0C;
font-weight: 800;
// margin-right: 15rpx;
width: 38rpx;
}
.frex-start{
display: flex;
align-items: center;
}
.rightContent{
width: calc(100% - 38rpx)
}
</style>