From 1c1ef34afe2b7df922743e776a82a38adb6d9061 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Tue, 21 Oct 2025 09:17:41 +0800 Subject: [PATCH] =?UTF-8?q?feat(dealer):=20=E6=9B=B4=E6=96=B0=E5=88=86?= =?UTF-8?q?=E9=94=80=E5=95=86=E9=A1=B5=E9=9D=A2=E5=8A=9F=E8=83=BD=E4=B8=8E?= =?UTF-8?q?UI=E4=BC=98=E5=8C=96-=20=E4=BF=AE=E6=94=B9=E5=88=86=E4=BA=AB?= =?UTF-8?q?=E6=A0=87=E9=A2=98=E4=BB=8E"=E7=BD=91=E5=AE=BF=E5=B0=8F?= =?UTF-8?q?=E5=BA=97"=E4=B8=BA"=E5=94=90=E4=B9=9D=E8=BF=90=E5=94=AE?= =?UTF-8?q?=E7=94=B5=E4=BA=91"=20-=20=E8=B0=83=E6=95=B4=E5=95=86=E5=93=81?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=86=85=E8=BE=B9=E8=B7=9D=E4=BB=8E=20py-3?= =?UTF-8?q?=20=E5=88=B0=20py-1-=20=E5=9C=A8=E8=B4=AD=E7=89=A9=E8=BD=A6?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E6=9B=B4=E6=96=B0=E5=88=86=E4=BA=AB=E6=A0=87?= =?UTF-8?q?=E9=A2=98=E4=B8=BA"=E5=94=90=E4=B9=9D=E8=BF=90=E5=94=AE?= =?UTF-8?q?=E7=94=B5=E4=BA=91"=20-=20=E6=89=A9=E5=B1=95=E7=BD=91=E7=AB=99?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E6=A8=A1=E5=9E=8B=E5=A2=9E=E5=8A=A0=20Notice?= =?UTF-8?q?Bar=20=E5=AD=97=E6=AE=B5=20-=E4=B8=BA=E7=BB=8F=E9=94=80?= =?UTF-8?q?=E5=95=86=E7=94=A8=E6=88=B7=E6=A8=A1=E5=9E=8B=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=20dealerName=E3=80=81dealerPhone=20=E5=92=8C=20dealerAvatar=20?= =?UTF-8?q?=E5=AD=97=E6=AE=B5-=20=E5=BC=95=E5=85=A5=E4=BA=8C=E7=BB=B4?= =?UTF-8?q?=E7=A0=81=E5=9B=BE=E6=A0=87=E6=9B=BF=E6=8D=A2=E5=8E=9F=E6=9C=89?= =?UTF-8?q?=E5=9B=BE=E6=A0=87-=20=E6=96=B0=E5=A2=9E=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=8E=A8=E8=8D=90=E4=BA=BA=E4=BF=A1=E6=81=AF=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E5=B9=B6=E5=B1=95=E7=A4=BA=E6=8E=A8=E8=8D=90=E4=BA=BA=E8=AF=A6?= =?UTF-8?q?=E6=83=85=20-=20=E9=A6=96=E9=A1=B5=E6=96=B0=E5=A2=9E=E5=85=AC?= =?UTF-8?q?=E5=91=8A=E6=A0=8F=E7=BB=84=E4=BB=B6=E6=98=BE=E7=A4=BA=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E7=9A=84=E9=80=9A=E7=9F=A5=E5=86=85=E5=AE=B9=20-=20?= =?UTF-8?q?=E5=95=86=E5=93=81=E8=AF=A6=E6=83=85=E9=A1=B5=E5=88=86=E4=BA=AB?= =?UTF-8?q?=E6=A0=87=E9=A2=98=E5=90=8C=E6=AD=A5=E6=9B=B4=E6=96=B0=E4=B8=BA?= =?UTF-8?q?"=E5=94=90=E4=B9=9D=E8=BF=90=E5=94=AE=E7=94=B5=E4=BA=91"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/cms/cmsWebsiteField/model/index.ts | 1 + src/api/shop/shopDealerUser/model/index.ts | 3 ++ src/dealer/index.tsx | 44 ++++++++++++++++------ src/pages/cart/cart.tsx | 4 +- src/pages/index/BestSellers.tsx | 4 +- src/pages/index/index.tsx | 14 +++++-- src/shop/goodsDetail/index.tsx | 2 +- 7 files changed, 53 insertions(+), 19 deletions(-) diff --git a/src/api/cms/cmsWebsiteField/model/index.ts b/src/api/cms/cmsWebsiteField/model/index.ts index d3aaaf2..dc104f6 100644 --- a/src/api/cms/cmsWebsiteField/model/index.ts +++ b/src/api/cms/cmsWebsiteField/model/index.ts @@ -55,4 +55,5 @@ export interface Config { email?: string; loginTitle?: string; sysLogo?: string; + NoticeBar?: string; } diff --git a/src/api/shop/shopDealerUser/model/index.ts b/src/api/shop/shopDealerUser/model/index.ts index 2af5f3f..9ac7ec4 100644 --- a/src/api/shop/shopDealerUser/model/index.ts +++ b/src/api/shop/shopDealerUser/model/index.ts @@ -22,6 +22,9 @@ export interface ShopDealerUser { totalMoney?: string; // 推荐人用户ID refereeId?: number; + dealerName?: string; + dealerPhone?: string; + dealerAvatar?: string; // 成员数量(一级) firstNum?: number; // 成员数量(二级) diff --git a/src/dealer/index.tsx b/src/dealer/index.tsx index 6862840..4d5b7f5 100644 --- a/src/dealer/index.tsx +++ b/src/dealer/index.tsx @@ -1,18 +1,20 @@ -import React from 'react' +import React, {useState, useEffect} from 'react' import {View, Text} from '@tarojs/components' import {ConfigProvider, Button, Grid, Avatar} from '@nutui/nutui-react-taro' import { User, Shopping, - Dongdong, + QrCode, ArrowRight, Purse, People } from '@nutui/icons-react-taro' import {useDealerUser} from '@/hooks/useDealerUser' -import { useThemeStyles } from '@/hooks/useTheme' +import {useThemeStyles} from '@/hooks/useTheme' import {businessGradients, cardGradients, gradientUtils} from '@/styles/gradients' import Taro from '@tarojs/taro' +import {getShopDealerRefereeByUserId} from "@/api/shop/shopDealerReferee"; +import {ShopDealerUser} from "@/api/shop/shopDealerUser/model"; const DealerIndex: React.FC = () => { const { @@ -20,6 +22,7 @@ const DealerIndex: React.FC = () => { error, refresh, } = useDealerUser() + const [dealer, setDealer] = useState() // 使用主题样式 const themeStyles = useThemeStyles() @@ -53,7 +56,16 @@ const DealerIndex: React.FC = () => { return userTheme.background } - console.log(getGradientBackground(),'getGradientBackground()') + + // 初始化当前用户名称 + useEffect(() => { + getShopDealerRefereeByUserId(Taro.getStorageSync('UserId')).then((data) => { + setDealer(data); + }) + }, [dealerUser]) + + + console.log(getGradientBackground(), 'getGradientBackground()') if (error) { return ( @@ -101,8 +113,7 @@ const DealerIndex: React.FC = () => { }} /> - + {dealerUser?.realName || '分销商'} { {formatMoney(dealerUser.money)} - 可提现 + 可提现 { {formatMoney(dealerUser.freezeMoney)} - 冻结中 + 冻结中 { {formatMoney(dealerUser.totalMoney)} - 累计收益 + 累计收益 @@ -225,7 +236,7 @@ const DealerIndex: React.FC = () => { - navigateToPage('/dealer/team/index')}> + navigateToPage('/pages/user/user')}> @@ -236,7 +247,7 @@ const DealerIndex: React.FC = () => { navigateToPage('/dealer/qrcode/index')}> - + @@ -284,6 +295,17 @@ const DealerIndex: React.FC = () => { {/**/} + + 我的推荐人 + + + + {dealer?.dealerName} + Taro.makePhoneCall({phoneNumber: `${dealer?.dealerPhone}`})}>{dealer?.dealerPhone} + + + {/* 底部安全区域 */} diff --git a/src/pages/cart/cart.tsx b/src/pages/cart/cart.tsx index 7a48947..5af2b1a 100644 --- a/src/pages/cart/cart.tsx +++ b/src/pages/cart/cart.tsx @@ -41,13 +41,13 @@ function Cart() { useShareTimeline(() => { return { - title: '购物车 - 网宿小店' + title: '购物车 - 唐九运售电云' }; }); useShareAppMessage(() => { return { - title: '购物车 - 网宿小店', + title: '购物车 - 唐九运售电云', success: function () { console.log('分享成功'); }, diff --git a/src/pages/index/BestSellers.tsx b/src/pages/index/BestSellers.tsx index 8e14c48..a2fef2e 100644 --- a/src/pages/index/BestSellers.tsx +++ b/src/pages/index/BestSellers.tsx @@ -86,7 +86,7 @@ const BestSellers = () => { // 分享到朋友圈 useShareTimeline(() => { return { - title: `${goods?.name || '精选商品'} - 网宿小店`, + title: `${goods?.name || '精选商品'} - 唐九运售电云`, path: `/shop/goodsDetail/index?id=${goods?.goodsId}`, imageUrl: goods?.image }; @@ -94,7 +94,7 @@ const BestSellers = () => { return ( <> - + {list?.map((item, index) => { return ( diff --git a/src/pages/index/index.tsx b/src/pages/index/index.tsx index 82ddb1d..65b103a 100644 --- a/src/pages/index/index.tsx +++ b/src/pages/index/index.tsx @@ -4,28 +4,31 @@ import Taro from '@tarojs/taro'; import {useShareAppMessage, useShareTimeline} from "@tarojs/taro" import {useEffect, useState} from "react"; import {getShopInfo} from "@/api/layout"; -import {Sticky} from '@nutui/nutui-react-taro' +import {Sticky, NoticeBar} from '@nutui/nutui-react-taro' import {View} from '@tarojs/components' import Menu from "./Menu"; import Banner from "./Banner"; import './index.scss' import Grid from "@/pages/index/Grid"; import PopUpAd from "@/pages/index/PopUpAd"; +import {configWebsiteField} from "@/api/cms/cmsWebsiteField"; +import type {Config} from "@/api/cms/cmsWebsiteField/model"; function Home() { // 吸顶状态 const [stickyStatus, setStickyStatus] = useState(false) + const [config, setConfig] = useState() useShareTimeline(() => { return { - title: '网宿小店 - 网宿软件', + title: '唐九运售电云 - 网宿软件', path: `/pages/index/index` }; }); useShareAppMessage(() => { return { - title: '网宿小店 - 网宿软件', + title: '唐九运售电云 - 网宿软件', path: `/pages/index/index`, success: function () { console.log('分享成功'); @@ -83,6 +86,10 @@ function Home() { // 获取站点信息 getShopInfo().then(() => { + }) + // 获取配置信息 + configWebsiteField({}).then(data => { + setConfig(data) }) // Taro.getSetting:获取用户的当前设置。返回值中只会出现小程序已经向用户请求过的权限。 Taro.getSetting({ @@ -115,6 +122,7 @@ function Home() { + diff --git a/src/shop/goodsDetail/index.tsx b/src/shop/goodsDetail/index.tsx index 75f8279..ef34edb 100644 --- a/src/shop/goodsDetail/index.tsx +++ b/src/shop/goodsDetail/index.tsx @@ -189,7 +189,7 @@ const GoodsDetail = () => { // 分享到朋友圈 useShareTimeline(() => { return { - title: `${goods?.name || '精选商品'} - 网宿小店`, + title: `${goods?.name || '精选商品'} - 唐九运售电云`, path: `/shop/goodsDetail/index?id=${goodsId}`, imageUrl: goods?.image };