Migrate old admin modules and local crud deps

Port pages for data forms, score admin, student maintenance,
vacation records, menu routing, and workbench. Add team switching,
dynamic menu loading, viewport scaling, and bundled local fast-crud
packages.
This commit is contained in:
2026-11-02 12:21:25 +08:00
parent 47dd605067
commit 792131228a
232 changed files with 60676 additions and 604 deletions
@@ -0,0 +1,3 @@
export declare function getEachDeep(_: any): ForEachDeep;
export type ForEachDeep = (obj: any, callback: any, options?: any) => any;
export declare const forEachDeep: ForEachDeep;
+3
View File
@@ -0,0 +1,3 @@
export declare const deepdash: {
forEachDeep: import("./get-each-deep").ForEachDeep;
};
@@ -0,0 +1,2 @@
export declare function isObject(value: any): boolean;
export default function getIterate(_: any): (item: any) => void;
@@ -0,0 +1,5 @@
declare function getPathToString(_: any): (path: any, ...prefixes: any) => any;
declare namespace getPathToString {
var notChainable: boolean;
}
export default getPathToString;
+36
View File
@@ -0,0 +1,36 @@
import { trace } from "./util.trace";
import store from "./util.store";
export * from "./util.log";
import * as clipboard from "./util.clipboard";
export declare const utils: {
logger: {
debug: (...args: any) => void;
info: (...args: any) => void;
warn: (...args: any) => void;
error: (...args: any) => void;
log: (...args: any) => void;
};
strings: {
isEmpty: (value?: string) => boolean;
isAllEmpty: (...values: any) => boolean;
hasEmpty: (...values: any) => boolean;
};
trace: typeof trace;
vite: {
transformFromGlob: (modules: any, pickNameExp?: any, transform?: any) => any;
installAsyncComponents: (app: any, modules: any, excludes: any, pickNameExp: any, transform: any) => void;
installSyncComponents: (app: any, modules: any, excludes: any, pickNameExp: any, transform: any) => void;
createAsyncComponent: (es: any) => new () => import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}, {}, {}, string, import("vue").ComponentProvideOptions>, {}, {}, "", {}, any>;
loadAsyncComponentFromGlob: (modules: any) => any;
loadComponentFromGlob: (modules: any) => any;
};
store: typeof store;
deepdash: {
forEachDeep: import("./deepdash/get-each-deep").ForEachDeep;
};
dash: {
omit(ref: import("vue").Ref<any, any>, ...skips: string[]): any;
};
clipboard: typeof clipboard;
};
export default utils;
+14
View File
@@ -0,0 +1,14 @@
/**
* 使用现代Clipboard API复制文本到剪贴板
* @param {string} text - 要复制的文本
* @returns {Promise<boolean>} 复制是否成功
*/
export declare function copyToClipboard(text: any): Promise<boolean>;
/**
* 使用现代Clipboard API读取剪贴板文本
* @returns {Promise<string>} 剪贴板中的文本内容
*/
export declare function readToClipboard(): Promise<string>;
export declare function copyToMemory(text: any, key?: string): void;
export declare function readToMemory(key?: string): any;
export declare function clearMemoryClipboard(key?: string): void;
+3
View File
@@ -0,0 +1,3 @@
export declare const Constants: {
orderDefault: number;
};
+10
View File
@@ -0,0 +1,10 @@
import { Ref } from "vue";
declare const _default: {
/**
* 重构object,但忽略某些字段
* @param ref
* @param skips
*/
omit(ref: Ref, ...skips: string[]): any;
};
export default _default;
+9
View File
@@ -0,0 +1,9 @@
declare const logger: {
debug: (...args: any) => void;
info: (...args: any) => void;
warn: (...args: any) => void;
error: (...args: any) => void;
log: (...args: any) => void;
};
export default logger;
export declare function setLogger(opts?: any): void;
+23
View File
@@ -0,0 +1,23 @@
import { FsRemoteStorage } from "../d";
export default class TableStore {
remoteStorage?: FsRemoteStorage;
$router: any;
tableName: string;
keyType: string | boolean;
id?: string;
constructor(opts: {
$router: any;
tableName: string;
keyType: string | boolean;
remoteStorage?: FsRemoteStorage;
id?: string;
});
getTableId(): string;
getTable(): Promise<any>;
saveTable(table: any): Promise<void>;
clearTable(): Promise<void>;
updateTableValue(value: any, key?: string): Promise<void>;
getItemKey(): string;
getTableValue(key?: string): Promise<any>;
clearTableValue(key?: string): Promise<void>;
}
+9
View File
@@ -0,0 +1,9 @@
declare function isEmpty(value?: string | null): boolean;
declare function isAllEmpty(...values: any): boolean;
declare function hasEmpty(...values: any): boolean;
declare const StringUtils: {
isEmpty: typeof isEmpty;
isAllEmpty: typeof isAllEmpty;
hasEmpty: typeof hasEmpty;
};
export default StringUtils;
+1
View File
@@ -0,0 +1 @@
export declare function trace(name: string, enable?: boolean): void;
+15
View File
@@ -0,0 +1,15 @@
declare function createAsyncComponent(es: any): new () => import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}, {}, {}, string, import("vue").ComponentProvideOptions>, {}, {}, "", {}, any>;
declare function installAsyncComponents(app: any, modules: any, excludes: any, pickNameExp: any, transform: any): void;
declare function installSyncComponents(app: any, modules: any, excludes: any, pickNameExp: any, transform: any): void;
declare function transformFromGlob(modules: any, pickNameExp?: any, transform?: any): any;
declare function loadAsyncComponentFromGlob(modules: any): any;
declare function loadComponentFromGlob(modules: any): any;
declare const _default: {
transformFromGlob: typeof transformFromGlob;
installAsyncComponents: typeof installAsyncComponents;
installSyncComponents: typeof installSyncComponents;
createAsyncComponent: typeof createAsyncComponent;
loadAsyncComponentFromGlob: typeof loadAsyncComponentFromGlob;
loadComponentFromGlob: typeof loadComponentFromGlob;
};
export default _default;