|
|
@@ -0,0 +1,79 @@
|
|
|
+<template>
|
|
|
+ <common-dialog ref="dialog" title="活动规则" confirmText="确定" :showCancel="false" @confirm="onConfirm" width="640rpx">
|
|
|
+ <view class="rule-content">
|
|
|
+ <view class="rule-item">1.活动时间:{{ ruleData.startTime || '暂无' }}至{{ ruleData.endTime || '暂无' }}。</view>
|
|
|
+ <view class="rule-item">2.助力降价机制:用户成功分享并邀请 1 位好友完成助力,即可享受对应图书的降价优惠,最高可0元购书!</view>
|
|
|
+ <view class="rule-item">3.助力有效期:用户发起助力后,需在{{ ruleData.inviteExpireHour || 24 }}小时内完成好友助力,超时未完成则本次助力失效,可重新发起邀请,有效期以助力成功时间为准。</view>
|
|
|
+ <view class="rule-item">4.助力上限说明:单用户单订单单本图书仅可降价 {{ ruleData.reduceTimesPerIsbn || 1 }} 次,达到次数上限后无法继续通过助力获得优惠;每个用户 ID 每日最多可参与助力 {{ ruleData.assistTimesEveryDay || 1 }} 次,同一好友仅可为同一用户的同一订单助力 1 次,重复助力无效。</view>
|
|
|
+ <view class="rule-item">5.若用户存在恶意刷助力、虚假账号、作弊等违规行为,平台有权直接取消其活动资格、收回已获得的降价优惠,并限制其后续参与平台活动的权限。</view>
|
|
|
+ </view>
|
|
|
+ </common-dialog>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import commonDialog from '@/components/common-dialog.vue'
|
|
|
+
|
|
|
+export default {
|
|
|
+ components: {
|
|
|
+ commonDialog
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ ruleData: {}
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ open() {
|
|
|
+ this.fetchRuleData();
|
|
|
+ this.$refs.dialog.openPopup();
|
|
|
+ },
|
|
|
+ fetchRuleData() {
|
|
|
+ this.$u.api.getActivityReduceRuleAjax().then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ // 处理日期格式,只取年月日
|
|
|
+ let data = res.data || {};
|
|
|
+ if (data.startTime) {
|
|
|
+ data.startTime = this.formatDate(data.startTime);
|
|
|
+ }
|
|
|
+ if (data.endTime) {
|
|
|
+ data.endTime = this.formatDate(data.endTime);
|
|
|
+ }
|
|
|
+ this.ruleData = data;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ formatDate(dateStr) {
|
|
|
+ // 将类似 2025-03-25T00:00:00 转换为 2025年3月25日
|
|
|
+ if (!dateStr) return '';
|
|
|
+ let date = new Date(dateStr);
|
|
|
+ if (isNaN(date.getTime())) {
|
|
|
+ // 处理可能带有空格的格式 2025-03-25 00:00:00
|
|
|
+ date = new Date(dateStr.replace(/-/g, '/'));
|
|
|
+ }
|
|
|
+ if (isNaN(date.getTime())) return dateStr;
|
|
|
+ return `${date.getFullYear()}年${date.getMonth() + 1}月${date.getDate()}日`;
|
|
|
+ },
|
|
|
+ onConfirm() {
|
|
|
+ // 点击确定,弹窗自动关闭
|
|
|
+ this.$emit('confirm');
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+.rule-content {
|
|
|
+ text-align: left;
|
|
|
+ font-size: 26rpx;
|
|
|
+ color: #333333;
|
|
|
+ line-height: 44rpx;
|
|
|
+ max-height: 60vh;
|
|
|
+ overflow-y: auto;
|
|
|
+ padding-bottom: 20rpx;
|
|
|
+
|
|
|
+ .rule-item {
|
|
|
+ margin-bottom: 20rpx;
|
|
|
+ text-align: justify;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|