index.tsx 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import { View, Image } from '@tarojs/components'
  2. import style from './index.module.less'
  3. import Taro from '@tarojs/taro'
  4. import { TContactItem } from '@/types/contact';
  5. import { AvatarMedia } from '@/components/AvatarMedia';
  6. import IconCertificateColor from "@/components/icon/icon-certificate-color";
  7. interface Props {
  8. data: TContactItem
  9. deleteable?: boolean
  10. refresh: () => void
  11. fromContact?: boolean
  12. className?: string
  13. }
  14. const Index = ({data, deleteable, className, refresh, fromContact}: Props)=> {
  15. const handleClick = (data: TContactItem)=>{
  16. console.log(data, fromContact)
  17. Taro.navigateTo({
  18. url: "/pages/profile/index?agentId=" + data.agentId,
  19. });
  20. }
  21. return (
  22. <View className={`${style.contactCard} ${className}`} onClick={()=>{handleClick(data)}}>
  23. <View className={style.avatar}>
  24. <AvatarMedia source={data.avatarUrl || ''} mode="aspectFill" className={style.avatar}></AvatarMedia>
  25. </View>
  26. <View className={style.infoColumn}>
  27. <View className={style.nameRow}>
  28. <View className={style.nickName}>{data.name}</View>
  29. {data.isEnt && <IconCertificateColor></IconCertificateColor>}
  30. </View>
  31. <View className='flex items-center w-full'>
  32. <View className={`flex-1 ${style.subInfo}`}>{data.lastChatMsg}</View>
  33. {(!!data?.tipCnt) && <View className={style.tipCnt}>{data.tipCnt} </View>}
  34. </View>
  35. </View>
  36. </View>
  37. )
  38. }
  39. export default Index