|
|
<template>
|
|
|
<view class="page">
|
|
|
<scroll-view class="scrolllist" scroll-x="true" scroll-with-animation :scroll-left="scrollLeft">
|
|
|
<view class="tabicl" v-for="(item, index) in list" :key="index" :class="index==tabCurrentIndex?'cur':''" @tap="tabSelect" :data-id="index">
|
|
|
<view class="ptext">{{item.name}}</view>
|
|
|
<view class="pline"></view>
|
|
|
</view>
|
|
|
</scroll-view>
|
|
|
<swiper class="swiper-box" :duration="100" :current="tabCurrentIndex" @animationfinish="animationfinish">
|
|
|
<swiper-item class="swiper-item" v-for="tabItem in list" :key="tabItem.orderId">
|
|
|
<scroll-view scroll-y style="height: 100%;width: 100%;">
|
|
|
<view class="scell" v-if="tabItem.slist.length>0">
|
|
|
<view v-for="(item, index) in tabItem.slist" :key="index" class="oitem">
|
|
|
|
|
|
<view class="obcon" @click="gotoInfo(item.orderId)">
|
|
|
<image style="width: 50rpx; height: 50rpx;margin-right: 8rpx;" src="/static/image/sj.png"></image>
|
|
|
<text>{{item.storeName}}</text>
|
|
|
</view>
|
|
|
|
|
|
<view class="otop" @click="gotoInfo(item.orderId)">
|
|
|
<view class="hleft">
|
|
|
订单编号<text style="margin-left: 10rpx;">{{item.orderSn}}</text>
|
|
|
</view>
|
|
|
<view class="hright">
|
|
|
<!-- 描述:订单状态 0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭 -->
|
|
|
<view v-if="item.status==0" class="ztip">待付款</view>
|
|
|
<view v-else-if="item.status==1" class="jtip">待发货</view>
|
|
|
<view v-else-if="item.status==2" class="htip">待收货</view>
|
|
|
<!-- <view v-else-if="item.status==3" class="htip">待评价</view> -->
|
|
|
<view v-else-if="item.status==3" class="wtip">已完成</view>
|
|
|
<view v-else-if="item.status==4" class="ctip">已关闭</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
|
|
|
<view class="oscon" v-for="(cell, ii) in item.orderItemList" @click="gotoProInfo(cell.productId)">
|
|
|
<view class="osimg imgload">
|
|
|
<image class="osimg" v-if="cell.pic" :src="cell.pic" mode="aspectFill"></image>
|
|
|
</view>
|
|
|
<view class="osname">
|
|
|
<text class="ntxt">{{cell.productName}}</text>
|
|
|
<text class="txt">规格:{{ retSku(cell.spData) }}</text>
|
|
|
<text class="txt">单价:¥{{cell.salePrice}}</text>
|
|
|
<text class="txt">数量:{{cell.quantity}}</text>
|
|
|
</view>
|
|
|
<view class="omoney">
|
|
|
<text class="omtip">{{cell.salePrice?'¥'+(cell.salePrice*cell.quantity).toFixed(2):"¥0"}}</text>
|
|
|
</view>
|
|
|
</view>
|
|
|
|
|
|
<view class="obtncon">
|
|
|
<view class="osprice">
|
|
|
总金额:{{item.totalAmount?'¥'+(item.totalAmount).toFixed(2):"¥0"}}
|
|
|
</view>
|
|
|
<view class="obtn">
|
|
|
<view class="obtnleft"></view>
|
|
|
<!-- 描述:订单状态 0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭-->
|
|
|
<!-- 描述:售后状态:0, "待处理" 1, "退货中" 2, "已完成" 3, "已拒绝" 4,"用户取消" -->
|
|
|
<button type="primary" class="cancelbtn" :data-id="item.orderId" @click="gotoInfo((item.orderId))">查看详情</button>
|
|
|
<button v-if="item.status==0" type="primary" class="cancelbtn" :data-id="item.orderId" @click="canceldo">取消订单</button>
|
|
|
<button v-if="item.status==0" type="primary" class="paybtn":data-id="item.orderId" @click="gotopay(item)">去支付</button>
|
|
|
<button v-if="item.status==2" type="primary" class="cancelbtn" :data-id="item.orderId" @click="gotowl(item.orderId)">查看物流</button>
|
|
|
<button v-if="item.status==2" type="primary" class="viewbtn" :data-id="item.orderId" @click="checkdo">确认收货</button>
|
|
|
<button v-if="item.status==3" type="primary" class="gzbtn" :data-id="item.orderId" @click="gotopj(item)">去评价</button>
|
|
|
<button v-if="item.status==3" type="primary" class="gzbtn" :data-id="item.orderId" @click="gotosh(item)">申请售后</button>
|
|
|
<button v-if="item.status==3&&item.aftersaleStatus==0" type="primary" class="gzbtn" :data-id="item.orderId" @click="gotoshcancel(item)">取消售后</button>
|
|
|
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
|
|
|
<view v-if="tabItem.slist.length==0 && tabItem.loadStatus=='noMore'" class="nodata"></view>
|
|
|
<uni-load-more v-if="tabItem.slist.length>0" iconType="circle" :status="tabItem.loadStatus" />
|
|
|
|
|
|
</scroll-view>
|
|
|
</swiper-item>
|
|
|
</swiper>
|
|
|
|
|
|
<!-- 是否登录 -->
|
|
|
<openlogin ref="loginId" @getPhoneNumber="getPhoneNumber"></openlogin>
|
|
|
|
|
|
<!-- 支付弹框 -->
|
|
|
<uni-popup ref="paypup" type="share">
|
|
|
<view class="allcon">
|
|
|
<view class="hcon">
|
|
|
<view class="htitle">订单支付<text style="font-size: 28rpx;">(请在2小时内支付)</text></view>
|
|
|
<view class="rclose" @tap="_hide">
|
|
|
<uni-icons type="closeempty" size="24" color="#999999"></uni-icons>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="mcon" v-if="info">
|
|
|
¥ <text class="mcost">{{price_pay}}</text>
|
|
|
</view>
|
|
|
<view class="selcon">
|
|
|
<radio-group class="checklist-group" @change="change">
|
|
|
<view class="sitem" v-for="(item,index) in paylist" :key="index">
|
|
|
<view class="simg">
|
|
|
<image class="img" :src="item.icon"></image>
|
|
|
</view>
|
|
|
<view class="conright">
|
|
|
<view class="sname">
|
|
|
{{item.name}}
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="selbtn">
|
|
|
<radio :value="item.id" :checked="item.isChecked" />
|
|
|
</view>
|
|
|
</view>
|
|
|
</radio-group>
|
|
|
</view>
|
|
|
<button type="primary" class="paybtn" @click="paydo()">确认支付</button>
|
|
|
</view>
|
|
|
</uni-popup>
|
|
|
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import { myCache,getRemoteFile } from '../../utils/utils.js';
|
|
|
import openlogin from "../components/openlogin.vue";
|
|
|
export default {
|
|
|
components: {
|
|
|
openlogin
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
openId:"",
|
|
|
phone:"",
|
|
|
userid:"",
|
|
|
tabCurrentIndex: 0,
|
|
|
scrollLeft: 0,//tabs
|
|
|
// 订单状态 -1->全部;0->待付款;1->待发货;2->待收货/使用;-2->售后单
|
|
|
list:[
|
|
|
{
|
|
|
id:0,
|
|
|
order_state:-1,
|
|
|
page: 0,
|
|
|
size: 10,
|
|
|
loadStatus:'more', // 'more', // 'noMore',
|
|
|
name:'全部',
|
|
|
slist:[
|
|
|
{
|
|
|
id:"ord0001",
|
|
|
orderid:"ord0001",
|
|
|
business:"商家1",
|
|
|
productid:"1",
|
|
|
productprice:39.9,
|
|
|
productname:"杜威克瑜伽球加厚防滑",
|
|
|
img:'../../static/image/theme/p1.jpg',
|
|
|
productspecs:"M 白",
|
|
|
productnum:1,
|
|
|
productunit:"个",
|
|
|
orderstate:'1',
|
|
|
orderdate:"2025-06-23 10:26:09"
|
|
|
},
|
|
|
{
|
|
|
id:"ord0002",
|
|
|
orderid:"ord0002",
|
|
|
business:"商家2",
|
|
|
productid:"1",
|
|
|
productprice:39.9,
|
|
|
productname:"杜威克瑜伽球加厚防滑",
|
|
|
img:'../../static/image/theme/p3.jpg',
|
|
|
productspecs:"M 白",
|
|
|
productnum:2,
|
|
|
productunit:"个",
|
|
|
orderstate:'1',
|
|
|
orderdate:"2025-06-23 10:26:09"
|
|
|
},
|
|
|
{
|
|
|
id:"ord0003",
|
|
|
orderid:"ord0003",
|
|
|
business:"商家3",
|
|
|
productid:"1",
|
|
|
productprice:39.9,
|
|
|
productname:"杜威克瑜伽球加厚防滑",
|
|
|
img:'../../static/image/theme/p1.jpg',
|
|
|
productspecs:"L 白",
|
|
|
productnum:1,
|
|
|
productunit:"个",
|
|
|
orderstate:'2',
|
|
|
orderdate:"2025-06-23 10:26:09"
|
|
|
},
|
|
|
{
|
|
|
id:"ord0004",
|
|
|
orderid:"ord0004",
|
|
|
business:"商家4",
|
|
|
productid:"1",
|
|
|
productprice:39.9,
|
|
|
productname:"杜威克瑜伽球加厚防滑",
|
|
|
img:'../../static/image/theme/p1.jpg',
|
|
|
productspecs:"M 白",
|
|
|
productnum:1,
|
|
|
productunit:"个",
|
|
|
orderstate:'3',
|
|
|
orderdate:"2025-06-23 10:26:09"
|
|
|
},
|
|
|
{
|
|
|
id:"ord0005",
|
|
|
orderid:"ord0005",
|
|
|
business:"商家5",
|
|
|
productid:"1",
|
|
|
productprice:39.9,
|
|
|
productname:"杜威克瑜伽球加厚防滑",
|
|
|
img:'../../static/image/theme/p1.jpg',
|
|
|
productspecs:"M 白",
|
|
|
productnum:2,
|
|
|
productunit:"个",
|
|
|
orderstate:'4',
|
|
|
orderdate:"2025-06-23 10:26:09"
|
|
|
},
|
|
|
{
|
|
|
id:"ord0006",
|
|
|
orderid:"ord0006",
|
|
|
business:"商家6",
|
|
|
productid:"1",
|
|
|
productprice:39.9,
|
|
|
productname:"杜威克瑜伽球加厚防滑",
|
|
|
img:'../../static/image/theme/p1.jpg',
|
|
|
productspecs:"M 白",
|
|
|
productnum:3,
|
|
|
productunit:"个",
|
|
|
orderstate:'5',
|
|
|
orderdate:"2025-06-23 10:26:09"
|
|
|
},
|
|
|
{
|
|
|
id:"ord0007",
|
|
|
orderid:"ord0007",
|
|
|
business:"商家7",
|
|
|
productid:"1",
|
|
|
productprice:39.9,
|
|
|
productname:"杜威克瑜伽球加厚防滑",
|
|
|
img:'../../static/image/theme/p1.jpg',
|
|
|
productspecs:"M 白",
|
|
|
productnum:1,
|
|
|
productunit:"个",
|
|
|
orderstate:'6',
|
|
|
orderdate:"2025-06-23 10:26:09"
|
|
|
}
|
|
|
]
|
|
|
},
|
|
|
{
|
|
|
id:1,
|
|
|
order_state:0,
|
|
|
page: 0,
|
|
|
size: 10,
|
|
|
loadStatus:'more', // 'more',
|
|
|
name:'待付款',
|
|
|
slist:[
|
|
|
{
|
|
|
id:"ord0001",
|
|
|
orderid:"ord0001",
|
|
|
business:"商家1",
|
|
|
productid:"1",
|
|
|
productprice:39.9,
|
|
|
productname:"杜威克瑜伽球加厚防滑",
|
|
|
img:'../../static/image/theme/p1.jpg',
|
|
|
productspecs:"M 白",
|
|
|
productnum:1,
|
|
|
productunit:"个",
|
|
|
orderstate:'1',
|
|
|
orderdate:"2025-06-23 10:26:09"
|
|
|
},
|
|
|
{
|
|
|
id:"ord0002",
|
|
|
orderid:"ord0002",
|
|
|
business:"商家2",
|
|
|
productid:"1",
|
|
|
productprice:39.9,
|
|
|
productname:"杜威克瑜伽球加厚防滑",
|
|
|
img:'../../static/image/theme/p3.jpg',
|
|
|
productspecs:"M 白",
|
|
|
productnum:2,
|
|
|
productunit:"个",
|
|
|
orderstate:'1',
|
|
|
orderdate:"2025-06-23 10:26:09"
|
|
|
},
|
|
|
]
|
|
|
},
|
|
|
{
|
|
|
id:2,
|
|
|
order_state:1,
|
|
|
page: 0,
|
|
|
size: 10,
|
|
|
loadStatus:'more', // 'more', // 'noMore',
|
|
|
name:'待发货',
|
|
|
slist:[
|
|
|
{
|
|
|
id:"ord0003",
|
|
|
orderid:"ord0003",
|
|
|
business:"商家3",
|
|
|
productid:"1",
|
|
|
productprice:39.9,
|
|
|
productname:"杜威克瑜伽球加厚防滑",
|
|
|
img:'../../static/image/theme/p1.jpg',
|
|
|
productspecs:"L 白",
|
|
|
productnum:1,
|
|
|
productunit:"个",
|
|
|
orderstate:'2',
|
|
|
orderdate:"2025-06-23 10:26:09"
|
|
|
},
|
|
|
]
|
|
|
},
|
|
|
{
|
|
|
id:3,
|
|
|
order_state:2,
|
|
|
page: 0,
|
|
|
size: 10,
|
|
|
loadStatus:'more', // 'more', // 'noMore',
|
|
|
name:'待收货',
|
|
|
slist:[
|
|
|
{
|
|
|
id:"ord0004",
|
|
|
orderid:"ord0004",
|
|
|
business:"商家4",
|
|
|
productid:"1",
|
|
|
productprice:39.9,
|
|
|
productname:"杜威克瑜伽球加厚防滑",
|
|
|
img:'../../static/image/theme/p1.jpg',
|
|
|
productspecs:"M 白",
|
|
|
productnum:1,
|
|
|
productunit:"个",
|
|
|
orderstate:'3',
|
|
|
orderdate:"2025-06-23 10:26:09"
|
|
|
},
|
|
|
]
|
|
|
},
|
|
|
{
|
|
|
id:4,
|
|
|
order_state:-2,
|
|
|
page: 0,
|
|
|
size: 10,
|
|
|
loadStatus:'more', // 'more', // 'noMore',
|
|
|
name:'退款/售后',
|
|
|
slist:[
|
|
|
{
|
|
|
id:"ord0007",
|
|
|
orderid:"ord0007",
|
|
|
business:"商家7",
|
|
|
productid:"1",
|
|
|
productprice:39.9,
|
|
|
productname:"杜威克瑜伽球加厚防滑",
|
|
|
img:'../../static/image/theme/p1.jpg',
|
|
|
productspecs:"M 白",
|
|
|
productnum:1,
|
|
|
productunit:"个",
|
|
|
orderstate:'6',
|
|
|
orderdate:"2025-06-23 10:26:09"
|
|
|
}
|
|
|
]
|
|
|
},
|
|
|
],
|
|
|
// page: {
|
|
|
// page: 1,
|
|
|
// size: 10,
|
|
|
// status:-1 //订单状态 -1->全部;0->待付款;1->待发货;2->待收货/使用;-2->售后单
|
|
|
// },
|
|
|
paylist: [],
|
|
|
payType: "" , // 1微信支付 2支付宝支付
|
|
|
pindex: 0, //当前需要支付项
|
|
|
price_pay: 39.9, // 当前需要支付金额
|
|
|
businessid: 0, //当前需要支付账单号
|
|
|
alipay_number: '', // 支付宝交易号
|
|
|
bills: [],
|
|
|
info: {
|
|
|
id: '',
|
|
|
} // 支付订单信息
|
|
|
};
|
|
|
},
|
|
|
onLoad(option) {
|
|
|
if(option.id||option.id==0){
|
|
|
if(parseInt(option.id)==0){
|
|
|
this.tabCurrentIndex=0;
|
|
|
}
|
|
|
else{
|
|
|
this.tabCurrentIndex=parseInt(option.id);
|
|
|
}
|
|
|
this.scrollLeft = (this.tabCurrentIndex - 1) * 60;
|
|
|
}
|
|
|
myCache("iforderload",0);
|
|
|
this.reset();
|
|
|
// 支付方式
|
|
|
this.paylist=[
|
|
|
{
|
|
|
id:"1",
|
|
|
name:"微信支付",
|
|
|
icon:"../../static/image/wx.png",
|
|
|
isChecked:true
|
|
|
},
|
|
|
{
|
|
|
id:"2",
|
|
|
name:"支付宝支付",
|
|
|
icon:"../../static/image/zfb.png",
|
|
|
isChecked:true
|
|
|
}
|
|
|
];
|
|
|
this.payType='2';
|
|
|
this.platform='2';
|
|
|
},
|
|
|
onShow(option){
|
|
|
if(myCache("iforderload")){
|
|
|
myCache("iforderload",0);
|
|
|
this.reset();
|
|
|
}
|
|
|
},
|
|
|
onReady(){
|
|
|
this.openId = myCache('openId');
|
|
|
var user = myCache('user');
|
|
|
this.userid = user.userid? user.userid:'';
|
|
|
this.phone = user.userphone;
|
|
|
if(this.userid==""||this.userid=="0"){
|
|
|
uni.navigateTo({
|
|
|
url: `/pages/login/login`
|
|
|
});
|
|
|
}
|
|
|
},
|
|
|
onPullDownRefresh() {
|
|
|
setTimeout(()=>{
|
|
|
uni.stopPullDownRefresh()
|
|
|
},100);
|
|
|
},
|
|
|
methods: {
|
|
|
retSku(spData){
|
|
|
var sels=[];
|
|
|
if(spData){
|
|
|
var suk= JSON.parse(spData);
|
|
|
var keys=Object.keys(suk);
|
|
|
keys.forEach(dd=>{
|
|
|
sels.push(dd+":"+suk[dd])
|
|
|
});
|
|
|
}
|
|
|
return sels.join(',');
|
|
|
},
|
|
|
async getinfo() {
|
|
|
console.log("order______getinfo")
|
|
|
var that = this;
|
|
|
// uni.showLoading({
|
|
|
// title: '数据加载中...'
|
|
|
// });
|
|
|
var orderid = myCache("siginorderid");
|
|
|
const {data: res} = await uni.$http.post('/alipay/getOrderById', {id:orderid});
|
|
|
console.log(res)
|
|
|
if(res){
|
|
|
// 订单详情信息
|
|
|
if(res.state&&res.state==6){
|
|
|
// 已签署 待支付
|
|
|
myCache("ifsigncomplete",'');
|
|
|
myCache("signtype",'');
|
|
|
myCache("siginorderid",'');
|
|
|
uni.showModal({
|
|
|
title: '提示',
|
|
|
content: '电子签署成功!',
|
|
|
showCancel: false,
|
|
|
confirmText: '确定',
|
|
|
success: ress => {
|
|
|
if (ress.confirm) {
|
|
|
// 重新加载数据
|
|
|
that.reset();
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
else{
|
|
|
// 签署不成功,清空参数
|
|
|
myCache("ifsigncomplete",'');
|
|
|
myCache("signtype",'');
|
|
|
myCache("siginorderid",'');
|
|
|
}
|
|
|
}
|
|
|
else{
|
|
|
// 签署不成功,清空参数
|
|
|
myCache("ifsigncomplete",'');
|
|
|
myCache("signtype",'');
|
|
|
myCache("siginorderid",'');
|
|
|
}
|
|
|
},
|
|
|
async paybackdo(){
|
|
|
var that=this;
|
|
|
// 查询代扣签约
|
|
|
var param={
|
|
|
orderId: this.info.id
|
|
|
};
|
|
|
// 查询代扣签约状态
|
|
|
uni.showLoading({
|
|
|
title: '代扣签约查询中....'
|
|
|
});
|
|
|
const {data: res} = await uni.$http.post("/antchainapi/queryWithholdSign", param);
|
|
|
console.log('代扣签约查询',res);
|
|
|
myCache("signtype","");
|
|
|
myCache("payorderid","");
|
|
|
myCache("price_pay","");
|
|
|
myCache("businessid","");
|
|
|
if(res.success){
|
|
|
// 已经签约成功了,直接调起支付
|
|
|
var trade_no =res.trade_no;
|
|
|
if(!trade_no){
|
|
|
uni.showModal({
|
|
|
title: '提示!',
|
|
|
content: '代扣签约成功,发起支付失败!请重试!',
|
|
|
showCancel: false
|
|
|
});
|
|
|
return false;
|
|
|
}
|
|
|
uni.showLoading({
|
|
|
title: '代扣签约成功,发起支付....'
|
|
|
});
|
|
|
// 调起支付
|
|
|
uni.getProvider({
|
|
|
service: 'payment',
|
|
|
success: function (res) {
|
|
|
console.log(res.provider,"uni.getProvider");
|
|
|
if (~res.provider.indexOf('alipay')) {
|
|
|
uni.requestPayment({
|
|
|
"provider": "alipay", //固定值为"alipay"
|
|
|
"orderInfo": trade_no,// 交易单号
|
|
|
success: function (resr) {
|
|
|
console.log("支付宝调起支付成功",resr);
|
|
|
if (resr && resr.resultCode === '9000') {
|
|
|
// 支付成功 执行想要的操作
|
|
|
uni.showLoading({
|
|
|
title: '订单支付成功!'
|
|
|
});
|
|
|
// 回调改订单状态
|
|
|
that.paySuccessDo(trade_no);
|
|
|
}
|
|
|
else{
|
|
|
uni.showModal({
|
|
|
title: '提示',
|
|
|
content: '请求支付失败!请重试!',
|
|
|
showCancel: false,
|
|
|
confirmText: '确定',
|
|
|
success: ress => {
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
},
|
|
|
fail: function (err) {
|
|
|
console.log("支付宝调起支付失败",err)
|
|
|
console.log('支付失败:' + JSON.stringify(err));
|
|
|
that.payFailDo();
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
}
|
|
|
else{
|
|
|
uni.showModal({
|
|
|
title: '提示',
|
|
|
content: '请求代扣签约失败!请重试!',
|
|
|
showCancel: false,
|
|
|
confirmText: '确定'
|
|
|
});
|
|
|
}
|
|
|
},
|
|
|
getPhoneNumber(e){
|
|
|
if(e.phone){
|
|
|
this.phone = e.phone
|
|
|
}
|
|
|
if(e.userid){
|
|
|
this.userid = e.userid
|
|
|
}
|
|
|
},
|
|
|
async getOrderList() {
|
|
|
if(this.list[this.tabCurrentIndex].loadStatus!=="noMore")
|
|
|
{
|
|
|
uni.showLoading({
|
|
|
title: '订单加载中...'
|
|
|
});
|
|
|
var para={
|
|
|
"page":this.list[this.tabCurrentIndex].page+'',
|
|
|
"size":this.list[this.tabCurrentIndex].size+'',
|
|
|
"status":this.list[this.tabCurrentIndex].order_state+''
|
|
|
}
|
|
|
const {data: res} = await uni.$http.get('/api/order/page', para);
|
|
|
if(res&&res.content&&res.content.length>0){
|
|
|
if(res.totalPages&&(1*res.totalPages-1)>this.list[this.tabCurrentIndex].page){
|
|
|
// 继续加载
|
|
|
this.list[this.tabCurrentIndex].loadStatus="more";
|
|
|
this.list[this.tabCurrentIndex].page=this.list[this.tabCurrentIndex].page+1;
|
|
|
}
|
|
|
else{
|
|
|
this.list[this.tabCurrentIndex].loadStatus="noMore";
|
|
|
}
|
|
|
res.content.forEach((cell,idx)=>{
|
|
|
this.list[this.tabCurrentIndex].slist.push(cell);
|
|
|
});
|
|
|
this.$forceUpdate();
|
|
|
}
|
|
|
else{
|
|
|
this.list[this.tabCurrentIndex].loadStatus="noMore";
|
|
|
this.$forceUpdate();
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
loadData(){
|
|
|
// 加载
|
|
|
if(this.list[this.tabCurrentIndex].loadStatus=="more") {
|
|
|
this.list[this.tabCurrentIndex].loadStatus="loading";
|
|
|
setTimeout(() => {
|
|
|
this.getOrderList();
|
|
|
}, 300);
|
|
|
}
|
|
|
},
|
|
|
tabSelect(e) {
|
|
|
console.log("tabSelect")
|
|
|
this.tabCurrentIndex = e.currentTarget.dataset.id;
|
|
|
this.scrollLeft = (e.currentTarget.dataset.id - 1) * 60;
|
|
|
this.loadData();
|
|
|
},
|
|
|
animationfinish({ detail: { current } }) {
|
|
|
console.log("animationfinish")
|
|
|
this.tabCurrentIndex = current;
|
|
|
this.loadData();
|
|
|
},
|
|
|
handleChange(e) {
|
|
|
console.log("animationfinish")
|
|
|
//原在animationfinish中的操作转移到这里
|
|
|
this.loadData();
|
|
|
},
|
|
|
gotoProInfo(id){
|
|
|
console.log(id);
|
|
|
// 商品详情
|
|
|
uni.navigateTo({
|
|
|
url: `/pages/product/detail?id=${id}`
|
|
|
});
|
|
|
},
|
|
|
gotoInfo(id){
|
|
|
// 订单详情
|
|
|
uni.navigateTo({
|
|
|
url: `/pages/order/orderinfo?id=${id}`
|
|
|
});
|
|
|
},
|
|
|
gotowl(id){
|
|
|
// 查看物流
|
|
|
uni.navigateTo({
|
|
|
url: `/pages/order/orderwl?id=${id}`
|
|
|
});
|
|
|
},
|
|
|
// 去公证
|
|
|
async notarizado(e){
|
|
|
// 公证
|
|
|
console.log(e);
|
|
|
var id= parseInt(e.currentTarget.dataset.id);
|
|
|
// // 跳转详情公证
|
|
|
// uni.navigateTo({
|
|
|
// url: `/pages/order/orderinfo?id=${id}`
|
|
|
// });
|
|
|
|
|
|
uni.showLoading({
|
|
|
title: '公证申请中...'
|
|
|
});
|
|
|
var param={
|
|
|
oid:id
|
|
|
}
|
|
|
const {data: res} = await uni.$http.post('/gongzheng/dogongzheng', param);
|
|
|
console.log(res);
|
|
|
if(res){
|
|
|
// 缓存公证
|
|
|
myCache("notarizaresult",res);
|
|
|
myCache("notarizaid",id);
|
|
|
|
|
|
// JSON数组
|
|
|
// {
|
|
|
// "appId":"2021004136682713",
|
|
|
// "apply_No":"3C20240409202103511",
|
|
|
// "applicant_Name":"王**",
|
|
|
// "id_Number":"431281198809086010",
|
|
|
// "is_Auto":0, "apply_Type":7
|
|
|
// }
|
|
|
|
|
|
// app 跳转支付宝小程序操作
|
|
|
// #ifdef APP
|
|
|
let alipayUrl = null;
|
|
|
if (uni.getSystemInfoSync().platform == "ios") {
|
|
|
alipayUrl = 'alipay://platformapi/startapp?appId=2021004138655183';
|
|
|
}else{
|
|
|
alipayUrl = 'alipays://platformapi/startapp?appId=2021004138655183';
|
|
|
}
|
|
|
//alipayUrl 已经有? 问号了,所以这里需要进行编码
|
|
|
let queryString = this.objectToQueryString(res);
|
|
|
let params = encodeURIComponent(queryString);
|
|
|
// page=pages/index/index 跳转到支付宝小程序页面的页面路径
|
|
|
alipayUrl = `${alipayUrl}&path=pages/micro-police/index&query=${params}`;
|
|
|
alipayUrl=encodeURIComponent(alipayUrl);
|
|
|
alipayUrl=`https://ds.alipay.com/?scheme=${alipayUrl}`;
|
|
|
console.log('alipayUrl',alipayUrl)
|
|
|
//唤起支付宝
|
|
|
plus.runtime.openURL(alipayUrl);
|
|
|
// #endif
|
|
|
|
|
|
// #ifdef MP-ALIPAY
|
|
|
my.navigateToMiniProgram({
|
|
|
// appId: '2021004106675225', // 16 位
|
|
|
appId: '2021004138655183', // 16 位
|
|
|
path: 'pages/micro-police/index',
|
|
|
extraData: res,
|
|
|
success: function (res) {
|
|
|
console.log(res);
|
|
|
},
|
|
|
fail: function (err) {
|
|
|
console.log(err);
|
|
|
}
|
|
|
});
|
|
|
// #endif
|
|
|
}
|
|
|
else{
|
|
|
uni.showToast({
|
|
|
title:res.msg? res.msg:'公证申请获取失败!',
|
|
|
icon: 'error',
|
|
|
duration: 2000
|
|
|
});
|
|
|
}
|
|
|
|
|
|
},
|
|
|
objectToQueryString(obj) {
|
|
|
return Object.entries(obj).map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`).join('&');
|
|
|
},
|
|
|
// 取消售后
|
|
|
gotoshcancel(info){
|
|
|
var data=encodeURIComponent(JSON.stringify(info));
|
|
|
uni.navigateTo({
|
|
|
url: `/pages/order/ordersh?data=${data.id}`
|
|
|
});
|
|
|
},
|
|
|
// 申请售后
|
|
|
gotosh(info){
|
|
|
var data=encodeURIComponent(JSON.stringify(info));
|
|
|
uni.navigateTo({
|
|
|
url: `/pages/order/ordersh?data=${data.id}`
|
|
|
});
|
|
|
},
|
|
|
// 去评价
|
|
|
gotopj(info){
|
|
|
var data=encodeURIComponent(JSON.stringify(info));
|
|
|
uni.navigateTo({
|
|
|
url: `/pages/order/orderpj?data=${data.id}`
|
|
|
});
|
|
|
},
|
|
|
// 列表 去支付 按钮
|
|
|
gotopay(item){
|
|
|
this.info=item;
|
|
|
this.$forceUpdate();
|
|
|
// this.getbill(item);
|
|
|
|
|
|
// 打开支付方式
|
|
|
this._show();
|
|
|
},
|
|
|
// 生成支付单据(订单已有支付单据编号)
|
|
|
async getbill(item) {
|
|
|
uni.showLoading({
|
|
|
title: '支付加载中...'
|
|
|
});
|
|
|
const {data: res} = await uni.$http.post('/alipay/getBillsListByOrderId', {id:this.info.id});
|
|
|
console.log(res);
|
|
|
if(res&&res.length>0){
|
|
|
// 订单账单信息
|
|
|
this.bills=res;
|
|
|
//数组重新排序
|
|
|
this.bills.sort(function(a,b){
|
|
|
return a.pay_number-b.pay_number
|
|
|
});
|
|
|
this.price_pay=0;
|
|
|
this.businessid=0;
|
|
|
this.bills.forEach((cell,idx)=>{
|
|
|
if(!this.price_pay&&cell.pay_state==0 ){
|
|
|
if(cell.pay_number==1){
|
|
|
// 增加包支付和屏保
|
|
|
this.price_pay= (item.price_spbz?parseFloat(item.price_spbz):0)+(item.price_fwbjg?parseFloat(item.price_fwbjg):0)+ parseFloat(cell.bill_money);
|
|
|
}
|
|
|
else{
|
|
|
this.price_pay= cell.bill_money;
|
|
|
}
|
|
|
this.businessid=cell.id;
|
|
|
this.pindex=idx;
|
|
|
this.$forceUpdate();
|
|
|
}
|
|
|
});
|
|
|
this.$forceUpdate();
|
|
|
this._show();
|
|
|
}
|
|
|
},
|
|
|
paydo(){
|
|
|
|
|
|
// 是否登录
|
|
|
if(!this.iflogin()){
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
// 去支付
|
|
|
if (!this.payType) {
|
|
|
uni.showModal({
|
|
|
title: '提示!',
|
|
|
content: '请选择支付类型!',
|
|
|
showCancel: false
|
|
|
});
|
|
|
return false;
|
|
|
}
|
|
|
if(!this.businessid){
|
|
|
uni.showModal({
|
|
|
title: '提示!',
|
|
|
content: '实际支付金额异常!请刷新后支付!',
|
|
|
showCancel: false
|
|
|
});
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
var that = this;
|
|
|
if(this.payType=='1'){
|
|
|
// 微信支付
|
|
|
that.wxpaydo();
|
|
|
}
|
|
|
else if(this.payType=='2'){
|
|
|
// 支付宝一般支付
|
|
|
that.alipaydo();
|
|
|
}
|
|
|
else if(this.payType=='3'){
|
|
|
// 支付宝免密代扣
|
|
|
that.alisignpaydo();
|
|
|
}
|
|
|
|
|
|
},
|
|
|
async alipaydo(){
|
|
|
console.log('支付宝支付');
|
|
|
var that = this;
|
|
|
uni.showLoading({
|
|
|
title: '发起支付....'
|
|
|
});
|
|
|
// 支付宝调起支付
|
|
|
//申请支付
|
|
|
var param={
|
|
|
"payId": that.info.payId,
|
|
|
"type": that.payType, // 1 微信支付,2 支付宝支付
|
|
|
"wechatType": ""
|
|
|
};
|
|
|
const {data: ress} = await uni.$http.post("/api/order/orderPay", param);
|
|
|
console.log('ress',ress);
|
|
|
if(ress){
|
|
|
// 调起支付
|
|
|
var trade_no = ress.trim();
|
|
|
uni.getProvider({
|
|
|
service: 'payment',
|
|
|
success: function (res) {
|
|
|
console.log(res.provider,"uni.getProvider");
|
|
|
if (~res.provider.indexOf('alipay')) {
|
|
|
// 支付宝支付
|
|
|
uni.requestPayment({
|
|
|
"provider": "alipay", //固定值为"alipay"
|
|
|
"orderInfo": trade_no,// 交易单号
|
|
|
success: function (resr) {
|
|
|
console.log("支付宝调起支付成功",resr);
|
|
|
if(resr["errMsg"]=='requestPayment:ok'&&resr["rawdata"]){
|
|
|
var rawdata= JSON.parse(resr["rawdata"]);
|
|
|
if(rawdata.resultStatus==='9000'){
|
|
|
// 关闭对话框
|
|
|
that._hide();
|
|
|
uni.showModal({
|
|
|
title: '提示',
|
|
|
content: '订单支付成功!',
|
|
|
showCancel: false,
|
|
|
confirmText: '确定',
|
|
|
success: ress => {
|
|
|
// 跳转到待接单订单列表
|
|
|
uni.redirectTo({
|
|
|
url: `/pages/order/orderlist?id=0`
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
else{
|
|
|
uni.showModal({
|
|
|
title: '提示',
|
|
|
content: '请求支付失败!请重试!',
|
|
|
showCancel: false,
|
|
|
confirmText: '确定',
|
|
|
success: ress => {
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
else{
|
|
|
uni.showModal({
|
|
|
title: '提示',
|
|
|
content: '请求支付失败!请重试!',
|
|
|
showCancel: false,
|
|
|
confirmText: '确定',
|
|
|
success: ress => {
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
},
|
|
|
fail: function (err) {
|
|
|
console.log("支付宝调起支付失败",err)
|
|
|
console.log('支付失败:' + JSON.stringify(err));
|
|
|
that.payFailDo();
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
}
|
|
|
else{
|
|
|
// 请求支付订单失败,
|
|
|
uni.showModal({
|
|
|
title: '提示',
|
|
|
content: '请求支付失败!订单已经关闭或异常!请返回订单重试!',
|
|
|
showCancel: false,
|
|
|
confirmText: '确定',
|
|
|
success: ress => {
|
|
|
// 返回订单全部列表
|
|
|
uni.redirectTo({
|
|
|
url: `/pages/order/orderlist?id=0`
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
},
|
|
|
async wxpaydo(){
|
|
|
console.log('微信支付');
|
|
|
var that = this;
|
|
|
uni.showLoading({
|
|
|
title: '发起支付....'
|
|
|
});
|
|
|
// 支付宝调起支付
|
|
|
//申请支付
|
|
|
var param={
|
|
|
"payId": that.info.payId,
|
|
|
"type": that.payType, // 1 微信支付,2 支付宝支付
|
|
|
"wechatType": ""
|
|
|
};
|
|
|
const {data: ress} = await uni.$http.post("/api/order/orderPay", param);
|
|
|
console.log('ress',ress);
|
|
|
if(ress){
|
|
|
// 调起支付
|
|
|
var trade_no = ress.trim();
|
|
|
uni.getProvider({
|
|
|
service: 'payment',
|
|
|
success: function (res) {
|
|
|
console.log(res.provider,"uni.getProvider");
|
|
|
if (~res.provider.indexOf('wxpay')) {
|
|
|
const payParams = {
|
|
|
appid: res.data.appid,
|
|
|
noncestr: res.data.noncestr,
|
|
|
package: res.data.package,
|
|
|
partnerid: res.data.partnerid,
|
|
|
prepayid: res.data.prepayid,
|
|
|
timestamp: res.data.timestamp,
|
|
|
sign: res.data.sign
|
|
|
};
|
|
|
const orderInfo = JSON.stringify(payParams);
|
|
|
// 唤起微信支付
|
|
|
uni.requestPayment({
|
|
|
provider: 'wxpay',
|
|
|
orderInfo: orderInfo,
|
|
|
success: (resr) => {
|
|
|
console.log("微信调起支付成功",resr);
|
|
|
if(resr["errMsg"]=='requestPayment:ok'&&resr["rawdata"]){
|
|
|
var rawdata= JSON.parse(resr["rawdata"]);
|
|
|
if(rawdata.resultStatus==='9000'){
|
|
|
// 关闭对话框
|
|
|
that._hide();
|
|
|
uni.showModal({
|
|
|
title: '提示',
|
|
|
content: '订单支付成功!',
|
|
|
showCancel: false,
|
|
|
confirmText: '确定',
|
|
|
success: ress => {
|
|
|
// 跳转到待接单订单列表
|
|
|
uni.redirectTo({
|
|
|
url: `/pages/order/orderlist?id=0`
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
else{
|
|
|
uni.showModal({
|
|
|
title: '提示',
|
|
|
content: '请求支付失败!请重试!',
|
|
|
showCancel: false,
|
|
|
confirmText: '确定',
|
|
|
success: ress => {
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
else{
|
|
|
uni.showModal({
|
|
|
title: '提示',
|
|
|
content: '请求支付失败!请重试!',
|
|
|
showCancel: false,
|
|
|
confirmText: '确定',
|
|
|
success: ress => {
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
},
|
|
|
fail: (err) => {
|
|
|
// 支付失败处理
|
|
|
console.log('支付失败:', err);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
}
|
|
|
else{
|
|
|
// 请求支付订单失败,
|
|
|
uni.showModal({
|
|
|
title: '提示',
|
|
|
content: '请求支付失败!订单已经关闭或异常!请返回订单重试!',
|
|
|
showCancel: false,
|
|
|
confirmText: '确定',
|
|
|
success: ress => {
|
|
|
// 返回订单全部列表
|
|
|
uni.redirectTo({
|
|
|
url: `/pages/order/orderlist?id=0`
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
iflogin(){
|
|
|
this.openId = myCache('openId');
|
|
|
var user = myCache('user');
|
|
|
this.userid = user.userid? user.userid:'';
|
|
|
this.phone = user.userphone;
|
|
|
if(this.userid==""||this.userid=="0"||this.phone==""){
|
|
|
uni.navigateTo({
|
|
|
url: `/pages/login/login`
|
|
|
});
|
|
|
return false;
|
|
|
}
|
|
|
else{
|
|
|
return true;
|
|
|
}
|
|
|
},
|
|
|
async payFailDo(){
|
|
|
// 支付失败
|
|
|
uni.hideLoading();
|
|
|
var that=this;
|
|
|
uni.showModal({
|
|
|
title: '提示',
|
|
|
content: '支付订单失败!请重新再试!',
|
|
|
showCancel: false,
|
|
|
confirmText: '确定',
|
|
|
success: ress => {
|
|
|
if (ress.confirm) {
|
|
|
// 提示
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
async paySuccessDo(trade_no){
|
|
|
var that = this;
|
|
|
// 支付成功
|
|
|
uni.hideLoading();
|
|
|
// 回调修改订单账单状态
|
|
|
var param={
|
|
|
id: parseInt(this.businessid),
|
|
|
pay_money:Math.round(100*parseFloat(this.price_pay))/100,
|
|
|
alipay_number:trade_no,
|
|
|
};
|
|
|
uni.showLoading({
|
|
|
title: '支付中...'
|
|
|
});
|
|
|
|
|
|
const {data: res} = await uni.$http.post('/alipay/updateBillsState', param);
|
|
|
if(res){
|
|
|
uni.showModal({
|
|
|
title: '提示',
|
|
|
content: '订单支付成功!',
|
|
|
showCancel: false,
|
|
|
confirmText: '确定',
|
|
|
success: ress => {
|
|
|
// // 跳转到待接单订单列表
|
|
|
// uni.redirectTo({
|
|
|
// url: `/pages/order/orderlist?id=9`
|
|
|
// });
|
|
|
// 重新加载刷新
|
|
|
this.reset();
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
else{
|
|
|
uni.showModal({
|
|
|
title: '提示',
|
|
|
content: res.msg? res.msg:'订单支付成功!订单状态异常!请联系客服!',
|
|
|
showCancel: false,
|
|
|
confirmText: '确定',
|
|
|
success: ress => {
|
|
|
// // 跳转到待接单订单列表
|
|
|
// uni.redirectTo({
|
|
|
// url: `/pages/order/orderlist?id=0`
|
|
|
// });
|
|
|
// 重新加载刷新
|
|
|
this.reset();
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
// 关闭对话框
|
|
|
this._hide();
|
|
|
},
|
|
|
change(e){
|
|
|
console.log(e);
|
|
|
if(e.detail.value){
|
|
|
this.payType=e.detail.value;
|
|
|
}
|
|
|
},
|
|
|
_show() {
|
|
|
this.$refs.paypup.open();
|
|
|
},
|
|
|
_hide() {
|
|
|
this.$refs.paypup.close();
|
|
|
// 关闭弹出层
|
|
|
setTimeout(() => {
|
|
|
uni.hideLoading();
|
|
|
}, 1000);
|
|
|
},
|
|
|
_cancel() {
|
|
|
this._hide();
|
|
|
},
|
|
|
// 确认收货
|
|
|
checkdo(e){
|
|
|
console.log(e);
|
|
|
var id= e.currentTarget.dataset.id;
|
|
|
var that = this;
|
|
|
//取消订单
|
|
|
uni.showModal({
|
|
|
title: '提示',
|
|
|
content: '确定订单收货吗?',
|
|
|
cancelText: '取消',
|
|
|
confirmText: '确定',
|
|
|
success: ress => {
|
|
|
if (ress.confirm) {
|
|
|
that.checkdodo(id);
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
async checkdodo(id){
|
|
|
uni.showToast({
|
|
|
title: '确认收货中...',
|
|
|
icon: 'success',
|
|
|
duration: 2000
|
|
|
});
|
|
|
var param={
|
|
|
orderId:id
|
|
|
};
|
|
|
const {data: res} = await uni.$http.post('/api/order/orderComplete', param);
|
|
|
if(res&&res=="确认收货成功"){
|
|
|
uni.showToast({
|
|
|
title: '订单已确认收货!',
|
|
|
icon: 'success',
|
|
|
duration: 2000
|
|
|
});
|
|
|
// 重新加载
|
|
|
this.reset();
|
|
|
}
|
|
|
else{
|
|
|
uni.showToast({
|
|
|
title: res.msg? res.msg:'订单确认收货失败!',
|
|
|
icon: 'error',
|
|
|
duration: 2000
|
|
|
});
|
|
|
}
|
|
|
},
|
|
|
// 取消订单
|
|
|
canceldo(e){
|
|
|
console.log(e);
|
|
|
var id= e.currentTarget.dataset.id;
|
|
|
var that = this;
|
|
|
//取消订单
|
|
|
uni.showModal({
|
|
|
title: '提示',
|
|
|
content: '确定要取消订单吗?',
|
|
|
cancelText: '取消',
|
|
|
confirmText: '确定',
|
|
|
success: ress => {
|
|
|
if (ress.confirm) {
|
|
|
that.deldo(id);
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
async deldo(id){
|
|
|
var param={
|
|
|
idList:[id]
|
|
|
};
|
|
|
uni.showToast({
|
|
|
title: '取消中...',
|
|
|
icon: 'success',
|
|
|
duration: 2000
|
|
|
});
|
|
|
const {data: res} = await uni.$http.post('/api/order/orderCancel', param);
|
|
|
if(res&&res=="取消订单成功"){
|
|
|
uni.showToast({
|
|
|
title: '订单已取消!',
|
|
|
icon: 'success',
|
|
|
duration: 2000
|
|
|
});
|
|
|
// 重新加载
|
|
|
this.reset();
|
|
|
}
|
|
|
else{
|
|
|
uni.showToast({
|
|
|
title: res.msg? res.msg:'订单取消失败!',
|
|
|
icon: 'error',
|
|
|
duration: 2000
|
|
|
});
|
|
|
}
|
|
|
},
|
|
|
reset(){
|
|
|
console.log("reset")
|
|
|
// 重新加载数据
|
|
|
this.list.forEach((cell,idx)=>{
|
|
|
this.list[idx].loadStatus='more';
|
|
|
this.list[idx].page=0;
|
|
|
this.list[idx].size=10;
|
|
|
this.list[idx].slist=[];
|
|
|
});
|
|
|
this.$forceUpdate();
|
|
|
this.loadData();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
.page {
|
|
|
padding: 0;
|
|
|
position: relative;
|
|
|
background-image: url('@/static/image/bg.jpg');
|
|
|
background-attachment: fixed;
|
|
|
background-size: cover;
|
|
|
background-position: center center;
|
|
|
min-height: calc(100vh - var(--window-top) - var(--window-bottom));
|
|
|
}
|
|
|
.olistcon{
|
|
|
padding: 0 20rpx 20rpx 20rpx;
|
|
|
.olist{
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
.ocell{
|
|
|
font-size: 26rpx;
|
|
|
color:#747474;
|
|
|
padding: 10rpx 0;
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
justify-content: space-between;
|
|
|
align-items: center;
|
|
|
.red{
|
|
|
color:#ff3d0e;
|
|
|
}
|
|
|
.green{
|
|
|
color:#00cd00;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
.swiper-box {
|
|
|
flex: 1;
|
|
|
height: calc(100vh - var(--window-top) - 130rpx) !important;
|
|
|
}
|
|
|
.swiper-item {
|
|
|
height: 100%;
|
|
|
}
|
|
|
.scrolllist{
|
|
|
height: 110rpx;
|
|
|
background: #FFF;
|
|
|
white-space: nowrap;
|
|
|
width: 100%;
|
|
|
}
|
|
|
.tabicl{
|
|
|
min-width: 120rpx;
|
|
|
height: 100rpx;
|
|
|
line-height: 100rpx;
|
|
|
position: relative;
|
|
|
display: inline-block;
|
|
|
overflow: hidden;
|
|
|
margin-right: 20rpx;
|
|
|
}
|
|
|
.ptext{
|
|
|
font-size: 30rpx;
|
|
|
text-align: center;
|
|
|
color: #000;
|
|
|
font-weight: 600;
|
|
|
height: 90rpx;
|
|
|
}
|
|
|
.cur .ptext{
|
|
|
color: #89965f;
|
|
|
font-size: 33rpx;
|
|
|
font-weight: 600;
|
|
|
}
|
|
|
.cur .pline{
|
|
|
width: 40%;
|
|
|
height: 9rpx;
|
|
|
background: #89965f;
|
|
|
border-radius: 6rpx;
|
|
|
opacity: 1;
|
|
|
margin-left: 30%;
|
|
|
}
|
|
|
.nodata{
|
|
|
width: 100%;
|
|
|
height: calc(100vh - 400rpx) !important;
|
|
|
line-height: calc(100vh) !important;
|
|
|
background-image: url('/static/image/no.png');
|
|
|
background-size: 52% auto;
|
|
|
background-repeat: no-repeat;
|
|
|
background-position: center;
|
|
|
font-size: 28rpx;
|
|
|
text-align: center;
|
|
|
color: #89965f;
|
|
|
overflow: hidden;
|
|
|
}
|
|
|
.scell{
|
|
|
display: flex;
|
|
|
flex-wrap: wrap;
|
|
|
justify-content: flex-start;
|
|
|
margin: 20rpx;
|
|
|
.oitem{
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
background-color: #FFFFFF;
|
|
|
border-radius: 6rpx;
|
|
|
padding: 20rpx;
|
|
|
width: 100%;
|
|
|
margin-bottom: 20rpx;
|
|
|
.obcon{
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
align-items: center;
|
|
|
justify-content: flex-start;
|
|
|
height: 60rpx;
|
|
|
line-height: 60rpx;
|
|
|
color: #000;
|
|
|
font-size: 30rpx;
|
|
|
padding-bottom: 20rpx;
|
|
|
border-bottom: 1rpx solid #eee;
|
|
|
}
|
|
|
.otop{
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
padding: 20rpx 0 0;
|
|
|
height: 60rpx;
|
|
|
line-height: 60rpx;
|
|
|
width: 100%;
|
|
|
.hleft{
|
|
|
display: flex;
|
|
|
flex:1;
|
|
|
align-items: center;
|
|
|
font-size: 26rpx;
|
|
|
color: #000;
|
|
|
}
|
|
|
.hright{
|
|
|
display: flex;
|
|
|
justify-content: flex-end;
|
|
|
align-items: center;
|
|
|
// <!--1:待付款,2:待发货,3:待收货 ,4:待评价 ,5:已完成,6:订单取消-->
|
|
|
.ztip{
|
|
|
border-radius: 12rpx;
|
|
|
color:#1296db;
|
|
|
font-size: 26rpx;
|
|
|
padding: 0;
|
|
|
height: 40rpx;
|
|
|
line-height: 40rpx;
|
|
|
}
|
|
|
.jtip{
|
|
|
border-radius: 12rpx;
|
|
|
color:#feb467;
|
|
|
font-size: 26rpx;
|
|
|
padding: 0;
|
|
|
height: 40rpx;
|
|
|
line-height: 40rpx;
|
|
|
}
|
|
|
.htip{
|
|
|
border-radius: 12rpx;
|
|
|
color:#fc6900;
|
|
|
font-size: 26rpx;
|
|
|
padding: 0;
|
|
|
height: 40rpx;
|
|
|
line-height: 40rpx;
|
|
|
}
|
|
|
.hwtip{
|
|
|
border-radius: 12rpx;
|
|
|
color:#FF0000;
|
|
|
font-size: 26rpx;
|
|
|
padding: 0;
|
|
|
height: 40rpx;
|
|
|
line-height: 40rpx;
|
|
|
}
|
|
|
.wtip{
|
|
|
border-radius: 12rpx;
|
|
|
color:#43cca4;
|
|
|
font-size: 26rpx;
|
|
|
padding: 0;
|
|
|
height: 40rpx;
|
|
|
line-height: 40rpx;
|
|
|
}
|
|
|
.gtip{
|
|
|
border-radius: 12rpx;
|
|
|
color:#0036D6;
|
|
|
font-size: 26rpx;
|
|
|
padding: 0;
|
|
|
height: 40rpx;
|
|
|
line-height: 40rpx;
|
|
|
}
|
|
|
.ftip{
|
|
|
border-radius: 12rpx;
|
|
|
color:#6A81F1;
|
|
|
font-size: 26rpx;
|
|
|
padding: 0;
|
|
|
height: 40rpx;
|
|
|
line-height: 40rpx;
|
|
|
}
|
|
|
.ctip{
|
|
|
border-radius: 12rpx;
|
|
|
color:#888;
|
|
|
font-size: 26rpx;
|
|
|
padding: 0;
|
|
|
height: 40rpx;
|
|
|
line-height: 40rpx;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
.obtncon{
|
|
|
border-top: 1rpx solid #eee;
|
|
|
padding: 10rpx 0 0;
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
}
|
|
|
.osprice{
|
|
|
display: flex;
|
|
|
justify-content: flex-end;
|
|
|
font-size: 30rpx;
|
|
|
color: #000;
|
|
|
}
|
|
|
.obtn{
|
|
|
display: flex;
|
|
|
justify-content: flex-end;
|
|
|
padding: 10rpx 0 0;
|
|
|
.obtnleft{
|
|
|
display: flex;
|
|
|
flex: 1;
|
|
|
}
|
|
|
.omoney{
|
|
|
display: flex;
|
|
|
flex:1;
|
|
|
height: 60rpx;
|
|
|
width: 100%;
|
|
|
color:#333;
|
|
|
align-items: center;
|
|
|
.omtip{
|
|
|
font-size: 36rpx;
|
|
|
color:rgb(252, 105, 0);
|
|
|
}
|
|
|
}
|
|
|
.cancelbtn{
|
|
|
background-color: #FFFFFF !important;
|
|
|
margin-left: 20rpx;
|
|
|
border-radius: 50rpx;
|
|
|
height: 50rpx;
|
|
|
line-height: 48rpx;
|
|
|
padding: 0 20rpx;
|
|
|
font-size: 24rpx;
|
|
|
color:#888;
|
|
|
border:1rpx solid #888;
|
|
|
}
|
|
|
.cancelbtn::after{
|
|
|
border:0 !important;
|
|
|
}
|
|
|
.viewbtn{
|
|
|
background-color: #FFFFFF !important;
|
|
|
margin-left: 20rpx;
|
|
|
border-radius: 50rpx;
|
|
|
border-radius: 50rpx;
|
|
|
height: 50rpx;
|
|
|
line-height: 48rpx;
|
|
|
padding: 0 20rpx;
|
|
|
font-size: 24rpx;
|
|
|
color:#6A81F1;
|
|
|
border:1rpx solid #6A81F1;
|
|
|
}
|
|
|
.viewbtn::after{
|
|
|
border:0 !important;
|
|
|
}
|
|
|
.pjbtn{
|
|
|
background-color: #FFFFFF !important;
|
|
|
margin-left: 20rpx;
|
|
|
border-radius: 50rpx;
|
|
|
border-radius: 50rpx;
|
|
|
height: 50rpx;
|
|
|
line-height: 48rpx;
|
|
|
padding: 0 20rpx;
|
|
|
font-size: 24rpx;
|
|
|
border:1rpx solid rgb(252, 105, 0);
|
|
|
color:rgb(252, 105, 0);
|
|
|
}
|
|
|
.pjbtn::after{
|
|
|
border:0 !important;
|
|
|
}
|
|
|
.returnbtn{
|
|
|
background-color: rgb(252, 105, 0) !important;
|
|
|
margin-left: 20rpx;
|
|
|
border-radius: 50rpx;
|
|
|
border-radius: 50rpx;
|
|
|
height: 50rpx;
|
|
|
line-height: 48rpx;
|
|
|
padding: 0 20rpx;
|
|
|
font-size: 24rpx;
|
|
|
border:1rpx solid rgb(252, 105, 0);
|
|
|
color:#FFF;
|
|
|
}
|
|
|
.returnbtn::after{
|
|
|
border:0 !important;
|
|
|
}
|
|
|
.paybtn{
|
|
|
background-color: #89965f !important;
|
|
|
margin-left: 20rpx;
|
|
|
border-radius: 50rpx;
|
|
|
border-radius: 50rpx;
|
|
|
height: 50rpx;
|
|
|
line-height: 48rpx;
|
|
|
padding: 0 20rpx;
|
|
|
font-size: 24rpx;
|
|
|
border:1rpx solid #89965f;
|
|
|
}
|
|
|
.paybtn::after{
|
|
|
border:0 !important;
|
|
|
}
|
|
|
.gzbtn{
|
|
|
background-color: #f5aa00 !important;
|
|
|
margin-left: 20rpx;
|
|
|
border-radius: 50rpx;
|
|
|
height: 50rpx;
|
|
|
line-height: 48rpx;
|
|
|
padding: 0 20rpx;
|
|
|
font-size: 24rpx;
|
|
|
border:1rpx solid #f5aa00;
|
|
|
}
|
|
|
.gzbtn::after{
|
|
|
border:0 !important;
|
|
|
}
|
|
|
}
|
|
|
.oscon{
|
|
|
margin:20rpx 0;
|
|
|
border-radius: 16rpx;
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
justify-content: center;
|
|
|
.osimg{
|
|
|
width: 120rpx;
|
|
|
height: 120rpx;
|
|
|
border-radius: 10rpx;
|
|
|
}
|
|
|
.osname{
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
flex: 1;
|
|
|
margin-left: 26rpx;
|
|
|
.ntxt{
|
|
|
font-size: 28rpx;
|
|
|
color:#000;
|
|
|
line-height: 36rpx;
|
|
|
margin-bottom: 8rpx;
|
|
|
}
|
|
|
.txt{
|
|
|
font-size: 24rpx;
|
|
|
color:#666;
|
|
|
}
|
|
|
}
|
|
|
.omoney{
|
|
|
display: flex;
|
|
|
justify-content: baseline;
|
|
|
color:#000;
|
|
|
font-size: 30rpx;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
.sitem {
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
flex: 1;
|
|
|
background-color: #FFFFFF;
|
|
|
/*设置最小宽度,才会让元素排不下,导致换行排列*/
|
|
|
min-width: calc((100% - 20rpx) / 2);
|
|
|
max-width: calc((100% - 20rpx) / 2);
|
|
|
margin-right:5rpx;
|
|
|
margin-left:5rpx;
|
|
|
margin-bottom: 10rpx;
|
|
|
border-radius: 16rpx;
|
|
|
.simg{
|
|
|
width: 100%;
|
|
|
height: 360rpx;
|
|
|
.img{
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
border-radius: 16rpx 16rpx 0 0;
|
|
|
}
|
|
|
}
|
|
|
.sname{
|
|
|
font-size: 30rpx;
|
|
|
font-weight: 600;
|
|
|
color: rgb(29, 29, 29);
|
|
|
padding: 16rpx;
|
|
|
}
|
|
|
.sinfo{
|
|
|
font-size: 26rpx;
|
|
|
color:rgb(116, 116, 116);
|
|
|
padding: 0 16rpx;
|
|
|
height: 60rpx;
|
|
|
line-height: 30rpx;
|
|
|
overflow: hidden;
|
|
|
position: relative;
|
|
|
text-overflow: ellipsis;
|
|
|
display:-webkit-box;
|
|
|
-webkit-box-orient:vertical;
|
|
|
-webkit-line-clamp:2;
|
|
|
}
|
|
|
.sprices{
|
|
|
padding: 0 16rpx 20rpx 16rpx;
|
|
|
font-size: 36rpx;
|
|
|
color:rgb(252, 105, 0);
|
|
|
border-radius: 0 0 16rpx 16rpx;
|
|
|
.cx{
|
|
|
font-size: 28rpx;
|
|
|
color:rgb(116, 116, 116);
|
|
|
text-decoration: line-through;
|
|
|
margin-left: 20rpx;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
::v-deep.uni-radio-input-checked{
|
|
|
background-color: #89965f !important;
|
|
|
border-color: #89965f !important;
|
|
|
background-clip: content-box!important;
|
|
|
box-sizing: border-box;
|
|
|
}
|
|
|
::v-deep.uni-radio-input-checked::before{
|
|
|
display: none!important;
|
|
|
}
|
|
|
.allcon{
|
|
|
min-height: 600rpx;
|
|
|
overflow: hidden;
|
|
|
background-color: #FFFFFF;
|
|
|
margin-bottom: -150rpx;
|
|
|
position: relative;
|
|
|
display: block;
|
|
|
padding-bottom: 80rpx;
|
|
|
.paybtn{
|
|
|
background-color: #89965f !important;
|
|
|
margin: 50rpx 20rpx 20rpx;
|
|
|
border-radius: 50rpx;
|
|
|
height: 75rpx;
|
|
|
line-height: 75rpx;
|
|
|
font-size: 30rpx;
|
|
|
margin: 20rpx auto 180rpx auto;
|
|
|
width: 660rpx;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
.mcon{
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
align-items: baseline;
|
|
|
justify-content: center;
|
|
|
width:100%;
|
|
|
padding: 20rpx 0;
|
|
|
font-size: 40rpx;
|
|
|
font-weight:600;
|
|
|
.mcost{
|
|
|
font-size: 60rpx;
|
|
|
}
|
|
|
}
|
|
|
.hcon{
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
padding: 30rpx;
|
|
|
.htitle{
|
|
|
flex:1;
|
|
|
display: flex;
|
|
|
justify-content: center;
|
|
|
align-items: center;
|
|
|
font-size: 32rpx;
|
|
|
font-weight: 600;
|
|
|
}
|
|
|
.rclose{
|
|
|
width: 50rpx;
|
|
|
display: flex;
|
|
|
justify-content: flex-start;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
.checklist-group{
|
|
|
width: 100%;
|
|
|
}
|
|
|
|
|
|
.selcon{
|
|
|
padding: 20rpx;
|
|
|
position: relative;
|
|
|
display: block;
|
|
|
overflow-y: auto;
|
|
|
.sitem {
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
flex: 1;
|
|
|
background-color: #FFFFFF;
|
|
|
border-top: 1rpx solid #f0f0f0;
|
|
|
padding:16rpx 0;
|
|
|
.conright{
|
|
|
flex: 1;
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
width: 100%;
|
|
|
justify-content:flex-start;
|
|
|
align-items: center;
|
|
|
}
|
|
|
.rinfo{
|
|
|
width: 100rpx;
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
justify-items: center;
|
|
|
align-self: center;
|
|
|
margin-right: 10rpx;
|
|
|
text-align: center;
|
|
|
.btn{
|
|
|
padding: 0 12rpx;
|
|
|
background-color: #89965f ;
|
|
|
border-radius: 24rpx;
|
|
|
font-size: 26rpx;
|
|
|
color: #fff;
|
|
|
}
|
|
|
}
|
|
|
.selbtn{
|
|
|
width: 80rpx;
|
|
|
display: flex;
|
|
|
justify-content: center;
|
|
|
align-items: center;
|
|
|
}
|
|
|
.simg{
|
|
|
width: 60rpx;
|
|
|
height: 60rpx;
|
|
|
padding: 10rpx;
|
|
|
.img{
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
border-radius: 6rpx;
|
|
|
}
|
|
|
}
|
|
|
.sname{
|
|
|
display: flex;
|
|
|
flex: 1;
|
|
|
justify-content: flex-start;
|
|
|
font-size: 28rpx;
|
|
|
font-weight: 600;
|
|
|
color: rgb(29, 29, 29);
|
|
|
padding: 0 10rpx 0 20rpx;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
</style>
|