refactor(tiantian-system): 重构系统首页界面与布局
- 使用侧边栏布局替换顶部欢迎区,提升导航体验 - 重新设计快捷入口,采用按钮网格样式 - 添加待办事项模块,方便任务管理和提醒 - 优化应用模块展示,支持点击跳转应用管理界面 - 增加经营概览和最新公告两个信息展示模块 - 简化代码结构,移除旧组件和无用代码 - 使用 TailwindCSS 进行样式统一管理,提升交互动画体验 - 新增顶部栏包含搜索、消息、语言切换和用户信息 - 调整日期显示和剩余工作日计算逻辑 - 移除多余的类型声明和无用API调用逻辑
This commit is contained in:
Binary file not shown.
File diff suppressed because one or more lines are too long
@@ -1,33 +0,0 @@
|
|||||||
export const checksums = {
|
|
||||||
"docs": "v3.5.0--jyttfyMCdlkkD2Cy6uAigSOupLz7w9JK12BEQDx-Jb8"
|
|
||||||
}
|
|
||||||
export const checksumsStructure = {
|
|
||||||
"docs": "quFkNIUZZFAwcn0ok74-KsIERem9u0p5DW-cqEgxrPA"
|
|
||||||
}
|
|
||||||
|
|
||||||
export const tables = {
|
|
||||||
"docs": "_content_docs",
|
|
||||||
"info": "_content_info"
|
|
||||||
}
|
|
||||||
|
|
||||||
export default {
|
|
||||||
"docs": {
|
|
||||||
"type": "page",
|
|
||||||
"fields": {
|
|
||||||
"id": "string",
|
|
||||||
"title": "string",
|
|
||||||
"body": "json",
|
|
||||||
"description": "string",
|
|
||||||
"extension": "string",
|
|
||||||
"meta": "json",
|
|
||||||
"navigation": "json",
|
|
||||||
"path": "string",
|
|
||||||
"seo": "json",
|
|
||||||
"stem": "string"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"info": {
|
|
||||||
"type": "data",
|
|
||||||
"fields": {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
File diff suppressed because one or more lines are too long
21
.nuxt/content/types.d.ts
vendored
21
.nuxt/content/types.d.ts
vendored
@@ -1,21 +0,0 @@
|
|||||||
import type { PageCollectionItemBase, DataCollectionItemBase } from '@nuxt/content'
|
|
||||||
|
|
||||||
declare module '@nuxt/content' {
|
|
||||||
/* eslint-disable */
|
|
||||||
/**
|
|
||||||
* This file was automatically generated by json-schema-to-typescript.
|
|
||||||
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
|
|
||||||
* and run json-schema-to-typescript to regenerate this file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
interface DocsCollectionItem extends PageCollectionItemBase {}
|
|
||||||
|
|
||||||
|
|
||||||
interface PageCollections {
|
|
||||||
docs: DocsCollectionItem
|
|
||||||
}
|
|
||||||
|
|
||||||
interface Collections {
|
|
||||||
docs: DocsCollectionItem
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
// Generated by @nuxtjs/i18n
|
|
||||||
export const pathToI18nConfig = {};
|
|
||||||
export const i18nPathToPath = {};
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
let configs
|
|
||||||
export function getMdcConfigs () {
|
|
||||||
if (!configs) {
|
|
||||||
configs = Promise.all([
|
|
||||||
])
|
|
||||||
}
|
|
||||||
return configs
|
|
||||||
}
|
|
||||||
5
.nuxt/nuxt.shared.d.ts
vendored
5
.nuxt/nuxt.shared.d.ts
vendored
@@ -1,5 +0,0 @@
|
|||||||
/// <reference path="types/runtime-config.d.ts" />
|
|
||||||
/// <reference path="types/app.config.d.ts" />
|
|
||||||
/// <reference path="schema/nuxt.schema.d.ts" />
|
|
||||||
|
|
||||||
export {}
|
|
||||||
115
.nuxt/types/i18n-plugin.d.ts
vendored
115
.nuxt/types/i18n-plugin.d.ts
vendored
@@ -1,115 +0,0 @@
|
|||||||
// Generated by @nuxtjs/i18n
|
|
||||||
import type { Composer } from 'vue-i18n'
|
|
||||||
import type { ComposerCustomProperties } from '../../node_modules/.pnpm/@nuxtjs+i18n@10.2.4_@emnapi+core@1.7.1_@emnapi+runtime@1.7.1_@vue+compiler-dom@3.5.26_d_a5323b549840adcc2cb57cfe4f807173/node_modules/@nuxtjs/i18n/dist/runtime/types.ts'
|
|
||||||
import type { Strategies, Directions, LocaleObject } from '../../node_modules/.pnpm/@nuxtjs+i18n@10.2.4_@emnapi+core@1.7.1_@emnapi+runtime@1.7.1_@vue+compiler-dom@3.5.26_d_a5323b549840adcc2cb57cfe4f807173/node_modules/@nuxtjs/i18n/dist/types.d.mts'
|
|
||||||
import type { I18nRoute } from '#i18n'
|
|
||||||
|
|
||||||
declare module 'vue-i18n' {
|
|
||||||
interface ComposerCustom extends ComposerCustomProperties<LocaleObject[]> {}
|
|
||||||
interface ExportedGlobalComposer extends ComposerCustomProperties<LocaleObject[]> {}
|
|
||||||
interface VueI18n extends ComposerCustomProperties<LocaleObject[]> {}
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module '@intlify/core-base' {
|
|
||||||
// generated based on configured locales
|
|
||||||
interface GeneratedTypeConfig {
|
|
||||||
locale: "zh-CN" | "en"
|
|
||||||
legacy: false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
interface I18nMeta {
|
|
||||||
i18n?: I18nRoute | false
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module '#app' {
|
|
||||||
interface NuxtApp {
|
|
||||||
$i18n: Composer
|
|
||||||
}
|
|
||||||
interface PageMeta extends I18nMeta {}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
declare module 'vue-router' {
|
|
||||||
interface RouteMeta extends I18nMeta {}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
declare module 'vue-router' {
|
|
||||||
export type RouteMapI18n =
|
|
||||||
TypesConfig extends Record<'RouteNamedMapI18n', infer RouteNamedMap> ? RouteNamedMap : RouteMapGeneric
|
|
||||||
|
|
||||||
// Prefer named resolution for i18n
|
|
||||||
export type RouteLocationNamedI18n<Name extends keyof RouteMapI18n = keyof RouteMapI18n> =
|
|
||||||
| Name
|
|
||||||
| Omit<RouteLocationAsRelativeI18n, 'path'> & { path?: string }
|
|
||||||
/**
|
|
||||||
* Note: disabled route path string autocompletion, this can break depending on `strategy`
|
|
||||||
* this can be enabled again after route resolve has been improved.
|
|
||||||
*/
|
|
||||||
// | RouteLocationAsStringI18n
|
|
||||||
// | RouteLocationAsPathI18n
|
|
||||||
|
|
||||||
export type RouteLocationRawI18n<Name extends keyof RouteMapI18n = keyof RouteMapI18n> =
|
|
||||||
RouteMapGeneric extends RouteMapI18n
|
|
||||||
? RouteLocationAsStringI18n | RouteLocationAsRelativeGeneric | RouteLocationAsPathGeneric
|
|
||||||
:
|
|
||||||
| _LiteralUnion<RouteLocationAsStringTypedList<RouteMapI18n>[Name], string>
|
|
||||||
| RouteLocationAsRelativeTypedList<RouteMapI18n>[Name]
|
|
||||||
|
|
||||||
export type RouteLocationResolvedI18n<Name extends keyof RouteMapI18n = keyof RouteMapI18n> =
|
|
||||||
RouteMapGeneric extends RouteMapI18n
|
|
||||||
? RouteLocationResolvedGeneric
|
|
||||||
: RouteLocationResolvedTypedList<RouteMapI18n>[Name]
|
|
||||||
|
|
||||||
export interface RouteLocationNormalizedLoadedTypedI18n<
|
|
||||||
RouteMapI18n extends RouteMapGeneric = RouteMapGeneric,
|
|
||||||
Name extends keyof RouteMapI18n = keyof RouteMapI18n
|
|
||||||
> extends RouteLocationNormalizedLoadedGeneric {
|
|
||||||
name: Extract<Name, string | symbol>
|
|
||||||
params: RouteMapI18n[Name]['params']
|
|
||||||
}
|
|
||||||
export type RouteLocationNormalizedLoadedTypedListI18n<RouteMapOriginal extends RouteMapGeneric = RouteMapGeneric> = {
|
|
||||||
[N in keyof RouteMapOriginal]: RouteLocationNormalizedLoadedTypedI18n<RouteMapOriginal, N>
|
|
||||||
}
|
|
||||||
export type RouteLocationNormalizedLoadedI18n<Name extends keyof RouteMapI18n = keyof RouteMapI18n> =
|
|
||||||
RouteMapGeneric extends RouteMapI18n
|
|
||||||
? RouteLocationNormalizedLoadedGeneric
|
|
||||||
: RouteLocationNormalizedLoadedTypedListI18n<RouteMapI18n>[Name]
|
|
||||||
|
|
||||||
export type RouteLocationAsStringI18n<Name extends keyof RouteMapI18n = keyof RouteMapI18n> =
|
|
||||||
RouteMapGeneric extends RouteMapI18n
|
|
||||||
? string
|
|
||||||
: _LiteralUnion<RouteLocationAsStringTypedList<RouteMapI18n>[Name], string>
|
|
||||||
|
|
||||||
export type RouteLocationAsRelativeI18n<Name extends keyof RouteMapI18n = keyof RouteMapI18n> =
|
|
||||||
RouteMapGeneric extends RouteMapI18n
|
|
||||||
? RouteLocationAsRelativeGeneric
|
|
||||||
: RouteLocationAsRelativeTypedList<RouteMapI18n>[Name]
|
|
||||||
|
|
||||||
export type RouteLocationAsPathI18n<Name extends keyof RouteMapI18n = keyof RouteMapI18n> =
|
|
||||||
RouteMapGeneric extends RouteMapI18n ? RouteLocationAsPathGeneric : RouteLocationAsPathTypedList<RouteMapI18n>[Name]
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Helper to generate a type safe version of the {@link RouteLocationAsRelative} type.
|
|
||||||
*/
|
|
||||||
export interface RouteLocationAsRelativeTypedI18n<
|
|
||||||
RouteMapI18n extends RouteMapGeneric = RouteMapGeneric,
|
|
||||||
Name extends keyof RouteMapI18n = keyof RouteMapI18n
|
|
||||||
> extends RouteLocationAsRelativeGeneric {
|
|
||||||
name?: Extract<Name, string | symbol>
|
|
||||||
params?: RouteMapI18n[Name]['paramsRaw']
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
declare global {
|
|
||||||
var $t: (Composer)['t']
|
|
||||||
var $rt: (Composer)['rt']
|
|
||||||
var $n: (Composer)['n']
|
|
||||||
var $d: (Composer)['d']
|
|
||||||
var $tm: (Composer)['tm']
|
|
||||||
var $te: (Composer)['te']
|
|
||||||
}
|
|
||||||
|
|
||||||
export {}
|
|
||||||
139
.nuxt/types/modules.d.ts
vendored
139
.nuxt/types/modules.d.ts
vendored
@@ -1,139 +0,0 @@
|
|||||||
import { NuxtModule, ModuleDependencyMeta } from '@nuxt/schema'
|
|
||||||
declare module '@nuxt/schema' {
|
|
||||||
interface ModuleDependencies {
|
|
||||||
["@nuxt/content"]?: ModuleDependencyMeta<typeof import("@nuxt/content").default extends NuxtModule<infer O> ? O : Record<string, unknown>>
|
|
||||||
["@nuxtjs/tailwindcss"]?: ModuleDependencyMeta<typeof import("@nuxtjs/tailwindcss").default extends NuxtModule<infer O> ? O : Record<string, unknown>>
|
|
||||||
["@nuxtjs/i18n"]?: ModuleDependencyMeta<typeof import("@nuxtjs/i18n").default extends NuxtModule<infer O> ? O : Record<string, unknown>>
|
|
||||||
["@nuxt/devtools"]?: ModuleDependencyMeta<typeof import("@nuxt/devtools").default extends NuxtModule<infer O> ? O : Record<string, unknown>>
|
|
||||||
["@nuxt/telemetry"]?: ModuleDependencyMeta<typeof import("@nuxt/telemetry").default extends NuxtModule<infer O> ? O : Record<string, unknown>>
|
|
||||||
["@nuxtjs/mdc"]?: ModuleDependencyMeta<typeof import("@nuxtjs/mdc").default extends NuxtModule<infer O> ? O : Record<string, unknown>>
|
|
||||||
}
|
|
||||||
interface NuxtOptions {
|
|
||||||
/**
|
|
||||||
* Configuration for `@nuxt/content`
|
|
||||||
*/
|
|
||||||
["content"]: typeof import("@nuxt/content").default extends NuxtModule<infer O, unknown, boolean> ? O : Record<string, any>
|
|
||||||
/**
|
|
||||||
* Configuration for `@nuxtjs/tailwindcss`
|
|
||||||
*/
|
|
||||||
["tailwindcss"]: typeof import("@nuxtjs/tailwindcss").default extends NuxtModule<infer O, unknown, boolean> ? O : Record<string, any>
|
|
||||||
/**
|
|
||||||
* Configuration for `@nuxtjs/i18n`
|
|
||||||
*/
|
|
||||||
["i18n"]: typeof import("@nuxtjs/i18n").default extends NuxtModule<infer O, unknown, boolean> ? O : Record<string, any>
|
|
||||||
/**
|
|
||||||
* Configuration for `@nuxt/devtools`
|
|
||||||
*/
|
|
||||||
["devtools"]: typeof import("@nuxt/devtools").default extends NuxtModule<infer O, unknown, boolean> ? O : Record<string, any>
|
|
||||||
/**
|
|
||||||
* Configuration for `@nuxt/telemetry`
|
|
||||||
*/
|
|
||||||
["telemetry"]: typeof import("@nuxt/telemetry").default extends NuxtModule<infer O, unknown, boolean> ? O : Record<string, any>
|
|
||||||
/**
|
|
||||||
* Configuration for `@nuxtjs/mdc`
|
|
||||||
*/
|
|
||||||
["mdc"]: typeof import("@nuxtjs/mdc").default extends NuxtModule<infer O, unknown, boolean> ? O : Record<string, any>
|
|
||||||
}
|
|
||||||
interface NuxtConfig {
|
|
||||||
/**
|
|
||||||
* Configuration for `@nuxt/content`
|
|
||||||
*/
|
|
||||||
["content"]?: typeof import("@nuxt/content").default extends NuxtModule<infer O, unknown, boolean> ? Partial<O> : Record<string, any>
|
|
||||||
/**
|
|
||||||
* Configuration for `@nuxtjs/tailwindcss`
|
|
||||||
*/
|
|
||||||
["tailwindcss"]?: typeof import("@nuxtjs/tailwindcss").default extends NuxtModule<infer O, unknown, boolean> ? Partial<O> : Record<string, any>
|
|
||||||
/**
|
|
||||||
* Configuration for `@nuxtjs/i18n`
|
|
||||||
*/
|
|
||||||
["i18n"]?: typeof import("@nuxtjs/i18n").default extends NuxtModule<infer O, unknown, boolean> ? Partial<O> : Record<string, any>
|
|
||||||
/**
|
|
||||||
* Configuration for `@nuxt/devtools`
|
|
||||||
*/
|
|
||||||
["devtools"]?: typeof import("@nuxt/devtools").default extends NuxtModule<infer O, unknown, boolean> ? Partial<O> : Record<string, any>
|
|
||||||
/**
|
|
||||||
* Configuration for `@nuxt/telemetry`
|
|
||||||
*/
|
|
||||||
["telemetry"]?: typeof import("@nuxt/telemetry").default extends NuxtModule<infer O, unknown, boolean> ? Partial<O> : Record<string, any>
|
|
||||||
/**
|
|
||||||
* Configuration for `@nuxtjs/mdc`
|
|
||||||
*/
|
|
||||||
["mdc"]?: typeof import("@nuxtjs/mdc").default extends NuxtModule<infer O, unknown, boolean> ? Partial<O> : Record<string, any>
|
|
||||||
modules?: (undefined | null | false | NuxtModule<any> | string | [NuxtModule | string, Record<string, any>] | ["@nuxt/content", Exclude<NuxtConfig["content"], boolean>] | ["@nuxtjs/tailwindcss", Exclude<NuxtConfig["tailwindcss"], boolean>] | ["@nuxtjs/i18n", Exclude<NuxtConfig["i18n"], boolean>] | ["@nuxt/devtools", Exclude<NuxtConfig["devtools"], boolean>] | ["@nuxt/telemetry", Exclude<NuxtConfig["telemetry"], boolean>] | ["@nuxtjs/mdc", Exclude<NuxtConfig["mdc"], boolean>])[],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
declare module 'nuxt/schema' {
|
|
||||||
interface ModuleDependencies {
|
|
||||||
["@nuxt/content"]?: ModuleDependencyMeta<typeof import("@nuxt/content").default extends NuxtModule<infer O> ? O : Record<string, unknown>>
|
|
||||||
["@nuxtjs/tailwindcss"]?: ModuleDependencyMeta<typeof import("@nuxtjs/tailwindcss").default extends NuxtModule<infer O> ? O : Record<string, unknown>>
|
|
||||||
["@nuxtjs/i18n"]?: ModuleDependencyMeta<typeof import("@nuxtjs/i18n").default extends NuxtModule<infer O> ? O : Record<string, unknown>>
|
|
||||||
["@nuxt/devtools"]?: ModuleDependencyMeta<typeof import("@nuxt/devtools").default extends NuxtModule<infer O> ? O : Record<string, unknown>>
|
|
||||||
["@nuxt/telemetry"]?: ModuleDependencyMeta<typeof import("@nuxt/telemetry").default extends NuxtModule<infer O> ? O : Record<string, unknown>>
|
|
||||||
["@nuxtjs/mdc"]?: ModuleDependencyMeta<typeof import("@nuxtjs/mdc").default extends NuxtModule<infer O> ? O : Record<string, unknown>>
|
|
||||||
}
|
|
||||||
interface NuxtOptions {
|
|
||||||
/**
|
|
||||||
* Configuration for `@nuxt/content`
|
|
||||||
* @see https://content.nuxt.com
|
|
||||||
*/
|
|
||||||
["content"]: typeof import("@nuxt/content").default extends NuxtModule<infer O, unknown, boolean> ? O : Record<string, any>
|
|
||||||
/**
|
|
||||||
* Configuration for `@nuxtjs/tailwindcss`
|
|
||||||
* @see https://www.npmjs.com/package/@nuxtjs/tailwindcss
|
|
||||||
*/
|
|
||||||
["tailwindcss"]: typeof import("@nuxtjs/tailwindcss").default extends NuxtModule<infer O, unknown, boolean> ? O : Record<string, any>
|
|
||||||
/**
|
|
||||||
* Configuration for `@nuxtjs/i18n`
|
|
||||||
* @see https://www.npmjs.com/package/@nuxtjs/i18n
|
|
||||||
*/
|
|
||||||
["i18n"]: typeof import("@nuxtjs/i18n").default extends NuxtModule<infer O, unknown, boolean> ? O : Record<string, any>
|
|
||||||
/**
|
|
||||||
* Configuration for `@nuxt/devtools`
|
|
||||||
* @see https://www.npmjs.com/package/@nuxt/devtools
|
|
||||||
*/
|
|
||||||
["devtools"]: typeof import("@nuxt/devtools").default extends NuxtModule<infer O, unknown, boolean> ? O : Record<string, any>
|
|
||||||
/**
|
|
||||||
* Configuration for `@nuxt/telemetry`
|
|
||||||
* @see https://www.npmjs.com/package/@nuxt/telemetry
|
|
||||||
*/
|
|
||||||
["telemetry"]: typeof import("@nuxt/telemetry").default extends NuxtModule<infer O, unknown, boolean> ? O : Record<string, any>
|
|
||||||
/**
|
|
||||||
* Configuration for `@nuxtjs/mdc`
|
|
||||||
* @see https://www.npmjs.com/package/@nuxtjs/mdc
|
|
||||||
*/
|
|
||||||
["mdc"]: typeof import("@nuxtjs/mdc").default extends NuxtModule<infer O, unknown, boolean> ? O : Record<string, any>
|
|
||||||
}
|
|
||||||
interface NuxtConfig {
|
|
||||||
/**
|
|
||||||
* Configuration for `@nuxt/content`
|
|
||||||
* @see https://content.nuxt.com
|
|
||||||
*/
|
|
||||||
["content"]?: typeof import("@nuxt/content").default extends NuxtModule<infer O, unknown, boolean> ? Partial<O> : Record<string, any>
|
|
||||||
/**
|
|
||||||
* Configuration for `@nuxtjs/tailwindcss`
|
|
||||||
* @see https://www.npmjs.com/package/@nuxtjs/tailwindcss
|
|
||||||
*/
|
|
||||||
["tailwindcss"]?: typeof import("@nuxtjs/tailwindcss").default extends NuxtModule<infer O, unknown, boolean> ? Partial<O> : Record<string, any>
|
|
||||||
/**
|
|
||||||
* Configuration for `@nuxtjs/i18n`
|
|
||||||
* @see https://www.npmjs.com/package/@nuxtjs/i18n
|
|
||||||
*/
|
|
||||||
["i18n"]?: typeof import("@nuxtjs/i18n").default extends NuxtModule<infer O, unknown, boolean> ? Partial<O> : Record<string, any>
|
|
||||||
/**
|
|
||||||
* Configuration for `@nuxt/devtools`
|
|
||||||
* @see https://www.npmjs.com/package/@nuxt/devtools
|
|
||||||
*/
|
|
||||||
["devtools"]?: typeof import("@nuxt/devtools").default extends NuxtModule<infer O, unknown, boolean> ? Partial<O> : Record<string, any>
|
|
||||||
/**
|
|
||||||
* Configuration for `@nuxt/telemetry`
|
|
||||||
* @see https://www.npmjs.com/package/@nuxt/telemetry
|
|
||||||
*/
|
|
||||||
["telemetry"]?: typeof import("@nuxt/telemetry").default extends NuxtModule<infer O, unknown, boolean> ? Partial<O> : Record<string, any>
|
|
||||||
/**
|
|
||||||
* Configuration for `@nuxtjs/mdc`
|
|
||||||
* @see https://www.npmjs.com/package/@nuxtjs/mdc
|
|
||||||
*/
|
|
||||||
["mdc"]?: typeof import("@nuxtjs/mdc").default extends NuxtModule<infer O, unknown, boolean> ? Partial<O> : Record<string, any>
|
|
||||||
modules?: (undefined | null | false | NuxtModule<any> | string | [NuxtModule | string, Record<string, any>] | ["@nuxt/content", Exclude<NuxtConfig["content"], boolean>] | ["@nuxtjs/tailwindcss", Exclude<NuxtConfig["tailwindcss"], boolean>] | ["@nuxtjs/i18n", Exclude<NuxtConfig["i18n"], boolean>] | ["@nuxt/devtools", Exclude<NuxtConfig["devtools"], boolean>] | ["@nuxt/telemetry", Exclude<NuxtConfig["telemetry"], boolean>] | ["@nuxtjs/mdc", Exclude<NuxtConfig["mdc"], boolean>])[],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
61
.nuxt/types/nitro-nuxt.d.ts
vendored
61
.nuxt/types/nitro-nuxt.d.ts
vendored
@@ -1,61 +0,0 @@
|
|||||||
|
|
||||||
/// <reference path="app.config.d.ts" />
|
|
||||||
/// <reference path="runtime-config.d.ts" />
|
|
||||||
/// <reference types="/Users/gxwebsoft/VUE/tiantian-system/node_modules/.pnpm/@nuxt+nitro-server@4.2.2_better-sqlite3@12.8.0_db0@0.3.4_better-sqlite3@12.8.0__ioredis_a0a2be7525d559e696e64db570f075d2/node_modules/@nuxt/nitro-server/dist/index.mjs" />
|
|
||||||
/// <reference path="nitro-middleware.d.ts" />
|
|
||||||
|
|
||||||
import type { RuntimeConfig } from 'nuxt/schema'
|
|
||||||
import type { H3Event } from 'h3'
|
|
||||||
import type { LogObject } from 'consola'
|
|
||||||
import type { NuxtIslandContext, NuxtIslandResponse, NuxtRenderHTMLContext } from 'nuxt/app'
|
|
||||||
|
|
||||||
declare module 'nitropack' {
|
|
||||||
interface NitroRuntimeConfigApp {
|
|
||||||
buildAssetsDir: string
|
|
||||||
cdnURL: string
|
|
||||||
}
|
|
||||||
interface NitroRuntimeConfig extends RuntimeConfig {}
|
|
||||||
interface NitroRouteConfig {
|
|
||||||
ssr?: boolean
|
|
||||||
noScripts?: boolean
|
|
||||||
/** @deprecated Use `noScripts` instead */
|
|
||||||
experimentalNoScripts?: boolean
|
|
||||||
}
|
|
||||||
interface NitroRouteRules {
|
|
||||||
ssr?: boolean
|
|
||||||
noScripts?: boolean
|
|
||||||
/** @deprecated Use `noScripts` instead */
|
|
||||||
experimentalNoScripts?: boolean
|
|
||||||
appMiddleware?: Record<string, boolean>
|
|
||||||
}
|
|
||||||
interface NitroRuntimeHooks {
|
|
||||||
'dev:ssr-logs': (ctx: { logs: LogObject[], path: string }) => void | Promise<void>
|
|
||||||
'render:html': (htmlContext: NuxtRenderHTMLContext, context: { event: H3Event }) => void | Promise<void>
|
|
||||||
'render:island': (islandResponse: NuxtIslandResponse, context: { event: H3Event, islandContext: NuxtIslandContext }) => void | Promise<void>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
declare module 'nitropack/types' {
|
|
||||||
interface NitroRuntimeConfigApp {
|
|
||||||
buildAssetsDir: string
|
|
||||||
cdnURL: string
|
|
||||||
}
|
|
||||||
interface NitroRuntimeConfig extends RuntimeConfig {}
|
|
||||||
interface NitroRouteConfig {
|
|
||||||
ssr?: boolean
|
|
||||||
noScripts?: boolean
|
|
||||||
/** @deprecated Use `noScripts` instead */
|
|
||||||
experimentalNoScripts?: boolean
|
|
||||||
}
|
|
||||||
interface NitroRouteRules {
|
|
||||||
ssr?: boolean
|
|
||||||
noScripts?: boolean
|
|
||||||
/** @deprecated Use `noScripts` instead */
|
|
||||||
experimentalNoScripts?: boolean
|
|
||||||
appMiddleware?: Record<string, boolean>
|
|
||||||
}
|
|
||||||
interface NitroRuntimeHooks {
|
|
||||||
'dev:ssr-logs': (ctx: { logs: LogObject[], path: string }) => void | Promise<void>
|
|
||||||
'render:html': (htmlContext: NuxtRenderHTMLContext, context: { event: H3Event }) => void | Promise<void>
|
|
||||||
'render:island': (islandResponse: NuxtIslandResponse, context: { event: H3Event, islandContext: NuxtIslandContext }) => void | Promise<void>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
3
.nuxt/types/nitro.d.ts
vendored
3
.nuxt/types/nitro.d.ts
vendored
@@ -1,3 +0,0 @@
|
|||||||
/// <reference path="./nitro-routes.d.ts" />
|
|
||||||
/// <reference path="./nitro-config.d.ts" />
|
|
||||||
/// <reference path="./nitro-imports.d.ts" />
|
|
||||||
0
.nuxt/types/vue-shim.d.ts
vendored
0
.nuxt/types/vue-shim.d.ts
vendored
@@ -13,5 +13,5 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"lastUpdated": 1775669479401
|
"lastUpdated": 1775670138823
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="flex min-h-screen bg-gradient-to-br from-gray-50 to-gray-100">
|
<div class="flex min-h-screen bg-gradient-to-br from-gray-50 to-gray-100">
|
||||||
<!-- 左侧导航 -->
|
<!-- 左侧导航 -->
|
||||||
<aside class="sidebar w-64 fixed h-full text-white flex flex-col">
|
<aside class="w-64 fixed h-full text-white flex flex-col sidebar">
|
||||||
<!-- Logo -->
|
<!-- Logo -->
|
||||||
<div class="p-6 border-b border-white/10">
|
<div class="p-6 border-b border-white/10">
|
||||||
<div class="flex items-center gap-3">
|
<div class="flex items-center gap-3">
|
||||||
@@ -60,80 +60,10 @@
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<!-- 用户信息 -->
|
|
||||||
<div class="p-4 border-t border-white/10">
|
|
||||||
<div class="flex items-center gap-3">
|
|
||||||
<div class="w-10 h-10 bg-white/20 rounded-full flex items-center justify-center">
|
|
||||||
<UserOutlined />
|
|
||||||
</div>
|
|
||||||
<div class="flex-1">
|
|
||||||
<p class="font-medium">管理员</p>
|
|
||||||
<p class="text-xs text-white/70">超级管理员</p>
|
|
||||||
</div>
|
|
||||||
<button class="text-white/70 hover:text-white">
|
|
||||||
<LogoutOutlined />
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</aside>
|
</aside>
|
||||||
|
|
||||||
<!-- 主内容区 -->
|
<!-- 主内容区 -->
|
||||||
<main class="flex-1 ml-64">
|
<main class="flex-1 ml-64">
|
||||||
<!-- 顶部栏 -->
|
|
||||||
<header class="bg-white/85 backdrop-blur-xl border-b border-white/20 sticky top-0 z-50 px-8 py-4">
|
|
||||||
<div class="flex items-center justify-between">
|
|
||||||
<!-- 搜索 -->
|
|
||||||
<div class="relative w-96">
|
|
||||||
<input
|
|
||||||
v-model="searchQuery"
|
|
||||||
type="text"
|
|
||||||
placeholder="🔍 搜索设备、订单、员工、文档..."
|
|
||||||
class="w-full px-5 py-3 bg-gray-100 rounded-xl border-0 focus:ring-2 focus:ring-purple-500 focus:bg-white transition-all"
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- 右侧 -->
|
|
||||||
<div class="flex items-center gap-6">
|
|
||||||
<!-- 全屏 -->
|
|
||||||
<button class="text-gray-500 hover:text-purple-600 transition-colors" @click="toggleFullscreen">
|
|
||||||
<ExpandOutlined class="text-lg" />
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<!-- 消息 -->
|
|
||||||
<a-popover trigger="click">
|
|
||||||
<template #content>
|
|
||||||
<div class="w-64">
|
|
||||||
<div class="font-medium mb-2">通知中心</div>
|
|
||||||
<div class="text-sm text-gray-500">暂无新通知</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
<button class="relative text-gray-500 hover:text-purple-600 transition-colors">
|
|
||||||
<Badge :count="3" :offset="[-2, 2]">
|
|
||||||
<BellOutlined class="text-lg" />
|
|
||||||
</Badge>
|
|
||||||
</button>
|
|
||||||
</a-popover>
|
|
||||||
|
|
||||||
<!-- 语言 -->
|
|
||||||
<button class="text-gray-500 hover:text-purple-600 transition-colors">
|
|
||||||
<GlobalOutlined class="text-lg" />
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<!-- 用户 -->
|
|
||||||
<div class="flex items-center gap-3 pl-6 border-l border-gray-200">
|
|
||||||
<div class="w-10 h-10 bg-gradient-to-br from-purple-500 to-pink-500 rounded-xl flex items-center justify-center text-white font-bold">
|
|
||||||
A
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<p class="font-medium text-gray-800">Admin</p>
|
|
||||||
<p class="text-xs text-gray-500">超级管理员</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<!-- 内容区域 -->
|
<!-- 内容区域 -->
|
||||||
<div class="p-8">
|
<div class="p-8">
|
||||||
<!-- 欢迎区 -->
|
<!-- 欢迎区 -->
|
||||||
@@ -334,7 +264,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, computed, h } from 'vue'
|
import { ref, computed } from 'vue'
|
||||||
import {
|
import {
|
||||||
HomeOutlined,
|
HomeOutlined,
|
||||||
SettingOutlined,
|
SettingOutlined,
|
||||||
@@ -344,10 +274,6 @@ import {
|
|||||||
TeamOutlined,
|
TeamOutlined,
|
||||||
ProjectOutlined,
|
ProjectOutlined,
|
||||||
UserOutlined,
|
UserOutlined,
|
||||||
LogoutOutlined,
|
|
||||||
ExpandOutlined,
|
|
||||||
BellOutlined,
|
|
||||||
GlobalOutlined,
|
|
||||||
ArrowUpOutlined,
|
ArrowUpOutlined,
|
||||||
CheckSquareOutlined,
|
CheckSquareOutlined,
|
||||||
ThunderboltOutlined,
|
ThunderboltOutlined,
|
||||||
@@ -367,10 +293,12 @@ import {
|
|||||||
AuditOutlined,
|
AuditOutlined,
|
||||||
ExperimentOutlined,
|
ExperimentOutlined,
|
||||||
FileTextOutlined,
|
FileTextOutlined,
|
||||||
|
BlockOutlined,
|
||||||
} from '@ant-design/icons-vue'
|
} from '@ant-design/icons-vue'
|
||||||
|
|
||||||
|
definePageMeta({ layout: 'blank' })
|
||||||
|
|
||||||
// 响应式数据
|
// 响应式数据
|
||||||
const searchQuery = ref('')
|
|
||||||
const activeMenu = ref('home')
|
const activeMenu = ref('home')
|
||||||
const activePeriod = ref('本周')
|
const activePeriod = ref('本周')
|
||||||
|
|
||||||
@@ -428,14 +356,6 @@ const notices = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
// 方法
|
// 方法
|
||||||
const toggleFullscreen = () => {
|
|
||||||
if (!document.fullscreenElement) {
|
|
||||||
document.documentElement.requestFullscreen()
|
|
||||||
} else {
|
|
||||||
document.exitFullscreen()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const navigateToApp = (route: string) => {
|
const navigateToApp = (route: string) => {
|
||||||
navigateTo(route)
|
navigateTo(route)
|
||||||
}
|
}
|
||||||
@@ -477,15 +397,6 @@ const navigateToApp = (route: string) => {
|
|||||||
transition: transform 0.3s ease;
|
transition: transform 0.3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
.notification-badge {
|
|
||||||
animation: pulse 2s infinite;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes pulse {
|
|
||||||
0%, 100% { opacity: 1; }
|
|
||||||
50% { opacity: 0.7; }
|
|
||||||
}
|
|
||||||
|
|
||||||
.quick-btn {
|
.quick-btn {
|
||||||
transition: all 0.2s ease;
|
transition: all 0.2s ease;
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user