|
@@ -4,12 +4,11 @@
|
|
|
<view class="section-block product-section">
|
|
<view class="section-block product-section">
|
|
|
<text class="section-title">选择退款商品</text>
|
|
<text class="section-title">选择退款商品</text>
|
|
|
<view class="product-list">
|
|
<view class="product-list">
|
|
|
- <view
|
|
|
|
|
- v-for="(product, index) in orderInfo.products"
|
|
|
|
|
- :key="index"
|
|
|
|
|
|
|
+ <view
|
|
|
|
|
+ v-for="(product, index) in orderInfo.products"
|
|
|
|
|
+ :key="index"
|
|
|
:class="['product-item', { 'product-item-selected': selectedProducts.includes(index) }]"
|
|
:class="['product-item', { 'product-item-selected': selectedProducts.includes(index) }]"
|
|
|
>
|
|
>
|
|
|
- <!-- 商品主体信息 -->
|
|
|
|
|
<view class="product-main" @click="toggleProductSelect(index)">
|
|
<view class="product-main" @click="toggleProductSelect(index)">
|
|
|
<view class="product-checkbox">
|
|
<view class="product-checkbox">
|
|
|
<view :class="['checkbox-icon', { checked: selectedProducts.includes(index) }]">
|
|
<view :class="['checkbox-icon', { checked: selectedProducts.includes(index) }]">
|
|
@@ -31,14 +30,13 @@
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
-
|
|
|
|
|
- <!-- 退款数量选择器(仅当商品被选中时显示,独立一行) -->
|
|
|
|
|
|
|
+
|
|
|
<view v-if="selectedProducts.includes(index)" class="refund-quantity-selector">
|
|
<view v-if="selectedProducts.includes(index)" class="refund-quantity-selector">
|
|
|
<view class="selector-row">
|
|
<view class="selector-row">
|
|
|
<text class="selector-label">退款数量</text>
|
|
<text class="selector-label">退款数量</text>
|
|
|
<view class="quantity-control">
|
|
<view class="quantity-control">
|
|
|
- <view
|
|
|
|
|
- :class="['control-btn', (product.refundQuantity || 1) > 1 ? '' : 'disabled']"
|
|
|
|
|
|
|
+ <view
|
|
|
|
|
+ :class="['control-btn', (product.refundQuantity || 1) > 1 ? '' : 'disabled']"
|
|
|
@click.stop="decreaseQuantity(index)"
|
|
@click.stop="decreaseQuantity(index)"
|
|
|
>
|
|
>
|
|
|
<text>-</text>
|
|
<text>-</text>
|
|
@@ -46,8 +44,8 @@
|
|
|
<view class="quantity-display">
|
|
<view class="quantity-display">
|
|
|
<text class="quantity-text">{{ product.refundQuantity || 1 }}</text>
|
|
<text class="quantity-text">{{ product.refundQuantity || 1 }}</text>
|
|
|
</view>
|
|
</view>
|
|
|
- <view
|
|
|
|
|
- :class="['control-btn', (product.refundQuantity || 1) < product.quantity ? '' : 'disabled']"
|
|
|
|
|
|
|
+ <view
|
|
|
|
|
+ :class="['control-btn', (product.refundQuantity || 1) < product.quantity ? '' : 'disabled']"
|
|
|
@click.stop="increaseQuantity(index)"
|
|
@click.stop="increaseQuantity(index)"
|
|
|
>
|
|
>
|
|
|
<text>+</text>
|
|
<text>+</text>
|
|
@@ -65,7 +63,7 @@
|
|
|
已选择 {{ selectedProducts.length }} 件商品,共 {{ refundQuantity }} 件
|
|
已选择 {{ selectedProducts.length }} 件商品,共 {{ refundQuantity }} 件
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
<!-- 退款原因 -->
|
|
<!-- 退款原因 -->
|
|
|
<view class="section-block reason-section">
|
|
<view class="section-block reason-section">
|
|
|
<text class="section-title">退款原因</text>
|
|
<text class="section-title">退款原因</text>
|
|
@@ -77,11 +75,10 @@
|
|
|
<text class="radio-label">{{ reason.label }}</text>
|
|
<text class="radio-label">{{ reason.label }}</text>
|
|
|
</label>
|
|
</label>
|
|
|
</radio-group>
|
|
</radio-group>
|
|
|
-
|
|
|
|
|
- <!-- 其他原因的文本输入框 -->
|
|
|
|
|
|
|
+
|
|
|
<view v-if="selectedReason === '4'" class="remark-input-wrapper">
|
|
<view v-if="selectedReason === '4'" class="remark-input-wrapper">
|
|
|
- <textarea
|
|
|
|
|
- v-model="refundRemark"
|
|
|
|
|
|
|
+ <textarea
|
|
|
|
|
+ v-model="refundRemark"
|
|
|
class="remark-textarea"
|
|
class="remark-textarea"
|
|
|
placeholder="请详细描述您的问题或投诉内容"
|
|
placeholder="请详细描述您的问题或投诉内容"
|
|
|
maxlength="100"
|
|
maxlength="100"
|
|
@@ -90,7 +87,7 @@
|
|
|
<text class="remark-count">{{ refundRemark.length }}/100</text>
|
|
<text class="remark-count">{{ refundRemark.length }}/100</text>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
<!-- 退款信息 -->
|
|
<!-- 退款信息 -->
|
|
|
<view class="section-block info-section">
|
|
<view class="section-block info-section">
|
|
|
<text class="section-title">退款信息</text>
|
|
<text class="section-title">退款信息</text>
|
|
@@ -115,14 +112,14 @@
|
|
|
<text :class="['info-value', isRefundExpired ? 'expired' : '']">{{ refundExpireText }}</text>
|
|
<text :class="['info-value', isRefundExpired ? 'expired' : '']">{{ refundExpireText }}</text>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
<!-- 提示信息 -->
|
|
<!-- 提示信息 -->
|
|
|
<view class="section-block tip-section">
|
|
<view class="section-block tip-section">
|
|
|
<text class="tip-text">• 请选择需要退款的商品</text>
|
|
<text class="tip-text">• 请选择需要退款的商品</text>
|
|
|
<text class="tip-text">• 退款申请提交后,工作人员将尽快处理</text>
|
|
<text class="tip-text">• 退款申请提交后,工作人员将尽快处理</text>
|
|
|
<text class="tip-text">• 退款金额将原路返回至您的支付账户</text>
|
|
<text class="tip-text">• 退款金额将原路返回至您的支付账户</text>
|
|
|
</view>
|
|
</view>
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
<!-- 确认提交按钮 -->
|
|
<!-- 确认提交按钮 -->
|
|
|
<button class="submit-btn" @click="submitRefund">确认提交</button>
|
|
<button class="submit-btn" @click="submitRefund">确认提交</button>
|
|
|
|
|
|
|
@@ -146,11 +143,10 @@ import { checkAuth } from '../../utils/auth';
|
|
|
import { getOrderDetail } from '../../api/order';
|
|
import { getOrderDetail } from '../../api/order';
|
|
|
import type { OrderInfo } from '../../api/order';
|
|
import type { OrderInfo } from '../../api/order';
|
|
|
import { post } from '../../utils/request';
|
|
import { post } from '../../utils/request';
|
|
|
|
|
+import { logger } from '../../utils/logger';
|
|
|
|
|
|
|
|
-// 路由参数
|
|
|
|
|
const orderId = ref<string>('');
|
|
const orderId = ref<string>('');
|
|
|
|
|
|
|
|
-// 订单信息
|
|
|
|
|
const orderInfo = ref<OrderInfo>({
|
|
const orderInfo = ref<OrderInfo>({
|
|
|
id: '',
|
|
id: '',
|
|
|
orderNo: '',
|
|
orderNo: '',
|
|
@@ -164,10 +160,8 @@ const orderInfo = ref<OrderInfo>({
|
|
|
products: []
|
|
products: []
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
-// 选中的商品索引列表
|
|
|
|
|
const selectedProducts = ref<number[]>([]);
|
|
const selectedProducts = ref<number[]>([]);
|
|
|
|
|
|
|
|
-// 退款数量(根据选中商品的退款数量计算)
|
|
|
|
|
const refundQuantity = computed(() => {
|
|
const refundQuantity = computed(() => {
|
|
|
return selectedProducts.value.reduce((sum, index) => {
|
|
return selectedProducts.value.reduce((sum, index) => {
|
|
|
const product = orderInfo.value.products[index];
|
|
const product = orderInfo.value.products[index];
|
|
@@ -175,7 +169,6 @@ const refundQuantity = computed(() => {
|
|
|
}, 0);
|
|
}, 0);
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
-// 退款金额(根据选中商品的退款数量计算)
|
|
|
|
|
const refundAmount = computed(() => {
|
|
const refundAmount = computed(() => {
|
|
|
return selectedProducts.value.reduce((sum, index) => {
|
|
return selectedProducts.value.reduce((sum, index) => {
|
|
|
const product = orderInfo.value.products[index];
|
|
const product = orderInfo.value.products[index];
|
|
@@ -186,27 +179,21 @@ const refundAmount = computed(() => {
|
|
|
}, 0);
|
|
}, 0);
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
-// 判断是否超过退款期限
|
|
|
|
|
const isRefundExpired = computed(() => {
|
|
const isRefundExpired = computed(() => {
|
|
|
if (!orderInfo.value.payTime) return false;
|
|
if (!orderInfo.value.payTime) return false;
|
|
|
-
|
|
|
|
|
const payTime = new Date(orderInfo.value.payTime);
|
|
const payTime = new Date(orderInfo.value.payTime);
|
|
|
const now = new Date();
|
|
const now = new Date();
|
|
|
const diffTime = now.getTime() - payTime.getTime();
|
|
const diffTime = now.getTime() - payTime.getTime();
|
|
|
const diffDays = diffTime / (1000 * 60 * 60 * 24);
|
|
const diffDays = diffTime / (1000 * 60 * 60 * 24);
|
|
|
-
|
|
|
|
|
return diffDays > 7;
|
|
return diffDays > 7;
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
-// 退款期限提示文本
|
|
|
|
|
const refundExpireText = computed(() => {
|
|
const refundExpireText = computed(() => {
|
|
|
if (!orderInfo.value.payTime) return '';
|
|
if (!orderInfo.value.payTime) return '';
|
|
|
-
|
|
|
|
|
const payTime = new Date(orderInfo.value.payTime);
|
|
const payTime = new Date(orderInfo.value.payTime);
|
|
|
const now = new Date();
|
|
const now = new Date();
|
|
|
const diffTime = now.getTime() - payTime.getTime();
|
|
const diffTime = now.getTime() - payTime.getTime();
|
|
|
const diffDays = diffTime / (1000 * 60 * 60 * 24);
|
|
const diffDays = diffTime / (1000 * 60 * 60 * 24);
|
|
|
-
|
|
|
|
|
if (diffDays > 7) {
|
|
if (diffDays > 7) {
|
|
|
return '已超过退款期限';
|
|
return '已超过退款期限';
|
|
|
} else {
|
|
} else {
|
|
@@ -227,23 +214,17 @@ const refundReasons = [
|
|
|
|
|
|
|
|
const handleReasonChange = (e: any) => {
|
|
const handleReasonChange = (e: any) => {
|
|
|
selectedReason.value = e.detail.value;
|
|
selectedReason.value = e.detail.value;
|
|
|
- // 如果切换到非"其他"原因,清空备注内容
|
|
|
|
|
if (selectedReason.value !== '4') {
|
|
if (selectedReason.value !== '4') {
|
|
|
refundRemark.value = '';
|
|
refundRemark.value = '';
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-/**
|
|
|
|
|
- * 切换商品选中状态
|
|
|
|
|
- */
|
|
|
|
|
const toggleProductSelect = (index: number) => {
|
|
const toggleProductSelect = (index: number) => {
|
|
|
const selectedIndex = selectedProducts.value.indexOf(index);
|
|
const selectedIndex = selectedProducts.value.indexOf(index);
|
|
|
if (selectedIndex > -1) {
|
|
if (selectedIndex > -1) {
|
|
|
- // 取消选中:清除退款数量
|
|
|
|
|
orderInfo.value.products[index].refundQuantity = undefined;
|
|
orderInfo.value.products[index].refundQuantity = undefined;
|
|
|
selectedProducts.value.splice(selectedIndex, 1);
|
|
selectedProducts.value.splice(selectedIndex, 1);
|
|
|
} else {
|
|
} else {
|
|
|
- // 选中:初始化退款数量为 1
|
|
|
|
|
if (!orderInfo.value.products[index].refundQuantity) {
|
|
if (!orderInfo.value.products[index].refundQuantity) {
|
|
|
orderInfo.value.products[index].refundQuantity = 1;
|
|
orderInfo.value.products[index].refundQuantity = 1;
|
|
|
}
|
|
}
|
|
@@ -251,9 +232,6 @@ const toggleProductSelect = (index: number) => {
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-/**
|
|
|
|
|
- * 显示商品全称
|
|
|
|
|
- */
|
|
|
|
|
const showProductName = (productName: string) => {
|
|
const showProductName = (productName: string) => {
|
|
|
uni.showModal({
|
|
uni.showModal({
|
|
|
title: '商品名称',
|
|
title: '商品名称',
|
|
@@ -263,9 +241,6 @@ const showProductName = (productName: string) => {
|
|
|
});
|
|
});
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-/**
|
|
|
|
|
- * 减少退款数量
|
|
|
|
|
- */
|
|
|
|
|
const decreaseQuantity = (index: number) => {
|
|
const decreaseQuantity = (index: number) => {
|
|
|
const product = orderInfo.value.products[index];
|
|
const product = orderInfo.value.products[index];
|
|
|
if (product.refundQuantity && product.refundQuantity > 1) {
|
|
if (product.refundQuantity && product.refundQuantity > 1) {
|
|
@@ -273,9 +248,6 @@ const decreaseQuantity = (index: number) => {
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-/**
|
|
|
|
|
- * 增加退款数量
|
|
|
|
|
- */
|
|
|
|
|
const increaseQuantity = (index: number) => {
|
|
const increaseQuantity = (index: number) => {
|
|
|
const product = orderInfo.value.products[index];
|
|
const product = orderInfo.value.products[index];
|
|
|
if ((product.refundQuantity || 1) < product.quantity) {
|
|
if ((product.refundQuantity || 1) < product.quantity) {
|
|
@@ -287,130 +259,73 @@ const increaseQuantity = (index: number) => {
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-/**
|
|
|
|
|
- * 显示商品详情
|
|
|
|
|
- */
|
|
|
|
|
-const showProductDetail = () => {
|
|
|
|
|
- // TODO: [sku-detail] 跳转到商品详情页或弹出商品详情弹窗
|
|
|
|
|
- uni.showToast({
|
|
|
|
|
- title: '商品详情功能开发中',
|
|
|
|
|
- icon: 'none'
|
|
|
|
|
- });
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * 加载订单详情
|
|
|
|
|
- */
|
|
|
|
|
const loadOrderDetail = async () => {
|
|
const loadOrderDetail = async () => {
|
|
|
if (!orderId.value) {
|
|
if (!orderId.value) {
|
|
|
- uni.showToast({
|
|
|
|
|
- title: '订单 ID 缺失',
|
|
|
|
|
- icon: 'none'
|
|
|
|
|
- });
|
|
|
|
|
- setTimeout(() => {
|
|
|
|
|
- uni.navigateBack();
|
|
|
|
|
- }, 1500);
|
|
|
|
|
|
|
+ uni.showToast({ title: '订单 ID 缺失', icon: 'none' });
|
|
|
|
|
+ setTimeout(() => { uni.navigateBack(); }, 1500);
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
const detail = await getOrderDetail({ orderId: orderId.value });
|
|
const detail = await getOrderDetail({ orderId: orderId.value });
|
|
|
orderInfo.value = detail;
|
|
orderInfo.value = detail;
|
|
|
-
|
|
|
|
|
- // 检查订单是否超过退款期限(7天)
|
|
|
|
|
|
|
+
|
|
|
if (detail.payTime) {
|
|
if (detail.payTime) {
|
|
|
const payTime = new Date(detail.payTime);
|
|
const payTime = new Date(detail.payTime);
|
|
|
const now = new Date();
|
|
const now = new Date();
|
|
|
const diffTime = now.getTime() - payTime.getTime();
|
|
const diffTime = now.getTime() - payTime.getTime();
|
|
|
const diffDays = diffTime / (1000 * 60 * 60 * 24);
|
|
const diffDays = diffTime / (1000 * 60 * 60 * 24);
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
if (diffDays > 7) {
|
|
if (diffDays > 7) {
|
|
|
uni.showModal({
|
|
uni.showModal({
|
|
|
title: '退款期限已过',
|
|
title: '退款期限已过',
|
|
|
content: '该订单已完成超过7天,不支持申请退款',
|
|
content: '该订单已完成超过7天,不支持申请退款',
|
|
|
showCancel: false,
|
|
showCancel: false,
|
|
|
confirmText: '知道了',
|
|
confirmText: '知道了',
|
|
|
- success: () => {
|
|
|
|
|
- uni.navigateBack();
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ success: () => { uni.navigateBack(); }
|
|
|
});
|
|
});
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- // 默认不选中任何商品(移除之前的默认全选逻辑)
|
|
|
|
|
|
|
+
|
|
|
selectedProducts.value = [];
|
|
selectedProducts.value = [];
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
|
- console.error('加载订单详情失败:', error);
|
|
|
|
|
- uni.showToast({
|
|
|
|
|
- title: '加载订单详情失败',
|
|
|
|
|
- icon: 'none'
|
|
|
|
|
- });
|
|
|
|
|
- setTimeout(() => {
|
|
|
|
|
- uni.navigateBack();
|
|
|
|
|
- }, 1500);
|
|
|
|
|
|
|
+ logger.error('加载订单详情失败:', error);
|
|
|
|
|
+ uni.showToast({ title: '加载订单详情失败', icon: 'none' });
|
|
|
|
|
+ setTimeout(() => { uni.navigateBack(); }, 1500);
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-/**
|
|
|
|
|
- * 页面加载时检查登录状态并加载订单详情
|
|
|
|
|
- */
|
|
|
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
|
- // 检查登录状态,未登录会自动跳转到登录页
|
|
|
|
|
checkAuth();
|
|
checkAuth();
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
-/**
|
|
|
|
|
- * 监听页面加载参数
|
|
|
|
|
- */
|
|
|
|
|
onLoad((options) => {
|
|
onLoad((options) => {
|
|
|
if (options && options.orderId) {
|
|
if (options && options.orderId) {
|
|
|
- // 直接使用字符串类型的订单ID,避免精度丢失
|
|
|
|
|
orderId.value = String(options.orderId);
|
|
orderId.value = String(options.orderId);
|
|
|
loadOrderDetail();
|
|
loadOrderDetail();
|
|
|
} else {
|
|
} else {
|
|
|
- uni.showToast({
|
|
|
|
|
- title: '订单 ID 缺失',
|
|
|
|
|
- icon: 'none'
|
|
|
|
|
- });
|
|
|
|
|
- setTimeout(() => {
|
|
|
|
|
- uni.navigateBack();
|
|
|
|
|
- }, 1500);
|
|
|
|
|
|
|
+ uni.showToast({ title: '订单 ID 缺失', icon: 'none' });
|
|
|
|
|
+ setTimeout(() => { uni.navigateBack(); }, 1500);
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
-/**
|
|
|
|
|
- * 提交退款申请
|
|
|
|
|
- */
|
|
|
|
|
const submitRefund = async () => {
|
|
const submitRefund = async () => {
|
|
|
- // 校验是否选择了商品
|
|
|
|
|
if (selectedProducts.value.length === 0) {
|
|
if (selectedProducts.value.length === 0) {
|
|
|
- uni.showToast({
|
|
|
|
|
- title: '请选择要退款的商品',
|
|
|
|
|
- icon: 'none'
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ uni.showToast({ title: '请选择要退款的商品', icon: 'none' });
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 校验退款原因
|
|
|
|
|
if (!selectedReason.value) {
|
|
if (!selectedReason.value) {
|
|
|
- uni.showToast({
|
|
|
|
|
- title: '请选择退款原因',
|
|
|
|
|
- icon: 'none'
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ uni.showToast({ title: '请选择退款原因', icon: 'none' });
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 如果选择"其他"原因,校验备注内容
|
|
|
|
|
if (selectedReason.value === '4' && !refundRemark.value.trim()) {
|
|
if (selectedReason.value === '4' && !refundRemark.value.trim()) {
|
|
|
- uni.showToast({
|
|
|
|
|
- title: '请填写投诉内容',
|
|
|
|
|
- icon: 'none'
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ uni.showToast({ title: '请填写投诉内容', icon: 'none' });
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 映射前端退款原因到后端描述
|
|
|
|
|
const reasonMap: Record<string, string> = {
|
|
const reasonMap: Record<string, string> = {
|
|
|
'1': '订单扣款错误',
|
|
'1': '订单扣款错误',
|
|
|
'2': '扣款金额与实际金额不符',
|
|
'2': '扣款金额与实际金额不符',
|
|
@@ -419,55 +334,44 @@ const submitRefund = async () => {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
let reasonText = reasonMap[selectedReason.value] || '用户申请退款';
|
|
let reasonText = reasonMap[selectedReason.value] || '用户申请退款';
|
|
|
-
|
|
|
|
|
- // 如果是"其他"原因,将备注内容附加到原因后面
|
|
|
|
|
|
|
+
|
|
|
if (selectedReason.value === '4' && refundRemark.value.trim()) {
|
|
if (selectedReason.value === '4' && refundRemark.value.trim()) {
|
|
|
reasonText = `其他:${refundRemark.value.trim()}`;
|
|
reasonText = `其他:${refundRemark.value.trim()}`;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 构建选中的商品信息(包含退款数量)
|
|
|
|
|
const selectedProductIds = selectedProducts.value.map(index => {
|
|
const selectedProductIds = selectedProducts.value.map(index => {
|
|
|
const product = orderInfo.value.products[index];
|
|
const product = orderInfo.value.products[index];
|
|
|
return {
|
|
return {
|
|
|
productId: product.id,
|
|
productId: product.id,
|
|
|
productName: product.name,
|
|
productName: product.name,
|
|
|
- quantity: product.refundQuantity || 1, // 使用用户选择的退款数量
|
|
|
|
|
|
|
+ quantity: product.refundQuantity || 1,
|
|
|
price: product.price
|
|
price: product.price
|
|
|
};
|
|
};
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
- // 调用后端退款 API
|
|
|
|
|
- const result = await post('/payment/refund', {
|
|
|
|
|
|
|
+ await post('/payment/refund', {
|
|
|
orderId: orderId.value,
|
|
orderId: orderId.value,
|
|
|
reason: reasonText,
|
|
reason: reasonText,
|
|
|
- products: selectedProductIds // 传递选中的商品信息
|
|
|
|
|
|
|
+ products: selectedProductIds
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
- uni.showToast({
|
|
|
|
|
- title: '退款申请成功',
|
|
|
|
|
- icon: 'success'
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
- setTimeout(() => {
|
|
|
|
|
- uni.navigateBack();
|
|
|
|
|
- }, 1500);
|
|
|
|
|
|
|
+ uni.showToast({ title: '退款申请成功', icon: 'success' });
|
|
|
|
|
+ setTimeout(() => { uni.navigateBack(); }, 1500);
|
|
|
} catch (error: any) {
|
|
} catch (error: any) {
|
|
|
- console.error('退款申请失败:', error);
|
|
|
|
|
- // 错误提示已在 request 拦截器中处理
|
|
|
|
|
|
|
+ logger.error('退款申请失败:', error);
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
-<style>
|
|
|
|
|
|
|
+<style lang="scss">
|
|
|
.container {
|
|
.container {
|
|
|
min-height: 100vh;
|
|
min-height: 100vh;
|
|
|
- background-color: #f5f5f5;
|
|
|
|
|
|
|
+ background-color: $color-bg-secondary;
|
|
|
padding-top: 20rpx;
|
|
padding-top: 20rpx;
|
|
|
padding-bottom: 40rpx;
|
|
padding-bottom: 40rpx;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-/* 商品选择区域 */
|
|
|
|
|
.product-section {
|
|
.product-section {
|
|
|
margin-bottom: 20rpx;
|
|
margin-bottom: 20rpx;
|
|
|
padding-bottom: 20rpx;
|
|
padding-bottom: 20rpx;
|
|
@@ -482,7 +386,7 @@ const submitRefund = async () => {
|
|
|
.product-item {
|
|
.product-item {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
flex-direction: column;
|
|
|
- background-color: #ffffff;
|
|
|
|
|
|
|
+ background-color: $color-bg-primary;
|
|
|
border-radius: 12rpx;
|
|
border-radius: 12rpx;
|
|
|
padding: 24rpx;
|
|
padding: 24rpx;
|
|
|
border: 2rpx solid transparent;
|
|
border: 2rpx solid transparent;
|
|
@@ -490,12 +394,12 @@ const submitRefund = async () => {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.product-item-selected {
|
|
.product-item-selected {
|
|
|
- border-color: #07c160;
|
|
|
|
|
|
|
+ border-color: $color-success;
|
|
|
background-color: #f6ffed;
|
|
background-color: #f6ffed;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.product-item:active {
|
|
.product-item:active {
|
|
|
- background-color: #fafafa;
|
|
|
|
|
|
|
+ background-color: $color-bg-secondary;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.product-main {
|
|
.product-main {
|
|
@@ -513,23 +417,23 @@ const submitRefund = async () => {
|
|
|
width: 44rpx;
|
|
width: 44rpx;
|
|
|
height: 44rpx;
|
|
height: 44rpx;
|
|
|
border-radius: 50%;
|
|
border-radius: 50%;
|
|
|
- border: 3rpx solid #dddddd;
|
|
|
|
|
|
|
+ border: 3rpx solid $color-border;
|
|
|
display: flex;
|
|
display: flex;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
justify-content: center;
|
|
justify-content: center;
|
|
|
transition: all 0.3s ease;
|
|
transition: all 0.3s ease;
|
|
|
-}
|
|
|
|
|
|
|
|
|
|
-.checkbox-icon.checked {
|
|
|
|
|
- background-color: #07c160;
|
|
|
|
|
- border-color: #07c160;
|
|
|
|
|
- box-shadow: 0 4rpx 12rpx rgba(7, 193, 96, 0.3);
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ &.checked {
|
|
|
|
|
+ background-color: $color-success;
|
|
|
|
|
+ border-color: $color-success;
|
|
|
|
|
+ box-shadow: 0 4rpx 12rpx rgba(76, 175, 80, 0.3);
|
|
|
|
|
|
|
|
-.checkbox-icon text {
|
|
|
|
|
- color: #ffffff;
|
|
|
|
|
- font-size: 26rpx;
|
|
|
|
|
- font-weight: bold;
|
|
|
|
|
|
|
+ text {
|
|
|
|
|
+ color: #ffffff;
|
|
|
|
|
+ font-size: 26rpx;
|
|
|
|
|
+ font-weight: bold;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.product-image {
|
|
.product-image {
|
|
@@ -539,23 +443,23 @@ const submitRefund = async () => {
|
|
|
overflow: hidden;
|
|
overflow: hidden;
|
|
|
flex-shrink: 0;
|
|
flex-shrink: 0;
|
|
|
margin-right: 20rpx;
|
|
margin-right: 20rpx;
|
|
|
- background-color: #f5f5f5;
|
|
|
|
|
- box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.06);
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ background-color: $color-bg-tertiary;
|
|
|
|
|
+ box-shadow: $shadow-sm;
|
|
|
|
|
|
|
|
-.product-image image {
|
|
|
|
|
- width: 100%;
|
|
|
|
|
- height: 100%;
|
|
|
|
|
|
|
+ image {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ height: 100%;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.image-placeholder {
|
|
.image-placeholder {
|
|
|
width: 100%;
|
|
width: 100%;
|
|
|
height: 100%;
|
|
height: 100%;
|
|
|
- background: linear-gradient(135deg, #f5f5f5 0%, #e0e0e0 100%);
|
|
|
|
|
|
|
+ background: linear-gradient(135deg, $color-bg-tertiary, $color-border);
|
|
|
display: flex;
|
|
display: flex;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
justify-content: center;
|
|
justify-content: center;
|
|
|
- color: #999999;
|
|
|
|
|
|
|
+ color: $color-text-secondary;
|
|
|
font-size: 40rpx;
|
|
font-size: 40rpx;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -572,13 +476,12 @@ const submitRefund = async () => {
|
|
|
position: relative;
|
|
position: relative;
|
|
|
display: flex;
|
|
display: flex;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
- cursor: pointer;
|
|
|
|
|
max-width: 100%;
|
|
max-width: 100%;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.product-name {
|
|
.product-name {
|
|
|
font-size: 28rpx;
|
|
font-size: 28rpx;
|
|
|
- color: #333333;
|
|
|
|
|
|
|
+ color: $color-text-primary;
|
|
|
line-height: 1.4;
|
|
line-height: 1.4;
|
|
|
overflow: hidden;
|
|
overflow: hidden;
|
|
|
text-overflow: ellipsis;
|
|
text-overflow: ellipsis;
|
|
@@ -589,7 +492,7 @@ const submitRefund = async () => {
|
|
|
|
|
|
|
|
.expand-tip {
|
|
.expand-tip {
|
|
|
font-size: 26rpx;
|
|
font-size: 26rpx;
|
|
|
- color: #1890ff;
|
|
|
|
|
|
|
+ color: $color-info;
|
|
|
margin-left: 8rpx;
|
|
margin-left: 8rpx;
|
|
|
flex-shrink: 0;
|
|
flex-shrink: 0;
|
|
|
padding: 4rpx 12rpx;
|
|
padding: 4rpx 12rpx;
|
|
@@ -607,19 +510,14 @@ const submitRefund = async () => {
|
|
|
|
|
|
|
|
.product-price {
|
|
.product-price {
|
|
|
font-size: 32rpx;
|
|
font-size: 32rpx;
|
|
|
- color: #ff4400;
|
|
|
|
|
|
|
+ color: $color-error;
|
|
|
font-weight: 600;
|
|
font-weight: 600;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-.product-quantity {
|
|
|
|
|
- font-size: 24rpx;
|
|
|
|
|
- color: #999999;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
.product-quantity-label {
|
|
.product-quantity-label {
|
|
|
font-size: 24rpx;
|
|
font-size: 24rpx;
|
|
|
- color: #999999;
|
|
|
|
|
- background-color: #f5f5f5;
|
|
|
|
|
|
|
+ color: $color-text-secondary;
|
|
|
|
|
+ background-color: $color-bg-tertiary;
|
|
|
padding: 4rpx 12rpx;
|
|
padding: 4rpx 12rpx;
|
|
|
border-radius: 6rpx;
|
|
border-radius: 6rpx;
|
|
|
}
|
|
}
|
|
@@ -642,7 +540,7 @@ const submitRefund = async () => {
|
|
|
|
|
|
|
|
.selector-label {
|
|
.selector-label {
|
|
|
font-size: 28rpx;
|
|
font-size: 28rpx;
|
|
|
- color: #52c41a;
|
|
|
|
|
|
|
+ color: $color-success;
|
|
|
font-weight: 500;
|
|
font-weight: 500;
|
|
|
flex-shrink: 0;
|
|
flex-shrink: 0;
|
|
|
}
|
|
}
|
|
@@ -657,31 +555,30 @@ const submitRefund = async () => {
|
|
|
width: 60rpx;
|
|
width: 60rpx;
|
|
|
height: 60rpx;
|
|
height: 60rpx;
|
|
|
border-radius: 12rpx;
|
|
border-radius: 12rpx;
|
|
|
- background-color: #ffffff;
|
|
|
|
|
- border: 2rpx solid #e0e0e0;
|
|
|
|
|
|
|
+ background-color: $color-bg-primary;
|
|
|
|
|
+ border: 2rpx solid $color-border;
|
|
|
display: flex;
|
|
display: flex;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
justify-content: center;
|
|
justify-content: center;
|
|
|
font-size: 36rpx;
|
|
font-size: 36rpx;
|
|
|
- color: #333333;
|
|
|
|
|
|
|
+ color: $color-text-primary;
|
|
|
transition: all 0.2s;
|
|
transition: all 0.2s;
|
|
|
-}
|
|
|
|
|
|
|
|
|
|
-.control-btn:active {
|
|
|
|
|
- background-color: #f0f0f0;
|
|
|
|
|
- transform: scale(0.95);
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ &:active {
|
|
|
|
|
+ background-color: $color-bg-tertiary;
|
|
|
|
|
+ transform: scale(0.95);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
-.control-btn.disabled {
|
|
|
|
|
- background-color: #fafafa;
|
|
|
|
|
- border-color: #f0f0f0;
|
|
|
|
|
- color: #cccccc;
|
|
|
|
|
- cursor: not-allowed;
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ &.disabled {
|
|
|
|
|
+ background-color: $color-bg-secondary;
|
|
|
|
|
+ border-color: $color-bg-tertiary;
|
|
|
|
|
+ color: $color-text-tertiary;
|
|
|
|
|
|
|
|
-.control-btn.disabled:active {
|
|
|
|
|
- background-color: #fafafa;
|
|
|
|
|
- transform: none;
|
|
|
|
|
|
|
+ &:active {
|
|
|
|
|
+ background-color: $color-bg-secondary;
|
|
|
|
|
+ transform: none;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.quantity-display {
|
|
.quantity-display {
|
|
@@ -691,15 +588,15 @@ const submitRefund = async () => {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
justify-content: center;
|
|
justify-content: center;
|
|
|
- background-color: #ffffff;
|
|
|
|
|
- border: 2rpx solid #07c160;
|
|
|
|
|
|
|
+ background-color: $color-bg-primary;
|
|
|
|
|
+ border: 2rpx solid $color-success;
|
|
|
border-radius: 12rpx;
|
|
border-radius: 12rpx;
|
|
|
padding: 0 16rpx;
|
|
padding: 0 16rpx;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.quantity-text {
|
|
.quantity-text {
|
|
|
font-size: 32rpx;
|
|
font-size: 32rpx;
|
|
|
- color: #07c160;
|
|
|
|
|
|
|
+ color: $color-success;
|
|
|
font-weight: 600;
|
|
font-weight: 600;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -715,45 +612,25 @@ const submitRefund = async () => {
|
|
|
|
|
|
|
|
.preview-label {
|
|
.preview-label {
|
|
|
font-size: 26rpx;
|
|
font-size: 26rpx;
|
|
|
- color: #999999;
|
|
|
|
|
|
|
+ color: $color-text-secondary;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.preview-value {
|
|
.preview-value {
|
|
|
font-size: 30rpx;
|
|
font-size: 30rpx;
|
|
|
- color: #ff4400;
|
|
|
|
|
|
|
+ color: $color-error;
|
|
|
font-weight: 600;
|
|
font-weight: 600;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-/* 退款商品选择器 */
|
|
|
|
|
-.section-item {
|
|
|
|
|
- background-color: #ffffff;
|
|
|
|
|
- padding: 28rpx 30rpx;
|
|
|
|
|
- display: flex;
|
|
|
|
|
- align-items: center;
|
|
|
|
|
- justify-content: space-between;
|
|
|
|
|
- margin-bottom: 20rpx;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-.section-label {
|
|
|
|
|
- font-size: 30rpx;
|
|
|
|
|
- color: #333333;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-.arrow-right {
|
|
|
|
|
- font-size: 32rpx;
|
|
|
|
|
- color: #cccccc;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
/* 区域块 */
|
|
/* 区域块 */
|
|
|
.section-block {
|
|
.section-block {
|
|
|
- background-color: #ffffff;
|
|
|
|
|
|
|
+ background-color: $color-bg-primary;
|
|
|
padding: 30rpx;
|
|
padding: 30rpx;
|
|
|
margin-bottom: 20rpx;
|
|
margin-bottom: 20rpx;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.section-title {
|
|
.section-title {
|
|
|
font-size: 30rpx;
|
|
font-size: 30rpx;
|
|
|
- color: #333333;
|
|
|
|
|
|
|
+ color: $color-text-primary;
|
|
|
font-weight: 500;
|
|
font-weight: 500;
|
|
|
margin-bottom: 30rpx;
|
|
margin-bottom: 30rpx;
|
|
|
display: block;
|
|
display: block;
|
|
@@ -768,25 +645,25 @@ radio-group {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
margin-bottom: 32rpx;
|
|
margin-bottom: 32rpx;
|
|
|
-}
|
|
|
|
|
|
|
|
|
|
-.radio-item:last-child {
|
|
|
|
|
- margin-bottom: 0;
|
|
|
|
|
|
|
+ &:last-child {
|
|
|
|
|
+ margin-bottom: 0;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.radio-wrapper {
|
|
.radio-wrapper {
|
|
|
margin-right: 16rpx;
|
|
margin-right: 16rpx;
|
|
|
display: flex;
|
|
display: flex;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
-}
|
|
|
|
|
|
|
|
|
|
-.radio-wrapper radio {
|
|
|
|
|
- transform: scale(1.1);
|
|
|
|
|
|
|
+ radio {
|
|
|
|
|
+ transform: scale(1.1);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.radio-label {
|
|
.radio-label {
|
|
|
font-size: 28rpx;
|
|
font-size: 28rpx;
|
|
|
- color: #333333;
|
|
|
|
|
|
|
+ color: $color-text-primary;
|
|
|
line-height: 1.5;
|
|
line-height: 1.5;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -803,24 +680,24 @@ radio-group {
|
|
|
width: 100%;
|
|
width: 100%;
|
|
|
min-height: 160rpx;
|
|
min-height: 160rpx;
|
|
|
padding: 20rpx;
|
|
padding: 20rpx;
|
|
|
- background-color: #ffffff;
|
|
|
|
|
|
|
+ background-color: $color-bg-primary;
|
|
|
border-radius: 8rpx;
|
|
border-radius: 8rpx;
|
|
|
- border: 2rpx solid #e0e0e0;
|
|
|
|
|
|
|
+ border: 2rpx solid $color-border;
|
|
|
font-size: 28rpx;
|
|
font-size: 28rpx;
|
|
|
- color: #333333;
|
|
|
|
|
|
|
+ color: $color-text-primary;
|
|
|
line-height: 1.6;
|
|
line-height: 1.6;
|
|
|
box-sizing: border-box;
|
|
box-sizing: border-box;
|
|
|
-}
|
|
|
|
|
|
|
|
|
|
-.remark-textarea:focus {
|
|
|
|
|
- border-color: #1890ff;
|
|
|
|
|
|
|
+ &:focus {
|
|
|
|
|
+ border-color: $color-info;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.remark-count {
|
|
.remark-count {
|
|
|
display: block;
|
|
display: block;
|
|
|
text-align: right;
|
|
text-align: right;
|
|
|
font-size: 24rpx;
|
|
font-size: 24rpx;
|
|
|
- color: #999999;
|
|
|
|
|
|
|
+ color: $color-text-secondary;
|
|
|
margin-top: 12rpx;
|
|
margin-top: 12rpx;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -837,55 +714,48 @@ radio-group {
|
|
|
|
|
|
|
|
.info-label {
|
|
.info-label {
|
|
|
font-size: 28rpx;
|
|
font-size: 28rpx;
|
|
|
- color: #999999;
|
|
|
|
|
|
|
+ color: $color-text-secondary;
|
|
|
min-width: 200rpx;
|
|
min-width: 200rpx;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.info-value {
|
|
.info-value {
|
|
|
font-size: 28rpx;
|
|
font-size: 28rpx;
|
|
|
- color: #333333;
|
|
|
|
|
|
|
+ color: $color-text-primary;
|
|
|
flex: 1;
|
|
flex: 1;
|
|
|
text-align: right;
|
|
text-align: right;
|
|
|
|
|
+
|
|
|
|
|
+ &.expired {
|
|
|
|
|
+ color: $color-error;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-.info-value.expired {
|
|
|
|
|
- color: #ff4444;
|
|
|
|
|
- font-weight: 600;
|
|
|
|
|
|
|
+.refund-amount {
|
|
|
|
|
+ color: $color-error;
|
|
|
|
|
+ font-weight: 500;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/* 提交按钮 */
|
|
/* 提交按钮 */
|
|
|
.submit-btn {
|
|
.submit-btn {
|
|
|
margin: 40rpx 30rpx;
|
|
margin: 40rpx 30rpx;
|
|
|
- background-color: #f8f8f8;
|
|
|
|
|
- border: 1rpx solid #e8e8e8;
|
|
|
|
|
|
|
+ background-color: $color-bg-secondary;
|
|
|
|
|
+ border: 1rpx solid $color-border;
|
|
|
border-radius: 10rpx;
|
|
border-radius: 10rpx;
|
|
|
font-size: 32rpx;
|
|
font-size: 32rpx;
|
|
|
- color: #333333;
|
|
|
|
|
|
|
+ color: $color-text-primary;
|
|
|
padding: 24rpx 0;
|
|
padding: 24rpx 0;
|
|
|
line-height: 1;
|
|
line-height: 1;
|
|
|
font-weight: 500;
|
|
font-weight: 500;
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-.submit-btn::after {
|
|
|
|
|
- border: none;
|
|
|
|
|
-}
|
|
|
|
|
|
|
|
|
|
-/* 商品信息 */
|
|
|
|
|
-.product-info {
|
|
|
|
|
- display: flex;
|
|
|
|
|
- align-items: center;
|
|
|
|
|
- gap: 16rpx;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-.refund-amount {
|
|
|
|
|
- color: #ff4400;
|
|
|
|
|
- font-weight: 500;
|
|
|
|
|
|
|
+ &::after {
|
|
|
|
|
+ border: none;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/* 提示信息 */
|
|
/* 提示信息 */
|
|
|
.tip-section {
|
|
.tip-section {
|
|
|
- background-color: #fffbea;
|
|
|
|
|
- border: 1rpx solid #ffe58f;
|
|
|
|
|
|
|
+ background-color: $color-primary-bg;
|
|
|
|
|
+ border: 1rpx solid $color-primary-light;
|
|
|
border-radius: 8rpx;
|
|
border-radius: 8rpx;
|
|
|
padding: 24rpx 30rpx;
|
|
padding: 24rpx 30rpx;
|
|
|
margin: 30rpx;
|
|
margin: 30rpx;
|
|
@@ -894,14 +764,14 @@ radio-group {
|
|
|
.tip-text {
|
|
.tip-text {
|
|
|
display: block;
|
|
display: block;
|
|
|
font-size: 24rpx;
|
|
font-size: 24rpx;
|
|
|
- color: #faad14;
|
|
|
|
|
|
|
+ color: $color-warning;
|
|
|
line-height: 1.8;
|
|
line-height: 1.8;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.selected-tip {
|
|
.selected-tip {
|
|
|
text-align: right;
|
|
text-align: right;
|
|
|
font-size: 26rpx;
|
|
font-size: 26rpx;
|
|
|
- color: #07c160;
|
|
|
|
|
|
|
+ color: $color-success;
|
|
|
margin-top: 20rpx;
|
|
margin-top: 20rpx;
|
|
|
padding: 16rpx 20rpx;
|
|
padding: 16rpx 20rpx;
|
|
|
background-color: #f6ffed;
|
|
background-color: #f6ffed;
|
|
@@ -914,4 +784,4 @@ radio-group {
|
|
|
padding: 20rpx 0 60rpx;
|
|
padding: 20rpx 0 60rpx;
|
|
|
font-size: 26rpx;
|
|
font-size: 26rpx;
|
|
|
}
|
|
}
|
|
|
-</style>
|
|
|
|
|
|
|
+</style>
|