diff --git a/.env b/.env new file mode 100644 index 0000000..b2204a9 --- /dev/null +++ b/.env @@ -0,0 +1,8 @@ +# 项目名称 +VITE_APP_TITLE = Admin + +# 公共基础路径, 详见: https://cn.vitejs.dev/guide/build.html#public-base-path +VITE_BASE_URL = / + +# enable mock in production +VITE_MOCK_IN_PROD = true \ No newline at end of file diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..d4e5bd3 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,11 @@ +# https://docs.github.com/cn/get-started/getting-started-with-git/configuring-git-to-handle-line-endings + +# Automatically normalize line endings (to LF) for all text-based files. +* text=auto eol=lf + +# Declare files that will always have CRLF line endings on checkout. +*.{cmd,[cC][mM][dD]} text eol=crlf +*.{bat,[bB][aA][tT]} text eol=crlf + +# Denote all files that are truly binary and should not be modified. +*.{ico,png,jpg,jpeg,gif,webp,svg,woff,woff2} binary \ No newline at end of file diff --git a/.gitignore b/.gitignore index ac14768..79d25f1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,25 +1,38 @@ -# Logs -logs -*.log +node_modules +.DS_Store +dist +.cache +.turbo +.nx +.nx/cache + +tests/server/static +tests/server/static/upload + +.local +# local env files +.env.local +.env.*.local +.eslintcache + +# Log files npm-debug.log* yarn-debug.log* yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-ssr -*.local +*pnpm-debug.log* # Editor directories and files -.vscode/* -!.vscode/extensions.json .idea -.DS_Store +# .vscode *.suo *.ntvs* *.njsproj *.sln *.sw? -localSet.js + +# auto generate file +types/auto-imports.d.ts +types/components.d.ts + +# Turbo +.turbo diff --git a/.npmrc b/.npmrc index 2f4f197..4585979 100644 --- a/.npmrc +++ b/.npmrc @@ -1,6 +1,22 @@ -# 默认使用淘宝镜像源 -registry=https://registry.npmmirror.com/ - -# 公司私有源配置 +# 使用淘宝镜像源 +registry = https://registry.npmmirror.com @sy:registry=http://sy-registry.shiyue.com +# 根据需要提升含有以下的依赖包到根 node_modules 目录下 +public-hoist-pattern[]=husky +public-hoist-pattern[]=*eslint* +public-hoist-pattern[]=@eslint* +public-hoist-pattern[]=*prettier* +public-hoist-pattern[]=lint-staged +public-hoist-pattern[]=*stylelint* +public-hoist-pattern[]=@commitlint* +public-hoist-pattern[]=core-js + +# 提升所有依赖到根 node_modules 目录下,相当于 public-hoist-pattern[]=*,与上面一种方式一般二选一使用 +# 极不推荐用这样的方式解决依赖问题,这样没有充分利用 pnpm 依赖访问安全性的优势,又走回了 npm / yarn 的老路。 +# shamefully-hoist=true + +enable-pre-post-scripts=true +engine-strict=true +package-manager-strict=false +strict-peer-dependencies=false \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index 4771846..0000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "Vue.volar", - "Vue.vscode-typescript-vue-plugin", - "dbaeumer.vscode-eslint" - ] -} diff --git a/apps/designer/.editorconfig b/apps/designer/.editorconfig new file mode 100644 index 0000000..074200f --- /dev/null +++ b/apps/designer/.editorconfig @@ -0,0 +1,9 @@ +[*.{js, jsx, ts, tsx, vue, mjs}] +indent_style = space +indent_size = 2 +trim_trailing_whitespace = true +insert_final_newline = true +ij_javascript_spaces_within_imports = true +ij_html_do_not_indent_children_of_tags = html, body, thead, tbody, tfoot, script +ij_javascript_space_before_function_left_parenth = true +ij_javascript_use_semicolon_after_statement = true diff --git a/apps/designer/.gitignore b/apps/designer/.gitignore new file mode 100644 index 0000000..c482774 --- /dev/null +++ b/apps/designer/.gitignore @@ -0,0 +1,33 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? +.history + +# Project +package-lock.json +yarn-lock.json +pnpm-lock.yaml +tsconfig.tsbuildinfo +node_modules +coverage +dist +dist-ssr +*.local +.vtj/logs +.vtj/histories \ No newline at end of file diff --git a/apps/designer/.npmrc b/apps/designer/.npmrc new file mode 100644 index 0000000..431a693 --- /dev/null +++ b/apps/designer/.npmrc @@ -0,0 +1,15 @@ +registry = https://registry.npmmirror.com +@sy:registry=http://sy-registry.shiyue.com + + +# 根据需要提升含有以下的依赖包到根 node_modules 目录下 +# public-hoist-pattern[]=core-js +# public-hoist-pattern[]=*@vtj* + +# 提升所有依赖到根 node_modules 目录下,相当于 public-hoist-pattern[]=*,与上面一种方式一般二选一使用 +# 极不推荐用这样的方式解决依赖问题,这样没有充分利用 pnpm 依赖访问安全性的优势,又走回了 npm / yarn 的老路。 +# shamefully-hoist=true + +enable-pre-post-scripts=true +engine-strict=true +package-manager-strict=false \ No newline at end of file diff --git a/apps/designer/.prettierrc b/apps/designer/.prettierrc new file mode 100644 index 0000000..809e231 --- /dev/null +++ b/apps/designer/.prettierrc @@ -0,0 +1,20 @@ +{ + "arrowParens": "always", + "bracketSpacing": true, + "bracketSameLine": true, + "endOfLine": "lf", + "htmlWhitespaceSensitivity": "css", + "insertPragma": false, + "jsxBracketSameLine": true, + "jsxSingleQuote": true, + "printWidth": 80, + "proseWrap": "preserve", + "quoteProps": "as-needed", + "requirePragma": false, + "semi": true, + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "none", + "useTabs": false, + "vueIndentScriptAndStyle": false +} diff --git a/apps/designer/.vscode/extensions.json b/apps/designer/.vscode/extensions.json new file mode 100644 index 0000000..4881863 --- /dev/null +++ b/apps/designer/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + "recommendations": [ + "vue.volar" + ] +} \ No newline at end of file diff --git a/apps/designer/.vtj/files/45t7j3xqi.json b/apps/designer/.vtj/files/45t7j3xqi.json new file mode 100644 index 0000000..b1f7b0e --- /dev/null +++ b/apps/designer/.vtj/files/45t7j3xqi.json @@ -0,0 +1,19 @@ +{ + "name": "Test", + "locked": false, + "inject": [], + "state": {}, + "lifeCycles": {}, + "methods": {}, + "computed": {}, + "watch": [], + "css": "", + "props": [], + "emits": [], + "slots": [], + "dataSources": {}, + "__VTJ_BLOCK__": true, + "__VERSION__": "1739842497674", + "id": "45t7j3xqi", + "nodes": [] +} diff --git a/apps/designer/.vtj/materials/@sy/low-code-designer.json b/apps/designer/.vtj/materials/@sy/low-code-designer.json new file mode 100644 index 0000000..f03da9c --- /dev/null +++ b/apps/designer/.vtj/materials/@sy/low-code-designer.json @@ -0,0 +1,13288 @@ +{ + "div": { + "name": "div", + "label": "容器", + "categoryId": "html", + "snippet": { + "children": "容器文本内容示例" + } + }, + "span": { + "name": "span", + "label": "内联", + "categoryId": "html", + "snippet": { + "children": "内联容器文本内容示例" + } + }, + "a": { + "name": "a", + "label": "链接", + "categoryId": "html", + "props": [ + { + "name": "href", + "label": "href", + "setters": "InputSetter" + } + ], + "snippet": { + "children": "链接文本内容示例", + "props": { + "href": "#" + } + } + }, + "img": { + "name": "img", + "label": "图片", + "categoryId": "html", + "childIncludes": false, + "props": [ + { + "name": "src", + "label": "src", + "setters": "InputSetter" + }, + { + "name": "width", + "label": "width", + "setters": "InputSetter" + }, + { + "name": "height", + "label": "height", + "setters": "InputSetter" + } + ], + "snippet": { + "props": { + "src": "data:image/png;base64,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", + "width": "200", + "height": "200" + } + } + }, + "h1": { + "name": "h1", + "label": "大标题", + "categoryId": "html", + "snippet": { + "children": "标题" + } + }, + "h2": { + "name": "h2", + "label": "中标题", + "categoryId": "html", + "snippet": { + "children": "标题" + } + }, + "h3": { + "name": "h3", + "label": "小标题", + "categoryId": "html", + "snippet": { + "children": "标题" + } + }, + "p": { + "name": "p", + "label": "段落", + "categoryId": "html", + "snippet": { + "children": "段落文本" + } + }, + "component": { + "name": "component", + "label": "动态组件", + "categoryId": "elements", + "doc": "https://cn.vuejs.org/api/built-in-special-elements.html#component", + "props": [ + { + "name": "is", + "label": "组件名", + "setters": "InputSetter" + } + ], + "snippet": { + "children": "组件文本内容示例", + "props": { + "is": "div" + } + } + }, + "slot": { + "name": "slot", + "label": "插槽", + "categoryId": "elements", + "doc": "https://cn.vuejs.org/api/built-in-special-elements.html#slot", + "props": [ + { + "name": "name", + "label": "名称", + "defaultValue": "default", + "setters": "InputSetter" + } + ], + "snippet": { + "children": "默认插槽内容" + } + }, + "Transition": { + "name": "Transition", + "label": "过渡效果", + "categoryId": "components", + "doc": "https://cn.vuejs.org/api/built-in-components.html#transition", + "package": "vue", + "props": [ + { + "name": "name", + "label": "名称", + "defaultValue": "", + "title": "用于自动生成过渡 CSS class 名", + "setters": "InputSetter" + }, + { + "name": "css", + "label": "应用CSS", + "defaultValue": true, + "title": "是否应用 CSS 过渡 class", + "setters": "BooleanSetter" + }, + { + "name": "type", + "label": "事件类型", + "title": "指定要等待的过渡事件类型来确定过渡结束的时间,默认情况下会自动检测持续时间较长的类型", + "setters": "SelectSetter", + "options": [ + "transition", + "animation" + ] + }, + { + "name": "duration", + "label": "持续时间", + "title": "显式指定过渡的持续时间", + "setters": [ + "NumberSetter", + "JSONSetter" + ] + }, + { + "name": "mode", + "label": "时序", + "defaultValue": "default", + "title": "控制离开/进入过渡的时序。", + "setters": "SelectSetter", + "options": [ + "in-out", + "out-in", + "default" + ] + }, + { + "name": "appear", + "label": "使用过渡", + "defaultValue": false, + "title": "是否对初始渲染使用过渡", + "setters": "BooleanSetter" + }, + { + "name": "enterFromClass", + "label": "enterFromClass", + "setters": "InputSetter" + }, + { + "name": "enterActiveClass", + "label": "enterActiveClass", + "setters": "InputSetter" + }, + { + "name": "enterToClass", + "label": "enterToClass", + "setters": "InputSetter" + }, + { + "name": "appearFromClass", + "label": "appearFromClass", + "setters": "InputSetter" + }, + { + "name": "appearActiveClass", + "label": "appearActiveClass", + "setters": "InputSetter" + }, + { + "name": "appearToClass", + "label": "appearToClass", + "setters": "InputSetter" + }, + { + "name": "leaveFromClass", + "label": "leaveFromClass", + "setters": "InputSetter" + }, + { + "name": "leaveActiveClass", + "label": "leaveActiveClass", + "setters": "InputSetter" + }, + { + "name": "leaveToClass", + "label": "leaveToClass", + "setters": "InputSetter" + } + ], + "events": [ + "before-enter", + "before-leave", + "enter", + "leave", + "appear", + "after-enter", + "after-leave", + "after-appear", + "enter-cancelled", + "leave-cancelled", + "ppear-cancelled" + ], + "snippet": { + "children": "Transition" + } + }, + "TransitionGroup": { + "name": "TransitionGroup", + "label": "过渡效果组", + "categoryId": "components", + "doc": "https://cn.vuejs.org/api/built-in-components.html#transitiongroup", + "package": "vue", + "props": [ + { + "name": "name", + "label": "名称", + "defaultValue": "", + "title": "用于自动生成过渡 CSS class 名", + "setters": "InputSetter" + }, + { + "name": "tag", + "label": "标签名", + "title": "如果未定义,则渲染为片段 (fragment)", + "setters": "InputSetter" + }, + { + "name": "moveClass", + "label": "moveClass", + "title": "用于自定义过渡期间被应用的 CSS class。", + "setters": "InputSetter" + }, + { + "name": "css", + "label": "应用CSS", + "defaultValue": true, + "title": "是否应用 CSS 过渡 class", + "setters": "BooleanSetter" + }, + { + "name": "type", + "label": "事件类型", + "title": "指定要等待的过渡事件类型来确定过渡结束的时间,默认情况下会自动检测持续时间较长的类型", + "setters": "SelectSetter", + "options": [ + "transition", + "animation" + ] + }, + { + "name": "duration", + "label": "持续时间", + "title": "显式指定过渡的持续时间", + "setters": [ + "NumberSetter", + "JSONSetter" + ] + }, + { + "name": "appear", + "label": "使用过渡", + "defaultValue": false, + "title": "是否对初始渲染使用过渡", + "setters": "BooleanSetter" + }, + { + "name": "enterFromClass", + "label": "enterFromClass", + "setters": "InputSetter" + }, + { + "name": "enterActiveClass", + "label": "enterActiveClass", + "setters": "InputSetter" + }, + { + "name": "enterToClass", + "label": "enterToClass", + "setters": "InputSetter" + }, + { + "name": "appearFromClass", + "label": "appearFromClass", + "setters": "InputSetter" + }, + { + "name": "appearActiveClass", + "label": "appearActiveClass", + "setters": "InputSetter" + }, + { + "name": "appearToClass", + "label": "appearToClass", + "setters": "InputSetter" + }, + { + "name": "leaveFromClass", + "label": "leaveFromClass", + "setters": "InputSetter" + }, + { + "name": "leaveActiveClass", + "label": "leaveActiveClass", + "setters": "InputSetter" + }, + { + "name": "leaveToClass", + "label": "leaveToClass", + "setters": "InputSetter" + } + ], + "events": [ + "before-enter", + "before-leave", + "enter", + "leave", + "appear", + "after-enter", + "after-leave", + "after-appear", + "enter-cancelled", + "leave-cancelled", + "ppear-cancelled" + ], + "snippet": { + "children": "TransitionGroup" + } + }, + "KeepAlive": { + "name": "KeepAlive", + "label": "缓存切换组件", + "categoryId": "components", + "doc": "https://cn.vuejs.org/api/built-in-components.html#keepalive", + "package": "vue", + "props": [ + { + "name": "include", + "label": "匹配包含", + "title": "如果指定,则只有与 `include` 名称, 匹配的组件才会被缓存。", + "setters": [ + "InputSetter", + "JSONSetter" + ] + }, + { + "name": "exclude", + "label": "匹配排除", + "title": "任何名称与 `exclude` 匹配的组件都不会被缓存。", + "setters": [ + "InputSetter", + "JSONSetter" + ] + }, + { + "name": "max", + "label": "最大缓存数", + "title": "最多可以缓存多少组件实例。", + "setters": [ + "InputSetter" + ] + } + ] + }, + "Teleport": { + "name": "Teleport", + "label": "传送组件", + "categoryId": "components", + "doc": "https://cn.vuejs.org/api/built-in-components.html#teleport", + "package": "vue", + "props": [ + { + "name": "to", + "label": "目标容器", + "title": "指定目标容器,可以是选择器或实际元素", + "setters": [ + "InputSetter" + ] + }, + { + "name": "disabled", + "label": "禁用", + "title": "当值为 `true` 时,内容将保留在其原始位置, 而不是移动到目标容器中, 可以动态更改", + "setters": [ + "BooleanSetter" + ] + } + ] + }, + "Suspense": { + "name": "Suspense", + "label": "异步依赖", + "categoryId": "components", + "doc": "https://cn.vuejs.org/api/built-in-components.html#suspense", + "package": "vue", + "props": [ + { + "name": "timeout", + "label": "timeout", + "setters": [ + "InputSetter" + ] + } + ] + }, + "RouterLink": { + "name": "RouterLink", + "label": "路由链接", + "categoryId": "components", + "doc": "https://router.vuejs.org/zh/api/interfaces/RouterLinkProps.html", + "package": "vue-router", + "props": [ + { + "name": "to", + "label": "to", + "setters": [ + "InputSetter" + ] + }, + { + "name": "replace", + "label": "replace", + "setters": [ + "BooleanSetter" + ] + } + ], + "snippet": { + "children": "RouterLink", + "props": { + "to": "/" + } + } + }, + "ElAffix": { + "name": "ElAffix", + "label": "固钉", + "categoryId": "nav", + "doc": "https://element-plus.org/zh-CN/component/affix.html", + "package": "element-plus", + "props": [ + { + "name": "offset", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "position", + "defaultValue": "top", + "setters": "SelectSetter", + "options": [ + "top", + "bottom" + ] + }, + { + "name": "target", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "z-index", + "defaultValue": 100, + "setters": "NumberSetter" + } + ], + "events": [ + { + "name": "change" + }, + { + "name": "scroll" + } + ], + "slots": [ + "default" + ], + "snippet": { + "name": "ElAffix", + "children": [ + { + "name": "ElButton", + "props": { + "type": "primary" + }, + "children": "Affix 固钉" + } + ] + } + }, + "ElAlert": { + "name": "ElAlert", + "childIncludes": true, + "label": "提示", + "doc": "https://element-plus.org/zh-CN/component/alert.html", + "categoryId": "other", + "package": "element-plus", + "props": [ + { + "name": "title", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "type", + "defaultValue": "info", + "setters": "SelectSetter", + "options": [ + "success", + "warning", + "info", + "error" + ] + }, + { + "name": "description", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "closable", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "center", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "closeText", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "showIcon", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "effect", + "defaultValue": "light", + "setters": "SelectSetter", + "options": [ + "light", + "dark" + ] + } + ], + "events": [ + { + "name": "close" + } + ], + "slots": [ + { + "name": "default" + }, + { + "name": "title" + } + ], + "snippet": { + "props": { + "title": "success alert", + "type": "success" + } + } + }, + "ElAnchor": { + "name": "ElAnchor", + "label": "锚点", + "doc": "https://element-plus.org/zh-CN/component/anchor.html", + "categoryId": "other", + "package": "element-plus", + "props": [ + { + "name": "container", + "label": "container", + "title": "滚动的容器", + "setters": "StringSetter" + }, + { + "name": "offset", + "label": "offset", + "title": "设置锚点滚动的偏移量", + "setters": "NumberSetter", + "defaultValue": 0 + }, + { + "name": "bound", + "label": "bound", + "title": "触发锚点的元素的位置偏移量", + "setters": "NumberSetter", + "defaultValue": 15 + }, + { + "name": "duration", + "label": "duration", + "title": "设置容器滚动持续时间,单位为毫秒", + "setters": "NumberSetter", + "defaultValue": 300 + }, + { + "name": "marker", + "label": "marker", + "title": "是否显示标记", + "setters": "BooleanSetter", + "defaultValue": true + }, + { + "name": "type", + "label": "type", + "title": "设置锚点类型", + "setters": "SelectSetter", + "options": [ + "default", + "underline" + ], + "defaultValue": "default" + }, + { + "name": "direction", + "label": "direction", + "title": "设置锚点方向", + "setters": "SelectSetter", + "options": [ + "vertical", + "horizontal" + ], + "defaultValue": "horizontal" + }, + { + "name": "selectScrollTop", + "title": "滚动时,链接是否选中位于顶部", + "defaultValue": false, + "setters": "BooleanSetter" + } + ], + "events": [ + "change", + "click" + ], + "slots": [ + "default" + ], + "snippet": { + "props": { + "offset": "70" + }, + "children": [ + { + "name": "ElAnchorLink", + "props": { + "href": "" + }, + "children": "基本用法" + } + ] + } + }, + "ElAnchorLink": { + "name": "ElAnchorLink", + "label": "锚点链接", + "doc": "https://element-plus.org/zh-CN/component/anchor.html", + "categoryId": "other", + "package": "element-plus", + "props": [ + { + "name": "title", + "label": "title", + "title": "链接的文本内容", + "setters": "StringSetter" + }, + { + "name": "href", + "label": "href", + "title": "链接的地址", + "setters": "StringSetter" + } + ], + "slots": [ + "default", + "sub-link" + ], + "snippet": { + "props": { + "href": "" + }, + "children": "基本用法" + } + }, + "ElAutocomplete": { + "name": "ElAutocomplete", + "label": "自动补全输入框", + "categoryId": "form", + "doc": "https://element-plus.org/zh-CN/component/autocomplete.html", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "defaultValue": "", + "title": "选中项绑定值", + "setters": "StringSetter" + }, + { + "name": "placeholder", + "title": "占位文本", + "defaultValue": "", + "setters": "StringSetter" + }, + { + "name": "clearable", + "title": "是否可清空", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "disabled", + "title": "自动补全组件是否被禁用", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "valueKey", + "title": "输入建议对象中用于显示的键名", + "defaultValue": "value", + "setters": "StringSetter" + }, + { + "name": "debounce", + "defaultValue": 300, + "title": "获取输入建议的防抖延时", + "setters": "NumberSetter" + }, + { + "name": "placement", + "defaultValue": "bottom-start", + "title": "菜单弹出位置", + "options": [ + "top ", + "top-start", + "top-end", + "top-end", + "bottom", + "bottom-start", + "bottom-end" + ], + "setters": "SelectSetter" + }, + { + "name": "fetchSuggestions", + "defaultValue": "", + "title": "获取输入建议的方法", + "setters": [ + "ArraySetter", + "FunctionSetter" + ] + }, + { + "name": "triggerOnFocus", + "defaultValue": true, + "title": "是否在输入框focus时显示建议列表", + "setters": "BooleanSetter" + }, + { + "name": "selectWhenUnmatched", + "defaultValue": false, + "title": "在输入没有任何匹配建议的情况下,按下回车是否触发select事件", + "setters": "BooleanSetter" + }, + { + "name": "name", + "title": "等价于原生 input name 属性", + "defaultValue": "", + "setters": "StringSetter" + }, + { + "name": "aria-label", + "defaultValue": "", + "title": "原生 aria-label属性", + "setters": "StringSetter" + }, + { + "name": "hideLoading", + "title": "是否隐藏远程加载时的加载图标", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "popperClass", + "defaultValue": "", + "title": "下拉列表的类名", + "setters": "StringSetter" + }, + { + "name": "teleported", + "title": "是否将下拉列表元素插入 append-to 指向的元素下", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "highlightFirstItem", + "defaultValue": false, + "title": "是否默认突出显示远程搜索建议中的第一项", + "setters": "BooleanSetter" + }, + { + "name": "fit-input-width", + "defaultValue": false, + "title": "下拉框是否与输入框同宽", + "setters": "BooleanSetter" + }, + { + "name": "popperAppendToBody", + "defaultValue": false, + "title": "是否将下拉列表插入至body元素", + "setters": "BooleanSetter" + } + ], + "slots": [ + { + "name": "default", + "params": [ + "item" + ] + }, + { + "name": "prefix" + }, + { + "name": "suffix" + }, + { + "name": "prepend" + }, + { + "name": "append" + }, + { + "name": "loading" + } + ], + "events": [ + { + "name": "update:modelValue" + }, + { + "name": "select" + }, + { + "name": "change" + } + ], + "snippet": { + "props": { + "fetchSuggestions": { + "type": "JSFunction", + "value": "(function (queryString, cb) {\r\n\r\n const list = [\r\n { value: 'vue', link: 'https://github.com/vuejs/vue' },\r\n { value: 'element', link: 'https://github.com/ElemeFE/element' },\r\n { value: 'cooking', link: 'https://github.com/ElemeFE/cooking' },\r\n { value: 'mint-ui', link: 'https://github.com/ElemeFE/mint-ui' },\r\n { value: 'vuex', link: 'https://github.com/vuejs/vuex' },\r\n { value: 'vue-router', link: 'https://github.com/vuejs/vue-router' },\r\n { value: 'babel', link: 'https://github.com/babel/babel' }\r\n ];\r\n\r\n const results = list.filter(n => n.value.startsWith(queryString));\r\n\r\n cb(results);\r\n\r\n})" + } + } + } + }, + "ElAvatar": { + "name": "ElAvatar", + "label": "头像", + "categoryId": "data", + "doc": "https://element-plus.org/zh-CN/component/avatar.html", + "package": "element-plus", + "props": [ + { + "name": "icon", + "defaultValue": "", + "setters": "IconSetter" + }, + { + "name": "size", + "setters": [ + "SelectSetter", + "NumberSetter" + ], + "options": [ + "large", + "default", + "small" + ], + "defaultValue": "default" + }, + { + "name": "shape", + "defaultValue": "circle", + "options": [ + "circle", + "square" + ], + "setters": "SelectSetter" + }, + { + "name": "src", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "srcSet", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "alt", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "fit", + "defaultValue": "cover", + "options": [ + "fill", + "contain", + "cover", + "none", + "scale-down" + ], + "setters": "SelectSetter" + } + ], + "events": [ + "error" + ], + "slots": [ + "default", + "icon" + ], + "snippet": { + "props": { + "src": "https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png" + } + } + }, + "ElBacktop": { + "name": "ElBacktop", + "label": "回到顶部", + "categoryId": "nav", + "doc": "https://element-plus.org/zh-CN/component/backtop.html", + "package": "element-plus", + "props": [ + { + "name": "target", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "visibilityHeight", + "defaultValue": 200, + "setters": "NumberSetter" + }, + { + "name": "right", + "defaultValue": 40, + "setters": "NumberSetter" + }, + { + "name": "bottom", + "defaultValue": 40, + "setters": "NumberSetter" + } + ], + "events": [ + { + "name": "click" + } + ], + "slots": [ + "default" + ], + "snippet": { + "name": "ElBacktop", + "children": [ + { + "name": "component", + "props": { + "is": "div", + "style": { + "height": "100%", + "textAlign": "center", + "width": "100px", + "lineHeight": "40px", + "color": "#1989fa" + } + }, + "children": "UP" + } + ] + } + }, + "ElBadge": { + "name": "ElBadge", + "label": "徽章", + "categoryId": "data", + "doc": "https://element-plus.org/zh-CN/component/badge.html", + "package": "element-plus", + "props": [ + { + "name": "value", + "defaultValue": "", + "title": "显示值", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "max", + "defaultValue": 99, + "setters": "NumberSetter" + }, + { + "name": "isDot", + "defaultValue": false, + "title": "是否显示小圆点。", + "setters": "BooleanSetter" + }, + { + "name": "hidden", + "defaultValue": false, + "title": "是否隐藏 Badge。", + "setters": "BooleanSetter" + }, + { + "name": "type", + "defaultValue": "danger", + "title": "badge 类型。", + "options": [ + "primary", + "success", + "warning", + "danger", + "info" + ], + "setters": "SelectSetter" + }, + { + "name": "showZero", + "title": "值为零时是否显示 Badge ", + "setters": "BooleanSetter", + "defaultValue": true + }, + { + "name": "color", + "title": "背景色", + "setters": "ColorSetter" + }, + { + "name": "offset", + "title": "badge 的偏移量", + "setters": "ArraySetter" + }, + { + "name": "badgeStyle", + "title": "自定义 badge 样式", + "setters": "ObjectSetter" + }, + { + "name": "badgeClass", + "title": "自定义 badge 类名", + "setters": "StringSetter" + } + ], + "slots": [ + "default", + "content" + ], + "snippet": { + "props": { + "value": 12 + }, + "children": [ + { + "name": "ElButton", + "children": "评论" + } + ] + } + }, + "ElBreadcrumb": { + "name": "ElBreadcrumb", + "childIncludes": [ + "ElBreadcrumbItem" + ], + "label": "面包屑", + "categoryId": "nav", + "doc": "https://element-plus.org/zh-CN/component/breadcrumb.html", + "package": "element-plus", + "props": [ + { + "name": "separator", + "defaultValue": "/", + "setters": "InputSetter" + }, + { + "name": "separatorIcon", + "defaultValue": "", + "setters": [ + "InputSetter" + ] + } + ], + "slots": [ + "default", + "separatorIcon" + ], + "snippet": { + "children": [ + { + "name": "ElBreadcrumbItem", + "children": "主页" + }, + { + "name": "ElBreadcrumbItem", + "children": "列表" + }, + { + "name": "ElBreadcrumbItem", + "children": "详情" + } + ] + } + }, + "ElBreadcrumbItem": { + "name": "ElBreadcrumbItem", + "label": "面包屑项", + "categoryId": "nav", + "package": "element-plus", + "props": [ + { + "name": "to", + "defaultValue": "", + "setters": [ + "InputSetter", + "JSONSetter" + ] + }, + { + "name": "replace", + "defaultValue": "", + "setters": "InputSetter" + } + ], + "slots": [ + "default" + ], + "snippet": { + "name": "ElBreadcrumbItem", + "children": "BreadcrumbItem" + } + }, + "ElButton": { + "name": "ElButton", + "label": "按钮", + "categoryId": "base", + "doc": "https://element-plus.org/zh-CN/component/button.html", + "props": [ + { + "name": "size", + "defaultValue": "default", + "setters": "SelectSetter", + "options": [ + "default", + "large", + "small" + ] + }, + { + "name": "type", + "defaultValue": "default", + "setters": "SelectSetter", + "options": [ + "default", + "primary", + "success", + "warning", + "danger", + "info" + ] + }, + { + "name": "plain", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "text", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "bg", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "link", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "round", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "circle", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "loading", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "loadingIcon", + "setters": "IconSetter" + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "icon", + "setters": "IconSetter" + }, + { + "name": "autofocus", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "nativeType", + "defaultValue": "button", + "setters": "SelectSetter", + "options": [ + "button ", + "submit", + "reset" + ] + }, + { + "name": "autoInsertSpace", + "setters": "BooleanSetter" + }, + { + "name": "color", + "setters": "StringSetter" + }, + { + "name": "dark", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "tag", + "setters": "StringSetter", + "defaultValue": "button" + } + ], + "events": [ + "click" + ], + "slots": [ + "default", + "loading", + "icon", + "tag" + ], + "snippet": { + "name": "ElButton", + "children": "按钮", + "props": { + "type": "primary" + } + }, + "package": "element-plus" + }, + "ElButtonGroup": { + "name": "ElButtonGroup", + "childIncludes": [ + "ElButton" + ], + "label": "按钮组", + "categoryId": "base", + "props": [ + { + "name": "size", + "defaultValue": "default", + "setters": "SelectSetter", + "options": [ + "default", + "large", + "small" + ] + }, + { + "name": "type", + "defaultValue": "default", + "setters": "SelectSetter", + "options": [ + "default", + "primary", + "success", + "warning", + "danger", + "info" + ] + } + ], + "slots": [ + "default" + ], + "snippet": { + "name": "ElButtonGroup", + "children": [ + { + "name": "ElButton", + "children": "Button1" + }, + { + "name": "ElButton", + "children": "Button2" + }, + { + "name": "ElButton", + "children": "Button3" + } + ] + }, + "package": "element-plus" + }, + "ElCalendar": { + "name": "ElCalendar", + "label": "日历", + "categoryId": "data", + "doc": "https://element-plus.org/zh-CN/component/calendar.html", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "defaultValue": "", + "setters": [ + "StringSetter", + "ExpressionSetter" + ] + }, + { + "name": "range", + "defaultValue": "", + "setters": [ + "ArraySetter", + "JSONSetter" + ] + } + ], + "events": [ + "update:modelValue" + ], + "slots": [ + { + "name": "date-cell" + }, + { + "name": "header" + } + ] + }, + "ElCard": { + "name": "ElCard", + "label": "卡片", + "categoryId": "data", + "package": "element-plus", + "doc": "https://element-plus.org/zh-CN/component/card.html", + "props": [ + { + "name": "header", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "footer", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "bodyStyle", + "setters": "JSONSetter" + }, + { + "name": "bodyClass", + "setters": "StringSetter" + }, + { + "name": "shadow", + "defaultValue": "always", + "options": [ + "always", + "hover", + "never" + ], + "setters": "SelectSetter" + } + ], + "slots": [ + { + "name": "default" + }, + { + "name": "header" + }, + { + "name": "footer" + } + ], + "snippet": { + "props": { + "header": "标题" + }, + "children": "内容文本" + } + }, + "ElCarousel": { + "name": "ElCarousel", + "label": "走马灯", + "categoryId": "data", + "doc": "https://element-plus.org/zh-CN/component/carousel.html", + "childIncludes": [ + "ElCarouselItem" + ], + "package": "element-plus", + "props": [ + { + "name": "height", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "initialIndex", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "trigger", + "defaultValue": "hover", + "options": [ + "hover", + "click" + ], + "setters": "SelectSetter" + }, + { + "name": "autoplay", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "interval", + "defaultValue": 3000, + "setters": "NumberSetter" + }, + { + "name": "indicatorPosition", + "defaultValue": "", + "options": [ + "", + "outside", + "none" + ], + "label": "指示器", + "setters": "InputSetter" + }, + { + "name": "arrow", + "defaultValue": "hover", + "options": [ + "always", + "hover", + "never" + ], + "setters": "SelectSetter" + }, + { + "name": "type", + "defaultValue": "", + "options": [ + "", + "card" + ], + "setters": "SelectSetter" + }, + { + "name": "cardScale", + "defaultValue": 0.83, + "setters": "NumberSetter" + }, + { + "name": "loop", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "direction", + "defaultValue": "horizontal", + "options": [ + "horizontal", + "vertical" + ], + "setters": "SelectSetter" + }, + { + "name": "pauseOnHover", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "motionBlur", + "defaultValue": false, + "setters": "BooleanSetter" + } + ], + "events": [ + "change" + ], + "slots": [ + "default" + ], + "snippet": { + "props": { + "height": "300px", + "style": { + "width": "100%" + } + }, + "children": [ + { + "name": "ElCarouselItem", + "props": { + "style": { + "width": "100%" + } + }, + "children": [ + { + "name": "component", + "props": { + "is": "img", + "style": { + "width": "100%", + "height": "300px" + }, + "src": "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg" + } + } + ], + "directives": [ + { + "name": "vFor", + "value": { + "type": "JSExpression", + "value": "3" + } + } + ] + } + ] + } + }, + "ElCarouselItem": { + "name": "ElCarouselItem", + "label": "走马灯子项", + "categoryId": "data", + "package": "element-plus", + "props": [ + { + "name": "name", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "label", + "defaultValue": "", + "setters": "InputSetter" + } + ], + "slots": [ + "default" + ], + "snippet": { + "props": { + "style": { + "width": "100%" + } + }, + "children": [ + { + "name": "component", + "props": { + "is": "img", + "style": { + "width": "100%", + "height": "300px" + }, + "src": "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg" + } + } + ] + } + }, + "ElCascader": { + "name": "ElCascader", + "label": "级联选择器", + "categoryId": "form", + "doc": "https://element-plus.org/zh-CN/component/cascader.html", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "title": "选中项绑定值", + "setters": [ + "StringSetter", + "NumberSetter", + "ObjectSetter" + ] + }, + { + "name": "options", + "title": "选项的数据源, value 和 label 可以通过 CascaderProps 自定义", + "defaultValue": [], + "setters": [ + "ArraySetter", + "JSONSetter" + ] + }, + { + "name": "props", + "title": "配置选项", + "setters": [ + "ObjectSetter", + "JSONSetter" + ] + }, + { + "name": "size", + "defaultValue": "", + "title": "尺寸", + "options": [ + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "placeholder", + "title": "输入框占位文本", + "setters": "StringSetter" + }, + { + "name": "disabled", + "title": "是否禁用", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "clearable", + "title": "是否支持清空选项", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "showAllLevels", + "defaultValue": true, + "title": "输入框中是否显示选中值的完整路径", + "setters": "BooleanSetter" + }, + { + "name": "collapseTags", + "title": "多选模式下是否折叠Tag", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "collapseTagsTooltip", + "defaultValue": false, + "title": "当鼠标悬停于折叠标签的文本时,是否显示所有选中的标签。 要使用此属性,collapseTags属性必须设定为 true", + "setters": "BooleanSetter" + }, + { + "name": "separator", + "title": "用于分隔选项的字符", + "defaultValue": "/", + "setters": "StringSetter" + }, + { + "name": "filterable", + "title": "该选项是否可以被搜索", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "filterMethod", + "title": "自定义搜索逻辑,第一个参数是node,第二个参数是keyword,返回的布尔值表示是否保留该选项", + "defaultValue": "", + "setters": [ + "FunctionSetter", + "ExpressionSetter" + ] + }, + { + "name": "debounce", + "title": "搜索关键词正在输入时的去抖延迟,单位为毫秒", + "defaultValue": 300, + "setters": "NumberSetter" + }, + { + "name": "beforeFilter", + "title": "过滤函数调用前,所要调用的钩子函数,该函数接收要过滤的值作为参数。 如果该函数的返回值是 false 或者是一个被拒绝的 Promise,那么接下来的过滤逻辑便不会执行", + "defaultValue": "", + "setters": [ + "FunctionSetter", + "ExpressionSetter" + ] + }, + { + "name": "popperClass", + "title": "弹出内容的自定义类名", + "defaultValue": "", + "setters": "StringSetter" + }, + { + "name": "teleported", + "title": "弹层是否使用 teleport", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "tagType", + "title": "标签类型", + "defaultValue": "info", + "options": [ + "success", + "info", + "warning", + "danger" + ], + "setters": "SelectSetter" + }, + { + "name": "tag-effect", + "title": "tag effect", + "defaultValue": "light", + "options": [ + "light", + "dark", + "plain" + ], + "setters": "SelectSetter" + }, + { + "name": "validateEvent", + "title": "输入时是否触发表单的校验", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "maxCollapseTags", + "title": "需要显示的 Tag 的最大数量 只有当 collapse-tags 设置为 true 时才会生效。", + "setters": "NumberSetter", + "defaultValue": 1 + }, + { + "name": "empty-values", + "title": "组件的空值配置", + "setters": "ArraySetter" + }, + { + "name": "value-on-clear", + "title": "清空选项的值", + "setters": [ + "StringSetter", + "NumberSetter", + "BooleanSetter", + "ArraySetter" + ] + }, + { + "name": "persistent", + "title": "当下拉框未被激活并且persistent设置为false,下拉框容器会被删除。", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "fallback-placements", + "title": "Tooltip 可用的 positions", + "setters": "ArraySetter" + }, + { + "name": "placement", + "title": "下拉框出现的位置", + "defaultValue": "bottom-start", + "options": [ + "top", + "top-start", + "top-end", + "bottom", + "bottom-start", + "bottom-end", + "left", + "left-start", + "left-end", + "right", + "right-start", + "right-end" + ], + "setters": "SelectSetter" + }, + { + "name": "popperAppendToBody", + "defaultValue": true, + "title": "是否将弹出的内容直接插入到 body 元素。 在弹出内容的边框定位出现问题时,可将该属性设置为 false", + "setters": "BooleanSetter" + } + ], + "events": [ + { + "name": "change" + }, + { + "name": "expand-change" + }, + { + "name": "blur" + }, + { + "name": "focus" + }, + { + "name": "clear" + }, + { + "name": "visible-change" + }, + { + "name": "remove-tag" + }, + { + "name": "update:modelValue" + } + ], + "slots": [ + { + "name": "default", + "params": [ + "node", + "data" + ] + }, + { + "name": "empty" + } + ], + "snippet": { + "props": { + "options": [ + { + "value": "guide", + "label": "Guide", + "children": [ + { + "value": "disciplines", + "label": "Disciplines", + "children": [ + { + "value": "consistency", + "label": "Consistency" + }, + { + "value": "feedback", + "label": "Feedback" + }, + { + "value": "efficiency", + "label": "Efficiency" + }, + { + "value": "controllability", + "label": "Controllability" + } + ] + }, + { + "value": "navigation", + "label": "Navigation", + "children": [ + { + "value": "side nav", + "label": "Side Navigation" + }, + { + "value": "top nav", + "label": "Top Navigation" + } + ] + } + ] + }, + { + "value": "component", + "label": "Component", + "children": [ + { + "value": "basic", + "label": "Basic", + "children": [ + { + "value": "layout", + "label": "Layout" + }, + { + "value": "color", + "label": "Color" + }, + { + "value": "typography", + "label": "Typography" + }, + { + "value": "icon", + "label": "Icon" + }, + { + "value": "button", + "label": "Button" + } + ] + }, + { + "value": "form", + "label": "Form", + "children": [ + { + "value": "radio", + "label": "Radio" + }, + { + "value": "checkbox", + "label": "Checkbox" + }, + { + "value": "input", + "label": "Input" + }, + { + "value": "input-number", + "label": "InputNumber" + }, + { + "value": "select", + "label": "Select" + }, + { + "value": "cascader", + "label": "Cascader" + }, + { + "value": "switch", + "label": "Switch" + }, + { + "value": "slider", + "label": "Slider" + }, + { + "value": "time-picker", + "label": "TimePicker" + }, + { + "value": "date-picker", + "label": "DatePicker" + }, + { + "value": "datetime-picker", + "label": "DateTimePicker" + }, + { + "value": "upload", + "label": "Upload" + }, + { + "value": "rate", + "label": "Rate" + }, + { + "value": "form", + "label": "Form" + } + ] + }, + { + "value": "data", + "label": "Data", + "children": [ + { + "value": "table", + "label": "Table" + }, + { + "value": "tag", + "label": "Tag" + }, + { + "value": "progress", + "label": "Progress" + }, + { + "value": "tree", + "label": "Tree" + }, + { + "value": "pagination", + "label": "Pagination" + }, + { + "value": "badge", + "label": "Badge" + } + ] + }, + { + "value": "notice", + "label": "Notice", + "children": [ + { + "value": "alert", + "label": "Alert" + }, + { + "value": "loading", + "label": "Loading" + }, + { + "value": "message", + "label": "Message" + }, + { + "value": "message-box", + "label": "MessageBox" + }, + { + "value": "notification", + "label": "Notification" + } + ] + }, + { + "value": "navigation", + "label": "Navigation", + "children": [ + { + "value": "menu", + "label": "Menu" + }, + { + "value": "tabs", + "label": "Tabs" + }, + { + "value": "breadcrumb", + "label": "Breadcrumb" + }, + { + "value": "dropdown", + "label": "Dropdown" + }, + { + "value": "steps", + "label": "Steps" + } + ] + }, + { + "value": "others", + "label": "Others", + "children": [ + { + "value": "dialog", + "label": "Dialog" + }, + { + "value": "tooltip", + "label": "Tooltip" + }, + { + "value": "popover", + "label": "Popover" + }, + { + "value": "card", + "label": "Card" + }, + { + "value": "carousel", + "label": "Carousel" + }, + { + "value": "collapse", + "label": "Collapse" + } + ] + } + ] + }, + { + "value": "resource", + "label": "Resource", + "children": [ + { + "value": "axure", + "label": "Axure Components" + }, + { + "value": "sketch", + "label": "Sketch Templates" + }, + { + "value": "docs", + "label": "Design Documentation" + } + ] + } + ], + "props": {}, + "modelValue": [] + } + } + }, + "ElCascaderPanel": { + "name": "ElCascaderPanel", + "label": "级联面板", + "categoryId": "form", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "title": "选中项绑定值", + "defaultValue": "", + "setters": [ + "StringSetter", + "NumberSetter", + "JSONSetter" + ] + }, + { + "name": "options", + "title": "选项的数据源", + "defaultValue": "", + "setters": "JSONSetter" + }, + { + "name": "props", + "title": "配置选项", + "defaultValue": "", + "setters": "JSONSetter" + } + ], + "events": [ + { + "name": "change" + }, + { + "name": "expand-change" + }, + { + "name": "close" + } + ], + "slots": [ + { + "name": "default", + "params": [ + "node", + "data" + ] + }, + { + "name": "empty" + } + ], + "snippet": { + "props": { + "options": [ + { + "value": "guide", + "label": "Guide", + "children": [ + { + "value": "disciplines", + "label": "Disciplines", + "children": [ + { + "value": "consistency", + "label": "Consistency" + }, + { + "value": "feedback", + "label": "Feedback" + }, + { + "value": "efficiency", + "label": "Efficiency" + }, + { + "value": "controllability", + "label": "Controllability" + } + ] + }, + { + "value": "navigation", + "label": "Navigation", + "children": [ + { + "value": "side nav", + "label": "Side Navigation" + }, + { + "value": "top nav", + "label": "Top Navigation" + } + ] + } + ] + }, + { + "value": "component", + "label": "Component", + "children": [ + { + "value": "basic", + "label": "Basic", + "children": [ + { + "value": "layout", + "label": "Layout" + }, + { + "value": "color", + "label": "Color" + }, + { + "value": "typography", + "label": "Typography" + }, + { + "value": "icon", + "label": "Icon" + }, + { + "value": "button", + "label": "Button" + } + ] + }, + { + "value": "form", + "label": "Form", + "children": [ + { + "value": "radio", + "label": "Radio" + }, + { + "value": "checkbox", + "label": "Checkbox" + }, + { + "value": "input", + "label": "Input" + }, + { + "value": "input-number", + "label": "InputNumber" + }, + { + "value": "select", + "label": "Select" + }, + { + "value": "cascader", + "label": "Cascader" + }, + { + "value": "switch", + "label": "Switch" + }, + { + "value": "slider", + "label": "Slider" + }, + { + "value": "time-picker", + "label": "TimePicker" + }, + { + "value": "date-picker", + "label": "DatePicker" + }, + { + "value": "datetime-picker", + "label": "DateTimePicker" + }, + { + "value": "upload", + "label": "Upload" + }, + { + "value": "rate", + "label": "Rate" + }, + { + "value": "form", + "label": "Form" + } + ] + }, + { + "value": "data", + "label": "Data", + "children": [ + { + "value": "table", + "label": "Table" + }, + { + "value": "tag", + "label": "Tag" + }, + { + "value": "progress", + "label": "Progress" + }, + { + "value": "tree", + "label": "Tree" + }, + { + "value": "pagination", + "label": "Pagination" + }, + { + "value": "badge", + "label": "Badge" + } + ] + }, + { + "value": "notice", + "label": "Notice", + "children": [ + { + "value": "alert", + "label": "Alert" + }, + { + "value": "loading", + "label": "Loading" + }, + { + "value": "message", + "label": "Message" + }, + { + "value": "message-box", + "label": "MessageBox" + }, + { + "value": "notification", + "label": "Notification" + } + ] + }, + { + "value": "navigation", + "label": "Navigation", + "children": [ + { + "value": "menu", + "label": "Menu" + }, + { + "value": "tabs", + "label": "Tabs" + }, + { + "value": "breadcrumb", + "label": "Breadcrumb" + }, + { + "value": "dropdown", + "label": "Dropdown" + }, + { + "value": "steps", + "label": "Steps" + } + ] + }, + { + "value": "others", + "label": "Others", + "children": [ + { + "value": "dialog", + "label": "Dialog" + }, + { + "value": "tooltip", + "label": "Tooltip" + }, + { + "value": "popover", + "label": "Popover" + }, + { + "value": "card", + "label": "Card" + }, + { + "value": "carousel", + "label": "Carousel" + }, + { + "value": "collapse", + "label": "Collapse" + } + ] + } + ] + }, + { + "value": "resource", + "label": "Resource", + "children": [ + { + "value": "axure", + "label": "Axure Components" + }, + { + "value": "sketch", + "label": "Sketch Templates" + }, + { + "value": "docs", + "label": "Design Documentation" + } + ] + } + ], + "props": {}, + "modelValue": [] + } + } + }, + "ElCheckbox": { + "name": "ElCheckbox", + "label": "多选框", + "categoryId": "form", + "doc": "https://element-plus.org/zh-CN/component/checkbox.html", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "title": "选中项绑定值", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter", + "BooleanSetter" + ] + }, + { + "name": "label", + "title": "选中状态的值,只有在绑定对象类型为 array 时有效。 如果没有 value, label则作为value使用", + "defaultValue": "", + "setters": [ + "InputSetter" + ] + }, + { + "name": "value", + "title": "选中状态的值(只有在checkbox-group或者绑定对象类型为array时有效)", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter", + "BooleanSetter", + "JSONSetter" + ] + }, + { + "name": "trueValue", + "title": "选中时的值", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "falseValue", + "title": "没有选中时的值", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "disabled", + "title": "是否禁用", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "border", + "title": "是否显示边框", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "size", + "title": "Checkbox 的尺寸", + "defaultValue": "default", + "options": [ + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "name", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "checked", + "title": "当前是否勾选", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "indeterminate", + "defaultValue": false, + "title": "设置 indeterminate 状态,只负责样式控制", + "setters": "BooleanSetter" + }, + { + "name": "validateEvent", + "defaultValue": true, + "title": "输入时是否触发表单的校验", + "setters": "BooleanSetter" + }, + { + "name": "tabindex", + "label": "tabindex", + "title": "输入框的 tabindex", + "setters": [ + "StringSetter", + "NumberSetter" + ] + }, + { + "name": "id", + "label": "id", + "title": "input id", + "setters": "StringSetter" + }, + { + "name": "aria-controls", + "title": "与 aria-control一致, 当 indeterminate为 true时生效", + "setters": "BooleanSetter" + }, + { + "name": "trueLabel", + "title": "选中时的值(deprecated)", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "falseLabel", + "title": "没有选中时的值(deprecated)", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "controls(deprecated)", + "title": "与 aria-control一致, 当 indeterminate为 true时生效", + "setters": "BooleanSetter" + } + ], + "events": [ + { + "name": "change" + }, + { + "name": "update:modelValue" + } + ], + "slots": [ + "default" + ], + "snippet": { + "props": { + "label": "选项一", + "value": 1 + } + } + }, + "ElCheckboxGroup": { + "name": "ElCheckboxGroup", + "label": "多选框组", + "childIncludes": [ + "ElCheckbox", + "ElCheckboxButton" + ], + "categoryId": "form", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "title": "绑定值", + "defaultValue": [], + "setters": "JSONSetter" + }, + { + "name": "size", + "title": "多选框组尺寸", + "defaultValue": "", + "options": [ + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "disabled", + "title": "是否禁用", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "min", + "title": "可被勾选的 checkbox 的最小数量", + "defaultValue": "", + "setters": "NumberSetter" + }, + { + "name": "max", + "title": "可被勾选的 checkbox 的最大数量", + "defaultValue": "", + "setters": "NumberSetter" + }, + { + "name": "aria-label", + "title": "原生 aria-label属性", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "textColor", + "title": "当按钮为活跃状态时的字体颜色", + "defaultValue": "#ffffff", + "setters": "ColorSetter" + }, + { + "name": "fill", + "defaultValue": "#409EFF", + "title": "当按钮为活跃状态时的边框和背景颜色", + "setters": "ColorSetter" + }, + { + "name": "tag", + "defaultValue": "div", + "title": "复选框组元素标签", + "setters": "StringSetter" + }, + { + "name": "validateEvent", + "defaultValue": true, + "title": "输入时是否触发表单的校验", + "setters": "BooleanSetter" + }, + { + "name": "label", + "title": "原生 aria-label属性", + "defaultValue": "", + "setters": "StringSetter" + } + ], + "events": [ + "change", + "update:modelValue" + ], + "slots": [ + "default" + ], + "snippet": { + "children": [ + { + "name": "ElCheckbox", + "props": { + "label": "选项一", + "value": "1" + } + }, + { + "name": "ElCheckbox", + "props": { + "label": "选项二", + "value": "2" + } + }, + { + "name": "ElCheckbox", + "props": { + "label": "选项三", + "value": "3" + } + } + ] + } + }, + "ElCheckboxButton": { + "name": "ElCheckboxButton", + "label": "按钮样式的多选组合", + "categoryId": "form", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "title": "选中状态的值,只有在绑定对象类型为 array 时有效。", + "defaultValue": [], + "setters": [ + "StringSetter", + "NumberSetter", + "BooleanSetter", + "JSONSetter" + ] + }, + { + "name": "label", + "title": "选中状态的值,只有在绑定对象类型为 array 时有效。 如果没有 value, label则作为value使用", + "defaultValue": "", + "setters": [ + "StringSetter", + "NumberSetter", + "BooleanSetter", + "JSONSetter" + ] + }, + { + "name": "trueValue", + "title": "选中时的值", + "defaultValue": "", + "setters": [ + "StringSetter", + "NumberSetter" + ] + }, + { + "name": "falseValue", + "title": "没有选中时的值", + "defaultValue": "", + "setters": [ + "StringSetter", + "NumberSetter" + ] + }, + { + "name": "disabled", + "title": "是否禁用", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "name", + "title": "原生 name 属性", + "defaultValue": "", + "setters": "StringSetter" + }, + { + "name": "checked", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "trueLabel", + "title": "选中时的值", + "defaultValue": "", + "setters": [ + "StringSetter", + "NumberSetter" + ] + }, + { + "name": "falseLabel", + "title": "没有选中时的值", + "defaultValue": "", + "setters": [ + "StringSetter", + "NumberSetter" + ] + } + ], + "slots": [ + "default" + ], + "snippet": { + "props": { + "label": "按钮选项" + } + } + }, + "ElCollapse": { + "name": "ElCollapse", + "label": "折叠面板", + "categoryId": "data", + "doc": "https://element-plus.org/zh-CN/component/collapse.html", + "childIncludes": [ + "ElCollapseItem" + ], + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "defaultValue": "", + "title": "当前激活的面板(如果是手风琴模式,绑定值类型需要为string,否则为array)", + "setters": [ + "InputSetter", + "ArraySetter", + "JSONSetter" + ] + }, + { + "name": "accordion", + "defaultValue": false, + "title": "是否手风琴模式", + "setters": "BooleanSetter" + } + ], + "events": [ + "change" + ], + "slots": [ + "default" + ], + "snippet": { + "children": [ + { + "name": "ElCollapseItem", + "children": "面板内容", + "props": { + "title": "面板标题" + }, + "directives": [ + { + "name": "vFor", + "value": { + "type": "JSExpression", + "value": "3" + } + } + ] + } + ] + } + }, + "ElCollapseItem": { + "name": "ElCollapseItem", + "label": "折叠面板子项", + "categoryId": "data", + "package": "element-plus", + "props": [ + { + "name": "name", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "title", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "icon", + "defaultValue": "ArrowRight", + "setters": "StringSetter" + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + } + ], + "events": [ + "change" + ], + "slots": [ + { + "name": "default" + }, + { + "name": "title" + }, + { + "name": "icon" + } + ], + "snippet": { + "children": "面板内容", + "props": { + "title": "面板标题" + } + } + }, + "ElColorPicker": { + "name": "ElColorPicker", + "label": "取色器", + "categoryId": "form", + "childIncludes": false, + "doc": "https://element-plus.org/zh-CN/component/color-picker.html", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "title": "选中项绑定值", + "defaultValue": "", + "setters": "StringSetter" + }, + { + "name": "disabled", + "title": "是否禁用", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "size", + "defaultValue": "", + "options": [ + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "showAlpha", + "title": "是否支持透明度选择", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "colorFormat", + "title": "写入 v-model 的颜色的格式", + "defaultValue": "", + "options": [ + "hsl", + "hsv", + "hex", + "rgb" + ], + "setters": "SelectSetter" + }, + { + "name": "popperClass", + "title": "ColorPicker 下拉框的类名", + "defaultValue": "", + "setters": "StringSetter" + }, + { + "name": "predefine", + "title": "预定义颜色", + "defaultValue": "", + "setters": "JSONSetter" + }, + { + "name": "validateEvent", + "title": "输入时是否触发表单的校验", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "tabindex", + "label": "tabindex", + "title": "ColorPicker 的 tabindex", + "setters": [ + "StringSetter", + "NumberSetter" + ], + "defaultValue": 0 + }, + { + "name": "aria-label", + "title": "ColorPicker 的 aria-label", + "setters": "StringSetter" + }, + { + "name": "id", + "title": "ColorPicker 的 id", + "setters": "StringSetter" + }, + { + "name": "teleported", + "title": "是否将 popover 的下拉列表渲染至 body 下", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "label", + "title": "ColorPicker 的 aria-label(deprecated)", + "setters": "StringSetter" + } + ], + "events": [ + { + "name": "change" + }, + { + "name": "active-change" + }, + { + "name": "update:modelValue" + }, + { + "name": "focus" + }, + { + "name": "blur" + } + ] + }, + "ElConfigProvider": { + "name": "ElConfigProvider", + "label": "全局配置", + "categoryId": "other", + "doc": "https://element-plus.org/zh-CN/component/config-provider.html", + "props": [ + { + "name": "locale", + "label": "locale", + "title": "翻译文本对象", + "setters": "ObjectSetter" + }, + { + "name": "size", + "label": "size", + "title": "全局组件大小", + "setters": "SelectSetter", + "options": [ + "large", + "default", + "small" + ], + "defaultValue": "default" + }, + { + "name": "zIndex", + "label": "zIndex", + "title": "全局初始化 zIndex 的值", + "setters": "NumberSetter" + }, + { + "name": "namespace", + "label": "namespace", + "title": "全局组件类名称前缀", + "setters": "StringSetter", + "defaultValue": "el" + }, + { + "name": "button", + "label": "button", + "title": "按钮相关配置", + "setters": "ObjectSetter", + "defaultValue": { + "autoInsertSpace": false + } + }, + { + "name": "message", + "label": "message", + "title": "消息相关配置", + "setters": "ObjectSetter" + }, + { + "name": "experimentalFeatures", + "label": "experimentalFeatures", + "title": "将要添加的实验阶段的功能,所有功能都是默认设置为 false", + "setters": "ObjectSetter" + } + ], + "slots": [ + "default" + ], + "package": "element-plus" + }, + "ElContainer": { + "name": "ElContainer", + "label": "布局容器", + "categoryId": "layout", + "doc": "https://element-plus.org/zh-CN/component/container.html", + "package": "element-plus", + "props": [ + { + "name": "direction", + "defaultValue": "", + "setters": "SelectSetter", + "options": [ + "horizontal", + "vertical" + ] + } + ], + "slots": [ + "default" + ], + "snippet": { + "props": { + "style": { + "width": "100%", + "height": "100%" + } + } + } + }, + "ElHeader": { + "name": "ElHeader", + "parentIncludes": [ + "ElContainer" + ], + "label": "顶栏容器", + "categoryId": "layout", + "package": "element-plus", + "props": [ + { + "name": "height", + "defaultValue": "60px", + "setters": [ + "InputSetter" + ] + } + ] + }, + "ElAside": { + "name": "ElAside", + "parentIncludes": [ + "ElContainer" + ], + "label": "侧边栏容器", + "categoryId": "layout", + "package": "element-plus", + "props": [ + { + "name": "width", + "defaultValue": "300px", + "setters": [ + "InputSetter" + ] + } + ], + "slots": [ + "default" + ] + }, + "ElMain": { + "name": "ElMain", + "parentIncludes": [ + "ElContainer" + ], + "label": "主要区域容器", + "categoryId": "layout", + "package": "element-plus" + }, + "ElFooter": { + "name": "ElFooter", + "parentIncludes": [ + "ElContainer" + ], + "label": "底栏容器", + "categoryId": "layout", + "package": "element-plus", + "props": [ + { + "name": "height", + "defaultValue": "60px", + "setters": [ + "InputSetter" + ] + } + ], + "slots": [ + "default" + ] + }, + "ElDatePicker": { + "name": "ElDatePicker", + "label": "日期选择器", + "categoryId": "form", + "doc": "https://element-plus.org/zh-CN/component/date-picker.html", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "title": "绑定值,如果它是数组,长度应该是 2", + "defaultValue": "", + "setters": [ + "NumberSetter", + "StringSetter", + "ArraySetter", + "ExpressionSetter" + ] + }, + { + "name": "readonly", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "size", + "defaultValue": "default", + "options": [ + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "editable", + "title": "文本框可输入", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "clearable", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "placeholder", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "startPlaceholder", + "defaultValue": "", + "title": "范围选择时开始日期的占位内容", + "setters": "InputSetter" + }, + { + "name": "endPlaceholder", + "defaultValue": "", + "title": "范围选择时结束日期的占位内容", + "setters": "InputSetter" + }, + { + "name": "type", + "defaultValue": "date", + "title": "显示类型", + "options": [ + "year", + "years", + "month", + "months", + "date", + "dates", + "datetime", + "week", + "datetimerange", + "daterange", + "monthrange", + "yearrange" + ], + "setters": "SelectSetter" + }, + { + "name": "format", + "title": "显示在输入框中的格式", + "defaultValue": "YYYY-MM-DD", + "setters": "InputSetter" + }, + { + "name": "popperClass", + "title": "DatePicker 下拉框的类名", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "popper-options", + "title": "自定义 popper 选项", + "defaultValue": "", + "setters": [ + "ObjectSetter", + "JSONSetter" + ] + }, + { + "name": "rangeSeparator", + "defaultValue": "-", + "title": "选择范围时的分隔符", + "setters": "InputSetter" + }, + { + "name": "defaultValue", + "title": "可选,选择器打开时默认显示的时间", + "defaultValue": "", + "setters": "ExpressionSetter" + }, + { + "name": "defaultTime", + "title": "范围选择时选中日期所使用的当日内具体时刻", + "defaultValue": "", + "setters": "ExpressionSetter" + }, + { + "name": "valueFormat", + "title": "可选,绑定值的格式。 不指定则绑定值为 Date 对象", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "id", + "defaultValue": "", + "setters": [ + "InputSetter" + ] + }, + { + "name": "name", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "unlinkPanels", + "title": "在范围选择器里取消两个日期面板之间的联动", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "prefixIcon", + "defaultValue": "Date", + "title": "自定义前缀图标", + "setters": "InputSetter" + }, + { + "name": "clearIcon", + "defaultValue": "CircleClose", + "title": "自定义清除图标", + "setters": "InputSetter" + }, + { + "name": "validateEvent", + "defaultValue": true, + "title": "输入时是否触发表单的校验", + "setters": "BooleanSetter" + }, + { + "name": "disabledDate", + "title": "一个用来判断该日期是否被禁用的函数,接受一个 Date 对象作为参数。 应该返回一个 Boolean 值。", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "shortcuts", + "defaultValue": "", + "title": "设置快捷选项,需要传入数组对象", + "setters": "JSONSetter" + }, + { + "name": "cellClassName", + "defaultValue": "", + "title": "设置自定义类名", + "setters": "FunctionSetter" + }, + { + "name": "teleported", + "defaultValue": true, + "title": "是否将 date-picker 的下拉列表插入至 body 元素", + "setters": "BooleanSetter" + }, + { + "name": "empty-values", + "title": "组件的空值配置", + "setters": "ArraySetter" + }, + { + "name": "value-on-clear", + "title": "清空选项的值", + "setters": [ + "StringSetter", + "NumberSetter", + "BooleanSetter", + "FunctionSetter" + ] + }, + { + "name": "fallback-placements", + "title": "Tooltip 可用的 positions", + "setters": "ArraySetter" + }, + { + "name": "placement", + "title": "下拉框出现的位置", + "defaultValue": "bottom", + "setters": "SelectSetter", + "options": [ + "top", + "top-start", + "top-end", + "bottom", + "bottom-start", + "bottom-end", + "left", + "left-start", + "left-end", + "right", + "right-start", + "right-end" + ] + } + ], + "events": [ + { + "name": "change" + }, + { + "name": "blur" + }, + { + "name": "focus" + }, + { + "name": "clear" + }, + { + "name": "calendar-change" + }, + { + "name": "panel-change" + }, + { + "name": "visible-change" + }, + { + "name": "update:modelValue" + } + ], + "slots": [ + { + "name": "default" + }, + { + "name": "range-separator" + }, + { + "name": "prev-month" + }, + { + "name": "next-month" + }, + { + "name": "prev-year" + }, + { + "name": "next-year" + } + ] + }, + "ElDateTimePicker": { + "name": "ElDateTimePicker", + "label": "日期时间选择器", + "alias": "ElDatePicker", + "categoryId": "form", + "doc": "https://element-plus.org/zh-CN/component/datetime-picker.html", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "defaultValue": "", + "setters": [ + "NumberSetter", + "StringSetter", + "ExpressionSetter" + ] + }, + { + "name": "readonly", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "editable", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "clearable", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "size", + "defaultValue": "default", + "options": [ + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "placeholder", + "defaultValue": "", + "setters": "StringSetter" + }, + { + "name": "startPlaceholder", + "defaultValue": "", + "title": "范围选择时开始日期的占位内容", + "setters": "StringSetter" + }, + { + "name": "endPlaceholder", + "defaultValue": "", + "title": "范围选择时结束日期的占位内容", + "setters": "InputSetter" + }, + { + "name": "arrowControl", + "title": "是否使用箭头进行时间选择", + "setters": "BooleanSetter", + "defaultValue": false + }, + { + "name": "type", + "defaultValue": "date", + "title": "显示类型", + "options": [ + "year", + "month", + "date", + "dates", + "datetime", + "week", + "datetimerange", + "daterange", + "monthrange" + ], + "setters": "SelectSetter" + }, + { + "name": "format", + "title": "显示在输入框中的格式", + "defaultValue": "YYYY-MM-DD HH:mm:ss", + "setters": "StringSetter" + }, + { + "name": "popperClass", + "title": "DateTimePicker 下拉框的类名", + "defaultValue": "", + "setters": "StringSetter" + }, + { + "name": "rangeSeparator", + "defaultValue": "-", + "title": "选择范围时的分隔符", + "setters": "StringSetter" + }, + { + "name": "defaultValue", + "title": "可选,选择器打开时默认显示的时间", + "defaultValue": "", + "setters": "ExpressionSetter" + }, + { + "name": "defaultTime", + "title": "选择日期后的默认时间值。 如未指定则默认时间值为 00:00:00", + "defaultValue": "", + "setters": "ExpressionSetter" + }, + { + "name": "valueFormat", + "title": "可选,绑定值的格式。 不指定则绑定值为 Date 对象", + "defaultValue": "", + "setters": "StringSetter" + }, + { + "name": "dateFormat", + "defaultValue": "", + "setters": "StringSetter", + "title": "时间选择器下拉列表中显示的日期格式" + }, + { + "name": "timeFormat", + "defaultValue": "", + "setters": "StringSetter", + "title": "时间选择器下拉列表中显示的时间格式" + }, + { + "name": "id", + "defaultValue": "", + "setters": [ + "StringSetter", + "ArraySetter", + "ExpressionSetter" + ] + }, + { + "name": "name", + "defaultValue": "", + "setters": "StringSetter" + }, + { + "name": "unlinkPanels", + "title": "在范围选择器里取消两个日期面板之间的联动", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "prefixIcon", + "defaultValue": "Date", + "title": "自定义前缀图标", + "setters": "InputSetter" + }, + { + "name": "clearIcon", + "defaultValue": "CircleClose", + "title": "自定义清除图标", + "setters": "InputSetter" + }, + { + "name": "shortcuts", + "defaultValue": "", + "title": "设置快捷选项,需要传入数组对象", + "setters": "JSONSetter" + }, + { + "name": "disabledDate", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "cellClassName", + "defaultValue": "", + "title": "设置自定义类名", + "setters": "FunctionSetter" + }, + { + "name": "teleported", + "defaultValue": true, + "title": "设置自定义类名", + "setters": "BooleanSetter" + }, + { + "name": "emptyValues", + "title": "组件的空值配置", + "setters": "ArraySetter" + }, + { + "name": "valueOnClear", + "title": "清空选项的值", + "setters": [ + "StringSetter", + "NumberSetter", + "BooleanSetter", + "FunctionSetter" + ] + }, + { + "name": "showNow", + "title": "是否显示 now 按钮", + "defaultValue": true, + "setters": "BooleanSetter" + } + ], + "events": [ + { + "name": "change" + }, + { + "name": "blur" + }, + { + "name": "focus" + }, + { + "name": "clear" + }, + { + "name": "calendar-change" + }, + { + "name": "visible-change" + }, + { + "name": "update:modelValue" + } + ], + "slots": [ + { + "name": "default" + }, + { + "name": "range-separator" + }, + { + "name": "prev-month" + }, + { + "name": "next-month" + }, + { + "name": "prev-year" + }, + { + "name": "next-year" + } + ], + "snippet": { + "props": { + "type": "datetime", + "placeholder": "Select date and time" + } + } + }, + "ElDescriptions": { + "name": "ElDescriptions", + "label": "描述列表", + "categoryId": "data", + "package": "element-plus", + "doc": "https://element-plus.org/zh-CN/component/descriptions.html", + "props": [ + { + "name": "border", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "column", + "defaultValue": 3, + "setters": "NumberSetter" + }, + { + "name": "direction", + "defaultValue": "horizontal", + "options": [ + "vertical", + "horizontal" + ], + "setters": "SelectSetter" + }, + { + "name": "size", + "defaultValue": "", + "options": [ + "", + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "title", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "extra", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "labelWidth", + "defaultValue": "", + "setters": [ + "StringSetter", + "NumberSetter" + ] + } + ], + "slots": [ + "default", + "title", + "extra" + ], + "snippet": { + "props": { + "border": true + }, + "children": [ + { + "name": "ElDescriptionsItem", + "children": "kooriookami", + "props": { + "label": "Username" + } + }, + { + "name": "ElDescriptionsItem", + "children": "18100000000", + "props": { + "label": "Telephone" + } + }, + { + "name": "ElDescriptionsItem", + "children": "Suzhou", + "props": { + "label": "Place" + } + }, + { + "name": "ElDescriptionsItem", + "children": "No.1188, Wuzhong Avenue, Wuzhong District, Suzhou, Jiangs Province", + "props": { + "label": "Address" + } + } + ] + } + }, + "ElDescriptionsItem": { + "name": "ElDescriptionsItem", + "label": "描述列表子项", + "categoryId": "data", + "parentIncludes": [ + "ElDescriptions" + ], + "package": "element-plus", + "props": [ + { + "name": "label", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "span", + "defaultValue": 1, + "setters": "NumberSetter" + }, + { + "name": "rowspan", + "defaultValue": 1, + "setters": "NumberSetter" + }, + { + "name": "width", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "min-width", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "labelWidth", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "align", + "defaultValue": "left", + "options": [ + "left", + "center", + "right" + ], + "setters": "SelectSetter" + }, + { + "name": "label-align", + "defaultValue": "", + "options": [ + "left", + "center", + "right" + ], + "setters": "SelectSetter" + }, + { + "name": "class-name", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "label-class-name", + "defaultValue": "", + "label": "标题类名", + "setters": "InputSetter" + } + ], + "slots": [ + "default", + "label" + ], + "snippet": { + "children": "内容", + "props": { + "label": "标题" + } + } + }, + "ElDialog": { + "name": "ElDialog", + "label": "对话框", + "categoryId": "other", + "doc": "https://element-plus.org/zh-CN/component/dialog.html", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "title", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "width", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "fullscreen", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "top", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "modal", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "modalClass", + "label": "modalClass", + "title": "遮罩的自定义类名", + "setters": "StringSetter" + }, + { + "name": "appendToBody", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "appendTo", + "label": "appendTo", + "title": "Dialog 挂载到哪个 DOM 元素 将覆盖 append-to-body", + "setters": "StringSetter", + "defaultValue": "body" + }, + { + "name": "lockScroll", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "openDelay", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "closeDelay", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "closeOnClickModal", + "label": "点击关闭", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "closeOnPressEscape", + "label": "ESC键关闭", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "showClose", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "beforeClose", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "draggable", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "overflow", + "label": "overflow", + "title": "拖动范围可以超出可视区", + "setters": "BooleanSetter", + "defaultValue": false + }, + { + "name": "center", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "alignCenter", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "destroyOnClose", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "closeIcon", + "label": "closeIcon", + "title": "自定义关闭图标", + "setters": [ + "StringSetter", + "IconSetter" + ] + }, + { + "name": "z-index", + "label": "z-index", + "title": "和原生的 CSS 的 z-index 相同,改变 z 轴的顺序", + "setters": "NumberSetter" + }, + { + "name": "headerAriaLevel", + "label": "headerAriaLevel", + "title": "header 的 aria-level 属性", + "setters": "StringSetter", + "defaultValue": 2 + }, + { + "name": "customClass", + "defaultValue": "", + "setters": "InputSetter" + } + ], + "events": [ + { + "name": "open" + }, + { + "name": "opened" + }, + { + "name": "close" + }, + { + "name": "closed" + }, + { + "name": "open-auto-focus" + }, + { + "name": "close-auto-focus" + }, + { + "name": "update:modelValue" + } + ], + "slots": [ + { + "name": "default" + }, + { + "name": "header" + }, + { + "name": "footer" + }, + { + "name": "title" + } + ], + "snippet": { + "name": "ElDialog", + "children": "对话框弹窗内容", + "props": { + "title": "标题", + "modelValue": true + } + } + }, + "ElDivider": { + "name": "ElDivider", + "label": "分割线", + "categoryId": "other", + "doc": "https://element-plus.org/zh-CN/component/divider.html", + "package": "element-plus", + "props": [ + { + "name": "direction", + "defaultValue": "horizontal", + "setters": "SelectSetter", + "options": [ + "horizontal", + "vertical" + ] + }, + { + "name": "borderStyle", + "defaultValue": "solid", + "setters": "InputSetter" + }, + { + "name": "contentPosition", + "defaultValue": "center", + "setters": "SelectSetter", + "options": [ + "left", + "right", + "center" + ] + } + ], + "slots": [ + "default" + ], + "snippet": { + "name": "ElDivider", + "children": "分割线" + } + }, + "ElDrawer": { + "name": "ElDrawer", + "label": "抽屉", + "categoryId": "other", + "doc": "https://element-plus.org/zh-CN/component/drawer.html", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "appendToBody", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "appendTo", + "defaultValue": "body", + "setters": "StringSetter" + }, + { + "name": "lockScroll", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "beforeClose", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "closeOnClickModal", + "label": "点击蒙层关闭", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "closOonPressEscape", + "label": "ESC键关闭", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "openDelay", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "closeDelay", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "destroyOnClose", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "modal", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "direction", + "defaultValue": "rtl", + "setters": "SelectSetter", + "options": [ + "rtl", + "ltr", + "ttb", + "btt" + ] + }, + { + "name": "showClose", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "size", + "defaultValue": "30%", + "title": "Drawer 窗体的大小, 当使用 number 类型时, 以像素为单位, 当使用 string 类型时, 请传入 x%, 否则便会以 number 类型解释", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "title", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "withHeader", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "modalClass", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "zIndex", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "headerAriaLevel", + "label": "headerAriaLevel", + "title": "header 的 aria-level 属性", + "setters": "StringSetter", + "defaultValue": 2 + }, + { + "name": "customClass", + "defaultValue": "", + "setters": "InputSetter" + } + ], + "events": [ + { + "name": "open" + }, + { + "name": "opened" + }, + { + "name": "close" + }, + { + "name": "closed" + }, + { + "name": "open-auto-focus" + }, + { + "name": "close-auto-focus" + }, + { + "name": "update:modelValue" + } + ], + "slots": [ + { + "name": "default" + }, + { + "name": "header" + }, + { + "name": "footer" + }, + { + "name": "title" + } + ], + "snippet": { + "name": "ElDrawer", + "children": "抽屉内容", + "props": { + "title": "标题", + "modelValue": true + } + } + }, + "ElDropdown": { + "name": "ElDropdown", + "label": "下拉菜单", + "categoryId": "nav", + "doc": "https://element-plus.org/zh-CN/component/dropdown.html", + "package": "element-plus", + "props": [ + { + "name": "type", + "defaultValue": "", + "options": [ + "", + "default", + "primary", + "success", + "warning", + "info", + "danger", + "text" + ], + "setters": "SelectSetter" + }, + { + "name": "size", + "defaultValue": "default", + "setters": "SelectSetter", + "options": [ + "large", + "default", + "small" + ] + }, + { + "name": "maxHeight", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "splitButton", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "placement", + "defaultValue": "bottom", + "setters": "SelectSetter", + "options": [ + "top", + "top-start", + "top-end", + "bottom", + "bottom-start", + "bottom-end" + ] + }, + { + "name": "trigger", + "defaultValue": "hover", + "setters": "SelectSetter", + "options": [ + "hover", + "click", + "contextmenu" + ] + }, + { + "name": "triggerKeys", + "title": "指定键盘上哪些按键可以触发操作", + "defaultValue": [ + "Enter", + "Space", + "ArrowDown", + "NumpadEnter" + ], + "setters": "ArraySetter" + }, + { + "name": "hideOnClick", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "showTimeout", + "defaultValue": 150, + "setters": "NumberSetter" + }, + { + "name": "hideTimeout", + "defaultValue": 150, + "setters": "NumberSetter" + }, + { + "name": "role", + "defaultValue": "menu", + "setters": "InputSetter" + }, + { + "name": "tabindex", + "defaultValue": 0, + "setters": [ + "NumberSetter", + "StringSetter" + ] + }, + { + "name": "popperClass", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "popperOptions", + "defaultValue": { + "modifiers": [ + { + "name": "computeStyles", + "options": { + "gpuAcceleration": false + } + } + ] + }, + "setters": "JSONSetter" + }, + { + "name": "teleported", + "label": "teleported", + "title": "是否将下拉列表插入至 body 元素", + "setters": "BooleanSetter", + "defaultValue": true + } + ], + "slots": [ + { + "name": "default" + }, + { + "name": "dropdown" + } + ], + "events": [ + { + "name": "click" + }, + { + "name": "command" + }, + { + "name": "visible-change" + } + ], + "snippet": { + "name": "ElDropdown", + "children": [ + { + "name": "ElButton", + "children": [ + { + "name": "component", + "props": { + "is": "span" + }, + "children": "下拉菜单" + }, + { + "name": "component", + "props": { + "is": "span" + }, + "children": " V" + } + ] + }, + { + "name": "ElDropdownMenu", + "slot": "dropdown", + "children": [ + { + "name": "ElDropdownItem", + "children": "Action 1" + }, + { + "name": "ElDropdownItem", + "children": "Action 2" + }, + { + "name": "ElDropdownItem", + "children": "Action 3" + } + ] + } + ] + } + }, + "ElDropdownMenu": { + "name": "ElDropdownMenu", + "label": "下拉菜单Menu", + "categoryId": "nav", + "package": "element-plus", + "slots": [ + "default" + ] + }, + "ElDropdownItem": { + "name": "ElDropdownItem", + "childIncludes": true, + "label": "下拉菜单项", + "categoryId": "nav", + "package": "element-plus", + "props": [ + { + "name": "command", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter", + "JSONSetter" + ] + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "divided", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "icon", + "defaultValue": "", + "setters": [ + "InputSetter" + ] + } + ], + "slots": [ + "default", + "icon" + ], + "snippet": { + "name": "ElDropdownItem", + "children": "下拉选项" + } + }, + "ElEmpty": { + "name": "ElEmpty", + "label": "空状态", + "doc": "https://element-plus.org/zh-CN/component/empty.html", + "categoryId": "data", + "package": "element-plus", + "props": [ + { + "name": "image", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "imageSize", + "defaultValue": "", + "setters": "NumberSetter" + }, + { + "name": "description", + "defaultValue": "", + "setters": "InputSetter" + } + ], + "slots": [ + { + "name": "default" + }, + { + "name": "image" + }, + { + "name": "description" + } + ] + }, + "ElForm": { + "name": "ElForm", + "label": "表单", + "categoryId": "form", + "doc": "https://element-plus.org/zh-CN/component/form.html", + "package": "element-plus", + "props": [ + { + "name": "model", + "title": "表单数据对象", + "defaultValue": "", + "setters": "ExpressionSetter" + }, + { + "name": "rules", + "defaultValue": "", + "setters": "ExpressionSetter" + }, + { + "name": "inline", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "labelPosition", + "defaultValue": "right", + "options": [ + "left", + "right", + "top" + ], + "setters": "SelectSetter" + }, + { + "name": "labelWidth", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "labelSuffix", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "hideRequiredAsterisk", + "defaultValue": false, + "title": "是否显示必填字段的标签旁边的红色星号", + "setters": "BooleanSetter" + }, + { + "name": "requireAsteriskPosition", + "defaultValue": "left", + "title": "星号的位置", + "options": [ + "left", + "right" + ], + "setters": "SelectSetter" + }, + { + "name": "showMessage", + "defaultValue": true, + "title": "是否显示校验错误信息", + "setters": "BooleanSetter" + }, + { + "name": "inlineMessage", + "defaultValue": false, + "title": "是否以行内形式展示校验信息", + "setters": "BooleanSetter" + }, + { + "name": "statusIcon", + "defaultValue": false, + "title": "是否在输入框中显示校验结果反馈图标", + "setters": "BooleanSetter" + }, + { + "name": "validateOnRuleChange", + "defaultValue": true, + "title": "是否在 rules 属性改变后立即触发一次验证", + "setters": "BooleanSetter" + }, + { + "name": "size", + "defaultValue": "", + "options": [ + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "scrollToError", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "scrollIntoViewOptions", + "defaultValue": "", + "setters": [ + "ExpressionSetter", + "BooleanSetter" + ] + } + ], + "events": [ + { + "name": "validate" + } + ], + "slots": [ + "default" + ], + "snippet": { + "name": "ElForm", + "props": { + "labelWidth": "80px" + }, + "children": [ + { + "name": "ElFormItem", + "props": { + "label": "表单项" + }, + "children": [ + { + "name": "ElInput" + } + ] + }, + { + "name": "ElFormItem", + "props": { + "label": " " + }, + "children": [ + { + "name": "ElButton", + "props": { + "type": "primary" + }, + "children": "确定" + } + ] + } + ] + } + }, + "ElFormItem": { + "name": "ElFormItem", + "label": "表单项", + "categoryId": "form", + "package": "element-plus", + "props": [ + { + "name": "prop", + "defaultValue": "", + "setters": [ + "InputSetter", + "ArraySetter" + ] + }, + { + "name": "label", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "labelPosition", + "defaultValue": "", + "setters": "SelectSetter", + "options": [ + "left", + "right", + "top" + ] + }, + { + "name": "labelWidth", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "required", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "rules", + "defaultValue": "", + "setters": "JSONSetter" + }, + { + "name": "error", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "showMessage", + "defaultValue": true, + "title": "是否显示校验错误信息", + "label": "错误信息", + "setters": "BooleanSetter" + }, + { + "name": "inlineMessage", + "defaultValue": false, + "title": "是否在行内显示校验信息", + "label": "校验信息", + "setters": "BooleanSetter" + }, + { + "name": "size", + "defaultValue": "default", + "options": [ + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "for", + "defaultValue": "", + "setters": "StringSetter" + }, + { + "name": "validateStatus", + "title": "formitem 校验的状态", + "options": [ + "", + "error", + "validating", + "success" + ], + "setters": "SelectSetter" + } + ], + "slots": [ + "default", + "label", + "error" + ], + "snippet": { + "props": { + "label": "表单项" + }, + "children": [ + { + "name": "ElInput" + } + ] + } + }, + "ElImage": { + "name": "ElImage", + "label": "图片", + "categoryId": "data", + "doc": "https://element-plus.org/zh-CN/component/image.html", + "package": "element-plus", + "props": [ + { + "name": "src", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "fit", + "defaultValue": "", + "options": [ + "", + "fill", + "contain", + "cover", + "none", + "scale-down" + ], + "setters": "SelectSetter" + }, + { + "name": "hideOnClickModal", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "loading", + "defaultValue": "", + "options": [ + "eager", + "lazy" + ], + "setters": "SelectSetter" + }, + { + "name": "lazy", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "scrollContainer", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "alt", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "referrerPolicy", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "crossorigin", + "label": "crossorigin", + "title": "原生属性 crossorigin", + "setters": "SelectSetter", + "options": [ + "", + "anonymous", + "use-credentials" + ] + }, + { + "name": "previewSrcList", + "defaultValue": "", + "setters": [ + "ArraySetter", + "JSONSetter" + ] + }, + { + "name": "zIndex", + "defaultValue": "", + "setters": "NumberSetter" + }, + { + "name": "initialIndex", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "close-on-press-escape", + "label": "close-on-press-escape", + "defaultValue": true, + "title": "是否可以通过按下 ESC 关闭 Image Viewer", + "setters": "BooleanSetter" + }, + { + "name": "previewTeleported", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "infinite", + "defaultValue": true, + "setters": "BooleanSetter", + "title": "是否可以无限循环预览" + }, + { + "name": "zoomRate", + "defaultValue": 1.2, + "setters": { + "name": "NumberSetter", + "props": { + "precision": 1 + } + }, + "title": "图像查看器缩放事件的缩放速率" + }, + { + "name": "minScale", + "defaultValue": 0.2, + "setters": { + "name": "NumberSetter", + "props": { + "precision": 1 + } + }, + "title": "图像查看器缩放事件的最小缩放比例" + }, + { + "name": "maxScale", + "defaultValue": 7, + "setters": { + "name": "NumberSetter", + "props": { + "precision": 1 + } + }, + "title": "图像查看器缩放事件的最大缩放比例" + } + ], + "events": [ + "load", + "error", + "switch", + "close", + "show" + ], + "slots": [ + "placeholder", + "error", + "viewer" + ], + "snippet": { + "props": { + "style": { + "width": "100px", + "height": "100px" + }, + "src": "https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg", + "previewSrcList": [ + "https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg", + "https://fuss10.elemecdn.com/1/34/19aa98b1fcb2781c4fba33d850549jpeg.jpeg", + "https://fuss10.elemecdn.com/0/6f/e35ff375812e6b0020b6b4e8f9583jpeg.jpeg", + "https://fuss10.elemecdn.com/9/bb/e27858e973f5d7d3904835f46abbdjpeg.jpeg", + "https://fuss10.elemecdn.com/d/e6/c4d93a3805b3ce3f323f7974e6f78jpeg.jpeg", + "https://fuss10.elemecdn.com/3/28/bbf893f792f03a54408b3b7a7ebf0jpeg.jpeg", + "https://fuss10.elemecdn.com/2/11/6535bcfb26e4c79b48ddde44f4b6fjpeg.jpeg" + ] + } + } + }, + "ElInput": { + "name": "ElInput", + "label": "输入框", + "categoryId": "form", + "doc": "https://element-plus.org/zh-CN/component/input.html", + "props": [ + { + "name": "type", + "defaultValue": "text", + "options": [ + "text", + "textarea" + ], + "setters": [ + "SelectSetter", + "InputSetter" + ] + }, + { + "name": "modelValue", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "maxlength", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "minlength", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "showWordLimit", + "defaultValue": false, + "title": "是否显示输入字数统计,只在 type = \"text\" 或 type = \"textarea\" 时有效", + "label": "字数统计", + "setters": "BooleanSetter" + }, + { + "name": "placeholder", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "clearable", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "formatter", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "parser", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "showPassword", + "defaultValue": false, + "title": "是否显示切换密码图标", + "label": "密码图标", + "setters": "BooleanSetter" + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "size", + "defaultValue": "default", + "setters": "SelectSetter", + "options": [ + "default", + "large", + "small" + ] + }, + { + "name": "prefix-icon", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "suffix-icon", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "rows", + "defaultValue": 2, + "setters": "NumberSetter" + }, + { + "name": "autosize", + "defaultValue": false, + "setters": [ + "BooleanSetter", + "JSONStter" + ] + }, + { + "name": "autocomplete", + "defaultValue": "off", + "setters": "InputSetter" + }, + { + "name": "name", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "readonly", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "max", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "min", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "step", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "resize", + "defaultValue": "", + "options": [ + "none", + "both", + "horizontal", + "vertical" + ], + "setters": "InputSetter" + }, + { + "name": "autofocus", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "form", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "aria-label", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "tabindex", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "validateEvent", + "defaultValue": true, + "title": "输入时是否触发表单的校验", + "label": "表单校验", + "setters": "BooleanSetter" + }, + { + "name": "inputStyle", + "defaultValue": {}, + "setters": [ + "JSONSetter" + ] + } + ], + "events": [ + { + "name": "blur" + }, + { + "name": "focus" + }, + { + "name": "change" + }, + { + "name": "input" + }, + { + "name": "clear" + }, + { + "name": "update:modelValue" + } + ], + "slots": [ + "prefix", + "suffix", + "prepend", + "append" + ], + "package": "element-plus" + }, + "ElInputNumber": { + "name": "ElInputNumber", + "label": "数字输入框", + "categoryId": "form", + "doc": "https://element-plus.org/zh-CN/component/input-number.html", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "defaultValue": "", + "setters": "NumberSetter" + }, + { + "name": "min", + "defaultValue": null, + "setters": "NumberSetter" + }, + { + "name": "max", + "defaultValue": null, + "setters": "NumberSetter" + }, + { + "name": "step", + "defaultValue": 1, + "setters": "NumberSetter" + }, + { + "name": "stepStrictly", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "precision", + "defaultValue": "", + "setters": "NumberSetter" + }, + { + "name": "size", + "defaultValue": "default", + "options": [ + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "readonly", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "controls", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "controlsPosition", + "defaultValue": "", + "title": "控制按钮位置", + "label": "按钮位置", + "options": [ + "", + "right" + ], + "setters": "SelectSetter" + }, + { + "name": "name", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "ariaLabel", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "placeholder", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "valueOnClear", + "defaultValue": "", + "options": [ + "min", + "max" + ], + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "validateEvent", + "defaultValue": true, + "setters": "BooleanSetter" + } + ], + "slots": [ + { + "name": "decrease-icon" + }, + { + "name": "increase-icon" + }, + { + "name": "prefix" + }, + { + "name": "suffix" + } + ], + "events": [ + { + "name": "change" + }, + { + "name": "blur" + }, + { + "name": "focus" + }, + { + "name": "update:modelValue" + } + ] + }, + "ElInputTag": { + "name": "ElInputTag", + "label": "标签输入框", + "categoryId": "form", + "doc": "https://element-plus.org/zh-CN/component/input-tag.html", + "props": [ + { + "name": "modelValue", + "setters": "ArraySetter" + }, + { + "name": "max", + "title": "可添加标签的最大数量", + "setters": "NumberSetter" + }, + { + "name": "tagType", + "title": "标签类型", + "defaultValue": "info", + "setters": "SelectSetter", + "options": [ + "primary", + "success", + "info", + "warning", + "danger" + ] + }, + { + "name": "tagEffect", + "title": "标签效果", + "defaultValue": "light", + "setters": "SelectSetter", + "options": [ + "light", + "dark", + "plain" + ] + }, + { + "name": "trigger", + "title": "触发输入标签的按键", + "defaultValue": "Enter", + "setters": "SelectSetter", + "options": [ + "Enter", + "Space" + ] + }, + { + "name": "draggable", + "title": "是否可以拖动标签", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "size", + "setters": "SelectSetter", + "defaultValue": "default", + "options": [ + "large", + "default", + "small" + ] + }, + { + "name": "clearable", + "title": "是否显示清除按钮", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "disabled", + "title": "是否禁用", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "validateEvent", + "title": "是否触发表单验证", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "readonly", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "autofocus", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "id", + "setters": "StringSetter" + }, + { + "name": "tabindex", + "setters": [ + "StringSetter", + "NumberSetter" + ] + }, + { + "name": "maxlength", + "setters": [ + "StringSetter", + "NumberSetter" + ] + }, + { + "name": "minlength", + "setters": [ + "StringSetter", + "NumberSetter" + ] + }, + { + "name": "placeholder", + "setters": "StringSetter" + }, + { + "name": "autocomplete", + "defaultValue": "off", + "setters": "StringSetter" + }, + { + "name": "ariaLabel", + "setters": "StringSetter" + } + ], + "events": [ + { + "name": "change" + }, + { + "name": "input" + }, + { + "name": "add-tag" + }, + { + "name": "remove-tag" + }, + { + "name": "focus" + }, + { + "name": "blur" + }, + { + "name": "clear" + }, + { + "name": "update:modelValue" + } + ], + "slots": [ + { + "name": "tag" + }, + { + "name": "prefix" + }, + { + "name": "suffix" + } + ], + "snippet": { + "props": { + "modelValue": [ + "1", + "2" + ] + } + }, + "package": "element-plus" + }, + "ElMention": { + "name": "ElMention", + "label": "提及", + "categoryId": "form", + "doc": "https://element-plus.org/zh-CN/component/mention.html#api", + "props": [ + { + "name": "options", + "title": "提及选项列表", + "defaultValue": [], + "setters": "ArraySetter" + }, + { + "name": "prefix", + "title": "触发字段的前缀。 字符串长度必须且只能为 1", + "defaultValue": "@", + "setters": [ + "StringSetter", + "ArraySetter" + ] + }, + { + "name": "split", + "title": "用于拆分提及的字符。 字符串长度必须且只能为 1\t", + "defaultValue": " ", + "setters": "StringSetter" + }, + { + "name": "filterOption", + "title": "定制筛选器选项逻辑", + "setters": [ + "BooleanSetter", + "FunctionSetter" + ] + }, + { + "name": "placement", + "title": "设置弹出位置", + "defaultValue": "bottom", + "options": [ + "top", + "bottom" + ], + "setters": "SelectSetter" + }, + { + "name": "showArrow", + "title": "下拉菜单的内容是否有箭头", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "offset", + "title": "下拉面板偏移量", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "whole", + "title": "当退格键被按下做删除操作时,是否将提及部分作为整体删除", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "checkIsWhole", + "title": "当退格键被按下做删除操作时,检查是否将提及部分作为整体删除", + "setters": "FunctionSetter" + }, + { + "name": "loading", + "title": "提及的下拉面板是否处于加载状态", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "modelValue", + "title": "输入值", + "setters": "StringSetter" + }, + { + "name": "popperClass", + "title": "自定义浮层类名", + "setters": "StringSetter" + }, + { + "name": "popperOptions", + "title": "参数", + "setters": [ + "ObjectSetter", + "JSONSetter" + ] + }, + { + "name": "type", + "defaultValue": "text", + "options": [ + "text", + "textarea" + ], + "setters": [ + "SelectSetter", + "InputSetter" + ] + }, + { + "name": "maxlength", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "minlength", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "showWordLimit", + "defaultValue": false, + "title": "是否显示输入字数统计,只在 type = \"text\" 或 type = \"textarea\" 时有效", + "label": "字数统计", + "setters": "BooleanSetter" + }, + { + "name": "placeholder", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "clearable", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "formatter", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "parser", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "showPassword", + "defaultValue": false, + "title": "是否显示切换密码图标", + "label": "密码图标", + "setters": "BooleanSetter" + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "size", + "defaultValue": "default", + "setters": "SelectSetter", + "options": [ + "default", + "large", + "small" + ] + }, + { + "name": "prefix-icon", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "suffix-icon", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "rows", + "defaultValue": 2, + "setters": "NumberSetter" + }, + { + "name": "autosize", + "defaultValue": false, + "setters": [ + "BooleanSetter", + "JSONStter" + ] + }, + { + "name": "autocomplete", + "defaultValue": "off", + "setters": "InputSetter" + }, + { + "name": "name", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "readonly", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "max", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "min", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "step", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "resize", + "defaultValue": "", + "options": [ + "none", + "both", + "horizontal", + "vertical" + ], + "setters": "InputSetter" + }, + { + "name": "autofocus", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "form", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "aria-label", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "tabindex", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "validateEvent", + "defaultValue": true, + "title": "输入时是否触发表单的校验", + "label": "表单校验", + "setters": "BooleanSetter" + }, + { + "name": "inputStyle", + "defaultValue": {}, + "setters": [ + "JSONSetter" + ] + } + ], + "events": [ + { + "name": "update:modelValue" + }, + { + "name": "search" + }, + { + "name": "select" + }, + { + "name": "input" + }, + { + "name": "blur" + }, + { + "name": "focus" + }, + { + "name": "change" + }, + { + "name": "clear" + } + ], + "slots": [ + "label", + "loading", + "header", + "footer", + "prefix", + "suffix", + "prepend", + "append" + ], + "snippet": { + "props": { + "options": [ + { + "label": "Fuphoenixes", + "value": "Fuphoenixes" + }, + { + "label": "kooriookami", + "value": "kooriookami" + }, + { + "label": "Jeremy", + "value": "Jeremy" + }, + { + "label": "btea", + "value": "btea" + } + ], + "modelValue": "@" + } + }, + "package": "element-plus" + }, + "ElRow": { + "name": "ElRow", + "label": "布局行", + "categoryId": "layout", + "doc": "https://element-plus.org/zh-CN/component/layout.html", + "package": "element-plus", + "props": [ + { + "name": "gutter", + "defaultValue": 0, + "label": "栅格间隔", + "setters": "NumberSetter" + }, + { + "name": "justify", + "defaultValue": "start", + "title": "flex 布局下的水平排列方式", + "options": [ + "start", + "end", + "center", + "space-around", + "space-between", + "space-evenly" + ], + "setters": "SelectSetter" + }, + { + "name": "align", + "defaultValue": "top", + "title": "flex 布局下的垂直排列方式", + "options": [ + "top", + "middle", + "bottom" + ], + "setters": "SelectSetter" + }, + { + "name": "tag", + "defaultValue": "div", + "title": "自定义元素标签", + "setters": "InputSetter" + } + ], + "slots": [ + "default" + ], + "snippet": { + "props": { + "gutter": 10 + }, + "children": [ + { + "name": "ElCol", + "props": { + "span": 6 + }, + "children": [ + { + "name": "component", + "props": { + "is": "div", + "style": { + "height": "50px", + "background": "#ecf5ff" + } + } + } + ], + "directives": [ + { + "name": "vFor", + "value": { + "type": "JSExpression", + "value": "4" + } + } + ] + } + ] + } + }, + "ElCol": { + "name": "ElCol", + "label": "布局列", + "categoryId": "layout", + "package": "element-plus", + "parentIncludes": [ + "ElRow" + ], + "props": [ + { + "name": "span", + "defaultValue": 24, + "setters": "NumberSetter" + }, + { + "name": "offset", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "push", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "pull", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "xs", + "setters": [ + "JSONSetter", + "NumberSetter" + ] + }, + { + "name": "sm", + "setters": [ + "JSONSetter", + "NumberSetter" + ] + }, + { + "name": "md", + "setters": [ + "JSONSetter", + "NumberSetter" + ] + }, + { + "name": "lg", + "setters": [ + "JSONSetter", + "NumberSetter" + ] + }, + { + "name": "xl", + "setters": [ + "JSONSetter", + "NumberSetter" + ] + }, + { + "name": "tag", + "defaultValue": "div", + "title": "自定义元素标签", + "setters": "InputSetter" + } + ], + "slots": [ + "default" + ], + "snippet": { + "props": { + "span": 6 + }, + "children": [ + { + "name": "component", + "props": { + "is": "div", + "style": { + "height": "50px", + "background": "#ecf5ff" + } + }, + "children": "Col" + } + ] + } + }, + "ElLink": { + "name": "ElLink", + "label": "链接", + "categoryId": "base", + "doc": "https://element-plus.org/zh-CN/component/link.html", + "props": [ + { + "name": "type", + "defaultValue": "default", + "setters": "SelectSetter", + "options": [ + "default", + "primary", + "success", + "warning", + "danger", + "info" + ] + }, + { + "name": "underline", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "href", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "target", + "label": "target", + "title": "同原生 target 属性", + "setters": "SelectSetter", + "options": [ + "_blank", + "_parent", + "_self", + "_top" + ], + "defaultValue": "_self" + }, + { + "name": "icon", + "defaultValue": "", + "setters": "IconSetter" + } + ], + "events": [], + "slots": [ + { + "name": "default" + }, + { + "name": "icon" + } + ], + "snippet": { + "children": "链接文本" + }, + "package": "element-plus" + }, + "ElMenu": { + "name": "ElMenu", + "label": "导航菜单", + "doc": "https://element-plus.org/zh-CN/component/menu.html", + "categoryId": "nav", + "package": "element-plus", + "props": [ + { + "name": "mode", + "defaultValue": "vertical", + "setters": "SelectSetter", + "options": [ + "horizontal", + "vertical" + ] + }, + { + "name": "collapse", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "ellipsis", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "ellipsisIcon", + "label": "ellipsisIcon", + "title": "自定义省略图标 (仅在水平模式下可用)", + "setters": "StringSetter" + }, + { + "name": "popperOffset", + "label": "popperOffset", + "title": "弹出层的偏移量(对所有子菜单有效)", + "setters": "NumberSetter", + "defaultValue": 6 + }, + { + "name": "defaultActive", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "defaultOpeneds", + "defaultValue": [], + "setters": "ArraySetter" + }, + { + "name": "uniqueOpened", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "menuTrigger", + "defaultValue": "hover", + "setters": "SelectSetter", + "options": [ + "hover", + "click" + ] + }, + { + "name": "router", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "collapseTransition", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "popperEffect", + "label": "popperEffect", + "title": "Tooltip 主题,内置了 dark / light 两种主题", + "setters": "SelectSetter", + "options": [ + "dark", + "light" + ], + "defaultValue": "dark" + }, + { + "name": "closeOnClickOutside", + "label": "closeOnClickOutside", + "title": "可选,单击外部时是否折叠菜单", + "setters": "BooleanSetter", + "defaultValue": false + }, + { + "name": "popperClass", + "label": "popperClass", + "title": "为 popper 添加类名", + "setters": "StringSetter" + }, + { + "name": "showTimeout", + "label": "showTimeout", + "title": "菜单出现前的延迟", + "setters": "NumberSetter", + "defaultValue": 300 + }, + { + "name": "hideTimeout", + "label": "hideTimeout", + "title": "菜单消失前的延迟", + "setters": "NumberSetter", + "defaultValue": 300 + }, + { + "name": "backgroundColor", + "defaultValue": "#ffffff", + "setters": "ColorSetter" + }, + { + "name": "textColor", + "defaultValue": "#303133", + "setters": "ColorSetter" + }, + { + "name": "activeTextColor", + "defaultValue": "#409EFF", + "setters": "ColorSetter" + } + ], + "events": [ + { + "name": "select" + }, + { + "name": "open" + }, + { + "name": "close" + } + ], + "slots": [ + "default", + "ellipsis-icon" + ], + "snippet": { + "props": { + "mode": "horizontal" + }, + "children": [ + { + "name": "ElMenuItem", + "children": "菜单项一", + "props": { + "index": "1" + } + }, + { + "name": "ElSubMenu", + "props": { + "index": "2" + }, + "children": [ + { + "name": "component", + "slot": "title", + "props": { + "is": "div" + }, + "children": "子菜单" + }, + { + "name": "ElMenuItem", + "children": "子菜单项一", + "props": { + "index": "2-1" + } + }, + { + "name": "ElMenuItem", + "children": "子菜单项二", + "props": { + "index": "2-2" + } + } + ] + }, + { + "name": "ElMenuItem", + "children": "菜单项三", + "props": { + "index": "3" + } + } + ] + } + }, + "ElSubMenu": { + "name": "ElSubMenu", + "label": "导航子菜单", + "categoryId": "nav", + "package": "element-plus", + "props": [ + { + "name": "index", + "label": "index *", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "popperClass", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "showTimeout", + "setters": "NumberSetter" + }, + { + "name": "hideTimeout", + "setters": "NumberSetter" + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "teleported", + "setters": "BooleanSetter" + }, + { + "name": "popperOffset", + "defaultValue": 6, + "setters": "NumberSetter" + }, + { + "name": "expandCloseIcon", + "defaultValue": "", + "setters": [ + "InputSetter" + ] + }, + { + "name": "expandOpenIcon", + "defaultValue": "", + "setters": [ + "InputSetter" + ] + }, + { + "name": "collapseCloseIcon", + "defaultValue": "", + "setters": [ + "InputSetter" + ] + }, + { + "name": "collapseOpenIcon", + "defaultValue": "", + "setters": [ + "InputSetter" + ] + } + ], + "slots": [ + { + "name": "default" + }, + { + "name": "title" + } + ], + "snippet": { + "children": [ + { + "name": "component", + "slot": "title", + "props": { + "is": "div" + }, + "children": "子菜单" + }, + { + "name": "ElMenuItem", + "children": "子菜单项一" + } + ] + } + }, + "ElMenuItem": { + "name": "ElMenuItem", + "label": "导航菜单项", + "categoryId": "nav", + "package": "element-plus", + "props": [ + { + "name": "index", + "defaultValue": null, + "setters": "InputSetter" + }, + { + "name": "route", + "defaultValue": "", + "setters": [ + "StringSetter", + "JSONSetter" + ] + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + } + ], + "events": [ + { + "name": "click" + } + ], + "slots": [ + { + "name": "default" + }, + { + "name": "title" + } + ], + "snippet": { + "children": "菜单项" + } + }, + "ElMenuItemGroup": { + "name": "ElMenuItemGroup", + "label": "导航菜单组", + "categoryId": "nav", + "package": "element-plus", + "props": [ + { + "name": "title", + "defaultValue": "", + "setters": "InputSetter" + } + ], + "slots": [ + { + "name": "default" + }, + { + "name": "title" + } + ], + "snippet": { + "props": { + "title": "分组一" + }, + "children": [ + { + "name": "ElMenuItem", + "children": "子菜单项一" + }, + { + "name": "ElMenuItem", + "children": "子菜单项一" + } + ] + } + }, + "ElPageHeader": { + "name": "ElPageHeader", + "label": "页头", + "doc": "https://element-plus.org/zh-CN/component/page-header.html", + "categoryId": "nav", + "package": "element-plus", + "props": [ + { + "name": "icon", + "defaultValue": "Back", + "setters": "InputSetter" + }, + { + "name": "title", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "content", + "defaultValue": "", + "setters": "InputSetter" + } + ], + "events": [ + { + "name": "back" + } + ], + "slots": [ + { + "name": "icon" + }, + { + "name": "title" + }, + { + "name": "content" + }, + { + "name": "extra" + }, + { + "name": "breadcrumb" + }, + { + "name": "default" + } + ], + "snippet": { + "name": "ElPageHeader", + "children": [ + { + "name": "component", + "slot": "content", + "props": { + "is": "span" + }, + "children": "Title" + } + ] + } + }, + "ElPagination": { + "name": "ElPagination", + "label": "分页", + "categoryId": "data", + "doc": "https://element-plus.org/zh-CN/component/pagination.html", + "package": "element-plus", + "props": [ + { + "name": "size", + "defaultValue": "default", + "options": [ + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "background", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "pageSize", + "defaultValue": 10, + "setters": "NumberSetter" + }, + { + "name": "defaultPageSize", + "label": "默认页大小", + "setters": "NumberSetter" + }, + { + "name": "total", + "title": "总条目数", + "setters": "NumberSetter" + }, + { + "name": "pageCount", + "setters": "NumberSetter" + }, + { + "name": "pagerCount", + "defaultValue": 7, + "setters": "NumberSetter" + }, + { + "name": "currentPage", + "defaultValue": 1, + "setters": "NumberSetter" + }, + { + "name": "defaultCurrentPage", + "label": "默认当前页", + "setters": "NumberSetter" + }, + { + "name": "layout", + "defaultValue": "prev, pager, next, jumper, ->, total", + "setters": "InputSetter" + }, + { + "name": "pageSizes", + "defaultValue": [ + 10, + 20, + 30, + 40, + 50, + 100 + ], + "setters": [ + "ArraySetter", + "JSONSetter" + ] + }, + { + "name": "appendSizeTo", + "title": "下拉框挂载到哪个 DOM 元素", + "setters": "StringSetter" + }, + { + "name": "popperClass", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "prevText", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "prevIcon", + "defaultValue": "ArrowLeft", + "setters": "InputSetter" + }, + { + "name": "nextText", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "nextIcon", + "defaultValue": "ArrowRight", + "setters": "InputSetter" + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "teleported ", + "title": "是否将下拉菜单teleport至 body", + "setters": "BooleanSetter", + "defaultValue": true + }, + { + "name": "hideOnSinglePage", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "small", + "defaultValue": false, + "setters": "BooleanSetter" + } + ], + "events": [ + "size-change", + "current-change", + "change", + "prev-click", + "next-click", + "update:pageSize", + "update:currentPage" + ], + "slots": [ + "default", + "prevIcon", + "nextIcon" + ], + "snippet": { + "props": { + "total": 1000, + "background": true + } + } + }, + "ElPopconfirm": { + "name": "ElPopconfirm", + "label": "气泡确认框", + "categoryId": "other", + "doc": "https://element-plus.org/zh-CN/component/popconfirm.html", + "package": "element-plus", + "props": [ + { + "name": "title", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "confirmButtonText", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "cancelButtonText", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "confirmButtonType", + "defaultValue": "primary", + "setters": "SelectSetter", + "options": [ + "primary", + "success", + "warning", + "danger", + "info", + "text" + ] + }, + { + "name": "confirmButtonType", + "defaultValue": "text", + "setters": "SelectSetter", + "options": [ + "primary", + "success", + "warning", + "danger", + "info", + "text" + ] + }, + { + "name": "icon", + "defaultValue": "QuestionFilled", + "setters": [ + "InputSetter" + ] + }, + { + "name": "iconColor", + "defaultValue": "#f90", + "setters": "ColorSetter" + }, + { + "name": "hideIcon", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "hideAfter", + "defaultValue": 200, + "setters": "NumberSetter" + }, + { + "name": "teleported", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "persistent", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "width", + "defaultValue": "150", + "setters": [ + "NumberSetter", + "InputSetter" + ] + } + ], + "events": [ + { + "name": "confirm" + }, + { + "name": "cancel" + } + ], + "slots": [ + { + "name": "reference" + }, + { + "name": "actions" + } + ], + "snippet": { + "name": "ElPopconfirm", + "children": [ + { + "name": "ElButton", + "children": "气泡确认框", + "slot": "reference" + } + ], + "props": { + "title": "标题内容" + } + } + }, + "ElPopover": { + "name": "ElPopover", + "label": "气泡卡片", + "categoryId": "other", + "doc": "https://element-plus.org/zh-CN/component/popover.html", + "package": "element-plus", + "props": [ + { + "name": "trigger", + "defaultValue": "primary", + "setters": "click", + "options": [ + "click", + "focus", + "hover", + "contextmenu" + ] + }, + { + "name": "title", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "effect", + "defaultValue": "light", + "options": [ + "dark", + "light" + ], + "setters": "SelectSetter" + }, + { + "name": "content", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "width", + "defaultValue": 150, + "setters": [ + "NumberSetter", + "InputSetter" + ] + }, + { + "name": "placement", + "defaultValue": "bottom", + "setters": "SelectSetter", + "options": [ + "top", + "top-start", + "top-end", + "bottom", + "bottom-start", + "bottom-end", + "left", + "left-start", + "left-end", + "right", + "right-start", + "right-end" + ] + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "visible", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "offset", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "transition", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "showArrow", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "popperOptions", + "setters": "JSONSetter" + }, + { + "name": "popperClass", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "popperStyle", + "setters": [ + "InputSetter", + "ObjectSetter" + ] + }, + { + "name": "showAfter", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "hideAfter", + "defaultValue": 200, + "setters": "NumberSetter" + }, + { + "name": "autoClose", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "tabindex", + "defaultValue": "", + "setters": "NumberSetter" + }, + { + "name": "teleported", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "persistent", + "defaultValue": true, + "setters": "BooleanSetter" + } + ], + "events": [ + { + "name": "show" + }, + { + "name": "before-enter" + }, + { + "name": "after-enter" + }, + { + "name": "hide" + }, + { + "name": "before-leave" + }, + { + "name": "after-leave" + }, + { + "name": "update:visible" + } + ], + "slots": [ + { + "name": "default" + }, + { + "name": "reference" + } + ], + "snippet": { + "name": "ElPopover", + "props": { + "placement": "bottom", + "title": "Title", + "width": "200", + "trigger": "hover", + "content": "这是content123!" + }, + "children": [ + { + "name": "ElButton", + "children": "气泡卡片", + "slot": "reference" + } + ] + } + }, + "ElProgress": { + "name": "ElProgress", + "label": "进度条", + "categoryId": "data", + "doc": "https://element-plus.org/zh-CN/component/progress.html", + "package": "element-plus", + "props": [ + { + "name": "percentage", + "defaultValue": 0, + "title": "百分比,必填", + "setters": { + "name": "NumberSetter", + "props": { + "min": 0, + "max": 100 + } + } + }, + { + "name": "type", + "defaultValue": "line", + "options": [ + "line", + "circle", + "dashboard" + ], + "setters": "SelectSetter" + }, + { + "name": "strokeWidth", + "defaultValue": 6, + "setters": "NumberSetter" + }, + { + "name": "textInside", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "status", + "defaultValue": "", + "options": [ + "success", + "exception", + "warning" + ], + "setters": "SelectSetter" + }, + { + "name": "indeterminate", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "duration", + "defaultValue": 3, + "setters": "NumberSetter" + }, + { + "name": "color", + "defaultValue": "", + "setters": [ + "ColorSetter", + "FunctionSetter", + "ArraySetter", + "JSONSetter" + ] + }, + { + "name": "width", + "defaultValue": 126, + "setters": "NumberSetter" + }, + { + "name": "showText", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "strokeLinecap", + "defaultValue": "round", + "options": [ + "butt", + "round", + "square" + ], + "setters": "SelectSetter" + }, + { + "name": "format", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "striped", + "label": "striped", + "title": "在进度条上增加条纹", + "setters": "BooleanSetter", + "defaultValue": false + }, + { + "name": "stripedFlow", + "label": "stripedFlow", + "title": "让进度条上的条纹流动起来", + "setters": "BooleanSetter", + "defaultValue": false + } + ], + "slots": [ + "default" + ], + "snippet": { + "name": "ElProgress", + "props": { + "percentage": 50 + } + } + }, + "ElRadio": { + "name": "ElRadio", + "label": "单选框", + "categoryId": "form", + "doc": "https://element-plus.org/zh-CN/component/radio.html", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter", + "BooleanSetter" + ] + }, + { + "name": "value", + "title": "单选框的值", + "setters": [ + "StringSetter", + "NumberSetter", + "BooleanSetter" + ] + }, + { + "name": "label", + "defaultValue": "", + "title": "单选框的 label 如果value没有值, label则作为value使用", + "setters": [ + "StringSetter", + "NumberSetter", + "BooleanSetter" + ] + }, + { + "name": "disabled", + "title": "是否禁用单选框", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "border", + "title": "是否显示边框", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "size", + "title": "单选框的尺寸", + "defaultValue": "", + "options": [ + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "name", + "title": "原始 name 属性", + "defaultValue": "", + "setters": "StringSetter" + } + ], + "events": [ + { + "name": "change" + }, + { + "name": "update:modelValue" + } + ], + "slots": [ + "default" + ], + "snippet": { + "props": { + "label": "选项一", + "value": "1" + } + } + }, + "ElRadioGroup": { + "name": "ElRadioGroup", + "label": "单选框组", + "categoryId": "form", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "title": "绑定值", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter", + "BooleanSetter" + ] + }, + { + "name": "size", + "title": "单选框按钮或边框按钮的大小", + "defaultValue": "", + "options": [ + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "disabled", + "title": "是否禁用", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "textColor", + "title": "按钮形式的 Radio 激活时的文本颜色", + "defaultValue": "#ffffff", + "setters": "ColorSetter" + }, + { + "name": "fill", + "title": "按钮形式的 Radio 激活时的填充色和边框色", + "defaultValue": "#409EFF", + "setters": "ColorSetter" + }, + { + "name": "validateEvent", + "title": "输入时是否触发表单的校验", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "aria-label", + "title": "与 RadioGroup 中的 aria-label 属性相同", + "setters": "StringSetter" + }, + { + "name": "name", + "label": "name", + "title": "原生 name 属性", + "setters": "StringSetter" + }, + { + "name": "id", + "label": "id", + "title": "原生 id 属性", + "setters": "StringSetter" + } + ], + "events": [ + { + "name": "change" + }, + { + "name": "update:modelValue" + } + ], + "slots": [ + "default" + ], + "snippet": { + "name": "ElRadioGroup", + "children": [ + { + "name": "ElRadio", + "props": { + "label": "选项一", + "value": "1" + } + }, + { + "name": "ElRadio", + "props": { + "label": "选项二", + "value": "2" + } + }, + { + "name": "ElRadio", + "props": { + "label": "选项三", + "value": "3" + } + } + ] + } + }, + "ElRadioButton": { + "name": "ElRadioButton", + "label": "单选框按钮", + "categoryId": "form", + "package": "element-plus", + "props": [ + { + "name": "label", + "title": "单选框的label,如果没有value,label则作为value使用", + "defaultValue": "", + "setters": [ + "StringSetter", + "NumberSetter" + ] + }, + { + "name": "value", + "title": "单选框的值", + "defaultValue": "", + "setters": [ + "StringSetter", + "NumberSetter", + "BooleanSetter" + ] + }, + { + "name": "disabled", + "title": "是否禁用单选框", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "name", + "title": "原生 name 属性", + "defaultValue": "", + "setters": "StringSetter" + } + ], + "slots": [ + "default" + ], + "snippet": { + "children": "按钮选项" + } + }, + "ElRate": { + "name": "ElRate", + "label": "评分", + "childIncludes": false, + "categoryId": "form", + "doc": "https://element-plus.org/zh-CN/component/rate.html", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "max", + "defaultValue": 5, + "setters": "NumberSetter" + }, + { + "name": "size", + "defaultValue": "default", + "options": [ + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "allowHalf", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "lowThreshold", + "defaultValue": 2, + "title": "低分和中等分数的界限值, 值本身被划分在低分中", + "setters": "NumberSetter" + }, + { + "name": "highThreshold", + "defaultValue": 4, + "title": "高分和中等分数的界限值, 值本身被划分在高分中", + "setters": "NumberSetter" + }, + { + "name": "colors", + "defaultValue": [ + "#F7BA2A", + "#F7BA2A", + "#F7BA2A" + ], + "setters": [ + "ArraySetter", + "JSONSetter" + ] + }, + { + "name": "voidColor", + "defaultValue": "#C6D1DE", + "setters": "ColorSetter" + }, + { + "name": "disabledVoidColor", + "defaultValue": "#EFF2F7", + "label": "disabledColor", + "setters": "ColorSetter" + }, + { + "name": "icons", + "defaultValue": [ + "StarFilled", + "StarFilled", + "StarFilled" + ], + "setters": [ + "ArraySetter", + "JSONSetter" + ] + }, + { + "name": "voidIcon", + "defaultValue": "Star", + "setters": "InputSetter" + }, + { + "name": "disabledVoidIcon", + "defaultValue": "StarFilled", + "label": "disabledIcon", + "setters": "InputSetter" + }, + { + "name": "showText", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "showScore", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "textColor", + "defaultValue": "#1F2D3D", + "setters": "ColorSetter" + }, + { + "name": "texts", + "defaultValue": [ + "Extremely bad", + "Disappointed", + "Fair", + "Satisfied", + "Surprise" + ], + "setters": [ + "ArraySetter", + "JSONSetter" + ] + }, + { + "name": "scoreTemplate", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "clearable", + "label": "clearable", + "title": "是否可以重置值为 0", + "setters": "BooleanSetter", + "defaultValue": false + }, + { + "name": "id", + "label": "id", + "title": "原生 id 属性", + "setters": "StringSetter" + }, + { + "name": "ariaLabel", + "title": "和 Rate 的 aria-label 属性保持一致", + "setters": "StringSetter" + }, + { + "name": "label", + "label": "label", + "title": "和 Rate 的 aria-label 属性保持一致", + "setters": "StringSetter" + } + ], + "events": [ + "change", + "update:modelValue" + ] + }, + "ElResult": { + "name": "ElResult", + "label": "结果", + "doc": "https://element-plus.org/zh-CN/component/result.html", + "categoryId": "data", + "package": "element-plus", + "props": [ + { + "name": "title", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "subTitle", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "icon", + "defaultValue": "info", + "options": [ + "success", + "warning", + "info", + "error" + ], + "setters": "SelectSetter" + } + ], + "slots": [ + "icon", + "title", + "sub-title", + "extra" + ], + "snippet": { + "props": { + "icon": "success", + "title": "Success Tip", + "subTitle": "Please follow the instructions" + } + } + }, + "ElScrollbar": { + "name": "ElScrollbar", + "label": "滚动条", + "categoryId": "base", + "doc": "https://element-plus.org/zh-CN/component/scrollbar.html", + "childIncludes": false, + "package": "element-plus", + "props": [ + { + "name": "height", + "defaultValue": "", + "setters": [ + "NumberSetter", + "InputSetter" + ] + }, + { + "name": "maxHeight", + "defaultValue": "", + "setters": [ + "NumberSetter", + "InputSetter" + ] + }, + { + "name": "native", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "wrapStyle", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "wrapClass", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "viewStyle", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "viewClass", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "noresize", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "tag", + "defaultValue": "div", + "setters": "InputSetter" + }, + { + "name": "always", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "minSize", + "defaultValue": 20, + "setters": "NumberSetter" + }, + { + "name": "id", + "label": "id", + "title": "视图id", + "setters": "StringSetter" + }, + { + "name": "role", + "label": "role", + "title": "视图的角色", + "setters": "StringSetter" + }, + { + "name": "ariaLabel", + "label": "ariaLabel", + "title": "视图的 aria-label", + "setters": "StringSetter" + }, + { + "name": "ariaOrientation", + "label": "ariaOrientation", + "title": "视图的 aria-orientation", + "setters": "SelectSetter", + "options": [ + "horizontal", + "vertical" + ] + } + ], + "events": [ + { + "name": "scroll" + } + ], + "snippet": { + "props": { + "style": { + "height": "300px" + } + }, + "children": [ + { + "name": "component", + "props": { + "style": { + "height": "50px", + "margin": "10px", + "background": "#ecf5ff" + } + }, + "directives": [ + { + "name": "vFor", + "value": { + "type": "JSExpression", + "value": "6" + } + } + ] + } + ] + } + }, + "ElSelect": { + "name": "ElSelect", + "label": "选择器", + "doc": "https://element-plus.org/zh-CN/component/select.html", + "categoryId": "form", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "defaultValue": "", + "setters": [ + "NumberSetter", + "InputSetter", + "BooleanSetter" + ] + }, + { + "name": "multiple", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "valueKey", + "defaultValue": "value", + "setters": "InputSetter" + }, + { + "name": "size", + "defaultValue": "default", + "options": [ + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "clearable", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "collapseTags", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "collapseTagsTooltip", + "title": "当鼠标悬停于折叠标签的文本时,是否显示所有选中的标签。 要使用此属性,collapse-tags属性必须设定为 true", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "multipleLimit", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "name", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "effect", + "defaultValue": "light", + "options": [ + "dark", + "light" + ], + "setters": "SelectSetter" + }, + { + "name": "autocomplete", + "defaultValue": "off", + "setters": "InputSetter" + }, + { + "name": "placeholder", + "defaultValue": "Select", + "setters": "InputSetter" + }, + { + "name": "filterable", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "allowCreate", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "filterMethod", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "remote", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "remoteMethod", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "remoteShowSuffix", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "loading", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "loadingText", + "defaultValue": "Loading", + "setters": "InputSetter" + }, + { + "name": "noMatchText", + "defaultValue": "No matching data", + "setters": "InputSetter" + }, + { + "name": "noDataText", + "defaultValue": "No data", + "setters": "InputSetter" + }, + { + "name": "popperClass", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "reserveKeyword", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "defaultFirstOption", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "teleported", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "appendTo", + "title": "下拉框挂载到哪个 DOM 元素", + "defaultValue": "", + "setters": "StringSetter" + }, + { + "name": "persistent", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "automaticDropdown", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "clearIcon", + "defaultValue": "CircleClose", + "setters": "InputSetter" + }, + { + "name": "fitInputWidth", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "suffixIcon", + "defaultValue": "ArrowUp", + "setters": "InputSetter" + }, + { + "name": "tagType", + "defaultValue": "info", + "options": [ + "success", + "info", + "warning", + "danger" + ], + "setters": "SelectSetter" + }, + { + "name": "tagEffect", + "defaultValue": "light", + "options": [ + "", + "light", + "dark", + "plain" + ], + "setters": "SelectSetter" + }, + { + "name": "validateEvent", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "offset", + "defaultValue": 12, + "setters": "NumberSetter" + }, + { + "name": "showArrow", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "placement", + "label": "placement", + "title": "下拉框出现的位置", + "setters": "SelectSetter", + "options": [ + "top", + "top-start", + "top-end", + "bottom", + "bottom-start", + "bottom-end", + "left", + "left-start", + "left-end", + "right", + "right-start", + "right-end" + ], + "defaultValue": "bottom-start" + }, + { + "name": "fallbackPlacements", + "label": "fallbackPlacements", + "title": "dropdown 可用的 positions", + "setters": "ArraySetter", + "defaultValue": [ + "bottom-start", + "top-start", + "right", + "left" + ] + }, + { + "name": "maxCollapseTags", + "label": "maxCollapseTags", + "title": "需要显示的 Tag 的最大数量 只有当 collapse-tags 设置为 true 时才会生效。", + "setters": "NumberSetter", + "defaultValue": 1 + }, + { + "name": "popperOptions", + "label": "popperOptions", + "title": "popper.js 参数", + "setters": "ObjectSetter", + "defaultValue": {} + }, + { + "name": "ariaLabel", + "label": "ariaLabel", + "title": "等价于原生 input aria-label 属性", + "setters": "StringSetter" + }, + { + "name": "emptyValues", + "title": "组件的空值配置", + "setters": "ArraySetter" + }, + { + "name": "valueOnClear", + "title": "清空选项的值 ", + "setters": [ + "StringSetter", + "NumberSetter", + "BooleanSetter", + "FunctionSetter" + ] + }, + { + "name": "suffixTransition", + "title": "下拉菜单显示/消失时后缀图标的动画", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "tabindex", + "title": "input 的 tabindex", + "setters": [ + "StringSetter", + "NumberSetter" + ] + } + ], + "events": [ + "change", + "visible-change", + "remove-tag", + "clear", + "blur", + "focus", + "update:modelValue" + ], + "slots": [ + { + "name": "default" + }, + { + "name": "header" + }, + { + "name": "footer" + }, + { + "name": "prefix" + }, + { + "name": "empty" + }, + { + "name": "tag" + }, + { + "name": "loading" + }, + { + "name": "label" + } + ], + "snippet": { + "children": [ + { + "name": "ElOption", + "props": { + "label": { + "type": "JSExpression", + "value": "`选项${this.context.item}`" + } + }, + "directives": [ + { + "name": "vFor", + "value": { + "type": "JSExpression", + "value": "6" + } + } + ] + } + ] + } + }, + "ElOptionGroup": { + "name": "ElOptionGroup", + "label": "选择器选项组", + "categoryId": "form", + "package": "element-plus", + "parentIncludes": [ + "ElSelect" + ], + "props": [ + { + "name": "label", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + } + ], + "slots": [ + "default" + ], + "snippet": { + "props": { + "label": "分组" + } + } + }, + "ElOption": { + "name": "ElOption", + "label": "选择器选项", + "categoryId": "form", + "package": "element-plus", + "parentIncludes": [ + "ElSelect", + "ElOptionGroup" + ], + "props": [ + { + "name": "value", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter", + "BooleanSetter", + "JSONSetter" + ] + }, + { + "name": "label", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + } + ], + "slots": [ + "default" + ], + "snippet": { + "props": { + "label": "选项" + } + } + }, + "ElSelectV2": { + "name": "ElSelectV2", + "label": "虚拟列表选择器", + "doc": "https://element-plus.org/zh-CN/component/select-v2.html", + "categoryId": "data", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter", + "BooleanSetter", + "JSONSetter" + ] + }, + { + "name": "options", + "label": "options", + "title": "选项的数据源, value 的 key 和 label 可以通过 props自定义.", + "setters": "ArraySetter" + }, + { + "name": "props", + "label": "props", + "title": "配置选项,具体看下表", + "setters": "ObjectSetter" + }, + { + "name": "multiple", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "valueKey", + "defaultValue": "value", + "setters": "InputSetter" + }, + { + "name": "size", + "defaultValue": "", + "options": [ + "", + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "clearable", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "clearIcon", + "label": "clearIcon", + "title": "自定义清除图标", + "setters": [ + "StringSetter", + "ObjectSetter" + ], + "defaultValue": "CircleClose" + }, + { + "name": "collapseTags", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "multipleLimit", + "label": "multipleLimit", + "title": "多选时可被选择的最大数目。 当被设置为0时,可被选择的数目不设限。", + "setters": "NumberSetter", + "defaultValue": 0 + }, + { + "name": "name", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "effect", + "defaultValue": "light", + "options": [ + "dark", + "light" + ], + "setters": [ + "SelectSetter", + "StringSetter" + ] + }, + { + "name": "autocomplete", + "defaultValue": "off", + "setters": "InputSetter" + }, + { + "name": "placeholder", + "defaultValue": "Please select", + "setters": "InputSetter" + }, + { + "name": "filterable", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "allowCreate", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "filterMethod", + "label": "filterMethod", + "title": "自定义筛选方法", + "setters": "FunctionSetter" + }, + { + "name": "loading", + "label": "loading", + "title": "是否从远程加载数据", + "setters": "BooleanSetter", + "defaultValue": false + }, + { + "name": "loadingText", + "label": "loadingText", + "title": "从服务器加载数据时显示的文本,默认为“Loading”", + "setters": "StringSetter", + "defaultValue": "Loading" + }, + { + "name": "reserveKeyword", + "label": "reserveKeyword", + "title": "筛选时,是否在选择选项后保留关键字", + "setters": "BooleanSetter", + "defaultValue": true + }, + { + "name": "noMatchText", + "label": "noMatchText", + "title": "搜索条件无匹配时显示的文字,也可以使用 empty 插槽设置,默认是 “No matching data“", + "setters": "StringSetter" + }, + { + "name": "noDataText", + "label": "noDataText", + "title": "当在没有数据时显示的文字,你同时可以使用empty插槽进行设置。", + "setters": "StringSetter", + "defaultValue": "No Data" + }, + { + "name": "popperClass", + "label": "popperClass", + "title": "选择器下拉菜单的自定义类名", + "setters": "StringSetter", + "defaultValue": "" + }, + { + "name": "teleported", + "label": "teleported", + "title": "是否将下拉列表元素插入 append-to 指向的元素下", + "setters": "BooleanSetter", + "defaultValue": true + }, + { + "name": "appendTo", + "title": "下拉框挂载到哪个 DOM 元素", + "setters": "StringSetter" + }, + { + "name": "persistent", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "popperOptions", + "label": "popperOptions", + "setters": "ObjectSetter", + "defaultValue": {} + }, + { + "name": "automaticDropdown", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "fitInputWidth", + "defaultValue": true, + "setters": [ + "BooleanSetter", + "NumberSetter" + ] + }, + { + "name": "height", + "defaultValue": 274, + "setters": "NumberSetter" + }, + { + "name": "itemHeight", + "label": "itemHeight", + "title": "下拉项的高度", + "setters": "NumberSetter", + "defaultValue": 34 + }, + { + "name": "scrollbarAlwaysOn", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "remote", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "remoteMethod", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "validateEvent", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "offset", + "title": "下拉面板偏移量", + "defaultValue": 12, + "setters": "NumberSetter" + }, + { + "name": "showArrow", + "title": "下拉菜单的内容是否有箭头", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "placement", + "label": "placement", + "title": "下拉框出现的位置", + "setters": "SelectSetter", + "options": [ + "top", + "top-start", + "top-end", + "bottom", + "bottom-start", + "bottom-end", + "left", + "left-start", + "left-end", + "right", + "right-start", + "right-end" + ], + "defaultValue": "bottom-start" + }, + { + "name": "fallbackPlacements", + "setters": "ArraySetter", + "defaultValue": [ + "bottom-start", + "top-start", + "right", + "left" + ] + }, + { + "name": "collapseTagsTooltip", + "setters": "BooleanSetter", + "defaultValue": false + }, + { + "name": "maxCollapseTags", + "setters": "NumberSetter", + "defaultValue": 1 + }, + { + "name": "tagType", + "label": "tagType", + "title": "标签类型", + "setters": "SelectSetter", + "options": [ + "", + "success", + "info", + "warning", + "danger" + ], + "defaultValue": "info" + }, + { + "name": "tagEffect", + "title": "标签效果", + "defaultValue": "light", + "options": [ + "", + "light", + "dark", + "plain" + ], + "setters": "SelectSetter" + }, + { + "name": "ariaLabel", + "label": "ariaLabel", + "title": "等价于原生 input aria-label 属性", + "setters": "StringSetter" + }, + { + "name": "emptyValues", + "title": "组件的空值配置", + "setters": "ArraySetter" + }, + { + "name": "valueOnClear", + "title": "清空选项的值 ", + "setters": [ + "StringSetter", + "NumberSetter", + "BooleanSetter", + "FunctionSetter" + ] + }, + { + "name": "popperAppendToBody", + "title": "是否将弹出框插入至 body 元素 当弹出框的位置出现问题时,你可以尝试将该属性设置为false。", + "setters": "BooleanSetter", + "defaultValue": false + }, + { + "name": "tabindex", + "title": "input 的 tabindex", + "setters": [ + "StringSetter", + "NumberSetter" + ] + } + ], + "events": [ + "change", + "visible-change", + "remove-tag", + "clear", + "blur", + "focus", + "update:modelValue" + ], + "slots": [ + { + "name": "default", + "params": [ + "item" + ] + }, + { + "name": "header" + }, + { + "name": "footer" + }, + { + "name": "prefix" + }, + { + "name": "empty" + }, + { + "name": "tag" + }, + { + "name": "loading" + }, + { + "name": "label" + } + ] + }, + "ElSkeleton": { + "name": "ElSkeleton", + "label": "骨架屏", + "doc": "https://element-plus.org/zh-CN/component/skeleton.html", + "categoryId": "data", + "package": "element-plus", + "props": [ + { + "name": "animated", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "count", + "defaultValue": 1, + "setters": "NumberSetter" + }, + { + "name": "loading", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "rows", + "defaultValue": 3, + "setters": "NumberSetter" + }, + { + "name": "throttle", + "defaultValue": 0, + "setters": [ + "NumberSetter", + "ObjectSetter" + ] + } + ], + "slots": [ + { + "name": "default", + "params": [ + "object" + ] + }, + { + "name": "template", + "params": [ + "object" + ] + } + ] + }, + "ElSkeletonItem": { + "name": "ElSkeletonItem", + "label": "骨架项", + "doc": "https://element-plus.org/zh-CN/component/skeleton.html", + "categoryId": "data", + "package": "element-plus", + "props": [ + { + "name": "variant", + "setters": "SelectSetter", + "options": [ + "p", + "text", + "h1", + "h3", + "caption", + "button", + "image", + "circle", + "rect" + ], + "defaultValue": "text" + } + ], + "snippet": { + "props": { + "variant": "image", + "style": { + "width": "240px", + "height": "240px" + } + } + } + }, + "ElSlider": { + "name": "ElSlider", + "label": "滑块", + "childIncludes": false, + "doc": "https://element-plus.org/zh-CN/component/slider.html", + "categoryId": "form", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "title": "选中项绑定值", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "min", + "title": "最小值", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "max", + "title": "最大值", + "defaultValue": 100, + "setters": "NumberSetter" + }, + { + "name": "disabled", + "title": "是否禁用", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "step", + "title": "步长", + "defaultValue": 1, + "setters": "NumberSetter" + }, + { + "name": "showInput", + "title": "是否显示输入框,仅在非范围选择时有效", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "showInputControls", + "title": "在显示输入框的情况下,是否显示输入框的控制按钮", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "size", + "defaultValue": "default", + "title": "slider 包装器的大小,垂直模式下该属性不可用", + "options": [ + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "inputSize", + "title": "输入框的大小,如果设置了 size 属性,默认值自动取 size", + "defaultValue": "default", + "options": [ + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "showStops", + "defaultValue": false, + "title": "是否显示间断点", + "setters": "BooleanSetter" + }, + { + "name": "showTooltip", + "defaultValue": true, + "title": "是否显示提示信息", + "setters": "BooleanSetter" + }, + { + "name": "formatTooltip", + "title": "格式化提示信息", + "setters": "FunctionSetter" + }, + { + "name": "range", + "title": "是否开启选择范围", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "vertical", + "defaultValue": false, + "title": "垂直模式", + "setters": "BooleanSetter" + }, + { + "name": "height", + "defaultValue": "", + "title": "滑块高度,垂直模式必填", + "setters": "InputSetter" + }, + { + "name": "aria-label", + "title": "原生 aria-label属性", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "rangeStartLabel", + "defaultValue": "", + "title": "当 range 为true时,屏幕阅读器标签开始的标记", + "setters": "InputSetter" + }, + { + "name": "rangeEndLabel", + "defaultValue": "", + "title": "当 range 为true时,屏幕阅读器标签结尾的标记", + "setters": "InputSetter" + }, + { + "name": "formatValueText", + "title": "显示屏幕阅读器的 aria-valuenow 属性的格式", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "debounce", + "defaultValue": 300, + "title": "输入时的去抖延迟,毫秒,仅在 show-input 等于 true 时有效", + "setters": "NumberSetter" + }, + { + "name": "tooltipClass", + "title": "tooltip 的自定义类名", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "placement", + "title": "Tooltip 出现的位置", + "defaultValue": "top", + "options": [ + "top", + "top-start", + "top-end", + "bottom", + "bottom-start", + "bottom-end", + "left", + "left-start", + "left-end", + "right", + "right-start", + "right-end" + ], + "setters": "SelectSetter" + }, + { + "name": "marks", + "title": "标记, key 的类型必须为 number 且取值在闭区间 [min, max] 内,每个标记可以单独设置样式", + "defaultValue": "", + "setters": "JSONSetter" + }, + { + "name": "validateEvent", + "title": "输入时是否触发表单的校验", + "defaultValue": true, + "setters": "BooleanSetter" + } + ], + "events": [ + "change", + "input", + "update:modelValue" + ] + }, + "ElSpace": { + "name": "ElSpace", + "label": "间距", + "categoryId": "base", + "doc": "https://element-plus.org/zh-CN/component/space.html", + "package": "element-plus", + "props": [ + { + "name": "alignment", + "defaultValue": "center", + "title": "对齐的方式", + "options": [ + "normal", + "stretch", + "center", + "start", + "end", + "flex-start", + "flex-end", + "baseline", + "first baseline", + "last baseline", + "safe center", + "unsafe center", + "inherit", + "initial", + "revert", + "revert-layer", + "unset" + ], + "setters": "SelectSetter" + }, + { + "name": "class", + "title": "className", + "defaultValue": "", + "setters": [ + "StringSetter", + "ObjectSetter", + "ArraySetter" + ] + }, + { + "name": "direction", + "title": "排列的方向", + "defaultValue": "horizontal", + "options": [ + "vertical", + "horizontal" + ], + "setters": "SelectSetter" + }, + { + "name": "prefixCls", + "title": "给 space-items 的类名前缀", + "defaultValue": "", + "setters": "StringSetter" + }, + { + "name": "style", + "title": "额外样式", + "defaultValue": "", + "setters": [ + "StringSetter", + "JSONSetter" + ] + }, + { + "name": "spacer", + "title": "间隔符", + "defaultValue": "", + "setters": [ + "StringSetter", + "NumberSetter" + ] + }, + { + "name": "size", + "title": "间隔大小", + "defaultValue": "small", + "setters": [ + "SelectSetter", + "NumberSetter", + "ArraySetter" + ], + "options": [ + "large", + "default", + "small" + ] + }, + { + "name": "wrap", + "title": "设置是否自动折行", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "fill", + "title": "子元素是否填充父容器", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "fillRatio", + "title": "填充父容器的比例", + "defaultValue": 100, + "setters": "NumberSetter" + } + ], + "slots": [ + "default", + "spacer" + ], + "snippet": { + "props": { + "fill": true, + "style": { + "width": "100%" + } + }, + "children": [ + { + "name": "ElCard" + }, + { + "name": "ElCard" + } + ] + } + }, + "ElStatistic": { + "name": "ElStatistic", + "label": "统计组件", + "doc": "https://element-plus.org/zh-CN/component/statistic.html", + "categoryId": "data", + "package": "element-plus", + "props": [ + { + "name": "value", + "label": "value", + "title": "数字内容", + "setters": "NumberSetter", + "defaultValue": 0 + }, + { + "name": "decimalSeparator", + "label": "decimalSeparator", + "title": "设置小数点符号", + "setters": "StringSetter", + "defaultValue": "." + }, + { + "name": "formatter", + "label": "formatter", + "title": "自定义数字格式化", + "setters": "FunctionSetter" + }, + { + "name": "groupSeparator", + "label": "groupSeparator", + "title": "设置千分位标识符", + "setters": "StringSetter", + "defaultValue": "," + }, + { + "name": "precision", + "label": "precision", + "title": "数字精度", + "setters": "NumberSetter", + "defaultValue": 0 + }, + { + "name": "prefix", + "label": "prefix", + "title": "设置数字的前缀", + "setters": "StringSetter" + }, + { + "name": "suffix", + "label": "suffix", + "title": "设置数字的后缀", + "setters": "StringSetter" + }, + { + "name": "title", + "label": "title", + "title": "数字标题", + "setters": "StringSetter" + }, + { + "name": "valueStyle", + "label": "valueStyle", + "title": "数字样式", + "setters": [ + "StringSetter", + "ObjectSetter", + "ArraySetter" + ] + } + ], + "slots": [ + "prefix", + "suffix", + "title" + ], + "snippet": { + "props": { + "title": "Daily active users", + "value": "268500" + } + } + }, + "ElCountdown": { + "name": "ElCountdown", + "label": "倒计时", + "doc": "https://element-plus.org/zh-CN/component/statistic.html", + "categoryId": "data", + "package": "element-plus", + "props": [ + { + "name": "value", + "label": "value", + "title": "目标时间", + "setters": [ + "NumberSetter" + ] + }, + { + "name": "format", + "label": "format", + "title": "格式化倒计时", + "setters": "StringSetter", + "defaultValue": "HH:mm:ss" + }, + { + "name": "prefix", + "label": "prefix", + "title": "设置倒计时前缀", + "setters": "StringSetter" + }, + { + "name": "suffix", + "label": "suffix", + "title": "设置倒计时的后缀", + "setters": "StringSetter" + }, + { + "name": "title", + "label": "title", + "title": "倒计时标题", + "setters": "StringSetter" + }, + { + "name": "valueStyle", + "label": "valueStyle", + "title": "倒计时值的样式", + "setters": [ + "StringSetter", + "ObjectSetter", + "ArraySetter" + ] + } + ], + "events": [ + "change", + "finish" + ], + "slots": [ + "prefix", + "suffix", + "title" + ], + "snippet": { + "props": { + "title": "Start to grab", + "value": 1792134444342 + } + } + }, + "ElSegmented": { + "name": "ElSegmented", + "label": "分段控制器", + "doc": "https://element-plus.org/zh-CN/component/segmented.html", + "categoryId": "data", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "title": "绑定值", + "setters": [ + "StringSetter", + "NumberSetter", + "BooleanSetter" + ] + }, + { + "name": "options", + "title": "选项的数据", + "defaultValue": [], + "setters": "ArraySetter" + }, + { + "name": "size", + "defaultValue": "", + "options": [ + "", + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "block", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "validate-event", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "name", + "setters": "StringSetter" + }, + { + "name": "id", + "setters": "StringSetter" + }, + { + "name": "ariaLabel", + "setters": "StringSetter" + }, + { + "name": "direction", + "defaultValue": "horizontal", + "options": [ + "horizontal", + "vertical" + ], + "setters": "SelectSetter" + } + ], + "events": [ + "change", + "update:modelValue" + ], + "slots": [ + "default" + ], + "snippet": { + "props": { + "modelValue": "Mom", + "options": [ + "Mon", + "Tue", + "Wed", + "Thu", + "Fri", + "Sat", + "Sun" + ] + } + } + }, + "ElSteps": { + "name": "ElSteps", + "label": "步骤条", + "categoryId": "nav", + "doc": "https://element-plus.org/zh-CN/component/steps.html", + "package": "element-plus", + "props": [ + { + "name": "space", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "direction", + "defaultValue": "horizontal", + "setters": "SelectSetter", + "options": [ + "vertical", + "horizontal" + ] + }, + { + "name": "active", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "processStatus", + "defaultValue": "process", + "setters": "SelectSetter", + "options": [ + "wait", + "process", + "finish", + "error", + "success" + ] + }, + { + "name": "finishStatus", + "defaultValue": "finish", + "setters": "SelectSetter", + "options": [ + "wait", + "process", + "finish", + "error", + "success" + ] + }, + { + "name": "alignCenter", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "simple", + "defaultValue": false, + "setters": "BooleanSetter" + } + ], + "slots": [ + "default" + ], + "snippet": { + "name": "ElSteps", + "children": [ + { + "name": "ElStep", + "props": { + "title": "Step 1" + } + }, + { + "name": "ElStep", + "props": { + "title": "Step 2" + } + }, + { + "name": "ElStep", + "props": { + "title": "Step 3" + } + } + ], + "props": { + "active": 0, + "finishStatus": "success" + } + } + }, + "ElStep": { + "name": "ElStep", + "label": "步骤项", + "categoryId": "nav", + "package": "element-plus", + "props": [ + { + "name": "title", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "description", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "icon", + "defaultValue": "", + "setters": [ + "InputSetter" + ] + }, + { + "name": "status", + "defaultValue": "", + "setters": "SelectSetter", + "options": [ + "wait", + "process", + "finish", + "error", + "success" + ] + } + ], + "slots": [ + { + "name": "icon" + }, + { + "name": "title" + }, + { + "name": "description" + } + ], + "snippet": { + "props": { + "title": "步骤" + } + } + }, + "ElSwitch": { + "name": "ElSwitch", + "label": "开关", + "doc": "https://element-plus.org/zh-CN/component/switch.html", + "categoryId": "form", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "defaultValue": false, + "setters": [ + "BooleanSetter", + "NumberSetter", + "InputSetter" + ] + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "loading", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "size", + "defaultValue": "default", + "options": [ + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "width", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "inlinePrompt", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "activeIcon", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "inactiveIcon", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "activeActionIcon", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "inactiveActionIcon", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "activeText", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "inactiveText", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "activeValue", + "defaultValue": true, + "setters": [ + "BooleanSetter", + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "inactiveValue", + "defaultValue": false, + "setters": [ + "BooleanSetter", + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "name", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "validateEvent", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "beforeChange", + "setters": [ + "BooleanSetter", + "FunctionSetter" + ] + }, + { + "name": "id", + "defaultValue": "", + "setters": "StringSetter" + }, + { + "name": "tabindex", + "defaultValue": "", + "setters": [ + "StringSetter", + "NumberSetter" + ] + }, + { + "name": "ariaLabel", + "defaultValue": "", + "setters": "StringSetter" + }, + { + "name": "activeColor", + "defaultValue": "", + "setters": "ColorSetter" + }, + { + "name": "inactiveColor", + "defaultValue": "", + "setters": "ColorSetter" + }, + { + "name": "borderColor", + "defaultValue": "", + "setters": "ColorSetter" + }, + { + "name": "label", + "defaultValue": "", + "setters": "StringSetter" + } + ], + "events": [ + "change", + "update:modelValue" + ], + "slots": [ + "active-action", + "inactive-action" + ] + }, + "ElTable": { + "name": "ElTable", + "label": "表格", + "doc": "https://element-plus.org/zh-CN/component/table.html", + "categoryId": "data", + "package": "element-plus", + "props": [ + { + "name": "data", + "defaultValue": "", + "setters": [ + "ArraySetter", + "JSONSetter" + ] + }, + { + "name": "height", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "maxHeight", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "stripe", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "border", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "size", + "defaultValue": "", + "options": [ + "", + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "fit", + "defaultValue": true, + "title": "列的宽度是否自撑开", + "setters": "BooleanSetter" + }, + { + "name": "showHeader", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "highlightCurrentRow", + "defaultValue": false, + "label": "是否高亮", + "setters": "BooleanSetter" + }, + { + "name": "currentRowKey", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "rowClassName", + "defaultValue": "", + "setters": [ + "InputSetter", + "FunctionSetter" + ] + }, + { + "name": "rowStyle", + "defaultValue": "", + "setters": [ + "JSONSetter", + "FunctionSetter" + ] + }, + { + "name": "cellClassName", + "defaultValue": "", + "setters": [ + "InputSetter", + "FunctionSetter" + ] + }, + { + "name": "cellStyle", + "defaultValue": "", + "setters": [ + "JSONSetter", + "FunctionSetter" + ] + }, + { + "name": "headerRowClassName", + "defaultValue": "", + "title": "表头行类名", + "label": "RowClassName", + "setters": [ + "InputSetter", + "FunctionSetter" + ] + }, + { + "name": "headerRowStyle", + "defaultValue": "", + "setters": [ + "JSONSetter", + "FunctionSetter" + ] + }, + { + "name": "headerCellClassName", + "defaultValue": "", + "title": "表头单元格类名", + "label": "CellClassName", + "setters": [ + "InputSetter", + "FunctionSetter" + ] + }, + { + "name": "headerCellStyle", + "defaultValue": "", + "setters": [ + "JSONSetter", + "FunctionSetter" + ] + }, + { + "name": "rowKey", + "defaultValue": "", + "setters": [ + "InputSetter", + "FunctionSetter" + ] + }, + { + "name": "emptyText", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "defaultExpandAll", + "defaultValue": false, + "label": "展开所有", + "setters": "BooleanSetter" + }, + { + "name": "expand-row-keys", + "defaultValue": "", + "title": "可以通过该属性设置 Table 目前的展开行,需要设置 row-key 属性才能使用,该属性为展开行的 keys 数组。", + "label": "row-keys", + "setters": "JSONSetter" + }, + { + "name": "default-sort", + "defaultValue": "", + "setters": "JSONSetter" + }, + { + "name": "tooltip-effect", + "defaultValue": "dark", + "options": [ + "dark", + "light" + ], + "setters": "SelectSetter" + }, + { + "name": "tooltip-options", + "defaultValue": { + "enterable": true, + "placement": "top", + "showArrow": true, + "hideAfter": 200, + "popperOptions": { + "strategy": "fixed" + } + }, + "setters": "ObjectSetter" + }, + { + "name": "show-summary", + "defaultValue": false, + "label": "显示合计行", + "setters": "BooleanSetter" + }, + { + "name": "sum-text", + "defaultValue": "合计", + "setters": "InputSetter" + }, + { + "name": "summary-method", + "defaultValue": "", + "label": "合计计算方法", + "setters": "FunctionSetter" + }, + { + "name": "span-method", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "select-on-indeterminate", + "defaultValue": true, + "title": "在多选表格中,当仅有部分行被选中时,点击表头的多选框时的行为。 若为 true,则选中所有行;若为 false,则取消选择所有行", + "label": "indeterminate", + "setters": "BooleanSetter" + }, + { + "name": "indent", + "defaultValue": 16, + "setters": "NumberSetter" + }, + { + "name": "lazy", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "load", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "tree-props", + "defaultValue": { + "hasChildren": "hasChildren", + "children": "children" + }, + "setters": "JSONSetter" + }, + { + "name": "tableLayout", + "defaultValue": "fixed", + "title": "设置表格单元、行和列的布局方式", + "options": [ + "fixed", + "auto" + ], + "setters": "SelectSetter" + }, + { + "name": "scrollbar-always-on", + "defaultValue": false, + "label": "显示滚动条", + "setters": "BooleanSetter" + }, + { + "name": "show-overflow-tooltip", + "setters": [ + "BooleanSetter", + "JSONSetter" + ] + }, + { + "name": "flexible", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "scrollbarTabindex", + "setters": [ + "StringSetter", + "NumberSetter" + ] + }, + { + "name": "allowDragLastColumn", + "defaultValue": true, + "setters": "BooleanSetter" + } + ], + "events": [ + "select", + "select-all", + "selection-change", + "cell-mouse-enter", + "cell-mouse-leave", + "cell-click", + "cell-dblclick", + "cell-contextmenu", + "row-click", + "row-contextmenu", + "row-dblclick", + "header-click", + "header-contextmenu", + "sort-change", + "filter-change", + "current-change", + "header-dragend", + "expand-change", + "scroll" + ], + "slots": [ + "default", + "append", + "empty" + ], + "snippet": { + "name": "ElTable", + "props": { + "data": [ + { + "date": "2016-05-03", + "name": "Tom", + "address": "No. 189, Grove St, Los Angeles" + }, + { + "date": "2016-05-02", + "name": "Tom", + "address": "No. 189, Grove St, Los Angeles" + }, + { + "date": "2016-05-04", + "name": "Tom", + "address": "No. 189, Grove St, Los Angeles" + }, + { + "date": "2016-05-01", + "name": "Tom", + "address": "No. 189, Grove St, Los Angeles" + } + ] + }, + "children": [ + { + "name": "ElTableColumn", + "props": { + "prop": "date", + "label": "Date" + } + }, + { + "name": "ElTableColumn", + "props": { + "prop": "name", + "label": "Name" + } + }, + { + "name": "ElTableColumn", + "props": { + "prop": "address", + "label": "Address" + } + } + ] + } + }, + "ElTableColumn": { + "name": "ElTableColumn", + "label": "表头", + "categoryId": "data", + "package": "element-plus", + "props": [ + { + "name": "type", + "defaultValue": "default", + "options": [ + "default", + "selection", + "index", + "expand" + ], + "setters": "SelectSetter" + }, + { + "name": "index", + "defaultValue": 0, + "title": "如果设置了 type=index,可以通过传递 index 属性来自定义索引", + "setters": [ + "NumberSetter", + "FunctionSetter" + ] + }, + { + "name": "label", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "column-key", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "prop", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "width", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "min-width", + "defaultValue": "", + "title": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "fixed", + "defaultValue": "", + "options": [ + "left", + "right" + ], + "setters": [ + "SelectSetter", + "BooleanSetter" + ] + }, + { + "name": "render-header", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "sortable", + "defaultValue": false, + "options": [ + "", + "custom" + ], + "setters": [ + "BooleanSetter", + "SelectSetter" + ] + }, + { + "name": "sort-method", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "sort-by", + "defaultValue": "", + "setters": [ + "InputSetter", + "FunctionSetter", + "JSONSetter" + ] + }, + { + "name": "sort-orders", + "defaultValue": [ + "ascending", + "descending", + null + ], + "title": "数据在排序时所使用排序策略的轮转顺序,仅当 sortable 为 true 时有效。 需传入一个数组,随着用户点击表头,该列依次按照数组中元素的顺序进行排序", + "setters": "JSONSetter" + }, + { + "name": "resizable", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "formatter", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "show-overflow-tooltip", + "title": "当内容过长被隐藏时显示 tooltip", + "setters": [ + "BooleanSetter", + "JSONSetter" + ] + }, + { + "name": "align", + "defaultValue": "left", + "options": [ + "left", + "center", + "right" + ], + "setters": "SelectSetter" + }, + { + "name": "header-align", + "defaultValue": "left", + "options": [ + "left", + "center", + "right" + ], + "setters": "SelectSetter" + }, + { + "name": "class-name", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "label-class-name", + "defaultValue": "", + "title": "当前列标题的自定义类名", + "setters": "InputSetter" + }, + { + "name": "selectable", + "setters": "FunctionSetter" + }, + { + "name": "reserve-selection", + "defaultValue": false, + "title": "仅对 type=selection 的列有效, 请注意, 需指定 row-key 来让这个功能生效。", + "setters": "BooleanSetter" + }, + { + "name": "filters", + "defaultValue": "", + "setters": "JSONSetter" + }, + { + "name": "filter-placement", + "defaultValue": "", + "title": "过滤弹出框的定位,与 Tooltip 的 placement 属性相同", + "setters": "InputSetter" + }, + { + "name": "filter-class-name", + "defaultValue": "", + "setters": "StringSetter" + }, + { + "name": "filter-multiple", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "filter-method", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "filtered-value", + "defaultValue": "", + "setters": "JSONSetter" + } + ], + "slots": [ + { + "name": "default", + "params": [ + "row", + "column", + "$index" + ] + }, + { + "name": "header", + "params": [ + "column", + "$index" + ] + }, + { + "name": "filter-icon", + "params": [ + "filterOpened" + ] + } + ], + "snippet": { + "props": { + "label": "列名" + } + } + }, + "ElTabs": { + "name": "ElTabs", + "label": "标签页", + "doc": "https://element-plus.org/zh-CN/component/tabs.html", + "categoryId": "nav", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "type", + "setters": [ + { + "name": "SelectSetter", + "props": { + "closable": true + } + } + ], + "defaultValue": "", + "options": [ + "", + "card", + "border-card" + ] + }, + { + "name": "closable", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "addable", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "editable", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "tabPosition", + "defaultValue": "top", + "setters": "SelectSetter", + "options": [ + "top", + "right", + "bottom", + "left" + ] + }, + { + "name": "stretch", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "beforeLeave", + "defaultValue": "", + "setters": "FunctionSetter" + } + ], + "events": [ + { + "name": "tab-click" + }, + { + "name": "tab-change" + }, + { + "name": "tab-remove" + }, + { + "name": "tab-add" + }, + { + "name": "edit" + }, + { + "name": "update:modelValue" + } + ], + "slots": [ + "default", + "addIcon", + "add-icon" + ], + "snippet": { + "props": { + "modelValue": "1" + }, + "children": [ + { + "name": "ElTabPane", + "children": "面板一内容", + "props": { + "label": "面板一", + "name": "1" + } + }, + { + "name": "ElTabPane", + "children": "面板二内容", + "props": { + "label": "面板二", + "name": "2" + } + }, + { + "name": "ElTabPane", + "children": "面板三内容", + "props": { + "label": "面板三", + "name": "3" + } + } + ] + } + }, + "ElTabPane": { + "name": "ElTabPane", + "label": "标签页面板", + "categoryId": "nav", + "package": "element-plus", + "props": [ + { + "name": "label", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "name", + "defaultValue": "", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "closable", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "lazy", + "defaultValue": false, + "setters": "BooleanSetter" + } + ], + "slots": [ + { + "name": "default" + }, + { + "name": "label" + } + ], + "snippet": { + "props": { + "label": "面板标题" + }, + "children": "面板内容" + } + }, + "ElTag": { + "name": "ElTag", + "label": "标签", + "doc": "https://element-plus.org/zh-CN/component/tag.html", + "categoryId": "data", + "package": "element-plus", + "props": [ + { + "name": "type", + "defaultValue": "primary", + "options": [ + "primary", + "success", + "info", + "warning", + "danger" + ], + "setters": "SelectSetter" + }, + { + "name": "closable", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "disable-transitions", + "defaultValue": false, + "label": "渐变动画", + "setters": "BooleanSetter" + }, + { + "name": "hit", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "color", + "defaultValue": "", + "setters": "ColorSetter" + }, + { + "name": "size", + "defaultValue": "default", + "options": [ + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "effect", + "defaultValue": "light", + "options": [ + "dark", + "light", + "plain" + ], + "setters": "SelectSetter" + }, + { + "name": "round", + "defaultValue": false, + "setters": "BooleanSetter" + } + ], + "events": [ + "click", + "close" + ], + "slots": [ + "default" + ], + "snippet": { + "children": "标签一" + } + }, + "ElCheckTag": { + "name": "ElCheckTag", + "label": "可选中的标签", + "categoryId": "data", + "package": "element-plus", + "props": [ + { + "name": "checked", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "type", + "label": "type", + "title": "CheckTag 类型", + "setters": "SelectSetter", + "options": [ + "primary", + "success", + "info", + "warning", + "danger" + ], + "defaultValue": "primary" + } + ], + "events": [ + "change", + "update:checked" + ], + "slots": [ + "default" + ], + "snippet": { + "children": "标签一" + } + }, + "ElText": { + "name": "ElText", + "label": "文本", + "categoryId": "base", + "doc": "https://element-plus.org/zh-CN/component/text.html", + "props": [ + { + "name": "type", + "label": "type", + "title": "类型", + "setters": "SelectSetter", + "options": [ + "primary", + "success", + "warning", + "danger", + "info" + ] + }, + { + "name": "size", + "label": "size", + "title": "大小", + "setters": "SelectSetter", + "options": [ + "large", + "default", + "small" + ], + "defaultValue": "default" + }, + { + "name": "truncated", + "label": "truncated", + "title": "显示省略号", + "setters": "BooleanSetter", + "defaultValue": false + }, + { + "name": "lineClamp", + "label": "lineClamp", + "title": "最大行数", + "setters": [ + "StringSetter", + "NumberSetter" + ] + }, + { + "name": "tag", + "label": "tag", + "title": "自定义元素标签", + "setters": "StringSetter", + "defaultValue": "span" + } + ], + "slots": [ + "default" + ], + "snippet": { + "props": { + "type": "primary" + }, + "children": "这是一段Primary颜色的文本" + }, + "package": "element-plus" + }, + "ElTimeline": { + "name": "ElTimeline", + "label": "时间线", + "doc": "https://element-plus.org/zh-CN/component/timeline.html", + "categoryId": "form", + "package": "element-plus", + "slots": [ + "default" + ], + "snippet": { + "name": "ElTimeline", + "children": [ + { + "name": "ElTimelineItem", + "children": "Event start", + "props": { + "timestamp": "2018-04-15", + "size": "large", + "type": "primary", + "icon": "MoreFilled" + } + }, + { + "name": "ElTimelineItem", + "children": "Approved", + "props": { + "timestamp": "2018-04-13", + "color": "#0bbd87" + } + }, + { + "name": "ElTimelineItem", + "children": "Success", + "props": { + "timestamp": "2018-04-11", + "hollow": true, + "icon": "el-icon-more" + } + } + ] + } + }, + "ElTimelineItem": { + "name": "ElTimelineItem", + "label": "时间线子项", + "categoryId": "form", + "package": "element-plus", + "props": [ + { + "name": "timestamp", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "hide-timestamp", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "center", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "placement", + "defaultValue": "bottom", + "options": [ + "top", + "bottom" + ], + "setters": "SelectSetter" + }, + { + "name": "type", + "defaultValue": "", + "options": [ + "primary", + "success", + "warning", + "danger", + "info" + ], + "setters": "SelectSetter" + }, + { + "name": "color", + "defaultValue": "", + "options": [ + "hsl", + "hsv", + "hex", + "rgb" + ], + "setters": "SelectSetter" + }, + { + "name": "size", + "defaultValue": "normal", + "options": [ + "normal", + "large" + ], + "setters": "SelectSetter" + }, + { + "name": "icon", + "defaultValue": "", + "setters": "IconSetter" + }, + { + "name": "hollow", + "defaultValue": false, + "setters": "BooleanSetter" + } + ], + "slots": [ + "default", + "dot" + ] + }, + "ElTimePicker": { + "name": "ElTimePicker", + "label": "时间选择器", + "childIncludes": false, + "doc": "https://element-plus.org/zh-CN/component/time-picker.html", + "categoryId": "form", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "defaultValue": "", + "setters": [ + "NumberSetter", + "StringSetter", + "ArraySetter", + "ExpressionSetter" + ] + }, + { + "name": "readonly", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "editable", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "clearable", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "size", + "defaultValue": "default", + "options": [ + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "placeholder", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "startPlaceholder", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "endPlaceholder", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "isRange", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "arrowControl", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "popperClass", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "rangeSeparator", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "format", + "defaultValue": "HH:mm:ss", + "setters": "InputSetter" + }, + { + "name": "defaultValue", + "defaultValue": "", + "setters": [ + "InputSetter", + "ExpressionSetter" + ] + }, + { + "name": "valueFormat", + "title": "可选,绑定值的格式。 不指定则绑定值为 Date 对象", + "defaultValue": "", + "setters": "StringSetter" + }, + { + "name": "id", + "defaultValue": "", + "setters": [ + "InputSetter" + ] + }, + { + "name": "name", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "ariaLabel", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "prefixIcon", + "defaultValue": "Clock", + "setters": "InputSetter" + }, + { + "name": "clearIcon", + "defaultValue": "CircleClose", + "setters": "InputSetter" + }, + { + "name": "disabledHours", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "disabledMinutes", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "disabledSeconds", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "teleported", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "tabindex", + "label": "tabindex", + "title": "输入框的 tabindex", + "setters": [ + "StringSetter", + "NumberSetter" + ], + "defaultValue": 0 + }, + { + "name": "emptyValues", + "title": "组件的空值配置", + "setters": "ArraySetter" + }, + { + "name": "valueOnClear", + "title": "清空选项的值", + "setters": [ + "StringSetter", + "NumberSetter", + "BooleanSetter", + "FunctionSetter" + ] + } + ], + "events": [ + "change", + "blur", + "focus", + "clear", + "visible-change", + "update:modelValue" + ] + }, + "ElTimeSelect": { + "name": "ElTimeSelect", + "label": "时间选择", + "childIncludes": false, + "doc": "https://element-plus.org/zh-CN/component/time-select.html", + "categoryId": "form", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "defaultValue": "", + "setters": [ + "StringSetter", + "ExpressionSetter" + ] + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "editable", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "clearable", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "size", + "defaultValue": "default", + "options": [ + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "placeholder", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "name", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "effect", + "defaultValue": "light", + "options": [ + "dark", + "light" + ], + "setters": "SelectSetter" + }, + { + "name": "prefixIcon", + "defaultValue": "Clock", + "setters": "InputSetter" + }, + { + "name": "clearIcon", + "defaultValue": "CircleClose", + "setters": "InputSetter" + }, + { + "name": "start", + "defaultValue": "09:00", + "setters": "InputSetter" + }, + { + "name": "end", + "defaultValue": "18:00", + "setters": "InputSetter" + }, + { + "name": "step", + "defaultValue": "00:30", + "setters": "InputSetter" + }, + { + "name": "minTime", + "defaultValue": "00:00", + "setters": "InputSetter" + }, + { + "name": "maxTime", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "format", + "defaultValue": "HH:mm", + "setters": "InputSetter" + }, + { + "name": "emptyValues", + "title": "组件的空值配置", + "setters": "ArraySetter" + }, + { + "name": "valueOnClear", + "title": "清空选项的值", + "setters": [ + "StringSetter", + "NumberSetter", + "BooleanSetter", + "FunctionSetter" + ] + } + ], + "events": [ + "change", + "blur", + "focus", + "clear", + "update:modelValue" + ] + }, + "ElTooltip": { + "name": "ElTooltip", + "childIncludes": true, + "label": "文字提示", + "doc": "https://element-plus.org/zh-CN/component/tooltip.html", + "categoryId": "other", + "package": "element-plus", + "props": [ + { + "name": "appendTo", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "effect", + "defaultValue": "dark", + "setters": "InputSetter" + }, + { + "name": "content", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "rawContent", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "placement", + "defaultValue": "bottom", + "setters": "SelectSetter", + "options": [ + "top", + "top-start", + "top-end", + "bottom", + "bottom-start", + "bottom-end", + "left", + "left-start", + "left-end", + "right", + "right-start", + "right-end" + ] + }, + { + "name": "fallback-placements", + "setters": "ArraySetter" + }, + { + "name": "visible", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "offset", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "transition", + "defaultValue": "el-fade-in-linear", + "setters": "InputSetter" + }, + { + "name": "popperOptions", + "defaultValue": { + "boundariesElement": "body", + "gpuAcceleration": false + }, + "setters": "JSONSetter" + }, + { + "name": "showAfter", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "show-arrow", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "hide-after", + "defaultValue": 200, + "setters": "NumberSetter" + }, + { + "name": "auto-close", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "popper-class", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "enterable", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "teleported", + "label": "teleported", + "title": "是否使用 teleport。设置成 true则会被追加到 append-to 的位置", + "setters": "BooleanSetter", + "defaultValue": true + }, + { + "name": "trigger", + "label": "trigger", + "title": "如何触发 Tooltip", + "setters": "SelectSetter", + "options": [ + "hover", + "click", + "focus", + "contextmenu" + ], + "defaultValue": "hover" + }, + { + "name": "virtual-triggering", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "virtual-ref", + "defaultValue": "", + "setters": "ExpressionSetter" + }, + { + "name": "trigger-keys", + "defaultValue": [ + "Enter", + "Space" + ], + "setters": "ExpressionSetter" + }, + { + "name": "persistent", + "setters": "BooleanSetter" + }, + { + "name": "ariaLabel", + "label": "ariaLabel", + "title": "和 aria-label 属性保持一致", + "setters": "StringSetter" + } + ], + "events": [ + { + "name": "confirm" + }, + { + "name": "cancel" + }, + { + "name": "update:visible " + } + ], + "slots": [ + { + "name": "default" + }, + { + "name": "content" + } + ], + "snippet": { + "name": "ElTooltip", + "children": "文字提示", + "props": { + "content": "自定义弹出框的内容" + } + } + }, + "ElTour": { + "name": "ElTour", + "label": "漫游式引导", + "doc": "https://element-plus.org/zh-CN/component/tour.html", + "categoryId": "data", + "package": "element-plus", + "props": [ + { + "name": "showArrow", + "label": "showArrow", + "title": "是否显示箭头", + "setters": "BooleanSetter", + "defaultValue": true + }, + { + "name": "placement", + "label": "placement", + "title": "引导卡片相对于目标元素的位置", + "setters": "SelectSetter", + "options": [ + "top", + "top-start", + "top-end", + "bottom", + "bottom-start", + "bottom-end", + "left", + "left-start", + "left-end", + "right", + "right-start", + "right-end" + ], + "defaultValue": "bottom" + }, + { + "name": "contentStyle", + "label": "contentStyle", + "title": "为content自定义样式", + "setters": "ObjectSetter" + }, + { + "name": "mask", + "label": "mask", + "title": "是否启用遮罩,通过自定义属性改变遮罩样式以及填充的颜色", + "setters": [ + "BooleanSetter", + "ObjectSetter" + ], + "defaultValue": true + }, + { + "name": "type", + "label": "type", + "title": "类型,影响底色与文字颜色", + "setters": "SelectSetter", + "options": [ + "default", + "primary" + ], + "defaultValue": "default" + }, + { + "name": "modelValue", + "label": "modelValue", + "title": "打开引导", + "setters": "BooleanSetter", + "defaultValue": false + }, + { + "name": "current", + "label": "current", + "title": "当前值", + "setters": "NumberSetter" + }, + { + "name": "scroll-into-view-options", + "label": "scroll-into-view-options", + "title": "是否支持当前元素滚动到视窗内,也可传入配置指定滚动视窗的相关参数", + "setters": [ + "BooleanSetter", + "ObjectSetter" + ], + "defaultValue": { + "block": "center" + } + }, + { + "name": "z-index", + "label": "z-index", + "title": "Tour 的层级", + "setters": "NumberSetter", + "defaultValue": 2001 + }, + { + "name": "show-close", + "label": "show-close", + "title": "是否显示关闭按钮", + "setters": "BooleanSetter", + "defaultValue": true + }, + { + "name": "close-icon", + "label": "close-icon", + "title": "自定义关闭图标", + "setters": "IconSetter", + "defaultValue": "Close" + }, + { + "name": "close-on-press-escape", + "label": "close-on-press-escape", + "title": "是否可以通过按下 ESC 关闭引导", + "setters": "BooleanSetter", + "defaultValue": true + }, + { + "name": "target-area-clickable", + "label": "target-area-clickable", + "title": "启用蒙层时,target 元素区域是否可以点击。", + "setters": "BooleanSetter", + "defaultValue": true + } + ], + "slots": [ + { + "name": "default" + }, + { + "name": "indicators", + "params": [ + "current", + "total" + ] + }, + { + "name": "close-icon" + } + ], + "events": [ + "close", + "finish", + "change", + "update:modelValue", + "update:current" + ], + "snippet": { + "props": { + "modelValue": true + }, + "children": [ + { + "name": "ElTourStep", + "props": { + "title": "Center", + "description": "Displayed in the center of screen." + } + }, + { + "name": "ElTourStep", + "props": { + "title": "Center", + "description": "Displayed in the center of screen." + } + }, + { + "name": "ElTourStep", + "props": { + "title": "Center", + "description": "Displayed in the center of screen." + } + } + ] + } + }, + "ElTourStep": { + "name": "ElTourStep", + "label": "漫游式引导步", + "parentIncludes": [ + "ElTour" + ], + "doc": "https://element-plus.org/zh-CN/component/tour.html", + "categoryId": "data", + "package": "element-plus", + "props": [ + { + "name": "target", + "label": "target", + "title": "获取引导卡片指向的元素, 为空时居中于屏幕。", + "setters": [ + "StringSetter", + "FunctionSetter" + ] + }, + { + "name": "showArrow", + "label": "showArrow", + "title": "是否显示箭头", + "setters": "BooleanSetter", + "defaultValue": true + }, + { + "name": "title", + "label": "title", + "title": "标题", + "setters": "StringSetter" + }, + { + "name": "description", + "label": "description", + "title": "主要描述部分", + "setters": "StringSetter" + }, + { + "name": "placement", + "label": "placement", + "title": "引导卡片相对于目标元素的位置", + "setters": "SelectSetter", + "options": [ + "top", + "top-start", + "top-end", + "bottom", + "bottom-start", + "bottom-end", + "left", + "left-start", + "left-end", + "right", + "right-start", + "right-end" + ], + "defaultValue": "bottom" + }, + { + "name": "contentStyle", + "label": "contentStyle", + "title": "为content自定义样式", + "setters": "ObjectSetter" + }, + { + "name": "mask", + "label": "mask", + "title": "是否启用蒙层,也可传入配置改变蒙层样式和填充色", + "setters": [ + "BooleanSetter", + "ObjectSetter" + ], + "defaultValue": true + }, + { + "name": "type", + "label": "type", + "title": "类型,影响底色与文字颜色", + "setters": "SelectSetter", + "options": [ + "default", + "primary" + ], + "defaultValue": "default" + }, + { + "name": "nextButtonProps", + "label": "nextButtonProps", + "title": "“下一步”按钮的属性", + "setters": "ObjectSetter" + }, + { + "name": "prev-button-props", + "label": "prev-button-props", + "title": "“上一步”按钮的属性", + "setters": "ObjectSetter" + }, + { + "name": "scrollIntoViewOptions", + "label": "scrollIntoViewOptions", + "title": "是否支持当前元素滚动到视窗内,也可传入配置指定滚动视窗的相关参数", + "setters": [ + "BooleanSetter", + "ObjectSetter" + ] + }, + { + "name": "showClose", + "label": "showClose", + "title": "是否显示关闭按钮", + "setters": "BooleanSetter", + "defaultValue": true + }, + { + "name": "closeIcon", + "label": "closeIcon", + "title": "自定义关闭图标", + "setters": [ + "IconSetter" + ] + } + ], + "slots": [ + { + "name": "default" + }, + { + "name": "header" + }, + { + "name": "close-icon" + } + ], + "events": [ + "close" + ], + "snippet": { + "props": { + "title": "Center", + "description": "Displayed in the center of screen." + } + } + }, + "ElTransfer": { + "name": "ElTransfer", + "label": "穿梭框", + "categoryId": "form", + "doc": "https://element-plus.org/zh-CN/component/transfer.html", + "package": "element-plus", + "props": [ + { + "name": "modelValue", + "defaultValue": "", + "setters": [ + "ArraySetter", + "ExpressionSetter" + ] + }, + { + "name": "data", + "defaultValue": [], + "setters": [ + "ArraySetter", + "JSONSetter" + ] + }, + { + "name": "filterable", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "filterPlaceholder", + "defaultValue": "Enter keyword", + "setters": "InputSetter" + }, + { + "name": "filterMethod", + "setters": "FunctionSetter" + }, + { + "name": "targetOrder", + "defaultValue": "original", + "options": [ + "original", + "push", + "unshift" + ], + "setters": "SelectSetter" + }, + { + "name": "titles", + "defaultValue": [], + "setters": [ + "ArraySetter", + "JSONSetter" + ] + }, + { + "name": "buttonTexts", + "defaultValue": [], + "setters": [ + "ArraySetter", + "JSONSetter" + ] + }, + { + "name": "renderContent", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "format", + "defaultValue": "", + "setters": [ + "ObjectSetter", + "JSONSetter" + ] + }, + { + "name": "props", + "defaultValue": "", + "setters": [ + "ObjectSetter", + "JSONSetter" + ] + }, + { + "name": "leftDefaultChecked", + "defaultValue": [], + "title": "初始状态下左侧列表的已勾选项的 key 数组", + "setters": [ + "ArraySetter", + "JSONSetter" + ] + }, + { + "name": "rightDefaultChecked", + "defaultValue": [], + "title": "初始状态下右侧列表的已勾选项的 key 数组", + "setters": [ + "ArraySetter", + "JSONSetter" + ] + }, + { + "name": "validateEvent", + "defaultValue": true, + "setters": "BooleanSetter" + } + ], + "slots": [ + { + "name": "default", + "params": [ + "options" + ] + }, + { + "name": "left-footer" + }, + { + "name": "right-footer" + }, + { + "name": "left-empty" + }, + { + "name": "right-empty" + } + ], + "events": [ + { + "name": "change" + }, + { + "name": "left-check-change" + }, + { + "name": "right-check-change" + }, + { + "name": "update:modelValue" + } + ] + }, + "ElTree": { + "name": "ElTree", + "label": "树形控件", + "doc": "https://element-plus.org/zh-CN/component/tree.html", + "categoryId": "data", + "package": "element-plus", + "props": [ + { + "name": "data", + "defaultValue": "", + "setters": "JSONSetter" + }, + { + "name": "empty-text", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "node-key", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "props", + "defaultValue": "", + "setters": "JSONSetter" + }, + { + "name": "render-after-expand", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "load", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "render-content", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "highlight-current", + "defaultValue": false, + "label": "高亮当前节点", + "setters": "BooleanSetter" + }, + { + "name": "default-expand-all", + "defaultValue": false, + "label": "展开所有节点", + "setters": "BooleanSetter" + }, + { + "name": "expand-on-click-node", + "defaultValue": true, + "title": "是否在点击节点的时候展开或者收缩节点, 默认值为 true,如果为 false,则只有点箭头图标的时候才会展开或者收缩节点。", + "label": "点击展开", + "setters": "BooleanSetter" + }, + { + "name": "check-on-click-node", + "defaultValue": false, + "title": "是否在点击节点的时候选中节点,默认值为 false,即只有在点击复选框时才会选中节点。", + "label": "点击选中", + "setters": "BooleanSetter" + }, + { + "name": "auto-expand-parent", + "defaultValue": true, + "title": "展开子节点的时候是否自动展开父节点", + "label": "自动展开", + "setters": "BooleanSetter" + }, + { + "name": "default-expanded-keys", + "defaultValue": "", + "title": "默认展开的节点的 key 的数组", + "label": "默认展开", + "setters": "JSONSetter" + }, + { + "name": "show-checkbox", + "defaultValue": false, + "label": "显示checkbox", + "setters": "BooleanSetter" + }, + { + "name": "check-strictly", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "default-checked-keys", + "defaultValue": "", + "title": "默认勾选的节点的 key 的数组", + "label": "默认勾选", + "setters": "JSONSetter" + }, + { + "name": "current-node-key", + "defaultValue": "", + "label": "当前节点key", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "filter-node-method", + "defaultValue": "", + "title": "filter-node-method 对树节点进行筛选时执行的方法, 返回 false 则表示这个节点会被隐藏", + "label": "筛选节点函数", + "setters": "FunctionSetter" + }, + { + "name": "accordion", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "indent", + "defaultValue": 16, + "setters": "NumberSetter" + }, + { + "name": "icon", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "lazy", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "draggable", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "allow-drag", + "defaultValue": "", + "title": "判断节点能否被拖拽 如果返回 false ,节点不能被拖动", + "setters": "FunctionSetter" + }, + { + "name": "allow-drop", + "defaultValue": "", + "title": "拖拽时判定目标节点能否成为拖动目标位置。 如果返回 false ,拖动节点不能被拖放到目标节点。 type 参数有三种情况:prev、inner 和 next,分别表示放置在目标节点前、插入至目标节点和放置在目标节点后", + "setters": "FunctionSetter" + } + ], + "events": [ + "node-click", + "node-contextmenu", + "check-change", + "check", + "current-change", + "node-expand", + "node-collapse", + "node-drag-start", + "node-drag-enter", + "node-drag-leave", + "node-drag-over", + "node-drop", + "node-drag-end" + ], + "slots": [ + { + "name": "default", + "params": [ + "node", + "data" + ] + }, + { + "name": "empty" + } + ], + "snippet": { + "props": { + "data": [ + { + "value": "guide", + "label": "Guide", + "children": [ + { + "value": "disciplines", + "label": "Disciplines", + "children": [ + { + "value": "consistency", + "label": "Consistency" + }, + { + "value": "feedback", + "label": "Feedback" + }, + { + "value": "efficiency", + "label": "Efficiency" + }, + { + "value": "controllability", + "label": "Controllability" + } + ] + }, + { + "value": "navigation", + "label": "Navigation", + "children": [ + { + "value": "side nav", + "label": "Side Navigation" + }, + { + "value": "top nav", + "label": "Top Navigation" + } + ] + } + ] + }, + { + "value": "component", + "label": "Component", + "children": [ + { + "value": "basic", + "label": "Basic", + "children": [ + { + "value": "layout", + "label": "Layout" + }, + { + "value": "color", + "label": "Color" + }, + { + "value": "typography", + "label": "Typography" + }, + { + "value": "icon", + "label": "Icon" + }, + { + "value": "button", + "label": "Button" + } + ] + }, + { + "value": "form", + "label": "Form", + "children": [ + { + "value": "radio", + "label": "Radio" + }, + { + "value": "checkbox", + "label": "Checkbox" + }, + { + "value": "input", + "label": "Input" + }, + { + "value": "input-number", + "label": "InputNumber" + }, + { + "value": "select", + "label": "Select" + }, + { + "value": "cascader", + "label": "Cascader" + }, + { + "value": "switch", + "label": "Switch" + }, + { + "value": "slider", + "label": "Slider" + }, + { + "value": "time-picker", + "label": "TimePicker" + }, + { + "value": "date-picker", + "label": "DatePicker" + }, + { + "value": "datetime-picker", + "label": "DateTimePicker" + }, + { + "value": "upload", + "label": "Upload" + }, + { + "value": "rate", + "label": "Rate" + }, + { + "value": "form", + "label": "Form" + } + ] + }, + { + "value": "data", + "label": "Data", + "children": [ + { + "value": "table", + "label": "Table" + }, + { + "value": "tag", + "label": "Tag" + }, + { + "value": "progress", + "label": "Progress" + }, + { + "value": "tree", + "label": "Tree" + }, + { + "value": "pagination", + "label": "Pagination" + }, + { + "value": "badge", + "label": "Badge" + } + ] + }, + { + "value": "notice", + "label": "Notice", + "children": [ + { + "value": "alert", + "label": "Alert" + }, + { + "value": "loading", + "label": "Loading" + }, + { + "value": "message", + "label": "Message" + }, + { + "value": "message-box", + "label": "MessageBox" + }, + { + "value": "notification", + "label": "Notification" + } + ] + }, + { + "value": "navigation", + "label": "Navigation", + "children": [ + { + "value": "menu", + "label": "Menu" + }, + { + "value": "tabs", + "label": "Tabs" + }, + { + "value": "breadcrumb", + "label": "Breadcrumb" + }, + { + "value": "dropdown", + "label": "Dropdown" + }, + { + "value": "steps", + "label": "Steps" + } + ] + }, + { + "value": "others", + "label": "Others", + "children": [ + { + "value": "dialog", + "label": "Dialog" + }, + { + "value": "tooltip", + "label": "Tooltip" + }, + { + "value": "popover", + "label": "Popover" + }, + { + "value": "card", + "label": "Card" + }, + { + "value": "carousel", + "label": "Carousel" + }, + { + "value": "collapse", + "label": "Collapse" + } + ] + } + ] + }, + { + "value": "resource", + "label": "Resource", + "children": [ + { + "value": "axure", + "label": "Axure Components" + }, + { + "value": "sketch", + "label": "Sketch Templates" + }, + { + "value": "docs", + "label": "Design Documentation" + } + ] + } + ] + } + } + }, + "ElTreeSelect": { + "name": "ElTreeSelect", + "label": "树形选择", + "doc": "https://element-plus.org/zh-CN/component/tree-select.html", + "categoryId": "data", + "package": "element-plus", + "props": [ + { + "name": "cacheData", + "label": "cacheData", + "title": "懒加载节点的缓存数据,结构与数据相同,用于获取未加载数据的标签", + "setters": "ArraySetter", + "defaultValue": [] + }, + { + "name": "data", + "defaultValue": "", + "setters": "JSONSetter" + }, + { + "name": "empty-text", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "node-key", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "props", + "defaultValue": "", + "setters": "JSONSetter" + }, + { + "name": "renderAfterExpand", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "load", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "renderContent", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "highlightCurrent", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "defaultExpandAll", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "expandOnClickNode", + "defaultValue": true, + "title": "是否在点击节点的时候展开或者收缩节点, 默认值为 true,如果为 false,则只有点箭头图标的时候才会展开或者收缩节点。", + "setters": "BooleanSetter" + }, + { + "name": "checkOnClickNode", + "defaultValue": false, + "title": "是否在点击节点的时候选中节点,默认值为 false,即只有在点击复选框时才会选中节点。", + "setters": "BooleanSetter" + }, + { + "name": "autoExpandParent", + "defaultValue": true, + "title": "展开子节点的时候是否自动展开父节点", + "setters": "BooleanSetter" + }, + { + "name": "defaultExpandedKeys", + "defaultValue": "", + "title": "默认展开的节点的 key 的数组", + "label": "默认展开", + "setters": "JSONSetter" + }, + { + "name": "showCheckbox", + "defaultValue": false, + "label": "显示checkbox", + "setters": "BooleanSetter" + }, + { + "name": "checkStrictly", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "defaultCheckedKeys", + "defaultValue": "", + "title": "默认勾选的节点的 key 的数组", + "label": "默认勾选", + "setters": "JSONSetter" + }, + { + "name": "currentNodeKey", + "defaultValue": "", + "label": "当前节点key", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "filterNodeMethod", + "defaultValue": "", + "title": "filter-node-method 对树节点进行筛选时执行的方法, 返回 false 则表示这个节点会被隐藏", + "label": "筛选节点函数", + "setters": "FunctionSetter" + }, + { + "name": "accordion", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "indent", + "defaultValue": 16, + "setters": "NumberSetter" + }, + { + "name": "icon", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "lazy", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "draggable", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "allowDrag", + "defaultValue": "", + "title": "判断节点能否被拖拽 如果返回 false ,节点不能被拖动", + "setters": "FunctionSetter" + }, + { + "name": "allowDrop", + "defaultValue": "", + "title": "拖拽时判定目标节点能否成为拖动目标位置。 如果返回 false ,拖动节点不能被拖放到目标节点。 type 参数有三种情况:prev、inner 和 next,分别表示放置在目标节点前、插入至目标节点和放置在目标节点后", + "setters": "FunctionSetter" + }, + { + "name": "modelValue", + "defaultValue": "", + "setters": [ + "StringSetter", + "NumberSetter", + "BooleanSetter", + "ObjectSetter", + "ArraySetter" + ] + }, + { + "name": "multiple", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "valueKey", + "defaultValue": "value", + "setters": "InputSetter" + }, + { + "name": "size", + "defaultValue": "default", + "options": [ + "large", + "default", + "small" + ], + "setters": "SelectSetter" + }, + { + "name": "clearable", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "collapseTags", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "collapseTagsTooltip", + "label": "Tooltip", + "title": "当鼠标悬停于折叠标签的文本时,是否显示所有选中的标签。 要使用此属性,collapse-tags属性必须设定为 true", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "multipleLimit", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "name", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "effect", + "defaultValue": "light", + "options": [ + "dark", + "light" + ], + "setters": "SelectSetter" + }, + { + "name": "autocomplete", + "defaultValue": "off", + "setters": "InputSetter" + }, + { + "name": "placeholder", + "defaultValue": "Select", + "setters": "InputSetter" + }, + { + "name": "filterable", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "allowCreate", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "filterMethod", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "remote", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "remoteMethod", + "defaultValue": "", + "setters": "FunctionSetter" + }, + { + "name": "remoteShowSuffix", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "loading", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "loadingText", + "defaultValue": "Loading", + "setters": "InputSetter" + }, + { + "name": "noMatchText", + "defaultValue": "No matching data", + "setters": "InputSetter" + }, + { + "name": "noDataText", + "defaultValue": "No data", + "setters": "InputSetter" + }, + { + "name": "popperClass", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "reserveKeyword", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "defaultFirstOption", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "popperAppendToBody", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "teleported", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "appendTo", + "setters": "StringSetter" + }, + { + "name": "persistent", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "automaticDropdown", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "clearIcon", + "defaultValue": "CircleClose", + "setters": "InputSetter" + }, + { + "name": "fitInputWidth", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "suffixIcon", + "defaultValue": "ArrowUp", + "setters": "InputSetter" + }, + { + "name": "tagType", + "defaultValue": "info", + "options": [ + "success", + "info", + "warning", + "danger" + ], + "setters": "SelectSetter" + }, + { + "name": "tagEffect", + "defaultValue": "light", + "options": [ + "", + "light", + "dark", + "plain" + ], + "setters": "SelectSetter" + }, + { + "name": "validateEvent", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "offset", + "defaultValue": 12, + "setters": "NumberSetter" + }, + { + "name": "showArrow", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "placement", + "label": "placement", + "title": "下拉框出现的位置", + "setters": "SelectSetter", + "options": [ + "top", + "top-start", + "top-end", + "bottom", + "bottom-start", + "bottom-end", + "left", + "left-start", + "left-end", + "right", + "right-start", + "right-end" + ], + "defaultValue": "bottom-start" + }, + { + "name": "fallbackPlacements", + "label": "fallbackPlacements", + "title": "dropdown 可用的 positions", + "setters": "ArraySetter", + "defaultValue": [ + "bottom-start", + "top-start", + "right", + "left" + ] + }, + { + "name": "maxCollapseTags", + "label": "maxCollapseTags", + "title": "需要显示的 Tag 的最大数量 只有当 collapse-tags 设置为 true 时才会生效。", + "setters": "NumberSetter", + "defaultValue": 1 + }, + { + "name": "popperOptions", + "label": "popperOptions", + "title": "popper.js 参数", + "setters": "ObjectSetter", + "defaultValue": {} + }, + { + "name": "ariaLabel", + "label": "ariaLabel", + "title": "等价于原生 input aria-label 属性", + "setters": "StringSetter" + }, + { + "name": "emptyValues", + "setters": "ArraySetter" + }, + { + "name": "valueOnClear", + "setters": [ + "StringSetter", + "NumberSetter", + "BooleanSetter", + "FunctionSetter" + ] + }, + { + "name": "suffixTransition", + "title": "下拉菜单显示/消失时后缀图标的动画", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "tabindex", + "setters": [ + "StringSetter", + "NumberSetter" + ] + } + ], + "events": [ + "node-click", + "node-contextmenu", + "check-change", + "check", + "current-change", + "node-expand", + "node-collapse", + "node-drag-start", + "node-drag-enter", + "node-drag-leave", + "node-drag-over", + "node-drop", + "node-drag-end", + "change", + "visible-change", + "remove-tag", + "clear", + "blur", + "focus", + "update:modelValue" + ], + "slots": [ + { + "name": "default", + "params": [ + "node", + "data" + ] + }, + { + "name": "empty" + }, + { + "name": "header" + }, + { + "name": "footer" + }, + { + "name": "prefix" + }, + { + "name": "tag" + }, + { + "name": "loading" + }, + { + "name": "label" + } + ], + "snippet": { + "props": { + "data": [ + { + "value": "1", + "label": "Level one 1", + "children": [ + { + "value": "1-1", + "label": "Level two 1-1", + "children": [ + { + "value": "1-1-1", + "label": "Level three 1-1-1" + } + ] + } + ] + }, + { + "value": "2", + "label": "Level one 2", + "children": [ + { + "value": "2-1", + "label": "Level two 2-1", + "children": [ + { + "value": "2-1-1", + "label": "Level three 2-1-1" + } + ] + }, + { + "value": "2-2", + "label": "Level two 2-2", + "children": [ + { + "value": "2-2-1", + "label": "Level three 2-2-1" + } + ] + } + ] + }, + { + "value": "3", + "label": "Level one 3", + "children": [ + { + "value": "3-1", + "label": "Level two 3-1", + "children": [ + { + "value": "3-1-1", + "label": "Level three 3-1-1" + } + ] + }, + { + "value": "3-2", + "label": "Level two 3-2", + "children": [ + { + "value": "3-2-1", + "label": "Level three 3-2-1" + } + ] + } + ] + } + ], + "renderAfterExpand": false, + "style": { + "width": "240px" + } + } + } + }, + "ElTreeV2": { + "name": "ElTreeV2", + "label": "虚拟化树形控件", + "doc": "https://element-plus.org/zh-CN/component/tree-v2.html", + "categoryId": "data", + "package": "element-plus", + "props": [ + { + "name": "data", + "defaultValue": "", + "setters": [ + "ArraySetter", + "JSONSetter" + ] + }, + { + "name": "empty-text", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "props", + "defaultValue": "", + "setters": [ + "ObjectSetter", + "JSONSetter" + ] + }, + { + "name": "highlight-current", + "defaultValue": false, + "label": "高亮选中节点", + "setters": "BooleanSetter" + }, + { + "name": "expand-on-click-node", + "defaultValue": true, + "title": "是否在点击节点的时候展开或者收缩节点, 默认值为 true,如果为 false,则只有点箭头图标的时候才会展开或者收缩节点", + "label": "expand-on", + "setters": "BooleanSetter" + }, + { + "name": "check-on-click-node", + "defaultValue": false, + "title": "是否在点击节点的时候选中节点,默认值为 false,即只有在点击复选框时才会选中节点", + "label": "check-on", + "setters": "BooleanSetter" + }, + { + "name": "default-expanded-keys", + "defaultValue": "", + "title": "默认展开的节点的 key 的数组", + "label": "check-on", + "setters": "JSONSetter" + }, + { + "name": "show-checkbox", + "defaultValue": false, + "title": "节点是否可被选择", + "label": "check-on", + "setters": "BooleanSetter" + }, + { + "name": "check-strictly", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "default-checked-keys", + "defaultValue": "", + "title": "默认勾选的节点的 key 的数组", + "label": "checked-keys", + "setters": "JSONSetter" + }, + { + "name": "current-node-key", + "defaultValue": "", + "label": "选中的节点", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "filter-method", + "defaultValue": "", + "title": "对树节点进行筛选时执行的方法,返回 true 表示这个节点可以显示, 返回 false 则表示这个节点会被隐藏", + "setters": "JSONSetter" + }, + { + "name": "indent", + "defaultValue": 16, + "title": "相邻级节点间的水平缩进,单位为像素", + "setters": "NumberSetter" + }, + { + "name": "icon", + "defaultValue": "", + "title": "相邻级节点间的水平缩进,单位为像素", + "setters": "InputSetter" + }, + { + "name": "itemSize ", + "label": "itemSize ", + "title": "自定义树节点的高度", + "setters": "NumberSetter", + "defaultValue": 26 + } + ], + "events": [ + "node-click", + "node-drop", + "node-contextmenu", + "check-change", + "check", + "current-change", + "node-expand", + "node-collapse" + ], + "slots": [ + { + "name": "default", + "params": [ + "node", + "data" + ] + } + ] + }, + "ElUpload": { + "name": "ElUpload", + "label": "上传", + "doc": "https://element-plus.org/zh-CN/component/upload.html", + "categoryId": "form", + "package": "element-plus", + "props": [ + { + "name": "action", + "defaultValue": "#", + "title": "请求 URL", + "setters": "InputSetter" + }, + { + "name": "headers", + "defaultValue": "", + "setters": "JSONSetter" + }, + { + "name": "method", + "defaultValue": "post", + "setters": "InputSetter" + }, + { + "name": "multiple", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "data", + "defaultValue": "", + "setters": "ExpressionSetter" + }, + { + "name": "name", + "defaultValue": "file", + "setters": "ExpressionSetter" + }, + { + "name": "withCredentials", + "defaultValue": false, + "title": "支持发送 cookie 凭证信息", + "setters": "BooleanSetter" + }, + { + "name": "showFileList", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "drag", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "accept", + "defaultValue": "", + "setters": "InputSetter" + }, + { + "name": "crossorigin", + "options": [ + "", + "anonymous", + "use-credentials" + ], + "setters": "SelectSetter" + }, + { + "name": "onPreview", + "setters": "FunctionSetter" + }, + { + "name": "onRemove", + "setters": "FunctionSetter" + }, + { + "name": "onSuccess", + "setters": "FunctionSetter" + }, + { + "name": "onError", + "setters": [ + "FunctionSetter", + "ExpressionSetter" + ] + }, + { + "name": "onProgress", + "setters": [ + "FunctionSetter", + "ExpressionSetter" + ] + }, + { + "name": "onChange", + "setters": "FunctionSetter" + }, + { + "name": "onExceed", + "setters": "FunctionSetter" + }, + { + "name": "beforeUpload", + "setters": "FunctionSetter" + }, + { + "name": "beforeRemove", + "setters": "FunctionSetter" + }, + { + "name": "fileList", + "setters": [ + "ArraySetter", + "JSONSetter" + ] + }, + { + "name": "listType", + "defaultValue": "text", + "options": [ + "text", + "picture", + "picture-card" + ], + "setters": "SelectSetter" + }, + { + "name": "autoUpload", + "defaultValue": true, + "setters": "BooleanSetter" + }, + { + "name": "httpRequest", + "setters": "FunctionSetter" + }, + { + "name": "disabled", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "limit", + "defaultValue": "", + "setters": "NumberSetter" + } + ], + "slots": [ + { + "name": "default" + }, + { + "name": "trigger" + }, + { + "name": "tip" + }, + { + "name": "file" + } + ], + "events": [ + { + "name": "update:fileList" + } + ], + "snippet": { + "props": { + "action": "https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15", + "multiple": true, + "fileList": [ + { + "name": "element-plus-logo.svg", + "url": "https://element-plus.org/images/element-plus-logo.svg" + } + ] + }, + "children": [ + { + "name": "ElButton", + "props": { + "type": "primary" + }, + "children": "选择文件" + } + ] + } + }, + "ElTableV2": { + "name": "ElTableV2", + "label": "虚拟化表格", + "categoryId": "data", + "doc": "https://element-plus.org/zh-CN/component/table-v2.html", + "package": "element-plus", + "props": [ + { + "name": "cache", + "defaultValue": 2, + "setters": "NumberSetter" + }, + { + "name": "estimated-row-height", + "defaultValue": "", + "title": "渲染动态的单元格的预估高度", + "label": "row-height", + "setters": "NumberSetter" + }, + { + "name": "header-class", + "defaultValue": "", + "setters": [ + "InputSetter", + "ExpressionSetter" + ] + }, + { + "name": "header-props", + "defaultValue": "", + "setters": [ + "JSONSetter", + "ExpressionSetter" + ] + }, + { + "name": "header-cell-props", + "defaultValue": "", + "setters": [ + "JSONSetter", + "ExpressionSetter" + ] + }, + { + "name": "header-height", + "defaultValue": 50, + "setters": [ + "NumberSetter", + "ExpressionSetter" + ] + }, + { + "name": "footer-height", + "defaultValue": 0, + "setters": "NumberSetter" + }, + { + "name": "row-class", + "defaultValue": "", + "setters": [ + "InputSetter", + "ExpressionSetter" + ] + }, + { + "name": "row-key", + "defaultValue": "id", + "setters": [ + "InputSetter", + "NumberSetter" + ] + }, + { + "name": "row-props", + "defaultValue": "", + "setters": [ + "JSONSetter", + "ExpressionSetter" + ] + }, + { + "name": "columns", + "defaultValue": "50", + "setters": "NumberSetter" + }, + { + "name": "data", + "defaultValue": [], + "setters": "JSONSetter" + }, + { + "name": "data-getter", + "defaultValue": "", + "setters": "ExpressionSetter" + }, + { + "name": "fixed-data", + "defaultValue": "", + "setters": "JSONSetter" + }, + { + "name": "expand-column-key", + "defaultValue": "", + "title": "列的 key 来标记哪个行可以被展开", + "label": "column-key", + "setters": "InputSetter" + }, + { + "name": "expanded-row-keys", + "defaultValue": "", + "title": "列的 key 来标记哪个行可以被展开", + "label": "column-key", + "setters": "JSONSetter" + }, + { + "name": "default-expanded-row-keys", + "defaultValue": "", + "title": "默认展开的行的 key 的数组, 这个数据不是响应式的", + "label": "默认展开行", + "setters": "JSONSetter" + }, + { + "name": "class", + "defaultValue": "", + "setters": [ + "JSONSetter", + "InputSetter" + ] + }, + { + "name": "fixed", + "defaultValue": false, + "setters": "BooleanSetter" + }, + { + "name": "width", + "defaultValue": "", + "label": "表宽必填", + "setters": "NumberSetter" + }, + { + "name": "height", + "defaultValue": "", + "label": "表高必填", + "setters": "NumberSetter" + }, + { + "name": "max-height", + "defaultValue": "", + "setters": "NumberSetter" + }, + { + "name": "h-scrollbar-size", + "defaultValue": 6, + "label": "水平滚动条大小", + "setters": "NumberSetter" + }, + { + "name": "h-scrollbar-size", + "defaultValue": 6, + "label": "垂直滚动条大小", + "setters": "NumberSetter" + }, + { + "name": "scrollbar-always-on", + "defaultValue": false, + "title": "如果开启,滚动条将一直显示,反之只会在鼠标经过时显示。", + "label": "scrollbar", + "setters": "BooleanSetter" + }, + { + "name": "sort-by", + "defaultValue": {}, + "title": "排序方式", + "setters": "JSONSetter" + }, + { + "name": "sort-state", + "title": "多个排序", + "setters": "JSONSetter" + } + ], + "slots": [ + "cell", + "header", + "header-cell", + "row", + "footer", + "empty", + "overlay" + ], + "events": [ + "column-sort", + "expanded-rows-change", + "end-reached", + "scroll", + "rows-rendered", + "row-event-handlers" + ], + "snippet": { + "props": { + "width": 700, + "height": 400 + } + } + }, + "ElWatermark": { + "name": "ElWatermark", + "label": "水印", + "categoryId": "other", + "doc": "https://element-plus.org/zh-CN/component/watermark.html", + "package": "element-plus", + "props": [ + { + "name": "width", + "label": "width", + "title": "水印的宽度, content 的默认值是它自己的宽度", + "setters": "NumberSetter", + "defaultValue": 120 + }, + { + "name": "height", + "label": "height", + "title": "水印的高度, content 的默认值是它自己的高度", + "setters": "NumberSetter", + "defaultValue": 64 + }, + { + "name": "rotate", + "label": "rotate", + "title": "水印的旋转角度, 单位 °", + "setters": "NumberSetter", + "defaultValue": -22 + }, + { + "name": "zIndex", + "label": "zIndex", + "title": "水印元素的z-index值", + "setters": "NumberSetter", + "defaultValue": 9 + }, + { + "name": "image", + "label": "image", + "title": "水印图片,建议使用 2x 或 3x 图像", + "setters": "StringSetter" + }, + { + "name": "content", + "label": "content", + "title": "水印文本内容", + "setters": [ + "StringSetter", + "ArraySetter" + ] + }, + { + "name": "font", + "label": "font", + "title": "文字样式", + "setters": "ObjectSetter", + "defaultValue": { + "color": "rgba(0,0,0,.15)", + "fontSize": 16, + "fontWeight": "normal", + "fontFamily": "sans-serif", + "fontStyle": "normal", + "textAlign": "center", + "textBaseline": "top" + } + }, + { + "name": "gap", + "label": "gap", + "title": "水印之间的间距", + "setters": "ArraySetter", + "defaultValue": [ + 100, + 100 + ] + }, + { + "name": "offset", + "label": "offset", + "title": "水印从容器左上角的偏移 默认值为 gap/2", + "setters": "ArraySetter", + "defaultValue": [ + 50, + 50 + ] + } + ], + "slots": [ + "default" + ], + "snippet": { + "props": { + "font": { + "color": "rgba(0, 0, 0, .15)" + } + }, + "children": [ + { + "name": "div", + "props": { + "style": { + "height": "500px" + } + } + } + ] + } + } +} diff --git a/apps/designer/.vtj/projects/@sy/low-code-designer.json b/apps/designer/.vtj/projects/@sy/low-code-designer.json new file mode 100644 index 0000000..40ef3b1 --- /dev/null +++ b/apps/designer/.vtj/projects/@sy/low-code-designer.json @@ -0,0 +1,176 @@ +{ + "__VTJ_PROJECT__": true, + "id": "@sy/low-code-designer", + "platform": "web", + "name": "低代码编辑器", + "homepage": "", + "description": "低代码编辑器", + "dependencies": [ + { + "package": "vue", + "version": "latest", + "library": "Vue", + "urls": [ + "@vtj/materials/deps/vue/vue.global.prod.js" + ], + "assetsLibrary": "VueMaterial", + "required": true, + "official": true, + "enabled": true + }, + { + "package": "vue-router", + "version": "latest", + "library": "VueRouter", + "urls": [ + "@vtj/materials/deps/vue-router/vue-router.global.prod.js" + ], + "assetsLibrary": "VueRouterMaterial", + "required": true, + "official": true, + "enabled": true + }, + { + "package": "@vtj/utils", + "version": "latest", + "library": "VtjUtils", + "urls": [ + "@vtj/materials/deps/@vtj/utils/index.umd.js" + ], + "required": true, + "official": true, + "enabled": true + }, + { + "package": "@vtj/icons", + "version": "latest", + "library": "VtjIcons", + "urls": [ + "@vtj/materials/deps/@vtj/icons/style.css", + "@vtj/materials/deps/@vtj/icons/index.umd.js" + ], + "required": true, + "official": true, + "enabled": true + }, + { + "package": "@vueuse/core", + "version": "latest", + "library": "VueUse", + "urls": [ + "@vtj/materials/deps/@vueuse/shared/index.iife.min.js", + "@vtj/materials/deps/@vueuse/core/index.iife.min.js" + ], + "required": false, + "official": true, + "enabled": true, + "platform": [ + "web", + "h5" + ] + }, + { + "package": "element-plus", + "version": "latest", + "library": "ElementPlus", + "localeLibrary": "ElementPlusLocaleZhCn", + "urls": [ + "@vtj/materials/deps/element-plus/dark/css-vars.css", + "@vtj/materials/deps/element-plus/index.css", + "@vtj/materials/deps/element-plus/zh-cn.js", + "@vtj/materials/deps/element-plus/index.full.min.js" + ], + "assetsUrl": "@vtj/materials/assets/element/index.umd.js", + "assetsLibrary": "ElementPlusMaterial", + "required": false, + "official": true, + "enabled": true, + "platform": "web" + }, + { + "package": "@vtj/ui", + "version": "latest", + "library": "VtjUI", + "urls": [ + "@vtj/materials/deps/vxe-table/style.min.css", + "@vtj/materials/deps/@vtj/ui/style.css", + "@vtj/materials/deps/xe-utils/xe-utils.umd.min.js", + "@vtj/materials/deps/vxe-table/index.umd.min.js", + "@vtj/materials/deps/@vtj/ui/index.umd.js" + ], + "assetsUrl": "@vtj/materials/assets/ui/index.umd.js", + "assetsLibrary": "VtjUIMaterial", + "required": false, + "official": true, + "enabled": false, + "platform": "web" + }, + { + "package": "ant-design-vue", + "version": "latest", + "library": "antd", + "urls": [ + "@vtj/materials/deps/ant-design-vue/reset.css", + "@vtj/materials/deps/ant-design-vue/dayjs/dayjs.min.js", + "@vtj/materials/deps/ant-design-vue/dayjs/plugin/customParseFormat.js", + "@vtj/materials/deps/ant-design-vue/dayjs/plugin/weekday.js", + "@vtj/materials/deps/ant-design-vue/dayjs/plugin/localeData.js", + "@vtj/materials/deps/ant-design-vue/dayjs/plugin/weekOfYear.js", + "@vtj/materials/deps/ant-design-vue/dayjs/plugin/weekYear.js", + "@vtj/materials/deps/ant-design-vue/dayjs/plugin/advancedFormat.js", + "@vtj/materials/deps/ant-design-vue/dayjs/plugin/quarterOfYear.js", + "@vtj/materials/deps/ant-design-vue/antd.min.js" + ], + "assetsUrl": "@vtj/materials/assets/antdv/index.umd.js", + "assetsLibrary": "AntdvMaterial", + "required": false, + "official": true, + "enabled": false, + "platform": [ + "web" + ] + }, + { + "package": "@vtj/charts", + "version": "latest", + "library": "VtjCharts", + "urls": [ + "@vtj/materials/deps/echarts/echarts.min.js", + "@vtj/materials/deps/@vtj/charts/index.umd.js" + ], + "assetsUrl": "@vtj/materials/assets/charts/index.umd.js", + "assetsLibrary": "VtjChartsMaterial", + "required": false, + "official": true, + "enabled": false, + "platform": [ + "web", + "h5" + ] + } + ], + "pages": [ + { + "dir": false, + "name": "Test", + "title": "1", + "icon": "", + "mask": true, + "hidden": false, + "raw": false, + "pure": false, + "meta": "", + "cache": false, + "id": "45t7j3xqi", + "type": "page" + } + ], + "blocks": [], + "apis": [], + "meta": [], + "config": { + "title": "", + "themeSwitchable": false + }, + "__BASE_PATH__": "/" +} diff --git a/apps/designer/env.json b/apps/designer/env.json new file mode 100644 index 0000000..15afaac --- /dev/null +++ b/apps/designer/env.json @@ -0,0 +1,4 @@ +{ + "PORTAL_HOST": "sso-sit.newpearl.com", + "PORTAL_HOST_I": "soi-sit.newpearl.com" +} diff --git a/apps/designer/env.local.json b/apps/designer/env.local.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/apps/designer/env.local.json @@ -0,0 +1 @@ +{} diff --git a/apps/designer/env.sit.json b/apps/designer/env.sit.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/apps/designer/env.sit.json @@ -0,0 +1 @@ +{} diff --git a/apps/designer/env.uat.json b/apps/designer/env.uat.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/apps/designer/env.uat.json @@ -0,0 +1 @@ +{} diff --git a/apps/designer/index.html b/apps/designer/index.html new file mode 100644 index 0000000..13baab3 --- /dev/null +++ b/apps/designer/index.html @@ -0,0 +1,18 @@ + + + + + + + + + + VTJ Web Project Template + + +
+ + + diff --git a/apps/designer/package.json b/apps/designer/package.json new file mode 100644 index 0000000..0415d00 --- /dev/null +++ b/apps/designer/package.json @@ -0,0 +1,35 @@ +{ + "name": "@sy/low-code-designer", + "description": "低代码编辑器", + "private": true, + "version": "1.0.0-1", + "type": "module", + "scripts": { + "dev": "cross-env ENV_TYPE=local vite", + "build": "npm run build:prod", + "build:sit": "vue-tsc && cross-env ENV_TYPE=sit vite build", + "build:uat": "vue-tsc && cross-env ENV_TYPE=uat vite build", + "build:pre": "vue-tsc && cross-env ENV_TYPE=pre vite build", + "build:prod": "cross-env ENV_TYPE=live vite build", + "preview": "vite preview", + "clean:lock": "rimraf pnpm-lock.yaml && rimraf package.lock.json", + "clean:lib": "rimraf node_modules" + }, + "dependencies": { + "@vtj/materials": "^0.9.30", + "@vtj/renderer": "^0.9.30", + "@vtj/ui": "^0.9.30", + "@vtj/web": "^0.9.30", + "element-plus": "^2.9.4", + "vue": "~3.5.13", + "vue-router": "~4.5.0", + "core-js": "^3.40.0" + }, + "devDependencies": { + "@sy/vite-plugin-http2-proxy": "workspace:*", + "@vtj/cli": "^0.9.8", + "@vtj/local": "^0.9.30", + "vite": "6.1.0", + "vite-plugin-mkcert": "^1.17.6" + } +} \ No newline at end of file diff --git a/apps/designer/proxy.config.ts b/apps/designer/proxy.config.ts new file mode 100644 index 0000000..f4f95bb --- /dev/null +++ b/apps/designer/proxy.config.ts @@ -0,0 +1,7 @@ +export default { + '/api': { + target: 'https://sso-sit.newpearl.com', + changeOrigin: true, + ws: true + } +}; diff --git a/apps/designer/public/favicon.ico b/apps/designer/public/favicon.ico new file mode 100644 index 0000000..abed801 Binary files /dev/null and b/apps/designer/public/favicon.ico differ diff --git a/apps/designer/public/logo.png b/apps/designer/public/logo.png new file mode 100644 index 0000000..96380c6 Binary files /dev/null and b/apps/designer/public/logo.png differ diff --git a/apps/designer/public/logo.svg b/apps/designer/public/logo.svg new file mode 100644 index 0000000..0a5d108 --- /dev/null +++ b/apps/designer/public/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/designer/src/App.vue b/apps/designer/src/App.vue new file mode 100644 index 0000000..c0d4397 --- /dev/null +++ b/apps/designer/src/App.vue @@ -0,0 +1,51 @@ + + diff --git a/apps/designer/src/assets/logo.png b/apps/designer/src/assets/logo.png new file mode 100644 index 0000000..96380c6 Binary files /dev/null and b/apps/designer/src/assets/logo.png differ diff --git a/apps/designer/src/assets/logo.svg b/apps/designer/src/assets/logo.svg new file mode 100644 index 0000000..0a5d108 --- /dev/null +++ b/apps/designer/src/assets/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/designer/src/components/HelloWorld.vue b/apps/designer/src/components/HelloWorld.vue new file mode 100644 index 0000000..7b25f3f --- /dev/null +++ b/apps/designer/src/components/HelloWorld.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/apps/designer/src/env.d.ts b/apps/designer/src/env.d.ts new file mode 100644 index 0000000..acef380 --- /dev/null +++ b/apps/designer/src/env.d.ts @@ -0,0 +1,28 @@ +/// + +declare module '*.vue' { + import type { DefineComponent } from 'vue'; + const component: DefineComponent<{}, {}, any>; + export default component; +} + +declare namespace NodeJS { + interface ProcessEnv { + [key: string]: any; + } +} + +declare module global { + interface Window {} +} + +declare module 'vue' { + interface ComponentCustomProperties { + $uploader: any; + $reqeust: any; + $apis: any; + $libs: any; + } +} + +export {}; diff --git a/apps/designer/src/main.ts b/apps/designer/src/main.ts new file mode 100644 index 0000000..c360ed9 --- /dev/null +++ b/apps/designer/src/main.ts @@ -0,0 +1,48 @@ +import { + createProvider, + LocalService, + createModules, + NodeEnv, + autoUpdate, + notify, + loading, + createAdapter, + createServiceRequest +} from '@vtj/web'; +import { createApp } from 'vue'; +import router from './router'; +import App from './App.vue'; +import { name, description } from '../package.json'; +import './style/index.scss'; + +const app = createApp(App); +const adapter = createAdapter({ loading, notify }); +const service = new LocalService(createServiceRequest(notify)); + +// const modules = createModules(); +// console.log('modules', modules); +const { provider, onReady } = createProvider({ + nodeEnv: process.env.NODE_ENV as NodeEnv, + modules: createModules(), + service, + adapter, + router, + dependencies: { + Vue: () => import('vue'), + VueRouter: () => import('vue-router') + }, + project: { + id: name, + name: description + } +}); + +onReady(async () => { + app.use(router); + app.use(provider); + app.mount('#low-code-designer'); +}); + +if (process.env.NODE_ENV === 'production') { + autoUpdate(); +} diff --git a/apps/designer/src/router/index.ts b/apps/designer/src/router/index.ts new file mode 100644 index 0000000..f064ca7 --- /dev/null +++ b/apps/designer/src/router/index.ts @@ -0,0 +1,19 @@ +import { createRouter, createWebHistory } from 'vue-router'; + +const router = createRouter({ + history: createWebHistory(), + routes: [ + { + path: '/unauthorized', + name: 'Unauthorized', + component: () => import('@/views/unauthorized.vue') + }, + { + path: '/:pathMatch(.*)*', + name: 'NotFound', + component: () => import('@/views/not-found.vue') + } + ] +}); + +export default router; diff --git a/apps/designer/src/style/index.scss b/apps/designer/src/style/index.scss new file mode 100644 index 0000000..7632c94 --- /dev/null +++ b/apps/designer/src/style/index.scss @@ -0,0 +1,11 @@ +@use '@vtj/web/src/index.scss'; + +html, +body, +#app { + padding: 0; + margin: 0; + font-size: 14px; + height: 100%; + overflow: hidden; +} diff --git a/apps/designer/src/views/not-found.vue b/apps/designer/src/views/not-found.vue new file mode 100644 index 0000000..0444e15 --- /dev/null +++ b/apps/designer/src/views/not-found.vue @@ -0,0 +1,10 @@ + + + diff --git a/apps/designer/src/views/unauthorized.vue b/apps/designer/src/views/unauthorized.vue new file mode 100644 index 0000000..426326f --- /dev/null +++ b/apps/designer/src/views/unauthorized.vue @@ -0,0 +1,10 @@ + + + diff --git a/apps/designer/tsconfig.json b/apps/designer/tsconfig.json new file mode 100644 index 0000000..b5e02d3 --- /dev/null +++ b/apps/designer/tsconfig.json @@ -0,0 +1,27 @@ +{ + "extends": "./node_modules/@vtj/cli/config/tsconfig.web.json", + "compilerOptions": { + "noUnusedLocals": false, + "noUnusedParameters": false, + "baseUrl": "./", + "paths": { + "@/*": [ + "src/*" + ], + "$vtj/*": [ + ".vtj/*" + ] + } + }, + "include": [ + "src" + ], + "exclude": [ + ".vtj", + ], + "references": [ + { + "path": "./tsconfig.node.json" + } + ] +} \ No newline at end of file diff --git a/apps/designer/tsconfig.node.json b/apps/designer/tsconfig.node.json new file mode 100644 index 0000000..d0adb28 --- /dev/null +++ b/apps/designer/tsconfig.node.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": [ + "vite.config.ts", + "proxy.config.ts" + ] +} \ No newline at end of file diff --git a/apps/designer/vite.config.ts b/apps/designer/vite.config.ts new file mode 100644 index 0000000..311da85 --- /dev/null +++ b/apps/designer/vite.config.ts @@ -0,0 +1,19 @@ +import { createViteConfig } from '@vtj/cli'; +import { createDevTools } from '@vtj/local'; +import mkcert from 'vite-plugin-mkcert'; +import Http2Proxy from '@sy/vite-plugin-http2-proxy'; +import type { UserConfig, ConfigEnv } from 'vite'; +const config = createViteConfig({ + plugins: [createDevTools(), mkcert({ source: 'coding' }), Http2Proxy()] +}); + +// export default config; + +export default ({ command, mode }: ConfigEnv): UserConfig => { + return { + ...config, + server: { + cors: true + } + }; +}; diff --git a/apps/platform/.browserslistrc b/apps/platform/.browserslistrc new file mode 100644 index 0000000..b133c49 --- /dev/null +++ b/apps/platform/.browserslistrc @@ -0,0 +1,5 @@ +> 1% +last 2 versions +not dead +not ie 11 +chrome 79 diff --git a/apps/platform/.dockerignore b/apps/platform/.dockerignore new file mode 100644 index 0000000..54adfc6 --- /dev/null +++ b/apps/platform/.dockerignore @@ -0,0 +1,19 @@ +.DS_Store +node_modules/ +dist/ +.vscode/ + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +tests/**/coverage/ + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln + \ No newline at end of file diff --git a/apps/platform/.env b/apps/platform/.env new file mode 100644 index 0000000..b2204a9 --- /dev/null +++ b/apps/platform/.env @@ -0,0 +1,8 @@ +# 项目名称 +VITE_APP_TITLE = Admin + +# 公共基础路径, 详见: https://cn.vitejs.dev/guide/build.html#public-base-path +VITE_BASE_URL = / + +# enable mock in production +VITE_MOCK_IN_PROD = true \ No newline at end of file diff --git a/apps/platform/.env.development b/apps/platform/.env.development new file mode 100644 index 0000000..0ffcd41 --- /dev/null +++ b/apps/platform/.env.development @@ -0,0 +1,8 @@ +# 只在开发模式中被载入 +ENV = 'development' + +# 公共基础路径, 详见: https://cn.vitejs.dev/guide/build.html#public-base-path +VITE_BASE_URL = / + +# base api url +VITE_BASE_API_URL = 'http://8.134.216.72:8080/' \ No newline at end of file diff --git a/apps/platform/.env.production b/apps/platform/.env.production new file mode 100644 index 0000000..5d6a75e --- /dev/null +++ b/apps/platform/.env.production @@ -0,0 +1,8 @@ +# 只在生产模式中被载入 +ENV = 'production' + +# base api url +VITE_BASE_API_URL = 'http://127.0.0.1:8080/' + +# 公共基础路径, 详见: https://cn.vitejs.dev/guide/build.html#public-base-path +VITE_BASE_URL = / \ No newline at end of file diff --git a/apps/platform/.gitattributes b/apps/platform/.gitattributes new file mode 100644 index 0000000..d4e5bd3 --- /dev/null +++ b/apps/platform/.gitattributes @@ -0,0 +1,11 @@ +# https://docs.github.com/cn/get-started/getting-started-with-git/configuring-git-to-handle-line-endings + +# Automatically normalize line endings (to LF) for all text-based files. +* text=auto eol=lf + +# Declare files that will always have CRLF line endings on checkout. +*.{cmd,[cC][mM][dD]} text eol=crlf +*.{bat,[bB][aA][tT]} text eol=crlf + +# Denote all files that are truly binary and should not be modified. +*.{ico,png,jpg,jpeg,gif,webp,svg,woff,woff2} binary \ No newline at end of file diff --git a/apps/platform/.gitignore b/apps/platform/.gitignore new file mode 100644 index 0000000..4717f93 --- /dev/null +++ b/apps/platform/.gitignore @@ -0,0 +1,35 @@ +node_modules +.DS_Store +dist +.cache +.turbo +.nx +.nx/cache + +tests/server/static +tests/server/static/upload + +.local +# local env files +.env.local +.env.*.local +.eslintcache + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* +*pnpm-debug.log* + +# Editor directories and files +.idea +# .vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +# auto generate file +types/auto-imports.d.ts +types/components.d.ts diff --git a/apps/platform/.npmrc b/apps/platform/.npmrc new file mode 100644 index 0000000..22f2731 --- /dev/null +++ b/apps/platform/.npmrc @@ -0,0 +1,22 @@ +# 使用淘宝镜像源 +registry = https://registry.npmmirror.com +@sy:registry=http://sy-registry.shiyue.com + + +# 根据需要提升含有以下的依赖包到根 node_modules 目录下 +# public-hoist-pattern[]=husky +# public-hoist-pattern[]=*eslint* +# public-hoist-pattern[]=@eslint* +# public-hoist-pattern[]=*prettier* +# public-hoist-pattern[]=lint-staged +# public-hoist-pattern[]=*stylelint* +# public-hoist-pattern[]=@commitlint* +# public-hoist-pattern[]=core-js + +# 提升所有依赖到根 node_modules 目录下,相当于 public-hoist-pattern[]=*,与上面一种方式一般二选一使用 +# 极不推荐用这样的方式解决依赖问题,这样没有充分利用 pnpm 依赖访问安全性的优势,又走回了 npm / yarn 的老路。 +# shamefully-hoist=true + +enable-pre-post-scripts=true +engine-strict=true +package-manager-strict=false \ No newline at end of file diff --git a/apps/platform/CHANGELOG.md b/apps/platform/CHANGELOG.md new file mode 100644 index 0000000..121a2ac --- /dev/null +++ b/apps/platform/CHANGELOG.md @@ -0,0 +1,81 @@ +# 1.1.0 (2022-09-02) + +### Bug Fixes + +- :bug: router navigation bug ([b550a7a](https://github.com/buqiyuan/vite-vue3-admin/commit/b550a7a01b486cfd161ccb8efd7bca9a0ed35627)) +- :bug:生成路由出错问题 ([917e3f0](https://github.com/buqiyuan/vite-vue3-admin/commit/917e3f07209851a3df0b7e220e38df4df7612a68)) +- :bug:修复某些权限码传参错误 ([47071ef](https://github.com/buqiyuan/vite-vue3-admin/commit/47071efa7beb2e210151405e2a1c7e74d6dff4f1)) +- :bug:fix BASE_URL to VITE_BASE_URL ([3d32e82](https://github.com/buqiyuan/vite-vue3-admin/commit/3d32e82b838aea3c8a928989d2aa55c5d125a8ab)) +- 面包屑导航和弹窗拖拽后宽度问题 ([ae96559](https://github.com/buqiyuan/vite-vue3-admin/commit/ae96559fb82a87908a40b425701eaa0ee1993aa7)) +- 删除一些多余的旧代码 ([9eaa568](https://github.com/buqiyuan/vite-vue3-admin/commit/9eaa568a104e7ab1980c0d2069cbedddb4a4934b)) +- add menu type judgment ([144a539](https://github.com/buqiyuan/vite-vue3-admin/commit/144a53942a9229cb5e0286ae3452b644d66621e6)) +- **component:** :bug:修复 dynamicTable ts 类型错误 ([58b9275](https://github.com/buqiyuan/vite-vue3-admin/commit/58b9275758625f583aed644923431df72acb9687)) +- **components:** [dynamic-table] initial fetchData did not carry the default value ([3aaedcf](https://github.com/buqiyuan/vite-vue3-admin/commit/3aaedcf3c0551477e05dec85fb86d4e5af62b193)) +- **components:** [dynamic-table] parameter missing ([1e306d7](https://github.com/buqiyuan/vite-vue3-admin/commit/1e306d77d205cc9fe69fb19d860f5e014e8accc8)) +- **dynamic-table:** add onChangeParams param for dataRequest ([f381c79](https://github.com/buqiyuan/vite-vue3-admin/commit/f381c793529b6711994e001d29d1b8e6dc016631)) +- fix the aformPropsKeys ([#22](https://github.com/buqiyuan/vite-vue3-admin/issues/22)) ([e1c21be](https://github.com/buqiyuan/vite-vue3-admin/commit/e1c21bea3dddee1fefc9465142f390b0252ebcb4)) +- invalid regular expression in safari ([3939f82](https://github.com/buqiyuan/vite-vue3-admin/commit/3939f8229561959cb46982f64c54f4348258a1bd)), closes [#20](https://github.com/buqiyuan/vite-vue3-admin/issues/20) +- isAsyncFunction ([71aca13](https://github.com/buqiyuan/vite-vue3-admin/commit/71aca13b8055cd38c9f49a4d370c935312fa4d6f)) +- **pages:** about page link issues ([62c840c](https://github.com/buqiyuan/vite-vue3-admin/commit/62c840ccec3aa4b4237a182d750db933797c1c92)) +- **projects:** 修复 tabs-view 下拉菜单溢出 ([a43353d](https://github.com/buqiyuan/vite-vue3-admin/commit/a43353dc89f8395278b6988f7a2dd8c372ff0d7f)) +- remove topLevelAwait usage ([6653da6](https://github.com/buqiyuan/vite-vue3-admin/commit/6653da65f7a6d9738a39c955fb4dcb6d4f553235)) +- router redirect error when logout ([4073cb6](https://github.com/buqiyuan/vite-vue3-admin/commit/4073cb651b3bf45c16ce5f965fb7dddd3fab3bcd)) +- **router:** 第一次进入页面缓存失效问题 ([1b79adc](https://github.com/buqiyuan/vite-vue3-admin/commit/1b79adc072c1c9b6518cc4c05846dfd47c954989)) +- **schema-form:** update props issue ([ff1da5e](https://github.com/buqiyuan/vite-vue3-admin/commit/ff1da5e4f9723392f8af6a5286131f8cbf3c2bf8)) +- some css style issues ([9db10b0](https://github.com/buqiyuan/vite-vue3-admin/commit/9db10b058c8ba212cf51c94c10d2f37705ff7112)) +- some route file path error ([c89b131](https://github.com/buqiyuan/vite-vue3-admin/commit/c89b131d77c0ee8036813a2d377774bb854c652d)) +- some ts type issue ([60ea702](https://github.com/buqiyuan/vite-vue3-admin/commit/60ea702d7fe9cc88f85c07cdb0cd6fe5f3c56669)) +- svg can not loaded ([6aec46a](https://github.com/buqiyuan/vite-vue3-admin/commit/6aec46a00412a2b02e4090faca6722717a739550)) +- **utils:** [is] always false of isPromise ([8479111](https://github.com/buqiyuan/vite-vue3-admin/commit/84791110a87ab48f131c91e73508c2547fff8b25)) +- xlsx.js not default export in new versions [#8](https://github.com/buqiyuan/vite-vue3-admin/issues/8) ([a0b0fc8](https://github.com/buqiyuan/vite-vue3-admin/commit/a0b0fc8c78e1cf75e5ed7e48aee03dc7ce364db4)) + +### Features + +- 表格列设置工具栏 ([a934e12](https://github.com/buqiyuan/vite-vue3-admin/commit/a934e123426fab27fcbfbf47181f3355f584974a)) +- 当前用户角色权限变更时实时更新权限菜单 ([89918a2](https://github.com/buqiyuan/vite-vue3-admin/commit/89918a2195b119f480f498d420bb29016d557846)) +- 服务监控页面 ([0c3d61f](https://github.com/buqiyuan/vite-vue3-admin/commit/0c3d61fbdf4b0ecb1375990c06f5b039bed37085)) +- 全局挂载 Reflect 反射对象 ([f6f4675](https://github.com/buqiyuan/vite-vue3-admin/commit/f6f4675fba8e94b8b8bb67eff79d1205e3b06fff)) +- 新增按钮权限 ([5538d38](https://github.com/buqiyuan/vite-vue3-admin/commit/5538d387925b7bd53f332643903f9e4cacad0908)) +- **components:** [dynamic-table] cell support defaultEditable ([125bb08](https://github.com/buqiyuan/vite-vue3-admin/commit/125bb08ef2563f4dd4f3883da679e739e3f80bad)) +- **components:** [dynamic-table] support cell edit ([4411b0e](https://github.com/buqiyuan/vite-vue3-admin/commit/4411b0e49feeb93b3d1034fc038c9a778d7312af)) +- **components:** [ProjectSetting] add layout mode ([815b0c2](https://github.com/buqiyuan/vite-vue3-admin/commit/815b0c2cdc063a848b88cfe35519b0755b279282)) +- edit-row-table support save loading ([4d0eea6](https://github.com/buqiyuan/vite-vue3-admin/commit/4d0eea6d30d8b09d30cafb6e3bb4b80bb806c675)) +- support for nested routes ([9d9e1d8](https://github.com/buqiyuan/vite-vue3-admin/commit/9d9e1d856f01e0164c88a18583957d20ace95654)) +- **tools:** :art: add project config drawer ([c1f0de0](https://github.com/buqiyuan/vite-vue3-admin/commit/c1f0de05f25bbbadbcbc9f4a105e8d721b008bbb)) +- update basic-form demo ([27f95ec](https://github.com/buqiyuan/vite-vue3-admin/commit/27f95ec4e7c1b57fca5af379165960167aea2e1b)) +- **views:** add about page ([0a34802](https://github.com/buqiyuan/vite-vue3-admin/commit/0a34802b7ef2d2727df4b3b769bd4d664ace2bfa)) + +### Performance Improvements + +- **tableColumns:** customRender is easy ([#10](https://github.com/buqiyuan/vite-vue3-admin/issues/10)) ([e069f3c](https://github.com/buqiyuan/vite-vue3-admin/commit/e069f3c164f92e414638cb2f681013c7dc7727a0)) +- use vite-plugin-style-import replace unplugin-vue-components [#5](https://github.com/buqiyuan/vite-vue3-admin/issues/5) ([10540eb](https://github.com/buqiyuan/vite-vue3-admin/commit/10540eb1de36f4cd6048f86e5b0363109d571760)) + +## 1.0.2 (2022-03-15) + +### Bug Fixes + +- :bug: router navigation bug ([b550a7a](https://github.com/buqiyuan/vite-vue3-admin/commit/b550a7a01b486cfd161ccb8efd7bca9a0ed35627)) +- :bug:生成路由出错问题 ([917e3f0](https://github.com/buqiyuan/vite-vue3-admin/commit/917e3f07209851a3df0b7e220e38df4df7612a68)) +- :bug:修复某些权限码传参错误 ([47071ef](https://github.com/buqiyuan/vite-vue3-admin/commit/47071efa7beb2e210151405e2a1c7e74d6dff4f1)) +- :bug:fix BASE_URL to VITE_BASE_URL ([3d32e82](https://github.com/buqiyuan/vite-vue3-admin/commit/3d32e82b838aea3c8a928989d2aa55c5d125a8ab)) +- 面包屑导航和弹窗拖拽后宽度问题 ([ae96559](https://github.com/buqiyuan/vite-vue3-admin/commit/ae96559fb82a87908a40b425701eaa0ee1993aa7)) +- 删除一些多余的旧代码 ([9eaa568](https://github.com/buqiyuan/vite-vue3-admin/commit/9eaa568a104e7ab1980c0d2069cbedddb4a4934b)) +- **component:** :bug:修复 dynamicTable ts 类型错误 ([58b9275](https://github.com/buqiyuan/vite-vue3-admin/commit/58b9275758625f583aed644923431df72acb9687)) +- remove topLevelAwait usage ([6653da6](https://github.com/buqiyuan/vite-vue3-admin/commit/6653da65f7a6d9738a39c955fb4dcb6d4f553235)) +- **router:** 第一次进入页面缓存失效问题 ([1b79adc](https://github.com/buqiyuan/vite-vue3-admin/commit/1b79adc072c1c9b6518cc4c05846dfd47c954989)) +- some route file path error ([c89b131](https://github.com/buqiyuan/vite-vue3-admin/commit/c89b131d77c0ee8036813a2d377774bb854c652d)) +- svg can not loaded ([6aec46a](https://github.com/buqiyuan/vite-vue3-admin/commit/6aec46a00412a2b02e4090faca6722717a739550)) +- xlsx.js not default export in new versions [#8](https://github.com/buqiyuan/vite-vue3-admin/issues/8) ([a0b0fc8](https://github.com/buqiyuan/vite-vue3-admin/commit/a0b0fc8c78e1cf75e5ed7e48aee03dc7ce364db4)) + +### Features + +- 表格列设置工具栏 ([a934e12](https://github.com/buqiyuan/vite-vue3-admin/commit/a934e123426fab27fcbfbf47181f3355f584974a)) +- 服务监控页面 ([0c3d61f](https://github.com/buqiyuan/vite-vue3-admin/commit/0c3d61fbdf4b0ecb1375990c06f5b039bed37085)) +- 全局挂载 Reflect 反射对象 ([f6f4675](https://github.com/buqiyuan/vite-vue3-admin/commit/f6f4675fba8e94b8b8bb67eff79d1205e3b06fff)) +- 新增按钮权限 ([5538d38](https://github.com/buqiyuan/vite-vue3-admin/commit/5538d387925b7bd53f332643903f9e4cacad0908)) +- **views:** add about page ([0a34802](https://github.com/buqiyuan/vite-vue3-admin/commit/0a34802b7ef2d2727df4b3b769bd4d664ace2bfa)) + +### Performance Improvements + +- **tableColumns:** customRender is easy ([#10](https://github.com/buqiyuan/vite-vue3-admin/issues/10)) ([e069f3c](https://github.com/buqiyuan/vite-vue3-admin/commit/e069f3c164f92e414638cb2f681013c7dc7727a0)) +- use vite-plugin-style-import replace unplugin-vue-components [#5](https://github.com/buqiyuan/vite-vue3-admin/issues/5) ([10540eb](https://github.com/buqiyuan/vite-vue3-admin/commit/10540eb1de36f4cd6048f86e5b0363109d571760)) diff --git a/apps/platform/Dockerfile b/apps/platform/Dockerfile new file mode 100644 index 0000000..9bd9b47 --- /dev/null +++ b/apps/platform/Dockerfile @@ -0,0 +1,29 @@ + +# https://stackoverflow.com/questions/53681522/share-variable-in-multi-stage-dockerfile-arg-before-from-not-substituted +ARG PROJECT_DIR=/vue3-antdv-admin + +FROM node:20-slim as builder +ARG PROJECT_DIR +WORKDIR $PROJECT_DIR + +# 安装pnpm +RUN npm install -g pnpm + +COPY . ./ +# 安装依赖 +# 若网络不通,可以使用淘宝源 +# RUN pnpm config set registry https://registry.npmmirror.com +RUN pnpm install + +# 构建项目 +ENV VITE_BASE_URL=/ +RUN pnpm build + + +FROM nginx:alpine as production +ARG PROJECT_DIR + +COPY --from=builder $PROJECT_DIR/dist/ /usr/share/nginx/html +# COPY --from=builder $PROJECT_DIR/nginx.conf /etc/nginx/nginx.conf + +EXPOSE 80 diff --git a/apps/platform/README.md b/apps/platform/README.md new file mode 100644 index 0000000..457b449 --- /dev/null +++ b/apps/platform/README.md @@ -0,0 +1,42 @@ +## 安装使用 + +- 安装依赖 + +```bash +pnpm install + +``` + +- 运行 + +```bash +pnpm dev +``` + +- 打包 + +```bash +pnpm build +``` + +## vscode 配置 + +安装项目根目录 `.vscode` 推荐的插件,再安装 `Volar`,并禁用 `Vetur`,重启 vscode 即可。 + +## Git 贡献提交规范 + +- 参考 [vue](https://github.com/vuejs/vue/blob/dev/.github/COMMIT_CONVENTION.md) 规范 ([Angular](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular)) + + - `feat` 增加新功能 + - `fix` 修复问题/BUG + - `style` 代码风格相关无影响运行结果的 + - `perf` 优化/性能提升 + - `refactor` 重构 + - `revert` 撤销修改 + - `test` 测试相关 + - `docs` 文档/注释 + - `chore` 依赖更新/脚手架配置修改等 + - `workflow` 工作流改进 + - `ci` 持续集成 + - `types` 类型定义文件更改 + - `wip` 开发中 diff --git a/apps/platform/commitlint.config.mjs b/apps/platform/commitlint.config.mjs new file mode 100644 index 0000000..6debc80 --- /dev/null +++ b/apps/platform/commitlint.config.mjs @@ -0,0 +1,34 @@ +/** @type {import("@commitlint/types").UserConfig} */ +export default { + ignores: [(commit) => commit.includes('init')], + extends: ['@commitlint/config-conventional'], + rules: { + 'body-leading-blank': [2, 'always'], + 'footer-leading-blank': [1, 'always'], + 'header-max-length': [2, 'always', 108], + 'subject-empty': [2, 'never'], + 'type-empty': [2, 'never'], + 'subject-case': [0], + 'type-enum': [ + 2, + 'always', + [ + 'feat', + 'fix', + 'perf', + 'style', + 'docs', + 'test', + 'refactor', + 'build', + 'ci', + 'chore', + 'revert', + 'wip', + 'workflow', + 'types', + 'release', + ], + ], + }, +}; diff --git a/apps/platform/docker-compose.yml b/apps/platform/docker-compose.yml new file mode 100644 index 0000000..5ae49e8 --- /dev/null +++ b/apps/platform/docker-compose.yml @@ -0,0 +1,15 @@ +version: '3' + +services: + vue3-antdv-admin: + # 从当前路径构建镜像 + build: + context: . + dockerfile: Dockerfile + target: production + image: buqiyuan/vue3-antdv-admin:latest + ports: + - '80:80' + env_file: + - .env + - .env.production diff --git a/apps/platform/eslint.config.mjs b/apps/platform/eslint.config.mjs new file mode 100644 index 0000000..d694401 --- /dev/null +++ b/apps/platform/eslint.config.mjs @@ -0,0 +1,206 @@ +import js from '@eslint/js'; +import pluginVue from 'eslint-plugin-vue'; +import * as parserVue from 'vue-eslint-parser'; +import configPrettier from 'eslint-config-prettier'; +import pluginPrettier from 'eslint-plugin-prettier'; +import pluginImport from 'eslint-plugin-import'; +import { defineFlatConfig } from 'eslint-define-config'; +import * as parserTypeScript from '@typescript-eslint/parser'; +import pluginTypeScript from '@typescript-eslint/eslint-plugin'; +import unusedImports from 'eslint-plugin-unused-imports'; + +export default defineFlatConfig([ + { + ...js.configs.recommended, + plugins: { + prettier: pluginPrettier, + }, + rules: { + ...configPrettier.rules, + ...pluginPrettier.configs.recommended.rules, + 'no-debugger': 'off', + 'no-unused-vars': [ + 'error', + { + argsIgnorePattern: '^_', + varsIgnorePattern: '^_', + }, + ], + 'prettier/prettier': [ + 'error', + { + endOfLine: 'auto', + }, + ], + }, + }, + { + files: ['**/*.?([cm])ts', '**/*.?([cm])tsx'], + languageOptions: { + parser: parserTypeScript, + parserOptions: { + sourceType: 'module', + }, + }, + plugins: { + '@typescript-eslint': pluginTypeScript, + }, + rules: { + ...pluginTypeScript.configs.strict.rules, + '@typescript-eslint/ban-types': 'off', + '@typescript-eslint/no-unused-vars': 'off', + '@typescript-eslint/no-unused-expressions': 'off', + '@typescript-eslint/no-invalid-void-type': 'off', + '@typescript-eslint/no-redeclare': 'error', + '@typescript-eslint/ban-ts-comment': 'off', + '@typescript-eslint/prefer-ts-expect-error': 'off', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/prefer-as-const': 'warn', + '@typescript-eslint/no-empty-function': 'off', + '@typescript-eslint/no-empty-object-type': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/no-import-type-side-effects': 'error', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/consistent-type-imports': [ + 'error', + { disallowTypeAnnotations: false, fixStyle: 'inline-type-imports' }, + ], + '@typescript-eslint/prefer-literal-enum-member': ['error', { allowBitwiseExpressions: true }], + }, + }, + { + files: ['**/*.d.ts'], + rules: { + 'eslint-comments/no-unlimited-disable': 'off', + 'import/no-duplicates': 'off', + 'unused-imports/no-unused-vars': 'off', + }, + }, + { + files: ['**/*.?([cm])js'], + rules: { + '@typescript-eslint/no-require-imports': 'off', + '@typescript-eslint/no-var-requires': 'off', + }, + }, + { + files: ['**/*.vue'], + languageOptions: { + parser: parserVue, + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + extraFileExtensions: ['.vue'], + parser: parserTypeScript, + sourceType: 'module', + }, + }, + plugins: { + vue: pluginVue, + }, + processor: pluginVue.processors['.vue'], + rules: { + ...pluginVue.configs.base.rules, + ...pluginVue.configs['vue3-essential'].rules, + ...pluginVue.configs['vue3-recommended'].rules, + 'no-undef': 'off', + 'no-unused-vars': 'off', + 'vue/no-v-html': 'off', + 'vue/require-default-prop': 'off', + 'vue/require-explicit-emits': 'off', + 'vue/multi-word-component-names': 'off', + 'vue/no-setup-props-reactivity-loss': 'off', + 'vue/html-self-closing': [ + 'error', + { + html: { + void: 'always', + normal: 'always', + component: 'always', + }, + svg: 'always', + math: 'always', + }, + ], + }, + }, + { + files: ['**/*.vue', '**/*.?([cm])ts', '**/*.?([cm])tsx'], + plugins: { + import: pluginImport, + 'unused-imports': unusedImports, + }, + rules: { + 'import/first': 'error', + 'import/no-duplicates': 'error', + 'import/order': [ + 'error', + { + groups: [ + 'builtin', + 'external', + 'internal', + 'parent', + 'sibling', + 'index', + 'object', + 'type', + ], + + pathGroups: [ + { + pattern: 'vue', + group: 'external', + position: 'before', + }, + { + pattern: '@vue/**', + group: 'external', + position: 'before', + }, + { + pattern: 'ant-design-vue', + group: 'internal', + }, + ], + pathGroupsExcludedImportTypes: ['type'], + }, + ], + + 'unused-imports/no-unused-imports': 'error', + // 如需保存时自动删除未引用代码,可注释掉该规则 + 'unused-imports/no-unused-vars': [ + 'warn', + { + vars: 'all', + varsIgnorePattern: '^_', + args: 'after-used', + argsIgnorePattern: '^_', + }, + ], + }, + }, + { + linterOptions: { + reportUnusedDisableDirectives: 'off', + }, + ignores: [ + 'src/assets/**', + '*.sh', + 'node_modules', + '*.md', + '*.woff', + '*.ttf', + '.vscode', + '.idea', + 'dist', + '/public', + '/docs', + '.husky', + '.local', + '/bin', + 'Dockerfile', + ], + }, +]); diff --git a/apps/platform/index.html b/apps/platform/index.html new file mode 100644 index 0000000..d8bb3e9 --- /dev/null +++ b/apps/platform/index.html @@ -0,0 +1,17 @@ + + + + + + + + Vite App + + +
+ + + diff --git a/apps/platform/lint-staged.config.mjs b/apps/platform/lint-staged.config.mjs new file mode 100644 index 0000000..4a369a0 --- /dev/null +++ b/apps/platform/lint-staged.config.mjs @@ -0,0 +1,8 @@ +/** @type {import('lint-staged').Config} */ +export default { + '*.{js,jsx,ts,tsx}': ['eslint --fix', 'prettier --write'], + '*.json': ['prettier --write'], + '*.vue': ['eslint --fix', 'prettier --write', 'stylelint --fix --allow-empty-input'], + '*.{scss,less,styl,html}': ['stylelint --fix --allow-empty-input', 'prettier --write'], + '*.md': ['prettier --write'], +}; diff --git a/apps/platform/openapi.config.ts b/apps/platform/openapi.config.ts new file mode 100644 index 0000000..fc6b2bb --- /dev/null +++ b/apps/platform/openapi.config.ts @@ -0,0 +1,104 @@ +import { generateService } from '@umijs/openapi'; +import type { RequestOptions } from './src/utils/request'; + +const re = /controller[-_ .](\w)/gi; + +// swagger-typescript-api +generateService({ + schemaPath: 'http://127.0.0.1:7001/api-docs-json', + serversPath: './src/api/backend', + requestOptionsType: 'RequestOptions', + // 自定义网络请求函数路径 + requestImportStatement: ` + /** + * 该文件为 @umijs/openapi 插件自动生成,请勿随意修改。如需修改请通过配置 openapi.config.ts 进行定制化。 + * */ + + import { request, type RequestOptions } from "@/utils/request"; + `, + hook: { + afterOpenApiDataInited(openAPIData) { + const schemas = openAPIData.components?.schemas; + if (schemas) { + Object.values(schemas).forEach((schema) => { + if ('$ref' in schema) { + return; + } + if (schema.properties) { + Object.values(schema.properties).forEach((prop) => { + if ('$ref' in prop) { + return; + } + // 匡正文件上传的参数类型 + if (prop.format === 'binary') { + prop.type = 'object'; + } + }); + } + }); + } + return openAPIData; + }, + // @ts-ignore + customFunctionName(operationObject, apiPath) { + const { operationId } = operationObject; + + if (!operationId) { + console.warn('[Warning] no operationId', apiPath); + return; + } + + const funcName = operationId.replace(re, (_all, letter) => letter.toUpperCase()); + + operationObject.operationId = funcName; + + return funcName; + }, + // @ts-ignore + customFileNames(operationObject, apiPath) { + const { operationId } = operationObject; + + if (!operationId) { + console.warn('[Warning] no operationId', apiPath); + return; + } + const controllerName = operationId.split(re)[0]; + const moduleName = operationObject.tags?.[0].split(' - ')[0]; + + // 移除 query 参数的默认值 + operationObject.parameters?.forEach((param) => { + if ('in' in param && param.in === 'query' && param.schema) { + if (!('$ref' in param.schema) && param.schema.default) { + Reflect.deleteProperty(param.schema, 'default'); + } + } + }); + + if (moduleName === controllerName) { + return [controllerName]; + } else if (moduleName && moduleName !== controllerName) { + return [`${moduleName}_${controllerName}`]; + } + return; + }, + customType(schemaObject, namespace, defaultGetType) { + const type = defaultGetType(schemaObject, namespace); + // 提取出 data 的类型 + const regex = /API\.ResOp & { 'data'\?: (.+); }/; + return type.replace(regex, '$1'); + }, + customOptionsDefaultValue(data): RequestOptions { + const { summary } = data; + + if (summary?.startsWith('创建') || summary?.startsWith('新增')) { + return { successMsg: '创建成功' }; + } else if (summary?.startsWith('更新')) { + return { successMsg: '更新成功' }; + } else if (summary?.startsWith('删除')) { + return { successMsg: '删除成功' }; + } + + return {}; + }, + }, +}); diff --git a/apps/platform/package.json b/apps/platform/package.json new file mode 100644 index 0000000..7dadc02 --- /dev/null +++ b/apps/platform/package.json @@ -0,0 +1,120 @@ +{ + "name": "@sy/low-code-platform", + "version": "1.0.0-1", + "packageManager": "pnpm@9.4.0", + "type": "module", + "engines": { + "node": ">=20", + "pnpm": ">=9.0.2" + }, + "author": { + "name": "wangxuefeng", + "email": "wangxuefeng@shiyue.com" + }, + "scripts": { + "preinstall": "npx only-allow pnpm", + "serve": "npm run dev", + "dev": "vite dev", + "build": "rimraf dist && cross-env NODE_ENV=production vite build", + "build:watch": "rimraf dist && cross-env NODE_ENV=production vite build --watch", + "preview": "vite preview", + "preview:watch": "npm run build:watch && vite preview", + "clean:cache": "rimraf node_modules/.cache/ && rimraf node_modules/.vite", + "test:gzip": "npx http-server dist --cors --gzip -c-1", + "test:br": "npx http-server dist --cors --brotli -c-1", + "clean:lock": "rimraf pnpm-lock.yaml && rimraf package.lock.json", + "clean:lib": "rimraf node_modules" + }, + "dependencies": { + "@ant-design/icons-vue": "~7.0.1", + "@iconify/vue": "^4.3.0", + "@vueuse/core": "~11.1.0", + "ant-design-vue": "~4.2.6", + "axios": "~1.7.9", + "crypto-js": "^4.2.0", + "dayjs": "~1.11.13", + "file-saver": "~2.0.5", + "licia-es": "^1.46.0", + "lodash-es": "~4.17.21", + "mitt": "~3.0.1", + "nprogress": "1.0.0-1", + "pinia": "~2.2.8", + "pinia-plugin-persistedstate": "^4.2.0", + "qs": "~6.13.1", + "sortablejs": "~1.15.6", + "vue": "~3.5.13", + "vue-i18n": "^11.1.1", + "vue-router": "~4.4.5", + "vue-types": "~5.1.3", + "vue-virtual-scroller": "2.0.0-beta.8", + "wujie-vue3": "^1.0.24", + "xlsx": "~0.18.5", + "core-js": "^3.40.0" + }, + "devDependencies": { + "@sy/vite-plugin-http2-proxy": "workspace:*", + "@commitlint/cli": "~19.5.0", + "@commitlint/config-conventional": "~19.5.0", + "@iconify-json/ant-design": "^1.2.5", + "@iconify-json/ep": "^1.2.2", + "@iconify/json": "^2.2.307", + "@sy/low-code-designer": "workspace:*", + "@types/crypto-js": "^4.2.2", + "@types/lodash-es": "~4.17.12", + "@types/node": "~22.7.9", + "@types/qs": "^6.9.18", + "@types/sortablejs": "^1.15.8", + "@typescript-eslint/eslint-plugin": "~8.11.0", + "@typescript-eslint/parser": "~8.11.0", + "@umijs/openapi": "^1.13.0", + "@vitejs/plugin-vue": "~5.1.5", + "@vitejs/plugin-vue-jsx": "~4.0.1", + "@vue/tsconfig": "^0.5.1", + "commitizen": "~4.3.1", + "conventional-changelog-cli": "~4.1.0", + "cross-env": "~7.0.3", + "eslint": "~9.13.0", + "eslint-config-prettier": "~9.1.0", + "eslint-define-config": "~2.1.0", + "eslint-plugin-import": "~2.31.0", + "eslint-plugin-prettier": "~5.2.3", + "eslint-plugin-unused-imports": "^4.1.4", + "eslint-plugin-vue": "~9.29.1", + "less": "~4.2.2", + "lint-staged": "~15.2.11", + "msw": "^2.7.0", + "postcss": "~8.4.49", + "postcss-html": "~1.7.0", + "postcss-less": "~6.0.0", + "prettier": "~3.3.3", + "rimraf": "~6.0.1", + "stylelint": "~16.10.0", + "stylelint-config-property-sort-order-smacss": "^10.0.0", + "stylelint-config-recommended": "~14.0.1", + "stylelint-config-recommended-vue": "~1.5.0", + "stylelint-config-standard": "~36.0.1", + "stylelint-order": "~6.0.4", + "stylelint-prettier": "^5.0.3", + "typescript": "~5.6.3", + "unocss": "^65.5.0", + "unplugin-vue-components": "~0.27.5", + "vite": "~6.1.0", + "vite-plugin-checker": "~0.8.0", + "vite-plugin-inspect": "^10.2.1", + "vite-plugin-mkcert": "^1.17.6", + "vite-plugin-svg-icons": "~2.0.1", + "vite-plugin-vue-inspector": "^5.3.1", + "vue-eslint-parser": "~9.4.3", + "vue-tsc": "~2.1.10" + }, + "keywords": [ + "vue", + "ant-design-vue", + "vue3", + "ts", + "tsx", + "admin", + "typescript" + ], + "target": "web" +} \ No newline at end of file diff --git a/apps/platform/prettier.config.mjs b/apps/platform/prettier.config.mjs new file mode 100644 index 0000000..e5d7d55 --- /dev/null +++ b/apps/platform/prettier.config.mjs @@ -0,0 +1,11 @@ +/** @type {import('prettier').Config} */ +export default { + printWidth: 100, + semi: true, + vueIndentScriptAndStyle: true, + singleQuote: true, + trailingComma: 'all', + proseWrap: 'never', + htmlWhitespaceSensitivity: 'strict', + endOfLine: 'auto', +}; diff --git a/public/favicon.ico b/apps/platform/public/favicon.ico similarity index 100% rename from public/favicon.ico rename to apps/platform/public/favicon.ico diff --git a/apps/platform/public/iconfont.js b/apps/platform/public/iconfont.js new file mode 100644 index 0000000..37aff3d --- /dev/null +++ b/apps/platform/public/iconfont.js @@ -0,0 +1 @@ +window._iconfont_svg_string_2184398='',function(l){var a=(a=document.getElementsByTagName("script"))[a.length-1],h=a.getAttribute("data-injectcss"),a=a.getAttribute("data-disable-injectsvg");if(!a){var v,o,i,m,z,t=function(a,h){h.parentNode.insertBefore(a,h)};if(h&&!l.__iconfont__svg__cssinject__){l.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}v=function(){var a,h=document.createElement("div");h.innerHTML=l._iconfont_svg_string_2184398,(h=h.getElementsByTagName("svg")[0])&&(h.setAttribute("aria-hidden","true"),h.style.position="absolute",h.style.width=0,h.style.height=0,h.style.overflow="hidden",h=h,(a=document.body).firstChild?t(h,a.firstChild):a.appendChild(h))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(v,0):(o=function(){document.removeEventListener("DOMContentLoaded",o,!1),v()},document.addEventListener("DOMContentLoaded",o,!1)):document.attachEvent&&(i=v,m=l.document,z=!1,s(),m.onreadystatechange=function(){"complete"==m.readyState&&(m.onreadystatechange=null,n())})}function n(){z||(z=!0,i())}function s(){try{m.documentElement.doScroll("left")}catch(a){return void setTimeout(s,50)}n()}}(window); diff --git a/apps/platform/src/App.vue b/apps/platform/src/App.vue new file mode 100644 index 0000000..c7d7138 --- /dev/null +++ b/apps/platform/src/App.vue @@ -0,0 +1,30 @@ + + + diff --git a/apps/platform/src/api/backend/api/account.ts b/apps/platform/src/api/backend/api/account.ts new file mode 100644 index 0000000..52d741e --- /dev/null +++ b/apps/platform/src/api/backend/api/account.ts @@ -0,0 +1,64 @@ +// @ts-ignore +/* eslint-disable */ + +/** + * 该文件为 @umijs/openapi 插件自动生成,请勿随意修改。如需修改请通过配置 openapi.config.ts 进行定制化。 + * */ + +import { request, type RequestOptions } from '@/utils/request'; + +/** 账户登出 GET /api/account/logout */ +export async function accountLogout(options?: RequestOptions) { + return request('/api/account/logout', { + method: 'GET', + ...(options || {}), + }); +} + +/** 获取菜单列表 GET /api/account/menus */ +export async function accountMenu(options?: RequestOptions) { + return request('/api/account/menus', { + method: 'GET', + ...(options || {}), + }); +} + +/** 更改账户密码 POST /api/account/password */ +export async function accountPassword(body: API.PasswordUpdateDto, options?: RequestOptions) { + return request('/api/account/password', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 获取权限列表 GET /api/account/permissions */ +export async function accountPermissions(options?: RequestOptions) { + return request('/api/account/permissions', { + method: 'GET', + ...(options || {}), + }); +} + +/** 获取账户资料 GET /api/account/profile */ +export async function accountProfile(options?: RequestOptions) { + return request('/api/account/profile', { + method: 'GET', + ...(options || {}), + }); +} + +/** 更改账户资料 PUT /api/account/update */ +export async function accountUpdate(body: API.AccountUpdateDto, options?: RequestOptions) { + return request('/api/account/update', { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} diff --git a/apps/platform/src/api/backend/api/auth.ts b/apps/platform/src/api/backend/api/auth.ts new file mode 100644 index 0000000..3a6a822 --- /dev/null +++ b/apps/platform/src/api/backend/api/auth.ts @@ -0,0 +1,32 @@ +// @ts-ignore +/* eslint-disable */ + +/** + * 该文件为 @umijs/openapi 插件自动生成,请勿随意修改。如需修改请通过配置 openapi.config.ts 进行定制化。 + * */ + +import { request, type RequestOptions } from '@/utils/request'; + +/** 登录 POST /api/auth/login */ +export async function authLogin(body: API.LoginDto, options?: RequestOptions) { + return request('/api/auth/login', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 注册 POST /api/auth/register */ +export async function authRegister(body: API.RegisterDto, options?: RequestOptions) { + return request('/api/auth/register', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} diff --git a/apps/platform/src/api/backend/api/authEmail.ts b/apps/platform/src/api/backend/api/authEmail.ts new file mode 100644 index 0000000..17102b0 --- /dev/null +++ b/apps/platform/src/api/backend/api/authEmail.ts @@ -0,0 +1,20 @@ +// @ts-ignore +/* eslint-disable */ + +/** + * 该文件为 @umijs/openapi 插件自动生成,请勿随意修改。如需修改请通过配置 openapi.config.ts 进行定制化。 + * */ + +import { request, type RequestOptions } from '@/utils/request'; + +/** 发送邮箱验证码 POST /api/auth/email/send */ +export async function emailSendEmailCode(body: API.SendEmailCodeDto, options?: RequestOptions) { + return request('/api/auth/email/send', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} diff --git a/apps/platform/src/api/backend/api/businessTodo.ts b/apps/platform/src/api/backend/api/businessTodo.ts new file mode 100644 index 0000000..2f1d1bd --- /dev/null +++ b/apps/platform/src/api/backend/api/businessTodo.ts @@ -0,0 +1,82 @@ +// @ts-ignore +/* eslint-disable */ + +/** + * 该文件为 @umijs/openapi 插件自动生成,请勿随意修改。如需修改请通过配置 openapi.config.ts 进行定制化。 + * */ + +import { request, type RequestOptions } from '@/utils/request'; + +/** 获取Todo列表 GET /api/todos */ +export async function todoList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.TodoListParams, + options?: RequestOptions, +) { + return request('/api/todos', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 创建Todo POST /api/todos */ +export async function todoCreate(body: API.TodoDto, options?: RequestOptions) { + return request('/api/todos', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || { successMsg: '创建成功' }), + }); +} + +/** 获取Todo详情 GET /api/todos/${param0} */ +export async function todoInfo( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.TodoInfoParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/todos/${param0}`, { + method: 'GET', + params: { ...queryParams }, + ...(options || {}), + }); +} + +/** 更新Todo PUT /api/todos/${param0} */ +export async function todoUpdate( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.TodoUpdateParams, + body: API.TodoUpdateDto, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/todos/${param0}`, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + params: { ...queryParams }, + data: body, + ...(options || { successMsg: '更新成功' }), + }); +} + +/** 删除Todo DELETE /api/todos/${param0} */ +export async function todoDelete( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.TodoDeleteParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/todos/${param0}`, { + method: 'DELETE', + params: { ...queryParams }, + ...(options || { successMsg: '删除成功' }), + }); +} diff --git a/apps/platform/src/api/backend/api/captcha.ts b/apps/platform/src/api/backend/api/captcha.ts new file mode 100644 index 0000000..30c2117 --- /dev/null +++ b/apps/platform/src/api/backend/api/captcha.ts @@ -0,0 +1,23 @@ +// @ts-ignore +/* eslint-disable */ + +/** + * 该文件为 @umijs/openapi 插件自动生成,请勿随意修改。如需修改请通过配置 openapi.config.ts 进行定制化。 + * */ + +import { request, type RequestOptions } from '@/utils/request'; + +/** 获取登录图片验证码 GET /api/auth/captcha/img */ +export async function captchaCaptchaByImg( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.CaptchaCaptchaByImgParams, + options?: RequestOptions, +) { + return request('/api/auth/captcha/img', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} diff --git a/apps/platform/src/api/backend/api/health.ts b/apps/platform/src/api/backend/api/health.ts new file mode 100644 index 0000000..80d1c90 --- /dev/null +++ b/apps/platform/src/api/backend/api/health.ts @@ -0,0 +1,73 @@ +// @ts-ignore +/* eslint-disable */ + +/** + * 该文件为 @umijs/openapi 插件自动生成,请勿随意修改。如需修改请通过配置 openapi.config.ts 进行定制化。 + * */ + +import { request, type RequestOptions } from '@/utils/request'; + +/** 此处后端没有提供注释 GET /api/health/database */ +export async function healthCheckDatabase(options?: RequestOptions) { + return request<{ + status?: string; + info?: Record; + error?: Record; + details?: Record; + }>('/api/health/database', { + method: 'GET', + ...(options || {}), + }); +} + +/** 此处后端没有提供注释 GET /api/health/disk */ +export async function healthCheckDisk(options?: RequestOptions) { + return request<{ + status?: string; + info?: Record; + error?: Record; + details?: Record; + }>('/api/health/disk', { + method: 'GET', + ...(options || {}), + }); +} + +/** 此处后端没有提供注释 GET /api/health/memory-heap */ +export async function healthCheckMemoryHeap(options?: RequestOptions) { + return request<{ + status?: string; + info?: Record; + error?: Record; + details?: Record; + }>('/api/health/memory-heap', { + method: 'GET', + ...(options || {}), + }); +} + +/** 此处后端没有提供注释 GET /api/health/memory-rss */ +export async function healthCheckMemoryRss(options?: RequestOptions) { + return request<{ + status?: string; + info?: Record; + error?: Record; + details?: Record; + }>('/api/health/memory-rss', { + method: 'GET', + ...(options || {}), + }); +} + +/** 此处后端没有提供注释 GET /api/health/network */ +export async function healthCheckNetwork(options?: RequestOptions) { + return request<{ + status?: string; + info?: Record; + error?: Record; + details?: Record; + }>('/api/health/network', { + method: 'GET', + ...(options || {}), + }); +} diff --git a/apps/platform/src/api/backend/api/index.ts b/apps/platform/src/api/backend/api/index.ts new file mode 100644 index 0000000..baf3c23 --- /dev/null +++ b/apps/platform/src/api/backend/api/index.ts @@ -0,0 +1,54 @@ +// @ts-ignore +/* eslint-disable */ +// API 更新时间: +// API 唯一标识: +import * as auth from './auth'; +import * as account from './account'; +import * as captcha from './captcha'; +import * as authEmail from './authEmail'; +import * as systemUser from './systemUser'; +import * as systemRole from './systemRole'; +import * as systemMenu from './systemMenu'; +import * as systemParamConfig from './systemParamConfig'; +import * as systemLog from './systemLog'; +import * as systemDept from './systemDept'; +import * as systemDictType from './systemDictType'; +import * as systemDictItem from './systemDictItem'; +import * as systemTask from './systemTask'; +import * as systemOnline from './systemOnline'; +import * as systemSse from './systemSse'; +import * as systemServe from './systemServe'; +import * as toolsStorage from './toolsStorage'; +import * as systemEmail from './systemEmail'; +import * as toolsUpload from './toolsUpload'; +import * as health from './health'; +import * as netDiskManage from './netDiskManage'; +import * as netDiskOverview from './netDiskOverview'; +import * as businessTodo from './businessTodo'; +import * as user from './user'; +export default { + auth, + account, + captcha, + authEmail, + systemUser, + systemRole, + systemMenu, + systemParamConfig, + systemLog, + systemDept, + systemDictType, + systemDictItem, + systemTask, + systemOnline, + systemSse, + systemServe, + toolsStorage, + systemEmail, + toolsUpload, + health, + netDiskManage, + netDiskOverview, + businessTodo, + user, +}; diff --git a/apps/platform/src/api/backend/api/netDiskManage.ts b/apps/platform/src/api/backend/api/netDiskManage.ts new file mode 100644 index 0000000..72f847d --- /dev/null +++ b/apps/platform/src/api/backend/api/netDiskManage.ts @@ -0,0 +1,133 @@ +// @ts-ignore +/* eslint-disable */ + +/** + * 该文件为 @umijs/openapi 插件自动生成,请勿随意修改。如需修改请通过配置 openapi.config.ts 进行定制化。 + * */ + +import { request, type RequestOptions } from '@/utils/request'; + +/** 复制文件或文件夹,支持批量 POST /api/netdisk/manage/copy */ +export async function netDiskManageCopy(body: API.FileOpDto, options?: RequestOptions) { + return request('/api/netdisk/manage/copy', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 剪切文件或文件夹,支持批量 POST /api/netdisk/manage/cut */ +export async function netDiskManageCut(body: API.FileOpDto, options?: RequestOptions) { + return request('/api/netdisk/manage/cut', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 删除文件或文件夹 POST /api/netdisk/manage/delete */ +export async function netDiskManageDelete(body: API.DeleteDto, options?: RequestOptions) { + return request('/api/netdisk/manage/delete', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || { successMsg: '删除成功' }), + }); +} + +/** 获取下载链接,不支持下载文件夹 GET /api/netdisk/manage/download */ +export async function netDiskManageDownload( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.NetDiskManageDownloadParams, + options?: RequestOptions, +) { + return request('/api/netdisk/manage/download', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 获取文件详细信息 GET /api/netdisk/manage/info */ +export async function netDiskManageInfo( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.NetDiskManageInfoParams, + options?: RequestOptions, +) { + return request('/api/netdisk/manage/info', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 获取文件列表 GET /api/netdisk/manage/list */ +export async function netDiskManageList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.NetDiskManageListParams, + options?: RequestOptions, +) { + return request('/api/netdisk/manage/list', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 添加文件备注 POST /api/netdisk/manage/mark */ +export async function netDiskManageMark(body: API.MarkFileDto, options?: RequestOptions) { + return request('/api/netdisk/manage/mark', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 创建文件夹,支持多级 POST /api/netdisk/manage/mkdir */ +export async function netDiskManageMkdir(body: API.MKDirDto, options?: RequestOptions) { + return request('/api/netdisk/manage/mkdir', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || { successMsg: '创建成功' }), + }); +} + +/** 重命名文件或文件夹 POST /api/netdisk/manage/rename */ +export async function netDiskManageRename(body: API.RenameDto, options?: RequestOptions) { + return request('/api/netdisk/manage/rename', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 获取上传Token,无Token前端无法上传 GET /api/netdisk/manage/token */ +export async function netDiskManageToken(options?: RequestOptions) { + return request('/api/netdisk/manage/token', { + method: 'GET', + ...(options || {}), + }); +} diff --git a/apps/platform/src/api/backend/api/netDiskOverview.ts b/apps/platform/src/api/backend/api/netDiskOverview.ts new file mode 100644 index 0000000..c5cd11c --- /dev/null +++ b/apps/platform/src/api/backend/api/netDiskOverview.ts @@ -0,0 +1,16 @@ +// @ts-ignore +/* eslint-disable */ + +/** + * 该文件为 @umijs/openapi 插件自动生成,请勿随意修改。如需修改请通过配置 openapi.config.ts 进行定制化。 + * */ + +import { request, type RequestOptions } from '@/utils/request'; + +/** 获取网盘空间数据统计 GET /api/netdisk/overview/desc */ +export async function netDiskOverviewSpace(options?: RequestOptions) { + return request('/api/netdisk/overview/desc', { + method: 'GET', + ...(options || {}), + }); +} diff --git a/apps/platform/src/api/backend/api/systemDept.ts b/apps/platform/src/api/backend/api/systemDept.ts new file mode 100644 index 0000000..82f9bdf --- /dev/null +++ b/apps/platform/src/api/backend/api/systemDept.ts @@ -0,0 +1,82 @@ +// @ts-ignore +/* eslint-disable */ + +/** + * 该文件为 @umijs/openapi 插件自动生成,请勿随意修改。如需修改请通过配置 openapi.config.ts 进行定制化。 + * */ + +import { request, type RequestOptions } from '@/utils/request'; + +/** 获取部门列表 GET /api/system/depts */ +export async function deptList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.DeptListParams, + options?: RequestOptions, +) { + return request('/api/system/depts', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 创建部门 POST /api/system/depts */ +export async function deptCreate(body: API.DeptDto, options?: RequestOptions) { + return request('/api/system/depts', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || { successMsg: '创建成功' }), + }); +} + +/** 查询部门信息 GET /api/system/depts/${param0} */ +export async function deptInfo( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.DeptInfoParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/depts/${param0}`, { + method: 'GET', + params: { ...queryParams }, + ...(options || {}), + }); +} + +/** 更新部门 PUT /api/system/depts/${param0} */ +export async function deptUpdate( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.DeptUpdateParams, + body: API.DeptDto, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/depts/${param0}`, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + params: { ...queryParams }, + data: body, + ...(options || { successMsg: '更新成功' }), + }); +} + +/** 删除部门 DELETE /api/system/depts/${param0} */ +export async function deptDelete( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.DeptDeleteParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/depts/${param0}`, { + method: 'DELETE', + params: { ...queryParams }, + ...(options || { successMsg: '删除成功' }), + }); +} diff --git a/apps/platform/src/api/backend/api/systemDictItem.ts b/apps/platform/src/api/backend/api/systemDictItem.ts new file mode 100644 index 0000000..988ed9c --- /dev/null +++ b/apps/platform/src/api/backend/api/systemDictItem.ts @@ -0,0 +1,91 @@ +// @ts-ignore +/* eslint-disable */ + +/** + * 该文件为 @umijs/openapi 插件自动生成,请勿随意修改。如需修改请通过配置 openapi.config.ts 进行定制化。 + * */ + +import { request, type RequestOptions } from '@/utils/request'; + +/** 获取字典项列表 GET /api/system/dict-item */ +export async function dictItemList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.DictItemListParams, + options?: RequestOptions, +) { + return request<{ + items?: API.DictItemEntity[]; + meta?: { + itemCount?: number; + totalItems?: number; + itemsPerPage?: number; + totalPages?: number; + currentPage?: number; + }; + }>('/api/system/dict-item', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 新增字典项 POST /api/system/dict-item */ +export async function dictItemCreate(body: API.DictItemDto, options?: RequestOptions) { + return request('/api/system/dict-item', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || { successMsg: '创建成功' }), + }); +} + +/** 查询字典项信息 GET /api/system/dict-item/${param0} */ +export async function dictItemInfo( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.DictItemInfoParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/dict-item/${param0}`, { + method: 'GET', + params: { ...queryParams }, + ...(options || {}), + }); +} + +/** 更新字典项 POST /api/system/dict-item/${param0} */ +export async function dictItemUpdate( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.DictItemUpdateParams, + body: API.DictItemDto, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/dict-item/${param0}`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + params: { ...queryParams }, + data: body, + ...(options || { successMsg: '更新成功' }), + }); +} + +/** 删除指定的字典项 DELETE /api/system/dict-item/${param0} */ +export async function dictItemDelete( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.DictItemDeleteParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/dict-item/${param0}`, { + method: 'DELETE', + params: { ...queryParams }, + ...(options || { successMsg: '删除成功' }), + }); +} diff --git a/apps/platform/src/api/backend/api/systemDictType.ts b/apps/platform/src/api/backend/api/systemDictType.ts new file mode 100644 index 0000000..32f3391 --- /dev/null +++ b/apps/platform/src/api/backend/api/systemDictType.ts @@ -0,0 +1,99 @@ +// @ts-ignore +/* eslint-disable */ + +/** + * 该文件为 @umijs/openapi 插件自动生成,请勿随意修改。如需修改请通过配置 openapi.config.ts 进行定制化。 + * */ + +import { request, type RequestOptions } from '@/utils/request'; + +/** 获取字典类型列表 GET /api/system/dict-type */ +export async function dictTypeList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.DictTypeListParams, + options?: RequestOptions, +) { + return request<{ + items?: API.DictTypeEntity[]; + meta?: { + itemCount?: number; + totalItems?: number; + itemsPerPage?: number; + totalPages?: number; + currentPage?: number; + }; + }>('/api/system/dict-type', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 新增字典类型 POST /api/system/dict-type */ +export async function dictTypeCreate(body: API.DictTypeDto, options?: RequestOptions) { + return request('/api/system/dict-type', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || { successMsg: '创建成功' }), + }); +} + +/** 查询字典类型信息 GET /api/system/dict-type/${param0} */ +export async function dictTypeInfo( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.DictTypeInfoParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/dict-type/${param0}`, { + method: 'GET', + params: { ...queryParams }, + ...(options || {}), + }); +} + +/** 更新字典类型 POST /api/system/dict-type/${param0} */ +export async function dictTypeUpdate( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.DictTypeUpdateParams, + body: API.DictTypeDto, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/dict-type/${param0}`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + params: { ...queryParams }, + data: body, + ...(options || { successMsg: '更新成功' }), + }); +} + +/** 删除指定的字典类型 DELETE /api/system/dict-type/${param0} */ +export async function dictTypeDelete( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.DictTypeDeleteParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/dict-type/${param0}`, { + method: 'DELETE', + params: { ...queryParams }, + ...(options || { successMsg: '删除成功' }), + }); +} + +/** 一次性获取所有的字典类型(不分页) GET /api/system/dict-type/select-options */ +export async function dictTypeGetAll(options?: RequestOptions) { + return request('/api/system/dict-type/select-options', { + method: 'GET', + ...(options || {}), + }); +} diff --git a/apps/platform/src/api/backend/api/systemEmail.ts b/apps/platform/src/api/backend/api/systemEmail.ts new file mode 100644 index 0000000..e8b5d33 --- /dev/null +++ b/apps/platform/src/api/backend/api/systemEmail.ts @@ -0,0 +1,20 @@ +// @ts-ignore +/* eslint-disable */ + +/** + * 该文件为 @umijs/openapi 插件自动生成,请勿随意修改。如需修改请通过配置 openapi.config.ts 进行定制化。 + * */ + +import { request, type RequestOptions } from '@/utils/request'; + +/** 发送邮件 POST /api/tools/email/send */ +export async function emailSend(body: API.EmailSendDto, options?: RequestOptions) { + return request('/api/tools/email/send', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} diff --git a/apps/platform/src/api/backend/api/systemLog.ts b/apps/platform/src/api/backend/api/systemLog.ts new file mode 100644 index 0000000..ea94d93 --- /dev/null +++ b/apps/platform/src/api/backend/api/systemLog.ts @@ -0,0 +1,80 @@ +// @ts-ignore +/* eslint-disable */ + +/** + * 该文件为 @umijs/openapi 插件自动生成,请勿随意修改。如需修改请通过配置 openapi.config.ts 进行定制化。 + * */ + +import { request, type RequestOptions } from '@/utils/request'; + +/** 查询验证码日志列表 GET /api/system/log/captcha/list */ +export async function logCaptchaList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.LogCaptchaListParams, + options?: RequestOptions, +) { + return request<{ + items?: API.CaptchaLogEntity[]; + meta?: { + itemCount?: number; + totalItems?: number; + itemsPerPage?: number; + totalPages?: number; + currentPage?: number; + }; + }>('/api/system/log/captcha/list', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 查询登录日志列表 GET /api/system/log/login/list */ +export async function logLoginLogPage( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.LogLoginLogPageParams, + options?: RequestOptions, +) { + return request<{ + items?: API.LoginLogInfo[]; + meta?: { + itemCount?: number; + totalItems?: number; + itemsPerPage?: number; + totalPages?: number; + currentPage?: number; + }; + }>('/api/system/log/login/list', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 查询任务日志列表 GET /api/system/log/task/list */ +export async function logTaskList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.LogTaskListParams, + options?: RequestOptions, +) { + return request<{ + items?: API.TaskLogEntity[]; + meta?: { + itemCount?: number; + totalItems?: number; + itemsPerPage?: number; + totalPages?: number; + currentPage?: number; + }; + }>('/api/system/log/task/list', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} diff --git a/apps/platform/src/api/backend/api/systemMenu.ts b/apps/platform/src/api/backend/api/systemMenu.ts new file mode 100644 index 0000000..8051b49 --- /dev/null +++ b/apps/platform/src/api/backend/api/systemMenu.ts @@ -0,0 +1,90 @@ +// @ts-ignore +/* eslint-disable */ + +/** + * 该文件为 @umijs/openapi 插件自动生成,请勿随意修改。如需修改请通过配置 openapi.config.ts 进行定制化。 + * */ + +import { request, type RequestOptions } from '@/utils/request'; + +/** 获取所有菜单列表 GET /api/system/menus */ +export async function menuList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.MenuListParams, + options?: RequestOptions, +) { + return request('/api/system/menus', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 新增菜单或权限 POST /api/system/menus */ +export async function menuCreate(body: API.MenuDto, options?: RequestOptions) { + return request('/api/system/menus', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || { successMsg: '创建成功' }), + }); +} + +/** 获取菜单或权限信息 GET /api/system/menus/${param0} */ +export async function menuInfo( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.MenuInfoParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/menus/${param0}`, { + method: 'GET', + params: { ...queryParams }, + ...(options || {}), + }); +} + +/** 更新菜单或权限 PUT /api/system/menus/${param0} */ +export async function menuUpdate( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.MenuUpdateParams, + body: API.MenuUpdateDto, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/menus/${param0}`, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + params: { ...queryParams }, + data: body, + ...(options || { successMsg: '更新成功' }), + }); +} + +/** 删除菜单或权限 DELETE /api/system/menus/${param0} */ +export async function menuDelete( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.MenuDeleteParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/menus/${param0}`, { + method: 'DELETE', + params: { ...queryParams }, + ...(options || { successMsg: '删除成功' }), + }); +} + +/** 获取后端定义的所有权限集 GET /api/system/menus/permissions */ +export async function menuGetPermissions(options?: RequestOptions) { + return request('/api/system/menus/permissions', { + method: 'GET', + ...(options || {}), + }); +} diff --git a/apps/platform/src/api/backend/api/systemOnline.ts b/apps/platform/src/api/backend/api/systemOnline.ts new file mode 100644 index 0000000..326a893 --- /dev/null +++ b/apps/platform/src/api/backend/api/systemOnline.ts @@ -0,0 +1,28 @@ +// @ts-ignore +/* eslint-disable */ + +/** + * 该文件为 @umijs/openapi 插件自动生成,请勿随意修改。如需修改请通过配置 openapi.config.ts 进行定制化。 + * */ + +import { request, type RequestOptions } from '@/utils/request'; + +/** 下线指定在线用户 POST /api/system/online/kick */ +export async function onlineKick(body: API.KickDto, options?: RequestOptions) { + return request('/api/system/online/kick', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 查询当前在线用户 GET /api/system/online/list */ +export async function onlineList(options?: RequestOptions) { + return request('/api/system/online/list', { + method: 'GET', + ...(options || {}), + }); +} diff --git a/apps/platform/src/api/backend/api/systemParamConfig.ts b/apps/platform/src/api/backend/api/systemParamConfig.ts new file mode 100644 index 0000000..4422940 --- /dev/null +++ b/apps/platform/src/api/backend/api/systemParamConfig.ts @@ -0,0 +1,91 @@ +// @ts-ignore +/* eslint-disable */ + +/** + * 该文件为 @umijs/openapi 插件自动生成,请勿随意修改。如需修改请通过配置 openapi.config.ts 进行定制化。 + * */ + +import { request, type RequestOptions } from '@/utils/request'; + +/** 获取参数配置列表 GET /api/system/param-config */ +export async function paramConfigList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.ParamConfigListParams, + options?: RequestOptions, +) { + return request<{ + items?: API.ParamConfigEntity[]; + meta?: { + itemCount?: number; + totalItems?: number; + itemsPerPage?: number; + totalPages?: number; + currentPage?: number; + }; + }>('/api/system/param-config', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 新增参数配置 POST /api/system/param-config */ +export async function paramConfigCreate(body: API.ParamConfigDto, options?: RequestOptions) { + return request('/api/system/param-config', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || { successMsg: '创建成功' }), + }); +} + +/** 查询参数配置信息 GET /api/system/param-config/${param0} */ +export async function paramConfigInfo( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.ParamConfigInfoParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/param-config/${param0}`, { + method: 'GET', + params: { ...queryParams }, + ...(options || {}), + }); +} + +/** 更新参数配置 POST /api/system/param-config/${param0} */ +export async function paramConfigUpdate( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.ParamConfigUpdateParams, + body: API.ParamConfigDto, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/param-config/${param0}`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + params: { ...queryParams }, + data: body, + ...(options || { successMsg: '更新成功' }), + }); +} + +/** 删除指定的参数配置 DELETE /api/system/param-config/${param0} */ +export async function paramConfigDelete( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.ParamConfigDeleteParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/param-config/${param0}`, { + method: 'DELETE', + params: { ...queryParams }, + ...(options || { successMsg: '删除成功' }), + }); +} diff --git a/apps/platform/src/api/backend/api/systemRole.ts b/apps/platform/src/api/backend/api/systemRole.ts new file mode 100644 index 0000000..dfa5ec3 --- /dev/null +++ b/apps/platform/src/api/backend/api/systemRole.ts @@ -0,0 +1,91 @@ +// @ts-ignore +/* eslint-disable */ + +/** + * 该文件为 @umijs/openapi 插件自动生成,请勿随意修改。如需修改请通过配置 openapi.config.ts 进行定制化。 + * */ + +import { request, type RequestOptions } from '@/utils/request'; + +/** 获取角色列表 GET /api/system/roles */ +export async function roleList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.RoleListParams, + options?: RequestOptions, +) { + return request<{ + items?: API.RoleEntity[]; + meta?: { + itemCount?: number; + totalItems?: number; + itemsPerPage?: number; + totalPages?: number; + currentPage?: number; + }; + }>('/api/system/roles', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 新增角色 POST /api/system/roles */ +export async function roleCreate(body: API.RoleDto, options?: RequestOptions) { + return request('/api/system/roles', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || { successMsg: '创建成功' }), + }); +} + +/** 获取角色信息 GET /api/system/roles/${param0} */ +export async function roleInfo( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.RoleInfoParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/roles/${param0}`, { + method: 'GET', + params: { ...queryParams }, + ...(options || {}), + }); +} + +/** 更新角色 PUT /api/system/roles/${param0} */ +export async function roleUpdate( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.RoleUpdateParams, + body: API.RoleUpdateDto, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/roles/${param0}`, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + params: { ...queryParams }, + data: body, + ...(options || { successMsg: '更新成功' }), + }); +} + +/** 删除角色 DELETE /api/system/roles/${param0} */ +export async function roleDelete( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.RoleDeleteParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/roles/${param0}`, { + method: 'DELETE', + params: { ...queryParams }, + ...(options || { successMsg: '删除成功' }), + }); +} diff --git a/apps/platform/src/api/backend/api/systemServe.ts b/apps/platform/src/api/backend/api/systemServe.ts new file mode 100644 index 0000000..7ddc60b --- /dev/null +++ b/apps/platform/src/api/backend/api/systemServe.ts @@ -0,0 +1,16 @@ +// @ts-ignore +/* eslint-disable */ + +/** + * 该文件为 @umijs/openapi 插件自动生成,请勿随意修改。如需修改请通过配置 openapi.config.ts 进行定制化。 + * */ + +import { request, type RequestOptions } from '@/utils/request'; + +/** 获取服务器运行信息 GET /api/system/serve/stat */ +export async function serveStat(options?: RequestOptions) { + return request('/api/system/serve/stat', { + method: 'GET', + ...(options || {}), + }); +} diff --git a/apps/platform/src/api/backend/api/systemSse.ts b/apps/platform/src/api/backend/api/systemSse.ts new file mode 100644 index 0000000..eb07ee5 --- /dev/null +++ b/apps/platform/src/api/backend/api/systemSse.ts @@ -0,0 +1,22 @@ +// @ts-ignore +/* eslint-disable */ + +/** + * 该文件为 @umijs/openapi 插件自动生成,请勿随意修改。如需修改请通过配置 openapi.config.ts 进行定制化。 + * */ + +import { request, type RequestOptions } from '@/utils/request'; + +/** 服务端推送消息 GET /api/sse/${param0} */ +export async function sseSse( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.SseSseParams, + options?: RequestOptions, +) { + const { uid: param0, ...queryParams } = params; + return request>(`/api/sse/${param0}`, { + method: 'GET', + params: { ...queryParams }, + ...(options || {}), + }); +} diff --git a/apps/platform/src/api/backend/api/systemTask.ts b/apps/platform/src/api/backend/api/systemTask.ts new file mode 100644 index 0000000..0af74c0 --- /dev/null +++ b/apps/platform/src/api/backend/api/systemTask.ts @@ -0,0 +1,133 @@ +// @ts-ignore +/* eslint-disable */ + +/** + * 该文件为 @umijs/openapi 插件自动生成,请勿随意修改。如需修改请通过配置 openapi.config.ts 进行定制化。 + * */ + +import { request, type RequestOptions } from '@/utils/request'; + +/** 获取任务列表 GET /api/system/tasks */ +export async function taskList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.TaskListParams, + options?: RequestOptions, +) { + return request<{ + items?: API.TaskEntity[]; + meta?: { + itemCount?: number; + totalItems?: number; + itemsPerPage?: number; + totalPages?: number; + currentPage?: number; + }; + }>('/api/system/tasks', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 添加任务 POST /api/system/tasks */ +export async function taskCreate(body: API.TaskDto, options?: RequestOptions) { + return request('/api/system/tasks', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 查询任务详细信息 GET /api/system/tasks/${param0} */ +export async function taskInfo( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.TaskInfoParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/tasks/${param0}`, { + method: 'GET', + params: { ...queryParams }, + ...(options || {}), + }); +} + +/** 更新任务 PUT /api/system/tasks/${param0} */ +export async function taskUpdate( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.TaskUpdateParams, + body: API.TaskUpdateDto, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/tasks/${param0}`, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + params: { ...queryParams }, + data: body, + ...(options || { successMsg: '更新成功' }), + }); +} + +/** 删除任务 DELETE /api/system/tasks/${param0} */ +export async function taskDelete( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.TaskDeleteParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/tasks/${param0}`, { + method: 'DELETE', + params: { ...queryParams }, + ...(options || { successMsg: '删除成功' }), + }); +} + +/** 手动执行一次任务 PUT /api/system/tasks/${param0}/once */ +export async function taskOnce( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.TaskOnceParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/tasks/${param0}/once`, { + method: 'PUT', + params: { ...queryParams }, + ...(options || {}), + }); +} + +/** 启动任务 PUT /api/system/tasks/${param0}/start */ +export async function taskStart( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.TaskStartParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/tasks/${param0}/start`, { + method: 'PUT', + params: { ...queryParams }, + ...(options || {}), + }); +} + +/** 停止任务 PUT /api/system/tasks/${param0}/stop */ +export async function taskStop( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.TaskStopParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/tasks/${param0}/stop`, { + method: 'PUT', + params: { ...queryParams }, + ...(options || {}), + }); +} diff --git a/apps/platform/src/api/backend/api/systemUser.ts b/apps/platform/src/api/backend/api/systemUser.ts new file mode 100644 index 0000000..d20caf5 --- /dev/null +++ b/apps/platform/src/api/backend/api/systemUser.ts @@ -0,0 +1,110 @@ +// @ts-ignore +/* eslint-disable */ + +/** + * 该文件为 @umijs/openapi 插件自动生成,请勿随意修改。如需修改请通过配置 openapi.config.ts 进行定制化。 + * */ + +import { request, type RequestOptions } from '@/utils/request'; + +/** 获取用户列表 GET /api/system/users */ +export async function userList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.UserListParams, + options?: RequestOptions, +) { + return request<{ + items?: API.UserEntity[]; + meta?: { + itemCount?: number; + totalItems?: number; + itemsPerPage?: number; + totalPages?: number; + currentPage?: number; + }; + }>('/api/system/users', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 新增用户 POST /api/system/users */ +export async function userCreate(body: API.UserDto, options?: RequestOptions) { + return request('/api/system/users', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || { successMsg: '创建成功' }), + }); +} + +/** 查询用户 GET /api/system/users/${param0} */ +export async function userRead( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.UserReadParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/users/${param0}`, { + method: 'GET', + params: { ...queryParams }, + ...(options || {}), + }); +} + +/** 更新用户 PUT /api/system/users/${param0} */ +export async function userUpdate( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.UserUpdateParams, + body: API.UserUpdateDto, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/users/${param0}`, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + params: { ...queryParams }, + data: body, + ...(options || { successMsg: '更新成功' }), + }); +} + +/** 删除用户 DELETE /api/system/users/${param0} */ +export async function userDelete( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.UserDeleteParams, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/users/${param0}`, { + method: 'DELETE', + params: { ...queryParams }, + ...(options || { successMsg: '删除成功' }), + }); +} + +/** 更改用户密码 POST /api/system/users/${param0}/password */ +export async function userPassword( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.UserPasswordParams, + body: API.UserPasswordDto, + options?: RequestOptions, +) { + const { id: param0, ...queryParams } = params; + return request(`/api/system/users/${param0}/password`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + params: { ...queryParams }, + data: body, + ...(options || {}), + }); +} diff --git a/apps/platform/src/api/backend/api/toolsStorage.ts b/apps/platform/src/api/backend/api/toolsStorage.ts new file mode 100644 index 0000000..bd158ff --- /dev/null +++ b/apps/platform/src/api/backend/api/toolsStorage.ts @@ -0,0 +1,44 @@ +// @ts-ignore +/* eslint-disable */ + +/** + * 该文件为 @umijs/openapi 插件自动生成,请勿随意修改。如需修改请通过配置 openapi.config.ts 进行定制化。 + * */ + +import { request, type RequestOptions } from '@/utils/request'; + +/** 删除文件 POST /api/tools/storage/delete */ +export async function storageDelete(body: API.StorageDeleteDto, options?: RequestOptions) { + return request('/api/tools/storage/delete', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || { successMsg: '删除成功' }), + }); +} + +/** 获取本地存储列表 GET /api/tools/storage/list */ +export async function storageList( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.StorageListParams, + options?: RequestOptions, +) { + return request<{ + items?: API.StorageInfo[]; + meta?: { + itemCount?: number; + totalItems?: number; + itemsPerPage?: number; + totalPages?: number; + currentPage?: number; + }; + }>('/api/tools/storage/list', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} diff --git a/apps/platform/src/api/backend/api/toolsUpload.ts b/apps/platform/src/api/backend/api/toolsUpload.ts new file mode 100644 index 0000000..7663200 --- /dev/null +++ b/apps/platform/src/api/backend/api/toolsUpload.ts @@ -0,0 +1,40 @@ +// @ts-ignore +/* eslint-disable */ + +/** + * 该文件为 @umijs/openapi 插件自动生成,请勿随意修改。如需修改请通过配置 openapi.config.ts 进行定制化。 + * */ + +import { request, type RequestOptions } from '@/utils/request'; + +/** 上传 POST /api/tools/upload */ +export async function uploadUpload(body: API.FileUploadDto, file?: File, options?: RequestOptions) { + const formData = new FormData(); + + if (file) { + formData.append('file', file); + } + + Object.keys(body).forEach((ele) => { + const item = (body as any)[ele]; + + if (item !== undefined && item !== null) { + if (typeof item === 'object' && !(item instanceof File)) { + if (item instanceof Array) { + item.forEach((f) => formData.append(ele, f || '')); + } else { + formData.append(ele, JSON.stringify(item)); + } + } else { + formData.append(ele, item); + } + } + }); + + return request('/api/tools/upload', { + method: 'POST', + data: formData, + requestType: 'form', + ...(options || {}), + }); +} diff --git a/apps/platform/src/api/backend/api/typings.d.ts b/apps/platform/src/api/backend/api/typings.d.ts new file mode 100644 index 0000000..15950bc --- /dev/null +++ b/apps/platform/src/api/backend/api/typings.d.ts @@ -0,0 +1,1284 @@ +declare namespace API { + type AccessTokenEntity = { + id: string; + value: string; + expired_at: string; + created_at: string; + refreshToken: RefreshTokenEntity; + user: UserEntity; + }; + + type AccountInfo = { + /** 用户名 */ + username: string; + /** 昵称 */ + nickname: string; + /** 邮箱 */ + email: string; + /** 手机号 */ + phone: string; + /** 备注 */ + remark: string; + /** 头像 */ + avatar: string; + }; + + type AccountMenus = { + meta: MenuMeta; + id: number; + path: string; + name: string; + component: string; + }; + + type AccountUpdateDto = { + /** 用户呢称 */ + nickname: string; + /** 用户邮箱 */ + email: string; + /** 用户QQ */ + qq: string; + /** 用户手机号 */ + phone: string; + /** 用户头像 */ + avatar: string; + /** 用户备注 */ + remark: string; + }; + + type CaptchaCaptchaByImgParams = { + /** 验证码宽度 */ + width?: number; + /** 验证码宽度 */ + height?: number; + }; + + type CaptchaLogEntity = { + /** 用户ID */ + userId: number; + /** 账号 */ + account: string; + /** 验证码 */ + code: string; + /** 验证码提供方 */ + provider: Record; + id: number; + createdAt: string; + updatedAt: string; + }; + + type CommonEntity = { + id: number; + createdAt: string; + updatedAt: string; + }; + + type CoreLoad = { + /** 当前CPU资源消耗 */ + rawLoad: number; + /** 当前空闲CPU资源 */ + rawLoadIdle: number; + }; + + type Cpu = { + /** 制造商 */ + manufacturer: string; + /** 品牌 */ + brand: string; + /** 物理核心数 */ + physicalCores: number; + /** 型号 */ + model: string; + /** 速度 in GHz */ + speed: number; + /** CPU资源消耗 原始滴答 */ + rawCurrentLoad: number; + /** 空闲CPU资源 原始滴答 */ + rawCurrentLoadIdle: number; + /** cpu资源消耗 */ + coresLoad: CoreLoad[]; + }; + + type DeleteDto = { + /** 需要操作的文件或文件夹 */ + files: FileOpItem[]; + /** 所在目录 */ + path: string; + }; + + type DeptDeleteParams = { + id: number; + }; + + type DeptDto = { + /** 部门名称 */ + name: string; + /** 父级部门id */ + parentId: number; + /** 排序编号 */ + orderNo?: number; + }; + + type DeptEntity = { + /** 创建者 */ + creator: string; + /** 更新者 */ + updater: string; + /** 部门名称 */ + name: string; + /** 排序 */ + orderNo: number; + children: DeptEntity[]; + parent?: DeptEntity; + id: number; + createdAt: string; + updatedAt: string; + }; + + type DeptInfoParams = { + id: number; + }; + + type DeptListParams = { + /** 部门名称 */ + name?: string; + }; + + type DeptUpdateParams = { + id: number; + }; + + type DictItemDeleteParams = { + id: number; + }; + + type DictItemDto = { + /** 创建者 */ + creator?: string; + /** 更新者 */ + updater?: string; + /** 字典项键名 */ + label?: string; + /** 字典项值 */ + value?: string; + /** 状态 */ + status?: number; + /** 备注 */ + remark?: string; + /** 字典类型 ID */ + typeId: number; + id?: number; + createdAt?: string; + updatedAt?: string; + type?: DictTypeEntity; + orderNo?: number; + }; + + type DictItemEntity = { + /** 创建者 */ + creator: string; + /** 更新者 */ + updater: string; + /** 字典项键名 */ + label: string; + /** 字典项值 */ + value: string; + /** 状态 */ + status: number; + /** 备注 */ + remark: string; + type: DictTypeEntity; + orderNo: number; + id: number; + createdAt: string; + updatedAt: string; + }; + + type DictItemInfoParams = { + id: number; + }; + + type DictItemListParams = { + page?: number; + pageSize?: number; + field?: string; + order?: 'ASC' | 'DESC'; + /** 字典类型 ID */ + typeId: number; + /** 字典项键名 */ + label?: string; + /** 字典项值 */ + value?: string; + _t?: number; + }; + + type DictItemUpdateParams = { + id: number; + }; + + type DictTypeDeleteParams = { + id: number; + }; + + type DictTypeDto = { + /** 创建者 */ + creator?: string; + /** 更新者 */ + updater?: string; + /** 字典类型名称 */ + name?: string; + /** 字典类型code */ + code?: string; + /** 状态 */ + status?: number; + /** 备注 */ + remark?: string; + id?: number; + createdAt?: string; + updatedAt?: string; + }; + + type DictTypeEntity = { + /** 创建者 */ + creator: string; + /** 更新者 */ + updater: string; + /** 字典名称 */ + name: string; + /** 字典编码 */ + code: string; + /** 状态 */ + status: number; + /** 备注 */ + remark: string; + id: number; + createdAt: string; + updatedAt: string; + }; + + type DictTypeInfoParams = { + id: number; + }; + + type DictTypeListParams = { + page?: number; + pageSize?: number; + field?: string; + order?: 'ASC' | 'DESC'; + /** 字典类型名称 */ + name: string; + /** 字典类型code */ + code: string; + _t?: number; + }; + + type DictTypeUpdateParams = { + id: number; + }; + + type Disk = { + /** 磁盘空间大小 (bytes) */ + size: number; + /** 已使用磁盘空间 (bytes) */ + used: number; + /** 可用磁盘空间 (bytes) */ + available: number; + }; + + type EmailSendDto = { + /** 收件人邮箱 */ + to: string; + /** 标题 */ + subject: string; + /** 正文 */ + content: string; + }; + + type FileOpDto = { + /** 需要操作的文件或文件夹 */ + files: FileOpItem[]; + /** 操作前的目录 */ + originPath: string; + /** 操作后的目录 */ + toPath: string; + }; + + type FileOpItem = { + /** 文件类型 */ + type: 'file' | 'dir'; + /** 文件名称 */ + name: string; + }; + + type FileUploadDto = { + /** 文件 */ + file: Record; + }; + + type FlowInfo = { + /** 当月的X号 */ + times: number[]; + /** 对应天数的耗费流量 */ + datas: number[]; + }; + + type ImageCaptcha = { + /** base64格式的svg图片 */ + img: string; + /** 验证码对应的唯一ID */ + id: string; + }; + + type KickDto = { + /** tokenId */ + tokenId: string; + }; + + type LogCaptchaListParams = { + page?: number; + pageSize?: number; + field?: string; + order?: 'ASC' | 'DESC'; + /** 用户名 */ + username: string; + /** 验证码 */ + code?: string; + /** 发送时间 */ + time?: string[]; + _t?: number; + }; + + type LoginDto = { + /** 手机号/邮箱 */ + username: string; + /** 密码 */ + password: string; + /** 验证码标识 */ + captchaId: string; + /** 用户输入的验证码 */ + verifyCode: string; + }; + + type LoginLogInfo = { + /** 日志编号 */ + id: number; + /** 登录ip */ + ip: string; + /** 登录地址 */ + address: string; + /** 系统 */ + os: string; + /** 浏览器 */ + browser: string; + /** 登录用户名 */ + username: string; + /** 登录时间 */ + time: string; + }; + + type LoginToken = { + /** JWT身份Token */ + token: string; + }; + + type LogLoginLogPageParams = { + page?: number; + pageSize?: number; + field?: string; + order?: 'ASC' | 'DESC'; + /** 用户名 */ + username: string; + /** 登录IP */ + ip?: string; + /** 登录地点 */ + address?: string; + /** 登录时间 */ + time?: string[]; + _t?: number; + }; + + type LogTaskListParams = { + page?: number; + pageSize?: number; + field?: string; + order?: 'ASC' | 'DESC'; + /** 用户名 */ + username: string; + /** 登录IP */ + ip?: string; + /** 登录时间 */ + time?: string[]; + _t?: number; + }; + + type MarkFileDto = { + /** 文件名 */ + name: string; + /** 文件所在路径 */ + path: string; + /** 备注信息 */ + mark: string; + }; + + type Memory = { + /** total memory in bytes */ + total: number; + /** 可用内存 */ + available: number; + }; + + type MenuDeleteParams = { + id: number; + }; + + type MenuDto = { + /** 菜单类型 */ + type: 0 | 1 | 2; + /** 父级菜单 */ + parentId: number; + /** 菜单或权限名称 */ + name: string; + /** 排序 */ + orderNo: number; + /** 前端路由地址 */ + path: string; + /** 是否外链 */ + isExt: boolean; + /** 外链打开方式 */ + extOpenMode: 1 | 2; + /** 菜单是否显示 */ + show: 0 | 1; + /** 设置当前路由高亮的菜单项,一般用于详情页 */ + activeMenu?: string; + /** 是否开启页面缓存 */ + keepAlive: 0 | 1; + /** 状态 */ + status: 0 | 1; + /** 菜单图标 */ + icon?: string; + /** 对应权限 */ + permission: string; + /** 菜单路由路径或外链 */ + component?: string; + }; + + type MenuInfoParams = { + id: number; + }; + + type MenuItemInfo = { + /** 创建者 */ + creator: string; + /** 更新者 */ + updater: string; + children: MenuItemInfo[]; + parentId: number; + name: string; + path: string; + permission: string; + type: number; + icon: string; + orderNo: number; + component: string; + isExt: boolean; + extOpenMode: number; + keepAlive: number; + show: number; + activeMenu: string; + status: number; + roles: RoleEntity[]; + id: number; + createdAt: string; + updatedAt: string; + }; + + type MenuListParams = { + /** 菜单类型 */ + type?: 0 | 1 | 2; + /** 父级菜单 */ + parentId?: number; + /** 菜单或权限名称 */ + name?: string; + /** 排序 */ + orderNo?: number; + /** 前端路由地址 */ + path?: string; + /** 是否外链 */ + isExt?: boolean; + /** 外链打开方式 */ + extOpenMode?: 1 | 2; + /** 菜单是否显示 */ + show?: 0 | 1; + /** 设置当前路由高亮的菜单项,一般用于详情页 */ + activeMenu?: string; + /** 是否开启页面缓存 */ + keepAlive?: 0 | 1; + /** 状态 */ + status?: 0 | 1; + /** 菜单图标 */ + icon?: string; + /** 对应权限 */ + permission?: string; + /** 菜单路由路径或外链 */ + component?: string; + }; + + type MenuMeta = { + /** 创建者 */ + creator?: string; + /** 更新者 */ + updater?: string; + title: string; + permission?: string; + type?: number; + icon?: string; + orderNo?: number; + component?: string; + isExt?: boolean; + extOpenMode?: number; + keepAlive?: number; + show?: number; + activeMenu?: string; + status?: number; + }; + + type MenuUpdateDto = { + /** 菜单类型 */ + type?: 0 | 1 | 2; + /** 父级菜单 */ + parentId?: number; + /** 菜单或权限名称 */ + name?: string; + /** 排序 */ + orderNo?: number; + /** 前端路由地址 */ + path?: string; + /** 是否外链 */ + isExt?: boolean; + /** 外链打开方式 */ + extOpenMode?: 1 | 2; + /** 菜单是否显示 */ + show?: 0 | 1; + /** 设置当前路由高亮的菜单项,一般用于详情页 */ + activeMenu?: string; + /** 是否开启页面缓存 */ + keepAlive?: 0 | 1; + /** 状态 */ + status?: 0 | 1; + /** 菜单图标 */ + icon?: string; + /** 对应权限 */ + permission?: string; + /** 菜单路由路径或外链 */ + component?: string; + }; + + type MenuUpdateParams = { + id: number; + }; + + type MKDirDto = { + /** 文件夹名称 */ + dirName: string; + /** 所属路径 */ + path: string; + }; + + type NetDiskManageDownloadParams = { + /** 文件名 */ + name: string; + /** 文件所在路径 */ + path: string; + }; + + type NetDiskManageInfoParams = { + /** 文件名 */ + name: string; + /** 文件所在路径 */ + path: string; + }; + + type NetDiskManageListParams = { + /** 分页标识 */ + marker: string; + /** 当前路径 */ + path: string; + /** 搜索关键字 */ + key?: string; + }; + + type OnlineUserInfo = { + /** 登录ip */ + ip: string; + /** 登录地址 */ + address: string; + /** 系统 */ + os: string; + /** 浏览器 */ + browser: string; + /** 登录用户名 */ + username: string; + /** 登录时间 */ + time: string; + /** tokenId */ + tokenId: string; + /** 部门名称 */ + deptName: string; + /** 用户ID */ + uid: number; + /** 是否为当前登录用户 */ + isCurrent: boolean; + /** 不允许踢当前用户或超级管理员下线 */ + disable: boolean; + }; + + type OverviewSpaceInfo = { + /** 当前使用容量 */ + spaceSize: number; + /** 当前文件数量 */ + fileSize: number; + /** 当天使用流量 */ + flowSize: number; + /** 当天请求次数 */ + hitSize: number; + /** 流量趋势,从当月1号开始计算 */ + flowTrend: FlowInfo; + /** 容量趋势,从当月1号开始计算 */ + sizeTrend: SpaceInfo; + }; + + type Pagination = {}; + + type ParamConfigDeleteParams = { + id: number; + }; + + type ParamConfigDto = { + /** 参数名称 */ + name: string; + /** 参数键名 */ + key: string; + /** 参数值 */ + value: string; + /** 备注 */ + remark?: string; + }; + + type ParamConfigEntity = { + /** 配置名 */ + name: string; + /** 配置键名 */ + key: string; + /** 配置值 */ + value: string; + /** 配置描述 */ + remark: string; + id: number; + createdAt: string; + updatedAt: string; + }; + + type ParamConfigInfoParams = { + id: number; + }; + + type ParamConfigListParams = { + page?: number; + pageSize?: number; + field?: string; + order?: 'ASC' | 'DESC'; + /** 参数名称 */ + name: string; + _t?: number; + }; + + type ParamConfigUpdateParams = { + id: number; + }; + + type PasswordUpdateDto = { + /** 旧密码 */ + oldPassword: string; + /** 新密码 */ + newPassword: string; + }; + + type RefreshTokenEntity = { + id: string; + value: string; + expired_at: string; + created_at: string; + accessToken: AccessTokenEntity; + }; + + type RegisterDto = { + /** 账号 */ + username: string; + /** 密码 */ + password: string; + /** 语言 */ + lang: string; + }; + + type RenameDto = { + /** 文件类型 */ + type: string; + /** 更改的名称 */ + toName: string; + /** 原来的名称 */ + name: string; + /** 路径 */ + path: string; + }; + + type ResOp = { + data: Record; + code: number; + message: string; + }; + + type RoleDeleteParams = { + id: number; + }; + + type RoleDto = { + /** 角色名称 */ + name: string; + /** 角色标识 */ + value: string; + /** 角色备注 */ + remark?: string; + /** 状态 */ + status: 0 | 1; + /** 关联菜单、权限编号 */ + menuIds?: number[]; + }; + + type RoleEntity = { + /** 创建者 */ + creator: string; + /** 更新者 */ + updater: string; + /** 角色名 */ + name: string; + /** 角色标识 */ + value: string; + /** 角色描述 */ + remark: string; + /** 状态:1启用,0禁用 */ + status: number; + /** 是否默认用户 */ + default: boolean; + id: number; + createdAt: string; + updatedAt: string; + }; + + type RoleInfo = { + /** 创建者 */ + creator: string; + /** 更新者 */ + updater: string; + /** 角色名 */ + name: string; + /** 角色标识 */ + value: string; + /** 角色描述 */ + remark: string; + /** 状态:1启用,0禁用 */ + status: number; + /** 是否默认用户 */ + default: boolean; + menuIds: number[]; + id: number; + createdAt: string; + updatedAt: string; + }; + + type RoleInfoParams = { + id: number; + }; + + type RoleListParams = { + page?: number; + pageSize?: number; + field?: string; + order?: 'ASC' | 'DESC'; + /** 角色名称 */ + name?: string; + /** 角色值 */ + value?: string; + /** 角色备注 */ + remark?: string; + /** 状态 */ + status?: 0 | 1; + /** 关联菜单、权限编号 */ + menuIds?: number[]; + _t?: number; + }; + + type RoleUpdateDto = { + /** 角色名称 */ + name?: string; + /** 角色标识 */ + value?: string; + /** 角色备注 */ + remark?: string; + /** 状态 */ + status?: 0 | 1; + /** 关联菜单、权限编号 */ + menuIds?: number[]; + }; + + type RoleUpdateParams = { + id: number; + }; + + type Runtime = { + /** 系统 */ + os: string; + /** 服务器架构 */ + arch: string; + /** Node版本 */ + nodeVersion: string; + /** Npm版本 */ + npmVersion: string; + }; + + type SendEmailCodeDto = { + /** 邮箱 */ + email: string; + }; + + type ServeStatInfo = { + /** 运行环境 */ + runtime: Runtime; + /** CPU信息 */ + cpu: Cpu; + /** 磁盘信息 */ + disk: Disk; + /** 内存信息 */ + memory: Memory; + }; + + type SFileInfo = { + /** 文件id */ + id: string; + /** 文件类型 */ + type: 'file' | 'dir'; + /** 文件名称 */ + name: string; + /** 存入时间 */ + putTime: string; + /** 文件大小, byte单位 */ + fsize: string; + /** 文件的mime-type */ + mimeType: string; + /** 所属目录 */ + belongTo: string; + }; + + type SFileInfoDetail = { + /** 文件大小,int64类型,单位为字节(Byte) */ + fsize: number; + /** 文件HASH值 */ + hash: string; + /** 文件MIME类型,string类型 */ + mimeType: string; + /** 文件存储类型,2 表示归档存储,1 表示低频存储,0表示普通存储。 */ + type: number; + /** 文件上传时间 */ + putTime: string; + /** 文件md5值 */ + md5: string; + /** 上传人 */ + uploader: string; + /** 文件备注 */ + mark: string; + }; + + type SFileList = { + /** 文件列表 */ + list: SFileInfo[]; + /** 分页标志,空则代表加载完毕 */ + marker: string; + }; + + type SpaceInfo = { + /** 当月的X号 */ + times: number[]; + /** 对应天数的容量, byte单位 */ + datas: number[]; + }; + + type SseSseParams = { + uid: number; + }; + + type StorageDeleteDto = { + /** 需要删除的文件ID列表 */ + ids: number[]; + }; + + type StorageInfo = { + /** 文件ID */ + id: number; + /** 文件名 */ + name: string; + /** 文件扩展名 */ + extName: string; + /** 文件路径 */ + path: string; + /** 文件类型 */ + type: string; + /** 大小 */ + size: string; + /** 上传时间 */ + createdAt: string; + /** 上传者 */ + username: string; + }; + + type StorageListParams = { + page?: number; + pageSize?: number; + field?: string; + order?: 'ASC' | 'DESC'; + /** 文件名 */ + name: string; + /** 文件后缀 */ + extName: string; + /** 文件类型 */ + type: string; + /** 大小 */ + size: string; + /** 上传时间 */ + time: string[]; + /** 上传者 */ + username: string; + _t?: number; + }; + + type String = {}; + + type TaskDeleteParams = { + id: number; + }; + + type TaskDto = { + /** 任务名称 */ + name: string; + /** 调用的服务 */ + service: string; + /** 任务类别:cron | interval */ + type: 0 | 1; + /** 任务状态 */ + status: 0 | 1; + /** 开始时间 */ + startTime?: string; + /** 结束时间 */ + endTime?: string; + /** 限制执行次数,负数则无限制 */ + limit?: number; + /** cron表达式 */ + cron: string; + /** 执行间隔,毫秒单位 */ + every?: number; + /** 执行参数 */ + data?: string; + /** 任务备注 */ + remark?: string; + }; + + type TaskEntity = { + /** 任务名 */ + name: string; + /** 任务标识 */ + service: string; + /** 任务类型 0cron 1间隔 */ + type: number; + /** 任务状态 0禁用 1启用 */ + status: number; + /** 开始时间 */ + startTime: string; + /** 结束时间 */ + endTime: string; + /** 间隔时间 */ + limit: number; + /** cron表达式 */ + cron: string; + /** 执行次数 */ + every: number; + /** 任务参数 */ + data: string; + /** 任务配置 */ + jobOpts: string; + /** 任务描述 */ + remark: string; + id: number; + createdAt: string; + updatedAt: string; + }; + + type TaskInfoParams = { + id: number; + }; + + type TaskListParams = { + page?: number; + pageSize?: number; + field?: string; + order?: 'ASC' | 'DESC'; + /** 任务名称 */ + name?: string; + /** 调用的服务 */ + service?: string; + /** 任务类别:cron | interval */ + type?: 0 | 1; + /** 任务状态 */ + status?: 0 | 1; + /** 开始时间 */ + startTime?: string; + /** 结束时间 */ + endTime?: string; + /** 限制执行次数,负数则无限制 */ + limit?: number; + /** cron表达式 */ + cron?: string; + /** 执行间隔,毫秒单位 */ + every?: number; + /** 执行参数 */ + data?: string; + /** 任务备注 */ + remark?: string; + _t?: number; + }; + + type TaskLogEntity = { + /** 任务状态:0失败,1成功 */ + status: number; + /** 任务日志信息 */ + detail: string; + /** 任务耗时 */ + consumeTime: number; + task: TaskEntity; + id: number; + createdAt: string; + updatedAt: string; + }; + + type TaskOnceParams = { + id: number; + }; + + type TaskStartParams = { + id: number; + }; + + type TaskStopParams = { + id: number; + }; + + type TaskUpdateDto = { + /** 任务名称 */ + name?: string; + /** 调用的服务 */ + service?: string; + /** 任务类别:cron | interval */ + type?: 0 | 1; + /** 任务状态 */ + status?: 0 | 1; + /** 开始时间 */ + startTime?: string; + /** 结束时间 */ + endTime?: string; + /** 限制执行次数,负数则无限制 */ + limit?: number; + /** cron表达式 */ + cron?: string; + /** 执行间隔,毫秒单位 */ + every?: number; + /** 执行参数 */ + data?: string; + /** 任务备注 */ + remark?: string; + }; + + type TaskUpdateParams = { + id: number; + }; + + type TodoDeleteParams = { + id: number; + }; + + type TodoDto = { + /** 名称 */ + value: string; + }; + + type TodoEntity = { + /** todo */ + value: string; + /** todo */ + status: boolean; + user: UserEntity; + id: number; + createdAt: string; + updatedAt: string; + }; + + type TodoInfoParams = { + id: number; + }; + + type TodoListParams = { + page?: number; + pageSize?: number; + field?: string; + order?: 'ASC' | 'DESC'; + /** 名称 */ + value: string; + _t?: number; + }; + + type TodoUpdateDto = { + /** 名称 */ + value?: string; + }; + + type TodoUpdateParams = { + id: number; + }; + + type TreeResult = { + id: number; + parentId: number; + children: string[]; + }; + + type UploadToken = { + /** 上传token */ + token: string; + }; + + type UserDeleteParams = { + id: string | number; + }; + + type UserDto = { + /** 头像 */ + avatar?: string; + /** 登录账号 */ + username: string; + /** 登录密码 */ + password: string; + /** 归属角色 */ + roleIds: number[]; + /** 归属大区 */ + deptId?: number; + /** 呢称 */ + nickname: string; + /** 邮箱 */ + email: string; + /** 手机号 */ + phone?: string; + /** QQ */ + qq?: string; + /** 备注 */ + remark?: string; + /** 状态 */ + status: 0 | 1; + }; + + type UserEntity = { + username: string; + password: string; + psalt: string; + nickname: string; + avatar: string; + qq: string; + email: string; + phone: string; + remark: string; + status: number; + roles: RoleEntity[]; + dept: DeptEntity; + accessTokens: AccessTokenEntity[]; + id: number; + createdAt: string; + updatedAt: string; + }; + + type UserListParams = { + page?: number; + pageSize?: number; + field?: string; + order?: 'ASC' | 'DESC'; + /** 头像 */ + avatar?: string; + /** 登录账号 */ + username?: string; + /** 登录密码 */ + password?: string; + /** 归属角色 */ + roleIds?: number[]; + /** 归属大区 */ + deptId?: number; + /** 呢称 */ + nickname?: string; + /** 邮箱 */ + email?: string; + /** 手机号 */ + phone?: string; + /** QQ */ + qq?: string; + /** 备注 */ + remark?: string; + /** 状态 */ + status?: 0 | 1; + _t?: number; + }; + + type UserPasswordDto = { + /** 更改后的密码 */ + password: string; + }; + + type UserPasswordParams = { + id: number; + }; + + type UserReadParams = { + id: number; + }; + + type UserUpdateDto = { + /** 头像 */ + avatar?: string; + /** 登录账号 */ + username?: string; + /** 登录密码 */ + password?: string; + /** 归属角色 */ + roleIds?: number[]; + /** 归属大区 */ + deptId?: number; + /** 呢称 */ + nickname?: string; + /** 邮箱 */ + email?: string; + /** 手机号 */ + phone?: string; + /** QQ */ + qq?: string; + /** 备注 */ + remark?: string; + /** 状态 */ + status?: 0 | 1; + }; + + type UserUpdateParams = { + id: number; + }; +} diff --git a/apps/platform/src/api/backend/api/user.ts b/apps/platform/src/api/backend/api/user.ts new file mode 100644 index 0000000..e678498 --- /dev/null +++ b/apps/platform/src/api/backend/api/user.ts @@ -0,0 +1,29 @@ +import { request } from '@/utils/request'; + +enum Api { + Login = '/boyanghu/iotree-service/platform/login', +} + +/** + * @description: 登录接口参数 + */ +export interface LoginParams { + phone: string; + type: number; // 0短信 1密码 + code?: string; + password?: string; +} + +/** + * @description: 用户登录 + */ +export function loginApi(params: LoginParams) { + return request({ + url: Api.Login, + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + }, + data: params, + }); +} diff --git a/apps/platform/src/api/demo/dict.ts b/apps/platform/src/api/demo/dict.ts new file mode 100644 index 0000000..cf149c4 --- /dev/null +++ b/apps/platform/src/api/demo/dict.ts @@ -0,0 +1,11 @@ +import { request } from '@/utils/request'; + +export type DictType = 'gender' | 'sell_status'; + +export async function getDictData(params: { type: DictType }) { + return request({ + url: '/dict/data', + method: 'GET', + params, + }); +} diff --git a/apps/platform/src/api/demo/hero.ts b/apps/platform/src/api/demo/hero.ts new file mode 100644 index 0000000..04d9e49 --- /dev/null +++ b/apps/platform/src/api/demo/hero.ts @@ -0,0 +1,33 @@ +import { request } from '@/utils/request'; + +/** + * @description 获取王者荣耀英雄列表 + */ +export function getWzryHeroList(query: API.PageParams) { + return request({ + url: '/demo/wzry/hero_list', + method: 'get', + params: query, + }); +} + +/** + * @description 获取英雄联盟英雄列表 + */ +export function getLolHeroList(query: API.PageParams) { + return request({ + url: '/demo/lol/hero_list', + method: 'get', + params: query, + }); +} + +/** + * @description 获取英雄联盟英雄列表 + */ +export function getLolHeroInfo({ id }) { + return request({ + url: `/demo/lol/hero_info/${id}`, + method: 'get', + }); +} diff --git a/apps/platform/src/api/demo/select.ts b/apps/platform/src/api/demo/select.ts new file mode 100644 index 0000000..2de1660 --- /dev/null +++ b/apps/platform/src/api/demo/select.ts @@ -0,0 +1,14 @@ +import { request } from '@/utils/request'; + +interface DemoOptionsItem { + name: string; + id: string; +} + +export async function optionsListApi(params?: Recordable) { + return request({ + url: '/select/getDemoOptions', + method: 'GET', + params, + }); +} diff --git a/apps/platform/src/api/demo/user.ts b/apps/platform/src/api/demo/user.ts new file mode 100644 index 0000000..e706474 --- /dev/null +++ b/apps/platform/src/api/demo/user.ts @@ -0,0 +1,26 @@ +import { request } from '@/utils/request'; + +enum Api { + Login = '/boyanghu/iotree-service/platform/login', +} + +/** + * @description: 登录接口参数 + */ +export interface LoginParams { + phone: string; + password?: string; + code?: string; + type: number; // 0短信 1密码 +} + +/** + * @description: 用户登录 + */ +export function loginApi(params: LoginParams) { + return request({ + url: Api.Login, + method: 'POST', + data: params, + }); +} diff --git a/apps/platform/src/api/index.ts b/apps/platform/src/api/index.ts new file mode 100644 index 0000000..56ab413 --- /dev/null +++ b/apps/platform/src/api/index.ts @@ -0,0 +1,5 @@ +import Api from './backend/api'; + +export { Api }; + +export default Api; diff --git a/apps/platform/src/api/typings.d.ts b/apps/platform/src/api/typings.d.ts new file mode 100644 index 0000000..49b7c3f --- /dev/null +++ b/apps/platform/src/api/typings.d.ts @@ -0,0 +1,36 @@ +// @ts-ignore +/* eslint-disable */ + +declare namespace API { + /** 全局通过表格查询返回结果 */ + type TableListResult = { + items?: T; + meta?: PaginationResult; + }; + + /** 全局通用表格分页返回数据结构 */ + type PaginationResult = { + itemCount?: number; + totalItems?: number; + itemsPerPage?: number; + totalPages?: number; + currentPage?: number; + }; + + /** 全局通用表格分页请求参数 */ + type PageParams = { + page?: number; + pageSize?: number; + } & { + [P in keyof T]?: T[P]; + }; + + type ErrorResponse = { + /** 业务约定的错误码 */ + errorCode: string; + /** 业务上的错误信息 */ + errorMessage?: string; + /** 业务上的请求是否成功 */ + success?: boolean; + }; +} diff --git a/apps/platform/src/assets/404.gif b/apps/platform/src/assets/404.gif new file mode 100644 index 0000000..cd6e0d9 Binary files /dev/null and b/apps/platform/src/assets/404.gif differ diff --git a/apps/platform/src/assets/analysis.svg b/apps/platform/src/assets/analysis.svg new file mode 100644 index 0000000..9c2da55 --- /dev/null +++ b/apps/platform/src/assets/analysis.svg @@ -0,0 +1 @@ +- \ No newline at end of file diff --git a/apps/platform/src/assets/icons/dark.svg b/apps/platform/src/assets/icons/dark.svg new file mode 100644 index 0000000..f646bd7 --- /dev/null +++ b/apps/platform/src/assets/icons/dark.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/platform/src/assets/icons/file-type-code.svg b/apps/platform/src/assets/icons/file-type-code.svg new file mode 100644 index 0000000..3413de1 --- /dev/null +++ b/apps/platform/src/assets/icons/file-type-code.svg @@ -0,0 +1 @@ + diff --git a/apps/platform/src/assets/icons/file-type-dir.svg b/apps/platform/src/assets/icons/file-type-dir.svg new file mode 100644 index 0000000..1bedac3 --- /dev/null +++ b/apps/platform/src/assets/icons/file-type-dir.svg @@ -0,0 +1 @@ + diff --git a/apps/platform/src/assets/icons/file-type-docx.svg b/apps/platform/src/assets/icons/file-type-docx.svg new file mode 100644 index 0000000..4fe7a6c --- /dev/null +++ b/apps/platform/src/assets/icons/file-type-docx.svg @@ -0,0 +1 @@ + diff --git a/apps/platform/src/assets/icons/file-type-excel.svg b/apps/platform/src/assets/icons/file-type-excel.svg new file mode 100644 index 0000000..cc87c77 --- /dev/null +++ b/apps/platform/src/assets/icons/file-type-excel.svg @@ -0,0 +1 @@ + diff --git a/apps/platform/src/assets/icons/file-type-img.svg b/apps/platform/src/assets/icons/file-type-img.svg new file mode 100644 index 0000000..44feb58 --- /dev/null +++ b/apps/platform/src/assets/icons/file-type-img.svg @@ -0,0 +1 @@ + diff --git a/apps/platform/src/assets/icons/file-type-music.svg b/apps/platform/src/assets/icons/file-type-music.svg new file mode 100644 index 0000000..2677733 --- /dev/null +++ b/apps/platform/src/assets/icons/file-type-music.svg @@ -0,0 +1 @@ + diff --git a/apps/platform/src/assets/icons/file-type-office.svg b/apps/platform/src/assets/icons/file-type-office.svg new file mode 100644 index 0000000..04d37e3 --- /dev/null +++ b/apps/platform/src/assets/icons/file-type-office.svg @@ -0,0 +1 @@ + diff --git a/apps/platform/src/assets/icons/file-type-pdf.svg b/apps/platform/src/assets/icons/file-type-pdf.svg new file mode 100644 index 0000000..799b897 --- /dev/null +++ b/apps/platform/src/assets/icons/file-type-pdf.svg @@ -0,0 +1 @@ + diff --git a/apps/platform/src/assets/icons/file-type-ppt.svg b/apps/platform/src/assets/icons/file-type-ppt.svg new file mode 100644 index 0000000..3766d58 --- /dev/null +++ b/apps/platform/src/assets/icons/file-type-ppt.svg @@ -0,0 +1 @@ + diff --git a/apps/platform/src/assets/icons/file-type-psd.svg b/apps/platform/src/assets/icons/file-type-psd.svg new file mode 100644 index 0000000..61ca32a --- /dev/null +++ b/apps/platform/src/assets/icons/file-type-psd.svg @@ -0,0 +1 @@ + diff --git a/apps/platform/src/assets/icons/file-type-txt.svg b/apps/platform/src/assets/icons/file-type-txt.svg new file mode 100644 index 0000000..9ca9d93 --- /dev/null +++ b/apps/platform/src/assets/icons/file-type-txt.svg @@ -0,0 +1 @@ + diff --git a/apps/platform/src/assets/icons/file-type-unknown.svg b/apps/platform/src/assets/icons/file-type-unknown.svg new file mode 100644 index 0000000..0629c37 --- /dev/null +++ b/apps/platform/src/assets/icons/file-type-unknown.svg @@ -0,0 +1 @@ + diff --git a/apps/platform/src/assets/icons/file-type-video.svg b/apps/platform/src/assets/icons/file-type-video.svg new file mode 100644 index 0000000..7582c39 --- /dev/null +++ b/apps/platform/src/assets/icons/file-type-video.svg @@ -0,0 +1 @@ + diff --git a/apps/platform/src/assets/icons/file-type-zip.svg b/apps/platform/src/assets/icons/file-type-zip.svg new file mode 100644 index 0000000..84b316c --- /dev/null +++ b/apps/platform/src/assets/icons/file-type-zip.svg @@ -0,0 +1 @@ + diff --git a/apps/platform/src/assets/icons/light.svg b/apps/platform/src/assets/icons/light.svg new file mode 100644 index 0000000..ab7cc08 --- /dev/null +++ b/apps/platform/src/assets/icons/light.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/platform/src/assets/icons/locale.svg b/apps/platform/src/assets/icons/locale.svg new file mode 100644 index 0000000..c7b2683 --- /dev/null +++ b/apps/platform/src/assets/icons/locale.svg @@ -0,0 +1,14 @@ + diff --git a/apps/platform/src/assets/icons/login.svg b/apps/platform/src/assets/icons/login.svg new file mode 100644 index 0000000..e3ce2c4 --- /dev/null +++ b/apps/platform/src/assets/icons/login.svg @@ -0,0 +1,68 @@ + + + Group 21 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +