refactor: add more auto import

This commit is contained in:
AkagiYui 2024-08-31 17:01:46 +08:00
parent ffe4c2a007
commit e9254f24ae
34 changed files with 65 additions and 171 deletions

View File

@ -1,8 +1,4 @@
<script setup lang="ts">
import { getQrStatus, getQrToken } from "@/api"
import { useUserInfo } from "@/stores/user-info"
import { useRouter } from "vue-router/auto"
const router = useRouter()
const { setToken } = useUserInfo()
const temporaryToken = ref<string>("")
@ -38,7 +34,8 @@ async function refreshQrCodeStatus() {
timer && clearInterval(timer)
setToken(result.token!.token)
router.push("/")
} else if (!result.canceled) { //
} else if (!result.canceled) {
//
timer = setTimeout(refreshQrCodeStatus, 2000)
}
} catch (error) {

View File

@ -1,7 +1,4 @@
<script setup lang="ts">
import { RouterLink, useRoute } from "vue-router/auto"
import type { MenuOption } from "naive-ui"
import { storeToRefs } from "pinia"
import {
BulbOutline,
CaretDownOutline,
@ -27,11 +24,10 @@ import {
TrashOutline,
CogOutline,
} from "@vicons/ionicons5"
import { useAppConfig } from "@/stores/app-config"
import { renderIcon } from "@/utils"
const { expandedMenuKeys, isMenuCollapsed, isDebugMode } = storeToRefs(useAppConfig())
const route = useRoute()
const expandIcon = renderIcon(CaretDownOutline)
const menuOptions = ref([
{
@ -242,7 +238,7 @@ const renderMenuLabel = (option: MenuOption) => {
:indent="22"
:options="menuOptions"
:render-label="renderMenuLabel"
:expand-icon="renderIcon(CaretDownOutline)"
:expand-icon="expandIcon"
:value="route.name"
/>
</n-scrollbar>

View File

@ -1,6 +1,4 @@
<script setup lang="ts">
import { useRouter } from "vue-router/auto"
import { storeToRefs } from "pinia"
import {
ArrowUpOutline,
LogOutOutline,
@ -9,10 +7,6 @@ import {
SunnyOutline,
ScanOutline,
} from "@vicons/ionicons5"
import { useAppConfig } from "@/stores/app-config"
import { useUserInfo } from "@/stores/user-info"
import { renderIcon } from "@/utils"
import QrCode from "@/components/QrCode.vue"
const { isDarkMode, isUploadDrawerShow, isDebugMode, uploadItemCount } = storeToRefs(useAppConfig())
const { nickname, isLoggedIn, avatarUrl } = storeToRefs(useUserInfo())

View File

@ -1,5 +1,3 @@
<script setup lang="ts"></script>
<template>
<n-loading-bar-provider>
<n-message-provider>

View File

@ -1,6 +1,4 @@
<script setup lang="ts">
import type { PaginationProps } from "naive-ui"
const props = withDefaults(
defineProps<{
columns: any[]

View File

@ -1,14 +1,7 @@
<script lang="ts" setup>
import Request from "@/api/request"
import { emitBusEvent, useBusEvent, useEventListener } from "@/hooks"
import { useAppConfig } from "@/stores/app-config"
import { useUserInfo } from "@/stores/user-info"
import { BusEvent } from "@/types"
import { DocumentOutline, FolderOutline } from "@vicons/ionicons5"
import { storeToRefs } from "pinia"
import UploadItem from "./UploadItem.vue"
const { config: requestConfig } = Request
const { config: requestConfig } = request
const { requestToken } = useUserInfo()
const { isUploadDrawerShow, uploadItemCount } = storeToRefs(useAppConfig())

View File

@ -1,7 +1,5 @@
<script lang="ts" setup>
import { type2Icon } from "@/utils"
import { CheckmarkOutline, CloseOutline, HelpOutline, PauseOutline, PlayOutline } from "@vicons/ionicons5"
import { useThemeVars } from "naive-ui"
const props = defineProps<{
data: UploadDisplayInfo

View File

@ -2,8 +2,6 @@
import "aplayer/dist/APlayer.min.css"
import APlayer from "aplayer"
import { parseBlob as getMusicMetadata } from "music-metadata"
import { useBusEvent } from "@/hooks"
import { BusEvent } from "@/types"
const playerRef = ref<HTMLDivElement | null>(null)
const showPlayer = ref(false)

View File

@ -8,8 +8,6 @@
</route>
<script setup lang="ts">
import { useRouter } from "vue-router/auto"
const router = useRouter()
</script>

View File

@ -8,11 +8,7 @@
</route>
<script lang="ts" setup>
import { useRouter } from "vue-router/auto"
import SideMenu from "@/components/SideMenu.vue"
import MusicPlayer from "./MusicPlayer.vue"
import UploadDrawer from "@/components/upload/UploadDrawer.vue"
import { useUserInfo } from "@/stores/user-info"
const { renewUserInfo, isLoggedIn } = useUserInfo()
const router = useRouter()

View File

@ -9,8 +9,6 @@
<script lang="ts" setup>
import { useAssetUrl } from "@/utils"
import QrCode from "@/components/QrCode.vue"
import { getBackendVersion } from "@/api"
const isDev = import.meta.env.DEV as boolean
const frontendVersion = ref<string>(__APP_VERSION__)

View File

@ -9,17 +9,6 @@
<script setup lang="ts">
import { AddOutline, RefreshOutline, SearchOutline } from "@vicons/ionicons5"
import type { PaginationProps } from "naive-ui"
import { type FormInst, NButton, NInput, NSpace, NText, NTooltip } from "naive-ui"
import {
addAnnouncement,
deleteAnnouncement,
getAnnouncements,
updateAnnouncement,
updateAnnouncementStatus,
} from "@/api"
import ConfirmModal from "@/components/ConfirmModal.vue"
import { renderTooltip } from "@/utils"
/** 表格加载中 */
const isLoading = ref(false)

View File

@ -1,6 +1,4 @@
<script setup lang="ts">
import { useFileOwner } from "@/api"
const show = defineModel<boolean>("show", { default: false })
const props = withDefaults(
defineProps<{
@ -15,7 +13,7 @@ watch(props, (newProps) => {
}
})
const { id, owner, fetchData, isLoading } = useFileOwner()
const { id, owner, isLoading } = useFileOwner()
const columns = [
{
title: "用户名",

View File

@ -9,12 +9,8 @@
<script setup lang="ts">
import { filesize } from "filesize"
import { NButton, NFlex } from "naive-ui"
import { RefreshOutline, SearchOutline } from "@vicons/ionicons5"
import { deleteRealFile, lockFile, useFileList } from "@/api"
import PagingTable from "@/components/table/PagingTable.vue"
import OwnerTable from "./OwnerTable.vue"
import { useConfirmModal } from "@/hooks"
const tableColumns = [
{

View File

@ -1,7 +1,4 @@
<script setup lang="ts">
import { NButton, type PaginationProps } from "naive-ui"
import { assignRoleUsers, getRoleUsers, unassignRoleUsers, getUsers } from "@/api"
/** 是否显示模态框 */
const show = defineModel<boolean>("show", { default: false })
/** 组件参数 */

View File

@ -9,10 +9,6 @@
<script setup lang="ts">
import { AddOutline, RefreshOutline, SearchOutline } from "@vicons/ionicons5"
import type { FormInst, PaginationProps } from "naive-ui"
import { NButton, NInput, NSpace, NSwitch } from "naive-ui"
import { addRole, deleteRole, getPermissions, getRoles, updateRole, updateRoleStatus } from "@/api"
import ConfirmModal from "@/components/ConfirmModal.vue"
import UserTable from "./UserTable.vue"
//

View File

@ -8,10 +8,6 @@
</route>
<script setup lang="ts">
import { getConfig, updateSetting } from "@/api"
import type { WatchStopHandle } from "vue"
import { useDebounce } from "@/hooks"
//
const isLoading = ref(false)
let stopper: WatchStopHandle | undefined = undefined

View File

@ -1,7 +1,4 @@
<script setup lang="ts">
import { NButton, type PaginationProps } from "naive-ui"
import { assignRoles, getUserRoles, removeRoles, getRoles } from "@/api"
/** 是否显示模态框 */
const show = defineModel<boolean>("show", { default: false })
/** 组件参数 */

View File

@ -10,14 +10,7 @@
<script setup lang="ts">
import { changeColor } from "seemly"
import { AddOutline, RefreshOutline, SearchOutline } from "@vicons/ionicons5"
import { NButton, NCheckbox, NFlex, NInput, NProgress, NSpace, NText, NTooltip, useThemeVars } from "naive-ui"
import type { FormInst, PaginationProps } from "naive-ui"
import { addUser, deleteUser, getUsers, updateUserDisabled, updateUserInfo, updateUserPassword } from "@/api"
import RoleTable from "./RoleTable.vue"
import ConfirmModal from "@/components/ConfirmModal.vue"
import { hasText, renderTooltip } from "@/utils"
import type { TableColumn } from "naive-ui/es/data-table/src/interface"
import { useConfirmModal } from "@/hooks"
/** naiveui主题相关变量 */
const themeVars = useThemeVars()

View File

@ -1,7 +1,4 @@
<script setup lang="ts">
import { createFolder } from "@/api"
import { hasText } from "@/utils"
/** 组件参数 */
const props = withDefaults(
defineProps<{

View File

@ -1,6 +1,4 @@
<script setup lang="ts">
import { getSharingInfoByFileId, deleteSharing, createSharing } from "@/api"
const show = defineModel<boolean>("show", { default: false })
const props = withDefaults(
defineProps<{

View File

@ -8,11 +8,6 @@
</route>
<script setup lang="ts">
import { useRouter } from "vue-router/auto"
import { storeToRefs } from "pinia"
import type { HTMLAttributes } from "vue"
import { NButton, NDropdown, NFlex, NIcon, NImage, useThemeVars } from "naive-ui"
import type { DataTableColumns } from "naive-ui"
import { ArrowUp, Folder } from "@vicons/carbon"
import {
AddOutline,
@ -33,23 +28,9 @@ import {
DocumentLock24Regular,
} from "@vicons/fluent"
import { filesize } from "filesize"
import {
deleteFile as deleteFileEndpoint,
deleteFolder as deleteFolderEndpoint,
getFileTemporaryUrl,
getFolderContent,
moveFile,
moveFolder,
renameUserFile,
renameFolder,
} from "@/api"
import CreateFolderModal from "./CreateFolderModal.vue"
import SharingModal from "./SharingModal.vue"
import { renderIcon, type2Icon } from "@/utils"
import { useAppConfig } from "@/stores/app-config"
import { useUserInfo } from "@/stores/user-info"
import { emitBusEvent, useBusEvent, useConfirmModal, useRenameModal } from "@/hooks"
import { BusEvent } from "@/types"
const { isDarkMode, lastFolderIds } = storeToRefs(useAppConfig())
const { userId } = storeToRefs(useUserInfo())
const router = useRouter()
@ -276,7 +257,7 @@ function shareFile(row: TableData) {
const { openConfirmModal } = useConfirmModal()
function deleteItem(row: TableData) {
openConfirmModal(async () => {
const endpoint = row.type === "folder" ? deleteFolderEndpoint : deleteFileEndpoint
const endpoint = row.type === "folder" ? deleteFolder : deleteFile
await endpoint(row.id)
window.$message.success("删除成功")
loadFolder(currentFolderId.value)

View File

@ -8,12 +8,7 @@
</route>
<script setup lang="ts">
import { storeToRefs } from "pinia"
import { MdSave } from "@vicons/ionicons4"
import { getDisplayAnnouncements } from "@/api"
import { useUserInfo } from "@/stores/user-info"
import { useAppConfig } from "@/stores/app-config"
import { useInterval } from "@/hooks"
const { nickname } = storeToRefs(useUserInfo())
const { isDebugMode } = storeToRefs(useAppConfig())

View File

@ -8,9 +8,6 @@
</route>
<script setup lang="ts">
import { cancelQrLogin, claimQrToken, confirmQrLogin } from "@/api"
import { useRouter } from "vue-router"
const router = useRouter()
//

View File

@ -8,10 +8,7 @@
</route>
<script setup lang="ts">
import { ref, onMounted, onUnmounted, watch } from "vue"
import { scanImageData } from "@undecaf/zbar-wasm"
import { useRouter } from "vue-router"
import { isOffscreenCanvasWorking, useAssetUrl } from "@/utils"
const router = useRouter()

View File

@ -8,14 +8,8 @@
</route>
<script setup lang="ts">
import { storeToRefs } from "pinia"
import { WeatherMoon16Regular, WeatherSunny16Regular } from "@vicons/fluent"
import type { UploadFileInfo } from "naive-ui"
import { useAppConfig } from "@/stores/app-config"
import { useUserInfo } from "@/stores/user-info"
import { uploadUserAvatar } from "@/api"
import { Permission } from "@/types"
import { useDebounce } from "@/hooks"
const { isDarkMode, isDebugMode } = storeToRefs(useAppConfig())
const { toggleDarkMode, reset: resetConfig } = useAppConfig()

View File

@ -8,10 +8,6 @@
</route>
<script setup lang="ts">
import { NButton, NFlex } from "naive-ui"
import { deleteSharing, useSharingList } from "@/api"
import { useConfirmModal } from "@/hooks"
const { data, refresh, isLoading } = useSharingList()
const columns = [
{

View File

@ -8,10 +8,6 @@
</route>
<script setup lang="ts">
import { useRouter } from "vue-router/auto"
import { storeToRefs } from "pinia"
import { NIcon } from "naive-ui"
import type { FormInst, FormItemRule } from "naive-ui"
import {
CheckmarkOutline,
KeyOutline,
@ -20,18 +16,6 @@ import {
PhonePortraitOutline,
SendSharp,
} from "@vicons/ionicons5"
import { useAppConfig } from "@/stores/app-config"
import { useUserInfo } from "@/stores/user-info"
import {
confirmEmailRegisterOtp,
getTokenBySms,
getToken,
sendEmailRegisterOtp,
sendSmsOtp,
getRegisterEnabled,
} from "@/api"
import { hasText } from "@/utils"
import { useGlobal } from "@/hooks"
const { isDarkMode } = storeToRefs(useAppConfig())
const { setToken } = useUserInfo()

View File

@ -9,13 +9,11 @@
</route>
<script lang="ts" setup>
import { useRoute } from "vue-router"
const route = useRoute()
const { url } = useRoute().query as { url: string }
</script>
<template>
<DocxPreview id="player" :url="route.query.url as string"></DocxPreview>
<DocxPreview id="player" :url="url"></DocxPreview>
</template>
<style scoped>

View File

@ -9,11 +9,20 @@
</route>
<script lang="ts" setup>
import { useRoute } from "vue-router"
const route = useRoute()
const { url } = useRoute().query as { url: string }
const blobUrl = ref("")
onMounted(() => {
if (url) {
fetch(url)
.then((res) => res.blob())
.then((res) => {
const blob = new Blob([res], { type: "application/pdf" })
blobUrl.value = URL.createObjectURL(blob)
})
}
})
onBeforeUnmount(() => {
if (blobUrl.value !== "") {
URL.revokeObjectURL(blobUrl.value)
@ -23,15 +32,6 @@ onBeforeUnmount(() => {
function onOpenButtonClick() {
window.open(blobUrl.value)
}
if (route.query.url) {
fetch(route.query.url as string)
.then((res) => res.blob())
.then((res) => {
const blob = new Blob([res], { type: "application/pdf" })
blobUrl.value = URL.createObjectURL(blob)
})
}
</script>
<template>

View File

@ -9,13 +9,11 @@
</route>
<script lang="ts" setup>
import { useRoute } from "vue-router"
const route = useRoute()
const { url } = useRoute().query as { url: string }
</script>
<template>
<VideoPlayer id="player" :url="route.query.url as string"></VideoPlayer>
<VideoPlayer id="player" :url="url"></VideoPlayer>
</template>
<style scoped>

View File

@ -9,13 +9,11 @@
</route>
<script lang="ts" setup>
import { useRoute } from "vue-router"
const route = useRoute()
const { url } = useRoute().query as { url: string }
</script>
<template>
<XlsxPreview id="player" :url="route.query.url as string"></XlsxPreview>
<XlsxPreview id="player" :url="url"></XlsxPreview>
</template>
<style scoped>

View File

@ -8,9 +8,7 @@
</route>
<script setup lang="ts">
import { useRoute } from "vue-router"
const params = useRoute().params
const id = params.id
const { id } = useRoute().params as { id: string }
</script>
<template>

View File

@ -94,14 +94,51 @@ const config = {
AutoImport({
imports: [
"vue",
"pinia",
VueRouterAutoImports,
{
"naive-ui": ["useDialog", "useMessage", "useNotification", "useLoadingBar"],
"naive-ui": [
"useDialog",
"useMessage",
"useNotification",
"useLoadingBar",
"useThemeVars",
"NButton",
"NCheckbox",
"NDropdown",
"NFlex",
"NProgress",
"NSpace",
"NSwitch",
"NText",
"NTooltip",
"NInput",
"NIcon",
"NImage"
],
"vue-router": ["RouterLink"],
},
{
from: "naive-ui",
imports: ["MenuOption", "PaginationProps", "FormInst", "FormItemRule", "UploadFileInfo", "DataTableColumns"],
type: true,
},
{
from: "naive-ui/es/data-table/src/interface",
imports: ["TableColumn"],
type: true,
},
{
from: "vue",
imports: ["HTMLAttributes", "WatchStopHandle"],
type: true,
},
],
dirs: ["./src/api", "./src/hooks", "./src/utils", "./src/stores", "./src/types"],
}),
Components({
resolvers: [NaiveUiResolver()],
globs: ["./src/components/**/*.vue"],
}),
basicSsl(),
],