talk_appAmin/pages/signln/signid.vue

626 lines
12 KiB
Vue
Raw Normal View History

2024-06-04 21:40:25 +08:00
<!-- 签到任务 -->
<template>
<navbar_neadVue title="签到任务" background_color="#CAF6F5"></navbar_neadVue>
<view class="content-top">
<view class="top">
<view class="top-right-text">
<text @click="GoTo()"></text>
</view>
<view>
<view class="top-left-text">
<text>{{count}}</text>
<text>校园币</text>
</view>
<view class="top-left">
<text>我的校园币</text>
</view>
</view>
<view class="right-image">
2024-06-08 18:49:58 +08:00
<image src="../../static/images/sign/jin.png"></image>
2024-06-04 21:40:25 +08:00
</view>
<view class="content-bottom">
<view class="c-bottom">
<text>
已连续签到<text class="text-1">1</text>
</text>
</view>
</view>
<view class="content-bottom-bot">
<view class="bot-text">
<text>记得去商城兑换礼物奥</text>
</view>
2024-06-07 17:39:13 +08:00
<!-- 签到日期 -->
2024-06-04 21:40:25 +08:00
<view>
2024-06-07 17:39:13 +08:00
<view class="data">
2024-06-12 12:29:17 +08:00
<view class="data-view" v-for="(item,index) in weekDates" :key="index">
<image v-if="item.isDate == true" class="data-image"
src="../../static/images/sign/one_l.png">
2024-06-04 21:40:25 +08:00
</image>
2024-06-08 18:49:58 +08:00
<image v-else class="data-image" src="../../static/images/sign/one.png"></image>
2024-06-07 17:39:13 +08:00
<text class="data-text">{{item.data}}</text>
</view>
</view>
2024-06-04 21:40:25 +08:00
</view>
</view>
</view>
</view>
<!-- 签到任务 -->
<view class="task">
<view style="height: 60rpx;">
<text class="tasktext">签到任务</text>
</view>
<view class="task-content" v-for="(item,index) in arr" :key="index">
2024-06-07 17:39:13 +08:00
<!-- 签到按钮 -->
<view class="task-right" @click="goTaskRight(item.id)">
2024-06-04 21:40:25 +08:00
<text>{{item.type}}</text>
</view>
<view>
<text class="c-text">{{item.title}}</text>
2024-06-12 12:29:17 +08:00
<image style="width: 21rpx;height: 21rpx;margin-left: 36rpx;vertical-align: middle;"
src="../../static/images/sign/one.png">
2024-06-04 21:40:25 +08:00
</image>
2024-06-12 12:29:17 +08:00
<text class="count-text">+{{item.rewards}}</text>
2024-06-04 21:40:25 +08:00
</view>
<view class="task-left">
2024-06-12 12:29:17 +08:00
<text class="left-text">{{item.content}}</text>
<text v-show="item.conditons != null" class="left-text"
style="margin-left: 20rpx;">{{leftParenthesis}}</text>
<text v-show="item.conditons != null" class="left-0text">{{acquiesce}}</text>
<text v-show="item.conditons != null"
class="left-text">{{slash}}{{item.conditons}}{{rightParenthesis}}</text>
2024-06-04 21:40:25 +08:00
</view>
</view>
<view style="height: 24rpx;"></view>
2024-06-05 18:40:02 +08:00
</view>
<view class="bottom">
<view class="bottom-left"></view>
<view class="bottom-text">
<text class="bottom-text-s">兑换商城</text>
2024-06-07 17:39:13 +08:00
<view class="bottom-text-r" @click="GoExchange()">
2024-06-08 19:37:58 +08:00
<text style=" vertical-align: middle;">更多</text>
<image style="width: 14rpx; height: 23rpx;margin-left: 9rpx; vertical-align: middle;"
src="../../static/images/sign/rig.png">
2024-06-07 17:39:13 +08:00
</image>
</view>
2024-06-05 18:40:02 +08:00
</view>
2024-06-04 21:40:25 +08:00
</view>
<view>
2024-06-05 18:40:02 +08:00
<ex></ex>
2024-06-04 21:40:25 +08:00
</view>
</template>
<script setup>
2024-06-05 18:40:02 +08:00
import navbar_neadVue from "@/pages/common/navbar/navbar_nead.vue";
import ex from "@/pages/common/exchange/index.vue";
2024-06-12 12:29:17 +08:00
import {
listTask,
getTask,
delTask,
addTask,
updateTask
} from "@/api/signln/checktask/task";
import {
listSignTa,
getSignTa,
delSignTa,
addSignTa,
updateSignTa
} from "@/api/signln/SignTa/SignTa";
// 获取上次签到时间 然后返回后面7天的时间 然后上次签到断了则开始新的日期
var date = new Date();
console.log("日" + date.getDate() + "年" + date.getFullYear() + "月" + (date.getMonth() + 1))
const datetimes = reactive([{
data: date.getDate(),
}])
const sdate = new Date();
const dayof = date.getDay();
const weekDates = reactive([]);
sdate.setDate(date.getDate() - dayof + (dayof === 0 ? -6 : 1));
console.log(dayof)
for (let i = 0; i < 7; i++) {
const date = new Date(sdate);
date.setDate(sdate.getDate() + i);
const list = {
data: date.getDate(),
isDate: false
}
weekDates.push(list);
}
//上次签到的时间
const past = 12;
//连续签到天数
const cot = ref(2);
async function Ipp(ite) {
const indexs = weekDates.indexOf(weekDates.find(item => item.data == past));
for (let j = 0; j < ite; j++) {
weekDates.find(item => item.data == past + j).isDate = true;
}
}
Ipp(cot.value);
// console.log(indexs)
// console.log(weekDates)
2024-06-07 17:39:13 +08:00
const datetime = reactive([{
data: "12",
isDate: true
},
{
data: "13",
isDate: false
},
{
data: "14",
isDate: false
},
{
data: "15",
isDate: false
},
{
data: "16",
isDate: false
},
{
data: "17",
isDate: false
},
{
data: "18",
isDate: false
}
])
2024-06-04 21:40:25 +08:00
//
function GoTo() {
2024-06-05 18:40:02 +08:00
uni.navigateTo({
url: './signiddetails'
});
2024-06-04 21:40:25 +08:00
}
2024-06-05 18:40:02 +08:00
//
2024-06-07 17:39:13 +08:00
function GoExchange() {
2024-06-05 18:40:02 +08:00
uni.navigateTo({
url: './exchangemall'
});
}
2024-06-07 17:39:13 +08:00
function goTaskRight(id) {
2024-06-12 12:29:17 +08:00
// arr.find(item => item.id == id).type = "成功";
cot.value++;
Ipp(cot.value);
console.log(weekDates)
console.log(cot.value)
2024-06-07 17:39:13 +08:00
uni.showToast({
title: '成功',
//将值设置为 success 或者直接不用写icon这个参数
icon: 'success',
//显示持续时间为 2秒
duration: 2000
2024-06-08 18:49:58 +08:00
})
2024-06-07 17:39:13 +08:00
}
2024-06-04 21:40:25 +08:00
import {
ref,
reactive
} from "vue";
const count = ref("750");
2024-06-12 12:29:17 +08:00
let arr = ref([{
2024-06-04 21:40:25 +08:00
id: 1,
type: "立即签到",
title: "每日签到",
count: "+1",
content: {
title: "点击签到获得每日奖励 ",
count: "(" + "0",
cuent: "/" + "1" + ")"
},
},
{
id: 2,
type: "去关注",
title: "关注",
count: "+2",
content: {
title: "关注优秀用户得奖励 ",
count: "(" + "0",
cuent: "/" + "1" + ")"
},
},
{
id: 3,
type: "去点赞",
title: "点赞",
count: "+2",
content: {
title: "点赞话题获取奖励 ",
count: "(" + "0",
cuent: "/" + "3" + ")"
},
},
{
id: 4,
type: "去发布",
title: "发布话题",
count: "+3",
content: {
title: "点赞话题获取奖励 ",
count: "(" + "0",
cuent: "/" + "1" + ")"
},
},
{
id: 5,
type: "立即邀请",
title: "邀请新用户",
count: "+5",
content: {
title: "邀请新用户得奖励 ",
count: "",
cuent: ""
},
}
])
2024-06-12 12:29:17 +08:00
// conditons: (0 /1)
// content: "点击签到获得每日奖励"
// createBy: null
// createTime: null
// id: 1
// remark: null
// rewards: "1"
// title: "每日签到"
// type: "立即签到"
// updateBy: null
// updateTime: null
const leftParenthesis = ref("(")
const rightParenthesis = ref(")")
const slash = ref("/");
const acquiesce = ref("0");
/** 查询签到任务列表 */
function getList() {
listTask().then(response => {
arr.value = response.rows;
console.log(arr)
});
}
getList();
/** 查询签到详情列表 */
function getListsign() {
listSignTa().then(response => {
console.log("用户的信息"+response)
// console.log("SecurityUtils.getUserId();"+SecurityUtils.getUserId();)
});
}
getListsign();
2024-06-04 21:40:25 +08:00
</script>
<style scoped>
2024-06-08 18:49:58 +08:00
@import '@/pages/common/navbar/navbar.css';
2024-06-04 21:40:25 +08:00
.content-top {
/* height: 424rpx; */
height: 502rpx;
background: linear-gradient(-180deg, #c9f6f5, #ffffff);
}
.top {
margin-left: 32rpx;
margin-right: 32rpx;
}
.top-right-text>text {
font-weight: Regular;
/* width: 95rpx; */
height: 24rpx;
font-size: 24rpx;
text-align: left;
color: #000000;
float: right;
margin-top: 24rpx;
}
.top-left-text {
padding-top: 99rpx;
padding-left: 1rpx;
}
.top-left-text>text:first-child {
color: #000000;
font-weight: Regular;
font-face: Microsoft YaHei;
font-size: 48rpx;
text-align: left;
line-height: 46.29rpx;
}
.top-left-text>text:last-child {
color: #000000;
font-weight: Regular;
2024-06-12 12:29:17 +08:00
font-weight: 600;
2024-06-04 21:40:25 +08:00
font-face: Microsoft YaHei;
font-size: 28rpx;
text-align: left;
line-height: 46.29rpx;
}
.top-left>text {
display: block;
font-weight: Regular;
/* width: 119rpx; */
font-size: 24rpx;
text-align: left;
color: #6F6F6F;
padding-left: 1rpx;
line-height: 24rpx;
}
.right-image>image {
width: 248rpx;
height: 289rpx;
position: absolute;
top: 279rpx;
right: 32rpx;
z-index: 7;
}
.content-bottom {
width: 319rpx;
height: 60rpx;
border-radius: 20rpx 20rpx 0 0;
background: #ffffff;
margin-top: 48rpx;
}
.c-bottom {
padding-left: 26rpx;
padding-top: 8rpx;
}
.c-bottom>text:first-child {
color: #000000;
font-weight: Regular;
font-face: Microsoft YaHei;
font-size: 28rpx;
text-align: left;
line-height: 46.29rpx;
}
.text-1 {
color: #fa3939;
font-weight: Regular;
font-face: Microsoft YaHei;
font-size: 28rpx;
text-align: left;
line-height: 46.29rpx;
}
.content-bottom-bot {
position: relative;
/* width: 686rpx; */
height: 214rpx;
border-radius: 0 32rpx 32rpx 32rpx;
background: #ffffff;
z-index: 9;
}
.bot-text {
padding-left: 24rpx;
display: block;
/* padding-top: 12rpx; */
}
.bot-text>text {
font-weight: Regular;
width: 248rpx;
height: 24rpx;
font-size: 24rpx;
text-align: left;
color: #6F6F6F;
}
.task {
width: 686rpx;
/* height: 484rpx; */
border-radius: 32rpx 32rpx 32rpx 32rpx;
background: #ffffff;
/* background: #fa3939; */
margin-left: 32rpx;
margin-right: 32rpx;
margin-top: 24rpx;
}
.tasktext {
display: block;
font-weight: Regular;
width: 144rpx;
height: 36rpx;
font-size: 36rpx;
text-align: left;
color: #000000;
padding-top: 24rpx;
margin-left: 24rpx;
}
.task-content {
margin-left: 24rpx;
margin-top: 24rpx;
}
.task-right {
margin-top: 16rpx;
width: 120rpx;
height: 48rpx;
border-radius: 24rpx 24rpx 24rpx 24rpx;
background: #f99b46;
float: right;
margin-right: 24rpx;
}
.c-text {
font-weight: Regular;
width: 95rpx;
height: 24rpx;
font-size: 24rpx;
text-align: left;
color: #000000;
2024-06-12 12:29:17 +08:00
vertical-align: middle;
2024-06-04 21:40:25 +08:00
}
.count-text {
font-weight: Regular;
width: 20rpx;
height: 16rpx;
font-size: 20rpx;
text-align: left;
color: #F99B46;
padding-left: 3rpx;
line-height: 16rpx;
vertical-align: middle;
}
.task-right>text {
font-weight: Regular;
2024-06-12 12:29:17 +08:00
/* width: 95rpx; */
2024-06-04 21:40:25 +08:00
height: 25rpx;
font-size: 24rpx;
text-align: left;
color: #FFFFFF;
display: block;
margin: auto;
text-align: center;
line-height: 48rpx;
}
.task-left {
/* display: block; */
height: 20rpx;
}
.left-text {
2024-06-12 12:29:17 +08:00
display: inline;
2024-06-04 21:40:25 +08:00
color: #999999;
font-weight: Regular;
font-face: Microsoft YaHei;
font-size: 20rpx;
text-align: left;
/* margin-top: 12rpx; */
}
.left-0text {
color: #fb5c5c;
font-weight: Regular;
font-face: Microsoft YaHei;
font-size: 20rpx;
text-align: left;
}
2024-06-05 18:40:02 +08:00
.bottom {
margin-right: 32rpx;
margin-left: 32rpx;
margin-top: 24rpx;
}
.bottom-left {
width: 4rpx;
height: 30rpx;
border-radius: 2rpx 2rpx 2rpx 2rpx;
background: #f99b46;
float: left;
margin-top: 8rpx;
}
.bottom-text-s {
font-weight: Regular;
/* width: 123rpx; */
height: 31rpx;
font-size: 30rpx;
text-align: left;
color: #000000;
margin-left: 24rpx;
vertical-align: baseline;
}
.bottom-text-r {
float: right;
font-weight: Regular;
/* width: 47rpx; */
height: 24rpx;
line-height: 48rpx;
font-size: 24rpx;
text-align: left;
color: #999999;
2024-06-07 17:39:13 +08:00
vertical-align: middle;
margin-right: 32rpx;
2024-06-05 18:40:02 +08:00
}
.bottom-text-r>text {}
2024-06-07 17:39:13 +08:00
.data {
display: flex;
margin-left: 24rpx;
padding-left: 2rpx;
margin-top: 48rpx;
2024-06-12 12:29:17 +08:00
border-radius: 0 32rpx 32rpx 32rpx;
2024-06-07 17:39:13 +08:00
}
.data-view {
margin-right: 45rpx;
}
.data-image {
display: flex;
}
.data-image {
width: 42rpx;
height: 44rpx;
}
.data-text {
display: block;
font-weight: Regular;
width: 60rpx;
height: 22rpx;
font-size: 24rpx;
text-align: center;
vertical-align: middle;
color: #7E7E7E;
margin-left: -8rpx;
margin-top: 12rpx;
}
2024-06-04 21:40:25 +08:00
</style>