|
@@ -1,6 +1,5 @@
|
|
|
<template>
|
|
|
- <view>
|
|
|
- <view class="base-container">
|
|
|
+ <view class="base-container">
|
|
|
<member-level :treeData="treeData">
|
|
|
<view class="toogle" @click="handleShow">切换 {{name}}<up-icon class="icon" name="arrow-down" color="#fff"
|
|
|
size="12"></up-icon></view>
|
|
@@ -8,21 +7,24 @@
|
|
|
<view class="tree-cont">
|
|
|
<view class="tree-name">
|
|
|
<view>{{treeName}}</view>
|
|
|
- <image @click="handleEditName" class="edit-icon" :src="`${config.BASIC_IMG}img/edit-icon.png`"></image>
|
|
|
+ <image @click="handleEditName" class="edit-icon" :src="`${config.BASIC_IMG}img/edit-icon.png`">
|
|
|
+ </image>
|
|
|
</view>
|
|
|
<image class="drone-icon" :src="`${config.BASIC_IMG}img/treePage/drone-icon.png`"></image>
|
|
|
<view class="tool-wrap">
|
|
|
<view class="tool-left">
|
|
|
<view :class="['tool-item',item.className]" v-for="(item,index) in toolLeftList" :key="index"
|
|
|
@click="handleToolItem(item)">
|
|
|
- <image class="icon" :src="`${config.BASIC_IMG}img/treePage/l-tree-icon-${index+1}.png`"></image>
|
|
|
+ <image class="icon" :src="`${config.BASIC_IMG}img/treePage/l-tree-icon-${index+1}.png`">
|
|
|
+ </image>
|
|
|
<view class="name">{{item.name}}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="tool-right">
|
|
|
<view :class="['tool-item',item.className]" v-for="(item,index) in toolRightList" :key="index"
|
|
|
@click="handleToolItem(item)">
|
|
|
- <image class="icon" :src="`${config.BASIC_IMG}img/treePage/r-tree-icon-${index+1}.png`"></image>
|
|
|
+ <image class="icon" :src="`${config.BASIC_IMG}img/treePage/r-tree-icon-${index+1}.png`">
|
|
|
+ </image>
|
|
|
<view class="name">{{item.name}}</view>
|
|
|
</view>
|
|
|
</view>
|
|
@@ -32,14 +34,20 @@
|
|
|
<view class="footer-item" v-for="(item,index) in footerList" :key="index" @click="handleItem(index)">
|
|
|
<view @click="requestSubscribe">
|
|
|
<button class="share-btn" open-type="share" v-if="index === 2">
|
|
|
- <image class="icon" :src="`${config.BASIC_IMG}img/treePage/b-tree-icon-${index+1}.png`"></image>
|
|
|
+ <image class="icon" :src="`${config.BASIC_IMG}img/treePage/b-tree-icon-${index+1}.png`">
|
|
|
+ </image>
|
|
|
</button>
|
|
|
- <image v-else class="icon" :src="`${config.BASIC_IMG}img/treePage/b-tree-icon-${index+1}.png`"></image>
|
|
|
+ <image v-else class="icon" :src="`${config.BASIC_IMG}img/treePage/b-tree-icon-${index+1}.png`">
|
|
|
+ </image>
|
|
|
<view class="name">{{item}}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
- </view>
|
|
|
+ </view>
|
|
|
+ <!-- 引导弹窗 -->
|
|
|
+ <view class="guide-bg" v-if="showMask" @click="handleClose">
|
|
|
+ <image class="guide-icon" :src="`${config.BASIC_IMG}img/treePage/guide-1.png`"></image>
|
|
|
+ </view>
|
|
|
<!-- 切换 -->
|
|
|
<up-picker :show="showPicker" :columns="columns" :defaultIndex="[0]" @cancel="handleCancel"
|
|
|
@confirm="handleConfirm"></up-picker>
|
|
@@ -51,22 +59,26 @@
|
|
|
<posterPopup :showPoster="showPoster" :farmBuyId="farmBuyId" :treeName="treeName"></posterPopup>
|
|
|
<!-- 果树成功弹窗 -->
|
|
|
<guardSuccessPopup :show="showGuardSuccess"></guardSuccessPopup>
|
|
|
- <!-- 果树相册弹窗 -->
|
|
|
- <tree-album-popup :show="showAlbum" :farmBuyId="farmBuyId"></tree-album-popup>
|
|
|
+ <!-- 果树相册弹窗 -->
|
|
|
+ <tree-album-popup :show="showAlbum" :farmBuyId="farmBuyId"></tree-album-popup>
|
|
|
<!-- 等级升级成功弹窗 -->
|
|
|
<levelSuccessPopup></levelSuccessPopup>
|
|
|
<!-- 祝福弹窗 -->
|
|
|
- <blessingsPopup :show="showBlessingsPopup" :showSuccess="showSuccess" :farmBuyId="farmBuyId" :clockinType="clockinType" @clockinCallback="getBySampleId"></blessingsPopup>
|
|
|
- </view>
|
|
|
+ <blessingsPopup :show="showBlessingsPopup" :showSuccess="showSuccess" :farmBuyId="farmBuyId"
|
|
|
+ :clockinType="clockinType" @clockinCallback="getBySampleId"></blessingsPopup>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
import config from "@/api/config.js"
|
|
|
- import { onLoad ,onShareAppMessage} from '@dcloudio/uni-app'
|
|
|
+ import {
|
|
|
+ onLoad,
|
|
|
+ onShareAppMessage
|
|
|
+ } from '@dcloudio/uni-app'
|
|
|
import memberLevel from "./components/memberLevel.vue"
|
|
|
import treeAlbumPopup from "./components/treeAlbumPopup.vue"
|
|
|
import blessingsPopup from "./components/blessingsPopup.vue"
|
|
|
import TREE from '@/api/tree.js'
|
|
|
+ import USER from '@/api/user.js'
|
|
|
import {
|
|
|
ref,
|
|
|
reactive,
|
|
@@ -90,7 +102,7 @@
|
|
|
|
|
|
const toolLeftList = [{
|
|
|
name: "相册",
|
|
|
- clickName:'album'
|
|
|
+ clickName: 'album'
|
|
|
},
|
|
|
{
|
|
|
name: "日记",
|
|
@@ -99,7 +111,7 @@
|
|
|
{
|
|
|
name: "海报",
|
|
|
className: 'blue',
|
|
|
- clickName:'poster'
|
|
|
+ clickName: 'poster'
|
|
|
},
|
|
|
{
|
|
|
name: "礼物",
|
|
@@ -122,17 +134,17 @@
|
|
|
name: "动态",
|
|
|
className: 'dynamic',
|
|
|
path: 'dynamic',
|
|
|
- params:'farmBuyId'
|
|
|
+ params: 'farmBuyId'
|
|
|
}
|
|
|
]
|
|
|
-
|
|
|
+
|
|
|
const showGuardSuccess = ref(false)
|
|
|
-
|
|
|
+
|
|
|
const editNameRef = ref(null)
|
|
|
const formatDate = (dateStr) => {
|
|
|
- return dateStr.split(" ")[0].replace(/-/g, ".");
|
|
|
+ return dateStr.split(" ")[0].replace(/-/g, ".");
|
|
|
};
|
|
|
- const handleEditName = () =>{
|
|
|
+ const handleEditName = () => {
|
|
|
editNameRef.value.showPopup({
|
|
|
id: farmBuyId.value,
|
|
|
treeName: treeName.value,
|
|
@@ -141,40 +153,81 @@
|
|
|
createDate: formatDate(treeData.value.buyList[0].createDate),
|
|
|
})
|
|
|
}
|
|
|
-
|
|
|
- onLoad(({successTree})=>{
|
|
|
- if(successTree){
|
|
|
- showGuardSuccess.value = true
|
|
|
- }
|
|
|
+
|
|
|
+ onLoad(() => {
|
|
|
+ featchSessionStore()
|
|
|
+ featchIsLookedGuide()
|
|
|
getBySampleId()
|
|
|
})
|
|
|
-
|
|
|
+
|
|
|
+ const showMask = ref(false)
|
|
|
+ const featchIsLookedGuide = () => {
|
|
|
+ USER.isLookedGuide({
|
|
|
+ type: 1
|
|
|
+ }).then(({
|
|
|
+ data
|
|
|
+ }) => {
|
|
|
+ if (data == false) {
|
|
|
+ showMask.value = true
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ const handleClose = async () =>{
|
|
|
+ const {code} = await USER.lookedGuide({type:1})
|
|
|
+ if(code === 0){
|
|
|
+ showMask.value = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ const featchSessionStore = () => {
|
|
|
+ USER.getSessionStore({
|
|
|
+ key: 'successTree',
|
|
|
+ miniUserId: userInfo.id
|
|
|
+ }).then((({data}) => {
|
|
|
+ if (data?.val == 0) {
|
|
|
+ showGuardSuccess.value = true
|
|
|
+ USER.setSessionStore({
|
|
|
+ key: 'successTree',
|
|
|
+ miniUserId: userInfo.id
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }))
|
|
|
+ }
|
|
|
+
|
|
|
const treeData = ref({})
|
|
|
const farmBuyId = ref('')
|
|
|
const treeName = ref('')
|
|
|
const userInfo = uni.getStorageSync('userInfo')
|
|
|
- const getBySampleId = () =>{
|
|
|
- TREE.getBySampleId({sampleId:172055}).then(({data}) =>{
|
|
|
+ const getBySampleId = () => {
|
|
|
+ TREE.getBySampleId({
|
|
|
+ sampleId: 172055
|
|
|
+ }).then(({
|
|
|
+ data
|
|
|
+ }) => {
|
|
|
treeData.value = data || {}
|
|
|
- if(userInfo.tel){
|
|
|
- treeName.value = data.buyList[0].treeName || (data.buyList[0].nickname.length?data.buyList[0].nickname.slice(0, 3)+"荔": data.buyList[0].owner.slice(0, 3)+"荔")
|
|
|
- }else{
|
|
|
+ if (userInfo.tel) {
|
|
|
+ treeName.value = data.buyList[0].treeName || (data.buyList[0].nickname.length ? data.buyList[0]
|
|
|
+ .nickname.slice(0, 3) + "荔" : data.buyList[0].owner.slice(0, 3) + "荔")
|
|
|
+ } else {
|
|
|
treeName.value = '飞鸟守护'
|
|
|
}
|
|
|
farmBuyId.value = data.buyList[0].id
|
|
|
})
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
const showPoster = ref(false)
|
|
|
const showAlbum = ref(false)
|
|
|
const handleToolItem = ({
|
|
|
- path,clickName,params
|
|
|
+ path,
|
|
|
+ clickName,
|
|
|
+ params
|
|
|
}) => {
|
|
|
- if(clickName === 'album'){
|
|
|
+ if (clickName === 'album') {
|
|
|
showAlbum.value = !showAlbum.value
|
|
|
- }else if(clickName === 'poster'){
|
|
|
+ } else if (clickName === 'poster') {
|
|
|
showPoster.value = !showPoster.value
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
uni.navigateTo({
|
|
|
url: `/pages/tabBar/tree/subPages/${path}?farmBuyId=${farmBuyId.value}`
|
|
|
});
|
|
@@ -184,79 +237,105 @@
|
|
|
const showBlessingsPopup = ref(false)
|
|
|
const showSuccess = ref(false)
|
|
|
const clockinType = ref('1')
|
|
|
- const handleItem = (index) =>{
|
|
|
- if(index === 0){
|
|
|
+ const handleItem = (index) => {
|
|
|
+ if (index === 0) {
|
|
|
clockinType.value = 1
|
|
|
- if(treeData.value.buyList[0].level.clockinMap['1']){
|
|
|
+ if (treeData.value.buyList[0].level.clockinMap['1']) {
|
|
|
uni.showToast({
|
|
|
title: '今日已守护',
|
|
|
- icon:'none',
|
|
|
+ icon: 'none',
|
|
|
duration: 2000
|
|
|
});
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
showSuccess.value = !showSuccess.value
|
|
|
}
|
|
|
- }else if(index === 1){
|
|
|
+ } else if (index === 1) {
|
|
|
clockinType.value = 3
|
|
|
- if(treeData.value.buyList[0].level.clockinMap['3']){
|
|
|
+ if (treeData.value.buyList[0].level.clockinMap['3']) {
|
|
|
uni.showToast({
|
|
|
title: '今日已送过祝福',
|
|
|
- icon:'none',
|
|
|
+ icon: 'none',
|
|
|
duration: 2000
|
|
|
});
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
showBlessingsPopup.value = !showBlessingsPopup.value
|
|
|
}
|
|
|
- }else if(index === 2){
|
|
|
+ } else if (index === 2) {
|
|
|
clockinType.value = 2
|
|
|
- if(!treeData.value.buyList[0].level.clockinMap['2']){
|
|
|
+ if (!treeData.value.buyList[0].level.clockinMap['2']) {
|
|
|
showSuccess.value = !showSuccess.value
|
|
|
}
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
console.log('123')
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
function requestSubscribe() {
|
|
|
// #ifdef MP-WEIXIN
|
|
|
- //订阅模板
|
|
|
- TREE.getSubscribeTemplate({id:1}).then(({data}) =>{
|
|
|
- uni.requestSubscribeMessage({
|
|
|
- tmplIds: [data.templateId], // 模板ID
|
|
|
- success(res) {
|
|
|
- if (res[data.templateId] === 'accept') {
|
|
|
- TREE.addSubscribe({templateId:1})
|
|
|
- } else if (res[data.templateId] === 'reject') {
|
|
|
- console.log('用户拒绝订阅模板');
|
|
|
- }
|
|
|
- },
|
|
|
- fail(err) {
|
|
|
- uni.openSetting({
|
|
|
- withSubscriptions: true, // 显示订阅消息开关
|
|
|
- });
|
|
|
- },
|
|
|
- });
|
|
|
- })
|
|
|
+ //订阅模板
|
|
|
+ TREE.getSubscribeTemplate({
|
|
|
+ id: 1
|
|
|
+ }).then(({
|
|
|
+ data
|
|
|
+ }) => {
|
|
|
+ uni.requestSubscribeMessage({
|
|
|
+ tmplIds: [data.templateId], // 模板ID
|
|
|
+ success(res) {
|
|
|
+ if (res[data.templateId] === 'accept') {
|
|
|
+ TREE.addSubscribe({
|
|
|
+ templateId: 1
|
|
|
+ })
|
|
|
+ } else if (res[data.templateId] === 'reject') {
|
|
|
+ console.log('用户拒绝订阅模板');
|
|
|
+ }
|
|
|
+ },
|
|
|
+ fail(err) {
|
|
|
+ uni.openSetting({
|
|
|
+ withSubscriptions: true, // 显示订阅消息开关
|
|
|
+ });
|
|
|
+ },
|
|
|
+ });
|
|
|
+ })
|
|
|
// #endif
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
onShareAppMessage((res) => {
|
|
|
- if (res.from === 'button') {
|
|
|
- const params = {
|
|
|
- sampleId:treeData.value.buyList[0].sampleId,
|
|
|
- farmId:treeData.value.buyList[0].farmId,
|
|
|
- }
|
|
|
- return {
|
|
|
- title: '我分享了我的果树,快来查看吧~',
|
|
|
- path: `/pages/tabBar/tree/subPages/friendTree?params=${JSON.stringify(params)}`, // 分享的小程序页面路径
|
|
|
- imageUrl:`http://birdseye-api.feiniaotech.sysuimars.cn/mini/z_farm_buy/genImage/${farmBuyId.value}?key=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9&x1=25&y1=220&fontSize1=40&x2=55&y2=250&fontSize2=16×tamp=${Date.now()}`,
|
|
|
- }
|
|
|
- }
|
|
|
+ if (res.from === 'button') {
|
|
|
+ const params = {
|
|
|
+ sampleId: treeData.value.buyList[0].sampleId,
|
|
|
+ farmId: treeData.value.buyList[0].farmId,
|
|
|
+ }
|
|
|
+ return {
|
|
|
+ title: '我分享了我的果树,快来查看吧~',
|
|
|
+ path: `/pages/tabBar/tree/subPages/friendTree?params=${JSON.stringify(params)}`, // 分享的小程序页面路径
|
|
|
+ imageUrl: `http://birdseye-api.feiniaotech.sysuimars.cn/mini/z_farm_buy/genImage/${farmBuyId.value}?key=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9&x1=25&y1=220&fontSize1=40&x2=55&y2=250&fontSize2=16×tamp=${Date.now()}`,
|
|
|
+ }
|
|
|
+ }
|
|
|
})
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
- @import "@/static/style/mixin.scss";
|
|
|
+ @import "@/static/style/mixin.scss";
|
|
|
+ .guide-bg{
|
|
|
+ position: fixed;
|
|
|
+ top: 0;
|
|
|
+ width: 100%;
|
|
|
+ height: 107vh;
|
|
|
+ @include ossBg("treePage/guide-bg.png");
|
|
|
+ z-index: 999;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ .guide-icon{
|
|
|
+ width: 360rpx;
|
|
|
+ height: 236rpx
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /* #ifdef H5 */
|
|
|
+ .guide-bg{
|
|
|
+ height: 102vh;
|
|
|
+ }
|
|
|
+ /* #endif */
|
|
|
|
|
|
.base-container {
|
|
|
@include ossBg("tree-bg.png");
|
|
@@ -282,16 +361,17 @@
|
|
|
.tree-cont {
|
|
|
width: 100%;
|
|
|
margin-top: 10rpx;
|
|
|
- .tree-name{
|
|
|
+
|
|
|
+ .tree-name {
|
|
|
position: absolute;
|
|
|
- z-index: 2;
|
|
|
top: 60.45%;
|
|
|
left: calc(50% - 32rpx);
|
|
|
font-size: 22rpx;
|
|
|
font-family: 'SweiSpringCJKtc';
|
|
|
text-align: center;
|
|
|
width: 88rpx;
|
|
|
- .edit-icon{
|
|
|
+
|
|
|
+ .edit-icon {
|
|
|
width: 44rpx;
|
|
|
height: 44rpx;
|
|
|
margin-top: 14rpx;
|
|
@@ -394,10 +474,12 @@
|
|
|
.footer-item {
|
|
|
width: 18%;
|
|
|
text-align: center;
|
|
|
- .share-btn{
|
|
|
+
|
|
|
+ .share-btn {
|
|
|
background: transparent;
|
|
|
display: inline-flex;
|
|
|
- &::after{
|
|
|
+
|
|
|
+ &::after {
|
|
|
border: none;
|
|
|
}
|
|
|
}
|