From 897571c7ad3d41dcbd72a05d69d239bbf567c726 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, 25 Jan 2024 17:30:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E5=B8=83=207.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/cool/demo.ts | 46 + build/cool/index.ts | 10 +- build/cool/svg/index.ts | 2 +- package.json | 6 +- packages/crud/index.d.ts | 73 +- packages/crud/package.json | 2 +- packages/crud/src/App.vue | 144 +- packages/crud/src/components/adv/search.tsx | 5 +- .../src/components/context-menu/index.tsx | 21 +- packages/crud/src/components/dialog/index.tsx | 35 +- packages/crud/src/components/form/index.tsx | 246 +-- packages/crud/src/components/search/index.tsx | 20 +- packages/crud/src/static/index.scss | 12 +- packages/crud/src/utils/form-hook.ts | 10 +- .../crud/types/components/dialog/index.d.ts | 9 + .../types/components/form/helper/index.d.ts | 10 +- .../types/components/table/helper/index.d.ts | 5 +- packages/crud/types/utils/form-hook.d.ts | 4 +- src/config/proxy.ts | 4 +- src/cool/bootstrap/module.ts | 14 +- src/cool/module/index.ts | 3 + src/cool/router/index.ts | 8 +- src/modules/base/components/avatar/index.scss | 10 - src/modules/base/components/avatar/index.tsx | 31 +- src/modules/base/components/dept/check.vue | 4 +- src/modules/base/components/image/index.vue | 25 +- src/modules/base/components/menu/check.vue | 2 +- src/modules/base/hooks/dept.tsx | 2 +- src/modules/base/hooks/index.ts | 1 - src/modules/base/views/info.vue | 2 +- .../base/views/menu/components/exp.vue | 5 +- src/modules/base/views/menu/index.vue | 6 +- src/modules/base/views/role.vue | 67 +- .../base/views/user/components/dept-list.vue | 6 +- src/modules/base/views/user/index.vue | 2 +- src/modules/chat/components/index.vue | 3 +- src/modules/cloud/config.ts | 2 +- src/modules/cloud/views/db.vue | 2 +- src/modules/demo/components/context-menu.vue | 4 +- src/modules/demo/components/copy.vue | 2 +- src/modules/demo/components/crud.vue | 2 +- src/modules/demo/components/design.vue | 2 +- src/modules/demo/components/editor.vue | 2 +- src/modules/demo/components/file.vue | 2 +- src/modules/demo/components/form.vue | 8 +- src/modules/demo/components/svg.vue | 2 +- src/modules/demo/components/upload.vue | 2 +- src/modules/demo/config.ts | 7 + .../views/crud/components/adv-search/base.vue | 138 ++ .../crud/components/adv-search/custom.vue | 152 ++ .../demo/views/crud/components/code.vue | 41 + .../components/crud/all.vue} | 207 ++- .../demo/views/crud/components/crud/base.vue | 145 ++ .../demo/views/crud/components/crud/dict.vue | 164 ++ .../demo/views/crud/components/crud/event.vue | 182 ++ .../views/crud/components/crud/service.vue | 185 ++ .../views/crud/components/form/children.vue | 118 ++ .../crud/components/form/component/index.vue | 106 ++ .../form/component/select-labels.vue | 38 + .../form/component/select-status.vue | 43 + .../components/form/component/select-work.vue | 59 + .../views/crud/components/form/config.vue | 122 ++ .../crud/components/form/crud.vue} | 88 +- .../views/crud/components/form/disabled.vue | 64 + .../demo/views/crud/components/form/event.vue | 93 + .../demo/views/crud/components/form/group.vue | 105 ++ .../views/crud/components/form/hidden.vue | 77 + .../views/crud/components/form/layout.vue | 116 ++ .../demo/views/crud/components/form/open.vue | 83 + .../views/crud/components/form/options.vue | 172 ++ .../crud/components/form/plugin/index.vue | 112 ++ .../views/crud/components/form/plugin/role.ts | 20 + .../views/crud/components/form/required.vue | 75 + .../demo/views/crud/components/form/rules.vue | 123 ++ .../crud/components/other}/select-user.vue | 2 +- .../demo/views/crud/components/other/tips.vue | 168 ++ .../crud/components/other/tsx/index.scss | 28 + .../views/crud/components/other/tsx/index.tsx | 107 ++ .../views/crud/components/search/base.vue | 143 ++ .../views/crud/components/search/custom.vue | 176 ++ .../demo/views/crud/components/table/base.vue | 109 ++ .../views/crud/components/table/children.vue | 98 + .../crud/components/table/column-custom.vue | 108 ++ .../crud/components/table/component/index.vue | 108 ++ .../components/table/component/user-info.vue | 30 + .../crud/components/table/context-menu.vue | 191 ++ .../demo/views/crud/components/table/dict.vue | 156 ++ .../views/crud/components/table/hidden.vue | 127 ++ .../demo/views/crud/components/table/op.vue | 163 ++ .../views/crud/components/table/search.vue | 143 ++ .../views/crud/components/table/selection.vue | 110 ++ .../demo/views/crud/components/table/slot.vue | 97 + .../crud/components/table/span-method.vue | 116 ++ .../views/crud/components/table/summary.vue | 95 + .../views/crud/components/upsert/base.vue | 133 ++ .../views/crud/components/upsert/event.vue | 210 +++ .../crud/components/upsert/hook/index.vue | 200 ++ .../crud/components/upsert/hook/reg-pca2.ts | 14 + .../views/crud/components/upsert/mode.vue | 146 ++ src/modules/demo/views/crud/index.vue | 288 +++ src/modules/demo/views/demo.vue | 32 +- src/modules/demo/views/editor.vue | 2 +- src/modules/demo/views/upload.vue | 86 +- src/modules/dict/views/list.vue | 3 +- src/modules/extend/config.ts | 21 - src/modules/extend/editor/preview.vue | 93 - src/modules/extend/index.ts | 1 - .../components/auto-menu/btn.vue | 2 +- .../components/auto-menu/index.vue | 0 .../components/auto-menu/quick.vue | 39 +- .../components/auto-perms/index.vue | 2 +- .../{magic => helper}/components/text.vue | 0 src/modules/{magic => helper}/config.ts | 11 +- src/modules/helper/dict/index.ts | 3 + src/modules/helper/hooks/ai.ts | 169 ++ .../hooks/menu.ts => helper/hooks/code.ts} | 320 ++-- src/modules/{magic => helper}/hooks/index.ts | 3 +- src/modules/helper/hooks/menu.ts | 85 + .../{magic => helper}/types/index.d.ts | 11 + src/modules/helper/utils/index.ts | 52 + .../{magic => helper}/views/ai-code.vue | 12 +- src/modules/helper/views/plugin.vue | 385 ++++ src/modules/iot/views/device.vue | 9 +- src/modules/magic/dict/index.ts | 254 --- src/modules/magic/hooks/ai.ts | 90 - src/modules/magic/utils/index.ts | 192 -- .../components/space-inner.vue | 34 +- .../{upload => space}/components/space.vue | 78 +- src/modules/space/config.ts | 18 + src/modules/space/hooks/index.ts | 19 + src/modules/{upload => space}/views/list.vue | 2 +- src/modules/task/views/list.vue | 4 +- src/modules/upload/hooks/index.ts | 8 - src/modules/upload/types/index.d.ts | 31 - src/modules/user/views/address.vue | 92 - src/modules/user/views/list.vue | 2 +- .../crud}/components/column-custom/index.vue | 2 +- .../crud}/components/date/picker.vue | 4 +- .../crud}/components/date/text.vue | 0 .../crud}/components/select/index.tsx | 10 +- .../crud}/components/switch/index.tsx | 0 src/{modules => plugins}/crud/config.ts | 16 +- src/plugins/distpicker/components/index.tsx | 21 + .../distpicker/config.ts} | 30 +- .../distpicker/data}/pca.json | 0 .../editor-monaco/components}/index.vue | 22 +- src/plugins/editor-monaco/config.ts | 10 + src/plugins/editor-monaco/index.ts | 1 + .../editor-monaco/utils}/config.ts | 0 .../editor-monaco/utils}/declare.ts | 0 .../editor-monaco/utils}/format.ts | 4 +- .../editor-monaco/utils}/theme.ts | 0 .../editor-monaco/utils}/types.ts | 0 .../editor-monaco/utils}/worker.ts | 0 .../editor-preview/components/preview.vue | 208 +++ src/plugins/editor-preview/config.ts | 7 + .../editor-wang/components}/wang.vue | 16 +- src/plugins/editor-wang/config.ts | 7 + .../excel/components}/export-btn.tsx | 4 +- .../excel/components}/import-btn.vue | 2 +- src/plugins/excel/config.ts | 10 + .../extend => plugins}/excel/utils/index.ts | 0 .../upload/components/upload-item/index.vue | 9 +- .../upload/components/upload-item/viewer.vue | 3 +- .../upload/components/upload-item/wps.vue | 0 .../upload/components/upload.vue | 87 +- src/{modules => plugins}/upload/config.ts | 16 +- .../upload/static/svg/audio.svg | 0 .../upload/static/svg/excel.svg | 0 .../upload/static/svg/file.svg | 0 .../upload/static/svg/image.svg | 0 .../upload/static/svg/pdf.svg | 0 .../upload/static/svg/ppt.svg | 0 .../upload/static/svg/rar.svg | 0 .../upload/static/svg/video.svg | 0 .../upload/static/svg/word.svg | 0 src/plugins/upload/types/index.d.ts | 18 + .../upload/utils/index.ts | 0 .../view/components/group.vue} | 2 +- .../view/components/head.vue} | 0 src/plugins/view/config.ts | 7 + src/plugins/view/hooks/group.ts | 14 + src/plugins/view/hooks/index.ts | 1 + src/plugins/view/index.ts | 2 + .../hook.ts => plugins/view/types/index.d.ts} | 13 - src/shims-vue.d.ts | 1 + stats.html | 60 +- yarn.lock | 1638 ++++++++--------- 188 files changed, 8820 insertions(+), 2576 deletions(-) create mode 100644 build/cool/demo.ts delete mode 100644 src/modules/base/components/avatar/index.scss create mode 100644 src/modules/demo/config.ts create mode 100644 src/modules/demo/views/crud/components/adv-search/base.vue create mode 100644 src/modules/demo/views/crud/components/adv-search/custom.vue create mode 100644 src/modules/demo/views/crud/components/code.vue rename src/modules/demo/views/{crud.vue => crud/components/crud/all.vue} (72%) create mode 100644 src/modules/demo/views/crud/components/crud/base.vue create mode 100644 src/modules/demo/views/crud/components/crud/dict.vue create mode 100644 src/modules/demo/views/crud/components/crud/event.vue create mode 100644 src/modules/demo/views/crud/components/crud/service.vue create mode 100644 src/modules/demo/views/crud/components/form/children.vue create mode 100644 src/modules/demo/views/crud/components/form/component/index.vue create mode 100644 src/modules/demo/views/crud/components/form/component/select-labels.vue create mode 100644 src/modules/demo/views/crud/components/form/component/select-status.vue create mode 100644 src/modules/demo/views/crud/components/form/component/select-work.vue create mode 100644 src/modules/demo/views/crud/components/form/config.vue rename src/modules/demo/{components/form-btn.vue => views/crud/components/form/crud.vue} (53%) create mode 100644 src/modules/demo/views/crud/components/form/disabled.vue create mode 100644 src/modules/demo/views/crud/components/form/event.vue create mode 100644 src/modules/demo/views/crud/components/form/group.vue create mode 100644 src/modules/demo/views/crud/components/form/hidden.vue create mode 100644 src/modules/demo/views/crud/components/form/layout.vue create mode 100644 src/modules/demo/views/crud/components/form/open.vue create mode 100644 src/modules/demo/views/crud/components/form/options.vue create mode 100644 src/modules/demo/views/crud/components/form/plugin/index.vue create mode 100644 src/modules/demo/views/crud/components/form/plugin/role.ts create mode 100644 src/modules/demo/views/crud/components/form/required.vue create mode 100644 src/modules/demo/views/crud/components/form/rules.vue rename src/modules/demo/{components => views/crud/components/other}/select-user.vue (98%) create mode 100644 src/modules/demo/views/crud/components/other/tips.vue create mode 100644 src/modules/demo/views/crud/components/other/tsx/index.scss create mode 100644 src/modules/demo/views/crud/components/other/tsx/index.tsx create mode 100644 src/modules/demo/views/crud/components/search/base.vue create mode 100644 src/modules/demo/views/crud/components/search/custom.vue create mode 100644 src/modules/demo/views/crud/components/table/base.vue create mode 100644 src/modules/demo/views/crud/components/table/children.vue create mode 100644 src/modules/demo/views/crud/components/table/column-custom.vue create mode 100644 src/modules/demo/views/crud/components/table/component/index.vue create mode 100644 src/modules/demo/views/crud/components/table/component/user-info.vue create mode 100644 src/modules/demo/views/crud/components/table/context-menu.vue create mode 100644 src/modules/demo/views/crud/components/table/dict.vue create mode 100644 src/modules/demo/views/crud/components/table/hidden.vue create mode 100644 src/modules/demo/views/crud/components/table/op.vue create mode 100644 src/modules/demo/views/crud/components/table/search.vue create mode 100644 src/modules/demo/views/crud/components/table/selection.vue create mode 100644 src/modules/demo/views/crud/components/table/slot.vue create mode 100644 src/modules/demo/views/crud/components/table/span-method.vue create mode 100644 src/modules/demo/views/crud/components/table/summary.vue create mode 100644 src/modules/demo/views/crud/components/upsert/base.vue create mode 100644 src/modules/demo/views/crud/components/upsert/event.vue create mode 100644 src/modules/demo/views/crud/components/upsert/hook/index.vue create mode 100644 src/modules/demo/views/crud/components/upsert/hook/reg-pca2.ts create mode 100644 src/modules/demo/views/crud/components/upsert/mode.vue create mode 100644 src/modules/demo/views/crud/index.vue delete mode 100644 src/modules/extend/config.ts delete mode 100644 src/modules/extend/editor/preview.vue delete mode 100644 src/modules/extend/index.ts rename src/modules/{magic => helper}/components/auto-menu/btn.vue (95%) rename src/modules/{magic => helper}/components/auto-menu/index.vue (100%) rename src/modules/{magic => helper}/components/auto-menu/quick.vue (85%) rename src/modules/{magic => helper}/components/auto-perms/index.vue (98%) rename src/modules/{magic => helper}/components/text.vue (100%) rename src/modules/{magic => helper}/config.ts (67%) create mode 100644 src/modules/helper/dict/index.ts create mode 100644 src/modules/helper/hooks/ai.ts rename src/modules/{magic/hooks/menu.ts => helper/hooks/code.ts} (51%) rename src/modules/{magic => helper}/hooks/index.ts (65%) create mode 100644 src/modules/helper/hooks/menu.ts rename src/modules/{magic => helper}/types/index.d.ts (73%) create mode 100644 src/modules/helper/utils/index.ts rename src/modules/{magic => helper}/views/ai-code.vue (98%) create mode 100644 src/modules/helper/views/plugin.vue delete mode 100644 src/modules/magic/dict/index.ts delete mode 100644 src/modules/magic/hooks/ai.ts delete mode 100644 src/modules/magic/utils/index.ts rename src/modules/{upload => space}/components/space-inner.vue (92%) rename src/modules/{upload => space}/components/space.vue (51%) create mode 100644 src/modules/space/config.ts create mode 100644 src/modules/space/hooks/index.ts rename src/modules/{upload => space}/views/list.vue (70%) delete mode 100644 src/modules/upload/hooks/index.ts delete mode 100644 src/modules/upload/types/index.d.ts delete mode 100644 src/modules/user/views/address.vue rename src/{modules/base => plugins/crud}/components/column-custom/index.vue (97%) rename src/{modules/base => plugins/crud}/components/date/picker.vue (97%) rename src/{modules/base => plugins/crud}/components/date/text.vue (100%) rename src/{modules/base => plugins/crud}/components/select/index.tsx (96%) rename src/{modules/base => plugins/crud}/components/switch/index.tsx (100%) rename src/{modules => plugins}/crud/config.ts (54%) create mode 100644 src/plugins/distpicker/components/index.tsx rename src/{modules/extend/distpicker/index.tsx => plugins/distpicker/config.ts} (52%) rename src/{modules/extend/distpicker => plugins/distpicker/data}/pca.json (100%) rename src/{modules/extend/editor/monaco => plugins/editor-monaco/components}/index.vue (92%) create mode 100644 src/plugins/editor-monaco/config.ts create mode 100644 src/plugins/editor-monaco/index.ts rename src/{modules/extend/editor/monaco => plugins/editor-monaco/utils}/config.ts (100%) rename src/{modules/extend/editor/monaco => plugins/editor-monaco/utils}/declare.ts (100%) rename src/{modules/extend/editor/monaco => plugins/editor-monaco/utils}/format.ts (96%) rename src/{modules/extend/editor/monaco => plugins/editor-monaco/utils}/theme.ts (100%) rename src/{modules/extend/editor/monaco => plugins/editor-monaco/utils}/types.ts (100%) rename src/{modules/extend/editor/monaco => plugins/editor-monaco/utils}/worker.ts (100%) create mode 100644 src/plugins/editor-preview/components/preview.vue create mode 100644 src/plugins/editor-preview/config.ts rename src/{modules/extend/editor => plugins/editor-wang/components}/wang.vue (95%) create mode 100644 src/plugins/editor-wang/config.ts rename src/{modules/extend/excel => plugins/excel/components}/export-btn.tsx (97%) rename src/{modules/extend/excel => plugins/excel/components}/import-btn.vue (98%) create mode 100644 src/plugins/excel/config.ts rename src/{modules/extend => plugins}/excel/utils/index.ts (100%) rename src/{modules => plugins}/upload/components/upload-item/index.vue (97%) rename src/{modules => plugins}/upload/components/upload-item/viewer.vue (95%) rename src/{modules => plugins}/upload/components/upload-item/wps.vue (100%) rename src/{modules => plugins}/upload/components/upload.vue (91%) rename src/{modules => plugins}/upload/config.ts (82%) rename src/{modules => plugins}/upload/static/svg/audio.svg (100%) rename src/{modules => plugins}/upload/static/svg/excel.svg (100%) rename src/{modules => plugins}/upload/static/svg/file.svg (100%) rename src/{modules => plugins}/upload/static/svg/image.svg (100%) rename src/{modules => plugins}/upload/static/svg/pdf.svg (100%) rename src/{modules => plugins}/upload/static/svg/ppt.svg (100%) rename src/{modules => plugins}/upload/static/svg/rar.svg (100%) rename src/{modules => plugins}/upload/static/svg/video.svg (100%) rename src/{modules => plugins}/upload/static/svg/word.svg (100%) create mode 100644 src/plugins/upload/types/index.d.ts rename src/{modules => plugins}/upload/utils/index.ts (100%) rename src/{modules/base/components/view/group/index.vue => plugins/view/components/group.vue} (99%) rename src/{modules/base/components/view/head/index.vue => plugins/view/components/head.vue} (100%) create mode 100644 src/plugins/view/config.ts create mode 100644 src/plugins/view/hooks/group.ts create mode 100644 src/plugins/view/hooks/index.ts create mode 100644 src/plugins/view/index.ts rename src/{modules/base/components/view/group/hook.ts => plugins/view/types/index.d.ts} (82%) diff --git a/build/cool/demo.ts b/build/cool/demo.ts new file mode 100644 index 0000000..0afcf30 --- /dev/null +++ b/build/cool/demo.ts @@ -0,0 +1,46 @@ +import type { Plugin } from "vite"; +import { glob } from "glob"; +import path from "path"; +import { readFileSync } from "fs"; + +export function demo(enable?: boolean): Plugin { + const virtualModuleIds = ["virtual:demo"]; + + return { + name: "vite-cool-demo", + enforce: "pre", + resolveId(id) { + if (virtualModuleIds.includes(id)) { + return "\0" + id; + } + }, + async load(id) { + if (id === "\0virtual:demo") { + const demo = {}; + + if (enable) { + const files = await glob("./src/modules/demo/views/crud/components/**", { + stat: true, + withFileTypes: true + }); + + for (const file of files) { + if (file.isFile()) { + const p = path.join(file.path, file.name); + + demo[ + p + .replace(/\\/g, "/") + .split("src/modules/demo/views/crud/components/")[1] + ] = readFileSync(p, "utf-8"); + } + } + } + + return ` + export const demo = ${JSON.stringify(demo)}; + `; + } + } + }; +} diff --git a/build/cool/index.ts b/build/cool/index.ts index 6013f1a..8c41ac1 100644 --- a/build/cool/index.ts +++ b/build/cool/index.ts @@ -1,6 +1,14 @@ import { base } from "./base"; import { virtual } from "./virtual"; +import { demo } from "./demo"; export function cool() { - return [base(), virtual()]; + return [ + // 基础 + base(), + // 虚拟模块 + virtual(), + // demo 官方示例,代码片段 + demo(true) + ]; } diff --git a/build/cool/svg/index.ts b/build/cool/svg/index.ts index 2b752e7..7be8179 100644 --- a/build/cool/svg/index.ts +++ b/build/cool/svg/index.ts @@ -42,7 +42,7 @@ function findFiles(dir: string): string[] { } export function createSvg(html: string) { - const res = findFiles("./src/modules/"); + const res = findFiles("./src/"); return html.replace( "
", diff --git a/package.json b/package.json index ce2925d..9f82875 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cool-admin", - "version": "7.0.0", + "version": "7.1.0", "scripts": { "dev": "vite --host", "build": "vite build", @@ -9,7 +9,7 @@ "lint:eslint": "eslint \"./src/**/*.{vue,ts,tsx}\" --fix" }, "dependencies": { - "@cool-vue/crud": "^7.1.3", + "@cool-vue/crud": "^7.1.10", "@element-plus/icons-vue": "^2.1.0", "@vueuse/core": "^10.4.0", "@wangeditor/editor": "^5.1.23", @@ -22,6 +22,7 @@ "element-plus": "^2.4.3", "file-saver": "^2.0.5", "lodash-es": "^4.17.21", + "marked": "^11.1.1", "mitt": "^3.0.1", "mockjs": "^1.1.0", "monaco-editor": "0.36.0", @@ -53,6 +54,7 @@ "eslint-config-prettier": "^9.0.0", "eslint-plugin-prettier": "^5.0.0", "eslint-plugin-vue": "^9.17.0", + "glob": "^10.3.10", "lodash": "^4.17.21", "magic-string": "^0.30.3", "prettier": "^3.1.0", diff --git a/packages/crud/index.d.ts b/packages/crud/index.d.ts index 27e69f7..6b44a00 100644 --- a/packages/crud/index.d.ts +++ b/packages/crud/index.d.ts @@ -82,39 +82,6 @@ declare type Browser = { isMini: boolean; }; -// hook -declare namespace Hook { - interface Options { - form: obj; - prop: string; - method: "submit" | "bind"; - } - - type fn = (value: any, options: Options) => any; - - type FormPipe = - | "number" - | "string" - | "split" - | "join" - | "boolean" - | "booleanNumber" - | "datetimeRange" - | "splitJoin" - | "json" - | "empty" - | fn; - - type FormPipes = FormPipe | FormPipe[]; - - type Form = - | string - | { - bind?: FormPipes; - submit?: FormPipes; - }; -} - // render declare namespace Render { type OpButton = @@ -473,6 +440,26 @@ declare namespace ClForm { [key: string]: any; } + type HookFn = ( + value: any, + options: { form: obj; prop: string; method: "submit" | "bind" } + ) => any; + + type HookKey = + | "number" + | "string" + | "split" + | "join" + | "boolean" + | "booleanNumber" + | "datetimeRange" + | "splitJoin" + | "json" + | "empty" + | (string & {}); + + type HookPipe = HookKey | HookFn; + interface Item# {{ b.label }}
+ +选择头像
+