From 8e4992055a28e2be9df25e2f3a793a9d179b3a16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A5=9E=E4=BB=99=E9=83=BD=E6=B2=A1=E7=94=A8?= <615206459@qq.com> Date: Mon, 9 Oct 2023 14:22:49 +0800 Subject: [PATCH 01/24] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/base/store/menu.ts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/modules/base/store/menu.ts b/src/modules/base/store/menu.ts index ae6ab0a..4fa5b32 100644 --- a/src/modules/base/store/menu.ts +++ b/src/modules/base/store/menu.ts @@ -143,12 +143,7 @@ export const useMenuStore = defineStore("menu", function () { }); } else { // 动态菜单 - await service.base.comm - .permmenu() - .then(next) - .catch(() => { - ElMessage.error("菜单加载异常!"); - }); + await service.base.comm.permmenu().then(next); } } From ddd940887866d07122bf9859049570141b93a790 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A5=9E=E4=BB=99=E9=83=BD=E6=B2=A1=E7=94=A8?= <615206459@qq.com> Date: Mon, 9 Oct 2023 19:45:58 +0800 Subject: [PATCH 02/24] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/cool/utils/index.ts | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/src/cool/utils/index.ts b/src/cool/utils/index.ts index f0e5923..e550c59 100644 --- a/src/cool/utils/index.ts +++ b/src/cool/utils/index.ts @@ -200,34 +200,26 @@ export function deepPaths(paths: string[], splitor?: string) { } // 列表转树形 -export function deepTree(list: any[], order?: "asc" | "desc"): any[] { +export function deepTree(list: any[], sort?: "desc" | "asc"): any[] { const newList: any[] = []; const map: any = {}; - list.forEach((e) => (map[e.id] = e)); + orderBy(list, "orderNum", sort) + .map((e) => { + map[e.id] = e; + return e; + }) + .forEach((e) => { + const parent = map[e.parentId]; - list.forEach((e) => { - const parent = map[e.parentId]; - - if (parent) { - (parent.children || (parent.children = [])).push(e); - } else { - newList.push(e); - } - }); - - const fn = (list: Array) => { - list.map((e) => { - if (isArray(e.children)) { - e.children = orderBy(e.children, "orderNum", order); - fn(e.children); + if (parent) { + (parent.children || (parent.children = [])).push(e); + } else { + newList.push(e); } }); - }; - fn(newList); - - return orderBy(newList, "orderNum", order); + return newList; } // 树形转列表 From e019f75456e5a587a78284e7108342ee60d3d743 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A5=9E=E4=BB=99=E9=83=BD=E6=B2=A1=E7=94=A8?= <615206459@qq.com> Date: Tue, 10 Oct 2023 17:59:15 +0800 Subject: [PATCH 03/24] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 +- package.json | 2 +- packages/crud/package.json | 2 +- packages/crud/src/components/crud/helper.ts | 3 ++- packages/crud/src/components/form/index.tsx | 4 ++-- packages/crud/types/components/adv/search.d.ts | 4 ++-- packages/crud/types/components/form-tabs/index.d.ts | 4 ++-- packages/crud/types/components/search-key/index.d.ts | 4 ++-- src/modules/demo/components/form-btn.vue | 3 +++ src/modules/dict/types/index.d.ts | 7 ++++--- yarn.lock | 8 ++++---- 11 files changed, 24 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index 1e78202..cd65a64 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,4 @@ node_modules dist dist-ssr *.local -pnpm-lock.yaml +pnpm-lock.yaml \ No newline at end of file diff --git a/package.json b/package.json index b67a502..2d4a867 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "lint:eslint": "eslint \"{src}/**/*.{vue,ts,tsx}\" --fix" }, "dependencies": { - "@cool-vue/crud": "^7.0.1-beta2", + "@cool-vue/crud": "^7.0.1-beta3", "@element-plus/icons-vue": "^2.1.0", "@vueuse/core": "^10.4.0", "@wangeditor/editor": "^5.1.23", diff --git a/packages/crud/package.json b/packages/crud/package.json index fc95190..3a9ef6a 100644 --- a/packages/crud/package.json +++ b/packages/crud/package.json @@ -1,6 +1,6 @@ { "name": "@cool-vue/crud", - "version": "7.0.1-beta2", + "version": "7.0.1-beta3", "private": false, "main": "./dist/index.umd.min.js", "typings": "types/index.d.ts", diff --git a/packages/crud/src/components/crud/helper.ts b/packages/crud/src/components/crud/helper.ts index 579a9a5..681252d 100644 --- a/packages/crud/src/components/crud/helper.ts +++ b/packages/crud/src/components/crud/helper.ts @@ -1,7 +1,8 @@ import { ElMessageBox, ElMessage } from "element-plus"; import { Mitt } from "../../utils/mitt"; import { ref } from "vue"; -import { isArray, isFunction, merge } from "lodash-es"; +import { isArray, isFunction } from "lodash-es"; +import { merge } from "../../utils"; interface Options { mitt: Mitt; diff --git a/packages/crud/src/components/form/index.tsx b/packages/crud/src/components/form/index.tsx index a458d1a..d8d2574 100644 --- a/packages/crud/src/components/form/index.tsx +++ b/packages/crud/src/components/form/index.tsx @@ -1,8 +1,8 @@ import { defineComponent, h, nextTick } from "vue"; -import { cloneDeep, isBoolean, isEmpty, merge } from "lodash-es"; +import { cloneDeep, isBoolean, isEmpty } from "lodash-es"; import { useAction, useForm, usePlugins, useTabs } from "./helper"; import { useBrowser, useConfig, useElApi } from "../../hooks"; -import { getValue } from "../../utils"; +import { getValue, merge } from "../../utils"; import formHook from "../../utils/form-hook"; import { renderNode } from "../../utils/vnode"; import { parseFormHidden } from "../../utils/parse"; diff --git a/packages/crud/types/components/adv/search.d.ts b/packages/crud/types/components/adv/search.d.ts index c2bc7e4..22f006e 100644 --- a/packages/crud/types/components/adv/search.d.ts +++ b/packages/crud/types/components/adv/search.d.ts @@ -7,7 +7,7 @@ declare const _default: import("vue").DefineComponent<{ }; title: StringConstructor; size: { - type: (StringConstructor | NumberConstructor)[]; + type: (NumberConstructor | StringConstructor)[]; default: string; }; op: { @@ -22,7 +22,7 @@ declare const _default: import("vue").DefineComponent<{ }; title: StringConstructor; size: { - type: (StringConstructor | NumberConstructor)[]; + type: (NumberConstructor | StringConstructor)[]; default: string; }; op: { diff --git a/packages/crud/types/components/form-tabs/index.d.ts b/packages/crud/types/components/form-tabs/index.d.ts index 6e8079a..df60e9f 100644 --- a/packages/crud/types/components/form-tabs/index.d.ts +++ b/packages/crud/types/components/form-tabs/index.d.ts @@ -1,6 +1,6 @@ import { PropType } from "vue"; declare const _default: import("vue").DefineComponent<{ - modelValue: (StringConstructor | NumberConstructor)[]; + modelValue: (NumberConstructor | StringConstructor)[]; labels: { type: ArrayConstructor; default: () => never[]; @@ -14,7 +14,7 @@ declare const _default: import("vue").DefineComponent<{ default: string; }; }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("change" | "update:modelValue")[], "change" | "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly never[]; diff --git a/packages/crud/types/components/search-key/index.d.ts b/packages/crud/types/components/search-key/index.d.ts index d6ff5bc..12e1e3a 100644 --- a/packages/crud/types/components/search-key/index.d.ts +++ b/packages/crud/types/components/search-key/index.d.ts @@ -15,7 +15,7 @@ declare const _default: import("vue").DefineComponent<{ onSearch: FunctionConstructor; placeholder: StringConstructor; width: { - type: (StringConstructor | NumberConstructor)[]; + type: (NumberConstructor | StringConstructor)[]; default: number; }; }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("change" | "update:modelValue" | "field-change")[], "change" | "update:modelValue" | "field-change", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly> & { diff --git a/src/modules/demo/components/form-btn.vue b/src/modules/demo/components/form-btn.vue index 39a5e14..4f1556a 100644 --- a/src/modules/demo/components/form-btn.vue +++ b/src/modules/demo/components/form-btn.vue @@ -129,6 +129,9 @@ function open() { } } ], + op: { + // buttons: ["save"] + }, on: { open() { refs.name.focus(); diff --git a/src/modules/dict/types/index.d.ts b/src/modules/dict/types/index.d.ts index 8434f0f..272f608 100644 --- a/src/modules/dict/types/index.d.ts +++ b/src/modules/dict/types/index.d.ts @@ -1,12 +1,13 @@ export namespace Dict { - type List = { + interface Item { id: string; label: string; value: any; + children?: Item[]; [key: string]: any; - }[]; + } interface Data { - [key: string]: List; + [key: string]: Item[]; } } diff --git a/yarn.lock b/yarn.lock index 833ad4f..38e0207 100644 --- a/yarn.lock +++ b/yarn.lock @@ -282,10 +282,10 @@ "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" -"@cool-vue/crud@^7.0.1-beta2": - version "7.0.1-beta2" - resolved "https://registry.yarnpkg.com/@cool-vue/crud/-/crud-7.0.1-beta2.tgz#1c43ad0d5af3fe009bfcfa312c71d8b99a676213" - integrity sha512-CN9hlfsWKOU/qf7E1COjgLqEqJBOd3v8v8bHeivFt7BHdDmwxrgqGZWXvZ6zp4LXSBq7dacF7dqn1FOe7TYzCQ== +"@cool-vue/crud@^7.0.1-beta3": + version "7.0.1-beta3" + resolved "https://registry.yarnpkg.com/@cool-vue/crud/-/crud-7.0.1-beta3.tgz#70d116bc81fcb665a8abfe7adee6d3951fdd318b" + integrity sha512-/vKd3WRdtwx6kD6H5YAqJt0bWPRdGhCElkx/i7QqUOszBKvpWVSeEvb+8NdVLG3w9s+xgz83+kTNJcq1L6PenQ== dependencies: array.prototype.flat "^1.2.4" core-js "^3.21.1" From 0f2cb98c426bf77bf660af3d49ac6ec5923bbfd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A5=9E=E4=BB=99=E9=83=BD=E6=B2=A1=E7=94=A8?= <615206459@qq.com> Date: Thu, 12 Oct 2023 10:41:05 +0800 Subject: [PATCH 04/24] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/dict/store/dict.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/dict/store/dict.ts b/src/modules/dict/store/dict.ts index 3846afb..dd227db 100644 --- a/src/modules/dict/store/dict.ts +++ b/src/modules/dict/store/dict.ts @@ -13,7 +13,7 @@ const useDictStore = defineStore("dict", () => { // 获取 function get(name: string) { - return computed(() => data[name]); + return computed(() => data[name] || []); } // 查找 From 3830de86f5d3336a3f2982dacaffba0a98fb414a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A5=9E=E4=BB=99=E9=83=BD=E6=B2=A1=E7=94=A8?= <615206459@qq.com> Date: Thu, 12 Oct 2023 13:54:30 +0800 Subject: [PATCH 05/24] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/upload/components/upload-item/index.vue | 5 +++-- src/modules/upload/components/upload.vue | 7 ++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/modules/upload/components/upload-item/index.vue b/src/modules/upload/components/upload-item/index.vue index 4854f2c..a1e05e4 100644 --- a/src/modules/upload/components/upload-item/index.vue +++ b/src/modules/upload/components/upload-item/index.vue @@ -92,7 +92,7 @@ - + @@ -125,7 +125,8 @@ const props = defineProps({ list: { type: Array as PropType, default: () => [] - } + }, + disabled: Boolean }); const emit = defineEmits(["remove"]); diff --git a/src/modules/upload/components/upload.vue b/src/modules/upload/components/upload.vue index 5632452..624a01a 100644 --- a/src/modules/upload/components/upload.vue +++ b/src/modules/upload/components/upload.vue @@ -111,7 +111,12 @@ >
- +
From 00b3ebeb2ceb0e38dc8ad250d388b66e59d06109 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A5=9E=E4=BB=99=E9=83=BD=E6=B2=A1=E7=94=A8?= <615206459@qq.com> Date: Thu, 12 Oct 2023 14:17:50 +0800 Subject: [PATCH 06/24] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/base/components/select/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/base/components/select/index.tsx b/src/modules/base/components/select/index.tsx index ec806df..f1fc5d6 100644 --- a/src/modules/base/components/select/index.tsx +++ b/src/modules/base/components/select/index.tsx @@ -78,8 +78,8 @@ export default defineComponent({ ) : ( ); })} From f5af99fa614343cb927f853a3197483586eeb63c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A5=9E=E4=BB=99=E9=83=BD=E6=B2=A1=E7=94=A8?= <615206459@qq.com> Date: Thu, 12 Oct 2023 15:04:28 +0800 Subject: [PATCH 07/24] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/extend/editor/wang.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/extend/editor/wang.vue b/src/modules/extend/editor/wang.vue index f8214ee..043174e 100644 --- a/src/modules/extend/editor/wang.vue +++ b/src/modules/extend/editor/wang.vue @@ -152,7 +152,7 @@ export default defineComponent({ // 设置高度 function onHeight() { - const scroll = refs.editor.querySelector(".w-e-scroll"); + const scroll = refs.editor.querySelector(".w-e-text-container"); scroll.style.maxHeight = parsePx(props.maxHeight || "auto"); scroll.style.height = parsePx(props.height); } From 4d0e62b850f4519095844d21204e774faa9ddf0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A5=9E=E4=BB=99=E9=83=BD=E6=B2=A1=E7=94=A8?= <615206459@qq.com> Date: Thu, 12 Oct 2023 15:06:57 +0800 Subject: [PATCH 08/24] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/extend/editor/wang.vue | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/modules/extend/editor/wang.vue b/src/modules/extend/editor/wang.vue index 043174e..9aff43b 100644 --- a/src/modules/extend/editor/wang.vue +++ b/src/modules/extend/editor/wang.vue @@ -106,20 +106,24 @@ export default defineComponent({ } }; + // 创建后 function onCreated(editor: any) { Editor.value = editor; onDisabled(); onHeight(); } + // 聚焦 function onFocus(editor: any) { emit("focus", editor); } + // 失焦 function onBlur(editor: any) { emit("blur", editor); } + // 值改变 function onChange() { if (value.value == "


") { value.value = ""; @@ -129,6 +133,7 @@ export default defineComponent({ emit("change", value.value); } + // 文件选择 function onFileConfirm(files: any[]) { if (files.length > 0) { files.forEach((file) => { @@ -139,6 +144,13 @@ export default defineComponent({ } } + // 设置高度 + function onHeight() { + const { style } = refs.editor.querySelector(".w-e-text-container"); + style.maxHeight = parsePx(props.maxHeight || "auto"); + style.height = parsePx(props.height); + } + // 禁用 function onDisabled() { if (props.disabled) { @@ -150,13 +162,6 @@ export default defineComponent({ watch(() => props.disabled, onDisabled); - // 设置高度 - function onHeight() { - const scroll = refs.editor.querySelector(".w-e-text-container"); - scroll.style.maxHeight = parsePx(props.maxHeight || "auto"); - scroll.style.height = parsePx(props.height); - } - watch( () => { return [props.height, props.maxHeight]; From 7c7c98ec587aae3f4126ac02dfd34b945c38debf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A5=9E=E4=BB=99=E9=83=BD=E6=B2=A1=E7=94=A8?= <615206459@qq.com> Date: Thu, 12 Oct 2023 15:28:19 +0800 Subject: [PATCH 09/24] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/extend/editor/wang.vue | 33 +++++++++--------------------- 1 file changed, 10 insertions(+), 23 deletions(-) diff --git a/src/modules/extend/editor/wang.vue b/src/modules/extend/editor/wang.vue index 9aff43b..30ed3c1 100644 --- a/src/modules/extend/editor/wang.vue +++ b/src/modules/extend/editor/wang.vue @@ -1,13 +1,16 @@