This commit is contained in:
2025-04-05 23:47:00 +08:00
commit 8001f8eaeb
215 changed files with 14655 additions and 0 deletions

View File

@@ -0,0 +1,154 @@
var t = require("../../@babel/runtime/helpers/interopRequireDefault")(require("../../@babel/runtime/regenerator")), e = require("../../@babel/runtime/helpers/asyncToGenerator"), a = (getApp(),
require("../../utils/login.js"));
Page({
data: {
showLoding: !0,
num: 1,
token: "",
name: "",
mobile: "",
totalprice: "",
price: "",
info: {},
currency: "",
useMoney: 0,
allowMaxNum: 0
},
onLoad: function(t) {
this.setData({
token: t.token
}), this.getOrder();
},
changeNum: function(t) {
var e = t.currentTarget.dataset.types;
if ("money" == t.currentTarget.dataset.name) {
if ("plus" == e) this.data.useMoney < this.data.allow_useintegralmax && this.data.useMoney++; else {
if (this.data.useMoney <= 0) return !1;
this.data.useMoney--;
}
this.setData({
useMoney: this.data.useMoney
});
} else {
if ("plus" == e) {
if (this.data.num >= this.data.allowMaxNum) return wx.showToast({
title: "不能再加了啦~",
icon: "none"
}), !1;
this.data.num++;
} else {
if (this.data.num <= 1) return wx.showToast({
title: "不能再少了哟~",
icon: "none"
}), !1;
this.data.num--;
}
this.setData({
num: this.data.num
}), this.getPrice();
}
},
input: function(t) {
"money" == t.currentTarget.dataset.name ? this.setData({
useMoney: t.detail.value
}) : (this.setData({
num: t.detail.value
}), this.getPrice());
},
setMoney: function() {
var t = this.data.num * this.data.info.price, e = (t + "").split(".");
e[1] = e[1].padEnd(2, "0").slice(0, 2), t = e.join("."), this.setData({
totalMoney: t
});
},
blur: function() {
this.data.num <= 1 && this.setData({
num: 1
});
},
inputtext: function(t) {
var e = t.detail.value;
"name" == t.currentTarget.dataset.text ? this.setData({
name: e
}) : this.setData({
mobile: e
});
},
getOrder: function() {
var n = this;
return e(t.default.mark(function e() {
var s, r;
return t.default.wrap(function(t) {
for (;;) switch (t.prev = t.next) {
case 0:
return t.prev = 0, t.next = 3, a.request(a.baseUrl + "shop/order/create", {
token: n.data.token
}, !0);
case 3:
s = t.sent, r = s.data, n.setData({
showLoding: !1,
totalprice: r.totalprice,
allow_useintegral: r.allow_useintegral,
allow_useintegralmax: r.allow_useintegralmax,
currency: r.currency,
money: r.money,
shoppingCartList: r.shoppingCartList,
address: r.address,
name: r.address.username || "",
mobile: r.address.telnumber ? r.address.telnumber + "" : "",
allowMaxNum: Math.min(r.shoppingCartList.shop.stock, r.shoppingCartList.shop.purchase_num)
}), t.next = 11;
break;
case 8:
t.prev = 8, t.t0 = t.catch(0), console.log(t.t0);
case 11:
case "end":
return t.stop();
}
}, e, null, [ [ 0, 8 ] ]);
}))();
},
getPrice: function() {
var n = this;
return e(t.default.mark(function e() {
var s, r;
return t.default.wrap(function(t) {
for (;;) switch (t.prev = t.next) {
case 0:
return t.prev = 0, t.next = 3, a.request(a.baseUrl + "shop/order/num", {
uniqid: n.data.shoppingCartList.uniqid,
cartnum: n.data.num
}, !0);
case 3:
s = t.sent, r = s.data, 200 == s.code && n.setData({
totalprice: r.totalprice
}), t.next = 11;
break;
case 8:
t.prev = 8, t.t0 = t.catch(0), console.log(t.t0);
case 11:
case "end":
return t.stop();
}
}, e, null, [ [ 0, 8 ] ]);
}))();
},
pay: function() {
return "" == this.data.name.trim() ? (wx.showModal({
title: "提示",
content: "请输入姓名"
}), !1) : "" == this.data.mobile.trim() ? (wx.showModal({
title: "提示",
content: "请输入手机号码"
}), !1) : (wx.setStorageSync("goodsInfo", this.data.info), void wx.redirectTo({
url: "/pages/orderPay/orderPay?uniqid=".concat(this.data.shoppingCartList.uniqid, "&name=").concat(this.data.name, "&mobile=").concat(this.data.mobile, "&amount=").concat(this.data.useMoney)
}));
}
});

View File

@@ -0,0 +1,8 @@
{
"navigationBarTitleText": "聚美汽服",
"navigationBarBackgroundColor": "#06acb3",
"navigationBarTextStyle": "white",
"usingComponents": {
"page-loding": "../../template/pageLoding/pageLoding"
}
}

View File

@@ -0,0 +1,84 @@
<page-loding wx:if="{{showLoding}}"></page-loding>
<view>
<view class="page-container order" style="background-color: rgb(255, 255, 255);">
<view class="page-content" style="padding-bottom: 48px;">
<view class="section">
<view class="wp">
<view class="goods-info">
<view class="lt">
<view class="lt_pic">
<image mode="aspectFit" src="{{shoppingCartList.shop.image}}"></image>
</view>
</view>
<view class="rt">
<view class="rt_tit">{{shoppingCartList.shop.name}}</view>
<view class="rt_price">
<view class="now">
<view>¥</view>{{shoppingCartList.shop.price}}</view>
<view class="old">¥{{shoppingCartList.shop.marketprice}}</view>
</view>
</view>
</view>
</view>
<view class="wp"></view>
<view class="wp">
<view class="attr-wrap thin-border_t">
<view class="label">购买数量</view>
<view class="van-stepper-container">
<view class="van-stepper">
<view bindtap="changeNum" class="van-stepper__minus {{num<=1?'van-stepper__minus--disabled':''}}" data-types="minus" type="button">-</view>
<input bindblur="blur" bindinput="input" class="van-stepper__input" placeholderClass="placehoder" type="number" value="{{num}}"></input>
<view bindtap="changeNum" class="van-stepper__plus {{num>=allowMaxNum?'van-stepper__minus--disabled':''}}" data-types="plus" type="button">+</view>
</view>
</view>
</view>
</view>
<view class="wp" wx:if="{{allow_useintegral==1}}">
<view class="attr-wrap thin-border_t">
<view class="label">使用{{currency}}(最多可用{{allow_useintegralmax}}元)</view>
<view class="van-stepper-container">
<view class="van-stepper">
<view bindtap="changeNum" class="van-stepper__minus {{useMoney<=0?'van-stepper__minus--disabled':''}}" data-name="money" data-types="minus" type="button">-</view>
<input bindblur="blur" bindinput="input" class="van-stepper__input" data-name="money" placeholderClass="placehoder" type="number" value="{{useMoney}}"></input>
<view bindtap="changeNum" class="van-stepper__plus {{useMoney==allow_useintegralmax?'van-stepper__minus--disabled':''}}" data-name="money" data-types="plus" type="button">+</view>
</view>
</view>
</view>
</view>
</view>
<view class="section">
<view class="order-form van-cell-group van-hairline--top-bottom" style="position: relative;">
<view class="van-cell van-cell--required van-field">
<view class="van-cell__title van-field__label">
<view>姓名</view>
</view>
<view class="van-cell__value van-field__value">
<view class="van-field__body">
<input bindinput="inputtext" class="van-field__control" data-text="name" placeholder="请输入姓名" placeholderClass="placehoder" type="text" value="{{name}}"></input>
</view>
</view>
</view>
<view class="van-cell van-cell--required van-field">
<view class="van-cell__title van-field__label">
<view>手机</view>
</view>
<view class="van-cell__value van-field__value">
<view class="van-field__body">
<input bindinput="inputtext" class="van-field__control" data-text="mobile" placeholder="请输入你的手机号码" placeholderClass="placehoder" type="number" value="{{mobile}}"></input>
</view>
</view>
</view>
</view>
</view>
</view>
<view class="page-footer">
<view class="order-menu thin-border_t">
<view class="order_price wp"> 合计: <view class="num">¥ {{totalprice}}</view>
</view>
<view bindtap="pay" class="order_btn">
<button class="btn btn-confirm"> 立即支付 </button>
</view>
</view>
</view>
</view>
</view>

View File

@@ -0,0 +1,638 @@
.order .section {
background-color: #fff;
}
.order .section:not(:first-child) {
border-top: 3.2vw solid #f8f8f8;
}
.order .section .section-title {
color: #2a2a2a;
font-size: 3.733vw;
font-weight: 400;
padding: 3.2vw 4vw;
}
.order .section .section-title view {
color: #787878;
font-size: 3.2vw;
padding-left: 4.267vw;
}
.order .attr-wrap {
-webkit-box-pack: justify;
-ms-flex-pack: justify;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
color: #2a2a2a;
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
font-size: 3.733vw;
justify-content: space-between;
padding-bottom: 4vw;
padding-top: 4vw;
}
.van-stepper-container {
display: inline-flex;
flex: 1;
justify-content: flex-end;
}
.order .attr-wrap .label {
font-weight: 500;
}
.van-cell__title {
-webkit-box-flex: 0;
flex: none;
}
.van-cell__value,.van-field__label {
box-sizing: border-box;
width: 90px;
}
.van-cell__value {
word-wrap: break-word;
color: #969799;
display: inline-flex;
flex: 1;
overflow: hidden;
position: relative;
text-align: right;
vertical-align: middle;
}
.van-field__body,.van-field__control {
display: block;
width: 100%;
}
.van-field__control {
background-color: initial;
border: 0;
box-sizing: border-box;
color: #323233;
line-height: inherit;
margin: 0;
min-width: 0;
padding: 0;
resize: none;
text-align: right;
}
.order .order-form .van-field__control:disabled {
color: #323232;
}
.order .order-form .ems-radio+.ems-radio {
margin-left: 5.333vw;
}
.order .order-form .van-field__error-message {
text-align: right;
}
.order .order-menu-wrap {
background-color: #fff;
bottom: 0;
left: 0;
position: fixed;
width: 100%;
z-index: 5;
}
.order .order-menu .order_btn .btn-cancel {
background-color: #434343;
}
.order .order-menu .order_btn .btn-confirm {
background-color: #eb5252;
}
.order .order-menu .only_btn .btn:last-child {
-webkit-box-flex: 1.5;
flex: 1.5;
}
.order .order-viptip {
background-color: #eb5252;
border-radius: 4vw;
color: #fff;
font-size: 3.2vw;
padding: .667vw 2vw;
position: absolute;
right: 2.667vw;
top: 3.333vw;
}
.order .viptip-arrow {
border-left: 2vw solid transparent;
border-right: 2vw solid transparent;
border-top: 2vw solid #eb5252;
bottom: -1.467vw;
height: 0;
position: absolute;
right: 2.267vw;
width: 0;
}
.order .van-cell {
padding: 10px 16px;
}
.order .van-cell:not(:last-child):after {
border-bottom: 1px solid #f4f4f4;
}
.goods-info {
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
padding-bottom: 4vw;
padding-top: 3.2vw;
}
.goods-info .lt {
-webkit-box-flex: 16vw;
flex: 16vw 0 0;
width: 16vw;
}
.goods-info .lt_pic {
border-radius: 1.067vw;
overflow: hidden;
padding-top: 100%;
position: relative;
}
.goods-info .lt_pic image {
border-radius: 1.067vw;
height: 100%;
left: 0;
position: absolute;
top: 0;
width: 100%;
}
.goods-info .rt {
-webkit-box-flex: 1;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
flex: 1;
flex-direction: column;
justify-content: space-between;
padding-left: 4vw;
}
.goods-info .rt_tit {
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
color: #2a2a2a;
display: -webkit-box;
font-size: 3.733vw;
height: 9.6vw;
line-height: 4.8vw;
margin-top: -.533vw;
overflow: hidden;
text-overflow: ellipsis;
word-break: break-all;
}
.goods-info .rt_price {
font-family: DIN;
line-height: 1;
}
.goods-info .rt_price .now {
color: #eb5252;
display: inline;
font-size: 4vw;
font-weight: 500;
}
.goods-info .rt_price .now view {
display: inline;
font-size: 3.2vw;
}
.goods-info .rt_price .old {
color: #969696;
display: inline;
font-size: 3.467vw;
margin-left: 4vw;
text-decoration: line-through;
}
.popup-wrap {
box-sizing: border-box;
font-family: DIN;
height: 70vh;
padding-bottom: 12.8vw;
position: relative;
}
.popup-scroll {
height: 100%;
overflow: hidden;
overflow-y: auto;
}
.popup-header {
color: #9b9b9b;
font-size: 3.2vw;
padding: 2.667vw 4vw;
}
.popup-header .title {
color: #2a2a2a;
font-size: 3.733vw;
margin: 1.6vw 0 0;
padding: 0 0 0 3.733vw;
position: relative;
}
.popup-header .title:before {
background-color: currentColor;
content: "";
height: 3.2vw;
left: 0;
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 1.067vw;
}
.popup-btn {
background-color: #eb5252;
border-radius: 1.333vw;
bottom: 0;
color: #fff;
font-size: 4vw;
height: 12.8vw;
left: 4vw;
line-height: 12.8vw;
position: absolute;
right: 4vw;
text-align: center;
z-index: 6;
}
.calendar-header {
background-color: #fafafa;
border: 1px solid #e4e4e4;
border-width: 1px 0;
box-sizing: border-box;
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
font-size: 3.733vw;
height: 10.667vw;
left: 0;
line-height: 10.667vw;
padding: 0 4vw;
position: sticky;
text-align: center;
top: 0;
z-index: 6;
}
.calendar-header .item {
-webkit-box-flex: 1;
flex: 1;
}
.calendar-body {
padding: 0 4vw;
}
.calendar-mouth {
background-color: #fff;
font-size: 4.267vw;
left: 0;
line-height: 6.667vw;
position: sticky;
top: 10.667vw;
z-index: 5;
}
.calendar-day {
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
flex-wrap: wrap;
}
.calendar-day .item {
-webkit-box-flex: 14.285714%;
border-radius: .8vw;
color: #ff411e;
flex: 14.285714% 0 0;
font-size: 4vw;
line-height: 5.333vw;
overflow: hidden;
padding: 14.285714% 0 0;
position: relative;
text-align: center;
width: 14.285714%;
}
.calendar-day .item.disabled,.calendar-day .item.disabled .day {
color: #9b9b9b!important;
}
.calendar-day .item.active {
background-color: #eb5252;
color: #fff;
}
.calendar-day .inner {
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-box-pack: center;
-ms-flex-pack: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
display: -webkit-inline-box;
display: -ms-inline-flexbox;
display: -webkit-inline-flex;
display: inline-flex;
flex-direction: column;
height: 100%;
justify-content: center;
left: 0;
position: absolute;
top: 0;
width: 100%;
}
.calendar-day .day {
color: #2a2a2a;
}
.calendar-day .item.active .day {
color: inherit;
}
.calendar-day .price {
font-size: 3.2vw;
}
.calendar-day .price .s {
font-size: 2.933vw;
}
.back-protocol {
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
font-size: 3.467vw;
line-height: 4.8vw;
padding: 2.667vw 0;
}
.back-protocol .txt {
-webkit-box-flex: 1;
flex: 1;
padding: 0 2.667vw;
}
.back-protocol .iconfont {
color: #bebebe;
font-size: .8em;
}
.protocol-modal {
background-color: #fff;
border-radius: 2.133vw;
padding: 5.867vw 5.067vw 4vw;
top: 45%;
width: 80%;
}
.protocol-modal .title {
font-size: 4.8vw;
line-height: 6.667vw;
text-align: center;
}
.protocol-modal .content {
font-size: 3.467vw;
height: 72vw;
line-height: 4.8vw;
margin: 4vw 0;
overflow: hidden;
overflow-y: auto;
white-space: pre-wrap;
}
.protocol-modal .btn {
background-color: #fcdf21;
border-radius: 9.333vw;
display: block;
font-size: 4vw;
height: 9.333vw;
line-height: 9.333vw;
margin: 0 auto;
width: 53.333vw;
}
.van-stepper {
border: 1px solid #ccc;
border-radius: 14px;
font-size: 0;
overflow: hidden;
user-select: none;
}
.van-stepper__minus,.van-stepper__plus {
align-items: center;
border: 0;
box-sizing: border-box;
color: #323233;
cursor: pointer;
display: inline-block;
font-size: 6vw;
height: 28px;
justify-content: center;
line-height: 26px;
margin: 0;
padding: 0;
position: relative;
text-align: center;
vertical-align: middle;
width: 28px;
}
.van-stepper__minus--disabled,.van-stepper__plus--disabled {
color: #c8c9cc;
cursor: not-allowed;
display: inline-block;
line-height: 26px;
text-align: center;
}
.van-stepper__plus {
border-radius: 0 4px 4px 0;
}
.van-stepper__minus {
border-radius: 4px 0 0 4px;
}
.van-stepper__input {
-webkit-appearance: none;
border: 0;
border-radius: 0;
border-width: 1px 0;
border-left: 1px solid #ccc;
border-right: 1px solid #ccc;
box-sizing: border-box;
color: #323233;
display: inline-block;
font-size: 14px;
height: 28px;
padding: 0;
text-align: center;
vertical-align: middle;
width: 32px;
}
.van-cell--required:before {
color: #ee0a24;
content: "*";
font-size: 14px;
left: 8px;
position: absolute;
}
.van-cell {
background-color: #fff;
box-sizing: border-box;
color: #323233;
display: flex;
font-size: 15px;
line-height: 24px;
overflow: hidden;
padding: 10px 16px;
position: relative;
width: 100%;
}
.placehoder {
color: #ccc;
}
[class*=van-hairline]:after {
border: 0 solid #ebedf0;
bottom: -50%;
box-sizing: border-box;
content: " ";
left: -50%;
pointer-events: none;
position: absolute;
right: -50%;
top: -50%;
transform: scale(.5);
}
.van-hairline--top-bottom:after,.van-hairline-unset--top-bottom:after {
border-width: 1px 0;
}
.page-footer {
bottom: 0;
left: 0;
position: fixed;
right: 0;
}
.thin-border_t {
border-color: #f4f4f4;
position: relative;
}
.order .order-menu {
background-color: #fff;
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
font-size: 3.733vw;
height: 12.8vw;
line-height: 12.8vw;
}
.thin-border_t:before {
border-bottom: .267vw solid;
border-color: inherit;
content: "";
left: 0;
position: absolute;
top: 0;
transform: scaleY(.5);
width: 100%;
}
.order .wp {
padding: 0 4vw;
}
.order .order-menu .order_price {
-webkit-box-flex: 46.667vw;
border-color: #dedede;
box-sizing: border-box;
flex: 46.667vw 0 0;
padding-right: 0;
width: 46.667vw;
}
.order .order-menu .order_price .num {
color: #eb5252;
display: inline;
font-size: 5.067vw;
}
.order .order-menu .order_btn {
-webkit-box-flex: 1;
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
flex: 1;
position: relative;
}
.order .order-menu .order_btn .btn {
-webkit-box-flex: 1;
border: 0;
border-radius: 0;
color: #fff;
flex: 1;
font-size: 3.733vw;
height: 12.8vw;
line-height: 12.8vw;
text-align: center;
}
.order .order-menu .order_btn .btn-confirm {
background-color: #06a2b3;
}