|
@@ -1,10 +1,15 @@
|
|
<template>
|
|
<template>
|
|
- <view class="base-container">
|
|
|
|
|
|
+ <view>
|
|
|
|
+ <view class="base-container">
|
|
<member-level :treeData="treeData">
|
|
<member-level :treeData="treeData">
|
|
<view class="toogle" @click="handleShow">切换 {{name}}<up-icon class="icon" name="arrow-down" color="#fff"
|
|
<view class="toogle" @click="handleShow">切换 {{name}}<up-icon class="icon" name="arrow-down" color="#fff"
|
|
- size="12"></up-icon></view>
|
|
|
|
- </member-level>
|
|
|
|
- <view class="tree-cont">
|
|
|
|
|
|
+ size="12"></up-icon></view>
|
|
|
|
+ </member-level>
|
|
|
|
+ <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>
|
|
|
|
+ </view>
|
|
<image class="drone-icon" :src="`${config.BASIC_IMG}img/treePage/drone-icon.png`"></image>
|
|
<image class="drone-icon" :src="`${config.BASIC_IMG}img/treePage/drone-icon.png`"></image>
|
|
<view class="tool-wrap">
|
|
<view class="tool-wrap">
|
|
<view class="tool-left">
|
|
<view class="tool-left">
|
|
@@ -24,40 +29,43 @@
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="tree-footer">
|
|
<view class="tree-footer">
|
|
- <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>
|
|
|
|
- </button>
|
|
|
|
- <image v-else class="icon" :src="`${config.BASIC_IMG}img/treePage/b-tree-icon-${index+1}.png`"></image>
|
|
|
|
- <view class="name">{{item}}</view>
|
|
|
|
|
|
+ <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>
|
|
|
|
+ </button>
|
|
|
|
+ <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>
|
|
- </view>
|
|
|
|
|
|
+ </view>
|
|
<!-- 切换 -->
|
|
<!-- 切换 -->
|
|
<up-picker :show="showPicker" :columns="columns" :defaultIndex="[0]" @cancel="handleCancel"
|
|
<up-picker :show="showPicker" :columns="columns" :defaultIndex="[0]" @cancel="handleCancel"
|
|
@confirm="handleConfirm"></up-picker>
|
|
@confirm="handleConfirm"></up-picker>
|
|
|
|
+ <!-- 签到打卡 -->
|
|
|
|
+ <checkinPopup></checkinPopup>
|
|
<!-- 编辑树名称 -->
|
|
<!-- 编辑树名称 -->
|
|
- <editNamePopup></editNamePopup>
|
|
|
|
- <!-- 海报弹窗 -->
|
|
|
|
- <posterPopup :showPoster="showPoster" :farmBuyId="farmBuyId" :treeName="treeName"></posterPopup>
|
|
|
|
- <!-- 果树成功弹窗 -->
|
|
|
|
- <guardSuccessPopup :show="showGuardSuccess"></guardSuccessPopup>
|
|
|
|
- <!-- 果树相册弹窗 -->
|
|
|
|
- <tree-album-popup :show="showAlbum"></tree-album-popup>
|
|
|
|
- <!-- 等级升级成功弹窗 -->
|
|
|
|
- <levelSuccessPopup></levelSuccessPopup>
|
|
|
|
- <!-- 祝福弹窗 -->
|
|
|
|
|
|
+ <editNamePopup ref="editNameRef" @editEnd="getBySampleId"></editNamePopup>
|
|
|
|
+ <!-- 海报弹窗 -->
|
|
|
|
+ <posterPopup :showPoster="showPoster" :farmBuyId="farmBuyId" :treeName="treeName"></posterPopup>
|
|
|
|
+ <!-- 果树成功弹窗 -->
|
|
|
|
+ <guardSuccessPopup :show="showGuardSuccess"></guardSuccessPopup>
|
|
|
|
+ <!-- 果树相册弹窗 -->
|
|
|
|
+ <tree-album-popup :show="showAlbum" :farmBuyId="farmBuyId"></tree-album-popup>
|
|
|
|
+ <!-- 等级升级成功弹窗 -->
|
|
|
|
+ <levelSuccessPopup></levelSuccessPopup>
|
|
|
|
+ <!-- 祝福弹窗 -->
|
|
<blessingsPopup :show="showBlessingsPopup" :showSuccess="showSuccess" :farmBuyId="farmBuyId" :clockinType="clockinType" @clockinCallback="getBySampleId"></blessingsPopup>
|
|
<blessingsPopup :show="showBlessingsPopup" :showSuccess="showSuccess" :farmBuyId="farmBuyId" :clockinType="clockinType" @clockinCallback="getBySampleId"></blessingsPopup>
|
|
|
|
+ </view>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
- import config from "@/api/config.js"
|
|
|
|
|
|
+ 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 memberLevel from "./components/memberLevel.vue"
|
|
|
|
+ import treeAlbumPopup from "./components/treeAlbumPopup.vue"
|
|
|
|
+ import blessingsPopup from "./components/blessingsPopup.vue"
|
|
import TREE from '@/api/tree.js'
|
|
import TREE from '@/api/tree.js'
|
|
import {
|
|
import {
|
|
ref,
|
|
ref,
|
|
@@ -78,19 +86,19 @@
|
|
const handleConfirm = (e) => {
|
|
const handleConfirm = (e) => {
|
|
name.value = e.value[0]
|
|
name.value = e.value[0]
|
|
handleCancel()
|
|
handleCancel()
|
|
- }
|
|
|
|
|
|
+ }
|
|
|
|
|
|
const toolLeftList = [{
|
|
const toolLeftList = [{
|
|
- name: "相册",
|
|
|
|
|
|
+ name: "相册",
|
|
clickName:'album'
|
|
clickName:'album'
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- name: "日记",
|
|
|
|
|
|
+ name: "日记",
|
|
path: 'diary'
|
|
path: 'diary'
|
|
},
|
|
},
|
|
{
|
|
{
|
|
name: "海报",
|
|
name: "海报",
|
|
- className: 'blue',
|
|
|
|
|
|
+ className: 'blue',
|
|
clickName:'poster'
|
|
clickName:'poster'
|
|
},
|
|
},
|
|
{
|
|
{
|
|
@@ -113,123 +121,137 @@
|
|
{
|
|
{
|
|
name: "动态",
|
|
name: "动态",
|
|
className: 'dynamic',
|
|
className: 'dynamic',
|
|
- path: 'dynamic',
|
|
|
|
|
|
+ path: 'dynamic',
|
|
params:'farmBuyId'
|
|
params:'farmBuyId'
|
|
}
|
|
}
|
|
- ]
|
|
|
|
-
|
|
|
|
- const showGuardSuccess = ref(false)
|
|
|
|
-
|
|
|
|
- onLoad(({successTree})=>{
|
|
|
|
- if(successTree){
|
|
|
|
- showGuardSuccess.value = true
|
|
|
|
- }
|
|
|
|
- getBySampleId()
|
|
|
|
- })
|
|
|
|
-
|
|
|
|
- const treeData = ref({})
|
|
|
|
- const farmBuyId = ref('')
|
|
|
|
- const treeName = ref('')
|
|
|
|
- const userInfo = uni.getStorageSync('userInfo')
|
|
|
|
- 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{
|
|
|
|
- treeName.value = '飞鸟守护'
|
|
|
|
- }
|
|
|
|
- farmBuyId.value = data.buyList[0].id
|
|
|
|
- })
|
|
|
|
|
|
+ ]
|
|
|
|
+
|
|
|
|
+ const showGuardSuccess = ref(false)
|
|
|
|
+
|
|
|
|
+ const editNameRef = ref(null)
|
|
|
|
+ const formatDate = (dateStr) => {
|
|
|
|
+ return dateStr.split(" ")[0].replace(/-/g, ".");
|
|
|
|
+ };
|
|
|
|
+ const handleEditName = () =>{
|
|
|
|
+ editNameRef.value.showPopup({
|
|
|
|
+ id: farmBuyId.value,
|
|
|
|
+ treeName: treeName.value,
|
|
|
|
+ nickname: treeData.value.buyList[0].nickname,
|
|
|
|
+ showName: treeData.value.buyList[0].showName,
|
|
|
|
+ createDate: formatDate(treeData.value.buyList[0].createDate),
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ onLoad(({successTree})=>{
|
|
|
|
+ if(successTree){
|
|
|
|
+ showGuardSuccess.value = true
|
|
|
|
+ }
|
|
|
|
+ getBySampleId()
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ const treeData = ref({})
|
|
|
|
+ const farmBuyId = ref('')
|
|
|
|
+ const treeName = ref('')
|
|
|
|
+ const userInfo = uni.getStorageSync('userInfo')
|
|
|
|
+ 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{
|
|
|
|
+ treeName.value = '飞鸟守护'
|
|
|
|
+ }
|
|
|
|
+ farmBuyId.value = data.buyList[0].id
|
|
|
|
+ })
|
|
}
|
|
}
|
|
-
|
|
|
|
- const showPoster = ref(false)
|
|
|
|
|
|
+
|
|
|
|
+ const showPoster = ref(false)
|
|
const showAlbum = ref(false)
|
|
const showAlbum = ref(false)
|
|
const handleToolItem = ({
|
|
const handleToolItem = ({
|
|
path,clickName,params
|
|
path,clickName,params
|
|
- }) => {
|
|
|
|
- if(clickName === 'album'){
|
|
|
|
- showAlbum.value = !showAlbum.value
|
|
|
|
- }else if(clickName === 'poster'){
|
|
|
|
- showPoster.value = !showPoster.value
|
|
|
|
- }else{
|
|
|
|
|
|
+ }) => {
|
|
|
|
+ if(clickName === 'album'){
|
|
|
|
+ showAlbum.value = !showAlbum.value
|
|
|
|
+ }else if(clickName === 'poster'){
|
|
|
|
+ showPoster.value = !showPoster.value
|
|
|
|
+ }else{
|
|
uni.navigateTo({
|
|
uni.navigateTo({
|
|
url: `/pages/tabBar/tree/subPages/${path}?farmBuyId=${farmBuyId.value}`
|
|
url: `/pages/tabBar/tree/subPages/${path}?farmBuyId=${farmBuyId.value}`
|
|
});
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- const footerList = ["每日阳光", "送ta祝福", "分享转发", "水果订购"]
|
|
|
|
- const showBlessingsPopup = ref(false)
|
|
|
|
- const showSuccess = ref(false)
|
|
|
|
- const clockinType = ref('1')
|
|
|
|
- const handleItem = (index) =>{
|
|
|
|
- if(index === 0){
|
|
|
|
- clockinType.value = 1
|
|
|
|
- if(treeData.value.buyList[0].level.clockinMap['1']){
|
|
|
|
- uni.showToast({
|
|
|
|
- title: '今日已守护',
|
|
|
|
- icon:'none',
|
|
|
|
- duration: 2000
|
|
|
|
- });
|
|
|
|
- }else{
|
|
|
|
- showSuccess.value = !showSuccess.value
|
|
|
|
- }
|
|
|
|
- }else if(index === 1){
|
|
|
|
- clockinType.value = 3
|
|
|
|
- if(treeData.value.buyList[0].level.clockinMap['3']){
|
|
|
|
- uni.showToast({
|
|
|
|
- title: '今日已送过祝福',
|
|
|
|
- icon:'none',
|
|
|
|
- duration: 2000
|
|
|
|
- });
|
|
|
|
- }else{
|
|
|
|
- showBlessingsPopup.value = !showBlessingsPopup.value
|
|
|
|
- }
|
|
|
|
- }else if(index === 2){
|
|
|
|
- clockinType.value = 2
|
|
|
|
- if(!treeData.value.buyList[0].level.clockinMap['2']){
|
|
|
|
- showSuccess.value = !showSuccess.value
|
|
|
|
- }
|
|
|
|
- }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, // 显示订阅消息开关
|
|
|
|
- });
|
|
|
|
- },
|
|
|
|
- });
|
|
|
|
- })
|
|
|
|
- // #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()}`,
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ const footerList = ["每日阳光", "送ta祝福", "分享转发", "水果订购"]
|
|
|
|
+ const showBlessingsPopup = ref(false)
|
|
|
|
+ const showSuccess = ref(false)
|
|
|
|
+ const clockinType = ref('1')
|
|
|
|
+ const handleItem = (index) =>{
|
|
|
|
+ if(index === 0){
|
|
|
|
+ clockinType.value = 1
|
|
|
|
+ if(treeData.value.buyList[0].level.clockinMap['1']){
|
|
|
|
+ uni.showToast({
|
|
|
|
+ title: '今日已守护',
|
|
|
|
+ icon:'none',
|
|
|
|
+ duration: 2000
|
|
|
|
+ });
|
|
|
|
+ }else{
|
|
|
|
+ showSuccess.value = !showSuccess.value
|
|
|
|
+ }
|
|
|
|
+ }else if(index === 1){
|
|
|
|
+ clockinType.value = 3
|
|
|
|
+ if(treeData.value.buyList[0].level.clockinMap['3']){
|
|
|
|
+ uni.showToast({
|
|
|
|
+ title: '今日已送过祝福',
|
|
|
|
+ icon:'none',
|
|
|
|
+ duration: 2000
|
|
|
|
+ });
|
|
|
|
+ }else{
|
|
|
|
+ showBlessingsPopup.value = !showBlessingsPopup.value
|
|
|
|
+ }
|
|
|
|
+ }else if(index === 2){
|
|
|
|
+ clockinType.value = 2
|
|
|
|
+ if(!treeData.value.buyList[0].level.clockinMap['2']){
|
|
|
|
+ showSuccess.value = !showSuccess.value
|
|
|
|
+ }
|
|
|
|
+ }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, // 显示订阅消息开关
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ });
|
|
|
|
+ })
|
|
|
|
+ // #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()}`,
|
|
|
|
+ }
|
|
|
|
+ }
|
|
})
|
|
})
|
|
</script>
|
|
</script>
|
|
|
|
|
|
@@ -260,6 +282,21 @@
|
|
.tree-cont {
|
|
.tree-cont {
|
|
width: 100%;
|
|
width: 100%;
|
|
margin-top: 10rpx;
|
|
margin-top: 10rpx;
|
|
|
|
+ .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{
|
|
|
|
+ width: 44rpx;
|
|
|
|
+ height: 44rpx;
|
|
|
|
+ margin-top: 14rpx;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
.drone-icon {
|
|
.drone-icon {
|
|
width: 376rpx;
|
|
width: 376rpx;
|
|
@@ -356,13 +393,13 @@
|
|
|
|
|
|
.footer-item {
|
|
.footer-item {
|
|
width: 18%;
|
|
width: 18%;
|
|
- text-align: center;
|
|
|
|
- .share-btn{
|
|
|
|
- background: transparent;
|
|
|
|
- display: inline-flex;
|
|
|
|
- &::after{
|
|
|
|
- border: none;
|
|
|
|
- }
|
|
|
|
|
|
+ text-align: center;
|
|
|
|
+ .share-btn{
|
|
|
|
+ background: transparent;
|
|
|
|
+ display: inline-flex;
|
|
|
|
+ &::after{
|
|
|
|
+ border: none;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
.icon {
|
|
.icon {
|