fix:修改utils

This commit is contained in:
MTrun
2021-12-20 14:29:29 +08:00
parent 8dc4769b64
commit d388bea7bd
20 changed files with 121 additions and 100 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
import axios, { AxiosResponse, AxiosRequestConfig } from 'axios'
import { ResultEnum } from "@/enums/httpEnum"
import { ErrorPageNameMap } from "@/enums/pageEnum"
import { redirectErrorPage } from '@/utils/page'
import { redirectErrorPage } from '@/utils'
const axiosInstance = axios.create({
baseURL: import.meta.env.DEV ? import.meta.env.VITE_DEV_PATH : import.meta.env.VITE_PRO_PATH,
+1 -1
View File
@@ -7,7 +7,7 @@
</template>
<script lang="ts" setup>
import { openDoc } from '@/utils/page'
import { openDoc } from '@/utils'
import { DocumentText as DocumentTextIcon } from '@vicons/ionicons5'
const handleClick = () => {
+1 -1
View File
@@ -9,7 +9,7 @@
<script lang="ts" setup>
import { useDesignStore } from '@/store/modules/designStore/designStore'
import { setHtmlTheme } from '@/utils/style'
import { setHtmlTheme } from '@/utils'
import { Moon as MoonIcon, Sunny as SunnyIcon } from '@vicons/ionicons5'
const designStore = useDesignStore()
+2 -2
View File
@@ -22,8 +22,8 @@
<script lang="ts" setup>
import { h, ref } from 'vue'
import { NAvatar, NText } from 'naive-ui'
import { renderIcon } from '@/utils/index'
import { openDoc, logout } from '@/utils/page'
import { renderIcon } from '@/utils'
import { openDoc, logout } from '@/utils'
import {
Person as PersonIcon,
LogOutOutline as LogOutOutlineIcon,
+1 -1
View File
@@ -1,7 +1,7 @@
//语言
import { lang } from '@/settings/designSetting'
import { createI18n } from 'vue-i18n' //引入vue-i18n组件
import { getLocalStorage } from '@/utils/storage'
import { getLocalStorage } from '@/utils'
import { GO_LANG_SELECT } from '@/settings/storageConst'
import zh from './zh/index'
import en from './en/index'
+1 -1
View File
@@ -5,7 +5,7 @@ import i18n from '@/i18n/index'
import { setupStore } from '@/store'
import { setupNaive, setupDirectives, setupCustomComponents } from '@/plugins'
import { AppProvider } from '@/components/Application'
import { setHtmlTheme } from '@/utils/style'
import { setHtmlTheme } from '@/utils'
async function appInit() {
const appProvider = createApp(AppProvider)
+4 -1
View File
@@ -10,7 +10,8 @@ import {
ApertureSharp as ApertureSharpIcon,
DownloadOutline as DownloadIcon,
Open as OpenIcon,
Send as SendIcon
Send as SendIcon,
InformationCircleOutline as InformationCircleIcon
} from '@vicons/ionicons5'
// ionicons5 在这里
@@ -39,6 +40,8 @@ const ionicons5 = {
OpenIcon,
// 导出
SendIcon,
// 信息
InformationCircleIcon
}
// https://www.xicons.org/#/ 还有很多
+6
View File
@@ -46,6 +46,12 @@ export const theme = {
appThemeList
}
// dialog 图标的大小
export const dialogIconSize = '20'
// 弹窗是否可以通过点击遮罩关闭
export const maskClosable = false
// 侧边栏宽度
export const asideWidth = '270'
+1 -1
View File
@@ -2,7 +2,7 @@ import { defineStore } from 'pinia'
import { store } from '@/store'
import { theme } from '@/settings/designSetting'
import { DesignStateType } from './designStore.d'
import { setLocalStorage, getLocalStorage } from '@/utils/storage'
import { setLocalStorage, getLocalStorage } from '@/utils'
import { GO_Theme_SELECT } from '@/settings/storageConst'
import { ThemeEnum } from '@/enums/styleEnum'
+1 -1
View File
@@ -3,7 +3,7 @@ import { lang } from '@/settings/designSetting'
import { LangStateType } from './langStore.d'
import { LangEnum } from '@/enums/styleEnum'
import i18n from '@/i18n/index'
import { setLocalStorage } from '@/utils/storage'
import { setLocalStorage } from '@/utils'
import { GO_LANG_SELECT } from '@/settings/storageConst'
export const useLangStore = defineStore({
+5 -80
View File
@@ -1,80 +1,5 @@
import { h } from 'vue'
import { NIcon } from 'naive-ui'
import screenfull from 'screenfull'
/**
* * 生成一个用不重复的ID
* @param { Number } randomLength
*/
export function getUUID(randomLength: number) {
return Number(
Math.random().toString().substr(2, randomLength) + Date.now()
).toString(36)
}
/**
* * render 图标
*/
export const renderIcon = (icon: any) => {
return () => h(NIcon, null, { default: () => h(icon) })
}
/**
* * render 弹出确认框
* @param { Function } dialogFn dialog函数,暂时必须从页面传过来
* @param { Object} params 配置参数
*/
export const goDialog = (
dialogFn: Function,
params: {
// 基本
type: 'delete'
message?: string
onPositiveCallback?: Function
onNegativeCallback?: Function
// 渲染函数
render?: boolean
contentFn?: Function
actionFn?: Function
}
) => {
const { type, message, onPositiveCallback, onNegativeCallback } = params
const tip = {
delete: '是否删除此数据'
}
dialogFn({
title: '提示',
content: message || tip[type] || '',
positiveText: '确定',
negativeText: '取消',
onPositiveClick: () => {
onPositiveCallback && onPositiveCallback()
},
onNegativeClick: () => {
onNegativeCallback && onNegativeCallback()
}
})
}
/**
* * 处理 vite 中无法使用 require 的问题
* @param name
* @returns url
*/
export const requireUrl = (path: string, name: string) => {
return new URL(`${path}/${name}`, import.meta.url).href
}
export const screenfullFn = (isFullscreen?: boolean, isEnabled?: boolean) => {
// 是否是全屏
if (isFullscreen) return screenfull.isFullscreen
// 是否支持全屏
if (isEnabled) return screenfull.isEnabled
if (screenfull.isEnabled) {
screenfull.toggle()
return
}
// TODO lang
window['$message'].warning('您的浏览器不支持全屏功能!')
}
export * from '@/utils/utils'
export * from '@/utils/page'
export * from '@/utils/storage'
export * from '@/utils/style'
export * from '@/utils/plugin'
+43
View File
@@ -0,0 +1,43 @@
import { icon } from '@/plugins'
import { dialogIconSize, maskClosable } from '@/settings/designSetting'
const { InformationCircleIcon } = icon.ionicons5
import { renderIcon } from '@/utils'
/**
* * render 弹出确认框
* @param { Function } dialogFn dialog函数,暂时必须从页面传过来
* @param { Object} params 配置参数
*/
export const goDialog = (
dialogFn: Function,
params: {
// 基本
type: 'delete'
message?: string
onPositiveCallback?: Function
onNegativeCallback?: Function
// 渲染函数
render?: boolean
contentFn?: Function
actionFn?: Function
}
) => {
const { type, message, onPositiveCallback, onNegativeCallback } = params
const tip = {
delete: '是否删除此数据'
}
dialogFn({
title: '提示',
icon: renderIcon(InformationCircleIcon, { size: dialogIconSize }),
content: message || tip[type] || '',
positiveText: '确定',
negativeText: '取消',
maskClosable: maskClosable,
onPositiveClick: () => {
onPositiveCallback && onPositiveCallback()
},
onNegativeClick: () => {
onNegativeCallback && onNegativeCallback()
}
})
}
+44
View File
@@ -0,0 +1,44 @@
import { h } from 'vue'
import { NIcon } from 'naive-ui'
import screenfull from 'screenfull'
/**
* * 生成一个用不重复的ID
* @param { Number } randomLength
*/
export function getUUID(randomLength: number) {
return Number(
Math.random().toString().substr(2, randomLength) + Date.now()
).toString(36)
}
/**
* * render 图标
*/
export const renderIcon = (icon: any, set = {}) => {
return () => h(NIcon, set, { default: () => h(icon) })
}
/**
* * 处理 vite 中无法使用 require 的问题
* @param name
* @returns url
*/
export const requireUrl = (path: string, name: string) => {
return new URL(`${path}/${name}`, import.meta.url).href
}
export const screenfullFn = (isFullscreen?: boolean, isEnabled?: boolean) => {
// 是否是全屏
if (isFullscreen) return screenfull.isFullscreen
// 是否支持全屏
if (isEnabled) return screenfull.isEnabled
if (screenfull.isEnabled) {
screenfull.toggle()
return
}
// TODO lang
window['$message'].warning('您的浏览器不支持全屏功能!')
}
+1 -1
View File
@@ -13,7 +13,7 @@
<script lang="ts" setup>
import { useRouter } from 'vue-router'
import { PageEnum } from '@/enums/pageEnum'
import { routerTurnByName } from '@/utils/page'
import { routerTurnByName } from '@/utils'
const router = useRouter()
function goHome() {
routerTurnByName(PageEnum.BASE_HOME_NAME)
+1 -1
View File
@@ -13,7 +13,7 @@
<script lang="ts" setup>
import { useRouter } from 'vue-router'
import { PageEnum } from '@/enums/pageEnum'
import { routerTurnByName } from '@/utils/page'
import { routerTurnByName } from '@/utils'
const router = useRouter()
function goHome() {
routerTurnByName(PageEnum.BASE_HOME_NAME)
+1 -1
View File
@@ -13,7 +13,7 @@
<script lang="ts" setup>
import { useRouter } from 'vue-router'
import { PageEnum } from '@/enums/pageEnum'
import { routerTurnByName } from '@/utils/page'
import { routerTurnByName } from '@/utils'
const router = useRouter()
function goHome() {
routerTurnByName(PageEnum.BASE_HOME_NAME)
+2 -2
View File
@@ -115,8 +115,8 @@ import { reactive, ref, onMounted } from 'vue'
import { useRouter } from 'vue-router'
import { useMessage } from 'naive-ui'
import { useI18n } from 'vue-i18n'
import { requireUrl } from '@/utils/index'
import { routerTurnByName } from '@/utils/page'
import { requireUrl } from '@/utils'
import { routerTurnByName } from '@/utils'
import shuffle from 'lodash/shuffle'
import { carouselInterval } from '@/settings/designSetting'
import { useDesignStore } from '@/store/modules/designStore/designStore'
@@ -4,7 +4,7 @@
<div class="list-content">
<!-- 顶部按钮 -->
<n-space class="list-content-top">
<AppleControlBtn @close="deleteHanlde" @resize="resizeHandle" />
<AppleControlBtn :hidden="['remove']" @close="deleteHanlde" @resize="resizeHandle" />
</n-space>
<!-- 中间 -->
<div class="list-content-img">
@@ -72,7 +72,7 @@
<script setup lang="ts">
import { ref } from 'vue'
import { renderIcon, goDialog } from '@/utils/index'
import { renderIcon, goDialog } from '@/utils'
import { icon } from '@/plugins'
import { AppleControlBtn } from '@/components/AppleControlBtn'
import { useMessage, useDialog } from 'naive-ui'
@@ -163,7 +163,7 @@ const deleteHanlde = () => {
goDialog(dialog.warning, {
type: 'delete',
onPositiveCallback: () => {
message.success('确定')
message.success('删除成功')
}
})
}
@@ -58,7 +58,7 @@
</template>
<script setup lang="ts">
import { renderIcon } from '@/utils/index'
import { renderIcon } from '@/utils'
import { icon } from '@/plugins'
import { AppleControlBtn } from '@/components/AppleControlBtn'
const { HammerIcon } = icon.ionicons5
@@ -54,7 +54,7 @@
</div>
</template>
<script setup lang="ts">
import { openDoc, openGiteeSourceCode } from '@/utils/page'
import { openDoc, openGiteeSourceCode } from '@/utils'
import {
HelpCircleOutline as HelpOutlineIcon,