mrr.sj.front/pages/service/components/self-pay.vue

1348 lines
33 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="self-pay">
<uv-popup ref="popup" mode="bottom" @change="change">
<view class="salf-card">
<view class="pop-card" v-if="serviceType == 1">
<text class="syr-info-address">{{
reservationAddress.server_address
}}</text>
<text class="syr-info-phone">{{
reservationAddress.name + " " + reservationAddress.call_phone
}}</text>
</view>
<view class="pop-card" v-if="serviceType == 1">
<view class="salf-card-between mb-20">
<text class="salf-card-between-text1">到家时间</text>
<text class="salf-card-between-text2">{{
reservationTime.selectedTime
}}</text>
</view>
<view class="salf-card-between">
<text class="salf-card-between-text1">服务人员</text>
<view style="width: 425rpx; justify-content: flex-end" class="flex-row-center">
<image v-if="reservationSyr.head_photo" class="card-right-photo"
:src="reservationSyr.head_photo" />
<text class="salf-card-between-text2" style="width: auto">{{
reservationSyr.name
}}</text>
</view>
</view>
</view>
<view class="pop-card">
<view class="serve-info">
<image :src="serviceInfo.photo[0]" class="serve-info-img" mode="aspectFill"></image>
<view class="serve-info-right">
<text class="serve-info-right-name">{{ serviceInfo.title }}</text>
<view class="serve-info-right-num flex-row-center-between">
<text class="serve-info-right-num-text1">服务数量</text>
<text class="serve-info-right-num-text2">X1</text>
</view>
</view>
</view>
<view class="salf-card-between">
<view>
<view class="salf-card-between-box">
<text class="salf-card-between-text2-o">应付金额</text>
<text class="salf-card-between-text2-t">¥</text>
<text class="salf-card-between-text2-s">{{
isOriginalPrice ? serviceInfo.server_price : serviceInfo.team_buy.price }}</text>
<text class="salf-card-between-text2-f">3999</text>
</view>
<view class="border-b"></view>
</view>
</view>
<view class="conpon" @click="useconpon" v-if="selectCoupon">
<text class="conpon-l">平台优惠券</text>
<text class="conpon-r1">-</text>
<text class="conpon-r2">¥</text>
<text class="conpon-r3">300</text>
<image class="conpon-r4"
src="https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/58b8f49b-41ef-4e92-8d7d-61ce136726ec.png"
mode="widthFix"></image>
</view>
<view class="conpon" @click="useconpon" v-if="!selectCoupon">
<text class="conpon-l">平台优惠券</text>
<text class="conpon-r1-no">暂不使用优惠券</text>
<image class="conpon-r4"
src="https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/58b8f49b-41ef-4e92-8d7d-61ce136726ec.png"
mode="widthFix"></image>
</view>
</view>
<view class="pop-card" v-if="serviceType == 2">
<view class="serve-store">
<image :src="selectStore.head_photo" class="serve-store-img" mode="aspectFill"></image>
<view class="serve-store-right">
<text class="serve-store-right-name">{{ selectStore.name }}</text>
<view class="serve-store-right-num flex-row-center-between">
<view class="flex-row-center">
<text class="serve-store-right-num-text">营业时间:</text>
<text class="serve-store-right-num-text" style="color: #333333">{{
selectStore.business_time }}</text>
</view>
</view>
</view>
</view>
<view class="serve-store-address flex-row-center">
<view class="serve-store-address-right">
<text class="serve-store-address-right-text">地址{{ selectStore.address }}</text>
<text class="serve-store-address-right-text">电话:{{ selectStore.account }}</text>
</view>
<view class="serve-store-address-left flex-row-center">
<image class="address-left-icon" src="/static/images/icons/adress.png"
@click="openMap(selectStore)"></image>
<image class="address-left-icon ml40" src="/static/images/icons/phone.png"
@click="contactService(selectStore.account)"></image>
</view>
</view>
</view>
<view class="pop-card">
<text class="pop-card-title">选择支付方式</text>
<view class="method-list">
<view class="method-item flex-row-center-between"
:class="{ mb43: index != methodList.length - 1 }" v-for="(item, index) in methodList"
:key="index" @click="selectMethod(item)">
<view class="method-info flex-row-center">
<image :src="item.icon" mode="aspectFit" class="method-icon"></image>
<text class="method-name">{{ item.name }}</text>
</view>
<agree-radio :isAgree="item.selected" :yesImg="`/static/images/icons/yes_icon.png`"
:radioSize="`40rpx`" :noImg="`/static/images/icons/no_icon.png`"></agree-radio>
</view>
</view>
</view>
<view class="pop-submit flex-row-center-between">
<view class="pop-submit-left">
<text class="pop-submit-left-text1">应付金额</text>
<text class="pop-submit-left-text2"><text style="font-size: 24rpx">¥</text>{{
isOriginalPrice ? serviceInfo.server_price : serviceInfo.team_buy.price }}</text>
</view>
<view class="pop-submit-btn flex-row-center-center">
<text class="pop-submit-btn-text" @click="submitOrder">立即支付</text>
</view>
</view>
</view>
</uv-popup>
<uv-popup round='40rpx' ref="popups" mode="bottom" @maskClick='closes'>
<text class="popups-title">平台优惠券</text>
<scroll-view scroll-y="true" class="popups-box">
<!-- 使用计算属性控制显示数量 -->
<view class="popups-card" v-for="item in displayCouponList" :key="item.id" @click="selectcoupon(item)">
<image class="popups-card-img"
src="https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/ba6a1d6d-2fe9-45ce-8ee4-49895f7a2a68.png"
mode="widthFix"></image>
<view class="popups-card-list">
<view class="popups-card-list-t">
<text class="popups-card-list-t-price">{{ item.price }}</text>
<text class="popups-card-list-t-dw">元</text>
</view>
<view class="popups-card-list-b">
<text class="popups-card-list-b-can">{{ item.threshold }}</text>
</view>
</view>
<view class="popups-card-center">
<text class="popups-card-center-title">{{ item.title }}</text>
<text class="popups-card-center-content">{{ item.time }}</text>
</view>
<view class="popups-card-r-img">
<image class="popups-card-r-img-detail"
:src="selectedId === item.id ? item.selectedImg : item.normalImg" mode="widthFix"></image>
</view>
</view>
<!-- 展开/收起按钮 -->
<view class="popups-bottom" @click="toggleExpand">
<view class="popups-bottom-view">
<text class="popups-bottom-text">{{ isExpanded ? '收起全部' : '展开全部' }}</text>
</view>
<image class="popups-bottom-img"
:src="isExpanded ? 'https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/fe418cfb-99c5-43ca-8ffd-5c656fb1cd06.png' : 'https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/169e99f5-8181-43d9-b290-f0526690ff83.png'"
mode="widthFix"></image>
</view>
<view class="nouse" @click="nousecoupon()">
<text class="nouse-text">暂不使用优惠券</text>
<image class="nouse-img"
:src="selectnouse ? 'https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/dbbc70e5-5e96-46fc-9b1a-ffd825187975.png' : 'https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/bb950b95-5221-4d4e-abf1-4d3c830aa8f0.png'"
mode="widthFix"></image>
</view>
<view class="zhanwei"></view>
<view class="pop-bot-confim">
<view class="confirm-button" @click="confim()">
<text class="confirm-button-text">确认</text>
</view>
</view>
</scroll-view>
</uv-popup>
</view>
</template>
<script>
import request from "@/utils/request";
import _public from "@/utils/public";
import locationService from "@/utils/locationService";
import permissionUtils from "@/utils/per";
export default {
name: "AgreeRadio",
props: {
show: {
type: Boolean,
default: false,
},
serviceInfo: {
type: Object,
default: () => ({}),
},
serviceType: {
type: [String, Number],
default: 2,
},
isOriginalPrice: {
type: Boolean,
default: true,
},
},
computed: {
reservationAddress() {
return this.$store.state.reservationAddress;
},
reservationSyr() {
return this.$store.state.reservationSyr;
},
selectStore() {
return this.$store.state.selectStore;
},
reservationTime() {
return this.$store.state.reservationTime;
},
// 核心控制优惠券显示数量默认4条展开显示全部
displayCouponList() {
return this.isExpanded ? this.couponList : this.couponList.slice(0, 4);
}
},
data() {
return {
isExpanded: false, // 展开/收起状态标识
selectedId: null,
couponList: [{
id: 1,
price: 10,
threshold: "满100可用",
title: "满减优惠券",
time: "2026-03-31到期",
selectedImg: "https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/dbbc70e5-5e96-46fc-9b1a-ffd825187975.png",
normalImg: "https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/bb950b95-5221-4d4e-abf1-4d3c830aa8f0.png"
},
{
id: 2,
price: 20,
threshold: "满200可用",
title: "大额满减券",
time: "2026-04-30到期",
selectedImg: "https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/dbbc70e5-5e96-46fc-9b1a-ffd825187975.png",
normalImg: "https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/bb950b95-5221-4d4e-abf1-4d3c830aa8f0.png"
},
{
id: 3,
price: 20,
threshold: "满200可用",
title: "大额满减券",
time: "2026-04-30到期",
selectedImg: "https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/dbbc70e5-5e96-46fc-9b1a-ffd825187975.png",
normalImg: "https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/bb950b95-5221-4d4e-abf1-4d3c830aa8f0.png"
}, {
id: 4,
price: 20,
threshold: "满200可用",
title: "大额满减券",
time: "2026-04-30到期",
selectedImg: "https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/dbbc70e5-5e96-46fc-9b1a-ffd825187975.png",
normalImg: "https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/bb950b95-5221-4d4e-abf1-4d3c830aa8f0.png"
},
{
id: 5,
price: 20,
threshold: "满200可用",
title: "大额满减券",
time: "2026-04-30到期",
selectedImg: "https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/dbbc70e5-5e96-46fc-9b1a-ffd825187975.png",
normalImg: "https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/bb950b95-5221-4d4e-abf1-4d3c830aa8f0.png"
},
],
selectCoupon: false,
popups: false,
isSubmit: false,
orderInfo: {
id: "",
pay_money: "",
number: "",
},
payType: false,
formData: {},
selectedPayment: "wechat",
methodList: [{
id: 1,
name: "微信",
payment: "wechat",
icon: "/static/images/wechat.png",
selected: true,
},
{
id: 2,
name: "支付宝",
payment: "alipay",
icon: "/static/images/alipay.png",
selected: false,
},
],
selectnouse: false
};
},
watch: {
show(newVal) {
if (newVal) {
this.open();
} else {
this.close();
}
},
},
methods: {
confim() {
this.$refs.popups.close();
},
nousecoupon() {
this.selectedId = null
this.selectnouse = false
this.selectnouse = true
this.selectCoupon = false
},
// 切换展开/收起状态
toggleExpand() {
this.isExpanded = !this.isExpanded;
},
selectcoupon(item) {
this.selectCoupon = true
this.selectnouse = false
this.selectedId = this.selectedId === item.id ? null : item.id;
if (this.selectedId) {
console.log("选中的优惠券:", item);
} else {
console.log("取消选中优惠券");
}
},
useconpon() {
console.log('123123123123123');
this.$refs.popups.open()
},
opens() { },
clearSubmit() {
this.isSubmit = false
},
selectMethod(item) {
this.selectedPayment = item.payment;
this.methodList.forEach((method) => {
method.selected = method.id === item.id;
});
},
open() {
this.$refs.popup.open();
},
close() {
this.$refs.popup.close();
},
change(e) {
this.$emit("change", e);
},
async submitOrder() {
if (this.isSubmit) return;
try {
uni.showLoading({
title: "提交中...",
});
let orderData = {};
if (this.serviceType == 2) {
orderData = {
server_id: this.serviceInfo.id,
order_kind: this.serviceType,
order_money: this.serviceInfo.server_price,
server_title: this.serviceInfo.title,
server_type_first_id: this.serviceInfo.first_class_id,
server_type_secod_id: this.serviceInfo.second_class_id,
order_type: 3,
};
} else if (this.serviceType == 1) {
orderData = {
server_id: this.serviceInfo.id,
order_money: this.serviceInfo.server_price,
reservation_time: `${this.reservationTime.selected_date} ${this.reservationTime.selected_time}:00`,
reservation_address_id: this.reservationAddress.id,
server_title: this.serviceInfo.title,
server_type_first_id: this.serviceInfo.first_class_id,
server_type_secod_id: this.serviceInfo.second_class_id,
order_type: 3,
};
if (this.reservationSyr.id_type == 1) {
orderData.order_kind = 1;
}
if (this.reservationSyr.id_type == 2) {
orderData.order_shopid_other = this.reservationSyr.id;
orderData.order_kind = 3;
}
}
if (!this.isOriginalPrice) {
orderData.team_buy_id = this.serviceInfo.team_buy.id
orderData.order_money = this.serviceInfo.team_buy.price
}
console.log("orderData", orderData);
this.isSubmit = true;
let res = await request.post("/user/creatorder", orderData);
console.log("creatorderres", res);
uni.hideLoading();
if (res.code == 200 || res.state == 1) {
this.orderInfo.id = res.data.id;
this.orderInfo.number = res.data.number;
this.orderInfo.pay_money = this.isOriginalPrice ? this.serviceInfo.server_price : this
.serviceInfo.team_buy.price;
console.log("orderInfo", this.orderInfo);
this.confirmPay();
} else {
uni.showToast({
title: res.msg || "提交失败",
icon: "none",
});
this.isSubmit = false;
}
} catch (error) {
uni.hideLoading();
uni.showToast({
title: "提交失败,请重试",
icon: "none",
});
console.error("提交订单失败:", error);
this.isSubmit = false;
}
},
async confirmPay() {
let that = this;
try {
uni.showLoading({
title: "支付中...",
});
console.log(that.selectedPayment);
switch (that.selectedPayment) {
case "wechat":
let wechatpayfor = await request.post(
"/user/wechatpayfor",
that.orderInfo
);
console.log("wechatpayfor", wechatpayfor);
if (wechatpayfor.code == 452) {
uni.showToast({
title: wechatpayfor.msg || "支付失败,请重试",
icon: "none",
duration: 2000,
});
this.cancelService();
return;
}
const systemInfo = uni.getSystemInfoSync();
if (systemInfo.platform === "ios") {
let appId = wechatpayfor.data.appid;
delete wechatpayfor.data.appid;
wechatpayfor.data["appId"] = appId;
console.log("wechatpayfor2", wechatpayfor);
}
console.log("================================");
uni.hideLoading();
uni.requestPayment({
provider: "wxpay",
orderInfo: wechatpayfor.data,
success: function (res) {
console.log("success:", res);
console.log(that.orderInfo.id, that.orderInfo.number);
that.isSubmit = false;
request
.post("/user/wechatsearchorder", {
id: that.orderInfo.id,
number: that.orderInfo.number,
})
.then((orderRes) => {
that.paySuccess();
})
.catch((err) => {
console.log("查询状态", err);
});
},
fail: function (err) {
that.isSubmit = false;
uni.showModal({
title: "提示",
content: "该订单未成功支付",
success: function (res) {
if (res.confirm) {
console.log("用户点击确定");
} else if (res.cancel) {
console.log("用户点击取消");
}
},
});
console.log("fail:", JSON.stringify(err));
},
});
break;
case "alipay":
let orderInfo = {
...that.orderInfo,
};
orderInfo.title = that.serviceInfo.title;
console.log("alipayorderInfo", orderInfo);
let alipayfor = await request.post("/user/alipayfor", orderInfo);
if (alipayfor.code == 452) {
uni.showToast({
title: alipayfor.msg || "支付失败,请重试",
icon: "none",
duration: 2000,
});
that.cancelService();
return;
}
console.log("alipayfor", alipayfor);
uni.hideLoading();
uni.requestPayment({
provider: "alipay",
orderInfo: alipayfor.data,
success: function (res) {
that.isSubmit = false;
console.log("success:", res);
console.log(
"id: ",
that.orderInfo.id,
"number: ",
that.orderInfo.number
);
console.log("ali支付成功了====================");
request
.post("/user/alisearchorder", {
id: that.orderInfo.id,
number: that.orderInfo.number,
})
.then((orderRes) => {
console.log("orderRes", orderRes, orderRes.trade_status);
that.paySuccess();
})
.catch((err) => {
console.log("ali报错了】】】】】】】】】】】】】】", err);
console.log("查询状态", err);
});
},
fail: function (err) {
that.isSubmit = false;
uni.showModal({
title: "提示",
content: "该订单未成功支付",
success: function (res) {
if (res.confirm) {
console.log("用户点击确定");
} else if (res.cancel) {
console.log("用户点击取消");
}
},
});
console.log("fail:", JSON.stringify(err));
},
});
break;
}
} catch (error) {
uni.hideLoading();
console.error("支付失败", error);
uni.showToast({
title: "支付失败,请重试",
icon: "none",
});
that.isSubmit = false;
}
},
async cancelService() {
this.isSubmit = false;
let id = "";
await request
.post("/user/getuser", {
type: 1,
})
.then((res) => {
console.log(res);
id = res.data.id;
});
let data = {
orderNo: this.orderInfo.number,
amount: this.orderInfo.pay_money,
cancel_state: 1,
cancel_id: id,
};
request
.post("/user/cancelorder", data)
.then((res) => {
console.log(22222, res);
})
.catch((err) => {
console.log(err);
})
.finally(() => {
setTimeout(() => {
uni.switchTab({
url: "/pages/order/userorder-list",
});
}, 2000);
});
},
paySuccess() {
uni.showToast({
title: "支付成功",
icon: "success",
});
setTimeout(() => {
uni.redirectTo({
url: `/pages/order/pay-success?orderId=${this.orderInfo.id}`,
});
}, 50);
this.isSubmit = true;
},
openMap(store) {
if (!store.latitude || !store.longitude) {
uni.showToast({
title: "该门店暂无定位信息",
icon: "none",
});
return;
}
// #ifdef MP-WEIXIN
uni.openLocation({
latitude: parseFloat(store.latitude),
longitude: parseFloat(store.longitude),
name: store.name,
address: store.address,
success: () => console.log("打开地图成功"),
fail: (err) => console.log("打开地图失败:", err),
});
// #endif
// #ifdef APP-PLUS
_public.goMap({
latitude: parseFloat(store.latitude),
longitude: parseFloat(store.longitude),
name: store.name,
address: store.address,
});
// #endif
},
async contactService(phone) {
if (!phone) {
uni.showToast({
title: "暂无联系电话",
icon: "none",
});
return;
}
const systemInfo = uni.getSystemInfoSync();
if (systemInfo.platform === "ios") {
uni.makePhoneCall({
phoneNumber: phone,
});
} else {
try {
const {
granted
} = await permissionUtils.checkPermission(
"phone",
"需要拨打电话权限,方便您联系商家"
);
if (granted) {
uni.makePhoneCall({
phoneNumber: phone,
});
return;
}
const confirm = await this.showPermissionDialog(
"拨打电话权限申请",
"我们需要获取拨打电话权限,以便您直接联系商家"
);
if (!confirm) return;
const result = await permissionUtils.requestPermission(
"phone",
"需要拨打电话权限,方便您联系商家"
);
if (result) {
uni.makePhoneCall({
phoneNumber: phone,
});
} else {
locationService.openAppSettings();
}
} catch (err) {
console.log("联系商家失败:", err);
uni.showToast({
title: "操作失败,请稍后重试",
icon: "none",
});
}
}
},
showPermissionDialog(title, content) {
return new Promise((resolve) => {
uni.showModal({
title,
content,
confirmText: "去设置",
cancelText: "取消",
success: (res) => resolve(res.confirm),
});
});
},
},
};
</script>
<style lang="less">
.self-pay {
.salf-card {
width: 750rpx;
background: #f5f5f5;
border-radius: 30rpx 30rpx 0rpx 0rpx;
padding: 30rpx 20rpx 0rpx 20rpx;
box-sizing: border-box;
.syr-info-address {
font-weight: 500;
font-size: 28rpx;
color: #333333;
line-height: 40rpx;
text-align: left;
font-style: normal;
margin-bottom: 10rpx;
}
.syr-info-phone {
font-weight: 400;
font-size: 28rpx;
color: #999999;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
.salf-card-between {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
.salf-card-between-text1 {
font-weight: 400;
font-size: 28rpx;
color: #666666;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
.salf-card-between-text2 {
font-weight: 500;
font-size: 28rpx;
color: #333333;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
.card-right-photo {
margin-right: 10rpx;
width: 60rpx;
height: 60rpx;
border-radius: 50%;
}
}
.serve-info {
display: flex;
flex-direction: row;
padding-bottom: 20rpx;
margin-bottom: 20rpx;
.serve-info-img {
width: 120rpx;
height: 120rpx;
border-radius: 30rpx;
}
.serve-info-right {
flex: 1;
margin-left: 13rpx;
display: flex;
flex-direction: column;
justify-content: space-between;
.serve-info-right-name {
font-weight: 500;
font-size: 28rpx;
color: #333333;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
.serve-info-right-num {
.serve-info-right-num-text1 {
font-weight: 400;
font-size: 26rpx;
color: #999999;
line-height: 37rpx;
text-align: left;
font-style: normal;
}
.serve-info-right-num-text2 {
font-weight: 400;
font-size: 24rpx;
color: #333333;
line-height: 33rpx;
text-align: left;
font-style: normal;
}
}
}
}
.serve-store {
display: flex;
flex-direction: row;
padding-bottom: 20rpx;
border-bottom: 1rpx solid #f1f1f1;
margin-bottom: 20rpx;
.serve-store-img {
width: 90rpx;
height: 90rpx;
border-radius: 20rpx;
}
.serve-store-right {
flex: 1;
margin-left: 13rpx;
display: flex;
flex-direction: column;
justify-content: space-between;
.serve-store-right-name {
font-weight: 500;
font-size: 28rpx;
color: #333333;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
.serve-store-right-num {
.serve-store-right-num-text {
font-weight: 400;
font-size: 24rpx;
color: #666666;
line-height: 33rpx;
text-align: left;
font-style: normal;
}
}
}
}
.serve-store-address {
.serve-store-address-right {
flex: 1;
display: flex;
flex-direction: column;
.serve-store-address-right-text {
font-weight: 400;
font-size: 24rpx;
color: #666666;
line-height: 33rpx;
text-align: left;
font-style: normal;
width: 510rpx;
lines: 1;
text-overflow: ellipsis;
}
}
.serve-store-address-left {
.address-left-icon {
width: 43rpx;
height: 43rpx;
}
}
}
.pop-card {
background: #ffffff;
border-radius: 30rpx;
padding: 20rpx;
margin-bottom: 20rpx;
.pop-card-title {
margin-bottom: 30rpx;
font-weight: 400;
font-size: 28rpx;
color: #333333;
line-height: 40rpx;
text-align: left;
font-style: normal;
}
}
.pop-submit {
padding: 25rpx 25rpx 25rpx 45rpx;
margin: 0 -20rpx;
background: #fff;
.pop-submit-left {
display: flex;
flex-direction: column;
.pop-submit-left-text1 {
font-weight: 500;
font-size: 22rpx;
color: #333333;
line-height: 30rpx;
text-align: left;
font-style: normal;
}
.pop-submit-left-text2 {
font-family: DINPro, DINPro;
font-weight: 500;
font-size: 52rpx;
color: #e8101e;
line-height: 67rpx;
text-align: left;
font-style: normal;
}
}
.pop-submit-btn {
width: 226rpx;
height: 82rpx;
background: #e8101e;
border-radius: 41rpx;
.pop-submit-btn-text {
font-weight: 500;
font-size: 30rpx;
color: #ffffff;
line-height: 82rpx;
text-align: center;
font-style: normal;
}
}
}
}
}
.method-item {}
.method-info {
display: flex;
align-items: center;
}
.method-icon {
width: 38rpx;
height: 38rpx;
margin-right: 20rpx;
}
.method-name {
font-weight: 500;
font-size: 30rpx;
color: #5b5b5b;
line-height: 42rpx;
text-align: left;
font-style: normal;
}
.mb-20 {
margin-bottom: 20rpx;
}
.mb43 {
margin-bottom: 43rpx;
}
.ml40 {
margin-left: 40rpx;
}
.flex-row-center-between {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.flex-row-center {
display: flex;
flex-direction: row;
align-items: center;
}
.flex-row-center-center {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
}
.salf-card-between-text2-o {
font-size: 22rpx;
height: 37rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 26rpx;
color: #333333;
line-height: 37rpx;
font-style: normal;
}
.salf-card-between-box {
display: flex;
flex-direction: row;
justify-content: flex-end;
}
.salf-card-between-text2-t {
height: 28rpx;
font-family: DINPro, DINPro;
font-weight: 500;
font-size: 22rpx;
color: #333333;
line-height: 28rpx;
font-style: normal;
margin-top: 5rpx;
}
.salf-card-between-text2-s {
height: 41rpx;
font-family: DINPro, DINPro;
font-weight: 500;
font-size: 32rpx;
color: #333333;
line-height: 41rpx;
text-align: left;
font-style: normal;
margin-top: -4rpx;
}
.salf-card-between-text2-f {
height: 36rpx;
font-family: DINPro, DINPro;
font-weight: 400;
font-size: 28rpx;
color: #999999;
line-height: 36rpx;
text-align: left;
font-style: normal;
margin-left: 10rpx;
text-decoration: line-through;
}
.border-b {
width: 670rpx;
height: 1rpx;
background: #F1F1F1;
margin-top: 30rpx;
}
.conpon {
display: flex;
flex-direction: row;
justify-content: flex-end;
margin-top: 33rpx;
}
.conpon-l {
height: 37rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 26rpx;
color: #333333;
line-height: 37rpx;
text-align: left;
font-style: normal;
}
.conpon-r1 {
width: 13rpx;
height: 38rpx;
font-family: DINPro, DINPro;
font-weight: 500;
font-size: 30rpx;
color: #E8101E;
line-height: 38rpx;
text-align: left;
font-style: normal;
margin-left: 410rpx;
margin-top: 6rpx;
}
.conpon-r2 {
margin-top: 6rpx;
height: 31rpx;
font-family: DINPro, DINPro;
font-weight: 500;
font-size: 24rpx;
color: #E8101E;
line-height: 31rpx;
text-align: left;
font-style: normal;
}
.conpon-r3 {
height: 41rpx;
font-family: DINPro, DINPro;
font-weight: 500;
font-size: 32rpx;
color: #E8101E;
line-height: 41rpx;
text-align: left;
font-style: normal;
}
.conpon-r4 {
width: 10rpx;
margin-top: 10rpx;
margin-left: 20rpx;
}
.conpon-r1-no {
height: 37rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 26rpx;
color: #333333;
line-height: 37rpx;
font-style: normal;
margin-left: 328rpx;
}
.popups-box {
width: 750rpx;
height: 1023rpx;
background: #FFFFFF;
border-radius: 40rpx 40rpx 0rpx 0rpx;
}
.popups-title {
width: 750rpx;
height: 100rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 36rpx;
color: #333333;
line-height: 50rpx;
font-style: normal;
padding-left: 285rpx;
padding-top: 30rpx;
}
.popups-card {
width: 690rpx;
height: 167rpx;
margin: 30rpx 30rpx 0 30rpx;
position: relative;
}
.popups-card-img {
position: absolute;
width: 690rpx;
}
.popups-card-list {
width: 690rpx;
height: 167rpx;
}
.popups-card-list-t {
display: flex;
flex-direction: row;
position: absolute;
top: 10rpx;
left: 37rpx;
}
.popups-card-list-t-price {
height: 69rpx;
font-family: DINPro, DINPro;
font-weight: 500;
font-size: 54rpx;
color: #FF3340;
font-style: normal;
margin-top: 12rpx;
}
.popups-card-list-t-dw {
height: 33rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #FF3340;
line-height: 33rpx;
font-style: normal;
margin-top: 41rpx;
}
.popups-card-list-b {
height: 33rpx;
display: flex;
flex-direction: row;
margin-top: 99rpx;
}
.popups-card-list-b-can {
color: #FF3340;
height: 33rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
line-height: 33rpx;
font-style: normal;
position: absolute;
margin-left: 20rpx;
}
.popups-card-center {
position: absolute;
margin: 40rpx 0 0 199rpx;
}
.popups-card-center-title {
height: 42rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 30rpx;
color: #333333;
line-height: 42rpx;
font-style: normal;
}
.popups-card-center-content {
height: 33rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #777777;
line-height: 33rpx;
font-style: normal;
margin-top: 12rpx;
}
.popups-card-r-img {
position: absolute;
margin: 64rpx 0 0 620rpx;
}
.popups-card-r-img-detail {
width: 40rpx;
}
.popups-bottom {
display: flex;
flex-direction: row;
margin: 20rpx 0 0 295rpx;
}
.popups-bottom-view {
width: 161rpx;
height: 57rpx;
border-radius: 29rpx;
border: 2rpx solid #D6D6D6;
}
.popups-bottom-text {
height: 33rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #3F3B3A;
line-height: 33rpx;
font-style: normal;
margin: 12rpx 0 0 20rpx;
}
.popups-bottom-img {
width: 15rpx;
margin: 24rpx 0 0 -40rpx;
}
.zhanwei {
height: 200rpx;
}
.confirm-button {
width: 690rpx;
height: 98rpx;
background: #E8101E;
border-radius: 49rpx;
margin: 24rpx 0 0 30rpx;
}
.pop-bot-confim {
width: 750rpx;
height: 183rpx;
margin-top: 40rpx;
position: fixed;
bottom: 0rpx;
background-color: white;
}
.confirm-button-text {
height: 45rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 32rpx;
color: #FFFFFF;
line-height: 45rpx;
font-style: normal;
margin: 27rpx 0 0 313rpx;
}
.nouse {
display: flex;
flex-direction: row;
justify-content: space-between;
margin-top: 30rpx;
}
.nouse-text {
height: 42rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 30rpx;
color: #333333;
line-height: 42rpx;
font-style: normal;
margin-left: 30rpx;
}
.nouse-img {
width: 40rpx;
margin-right: 60rpx;
}
</style>