✨ 签到:部分调整
parent
d129820605
commit
1a07dc4a40
|
|
@ -1,109 +1,89 @@
|
|||
<!-- 页面 -->
|
||||
<!-- 签到界面 -->
|
||||
<template>
|
||||
<s-layout title="签到有礼">
|
||||
<view v-if="state.loading"></view>
|
||||
<view class="sign-wrap" v-else-if="state.data && !state.loading">
|
||||
<s-empty v-if="state.loading" icon="/static/data-empty.png" text="签到活动还未开始" />
|
||||
<view v-if="state.loading" />
|
||||
<view class="sign-wrap" v-else-if="!state.loading">
|
||||
<!-- 签到日历 -->
|
||||
<view class="content-box calendar">
|
||||
<view class="sign-everyday ss-flex ss-col-center ss-row-between ss-p-x-30">
|
||||
<text class="sign-everyday-title">签到日历</text>
|
||||
<view class="sign-num-box">
|
||||
已连续签到
|
||||
<text class="sign-num">{{ state.continue_days }}</text>
|
||||
天
|
||||
已连续签到 <text class="sign-num">{{ state.signInfo.continuousDay }}</text> 天
|
||||
</view>
|
||||
</view>
|
||||
<view class='list acea-row row-between-wrapper'
|
||||
style='padding: 0 30rpx; height:240rpx;display: flex;justify-content: space-between;align-items: center;'>
|
||||
<view class='item' v-for="(item,index) in state.signConfigList" :key="index">
|
||||
<!-- (index + 1 === state.signConfigList.length ? 'reward' : '') + -->
|
||||
<view :class=" ' ' +( state.continuousDay >= item.day ? 'rewardTxt' : '')">
|
||||
<view
|
||||
class="list acea-row row-between-wrapper"
|
||||
style="
|
||||
padding: 0 30rpx;
|
||||
height: 240rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
"
|
||||
>
|
||||
<!-- TODO @科举:1)这里已签到的样式不太对;2)最后一天(第 7 天)的大奖样式不太对 -->
|
||||
<view class="item" v-for="(item, index) in state.signConfigList" :key="index">
|
||||
<view
|
||||
:class="
|
||||
(index + 1 === state.signConfigList.length ? 'reward' : '') +
|
||||
' ' +
|
||||
(state.signInfo.continuousDay >= item.day ? 'rewardTxt' : '')
|
||||
"
|
||||
>
|
||||
第{{ item.day }}天
|
||||
</view>
|
||||
<view class='venus'
|
||||
:class="(index + 1 === state.signConfigList.length ? 'reward' : '') + ' ' +( state.continuousDay >= item.day ? 'venusSelect' : '')">
|
||||
<view
|
||||
class="venus"
|
||||
:class="
|
||||
(index + 1 === state.signConfigList.length ? 'reward' : '') +
|
||||
' ' +
|
||||
(state.signInfo.continuousDay >= item.day ? 'venusSelect' : '')
|
||||
"
|
||||
>
|
||||
</view>
|
||||
<view class='num' :class='state.continuousDay >= item.day ? "on" : ""'>+{{ item.point }}
|
||||
<view class="num" :class="state.signInfo.continuousDay >= item.day ? 'on' : ''">
|
||||
+ {{ item.point }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 切换年月 -->
|
||||
<!-- <view class="bar ss-flex ss-col-center ss-row-center">
|
||||
<view class="previous" @tap="handleCalendar(0)"><text class="cicon-back"></text></view>
|
||||
<view class="date ss-m-x-20">{{ state.cur_year || '--' }} 年 {{ state.cur_month || '--' }} 月</view>
|
||||
<view class="next" @tap="handleCalendar(1)"><text class="cicon-forward"></text></view>
|
||||
</view> -->
|
||||
|
||||
<!-- 显示星期 -->
|
||||
<!-- <view class="week ss-flex">
|
||||
<view class="week-item ss-flex ss-row-center" v-for="(item, index) in state.weeks_ch" :key="index">
|
||||
{{ item.title }}
|
||||
</view>
|
||||
</view> -->
|
||||
|
||||
<!-- 日历表 -->
|
||||
<view class="myDateTable">
|
||||
<!-- <view v-for="(item, j) in state.data.days" :key="j"
|
||||
class="dateCell ss-flex ss-row-center ss-col-center">
|
||||
<view class="ss-flex ss-row-center ss-col-center">
|
||||
<text :decode="true"> </text>
|
||||
</view>
|
||||
<view>
|
||||
<view v-if="item.is_sign" class="is-sign ss-flex ss-row-center">
|
||||
<view class="is-sign-num">{{ item.day < 10 ? '0' + item.day : item.day }}</view>
|
||||
<image class="is-sign-image"
|
||||
:src="sheep.$url.static('/static/img/shop/app/correct.png')">
|
||||
</image>
|
||||
</view>
|
||||
<view class="is-sign ss-flex ss-row-center" v-if="item.is_replenish == 1"
|
||||
@tap="onShowRetroactive(item.date)">
|
||||
<view class="cell-num">{{ item.day < 10 ? '0' + item.day : item.day }}</view>
|
||||
<text class="cicon-title"></text>
|
||||
</view>
|
||||
<view class="is-sign ss-flex ss-row-center" v-if="item.is_replenish == 0 && !item.is_sign">
|
||||
<view class="cell-num">{{ item.day < 10 ? '0' + item.day : item.day }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
|
||||
<!-- 签到按钮 -->
|
||||
<view class="myDateTable">
|
||||
<view class="ss-flex ss-col-center ss-row-center sign-box ss-m-y-40">
|
||||
<button class="ss-reset-button sign-btn" v-if="state.isSign === 0" @tap="onSign">签到</button>
|
||||
<button class="ss-reset-button already-btn" v-if="state.isSign === 1" disabled>已签到</button>
|
||||
<button
|
||||
class="ss-reset-button sign-btn"
|
||||
v-if="!state.signInfo.todaySignIn"
|
||||
@tap="onSign"
|
||||
>
|
||||
签到
|
||||
</button>
|
||||
<button class="ss-reset-button already-btn" v-else disabled> 已签到 </button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 签到说明 TODO @科举:这里改成【已累计签到】 -->
|
||||
<view class="bg-white ss-m-t-16 ss-p-t-30 ss-p-b-60 ss-p-x-40">
|
||||
<view class="activity-title ss-m-b-30">签到说明</view>
|
||||
<view class="activity-des">1、每天签到,可获得积分或经验</view>
|
||||
<view class="activity-des">
|
||||
1、每日签到固定 {{ state.data.rules.everyday }} 积分
|
||||
<text v-if="state.data.rules.is_inc == '1'">
|
||||
,次日递增奖励 {{ state.data.rules.inc_num }} 积分,直到
|
||||
{{ state.data.rules.until_day }} 天之后不再增加
|
||||
</text>
|
||||
</view>
|
||||
<view class="activity-des" v-if="state.data.rules.discounts?.length > 0">
|
||||
2、<text class="" v-for="i in state.data.rules.discounts" :key="i">
|
||||
连续签到 {{ i.full }} 天,奖励 {{ i.value }} 积分;
|
||||
</text>
|
||||
</view>
|
||||
<view class="activity-des" v-if="state.data.rules.is_replenish == '1'">
|
||||
{{ state.data.rules.discounts?.length > 0 ? '3' : '2' }}、用户在
|
||||
{{ state.data.rules.replenish_limit }} 天内,可补签
|
||||
{{ state.data.rules.replenish_days }} 天,每次补签消耗
|
||||
{{ state.data.rules.replenish_num }}积分
|
||||
2、据说连续签到第 {{ state.maxDay }} 天可获得超额积分,一定要坚持签到哦~~~
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<s-empty v-else-if="!state.data && !state.loading" icon="/static/data-empty.png" text="签到活动还未开始">
|
||||
</s-empty>
|
||||
|
||||
<!-- 签到结果弹窗 -->
|
||||
<su-popup :show="state.showModel" type="center" round="10" :isMaskClick="false">
|
||||
<view class="model-box ss-flex-col">
|
||||
<view class="ss-m-t-56 ss-flex-col ss-col-center">
|
||||
<text class="cicon-check-round"></text>
|
||||
<view class="score-title">{{ state.signin.score }}积分</view>
|
||||
<view class="score-title">
|
||||
<text v-if="state.signResult.point">{{ state.signResult.point }} 积分 </text>
|
||||
<text v-if="state.signResult.experience"> {{ state.signResult.experience }} 经验</text>
|
||||
</view>
|
||||
<view class="model-title ss-flex ss-col-center ss-m-t-22 ss-m-b-30">
|
||||
已连续打卡{{ state.continue_days }}天
|
||||
已连续打卡 {{ state.signResult.day }} 天
|
||||
</view>
|
||||
</view>
|
||||
<view class="model-bg ss-flex-col ss-col-center ss-row-right">
|
||||
|
|
@ -114,204 +94,73 @@
|
|||
</view>
|
||||
</view>
|
||||
</su-popup>
|
||||
<su-popup :show="state.showRetroactive" type="center" round="10" :isMaskClick="false">
|
||||
<view class="model-box ss-flex-col">
|
||||
<view class="ss-m-t-56 ss-flex-col ss-col-center">
|
||||
<text class="cicon-check-round"></text>
|
||||
<view class="score-title">消耗{{ state.data?.rules.replenish_num }}积分</view>
|
||||
<view class="model-title ss-flex ss-col-center ss-m-t-22 ss-m-b-30">
|
||||
已连续打卡{{ state.continue_days }}天
|
||||
</view>
|
||||
</view>
|
||||
<view class="model-bg ss-flex-col ss-col-center ss-row-right">
|
||||
<view class="title ss-m-b-64">确认补签</view>
|
||||
<view class="ss-m-b-40 ss-flex">
|
||||
<button class="ss-reset-button cancel-btn" @tap="state.showRetroactive = false">取消</button>
|
||||
<button class="ss-reset-button confirm-btn" @tap="onRetroactive">确认</button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</su-popup>
|
||||
</s-layout>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import sheep from '@/sheep';
|
||||
import {
|
||||
onLoad,
|
||||
onReady
|
||||
} from '@dcloudio/uni-app';
|
||||
import {
|
||||
computed,
|
||||
reactive
|
||||
} from 'vue';
|
||||
import { onReady } from '@dcloudio/uni-app';
|
||||
import { reactive } from 'vue';
|
||||
import SignInApi from '@/sheep/api/member/signin';
|
||||
|
||||
const headerBg = sheep.$url.css('/static/img/shop/app/sign.png');
|
||||
|
||||
const state = reactive({
|
||||
signConfigList: [],
|
||||
continuousDay: [],
|
||||
data: {
|
||||
days: [], //日历
|
||||
rules: {}, //规则
|
||||
},
|
||||
cur_year: 0, //当前选的年
|
||||
cur_month: 0, //当前选的月
|
||||
cur_day: 0, //当前选择的天
|
||||
weeks_ch: [{
|
||||
title: '日',
|
||||
value: '0',
|
||||
},
|
||||
{
|
||||
title: '一',
|
||||
value: '1',
|
||||
},
|
||||
{
|
||||
title: '二',
|
||||
value: '2',
|
||||
},
|
||||
{
|
||||
title: '三',
|
||||
value: '3',
|
||||
},
|
||||
{
|
||||
title: '四',
|
||||
value: '4',
|
||||
},
|
||||
{
|
||||
title: '五',
|
||||
value: '5',
|
||||
},
|
||||
{
|
||||
title: '六',
|
||||
value: '6',
|
||||
},
|
||||
], //星期
|
||||
showModel: false, //签到弹框
|
||||
continue_days: 0, //连续签到天数
|
||||
signin: {}, // 签到
|
||||
showRetroactive: false, //补签弹框
|
||||
date: '', //补签选中日期
|
||||
isSign: 0, //今天是否签到
|
||||
loading: true,
|
||||
|
||||
signInfo: {}, // 签到信息
|
||||
|
||||
signConfigList: [], // 签到配置列表
|
||||
maxDay: 0, // 最大的签到天数
|
||||
|
||||
showModel: false, // 签到弹框
|
||||
signResult: {}, // 签到结果
|
||||
});
|
||||
|
||||
// 发起签到
|
||||
async function onSign() {
|
||||
// 换签到接口
|
||||
const {
|
||||
code: error,
|
||||
data
|
||||
} = await sheep.$api.activity.signAdd();
|
||||
if (error === 0) {
|
||||
state.showModel = true;
|
||||
state.signin = data;
|
||||
// getData();
|
||||
const { code, data } = await SignInApi.createSignInRecord();
|
||||
if (code !== 0) {
|
||||
return;
|
||||
}
|
||||
state.showModel = true;
|
||||
state.signResult = data;
|
||||
// 重新获得签到信息
|
||||
await getSignInfo();
|
||||
}
|
||||
|
||||
function onShowRetroactive(e) {
|
||||
state.showRetroactive = true;
|
||||
state.date = e;
|
||||
}
|
||||
// 签到确认刷新页面
|
||||
function onConfirm() {
|
||||
state.showModel = false;
|
||||
getData();
|
||||
}
|
||||
//补签
|
||||
async function onRetroactive() {
|
||||
const {
|
||||
error,
|
||||
data
|
||||
} = await sheep.$api.activity.replenish({
|
||||
date: state.date,
|
||||
});
|
||||
if (error === 0) {
|
||||
state.showRetroactive = false;
|
||||
getData();
|
||||
}
|
||||
}
|
||||
|
||||
async function getData(mouth) {
|
||||
const {
|
||||
error,
|
||||
data
|
||||
} = await sheep.$api.activity.signList(mouth);
|
||||
const res = await sheep.$api.activity.configLise();
|
||||
const res2 = await sheep.$api.activity.recordPage();
|
||||
// 替换数据
|
||||
const ren = await sheep.$api.activity.getSummary();
|
||||
if (error === 0) {
|
||||
state.data = data;
|
||||
} else {
|
||||
state.data = null;
|
||||
// 获得个人签到统计
|
||||
async function getSignInfo() {
|
||||
const { code, data } = await SignInApi.getSignInRecordSummary();
|
||||
if (code !== 0) {
|
||||
return;
|
||||
}
|
||||
state.signInfo = data;
|
||||
state.loading = false;
|
||||
if (state.data) {
|
||||
state.data.days.forEach((i, index) => {
|
||||
if (index < i.week) {
|
||||
index++;
|
||||
var obj = {
|
||||
day: null,
|
||||
is_sign: false,
|
||||
};
|
||||
state.data.days.unshift(obj);
|
||||
}
|
||||
if (index == 1) {
|
||||
let arr = i.date.split('-');
|
||||
state.cur_year = arr[0];
|
||||
state.cur_month = arr[1];
|
||||
|
||||
// 获取签到配置
|
||||
async function getSignConfigList() {
|
||||
const { code, data } = await SignInApi.getSignInConfigList();
|
||||
if (code !== 0) {
|
||||
return;
|
||||
}
|
||||
});
|
||||
if (state.data.days[0].day == null) {
|
||||
state.data.days.forEach((i, index) => {
|
||||
if (i.current == 'today') {
|
||||
state.isSign = i.is_sign;
|
||||
}
|
||||
});
|
||||
}
|
||||
if (res.code == 0) {
|
||||
state.signConfigList = res.data;
|
||||
}
|
||||
if (res2.code == 0) {
|
||||
state.continuousDay = res2.data.list;
|
||||
}
|
||||
state.isSign = ren.data.todaySignIn ? 1 : 0;
|
||||
state.continue_days = ren.data.continuousDay;
|
||||
state.signConfigList = data;
|
||||
if (data.length > 0) {
|
||||
state.maxDay = data[data.length - 1].day;
|
||||
}
|
||||
}
|
||||
|
||||
onReady(() => {
|
||||
getData();
|
||||
getSignInfo();
|
||||
getSignConfigList();
|
||||
});
|
||||
|
||||
// 切换控制年月,上一个月,下一个月
|
||||
const handleCalendar = (type) => {
|
||||
const cur_year = parseInt(state.cur_year);
|
||||
const cur_month = parseInt(state.cur_month);
|
||||
var newMonth;
|
||||
var newYear = cur_year;
|
||||
if (type === 0) {
|
||||
//上个月
|
||||
newMonth = cur_month - 1;
|
||||
if (newMonth < 1) {
|
||||
newYear = cur_year - 1;
|
||||
newMonth = 12;
|
||||
} else if (newMonth < 10) {
|
||||
newMonth = '0' + newMonth;
|
||||
}
|
||||
} else {
|
||||
newMonth = cur_month + 1;
|
||||
if (newMonth > 12) {
|
||||
newYear = cur_year + 1;
|
||||
newMonth = 1;
|
||||
} else if (newMonth < 10) {
|
||||
newMonth = '0' + newMonth;
|
||||
}
|
||||
}
|
||||
getData({
|
||||
month: newYear + '-' + newMonth,
|
||||
});
|
||||
};
|
||||
// TODO 芋艿:1)css 需要优化,例如说引入的图片;2)删除多余的样式
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
|
@ -591,11 +440,13 @@
|
|||
height: 130rpx;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.reward {
|
||||
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAAA4CAYAAAC1+AWFAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowYWFmYjU3Mi03MGJhLTRiNDctOTI2Yi0zOThlZDkzZDkxMDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RUEyNzZEMjZEMDFCMTFFOEIzQzhEMjMxNjI1NENDQjciIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RUEyNzZEMjVEMDFCMTFFOEIzQzhEMjMxNjI1NENDQjciIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmRjNTM0MmUtNmFkOC1iMDRhLThjZTEtMjk2YWYzM2FkMmUxIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBhYWZiNTcyLTcwYmEtNGI0Ny05MjZiLTM5OGVkOTNkOTEwOSIv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');
|
||||
width: 75rpx;
|
||||
height: 56rpx;
|
||||
}
|
||||
|
||||
.on {
|
||||
background-color: #999 !important;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -18,38 +18,16 @@ export default {
|
|||
url: 'activity/groupon/' + id,
|
||||
method: 'GET',
|
||||
}),
|
||||
signList: (params) =>
|
||||
request({
|
||||
url: 'activity/signin',
|
||||
method: 'GET',
|
||||
params,
|
||||
}),
|
||||
signAdd: () =>
|
||||
request({
|
||||
url: '/app-api/member/sign-in/record/create',
|
||||
method: 'POST',
|
||||
}),
|
||||
configLise: () =>
|
||||
request({
|
||||
url: '/app-api/member/sign-in/config/list',
|
||||
method: 'GET',
|
||||
}),
|
||||
recordPage: () =>
|
||||
request({
|
||||
url: '/app-api/member/sign-in/record/page',
|
||||
method: 'GET',
|
||||
}),
|
||||
replenish: (data) =>
|
||||
request({
|
||||
url: 'activity/signin/replenish',
|
||||
method: 'POST',
|
||||
data,
|
||||
}),
|
||||
activity: (id) =>
|
||||
request({
|
||||
url: 'activity/activity/' + id,
|
||||
method: 'GET',
|
||||
}),
|
||||
getSummary: () =>
|
||||
request({
|
||||
url: '/app-api/member/sign-in/record/get-summary',
|
||||
method: 'GET',
|
||||
}),
|
||||
getBargainRecordSummary: () =>
|
||||
request({
|
||||
url: '/app-api/promotion/bargain-record/get-summary',
|
||||
|
|
|
|||
|
|
@ -0,0 +1,37 @@
|
|||
import request from '@/sheep/request';
|
||||
|
||||
const SignInApi = {
|
||||
// 获得签到规则列表
|
||||
getSignInConfigList: () => {
|
||||
return request({
|
||||
url: '/app-api/member/sign-in/config/list',
|
||||
method: 'GET',
|
||||
});
|
||||
},
|
||||
// 获得个人签到统计
|
||||
getSignInRecordSummary: () => {
|
||||
return request({
|
||||
url: '/app-api/member/sign-in/record/get-summary',
|
||||
method: 'GET',
|
||||
});
|
||||
},
|
||||
// 签到
|
||||
createSignInRecord: () => {
|
||||
return request({
|
||||
url: '/app-api/member/sign-in/record/create',
|
||||
method: 'POST',
|
||||
});
|
||||
},
|
||||
// 获得签到记录分页
|
||||
getSignRecordPage: (params) => {
|
||||
const queryString = Object.keys(params)
|
||||
.map((key) => encodeURIComponent(key) + '=' + params[key])
|
||||
.join('&');
|
||||
return request({
|
||||
url: `/app-api/member/sign-in/record/page?${queryString}`,
|
||||
method: 'GET',
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
export default SignInApi;
|
||||
Loading…
Reference in New Issue