解决打包后页面一直loading的问题

This commit is contained in:
神仙都没用 2025-01-03 22:02:11 +08:00
parent e4497e33c7
commit 123b4f1fa3
39 changed files with 4996 additions and 5253 deletions

View File

@ -4,17 +4,16 @@
"type": "module",
"scripts": {
"dev": "vite --host",
"build": "run-p type-check \"build-only {@}\" --",
"build": "vite build",
"preview": "vite preview",
"build-only": "vite build",
"type-check": "vue-tsc --build --force",
"lint": "eslint . --fix",
"format": "prettier --write src/"
},
"dependencies": {
"@cool-vue/crud": "^7.2.7",
"@cool-vue/crud": "^7.2.9",
"@element-plus/icons-vue": "^2.3.1",
"@vueuse/core": "^11.1.0",
"@vueuse/core": "^12.3.0",
"@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^5.1.12",
"axios": "^1.7.7",
@ -22,7 +21,7 @@
"core-js": "^3.38.1",
"dayjs": "^1.11.13",
"echarts": "^5.5.1",
"element-plus": "2.8.8",
"element-plus": "^2.9.1",
"file-saver": "^2.0.5",
"lodash-es": "^4.17.21",
"marked": "^14.1.3",
@ -30,21 +29,20 @@
"mockjs": "^1.1.0",
"monaco-editor": "0.52.0",
"nprogress": "^0.2.0",
"pinia": "^2.2.4",
"pinia": "^2.3.0",
"socket.io-client": "^4.8.0",
"store": "^2.0.12",
"vue": "^3.5.12",
"vue": "^3.5.13",
"vue-echarts": "^7.0.3",
"vue-router": "^4.4.5",
"vuedraggable": "^4.1.0",
"xlsx": "^0.18.5"
},
"devDependencies": {
"@cool-vue/vite-plugin": "^7.2.5",
"@cool-vue/vite-plugin": "^7.2.6",
"@rushstack/eslint-patch": "^1.10.4",
"@tsconfig/node20": "^20.1.4",
"@types/file-saver": "^2.0.7",
"@types/jsdom": "^21.1.7",
"@types/lodash-es": "^4.17.12",
"@types/mockjs": "^1.0.10",
"@types/node": "^20.16.11",
@ -60,14 +58,13 @@
"eslint": "^9.12.0",
"eslint-plugin-prettier": "^5.2.1",
"eslint-plugin-vue": "^9.29.0",
"jsdom": "^25.0.1",
"npm-run-all2": "^6.2.3",
"prettier": "^3.3.3",
"rollup-plugin-visualizer": "^5.12.0",
"sass": "1.81.0",
"terser": "^5.36.0",
"typescript": "~5.5.4",
"vite": "^5.4.8",
"vite": "^5.4.10",
"vite-plugin-compression": "^0.5.1",
"vite-plugin-vue-devtools": "^7.5.2",
"vue-tsc": "^2.1.6"

View File

@ -1,6 +1,6 @@
{
"name": "@cool-vue/crud",
"version": "7.2.7",
"version": "7.2.10",
"private": false,
"main": "./dist/index.umd.min.js",
"typings": "types/index.d.ts",
@ -14,10 +14,9 @@
"@element-plus/icons-vue": "^2.3.1",
"array.prototype.flat": "^1.2.4",
"core-js": "^3.21.1",
"element-plus": "^2.8.3",
"lodash-es": "^4.17.21",
"mitt": "^3.0.1",
"vue": "^3.5.6"
"vue": "^3.5.13"
},
"devDependencies": {
"@types/array.prototype.flat": "^1.2.1",
@ -30,7 +29,8 @@
"prettier": "^3.1.0",
"sass": "^1.55.0",
"sass-loader": "^12.6.0",
"typescript": "^5.3.3"
"typescript": "^5.3.3",
"element-plus": "^2.9.1"
},
"files": [
"dist",

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,7 @@
/// <reference types="../index" />
import { PropType } from "vue";
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
items: {
type: PropType<ClForm.Item<any>[]>;
type: PropType<ClForm.Item[]>;
default: () => never[];
};
title: StringConstructor;
@ -17,7 +16,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
onSearch: FunctionConstructor;
}>, () => any, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("clear" | "reset")[], "clear" | "reset", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
items: {
type: PropType<ClForm.Item<any>[]>;
type: PropType<ClForm.Item[]>;
default: () => never[];
};
title: StringConstructor;

View File

@ -1,4 +1,3 @@
/// <reference types="../index" />
import { type PropType } from "vue";
declare const ClContextMenu: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
show: BooleanConstructor;

View File

@ -1,4 +1,3 @@
/// <reference types="../index" />
import { Mitt } from "../../utils/mitt";
interface Options {
mitt: Mitt;
@ -19,5 +18,6 @@ export declare function useHelper({ config, crud, mitt }: Options): {
getPermission: (key: "page" | "list" | "info" | "update" | "add" | "delete") => boolean;
paramsReplace: (params: obj) => any;
getParams: () => obj;
setParams: (data: obj) => void;
};
export {};

View File

@ -6,11 +6,11 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
default: () => never[];
};
justify: {
type: PropType<"center" | "left" | "right" | "justify" | "start" | "end" | "match-parent">;
type: PropType<"start" | "end" | "left" | "right" | "center" | "justify" | "match-parent">;
default: string;
};
type: {
type: PropType<"default" | "card">;
type: PropType<"card" | "default">;
default: string;
};
}>, () => any, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("change" | "update:modelValue")[], "change" | "update:modelValue", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
@ -20,11 +20,11 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
default: () => never[];
};
justify: {
type: PropType<"center" | "left" | "right" | "justify" | "start" | "end" | "match-parent">;
type: PropType<"start" | "end" | "left" | "right" | "center" | "justify" | "match-parent">;
default: string;
};
type: {
type: PropType<"default" | "card">;
type: PropType<"card" | "default">;
default: string;
};
}>> & Readonly<{

View File

@ -1,4 +1,3 @@
/// <reference types="../index" />
export declare function useAction({ config, form, Form }: {
config: ClForm.Config;
form: obj;

View File

@ -1,4 +1,3 @@
/// <reference types="../index" />
export declare function useApi({ Form }: {
Form: Vue.Ref<any>;
}): obj;

View File

@ -1,4 +1,3 @@
/// <reference types="../index" />
export declare function useForm(): {
Form: import("vue").Ref<any, any>;
config: {
@ -34,14 +33,14 @@ export declare function useForm(): {
icon?: any;
lazy?: boolean | undefined;
}[] | undefined;
justify?: "center" | "left" | "right" | undefined;
justify?: "left" | "center" | "right" | undefined;
color?: string | undefined;
mergeProp?: boolean | undefined;
labelWidth?: string | undefined;
error?: string | undefined;
showMessage?: boolean | undefined;
inlineMessage?: boolean | undefined;
size?: "default" | "small" | "medium" | undefined;
size?: "medium" | "default" | "small" | undefined;
} | undefined;
span?: number | undefined;
col?: {
@ -62,9 +61,10 @@ export declare function useForm(): {
label?: string | undefined;
renderLabel?: any;
flex?: boolean | undefined;
hook?: ClForm.HookKey | {
bind?: ClForm.HookPipe | ClForm.HookPipe[] | undefined;
submit?: ClForm.HookPipe | ClForm.HookPipe[] | undefined;
hook?: "string" | "number" | "boolean" | "join" | AnyString | "empty" | "split" | "booleanNumber" | "datetimeRange" | "splitJoin" | "json" | {
bind?: (ClForm.Hook["Pipe"] | ClForm.Hook["Pipe"][]) | undefined;
submit?: (ClForm.Hook["Pipe"] | ClForm.Hook["Pipe"][]) | undefined;
reset?: ((prop: string) => string[]) | undefined;
} | undefined;
hidden?: boolean | ((options: {
scope: obj;
@ -170,25 +170,25 @@ export declare function useForm(): {
} | undefined;
rules?: {
[x: string]: any;
type?: "string" | "number" | "boolean" | "object" | "method" | "regexp" | "integer" | "float" | "array" | "enum" | "date" | "url" | "hex" | "email" | "any" | undefined;
type?: "string" | "number" | "boolean" | "method" | "regexp" | "integer" | "float" | "array" | "object" | "enum" | "date" | "url" | "hex" | "email" | "any" | undefined;
required?: boolean | undefined;
message?: string | undefined;
min?: number | undefined;
max?: number | undefined;
trigger?: any;
validator?: ((rule: any, value: any, callback: (error?: Error | undefined) => void) => void) | undefined;
validator?: ((rule: any, value: any, callback: (error?: Error) => void) => void) | undefined;
} | {
[x: string]: any;
type?: "string" | "number" | "boolean" | "object" | "method" | "regexp" | "integer" | "float" | "array" | "enum" | "date" | "url" | "hex" | "email" | "any" | undefined;
type?: "string" | "number" | "boolean" | "method" | "regexp" | "integer" | "float" | "array" | "object" | "enum" | "date" | "url" | "hex" | "email" | "any" | undefined;
required?: boolean | undefined;
message?: string | undefined;
min?: number | undefined;
max?: number | undefined;
trigger?: any;
validator?: ((rule: any, value: any, callback: (error?: Error | undefined) => void) => void) | undefined;
validator?: ((rule: any, value: any, callback: (error?: Error) => void) => void) | undefined;
}[] | undefined;
required?: boolean | undefined;
children?: any[] | undefined;
children?: /*elided*/ any[] | undefined;
}[];
form: obj;
isReset?: boolean | undefined;
@ -205,7 +205,7 @@ export declare function useForm(): {
hidden?: boolean | undefined;
saveButtonText?: string | undefined;
closeButtonText?: string | undefined;
justify?: "center" | "flex-start" | "flex-end" | undefined;
justify?: "flex-start" | "center" | "flex-end" | undefined;
buttons?: (`slot-${string}` | ClForm.CloseAction | {
[x: string]: any;
label: string;
@ -222,7 +222,7 @@ export declare function useForm(): {
height?: string | undefined;
width?: string | undefined;
hideHeader?: boolean | undefined;
controls?: ("close" | AnyString | "fullscreen")[] | undefined;
controls?: Array<"fullscreen" | "close" | AnyString> | undefined;
};
};
form: obj;

View File

@ -1,4 +1,3 @@
/// <reference types="../index" />
import { Ref } from "vue";
export declare function usePlugins(enable: boolean, { visible }: {
visible: Ref<boolean>;

View File

@ -1,4 +1,3 @@
/// <reference types="../index" />
export declare function useTabs({ config, Form }: {
config: ClForm.Config;
Form: Vue.Ref<any>;

View File

@ -6,10 +6,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
default: string;
};
fieldList: {
type: PropType<{
type: PropType<Array<{
label: string;
value: string;
}[]>;
}>>;
default: () => never[];
};
onSearch: FunctionConstructor;
@ -26,10 +26,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
default: string;
};
fieldList: {
type: PropType<{
type: PropType<Array<{
label: string;
value: string;
}[]>;
}>>;
default: () => never[];
};
onSearch: FunctionConstructor;

View File

@ -1,4 +1,3 @@
/// <reference types="../index" />
import { PropType } from "vue";
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
inline: {
@ -14,7 +13,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
default: () => {};
};
items: {
type: PropType<ClForm.Item<any>[]>;
type: PropType<ClForm.Item[]>;
default: () => never[];
};
resetBtn: {
@ -38,7 +37,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
default: () => {};
};
items: {
type: PropType<ClForm.Item<any>[]>;
type: PropType<ClForm.Item[]>;
default: () => never[];
};
resetBtn: {

View File

@ -1,4 +1,3 @@
/// <reference types="../index" />
export declare function useData({ config, Table }: {
config: ClTable.Config;
Table: Vue.Ref<any>;

View File

@ -1,2 +1 @@
/// <reference types="../index" />
export declare function renderHeader(item: ClTable.Column, { scope, slots }: any): any;

View File

@ -1,4 +1,3 @@
/// <reference types="../index" />
export declare function useHeight({ config, Table }: {
Table: Vue.Ref<any>;
config: ClTable.Config;

View File

@ -1,4 +1,3 @@
/// <reference types="../index" />
export declare function useTable(props: any): {
Table: import("vue").Ref<any, any>;
config: {
@ -124,14 +123,14 @@ export declare function useTable(props: any): {
column: any;
$index: number;
}) => any;
sortable: boolean | "asc" | "desc" | "descending" | "ascending" | "custom";
sortable: boolean | "desc" | "descending" | "ascending" | "asc" | "custom";
sortMethod: fn;
sortBy: string | any[] | ((row: any, index: number) => any);
resizable: boolean;
columnKey: string;
headerAlign: ElementPlus.Align;
showOverflowTooltip: boolean;
fixed: string | boolean;
fixed: boolean | string;
formatter: (row: any, column: any, value: any, index: number) => any;
selectable: (row: any, index: number) => boolean;
reserveSelection: boolean;
@ -140,9 +139,9 @@ export declare function useTable(props: any): {
filters: unknown[];
filterPlacement: string;
filterMultiple: boolean;
index: number | ((index: number) => number);
index: ((index: number) => number) | number;
sortOrders: unknown[];
children: any[];
children: /*elided*/ any[];
}[];
autoHeight: boolean;
height: any;
@ -154,7 +153,7 @@ export declare function useTable(props: any): {
ellipsis?: boolean | undefined;
disabled?: boolean | undefined;
hidden?: boolean | undefined;
children?: any[] | undefined;
children?: /*elided*/ any[] | undefined;
showChildren?: boolean | undefined;
callback?: ((done: fn) => void) | undefined;
} | ((row: obj, column: obj, event: PointerEvent) => ClContextMenu.Item) | "check" | "order-desc" | "order-asc")[];

View File

@ -1,4 +1,3 @@
/// <reference types="../index" />
export declare function useOp({ config }: {
config: ClTable.Config;
}): {

View File

@ -1,4 +1,3 @@
/// <reference types="../index" />
export declare function usePlugins(): {
create: (plugins?: ClTable.Plugin[]) => void;
};

View File

@ -1,4 +1,3 @@
/// <reference types="../index" />
export declare function useRender(): {
renderColumn: (columns: ClTable.Column[]) => (import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;

View File

@ -1,4 +1,3 @@
/// <reference types="../index" />
export declare function useRow({ Table, config, Sort }: {
Table: Vue.Ref<any>;
config: ClTable.Config;

View File

@ -1,4 +1,3 @@
/// <reference types="../index" />
export declare function useSelection({ emit }: {
emit: Vue.Emit;
}): {

View File

@ -1,4 +1,3 @@
/// <reference types="../index" />
export declare function useSort({ config, Table, emit }: {
config: ClTable.Config;
Table: Vue.Ref<any>;

View File

@ -1,3 +1,2 @@
/// <reference types="../index" />
export declare const crudList: ClCrud.Ref[];
export declare const emitter: Emitter;

View File

@ -1,4 +1,3 @@
/// <reference types="../index" />
import { Ref } from "vue";
export declare function useCrud(options?: ClCrud.Options, cb?: (app: ClCrud.Ref) => void): Ref<ClCrud.Ref | undefined, ClCrud.Ref | undefined>;
export declare function useUpsert<T = any>(options?: ClUpsert.Options<T>): Ref<ClUpsert.Ref<any> | undefined, ClUpsert.Ref<any> | undefined>;

View File

@ -1,4 +1,3 @@
/// <reference types="../index" />
import { Mitt } from "../utils/mitt";
export declare function useCore(): {
crud: ClCrud.Ref;

View File

@ -1,4 +1,3 @@
/// <reference types="../index" />
import type { App } from "vue";
import "./static/index.scss";
declare const Crud: {

View File

@ -1,4 +1,3 @@
/// <reference types="../index" />
/**
* prop为空则默认第一个选项
* @param prop

View File

@ -1,3 +1,2 @@
/// <reference types="../index" />
import { type App } from "vue";
export declare function useProvide(app: App, options?: Options): void;

View File

@ -1,10 +1,9 @@
/// <reference types="../index" />
export declare const format: {
[key: string]: ClForm.HookFn;
[key: string]: ClForm.Hook["Fn"];
};
declare const formHook: {
bind(data: any): void;
submit(data: any): void;
};
export declare function registerFormHook(name: string, fn: ClForm.HookFn): void;
export declare function registerFormHook(name: string, fn: ClForm.Hook["Fn"]): void;
export default formHook;

View File

@ -1,6 +1,6 @@
import { App } from "vue";
declare const _default: {
readonly vue: App<any>;
readonly vue: App;
get(key: string): any;
set(key: string, value: any): void;
};

View File

@ -1,4 +1,3 @@
/// <reference types="../index" />
/**
* form.hidden
*/

View File

@ -470,10 +470,19 @@
// 不存在则创建
if (!d[k]) {
d[k] = {
namespace: path,
permission: {},
};
}
if (!d[k].namespace) {
d[k].namespace = path;
}
// 创建权限
if (d[k].namespace) {
getNames(d[k]).forEach((i) => {
d[k].permission[i] =
`${d[k].namespace.replace(`${id}/`, "")}/${i}`.replace(/\//g, ":");
});
}
// 创建方法
e.api.forEach((a) => {
// 方法名
@ -482,10 +491,6 @@
d[k][n] = a;
}
});
// 创建权限
getNames(d[k]).forEach((i) => {
d[k].permission[i] = `${d[k].namespace.replace(`${id}/`, "")}/${i}`.replace(/\//g, ":");
});
}
}
}

View File

@ -1,6 +1,6 @@
{
"name": "@cool-vue/vite-plugin",
"version": "7.2.5",
"version": "7.2.6",
"description": "cool-admin、cool-uni builder",
"main": "/dist/index.js",
"scripts": {

View File

@ -429,11 +429,22 @@ function createService() {
// 不存在则创建
if (!d[k]) {
d[k] = {
namespace: path,
permission: {},
};
}
if (!d[k].namespace) {
d[k].namespace = path;
}
// 创建权限
if (d[k].namespace) {
getNames(d[k]).forEach((i) => {
d[k].permission[i] =
`${d[k].namespace.replace(`${id}/`, "")}/${i}`.replace(/\//g, ":");
});
}
// 创建方法
e.api.forEach((a) => {
// 方法名
@ -443,14 +454,6 @@ function createService() {
d[k][n] = a;
}
});
// 创建权限
getNames(d[k]).forEach((i) => {
d[k].permission[i] = `${d[k].namespace.replace(`${id}/`, "")}/${i}`.replace(
/\//g,
":",
);
});
}
}
}

696
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -6,5 +6,5 @@
<script lang="ts" setup>
import { ElConfigProvider } from 'element-plus';
import zhCn from 'element-plus/dist/locale/zh-cn.mjs';
import zhCn from 'element-plus/es/locale/lang/zh-cn';
</script>

4481
stats.html

File diff suppressed because one or more lines are too long