服务订单与上门回收

dev
shuxiaoquan 10 months ago
parent 5ece2d6aad
commit 6e14a9c647
  1. 47
      api/newFun.js
  2. 19
      pages.json
  3. 107
      pages/news/recycling/confirm.vue
  4. 54
      pages/news/recycling/detail.vue
  5. 30
      pages/news/recycling/index.vue
  6. 532
      pages/news/recycling/orderDetail.vue
  7. 665
      pages/news/recycling/orderList.vue
  8. 187
      pages/news/recycling/pay.vue
  9. 186
      pages/news3/dispatch.vue
  10. 32
      pages/user/index.vue

@ -1,4 +1,49 @@
import request from '@/utils/request'
import request from '@/utils/request'
// 上门回收 回收列表
export const recoveryRecoveryList = (param) => {
return request.post('recovery/recoveryList', param)
}
// 上门回收 回收分类
export const recoveryCategoryList = (param) => {
return request.post('recovery/categoryList', param)
}
// 服务 服务订单完成
export const serverConfirmSuccess = (param) => {
return request.post('server/confirmSuccess', param)
}
// 服务 服务订单详情
export const serverOrderDetails = (param) => {
return request.post('server/orderDetails', param)
}
// 服务 服务订单派单
export const serverDispatchOrders = (param) => {
return request.post('server/dispatchOrders', param)
}
// 服务 服务订单列表 派单
export const serverGetEngineer = (param) => {
return request.post('server/getEngineer', param)
}
// 服务 服务订单列表 取消
export const serverCancelOrder = (param) => {
return request.post('server/cancelOrder', param)
}
// 服务 服务订单列表 服务订单状态
export const serverOrderInfoStatus = (param) => {
return request.post('server/orderStatus', param)
}
// 服务 服务订单列表
export const serverOrderList = (param) => {
return request.post('server/orderList', param)
}
// 服务 创建服务订单 服务订单支付信息
export const serverOrderInfo = (param) => {

@ -757,6 +757,25 @@
"navigationBarTitleText": "确认服务订单",
"enablePullDownRefresh": false
}
},{
"path": "recycling/orderList",
"style": {
"navigationBarTitleText": "我的订单",
"enablePullDownRefresh": true
}
},{
"path": "recycling/orderDetail",
"style": {
"navigationBarTitleText": "订单详情",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
},{
"path": "recycling/pay",
"style": {
"navigationBarTitleText": "支付方式",
"enablePullDownRefresh": false
}
},
{
"path": "recycling/timer",

@ -64,7 +64,7 @@
<view class="a">优惠券</view>
<view class="b" @click="openPage(2)">
<view class="select" :class="couponIndex >= 0?'select-on':''">
{{couponIndex >= 0? couponList[couponIndex].name:(couponList.length > 0?'请选择优惠券':'暂无优惠券')}}
{{couponIndex >= 0? couponList[couponIndex].name:(couponList.length > 0?(couponIndex == -9998?'不使用优惠券':'请选择优惠券'):'暂无优惠券')}}
</view>
<u-icon style="margin-left: 10rpx;" name="arrow-right"></u-icon>
</view>
@ -159,15 +159,13 @@
<view class="c" v-else style="color: #FE483B;font-size: 30rpx;">{{pay_price}}</view>
<view class="b" @click="openPage(3)">提交订单</view>
</view>
<!-- 微信支付方式 -->
<u-action-sheet :list="list2" v-model="show2" @click="clickPay" @close="closeAction"></u-action-sheet>
<!-- 选择优惠券 -->
<u-popup v-model="isShow" mode="bottom" border-radius="12" mask-close-able="false" closeable>
<view class="recycling-classify">
<view class="recycling-classify-hd">优惠券列表</view>
<view class="recycling-classify-bd">
<scroll-view scroll-y class="m">
<view class="item" @click="tabMItem('-9999')"><view :class="couponIndex == -9999?'item-on':''">不使用</view></view>
<view class="item" @click="tabMItem(-1,'-9998')"><view :class="couponIndex == -9998?'item-on':''">不使用</view></view>
<view class="item" v-for="(a,i) in couponList" :key="i" @click="tabMItem(a,i)"><view :class="couponIndex == i?'item-on':''">{{a.name}}</view></view>
</scroll-view>
</view>
@ -229,23 +227,9 @@
}
},
methods: {
clickPay(i){
if(this.list2[i].method == "balance"){
console.log(this.orderInfo.pay_price <= this.userInfo.balance)
console.log(this.orderInfo.pay_price , this.userInfo.balance)
if(Number(this.orderInfo.pay_price) <= Number(this.userInfo.balance)){
this.toPay()
}else{
uni.showToast({
icon: "none",
title: "余额不足,请选择其他支付方式"
})
}
}
},
tabMItem(a,i) {
this.couponIndex = i
this.coupon_id = a.coupon_id
this.coupon_id = (a?a.coupon_id:"")
this.isShow = false;
this.getServerCheckOrder(1)
},
@ -258,17 +242,12 @@
if(status == 200){
this.info = data.info
this.couponList= data.coupon_list;
this.coupon_id= data.coupon_id
this.coupon_money= data.coupon_money
this.pay_price= data.pay_price
console.log(this.couponIndex)
}
},
closeAction() {
uni.redirectTo({
url: "/pages/news/recycling/order"
})
},
confirm(e){
this.server_time = e.year+"-"+e.month+'-'+e.day+" "+e.hour+"-"+e.minute+'-'+e.second
},
@ -285,10 +264,6 @@
}else if(i == 2) {
this.isShow = true
}else if(i == 3) {
if(this.orderInfo.pay_price){
this.show2 = true
return ;
}
if(!this.server_time){
uni.showToast({
icon: "none",
@ -309,6 +284,13 @@
title: "联系号码不能为空"
})
return ;
}
if (!/^1[2|3|4|5|6|7|8|9]\d{9}$/.test(this.mobile)) {
uni.showToast({
icon: "none",
title: "联系号码格式不正确"
})
return ;
}
if(this.region.length == 0){
uni.showToast({
@ -332,34 +314,10 @@
}else if(i == 5){
this.remake = a
}else {
uni.redirectTo({
url: "/pages/news/recycling/order"
})
}
},
//
async toPay() {
const {status, message} = await newFunApi.serverOrderPay({
order_id: this.order_id,
method: 'balance',
client: "MP-WEIXIN",
})
if(status == 200) {
uni.showToast({
title: "支付成功"
})
setTimeout(()=>{
uni.redirectTo({
url: "/pages/news/recycling/order"
})
},1000)
}else{
uni.showToast({
icon: "none",
title: message
})
}
},
//
async toServerCreateOrder() {
let {status, data, message } = await newFunApi.serverCreateOrder({
@ -375,44 +333,23 @@
if(status == 200){
this.isClick = true
this.order_id = data.order_id
this.toServerOrder(data.order_id)
}else{
this.isClick = true
uni.showToast({
icon: "none",
title: message
uni.redirectTo({
url: "/pages/news/recycling/pay?type=fuwu&order_id="+data.order_id
})
}
},
//
async toServerOrder(order_id) {
let {status, data, message } = await newFunApi.serverOrderInfo({
client: 'MP-WEIXIN',
order_id
})
if(status == 200){
this.isClick = true
this.userInfo = data.personal
this.orderInfo = data.order
if(data.paymentMethods && data.paymentMethods.length > 0){
data.paymentMethods.map(a=>{
if(a.method=='wechat'){
a.text = "微信支付"
}else if(a.method=='balance'){
a.text = "余额支付"+"(余额:"+data.personal.balance+"元)"
}
})
}
this.list2 = data.paymentMethods;
this.show2 = true;
}else{
this.isClick = true
uni.showToast({
icon: "none",
title: message
})
setTimeout(()=>{
uni.redirectTo({
url: "/pages/news/recycling/orderList"
})
},2000)
}
},
},
}
}
</script>

@ -6,11 +6,14 @@
</view>
<view class="recycling-hd">
<view class="a">
<view class="price"><text>{{type== 1?info.server_price:'待评估'}}</text></view>
<view class="price" v-if="type== 1"><text>{{info.server_price}}</text></view>
<view class="price" v-else>免支付预约</view>
<view class="exchange">已售{{info.sold}}</view>
</view>
<view class="b">{{info.server_name}}</view>
<view class="c">{{info.server_category}}</view>
<view class="b" v-if="type== 1">{{info.server_name}}</view>
<view class="c" v-if="type== 1">{{info.server_category}}</view>
<view class="b" v-if="type== 2">{{info.recovery_name}}</view>
<view class="c" v-if="type== 2">{{info.recovery_category}}</view>
<view class="d">
<view class="l">
<image src="@/static/news/icon-recycling-05.png"></image>24小时客服
@ -32,7 +35,7 @@
<view class="b" v-if="type == 1">上门服务</view>
<view class="b" v-else @click="openPage(2)">{{selector[tabIndex]}}<u-icon name="arrow-right"></u-icon></view>
</view>
<!-- <view class="item">
<!-- <view class="item" v-if="type == 2">
<view class="a">送至</view>
<view class="b" @click="openPage(4)">{{addressInfo.phone?addressInfo.region.province+addressInfo.region.city+addressInfo.region.region+addressInfo.detail:'请选择地址'}}<u-icon name="arrow-right"></u-icon></view>
</view> -->
@ -75,18 +78,19 @@
<image src="@/static/news/icon-recycling-08.png"></image>购物车
</view> -->
<!-- <view class="b">加入购物车</view> -->
<view class="c" @click="openPage(3)">立即预约</view>
<view class="c" v-if="type== 1" @click="openPage(3)">立即预约</view>
<view class="c" v-else @click="openPage(4)">立即预约</view>
</view>
<u-picker v-model="isShow" mode="selector" :range="selector" @confirm="confirm"></u-picker>
</view>
</template>
<script>
// import * as AddressApi from '@/api/address'
import * as AddressApi from '@/api/address';
export default{
data(){
return {
addressInfo: {},
tabIndex: 1,
tabIndex: 0,
isShow: false,
selector: ["门店回收","上门回收","邮寄回收"],
type: 1,
@ -95,25 +99,27 @@
},
onLoad(o) {
let info = uni.getStorageSync("getInfo");
info.content.replace(/style=""/g,'').replace(/<img src=/g,'<img style="width: 100%; display:block" src=');
if(info.content){
info.content.replace(/style=""/g,'').replace(/<img src=/g,'<img style="width: 100%; display:block" src=');
}
this.info = info;
this.type = o.type
uni.setNavigationBarTitle({
title: o.type == 1?"服务详情": '上门回收'
})
},
// onShow(){
// if(uni.getStorageSync("token")){
// // if(uni.getStorageSync("addressInfo")){
// // this.addressInfo = uni.getStorageSync("addressInfo")
// // uni.removeStorageSync("addressInfo")
// // }else{
// // this.getAddressList();
// // }
// }
// },
onShow(){
// if(uni.getStorageSync("token") && this.type==2){
// if(uni.getStorageSync("addressInfo")){
// this.addressInfo = uni.getStorageSync("addressInfo")
// uni.removeStorageSync("addressInfo")
// }else{
// this.getAddressList();
// }
// }
},
methods: {
//
// //
// async getAddressList() {
// const { status, data } = await AddressApi.list()
// if(status == 200){
@ -133,6 +139,16 @@
uni.navigateTo({
url: "/pages/news/recycling/confirm?tabIndex="+this.tabIndex+"&id="+this.info.server_id+"&type="+this.type
})
}else if(index == 5){
if(!uni.getStorageSync("token")){
uni.navigateTo({
url: "/pages/login/index"
})
return ;
}
uni.navigateTo({
url: "/pages/news/recycling/confirm1?tabIndex="+this.tabIndex+"&id="+this.info.server_id+"&type="+this.type
})
}else if(index == 4){
if(!uni.getStorageSync("token")){
uni.navigateTo({

@ -18,14 +18,14 @@
</view>
</scroll-view>
<view class="list">
<view class="item" v-for="(a,i) in list2" :key="i" @click="openPage()">
<image :src="a.server_image"></image>
<view class="item" v-for="(a,i) in list2" :key="i" @click="openPage(a)">
<image :src="a.recovery_image"></image>
<view class="info">
<view class="title">{{a.server_name}}</view>
<view class="desc">{{a.server_category}}</view>
<view class="title">{{a.recovery_name}}</view>
<view class="desc">{{a.recovery_category}}</view>
<view class="price">
<view class="btn">免支付预约{{a.line_price}}</view>
<view class="num">已售400+ 好评87%</view>
<view class="btn">免支付预约</view>
<view class="num">已售{{a.sold}}+ 好评{{a.comment_rate}}%</view>
</view>
</view>
</view>
@ -47,8 +47,9 @@
},
background1: {
background: '#fff',
},
list: [],
},
server_name: "",
list: ['欢迎来到这里!'],
list1: [],
list2: [],
}
@ -69,7 +70,7 @@
* 获取列表
*/
async getList() {
let {status, message, data} = await newFunApi.serverCategoryList({});
let {status, message, data} = await newFunApi.recoveryCategoryList({});
if(status == 200){
this.list1 = data.list
this.getGoodsList();
@ -79,17 +80,18 @@
* 获取商品列表
*/
async getGoodsList() {
let {status, message, data} = await newFunApi.serverList({
server_name: "",
let {status, message, data} = await newFunApi.recoveryRecoveryList({
server_name: this.server_name,
category_id: this.list1.length > 0?this.list1[this.tabIndex].category_id:""
});
if(status == 200){
this.list2 = data.list
}
},
openPage() {
openPage(a) {
uni.setStorageSync("getInfo",a)
uni.navigateTo({
url: "/pages/news/recycling/detail"
url: "/pages/news/recycling/detail?type=2&id="+a.recovery_id
})
},
tabItem(index){
@ -102,7 +104,7 @@
<style lang="scss" scoped>
.recycling{
background: url(@/static/news/recycling-bg.png) center top no-repeat;
background: url(https://www.saas.njrenzhou.com/static/news/recycling-bg.png) center top no-repeat;
background-size: 100% auto;
&-hd{
height: 340rpx;

@ -0,0 +1,532 @@
<template>
<view class="order">
<view class="order-navbar">
<u-navbar title="订单详情" :border-bottom="false" :background="isScroll?background:background1"></u-navbar>
</view>
<view class="order-hd">
<view class="l">
<view class="a">
<view class="name">
<image class="user" src="@/static/news/icon-recycling-order-01.png"></image>{{info.username}}
<text>{{info.mobile}}</text>
</view>
<image class="copy" @click="openPage(1,info.mobile)" src="@/static/news/icon-recycling-order-02.png"></image>
</view>
<view class="b">
<image class="pic" :src="info.server_image"></image>
<view class="info">
<view class="name">{{info.server_name}}</view>
<view class="price"><text>{{info.pay_price}}</text></view>
</view>
<view class="num">x1</view>
</view>
</view>
</view>
<view class="order-bd">
<view class="b">
<view class="item">
<view class="l">订单状态</view>
<view class="r">{{info.order_status_text}}</view>
</view>
<view class="item">
<view class="l">服务时间</view>
<view class="r">{{info.server_time}}</view>
</view>
<view class="item">
<view class="l">服务地址</view>
<view class="r">{{info.server_address}}</view>
</view>
<view class="item" v-if="info.dealer_name">
<view class="l">工程师姓名</view>
<view class="r">{{info.dealer_name}}</view>
</view>
<view class="item" v-if="info.dealer_remake">
<view class="l">工程师电话</view>
<view class="r">{{info.dealer_remake}}</view>
</view>
</view>
</view>
<view class="order-bd">
<view class="b">
<view class="item">
<view class="l">订单编号</view>
<view class="r">{{info.order_no}}</view>
<view class="m red" @click="openPage(1,info.order_no)">复制</view>
</view>
<view class="item">
<view class="l">订单价格</view>
<view class="r">{{info.pay_price}}</view>
</view>
<view class="item" v-if="info.is_pay == false">
<view class="l">支付方式</view>
<view class="r">{{info.pay_method=='balance'?'余额支付':'微信支付'}}</view>
</view>
</view>
</view>
<view class="order-bd">
<view class="b" style="margin-top: 0;">
<view class="item">
<view class="l">留言</view>
<view class="r">{{info.buyer_remark}}</view>
</view>
</view>
</view>
<view class="order-fd">
<view class="a" v-if="userInfo.user_type <= 20">
联系商家
<button open-type="contact"></button>
</view>
<view class="a" v-else @click="openPage(2,info.mobile)">
联系顾客
</view>
<view class="b b-on" v-if="info.is_cancel && (info.order_status == 10 || info.order_status == 20 )" @click="openPage(3)">
取消订单
</view>
<view class="b" v-if="info.is_dispatch && info.order_status == 20" @click="openPage(4)">
去派单
</view>
<view class="b" v-if="info.is_pay && info.order_status == 10" @click="openPage(5)">
去支付
</view>
<view class="b" v-if="info.is_success && info.order_status == 30" @click="openPage(6)">
立即完成
</view>
<view class="b b-on" v-if="info.order_status == 40">
已完成
</view>
<view class="b b-on" v-if="info.order_status == 50">
已取消
</view>
</view>
<u-mask :show="isShow" @click="show = false">
<view class="order-dialog">
<image class="pic" src="@/static/news/icon-recycling-order-04.png"></image>
<view class="a">回收订单提交成功</view>
<view class="b">感谢您对低碳环保做出的努力</view>
<view class="c">查看订单</view>
</view>
</u-mask>
</view>
</template>
<script>
import img from "@/static/news/refund-bg.png"
import img1 from "@/static/news/login-bg.png"
import * as newFunApi from '@/api/newFun'
export default {
data() {
return {
userInfo: {},
isScroll: true,
isShow: false,
currentIndex: 0,
background: {
background: 'url('+ img+') center -10px no-repeat',
backgroundSize: '100%',
},
background1: {
background: 'url('+ img1+') center -10px no-repeat',
backgroundSize: '100%',
},
info: {},
order_id: "",
type: ""
}
},
onLoad(o) {
if(o.order_id && o.type == 'fuwuorder'){
this.type = o.type
this.order_id = o.order_id;
}
},
onShow() {
this.getInfo()
this.userInfo = uni.getStorageSync("userInfo")
},
onPageScroll(e){
if(e.scrollTop <= 44){
this.isScroll = true;
}else{
this.isScroll = false;
}
},
methods: {
openPage(index,msg){
const that = this;
if(index == 1){
uni.setClipboardData({
data: msg,
success: function () {
uni.getClipboardData({
success: function (res) {
uni.showToast({
icon: "none",
title: "复制成功"
})
}
});
}
});
}else if(index == 2){
uni.makePhoneCall({
phoneNumber: msg
});
}else if(index == 3){
uni.showModal({
title: "温馨提示",
content: "是否取消该订单?",
confirmColor: "#F21A1C" ,
complete(res) {
if(res.confirm){
that.toDel();
}
}
})
}else if(index == 4){
uni.navigateTo({
url: "/pages/news3/dispatch?type=fuwuorder&order_id="+this.order_id
})
}else if(index == 5){
uni.navigateTo({
url: "/pages/news/recycling/pay?type=fuwuorder&order_id="+this.order_id
})
}else if(index == 6){
uni.showModal({
title: "温馨提示",
content: "是否完成该订单?",
confirmColor: "#F21A1C" ,
complete(res) {
if(res.confirm){
that.toConfirmSuccess();
}
}
})
}
},
//
async toConfirmSuccess() {
const {status, message, data} = await serverConfirmSuccess({
order_id: this.order_id
})
if(status == 200){
uni.showToast({
title: "提交成功"
})
this.getInfo();
}
},
//
async toDel() {
const {status, message, data} = await newFunApi.serverCancelOrder({
order_id: this.order_id
});
if(status == 200){
uni.showToast({
title: "取消成功"
})
this.getInfo();
}
},
/**
* 获取详情
*/
async getInfo() {
const {status, message, data} = await newFunApi.serverOrderDetails({
order_id: this.order_id
});
if(status == 200){
this.info = data.info
}
},
}
}
</script>
<style lang="scss" scoped>
.order{
width: 100%;
padding: 0 0 150rpx;
box-sizing: border-box;
overflow: hidden;
&-hd{
background: linear-gradient(180deg, #FCE2E7 0%, #FFFFFF 100%);
overflow: hidden;
.l{
width: 694rpx;
height: 276rpx;
background: #FFFFFF;
border-radius: 10rpx;
padding: 30rpx;
box-sizing: border-box;
margin: 0 auto;
margin-top: 30rpx;
.a{
display: flex;
align-items: center;
justify-content: space-between;
.name{
display: flex;
align-items: center;
image{
width: 40rpx;
height: 40rpx;
margin-right: 10rpx;
}
text{
margin-left: 10rpx;
font-size: 28rpx;
font-weight: 400;
color: #838383;
}
font-size: 32rpx;
font-weight: 500;
color: #333333;
}
.copy{
width: 40rpx;
height: 40rpx;
}
}
.b{
display: flex;
align-items: center;
margin-top: 20rpx;
.pic{
width: 182rpx;
height: 146rpx;
border-radius: 10rpx;
margin-right: 10rpx;
}
.info{
overflow: hidden;
.name{
width: 360rpx;
font-size: 28rpx;
font-weight: 400;
white-space: nowrap;
}
.price{
font-size: 24rpx;
font-weight: 600;
color: #F21A1C;
text{
font-size: 36rpx;
}
margin-top: 20rpx;
}
}
.num{
flex: 1;
font-size: 28rpx;
font-weight: 500;
color: #1E1E1E;
text-align: right;
}
}
}
}
&-bd{
width: 694rpx;
background: #FFFFFF;
border-radius: 10rpx;
margin: 0 auto;
margin-top: 20rpx;
padding: 20rpx 30rpx;
box-sizing: border-box;
.a{
display: flex;
align-items: center;
font-size: 28rpx;
font-weight: 400;
color: #7E7E7E;
text{
color: #1E1E1E;
margin-left: 10rpx;
}
image{
width: 40rpx;
height: 40rpx;
margin-right: 10rpx;
}
}
.b{
margin-top: 20rpx;
.item{
display: flex;
align-items: flex-start;
padding: 10rpx 0;
.l{
width: 140rpx;
font-size: 24rpx;
font-weight: 400;
color: #7E7E7E;
}
.r{
flex: 1;
font-size: 24rpx;
font-weight: 400;
color: #1E1E1E;
max-width: 380rpx;
input{
font-size: 24rpx;
color: #1E1E1E;
}
}
.m{
width: 120rpx;
display: flex;
align-items: center;
justify-content: flex-end;
color: #F63016;
font-size: 24rpx;
.btn{
width: 118rpx;
height: 48rpx;
border-radius: 8rpx;
border: 1px solid #F83A13;
text-align: center;
line-height: 48rpx;
}
.li{
flex: 1;
font-size: 20rpx;
font-weight: 400;
color: #989898;
text-align: center;
image{
width: 30rpx;
height: 30rpx;
display: block;
margin: 0 auto;
margin-bottom: 20rpx;
}
}
}
}
.items{
padding: 10rpx 0;
.l{
width: 140rpx;
font-size: 24rpx;
font-weight: 400;
color: #7E7E7E;
}
.r{
width: 100%;
overflow: hidden;
margin-top: 20rpx;
.pic{
width: 110%;
image{
width: 150rpx;
height: 150rpx;
border-radius: 10rpx;
margin-right: 10rpx;
margin-top: 20rpx;
float: left;
}
}
}
}
}
}
&-fd{
width: 100%;
background: #FFFFFF;
box-shadow: 18rpx -4rpx 23rpx 0px rgba(0,0,0,0.03);
box-sizing: border-box;
position: fixed;
left: 0;
bottom: 0;
z-index: 200;
padding: 20rpx 40rpx;
display: flex;
align-items: center;
justify-content: space-between;
.a{
text-align: center;
width: 146rpx;
line-height: 68rpx;
background: #FFFFFF;
border-radius: 76rpx;
opacity: 1;
border: 1px solid #D9D9D9;
font-size: 24rpx;
font-weight: 500;
color: #828282;
margin-right: 24rpx;
position: relative;
button{
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
z-index: 2;
opacity: 0;
}
}
.b{
width: 228rpx;
line-height: 78rpx;
background: linear-gradient(180deg, #FD5D06 0%, #F3211A 100%);
border-radius: 78px;
text-align: center;
font-size: 24rpx;
font-weight: 500;
color: #FFFFFF;
&-on{
background: #ccc;
}
}
}
&-dialog{
width: 537rpx;
height: 414rpx;
background: linear-gradient(180deg, #FFE4E4 0%, #FFFFFF 100%);
border-radius: 12rpx;
position: absolute;
left: 50%;
top: 50%;
margin-left: -268rpx;
margin-top: -207rpx;
z-index: 2;
text-align: center;
padding-top: 100rpx;
box-sizing: border-box;
.pic{
width: 112rpx;
height: 128rpx;
position: absolute;
left: 50%;
margin-left: -56rpx;
top: -60rpx;
z-index: 2;
}
.a{
font-size: 32rpx;
font-weight: 500;
color: #000000;
}
.b{
font-size: 28rpx;
font-weight: 400;
color: #727272;
margin-top: 30rpx;
}
.c{
width: 412rpx;
line-height: 72rpx;
background: #F55349;
border-radius: 8rpx;
font-size: 28rpx;
color: #FFFFFF;
margin: 0 auto;
margin-top: 60rpx;
}
}
}
</style>

@ -0,0 +1,665 @@
<template>
<view>
<view class="head-info">
<!-- 搜索 -->
<view class="searchContent">
<u-input v-model="order_no" placeholder="输入订单编号"/>
<u-icon name="search" @click="getOrderList(1)" class="search"></u-icon>
</view>
</view>
<!-- 分类列表 -->
<view class="container">
<view class="classify-list">
<view class="list" :class="{'action':classifyShow == -1}" @click="onClassify(-1)">
<text>全部</text>
<text class="line" v-show="classifyShow == -1"></text>
</view>
<view class="list" v-for="(item,index) in classList" :class="{'action':classifyShow==index}" @click="onClassify(index)" :key="index">
<text>{{item.name}}</text>
<text class="line" v-show="classifyShow==index"></text>
</view>
</view>
</view>
<view class="shopContent">
<view class="shopItem" v-for="(item,index) in goodsList" :key="index" @click="openPage(6,item.order_id)">
<view class="orderInfo">
<text>订单号{{item.order_no}}</text>
<text class="statusText" style="color: #FF6813;">{{item.order_status_text}}</text>
</view>
<view class="shopItemInfo">
<image :src="item.server_image"></image>
<view class="priceCon">
<view class="a">{{item.server_name}}</view>
<view class="b">
<text class="num">x1</text>
<view class="priceText">
<text style="font-size: 26upx;">¥</text>
<text>{{item.pay_price}}</text>
</view>
</view>
</view>
</view>
<view class="totalNum">
<!-- <text>含运费¥{{item.yunfei}}</text> -->
<text>共计</text>
<text>¥{{item.pay_price}}</text>
</view>
<view class="remark">
<view class="remarkTitle">
收件人姓名 {{item.username}}
</view>
<view class="remarkContent" v-if="item.buyer_remark">
{{item.buyer_remark}}
</view>
</view>
<view class="btnGroup">
<view class="btn info" v-if="item.is_cancel && (item.order_status == 10 || item.order_status == 20)" @click.stop="openPage(1,index,item)" >取消订单</view>
<view class="btn primary" v-if="item.is_pay && item.order_status == 10" @click.stop="openPage(2,index,item)">去支付</view>
<view class="btn primary" v-if="item.is_dispatch && item.order_status == 20" @click.stop="openPage(3,index,item)">去派单</view>
<view class="btn primary" v-if="item.is_success && item.order_status == 30" @click.stop="openPage(4,index,item)">立即完成</view>
<view class="btn info" v-if="item.order_status==40">已完成</view>
<view class="btn info" v-if="item.order_status==50">已取消</view>
</view>
</view>
</view>
<u-empty text="暂无信息" v-if="total == 0" mode="list" style="margin-top: 160rpx;"></u-empty>
<u-popup v-model="show" mode="bottom" border-radius="10" :closeable="true">
<view class="filterContent">
<view class="filterTitle">
订单筛选
</view>
<view class="filterItem">
<view class="filterItemContent">
<view class="itemTitle">
下单时间
</view>
<view class="timeContainer">
<u-input v-model="startTime" type="select" @click="getTime('start')" disabled placeholder="起始时间"/>
<text>-</text>
<u-input v-model="endTime" type="select" @click="getTime('end')" disabled placeholder="终止时间"/>
</view>
</view>
<view class="filterItemContent">
<view class="itemTitle">
来源
</view>
<view class="selectContainer">
<view @click="setResourceIndex(index)" :class="sourceIndex==index?'selectItem active':'selectItem'" v-for="(item,index) in selectList" :key="item.id">
{{item.name}}
</view>
</view>
</view>
<view class="filterItemContent">
<view class="itemTitle">
支付方式
</view>
<view class="selectContainer">
<view @click="setpayIndex(index)" :class="payIndex==index?'selectItem active':'selectItem'" v-for="(item,index) in payList" :key="item.id">
{{item.name}}
</view>
</view>
</view>
</view>
<view class="btnGroup">
<view class="resetBtn">
重置
</view>
<view class="confrim">
确定
</view>
</view>
</view>
<u-picker mode="time" z-index="99999" v-model="timeShow"></u-picker>
</u-popup>
</view>
</template>
<script>
import * as newFunApi from '@/api/newFun'
export default {
data(){
return{
searchText:'',
classifyShow: -1,
classList: [],
goodsList:[],
show:false,
timeShow:false,
selectList:[
{id:1,name:'预售'},
{id:2,name:'秒杀'},
{id:3,name:'拼团'},
{id:4,name:'砍价'},
],
payList:[
{id:1,name:'微信支付'},
{id:2,name:'好友代付'},
{id:3,name:'线下支付'},
],
sourceIndex:0,
payIndex:0,
startTime:null,
endTime:null,
total: 1,
order_no: "",
pageNum: 1,
}
},
onLoad(o) {
if(o.type){
console.log(o.type)
this.classifyShow = o.type-1
}
},
onShow() {
this.getList(1);
},
onPullDownRefresh() {
this.pageNum = 1;
this.goodsList = [];
this.getList();
setTimeout(()=>{
uni.stopPullDownRefresh();
},1000)
},
onReachBottom(){
if(this.goodsList.length <= this.total){
this.pageNum ++;
this.getList();
}
},
methods:{
openPage(i,index,a){
const that = this;
if(i == 1){
uni.showModal({
title: "温馨提示",
content: "是否取消该订单?",
confirmColor: "#F21A1C" ,
complete(res) {
if(res.confirm){
that.toDel(index,a.order_id);
}
}
})
}else if(i == 2){
uni.navigateTo({
url: "/pages/news/recycling/pay?type=fuwuorder&order_id="+a.order_id
})
}else if(i == 3){
uni.navigateTo({
url: "/pages/news3/dispatch?type=fuwuorder&order_id="+a.order_id
})
}else if(i == 6){
uni.navigateTo({
url: "/pages/news/recycling/orderDetail?type=fuwuorder&order_id="+index
})
}else if(i == 4){
uni.showModal({
title: "温馨提示",
content: "是否提交该订单?",
confirmColor: "#F21A1C" ,
complete(res) {
if(res.confirm){
that.toConfirmSuccess(a.order_id);
}
}
})
}
},
//
async toConfirmSuccess(order_id) {
const {status, message, data} = await serverConfirmSuccess({
order_id
})
if(status == 200){
uni.showToast({
title: "提交成功"
})
this.getInfo();
}
},
//
async toDel(index,order_id) {
const {status, message, data} = await newFunApi.serverCancelOrder({
order_id
});
if(status == 200){
uni.showToast({
title: "取消成功"
})
this.goodsList.splice(index,1);
}
},
/**
* 获取列表
*/
async getList() {
let {status, message, data} = await newFunApi.serverOrderInfoStatus({});
if(status == 200){
this.classList = data.list
this.getOrderList();
}
},
/**
* 获取商品列表
*/
async getOrderList(type) {
uni.showLoading({
title:"加载中"
})
if(type == 1){
this.pageNum = 1;
this.goodsList = []
}
let {status, message, data} = await newFunApi.serverOrderList({
order_no: this.order_no,
page: this.pageNum,
order_status: this.classList.length > 0?(this.classifyShow>=0?this.classList[this.classifyShow].value:''):""
});
if(status == 200){
uni.hideLoading();
this.goodsList = this.goodsList.concat(data.list)
this.total = data.total
}
},
getLable(val){
let arr = this.classList.filter(item=>{
return val==item.id
})
return arr[0].name
},
onSearch(){
uni.navigateTo({url:''})
},
onClassify(index){
this.classifyShow = index;
this.pageNum = 1;
this.goodsList = []
this.getOrderList();
},
setResourceIndex(index){
this.sourceIndex = index;
},
setpayIndex(index){
this.payIndex = index;
},
getTime(val){
console.log("ooo")
this.timeShow = true;
}
}
};
</script>
<style scoped lang="scss">
page{
background-color: #F7F8FA;
min-height:100%;
}
.nolist {
width: 100%;
display: block;
margin: 0 auto;
text-align: center;
padding: 150rpx 50rpx;
image {
width: 388rpx;
height: 378rpx;
}
.txt {
font-size: 32rpx;
margin-top: 20rpx;
font-weight: 500;
color: #fff;
}
}
.head-info{
padding:22upx 20upx;
.searchContent{
display: flex;
align-items: center;
justify-content: space-between;
position: relative;
padding: 0 30rpx;
box-sizing: border-box;
width: 100%;
background-color: #fff;
border-radius: 80rpx;
::v-deep .uni-input-placeholder{
margin-left:90upx;
z-index:10;
}
input{
margin-left: 60rpx;
flex: 1;
}
.search{
position: absolute;
top:20upx;
left:26upx;
z-index:9;
}
::v-deep .u-input{
flex:1;
width: 500rpx;
margin-left: 40upx;
}
::v-deep .uni-input-input{
background: #FFFFFF;
border-radius: 30px 30px 30px 30px;
opacity: 1;
padding-left:80upx;
width:calc(100% - 80upx);
}
.filter{
display: flex;
width: 100upx;
flex-direction: column;
align-items: center;
justify-content: center;
image{
width:34upx;
height:auto;
}
text{
font-size: 24upx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #616161;
}
}
}
}
.container{
background-color: #fff;
}
.classify-list{
white-space:nowrap;
width: 100%;
height: 100rpx;
overflow-x: auto;
overflow-y: hidden;
.list{
position: relative;
display:inline-block;
width: 18%;
height: 100%;
line-height: 100rpx;
text-align: center;
text{
font-size: 28rpx;
color: #3B3B3B;
}
.line{
position: absolute;
left: 50%;
bottom: 10rpx;
// width: 60%;
// height: 8rpx;
background: linear-gradient(to right,#f8f893,#fe9d00);
// border-radius: 10rpx;
transform: translate(-50%,0);
width: 60upx;
height: 8upx;
background: #FF6257;
border-radius: 29px 29px 29px 29px;
opacity: 1;
}
}
.action{
text{
font-size: 32rpx;
opacity: 1;
}
}
}
.shopContent{
.shopItem{
margin-bottom:14upx;
padding:36upx;
background-color: #fff;
.orderInfo{
display: flex;
align-items: center;
justify-content:space-between;
text{
font-size: 28upx;
color: #707070;
}
}
.shopItemInfo{
display: flex;
margin-top:40upx;
image{
width:180upx;
height:180upx;
flex-shrink: 0;
}
.priceCon{
flex:1;
overflow: hidden;
.a{
font-size: 28rpx;
font-weight: 500;
height: 50rpx;
color: #3B3B3B;
overflow: hidden;
margin-left:40upx;
}
.b{
display: flex;
align-items: flex-end;
justify-content: space-between;
margin-left:40upx;
margin-top: 80rpx;
}
.num{
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #1E1E1E;
}
.priceText{
display: flex;
align-items: center;
text{
font-size: 32upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #F21A1C;
font-weight: bold;
}
}
}
}
.totalNum{
text-align: right;
margin-top:70upx;
text:first-child{
font-size: 24upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #B7B7B7;
}
text:nth-child(2){
font-size: 32upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #3B3B3B;
margin:0 10upx;
}
text:nth-child(3){
font-size: 32upx;
font-family: PingFang SC, PingFang SC;
font-weight: 600;
color: #F21A1C;
}
}
.remark{
background: #F8F8F8;
border-radius: 0px 0px 0px 0px;
opacity: 1;
padding:20upx;
margin-top:20upx;
.remarkTitle{
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #3B3B3B;
}
.remarkContent{
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #939393;
margin-top:8upx;
}
}
.btnGroup{
display: flex;
margin-top:28upx;
flex-wrap: wrap;
justify-content: flex-end;
.btn{
width: 180upx;
height: 56upx;
background: #FFFFFF;
border-radius: 50px 50px 50px 50px;
opacity: 1;
font-size: 14px;
line-height: 56upx;
text-align: center;
margin-left:12upx;
}
.info{
border: 1px solid #9F9F9F;
color: #8B8B8B;
}
.primary{
border: 1px solid #F63116;
color: #F83F11;
}
}
}
}
.filterContent{
padding:32upx;
.filterTitle{
font-size: 32upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #303030;
text-align: center;
}
.filterItem{
.filterItemContent{
margin-top:40upx;
.itemTitle{
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #303030;
margin-bottom:20upx;
}
.timeContainer{
display: flex;
align-items: center;
::v-deep .uni-input-wrapper{
background: #F3F3F3;
border-radius: 22px 22px 22px 22px;
opacity: 1;
text-align: center;
}
::v-deep .u-input__right-icon{
display: none;
}
text{
margin:16upx;
}
}
.selectContainer{
display: flex;
.selectItem{
flex:1;
margin:0 10upx;
height: 70upx;
line-height: 66upx;
text-align: center;
background: #F3F3F3;
border-radius: 22px 22px 22px 22px;
opacity: 1;
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #A1A1A1;
}
.active{
border: 1px solid #F83F11;
color:#F21A1C;
background-color: #fff;
}
}
}
}
.btnGroup{
display: flex;
justify-content: center;
margin-top:100upx;
padding-bottom:60upx;
.resetBtn{
width: 216upx;
height: 70upx;
line-height: 66upx;
background: #DBDBDB;
border-radius: 22px 22px 22px 22px;
opacity: 1;
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #585858;
text-align: center;
}
.confrim{
width: 216upx;
height: 70upx;
text-align: center;
background: linear-gradient(180deg, #FD5D06 0%, #F3211A 100%);
border-radius: 50px 50px 50px 50px;
opacity: 1;
line-height: 66upx;
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #FFFFFF;
margin-left:24upx;
}
}
}
</style>

@ -0,0 +1,187 @@
<template>
<view class="pay">
<view class="pay-hd">
<view class="a">订单号<text>{{order_id}}</text></view>
<view class="a">支付价格<text>{{orderInfo.pay_price}}</text></view>
</view>
<view class="pay-bd">
<view class="title">选择支付方式</view>
<view class="item" v-for="(a,i) in list2" @click="tabItem(i)">
<image v-if="tabIndex == i" src="@/static/invoice/select-on.png"></image>
<image v-else src="@/static/invoice/select.png"></image>
{{a.method == 'wechat'?'微信支付':'余额支付'}}<text v-if="a.method == 'balance'">余额{{userInfo.balance}}</text>
</view>
</view>
<view class="pay-btn" @click="clickPay()">确认支付</view>
</view>
</template>
<script>
import * as newFunApi from '@/api/newFun'
export default {
data() {
return {
tabIndex: 0,
type: "",
order_id: "",
userInfo: {},
list2: [],
orderInfo: {},
isClick: true,
};
},
onLoad(o) {
console.log(o)
this.order_id = o.order_id;
this.type = o.type;
this.toServerOrder();
},
methods: {
clickPay(){
if(this.isClick == false){
return;
}
this.isClick = false;
if(this.list2[this.tabIndex].method == "balance"){
if(Number(this.orderInfo.pay_price) <= Number(this.userInfo.balance)){
this.toPay()
}else{
this.isClick = true;
uni.showToast({
icon: "none",
title: "余额不足,请选择其他支付方式"
})
}
}else if(this.list2[this.tabIndex].method == "wechat"){
uni.showToast({
icon: "none",
title: "暂无开通微信支付"
})
}
},
//
async toServerOrder(order_id) {
let {status, data, message } = await newFunApi.serverOrderInfo({
client: 'MP-WEIXIN',
order_id: this.order_id
})
if(status == 200){
this.userInfo = data.personal
this.orderInfo = data.order
this.list2 = data.paymentMethods;
console.log(data)
console.log(this.orderInfo)
console.log(this.list2)
console.log(this.userInfo)
}else{
uni.showToast({
icon: "none",
title: message
})
}
},
//
async toPay() {
const that = this;
const {status, message} = await newFunApi.serverOrderPay({
order_id: this.order_id,
method: 'balance',
client: "MP-WEIXIN",
})
if(status == 200) {
uni.showToast({
title: "支付成功"
})
this.isClick = true;
setTimeout(()=>{
if(that.type == 'fuwu'){
uni.redirectTo({
url: "/pages/news/recycling/orderList"
})
}else if(that.type == 'fuwuorder'){
uni.navigateBack({
delta:1
})
}
},1000)
}else{
this.isClick = true;
uni.showToast({
icon: "none",
title: message
})
}
},
tabItem(i){
this.tabIndex = i
}
}
}
</script>
<style lang="scss" scoped>
.pay{
overflow: hidden;
&-hd{
width: 710rpx;
padding: 0 20rpx;
box-sizing: border-box;
background-color: #fff;
margin: 0 auto;
margin-top: 20rpx;
.a{
padding: 20rpx 0;
display: flex;
align-items: center;
font-size: 28rpx;
color: #666;
text{
margin-left: 20rpx;
color: #212121;
}
}
}
&-bd{
width: 710rpx;
padding: 0 20rpx;
box-sizing: border-box;
background-color: #fff;
margin: 0 auto;
margin-top: 20rpx;
.title{
padding: 30rpx 0;
font-size: 30rpx;
}
.item{
padding: 20rpx 0;
display: flex;
align-items: center;
font-size: 28rpx;
color: #212121;
image{
width: 30rpx;
height: 30rpx;
margin-right: 20rpx;
}
text{
margin-left: 20rpx;
color: #666;
}
}
}
&-btn{
width: 710rpx;
padding: 0 20rpx;
line-height: 80rpx;
box-sizing: border-box;
background-color: #ff3939;
margin: 0 auto;
margin-top: 160rpx;
text-align: center;
font-size: 36rpx;
color: #fff;
border-radius: 20rpx;
}
}
</style>

@ -4,14 +4,14 @@
<image src="/static/news3/filter.png" mode="aspectFill"></image>
<view class="right">
<view class="title">
上门回收服务
{{info.server_name}}
</view>
<view class="num">
x1
</view>
<view class="price">
<text style="font-size: 26upx;">¥</text>
<text>288</text>
<text>{{info.pay_price}}</text>
</view>
</view>
</view>
@ -19,27 +19,109 @@
<view class="left">
接单师傅
</view>
<view class="right">
<text>请选择接单师傅</text>
<view class="right" @click="openPage()">
<text>{{tabIndex>=0?list[tabIndex].real_name:'请选择接单师傅'}}</text>
<u-icon name="arrow-right" color="#C3C3C3" size="28"></u-icon>
</view>
</view>
<view class="btn">
<u-popup v-model="isShow" mode="bottom" border-radius="12" mask-close-able="false" closeable>
<view class="goods-classify">
<view class="goods-classify-hd">选择工程师</view>
<view class="goods-classify-bd">
<scroll-view scroll-y class="m">
<view class="item" v-for="(a,i) in list" @click="tabMItem(i)"><view :class="tabIndex == i?'item-on':''">{{a.real_name}}</view></view>
</scroll-view>
</view>
</view>
</u-popup>
<view class="btn" @click="toPaidan()">
确认派单
</view>
</view>
</template>
<script>
import * as newFunApi from '@/api/newFun'
export default{
data(){
return{
order_id: "",
info: {},
list: [],
tabIndex: -1,
isShow: false,
isClick: true
}
},
methods:{
onLoad(o) {
if(o.order_id && o.type == 'fuwuorder'){
this.type = o.type
this.order_id = o.order_id;
this.getInfo()
this.getList();
}
},
methods:{
openPage() {
this.isShow = true
},
tabMItem(i){
this.tabIndex = i;
this.isShow = false
},
/**
* 获取详情
*/
async getInfo() {
const {status, message, data} = await newFunApi.serverOrderDetails({
order_id: this.order_id
});
if(status == 200){
this.info = data.info
}
},
/**
* 获取列表
*/
async getList() {
const {status, message, data} = await newFunApi.serverGetEngineer({
order_id: this.order_id
});
if(status == 200){
this.list = data.list
}
},
/**
* 派单
*/
async toPaidan() {
if(this.isClick == false){
return ;
}
this.isClick = false
const {status, message, data} = await newFunApi.serverDispatchOrders({
order_id: this.order_id,
dealer_id: this.tabIndex <= -1?"":this.list[this.tabIndex].user_id
});
if(status == 200){
this.isClick = true
uni.showToast({
title: "派单成功"
})
setTimeout(()=>{
uni.navigateBack({
delta: 1
})
},2000)
}else{
uni.showToast({
icon: "none",
title: message
})
}
},
}
}
</script>
@ -49,6 +131,96 @@ page{
min-height: 100%;
background-color: #F7F8FA;
}
.goods-classify{
width: 100%;
overflow: hidden;
&-hd{
padding: 30rpx 60rpx;
position: relative;
font-size: 32rpx;
font-weight: 500;
color: #303030;
text-align: center;
.a{
display: flex;
align-items: center;
font-size: 28rpx;
font-weight: 500;
color: #FF624F;
position: absolute;
top: 30rpx;
left: 40rpx;
z-index: 2;
}
}
&-bd{
overflow: hidden;
display: flex;
align-items: flex-start;
.l{
width: 210rpx;
height: 560rpx;
background-color: #F7F8FA;
.item{
text-overflow: ellipsis;
overflow: hidden;
height: 70rpx;
font-size: 28rpx;
font-weight: 400;
color: #303030;
white-space: nowrap;
line-height: 70rpx;
padding-left: 30rpx;
box-sizing: border-box;
text-align: left;
&-on{
background-color: #fff;
font-weight: 500;
}
}
}
.m{
width: 100%;
text-align: center;
max-height: 560rpx;
.item{
text-overflow: ellipsis;
overflow: hidden;
height: 70rpx;
font-size: 28rpx;
font-weight: 400;
color: #303030;
white-space: nowrap;
line-height: 70rpx;
padding-left: 80rpx;
box-sizing: border-box;
text-align: left;
&-on{
color: #FF624F;
}
}
}
.r{
width: 540rpx;
height: 560rpx;
.item{
text-overflow: ellipsis;
overflow: hidden;
height: 70rpx;
font-size: 28rpx;
font-weight: 400;
color: #303030;
white-space: nowrap;
line-height: 70rpx;
padding-left: 80rpx;
box-sizing: border-box;
&-on{
color: #FF624F;
}
}
}
}
}
.dispatchItem{
display: flex;
align-items: center;

@ -1,7 +1,7 @@
<template>
<view class="page">
<view >
<u-navbar title="" :background="background"></u-navbar>
<u-navbar is-back="false" title="" :background="background"></u-navbar>
</view>
<view class="section_1">
<view class="box_1">
@ -188,30 +188,30 @@
<view class="goodsManage">
<view class="manageTitle">
<text lines="1" class="text_5 titleLeft">服务订单</text>
<text lines="1" class="text_6 titleRight">查看全部</text>
<text lines="1" class="text_6 titleRight" @click="toFuwu(0)">查看全部</text>
<image
src="https://lanhu.oss-cn-beijing.aliyuncs.com/FigmaDDSSlicePNG734520a67fe8e1d927b6d6e351bd2ade.png"
class="thumbnail_4"></image>
</view>
<view class="grounding goodsOrder">
<view class="image-text_2">
<view class="image-text_2" @click="toFuwu(3)">
<image src="/static/user/unpay.png" class="label_1"></image>
<view class="text-group_2">
<text lines="1" class="text_7">2</text>
<text lines="1" class="text_8">待确认</text>
</view>
</view>
<view class="image-text_3 send">
<view class="image-text_3 send" @click="toFuwu(2)">
<image src="/static/user/unsend.png" class="label_2"></image>
<text lines="1" class="text-group_3">待服务</text>
</view>
<view class="box_3 send">
<view class="box_3 send" @click="toFuwu(1)">
<image src="/static/user/untake.png" class="image_4"></image>
<text lines="1" class="text_9">待支付</text>
</view>
<view class="image-text_4 send">
<view class="image-text_4 send" @click="toFuwu(4)">
<image src="/static/user/detail.png" class="label_3"></image>
<text lines="1" class="text-group_4">待验收</text>
<text lines="1" class="text-group_4">已完成</text>
</view>
</view>
</view>
@ -489,7 +489,8 @@
load: that.isFirstload
})
.then(result => {
that.userInfo = result.data.userInfo
that.userInfo = result.data.userInfo;
uni.setStorageSync("userInfo",result.data.userInfo)
resolve(that.userInfo)
})
.catch(err => {
@ -502,6 +503,17 @@
})
})
},
toFuwu(type) {
if(!uni.getStorageSync('token')){
uni.navigateTo({
url: "/pages/login/index"
})
return ;
}
uni.navigateTo({
url: "/pages/news/recycling/orderList?type="+type
})
},
goLogin() {
//
uni.navigateTo({
@ -568,8 +580,8 @@
.section_1 {
position: relative;
width: 902rpx;
background: url('../../static/home/homeback.png') 100% no-repeat;
background-size: 100% 100%;
background: url('@/static/member/head.png') center -44px no-repeat;
background-size: 100% auto;
display: flex;
flex-direction: column;
margin: -26rpx 0 0 -60rpx;

Loading…
Cancel
Save