hookehuyr

fix(components): 修改 IconFont 组件 name 属性为小写

按照 NutUI 官方文档要求,将所有 IconFont 的 name 属性从首字母大写改为小写。

修改内容:
- Search → search
- RectRight → rectRight
- RectLeft → rectLeft
- Del → del
- Loading → loading
- Issue → issue
- Check → check
- Download → download
- Service → service
- Close → close
- Order → order
- Star → star
- Photograph → photograph
- My → my
- Cart → cart
- Home → home
- Category → category

涉及文件:
- 首页、产品详情页、资料列表页等所有页面
- TabBar、NavHeader 等公共组件
- PdfPreview、OfficeViewer 等文档预览组件

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
......@@ -33,13 +33,13 @@
<view class="preview-container">
<!-- 加载状态 -->
<view v-if="loading" class="loading-container">
<IconFont name="Loading" size="24" class="animate-spin text-blue-600" />
<IconFont name="loading" size="24" class="animate-spin text-blue-600" />
<text class="loading-text">{{ loadingText }}</text>
</view>
<!-- 错误状态 -->
<view v-else-if="error" class="error-container">
<IconFont name="Issue" size="48" color="#ff6b6b" />
<IconFont name="issue" size="48" color="#ff6b6b" />
<text class="error-text">{{ error }}</text>
<nut-button type="primary" size="small" @click="retry">
重试
......@@ -75,7 +75,7 @@
<script setup>
import { ref, computed, watch } from 'vue'
import { getFileSize, detectFileType, formatFileSize } from './utils'
import IconFont from '@/components/IconFont.vue'
import { IconFont } from '@nutui/icons-vue-taro'
// #ifdef H5
import OfficeViewer from '../OfficeViewer.vue'
......
......@@ -3,10 +3,6 @@
* @Date: 2025-01-30
*/
// #ifdef WEAPP
import Taro from '@tarojs/taro'
// #endif
/**
* 从 URL 中检测文件类型
* @param {string} url - 文档 URL
......
<!--
* @Date: 2026-01-29 21:30:20
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2026-01-30 17:16:13
* @LastEditTime: 2026-01-30 18:13:56
* @FilePath: /manulife-weapp/src/components/IconFont.vue
* @Description: 图标字体组件
-->
<template>
<component :is="iconComponent" v-if="iconComponent" :size="size" :class="customClass" :color="color" />
<IconFontBase :name="name" :size="size" :color="color" :class="customClass" />
</template>
<script setup>
import { computed } from 'vue';
import {
Cart,
Category,
Check,
Checklist,
Clock,
Download,
Edit,
Find,
Home,
Issue,
Link,
Loading,
Location,
My,
Order,
People,
PlayCircleFill,
Refresh,
RectRight,
RectLeft,
Search,
Service,
Star,
StarFill,
Top,
Photograph,
Del,
Close,
} from '@nutui/icons-vue-taro';
import { IconFont as IconFontBase } from '@nutui/icons-vue-taro'
const props = defineProps({
name: {
type: String,
required: true
},
size: {
type: [String, Number],
default: ''
},
color: {
type: String,
default: ''
},
customClass: {
type: String,
default: ''
}
});
const icons = {
Cart,
Category,
Check,
Checklist,
Clock,
Download,
Edit,
Find,
Home,
Issue,
Link,
Loading,
Location,
My,
Order,
People,
PlayCircleFill,
Refresh,
RectRight,
RectLeft,
Search,
Service,
Star,
StarFill,
Top,
Photograph,
Del,
Close,
};
const iconComponent = computed(() => {
return icons[props.name] || null;
});
name: {
type: String,
required: true
},
size: {
type: [String, Number],
default: ''
},
color: {
type: String,
default: ''
},
customClass: {
type: String,
default: ''
}
})
</script>
......
......@@ -12,7 +12,7 @@
<div class="fixed top-0 left-0 z-50 w-full h-[250rpx] bg-gradient-to-b from-[#1E3A8A] to-[#2563EB] pt-[100rpx]">
<div class="relative w-full h-full flex items-center justify-center px-[32rpx]">
<div v-if="canGoBack" class="absolute left-[32rpx] flex items-center justify-center w-[60rpx] h-[60rpx]" @tap="goBack">
<IconFont name="RectLeft" size="18" color="#fff" />
<IconFont name="rectLeft" size="18" color="#fff" />
</div>
<span class="text-white text-[35rpx] font-normal">{{ title }}</span>
</div>
......@@ -22,7 +22,7 @@
<script setup>
import { ref, onMounted } from 'vue'
import Taro from '@tarojs/taro'
import IconFont from '@/components/IconFont.vue'
import { IconFont } from '@nutui/icons-vue-taro'
defineProps({
title: {
......
<template>
<view class="office-viewer">
<view v-if="error" class="error-container">
<IconFont name="Issue" size="24" color="#ff6b6b" />
<IconFont name="issue" size="24" color="#ff6b6b" />
<text class="error-text">{{ error }}</text>
<nut-button type="primary" size="small" class="retry-btn" @click="retry">重试</nut-button>
</view>
......@@ -17,21 +17,21 @@
@load="on_loaded"
/>
<view v-else class="unsupported-container">
<IconFont name="Issue" size="24" color="#ff6b6b" />
<IconFont name="issue" size="24" color="#ff6b6b" />
<text class="unsupported-text">不支持的文件类型: {{ normalized_type || '未知' }}</text>
</view>
<!-- #endif -->
<!-- #ifdef WEAPP -->
<view class="unsupported-container">
<IconFont name="Issue" size="24" color="#ff6b6b" />
<IconFont name="issue" size="24" color="#ff6b6b" />
<text class="unsupported-text">小程序不支持内嵌 Office 预览</text>
</view>
<!-- #endif -->
</view>
<view v-if="loading" class="loading-overlay">
<IconFont name="Loading" size="24" class="animate-spin text-blue-600" />
<IconFont name="loading" size="24" class="animate-spin text-blue-600" />
<text class="loading-text">加载中...</text>
</view>
</view>
......@@ -39,7 +39,7 @@
<script setup>
import { ref, computed, watch } from 'vue'
import IconFont from '@/components/IconFont.vue'
import { IconFont } from '@nutui/icons-vue-taro'
import { getTencentPreviewUrl } from '@/components/DocumentPreview/utils'
const props = defineProps({
......
......@@ -9,7 +9,7 @@
<view class="header">
<text class="title">{{ title || 'PDF 预览' }}</text>
<view class="close" @tap="close">
<IconFont name="Del" size="16" color="#666" />
<IconFont name="del" size="16" color="#666" />
</view>
</view>
......@@ -35,7 +35,7 @@
</view>
<view v-if="loading" class="loading">
<IconFont name="Loading" size="24" class="animate-spin text-blue-600" />
<IconFont name="loading" size="24" class="animate-spin text-blue-600" />
<text class="loading-text">加载中...</text>
</view>
</view>
......@@ -44,7 +44,7 @@
<script setup>
import { ref, watch } from 'vue'
import IconFont from '@/components/IconFont.vue'
import { IconFont } from '@nutui/icons-vue-taro'
const props = defineProps({
show: {
......
......@@ -9,12 +9,12 @@
<text class="text-[#6b7280] text-[24rpx] mt-[8rpx] leading-[32rpx]">{{ subtitle }}</text>
</view>
</view>
<IconFont name="RectRight" class="text-gray-400" size="16" />
<IconFont name="rectRight" class="text-gray-400" size="16" />
</view>
</template>
<script setup>
import IconFont from './IconFont.vue'
import { IconFont } from '@nutui/icons-vue-taro'
/**
* Section Item Component
......
......@@ -30,7 +30,7 @@
<script setup>
import { ref, shallowRef } from 'vue'
import IconFont from '@/components/IconFont.vue'
import { IconFont } from '@nutui/icons-vue-taro'
import { useGo } from '@/hooks/useGo'
import Taro from '@tarojs/taro'
......
......@@ -16,7 +16,7 @@
<img :src="avatarUrl" />
</nut-avatar>
<view class="absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 bg-black/30 rounded-full p-[16rpx]">
<IconFont name="Photograph" color="#fff" size="24" />
<IconFont name="photograph" color="#fff" size="24" />
</view>
</view>
......@@ -36,7 +36,7 @@
<script setup>
import { ref } from 'vue'
import { useGo } from '@/hooks/useGo'
import IconFont from '@/components/IconFont.vue'
import { IconFont } from '@nutui/icons-vue-taro'
import NavHeader from '@/components/NavHeader.vue'
import Taro from '@tarojs/taro'
......
......@@ -43,7 +43,7 @@
<view class="flex items-center gap-[16rpx]">
<!-- Delete Button -->
<view class="p-[10rpx]" @tap.stop="onDelete(item)">
<IconFont name="Del" size="18" color="#999" />
<IconFont name="del" size="18" color="#999" />
</view>
</view>
</view>
......@@ -51,7 +51,7 @@
<!-- Empty State -->
<view v-if="filteredList.length === 0"
class="flex flex-col items-center justify-center py-[100rpx] text-gray-400">
<IconFont name="Star" size="48" class="mb-[24rpx] opacity-50" />
<IconFont name="star" size="48" class="mb-[24rpx] opacity-50" />
<text class="text-[28rpx]">暂无收藏内容</text>
</view>
</view>
......@@ -64,7 +64,7 @@
<script setup>
import { ref, computed } from 'vue'
import { useGo } from '@/hooks/useGo'
import IconFont from '@/components/IconFont.vue'
import { IconFont } from '@nutui/icons-vue-taro'
import TabBar from '@/components/TabBar.vue'
import NavHeader from '@/components/NavHeader.vue'
import Taro from '@tarojs/taro'
......
......@@ -6,7 +6,7 @@
<view class="px-[32rpx] mt-[32rpx]">
<!-- Search Bar -->
<view class="flex items-center w-full h-[88rpx] bg-white rounded-full px-[32rpx] mb-[32rpx] shadow-sm">
<IconFont name="Search" class="text-gray-400 mr-[16rpx]" size="18" />
<IconFont name="search" class="text-gray-400 mr-[16rpx]" size="18" />
<input type="text" placeholder="搜索问题或关键词" placeholder-class="text-gray-400 text-[28rpx]"
class="flex-1 text-[28rpx] text-gray-800 h-full" />
</view>
......@@ -18,12 +18,12 @@
>
<view class="flex items-center z-10">
<view class="w-[80rpx] h-[80rpx] rounded-[16rpx] bg-blue-50 flex items-center justify-center mr-[24rpx]">
<IconFont name="Service" size="24" color="#2563EB" />
<IconFont name="service" size="24" color="#2563EB" />
</view>
<text class="text-[32rpx] text-gray-900 font-medium">联系客服</text>
</view>
<view class="z-10">
<IconFont name="RectRight" class="text-gray-400" size="16" />
<IconFont name="rectRight" class="text-gray-400" size="16" />
</view>
</view>
......@@ -38,7 +38,7 @@
<view class="w-[12rpx] h-[12rpx] rounded-full bg-blue-600 mr-[24rpx]"></view>
<text class="text-[28rpx] text-gray-800">{{ item.title }}</text>
</view>
<IconFont name="RectRight" class="text-gray-400" size="16" />
<IconFont name="rectRight" class="text-gray-400" size="16" />
</view>
</view>
</view>
......@@ -59,7 +59,7 @@
<text class="text-[24rpx] text-gray-500">遇到问题?请通过以下方式联系我们</text>
</view>
<view class="w-[64rpx] h-[64rpx] bg-gray-100 rounded-full flex items-center justify-center" @tap="showContactPopup = false">
<IconFont name="Close" size="18" color="#6B7280" />
<IconFont name="close" size="18" color="#6B7280" />
</view>
</view>
......@@ -98,7 +98,7 @@
<!-- Header -->
<view class="flex-shrink-0 px-[32rpx] py-[20rpx] bg-white border-b border-gray-100 flex items-center">
<view class="w-[64rpx] h-[64rpx] flex items-center justify-center -ml-[16rpx]" @tap="showQuestionPopup = false">
<IconFont name="Close" size="20" color="#374151" />
<IconFont name="close" size="20" color="#374151" />
</view>
<text class="flex-1 text-[34rpx] font-bold text-gray-900 text-center pr-[48rpx] truncate">{{ currentQuestion?.title }}</text>
</view>
......@@ -120,7 +120,7 @@
import { ref } from 'vue'
import NavHeader from '@/components/NavHeader.vue'
import TabBar from '@/components/TabBar.vue'
import IconFont from '@/components/IconFont.vue'
import { IconFont } from '@nutui/icons-vue-taro'
// Popup 状态
const showContactPopup = ref(false)
......
......@@ -14,7 +14,7 @@
class="flex items-center w-full h-[88rpx] bg-white/20 backdrop-blur-md rounded-full px-[32rpx] border border-white/30"
@tap="go('/pages/search/index')"
>
<IconFont name="Search" class="text-white/80 mr-[16rpx]" size="18" />
<IconFont name="search" class="text-white/80 mr-[16rpx]" size="18" />
<text class="text-white/80 text-[28rpx]">搜索培训资料、案例...</text>
</view>
</view>
......@@ -44,7 +44,7 @@
<text class="text-gray-900 text-[32rpx] font-bold">热卖产品:</text>
<view class="flex items-center text-blue-600" @tap="go('/pages/knowledge-base/index')">
<text class="text-[26rpx] mr-[4rpx]">查看更多</text>
<IconFont name="RectRight" size="12" />
<IconFont name="rectRight" size="12" />
</view>
</view>
......@@ -121,7 +121,7 @@
<text class="text-gray-900 text-[32rpx] font-bold">本周热门资料</text>
<view class="flex items-center text-blue-600" @tap="go('/pages/material-list/index')">
<text class="text-[26rpx] mr-[4rpx]">查看更多</text>
<IconFont name="RectRight" size="12" />
<IconFont name="rectRight" size="12" />
</view>
</view>
......@@ -179,16 +179,16 @@ import { ref, shallowRef } from 'vue';
import Taro, { useShareAppMessage } from '@tarojs/taro';
import { useGo } from '@/hooks/useGo';
import TabBar from '@/components/TabBar.vue';
import IconFont from '@/components/IconFont.vue';
import { IconFont } from '@nutui/icons-vue-taro';
// Grid navigation data with routes
const loopData0 = shallowRef([
{ icon: 'Order', lanhutext0: '计划书', route: '/pages/plan/index' },
{ icon: 'My', lanhutext0: '入职相关', route: '/pages/onboarding/index' },
{ icon: 'Cart', lanhutext0: '签单相关', route: '/pages/signing/index' },
{ icon: 'Home', lanhutext0: '家办相关', route: '/pages/family-office/index' },
{ icon: 'Category', lanhutext0: '产品知识库', route: '/pages/knowledge-base/index' },
{ icon: 'Star', lanhutext0: '工具箱', route: null }, // 待开发
{ icon: 'order', lanhutext0: '计划书', route: '/pages/plan/index' },
{ icon: 'my', lanhutext0: '入职相关', route: '/pages/onboarding/index' },
{ icon: 'cart', lanhutext0: '签单相关', route: '/pages/signing/index' },
{ icon: 'home', lanhutext0: '家办相关', route: '/pages/family-office/index' },
{ icon: 'category', lanhutext0: '产品知识库', route: '/pages/knowledge-base/index' },
{ icon: 'star', lanhutext0: '工具箱', route: null }, // 待开发
]);
// Navigation
......
......@@ -10,7 +10,7 @@
<!-- Search Bar -->
<div class="px-[32rpx] mt-[32rpx]">
<div class="bg-white rounded-[12rpx] flex items-center px-[32rpx] py-[24rpx]">
<IconFont name="Search" size="20" color="#9CA3AF" customClass="mr-[16rpx]" />
<IconFont name="search" size="20" color="#9CA3AF" class="mr-[16rpx]" />
<input
v-model="searchValue"
type="text"
......@@ -48,7 +48,7 @@
:name="item.collected ? 'StarFill' : 'Star'"
size="12"
:color="item.collected ? '#F59E0B' : '#9CA3AF'"
customClass="mr-[8rpx]"
class="mr-[8rpx]"
/>
<span :class="['text-[24rpx]', item.collected ? 'text-[#F59E0B]' : 'text-[#9CA3AF]']">
{{ item.collected ? '已收藏' : '收藏' }}
......@@ -71,7 +71,7 @@
import { ref } from 'vue'
import NavHeader from '@/components/NavHeader.vue'
import TabBar from '@/components/TabBar.vue'
import IconFont from '@/components/IconFont.vue'
import { IconFont } from '@nutui/icons-vue-taro'
import Taro from '@tarojs/taro'
const searchValue = ref('')
......
......@@ -23,7 +23,7 @@
</view>
<!-- Arrow -->
<IconFont name="RectRight" size="20" color="#9CA3AF" />
<IconFont name="rectRight" size="20" color="#9CA3AF" />
</view>
<!-- Menu List -->
......@@ -44,7 +44,7 @@
</view>
<text class="text-[32rpx] text-gray-800">{{ item.title }}</text>
</view>
<IconFont name="RectRight" size="16" color="#9CA3AF" />
<IconFont name="rectRight" size="16" color="#9CA3AF" />
</view>
<!-- Separator -->
<view v-if="index < menuItems.length - 1" class="h-[2rpx] bg-gray-100 w-full"></view>
......@@ -57,7 +57,7 @@
class="flex items-center justify-center py-[20rpx] px-[32rpx] rounded-[16rpx] border-[2rpx] border-[#FEE2E2] bg-[#FEF2F2] active:opacity-70"
@tap="handleLogout"
>
<IconFont name="Issue" size="18" color="#EF4444" customClass="mr-[12rpx]" />
<IconFont name="issue" size="18" color="#EF4444" class="mr-[12rpx]" />
<text class="text-[28rpx] text-[#EF4444] font-medium">退出登录</text>
</view>
</view>
......@@ -69,7 +69,7 @@
<script setup>
import { useGo } from '@/hooks/useGo'
import IconFont from '@/components/IconFont.vue'
import { IconFont } from '@nutui/icons-vue-taro'
import TabBar from '@/components/TabBar.vue'
import NavHeader from '@/components/NavHeader.vue'
import Taro from '@tarojs/taro'
......
......@@ -7,7 +7,7 @@
<view class="bg-white px-[24rpx] py-[16rpx]">
<nut-searchbar v-model="searchValue" placeholder="搜索计划书名称、客户姓名..." @search="onSearch" clearable>
<template #left-in>
<IconFont name="Search" size="14" />
<IconFont name="search" size="14" />
</template>
</nut-searchbar>
</view>
......@@ -55,11 +55,11 @@
<!-- Actions -->
<view class="flex justify-end gap-[24rpx]">
<view class="flex items-center text-gray-500" @tap="onDelete(item)">
<IconFont name="Del" size="14" class="mr-[8rpx]" />
<IconFont name="del" size="14" class="mr-[8rpx]" />
<text class="text-[24rpx]">删除</text>
</view>
<view class="flex items-center text-blue-600" @tap="onView(item)">
<IconFont name="Order" size="14" class="mr-[8rpx]" />
<IconFont name="order" size="14" class="mr-[8rpx]" />
<text class="text-[24rpx]">查看</text>
</view>
</view>
......@@ -68,7 +68,7 @@
<!-- Empty State -->
<view v-if="filteredList.length === 0"
class="flex flex-col items-center justify-center py-[100rpx] text-gray-400">
<IconFont name="Order" size="48" class="mb-[24rpx] opacity-50" />
<IconFont name="order" size="48" class="mb-[24rpx] opacity-50" />
<text class="text-[28rpx]">暂无相关计划书</text>
</view>
</view>
......@@ -86,7 +86,7 @@
<script setup>
import { ref, computed } from 'vue'
import { useGo } from '@/hooks/useGo'
import IconFont from '@/components/IconFont.vue'
import { IconFont } from '@nutui/icons-vue-taro'
import TabBar from '@/components/TabBar.vue'
import NavHeader from '@/components/NavHeader.vue'
import Taro from '@tarojs/taro'
......
......@@ -71,7 +71,7 @@
<div class="flex flex-col gap-[32rpx]">
<div v-for="(feature, index) in features" :key="index" class="flex items-start">
<div class="w-[48rpx] h-[48rpx] rounded-full bg-blue-50 flex items-center justify-center mr-[24rpx] flex-shrink-0">
<IconFont name="Check" size="14" color="#2563EB" />
<IconFont name="check" size="14" color="#2563EB" />
</div>
<div class="flex-1">
<div class="text-[#1F2937] text-[28rpx] font-medium leading-[1.4]">{{ feature.title }}</div>
......@@ -94,13 +94,13 @@
>
<div class="flex items-center justify-between mb-[8rpx]">
<div class="flex items-center flex-1 mr-[24rpx]">
<IconFont :name="file.iconName" size="24" :color="file.iconColor" customClass="mr-[24rpx]" />
<IconFont :name="file.iconName" size="24" :color="file.iconColor" class="mr-[24rpx]" />
<div class="flex flex-col">
<span class="text-[#1F2937] text-[28rpx] font-medium mb-[4rpx] line-clamp-1">{{ file.name }}</span>
<span class="text-[#9CA3AF] text-[24rpx]">{{ file.size }}</span>
</div>
</div>
<IconFont name="Download" size="20" color="#2563EB" @tap="onDownload(file)" />
<IconFont name="download" size="20" color="#2563EB" @tap="onDownload(file)" />
</div>
</div>
</div>
......@@ -116,7 +116,7 @@
import { ref } from 'vue'
import NavHeader from '@/components/NavHeader.vue'
import TabBar from '@/components/TabBar.vue'
import IconFont from '@/components/IconFont.vue'
import { IconFont } from '@nutui/icons-vue-taro'
import Taro, { useLoad } from '@tarojs/taro'
// 接收页面参数
......@@ -186,7 +186,7 @@ const files = ref([
size: '2.3MB',
fileName: '产品条款.pdf',
downloadUrl: 'https://cdn.ipadbiz.cn/manulife/document/1_%E7%BE%8E%E4%B9%90%E7%88%B1%E8%A7%89%E6%95%99%E8%82%B22024%E9%A1%B9%E7%9B%AE%E5%9B%BE%E5%BD%B1%E4%BB%8B%E7%BB%8D_.pdf',
iconName: 'Order',
iconName: 'order',
iconColor: '#EF4444',
fileType: 'pdf',
showTip: false,
......@@ -197,7 +197,7 @@ const files = ref([
size: '1.8MB',
fileName: '投保须知.docx',
downloadUrl: 'https://cdn.ipadbiz.cn/manulife/document/%E8%80%81%E6%9D%A5%E8%B5%9B%E9%9A%90%E7%A7%81%E6%94%BF%E7%AD%96.docx',
iconName: 'Order',
iconName: 'order',
iconColor: '#2563EB',
fileType: 'docx',
showTip: true,
......@@ -208,7 +208,7 @@ const files = ref([
size: '3.2MB',
fileName: '健康告知.pptx',
downloadUrl: 'https://cdn.ipadbiz.cn/manulife/document/%E8%82%A1%E5%88%A4%E5%90%88%E5%8F%8B%E7%94%A8%E7%9F%A5%E8%AF%86%E8%AF%B4%E6%98%8E20240112110417414.pptx',
iconName: 'Order',
iconName: 'order',
iconColor: '#F59E0B',
fileType: 'pptx',
showTip: true,
......@@ -219,7 +219,7 @@ const files = ref([
size: '1.5MB',
fileName: '保险责任说明.xlsx',
downloadUrl: 'https://cdn.ipadbiz.cn/manulife/document/%E8%80%81%E6%9D%A5%E8%B5%9B%E9%9A%90%E7%A7%81%E6%94%BF%E7%AD%96.docx',
iconName: 'Order',
iconName: 'order',
iconColor: '#10B981',
fileType: 'xlsx',
showTip: true,
......
......@@ -7,7 +7,7 @@
<view class="px-[40rpx] mt-[40rpx]">
<!-- Search Input -->
<view class="flex items-center w-full h-[88rpx] bg-white rounded-full px-[32rpx] border border-gray-200 mb-[40rpx]">
<IconFont name="Search" class="text-gray-400 mr-[16rpx]" size="18" />
<IconFont name="search" class="text-gray-400 mr-[16rpx]" size="18" />
<input
v-model="searchKeyword"
type="text"
......@@ -16,7 +16,7 @@
@confirm="handleSearch"
/>
<view v-if="searchKeyword" class="ml-[16rpx]" @tap="clearSearch">
<IconFont name="Close" class="text-gray-400" size="16" />
<IconFont name="close" class="text-gray-400" size="16" />
</view>
</view>
......@@ -100,7 +100,7 @@
<!-- Initial State -->
<view v-else class="flex flex-col items-center justify-center py-[120rpx]">
<IconFont name="Search" class="text-gray-300 mb-[24rpx]" size="64" />
<IconFont name="search" class="text-gray-300 mb-[24rpx]" size="64" />
<view class="text-[#6B7280] text-[28rpx]">搜索培训资料、案例、产品</view>
<view class="text-[#9CA3AF] text-[24rpx] mt-[12rpx]">输入关键词开始搜索</view>
</view>
......@@ -113,7 +113,7 @@ import { ref, computed } from 'vue'
import Taro from '@tarojs/taro'
import { useGo } from '@/hooks/useGo'
import NavHeader from '@/components/NavHeader.vue'
import IconFont from '@/components/IconFont.vue'
import { IconFont } from '@nutui/icons-vue-taro'
// Navigation
const go = useGo()
......