From 82967e63c26acaa6ffdad2e8e3e3b0e51875bbf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=90=91=E5=A4=9C?= Date: Fri, 21 Jun 2024 17:50:05 +0800 Subject: [PATCH 01/30] refactor(cli): rename `children` to `items` to fix changes with vitepress api Related Issues: #1879 --- .../devui-vue/devui-cli/templates/vitepress-sidebar.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/devui-vue/devui-cli/templates/vitepress-sidebar.js b/packages/devui-vue/devui-cli/templates/vitepress-sidebar.js index 28ba17c133..be789daf6c 100644 --- a/packages/devui-vue/devui-cli/templates/vitepress-sidebar.js +++ b/packages/devui-vue/devui-cli/templates/vitepress-sidebar.js @@ -14,8 +14,8 @@ const { isReadyToRelease } = require('../shared/utils'); // return { text, link: `/${SITES_COMPONENTS_DIR_NAME}/${kebabCase(name)}/`, status } // } -function buildCategoryOptions(text, children = []) { - return { text, children }; +function buildCategoryOptions(text, items = []) { + return { text, items }; } function generateZhMenus(componentsInfo) { @@ -72,7 +72,7 @@ exports.createVitepressSidebarTemplates = (componentsInfo = []) => { }, { "text": "Design Token", - "children": DESIGN_TOKENS_INFO + "items": DESIGN_TOKENS_INFO }, ], handler: generateZhMenus, @@ -94,7 +94,7 @@ exports.createVitepressSidebarTemplates = (componentsInfo = []) => { }, { "text": "Design Token", - "children": DESIGN_TOKENS_INFO + "items": DESIGN_TOKENS_INFO }, ], handler: generateEnMenus, From ab4cd16788b6f6fe6804d5f44cf82d9b5e6852cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=90=91=E5=A4=9C?= Date: Fri, 21 Jun 2024 17:50:43 +0800 Subject: [PATCH 02/30] refactor(config): refactor config for vitepress@latest Related Issues: #1879 --- packages/devui-vue/docs/.vitepress/config.js | 4 -- packages/devui-vue/docs/.vitepress/config.mts | 54 +++++++++++++++++++ .../devui-vue/docs/.vitepress/config/index.ts | 46 ---------------- .../devui-vue/docs/.vitepress/config/lang.ts | 16 ------ .../docs/.vitepress/config/markdown.ts | 14 ----- 5 files changed, 54 insertions(+), 80 deletions(-) delete mode 100644 packages/devui-vue/docs/.vitepress/config.js create mode 100644 packages/devui-vue/docs/.vitepress/config.mts delete mode 100644 packages/devui-vue/docs/.vitepress/config/index.ts delete mode 100644 packages/devui-vue/docs/.vitepress/config/lang.ts delete mode 100644 packages/devui-vue/docs/.vitepress/config/markdown.ts diff --git a/packages/devui-vue/docs/.vitepress/config.js b/packages/devui-vue/docs/.vitepress/config.js deleted file mode 100644 index 1fe86bc36a..0000000000 --- a/packages/devui-vue/docs/.vitepress/config.js +++ /dev/null @@ -1,4 +0,0 @@ -require('esbuild-register') - -const config = require('./config/index.ts') -module.exports = config.default \ No newline at end of file diff --git a/packages/devui-vue/docs/.vitepress/config.mts b/packages/devui-vue/docs/.vitepress/config.mts new file mode 100644 index 0000000000..42a95bfe8a --- /dev/null +++ b/packages/devui-vue/docs/.vitepress/config.mts @@ -0,0 +1,54 @@ +import { defineConfig } from 'vitepress'; +import head from './config/head'; +import nav from './config/nav'; +import sidebar from './config/sidebar'; +import { demoblockPlugin, demoblockVitePlugin } from 'vitepress-theme-demoblock'; + +// https://vitepress.dev/reference/site-config +export default defineConfig({ + title: 'Vue DevUI', + description: 'Vue DevUI 组件库', + + head, + markdown: { + config: (md) => { + md.use(demoblockPlugin as any); + } + }, + vite: { + plugins: [demoblockVitePlugin() as any], + }, + + locales: { + root: { + label: '简体中文', + lang: 'zh-CN', + }, + en: { + label: 'English', + lang: 'en-US', + link: '/en-US/', + }, + }, + + themeConfig: { + // https://vitepress.dev/reference/default-theme-config + nav, + sidebar, + + logo: '../../assets/logo.svg', + + algolia: { + appId: 'HOQD3NUZNM', + apiKey: '07456b4a262e8c84eb892088e5cc3791', + indexName: 'vue-devui', + }, + + socialLinks: [{ icon: 'github', link: 'https://github.com/DevCloudFE/vue-devui' }], + + footer: { + message: 'MIT Licensed', + copyright: 'Copyright © 2021-present DevCloudFE', + }, + }, +}); diff --git a/packages/devui-vue/docs/.vitepress/config/index.ts b/packages/devui-vue/docs/.vitepress/config/index.ts deleted file mode 100644 index 851b8b4c56..0000000000 --- a/packages/devui-vue/docs/.vitepress/config/index.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { defineConfig } from 'vitepress' -import sidebar from './sidebar' -import head from './head' -import nav from './nav' -import markdown from './markdown' -import lang from './lang' - -const config = defineConfig({ - title: 'Vue DevUI', - description: 'Vue DevUI 组件库', - head, - markdown, - locales: { - '/': { - lang: 'zh-CN', - label: '简体中文' - }, - '/en-US': { - lang: 'en-US', - label: 'English' - } - }, - themeConfig: { - sidebar, - nav, - demoblock: lang, - logo: '../../assets/logo.svg', - locales: { - '/': { - lang: 'zh-CN', - label: '简体中文' - }, - '/en-US': { - lang: 'en-US', - label: 'English' - } - }, - algolia: { - appId: 'HOQD3NUZNM', - apiKey: '07456b4a262e8c84eb892088e5cc3791', - indexName: 'vue-devui' - } - } -}) - -export default config diff --git a/packages/devui-vue/docs/.vitepress/config/lang.ts b/packages/devui-vue/docs/.vitepress/config/lang.ts deleted file mode 100644 index 8280942417..0000000000 --- a/packages/devui-vue/docs/.vitepress/config/lang.ts +++ /dev/null @@ -1,16 +0,0 @@ -const lang = { - '/': { - 'hide-text': '隐藏代码', - 'show-text': '显示代码', - 'copy-button-text': '复制代码片段', - 'copy-success-text': '复制成功', - }, - '/en-US': { - 'hide-text': 'Hide', - 'show-text': 'Expand', - 'copy-button-text': 'Copy', - 'copy-success-text': 'Copy Success', - }, -}; - -export default lang; diff --git a/packages/devui-vue/docs/.vitepress/config/markdown.ts b/packages/devui-vue/docs/.vitepress/config/markdown.ts deleted file mode 100644 index 476f03037c..0000000000 --- a/packages/devui-vue/docs/.vitepress/config/markdown.ts +++ /dev/null @@ -1,14 +0,0 @@ -const options = { cssPreprocessor: 'scss' }; -import { blockPlugin } from '../plugins/block-plugin'; -import { renderPlugin, codePlugin } from 'vitepress-theme-demoblock'; - -const markdown = { - config: (md) => { - md.use((curMd) => { - curMd.use(blockPlugin, options); - curMd.use(codePlugin, options); - curMd.use(renderPlugin, options); - }); - } -} -export default markdown; From 0741ac627b4d5a605b9bd5e69be56bf0e674981c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=90=91=E5=A4=9C?= Date: Fri, 21 Jun 2024 17:51:04 +0800 Subject: [PATCH 03/30] refactor(home): refactor `index.md` hero settings Related Issues: #1879 --- packages/devui-vue/docs/index.md | 33 ++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/packages/devui-vue/docs/index.md b/packages/devui-vue/docs/index.md index f7a8223c5e..6fc859e99e 100644 --- a/packages/devui-vue/docs/index.md +++ b/packages/devui-vue/docs/index.md @@ -1,11 +1,24 @@ --- -home: true -heroImage: /assets/devui-design.svg -heroText: Vue DevUI -tagline: 一个基于 DevUI Design 的 Vue3 组件库 -actionText: 快速开始 -actionLink: /quick-start/ -altActionText: Github -altActionLink: https://github.com/DevCloudFE/vue-devui -footer: MIT Licensed | Copyright © 2021-present DevUI ---- \ No newline at end of file +# https://vitepress.dev/reference/default-theme-home-page +layout: home + +hero: + name: 'Vue DevUI' + text: '基于 DevUI Design 的 Vue3 组件库' + tagline: My great project tagline + actions: + - theme: brand + text: 快速开始 + link: /quick-start + - theme: alt + text: Github + link: https://github.com/DevCloudFE/vue-devui + +features: + - title: Feature A + details: Lorem ipsum dolor sit amet, consectetur adipiscing elit + - title: Feature B + details: Lorem ipsum dolor sit amet, consectetur adipiscing elit + - title: Feature C + details: Lorem ipsum dolor sit amet, consectetur adipiscing elit +--- From 1c5b5c6645ecc8bfc6b6a76b4833f1fe23220188 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=90=91=E5=A4=9C?= Date: Fri, 21 Jun 2024 17:51:23 +0800 Subject: [PATCH 04/30] chore(cache): ignore vitepress caches Related Issue: #1879 --- packages/devui-vue/docs/.vitepress/.gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 packages/devui-vue/docs/.vitepress/.gitignore diff --git a/packages/devui-vue/docs/.vitepress/.gitignore b/packages/devui-vue/docs/.vitepress/.gitignore new file mode 100644 index 0000000000..5e46596759 --- /dev/null +++ b/packages/devui-vue/docs/.vitepress/.gitignore @@ -0,0 +1 @@ +cache \ No newline at end of file From 18d23ef2d2499365aa4836e7274b18ad58ece72a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=90=91=E5=A4=9C?= Date: Fri, 21 Jun 2024 17:52:21 +0800 Subject: [PATCH 05/30] refactor(button): merge all vue files into `index.md` Reasons: 1. The `demoList` is seems unsupported for latest version of vitepress 2. The latest `vitepress-theme-demoblock` no longer support for `:::demo ` Related Issue: #1879 --- .../docs/components/button/buttonGroup.vue | 131 ----------- .../docs/components/button/disable.vue | 31 --- .../devui-vue/docs/components/button/icon.vue | 48 ---- .../devui-vue/docs/components/button/index.md | 214 ++++++++++++++++-- .../docs/components/button/loading.vue | 21 -- .../docs/components/button/shape.vue | 11 - .../devui-vue/docs/components/button/size.vue | 11 - .../docs/components/button/theme.vue | 57 ----- 8 files changed, 191 insertions(+), 333 deletions(-) delete mode 100644 packages/devui-vue/docs/components/button/buttonGroup.vue delete mode 100644 packages/devui-vue/docs/components/button/disable.vue delete mode 100644 packages/devui-vue/docs/components/button/icon.vue delete mode 100644 packages/devui-vue/docs/components/button/loading.vue delete mode 100644 packages/devui-vue/docs/components/button/shape.vue delete mode 100644 packages/devui-vue/docs/components/button/size.vue delete mode 100644 packages/devui-vue/docs/components/button/theme.vue diff --git a/packages/devui-vue/docs/components/button/buttonGroup.vue b/packages/devui-vue/docs/components/button/buttonGroup.vue deleted file mode 100644 index 9a87aacb9d..0000000000 --- a/packages/devui-vue/docs/components/button/buttonGroup.vue +++ /dev/null @@ -1,131 +0,0 @@ - - - diff --git a/packages/devui-vue/docs/components/button/disable.vue b/packages/devui-vue/docs/components/button/disable.vue deleted file mode 100644 index e2e4ceec35..0000000000 --- a/packages/devui-vue/docs/components/button/disable.vue +++ /dev/null @@ -1,31 +0,0 @@ - diff --git a/packages/devui-vue/docs/components/button/icon.vue b/packages/devui-vue/docs/components/button/icon.vue deleted file mode 100644 index ed6f044414..0000000000 --- a/packages/devui-vue/docs/components/button/icon.vue +++ /dev/null @@ -1,48 +0,0 @@ - diff --git a/packages/devui-vue/docs/components/button/index.md b/packages/devui-vue/docs/components/button/index.md index 1b47383b51..4ad82f0c73 100644 --- a/packages/devui-vue/docs/components/button/index.md +++ b/packages/devui-vue/docs/components/button/index.md @@ -2,31 +2,77 @@ 按钮用于开始一个即时操作。 -#### 何时使用 - +:::tip 何时使用 标记了一个(或封装一组)操作命令,响应用户点击行为,触发相应的业务逻辑。 +::: + +## 用法 ### 形态 -:::demo 通过`variant`设置按钮形态,目前支持`solid`、`outline`、`text`三种形态,默认为`outline`。 +通过`variant`设置按钮形态,目前支持`solid`、`outline`、`text`三种形态,默认为`outline`。 -button/shape +:::demo + +```vue + +``` ::: ### 主题色 -:::demo 通过`color`设置按钮的主题色,目前支持`primary`、`secondary`、`danger`三种主题色,默认为`secondary`。
注意:如果`variant`设置成`solid`,则默认使用`primary`主题色。 +通过`color`设置按钮的主题色,目前支持`primary`、`secondary`、`danger`三种主题色,默认为`secondary`。
注意:如果`variant`设置成`solid`,则默认使用`primary`主题色。 + +:::demo -button/theme +```vue + +``` ::: ### 尺寸 -:::demo 通过`size`设置按钮尺寸,支持`sm`、`md`、`lg`三种类型的尺寸,默认为`md`。 +通过`size`设置按钮尺寸,支持`sm`、`md`、`lg`三种类型的尺寸,默认为`md`。 -button/size +:::demo + +```vue + +``` ::: @@ -34,15 +80,49 @@ button/size :::demo 通过`disabled`参数设置按钮禁用状态。 -button/disable +```vue + +``` ::: ### 加载中状态 -:::demo 通过`loading`参数设置按钮加载中状态。 +通过`loading`参数设置按钮加载中状态。 -button/loading +:::demo + +```vue + + + +``` ::: @@ -50,7 +130,20 @@ button/loading :::demo -button/icon +```vue + +``` ::: @@ -60,22 +153,97 @@ button/icon :::demo -button/buttonGroup +```vue + + + +``` ::: ### Button 参数 -| 参数名 | 类型 | 默认 | 说明 | 跳转 Demo | -| :------- | :-------------------------------- | :---------- | :------------------------ | :------------------------ | -| variant | [IButtonVariant](#ibuttonvariant) | 'outline' | 可选,按钮形态 | [形态](#形态) | -| color | [IButtonColor](#ibuttoncolor) | 'secondary' | 可选,按钮主题 | [主题色](#主题色) | -| size | [IButtonSize](#ibuttonsize) | 'md' | 可选,按钮尺寸 | [尺寸](#尺寸) | -| icon | `string` | -- | 可选,自定义按钮图标 | [图标按钮](#图标按钮) | -| shape | [IButtonShape](#ibuttonshape) | -- | 可选,按钮形状(圆形/圆角) | [图标按钮](#图标按钮) | -| disabled | `boolean` | false | 可选,是否禁用 button | [禁用状态](#禁用状态) | -| loading | `boolean` | false | 可选,设置加载中状态 | [加载中状态](#加载中状态) | -| native-type | [IButtonType](#ibuttontype) | 'button' | 可选,按钮原生type属性 | | +| 参数名 | 类型 | 默认 | 说明 | 跳转 Demo | +| :---------- | :-------------------------------- | :---------- | :------------------------ | :------------------------ | +| variant | [IButtonVariant](#ibuttonvariant) | 'outline' | 可选,按钮形态 | [形态](#形态) | +| color | [IButtonColor](#ibuttoncolor) | 'secondary' | 可选,按钮主题 | [主题色](#主题色) | +| size | [IButtonSize](#ibuttonsize) | 'md' | 可选,按钮尺寸 | [尺寸](#尺寸) | +| icon | `string` | -- | 可选,自定义按钮图标 | [图标按钮](#图标按钮) | +| shape | [IButtonShape](#ibuttonshape) | -- | 可选,按钮形状(圆形/圆角) | [图标按钮](#图标按钮) | +| disabled | `boolean` | false | 可选,是否禁用 button | [禁用状态](#禁用状态) | +| loading | `boolean` | false | 可选,设置加载中状态 | [加载中状态](#加载中状态) | +| native-type | [IButtonType](#ibuttontype) | 'button' | 可选,按钮原生 type 属性 | | ### Button 类型定义 diff --git a/packages/devui-vue/docs/components/button/loading.vue b/packages/devui-vue/docs/components/button/loading.vue deleted file mode 100644 index e9c27cc3cd..0000000000 --- a/packages/devui-vue/docs/components/button/loading.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - diff --git a/packages/devui-vue/docs/components/button/shape.vue b/packages/devui-vue/docs/components/button/shape.vue deleted file mode 100644 index af6e4c72a3..0000000000 --- a/packages/devui-vue/docs/components/button/shape.vue +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/packages/devui-vue/docs/components/button/size.vue b/packages/devui-vue/docs/components/button/size.vue deleted file mode 100644 index 6205115fa9..0000000000 --- a/packages/devui-vue/docs/components/button/size.vue +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/packages/devui-vue/docs/components/button/theme.vue b/packages/devui-vue/docs/components/button/theme.vue deleted file mode 100644 index 8639f578e8..0000000000 --- a/packages/devui-vue/docs/components/button/theme.vue +++ /dev/null @@ -1,57 +0,0 @@ - From 2aba86811e2a30dd9cb87f074f5779aa470eb685 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=90=91=E5=A4=9C?= Date: Fri, 21 Jun 2024 17:53:15 +0800 Subject: [PATCH 06/30] refactor(theme): migrate theme config from old version Related Issue: #1879 --- .../devui-vue/docs/.vitepress/theme/index.ts | 29 ++++++++++++++----- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/packages/devui-vue/docs/.vitepress/theme/index.ts b/packages/devui-vue/docs/.vitepress/theme/index.ts index d77decc5af..630f79d558 100644 --- a/packages/devui-vue/docs/.vitepress/theme/index.ts +++ b/packages/devui-vue/docs/.vitepress/theme/index.ts @@ -1,13 +1,19 @@ +// https://vitepress.dev/guide/custom-theme +import { h } from 'vue'; +import type { Theme } from 'vitepress'; +import DefaultTheme from 'vitepress/theme'; +import 'vitepress-theme-demoblock/dist/theme/styles/index.css'; +import { useComponents } from './useComponents'; + import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker'; import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker'; import cssWorker from 'monaco-editor/esm/vs/language/css/css.worker?worker'; import htmlWorker from 'monaco-editor/esm/vs/language/html/html.worker?worker'; import tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker'; + import DevUI from '../../../devui/vue-devui'; import Locale from '../../../devui/locale'; -import Theme from '../devui-theme'; -import 'vitepress-theme-demoblock/theme/styles/index.css'; -import { registerComponents } from './register-components.js'; +import DevUITheme from '../devui-theme'; import { insertBaiduScript } from './insert-baidu-script'; if (typeof window !== 'undefined') { @@ -31,10 +37,17 @@ if (typeof window !== 'undefined') { } export default { - ...Theme, - enhanceApp({ app }) { - app.use(Locale).use(DevUI); - registerComponents(app); + extends: DevUITheme, + Layout: () => { + return h(DefaultTheme.Layout, null, { + // https://vitepress.dev/guide/extending-default-theme#layout-slots + }); + }, + enhanceApp(ctx) { + DefaultTheme.enhanceApp(ctx); + useComponents(ctx.app); + ctx.app.use(Locale); + ctx.app.use(DevUI); insertBaiduScript(); }, -}; +} satisfies Theme; From 5dc533c0364a2c9f8c1edf7ae9c4172c92b2aa5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=90=91=E5=A4=9C?= Date: Fri, 21 Jun 2024 17:54:16 +0800 Subject: [PATCH 07/30] fix(md): fix multi-single line ` - ` - : ''; +${code} +`; + } + console.log(code); return { - code: `${setup}\n${code}`, + code, }; }, }; From e4815e33b8115e8093d7f9b7d6551ce536373df4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=90=91=E5=A4=9C?= Date: Fri, 21 Jun 2024 17:55:28 +0800 Subject: [PATCH 08/30] fix(demo): try use official demo block instead of custom Related Issue: #1879 --- .../devui-vue/docs/.vitepress/theme/useComponents.js | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 packages/devui-vue/docs/.vitepress/theme/useComponents.js diff --git a/packages/devui-vue/docs/.vitepress/theme/useComponents.js b/packages/devui-vue/docs/.vitepress/theme/useComponents.js new file mode 100644 index 0000000000..580070c196 --- /dev/null +++ b/packages/devui-vue/docs/.vitepress/theme/useComponents.js @@ -0,0 +1,10 @@ +// Don't remove this file, because it registers the demo components. +import Demo from 'vitepress-theme-demoblock/dist/client/components/Demo.vue' +import DemoBlock from 'vitepress-theme-demoblock/dist/client/components/DemoBlock.vue' +// import Demo from '../demo/Demo.vue'; +// import DemoBlock from '../demo/DemoBlock.vue'; + +export function useComponents(app) { + app.component('Demo', Demo) + app.component('DemoBlock', DemoBlock) +} From 18f08066e4e2e9045042336a68c576b9e4987b24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=90=91=E5=A4=9C?= Date: Fri, 21 Jun 2024 18:09:53 +0800 Subject: [PATCH 09/30] fix(log): remove some debug patterns --- packages/devui-vue/docs/.vitepress/plugins/md-transformer.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/devui-vue/docs/.vitepress/plugins/md-transformer.ts b/packages/devui-vue/docs/.vitepress/plugins/md-transformer.ts index fc93472bbb..5afb1af479 100644 --- a/packages/devui-vue/docs/.vitepress/plugins/md-transformer.ts +++ b/packages/devui-vue/docs/.vitepress/plugins/md-transformer.ts @@ -17,7 +17,6 @@ export function MdTransformer(): Plugin { const tag = ' @@ -53,7 +54,6 @@ export default defineComponent({ :::demo ```vue - @@ -87,7 +86,6 @@ export default defineComponent({ :::demo ```vue - @@ -121,18 +118,16 @@ export default defineComponent({ ::: demo ```vue - @@ -150,23 +145,22 @@ export default defineComponent({ ::: demo ```vue - @@ -185,21 +179,21 @@ export default defineComponent({ ### DatePicker 参数 -| 参数 | 类型 | 默认 | 说明 | 跳转 Demo | -| :---------- | :------------------ | :------ | :---------------------------------------------- | ----------------------------- | -| auto-close | `boolean` | false | 可选,选择日期后,是否自动关闭日期面板 | [自动关闭日期面板](#自动关闭日期面板) | -| range | `boolean` | false | 可选,是否开启日期区间选择 | [日期范围选择器](#日期范围选择器) | -| format | `string` | y/MM/dd | 可选,[日期值格式](#日期格式化字符) | [日期格式化](#日期格式化) | -| range-spliter | `string` | - | 可选,在区间选择模式下,分隔起止时间的字符。 | [日期起止时间分隔符](#日期起止时间分隔符) | -| selected-date-change | `Function` | - | 可选,子项切换的时候会发出新激活的子项的数据 | [基本用法](#基本用法) | +| 参数 | 类型 | 默认 | 说明 | 跳转 Demo | +| :------------------- | :--------- | :------ | :------------------------------------------- | ----------------------------------------- | +| auto-close | `boolean` | false | 可选,选择日期后,是否自动关闭日期面板 | [自动关闭日期面板](#自动关闭日期面板) | +| range | `boolean` | false | 可选,是否开启日期区间选择 | [日期范围选择器](#日期范围选择器) | +| format | `string` | y/MM/dd | 可选,[日期值格式](#日期格式化字符) | [日期格式化](#日期格式化) | +| range-spliter | `string` | - | 可选,在区间选择模式下,分隔起止时间的字符。 | [日期起止时间分隔符](#日期起止时间分隔符) | +| selected-date-change | `Function` | - | 可选,子项切换的时候会发出新激活的子项的数据 | [基本用法](#基本用法) | ### 日期格式化字符 -|字符|说明|规则| -|----|----|----| -|y, yy, yyyy|year|使用`yy`时,只显示后2位年份,其他情况显示4位年份。比如`yy/MM/dd -> 21/01/02`, `y/MM/dd -> 2021/01/02`| -|M,MM|month|使用`MM`时,一位数数字左侧自动补`0`。比如`y/MM/dd -> 2021/01/02`,`y/M/d -> 2021/1/2`| -|d,dd|date|规则同`M`| -|h,hh|hour|规则同`M`;使用24小时表示。| -|m,mm|minute|规则同`M`| -|s,ss|second|规则同`M`| +| 字符 | 说明 | 规则 | +| ----------- | ------ | ---------------------------------------------------------------------------------------------------------- | +| y, yy, yyyy | year | 使用`yy`时,只显示后 2 位年份,其他情况显示 4 位年份。比如`yy/MM/dd -> 21/01/02`, `y/MM/dd -> 2021/01/02` | +| M,MM | month | 使用`MM`时,一位数数字左侧自动补`0`。比如`y/MM/dd -> 2021/01/02`,`y/M/d -> 2021/1/2` | +| d,dd | date | 规则同`M` | +| h,hh | hour | 规则同`M`;使用 24 小时表示。 | +| m,mm | minute | 规则同`M` | +| s,ss | second | 规则同`M` | diff --git a/packages/devui-vue/docs/components/dragdrop-new/index.md b/packages/devui-vue/docs/components/dragdrop-new/index.md index 51df5b34e4..839532b8b3 100644 --- a/packages/devui-vue/docs/components/dragdrop-new/index.md +++ b/packages/devui-vue/docs/components/dragdrop-new/index.md @@ -6,7 +6,9 @@ ### 基本用法 -:::demo 从一个container拖动到另外一个container,并支持排序。 +从一个 container 拖动到另外一个 container,并支持排序。 + +:::demo ```vue - ``` @@ -235,7 +237,9 @@ export default defineComponent({ ### 多层树状拖拽 -:::demo 排序允许拖拽到元素上,支持层级嵌套。 +排序允许拖拽到元素上,支持层级嵌套。 + +:::demo ```vue - ``` @@ -481,7 +482,9 @@ export default defineComponent({ ### 拖拽实体元素跟随 -:::demo 允许拖拽时候非半透明元素跟随。也可以使用appendToBody:当拖拽离开后源位置的父对象会被销毁的话,需要把克隆体附着到body上防止被销毁。 默认会通过复制样式保证克隆到body的实体的样式是正确的,但部分深度依赖DOM节点位置的样式和属性可能会失败,需要手动调整部分样式。 +允许拖拽时候非半透明元素跟随。也可以使用 appendToBody:当拖拽离开后源位置的父对象会被销毁的话,需要把克隆体附着到 body 上防止被销毁。 默认会通过复制样式保证克隆到 body 的实体的样式是正确的,但部分深度依赖 DOM 节点位置的样式和属性可能会失败,需要手动调整部分样式。 + +:::demo ```vue - ``` @@ -694,7 +691,9 @@ export default defineComponent({ ### 越边交换 -:::demo 设置switchWhileCrossEdge允许越过边缘的时候交换。注意:不可与dropOnItem一起用,dropOnItem为true的时候无效。 +设置 switchWhileCrossEdge 允许越过边缘的时候交换。注意:不可与 dropOnItem 一起用,dropOnItem 为 true 的时候无效。 + +:::demo ```vue - ``` @@ -843,7 +833,9 @@ export default defineComponent({ ### 外部放置位置:就近,前面,后面 -:::demo 使用defaultDropPostion配置排序器之外的区域拖拽元素放下的时候默认加到列表的前面或者后面,默认为就近('closest')。 +使用 defaultDropPostion 配置排序器之外的区域拖拽元素放下的时候默认加到列表的前面或者后面,默认为就近('closest')。 + +:::demo ```vue - ``` @@ -1077,7 +1070,9 @@ export default defineComponent({ ### 拖拽滚动容器增强 -:::demo 搭配使用dDropScrollEnhanced指令允许拖拽到边缘的时候加速滚动条向两边滚动。 +搭配使用 dDropScrollEnhanced 指令允许拖拽到边缘的时候加速滚动条向两边滚动。 + +:::demo ```vue - ``` @@ -1362,7 +1345,9 @@ export default defineComponent({ ### 源占位符 -:::demo 使用originPlaceholder显示源位置的占位符,示例为消失动画。 +使用 originPlaceholder 显示源位置的占位符,示例为消失动画。 + +:::demo ```vue - ``` @@ -1630,7 +1608,9 @@ export default defineComponent({ ### 拖拽预览 -:::demo 允许拖拽的时候展示自定义拖拽元素样式 +允许拖拽的时候展示自定义拖拽元素样式 + +:::demo ```vue - ``` @@ -1859,7 +1834,9 @@ export default defineComponent({ ### 批量拖拽 -:::demo 使用batchDrag指令标记可以批量拖拽,请用ctrl按键和鼠标选中多个并进行拖拽 +使用 batchDrag 指令标记可以批量拖拽,请用 ctrl 按键和鼠标选中多个并进行拖拽。 + +:::demo ```vue - ``` @@ -2186,7 +2170,9 @@ export default defineComponent({ ### 二维拖拽和组合拖拽预览 -:::demo 使用dDragDropSyncBox指令、dDragSync指令、dDropSync指令协同拖拽,实现二维拖拽;使用dDragPreview配置拖拽预览,使用d-drag-preview-clone-dom-ref 完成拖拽节点预览的克隆。 +使用 dDragDropSyncBox 指令、dDragSync 指令、dDropSync 指令协同拖拽,实现二维拖拽;使用 dDragPreview 配置拖拽预览,使用 d-drag-preview-clone-dom-ref 完成拖拽节点预览的克隆。 + +:::demo ```vue - ``` @@ -2656,30 +2645,30 @@ export default defineComponent({ ##### dDraggable 参数 -| 参数 | 类型 | 默认值 | 描述 | 跳转 Demo | -| :---------------------------: | :--------------------------------------------------------------------------------------------------------------- | :------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------ | -| dragData | `any` | -- | 可选,转递给 `DropEvent`事件的数据. | [基本用法](#基本用法) | -| dragScope | `string \| Array` | 'default' | 可选,限制 drop 的位置,必须匹配对应的 `dropScope` | [基本用法](#基本用法) | -| dragOverClass | `string` | -- | 可选,拖动时被拖动元素的 css | [拖拽实体元素跟随](#拖拽实体元素跟随) | -| dragHandle | `string` | -- | 可选,可拖动拖动内容的 css 选择器,只有匹配 css 选择器的元素才能响应拖动事件, 注意是css选择器,示例:`'.title, .title > *'`,`'#header'`, `'.title *:not(input)'` | | | -| dragHandleClass | `string` | 'drag-handle' | 可选, 会给可拖动内容的应用的 css 选择器命中的元素添加的 css 类名, 第一个匹配 css 选择器的会被加上该 css 类 | [基本用法](#基本用法) | -| disabled | `boolean` | false | 可选,控制当前元素是否可拖动 false 为可以,true 为不可以 | [基本用法](#基本用法) | -| enableDragFollow | `boolean` | false | 可选,是否启用实体元素跟随(可以添加更多特效,如阴影等) | [拖拽实体元素跟随](#拖拽实体元素跟随) | -| dragFollowOptions | `{appendToBody?: boolean}` | -- | 可选,用于控制实体拖拽的一些配置 | [拖拽实体元素跟随](#拖拽实体元素跟随) | -| dragFollowOptions.appendToBody | `boolean` | false | 可选,用于控制实体拖拽的克隆元素插入的位置。默认 false 会插入到源元素父元素所有子的最后,设置为 true 会附着到。见说明 1 | [拖拽实体元素跟随](#拖拽实体元素跟随) | -| originPlaceholder | `{show?: boolean; tag?: string; style?: {cssProperties: string]: string}; text?: string; removeDelay?: number;}` | -- | 可选,设置源占位符号,用于被拖拽元素原始位置占位 | [源占位符](#源占位符) | -| originPlaceholder.show | `boolean` | true | 可选,是否显示,默认 originPlaceholder 有 Input 则显示,特殊情况可以关闭 | -| originPlaceholder.tag | `string` | 'div' | 可选,使用 tag 名,默认 originPlaceholder 使用'div',特殊情况可以置换 | -| originPlaceholder.style | `Object` | -- | 可选,传 style 对象,key 为样式属性,value 为样式值 | [源占位符](#源占位符) | -| originPlaceholder.text | `string` | -- | 可选,placeholder 内的文字 | [源占位符](#源占位符) | -| originPlaceholder.removeDelay | `number` | -- | 可选,用于希望源占位符在拖拽之后的延时里再删除,方便做动画,单位为 ms 毫秒 | [源占位符](#源占位符) | +| 参数 | 类型 | 默认值 | 描述 | 跳转 Demo | +| :------------------------------: | :--------------------------------------------------------------------------------------------------------------: | :------------ | :----------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------ | +| `dragData` | `any` | -- | 可选,传递给 `DropEvent` 事件的数据。 | [基本用法](#基本用法) | +| `dragScope` | `string \| Array` | 'default' | 可选,限制 drop 的位置,必须匹配对应的 `dropScope`。 | [基本用法](#基本用法) | +| `dragOverClass` | `string` | -- | 可选,拖动时被拖动元素的 CSS 类。 | [拖拽实体元素跟随](#拖拽实体元素跟随) | +| `dragHandle` | `string` | -- | 可选,可拖动拖动内容的 CSS 选择器,只有匹配 CSS 选择器的元素才能响应拖动事件。示例:`'.title, .title > *'`, `'#header'`, `'.title *:not(input)'` | | +| `dragHandleClass` | `string` | 'drag-handle' | 可选,会给可拖动内容的应用的 CSS 选择器命中的元素添加的 CSS 类名,第一个匹配 CSS 选择器的会被加上该 CSS 类。 | [基本用法](#基本用法) | +| `disabled` | `boolean` | false | 可选,控制当前元素是否可拖动,false 为可以,true 为不可以。 | [基本用法](#基本用法) | +| `enableDragFollow` | `boolean` | false | 可选,是否启用实体元素跟随(可以添加更多特效,如阴影等)。 | [拖拽实体元素跟随](#拖拽实体元素跟随) | +| `dragFollowOptions` | `{appendToBody?: boolean}` | -- | 可选,用于控制实体拖拽的一些配置。 | [拖拽实体元素跟随](#拖拽实体元素跟随) | +| `dragFollowOptions.appendToBody` | `boolean` | false | 可选,用于控制实体拖拽的克隆元素插入的位置。默认 false 会插入到源元素父元素所有子的最后,设置为 true 会附着到。见说明 1 | [拖拽实体元素跟随](#拖拽实体元素跟随) | +| `originPlaceholder` | `{show?: boolean; tag?: string; style?: {cssProperties: string]: string}; text?: string; removeDelay?: number;}` | -- | 可选,设置源占位符号,用于被拖拽元素原始位置占位。 | [源占位符](#源占位符) | +| `originPlaceholder.show` | `boolean` | true | 可选,是否显示,默认 originPlaceholder 有 Input 则显示,特殊情况可以关闭。 | +| `originPlaceholder.tag` | `string` | 'div' | 可选,使用 tag 名,默认 originPlaceholder 使用 'div',特殊情况可以置换。 | +| `originPlaceholder.style` | `Object` | -- | 可选,传 style 对象,key 为样式属性,value 为样式值。 | [源占位符](#源占位符) | +| `originPlaceholder.text` | `string` | -- | 可选,placeholder 内的文字。 | [源占位符](#源占位符) | +| `originPlaceholder.removeDelay` | `number` | -- | 可选,用于希望源占位符在拖拽之后的延时里再删除,方便做动画,单位为 ms 毫秒。 | [源占位符](#源占位符) | 说明 1:dragFollowOptions 的 appendToBody 的使用场景:当拖拽离开后源位置的父对象会被销毁的话,需要把克隆体附着到 body 上防止被销毁。默认会通过复制样式保证克隆到 body 的实体的样式是正确的,但部分深度依赖 DOM 节点位置的样式和属性可能会失败,需要手动调整部分样式。 ##### dDraggable 事件 -| 事件 | 类型 | 描述 | 跳转 Demo | -| :------------- | :------------------------ | :------------------------ | :--------------------------- | +| 事件 | 类型 | 描述 | 跳转 Demo | +| :------------- | :------------------------ | :------------------------ | :-------------------- | | dragStartEvent | `EventEmitter` | 开始拖动的 DragStart 事件 | [基本用法](#基本用法) | | dragEndEvent | `EventEmitter` | 拖动结束的 DragEnd 事件 | [基本用法](#基本用法) | | dropEndEvent | `EventEmitter` | 放置结束的 Drop 事件 | [基本用法](#基本用法) | @@ -2692,9 +2681,9 @@ Drag DOM Events 详情: [DragEvent](https://developer.mozilla.org/en-US/docs/Web ##### dDraggableBatchDrag 属性 -| 名字 | 类型 | 默认值 | 描述 | 跳转 Demo | -| :---------------------------------- | :------------------------ | :----------------- | :--------------------------------------------------------------------------------------------- | :----------------------------------- | -| batchDragGroup \| batchDrag | `string` | 'default' | 可选,批量拖拽分组组名,不同组名 | +| 名字 | 类型 | 默认值 | 描述 | 跳转 Demo | +| :---------------------------------- | :------------------------ | :----------------- | :--------------------------------------------------------------------------------------------- | :-------------------- | +| batchDragGroup \| batchDrag | `string` | 'default' | 可选,批量拖拽分组组名,不同组名 | | batchDragActive | `boolean` | false | 可选,是否把元素加入到批量拖拽组. 见说明 1。 | [批量拖拽](#批量拖拽) | | batchDragLastOneAutoActiveEventKeys | `Array` | ['ctrlKey'] | 可选,通过过拖拽可以激活批量选中的拖拽事件判断。见说明 2。 | | batchDragStyle | `Array` | ['badge', 'stack'] | 可选,批量拖拽的效果,badge 代表右上角有统计数字,stack 代表有堆叠效果,数组里有该字符串则有效 | [批量拖拽](#批量拖拽) | @@ -2702,35 +2691,35 @@ Drag DOM Events 详情: [DragEvent](https://developer.mozilla.org/en-US/docs/Web 说明 1: `batchDragActive`为`true`的时候会把元素加入组里,加入顺序为变为 true 的顺序,先加入的在数组前面。第一个元素会确认批量的组名,如果后加入的组名和先加入的组名不一致,则后者无法加入。 说明 2: `batchDragLastOneAutoActiveEventKeys`的默认值为['ctrlKey'], 即可以通过按住 ctrl 键拖动最后一个元素, 该元素自动加入批量拖拽的组,判断条件是 dragStart 事件里的 ctrlKey 事件为 true。目前仅支持判断 true/false。该参数为数组,可以判断任意一个属性值为 true 则生效,可用于不同操作系统的按键申明。 -##### dDraggableBatchDrag事件 +##### dDraggableBatchDrag 事件 -| 名字 | 类型 | 描述 | 跳转 Demo | -| :------------------- | :--------------------------------------- | :------------------------------------------------- | :----------------------------------- | +| 名字 | 类型 | 描述 | 跳转 Demo | +| :------------------- | :--------------------------------------- | :------------------------------------------------- | :-------------------- | | batchDragActiveEvent | `EventEmitter<{el: Element, data: any}>` | 通过拖拽把元素加入了批量拖拽组,通知外部选中该元素 | [批量拖拽](#批量拖拽) | #### dDroppable 指令 ##### dDroppable 参数 -| 参数 | 类型 | 默认值 | 描述 | 跳转 Demo | -| :-------------------------- | :--------------------------------------------- | :------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------- | -| dropScope | `string \| Array` | 'default' | 可选,限制 drop 的区域,对应 dragScope | [基本用法](#基本用法) | +| 参数 | 类型 | 默认值 | 描述 | 跳转 Demo | +| :-------------------------- | :--------------------------------------------- | :------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------- | +| dropScope | `string \| Array` | 'default' | 可选,限制 drop 的区域,对应 dragScope | [基本用法](#基本用法) | | dragOverClass | `string` | -- | 可选,dragover 时 drop 元素上应用的 css | -| placeholderStyle | `Object` | {backgroundColor: '#6A98E3', opacity: '.4'} | 可选,允许 sort 时,用于占位显示 | [源占位符](#源占位符) | +| placeholderStyle | `Object` | {backgroundColor: '#6A98E3', opacity: '.4'} | 可选,允许 sort 时,用于占位显示 | [源占位符](#源占位符) | | placeholderText | `string` | '' | 可选,允许 sort 时,用于占位显示内部的文字 | -| allowDropOnItem | `boolean` | false | 可选,允许 sort 时,用于允许拖动到元素上,方便树形结构的拖动可以成为元素的子节点 | [多层树状拖拽](#多层树状拖拽) | -| dragOverItemClass | `string` | -- | 可选,`allowDropOnItem`为`true`时,才有效,用于允许拖动到元素上后,被命中的元素增加样式 | [多层树状拖拽](#多层树状拖拽) | -| nestingTargetRect | `{height?: number, width?: number}` | -- | 可选,用于修正有内嵌列表后,父项高度被撑大,此处 height,width 为父项自己的高度(用于纵向拖动),宽度(用于横向拖动) | [多层树状拖拽](#多层树状拖拽) | -| defaultDropPosition | `'closest' \| 'before' \| 'after'` | 'closest' | 可选,设置拖拽到可放置区域但不在列表区域的放置位置,`'closest'` 为就近放下, `'before'`为加到列表头部, `'after'`为加到列表尾部 | [外部放置位置](#外部放置位置:就近,前面,后面) | +| allowDropOnItem | `boolean` | false | 可选,允许 sort 时,用于允许拖动到元素上,方便树形结构的拖动可以成为元素的子节点 | [多层树状拖拽](#多层树状拖拽) | +| dragOverItemClass | `string` | -- | 可选,`allowDropOnItem`为`true`时,才有效,用于允许拖动到元素上后,被命中的元素增加样式 | [多层树状拖拽](#多层树状拖拽) | +| nestingTargetRect | `{height?: number, width?: number}` | -- | 可选,用于修正有内嵌列表后,父项高度被撑大,此处 height,width 为父项自己的高度(用于纵向拖动),宽度(用于横向拖动) | [多层树状拖拽](#多层树状拖拽) | +| defaultDropPosition | `'closest' \| 'before' \| 'after'` | 'closest' | 可选,设置拖拽到可放置区域但不在列表区域的放置位置,`'closest'` 为就近放下, `'before'`为加到列表头部, `'after'`为加到列表尾部 | [外部放置位置](#外部放置位置:就近,前面,后面) | | dropSortCountSelector | `string` | -- | 可选,带有 sortable 的容器的情况下排序,计数的内容的选择器名称,可以用于过滤掉不应该被计数的元素 | | dropSortVirtualScrollOption | `{totalLength?: number; startIndex?: number;}` | -- | 可选,用于虚拟滚动列表中返回正确的 dropIndex 需要接收 totalLength 为列表的真实总长度, startIndex 为当前排序区域显示的第一个 dom 的在列表内的 index 值 | -| switchWhileCrossEdge | `boolean` | false | 可选,是否启用越过立即交换位置的算法, 不能与allowDropOnItem一起用,allowDropOnItem为true时,此规则无效 | -| placeholderTag | `string` | 'div' | 可选,占位显示的元素标签 | +| switchWhileCrossEdge | `boolean` | false | 可选,是否启用越过立即交换位置的算法, 不能与 allowDropOnItem 一起用,allowDropOnItem 为 true 时,此规则无效 | +| placeholderTag | `string` | 'div' | 可选,占位显示的元素标签 | ##### dDroppable 事件 -| 事件 | 类型 | 描述 | 跳转 Demo | -| :------------- | :------------------------------------------ | :------------------------------------------------------------------------------ | :--------------------------- | +| 事件 | 类型 | 描述 | 跳转 Demo | +| :------------- | :------------------------------------------ | :------------------------------------------------------------------------------ | :-------------------- | | dragEnterEvent | `EventEmitter` | drag 元素进入的 dragenter 事件 | [基本用法](#基本用法) | | dragOverEvent | `EventEmitter` | drag 元素在 drop 区域上的 dragover 事件 | [基本用法](#基本用法) | | dragLeaveEvent | `EventEmitter` | drag 元素离开的 dragleave 事件 | [基本用法](#基本用法) | @@ -2746,7 +2735,7 @@ type DropEvent = { dropIndex?: number; // drop的位置在列表的index dragFromIndex?: number; // drag元素在原来的列表的index,注意使用虚拟滚动数据无效 dropOnItem?: boolean; // 是否drop到了元素的上面,搭配allowDropOnItem使用 -} +}; ``` #### dSortable 指令 @@ -2764,8 +2753,8 @@ type DropEvent = { ##### dDropScrollEnhanced 参数 -| 名字 | 类型 | 默认值 | 描述 | 跳转 Demo | -| :----------------- | :---------------------------------------------------------------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------- | +| 名字 | 类型 | 默认值 | 描述 | 跳转 Demo | +| :----------------- | :---------------------------------------------------------------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------- | :------------------------------------ | | direction | [`DropScrollDirection`](#dropscrolldirection)即`'v'\|'h'` | 'v' | 滚动方向,垂直滚动`'v'`, 水平滚动 `'h'` | [拖拽滚动容器增强](#拖拽滚动容器增强) | | responseEdgeWidth | `string \| ((total: number) => string)` | '100px' | 响应自动滚动边缘宽度, 函数的情况传入的为列表容器同个方向相对宽度 | [拖拽滚动容器增强](#拖拽滚动容器增强) | | speedFn | [`DropScrollSpeedFunction`](#dropscrolldirection) | 内置函数 | 速率函数,见备注 | @@ -2857,9 +2846,11 @@ export type DropScrollTriggerEdge = 'left' | 'right' | 'top' | 'bottom'; 提供 drag 和 drop 时的 hover 样式,注意是`字符串` ```html -
+}" +>

Drop items here

``` @@ -2879,17 +2870,21 @@ export type DropScrollTriggerEdge = 'left' | 'right' | 'top' | 'bottom'; ``` ```html -
+}" +>

只有 Drinks 可以放在这个container里

-
+}" +>

Meal 和 Drinks 可以放在这个container里

``` @@ -2934,9 +2929,11 @@ Drag 句柄可以指定实际响应 draggable 事件的元素,而不是 dragga 这个参数必须是一个字符串,实际上是一个 css 选择器 ```html -
  • +}" +> 只有.drag-handle可以响应拖动事件来拖起li
  • @@ -2948,10 +2945,15 @@ Drag 句柄可以指定实际响应 draggable 事件的元素,而不是 dragga ```html
      -
    • dropEnd(e, i) - }" v-for="(item, i) in items;">{{item.name}}
    • + }" + v-for="(item, i) in items;" + > + {{item.name}} +
    @@ -2981,8 +2983,8 @@ setup() { ###### dDragSync 参数 -| 参数 | 类型 | 默认值 | 描述 | 跳转 Demo | -| :-------- | :------- | :----- | :--------------------------------------------------------------- | :-------------------------------------------------- | +| 参数 | 类型 | 默认值 | 描述 | 跳转 Demo | +| :-------- | :------- | :----- | :--------------------------------------------------------------- | :------------------------------------------------ | | dDragSync | `string` | '' | 必选,拖同步的组名,为空或者空字符串的时候无效,不与其他内容同步 | [二维拖拽和组合拖拽预览](#二维拖拽和组合拖拽预览) | ##### 协同放 dDropSortSync @@ -2991,8 +2993,8 @@ setup() { ###### dDropSortSync 参数 -| 参数 | 类型 | 默认值 | 描述 | 跳转 Demo | -| :----------------- | :---------- | :----- | :--------------------------------------------------------------- | :-------------------------------------------------- | +| 参数 | 类型 | 默认值 | 描述 | 跳转 Demo | +| :----------------- | :---------- | :----- | :--------------------------------------------------------------- | :------------------------------------------------ | | dDropSortSync | `string` | '' | 必选,放同步的组名,为空或者空字符串的时候无效,不与其他内容同步 | [二维拖拽和组合拖拽预览](#二维拖拽和组合拖拽预览) | | dDropSyncDirection | `'v'\| 'h'` | 'v' | 可选,与 dSortable 的方向正交 | @@ -3009,8 +3011,8 @@ setup() { ###### dDragPreview 参数 -| 参数 | 类型 | 默认值 | 描述 | 跳转 Demo | -| :---------------------------------- | :------------------------------ | :----- | :--------------------------------------------------------------------------------- | :-------------------------------------------------- | +| 参数 | 类型 | 默认值 | 描述 | 跳转 Demo | +| :---------------------------------- | :------------------------------ | :----- | :--------------------------------------------------------------------------------- | :------------------------------------------------ | | dDragPreview | `TemplateRef` | -- | 必选,预览的模板引用 | [二维拖拽和组合拖拽预览](#二维拖拽和组合拖拽预览) | | dragPreviewData | `any` | -- | 可选,自定义数据,将由模板变量获得 | | dragPreviewOptions | `{ skipBatchPreview : boolean}` | -- | 可选,预览选项 | @@ -3030,7 +3032,7 @@ setup() { 可以从节点的引用中恢复 DOM 的克隆对象作为预览 -| 参数 | 类型 | 默认值 | 描述 | 跳转 Demo | -| :-------- | :------------ | :----- | :----------------------------------------- | :-------- | -| domRef | `HTMLElement` | -- | 必选,否则无意义,克隆节点的 DOM 引用 | [二维拖拽和组合拖拽预览](#二维拖拽和组合拖拽预览)| -| copyStyle | `boolean` | true | 可选,是否克隆节点的时候对节点依次克隆样式 |[二维拖拽和组合拖拽预览](#二维拖拽和组合拖拽预览)| +| 参数 | 类型 | 默认值 | 描述 | 跳转 Demo | +| :-------- | :------------ | :----- | :----------------------------------------- | :------------------------------------------------ | +| domRef | `HTMLElement` | -- | 必选,否则无意义,克隆节点的 DOM 引用 | [二维拖拽和组合拖拽预览](#二维拖拽和组合拖拽预览) | +| copyStyle | `boolean` | true | 可选,是否克隆节点的时候对节点依次克隆样式 | [二维拖拽和组合拖拽预览](#二维拖拽和组合拖拽预览) | diff --git a/packages/devui-vue/docs/components/dragdrop/index.md b/packages/devui-vue/docs/components/dragdrop/index.md index 4a96286beb..f501deb2ae 100644 --- a/packages/devui-vue/docs/components/dragdrop/index.md +++ b/packages/devui-vue/docs/components/dragdrop/index.md @@ -8,17 +8,20 @@ ### Sortable 基本用法 -:::demo 容器内拖拽排序。 +容器内拖拽排序。 + +:::demo ```vue ``` @@ -93,19 +96,22 @@ export default defineComponent({ ### Sortable 指定可拖拽区域 -:::demo 容器内拖拽排序指定拖拽元素。 +容器内拖拽排序指定拖拽元素。 + +:::demo ```vue ``` @@ -186,22 +192,22 @@ export default defineComponent({ ### Sortable 参数 -| 参数 | 类型 | 默认 | 说明 | 跳转 Demo | -| --------- | ------------------------- | --------- | ------------------------------------------------ | --------------------- | -| list | any | -- | 可选,排序绑定的数据(拖拽排序后将自动变更) | [Sortable-基本用法](#sortable-基本用法) | -| handle | string | -- | 可选,限制可拖拽的元素,注意这里为为css选择器string | [Sortable-指定可拖拽区域](#sortable-指定可拖拽区域) | -| dragClass | string | 'devui-drag-item' | 可选,拖拽中元素附加的class | [Sortable-指定可拖拽区域](#sortable-指定可拖拽区域) | +| 参数 | 类型 | 默认 | 说明 | 跳转 Demo | +| --------- | ------ | ----------------- | ------------------------------------------------------ | --------------------------------------------------- | +| list | any | -- | 可选,排序绑定的数据(拖拽排序后将自动变更) | [Sortable-基本用法](#sortable-基本用法) | +| handle | string | -- | 可选,限制可拖拽的元素,注意这里为为 css 选择器 string | [Sortable-指定可拖拽区域](#sortable-指定可拖拽区域) | +| dragClass | string | 'devui-drag-item' | 可选,拖拽中元素附加的 class | [Sortable-指定可拖拽区域](#sortable-指定可拖拽区域) | ### Sortable 事件 -| 事件 | 类型 | 说明 | 跳转 Demo | -| ---- | ---- | ---- | --------- | -| dragStart | EventEmitter\ | 开始拖动的 DragStart 事件 | [Sortable-基本用法](#sortable-基本用法) | -| dragEnd | EventEmitter\ | 拖动结束的 DragEnd 事件 | [Sortable-基本用法](#sortable-基本用法) | -| dragEnter | EventEmitter\ | drag 元素进入的 dragenter 事件 | [Sortable-基本用法](#sortable-基本用法) | -| dragOver | EventEmitter\ | drag 元素在 drop 区域上的 dragover 事件 | [Sortable-基本用法](#sortable-基本用法) | -| dragLeave | EventEmitter\ | drag 元素离开的 dragleave 事件 | [Sortable-基本用法](#sortable-基本用法) | -| drop | EventEmitter\ | 放置一个元素, 接收的事件,其中 nativeEvent 表示原生的 drop 事件,其他见定义注释 | [Sortable-基本用法](#sortable-基本用法) | +| 事件 | 类型 | 说明 | 跳转 Demo | +| --------- | ------------------------- | ------------------------------------------------------------------------------- | --------------------------------------- | +| dragStart | EventEmitter\ | 开始拖动的 DragStart 事件 | [Sortable-基本用法](#sortable-基本用法) | +| dragEnd | EventEmitter\ | 拖动结束的 DragEnd 事件 | [Sortable-基本用法](#sortable-基本用法) | +| dragEnter | EventEmitter\ | drag 元素进入的 dragenter 事件 | [Sortable-基本用法](#sortable-基本用法) | +| dragOver | EventEmitter\ | drag 元素在 drop 区域上的 dragover 事件 | [Sortable-基本用法](#sortable-基本用法) | +| dragLeave | EventEmitter\ | drag 元素离开的 dragleave 事件 | [Sortable-基本用法](#sortable-基本用法) | +| drop | EventEmitter\ | 放置一个元素, 接收的事件,其中 nativeEvent 表示原生的 drop 事件,其他见定义注释 | [Sortable-基本用法](#sortable-基本用法) | ### Sortable 类型定义 @@ -209,9 +215,9 @@ export default defineComponent({ ```ts type DropEvent = { - event: DragEvent, // 原生drag事件 - list: any, // 当前绑定的list(与传入list为同一对象) - fromIndex: number, // 拖拽开始的元素index - targetIndex: number // drop到的元素的index -} + event: DragEvent; // 原生drag事件 + list: any; // 当前绑定的list(与传入list为同一对象) + fromIndex: number; // 拖拽开始的元素index + targetIndex: number; // drop到的元素的index +}; ``` diff --git a/packages/devui-vue/docs/components/drawer/index.md b/packages/devui-vue/docs/components/drawer/index.md index e4d506aa42..90df037d2f 100644 --- a/packages/devui-vue/docs/components/drawer/index.md +++ b/packages/devui-vue/docs/components/drawer/index.md @@ -2,15 +2,21 @@ 屏幕边缘滑出的浮层面板组件。 -#### 何时使用 +:::tip 何时使用 1. 抽屉从父窗体边缘滑入,覆盖住部分父窗体内容。用户在抽屉内操作时不必离开当前任务,操作完成后,可以平滑地回到到原任务。 2. 当需要一个附加的面板来控制父窗体内容,这个面板在需要时呼出。比如,控制界面展示样式,往界面中添加内容。 3. 当需要在当前任务流中插入临时任务,创建或预览附加内容。比如展示协议条款,创建子对象。 +::: + +## 用法 + ### 基本用法 -:::demo 默认从右侧滑出,宽度为`300px`。 +默认从右侧滑出,宽度为`300px`。 + +:::demo ```vue