feat: iconify图标新增离线功能

This commit is contained in:
奔跑的面条
2023-12-17 00:12:50 +08:00
parent ce1a5476d6
commit 4c7c5cf4ba
10 changed files with 147 additions and 88 deletions
+3
View File
@@ -0,0 +1,3 @@
import GoIconify from './index.vue';
export { GoIconify };
+34
View File
@@ -0,0 +1,34 @@
<template>
<iconify-icon
:icon="icon"
:rotate="`${rotate}deg`"
:width="width"
:style="{
color: color
}"
></iconify-icon>
</template>
<script setup lang="ts">
defineProps({
icon: {
type: String,
required: true
},
color: {
type: String,
default: '#999999',
required: false
},
width: {
type: [String, Number],
default: '20',
required: false
},
rotate: {
type: [String, Number],
default: '0',
required: false
}
})
</script>
+67 -59
View File
@@ -1,59 +1,67 @@
import { createApp } from 'vue'
import App from './App.vue'
import router, { setupRouter } from '@/router'
import i18n from '@/i18n/index'
import { setupStore } from '@/store'
import { setupNaive, setupDirectives, setupCustomComponents, initFunction } from '@/plugins'
import { GoAppProvider } from '@/components/GoAppProvider/index'
import { setHtmlTheme } from '@/utils'
// 引入全局样式
import '@/styles/pages/index.scss'
// 引入动画
import 'animate.css/animate.min.css'
// 引入标尺
import 'vue3-sketch-ruler/lib/style.css'
async function appInit() {
const goAppProvider = createApp(GoAppProvider)
const app = createApp(App)
// 注册全局常用的 naive-ui 组件
setupNaive(app)
// 注册全局自定义指令
setupDirectives(app)
// 注册全局自定义组件
setupCustomComponents(app)
// 挂载状态管理
setupStore(app)
// 解决路由守卫,Axios中可使用,DialogMessage 等全局组件
goAppProvider.mount('#appProvider', true)
// 挂载路由
setupRouter(app)
// 路由准备就绪后挂载APP实例
await router.isReady()
// Store 准备就绪后处理主题色
setHtmlTheme()
// 语言注册
app.use(i18n)
// 挂载到页面
app.mount('#app', true)
// 挂载到 window
window['$vue'] = app
}
appInit().then(() => {
initFunction()
})
import { createApp } from 'vue'
import App from './App.vue'
import router, { setupRouter } from '@/router'
import i18n from '@/i18n/index'
import { setupStore } from '@/store'
import { setupNaive, setupDirectives, setupCustomComponents, initFunction } from '@/plugins'
import { GoAppProvider } from '@/components/GoAppProvider/index'
import { setHtmlTheme } from '@/utils'
import { addCollection } from 'iconify-icon'
import uimIcons from '@iconify/json/json/uim.json'
import lineMdIcons from '@iconify/json/json/line-md.json'
import wiIcons from '@iconify/json/json/wi.json'
// 引入全局样式
import '@/styles/pages/index.scss'
// 引入动画
import 'animate.css/animate.min.css'
// 引入标尺
import 'vue3-sketch-ruler/lib/style.css'
// 注册图标
addCollection(uimIcons)
addCollection(lineMdIcons)
addCollection(wiIcons)
async function appInit() {
const goAppProvider = createApp(GoAppProvider)
const app = createApp(App)
// 注册全局常用的 naive-ui 组件
setupNaive(app)
// 注册全局自定义指令
setupDirectives(app)
// 注册全局自定义组件
setupCustomComponents(app)
// 挂载状态管理
setupStore(app)
// 解决路由守卫,Axios中可使用,DialogMessage 等全局组件
goAppProvider.mount('#appProvider', true)
// 挂载路由
setupRouter(app)
// 路由准备就绪后挂载APP实例
await router.isReady()
// Store 准备就绪后处理主题色
setHtmlTheme()
// 语言注册
app.use(i18n)
// 挂载到页面
app.mount('#app', true)
// 挂载到 window
window['$vue'] = app
}
appInit().then(() => {
initFunction()
})
@@ -1,13 +1,13 @@
<template>
<div class="go-icon-box">
<Icon :icon="((dataset || '') as string)" :color="color" :width="size" :rotate="rotate" />
<GoIconify :icon="((dataset || '') as string)" :color="color" :width="size" :rotate="rotate" />
</div>
</template>
<script setup lang="ts">
import { PropType, toRefs } from 'vue'
import { CreateComponentType } from '@/packages/index.d'
import { Icon } from '@iconify/vue'
import { GoIconify } from '@/components/GoIconify'
const props = defineProps({
chartConfig: {
@@ -23,7 +23,7 @@
</n-text>
</div>
<div class="list-center go-flex-center go-transition" draggable="true">
<Icon v-if="item.icon" class="list-img" :icon="item.icon" color="#999" width="48" />
<GoIconify v-if="item.icon" class="list-img" :icon="item.icon" color="#999" width="48" style="height: auto" />
<chart-glob-image v-else class="list-img" :chartConfig="item" />
</div>
<div class="list-bottom">
@@ -64,7 +64,7 @@ import { createComponent } from '@/packages'
import { ConfigType, CreateComponentType, PackagesCategoryEnum } from '@/packages/index.d'
import { ChatCategoryEnum } from '@/packages/components/Photos/index.d'
import { fetchConfigComponent, fetchChartComponent } from '@/packages/index'
import { Icon } from '@iconify/vue'
import { GoIconify } from '@/components/GoIconify'
import { icon } from '@/plugins'
import omit from 'lodash/omit'
@@ -37,7 +37,7 @@
:title="item.title"
@click="selectChartHandle(item)"
>
<Icon v-if="item.icon" class="list-img" :icon="item.icon" color="#999" width="20" />
<GoIconify v-if="item.icon" class="list-img" :icon="item.icon" color="#999" width="20" />
<chart-glob-image v-else class="list-item-img" :chartConfig="item" />
<n-text class="list-item-fs" depth="2">{{ item.title }}</n-text>
</div>
@@ -79,7 +79,7 @@ import { isString, addEventListener, removeEventListener } from '@/utils'
import { fetchConfigComponent, fetchChartComponent } from '@/packages/index'
import { componentInstall, loadingStart, loadingFinish, loadingError } from '@/utils'
import { ChartGlobImage } from '@/components/Pages/ChartGlobImage'
import { Icon } from '@iconify/vue'
import { GoIconify } from '@/components/GoIconify'
const props = defineProps({
menuOptions: {