diff --git a/src/order_pages/orderDetail/config.ts b/src/order_pages/orderDetail/config.ts
index 0d29f77..d487196 100644
--- a/src/order_pages/orderDetail/config.ts
+++ b/src/order_pages/orderDetail/config.ts
@@ -22,3 +22,135 @@ export const DECLAIMER = `
发起人临时失联/爽约;发起人恶意删除队员,GO!支持全额退款
参与者爽约不通知,不可退款但鼓励用户评分机制中反馈,平台将限制其部分功能使用(如发起权限、报名权限等)。
`;
+
+interface RegInsChildTipType {
+ text: string
+ strong?: boolean
+}
+
+interface RegInsChildTableType {
+ refundApplicationTime: string
+ participantRefundableAmount: string
+ liquidatedDamages: string
+}
+
+interface RegInsChildType {
+ title: string
+ desc: string
+ table?: RegInsChildTableType[]
+ tips: RegInsChildTipType[]
+}
+
+interface RegInsType {
+ title: string,
+ desc: string,
+ children: RegInsChildType[]
+}
+
+export const RegistrationInstructions: RegInsType = {
+ title: '报名须知',
+ desc: '请在确认支付前仔细阅读以下内容,完成支付即视为您已同意本须知全部内容。',
+ children: [
+ {
+ title: '一、退款规则',
+ desc: '',
+ table: [
+ {
+ refundApplicationTime: '申请退款时间',
+ participantRefundableAmount: '参与者可退',
+ liquidatedDamages: '违约金',
+ },
+ {
+ refundApplicationTime: '活动开始前24小时',
+ participantRefundableAmount: '报名费 100%',
+ liquidatedDamages: '无',
+ },
+ {
+ refundApplicationTime: '活动开始前12~24小时',
+ participantRefundableAmount: '报名费 50%',
+ liquidatedDamages: '报名费 50%',
+ },
+ {
+ refundApplicationTime: '活动开始前12小时内',
+ participantRefundableAmount: '报名费 20%',
+ liquidatedDamages: '报名费 80%',
+ },
+ {
+ refundApplicationTime: '未申请 / 直接缺席',
+ participantRefundableAmount: '0%',
+ liquidatedDamages: '视为放弃,全归组织者',
+ },
+ ],
+ tips: [
+ {
+ text: '以上时间节点以提交申请时间为准,非活动开始时间;',
+ strong: false,
+ },
+ {
+ text: '退款申请入口:活动详情页 > 退出活动',
+ },
+ {
+ text: '退款原路退回至微信支付账户,到账时间 1~5 个工作日;',
+ },
+ {
+ text: '违约金由组织者(95%)与平台(5%)按比例分配。其中组织者所得部分用于补偿其因人数临时变动产生的场地费损失,平台所得部分用于覆盖违约事务的处理成本;',
+ },
+ {
+ text: '未申请退款直接缺席的,报名费于活动结束后自动结算给组织者,平台不参与分配',
+ },
+ ],
+ },
+ {
+ title: '二、特殊情形退款',
+ desc: '以下特殊情形可申请全额退款,需联系客服并提供相关证明材料:',
+ tips: [
+ {
+ text: '活动当天遭遇极端恶劣天气(台风、暴雨红色预警等);',
+ },
+ {
+ text: '球场临时关闭或其他不可抗力导致活动无法进行;',
+ },
+ {
+ text: '参与者本人突发疾病或意外(需提供医院证明)。',
+ },
+ ],
+ },
+ {
+ title: '三、活动取消规则',
+ desc: '',
+ tips: [
+ {
+ text: '到达活动开始时间时,报名人数仍未达到最低成局人数,活动自动取消,已付款参与者全额退款;',
+ },
+ {
+ text: '组织者主动取消活动,所有已付款参与者全额退款;',
+ },
+ {
+ text: '以上退款均由系统自动处理,无需申请。',
+ },
+ ],
+ },
+ {
+ title: '四、免责声明',
+ desc: '',
+ tips: [
+ {
+ text: '本平台仅为网球约球信息撮合平台,不直接提供场地或运动服务,不对活动中的人身安全及财物损失承担责任;',
+ },
+ {
+ text: '网球运动存在固有运动风险,请在参与前评估自身身体状况,患有心脏病、高血压等基础疾病者请在医生许可下参与;',
+ },
+ {
+ text: '平台强烈建议参与者购买运动意外保险;',
+ strong: true,
+ },
+ {
+ text: '因组织者或场地方原因导致活动变更或取消,平台将协助处理但不承担连带责任;',
+ },
+ {
+ text: '本平台不对因网络故障、系统维护或不可抗力导致的服务中断承担责任。',
+ },
+ ],
+ },
+ ],
+}
diff --git a/src/order_pages/orderDetail/index.module.scss b/src/order_pages/orderDetail/index.module.scss
index b89616d..505054d 100644
--- a/src/order_pages/orderDetail/index.module.scss
+++ b/src/order_pages/orderDetail/index.module.scss
@@ -544,21 +544,160 @@
.time {
text-align: left;
padding-left: 30px;
+ border-right: 1px solid rgba(0, 0, 0, 0.06);
}
- .rule {
- border-left: 1px solid rgba(0, 0, 0, 0.06);
- }
+ // .rule {
+ // border-left: 1px solid rgba(0, 0, 0, 0.06);
+ // }
}
}
+ .refundTip {
+ margin-top: 16px;
+ color: rgba(60, 60, 67, 0.6);
+ text-align: center;
+ font-feature-settings:
+ "liga" off,
+ "clig" off;
+ font-family: "PingFang SC";
+ font-size: 12px;
+ font-style: normal;
+ font-weight: 400;
+ }
}
-.declaimer {
+.disclaimer {
display: flex;
flex-direction: column;
- align-items: flex-start;
- gap: 8px;
- padding-bottom: 100px;
+ gap: 16px;
+ margin-top: 16px;
+
+ .disclaimerTitle {
+ font-size: 14px;
+ font-weight: bold;
+ color: #000;
+ line-height: 20px;
+ }
+
+ .disclaimerDesc {
+ font-size: 12px;
+ color: rgba(0, 0, 0, 0.65);
+ line-height: 18px;
+ }
+
+ .disclaimerSection {
+ display: flex;
+ flex-direction: column;
+ gap: 8px;
+
+ .sectionTitle {
+ font-size: 14px;
+ font-weight: bold;
+ color: #000;
+ line-height: 20px;
+ }
+
+ .sectionDesc {
+ font-size: 12px;
+ color: rgba(0, 0, 0, 0.65);
+ line-height: 18px;
+ }
+
+ .tableContainer {
+ display: flex;
+ flex-direction: column;
+ // gap: 8px;
+ margin: 8px 0;
+ border-radius: 12px;
+ border: 1px solid rgba(0, 0, 0, 0.06);
+ background: #fff;
+ box-shadow: 0 4px 36px 0 rgba(0, 0, 0, 0.06);
+ overflow: hidden;
+
+ .tableRow {
+ display: flex;
+ min-height: 44px;
+
+ &:first-child {
+ .tableCell {
+ color: #000;
+ font-weight: 600;
+ }
+ }
+
+ &:not(:last-child) {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.06);
+ }
+
+ .tableCell {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 12px;
+ color: rgba(0, 0, 0, 0.65);
+ line-height: 18px;
+ word-break: break-word;
+ padding: 4px 0;
+
+ &:not(:last-child) {
+ border-right: 1px solid rgba(0, 0, 0, 0.06);
+ }
+
+ &:nth-child(1) {
+ flex: 1;
+ }
+
+ &:nth-child(2) {
+ flex: 0.6;
+ }
+
+ &:nth-child(3) {
+ flex: 1;
+ }
+
+ .tipText {
+ text-align: center;
+ }
+ }
+ }
+ }
+
+ .tipsList {
+ display: flex;
+ flex-direction: column;
+ gap: 6px;
+ margin: 8px 0;
+
+ .tipItem {
+ display: flex;
+ align-items: flex-start;
+
+ &::before {
+ content: "•";
+ margin-right: 6px;
+ margin-top: -2px;
+ font-size: 12px;
+ color: rgba(0, 0, 0, 0.65);
+ flex-shrink: 0;
+ line-height: 18px;
+ }
+
+ .tipText {
+ font-size: 12px;
+ color: rgba(0, 0, 0, 0.65);
+ line-height: 18px;
+ }
+
+ .tipTextStrong {
+ font-size: 12px;
+ color: #000;
+ font-weight: bold;
+ line-height: 18px;
+ }
+ }
+ }
+ }
+
.title {
display: flex;
padding: 15px 0 0;
diff --git a/src/order_pages/orderDetail/index.tsx b/src/order_pages/orderDetail/index.tsx
index aa17213..cc3c4e8 100644
--- a/src/order_pages/orderDetail/index.tsx
+++ b/src/order_pages/orderDetail/index.tsx
@@ -32,7 +32,7 @@ import img from "@/config/images";
import CustomerIcon from "@/static/order/customer.svg";
import { handleCustomerService } from "@/services/userService";
import { requireLoginWithPhone } from "@/utils/helper";
-import { DECLAIMER } from "./config";
+import { RegistrationInstructions } from "./config";
import styles from "./index.module.scss";
dayjs.locale("zh-cn");
@@ -550,15 +550,66 @@ function RefundPolicy(props) {
))}
+
+ 以上时间节点以提交申请时间为准。违约金由组织者(95%)与平台(5%)分配,用于补偿场地损失及处理成本。活动结束48小时后,1个工作日内系统自动结算至组织者账户。未申请退款直接缺席,报名费全额归组织者。
+
);
}
function Disclaimer() {
return (
-
- 免责声明
- {DECLAIMER}
+
+
+ {RegistrationInstructions.title}
+
+
+ {RegistrationInstructions.desc}
+
+ {RegistrationInstructions.children.map((section, sectionIndex) => (
+
+
+ {section.title}
+
+ {section.desc && (
+
+ {section.desc}
+
+ )}
+ {section.table && (
+
+ {section.table.map((row, rowIndex) => (
+
+
+ {row.refundApplicationTime}
+
+
+ {row.participantRefundableAmount}
+
+
+ {row.liquidatedDamages}
+
+
+ ))}
+
+ )}
+ {section.tips && (
+
+ {section.tips.map((tip, tipIndex) => (
+
+
+ {tip.text}
+
+
+ ))}
+
+ )}
+
+ ))}
);
}