已支付订单列表:where.payStatus = 1;

This commit is contained in:
2024-07-10 22:44:18 +08:00
parent 9dd834adb5
commit 1311eb03b8
611 changed files with 92828 additions and 400 deletions
+496
View File
@@ -0,0 +1,496 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const api_booking_card_index = require("../../api/booking/card/index.js");
const api_shop_order_index = require("../../api/shop/order/index.js");
const api_passport_login_index = require("../../api/passport/login/index.js");
const utils_common = require("../../utils/common.js");
const store_modules_car = require("../../store/modules/car.js");
const store_modules_user = require("../../store/modules/user.js");
const userStore = store_modules_user.useUserStore();
const carStore = store_modules_car.useCarStore();
const { goodsList, totalPrice, carNum, merchantId, merchantName, merchantCode, type, dateTime } = common_vendor.storeToRefs(carStore);
const _sfc_main = {
data() {
return {
cardId: 0,
goodsId: 0,
userInfo: {},
form: {},
address: {},
addressList: [],
week: 0,
goodsList,
// 订单总金额
totalPrice,
reducePrice: 0,
merchantId,
merchantName,
merchantCode,
getWeek: utils_common.getWeek,
payType: 1,
isLogin: false,
disabled: false,
// 支付密码是否正确
isPayPasswordCorrect: false,
disabledPayPayPassword: false,
payPassword: ""
};
},
onLoad(option) {
this.cardId = option.cardId;
this.reload();
},
onShow() {
if (common_vendor.index.getStorageSync("user_id") && common_vendor.index.getStorageSync("access_token")) {
this.isLogin = true;
}
this.openLogin();
},
methods: {
async reload() {
const app = this;
const { cardId } = this;
const userInfo = await userStore.fetchUserInfo();
app.userInfo = userInfo;
api_booking_card_index.getCard(cardId).then((data) => {
app.form = data;
});
},
onDisabled() {
this.disabled = !this.disabled;
},
navTo(url) {
common_vendor.index.navigateTo({
url
});
},
openUrl(url) {
if (!this.isLogin) {
this.$refs.login.open("bottom");
return false;
} else {
common_vendor.index.navigateTo({
url
});
}
},
onAddress(item) {
this.address = item;
this.$refs.addForm.close();
},
// 切换支付方式
onPayType(index) {
console.log("e: ", index);
this.payType = index;
},
openAddressList() {
this.$refs.addForm.open("center");
},
// 弹出登录提示框
openLogin() {
if (!this.isLogin) {
this.$refs.login.open("bottom");
return false;
}
},
// 验证支付密码
onPayPassword() {
if (this.payPassword == "" || !this.payPassword) {
common_vendor.index.showToast({
title: "请输入支付密码",
icon: "none"
});
return false;
}
this.disabledPayPayPassword = true;
const { payPassword } = this;
api_passport_login_index.checkPayPassword({ payPassword }).then((res) => {
this.disabledPayPayPassword = false;
this.isPayPasswordCorrect = true;
this.save();
}).catch((err) => {
common_vendor.index.showToast({
title: err.message,
icon: "none"
});
this.disabledPayPayPassword = false;
});
},
save() {
const app = this;
const { form, payType } = this;
if (!this.disabled) {
common_vendor.index.showToast({
title: "请先阅读并同意服务协议",
icon: "none"
});
return false;
}
if (payType == 0 && !this.isPayPasswordCorrect) {
this.$refs.payPasswordForm.open("center");
return false;
}
common_vendor.index.showLoading({
title: "订单提交中."
});
api_shop_order_index.addOrder({
type: 2,
// 0商城订单 1预定订单 2会员卡订单
cardId: form.cardId,
merchantId: form.merchantId,
merchantName: form.merchantName,
totalPrice: form.price,
payPrice: form.price,
comments: form.cardName,
payType
}).then((data) => {
const orderInfo = data;
if (payType == 1) {
common_vendor.index.requestPayment({
provider: orderInfo.provider,
// 服务提供商
timeStamp: orderInfo.timeStamp,
// 时间戳
nonceStr: orderInfo.nonceStr,
// 随机字符串
package: orderInfo.package,
signType: orderInfo.signType,
// 签名算法
paySign: orderInfo.paySign,
// 签名
success: function(res) {
common_vendor.index.showToast({
title: "支付成功",
icon: "success"
});
setTimeout(function() {
app.disabled = false;
common_vendor.index.navigateTo({
url: "/package/user/card"
});
}, 500);
},
fail: function(err) {
console.log("支付失败", err);
app.disabled = false;
}
});
}
if (payType == 0) {
if (orderInfo) {
common_vendor.index.showToast({
title: "支付成功",
icon: "success"
});
setTimeout(function() {
app.disabled = false;
common_vendor.index.navigateTo({
url: "/package/user/card"
});
}, 500);
return;
}
if (!orderInfo) {
return common_vendor.index.showToast({
title: "支付失败",
icon: "error"
});
}
}
common_vendor.index.hideLoading();
}).catch((res) => {
common_vendor.index.showToast({
title: res.message || "请检查您的网络.",
icon: "none"
});
common_vendor.index.hideLoading();
});
}
}
};
if (!Array) {
const _easycom_uv_avatar2 = common_vendor.resolveComponent("uv-avatar");
const _easycom_ws_login2 = common_vendor.resolveComponent("ws-login");
const _easycom_uni_card2 = common_vendor.resolveComponent("uni-card");
const _easycom_uv_icon2 = common_vendor.resolveComponent("uv-icon");
const _easycom_uv_cell2 = common_vendor.resolveComponent("uv-cell");
const _easycom_uv_cell_group2 = common_vendor.resolveComponent("uv-cell-group");
const _easycom_uni_icons2 = common_vendor.resolveComponent("uni-icons");
const _easycom_uv_gap2 = common_vendor.resolveComponent("uv-gap");
const _easycom_uv_count_to2 = common_vendor.resolveComponent("uv-count-to");
const _easycom_uv_button2 = common_vendor.resolveComponent("uv-button");
const _easycom_uni_tag2 = common_vendor.resolveComponent("uni-tag");
const _easycom_uni_popup2 = common_vendor.resolveComponent("uni-popup");
const _easycom_uv_code_input2 = common_vendor.resolveComponent("uv-code-input");
const _easycom_uni_forms_item2 = common_vendor.resolveComponent("uni-forms-item");
const _easycom_uni_forms2 = common_vendor.resolveComponent("uni-forms");
(_easycom_uv_avatar2 + _easycom_ws_login2 + _easycom_uni_card2 + _easycom_uv_icon2 + _easycom_uv_cell2 + _easycom_uv_cell_group2 + _easycom_uni_icons2 + _easycom_uv_gap2 + _easycom_uv_count_to2 + _easycom_uv_button2 + _easycom_uni_tag2 + _easycom_uni_popup2 + _easycom_uv_code_input2 + _easycom_uni_forms_item2 + _easycom_uni_forms2)();
}
const _easycom_uv_avatar = () => "../../uni_modules/uv-avatar/components/uv-avatar/uv-avatar.js";
const _easycom_ws_login = () => "../../uni_modules/ws-login/components/ws-login/ws-login.js";
const _easycom_uni_card = () => "../../uni_modules/uni-card/components/uni-card/uni-card.js";
const _easycom_uv_icon = () => "../../uni_modules/uv-icon/components/uv-icon/uv-icon.js";
const _easycom_uv_cell = () => "../../uni_modules/uv-cell/components/uv-cell/uv-cell.js";
const _easycom_uv_cell_group = () => "../../uni_modules/uv-cell/components/uv-cell-group/uv-cell-group.js";
const _easycom_uni_icons = () => "../../uni_modules/uni-icons/components/uni-icons/uni-icons.js";
const _easycom_uv_gap = () => "../../uni_modules/uv-gap/components/uv-gap/uv-gap.js";
const _easycom_uv_count_to = () => "../../uni_modules/uv-count-to/components/uv-count-to/uv-count-to.js";
const _easycom_uv_button = () => "../../uni_modules/uv-button/components/uv-button/uv-button.js";
const _easycom_uni_tag = () => "../../uni_modules/uni-tag/components/uni-tag/uni-tag.js";
const _easycom_uni_popup = () => "../../uni_modules/uni-popup/components/uni-popup/uni-popup.js";
const _easycom_uv_code_input = () => "../../uni_modules/uv-code-input/components/uv-code-input/uv-code-input.js";
const _easycom_uni_forms_item = () => "../../uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.js";
const _easycom_uni_forms = () => "../../uni_modules/uni-forms/components/uni-forms/uni-forms.js";
if (!Math) {
(_easycom_uv_avatar + _easycom_ws_login + _easycom_uni_card + _easycom_uv_icon + _easycom_uv_cell + _easycom_uv_cell_group + _easycom_uni_icons + _easycom_uv_gap + _easycom_uv_count_to + _easycom_uv_button + _easycom_uni_tag + _easycom_uni_popup + _easycom_uv_code_input + _easycom_uni_forms_item + _easycom_uni_forms)();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: common_vendor.t($data.merchantId),
b: common_vendor.t($data.merchantCode),
c: common_vendor.t($data.merchantName),
d: common_vendor.t(_ctx.dateTime),
e: common_vendor.t($data.week),
f: common_vendor.t($data.totalPrice),
g: common_vendor.t(_ctx.type),
h: common_vendor.t($data.goodsList),
i: common_vendor.t($data.form),
j: common_vendor.p({
src: $data.form.merchantAvatar,
size: "42"
}),
k: common_vendor.t($data.form.cardName),
l: $data.form.cardCode == "月/年卡"
}, $data.form.cardCode == "月/年卡" ? {
m: common_vendor.t($data.form.month)
} : {}, {
n: $data.form.cardCode == "次卡"
}, $data.form.cardCode == "次卡" ? {
o: common_vendor.t($data.form.number)
} : {}, {
p: $data.form.cardCode == "充值卡"
}, $data.form.cardCode == "充值卡" ? {
q: common_vendor.t($data.form.discount)
} : {}, {
r: common_vendor.p({
src: "../../static/qrcode.png",
size: "30",
shape: "square"
}),
s: `url(${$data.form.image}) no-repeat center center`,
t: common_vendor.sr("login", "b71f6ba9-2"),
v: common_vendor.o($options.reload),
w: common_vendor.p({
logo: _ctx.logo
}),
x: $data.form.comments,
y: common_vendor.p({
title: "会员卡说明",
border: false,
["is-shadow"]: false
}),
z: common_vendor.f(_ctx.payment, (item, index, i0) => {
return {
a: index
};
}),
A: $data.payType == 1
}, $data.payType == 1 ? {
B: common_vendor.p({
size: "30rpx",
name: "checkbox-mark"
})
} : {}, {
C: common_vendor.o(($event) => $options.onPayType(1)),
D: common_vendor.p({
title: "微信支付",
icon: "https://oss.wsdns.cn/20240511/8d7af0f0374040cb9b9255eff5fb812d.png?x-oss-process=image/resize,m_fixed,w_100,h_100/quality,Q_90",
cellStyle: {
padding: "20rpx 10rpx",
borderRadius: "8rpx",
backgroundColor: $data.payType == 1 ? "#f6fff1" : ""
},
border: false
}),
E: $data.payType == 0
}, $data.payType == 0 ? {
F: common_vendor.p({
size: "30rpx",
name: "checkbox-mark"
})
} : {}, {
G: common_vendor.o(($event) => $options.onPayType(0)),
H: common_vendor.p({
title: `余额支付(${$data.userInfo.balance})`,
icon: "https://oss.wsdns.cn/20240511/fae57a94fa0042b9bceb721421304db1.png?x-oss-process=image/resize,m_fixed,w_100,h_100/quality,Q_90",
cellStyle: {
padding: "10px 5px",
borderRadius: "8rpx",
backgroundColor: $data.payType == 0 ? "#f6fff1" : ""
},
border: false
}),
I: common_vendor.p({
customStyle: {
backgroundColor: "#ffffff"
},
border: false
}),
J: common_vendor.t($data.form.price || 0),
K: common_vendor.o(($event) => _ctx.actionsClick("分享")),
L: common_vendor.p({
title: "选择支付方式",
border: false,
["is-shadow"]: false
}),
M: !$data.disabled
}, !$data.disabled ? {
N: common_vendor.o($options.onDisabled),
O: common_vendor.p({
type: "circle",
size: "20",
color: "#a4a5a7"
})
} : {
P: common_vendor.o($options.onDisabled),
Q: common_vendor.p({
type: "checkbox",
size: "20",
color: "#11a954"
})
}, {
R: common_vendor.o(($event) => $options.navTo("/package/article/detail?articleId=501")),
S: common_vendor.o(($event) => $options.navTo("/package/article/detail?articleId=502")),
T: common_vendor.o((...args) => $options.onDisabled && $options.onDisabled(...args)),
U: common_vendor.p({
height: "50"
}),
V: common_vendor.p({
startVal: 0,
decimals: "2",
duration: "100",
color: "#ebcf00",
bold: true,
endVal: $data.form.price
}),
W: common_vendor.o($options.save),
X: common_vendor.p({
disabled: !$data.disabled,
customStyle: {
background: "linear-gradient(to right, #70b915, #008e04)",
borderRadius: "0 30px 30px 0",
color: "#ffffff",
border: "none",
padding: "22px 30px"
},
text: "提交订单"
}),
Y: common_vendor.f($data.addressList, (item, index, i0) => {
return common_vendor.e({
a: "b71f6ba9-19-" + i0 + "," + ("b71f6ba9-18-" + i0),
b: common_vendor.p({
text: item.type,
fontSize: "12",
size: "32",
randomBgColor: true
}),
c: common_vendor.t(item.name),
d: common_vendor.t(item.phone),
e: item.isDefault
}, item.isDefault ? {
f: "b71f6ba9-20-" + i0 + "," + ("b71f6ba9-18-" + i0),
g: common_vendor.p({
text: "默认",
size: "mini",
inverted: true,
type: "success"
})
} : {}, {
h: "b71f6ba9-21-" + i0 + "," + ("b71f6ba9-18-" + i0),
i: common_vendor.o(($event) => $options.onAddress(item), index),
j: "b71f6ba9-18-" + i0 + ",b71f6ba9-17",
k: common_vendor.p({
cellStyle: {
padding: "10px 0"
},
label: item.address
}),
l: index
});
}),
Z: common_vendor.p({
type: "right"
}),
aa: common_vendor.o(($event) => $options.navTo("/package/user/address")),
ab: common_vendor.p({
customStyle: {
borderRadius: "30px"
},
text: "收货地址管理"
}),
ac: common_vendor.p({
customStyle: {
backgroundColor: "#ffffff"
},
border: false
}),
ad: common_vendor.p({
title: "选择收货地址",
border: false,
["is-shadow"]: false,
padding: 0
}),
ae: common_vendor.sr("addForm", "b71f6ba9-15"),
af: common_vendor.p({
type: "center",
["border-radius"]: "10px 10px 0 0"
}),
ag: common_vendor.o(($event) => $data.payPassword = $event),
ah: common_vendor.p({
mode: "box",
dot: true,
space: 0,
maxlength: 6,
hairline: true,
modelValue: $data.payPassword
}),
ai: common_vendor.p({
label: "支付密码",
name: "payPassword",
required: true
}),
aj: common_vendor.o($options.onPayPassword),
ak: common_vendor.p({
customStyle: {
background: "linear-gradient(to right, #70b915, #008e04)",
borderRadius: "30px",
color: "#ffffff"
},
text: "确定支付",
disabled: $data.disabledPayPayPassword
}),
al: common_vendor.sr("form", "b71f6ba9-25,b71f6ba9-24"),
am: common_vendor.p({
["label-width"]: 80
}),
an: common_vendor.o(($event) => $options.navTo(`/package/user/pay-password`)),
ao: common_vendor.p({
title: "请输入支付密码",
border: false,
["is-shadow"]: false,
padding: 0
}),
ap: common_vendor.sr("payPasswordForm", "b71f6ba9-23"),
aq: common_vendor.p({
type: "center",
["border-radius"]: "10px 10px 0 0"
}),
ar: common_vendor.sr("login", "b71f6ba9-29"),
as: common_vendor.o($options.reload),
at: common_vendor.p({
logo: _ctx.logo
})
});
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-b71f6ba9"], ["__file", "/Users/gxwebsoft/APP/gxtyzx-uniapp-cli/src/package/card/checkout.vue"]]);
wx.createPage(MiniProgramPage);
+20
View File
@@ -0,0 +1,20 @@
{
"navigationBarTitleText": "订单确认",
"usingComponents": {
"uv-avatar": "../../uni_modules/uv-avatar/components/uv-avatar/uv-avatar",
"ws-login": "../../uni_modules/ws-login/components/ws-login/ws-login",
"uni-card": "../../uni_modules/uni-card/components/uni-card/uni-card",
"uv-icon": "../../uni_modules/uv-icon/components/uv-icon/uv-icon",
"uv-cell": "../../uni_modules/uv-cell/components/uv-cell/uv-cell",
"uv-cell-group": "../../uni_modules/uv-cell/components/uv-cell-group/uv-cell-group",
"uni-icons": "../../uni_modules/uni-icons/components/uni-icons/uni-icons",
"uv-gap": "../../uni_modules/uv-gap/components/uv-gap/uv-gap",
"uv-count-to": "../../uni_modules/uv-count-to/components/uv-count-to/uv-count-to",
"uv-button": "../../uni_modules/uv-button/components/uv-button/uv-button",
"uni-tag": "../../uni_modules/uni-tag/components/uni-tag/uni-tag",
"uni-popup": "../../uni_modules/uni-popup/components/uni-popup/uni-popup",
"uv-code-input": "../../uni_modules/uv-code-input/components/uv-code-input/uv-code-input",
"uni-forms-item": "../../uni_modules/uni-forms/components/uni-forms-item/uni-forms-item",
"uni-forms": "../../uni_modules/uni-forms/components/uni-forms/uni-forms"
}
}
File diff suppressed because one or more lines are too long
+216
View File
@@ -0,0 +1,216 @@
page {
background-size: 100%;
background-repeat: no-repeat;
background-color: #f0f2f5;
width: 750rpx;
overflow-x: hidden;
}
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.checkout-car.data-v-b71f6ba9 {
width: 700rpx;
left: 25rpx;
position: fixed;
bottom: 30rpx;
display: flex;
justify-content: space-between;
background-color: #000000;
border-radius: 100px;
align-items: center;
}
.checkout-car .car-selected.data-v-b71f6ba9 {
color: #ccc;
display: flex;
align-items: center;
padding: 0 20rpx;
}
.checkout-car .car-total.data-v-b71f6ba9 {
display: flex;
color: #ebcf00;
align-items: center;
padding-left: 40rpx;
}
.card-list .container.data-v-b71f6ba9 {
width: 700rpx;
position: relative;
margin: 25rpx auto;
display: flex;
justify-content: space-between;
align-items: center;
border-radius: 20rpx;
position: relative;
box-shadow: 0 0px 6px 0 rgba(0, 0, 0, 0.2);
color: #ffffff;
}
.card-list .container .card-num.data-v-b71f6ba9 {
position: absolute;
z-index: 1;
bottom: 30rpx;
left: 30rpx;
}
.card-list .container.data-v-b71f6ba9::before {
content: "";
display: block;
position: absolute;
border-radius: 20rpx;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: #000000;
background-size: 100%;
opacity: 0.25; /* 设置透明度 */
}
.card-list .content.data-v-b71f6ba9 {
position: relative;
z-index: 1;
width: 700rpx;
height: 380rpx;
display: flex;
justify-content: space-between;
}
.card-list .content .merchant-avatar.data-v-b71f6ba9 {
margin-top: 30rpx;
margin-left: 30rpx;
}
.card-list .content .card-info.data-v-b71f6ba9 {
height: 120rpx;
margin-top: 10rpx;
margin-left: 10rpx;
display: flex;
justify-content: space-between;
align-items: center;
}
.card-list .content .card-info .title-bar.data-v-b71f6ba9 {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: flex-start;
}
.card-list .content .card-info .web-text-price.data-v-b71f6ba9 {
padding-right: 40rpx;
font-size: 36rpx;
color: #fecc66;
}
.card-list .card-item.data-v-b71f6ba9 {
width: 700rpx;
margin: 20rpx auto;
border-radius: 20rpx;
position: relative;
}
.card-list .order-title.data-v-b71f6ba9 {
padding: 20rpx 0;
}
.card-list .order-title .merchant-avatar.data-v-b71f6ba9 {
margin-right: 12rpx;
}
.card-list .order-title .card-name.data-v-b71f6ba9 {
font-weight: 600;
}
.card-list .order-title .btn-status.data-v-b71f6ba9 {
font-size: 30rpx;
display: flex;
}
.card-list .order-body.data-v-b71f6ba9 {
padding: 16px 0;
}
.card-actions.data-v-b71f6ba9 {
display: flex;
flex-direction: row;
justify-content: flex-end;
height: 45px;
border-top: 1px #eee solid;
}
.card-actions-item.data-v-b71f6ba9 {
display: flex;
flex-direction: row;
align-items: center;
}
.card-actions-item .web-text-heading.data-v-b71f6ba9 {
font-size: 38rpx;
margin-left: 28rpx;
}
.card-actions-item-text.data-v-b71f6ba9 {
font-size: 12px;
color: #666;
margin-left: 5px;
}
.address-body.data-v-b71f6ba9 {
width: 660rpx;
margin: auto;
}
.add-address.data-v-b71f6ba9 {
width: 600rpx !important;
margin: 40rpx auto;
}
.btn-bar.data-v-b71f6ba9 {
width: 700rpx;
left: 25rpx;
position: fixed;
bottom: 30rpx;
margin: auto;
clear: both;
}
.title-bar.data-v-b71f6ba9 {
display: flex;
}
.title-bar .web-text-heading.data-v-b71f6ba9 {
margin-right: 20rpx;
}
.title-bar .web-text-secondary.data-v-b71f6ba9 {
margin-right: 20rpx;
}
.xieyi.data-v-b71f6ba9 {
margin-bottom: 80rpx;
padding: 0 30rpx;
}
.xieyi .text.data-v-b71f6ba9 {
margin-left: 5rpx;
}
.xieyi .text .link.data-v-b71f6ba9 {
color: #0f80ff;
}
.pay-password-card.data-v-b71f6ba9 {
width: 600rpx;
min-height: 300rpx;
margin: 30rpx auto;
background-color: #ffffff;
text-align: center;
display: flex;
justify-content: center;
flex-direction: column;
align-items: center;
}
.pay-password-card .web-text-primary.data-v-b71f6ba9 {
line-height: 2rem;
padding: 20rpx 0;
}
.to-pay-btn.data-v-b71f6ba9 {
width: 400rpx !important;
margin: 40rpx auto;
}
+272
View File
@@ -0,0 +1,272 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const api_booking_card_index = require("../../api/booking/card/index.js");
require("../../utils/request.js");
const utils_common = require("../../utils/common.js");
const _sfc_main = {
components: {},
data() {
return {
isRefresh: false,
isLogin: false,
userId: 0,
where: {
page: 1,
cardCode: "月/年卡",
sceneType: "showCanBuyVipCard"
},
canReset: false,
loadMore: "more",
logo: "",
items: ["月/年卡", "次卡", "充值卡"],
cardList: [],
styles: [
{
value: "button",
text: "按钮",
checked: true
},
{
value: "text",
text: "文字"
}
],
colors: ["#333333", "#4cd964", "#dd524d"],
current: 0,
colorIndex: 0,
activeColor: "#108001",
styleType: "text",
getWeek: utils_common.getWeek,
// 骨架屏
hideTools: true
};
},
onLoad(option) {
this.openLogin();
this.reload();
console.log("判断是否刷新: ", option);
if (option.isRefresh) {
this.isRefresh = true;
}
},
onShow(e) {
console.log("判断是否刷新: ", e);
this.openLogin();
if (this.isRefresh) {
this.reload();
}
},
// 触底函数
onReachBottom() {
const app = this;
const { where } = this;
if (app.canReset) {
app.where.page = ++where.page;
app.reload();
}
},
methods: {
reload() {
const app = this;
const { where, userId } = this;
if (userId == 0) {
app.openLogin();
return;
}
app.loadMore = "loading";
api_booking_card_index.pageCard(where).then((res) => {
const list = res.list.map((d) => {
console.log(d);
return d;
});
if (app.cardList.length < res.count) {
app.cardList = app.cardList.concat(list);
app.canReset = true;
app.loadMore = "no-more";
} else {
app.canReset = false;
app.loadMore = "no-more";
}
app.isRefresh = false;
app.hideTools = false;
}).catch(() => {
common_vendor.index.showToast({
title: "请检查您的网络.",
icon: "none"
});
app.isRefresh = false;
app.hideTools = false;
});
},
onClickItem(e, text) {
const { where, userId } = this;
const index = e.currentIndex;
if (this.current !== e.currentIndex) {
this.current = e.currentIndex;
}
if (index == 0) {
where.cardCode = "月/年卡";
}
if (index == 1) {
where.cardCode = "次卡";
}
if (index == 2) {
where.cardCode = "充值卡";
}
this.where.page = 1;
this.cardList = [];
this.hideTools = true;
this.reload();
},
openUrl(url) {
common_vendor.index.navigateTo({
url
});
},
toPay(orderId) {
common_vendor.index.navigateTo({
url: "/package/booking/confirm?id=" + orderId
});
},
closeOrder(item) {
common_vendor.index.showModal({
title: "确定取消此订单?",
success(o) {
if (o.confirm) ;
}
});
},
// 弹出登录提示框
async openLogin() {
this.userId = common_vendor.index.getStorageSync("user_id");
if (!this.userId) {
this.$refs.login.open("bottom");
return false;
}
}
}
};
if (!Array) {
const _easycom_uni_segmented_control2 = common_vendor.resolveComponent("uni-segmented-control");
const _easycom_uv_avatar2 = common_vendor.resolveComponent("uv-avatar");
const _easycom_uv_skeleton2 = common_vendor.resolveComponent("uv-skeleton");
const _easycom_uni_card2 = common_vendor.resolveComponent("uni-card");
const _easycom_ws_login2 = common_vendor.resolveComponent("ws-login");
(_easycom_uni_segmented_control2 + _easycom_uv_avatar2 + _easycom_uv_skeleton2 + _easycom_uni_card2 + _easycom_ws_login2)();
}
const _easycom_uni_segmented_control = () => "../../uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.js";
const _easycom_uv_avatar = () => "../../uni_modules/uv-avatar/components/uv-avatar/uv-avatar.js";
const _easycom_uv_skeleton = () => "../../uni_modules/uv-skeleton/components/uv-skeleton/uv-skeleton.js";
const _easycom_uni_card = () => "../../uni_modules/uni-card/components/uni-card/uni-card.js";
const _easycom_ws_login = () => "../../uni_modules/ws-login/components/ws-login/ws-login.js";
if (!Math) {
(_easycom_uni_segmented_control + _easycom_uv_avatar + _easycom_uv_skeleton + _easycom_uni_card + _easycom_ws_login)();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: common_vendor.o($options.onClickItem),
b: common_vendor.p({
current: $data.current,
values: $data.items,
styleType: $data.styleType,
activeColor: $data.activeColor,
inActiveColor: "#808080"
}),
c: common_vendor.f($data.cardList, (item, index, i0) => {
return common_vendor.e({
a: "8f2f2dbe-1-" + i0,
b: common_vendor.p({
src: item.merchantAvatar,
size: "36"
}),
c: common_vendor.t(item.cardName),
d: item.cardCode == "月/年卡"
}, item.cardCode == "月/年卡" ? {
e: common_vendor.t(item.month)
} : {}, {
f: item.cardCode == "次卡"
}, item.cardCode == "次卡" ? {
g: common_vendor.t(item.number)
} : {}, {
h: item.cardCode == "充值卡"
}, item.cardCode == "充值卡" ? {
i: common_vendor.t(item.discount)
} : {}, {
j: common_vendor.t(`¥${item.price}`),
k: common_vendor.o(($event) => $options.openUrl("/package/card/checkout?cardId=" + item.cardId), index),
l: `url(${item.image}) no-repeat center center`,
m: index
});
}),
d: $data.cardList.length == 0
}, $data.cardList.length == 0 ? {
e: common_vendor.p({
rows: "2",
avatar: true,
loading: $data.hideTools,
title: false
}),
f: common_vendor.p({
border: false,
padding: "18px 6px"
}),
g: common_vendor.p({
rows: "2",
avatar: true,
loading: $data.hideTools,
title: false
}),
h: common_vendor.p({
border: false,
padding: "18px 6px"
}),
i: common_vendor.p({
rows: "2",
avatar: true,
loading: $data.hideTools,
title: false
}),
j: common_vendor.p({
border: false,
padding: "18px 6px"
}),
k: common_vendor.p({
rows: "2",
avatar: true,
loading: $data.hideTools,
title: false
}),
l: common_vendor.p({
border: false,
padding: "18px 6px"
}),
m: common_vendor.p({
rows: "2",
avatar: true,
loading: $data.hideTools,
title: false
}),
n: common_vendor.p({
border: false,
padding: "18px 6px"
}),
o: common_vendor.p({
rows: "2",
avatar: true,
loading: $data.hideTools,
title: false
}),
p: common_vendor.p({
border: false,
padding: "18px 6px"
})
} : {}, {
q: common_vendor.sr("login", "8f2f2dbe-14"),
r: common_vendor.o($options.reload),
s: common_vendor.p({
logo: $data.logo
})
});
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "/Users/gxwebsoft/APP/gxtyzx-uniapp-cli/src/package/card/index.vue"]]);
wx.createPage(MiniProgramPage);
+10
View File
@@ -0,0 +1,10 @@
{
"navigationBarTitleText": "购买VIP会员卡",
"usingComponents": {
"uni-segmented-control": "../../uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control",
"uv-avatar": "../../uni_modules/uv-avatar/components/uv-avatar/uv-avatar",
"uv-skeleton": "../../uni_modules/uv-skeleton/components/uv-skeleton/uv-skeleton",
"uni-card": "../../uni_modules/uni-card/components/uni-card/uni-card",
"ws-login": "../../uni_modules/ws-login/components/ws-login/ws-login"
}
}
+1
View File
@@ -0,0 +1 @@
<view><view class="segmented"><uni-segmented-control wx:if="{{b}}" bindclickItem="{{a}}" u-i="8f2f2dbe-0" bind:__l="__l" u-p="{{b}}"/></view><view class="card-list"><block wx:for="{{c}}" wx:for-item="item" wx:key="m"><view bindtap="{{item.k}}" class="container" style="{{'background:' + item.l + ';' + ('background-size:' + '100%') + ';' + ('opacity:' + '0.85')}}"><view class="content web-cell"><view class="merchant-avatar"><uv-avatar wx:if="{{item.b}}" style="border:3rpx solid #ffffff" u-i="{{item.a}}" bind:__l="__l" u-p="{{item.b}}"></uv-avatar></view><view class="card-info web-cell-content"><view class="title-bar"><view class="web-text-heading" style="color:#ffffff;font-size:17px;font-weight:600">{{item.c}}</view><block wx:if="{{item.d}}"><view class="desc web-text-heading" style="color:#ffffff;font-size:14px">{{item.e}}个月</view></block><block wx:if="{{item.f}}"><view class="desc web-text-heading" style="color:#ffffff;font-size:14px">{{item.g}}次</view></block><block wx:if="{{item.h}}"><view class="desc web-text-heading" style="color:#ffffff;font-size:14px">{{item.i}}折</view></block></view><view class="price"><text class="web-text-price">{{item.j}}</text></view></view></view></view></block><block wx:if="{{d}}"><uni-card wx:if="{{f}}" u-s="{{['d']}}" u-i="8f2f2dbe-2" bind:__l="__l" u-p="{{f}}"><uv-skeleton wx:if="{{e}}" u-i="8f2f2dbe-3,8f2f2dbe-2" bind:__l="__l" u-p="{{e}}"></uv-skeleton></uni-card><uni-card wx:if="{{h}}" u-s="{{['d']}}" u-i="8f2f2dbe-4" bind:__l="__l" u-p="{{h}}"><uv-skeleton wx:if="{{g}}" u-i="8f2f2dbe-5,8f2f2dbe-4" bind:__l="__l" u-p="{{g}}"></uv-skeleton></uni-card><uni-card wx:if="{{j}}" u-s="{{['d']}}" u-i="8f2f2dbe-6" bind:__l="__l" u-p="{{j}}"><uv-skeleton wx:if="{{i}}" u-i="8f2f2dbe-7,8f2f2dbe-6" bind:__l="__l" u-p="{{i}}"></uv-skeleton></uni-card><uni-card wx:if="{{l}}" u-s="{{['d']}}" u-i="8f2f2dbe-8" bind:__l="__l" u-p="{{l}}"><uv-skeleton wx:if="{{k}}" u-i="8f2f2dbe-9,8f2f2dbe-8" bind:__l="__l" u-p="{{k}}"></uv-skeleton></uni-card><uni-card wx:if="{{n}}" u-s="{{['d']}}" u-i="8f2f2dbe-10" bind:__l="__l" u-p="{{n}}"><uv-skeleton wx:if="{{m}}" u-i="8f2f2dbe-11,8f2f2dbe-10" bind:__l="__l" u-p="{{m}}"></uv-skeleton></uni-card><uni-card wx:if="{{p}}" u-s="{{['d']}}" u-i="8f2f2dbe-12" bind:__l="__l" u-p="{{p}}"><uv-skeleton wx:if="{{o}}" u-i="8f2f2dbe-13,8f2f2dbe-12" bind:__l="__l" u-p="{{o}}"></uv-skeleton></uni-card></block><ws-login wx:if="{{s}}" class="r" u-r="login" binddone="{{r}}" u-i="8f2f2dbe-14" bind:__l="__l" u-p="{{s}}"/></view></view>
+158
View File
@@ -0,0 +1,158 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.content {
display: flex;
justify-content: center;
align-items: center;
height: 150px;
text-align: center;
}
.segmented {
padding: 0 12rpx;
}
.content-text {
font-size: 14px;
color: #666;
}
.color-tag {
width: 25px;
height: 25px;
}
.uni-list {
flex: 1;
}
.card-list .container {
width: 700rpx;
height: 200rpx;
position: relative;
margin: 25rpx auto;
display: flex;
justify-content: space-between;
align-items: center;
border-radius: 20rpx;
position: relative;
box-shadow: 0 0px 6px 0 rgba(0, 0, 0, 0.2);
color: #ffffff;
}
.card-list .container::before {
content: "";
display: block;
position: absolute;
border-radius: 20rpx;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: #000000;
background-size: 100%;
opacity: 0.25; /* 设置透明度 */
}
.card-list .content {
position: relative;
z-index: 1;
width: 700rpx;
display: flex;
justify-content: space-between;
}
.card-list .content .merchant-avatar {
margin-left: 24rpx;
}
.card-list .content .card-info {
margin-left: 10rpx;
display: flex;
justify-content: space-between;
align-items: center;
}
.card-list .content .card-info .title-bar {
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: flex-start;
}
.card-list .content .card-info .web-text-price {
padding-right: 30rpx;
font-size: 36rpx;
color: #fecc66;
}
.card-list .card-item {
width: 700rpx;
margin: 20rpx auto;
border-radius: 20rpx;
position: relative;
}
.card-list .order-title {
padding: 20rpx 0;
}
.card-list .order-title .merchant-avatar {
margin-right: 12rpx;
}
.card-list .order-title .card-name {
font-weight: 600;
}
.card-list .order-title .btn-status {
font-size: 30rpx;
display: flex;
}
.card-list .order-body {
padding: 16px 0;
}
.ele-flex {
display: flex;
justify-content: space-between;
}
.card-actions {
display: flex;
flex-direction: row;
justify-content: flex-end;
align-items: center;
height: 45px;
border-top: 1px #eee solid;
}
.card-actions-item {
display: flex;
flex-direction: row;
align-items: center;
}
.card-actions-item-text {
font-size: 12px;
color: #666;
margin-left: 5px;
}
.close {
top: 60rpx !important;
}
.total-price {
display: flex;
flex-direction: column;
justify-content: flex-start;
font-size: 30rpx;
align-items: flex-start;
padding-left: 6rpx;
margin-left: 450rpx;
}
.total-price .web-text-heading {
font-size: 30rpx !important;
}