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>
Showing
17 changed files
with
66 additions
and
135 deletions
| ... | @@ -33,13 +33,13 @@ | ... | @@ -33,13 +33,13 @@ |
| 33 | <view class="preview-container"> | 33 | <view class="preview-container"> |
| 34 | <!-- 加载状态 --> | 34 | <!-- 加载状态 --> |
| 35 | <view v-if="loading" class="loading-container"> | 35 | <view v-if="loading" class="loading-container"> |
| 36 | - <IconFont name="Loading" size="24" class="animate-spin text-blue-600" /> | 36 | + <IconFont name="loading" size="24" class="animate-spin text-blue-600" /> |
| 37 | <text class="loading-text">{{ loadingText }}</text> | 37 | <text class="loading-text">{{ loadingText }}</text> |
| 38 | </view> | 38 | </view> |
| 39 | 39 | ||
| 40 | <!-- 错误状态 --> | 40 | <!-- 错误状态 --> |
| 41 | <view v-else-if="error" class="error-container"> | 41 | <view v-else-if="error" class="error-container"> |
| 42 | - <IconFont name="Issue" size="48" color="#ff6b6b" /> | 42 | + <IconFont name="issue" size="48" color="#ff6b6b" /> |
| 43 | <text class="error-text">{{ error }}</text> | 43 | <text class="error-text">{{ error }}</text> |
| 44 | <nut-button type="primary" size="small" @click="retry"> | 44 | <nut-button type="primary" size="small" @click="retry"> |
| 45 | 重试 | 45 | 重试 |
| ... | @@ -75,7 +75,7 @@ | ... | @@ -75,7 +75,7 @@ |
| 75 | <script setup> | 75 | <script setup> |
| 76 | import { ref, computed, watch } from 'vue' | 76 | import { ref, computed, watch } from 'vue' |
| 77 | import { getFileSize, detectFileType, formatFileSize } from './utils' | 77 | import { getFileSize, detectFileType, formatFileSize } from './utils' |
| 78 | -import IconFont from '@/components/IconFont.vue' | 78 | +import { IconFont } from '@nutui/icons-vue-taro' |
| 79 | 79 | ||
| 80 | // #ifdef H5 | 80 | // #ifdef H5 |
| 81 | import OfficeViewer from '../OfficeViewer.vue' | 81 | import OfficeViewer from '../OfficeViewer.vue' | ... | ... |
| 1 | <!-- | 1 | <!-- |
| 2 | * @Date: 2026-01-29 21:30:20 | 2 | * @Date: 2026-01-29 21:30:20 |
| 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 4 | - * @LastEditTime: 2026-01-30 17:16:13 | 4 | + * @LastEditTime: 2026-01-30 18:13:56 |
| 5 | * @FilePath: /manulife-weapp/src/components/IconFont.vue | 5 | * @FilePath: /manulife-weapp/src/components/IconFont.vue |
| 6 | * @Description: 图标字体组件 | 6 | * @Description: 图标字体组件 |
| 7 | --> | 7 | --> |
| 8 | <template> | 8 | <template> |
| 9 | - <component :is="iconComponent" v-if="iconComponent" :size="size" :class="customClass" :color="color" /> | 9 | + <IconFontBase :name="name" :size="size" :color="color" :class="customClass" /> |
| 10 | </template> | 10 | </template> |
| 11 | 11 | ||
| 12 | <script setup> | 12 | <script setup> |
| 13 | -import { computed } from 'vue'; | 13 | +import { IconFont as IconFontBase } from '@nutui/icons-vue-taro' |
| 14 | -import { | ||
| 15 | - Cart, | ||
| 16 | - Category, | ||
| 17 | - Check, | ||
| 18 | - Checklist, | ||
| 19 | - Clock, | ||
| 20 | - Download, | ||
| 21 | - Edit, | ||
| 22 | - Find, | ||
| 23 | - Home, | ||
| 24 | - Issue, | ||
| 25 | - Link, | ||
| 26 | - Loading, | ||
| 27 | - Location, | ||
| 28 | - My, | ||
| 29 | - Order, | ||
| 30 | - People, | ||
| 31 | - PlayCircleFill, | ||
| 32 | - Refresh, | ||
| 33 | - RectRight, | ||
| 34 | - RectLeft, | ||
| 35 | - Search, | ||
| 36 | - Service, | ||
| 37 | - Star, | ||
| 38 | - StarFill, | ||
| 39 | - Top, | ||
| 40 | - Photograph, | ||
| 41 | - Del, | ||
| 42 | - Close, | ||
| 43 | -} from '@nutui/icons-vue-taro'; | ||
| 44 | 14 | ||
| 45 | const props = defineProps({ | 15 | const props = defineProps({ |
| 46 | name: { | 16 | name: { |
| ... | @@ -59,40 +29,5 @@ const props = defineProps({ | ... | @@ -59,40 +29,5 @@ const props = defineProps({ |
| 59 | type: String, | 29 | type: String, |
| 60 | default: '' | 30 | default: '' |
| 61 | } | 31 | } |
| 62 | -}); | 32 | +}) |
| 63 | - | ||
| 64 | -const icons = { | ||
| 65 | - Cart, | ||
| 66 | - Category, | ||
| 67 | - Check, | ||
| 68 | - Checklist, | ||
| 69 | - Clock, | ||
| 70 | - Download, | ||
| 71 | - Edit, | ||
| 72 | - Find, | ||
| 73 | - Home, | ||
| 74 | - Issue, | ||
| 75 | - Link, | ||
| 76 | - Loading, | ||
| 77 | - Location, | ||
| 78 | - My, | ||
| 79 | - Order, | ||
| 80 | - People, | ||
| 81 | - PlayCircleFill, | ||
| 82 | - Refresh, | ||
| 83 | - RectRight, | ||
| 84 | - RectLeft, | ||
| 85 | - Search, | ||
| 86 | - Service, | ||
| 87 | - Star, | ||
| 88 | - StarFill, | ||
| 89 | - Top, | ||
| 90 | - Photograph, | ||
| 91 | - Del, | ||
| 92 | - Close, | ||
| 93 | -}; | ||
| 94 | - | ||
| 95 | -const iconComponent = computed(() => { | ||
| 96 | - return icons[props.name] || null; | ||
| 97 | -}); | ||
| 98 | </script> | 33 | </script> | ... | ... |
| ... | @@ -12,7 +12,7 @@ | ... | @@ -12,7 +12,7 @@ |
| 12 | <div class="fixed top-0 left-0 z-50 w-full h-[250rpx] bg-gradient-to-b from-[#1E3A8A] to-[#2563EB] pt-[100rpx]"> | 12 | <div class="fixed top-0 left-0 z-50 w-full h-[250rpx] bg-gradient-to-b from-[#1E3A8A] to-[#2563EB] pt-[100rpx]"> |
| 13 | <div class="relative w-full h-full flex items-center justify-center px-[32rpx]"> | 13 | <div class="relative w-full h-full flex items-center justify-center px-[32rpx]"> |
| 14 | <div v-if="canGoBack" class="absolute left-[32rpx] flex items-center justify-center w-[60rpx] h-[60rpx]" @tap="goBack"> | 14 | <div v-if="canGoBack" class="absolute left-[32rpx] flex items-center justify-center w-[60rpx] h-[60rpx]" @tap="goBack"> |
| 15 | - <IconFont name="RectLeft" size="18" color="#fff" /> | 15 | + <IconFont name="rectLeft" size="18" color="#fff" /> |
| 16 | </div> | 16 | </div> |
| 17 | <span class="text-white text-[35rpx] font-normal">{{ title }}</span> | 17 | <span class="text-white text-[35rpx] font-normal">{{ title }}</span> |
| 18 | </div> | 18 | </div> |
| ... | @@ -22,7 +22,7 @@ | ... | @@ -22,7 +22,7 @@ |
| 22 | <script setup> | 22 | <script setup> |
| 23 | import { ref, onMounted } from 'vue' | 23 | import { ref, onMounted } from 'vue' |
| 24 | import Taro from '@tarojs/taro' | 24 | import Taro from '@tarojs/taro' |
| 25 | -import IconFont from '@/components/IconFont.vue' | 25 | +import { IconFont } from '@nutui/icons-vue-taro' |
| 26 | 26 | ||
| 27 | defineProps({ | 27 | defineProps({ |
| 28 | title: { | 28 | title: { | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <view class="office-viewer"> | 2 | <view class="office-viewer"> |
| 3 | <view v-if="error" class="error-container"> | 3 | <view v-if="error" class="error-container"> |
| 4 | - <IconFont name="Issue" size="24" color="#ff6b6b" /> | 4 | + <IconFont name="issue" size="24" color="#ff6b6b" /> |
| 5 | <text class="error-text">{{ error }}</text> | 5 | <text class="error-text">{{ error }}</text> |
| 6 | <nut-button type="primary" size="small" class="retry-btn" @click="retry">重试</nut-button> | 6 | <nut-button type="primary" size="small" class="retry-btn" @click="retry">重试</nut-button> |
| 7 | </view> | 7 | </view> |
| ... | @@ -17,21 +17,21 @@ | ... | @@ -17,21 +17,21 @@ |
| 17 | @load="on_loaded" | 17 | @load="on_loaded" |
| 18 | /> | 18 | /> |
| 19 | <view v-else class="unsupported-container"> | 19 | <view v-else class="unsupported-container"> |
| 20 | - <IconFont name="Issue" size="24" color="#ff6b6b" /> | 20 | + <IconFont name="issue" size="24" color="#ff6b6b" /> |
| 21 | <text class="unsupported-text">不支持的文件类型: {{ normalized_type || '未知' }}</text> | 21 | <text class="unsupported-text">不支持的文件类型: {{ normalized_type || '未知' }}</text> |
| 22 | </view> | 22 | </view> |
| 23 | <!-- #endif --> | 23 | <!-- #endif --> |
| 24 | 24 | ||
| 25 | <!-- #ifdef WEAPP --> | 25 | <!-- #ifdef WEAPP --> |
| 26 | <view class="unsupported-container"> | 26 | <view class="unsupported-container"> |
| 27 | - <IconFont name="Issue" size="24" color="#ff6b6b" /> | 27 | + <IconFont name="issue" size="24" color="#ff6b6b" /> |
| 28 | <text class="unsupported-text">小程序不支持内嵌 Office 预览</text> | 28 | <text class="unsupported-text">小程序不支持内嵌 Office 预览</text> |
| 29 | </view> | 29 | </view> |
| 30 | <!-- #endif --> | 30 | <!-- #endif --> |
| 31 | </view> | 31 | </view> |
| 32 | 32 | ||
| 33 | <view v-if="loading" class="loading-overlay"> | 33 | <view v-if="loading" class="loading-overlay"> |
| 34 | - <IconFont name="Loading" size="24" class="animate-spin text-blue-600" /> | 34 | + <IconFont name="loading" size="24" class="animate-spin text-blue-600" /> |
| 35 | <text class="loading-text">加载中...</text> | 35 | <text class="loading-text">加载中...</text> |
| 36 | </view> | 36 | </view> |
| 37 | </view> | 37 | </view> |
| ... | @@ -39,7 +39,7 @@ | ... | @@ -39,7 +39,7 @@ |
| 39 | 39 | ||
| 40 | <script setup> | 40 | <script setup> |
| 41 | import { ref, computed, watch } from 'vue' | 41 | import { ref, computed, watch } from 'vue' |
| 42 | -import IconFont from '@/components/IconFont.vue' | 42 | +import { IconFont } from '@nutui/icons-vue-taro' |
| 43 | import { getTencentPreviewUrl } from '@/components/DocumentPreview/utils' | 43 | import { getTencentPreviewUrl } from '@/components/DocumentPreview/utils' |
| 44 | 44 | ||
| 45 | const props = defineProps({ | 45 | const props = defineProps({ | ... | ... |
| ... | @@ -9,7 +9,7 @@ | ... | @@ -9,7 +9,7 @@ |
| 9 | <view class="header"> | 9 | <view class="header"> |
| 10 | <text class="title">{{ title || 'PDF 预览' }}</text> | 10 | <text class="title">{{ title || 'PDF 预览' }}</text> |
| 11 | <view class="close" @tap="close"> | 11 | <view class="close" @tap="close"> |
| 12 | - <IconFont name="Del" size="16" color="#666" /> | 12 | + <IconFont name="del" size="16" color="#666" /> |
| 13 | </view> | 13 | </view> |
| 14 | </view> | 14 | </view> |
| 15 | 15 | ||
| ... | @@ -35,7 +35,7 @@ | ... | @@ -35,7 +35,7 @@ |
| 35 | </view> | 35 | </view> |
| 36 | 36 | ||
| 37 | <view v-if="loading" class="loading"> | 37 | <view v-if="loading" class="loading"> |
| 38 | - <IconFont name="Loading" size="24" class="animate-spin text-blue-600" /> | 38 | + <IconFont name="loading" size="24" class="animate-spin text-blue-600" /> |
| 39 | <text class="loading-text">加载中...</text> | 39 | <text class="loading-text">加载中...</text> |
| 40 | </view> | 40 | </view> |
| 41 | </view> | 41 | </view> |
| ... | @@ -44,7 +44,7 @@ | ... | @@ -44,7 +44,7 @@ |
| 44 | 44 | ||
| 45 | <script setup> | 45 | <script setup> |
| 46 | import { ref, watch } from 'vue' | 46 | import { ref, watch } from 'vue' |
| 47 | -import IconFont from '@/components/IconFont.vue' | 47 | +import { IconFont } from '@nutui/icons-vue-taro' |
| 48 | 48 | ||
| 49 | const props = defineProps({ | 49 | const props = defineProps({ |
| 50 | show: { | 50 | show: { | ... | ... |
| ... | @@ -9,12 +9,12 @@ | ... | @@ -9,12 +9,12 @@ |
| 9 | <text class="text-[#6b7280] text-[24rpx] mt-[8rpx] leading-[32rpx]">{{ subtitle }}</text> | 9 | <text class="text-[#6b7280] text-[24rpx] mt-[8rpx] leading-[32rpx]">{{ subtitle }}</text> |
| 10 | </view> | 10 | </view> |
| 11 | </view> | 11 | </view> |
| 12 | - <IconFont name="RectRight" class="text-gray-400" size="16" /> | 12 | + <IconFont name="rectRight" class="text-gray-400" size="16" /> |
| 13 | </view> | 13 | </view> |
| 14 | </template> | 14 | </template> |
| 15 | 15 | ||
| 16 | <script setup> | 16 | <script setup> |
| 17 | -import IconFont from './IconFont.vue' | 17 | +import { IconFont } from '@nutui/icons-vue-taro' |
| 18 | 18 | ||
| 19 | /** | 19 | /** |
| 20 | * Section Item Component | 20 | * Section Item Component | ... | ... |
| ... | @@ -30,7 +30,7 @@ | ... | @@ -30,7 +30,7 @@ |
| 30 | 30 | ||
| 31 | <script setup> | 31 | <script setup> |
| 32 | import { ref, shallowRef } from 'vue' | 32 | import { ref, shallowRef } from 'vue' |
| 33 | -import IconFont from '@/components/IconFont.vue' | 33 | +import { IconFont } from '@nutui/icons-vue-taro' |
| 34 | import { useGo } from '@/hooks/useGo' | 34 | import { useGo } from '@/hooks/useGo' |
| 35 | import Taro from '@tarojs/taro' | 35 | import Taro from '@tarojs/taro' |
| 36 | 36 | ... | ... |
| ... | @@ -16,7 +16,7 @@ | ... | @@ -16,7 +16,7 @@ |
| 16 | <img :src="avatarUrl" /> | 16 | <img :src="avatarUrl" /> |
| 17 | </nut-avatar> | 17 | </nut-avatar> |
| 18 | <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]"> | 18 | <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]"> |
| 19 | - <IconFont name="Photograph" color="#fff" size="24" /> | 19 | + <IconFont name="photograph" color="#fff" size="24" /> |
| 20 | </view> | 20 | </view> |
| 21 | </view> | 21 | </view> |
| 22 | 22 | ||
| ... | @@ -36,7 +36,7 @@ | ... | @@ -36,7 +36,7 @@ |
| 36 | <script setup> | 36 | <script setup> |
| 37 | import { ref } from 'vue' | 37 | import { ref } from 'vue' |
| 38 | import { useGo } from '@/hooks/useGo' | 38 | import { useGo } from '@/hooks/useGo' |
| 39 | -import IconFont from '@/components/IconFont.vue' | 39 | +import { IconFont } from '@nutui/icons-vue-taro' |
| 40 | import NavHeader from '@/components/NavHeader.vue' | 40 | import NavHeader from '@/components/NavHeader.vue' |
| 41 | import Taro from '@tarojs/taro' | 41 | import Taro from '@tarojs/taro' |
| 42 | 42 | ... | ... |
| ... | @@ -43,7 +43,7 @@ | ... | @@ -43,7 +43,7 @@ |
| 43 | <view class="flex items-center gap-[16rpx]"> | 43 | <view class="flex items-center gap-[16rpx]"> |
| 44 | <!-- Delete Button --> | 44 | <!-- Delete Button --> |
| 45 | <view class="p-[10rpx]" @tap.stop="onDelete(item)"> | 45 | <view class="p-[10rpx]" @tap.stop="onDelete(item)"> |
| 46 | - <IconFont name="Del" size="18" color="#999" /> | 46 | + <IconFont name="del" size="18" color="#999" /> |
| 47 | </view> | 47 | </view> |
| 48 | </view> | 48 | </view> |
| 49 | </view> | 49 | </view> |
| ... | @@ -51,7 +51,7 @@ | ... | @@ -51,7 +51,7 @@ |
| 51 | <!-- Empty State --> | 51 | <!-- Empty State --> |
| 52 | <view v-if="filteredList.length === 0" | 52 | <view v-if="filteredList.length === 0" |
| 53 | class="flex flex-col items-center justify-center py-[100rpx] text-gray-400"> | 53 | class="flex flex-col items-center justify-center py-[100rpx] text-gray-400"> |
| 54 | - <IconFont name="Star" size="48" class="mb-[24rpx] opacity-50" /> | 54 | + <IconFont name="star" size="48" class="mb-[24rpx] opacity-50" /> |
| 55 | <text class="text-[28rpx]">暂无收藏内容</text> | 55 | <text class="text-[28rpx]">暂无收藏内容</text> |
| 56 | </view> | 56 | </view> |
| 57 | </view> | 57 | </view> |
| ... | @@ -64,7 +64,7 @@ | ... | @@ -64,7 +64,7 @@ |
| 64 | <script setup> | 64 | <script setup> |
| 65 | import { ref, computed } from 'vue' | 65 | import { ref, computed } from 'vue' |
| 66 | import { useGo } from '@/hooks/useGo' | 66 | import { useGo } from '@/hooks/useGo' |
| 67 | -import IconFont from '@/components/IconFont.vue' | 67 | +import { IconFont } from '@nutui/icons-vue-taro' |
| 68 | import TabBar from '@/components/TabBar.vue' | 68 | import TabBar from '@/components/TabBar.vue' |
| 69 | import NavHeader from '@/components/NavHeader.vue' | 69 | import NavHeader from '@/components/NavHeader.vue' |
| 70 | import Taro from '@tarojs/taro' | 70 | import Taro from '@tarojs/taro' | ... | ... |
| ... | @@ -6,7 +6,7 @@ | ... | @@ -6,7 +6,7 @@ |
| 6 | <view class="px-[32rpx] mt-[32rpx]"> | 6 | <view class="px-[32rpx] mt-[32rpx]"> |
| 7 | <!-- Search Bar --> | 7 | <!-- Search Bar --> |
| 8 | <view class="flex items-center w-full h-[88rpx] bg-white rounded-full px-[32rpx] mb-[32rpx] shadow-sm"> | 8 | <view class="flex items-center w-full h-[88rpx] bg-white rounded-full px-[32rpx] mb-[32rpx] shadow-sm"> |
| 9 | - <IconFont name="Search" class="text-gray-400 mr-[16rpx]" size="18" /> | 9 | + <IconFont name="search" class="text-gray-400 mr-[16rpx]" size="18" /> |
| 10 | <input type="text" placeholder="搜索问题或关键词" placeholder-class="text-gray-400 text-[28rpx]" | 10 | <input type="text" placeholder="搜索问题或关键词" placeholder-class="text-gray-400 text-[28rpx]" |
| 11 | class="flex-1 text-[28rpx] text-gray-800 h-full" /> | 11 | class="flex-1 text-[28rpx] text-gray-800 h-full" /> |
| 12 | </view> | 12 | </view> |
| ... | @@ -18,12 +18,12 @@ | ... | @@ -18,12 +18,12 @@ |
| 18 | > | 18 | > |
| 19 | <view class="flex items-center z-10"> | 19 | <view class="flex items-center z-10"> |
| 20 | <view class="w-[80rpx] h-[80rpx] rounded-[16rpx] bg-blue-50 flex items-center justify-center mr-[24rpx]"> | 20 | <view class="w-[80rpx] h-[80rpx] rounded-[16rpx] bg-blue-50 flex items-center justify-center mr-[24rpx]"> |
| 21 | - <IconFont name="Service" size="24" color="#2563EB" /> | 21 | + <IconFont name="service" size="24" color="#2563EB" /> |
| 22 | </view> | 22 | </view> |
| 23 | <text class="text-[32rpx] text-gray-900 font-medium">联系客服</text> | 23 | <text class="text-[32rpx] text-gray-900 font-medium">联系客服</text> |
| 24 | </view> | 24 | </view> |
| 25 | <view class="z-10"> | 25 | <view class="z-10"> |
| 26 | - <IconFont name="RectRight" class="text-gray-400" size="16" /> | 26 | + <IconFont name="rectRight" class="text-gray-400" size="16" /> |
| 27 | </view> | 27 | </view> |
| 28 | </view> | 28 | </view> |
| 29 | 29 | ||
| ... | @@ -38,7 +38,7 @@ | ... | @@ -38,7 +38,7 @@ |
| 38 | <view class="w-[12rpx] h-[12rpx] rounded-full bg-blue-600 mr-[24rpx]"></view> | 38 | <view class="w-[12rpx] h-[12rpx] rounded-full bg-blue-600 mr-[24rpx]"></view> |
| 39 | <text class="text-[28rpx] text-gray-800">{{ item.title }}</text> | 39 | <text class="text-[28rpx] text-gray-800">{{ item.title }}</text> |
| 40 | </view> | 40 | </view> |
| 41 | - <IconFont name="RectRight" class="text-gray-400" size="16" /> | 41 | + <IconFont name="rectRight" class="text-gray-400" size="16" /> |
| 42 | </view> | 42 | </view> |
| 43 | </view> | 43 | </view> |
| 44 | </view> | 44 | </view> |
| ... | @@ -59,7 +59,7 @@ | ... | @@ -59,7 +59,7 @@ |
| 59 | <text class="text-[24rpx] text-gray-500">遇到问题?请通过以下方式联系我们</text> | 59 | <text class="text-[24rpx] text-gray-500">遇到问题?请通过以下方式联系我们</text> |
| 60 | </view> | 60 | </view> |
| 61 | <view class="w-[64rpx] h-[64rpx] bg-gray-100 rounded-full flex items-center justify-center" @tap="showContactPopup = false"> | 61 | <view class="w-[64rpx] h-[64rpx] bg-gray-100 rounded-full flex items-center justify-center" @tap="showContactPopup = false"> |
| 62 | - <IconFont name="Close" size="18" color="#6B7280" /> | 62 | + <IconFont name="close" size="18" color="#6B7280" /> |
| 63 | </view> | 63 | </view> |
| 64 | </view> | 64 | </view> |
| 65 | 65 | ||
| ... | @@ -98,7 +98,7 @@ | ... | @@ -98,7 +98,7 @@ |
| 98 | <!-- Header --> | 98 | <!-- Header --> |
| 99 | <view class="flex-shrink-0 px-[32rpx] py-[20rpx] bg-white border-b border-gray-100 flex items-center"> | 99 | <view class="flex-shrink-0 px-[32rpx] py-[20rpx] bg-white border-b border-gray-100 flex items-center"> |
| 100 | <view class="w-[64rpx] h-[64rpx] flex items-center justify-center -ml-[16rpx]" @tap="showQuestionPopup = false"> | 100 | <view class="w-[64rpx] h-[64rpx] flex items-center justify-center -ml-[16rpx]" @tap="showQuestionPopup = false"> |
| 101 | - <IconFont name="Close" size="20" color="#374151" /> | 101 | + <IconFont name="close" size="20" color="#374151" /> |
| 102 | </view> | 102 | </view> |
| 103 | <text class="flex-1 text-[34rpx] font-bold text-gray-900 text-center pr-[48rpx] truncate">{{ currentQuestion?.title }}</text> | 103 | <text class="flex-1 text-[34rpx] font-bold text-gray-900 text-center pr-[48rpx] truncate">{{ currentQuestion?.title }}</text> |
| 104 | </view> | 104 | </view> |
| ... | @@ -120,7 +120,7 @@ | ... | @@ -120,7 +120,7 @@ |
| 120 | import { ref } from 'vue' | 120 | import { ref } from 'vue' |
| 121 | import NavHeader from '@/components/NavHeader.vue' | 121 | import NavHeader from '@/components/NavHeader.vue' |
| 122 | import TabBar from '@/components/TabBar.vue' | 122 | import TabBar from '@/components/TabBar.vue' |
| 123 | -import IconFont from '@/components/IconFont.vue' | 123 | +import { IconFont } from '@nutui/icons-vue-taro' |
| 124 | 124 | ||
| 125 | // Popup 状态 | 125 | // Popup 状态 |
| 126 | const showContactPopup = ref(false) | 126 | const showContactPopup = ref(false) | ... | ... |
| ... | @@ -14,7 +14,7 @@ | ... | @@ -14,7 +14,7 @@ |
| 14 | class="flex items-center w-full h-[88rpx] bg-white/20 backdrop-blur-md rounded-full px-[32rpx] border border-white/30" | 14 | class="flex items-center w-full h-[88rpx] bg-white/20 backdrop-blur-md rounded-full px-[32rpx] border border-white/30" |
| 15 | @tap="go('/pages/search/index')" | 15 | @tap="go('/pages/search/index')" |
| 16 | > | 16 | > |
| 17 | - <IconFont name="Search" class="text-white/80 mr-[16rpx]" size="18" /> | 17 | + <IconFont name="search" class="text-white/80 mr-[16rpx]" size="18" /> |
| 18 | <text class="text-white/80 text-[28rpx]">搜索培训资料、案例...</text> | 18 | <text class="text-white/80 text-[28rpx]">搜索培训资料、案例...</text> |
| 19 | </view> | 19 | </view> |
| 20 | </view> | 20 | </view> |
| ... | @@ -44,7 +44,7 @@ | ... | @@ -44,7 +44,7 @@ |
| 44 | <text class="text-gray-900 text-[32rpx] font-bold">热卖产品:</text> | 44 | <text class="text-gray-900 text-[32rpx] font-bold">热卖产品:</text> |
| 45 | <view class="flex items-center text-blue-600" @tap="go('/pages/knowledge-base/index')"> | 45 | <view class="flex items-center text-blue-600" @tap="go('/pages/knowledge-base/index')"> |
| 46 | <text class="text-[26rpx] mr-[4rpx]">查看更多</text> | 46 | <text class="text-[26rpx] mr-[4rpx]">查看更多</text> |
| 47 | - <IconFont name="RectRight" size="12" /> | 47 | + <IconFont name="rectRight" size="12" /> |
| 48 | </view> | 48 | </view> |
| 49 | </view> | 49 | </view> |
| 50 | 50 | ||
| ... | @@ -121,7 +121,7 @@ | ... | @@ -121,7 +121,7 @@ |
| 121 | <text class="text-gray-900 text-[32rpx] font-bold">本周热门资料</text> | 121 | <text class="text-gray-900 text-[32rpx] font-bold">本周热门资料</text> |
| 122 | <view class="flex items-center text-blue-600" @tap="go('/pages/material-list/index')"> | 122 | <view class="flex items-center text-blue-600" @tap="go('/pages/material-list/index')"> |
| 123 | <text class="text-[26rpx] mr-[4rpx]">查看更多</text> | 123 | <text class="text-[26rpx] mr-[4rpx]">查看更多</text> |
| 124 | - <IconFont name="RectRight" size="12" /> | 124 | + <IconFont name="rectRight" size="12" /> |
| 125 | </view> | 125 | </view> |
| 126 | </view> | 126 | </view> |
| 127 | 127 | ||
| ... | @@ -179,16 +179,16 @@ import { ref, shallowRef } from 'vue'; | ... | @@ -179,16 +179,16 @@ import { ref, shallowRef } from 'vue'; |
| 179 | import Taro, { useShareAppMessage } from '@tarojs/taro'; | 179 | import Taro, { useShareAppMessage } from '@tarojs/taro'; |
| 180 | import { useGo } from '@/hooks/useGo'; | 180 | import { useGo } from '@/hooks/useGo'; |
| 181 | import TabBar from '@/components/TabBar.vue'; | 181 | import TabBar from '@/components/TabBar.vue'; |
| 182 | -import IconFont from '@/components/IconFont.vue'; | 182 | +import { IconFont } from '@nutui/icons-vue-taro'; |
| 183 | 183 | ||
| 184 | // Grid navigation data with routes | 184 | // Grid navigation data with routes |
| 185 | const loopData0 = shallowRef([ | 185 | const loopData0 = shallowRef([ |
| 186 | - { icon: 'Order', lanhutext0: '计划书', route: '/pages/plan/index' }, | 186 | + { icon: 'order', lanhutext0: '计划书', route: '/pages/plan/index' }, |
| 187 | - { icon: 'My', lanhutext0: '入职相关', route: '/pages/onboarding/index' }, | 187 | + { icon: 'my', lanhutext0: '入职相关', route: '/pages/onboarding/index' }, |
| 188 | - { icon: 'Cart', lanhutext0: '签单相关', route: '/pages/signing/index' }, | 188 | + { icon: 'cart', lanhutext0: '签单相关', route: '/pages/signing/index' }, |
| 189 | - { icon: 'Home', lanhutext0: '家办相关', route: '/pages/family-office/index' }, | 189 | + { icon: 'home', lanhutext0: '家办相关', route: '/pages/family-office/index' }, |
| 190 | - { icon: 'Category', lanhutext0: '产品知识库', route: '/pages/knowledge-base/index' }, | 190 | + { icon: 'category', lanhutext0: '产品知识库', route: '/pages/knowledge-base/index' }, |
| 191 | - { icon: 'Star', lanhutext0: '工具箱', route: null }, // 待开发 | 191 | + { icon: 'star', lanhutext0: '工具箱', route: null }, // 待开发 |
| 192 | ]); | 192 | ]); |
| 193 | 193 | ||
| 194 | // Navigation | 194 | // Navigation | ... | ... |
| ... | @@ -10,7 +10,7 @@ | ... | @@ -10,7 +10,7 @@ |
| 10 | <!-- Search Bar --> | 10 | <!-- Search Bar --> |
| 11 | <div class="px-[32rpx] mt-[32rpx]"> | 11 | <div class="px-[32rpx] mt-[32rpx]"> |
| 12 | <div class="bg-white rounded-[12rpx] flex items-center px-[32rpx] py-[24rpx]"> | 12 | <div class="bg-white rounded-[12rpx] flex items-center px-[32rpx] py-[24rpx]"> |
| 13 | - <IconFont name="Search" size="20" color="#9CA3AF" customClass="mr-[16rpx]" /> | 13 | + <IconFont name="search" size="20" color="#9CA3AF" class="mr-[16rpx]" /> |
| 14 | <input | 14 | <input |
| 15 | v-model="searchValue" | 15 | v-model="searchValue" |
| 16 | type="text" | 16 | type="text" |
| ... | @@ -48,7 +48,7 @@ | ... | @@ -48,7 +48,7 @@ |
| 48 | :name="item.collected ? 'StarFill' : 'Star'" | 48 | :name="item.collected ? 'StarFill' : 'Star'" |
| 49 | size="12" | 49 | size="12" |
| 50 | :color="item.collected ? '#F59E0B' : '#9CA3AF'" | 50 | :color="item.collected ? '#F59E0B' : '#9CA3AF'" |
| 51 | - customClass="mr-[8rpx]" | 51 | + class="mr-[8rpx]" |
| 52 | /> | 52 | /> |
| 53 | <span :class="['text-[24rpx]', item.collected ? 'text-[#F59E0B]' : 'text-[#9CA3AF]']"> | 53 | <span :class="['text-[24rpx]', item.collected ? 'text-[#F59E0B]' : 'text-[#9CA3AF]']"> |
| 54 | {{ item.collected ? '已收藏' : '收藏' }} | 54 | {{ item.collected ? '已收藏' : '收藏' }} |
| ... | @@ -71,7 +71,7 @@ | ... | @@ -71,7 +71,7 @@ |
| 71 | import { ref } from 'vue' | 71 | import { ref } from 'vue' |
| 72 | import NavHeader from '@/components/NavHeader.vue' | 72 | import NavHeader from '@/components/NavHeader.vue' |
| 73 | import TabBar from '@/components/TabBar.vue' | 73 | import TabBar from '@/components/TabBar.vue' |
| 74 | -import IconFont from '@/components/IconFont.vue' | 74 | +import { IconFont } from '@nutui/icons-vue-taro' |
| 75 | import Taro from '@tarojs/taro' | 75 | import Taro from '@tarojs/taro' |
| 76 | 76 | ||
| 77 | const searchValue = ref('') | 77 | const searchValue = ref('') | ... | ... |
| ... | @@ -23,7 +23,7 @@ | ... | @@ -23,7 +23,7 @@ |
| 23 | </view> | 23 | </view> |
| 24 | 24 | ||
| 25 | <!-- Arrow --> | 25 | <!-- Arrow --> |
| 26 | - <IconFont name="RectRight" size="20" color="#9CA3AF" /> | 26 | + <IconFont name="rectRight" size="20" color="#9CA3AF" /> |
| 27 | </view> | 27 | </view> |
| 28 | 28 | ||
| 29 | <!-- Menu List --> | 29 | <!-- Menu List --> |
| ... | @@ -44,7 +44,7 @@ | ... | @@ -44,7 +44,7 @@ |
| 44 | </view> | 44 | </view> |
| 45 | <text class="text-[32rpx] text-gray-800">{{ item.title }}</text> | 45 | <text class="text-[32rpx] text-gray-800">{{ item.title }}</text> |
| 46 | </view> | 46 | </view> |
| 47 | - <IconFont name="RectRight" size="16" color="#9CA3AF" /> | 47 | + <IconFont name="rectRight" size="16" color="#9CA3AF" /> |
| 48 | </view> | 48 | </view> |
| 49 | <!-- Separator --> | 49 | <!-- Separator --> |
| 50 | <view v-if="index < menuItems.length - 1" class="h-[2rpx] bg-gray-100 w-full"></view> | 50 | <view v-if="index < menuItems.length - 1" class="h-[2rpx] bg-gray-100 w-full"></view> |
| ... | @@ -57,7 +57,7 @@ | ... | @@ -57,7 +57,7 @@ |
| 57 | class="flex items-center justify-center py-[20rpx] px-[32rpx] rounded-[16rpx] border-[2rpx] border-[#FEE2E2] bg-[#FEF2F2] active:opacity-70" | 57 | class="flex items-center justify-center py-[20rpx] px-[32rpx] rounded-[16rpx] border-[2rpx] border-[#FEE2E2] bg-[#FEF2F2] active:opacity-70" |
| 58 | @tap="handleLogout" | 58 | @tap="handleLogout" |
| 59 | > | 59 | > |
| 60 | - <IconFont name="Issue" size="18" color="#EF4444" customClass="mr-[12rpx]" /> | 60 | + <IconFont name="issue" size="18" color="#EF4444" class="mr-[12rpx]" /> |
| 61 | <text class="text-[28rpx] text-[#EF4444] font-medium">退出登录</text> | 61 | <text class="text-[28rpx] text-[#EF4444] font-medium">退出登录</text> |
| 62 | </view> | 62 | </view> |
| 63 | </view> | 63 | </view> |
| ... | @@ -69,7 +69,7 @@ | ... | @@ -69,7 +69,7 @@ |
| 69 | 69 | ||
| 70 | <script setup> | 70 | <script setup> |
| 71 | import { useGo } from '@/hooks/useGo' | 71 | import { useGo } from '@/hooks/useGo' |
| 72 | -import IconFont from '@/components/IconFont.vue' | 72 | +import { IconFont } from '@nutui/icons-vue-taro' |
| 73 | import TabBar from '@/components/TabBar.vue' | 73 | import TabBar from '@/components/TabBar.vue' |
| 74 | import NavHeader from '@/components/NavHeader.vue' | 74 | import NavHeader from '@/components/NavHeader.vue' |
| 75 | import Taro from '@tarojs/taro' | 75 | import Taro from '@tarojs/taro' | ... | ... |
| ... | @@ -7,7 +7,7 @@ | ... | @@ -7,7 +7,7 @@ |
| 7 | <view class="bg-white px-[24rpx] py-[16rpx]"> | 7 | <view class="bg-white px-[24rpx] py-[16rpx]"> |
| 8 | <nut-searchbar v-model="searchValue" placeholder="搜索计划书名称、客户姓名..." @search="onSearch" clearable> | 8 | <nut-searchbar v-model="searchValue" placeholder="搜索计划书名称、客户姓名..." @search="onSearch" clearable> |
| 9 | <template #left-in> | 9 | <template #left-in> |
| 10 | - <IconFont name="Search" size="14" /> | 10 | + <IconFont name="search" size="14" /> |
| 11 | </template> | 11 | </template> |
| 12 | </nut-searchbar> | 12 | </nut-searchbar> |
| 13 | </view> | 13 | </view> |
| ... | @@ -55,11 +55,11 @@ | ... | @@ -55,11 +55,11 @@ |
| 55 | <!-- Actions --> | 55 | <!-- Actions --> |
| 56 | <view class="flex justify-end gap-[24rpx]"> | 56 | <view class="flex justify-end gap-[24rpx]"> |
| 57 | <view class="flex items-center text-gray-500" @tap="onDelete(item)"> | 57 | <view class="flex items-center text-gray-500" @tap="onDelete(item)"> |
| 58 | - <IconFont name="Del" size="14" class="mr-[8rpx]" /> | 58 | + <IconFont name="del" size="14" class="mr-[8rpx]" /> |
| 59 | <text class="text-[24rpx]">删除</text> | 59 | <text class="text-[24rpx]">删除</text> |
| 60 | </view> | 60 | </view> |
| 61 | <view class="flex items-center text-blue-600" @tap="onView(item)"> | 61 | <view class="flex items-center text-blue-600" @tap="onView(item)"> |
| 62 | - <IconFont name="Order" size="14" class="mr-[8rpx]" /> | 62 | + <IconFont name="order" size="14" class="mr-[8rpx]" /> |
| 63 | <text class="text-[24rpx]">查看</text> | 63 | <text class="text-[24rpx]">查看</text> |
| 64 | </view> | 64 | </view> |
| 65 | </view> | 65 | </view> |
| ... | @@ -68,7 +68,7 @@ | ... | @@ -68,7 +68,7 @@ |
| 68 | <!-- Empty State --> | 68 | <!-- Empty State --> |
| 69 | <view v-if="filteredList.length === 0" | 69 | <view v-if="filteredList.length === 0" |
| 70 | class="flex flex-col items-center justify-center py-[100rpx] text-gray-400"> | 70 | class="flex flex-col items-center justify-center py-[100rpx] text-gray-400"> |
| 71 | - <IconFont name="Order" size="48" class="mb-[24rpx] opacity-50" /> | 71 | + <IconFont name="order" size="48" class="mb-[24rpx] opacity-50" /> |
| 72 | <text class="text-[28rpx]">暂无相关计划书</text> | 72 | <text class="text-[28rpx]">暂无相关计划书</text> |
| 73 | </view> | 73 | </view> |
| 74 | </view> | 74 | </view> |
| ... | @@ -86,7 +86,7 @@ | ... | @@ -86,7 +86,7 @@ |
| 86 | <script setup> | 86 | <script setup> |
| 87 | import { ref, computed } from 'vue' | 87 | import { ref, computed } from 'vue' |
| 88 | import { useGo } from '@/hooks/useGo' | 88 | import { useGo } from '@/hooks/useGo' |
| 89 | -import IconFont from '@/components/IconFont.vue' | 89 | +import { IconFont } from '@nutui/icons-vue-taro' |
| 90 | import TabBar from '@/components/TabBar.vue' | 90 | import TabBar from '@/components/TabBar.vue' |
| 91 | import NavHeader from '@/components/NavHeader.vue' | 91 | import NavHeader from '@/components/NavHeader.vue' |
| 92 | import Taro from '@tarojs/taro' | 92 | import Taro from '@tarojs/taro' | ... | ... |
| ... | @@ -71,7 +71,7 @@ | ... | @@ -71,7 +71,7 @@ |
| 71 | <div class="flex flex-col gap-[32rpx]"> | 71 | <div class="flex flex-col gap-[32rpx]"> |
| 72 | <div v-for="(feature, index) in features" :key="index" class="flex items-start"> | 72 | <div v-for="(feature, index) in features" :key="index" class="flex items-start"> |
| 73 | <div class="w-[48rpx] h-[48rpx] rounded-full bg-blue-50 flex items-center justify-center mr-[24rpx] flex-shrink-0"> | 73 | <div class="w-[48rpx] h-[48rpx] rounded-full bg-blue-50 flex items-center justify-center mr-[24rpx] flex-shrink-0"> |
| 74 | - <IconFont name="Check" size="14" color="#2563EB" /> | 74 | + <IconFont name="check" size="14" color="#2563EB" /> |
| 75 | </div> | 75 | </div> |
| 76 | <div class="flex-1"> | 76 | <div class="flex-1"> |
| 77 | <div class="text-[#1F2937] text-[28rpx] font-medium leading-[1.4]">{{ feature.title }}</div> | 77 | <div class="text-[#1F2937] text-[28rpx] font-medium leading-[1.4]">{{ feature.title }}</div> |
| ... | @@ -94,13 +94,13 @@ | ... | @@ -94,13 +94,13 @@ |
| 94 | > | 94 | > |
| 95 | <div class="flex items-center justify-between mb-[8rpx]"> | 95 | <div class="flex items-center justify-between mb-[8rpx]"> |
| 96 | <div class="flex items-center flex-1 mr-[24rpx]"> | 96 | <div class="flex items-center flex-1 mr-[24rpx]"> |
| 97 | - <IconFont :name="file.iconName" size="24" :color="file.iconColor" customClass="mr-[24rpx]" /> | 97 | + <IconFont :name="file.iconName" size="24" :color="file.iconColor" class="mr-[24rpx]" /> |
| 98 | <div class="flex flex-col"> | 98 | <div class="flex flex-col"> |
| 99 | <span class="text-[#1F2937] text-[28rpx] font-medium mb-[4rpx] line-clamp-1">{{ file.name }}</span> | 99 | <span class="text-[#1F2937] text-[28rpx] font-medium mb-[4rpx] line-clamp-1">{{ file.name }}</span> |
| 100 | <span class="text-[#9CA3AF] text-[24rpx]">{{ file.size }}</span> | 100 | <span class="text-[#9CA3AF] text-[24rpx]">{{ file.size }}</span> |
| 101 | </div> | 101 | </div> |
| 102 | </div> | 102 | </div> |
| 103 | - <IconFont name="Download" size="20" color="#2563EB" @tap="onDownload(file)" /> | 103 | + <IconFont name="download" size="20" color="#2563EB" @tap="onDownload(file)" /> |
| 104 | </div> | 104 | </div> |
| 105 | </div> | 105 | </div> |
| 106 | </div> | 106 | </div> |
| ... | @@ -116,7 +116,7 @@ | ... | @@ -116,7 +116,7 @@ |
| 116 | import { ref } from 'vue' | 116 | import { ref } from 'vue' |
| 117 | import NavHeader from '@/components/NavHeader.vue' | 117 | import NavHeader from '@/components/NavHeader.vue' |
| 118 | import TabBar from '@/components/TabBar.vue' | 118 | import TabBar from '@/components/TabBar.vue' |
| 119 | -import IconFont from '@/components/IconFont.vue' | 119 | +import { IconFont } from '@nutui/icons-vue-taro' |
| 120 | import Taro, { useLoad } from '@tarojs/taro' | 120 | import Taro, { useLoad } from '@tarojs/taro' |
| 121 | 121 | ||
| 122 | // 接收页面参数 | 122 | // 接收页面参数 |
| ... | @@ -186,7 +186,7 @@ const files = ref([ | ... | @@ -186,7 +186,7 @@ const files = ref([ |
| 186 | size: '2.3MB', | 186 | size: '2.3MB', |
| 187 | fileName: '产品条款.pdf', | 187 | fileName: '产品条款.pdf', |
| 188 | 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', | 188 | 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', |
| 189 | - iconName: 'Order', | 189 | + iconName: 'order', |
| 190 | iconColor: '#EF4444', | 190 | iconColor: '#EF4444', |
| 191 | fileType: 'pdf', | 191 | fileType: 'pdf', |
| 192 | showTip: false, | 192 | showTip: false, |
| ... | @@ -197,7 +197,7 @@ const files = ref([ | ... | @@ -197,7 +197,7 @@ const files = ref([ |
| 197 | size: '1.8MB', | 197 | size: '1.8MB', |
| 198 | fileName: '投保须知.docx', | 198 | fileName: '投保须知.docx', |
| 199 | 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', | 199 | 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', |
| 200 | - iconName: 'Order', | 200 | + iconName: 'order', |
| 201 | iconColor: '#2563EB', | 201 | iconColor: '#2563EB', |
| 202 | fileType: 'docx', | 202 | fileType: 'docx', |
| 203 | showTip: true, | 203 | showTip: true, |
| ... | @@ -208,7 +208,7 @@ const files = ref([ | ... | @@ -208,7 +208,7 @@ const files = ref([ |
| 208 | size: '3.2MB', | 208 | size: '3.2MB', |
| 209 | fileName: '健康告知.pptx', | 209 | fileName: '健康告知.pptx', |
| 210 | 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', | 210 | 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', |
| 211 | - iconName: 'Order', | 211 | + iconName: 'order', |
| 212 | iconColor: '#F59E0B', | 212 | iconColor: '#F59E0B', |
| 213 | fileType: 'pptx', | 213 | fileType: 'pptx', |
| 214 | showTip: true, | 214 | showTip: true, |
| ... | @@ -219,7 +219,7 @@ const files = ref([ | ... | @@ -219,7 +219,7 @@ const files = ref([ |
| 219 | size: '1.5MB', | 219 | size: '1.5MB', |
| 220 | fileName: '保险责任说明.xlsx', | 220 | fileName: '保险责任说明.xlsx', |
| 221 | 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', | 221 | 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', |
| 222 | - iconName: 'Order', | 222 | + iconName: 'order', |
| 223 | iconColor: '#10B981', | 223 | iconColor: '#10B981', |
| 224 | fileType: 'xlsx', | 224 | fileType: 'xlsx', |
| 225 | showTip: true, | 225 | showTip: true, | ... | ... |
| ... | @@ -7,7 +7,7 @@ | ... | @@ -7,7 +7,7 @@ |
| 7 | <view class="px-[40rpx] mt-[40rpx]"> | 7 | <view class="px-[40rpx] mt-[40rpx]"> |
| 8 | <!-- Search Input --> | 8 | <!-- Search Input --> |
| 9 | <view class="flex items-center w-full h-[88rpx] bg-white rounded-full px-[32rpx] border border-gray-200 mb-[40rpx]"> | 9 | <view class="flex items-center w-full h-[88rpx] bg-white rounded-full px-[32rpx] border border-gray-200 mb-[40rpx]"> |
| 10 | - <IconFont name="Search" class="text-gray-400 mr-[16rpx]" size="18" /> | 10 | + <IconFont name="search" class="text-gray-400 mr-[16rpx]" size="18" /> |
| 11 | <input | 11 | <input |
| 12 | v-model="searchKeyword" | 12 | v-model="searchKeyword" |
| 13 | type="text" | 13 | type="text" |
| ... | @@ -16,7 +16,7 @@ | ... | @@ -16,7 +16,7 @@ |
| 16 | @confirm="handleSearch" | 16 | @confirm="handleSearch" |
| 17 | /> | 17 | /> |
| 18 | <view v-if="searchKeyword" class="ml-[16rpx]" @tap="clearSearch"> | 18 | <view v-if="searchKeyword" class="ml-[16rpx]" @tap="clearSearch"> |
| 19 | - <IconFont name="Close" class="text-gray-400" size="16" /> | 19 | + <IconFont name="close" class="text-gray-400" size="16" /> |
| 20 | </view> | 20 | </view> |
| 21 | </view> | 21 | </view> |
| 22 | 22 | ||
| ... | @@ -100,7 +100,7 @@ | ... | @@ -100,7 +100,7 @@ |
| 100 | 100 | ||
| 101 | <!-- Initial State --> | 101 | <!-- Initial State --> |
| 102 | <view v-else class="flex flex-col items-center justify-center py-[120rpx]"> | 102 | <view v-else class="flex flex-col items-center justify-center py-[120rpx]"> |
| 103 | - <IconFont name="Search" class="text-gray-300 mb-[24rpx]" size="64" /> | 103 | + <IconFont name="search" class="text-gray-300 mb-[24rpx]" size="64" /> |
| 104 | <view class="text-[#6B7280] text-[28rpx]">搜索培训资料、案例、产品</view> | 104 | <view class="text-[#6B7280] text-[28rpx]">搜索培训资料、案例、产品</view> |
| 105 | <view class="text-[#9CA3AF] text-[24rpx] mt-[12rpx]">输入关键词开始搜索</view> | 105 | <view class="text-[#9CA3AF] text-[24rpx] mt-[12rpx]">输入关键词开始搜索</view> |
| 106 | </view> | 106 | </view> |
| ... | @@ -113,7 +113,7 @@ import { ref, computed } from 'vue' | ... | @@ -113,7 +113,7 @@ import { ref, computed } from 'vue' |
| 113 | import Taro from '@tarojs/taro' | 113 | import Taro from '@tarojs/taro' |
| 114 | import { useGo } from '@/hooks/useGo' | 114 | import { useGo } from '@/hooks/useGo' |
| 115 | import NavHeader from '@/components/NavHeader.vue' | 115 | import NavHeader from '@/components/NavHeader.vue' |
| 116 | -import IconFont from '@/components/IconFont.vue' | 116 | +import { IconFont } from '@nutui/icons-vue-taro' |
| 117 | 117 | ||
| 118 | // Navigation | 118 | // Navigation |
| 119 | const go = useGo() | 119 | const go = useGo() | ... | ... |
-
Please register or login to post a comment