需新增:添加好友页面,优化各模块页面

This commit is contained in:
cbb
2026-01-22 17:04:43 +08:00
parent 57fec30165
commit 571e91b01c
17 changed files with 223 additions and 87 deletions

View File

@@ -1,6 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" fill="none">
<circle r="2.61111" transform="matrix(1 0 0 -1 8.55545 3.88889)" stroke="#4C5059"></circle>
<circle r="2.61111" transform="matrix(1 0 0 -1 4.66678 3.88889)" fill="#F4F5F9" stroke="#4C5059"></circle>
<path d="M5.16675 11.7778C5.16675 9.84484 6.73375 8.27783 8.66675 8.27783H10.0001C11.9331 8.27783 13.5001 9.84484 13.5001 11.7778V12.7223H5.16675V11.7778Z" stroke="#4C5059"></path>
<path d="M0.5 11.7778C0.5 9.84484 2.067 8.27783 4 8.27783H5.33333C7.26633 8.27783 8.83333 9.84484 8.83333 11.7778V12.7223H0.5V11.7778Z" fill="#F4F5F9" stroke="#4C5059"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="16" height="16" viewBox="0 0 16 16"><defs><clipPath id="master_svg0_0_8265"><rect x="0" y="0" width="16" height="16" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_0_8265)"><path d="M1.6666666269302368,8.000000126930237C1.6666666269302368,4.502196626930237,4.502196626930237,1.6666666269302368,8.000000126930237,1.6666666269302368C11.497803326930237,1.6666666269302368,14.333333626930237,4.502196626930237,14.333333626930237,8.000000126930237C14.333333626930237,8.000000126930237,14.333333626930237,8.209877126930238,14.333333626930237,8.209877126930238C14.333333626930237,11.591768826930236,11.591768826930236,14.333333626930237,8.209877126930238,14.333333626930237C8.209877126930238,14.333333626930237,1.6666666269302368,14.333333626930237,1.6666666269302368,14.333333626930237C1.6666666269302368,14.333333626930237,1.6666666269302368,8.000000126930237,1.6666666269302368,8.000000126930237ZM8.000000126930237,3.0000000269302367C5.238576326930237,3.0000000269302367,3.0000000269302367,5.238576326930237,3.0000000269302367,8.000000126930237C3.0000000269302367,8.000000126930237,3.0000000269302367,13.000000626930238,3.0000000269302367,13.000000626930238C3.0000000269302367,13.000000626930238,8.209877126930238,13.000000626930238,8.209877126930238,13.000000626930238C10.855389226930237,13.000000626930238,13.000000626930238,10.855389226930237,13.000000626930238,8.209877126930238C13.000000626930238,8.209877126930238,13.000000626930238,8.000000126930237,13.000000626930238,8.000000126930237C13.000000626930238,5.238576326930237,10.761423726930238,3.0000000269302367,8.000000126930237,3.0000000269302367ZM11.000000626930238,6.000000126930237C11.000000626930238,6.000000126930237,11.000000626930238,7.333333626930237,11.000000626930238,7.333333626930237C11.000000626930238,7.333333626930237,5.000000126930237,7.333333626930237,5.000000126930237,7.333333626930237C5.000000126930237,7.333333626930237,5.000000126930237,6.000000126930237,5.000000126930237,6.000000126930237C5.000000126930237,6.000000126930237,11.000000626930238,6.000000126930237,11.000000626930238,6.000000126930237ZM8.000000126930237,10.333333626930237C8.000000126930237,10.333333626930237,5.000000126930237,10.333333626930237,5.000000126930237,10.333333626930237C5.000000126930237,10.333333626930237,5.000000126930237,9.000000126930237,5.000000126930237,9.000000126930237C5.000000126930237,9.000000126930237,8.000000126930237,9.000000126930237,8.000000126930237,9.000000126930237C8.000000126930237,9.000000126930237,8.000000126930237,10.333333626930237,8.000000126930237,10.333333626930237Z" fill-rule="evenodd" fill="#333333" fill-opacity="1"/></g></svg>

Before

Width:  |  Height:  |  Size: 666 B

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="16" height="16" viewBox="0 0 16 16"><defs><clipPath id="master_svg0_0_8244"><rect x="0" y="0" width="16" height="16" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_0_8244)"><path d="M8.333252080055237,3.0000000269302367C7.412777580055237,3.0000000269302367,6.666585580055237,3.7461921269302367,6.666585580055237,4.666666626930237C6.666585580055237,5.587141426930237,7.412777580055237,6.333333626930237,8.333252080055237,6.333333626930237C9.253726580055236,6.333333626930237,9.999918580055237,5.587141426930237,9.999918580055237,4.666666626930237C9.999918580055237,3.7461921269302367,9.253726580055236,3.0000000269302367,8.333252080055237,3.0000000269302367ZM5.333252080055237,4.666666626930237C5.333252080055237,3.0098122269302365,6.676397880055236,1.6666666269302368,8.333252080055237,1.6666666269302368C9.990106180055236,1.6666666269302368,11.333252580055238,3.0098122269302365,11.333252580055238,4.666666626930237C11.333252580055238,6.3235208269302365,9.990106180055236,7.666666626930237,8.333252080055237,7.666666626930237C6.676397880055236,7.666666626930237,5.333252080055237,6.3235208269302365,5.333252080055237,4.666666626930237ZM5.999918580055237,9.666666626930237C4.527159380055236,9.666666626930237,3.3332519800552367,10.860574326930237,3.3332519800552367,12.333333626930237C3.3332519800552367,12.333333626930237,3.3332519800552367,13.000000626930238,3.3332519800552367,13.000000626930238C3.3332519800552367,13.000000626930238,8.666585580055237,13.000000626930238,8.666585580055237,13.000000626930238C8.666585580055237,13.000000626930238,8.666585580055237,14.333333626930237,8.666585580055237,14.333333626930237C8.666585580055237,14.333333626930237,1.9999185800552368,14.333333626930237,1.9999185800552368,14.333333626930237C1.9999185800552368,14.333333626930237,1.9999185800552368,12.333333626930237,1.9999185800552368,12.333333626930237C1.9999185800552368,10.124194726930236,3.790779780055237,8.333333626930237,5.999918580055237,8.333333626930237C5.999918580055237,8.333333626930237,8.666585580055237,8.333333626930237,8.666585580055237,8.333333626930237C8.666585580055237,8.333333626930237,8.666585580055237,9.666666626930237,8.666585580055237,9.666666626930237C8.666585580055237,9.666666626930237,5.999918580055237,9.666666626930237,5.999918580055237,9.666666626930237ZM11.666585580055237,11.000000626930238C11.666585580055237,11.000000626930238,11.666585580055237,9.000000126930237,11.666585580055237,9.000000126930237C11.666585580055237,9.000000126930237,12.999918580055237,9.000000126930237,12.999918580055237,9.000000126930237C12.999918580055237,9.000000126930237,12.999918580055237,11.000000626930238,12.999918580055237,11.000000626930238C12.999918580055237,11.000000626930238,14.999918580055237,11.000000626930238,14.999918580055237,11.000000626930238C14.999918580055237,11.000000626930238,14.999918580055237,12.333333626930237,14.999918580055237,12.333333626930237C14.999918580055237,12.333333626930237,12.999918580055237,12.333333626930237,12.999918580055237,12.333333626930237C12.999918580055237,12.333333626930237,12.999918580055237,14.333333626930237,12.999918580055237,14.333333626930237C12.999918580055237,14.333333626930237,11.666585580055237,14.333333626930237,11.666585580055237,14.333333626930237C11.666585580055237,14.333333626930237,11.666585580055237,12.333333626930237,11.666585580055237,12.333333626930237C11.666585580055237,12.333333626930237,9.666585580055237,12.333333626930237,9.666585580055237,12.333333626930237C9.666585580055237,12.333333626930237,9.666585580055237,11.000000626930238,9.666585580055237,11.000000626930238C9.666585580055237,11.000000626930238,11.666585580055237,11.000000626930238,11.666585580055237,11.000000626930238Z" fill-rule="evenodd" fill="#333333" fill-opacity="1"/></g></svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -75,7 +75,10 @@
/** 是否是红包 */
const isRedEnvelope = computed(() => {
if (quoteMessage.value?.payload?.data) {
if (
quoteMessage.value?.payload?.data &&
quoteMessage.value?.type === 'TIMCustomElem'
) {
const businessID = JSON?.parse(
quoteMessage.value?.payload?.data
)?.businessID

View File

@@ -316,7 +316,10 @@
/** 是否红包 */
const isRedEnvelope = (item: any) => {
if (item.messageBody[0]?.payload?.data) {
if (
item.messageBody[0]?.payload?.data &&
item.messageBody[0]?.type === 'TIMCustomElem'
) {
const businessID = JSON?.parse(
item.messageBody[0]?.payload?.data
)?.businessID

View File

@@ -175,7 +175,7 @@
border-radius: 64rpx;
height: 64rpx;
padding: 0 32rpx;
background: #f4f4f4;
}
</style>

View File

@@ -1,6 +1,8 @@
<template>
<div :ref="convHeaderRef" class="tui-conversation-header">
<Navigation title="消息">
<Navigation
:title="`消息${props.topCount ? `(${props.topCount})` : ''}`"
>
<template #right>
<div v-show="!isGlobalSearching" class="menu-container">
<ul v-if="menuList.length > 0" class="list">
@@ -60,6 +62,16 @@
import Server, { IMenuItem } from './server'
import type { ISearchingStatus } from '../../TUISearch/type'
import { navigateTo } from '../../../../utils/router'
import { useUI } from '../../../../utils/use-ui'
const { showDialog } = useUI()
const props = defineProps({
topCount: {
type: String,
default: ''
}
})
const showChildren = ref<IMenuItem[]>([])
const convHeaderRef = ref<HTMLElement | undefined>()
@@ -96,7 +108,18 @@
listener = { onClicked: () => {} }
} = item
if (children) {
let listData = children
const addUserItem = {
data: { name: 'isAddUser' },
icon: '/TUIKit/assets/icon/user-add.svg',
text: '添加好友',
listener: {
onClicked: () => {}
}
}
let listData = [
addUserItem,
...children.filter(c => c.data.name !== 'isC2C')
]
// #ifdef APP-PLUS
// 扫一扫
@@ -110,9 +133,11 @@
}
listData = [scanItem, ...listData]
// #endif
showChildren.value = showChildren.value.length > 0 ? [] : listData
} else {
if (item.data.name === 'isScan') {
// 扫一扫
uni.scanCode({
onlyFromCamera: false,
scanType: ['qrCode'],
@@ -120,6 +145,9 @@
navigateTo(res.result)
}
})
} else if (item.data.name === 'isAddUser') {
console.log('添加好友')
showDialog('提示', '开发中...')
} else {
listener.onClicked(item)
}

View File

@@ -1,5 +1,5 @@
<template>
<div ref="conversationListInnerDomRef" class="tui-conversation-list">
<view ref="conversationListInnerDomRef" class="tui-conversation-list">
<ActionsMenu
v-if="isShowOverlay"
:selectedConversation="currentConversation"
@@ -7,11 +7,35 @@
:selectedConversationDomRect="currentConversationDomRect"
@closeConversationActionMenu="closeConversationActionMenu"
/>
<cb-empty
<!-- <cb-empty
v-if="conversationList.length === 0"
name="您还没有好友"
></cb-empty>
<div
></cb-empty> -->
<view
class="tui-conversation-item"
@click="navigateTo('/pages/my-index/set-up/message/index')"
>
<aside class="left">
<Avatar url="/static/images/message.svg" size="40px" />
<!-- 通知数量 -->
<!-- <span class="num">2</span> -->
<!-- <span class="num-notify" /> -->
</aside>
<view class="content">
<view class="content-header">
<view class="content-header-label">
<text class="name">消息通知</text>
</view>
<view class="middle-box">
<div class="middle-box-content">[系统消息]</div>
</view>
</view>
<!-- <view class="content-footer">
<span class="time">20秒前</span>
</view> -->
</view>
</view>
<view
v-for="(conversation, index) in conversationList"
:id="`convlistitem-${index}`"
:key="index"
@@ -73,17 +97,17 @@
class="num-notify"
/>
</aside>
<div class="content">
<div class="content-header">
<view class="content">
<view class="content-header">
<label class="content-header-label">
<p class="name">{{ conversation.getShowName() }}</p>
</label>
<div v-if="isRedEnvelope(conversation)" class="middle-box">
<view v-if="isRedEnvelope(conversation)" class="middle-box">
<div class="middle-box-content">
{{ redEnvelopeText(conversation) }}
</div>
</div>
<div v-else class="middle-box">
</view>
<view v-else class="middle-box">
<span
v-if="
conversation.draftText &&
@@ -103,12 +127,12 @@
>
{{ conversation.getGroupAtInfo() }}
</span>
<div class="middle-box-content">
<view class="middle-box-content">
{{ conversation.getLastMessage('text') }}
</div>
</div>
</div>
<div class="content-footer">
</view>
</view>
</view>
<view class="content-footer">
<span class="time">
{{ conversation.getLastMessage('time') }}
</span>
@@ -117,11 +141,11 @@
:file="muteIcon"
size="16px"
/>
</div>
</div>
</view>
</view>
</div>
</div>
</div>
</view>
</view>
</template>
<script lang="ts" setup>
@@ -158,6 +182,7 @@
isMobile
} from '../../../utils/env'
import { CHAT_MSG_CUSTOM_TYPE } from '../../../constant'
import { navigateTo } from '../../../../utils/router'
const emits = defineEmits(['handleSwitchConversation', 'getPassingRef'])
const currentConversation = ref<IConversationModel>()
@@ -326,7 +351,10 @@
/** 是否红包 */
const isRedEnvelope = (item: IConversationModel) => {
if (item?.lastMessage?.payload?.data) {
if (
item?.lastMessage?.payload?.data &&
item?.lastMessage?.type === 'TIMCustomElem'
) {
const businessID = JSON?.parse(
item?.lastMessage?.payload?.data
)?.businessID

View File

@@ -5,7 +5,7 @@
@touchstart="handleTouchStart"
@touchend="handleTouchEnd"
>
<ConversationHeader>
<ConversationHeader :topCount="totalUnreadCount">
<TUISearch searchType="global" />
</ConversationHeader>
<ConversationNetwork />
@@ -28,7 +28,7 @@
import ConversationList from './conversation-list/index.vue'
import ConversationHeader from './conversation-header/index.vue'
import ConversationNetwork from './conversation-network/index.vue'
import { onHide } from '@dcloudio/uni-app'
import { onHide, onShow } from '@dcloudio/uni-app'
// #ifdef MP-WEIXIN
// uniapp packaged mini-programs are integrated by default, and the default initialization entry file is imported here
// TUIChatKit init needs to be encapsulated because uni vue2 will report an error when compiling H5 directly through conditional compilation
@@ -37,7 +37,7 @@
const emits = defineEmits(['handleSwitchConversation'])
const totalUnreadCount = ref(0)
const totalUnreadCount = ref('')
const headerRef = ref<typeof ConversationHeader>()
const conversationListDomRef = ref<typeof ConversationList>()
const touchX = ref<number>(0)
@@ -117,24 +117,24 @@
}
}
TUIStore.watch(StoreName.CONV, {
totalUnreadCount: (count: number) => {
totalUnreadCount.value = count
const tabBarIndex = getTabBarIndex() ?? -1
if (tabBarIndex >= 0) {
if (count > 0) {
uni.setTabBarBadge({
index: tabBarIndex,
text: count > 99 ? '99+' : count.toString()
})
} else {
uni.removeTabBarBadge({
index: tabBarIndex
})
}
}
}
})
// TUIStore.watch(StoreName.CONV, {
// totalUnreadCount: (count: number) => {
// totalUnreadCount.value = count
// const tabBarIndex = getTabBarIndex() ?? -1
// if (tabBarIndex >= 0) {
// if (count > 0) {
// uni.setTabBarBadge({
// index: tabBarIndex,
// text: count > 99 ? '99+' : count.toString()
// })
// } else {
// uni.removeTabBarBadge({
// index: tabBarIndex
// })
// }
// }
// }
// })
TUIStore.watch(StoreName.CUSTOM, {
isShowConversationHeader: (showStatus: boolean) => {
@@ -198,6 +198,25 @@
const getPassingRef = ref => {
ref.value = conversationListDomRef.value
}
onShow(async () => {
TUIStore.watch(StoreName.CONV, {
totalUnreadCount: (count: number) => {
if (count > 0) {
totalUnreadCount.value = count > 99 ? '99+' : String(count)
uni.setTabBarBadge({
index: 0,
text: count > 99 ? '99+' : count.toString()
})
} else {
totalUnreadCount.value = ''
uni.removeTabBarBadge({
index: 0
})
}
}
})
})
</script>
<style lang="scss" scoped src="./style/index.scss"></style>

View File

@@ -23,7 +23,10 @@
</header>
<main class="main">
<div class="left">
<header class="transfer-header">
<header
v-if="(isPC && isTransferSearch) || (!isPC && isTransferSearch)"
class="transfer-header"
>
<!-- PC triggers @keyup.enter -->
<input
v-if="isPC && isTransferSearch"
@@ -91,7 +94,11 @@
item.avatar ||
'https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_21.png'
"
onerror="this.onerror=null;this.src='https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_21.png'"
onerror="
this.onerror = null
this.src =
'https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_21.png'
"
/>
<span class="name">{{ item.nick || item.userID }}</span>
<span v-if="item.isDisabled">
@@ -138,7 +145,11 @@
item.avatar ||
'https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_21.png'
"
onerror="this.onerror=null;this.src='https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_21.png'"
onerror="
this.onerror = null
this.src =
'https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_21.png'
"
/>
<span v-if="isPC" class="name">
{{ item.nick || item.userID }}
@@ -342,7 +353,7 @@
}
}
.btn-confirm {
background: #00D993;
background: #00d993;
}
}
</style>

View File

@@ -2,8 +2,8 @@
"name" : "密谈IM",
"appid" : "__UNI__9EFDC69",
"description" : "",
"versionName" : "1.0.4",
"versionCode" : 103,
"versionName" : "1.0.5",
"versionCode" : 104,
"transformPx" : false,
/* 5+App */
"app-plus" : {
@@ -65,9 +65,9 @@
"splashscreen" : {
"androidStyle" : "default",
"android" : {
"hdpi" : "D:/下载/聊天界面(其他功能).png",
"xhdpi" : "D:/下载/聊天界面(其他功能).png",
"xxhdpi" : "D:/下载/聊天界面(其他功能).png"
"hdpi" : "static/qidong.png",
"xhdpi" : "static/qidong.png",
"xxhdpi" : "static/qidong.png"
}
},
"icons" : {

View File

@@ -16,12 +16,12 @@
const { showDialog, showToast } = useUI()
const placeholderStyle = `font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 28rpx;
color: #999999;
line-height: 40rpx;
font-style: normal;
text-transform: none;`
font-weight: 500;
font-size: 28rpx;
color: #999999;
line-height: 40rpx;
font-style: normal;
text-transform: none;`
const MAX_SCROLL = 446
const paging = ref(null)
@@ -39,6 +39,7 @@ text-transform: none;`
})
const contentData = ref('')
const inputId = ref('')
const isType = ref('')
const onScroll = e => {
cbNavBar.value?.updateScroll(e.detail.scrollTop)
@@ -56,7 +57,7 @@ text-transform: none;`
const res = await getUserMomentsList({
pageNum,
pageSize,
targetUserId: userInfo.value.userId
targetUserId: isType.value == 1 ? userInfo.value.userId : ''
})
const list = res.rows.map(item => {
return {
@@ -120,7 +121,10 @@ text-transform: none;`
onShow(() => {
getData(1, formData.pageSize)
})
onLoad(async () => {})
onLoad(async e => {
isType.value = e?.type || ''
})
</script>
<template>
@@ -187,11 +191,18 @@ text-transform: none;`
<view v-if="!listLoading" class="dynamic-list" @click="closeComment">
<view v-for="item in dataList" :key="item.id" class="list">
<image
v-if="item.avatar"
:src="item.avatar"
lazy-load
mode="aspectFill"
class="avatar"
></image>
<view v-else class="avatar">
<uni-icons
type="contact-filled"
class="avatar-icon"
></uni-icons>
</view>
<view class="content">
<text class="name">{{ item.userName }}</text>
<text class="text">{{ item.content }}</text>
@@ -235,8 +246,8 @@ text-transform: none;`
color="#747474"
@click.stop="inputId = item.id"
></uni-icons>
<uni-icons
v-if="item.userId === userInfo.userId"
type="trash"
size="20"
color="#d95d5d"

View File

@@ -87,16 +87,28 @@
mode="heightFix"
class="grade"
></image>
<text v-else class="item-text">1</text>
<text v-else class="item-text">{{ index + 1 }}</text>
</view>
</uni-col>
<uni-col :span="12">
<view class="table-name">
<image
:src="item.avatar || '/static/images/public/random2.png'"
v-if="item.avatar"
:src="item.avatar"
mode="aspectFill"
class="left-icon"
></image>
<view
v-else
style="
display: flex;
align-items: center;
justify-content: center;
"
class="left-icon"
>
<uni-icons type="contact-filled" size="90rpx"></uni-icons>
</view>
<view class="name">
<text>{{ item.userName }}</text>
<text>{{ item.mobile }}</text>
@@ -119,7 +131,9 @@
@import './styles/index.scss';
.table-box {
font-family: PingFang SC, PingFang SC;
font-family:
PingFang SC,
PingFang SC;
font-style: normal;
text-transform: none;
.grade-box {

View File

@@ -15,7 +15,9 @@
align-items: flex-start;
.name {
margin-top: 30rpx;
font-family: PingFang SC, PingFang SC;
font-family:
PingFang SC,
PingFang SC;
font-weight: 600;
font-size: 32rpx;
color: #ffffff;
@@ -44,10 +46,18 @@
border-radius: 96rpx;
flex-shrink: 0;
margin-right: 32rpx;
display: flex;
align-items: center;
justify-content: center;
.avatar-icon {
font-size: 130rpx !important;
}
}
.content {
width: 100%;
font-family: PingFang SC, PingFang SC;
font-family:
PingFang SC,
PingFang SC;
text-align: left;
font-style: normal;
text-transform: none;

View File

@@ -94,7 +94,7 @@
<text>{{ viewData.minPrice }}</text>
</view>
<view class="name-box">
<text>拼单数量:12505</text>
<text>拼单数量:{{ viewData.salesCount }}</text>
<text>好评率:99%</text>
</view>
<!-- 拼单量 -->
@@ -186,7 +186,9 @@
}
.detail-box {
padding: 0 58rpx 150rpx;
font-family: PingFang SC, PingFang SC;
font-family:
PingFang SC,
PingFang SC;
font-style: normal;
text-transform: none;
.title {
@@ -294,7 +296,9 @@
display: flex;
justify-content: space-between;
align-items: center;
font-family: PingFang SC, PingFang SC;
font-family:
PingFang SC,
PingFang SC;
font-weight: 500;
font-style: normal;
text-transform: none;

View File

@@ -19,11 +19,11 @@
icon: 'meeting',
url: '/pages/my-index/meeting-record/index'
},
// {
// name: '我的朋友圈',
// icon: 'circle',
// url: '/pages/discover/dynamic/dynamic'
// },
{
name: '我的朋友圈',
icon: 'circle',
url: '/pages/discover/dynamic/dynamic'
},
// {
// name: '我的收藏',
// icon: 'collection',
@@ -57,7 +57,7 @@
}
}
} else {
navigateTo(item.url)
navigateTo(item.url, item.icon === 'circle' ? { type: 1 } : null)
}
}
@@ -174,7 +174,9 @@
display: flex;
flex-direction: column;
.name {
font-family: PingFang SC, PingFang SC;
font-family:
PingFang SC,
PingFang SC;
font-weight: bold;
font-size: 32rpx;
color: #333333;
@@ -222,7 +224,9 @@
display: flex;
flex-direction: column;
text {
font-family: PingFang SC, PingFang SC;
font-family:
PingFang SC,
PingFang SC;
font-weight: 500;
font-size: 28rpx;
color: #ffffff;
@@ -243,7 +247,9 @@
height: 64rpx;
line-height: 64rpx;
border-radius: 100rpx 100rpx 100rpx 100rpx;
font-family: PingFang SC, PingFang SC;
font-family:
PingFang SC,
PingFang SC;
font-weight: 500;
font-size: 28rpx;
color: #ffffff;
@@ -278,7 +284,9 @@
}
.text-box {
margin-left: 16rpx;
font-family: PingFang SC, PingFang SC;
font-family:
PingFang SC,
PingFang SC;
font-weight: 500;
font-size: 32rpx;
color: #333333;

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="40" height="40" viewBox="0 0 40 40"><defs><clipPath id="master_svg0_0_8538"><rect x="0" y="0" width="40" height="40" rx="20"/></clipPath></defs><g clip-path="url(#master_svg0_0_8538)"><rect x="0" y="0" width="40" height="40" rx="20" fill="#24DB5A" fill-opacity="1"/><path d="M21.334798,30.40906C21.334798,32.987661,19.359054,31.656483,19.359054,31.656483C19.359054,31.656483,10.8031273,24.450842,10.8031273,24.450842C10.8031273,24.450842,9.4817533,24.450842,9.4817533,24.450842C8.66312957,24.450842,8,23.774912999999998,8,22.940820000000002C8,22.940820000000002,8,16.9016905,8,16.9016905C8,16.0675697,8.66315687,15.3918061,9.4817533,15.3918061C9.4817533,15.3918061,11.0623212,15.3918061,11.0623212,15.3918061C11.0623212,15.3918061,19.359054,8.34626773,19.359054,8.34626773C19.359054,8.34626773,21.334879,7.00421751,21.334879,9.6042912C21.334879,9.6042912,21.334879,30.40906,21.334879,30.40906C21.334879,30.40906,21.334798,30.40906,21.334798,30.40906ZM25.77951,23.947229C28.249271,21.934359,28.084391,18.117702,25.77951,16.398241C24.874434,15.853214699999999,24.298166,17.6565647,24.298166,17.6565647C24.298166,17.6565647,26.602774,20.550376999999997,24.298166,22.689205C23.845192,23.276436,24.709553,24.49272,25.77951,23.947229ZM27.014431,12.1207752C26.685268,11.8269005,25.080303,12.9175267,26.026751,13.8819485C30.92433,18.034112,31.00639,21.934386,26.026751,26.211988C25.285601,26.925041,26.273281,28.267365,27.014431,27.973352C33.804905000000005,24.827787,33.517247999999995,15.0563273,27.014431,12.1207752Z" fill="#FFFFFF" fill-opacity="1"/></g></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
static/qidong.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 KiB