import { Image, Text, View } from '@tarojs/components'
import { useDidShow } from '@tarojs/taro'
import type { FC } from 'react'
import { useEffect, useState } from 'react'
import { useDispatch } from 'react-redux'
import type { Dispatch } from 'redux'
import defaultAvatar from '../../styles/image/defaultAvatar.png'
import styles from './index.module.scss'
import { checkKey, goLink } from '@/common/common'
import type { TabBarAction } from '@/reducers/tabBar'
import { TabBarIndex } from '@/reducers/tabBar'
import { TabBarType } from '@/constants/tabbar'
import NormalButton from '@/components/normalButton'
import Tag from '@/components/tag'
import Divider from '@/components/divider'
import LayoutBlock from '@/components/layoutBlock'
import IconCard from '@/components/iconCard'
import type { IconNames } from '@/components/iconfont/iconfont'
import useUserInfo from '@/use/useUserInfo'
import { useSelector } from '@/reducers/hooks'
import { BASE_URL } from '@/common/constant'
import useGetCode from '@/use/useGetCode'
// 用户头像
const UserAvatar = ({ src }: { src?: string }) => {
return (
{src ? null : 编辑}
)
}
interface IconCardType {
jurisdiction?: string // 权限key值
iconName: IconNames
name: string
path: string
}
const feature: IconCardType[] = [
{
iconName: 'icon-pandiansaoma',
name: '盘点扫码',
path: '',
jurisdiction: 'counting_scanning_code_page',
},
{
iconName: 'icon-fahuoliebiao',
name: '发货列表',
path: '/pages/delivery/index',
jurisdiction: 'shipping_list_page',
},
{
iconName: 'icon-yaoqingma',
name: '邀请码',
path: '/pages/inviteCode/index',
jurisdiction: 'invitation_code_page',
},
{
iconName: 'icon-tihuoliebiao',
name: '提货列表',
path: '/pages/takeDelivery/index',
jurisdiction: 'picking_list_module_page',
},
{
iconName: 'icon-shouhouzhongxin',
name: '退货退款',
path: '/pages/refundPage/index',
jurisdiction: 'return_and_refund_page',
},
{
iconName: 'icon-shoukuanliebiao',
name: '收款列表',
path: '/pages/newCollection/index',
jurisdiction: 'collection_list_page',
},
{
iconName: 'icon-kehuxinxi',
name: '客户列表',
path: '/pages/customerManagement/index',
jurisdiction: 'customer_list_page',
},
{
iconName: 'icon-lingquseka',
name: '领取色卡',
path: '/pages/getColorCard/index',
jurisdiction: 'ignore',
},
{
iconName: 'icon-jianyang',
name: '领取剪样',
path: '/pages/sampleCutting/index',
jurisdiction: 'ignore',
},
]
const fabric: IconCardType[] = [
{
iconName: 'icon-yansequyang',
name: '颜色取样',
path: '/pages/colorRelated/takeColor/index',
jurisdiction: 'color_sampling_page',
},
{
iconName: 'icon-qusechazhao',
name: '取色查找',
path: '/pages/colorRelated/findColor/index',
jurisdiction: 'color_search_page',
},
{
iconName: 'icon-yangpinduibi',
name: '样品对比',
path: '/pages/colorRelated/sampleComparison/index',
jurisdiction: 'sample_comparison_page',
},
]
const statisticAnalysis: IconCardType[] = [
{
iconName: 'icon-xiaoshou',
name: '销售',
path: '/pages/saleStatistic/index',
jurisdiction: 'sales_page',
},
{
iconName: 'icon-duizhang',
name: '对账',
path: '',
jurisdiction: 'reconciliation_page',
},
{
iconName: 'icon-yuncangkucun',
name: '云仓库存',
path: '',
jurisdiction: 'cloud_warehouse_inventory_page',
},
{
iconName: 'icon-qianzhicangkucun',
name: '前置仓库存',
path: '',
jurisdiction: 'front_warehouse_page',
},
]
// 用户信息
const UserInfo: FC = () => {
const { removeToken, removeUserInfo, userInfo } = useUserInfo()
const dispatch = useDispatch>()
console.log('userInfo==>', userInfo)
// const [userInfo, setUserInfo] = useState({
// avatarUrl: '',
// username: '',
// userno: '',
// })
// 退出登录
const handleLogout = () => {
removeToken()
removeUserInfo()
dispatch({ type: TabBarType.SET_SELECTED, data: { selectedId: TabBarIndex.INDEX } })
goLink('/pages/login/index', {}, 'reLaunch')
}
const handleClickIconCard = (item: IconCardType) => {
console.log('item==>', item)
goLink(item.path, {}, 'navigateTo')
}
const [Features, setFeatures] = useState([])
const [Coloring, setColoring] = useState([])
const [Statistics, setStatistics] = useState([])
useDidShow(() => {
let arr: any[] = []
let arrOne: any[] = []
let arrTwo: any[] = []
arr = feature.filter(item => checkKey(item.jurisdiction))
arrOne = fabric.filter(item => checkKey(item.jurisdiction))
arrTwo = statisticAnalysis.filter(item => checkKey(item.jurisdiction))
setFeatures([...arr])
setColoring([...arrOne])
setStatistics([...arrTwo])
})
// 微信授权获取code
const { UseGetCode } = useGetCode()
const handReceive = async() => {
try {
await UseGetCode()
}
catch (err) {
console.log(err, 'err')
}
}
return (
<>
{userInfo.userInfo?.user_name}
{userInfo.userInfo.user_code}
退出登录
{/* 部门 */}
{userInfo.userInfo.department_name}
{/* 职责 */}
{userInfo.userInfo.duty_name}
handReceive()}>接收消息
{
!!Features.length &&
功能特色
{Features.map((item, key) => {
return item.path ? handleClickIconCard(item)}> : null
})}
}
{
!!Coloring.length &&
布料取色
{Coloring.map((item, key) => {
return item.path ? handleClickIconCard(item)}> : null
})}
}
{
!!Statistics.length &&
统计分析
{Statistics.map((item, key) => {
return item.path ? handleClickIconCard(item)}> : null
})}
}
>
)
}
// 我的
const User = () => {
const [current_env, _] = useState(CURRENT_ENV)
const [current_version, __] = useState(CURRENT_VERSION)
return (
{/* 测试暂时添加 */}
{current_version}
{current_env !== 'production' && {BASE_URL}}
)
}
export default User