H5支持微信支付
This commit is contained in:
@ -197,16 +197,16 @@ import {
|
||||
getProductDetail,
|
||||
postCartAdd,
|
||||
getCartCount,
|
||||
getProductCode
|
||||
getProductCode,
|
||||
} from "@/api/store";
|
||||
import {
|
||||
getCoupon,
|
||||
getCollectAdd,
|
||||
getCollectDel,
|
||||
getUserInfo
|
||||
getUserInfo,
|
||||
} from "@/api/user";
|
||||
import { isWeixin, PosterCanvas, handleQrCode } from "@/utils";
|
||||
// import { wechatEvevt } from "@/libs/wechat";
|
||||
import { wechatEvevt } from "@/libs/wechat";
|
||||
import { imageBase64 } from "@/api/public";
|
||||
import { mapGetters } from "vuex";
|
||||
|
||||
@ -220,9 +220,9 @@ export default {
|
||||
CouponPop,
|
||||
ProductWindow,
|
||||
StorePoster,
|
||||
ShareInfo
|
||||
ShareInfo,
|
||||
},
|
||||
data: function() {
|
||||
data: function () {
|
||||
return {
|
||||
shareInfoStatus: false,
|
||||
weixinStatus: false,
|
||||
@ -232,18 +232,18 @@ export default {
|
||||
image: "",
|
||||
title: "",
|
||||
price: "",
|
||||
code: ""
|
||||
code: "",
|
||||
},
|
||||
posterImageStatus: false,
|
||||
animated: false,
|
||||
coupon: {
|
||||
coupon: false,
|
||||
list: []
|
||||
list: [],
|
||||
},
|
||||
attr: {
|
||||
cartAttr: false,
|
||||
productAttr: [],
|
||||
productSelect: {}
|
||||
productSelect: {},
|
||||
},
|
||||
isOpen: false, //是否打开属性组件
|
||||
productValue: [],
|
||||
@ -263,23 +263,23 @@ export default {
|
||||
swiperRecommend: {
|
||||
pagination: {
|
||||
el: ".swiper-pagination",
|
||||
clickable: true
|
||||
clickable: true,
|
||||
},
|
||||
autoplay: false,
|
||||
loop: false,
|
||||
speed: 1000,
|
||||
observer: true,
|
||||
observeParents: true
|
||||
observeParents: true,
|
||||
},
|
||||
goodList: [],
|
||||
systemStore: {},
|
||||
qqmapsdk: null,
|
||||
productConClass: "product-con",
|
||||
tempName: "全国包邮"
|
||||
tempName: "全国包邮",
|
||||
};
|
||||
},
|
||||
computed: mapGetters(["isLogin", "location"]),
|
||||
mounted: function() {
|
||||
mounted: function () {
|
||||
let url = handleQrCode();
|
||||
if (url && url.productId) {
|
||||
this.id = url.productId;
|
||||
@ -287,6 +287,7 @@ export default {
|
||||
this.id = this._route.query.id;
|
||||
}
|
||||
this.productCon();
|
||||
this.setOpenShare();
|
||||
},
|
||||
watch: {
|
||||
posterImageStatus(status) {
|
||||
@ -296,7 +297,7 @@ export default {
|
||||
} else {
|
||||
this.productConClass = "product-con";
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
goShoppingCart() {
|
||||
@ -304,48 +305,48 @@ export default {
|
||||
},
|
||||
goCustomerList() {
|
||||
this.$yrouter.push({
|
||||
path: "/pages/user/CustomerList/index"
|
||||
path: "/pages/user/CustomerList/index",
|
||||
});
|
||||
},
|
||||
goStoreList() {
|
||||
this.$yrouter.push({
|
||||
path: "/pages/shop/StoreList/index"
|
||||
path: "/pages/shop/StoreList/index",
|
||||
});
|
||||
},
|
||||
goEvaluateList(id) {
|
||||
this.$yrouter.push({
|
||||
path: "/pages/shop/EvaluateList/index",
|
||||
query: {
|
||||
id
|
||||
}
|
||||
id,
|
||||
},
|
||||
});
|
||||
},
|
||||
showChang: function(data) {
|
||||
showChang: function (data) {
|
||||
this.$yrouter.push({
|
||||
path: "/pages/map/index",
|
||||
query: data
|
||||
query: data,
|
||||
});
|
||||
},
|
||||
updateTitle() {
|
||||
// document.title = this.storeInfo.storeName || this.$yroute.meta.title;
|
||||
},
|
||||
setShareInfoStatus: function() {
|
||||
setShareInfoStatus: function () {
|
||||
this.shareInfoStatus = !this.shareInfoStatus;
|
||||
this.posters = false;
|
||||
},
|
||||
shareCode: function() {
|
||||
shareCode: function () {
|
||||
var that = this;
|
||||
getProductCode(that.id).then(res => {
|
||||
getProductCode(that.id).then((res) => {
|
||||
that.posterData.code = res.data.code;
|
||||
that.listenerActionSheet();
|
||||
});
|
||||
},
|
||||
setPosterImageStatus: function() {
|
||||
setPosterImageStatus: function () {
|
||||
this.posterImageStatus = !this.posterImageStatus;
|
||||
this.posters = false;
|
||||
},
|
||||
//产品详情接口;
|
||||
productCon: function() {
|
||||
productCon: function () {
|
||||
let that = this;
|
||||
let from = this.location;
|
||||
if (this.$deviceType == "app") {
|
||||
@ -353,7 +354,7 @@ export default {
|
||||
}
|
||||
uni.showLoading({ title: "加载中", mask: true });
|
||||
getProductDetail(that.id, from)
|
||||
.then(res => {
|
||||
.then((res) => {
|
||||
res.data.storeInfo.description = res.data.storeInfo.description.replace(
|
||||
/\<img/gi,
|
||||
'<img style="max-width:100%;height:auto;"'
|
||||
@ -385,7 +386,7 @@ export default {
|
||||
var list = good_list.slice(i * 6, 6);
|
||||
if (list.length)
|
||||
goodArray.push({
|
||||
list: list
|
||||
list: list,
|
||||
});
|
||||
}
|
||||
that.mapKay = res.data.mapKay;
|
||||
@ -394,12 +395,12 @@ export default {
|
||||
that.DefaultSelect();
|
||||
that.getCartCount();
|
||||
})
|
||||
.catch(err => {
|
||||
.catch((err) => {
|
||||
uni.showToast({
|
||||
title:
|
||||
err.msg || err.response.data.msg || err.response.data.message,
|
||||
icon: "none",
|
||||
duration: 2000
|
||||
duration: 2000,
|
||||
});
|
||||
})
|
||||
.finally(() => {
|
||||
@ -407,7 +408,7 @@ export default {
|
||||
});
|
||||
},
|
||||
//默认选中属性;
|
||||
DefaultSelect: function() {
|
||||
DefaultSelect: function () {
|
||||
let productAttr = this.attr.productAttr;
|
||||
let value = [];
|
||||
for (let i = 0; i < productAttr.length; i++) {
|
||||
@ -462,7 +463,7 @@ export default {
|
||||
}
|
||||
},
|
||||
//购物车;
|
||||
ChangeCartNum: function(changeValue) {
|
||||
ChangeCartNum: function (changeValue) {
|
||||
//changeValue:是否 加|减
|
||||
//获取当前变动属性
|
||||
let productSelect = this.productValue[this.attrValue];
|
||||
@ -495,52 +496,52 @@ export default {
|
||||
}
|
||||
},
|
||||
//将父级向子集多次传送的函数合二为一;
|
||||
changeFun: function(opt) {
|
||||
changeFun: function (opt) {
|
||||
if (typeof opt !== "object") opt = {};
|
||||
let action = opt.action || "";
|
||||
let value = opt.value === undefined ? "" : opt.value;
|
||||
this[action] && this[action](value);
|
||||
},
|
||||
//打开优惠券插件;
|
||||
couponTap: function() {
|
||||
couponTap: function () {
|
||||
let that = this;
|
||||
that.coupons();
|
||||
that.coupon.coupon = true;
|
||||
},
|
||||
changecoupon: function(msg) {
|
||||
changecoupon: function (msg) {
|
||||
this.coupon.coupon = msg;
|
||||
this.coupons();
|
||||
},
|
||||
currentcoupon: function(res) {
|
||||
currentcoupon: function (res) {
|
||||
let that = this;
|
||||
that.coupon.coupon = false;
|
||||
that.$set(that.coupon.list[res], "is_use", true);
|
||||
},
|
||||
//可领取优惠券接口;
|
||||
coupons: function() {
|
||||
coupons: function () {
|
||||
let that = this,
|
||||
q = {
|
||||
page: 1,
|
||||
limit: 20
|
||||
limit: 20,
|
||||
};
|
||||
getCoupon(q).then(res => {
|
||||
getCoupon(q).then((res) => {
|
||||
that.$set(that, "couponList", res.data || []);
|
||||
that.$set(that.coupon, "list", res.data);
|
||||
});
|
||||
},
|
||||
//打开属性插件;
|
||||
selecAttrTap: function() {
|
||||
selecAttrTap: function () {
|
||||
this.attr.cartAttr = true;
|
||||
this.isOpen = true;
|
||||
},
|
||||
changeattr: function(msg) {
|
||||
changeattr: function (msg) {
|
||||
// 修改了规格
|
||||
console.log(msg);
|
||||
this.attr.cartAttr = msg;
|
||||
this.isOpen = false;
|
||||
},
|
||||
//选择属性;
|
||||
ChangeAttr: function(res) {
|
||||
ChangeAttr: function (res) {
|
||||
// 修改了规格
|
||||
console.log(res);
|
||||
let productSelect = this.productValue[res.value];
|
||||
@ -564,27 +565,27 @@ export default {
|
||||
}
|
||||
},
|
||||
//收藏商品
|
||||
setCollect: function() {
|
||||
setCollect: function () {
|
||||
let that = this,
|
||||
id = that.storeInfo.id,
|
||||
category = "product";
|
||||
if (that.storeInfo.userCollect) {
|
||||
getCollectDel(id, category).then(function() {
|
||||
getCollectDel(id, category).then(function () {
|
||||
that.storeInfo.userCollect = !that.storeInfo.userCollect;
|
||||
});
|
||||
} else {
|
||||
getCollectAdd(id, category).then(function() {
|
||||
getCollectAdd(id, category).then(function () {
|
||||
that.storeInfo.userCollect = !that.storeInfo.userCollect;
|
||||
});
|
||||
}
|
||||
},
|
||||
// 点击加入购物车按钮
|
||||
joinCart: function() {
|
||||
joinCart: function () {
|
||||
//0=加入购物车
|
||||
this.goCat(0);
|
||||
},
|
||||
// 加入购物车;
|
||||
goCat: function(news) {
|
||||
goCat: function (news) {
|
||||
let that = this,
|
||||
productSelect = that.productValue[this.attrValue];
|
||||
//打开属性
|
||||
@ -607,7 +608,7 @@ export default {
|
||||
uni.showToast({
|
||||
title: "产品库存不足,请选择其它",
|
||||
icon: "none",
|
||||
duration: 2000
|
||||
duration: 2000,
|
||||
});
|
||||
return;
|
||||
}
|
||||
@ -618,18 +619,18 @@ export default {
|
||||
uniqueId:
|
||||
that.attr.productSelect !== undefined
|
||||
? that.attr.productSelect.unique
|
||||
: ""
|
||||
: "",
|
||||
};
|
||||
postCartAdd(q)
|
||||
.then(function(res) {
|
||||
.then(function (res) {
|
||||
that.isOpen = false;
|
||||
that.attr.cartAttr = false;
|
||||
if (news) {
|
||||
that.$yrouter.push({
|
||||
path: "/pages/order/OrderSubmission/index",
|
||||
query: {
|
||||
id: res.data.cartId
|
||||
}
|
||||
id: res.data.cartId,
|
||||
},
|
||||
});
|
||||
} else {
|
||||
uni.showToast({
|
||||
@ -638,32 +639,32 @@ export default {
|
||||
duration: 2000,
|
||||
complete: () => {
|
||||
that.getCartCount(true);
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
.catch((error) => {
|
||||
that.isOpen = false;
|
||||
uni.showToast({
|
||||
title: error.response.data.msg,
|
||||
icon: "none",
|
||||
duration: 2000
|
||||
duration: 2000,
|
||||
});
|
||||
});
|
||||
},
|
||||
//获取购物车数量
|
||||
getCartCount: function(isAnima) {
|
||||
getCartCount: function (isAnima) {
|
||||
let that = this;
|
||||
const isLogin = that.isLogin;
|
||||
if (isLogin) {
|
||||
getCartCount({
|
||||
numType: 0
|
||||
}).then(res => {
|
||||
numType: 0,
|
||||
}).then((res) => {
|
||||
that.CartCount = res.data.count;
|
||||
//加入购物车后重置属性
|
||||
if (isAnima) {
|
||||
that.animated = true;
|
||||
setTimeout(function() {
|
||||
setTimeout(function () {
|
||||
that.animated = false;
|
||||
}, 500);
|
||||
}
|
||||
@ -671,20 +672,75 @@ export default {
|
||||
}
|
||||
},
|
||||
//立即购买;
|
||||
tapBuy: function() {
|
||||
tapBuy: function () {
|
||||
// 1=直接购买
|
||||
this.goCat(1);
|
||||
},
|
||||
listenerActionSheet: function() {
|
||||
listenerActionSheet: function () {
|
||||
if (isWeixin() === true) {
|
||||
this.weixinStatus = true;
|
||||
}
|
||||
this.posters = true;
|
||||
},
|
||||
listenerActionClose: function() {
|
||||
listenerActionClose: function () {
|
||||
this.posters = false;
|
||||
}
|
||||
}
|
||||
},
|
||||
setOpenShare: function () {
|
||||
var data = this.storeInfo;
|
||||
var href = location.href;
|
||||
if (this.$deviceType == "weixin") {
|
||||
if (this.isLogin) {
|
||||
getUserInfo().then((res) => {
|
||||
href =
|
||||
href.indexOf("?") === -1
|
||||
? href + "?spread=" + res.data.uid
|
||||
: href + "&spread=" + res.data.uid;
|
||||
var configAppMessage = {
|
||||
desc: data.storeInfo,
|
||||
title: data.storeName,
|
||||
link: href,
|
||||
imgUrl: data.image,
|
||||
};
|
||||
wechatEvevt(
|
||||
["updateAppMessageShareData", "updateTimelineShareData"],
|
||||
configAppMessage
|
||||
)
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
})
|
||||
.catch((res) => {
|
||||
console.log(res);
|
||||
if (res.is_ready) {
|
||||
res.wx.updateAppMessageShareData(configAppMessage);
|
||||
res.wx.updateTimelineShareData(configAppMessage);
|
||||
}
|
||||
});
|
||||
});
|
||||
} else {
|
||||
var configAppMessage = {
|
||||
desc: data.storeInfo,
|
||||
title: data.storeName,
|
||||
link: href,
|
||||
imgUrl: data.image,
|
||||
};
|
||||
wechatEvevt(
|
||||
["updateAppMessageShareData", "updateTimelineShareData"],
|
||||
configAppMessage
|
||||
)
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
})
|
||||
.catch((res) => {
|
||||
console.log(res);
|
||||
if (res.is_ready) {
|
||||
res.wx.updateAppMessageShareData(configAppMessage);
|
||||
res.wx.updateTimelineShareData(configAppMessage);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
|
Reference in New Issue
Block a user