Merge branch 'next' into doc-demand

This commit is contained in:
sight 2022-05-14 18:33:58 +08:00
commit 527d10829c
28 changed files with 183 additions and 1394 deletions

View File

@ -1,5 +1,6 @@
{
"semi": true,
"singleQuote": false,
"tabWidth": 2
"tabWidth": 2,
"useTabs": false
}

View File

@ -76,4 +76,4 @@ createApp(App).use(layui).mount('#app')
## 开源许可
Layui vue是基于[MIT协议](https://opensource.org/licenses/MIT)提供
Layui Vue 采用 [MIT](https://opensource.org/licenses/MIT) 开源许可证

View File

@ -41,7 +41,20 @@
"eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-vue": "^8.2.0",
"husky": "^7.0.4",
"prettier": "^2.5.1"
"prettier": "^2.5.1",
"@babel/core": "^7.17.9",
"@babel/preset-env": "^7.15.8",
"@babel/preset-typescript": "^7.15.0",
"@rollup/plugin-babel": "^5.3.0",
"@types/node": "^16.11.9",
"@vitejs/plugin-vue": "^2.3.1",
"@vue/compiler-sfc": "^3.2.33",
"@vue/server-renderer": "^3.2.33",
"less": "^4.1.2",
"rimraf": "^3.0.2",
"rollup": "^2.70.1",
"typescript": "^4.6.3",
"vite": "2.9.8"
},
"config": {
"commitizen": {

View File

@ -42,21 +42,6 @@
"uuid": "^8.3.2",
"vue-i18n": "^9.1.9"
},
"devDependencies": {
"@babel/core": "^7.17.9",
"@babel/preset-env": "^7.15.8",
"@babel/preset-typescript": "^7.15.0",
"@rollup/plugin-babel": "^5.3.0",
"@types/node": "^16.11.9",
"@vitejs/plugin-vue": "^2.3.1",
"@vue/compiler-sfc": "^3.2.33",
"@vue/server-renderer": "^3.2.33",
"less": "^4.1.2",
"rimraf": "^3.0.2",
"rollup": "^2.70.1",
"typescript": "^4.6.3",
"vite": "2.9.8"
},
"files": [
"lib",
"es",

View File

@ -56,7 +56,9 @@ const showHandle = function () {
@click="showHandle"
>
<slot name="title" :props="props">{{ title }}</slot>
<i class="layui-icon layui-colla-icon">{{ isShow ? "" : "" }}</i>
<i class="layui-icon layui-colla-icon">
{{ isShow ? "" : "" }}
</i>
</h2>
<lay-transition :enable="collapseTransition">
<div v-if="isShow">

View File

@ -184,7 +184,7 @@ const activeEl = computed(() => (targetEl.value = props.target));
/**
* 处理 fullscreenchange 和浏览器窗口内全屏 Escape 按键事件
* @param event Escape 键盘事件
* @param event 键盘事件
*/
const onFullscreenchange = function (event: KeyboardEvent) {
if (isFullscreen.value && !document.fullscreenElement) {
@ -197,10 +197,25 @@ const onFullscreenchange = function (event: KeyboardEvent) {
}
};
/**
* 屏蔽 F11 按键原生事件, fullscreenAPI 代替
* @param event 键盘事件
*/
const onKeydownF11 = function (event: KeyboardEvent) {
// DOM
let isRootNodeFullscreen =
props.immersive && (!activeEl.value || activeEl.value === defaultElement);
if (event.key === "F11" && isRootNodeFullscreen) {
event.preventDefault();
toggle();
}
};
onMounted(() => {
//@ts-ignore
document.addEventListener(fullscreenAPI.fullscreenchange, onFullscreenchange);
document.addEventListener("keydown", onFullscreenchange);
document.addEventListener("keydown", onKeydownF11);
});
onBeforeUnmount(() => {
@ -210,6 +225,7 @@ onBeforeUnmount(() => {
onFullscreenchange
);
document.removeEventListener("keydown", onFullscreenchange);
document.removeEventListener("keydown", onKeydownF11);
});
</script>

View File

@ -308,9 +308,4 @@
.layui-nav-child {
background-color: transparent;
}
}
.layui-nav-child-spacing .layui-nav-item .layui-nav-child {
padding-left: 10px;
box-sizing: border-box;
}
}

View File

@ -5,15 +5,7 @@ export default {
</script>
<script setup lang="ts">
import {
computed,
ComputedRef,
provide,
Ref,
ref,
watch,
WritableComputedRef,
} from "vue";
import { computed, ComputedRef, provide, Ref, ref, watch } from "vue";
import "./index.less";
export interface LayMenuProps {
@ -25,7 +17,6 @@ export interface LayMenuProps {
level?: boolean | string;
collapse?: boolean | string;
collapseTransition?: boolean | string;
childSpacing?: boolean;
}
const emit = defineEmits([
@ -44,7 +35,6 @@ const props = withDefaults(defineProps<LayMenuProps>(), {
level: true,
collapse: false,
collapseTransition: true,
childSpacing: false,
});
const isTree: ComputedRef = computed(() => props.tree);
@ -103,7 +93,6 @@ provide("isCollapseTransition", isCollapseTransition);
tree ? 'layui-nav-tree' : '',
theme === 'dark' ? 'layui-nav-dark' : 'layui-nav-light',
collapse ? 'layui-nav-collapse' : '',
childSpacing ? 'layui-nav-child-spacing' : '',
]"
>
<slot></slot>

View File

@ -89,15 +89,25 @@ onBeforeUnmount(() => window.removeEventListener("resize", setPosition));
<template>
<li class="layui-nav-item">
<a href="javascript:void(0)" @click="openHandle()">
<!-- 图标 -->
<i>
<slot v-if="slots.icon" name="icon"></slot>
</i>
<!-- 标题 -->
<span>
<slot v-if="slots.title" name="title"></slot>
</span>
<!-- 扩展 -->
<i v-if="slots.expandIcon" class="layui-nav-more">
<slot name="expandIcon" :isExpand="isOpen"></slot>
</i>
<i
:class="[isOpen && !isTree ? 'layui-nav-mored' : '']"
class="layui-icon layui-icon-down layui-nav-more"
v-else
:class="[
isOpen ? 'layui-nav-mored' : '',
'layui-icon layui-icon-down',
'layui-nav-more',
]"
></i>
</a>
<template v-if="isTree">

View File

@ -479,10 +479,6 @@
padding: 0 10px;
}
.layui-table-page select {
height: 18px;
}
.layui-table-pagebar {
float: right;
line-height: 26px;

View File

@ -211,6 +211,7 @@ onMounted(() => {
<div :id="tableId">
<table class="layui-hide" lay-filter="test"></table>
<div class="layui-form layui-border-box layui-table-view">
<!-- 工具栏 -->
<div v-if="defaultToolbar || slot.toolbar" class="layui-table-tool">
<div v-if="slot.toolbar" class="layui-table-tool-temp">
<slot name="toolbar"></slot>
@ -253,7 +254,7 @@ onMounted(() => {
</div>
<div class="layui-table-box">
<!-- table header -->
<!-- 表头 -->
<div class="layui-table-header" ref="tableHeader">
<table class="layui-table" :lay-size="size">
<thead>
@ -308,12 +309,11 @@ onMounted(() => {
</thead>
</table>
</div>
<!-- table body -->
<!-- 表身 -->
<div class="layui-table-body layui-table-main" ref="tableBody">
<table class="layui-table" :lay-size="size">
<tbody>
<template v-for="data in tableDataSource" :key="data">
<!-- sub table impl -->
<tr
@click.stop="rowClick(data, $event)"
@dblclick.stop="rowDoubleClick(data, $event)"
@ -332,8 +332,9 @@ onMounted(() => {
<!-- 数据列 -->
<template v-for="column in columns" :key="column">
<!-- 展示否 -->
<template v-if="tableColumnKeys.includes(column.key)">
<!-- Column -->
<!-- 槽列 -->
<template v-if="column.customSlot">
<td
class="layui-table-cell"
@ -346,21 +347,18 @@ onMounted(() => {
</td>
</template>
<!-- Column -->
<template
v-else
v-for="(value, key) in data"
:key="value"
>
<td
v-if="column.key == key"
class="layui-table-cell"
:style="{
textAlign: column.align,
flex: column.width ? '0 0 ' + column.width : '1',
}"
>
<span> {{ value }} </span>
</td>
<template v-else>
<template v-if="column.key in data">
<td
class="layui-table-cell"
:style="{
textAlign: column.align,
flex: column.width ? '0 0 ' + column.width : '1',
}"
>
<span> {{ data[column.key] }} </span>
</td>
</template>
</template>
</template>
</template>

View File

@ -14,30 +14,21 @@
"vue-router": "^4.0.12",
"vue-i18n": "^9.2.0-beta.34",
"@vueuse/core": "^8.3.0",
"pinia": "^2.0.9",
"pinia": "^2.0.14",
"pinia-plugin-persist": "^1.0.0"
},
"devDependencies": {
"@babel/core": "^7.15.8",
"@babel/preset-env": "^7.15.8",
"@babel/preset-typescript": "^7.15.0",
"@rollup/plugin-babel": "^5.3.0",
"@types/markdown-it": "^12.2.3",
"@types/markdown-it-container": "^2.0.4",
"@types/node": "^16.11.9",
"@types/prettier": "^2.4.4",
"@vitejs/plugin-vue": "^2.3.1",
"@vue/compiler-sfc": "^3.2.33",
"@vue/server-renderer": "^3.2.33",
"escape-html": "^1.0.3",
"less": "^4.1.2",
"markdown-it-container": "^3.0.0",
"prismjs": "^1.25.0",
"prismjs": "^1.28.0",
"rimraf": "^3.0.2",
"rollup": "^2.70.1",
"typescript": "^4.6.3",
"vite": "2.9.8",
"vite-plugin-md": "^0.12.4",
"vite-plugin-md": "^0.13.4",
"unplugin-auto-import": "^0.7.1",
"unplugin-vue-components": "^0.19.3",
"unplugin-layui-vue-resolver": "0.0.10"

View File

@ -1,20 +1,16 @@
code {
margin: 0;
border-radius: 3px;
padding: 0.25rem 0.5rem;
font-size: 0.85em;
color: var(--c-text-light);
border-radius: 3px;
background-color: rgba(27, 31, 35, 0.05);
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
font-size: 0.85em;
}
code .token.deleted {
color: #ec5975;
}
code .token.inserted {
color: var(--c-brand);
}
div[class*='language-'] {
position: relative;
margin: 1rem -1.5rem;
@ -77,58 +73,11 @@ li > div[class*='language-'] {
[class*='language-'] code {
padding: 0;
line-height: 24px;
font-size: 14px;
color: #000;
color: #303133;
background-color: #fafafa;
}
/* Line highlighting */
.highlight-lines {
position: absolute;
top: 0;
bottom: 0;
left: 0;
padding: 1.25rem 0;
width: 100%;
line-height: 24px;
letter-spacing: 0.5px;
line-height: 23px;
font-size: 14px;
user-select: none;
overflow: hidden;
}
.highlight-lines .highlighted {
background-color: rgba(0, 0, 0, 0.66);
}
/* Line numbers mode */
div[class*='language-'].line-numbers-mode {
padding-left: 3.5rem;
}
.line-numbers-wrapper {
position: absolute;
top: 0;
bottom: 0;
left: 0;
z-index: 3;
border-right: 1px solid rgba(0, 0, 0, 0.5);
padding: 1.25rem 0;
width: 3.5rem;
text-align: center;
line-height: 24px;
font-size: 14px;
color: #888;
}
/* Language marker */
[class*='language-']:before {
position: absolute;
top: 0.6em;
right: 1em;
z-index: 2;
font-size: 0.8rem;
color: #888;
}
/**
@ -163,14 +112,14 @@ div[class*='language-'].line-numbers-mode {
.token.boolean,
.token.number,
.token.function {
color: #f08d49;
color: #f5871f;
}
.token.property,
.token.class-name,
.token.constant,
.token.symbol {
color: #f8c555;
color: #f5871f;
}
.token.selector,

View File

@ -15,7 +15,7 @@
<i
class="layui-icon layui-icon-play btn"
@click="onPlayground"
title="在 Playground 中打开"
title="运行代码"
/>
<i
class="layui-icon layui-icon-file btn"
@ -137,12 +137,8 @@ function handleScroll() {
margin: 1rem 0;
border: 1px solid whitesmoke;
border-radius: 3px;
background: var(--c-bg);
transition: all 0.2s;
}
.lay-code:hover {
box-shadow: var(--shadow-2);
}
.lay-code .source {
padding: 24px;
padding-bottom: 15px;
@ -150,7 +146,6 @@ function handleScroll() {
.lay-code .meta {
padding: 0 10px;
height: 0;
background-color: var(--c-page-background);
overflow: hidden;
transition: height 0.2s;
}
@ -160,10 +155,8 @@ function handleScroll() {
margin-bottom: 0px;
border: 1px solid whitesmoke;
box-sizing: border-box;
background: var(--c-bg);
font-size: 14px;
line-height: 22px;
color: var(--c-text-light-1);
word-break: break-word;
}
.lay-code .source .description p {
@ -179,9 +172,7 @@ function handleScroll() {
background-color: rgba(27, 31, 35, 0.05);
font-size: 12px;
line-height: 18px;
color: var(--c-text-light);
}
.lay-code .control {
height: 44px;
box-sizing: border-box;
@ -189,9 +180,8 @@ function handleScroll() {
border-top: 1px solid whitesmoke;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
background: var(--c-bg);
background-color: white;
text-align: center;
color: var(--c-text);
cursor: pointer;
width: 100%;
user-select: none;
@ -201,10 +191,6 @@ function handleScroll() {
z-index: 11;
bottom: 0;
}
.lay-code .control:hover {
background-color: var(--c-page-background);
color: var(--c-brand);
}
.lay-code .control > i {
display: inline-block;
font-size: 16px;

View File

@ -22,12 +22,10 @@ onMounted(() => {
outline: none;
box-shadow: none;
}
.DocSearch-Button .DocSearch-Search-Icon,
.DocSearch-Button-Placeholder {
color: whitesmoke;
}
:root {
--docsearch-logo-color: var(--global-primary-color);
--docsearch-primary-color: var(--global-primary-color);
@ -43,11 +41,9 @@ onMounted(() => {
.DocSearch-Button-Container {
padding-left: 2px;
}
.DocSearch-Button-Placeholder {
padding-left: 8px;
}
.DocSearch-Button,
.DocSearch-Button:hover,
.DocSearch-Button:active,
@ -55,18 +51,15 @@ onMounted(() => {
border: 1px solid rgb(224, 224, 230);
box-shadow: none;
}
.DocSearch-Button-Key {
border: 1px solid rgba(60, 60, 60, 0.29);
background: transparent;
box-shadow: none;
}
.DocSearch-Button .DocSearch-Search-Icon,
.DocSearch-Button-Placeholder {
color: rgba(0, 0, 0, 0.6);
}
.DocSearch-Button-Keys {
display: none;
}

View File

@ -20,9 +20,9 @@
font-size: 14px;
width: 50px;
max-width: 180px;
height: 50px; /*统一每一行的默认高度*/
border-top: 1px solid whitesmoke; /*内部边框样式*/
padding: 0 10px; /*内边距*/
height: 50px;
border-top: 1px solid whitesmoke;
padding: 0 10px;
padding-left: 28px;
}
.lay-table-box table th {

View File

@ -148,12 +148,12 @@ export default {
::: demo 使用 `radius` 属性,创建圆角按钮
<template>
<lay-button type="primary" radius>原始按钮</lay-button>
<lay-button type="default" radius>默认按钮</lay-button>
<lay-button type="normal" radius>百搭按钮</lay-button>
<lay-button type="warm" radius>暖色按钮</lay-button>
<lay-button type="danger" radius>警告按钮</lay-button>
<lay-button disabled radius>禁用按钮</lay-button>
<lay-button type="primary" radius="true">原始按钮</lay-button>
<lay-button type="default" radius="true">默认按钮</lay-button>
<lay-button type="normal" radius="true">百搭按钮</lay-button>
<lay-button type="warm" radius="true">暖色按钮</lay-button>
<lay-button type="danger" radius="true">警告按钮</lay-button>
<lay-button disabled radius="true">禁用按钮</lay-button>
</template>
<script>

View File

@ -201,9 +201,10 @@ export default {
::: table
| 属性 | 描述 | 可选值 |
| ----- | ---- | ------ |
| title | 标题 | -- |
| 属性 | 描述 | 类型 | 可选值 | 可选值 |
| ----- | ---- | ------ | ----- | ----- |
| title | 标题 | `string` | -- | -- |
| shadow | 阴影 | `string` | `always` | `always` `hover` `never` |
:::

View File

@ -13,7 +13,6 @@
::: demo 使用 `lay-input` 标签, 创建输入框
<template>
{{ data1 }}
<lay-input v-model="data1"></lay-input>
</template>

View File

@ -483,13 +483,13 @@ export default {
:::
::: title 层级缩进
::: title 扩展图标
:::
::: demo
<template>
<lay-menu v-model:selectedKey="selectedKey" v-model:openKeys="openKeys7" :child-spacing="childSpacing" v-model:tree="isTree">
<lay-menu v-model:selectedKey="selectedKey" v-model:openKeys="openKeys7" v-model:tree="isTree">
<lay-menu-item id="1">
<router-link to="">
<lay-icon type="layui-icon-home"></lay-icon>
@ -503,6 +503,9 @@ export default {
目录
</router-link>
</template>
<template v-slot:expandIcon={isExpand}>
{{isExpand}}
</template>
<lay-menu-item id="8">
<router-link to="">
<lay-icon type="layui-icon-home"></lay-icon>
@ -526,15 +529,13 @@ export default {
setup() {
const isTree = ref(true)
const selectedKey = ref("5")
const openKeys7 = ref(["7"])
const childSpacing = ref(true);
const selectedKey = ref("5")
return {
isTree,
openKeys7,
selectedKey,
childSpacing
}
}
}
@ -590,6 +591,7 @@ export default {
| 插槽 | 描述 | 备注 |
| ----- | -------- | ---- |
| title | 菜单标题 | -- |
| expandIcon | 扩展图标 | -- |
:::

View File

@ -274,8 +274,8 @@ export default {
]
const dataSource5 = [
{id:"1", username:"root", password:"root", age:"18"},
{id:"2", username:"woow", password:"woow", age:"20"}
{id:"1", username:"root", age:"18"},
{id:"2", username:"woow", age:"20"}
]
const rowClick5 = function(data) {

View File

@ -11,6 +11,18 @@
<template>
<lay-timeline>
<lay-timeline-item title="1.0.x">
<ul>
<a name="1-0-8"></a>
<li>
<h3>1.0.8 <span class="layui-badge-rim">2022-05-11</span></h3>
<ul>
<li>[重构] table 组件 columns 渲染。</li>
<li>[新增] sub-menu 组件 expandIcon 插槽。</li>
<li>[修复] table 组件 datasource 缺失属性 column 错位。</li>
<li>[修复] fullscreen 组件按 F11 进入全屏, 退出全屏不生效。</li>
</ul>
</li>
</ul>
<ul>
<a name="1-0-7"></a>
<li>

View File

@ -43,7 +43,7 @@
<lay-card>
<lay-row>
<lay-col md="2">
<lay-avatar src="https://portrait.gitee.com/uploads/avatars/user/702/2106738_wanglin300_1639442830.png!avatar200"></lay-avatar>
<lay-avatar src="https://portrait.gitee.com/uploads/avatars/user/702/2106738_wanglin300_1639442830.png"></lay-avatar>
</lay-col>
<lay-col md="3">
halo
@ -103,7 +103,7 @@
<lay-card>
<lay-row>
<lay-col md="2">
<lay-avatar src="https://portrait.gitee.com/uploads/avatars/user/2596/7789823_finalsummer_1613993823.png!avatar200"></lay-avatar>
<lay-avatar src="https://portrait.gitee.com/uploads/avatars/user/2596/7789823_finalsummer_1613993823.png"></lay-avatar>
</lay-col>
<lay-col md="3">
finalsummer

View File

@ -131,7 +131,6 @@ export default {
}
}
}
return `
<lay-code>
${description ? `<template #description>${descTemplate}</template>` : ""}

View File

@ -31,14 +31,13 @@ export const usePlayGround = async (
code = decodeCode.replace(
scriptRe,
`<script lang="ts" setup>$1
</script>`
</script>`
);
} else {
code = `${decodeCode}
<script lang="ts" setup>
<script lang="ts" setup>
</script>
`;
</script>`;
}
// 去除 export default,保留其中的内容

View File

@ -26,21 +26,6 @@
],
"author": "就眠儀式",
"license": "MIT",
"devDependencies": {
"@babel/core": "^7.15.8",
"@babel/preset-env": "^7.15.8",
"@babel/preset-typescript": "^7.15.0",
"@rollup/plugin-babel": "^5.3.0",
"@types/node": "^16.11.9",
"@vitejs/plugin-vue": "^2.3.1",
"@vue/compiler-sfc": "^3.2.33",
"@vue/server-renderer": "^3.2.33",
"less": "^4.1.2",
"rimraf": "^3.0.2",
"rollup": "^2.70.1",
"typescript": "^4.6.3",
"vite": "2.9.8"
},
"files": [
"lib",
"types"

View File

@ -23,21 +23,6 @@
"layui",
"vue"
],
"devDependencies": {
"@babel/core": "^7.15.8",
"@babel/preset-env": "^7.15.8",
"@babel/preset-typescript": "^7.15.0",
"@rollup/plugin-babel": "^5.3.0",
"@types/node": "^16.11.9",
"@vitejs/plugin-vue": "^2.3.1",
"@vue/compiler-sfc": "^3.2.33",
"@vue/server-renderer": "^3.2.33",
"less": "^4.1.2",
"rimraf": "^3.0.2",
"rollup": "^2.70.1",
"typescript": "^4.6.3",
"vite": "2.9.8"
},
"files": [
"lib",
"types"

1243
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff