You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1615 lines
38 KiB

3 weeks ago
<template>
<view class="page">
<view class="oinfo" v-if="info">
<!-- 地址信息 -->
<view class="yycon odrcell">
<view class="atitle">
<uni-icons type="location" size="23" color="#303133"></uni-icons>
{{info.receiverName?info.receiverName:''}}
{{info.receiverPhone?info.receiverPhone:''}}
</view>
<view class="olist">
<view class="ocell1">
{{info.receiverProvince?info.receiverProvince:''}}
{{info.receiverCity?info.receiverCity:''}}
{{info.receiverDistrict?info.receiverDistrict:''}}
{{info.receiverDetailAddress?info.receiverDetailAddress:''}}
</view>
</view>
</view>
<!-- 订单状态 -->
<view style="margin-top: 20rpx;" class="odrcell"
:class="info.status==0?'oztorange': (info.status==1||info.status==2?'ozc':(info.status==3?'owc':'oztgray'))">
<view class="ozstate">
<!-- 描述订单状态 0->待付款1->待发货2->已发货3->已完成4->已关闭 -->
{{info.status==0?"待付款":
(info.status==1?"待发货":
(info.status==2?"待收货":
(info.status==3?"已完成":"订单已关闭")))}}
</view>
<view class="oztip">
{{info.status==0?"订单已生成,请您完成订单支付。":
(info.status==1?"订单已支付,请您等待发货。":
(info.status==2?"订单已发货,请您注意查收。":
(info.status==3?"订单已完成,感谢购买!期待您的继续使用。":
(info.status==4?"您的订单已关闭。":"您的订单已取消。"))))}}
</view>
</view>
<!-- 商品信息 -->
<view class="yycon odrcell" v-if="info.orderItemList&&info.orderItemList.length>0">
<view class="oscon" v-for="(item, index) in info.orderItemList" :key="index">
<view class="osimg imgload">
<image class="osimg" v-if="item.pic" :src="item.pic" mode="aspectFill"></image>
</view>
<view class="osrcon">
<view class="osname">
{{item.productName?item.productName:''}}
</view>
<view class="oscell">
<text class="txt">规格{{ retSku(item.spData) }}</text>
</view>
<view class="oscell">
<text class="txt">单价{{item.salePrice}}</text>
</view>
<view class="oscell">
<text class="txt">数量{{item.quantity}}</text>
</view>
</view>
<view class="omoney">
{{item.salePrice?'¥'+(item.salePrice*item.quantity).toFixed(2):"¥0"}}
</view>
</view>
</view>
<!-- 订单信息 -->
<view class="yycon odrcell">
<view class="olist">
<view class="ocell">
<text>
商品总价
</text>
<text style="font-size: 30rpx;color:#000;font-weight: 600;">
{{info.totalAmount?'¥'+(info.totalAmount).toFixed(2):"¥0.0"}}
</text>
</view>
</view>
<!-- <view class="olist">
<view class="ocell">
<text>
运费险
</text>
<text>
{{info.ordershipfee}}
</text>
</view>
</view> -->
<view class="olist">
<view class="ocell">
<text>
交易金额
</text>
<text>
{{info.payAmount}}
</text>
</view>
</view>
<view class="olist">
<view class="ocell">
<text>
实付款
</text>
<text style="color:#ff0000;font-size: 30rpx;">
{{info.payAmount}}
</text>
</view>
</view>
<view class="olist">
<view class="ocell">
<text>
订单编号
</text>
<text>
{{info.orderSn}}
</text>
</view>
</view>
<view class="olist" v-if="info.deliverySn">
<view class="ocell">
<text>
物流单号
</text>
<text>
{{info.deliverySn}}
</text>
</view>
</view>
<view class="olist">
<view class="ocell">
<text>
下单日期
</text>
<text>{{info.createTime}}</text>
</view>
</view>
<view class="olist" v-if="info.payType">
<view class="ocell">
<text>
支付方式
</text>
<text>{{info.payType}}</text>
</view>
</view>
<view class="olist" v-if="info.paymentTime">
<view class="ocell">
<text>
支付日期
</text>
<text>{{info.paymentTime}}</text>
</view>
</view>
<view class="olist">
<view class="ocell">
<text>
下单备注
</text>
<text>{{info.note?info.note:'无'}}</text>
</view>
</view>
</view>
</view>
<view class="submitcon" v-if="info">
<view style="display: flex;flex: 1;"></view>
<!-- 描述订单状态 0->待付款1->待发货2->已发货3->已完成4->已关闭 -->
<button v-if="info.status==0" type="primary" class="cancelbtn" @click="canceldo()"></button>
<button v-if="info.status==0" type="primary" class="btn" @click="gotopay"></button>
<button v-if="info.status==2" type="primary" class="wlbtn" @click="gotowl"></button>
<button v-if="info.status==2" type="primary" class="btn" @click="checkdo"></button>
<button v-if="info.status==3" type="primary" class="pjbtn" @click="gotopj"></button>
<button v-if="info.status==3" type="primary" class="gzbtn" @click="gotosh"></button>
<button v-if="info.status==3&&info.aftersaleStatus==0" type="primary" class="gzbtn" @click="gotoshcancel"></button>
<button type="primary" class="btn" @click="gotosj"></button>
</view>
<!-- 支付弹框 -->
<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_payall}}</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>
<!-- 退款弹框 -->
<uni-popup ref="refundpup" type="share">
<view class="allcon" style="height: 980rpx;">
<view class="hcon">
<view class="htitle">退款</view>
<view class="rclose" @tap="_refhide">
<uni-icons type="closeempty" size="24" color="#999999"></uni-icons>
</view>
</view>
<view class="mtxt">
退款金额<text style="color:#ff0000;font-size: 36rpx;">{{refundMoney}}</text>
</view>
<view class="mtxt">
退款说明{{refmessage?refmessage:"正常退款"}}
</view>
<view class="mref">
<refdirection></refdirection>
</view>
<button type="primary" class="paybtn" @click="refdodo()">退</button>
</view>
</uni-popup>
<!-- 是否登录 -->
<openlogin ref="loginId" @getPhoneNumber="getPhoneNumber"></openlogin>
</view>
</template>
<script>
import { myCache } from '../../utils/utils.js';
import openlogin from "../components/openlogin.vue";
export default {
components: {
openlogin
},
data() {
return {
openId:"",
phone:"",
userid:"",
id:"",
info:{
sh_state:"1",
sh_name:"收货人",
sh_phone:"18900000001",
sh_address:"收货地址收货地址收货地址收货地址",
orderid:"ord23258876543",
business:"商家1",
productid:"1",
productprice:39.9,
productname:"杜威克瑜伽球加厚防滑",
img:'../../static/image/theme/p1.jpg',
productspecs:"M 白",
productnum:1,
productunit:"个",
status:'1',
orderdate:"2025-06-23 10:26:09",
paytype:"支付宝",
paydate:"2025-06-23 10:26:09",
ordershipfee:"0.0",
jymoney:39.9,
sfmoney:39.9,
kdno:"1098768799232",
icon:"../../static/image/product/sp1.jpg",
username:"张三",
tel:"18000000001",
address:"江苏省扬州市江都市地址信息1地址信息2地址信息3地址信息4地址信息5",
pname:"测试",
sets:"租完6个月可买断 测试 测试",
nums:1,
rentcycle:6,
last:5,
price:0.01,
delivery:"寄出包邮/顺丰包邮",
freezedeposit:0.01,
deposit:0.01,
sesameCredit:0.00,
freezeway:"支付宝资金授权",
buyoutprice:0,
orderNo:"20240314000000001",
createdate:"2024-03-23 12:01:28",
notes:"测试订单"
},
platform:"",// 退款方式 1微信支付2支付宝支付
refundMoney:0,
refmessage:"",
pindex:0,//当前需要支付项
price_pay:0,// 当前需要支付金额
price_payall:39.9,// 当前需要支付金额
businessid:0,//当前需要支付账单号
alipay_number:'',// 支付宝交易号
bills:[],
paylist:[],
payType:"" //1微信支付2支付宝支付
};
},
onLoad(options) {
if(options.id)
{
this.id=parseInt(options.id);
this.getinfo();
}
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(){
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`
});
}
},
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(',');
},
goservice(val){
console.log(val);
},
collapsechange(e){
console.log('collapsechange',e);
},
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();
},
_refshow() {
this.$refs.refundpup.open();
},
_refhide() {
this.$refs.refundpup.close();
// 关闭弹出层
setTimeout(() => {
uni.hideLoading();
}, 1000);
},
_refcancel() {
this._refhide();
},
getPhoneNumber(e){
if(e.phone){
this.phone = e.phone
}
if(e.userid){
this.userid = e.userid
}
},
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;
}
},
goback(){
uni.navigateBack({
delta: 1
});
},
// 取消售后
gotoshcancel(){
var id=this.id;
uni.navigateTo({
url: `/pages/order/ordersh?data=${id}`
});
},
// 申请售后
gotosh(){
var id=this.id;
uni.navigateTo({
url: `/pages/order/ordersh?data=${id}`
});
},
// 查看物流
gotowl(){
var id=this.id;
uni.navigateTo({
url: `/pages/order/orderwl?id=${id}`
});
},
// 去评价
gotopj(){
var id=this.id;
uni.navigateTo({
url: `/pages/order/orderpj?data=${id}`
});
},
gotosj(){
// 在线客服
uni.makePhoneCall({
phoneNumber: "18900000001",
success:function(){
console.log('拨打电话成功');
},
fail() {
console.log('打电话失败了');
}
});
},
async getinfo() {
uni.showLoading({
title: '数据加载中...'
});
const {data: res} = await uni.$http.get('/api/order/orderDetail', {orderId:this.id});
if(res){
// 订单信息
this.info=res;
this.$forceUpdate();
}
else{
uni.showModal({
title: '提示',
content: '当前订单信息不存在..',
cancelText: '取消',
confirmText: '确定',
success: ress => {
// 返回
uni.navigateBack({
delta: 1
});
}
});
}
},
async getbill() {
uni.showLoading({
title: '数据加载中...'
});
const {data: res} = await uni.$http.post('/alipay/getBillsListByOrderId', {id:this.id});
console.log(res);
if(res){
// 订单账单信息
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 ){
this.price_pay= cell.bill_money;
if(cell.pay_number==1){
// 增加包支付和屏保
this.price_payall= this.price_payall+ parseFloat(this.price_pay) ;
}
else{
this.price_payall= parseFloat(this.price_pay) ;
}
this.businessid=cell.id;
this.pindex=idx;
}
});
this.$forceUpdate();
}
},
gotopay(){
this._show();
},
canceldo(){
//取消订单
uni.showModal({
title: '提示',
content: '确定要取消订单吗?',
cancelText: '取消',
confirmText: '确定',
success: ress => {
if (ress.confirm) {
this.deldo();
}
}
});
},
// 订单取消
async deldo(){
// 是否登录
if(!this.iflogin()){
return false;
}
var param={
idList:[this.info.orderId]
};
const {data: res} = await uni.$http.post('/api/order/orderCancel', param);
console.log(res)
if(res&&res=="取消订单成功"){
myCache("iforderload",1);
uni.showModal({
title: '提示',
content: '订单已取消!',
showCancel: false,
confirmText: '确定',
success: ress => {
// 跳转到全部订单
uni.redirectTo({
url: `/pages/order/orderlist?id=0`
});
}
});
}
else{
uni.showModal({
title: '提示',
content: res.msg? res.msg:'订单取消失败!',
showCancel: false,
confirmText: '确定',
success: ress => {}
});
}
},
// 确认收货
checkdo(){
var that = this;
//确认收货
uni.showModal({
title: '提示',
content: '确定订单收货吗?',
cancelText: '取消',
confirmText: '确定',
success: ress => {
if (ress.confirm) {
//确认收货
that.checkdodo();
}
}
});
},
async checkdodo(){
uni.showToast({
title: '确认收货中...',
icon: 'success',
duration: 2000
});
var param={
orderId:this.id
};
const {data: res} = await uni.$http.post('/api/order/orderComplete', param);
if(res&&res=="确认收货成功"){
uni.showModal({
title: '提示',
content: '订单已确认收货!',
showCancel: false,
confirmText: '确定',
success: ress => {
// 跳转到订单列表
uni.redirectTo({
url: `/pages/order/orderlist?id=0`
});
}
});
}
else{
uni.showToast({
title: res.msg? res.msg:'订单确认收货失败!',
icon: 'error',
duration: 2000
});
}
},
// e签宝电子签署
async signdo(){
if(!this.info.id){
uni.showModal({
title: '提示',
content: '电子签署获取失败!',
showCancel: false,
confirmText: '确定'
});
return false;
}
myCache("signtype",'6');
myCache("siginorderid",this.info.id);
var id=this.info.id;
uni.navigateTo({
url: `/pages/setting/esignweb?data=${id}`
});
},
// 去支付
async paydo(){
// 去支付
if (!this.payType) {
uni.showModal({
title: '提示!',
content: '请选择支付类型!',
showCancel: false
});
return false;
}
if(!this.businessid){
uni.showModal({
title: '提示!',
content: '实际支付金额异常!请刷新后支付!',
showCancel: false
});
return false;
}
// 是否登录
if(!this.iflogin()){
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(){
uni.showLoading({
title: '发起支付....'
});
// 支付宝调起支付
var that=this;
//申请支付
var param={
id: that.businessid
};
const {data: ress} = await uni.$http.post("/alipay/getAppOrderStrByBillsId", param);
console.log("生成支付信息调起支付值");
console.log(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.showLoading({
// title: '订单支付成功!'
// });
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(){
uni.showLoading({
title: '发起支付....'
});
// 微信调起支付
var that=this;
//申请支付
var param={
id: that.businessid
};
const {data: ress} = await uni.$http.post("/alipay/getAppOrderStrByBillsId", param);
console.log("生成支付信息、调起支付值");
console.log(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`
});
}
});
}
},
// 支付宝免密代扣
async alisignpaydo(){
var that = this;
uni.showLoading({
title: '发起支付....'
});
// 支付宝调起免密代扣
var that=this;
if(this.info.state !==6){
// 已经签约成功了,直接调起支付
that.alipaydo();
}
else{
// 代扣签约操作
var param={
orderId: this.info.id
};
// 查询代扣签约状态
uni.showLoading({
title: '代扣签约申请中....'
});
const {data: res} = await uni.$http.post("/antchainapi/queryWithholdSign", param);
console.log('代扣签约查询',res)
if(res.success){
// 已经签约成功了,直接调起支付
that.alipaydo();
}
else{
console.log('签约代扣请求')
// 申请代扣签约操作
var param={
orderId: this.info.id
};
console.log(this.info.id)
const {data: ress} = await uni.$http.post("/antchainapi/createWithholdSign", param);
console.log('签约代扣请求接口返回',ress);
if(ress.success){
var query={
signStr:ress.signStr,// 代扣签约创建接口返回的sign_str内容
tenantId:ress.tenantId, // 商家的用户code在数科控制台中查询获取
merchantId:ress.merchantld, // 商户id,也是企业社会信用代码,保持与进件接口一致
orderId:ress.orderId, // // 订单id保持与进件接口一致
redirectUrl: "alipays://platformapi/startapp?appId=2021004192630073&page=pages/order/orderlist", // 代扣签署成功/失败回跳地址,示例 alipays://platformapi/startapp?appId=2021004108689505&page=pages/home/indexappId 和 page 需要根据实际情况调整真实数值
}
// 代扣签约拉起
// app 跳转支付宝小程序操作
// #ifdef APP
let alipayUrl = null;
if (uni.getSystemInfoSync().platform == "ios") {
alipayUrl = 'alipay://platformapi/startapp?appId=2021001152620480';
}else{
alipayUrl = 'alipays://platformapi/startapp?appId=2021001152620480';
}
//alipayUrl 已经有? 问号了,所以这里需要进行编码
let queryString = this.objectToQueryString(query);
let params = encodeURIComponent(queryString);
// page=pages/index/index 跳转到支付宝小程序页面的页面路径
alipayUrl = `${alipayUrl}&path=pages/tripartite/index&query=${params}`;
alipayUrl=encodeURIComponent(alipayUrl);
alipayUrl=`https://ds.alipay.com/?scheme=${alipayUrl}`;
console.log('alipayUrl',alipayUrl);
//唤起支付宝
plus.runtime.openURL(alipayUrl);
myCache("signtype",'77');
myCache("payorderid",that.info.id);
myCache("periodNum",that.pindex);
myCache("price_pay",that.price_pay);
myCache("businessid",that.businessid);
this.$forceUpdate();
// #endif
// #ifdef MP-ALIPAY
// 代扣签约拉起
my.navigateToMiniProgram({
appId:"2021001152620480", // 固定值,无须修改。
path:"pages/tripartite/index", // 固定值,无须修改。
query:query, // 需要携带的必要参数
success: (alires) => {
// 代扣签约调起成功,保存数据
console.log(alires);
myCache("signtype",'77');
myCache("payorderid",that.info.id);
myCache("periodNum",that.pindex);
myCache("price_pay",that.price_pay);
myCache("businessid",that.businessid);
this.$forceUpdate();
},
fail: (err) => {
console.log('代扣签约失败');
console.log(JSON.stringify(err));
uni.showModal({
title: '提示',
content: err?err: '请求代扣签约失败2!请重试!',
showCancel: false,
confirmText: '确定'
});
},
});
// #endif
}
else{
// 请求代扣签约失败,
uni.showModal({
title: '提示',
content: ress.msg? ress.msg:'请求代扣签约失败!订单已经关闭或异常!请返回订单重试!',
showCancel: false,
confirmText: '确定',
success: rest => {
// 返回订单全部列表
uni.redirectTo({
url: `/pages/order/orderlist?id=0`
});
}
});
}
}
}
},
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 => {
// 重新加载
that.getinfo();
// 跳转到待接单订单列表
uni.redirectTo({
url: `/pages/order/orderlist?id=9`
});
}
});
}
else{
uni.showModal({
title: '提示',
content: res.msg? res.msg:'订单支付成功!订单状态异常!请联系客服!',
showCancel: false,
confirmText: '确定',
success: ress => {
// 跳转到待接单订单列表
uni.redirectTo({
url: `/pages/order/orderlist?id=0`
});
}
});
}
// 关闭对话框
this._hide();
},
}
}
</script>
<style lang="scss" scoped>
::v-deep .uni-collapse-item__title-box{
padding: 0 !important;
}
::v-deep .uni-collapse-item__title-text{
font-weight: 600;
}
.page{
padding: 0;
position: relative;
display: block;
background-color: #F5F5F5;
overflow-y: auto;
margin-bottom: 20rpx;
}
.ret{
position: fixed;
top:20rpx;
left:20rpx;
background: rgba(0, 0, 0, .3);
height: 60rpx;
width: 60rpx;
border-radius: 50% 50%;
text-align: center;
line-height: 60rpx;
z-index: 9999;
}
.submitcon{
position: fixed;
display: flex;
bottom: 0;
left: 0;
width: 100%;
height: 140rpx;
background-color: #FFFFFF;
.pcon{
margin-left: 20rpx;
margin-top: 28rpx;
height: 50rpx;
display: flex;
flex:1;
justify-content: flex-start;
align-items: baseline;
.hj{
font-size: 30rpx;
}
.rmb{
font-size: 30rpx;
font-family: smallYuan;
color:#89965f ;
margin-left: 10rpx;
}
.zs{
font-size: 48rpx;
font-weight: 600;
font-family: smallYuan;
color:#89965f ;
}
.xs{
font-size: 28rpx;
font-weight: 600;
font-family: smallYuan;
color:#89965f ;
}
}
.btn{
background-color: #89965f !important;
margin: 30rpx 20rpx 0 0;
border-radius: 50rpx;
height: 60rpx;
line-height: 60rpx;
width: 180rpx;
font-size: 26rpx;
}
.btn::after{
border:0 !important;
}
.gzbtn{
background-color: #4A4AFF !important;
margin: 30rpx 20rpx 0 0;
border-radius: 50rpx;
height: 60rpx;
line-height: 60rpx;
width: 180rpx;
font-size: 26rpx;
}
.gzbtn::after{
border:0 !important;
}
.cancelbtn{
background-color: #FFFFFF !important;
margin: 30rpx 20rpx 0 0;
border-radius: 50rpx;
height: 60rpx;
line-height: 60rpx;
width:180rpx;
font-size: 26rpx;
color:#333;
border:1rpx solid #dddddd;
}
.cancelbtn::after{
border:0 !important;
}
.returnbtn{
background-color: #ff3d0e !important;
margin: 30rpx 20rpx 0 0;
border-radius: 50rpx;
height: 60rpx;
line-height: 60rpx;
width:180rpx;
font-size: 26rpx;
border:1rpx solid #ff3d0e;
color:#FFF;
}
.returnbtn::after{
border:0 !important;
}
.pjbtn{
background-color: #FFFFFF !important;
margin: 30rpx 20rpx 0 0;
border-radius: 50rpx;
height: 60rpx;
line-height: 60rpx;
width:170rpx;
font-size: 26rpx;
border:1rpx solid #f5aa00;
color:#f5aa00;
}
.pjbtn::after{
border:0 !important;
}
.wlbtn{
background-color: #FFFFFF !important;
margin: 30rpx 20rpx 0 0;
border-radius: 50rpx;
height: 60rpx;
line-height: 60rpx;
width:170rpx;
font-size: 26rpx;
border:1rpx solid #89965f;
color:#89965f;
}
.wlbtn::after{
border:0 !important;
}
}
.signimg{
width: 150rpx;
height: 180rpx;
border-radius: 10rpx;
}
.oscon{
margin:0;
background-color: #f3fafa;
border-radius: 16rpx;
padding: 16rpx;
display: flex;
flex-direction: row;
justify-content: center;
.osimg{
width: 120rpx;
height: 120rpx;
border-radius: 10rpx;
}
.osrcon{
display: flex;
flex-direction: column;
flex: 1;
justify-content: flex-start;
margin-left: 50rpx;
}
.osname{
line-height: 48rpx;
font-size:28rpx;
color:#303133;
}
.oscell{
font-size: 24rpx;
color:#747474;
}
.omoney{
display: flex;
width: 100rpx;
color:#333;
font-size: 28rpx;
align-items: flex-end;
justify-content: flex-end;
}
}
.ydcon{
position: relative;
}
.yyright{
position: absolute;
right: 100rpx;
top:50rpx;
}
.odrcell{
border-radius: 12rpx;
}
.bconall{
padding: 12rpx 6rpx;
display: block;
position: relative;
overflow: hidden;
content: '';
clear: both;
}
.bcon.billnow{
background-color: #cffff7;
border: 1rpx solid #64e2e4;
border-radius: 2rpx;
}
.bcon{
display: flex;
flex-direction: row;
padding: 16rpx;
width: 100%;
align-items: center;
justify-content: center;
border-top:1rpx solid #f0f0f0 ;
.btitle{
font-size: 26rpx;
color:#131212;
width: 80rpx;
}
.bdate{
display: flex;
flex-direction: column;
flex: 1;
justify-content: flex-start;
margin-left: 30rpx;
.btxt{
color:#ADADAD;
font-size: 24rpx;
margin-bottom: 6rpx;
}
}
.bvalue{
font-size: 30rpx;
}
}
.billimg{
width: 64rpx;
height: 64rpx;
margin-left: 15rpx;
}
.rrwzf{
display: flex;
flex-direction: row;
align-items: center;
}
.oinfo{
padding:0 20rpx 20rpx 20rpx;
position: relative;
margin-bottom: 160rpx;
.ozc{
display: flex;
flex-direction: column;
background-color: #becba0 ;
padding: 20rpx;
border-radius: 16rpx;
.ozstate{
font-size: 28rpx;
color: #333;
width: 100%;
margin: 10rpx 0;
}
.oztip{
font-size: 26rpx;
color: #333;
width: 100%;
margin: 0 0 20rpx;
}
}
.owc{
display: flex;
flex-direction: column;
background-color: #89965f ;
padding: 20rpx;
border-radius: 16rpx;
.ozstate{
font-size: 28rpx;
color: #FFF;
width: 100%;
margin: 6rpx 0 0;
}
.oztip{
font-size: 26rpx;
color: #FFF;
width: 100%;
margin: 0 0 6rpx;
}
}
.oztgray{
display: flex;
flex-direction: column;
background-color: #ddd;
padding: 20rpx;
border-radius: 16rpx;
.ozstate{
font-size: 28rpx;
color: #333;
width: 100%;
margin: 6rpx 0;
}
.oztip{
font-size: 26rpx;
color: #747474;
width: 100%;
margin: 0 0 20rpx;
}
}
.oztorange{
display: flex;
flex-direction: column;
background-color: #faa755;
padding: 20rpx;
border-radius: 16rpx;
.ozstate{
font-size: 28rpx;
color: #FFF;
width: 100%;
margin: 6rpx 0;
}
.oztip{
font-size: 26rpx;
color: #FFF;
width: 100%;
margin: 0 0 20rpx;
}
}
.yycon{
display: flex;
flex-direction: column;
justify-content: center;
background-color: #FFFFFF;
margin-top: 20rpx;
padding: 20rpx 20rpx;
.atitle{
padding: 10rpx 0 10rpx;
color:#303133;
font-size: 30rpx;
font-weight: 600;
display: flex;
flex-direction: row;
align-items: center;
}
.olist{
display: flex;
flex-direction: column;
padding: 0;
width: 100%;
.ocell{
font-size: 26rpx;
color:#747474;
padding: 10rpx 0 10rpx;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.ocell1{
font-size: 26rpx;
color:#747474;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
margin-left: 50rpx;
}
}
.sqcon{
padding: 20rpx;
margin: 20rpx 0;
background-color: #f5f5f5;
display: flex;
flex-direction: column;
border-radius: 10rpx;
.sqlist{
display: flex;
flex-direction: row;
justify-content: space-between;
color: #333333;
font-size: 26rpx;
line-height: 50rpx;
}
}
}
}
.red{
color:#ff3d0e;
}
.green{
color:#00cd00;
}
::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: 650rpx;
}
}
.mtxt{
display: flex;
flex-direction: row;
align-items: baseline;
justify-content: center;
padding: 20rpx;
font-size: 30rpx;
border-top:1rpx solid #eee;
}
.mref{
margin: 0 20rpx;
}
.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 20rpx 50rpx;
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: 80rpx;
height: 80rpx;
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>