1.文档添加上一页下一页

This commit is contained in:
dingyongya 2022-01-12 14:19:06 +08:00
parent 0e4d5d65e5
commit 3c03862043
54 changed files with 570 additions and 355 deletions

View File

@ -98,3 +98,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext animation
:::

View File

@ -98,3 +98,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext avatar
:::

View File

@ -120,3 +120,6 @@ export default {
| default| 自定义内容 | | default| 自定义内容 |
::: :::
::: previousNext backtop
:::

View File

@ -64,3 +64,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext badge
:::

View File

@ -63,3 +63,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext block
:::

View File

@ -106,3 +106,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext breadcrumb
:::

View File

@ -337,3 +337,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext button
:::

View File

@ -134,3 +134,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext card
:::

View File

@ -145,3 +145,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext carousel
:::

View File

@ -216,3 +216,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext checkbox
:::

View File

@ -212,3 +212,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext collapse
:::

View File

@ -166,3 +166,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext color
:::

View File

@ -34,3 +34,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext colorPicker
:::

View File

@ -79,3 +79,6 @@ layer.confirm(content, options)
::: comment ::: comment
::: :::
::: previousNext confirm
:::

View File

@ -81,3 +81,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext container
:::

View File

@ -124,3 +124,6 @@ export default {
| suffix | 后缀 | -- | | suffix | 后缀 | -- |
::: :::
::: previousNext countUp
:::

View File

@ -24,3 +24,6 @@ export default {
</script> </script>
::: :::
::: previousNext datePicker
:::

View File

@ -94,3 +94,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext dropdown
:::

View File

@ -60,3 +60,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext empty
:::

View File

@ -77,3 +77,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext field
:::

View File

@ -582,3 +582,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext form
:::

View File

@ -170,3 +170,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext grid
:::

View File

@ -1133,3 +1133,6 @@ npm install @layui/icons-vue
::: comment ::: comment
::: :::
::: previousNext iconfont
:::

View File

@ -116,3 +116,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext iconPicker
:::

View File

@ -135,3 +135,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext input
:::

View File

@ -143,3 +143,6 @@
::: comment ::: comment
::: :::
::: previousNext inputNumber
:::

View File

@ -190,3 +190,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext layout
:::

View File

@ -50,3 +50,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext line
:::

View File

@ -129,3 +129,6 @@ layer.load(load, options)
::: comment ::: comment
::: :::
::: previousNext load
:::

View File

@ -161,3 +161,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext nav
:::

View File

@ -344,3 +344,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext modal
:::

View File

@ -97,3 +97,6 @@ layer.msg(content, options)
::: comment ::: comment
::: :::
::: previousNext msg
:::

View File

@ -238,3 +238,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext page
:::

View File

@ -37,3 +37,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext panel
:::

View File

@ -131,3 +131,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext progress
:::

View File

@ -123,3 +123,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext radio
:::

View File

@ -311,3 +311,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext rate
:::

View File

@ -152,3 +152,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext select
:::

View File

@ -110,3 +110,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext skeleton
:::

View File

@ -108,3 +108,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext slider
:::

View File

@ -471,3 +471,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext step
:::

View File

@ -139,3 +139,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext switch
:::

View File

@ -249,3 +249,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext tab
:::

View File

@ -331,3 +331,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext table
:::

View File

@ -114,3 +114,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext textarea
:::

View File

@ -133,3 +133,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext timeline
:::

View File

@ -131,3 +131,6 @@
::: comment ::: comment
::: :::
::: previousNext tooltip
:::

View File

@ -112,3 +112,6 @@ export default {
::: comment ::: comment
::: :::
::: previousNext transfer
:::

View File

@ -259,3 +259,6 @@ function handleClick(node) {
::: comment ::: comment
::: :::
::: previousNext tree
:::

View File

@ -265,3 +265,6 @@ body::-webkit-scrollbar {
.layui-menu .layui-menu-item-group > .layui-menu-body-title { .layui-menu .layui-menu-item-group > .layui-menu-body-title {
padding-left: 15px; padding-left: 15px;
} }
.lay-link:hover{
color: #5FB878;
}

View File

@ -1,16 +1,17 @@
import vue from '@vitejs/plugin-vue' import vue from "@vitejs/plugin-vue";
import Markdown from 'vite-plugin-md' import Markdown from "vite-plugin-md";
import container from 'markdown-it-container' import container from "markdown-it-container";
import highlight from './highlight' import highlight from "./highlight";
import snippet from './snippet' import snippet from "./snippet";
import demo from './demo' import demo from "./demo";
import createTitle from './create-title' import createTitle from "./create-title";
import createBlock from './create-block' import createBlock from "./create-block";
import createDescribe from './create-describe' import createDescribe from "./create-describe";
import createTable from './create-table' import createTable from "./create-table";
import createComment from './create-comment' import createComment from "./create-comment";
import createAnchor from './create-anchor' import createAnchor from "./create-anchor";
import preWrapper from './pre-wrapper' import preWrapper from "./pre-wrapper";
import previousNext from "./previous-next";
const plugins = [ const plugins = [
vue({ vue({
@ -26,15 +27,16 @@ const plugins = [
markdownItSetup(md) { markdownItSetup(md) {
md.use(snippet) md.use(snippet)
.use(preWrapper) .use(preWrapper)
.use(container, 'demo', demo) .use(container, "demo", demo)
.use(...createTable('table', '')) .use(...createTable("table", ""))
.use(...createBlock('block', '')) .use(...createBlock("block", ""))
.use(...createTitle('title', '')) .use(...createTitle("title", ""))
.use(...createDescribe('describe', '')) .use(...createDescribe("describe", ""))
.use(...createComment('comment', '')) .use(...createComment("comment", ""))
.use(...createAnchor('anchor', '')) .use(...createAnchor("anchor", ""))
.use(...previousNext("previousNext", ""));
}, },
}), }),
] as any ] as any;
export default plugins export default plugins;

View File

@ -0,0 +1,55 @@
import container from "markdown-it-container";
import type Token from "markdown-it/lib/token";
import menus from "../view/utils/menus";
type ContainerArgs = [
typeof container,
string,
{
render(tokens: Token[], idx: number): string;
}
];
export default function createContainer(
klass: string,
defaultTitle: string
): ContainerArgs {
return [
container,
klass,
{
render(tokens, idx) {
const token = tokens[idx];
const info = token.info.trim().slice(klass.length).trim();
const menusChild = menus.map((item) => item.children).flat(1);
let prevIndex = 0;
let nextIndex = 0;
menusChild.forEach((item, index) => {
if (item.subTitle === info) {
prevIndex = index - 1;
nextIndex = index + 1;
}
});
if (token.nesting === 1) {
return `<div style="display: flex; justify-content: space-between">
<div><router-link to="${
menusChild[prevIndex]?.path
}" class="lay-link" style="display: ${
prevIndex < 0 ? "none" : ""
}"> <lay-icon type="layui-icon-left"/>${
menusChild[prevIndex]?.title
}</router-link></div>
<div><router-link to="${
menusChild[nextIndex]?.path
}" class="lay-link" style="display: ${
nextIndex >= menusChild.length ? "none" : ""
}">${
menusChild[nextIndex]?.title
} <lay-icon type="layui-icon-right"/></router-link> </div>
</div>`;
} else {
return ``;
}
},
},
];
}

View File

@ -52,6 +52,7 @@
<script> <script>
import { ref, watch } from "vue"; import { ref, watch } from "vue";
import { useRouter, useRoute } from "vue-router"; import { useRouter, useRoute } from "vue-router";
import menus from "./utils/menus";
export default { export default {
setup() { setup() {
const route = useRoute(); const route = useRoute();
@ -69,339 +70,6 @@ export default {
} }
); );
const menus = [
{
id: 1,
title: "通用",
children: [
{
id: 20,
title: "颜色",
subTitle: "color",
path: "/zh-CN/components/color",
},
{
id: 6,
title: "按钮",
subTitle: "button",
path: "/zh-CN/components/button",
},
{
id: 7,
title: "图标",
subTitle: "iconfont",
path: "/zh-CN/components/icon",
},
{
id: 10,
title: "动画",
subTitle: "animation",
path: "/zh-CN/components/animation",
},
],
},
{
id: 1,
title: "布局",
children: [
{
id: 4,
title: "布局",
subTitle: "layout",
path: "/zh-CN/components/layout",
},
{
id: 5,
title: "容器",
subTitle: "container",
path: "/zh-CN/components/container",
},
{
id: 11,
title: "栅格",
subTitle: "grid",
path: "/zh-CN/components/grid",
},
{
id: 8,
title: "面板",
subTitle: "panel",
path: "/zh-CN/components/panel",
},
{
id: 9,
title: "卡片",
subTitle: "card",
path: "/zh-CN/components/card",
},
{
id: 10,
title: "骨架",
subTitle: "skeleton",
path: "/zh-CN/components/skeleton",
},
],
},
{
id: 1,
title: "导航",
children: [
{
id: 16,
title: "菜单",
subTitle: "nav",
path: "/zh-CN/components/menu",
},
{
id: 17,
title: "面包屑",
subTitle: "breadcrumb",
path: "/zh-CN/components/breadcrumb",
},
{
id: 28,
title: "选项卡",
subTitle: "tab",
path: "/zh-CN/components/tab",
},
{
id: 27,
title: "下拉菜单",
subTitle: "dropdown",
path: "/zh-CN/components/dropdown",
},
{
id: 42,
title: "返回顶部",
subTitle: "backtop",
path: "/zh-CN/components/backtop",
},
],
},
{
id: 1,
title: "表单",
children: [
{
id: 36,
title: "开关",
subTitle: "switch",
path: "/zh-CN/components/switch",
},
{
id: 32,
title: "复选框",
subTitle: "checkbox",
path: "/zh-CN/components/checkbox",
},
{
id: 33,
title: "单选框",
subTitle: "radio",
path: "/zh-CN/components/radio",
},
{
id: 34,
title: "输入框",
subTitle: "input",
path: "/zh-CN/components/input",
},
{
id: 341,
title: "数字输入框",
subTitle: "inputNumber",
path: "/zh-CN/components/inputNumber",
},
{
id: 35,
title: "文本域",
subTitle: "textarea",
path: "/zh-CN/components/textarea",
},
{
id: 39,
title: "下拉选择",
subTitle: "select",
path: "/zh-CN/components/select",
},
{
id: 40,
title: "颜色选择器",
subTitle: "colorPicker",
path: "/zh-CN/components/colorPicker",
},
{
id: 29,
title: "图标选择器",
subTitle: "iconPicker",
path: "/zh-CN/components/iconPicker",
},
{
id: 26,
title: "评分",
subTitle: "rate",
path: "/zh-CN/components/rate",
},
{
id: 37,
title: "滑块",
subTitle: "slider",
path: "/zh-CN/components/slider",
},
{
id: 12,
title: "表单",
subTitle: "form",
path: "/zh-CN/components/form",
},
],
},
{
id: 1,
title: "展示",
children: [
{
id: 18,
title: "进度",
subTitle: "progress",
path: "/zh-CN/components/progress",
},
{
id: 19,
title: "时间线",
subTitle: "timeline",
path: "/zh-CN/components/timeline",
},
{
id: 21,
title: "折叠面板",
subTitle: "collapse",
path: "/zh-CN/components/collapse",
},
{
id: 22,
title: "表格",
subTitle: "table",
path: "/zh-CN/components/table",
},
{
id: 23,
title: "头像",
subTitle: "avatar",
path: "/zh-CN/components/avatar",
},
{
id: 25,
title: "空",
subTitle: "empty",
path: "/zh-CN/components/empty",
},
{
id: 29,
title: "分页",
subTitle: "page",
path: "/zh-CN/components/page",
},
{
id: 30,
title: "树形组件",
subTitle: "tree",
path: "/zh-CN/components/tree",
},
{
id: 31,
title: "穿梭框",
subTitle: "transfer",
path: "/zh-CN/components/transfer",
},
{
id: 38,
title: "轮播",
subTitle: "carousel",
path: "/zh-CN/components/carousel",
},
{
id: 43,
title: "数字滚动",
subTitle: "countUp",
path: "/zh-CN/components/countup",
},
],
},
{
id: 1,
title: "辅助",
children: [
{
id: 13,
title: "徽章",
subTitle: "badge",
path: "/zh-CN/components/badge",
},
{
id: 14,
title: "区块",
subTitle: "block",
path: "/zh-CN/components/block",
},
{
id: 15,
title: "分割",
subTitle: "line",
path: "/zh-CN/components/line",
},
{
id: 24,
title: "字段",
subTitle: "field",
path: "/zh-CN/components/field",
},
{
id: 25,
title: "文字提示",
subTitle: "tooltip",
path: "/zh-CN/components/tooltip",
},
{
id: 99,
title: "分步",
subTitle: "step",
path: "/zh-CN/components/step",
},
],
},
{
id: 1,
title: "反馈",
children: [
{
id: 90,
title: "弹层",
subTitle: "modal",
path: "/zh-CN/components/modal",
},
{
id: 91,
title: "加载",
subTitle: "modal",
path: "/zh-CN/components/load",
},
{
id: 92,
title: "询问",
subTitle: "confirm",
path: "/zh-CN/components/confirm",
},
{
id: 93,
title: "消息",
subTitle: "msg",
path: "/zh-CN/components/msg",
},
],
},
];
const selected = ref(1); const selected = ref(1);
const handleClick = function (menu) { const handleClick = function (menu) {

View File

@ -0,0 +1,340 @@
const menus = [
{
id: 1,
title: "通用",
children: [
{
id: 20,
title: "颜色",
subTitle: "color",
path: "/zh-CN/components/color",
},
{
id: 6,
title: "按钮",
subTitle: "button",
path: "/zh-CN/components/button",
},
{
id: 7,
title: "图标",
subTitle: "iconfont",
path: "/zh-CN/components/icon",
},
{
id: 10,
title: "动画",
subTitle: "animation",
path: "/zh-CN/components/animation",
},
],
},
{
id: 1,
title: "布局",
children: [
{
id: 4,
title: "布局",
subTitle: "layout",
path: "/zh-CN/components/layout",
},
{
id: 5,
title: "容器",
subTitle: "container",
path: "/zh-CN/components/container",
},
{
id: 11,
title: "栅格",
subTitle: "grid",
path: "/zh-CN/components/grid",
},
{
id: 8,
title: "面板",
subTitle: "panel",
path: "/zh-CN/components/panel",
},
{
id: 9,
title: "卡片",
subTitle: "card",
path: "/zh-CN/components/card",
},
{
id: 10,
title: "骨架",
subTitle: "skeleton",
path: "/zh-CN/components/skeleton",
},
],
},
{
id: 1,
title: "导航",
children: [
{
id: 16,
title: "菜单",
subTitle: "nav",
path: "/zh-CN/components/menu",
},
{
id: 17,
title: "面包屑",
subTitle: "breadcrumb",
path: "/zh-CN/components/breadcrumb",
},
{
id: 28,
title: "选项卡",
subTitle: "tab",
path: "/zh-CN/components/tab",
},
{
id: 27,
title: "下拉菜单",
subTitle: "dropdown",
path: "/zh-CN/components/dropdown",
},
{
id: 42,
title: "返回顶部",
subTitle: "backtop",
path: "/zh-CN/components/backtop",
},
],
},
{
id: 1,
title: "表单",
children: [
{
id: 36,
title: "开关",
subTitle: "switch",
path: "/zh-CN/components/switch",
},
{
id: 32,
title: "复选框",
subTitle: "checkbox",
path: "/zh-CN/components/checkbox",
},
{
id: 33,
title: "单选框",
subTitle: "radio",
path: "/zh-CN/components/radio",
},
{
id: 34,
title: "输入框",
subTitle: "input",
path: "/zh-CN/components/input",
},
{
id: 341,
title: "数字输入框",
subTitle: "inputNumber",
path: "/zh-CN/components/inputNumber",
},
{
id: 35,
title: "文本域",
subTitle: "textarea",
path: "/zh-CN/components/textarea",
},
{
id: 39,
title: "下拉选择",
subTitle: "select",
path: "/zh-CN/components/select",
},
{
id: 40,
title: "颜色选择器",
subTitle: "colorPicker",
path: "/zh-CN/components/colorPicker",
},
{
id: 29,
title: "图标选择器",
subTitle: "iconPicker",
path: "/zh-CN/components/iconPicker",
},
{
id: 26,
title: "评分",
subTitle: "rate",
path: "/zh-CN/components/rate",
},
{
id: 37,
title: "滑块",
subTitle: "slider",
path: "/zh-CN/components/slider",
},
{
id: 12,
title: "表单",
subTitle: "form",
path: "/zh-CN/components/form",
},
],
},
{
id: 1,
title: "展示",
children: [
{
id: 18,
title: "进度",
subTitle: "progress",
path: "/zh-CN/components/progress",
},
{
id: 19,
title: "时间线",
subTitle: "timeline",
path: "/zh-CN/components/timeline",
},
{
id: 21,
title: "折叠面板",
subTitle: "collapse",
path: "/zh-CN/components/collapse",
},
{
id: 22,
title: "表格",
subTitle: "table",
path: "/zh-CN/components/table",
},
{
id: 23,
title: "头像",
subTitle: "avatar",
path: "/zh-CN/components/avatar",
},
{
id: 25,
title: "空",
subTitle: "empty",
path: "/zh-CN/components/empty",
},
{
id: 29,
title: "分页",
subTitle: "page",
path: "/zh-CN/components/page",
},
{
id: 30,
title: "树形组件",
subTitle: "tree",
path: "/zh-CN/components/tree",
},
{
id: 31,
title: "穿梭框",
subTitle: "transfer",
path: "/zh-CN/components/transfer",
},
{
id: 38,
title: "轮播",
subTitle: "carousel",
path: "/zh-CN/components/carousel",
},
{
id: 43,
title: "数字滚动",
subTitle: "countUp",
path: "/zh-CN/components/countup",
},
],
},
{
id: 1,
title: "辅助",
children: [
{
id: 13,
title: "徽章",
subTitle: "badge",
path: "/zh-CN/components/badge",
},
{
id: 14,
title: "区块",
subTitle: "block",
path: "/zh-CN/components/block",
},
{
id: 15,
title: "分割",
subTitle: "line",
path: "/zh-CN/components/line",
},
{
id: 24,
title: "字段",
subTitle: "field",
path: "/zh-CN/components/field",
},
{
id: 25,
title: "文字提示",
subTitle: "tooltip",
path: "/zh-CN/components/tooltip",
},
{
id: 99,
title: "分步",
subTitle: "step",
path: "/zh-CN/components/step",
},
{
id: 100,
title: "分割面板",
subTitle: "splitPanel",
path: "/zh-CN/components/splitPanel",
},
],
},
{
id: 1,
title: "反馈",
children: [
{
id: 90,
title: "弹层",
subTitle: "modal",
path: "/zh-CN/components/modal",
},
{
id: 91,
title: "加载",
subTitle: "load",
path: "/zh-CN/components/load",
},
{
id: 92,
title: "询问",
subTitle: "confirm",
path: "/zh-CN/components/confirm",
},
{
id: 93,
title: "消息",
subTitle: "msg",
path: "/zh-CN/components/msg",
},
],
},
];
export default menus;