import { SaveMessage } from "../../utils/Interface"; import dayjs from "dayjs"; import { Component, PropsWithChildren, useEffect, useState } from "react"; import Taro from "@tarojs/taro"; // 引入 Swiper, SwiperItem 组件 import { View, Block, Textarea, Image } from "@tarojs/components"; import { go, loading, msg } from "../../utils/traoAPI"; /*** redux ***/ import { connect } from "react-redux"; import { userRefresh } from "../../store/features/userInfo"; /*** redux end ***/ import { RefreshWxUserInfo, GetNoReadMessageNum } from "../../utils/Interface"; // import "taro-ui/dist/style/components/button.scss"; // 按需引入 import "./user.less"; import type CustomTabBar from "../../custom-tab-bar"; import Navbar from "../../components/navbar/navbar"; import PopupAlert from "../../components/popup/popup-alert"; import PopupDrawer from "../../components/popup/popup-drawer"; class User extends Component { pageCtx = Taro.getCurrentInstance().page; constructor(props) { super(props); this.state = { name: "user", userInfo: { ...this.props.userInfo, }, otherSetting: { ...this.props.otherSetting, }, MerchMobile: "", count: 0, year: new Date().getFullYear(), lastDay: dayjs().endOf("year").endOf("month").format("YYYY-MM-DD"), messagecount: Taro.getStorageSync("messageCount") || 0, isNotRegister: false, // 是否未注册 isShowCustomerService: false, // 反馈留言 messageInfo: "", // 用户留言 isDev: false, }; } async onLoad() { this.initData(); } componentDidMount() {} componentWillUnmount() {} componentDidShow() { this.setState({ userInfo: this.props.userInfo }); let messagecount = Taro.getStorageSync("messageCount"); this.setState({ messagecount: messagecount }); const tabbar = Taro.getTabBar(this.pageCtx); tabbar?.setSelected(4); } componentDidHide() {} async initData() { this.RefreshWxUserInfo(); this.GetNoReadMessageNum(); } // 获取消息数量 GetNoReadMessageNum = async () => { let res = await GetNoReadMessageNum(); if (res.data.code === 200) { Taro.setStorageSync("messageCount", res.data.data); this.setState({ messagecount: res.data.data }); } }; // 刷新用户信息 RefreshWxUserInfo = async () => { let res = await RefreshWxUserInfo(); console.log("res", res); if (res.data.code === 200) { this.props.userRefresh(res.data.data); this.setState({ userInfo: res.data.data }); } }; postSaveMessage = async () => { let { messageInfo } = this.state; let params = { source: 1, messageInfo: messageInfo, }; let res = await SaveMessage(params); if (res.data.code === 200) { msg("提交成功!"); } else { msg("提交失败!"); } }; gourl = (e) => { let mobile = Taro.getStorageSync("mobile"); if (!mobile) { this.setState({ isNotRegister: true }); // 打开弹窗 return; } let url = e.currentTarget.dataset.url; Taro.navigateTo({ url, }); }; // 不检查登录跳转 goUrlNoRegister = (e) => { let url = e.currentTarget.dataset.url; Taro.navigateTo({ url, }); }; gourls = (e) => { let url = e.currentTarget.dataset.url; Taro.navigateTo({ url, }); }; gominiapp() { Taro.navigateToMiniProgram({ appId: "wx438760012de48d74", path: "/pages/home/home", envVersion: "release", success(res) { // 打开成功 // console.log("res", res); }, }); } showCustomerService = () => { let mobile = Taro.getStorageSync("mobile"); if (!mobile) { this.setState({ isNotRegister: true }); return; } this.setState({ isShowCustomerService: true }); }; confirmCustomerService = () => { let { messageInfo } = this.state; if (messageInfo.length) { this.postSaveMessage(); this.closeCustomerService(); } else { msg("留言内容不能为空!"); // Toast_.fail({ // message: "留言内容不能为空!", // }); } }; closeCustomerService = () => { this.setState({ isShowCustomerService: false }); }; closeRegisterAlert = () => { this.setState({ isNotRegister: false }); }; onInputTextarea = (e) => { this.setState({ messageInfo: e.detail.value }); }; closeDev = () => { this.setState({ isDev: false }); }; render() { let { userInfo, count, lastDay, messagecount, isNotRegister, isShowCustomerService, isDev, } = this.state; return ( {userInfo.headimg ? ( ) : ( // )} {userInfo.nickname ? userInfo.nickname : "用户" + (userInfo.id || "001")} {userInfo.id ? ( 用户编号 : {userInfo.id} ) : ( 用户编号 : 001 )} { this.setState({ isDev: true }); }} > 我的设备 {count} 查看绑定设备详情 我的积分 {userInfo.credit} {/* */} 查看积分详情 {lastDay} 过期积分: {userInfo.expireCredit} 会员服务 个人信息 查验正伪 积分明细 {messagecount ? : ""} 消息中心 其它服务 联系客服 意见反馈 更多设置 {/* 隐私政策 */} } confirmButtonText="提交" textAlgin="left" close={this.closeCustomerService} confirm={this.confirmCustomerService} /> {/* */} ); } } const mapStateToProps = (state) => ({ userInfo: state.userInfo, otherSetting: state.otherSetting, }); const mapDispatchToProps = (dispatch) => ({ userRefresh(data) { dispatch(userRefresh(data)); }, }); export default connect(mapStateToProps, mapDispatchToProps)(User);