|
@@ -3,7 +3,7 @@
|
|
|
<div>
|
|
|
<integralShow></integralShow>
|
|
|
<div class="text-end signInRecord mt-3" @click="handleRecord">
|
|
|
- 签到记录
|
|
|
+ {{ $t('taskCenter.signInRecord') }}
|
|
|
<v-icon>mdi-chevron-right</v-icon>
|
|
|
</div>
|
|
|
<div class="d-flex justify-center mt-3">
|
|
@@ -34,7 +34,7 @@
|
|
|
<span class="mx-1" style="color: var(--v-primary-base); font-weight: 600;"> {{ continuousDay }} </span>
|
|
|
天,明天再来吧
|
|
|
</span>
|
|
|
- <v-btn class="half-button" color="primary" size="small" :disabled="todaySignIn" @click="handleSignIn">{{ todaySignIn ? '已签到' : '签到' }}</v-btn>
|
|
|
+ <v-btn class="half-button" color="primary" size="small" :loading="signLoading" :disabled="todaySignIn" @click="handleSignIn">{{ todaySignIn ? '已签到' : '签到' }}</v-btn>
|
|
|
</div>
|
|
|
|
|
|
<!-- 签到记录 -->
|
|
@@ -62,9 +62,12 @@
|
|
|
defineOptions({name: 'personal-taskCenter-signIn'})
|
|
|
import { ref } from 'vue'
|
|
|
import { timesTampChange } from '@/utils/date'
|
|
|
+import { useI18n } from '@/hooks/web/useI18n'
|
|
|
import { getRewardSignInRecordSummary, getRewardSignInConfigList, createRewardSignInRecord, getRewardSignInRecordPage } from '@/api/sign'
|
|
|
import integralShow from '@/views/personal/components/integralShow.vue'
|
|
|
+import Snackbar from '@/plugins/snackbar'
|
|
|
|
|
|
+const { t } = useI18n()
|
|
|
// 连续签到天数
|
|
|
const continuousDay = ref(0)
|
|
|
// 今天有无签到
|
|
@@ -72,17 +75,18 @@ const todaySignIn = ref(false)
|
|
|
// 规则列表
|
|
|
const configList = ref([])
|
|
|
const todayNumber = ref()
|
|
|
-const drawer = ref(false)
|
|
|
+const signLoading = ref(false)
|
|
|
|
|
|
// 签到记录
|
|
|
const total = ref(0)
|
|
|
+const drawer = ref(false)
|
|
|
const pageSize = ref(10)
|
|
|
const pageNo = ref(1)
|
|
|
const recordList = ref([])
|
|
|
const headers = [
|
|
|
- { title: '签到天数', key: 'day' },
|
|
|
- { title: '获得积分数', key: 'point' },
|
|
|
- { title: '获得时间', key: 'createTime', value: item => timesTampChange(item.createTime)}
|
|
|
+ { title: t('taskCenter.signInDays'), key: 'day' },
|
|
|
+ { title: t('taskCenter.points'), key: 'point' },
|
|
|
+ { title: t('taskCenter.createTime'), key: 'createTime', value: item => timesTampChange(item.createTime)}
|
|
|
]
|
|
|
|
|
|
// 获取签到规则列表
|
|
@@ -104,8 +108,13 @@ getSummary()
|
|
|
|
|
|
// 签到
|
|
|
const handleSignIn = async () => {
|
|
|
+ signLoading.value = true
|
|
|
await createRewardSignInRecord()
|
|
|
- getSummary()
|
|
|
+ setTimeout(async () => {
|
|
|
+ await getSummary()
|
|
|
+ Snackbar.success(t('taskCenter.signInSuccess'))
|
|
|
+ signLoading.value = false
|
|
|
+ }, 1000)
|
|
|
}
|
|
|
|
|
|
// 签到记录
|