Payment flow refined

This commit is contained in:
Vion 2022-01-23 19:29:46 +08:00
parent 8ff86279a0
commit c5e5978615
17 changed files with 141 additions and 74 deletions

View File

@ -56,7 +56,7 @@ export const getleckCourse = (name, offset) => {
* 加入购物车
*/
export const postCourseId = (productCode, buyCount, memberId, mobile, productImg, productName, productPrice, specifications, leftAllotment) => {
export const postCourseId = (productCode, buyCount, memberId, mobile, productImg, productName, productPrice, specifications, leftAllotment, basePiont) => {
var data = {
buyCount: buyCount,
memberId: memberId,
@ -66,7 +66,8 @@ export const postCourseId = (productCode, buyCount, memberId, mobile, productImg
productName: productName,
productPrice: productPrice,
specifications: specifications,
leftAllotment: leftAllotment
leftAllotment: leftAllotment,
basePiont: basePiont
}
return fetch('/insertCartProductInfo', data, 'POST')
}
@ -78,6 +79,14 @@ export const isexistCart = (id, pet, address) => {
return fetch('getCartProductInfo?memberId=' + id, data, 'POST')
}
/**
* 支付监听
*/
export const monitorOrderNotify = (OrderNumber) => {
var data = {}
return fetch('monitorOrderNotify?OrderNumber=' + OrderNumber, data, 'POST')
}
/**
* 删除购物车
*/

View File

@ -4,9 +4,10 @@ body {
line-height: 1.5;
color: #666;
}
/deep/.el-button--primary {
background-color: #e1001a;
.el-message-box .el-button--primary{
background-color: #e1001a !important;
color:#fff;
border:unset;
}
.rc-menu--xs .rc-screen-reader{

View File

@ -433,7 +433,7 @@ ul li ol li em strong i {
text-align: center;
li{
float: left;
cursor:pointer;
}
img{
width: 96px;
@ -464,6 +464,7 @@ ul li ol li em strong i {
margin: 0 auto;
}
.rc-buy{
cursor: pointer;
img{
width: 96px;
height: 96px;

View File

@ -16,6 +16,9 @@
background:#f6f6f6;
}
}
.usercontshow.rc-max-width--xl{
min-height:72vh;
}
.useredit{
display: none;
}
@ -44,12 +47,12 @@ justify-content: center;
align-items: center;
font-size: 16px;
color: #FFFFFF;
margin:0 auto;
}
.rc-max-width--xl{
padding: 0px 20px 24px 20px;
min-height: 60vh;
padding: 0px 20px 0px 20px;
.rc-cat{
margin-top: 20px;
}
@ -121,12 +124,17 @@ color: #FFFFFF;
{
.rc-max-width--xl{
margin-bottom: 80px;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-between
}
.usercontshow{
min-height: 20vh;
margin-bottom: 2rem;
padding-left:.5rem;
padding-right:.5rem;
}
.rc-button{
display: none;
@ -134,8 +142,8 @@ display: none;
.usercontend {
display:inline-block;
width: 48%;
margin-top: 40px;
padding: 24px 20px;
//margin-bottom: 40px;
//padding: 24px 20px;
}
.online{
@ -230,7 +238,7 @@ display: none;
-webkit-line-clamp: 2;
line-clamp: 2;
-webkit-box-orient: vertical;
font-size: 20px;
font-size: .875rem;
color: #333333;
}
@ -253,19 +261,13 @@ display: none;
}
.userdit{
width: 45%;
width: 48%;
height: 164px;
display: inline-block;
height: 164px;
border: 1px solid #D7D7D7;
border-radius: 3px;
margin-top: 65px;
box-sizing: border-box;
border: 1px solid #D7D7D7;
border-radius: 3px;
position: relative;
height: 164px;
box-sizing: border-box;
margin-left: 20px;
}

View File

@ -107,7 +107,7 @@
width: 96px;
height: 96px;
display: block;
object-fit:contain;
}
}

View File

@ -26,7 +26,10 @@ export default {
'/personal/usermember/':'会员权益',
'/personal/integral/':'积分明细',
'/personal/settlement/':'订单确认',
'/myorder/userrecord/':'购物车'
'/personal/useraddress/':'我的订单',
'/myorder/userrecord/':'购物车',
'/useraddress/openaddress/':'收货地址',
'/personal/discount/':'优惠券'
},
};
},

View File

@ -8,7 +8,7 @@
<div class="cart-list">
<div class="header">
<div class="list-left">
<label class="check-label">
<label class="check-label" style="visibility: hidden;">
<input type="checkbox" v-model="checkAll" />
</label>
<span class="name">商品</span>
@ -22,7 +22,7 @@
<div class="header_ph">
<el-row>
<el-col :span="12">
<div class="list-left">
<div class="list-left" style="visibility: hidden;">
<label class="check-label">
<input type="checkbox" v-model="checkAll" />
</label>
@ -76,7 +76,7 @@
<div class="rc-footera">
<div class="rc-foote">
<div class="rc-shop">
<label>
<label style="visibility: hidden;">
<input type="checkbox" v-model="checkAll" />
全选
</label>

View File

@ -4,6 +4,7 @@
<Myheader></Myheader>
<!-- <tabs></tabs> -->
<div class="rc-top"></div>
<tabs :crumbs="crumbs"></tabs>
<div class="rc-usermain">
<div class="rc rc-column">
@ -17,7 +18,7 @@
</span>
<!-- <span @click="tanchu()">弹出</span> -->
</div>
<div class="online bold"></div>
<div class="online bold"></div>
<div class="rs-dis">
<div
@ -29,7 +30,12 @@
<div class="rc-contair">
<div class="rc-left" ref="userleft" id="userleft" :style='usercolor'>
<div>
<i></i><span>{{item.couponTypeId=='4'?parseInt(((item.discount) *10))+ '折':item.couponAmount}}</span>
<i v-if="(item.couponTypeId!='4' && item.couponAmount>0)">
</i>
<span>
{{item.couponTypeId=='4'?parseInt(((item.discount)*10))+'折':item.couponAmount}}
</span>
</div>
<strong>{{ item.couponName }}</strong>
</div>
@ -59,14 +65,22 @@
<script>
import {allConfig,getdraw} from "../../ajax/getData";
// import tabs from "@/components/tabs.vue";
import {allConfig,getdraw} from "../../ajax/getData";
import tabs from "@/components/tabs.vue";
export default {
// middleware: 'metaTitle',
// // middleware: 'metaTitle',
// meta: {title: ''},
data() {
return {
crumbs:[
{
path:'/personal/mypersonal/',
},
{
path:'/personal/discount/',
}
],
userload: true,
pastdue: false,
unused: false,
@ -209,6 +223,7 @@ export default {
},
components: {
Myheader,
tabs
},
};
import Myheader from "~/components/header.vue";

View File

@ -3,7 +3,7 @@
<Myheader></Myheader>
<div class="rc-top"></div>
<tabs :crumbs="crumbs"></tabs>
<div class="rc-max-width--xl rc-padding-y--md">
<div class="rc-max-width--xl rc-padding-bottom--md">
<ul>
<li v-for="(item,index) in userrecord" :key="index">
{{item.title}}

View File

@ -183,12 +183,13 @@ ul li ol li em strong i {
border: 1px solid #d8d8d8;
margin-right: 20px;
width: 96px;
height: 96px;
height: 96px;
img {
width: 96px;
height: 96px;
display: block;
object-fit:contain;
}
}

View File

@ -92,7 +92,7 @@
<em>{{ sumPrice }}</em>
</div>
<div style="font-weight: bold">
<span @click="jiesuan()">提交订单</span>
<span @click="preJiesuan()">提交订单</span>
</div>
</div>
</div>
@ -280,6 +280,19 @@ export default {
this.dialogAdd = parm;
this.getAddressList();
},
preJiesuan(){
let checkResult=true;
if(this.useraddress.length<=0) {
this.$message({
type: "error",
message: '请先添加收件信息',
});
checkResult=false;
}
if(checkResult)
this.jiesuan();
},
async jiesuan() {
let orderAddress = this.useraddress.filter((item) => item.isDefault);
let postData = [];

View File

@ -2,6 +2,7 @@
<div>
<Myheader></Myheader>
<div class="rc-top"></div>
<tabs :crumbs="crumbs"></tabs>
<div class="online bold"></div>
<div class="usercontshow rc-max-width--xl">
<div class="rc-headera">
@ -137,11 +138,20 @@
<script>
import Myheader from "~/components/header.vue";
import MyFooter from '~/components/rc-footer.vue'
import MyFooter from '~/components/rc-footer.vue';
import tabs from "~/components/tabs.vue";
import { customerorders, userindent, canceldanhao,generateOrderWX } from "../../ajax/getData";
export default {
data() {
return {
crumbs:[
{
path:'/personal/mypersonal/',
},
{
path:'/personal/useraddress/',
}
],
activeIndex: 0,
userstype:'',
alllist:[],
@ -280,7 +290,8 @@ export default {
},
components: {
Myheader,
MyFooter
MyFooter,
tabs
},
methods: {
async indet(mobile, stype) {
@ -297,7 +308,6 @@ export default {
this.alllist.push(this.goldmedal[i].orderDetailList[0])
this.allmessage.push(this.goldmedal[i].orderDetailList[0])
if(this.goldmedal[i].status==0){
console.log("+++++++++++++");
this.obligation.push(this.goldmedal[i].orderDetailList[0]);
}else if(this.goldmedal[i].status==1){
this.receiving.push(this.goldmedal[i].orderDetailList[0]);
@ -407,7 +417,10 @@ export default {
this.receiving=[];
this.pending=[];
}, 500);
}
} else if(item.status == 1) { //
}
if (item.buttontitle == "立即支付") {
this.$router.push({
path: "/personal/userpay",

View File

@ -87,11 +87,12 @@ import Myheader from "~/components/header.vue";
import tabs from "@/components/tabs.vue";
import vueQr from 'vue-qr'
import { generateOrderAlipay, updateOrderWX } from "../../ajax/getData";
import { generateOrderAlipay, updateOrderWX, monitorOrderNotify } from "../../ajax/getData";
export default {
data() {
return {
activeIndex: 0,
paymentTimer:undefined,
isSucess: false,
dialogSuccess: false,
paytype: "微信",
@ -122,10 +123,14 @@ export default {
},
methods: {
closeDialogSuccess() {
this.qrtext = '';
// this.$router.push({
// path: "/index",
// });
this.qrtext = '';
this.$router.push({
path: "/myorder/usertion",
query:{
stype:1,
orderNumber:this.userPayData.orderId
}
});
},
closeDialogFail() {
this.qrtext = '';
@ -148,16 +153,18 @@ export default {
//
async payOrderWX() {
let res = await updateOrderWX(this.userPayData.orderId);
let res = await monitorOrderNotify(this.userPayData.orderId);
if (res.success) {
this.qrtext = '成功加入群的二维码';
this.dialogSuccess = true;
} else if (res.fail) {
this.dialogFail = true;
}else{
this.payOrderWX()
let _self = this;
this.paymentTimer = setTimeout(function(){
_self.payOrderWX()
},5000);
}
},
},

View File

@ -290,6 +290,8 @@ export default {
let mainProductCode = context.route.query.mainProductCode;
let productCode = context.route.query.productCode;
let activeIndexa = 0;
if(!productCode || productCode.length<=0)
throw new Error('Empty product code');
productCode = productCode.split(",");
// console.log(this.productCode);
if(isRxGoods){
@ -387,20 +389,6 @@ export default {
catimage: require("../../assets/image/unused.png"),
},
],
fixedlist: [
{
title: "购物车",
catimage: require("../../assets/buy.png"),
},
{
title: "在线客服",
catimage: require("../../assets/service.png"),
},
{
title: "营养专家",
catimage: require("../../assets/consult.png"),
},
],
newlist: [
{
@ -581,9 +569,10 @@ export default {
this.usermessage.data.mobile,
item.picFile,
item.productName,
item.basePrice,
item.ecPrice,
item.specifications,
item.leftAllotment
item.leftAllotment,
item.basePoint
);
if (data) {
this.productlist = data;
@ -611,9 +600,11 @@ export default {
productName: item.productName,
productImg: item.picFile,
specifications: item.specifications,
buyCount: item.pcs,
memberId: "884258",
mobile: "13480231061",
leftAllotment: item.leftAllotment,
basePoint: item.basePoint,
buyCount: this.sales_num,
memberId: "",
mobile: "",
checked: true,
},
];

View File

@ -21,7 +21,7 @@
<div class="rc-max-width--xl rc-people rc-useaddress">
<span>详细地址:</span>
<input type="text" placeholder="小区、门牌号等" class="userinput" v-model="alladdress">
<textarea rows="10" cols="30" placeholder="请输入详细地址">
<textarea rows="10" cols="30" placeholder="请输入详细地址" v-model="alladdress">
</textarea>
</div>
@ -91,20 +91,18 @@ export default {
},
methods: {
onGetMenu(values){
console.log(values,+'111111');
let user=values[2].id;
user=user.split('-');
this.provinceId=user[0];
this.cityId=user[1];
this.districtId=user[2];
console.log(values,+'111111');
let user=values[2].id;
user=user.split('-');
this.provinceId=user[0];
this.cityId=user[1];
this.districtId=user[2];
},
handleClose1(){
this.dialogInfo1 = false
this.dialogInfo1 = false
},
register(){
console.log(this.tel)
if ( this.alladdress==='') {
if (this.alladdress==='') {
this.$message({
type: 'warning',
message: '请输入详细地址 '

View File

@ -2,6 +2,7 @@
<div>
<Myheader></Myheader>
<div class="rc-top"></div>
<tabs :crumbs="crumbs"></tabs>
<div class="online bold"></div>
<div class="usercontshow rc-max-width--xl">
<div class="usercontend" v-for="(item, index) in list" :key="index">
@ -67,10 +68,19 @@
<script>
import Myheader from '~/components/header.vue'
import MyFooter from '~/components/rc-footer.vue'
import tabs from "~/components/tabs.vue";
import { selectaddress,editupdate,editdelete} from "../../ajax/getData";
export default {
data() {
return {
crumbs:[
{
path:'/personal/mypersonal/',
},
{
path:'/useraddress/openaddress/',
}
],
chosenAddressId: "1",
checked: true,
userid: null,
@ -176,7 +186,8 @@ export default {
},
components: {
Myheader,
MyFooter
MyFooter,
tabs
},
mounted() {
@ -191,6 +202,5 @@ export default {
</script>
<style lang="less" scoped >
@import url("../../assets/css/global.less");
@import url("../../assets/css/openaddress.less");
</style>

View File

@ -221,6 +221,7 @@
</div>
</div>
<div class="rc-button">
<span @click="openclose()">取消</span>
<em @click="openclose()">确认</em>
@ -305,10 +306,12 @@
</div>
</div>
</div>
<!--
<div class="rc-button rc-padding-bottom--md">
<span @click="openclose()">取消</span>
<em @click="openclose()">确认</em>
</div>
-->
</el-dialog>
</div>
<!-- rc-main end -->