From fc4b4c1af6cf1dd54907228e3554262e781842f2 Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Thu, 10 Feb 2022 08:24:10 +0800
Subject: [PATCH] 能量树
---
pages/shengzs/index.vue | 177 +++++++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 129 insertions(+), 48 deletions(-)
diff --git a/pages/shengzs/index.vue b/pages/shengzs/index.vue
index ec94c77..6857573 100644
--- a/pages/shengzs/index.vue
+++ b/pages/shengzs/index.vue
@@ -10,8 +10,12 @@
<!-- 树、水滴值 -->
<view class="tree">
- <view v-for="(o, i) in rainArr" :key="i" :class="['rain rain-'+ stages]" @click="rainFun(i, o)">{{o}}<text>g</text></view>
- <image :src="'../../static/shenzs/img/tree-'+ stages +'.png'" :class="['tree-'+ stages, treemove ? 'move-'+ stages : '']" hover-class="none" @click="tree"></image>
+ <view v-for="(o, i) in rainArr" :key="i" :class="['rain rain-'+ 1]" @click="rainFun(o.id, o.num)">
+ {{o.num}}<text>g</text>
+ </view>
+ <image :src="'../../static/shenzs/img/tree-'+ stages +'.png'"
+ :class="['tree-'+ stages, treemove ? 'move-'+ stages : '']" hover-class="none" @click="tree">
+ </image>
</view>
<!-- 水壶、浇水动画 -->
@@ -45,25 +49,17 @@
<!-- 树成长进度 -->
<view class="speed">
<view class="progress">
- <image class="speed-1" :src="'../../static/shenzs/img/speed-1'+ [1 == stages ? '-h' : ''] +'.png'"></image>
- <image class="speed-2" :src="'../../static/shenzs/img/speed-2'+ [2 == stages ? '-h' : ''] +'.png'"></image>
- <image class="speed-3" :src="'../../static/shenzs/img/speed-3'+ [3 == stages ? '-h' : ''] +'.png'"></image>
+ <image class="speed-1"
+ :src="'../../static/shenzs/img/speed-1'+ [1 == stages ? '-h' : ''] +'.png'"></image>
+ <image class="speed-2"
+ :src="'../../static/shenzs/img/speed-2'+ [2 == stages ? '-h' : ''] +'.png'"></image>
+ <image class="speed-3"
+ :src="'../../static/shenzs/img/speed-3'+ [3 == stages ? '-h' : ''] +'.png'"></image>
</view>
</view>
</view>
</view>
-
- <view class="explain">
- <!-- <view>功能概述:</view>
- <view class="text">该插件样式主要是模仿蚂蚁森林,其中的数据都是可配的(完全可以自义定 或 从后端API获取),根据不同的数据(如用户信息、水滴值等)显示对应的动效。</view> -->
- <view>操作说明:</view>
- <view class="text">1、用水壶每浇水1次,水滴值向上+1。</view>
- <view class="text">2、点击树上面的雨滴,水滴值 + 收取到的雨滴值。</view>
- <view>成长说明:</view>
- <view class="text">1、树的成长过程分为小树、中树、大树3个阶段。</view>
- <view class="text">2、现默认值: 小树(水滴值在100以下), 中树(水滴值在100 到 1000), 大树(水滴值在1000以上)。</view>
- <view class="text">3、树苗会在水滴值变化时会展示对应的动效 和 树的动效、大小等。</view>
- </view>
+
</view>
</template>
@@ -73,30 +69,37 @@
data() {
return {
info: {
- name: '沐枫', // 用户姓名
- sex: 2, // 用户姓别 1男, 2女
- votes: 8, // 水滴值 默认为8
- avatar: '../../static/shenzs/img/detail-bg.jpg' //用户头像
+ name: '沐枫', // 用户姓名
+ sex: 2, // 用户姓别 1男, 2女
+ votes: 9, // 水滴值 默认为8
+ avatar: '../../static/shenzs/img/detail-bg.jpg' //用户头像
},
- rainArr: [28, 63, 5, 902], // 雨滴值 点击收取
+ rainArr: [28, 63, 5, 902], // 雨滴值 点击收取
+ numberone: 1,
+ stages: 1, // 成长阶段 1(小树[默认]),中2(中树) ,大3(大树)
+ during: 1, // 阶段阈值 1、小树[100以下](during > votes ) ,2、中树[100及以上 并且小于1000](during <= votes && oldest > votes)
+ fristD: 100, //中树阶层
+ secondD: 1500, //大树阶层
+ //oldest: 1000, // 阶段阈值 3、大树[1000及以上](oldest <= votes )
+ plussNum: 1, // 加值数量(默认1)
- stages: 1, // 成长阶段 1(小树[默认]),中2(中树) ,大3(大树)
- during: 100, // 阶段阈值 1、小树[100以下](during > votes ) ,2、中树[100及以上 并且小于1000](during <= votes && oldest > votes)
- oldest: 1000, // 阶段阈值 3、大树[1000及以上](oldest <= votes )
- plussNum: 1, // 加值数量(默认1)
-
- pluss: false, // 水滴值+1动画开关
- movetree: true, // 树动画开关
- treemove: false, // 树大小动画类型开关
- wateroff: true, // 浇水动画开关
- watercss: false, // 水壶动画开关
- waterdom: false // 水滴动画开关
+ pluss: false, // 水滴值+1动画开关
+ movetree: true, // 树动画开关
+ treemove: false, // 树大小动画类型开关
+ wateroff: true, // 浇水动画开关
+ watercss: false, // 水壶动画开关
+ waterdom: false // 水滴动画开关
};
+ },
+ onLoad() {
+ this.getNowRain();
+ this.getNowAnergy();
+ this.getUser();
},
methods: {
// 设置树的大小,恢复动画
- setTree(time = 4000) {
+ setTree(time = 1000) {
setTimeout(() => {
this.plussNum = 1;
this.pluss = false;
@@ -104,17 +107,17 @@
this.watercss = false;
this.treemove = false;
// 小树阶段
- if (this.during > this.info.vote) {
+ if (this.during > this.fristD) {
this.stages = 1;
- };
+ }
// 中树阶段
- if (this.during <= this.info.votes && this.oldest > this.info.votes) {
+ if (this.during < this.secondD && this.during >= this.fristD) {
this.stages = 2;
- };
+ }
// 大树阶段
- if (this.oldest <= this.info.votes) {
+ if (this.during >= this.secondD) {
this.stages = 3;
- };
+ }
}, time);
},
@@ -127,13 +130,32 @@
// 收取雨滴的动画
rainFun(i, o) {
- this.plussNum = o;
- this.info.votes = Number(this.info.votes) + (o - 0);
- this.pluss = true;
- this.treemove = true;
- setTimeout(() => {
- this.rainArr.splice(i, 1);
- }, 1000);
+ //值
+ // this.plussNum = o;
+ // this.info.votes = Number(this.info.votes) + (o - 0);
+ // this.pluss = true;
+ // this.treemove = true;
+ var that = this;
+ console.log(that.number)
+ uni.request({
+ url: that.$store.state.piAPI + 'energy/updateEnergyIds',
+ method: 'POST',
+ data: {
+ id: i, // id
+ identification: that.$store.state.UserData.user_id, //用户
+ num: o, // 值
+ },
+ success: (res) => {
+ this.info.votes = Number(this.info.votes) + (o);
+ this.pluss = true;
+ this.treemove = true;
+ setTimeout(() => {
+ //this.rainArr.splice(i, 1);
+ this.getNowRain();
+ this.getNowAnergy();
+ }, 1000);
+ }
+ });
this.setTree(2000);
},
@@ -160,7 +182,8 @@
}, 1500);
setTimeout(() => {
- this.info.votes++;
+ //this.info.votes++;
+ this.getTre();
this.pluss = true;
this.treemove = true;
this.movetree = false;
@@ -173,6 +196,64 @@
this.setTree();
};
+ },
+ //获取当前漂浮雨量
+ getNowRain() {
+ this.rainArr = [];
+ var that = this;
+ uni.request({
+ url: that.$store.state.piAPI + 'energy/list',
+ method: 'GET',
+ data: {
+ type: 1,
+ identification: that.$store.state.UserData.user_id
+ },
+ success: (res) => {
+ const data = res.data.data.records;
+ for (let k in data) {
+ this.rainArr.push({
+ id: +data[k].id,
+ identification: +data[k].identification,
+ num: +data[k].num,
+ });
+ }
+ }
+ });
+ },
+ //获取当前树能量
+ getNowAnergy() {
+ var that = this;
+ uni.request({
+ url: that.$store.state.piAPI + 'energyTree/selectNum',
+ method: 'GET',
+ data: {
+ identification: that.$store.state.UserData.user_id
+ },
+ success: (res) => {
+ that.during = res.data.data;
+ that.info.votes = res.data.data;
+ }
+ });
+ this.setTree();
+ },
+ //浇水
+ getTre() {
+ var that = this;
+ uni.request({
+ url: that.$store.state.piAPI + 'energy/updateTre',
+ method: 'POST',
+ data: {
+ identification: that.$store.state.UserData.user_id
+ },
+ success: (res) => {
+ that.during = res.data.data;
+ that.info.votes = res.data.data;
+ }
+ });
+ },
+ getUser() {
+ var that = this
+ this.info.name = that.$store.state.UserData.user_name
}
}
};
--
Gitblit v1.9.3