新年的第一次提交
This commit is contained in:
		
							parent
							
								
									5fe02df5db
								
							
						
					
					
						commit
						126d20bc3f
					
				
							
								
								
									
										6
									
								
								build.less.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								build.less.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
			
		||||
/**
 | 
			
		||||
 * merge less file 
 | 
			
		||||
 * <p>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -12,7 +12,6 @@
 | 
			
		||||
  <lay-button type="normal">百搭按钮</lay-button>
 | 
			
		||||
  <lay-button type="warm">暖色按钮</lay-button>
 | 
			
		||||
  <lay-button type="danger">警告按钮</lay-button>
 | 
			
		||||
  <lay-button type="disabled">禁用按钮</lay-button>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
 | 
			
		||||
@ -2,11 +2,11 @@
 | 
			
		||||
  <div class="lay-code">
 | 
			
		||||
    <div id="source" class="source">
 | 
			
		||||
      <slot />
 | 
			
		||||
    </div>
 | 
			
		||||
    <div ref="meta" class="meta">
 | 
			
		||||
      <div v-if="$slots.description" class="description">
 | 
			
		||||
        <slot name="description" />
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div ref="meta" class="meta">
 | 
			
		||||
      <div class="language-html">
 | 
			
		||||
        <slot name="code" />
 | 
			
		||||
      </div>
 | 
			
		||||
@ -133,6 +133,7 @@ function handleScroll() {
 | 
			
		||||
}
 | 
			
		||||
.lay-code .source {
 | 
			
		||||
  padding: 24px;
 | 
			
		||||
  padding-bottom:15px;
 | 
			
		||||
}
 | 
			
		||||
.lay-code .meta {
 | 
			
		||||
  padding: 0 10px;
 | 
			
		||||
@ -141,9 +142,10 @@ function handleScroll() {
 | 
			
		||||
  overflow: hidden;
 | 
			
		||||
  transition: height 0.2s;
 | 
			
		||||
}
 | 
			
		||||
.lay-code .meta .description {
 | 
			
		||||
.lay-code .source .description {
 | 
			
		||||
  padding: 20px;
 | 
			
		||||
  margin: 10px 0;
 | 
			
		||||
  margin: 20px 0;
 | 
			
		||||
  margin-bottom: 0px;
 | 
			
		||||
  border: 1px solid whitesmoke;
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
  background: var(--c-bg);
 | 
			
		||||
@ -152,11 +154,11 @@ function handleScroll() {
 | 
			
		||||
  color: var(--c-text-light-1);
 | 
			
		||||
  word-break: break-word;
 | 
			
		||||
}
 | 
			
		||||
.lay-code .meta .description p {
 | 
			
		||||
.lay-code .source .description p {
 | 
			
		||||
  margin: 0 !important;
 | 
			
		||||
  line-height: 26px !important;
 | 
			
		||||
}
 | 
			
		||||
.lay-code .meta .description code {
 | 
			
		||||
.lay-code .source .description code {
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  padding: 1px 5px;
 | 
			
		||||
  margin: 0 4px;
 | 
			
		||||
@ -167,6 +169,7 @@ function handleScroll() {
 | 
			
		||||
  line-height: 18px;
 | 
			
		||||
  color: var(--c-text-light);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.lay-code .control {
 | 
			
		||||
  height: 44px;
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
 | 
			
		||||
@ -10,8 +10,8 @@ import "./index.less";
 | 
			
		||||
 | 
			
		||||
const props = defineProps<{
 | 
			
		||||
  src?: String;
 | 
			
		||||
  radius?: boolean;
 | 
			
		||||
  size?: string;
 | 
			
		||||
  radius?: boolean;
 | 
			
		||||
}>();
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,24 +1,3 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div
 | 
			
		||||
    v-show="visible"
 | 
			
		||||
    ref="backtopRef"
 | 
			
		||||
    class="layui-backtop"
 | 
			
		||||
    :class="classBacktop"
 | 
			
		||||
    :style="{ ...styleBacktop }"
 | 
			
		||||
    @click.stop="handleClick"
 | 
			
		||||
    @mousedown="handlerMousedown"
 | 
			
		||||
    @mouseup="handlerMouseup"
 | 
			
		||||
  >
 | 
			
		||||
    <slot>
 | 
			
		||||
      <lay-icon
 | 
			
		||||
        :type="props.icon"
 | 
			
		||||
        :size="`${props.iconSize}px`"
 | 
			
		||||
        :color="props.iconColor"
 | 
			
		||||
      />
 | 
			
		||||
    </slot>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
  name: "LayBacktop",
 | 
			
		||||
@ -215,3 +194,24 @@ onMounted(() => {
 | 
			
		||||
  scrollTarget.value.addEventListener("scroll", throttle(handleScroll, 300));
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
  <div
 | 
			
		||||
    v-show="visible"
 | 
			
		||||
    ref="backtopRef"
 | 
			
		||||
    class="layui-backtop"
 | 
			
		||||
    :class="classBacktop"
 | 
			
		||||
    :style="{ ...styleBacktop }"
 | 
			
		||||
    @click.stop="handleClick"
 | 
			
		||||
    @mousedown="handlerMousedown"
 | 
			
		||||
    @mouseup="handlerMouseup"
 | 
			
		||||
  >
 | 
			
		||||
    <slot>
 | 
			
		||||
      <lay-icon
 | 
			
		||||
        :type="props.icon"
 | 
			
		||||
        :size="`${props.iconSize}px`"
 | 
			
		||||
        :color="props.iconColor"
 | 
			
		||||
      />
 | 
			
		||||
    </slot>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
@ -13,6 +13,7 @@ export interface LayBadgeProps {
 | 
			
		||||
  theme?: string;
 | 
			
		||||
  color?: string;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const props = defineProps<LayBadgeProps>();
 | 
			
		||||
 | 
			
		||||
const classes = computed(() => {
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ export default {
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script setup name="LayBody" lang="ts">
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import "./index.less";
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayBreadcrumbItem", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -10,7 +10,13 @@
 | 
			
		||||
  <span lay-separator>{{ separator }}</span>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script setup name="LayBreadcrumbItem" lang="ts">
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
  name: "LayBreadcrumbItem"
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import { defineProps, inject, useSlots } from "vue";
 | 
			
		||||
 | 
			
		||||
const slot = useSlots();
 | 
			
		||||
 | 
			
		||||
@ -1,14 +1,16 @@
 | 
			
		||||
@import "../../theme/variable.less";
 | 
			
		||||
 | 
			
		||||
.layui-btn {
 | 
			
		||||
  height: 38px;
 | 
			
		||||
  line-height: 36px;
 | 
			
		||||
  border: 1px solid transparent;
 | 
			
		||||
  padding: 0 18px;
 | 
			
		||||
  background-color: #009688;
 | 
			
		||||
  color: #fff;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  font-size: 14px;
 | 
			
		||||
  border-radius: 2px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
  border: 1px solid transparent;
 | 
			
		||||
  background-color: @button-primary-color;
 | 
			
		||||
  border-radius: @button-border-radius;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -44,34 +46,19 @@
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-btn-primary:hover {
 | 
			
		||||
  border-color: #009688;
 | 
			
		||||
  color: #333;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-btn-normal {
 | 
			
		||||
  background-color: #1e9fff;
 | 
			
		||||
  background-color: @global-normal-color;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-btn-warm {
 | 
			
		||||
  background-color: #ffb800;
 | 
			
		||||
  background-color: @global-warm-color;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-btn-danger {
 | 
			
		||||
  background-color: #ff5722;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-btn-checked {
 | 
			
		||||
  background-color: #5fb878;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-btn-disabled,
 | 
			
		||||
.layui-btn-disabled:active,
 | 
			
		||||
.layui-btn-disabled:hover {
 | 
			
		||||
  border-color: #eee !important;
 | 
			
		||||
  background-color: #fbfbfb !important;
 | 
			
		||||
  color: #d2d2d2 !important;
 | 
			
		||||
  cursor: not-allowed !important;
 | 
			
		||||
  opacity: 1;
 | 
			
		||||
  background-color: @global-danger-color;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-btn-lg {
 | 
			
		||||
@ -93,12 +80,21 @@
 | 
			
		||||
  line-height: 22px;
 | 
			
		||||
  padding: 0 5px;
 | 
			
		||||
  font-size: 12px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-btn-xs i {
 | 
			
		||||
  i {
 | 
			
		||||
    font-size: 12px !important;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-btn-fluid {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-btn-disabled,
 | 
			
		||||
.layui-btn-disabled:active,
 | 
			
		||||
.layui-btn-disabled:hover {
 | 
			
		||||
  border-color: #eee !important;
 | 
			
		||||
  background-color: #fbfbfb !important;
 | 
			
		||||
  color: #d2d2d2 !important;
 | 
			
		||||
  cursor: not-allowed !important;
 | 
			
		||||
  opacity: 1;
 | 
			
		||||
}
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayButton", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,16 +1,10 @@
 | 
			
		||||
.layui-btn-container {
 | 
			
		||||
  font-size: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-btn-container .layui-btn {
 | 
			
		||||
  .layui-btn {
 | 
			
		||||
    margin-right: 10px;
 | 
			
		||||
    margin-bottom: 10px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
.layui-btn-container .layui-btn + .layui-btn {
 | 
			
		||||
  .layui-btn + .layui-btn {
 | 
			
		||||
    margin-left: 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
.layui-table .layui-btn-container .layui-btn {
 | 
			
		||||
  margin-bottom: 9px;
 | 
			
		||||
}
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayButtonContainer", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,3 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="layui-btn-container">
 | 
			
		||||
    <slot></slot>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
  name: "LayButtonContainer",
 | 
			
		||||
@ -13,3 +7,9 @@ export default {
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import "./index.less";
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="layui-btn-container">
 | 
			
		||||
    <slot></slot>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayButtonGroup", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,41 +1,24 @@
 | 
			
		||||
@import "../../theme/variable.less";
 | 
			
		||||
 | 
			
		||||
.layui-card {
 | 
			
		||||
  margin-bottom: 15px;
 | 
			
		||||
  border-radius: 2px;
 | 
			
		||||
  border-radius: @card-border-radius;
 | 
			
		||||
  background-color: #fff;
 | 
			
		||||
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-card:last-child {
 | 
			
		||||
  margin-bottom: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  .layui-card-header {
 | 
			
		||||
    height: 42px;
 | 
			
		||||
    line-height: 42px;
 | 
			
		||||
    padding: 0 15px;
 | 
			
		||||
    border-bottom: 1px solid #f6f6f6;
 | 
			
		||||
    color: #333;
 | 
			
		||||
  border-radius: 2px 2px 0 0;
 | 
			
		||||
    font-size: 14px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .layui-card-body {
 | 
			
		||||
    padding: 10px 15px;
 | 
			
		||||
    line-height: 24px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
.layui-card-body[pad15] {
 | 
			
		||||
  padding: 15px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-card-body[pad20] {
 | 
			
		||||
  padding: 20px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-card-body .layui-table {
 | 
			
		||||
  margin: 5px 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-card .layui-tab {
 | 
			
		||||
  margin: 0;
 | 
			
		||||
.layui-card:last-child {
 | 
			
		||||
  margin-bottom: 0;
 | 
			
		||||
}
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayCard ", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,3 +1,22 @@
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
  name: "LayCard"
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import { useSlots } from "vue";
 | 
			
		||||
import "./index.less";
 | 
			
		||||
 | 
			
		||||
const slot = useSlots();
 | 
			
		||||
 | 
			
		||||
export interface LayCardProps {
 | 
			
		||||
  title?: string;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const props = defineProps<LayCardProps>();
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="layui-card">
 | 
			
		||||
    <div class="layui-card-header" v-if="slot.header || title">
 | 
			
		||||
@ -10,16 +29,3 @@
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script setup name="LayCard" lang="ts">
 | 
			
		||||
import { useSlots } from "vue";
 | 
			
		||||
import "./index.less";
 | 
			
		||||
 | 
			
		||||
const slot = useSlots();
 | 
			
		||||
 | 
			
		||||
export interface LayCardProps {
 | 
			
		||||
  title?: string;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const props = defineProps<LayCardProps>();
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayCarousel", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,40 +1,10 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div
 | 
			
		||||
    class="layui-carousel"
 | 
			
		||||
    :lay-anim="anim"
 | 
			
		||||
    :lay-indicator="indicator"
 | 
			
		||||
    :lay-arrow="arrow"
 | 
			
		||||
    :style="{ width: width, height: height }"
 | 
			
		||||
  >
 | 
			
		||||
    <div carousel-item>
 | 
			
		||||
      <slot></slot>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="layui-carousel-ind">
 | 
			
		||||
      <ul>
 | 
			
		||||
        <li
 | 
			
		||||
          v-for="ss in slots"
 | 
			
		||||
          :key="ss"
 | 
			
		||||
          :class="[ss.props.id === active ? 'layui-this' : '']"
 | 
			
		||||
          @click.stop="change(ss.props.id)"
 | 
			
		||||
        ></li>
 | 
			
		||||
      </ul>
 | 
			
		||||
    </div>
 | 
			
		||||
    <button
 | 
			
		||||
      class="layui-icon layui-carousel-arrow"
 | 
			
		||||
      lay-type="sub"
 | 
			
		||||
      @click="prev"
 | 
			
		||||
    >
 | 
			
		||||
      {{ anim === "updown" ? "" : "" }}</button
 | 
			
		||||
    ><button
 | 
			
		||||
      class="layui-icon layui-carousel-arrow"
 | 
			
		||||
      lay-type="add"
 | 
			
		||||
      @click="next"
 | 
			
		||||
    >
 | 
			
		||||
      {{ anim === "updown" ? "" : "" }}
 | 
			
		||||
    </button>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script setup name="LayCarousel" lang="ts">
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
  name: "LayCarousel"
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import {
 | 
			
		||||
  withDefaults,
 | 
			
		||||
  defineProps,
 | 
			
		||||
@ -107,3 +77,40 @@ const next = function () {
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
  <div
 | 
			
		||||
    class="layui-carousel"
 | 
			
		||||
    :lay-anim="anim"
 | 
			
		||||
    :lay-indicator="indicator"
 | 
			
		||||
    :lay-arrow="arrow"
 | 
			
		||||
    :style="{ width: width, height: height }"
 | 
			
		||||
  >
 | 
			
		||||
    <div carousel-item>
 | 
			
		||||
      <slot></slot>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="layui-carousel-ind">
 | 
			
		||||
      <ul>
 | 
			
		||||
        <li
 | 
			
		||||
          v-for="ss in slots"
 | 
			
		||||
          :key="ss"
 | 
			
		||||
          :class="[ss.props.id === active ? 'layui-this' : '']"
 | 
			
		||||
          @click.stop="change(ss.props.id)"
 | 
			
		||||
        ></li>
 | 
			
		||||
      </ul>
 | 
			
		||||
    </div>
 | 
			
		||||
    <button
 | 
			
		||||
      class="layui-icon layui-carousel-arrow"
 | 
			
		||||
      lay-type="sub"
 | 
			
		||||
      @click="prev"
 | 
			
		||||
    >
 | 
			
		||||
      {{ anim === "updown" ? "" : "" }}</button
 | 
			
		||||
    ><button
 | 
			
		||||
      class="layui-icon layui-carousel-arrow"
 | 
			
		||||
      lay-type="add"
 | 
			
		||||
      @click="next"
 | 
			
		||||
    >
 | 
			
		||||
      {{ anim === "updown" ? "" : "" }}
 | 
			
		||||
    </button>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayCarouselItem", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,10 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <li :class="[active === id ? 'layui-this' : '']">
 | 
			
		||||
    <slot></slot>
 | 
			
		||||
  </li>
 | 
			
		||||
</template>
 | 
			
		||||
<script setup name="LayCarouselItem" lang="ts">
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
  name: "LayCarouselItem"
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import { defineProps, inject } from "vue";
 | 
			
		||||
 | 
			
		||||
const props = defineProps<{
 | 
			
		||||
@ -12,3 +13,9 @@ const props = defineProps<{
 | 
			
		||||
 | 
			
		||||
const active = inject("active");
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
  <li :class="[active === id ? 'layui-this' : '']">
 | 
			
		||||
    <slot></slot>
 | 
			
		||||
  </li>
 | 
			
		||||
</template>
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayCheckbox", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayCheckboxGroup", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,3 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="layui-checkbox-group">
 | 
			
		||||
    <slot></slot>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
  name: "LayCheckboxGroup",
 | 
			
		||||
@ -12,7 +6,7 @@ export default {
 | 
			
		||||
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import { computed, defineProps, provide, ref, watch } from "vue";
 | 
			
		||||
import { Recordable } from "../type";
 | 
			
		||||
import { Recordable } from "../../types";
 | 
			
		||||
 | 
			
		||||
export interface LayCheckboxGroupProps {
 | 
			
		||||
  modelValue?: Recordable[];
 | 
			
		||||
@ -42,3 +36,9 @@ watch(
 | 
			
		||||
  (val) => (modelValue.value = val)
 | 
			
		||||
);
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="layui-checkbox-group">
 | 
			
		||||
    <slot></slot>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayCollapse", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,20 +1,3 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="layui-colla-item">
 | 
			
		||||
    <h2
 | 
			
		||||
      :class="['layui-colla-title', { 'layui-disabled': disabled }]"
 | 
			
		||||
      @click="showHandle"
 | 
			
		||||
    >
 | 
			
		||||
      <slot name="title" :props="props">{{ title }}</slot>
 | 
			
		||||
      <i class="layui-icon layui-colla-icon">{{ isShow ? "" : "" }}</i>
 | 
			
		||||
    </h2>
 | 
			
		||||
    <div class="layui-colla-content" :class="isShow ? 'layui-show' : ''">
 | 
			
		||||
      <p>
 | 
			
		||||
        <slot :props="props"></slot>
 | 
			
		||||
      </p>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
  name:"LayCollapseItem"
 | 
			
		||||
@ -64,3 +47,20 @@ const showHandle = function () {
 | 
			
		||||
  emit("change", props.id, !_isShow, activeValues.value);
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="layui-colla-item">
 | 
			
		||||
    <h2
 | 
			
		||||
      :class="['layui-colla-title', { 'layui-disabled': disabled }]"
 | 
			
		||||
      @click="showHandle"
 | 
			
		||||
    >
 | 
			
		||||
      <slot name="title" :props="props">{{ title }}</slot>
 | 
			
		||||
      <i class="layui-icon layui-colla-icon">{{ isShow ? "" : "" }}</i>
 | 
			
		||||
    </h2>
 | 
			
		||||
    <div class="layui-colla-content" :class="isShow ? 'layui-show' : ''">
 | 
			
		||||
      <p>
 | 
			
		||||
        <slot :props="props"></slot>
 | 
			
		||||
      </p>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayContainer", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayCountUp", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
@ -4,6 +4,12 @@
 | 
			
		||||
  <slot name="suffix"></slot>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
  name: "LayCountUp",
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import { onMounted, ref, watch } from 'vue'
 | 
			
		||||
import { CountUp } from 'countup.js'
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayDropdown", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayDropdownItem", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,12 +1,10 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <li>
 | 
			
		||||
    <div class="layui-menu-body-title" @click="click">
 | 
			
		||||
      <slot></slot>
 | 
			
		||||
    </div>
 | 
			
		||||
  </li>
 | 
			
		||||
</template>
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
  name: "LayDropdownItem"
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script setup name="LayDropdownItem" lang="ts">
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import { inject, Ref } from "vue";
 | 
			
		||||
 | 
			
		||||
const openState: Ref<boolean> = inject("openState") as Ref<boolean>;
 | 
			
		||||
@ -15,3 +13,11 @@ const click = function () {
 | 
			
		||||
  openState.value = false;
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
  <li>
 | 
			
		||||
    <div class="layui-menu-body-title" @click="click">
 | 
			
		||||
      <slot></slot>
 | 
			
		||||
    </div>
 | 
			
		||||
  </li>
 | 
			
		||||
</template>
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayEmpty", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayField", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,3 +1,19 @@
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
  name: "LayField"
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import { defineProps, useSlots } from "vue";
 | 
			
		||||
 | 
			
		||||
const slot = useSlots();
 | 
			
		||||
 | 
			
		||||
const props = defineProps<{
 | 
			
		||||
  title?: string;
 | 
			
		||||
}>();
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
  <fieldset v-if="slot.default" class="layui-elem-field">
 | 
			
		||||
    <legend>{{ title }}</legend>
 | 
			
		||||
@ -12,13 +28,3 @@
 | 
			
		||||
    </legend>
 | 
			
		||||
  </fieldset>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script setup name="LayField" lang="ts">
 | 
			
		||||
import { defineProps, useSlots } from "vue";
 | 
			
		||||
 | 
			
		||||
const slot = useSlots();
 | 
			
		||||
 | 
			
		||||
const props = defineProps<{
 | 
			
		||||
  title?: string;
 | 
			
		||||
}>();
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayFooter", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayIconPicker", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -78,7 +78,13 @@
 | 
			
		||||
  </lay-dropdown>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script setup name="LayIconPicker" lang="ts">
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
  name: "LayIconPicker"
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import { defineProps, Ref, ref } from "vue";
 | 
			
		||||
import { LayIconList as icons } from "@layui/icons-vue";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayInput", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,19 +1,10 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <input
 | 
			
		||||
    :type="type"
 | 
			
		||||
    :name="name"
 | 
			
		||||
    :value="modelValue"
 | 
			
		||||
    :disabled="disabled"
 | 
			
		||||
    :placeholder="placeholder"
 | 
			
		||||
    :class="{ 'layui-disabled': disabled }"
 | 
			
		||||
    class="layui-input"
 | 
			
		||||
    @input="onInput"
 | 
			
		||||
    @focus="onFocus"
 | 
			
		||||
    @blur="onBlur"
 | 
			
		||||
  />
 | 
			
		||||
</template>
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
  name: "LayInput"
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script setup name="LayInput" lang="ts">
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import { defineProps, defineEmits } from "vue";
 | 
			
		||||
 | 
			
		||||
export interface LayInputProps {
 | 
			
		||||
@ -42,3 +33,18 @@ const onBlur = function () {
 | 
			
		||||
  emit("blur");
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
  <input
 | 
			
		||||
    :type="type"
 | 
			
		||||
    :name="name"
 | 
			
		||||
    :value="modelValue"
 | 
			
		||||
    :disabled="disabled"
 | 
			
		||||
    :placeholder="placeholder"
 | 
			
		||||
    :class="{ 'layui-disabled': disabled }"
 | 
			
		||||
    class="layui-input"
 | 
			
		||||
    @input="onInput"
 | 
			
		||||
    @focus="onFocus"
 | 
			
		||||
    @blur="onBlur"
 | 
			
		||||
  />
 | 
			
		||||
</template>
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayLine", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,3 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <hr :class="['layui-border-' + theme]" />
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
  name: "LayLine"
 | 
			
		||||
@ -15,3 +11,7 @@ const props = defineProps<{
 | 
			
		||||
  theme?: string;
 | 
			
		||||
}>();
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
  <hr :class="['layui-border-' + theme]" />
 | 
			
		||||
</template>
 | 
			
		||||
@ -157,15 +157,15 @@
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-nav-tree .layui-nav-item {
 | 
			
		||||
  display: block;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  display: block;
 | 
			
		||||
  line-height: 42px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-nav-tree .layui-nav-item > a {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  height: 40px;
 | 
			
		||||
  line-height: 40px;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  text-overflow: ellipsis;
 | 
			
		||||
  overflow: hidden;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
@ -208,11 +208,11 @@
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-nav-tree .layui-nav-child {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  z-index: 0;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  z-index: 0;
 | 
			
		||||
  border: none;
 | 
			
		||||
  box-shadow: none;
 | 
			
		||||
  position: relative;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-nav-tree .layui-nav-child dd {
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayMenu", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,10 +1,10 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <ul class="layui-nav" :class="[level? 'level':'',inverted ? 'inverted':'',tree ? 'layui-nav-tree' : '', theme === 'dark' ? 'layui-nav-dark':'layui-nav-light' ]">
 | 
			
		||||
    <slot></slot>
 | 
			
		||||
  </ul>
 | 
			
		||||
</template>
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
  name: "LayMenu"
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script setup name="LayMenu" lang="ts">
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import { computed, defineProps, provide } from "vue";
 | 
			
		||||
import "./index.less";
 | 
			
		||||
 | 
			
		||||
@ -52,3 +52,9 @@ provide("isTree", isTree);
 | 
			
		||||
provide("selectedKey", selectedKey);
 | 
			
		||||
provide("openKeys", openKeys);
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
  <ul class="layui-nav" :class="[level? 'level':'',inverted ? 'inverted':'',tree ? 'layui-nav-tree' : '', theme === 'dark' ? 'layui-nav-dark':'layui-nav-light' ]">
 | 
			
		||||
    <slot></slot>
 | 
			
		||||
  </ul>
 | 
			
		||||
</template>
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayMenuItem", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayPage", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
@ -1,70 +1,10 @@
 | 
			
		||||
<template>
 | 
			
		||||
	<div class="layui-box layui-laypage layui-laypage-default">
 | 
			
		||||
		<span v-if="showCount" class="layui-laypage-count"
 | 
			
		||||
			>共 {{ total }} 条 {{ maxPage }} 页</span
 | 
			
		||||
		>
 | 
			
		||||
		<a
 | 
			
		||||
			href="javascript:;"
 | 
			
		||||
			class="layui-laypage-prev"
 | 
			
		||||
			:class="[currentPage === 1 ? 'layui-disabled' : '']"
 | 
			
		||||
			@click="prev()"
 | 
			
		||||
		>
 | 
			
		||||
			<slot v-if="slots.prev" name="prev"></slot>
 | 
			
		||||
			<template v-else>上一页</template>
 | 
			
		||||
		</a>
 | 
			
		||||
		<template v-if="showPage">
 | 
			
		||||
			<template v-for="index of totalPage" :key="index">
 | 
			
		||||
				<span v-if="index === currentPage" class="layui-laypage-curr">
 | 
			
		||||
					<em
 | 
			
		||||
						class="layui-laypage-em"
 | 
			
		||||
						:class="[theme ? 'layui-bg-' + theme : '']"
 | 
			
		||||
					></em>
 | 
			
		||||
					<em>{{ index }}</em>
 | 
			
		||||
				</span>
 | 
			
		||||
				<a v-else href="javascript:;" @click="jump(index)">{{ index }}</a>
 | 
			
		||||
			</template>
 | 
			
		||||
		</template>
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
	name: "LayPage"
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
		<a
 | 
			
		||||
			href="javascript:;"
 | 
			
		||||
			class="layui-laypage-next"
 | 
			
		||||
			:class="[currentPage === maxPage ? 'layui-disabled' : '']"
 | 
			
		||||
			@click="next()"
 | 
			
		||||
		>
 | 
			
		||||
			<slot v-if="slots.next" name="next"></slot>
 | 
			
		||||
			<template v-else>下一页</template>
 | 
			
		||||
		</a>
 | 
			
		||||
		<span v-if="showLimit" class="layui-laypage-limits">
 | 
			
		||||
			<select v-model="inlimit">
 | 
			
		||||
				<option v-for="val of limits" :key="val" :value="val">
 | 
			
		||||
					{{ val }} 条/页
 | 
			
		||||
				</option>
 | 
			
		||||
			</select>
 | 
			
		||||
		</span>
 | 
			
		||||
		<a v-if="showRefresh" href="javascript:;" class="layui-laypage-refresh">
 | 
			
		||||
			<i class="layui-icon layui-icon-refresh"></i>
 | 
			
		||||
		</a>
 | 
			
		||||
		<span v-if="showSkip" class="layui-laypage-skip">
 | 
			
		||||
			到第
 | 
			
		||||
			<input
 | 
			
		||||
				v-model="currentPageShow"
 | 
			
		||||
				@keypress.enter="jumpPage()"
 | 
			
		||||
				type="number"
 | 
			
		||||
				class="layui-input layui-input-number"
 | 
			
		||||
			/>页
 | 
			
		||||
			<button
 | 
			
		||||
				type="button"
 | 
			
		||||
				class="layui-laypage-btn"
 | 
			
		||||
				@click="jumpPage()"
 | 
			
		||||
				:disabled="currentPageShow > maxPage"
 | 
			
		||||
			>
 | 
			
		||||
				确定
 | 
			
		||||
			</button>
 | 
			
		||||
		</span>
 | 
			
		||||
	</div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script setup name="LayPage" lang="ts">
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import { defineProps, Ref, ref, watch, useSlots, computed } from "vue";
 | 
			
		||||
 | 
			
		||||
const slots = useSlots();
 | 
			
		||||
@ -161,3 +101,69 @@ watch(currentPage, function () {
 | 
			
		||||
	emit("jump", { current: currentPage.value });
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
	<div class="layui-box layui-laypage layui-laypage-default">
 | 
			
		||||
		<span v-if="showCount" class="layui-laypage-count"
 | 
			
		||||
			>共 {{ total }} 条 {{ maxPage }} 页</span
 | 
			
		||||
		>
 | 
			
		||||
		<a
 | 
			
		||||
			href="javascript:;"
 | 
			
		||||
			class="layui-laypage-prev"
 | 
			
		||||
			:class="[currentPage === 1 ? 'layui-disabled' : '']"
 | 
			
		||||
			@click="prev()"
 | 
			
		||||
		>
 | 
			
		||||
			<slot v-if="slots.prev" name="prev"></slot>
 | 
			
		||||
			<template v-else>上一页</template>
 | 
			
		||||
		</a>
 | 
			
		||||
		<template v-if="showPage">
 | 
			
		||||
			<template v-for="index of totalPage" :key="index">
 | 
			
		||||
				<span v-if="index === currentPage" class="layui-laypage-curr">
 | 
			
		||||
					<em
 | 
			
		||||
						class="layui-laypage-em"
 | 
			
		||||
						:class="[theme ? 'layui-bg-' + theme : '']"
 | 
			
		||||
					></em>
 | 
			
		||||
					<em>{{ index }}</em>
 | 
			
		||||
				</span>
 | 
			
		||||
				<a v-else href="javascript:;" @click="jump(index)">{{ index }}</a>
 | 
			
		||||
			</template>
 | 
			
		||||
		</template>
 | 
			
		||||
 | 
			
		||||
		<a
 | 
			
		||||
			href="javascript:;"
 | 
			
		||||
			class="layui-laypage-next"
 | 
			
		||||
			:class="[currentPage === maxPage ? 'layui-disabled' : '']"
 | 
			
		||||
			@click="next()"
 | 
			
		||||
		>
 | 
			
		||||
			<slot v-if="slots.next" name="next"></slot>
 | 
			
		||||
			<template v-else>下一页</template>
 | 
			
		||||
		</a>
 | 
			
		||||
		<span v-if="showLimit" class="layui-laypage-limits">
 | 
			
		||||
			<select v-model="inlimit">
 | 
			
		||||
				<option v-for="val of limits" :key="val" :value="val">
 | 
			
		||||
					{{ val }} 条/页
 | 
			
		||||
				</option>
 | 
			
		||||
			</select>
 | 
			
		||||
		</span>
 | 
			
		||||
		<a v-if="showRefresh" href="javascript:;" class="layui-laypage-refresh">
 | 
			
		||||
			<i class="layui-icon layui-icon-refresh"></i>
 | 
			
		||||
		</a>
 | 
			
		||||
		<span v-if="showSkip" class="layui-laypage-skip">
 | 
			
		||||
			到第
 | 
			
		||||
			<input
 | 
			
		||||
				v-model="currentPageShow"
 | 
			
		||||
				@keypress.enter="jumpPage()"
 | 
			
		||||
				type="number"
 | 
			
		||||
				class="layui-input layui-input-number"
 | 
			
		||||
			/>页
 | 
			
		||||
			<button
 | 
			
		||||
				type="button"
 | 
			
		||||
				class="layui-laypage-btn"
 | 
			
		||||
				@click="jumpPage()"
 | 
			
		||||
				:disabled="currentPageShow > maxPage"
 | 
			
		||||
			>
 | 
			
		||||
				确定
 | 
			
		||||
			</button>
 | 
			
		||||
		</span>
 | 
			
		||||
	</div>
 | 
			
		||||
</template>
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayPanel", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayProgress", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayRadio ", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,3 +1,30 @@
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
  name: "LayRadio"
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import { defineProps, defineEmits } from "vue";
 | 
			
		||||
 | 
			
		||||
const props = defineProps<{
 | 
			
		||||
  modelValue: string;
 | 
			
		||||
  disabled?: boolean;
 | 
			
		||||
  label?: string;
 | 
			
		||||
  name: string;
 | 
			
		||||
}>();
 | 
			
		||||
 | 
			
		||||
const emit = defineEmits(["update:modelValue", "change"]);
 | 
			
		||||
 | 
			
		||||
const handleClick = function () {
 | 
			
		||||
  if (props.disabled) {
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
  emit("change", props.label);
 | 
			
		||||
  emit("update:modelValue", props.label);
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
  <span>
 | 
			
		||||
    <input type="radio" :value="label" :name="name" />
 | 
			
		||||
@ -23,24 +50,3 @@
 | 
			
		||||
    </div>
 | 
			
		||||
  </span>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script setup name="LayRadio" lang="ts">
 | 
			
		||||
import { defineProps, defineEmits } from "vue";
 | 
			
		||||
 | 
			
		||||
const props = defineProps<{
 | 
			
		||||
  modelValue: string;
 | 
			
		||||
  disabled?: boolean;
 | 
			
		||||
  label?: string;
 | 
			
		||||
  name: string;
 | 
			
		||||
}>();
 | 
			
		||||
 | 
			
		||||
const emit = defineEmits(["update:modelValue", "change"]);
 | 
			
		||||
 | 
			
		||||
const handleClick = function () {
 | 
			
		||||
  if (props.disabled) {
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
  emit("change", props.label);
 | 
			
		||||
  emit("update:modelValue", props.label);
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,7 @@
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
  name: "LayResult"
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayRow", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayScroll", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,3 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="layui-side-scroll">
 | 
			
		||||
    <slot></slot>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
  name: "LayScroll"
 | 
			
		||||
@ -13,3 +7,9 @@ export default {
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import { defineProps } from "vue";
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="layui-side-scroll">
 | 
			
		||||
    <slot></slot>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LaySelect", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,79 +1,10 @@
 | 
			
		||||
<template>
 | 
			
		||||
	<div
 | 
			
		||||
		ref="selectRef"
 | 
			
		||||
		class="layui-unselect layui-form-select"
 | 
			
		||||
		:class="{ 'layui-form-selected': openState }"
 | 
			
		||||
	>
 | 
			
		||||
		<div class="layui-select-title" @click="open">
 | 
			
		||||
			<input
 | 
			
		||||
				type="text"
 | 
			
		||||
				:placeholder="
 | 
			
		||||
					selectItem.value !== null &&
 | 
			
		||||
					Array.isArray(selectItem.value) &&
 | 
			
		||||
					selectItem.value.length > 0
 | 
			
		||||
						? ''
 | 
			
		||||
						: emptyMessage ?? placeholder
 | 
			
		||||
				"
 | 
			
		||||
				:disabled="disabled"
 | 
			
		||||
				readonly
 | 
			
		||||
				:value="
 | 
			
		||||
					!selectItem.multiple && selectItem.value !== null
 | 
			
		||||
						? selectItem.label
 | 
			
		||||
						: null
 | 
			
		||||
				"
 | 
			
		||||
				:name="name"
 | 
			
		||||
				:class="[
 | 
			
		||||
					'layui-input',
 | 
			
		||||
					'layui-unselect',
 | 
			
		||||
					{ 'layui-disabled': disabled },
 | 
			
		||||
				]"
 | 
			
		||||
			/>
 | 
			
		||||
			<i :class="['layui-edge', { 'layui-disabled': disabled }]"></i>
 | 
			
		||||
			<!-- 多选 -->
 | 
			
		||||
			<div
 | 
			
		||||
				v-if="selectItem.multiple && Array.isArray(selectItem.label)"
 | 
			
		||||
				class="layui-multiple-select-row"
 | 
			
		||||
			>
 | 
			
		||||
				<div class="layui-multiple-select-badge">
 | 
			
		||||
					<template v-for="(item, index) in selectItem.label" :key="index">
 | 
			
		||||
						<lay-badge theme="green">
 | 
			
		||||
							<span>{{ item }}</span>
 | 
			
		||||
							<i
 | 
			
		||||
								:class="['layui-icon', { 'layui-icon-close': true }]"
 | 
			
		||||
								v-if="
 | 
			
		||||
									!disabled &&
 | 
			
		||||
									!(
 | 
			
		||||
										Array.isArray(selectItem.value) &&
 | 
			
		||||
										selectItem.value.length > 0 &&
 | 
			
		||||
										disabledItemMap[selectItem.value[index]]
 | 
			
		||||
									)
 | 
			
		||||
								"
 | 
			
		||||
								@click="
 | 
			
		||||
									removeItemHandle($event, {
 | 
			
		||||
										label: item,
 | 
			
		||||
										value: Array.isArray(selectItem.value)
 | 
			
		||||
											? selectItem.value[index]
 | 
			
		||||
											: null,
 | 
			
		||||
									})
 | 
			
		||||
								"
 | 
			
		||||
							>
 | 
			
		||||
							</i>
 | 
			
		||||
						</lay-badge>
 | 
			
		||||
					</template>
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
		<dl class="layui-anim layui-anim-upbit">
 | 
			
		||||
			<!-- 多选不支持空提示 -->
 | 
			
		||||
			<template v-if="!multiple && showEmpty">
 | 
			
		||||
				<lay-select-option :value="null" :label="emptyMessage ?? placeholder" />
 | 
			
		||||
			</template>
 | 
			
		||||
			<slot></slot>
 | 
			
		||||
		</dl>
 | 
			
		||||
	</div>
 | 
			
		||||
</template>
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
	name: "LaySelect"
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script setup name="LaySelect" lang="ts">
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import "./index.less";
 | 
			
		||||
import LaySelectOption from "../selectOption/index.vue";
 | 
			
		||||
import {
 | 
			
		||||
@ -88,7 +19,7 @@ import {
 | 
			
		||||
	Ref,
 | 
			
		||||
} from "vue";
 | 
			
		||||
import { useClickOutside } from "@layui/hooks-vue";
 | 
			
		||||
import { SelectItem } from "../type";
 | 
			
		||||
import { SelectItem } from "../../types";
 | 
			
		||||
 | 
			
		||||
const selectRef = ref<null | HTMLElement>(null);
 | 
			
		||||
const isClickOutside = useClickOutside(selectRef);
 | 
			
		||||
@ -218,3 +149,78 @@ provide("selectItemHandle", selectItemHandle);
 | 
			
		||||
provide("selectItem", selectItem);
 | 
			
		||||
provide("selectItemPush", selectItemPush);
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
	<div
 | 
			
		||||
		ref="selectRef"
 | 
			
		||||
		class="layui-unselect layui-form-select"
 | 
			
		||||
		:class="{ 'layui-form-selected': openState }"
 | 
			
		||||
	>
 | 
			
		||||
		<div class="layui-select-title" @click="open">
 | 
			
		||||
			<input
 | 
			
		||||
				type="text"
 | 
			
		||||
				:placeholder="
 | 
			
		||||
					selectItem.value !== null &&
 | 
			
		||||
					Array.isArray(selectItem.value) &&
 | 
			
		||||
					selectItem.value.length > 0
 | 
			
		||||
						? ''
 | 
			
		||||
						: emptyMessage ?? placeholder
 | 
			
		||||
				"
 | 
			
		||||
				:disabled="disabled"
 | 
			
		||||
				readonly
 | 
			
		||||
				:value="
 | 
			
		||||
					!selectItem.multiple && selectItem.value !== null
 | 
			
		||||
						? selectItem.label
 | 
			
		||||
						: null
 | 
			
		||||
				"
 | 
			
		||||
				:name="name"
 | 
			
		||||
				:class="[
 | 
			
		||||
					'layui-input',
 | 
			
		||||
					'layui-unselect',
 | 
			
		||||
					{ 'layui-disabled': disabled },
 | 
			
		||||
				]"
 | 
			
		||||
			/>
 | 
			
		||||
			<i :class="['layui-edge', { 'layui-disabled': disabled }]"></i>
 | 
			
		||||
			<!-- 多选 -->
 | 
			
		||||
			<div
 | 
			
		||||
				v-if="selectItem.multiple && Array.isArray(selectItem.label)"
 | 
			
		||||
				class="layui-multiple-select-row"
 | 
			
		||||
			>
 | 
			
		||||
				<div class="layui-multiple-select-badge">
 | 
			
		||||
					<template v-for="(item, index) in selectItem.label" :key="index">
 | 
			
		||||
						<lay-badge theme="green">
 | 
			
		||||
							<span>{{ item }}</span>
 | 
			
		||||
							<i
 | 
			
		||||
								:class="['layui-icon', { 'layui-icon-close': true }]"
 | 
			
		||||
								v-if="
 | 
			
		||||
									!disabled &&
 | 
			
		||||
									!(
 | 
			
		||||
										Array.isArray(selectItem.value) &&
 | 
			
		||||
										selectItem.value.length > 0 &&
 | 
			
		||||
										disabledItemMap[selectItem.value[index]]
 | 
			
		||||
									)
 | 
			
		||||
								"
 | 
			
		||||
								@click="
 | 
			
		||||
									removeItemHandle($event, {
 | 
			
		||||
										label: item,
 | 
			
		||||
										value: Array.isArray(selectItem.value)
 | 
			
		||||
											? selectItem.value[index]
 | 
			
		||||
											: null,
 | 
			
		||||
									})
 | 
			
		||||
								"
 | 
			
		||||
							>
 | 
			
		||||
							</i>
 | 
			
		||||
						</lay-badge>
 | 
			
		||||
					</template>
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
		<dl class="layui-anim layui-anim-upbit">
 | 
			
		||||
			<!-- 多选不支持空提示 -->
 | 
			
		||||
			<template v-if="!multiple && showEmpty">
 | 
			
		||||
				<lay-select-option :value="null" :label="emptyMessage ?? placeholder" />
 | 
			
		||||
			</template>
 | 
			
		||||
			<slot></slot>
 | 
			
		||||
		</dl>
 | 
			
		||||
	</div>
 | 
			
		||||
</template>
 | 
			
		||||
@ -1,21 +1,3 @@
 | 
			
		||||
<template>
 | 
			
		||||
	<dd
 | 
			
		||||
		:value="value"
 | 
			
		||||
		:class="[{ 'layui-this': selected }, { 'layui-disabled': disabled }]"
 | 
			
		||||
		@click="selectHandle"
 | 
			
		||||
	>
 | 
			
		||||
		<template v-if="selectItem.multiple">
 | 
			
		||||
			<lay-checkbox
 | 
			
		||||
				skin="primary"
 | 
			
		||||
				v-model="selected"
 | 
			
		||||
				@change="selectHandle"
 | 
			
		||||
				label=""
 | 
			
		||||
			/>
 | 
			
		||||
		</template>
 | 
			
		||||
		<slot>{{ label }}</slot>
 | 
			
		||||
	</dd>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
	name: "LaySelectOption",
 | 
			
		||||
@ -80,3 +62,21 @@ onMounted(() => {
 | 
			
		||||
	selected.value && callSelectItemHandle();
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
	<dd
 | 
			
		||||
		:value="value"
 | 
			
		||||
		:class="[{ 'layui-this': selected }, { 'layui-disabled': disabled }]"
 | 
			
		||||
		@click="selectHandle"
 | 
			
		||||
	>
 | 
			
		||||
		<template v-if="selectItem.multiple">
 | 
			
		||||
			<lay-checkbox
 | 
			
		||||
				skin="primary"
 | 
			
		||||
				v-model="selected"
 | 
			
		||||
				@change="selectHandle"
 | 
			
		||||
				label=""
 | 
			
		||||
			/>
 | 
			
		||||
		</template>
 | 
			
		||||
		<slot>{{ label }}</slot>
 | 
			
		||||
	</dd>
 | 
			
		||||
</template>
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from 'vue'
 | 
			
		||||
import Component from './index.vue'
 | 
			
		||||
import type { IDefineComponent } from '../../types/index'
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
    app.component(Component.name || 'LaySkeleton', Component)
 | 
			
		||||
    app.component(Component.name, Component)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,21 +1,10 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div :class="['lay-skeleton', animated ? 'lay-skeleton-animated': '',]" v-bind="$attrs">
 | 
			
		||||
    <template v-if="loading">
 | 
			
		||||
      <slot name="skeleton">
 | 
			
		||||
        <lay-skeleton-item
 | 
			
		||||
            v-for="item in rows"
 | 
			
		||||
            :class="[
 | 
			
		||||
              item===1? 'lay-skeleton-first': '',
 | 
			
		||||
              item === rows? 'lay-skeleton-last': '']"
 | 
			
		||||
            type="p"
 | 
			
		||||
        ></lay-skeleton-item>
 | 
			
		||||
      </slot>
 | 
			
		||||
    </template>
 | 
			
		||||
    <slot v-else></slot>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
  name: "LaySkeleton"
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script setup name="LaySkeleton" lang="ts">
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import LaySkeletonItem from '../skeletonItem/index.vue'
 | 
			
		||||
import './index.less'
 | 
			
		||||
import { defineProps, withDefaults} from "vue";
 | 
			
		||||
@ -31,4 +20,22 @@ const props = withDefaults(defineProps<LaySkeletonProps>(), {
 | 
			
		||||
  loading: false,
 | 
			
		||||
  animated: false,
 | 
			
		||||
});
 | 
			
		||||
</script>-
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
  <div :class="['lay-skeleton', animated ? 'lay-skeleton-animated': '',]" v-bind="$attrs">
 | 
			
		||||
    <template v-if="loading">
 | 
			
		||||
      <slot name="skeleton">
 | 
			
		||||
        <lay-skeleton-item
 | 
			
		||||
            v-for="item in rows"
 | 
			
		||||
            :key="item"
 | 
			
		||||
            :class="[
 | 
			
		||||
              item===1? 'lay-skeleton-first': '',
 | 
			
		||||
              item === rows? 'lay-skeleton-last': '']"
 | 
			
		||||
            type="p"
 | 
			
		||||
        ></lay-skeleton-item>
 | 
			
		||||
      </slot>
 | 
			
		||||
    </template>
 | 
			
		||||
    <slot v-else></slot>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
@ -1,16 +1,3 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div
 | 
			
		||||
    ref="target"
 | 
			
		||||
    :class="['lay-split-panel', vertical ? 'lay-split-panel-vertical' : '']"
 | 
			
		||||
    :style="{
 | 
			
		||||
      cursor: domStatus ? (!vertical ? 'col-resize' : 'row-resize') : '',
 | 
			
		||||
    }"
 | 
			
		||||
    v-on="{ mouseup: mouseup }"
 | 
			
		||||
  >
 | 
			
		||||
    <slot></slot>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
  name: "laySplitPanel"
 | 
			
		||||
@ -132,3 +119,16 @@ provide("laySplitPanel", {
 | 
			
		||||
  moveChange,
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
  <div
 | 
			
		||||
    ref="target"
 | 
			
		||||
    :class="['lay-split-panel', vertical ? 'lay-split-panel-vertical' : '']"
 | 
			
		||||
    :style="{
 | 
			
		||||
      cursor: domStatus ? (!vertical ? 'col-resize' : 'row-resize') : '',
 | 
			
		||||
    }"
 | 
			
		||||
    v-on="{ mouseup: mouseup }"
 | 
			
		||||
  >
 | 
			
		||||
    <slot></slot>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
@ -1,26 +1,3 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div
 | 
			
		||||
    v-if="!isStart"
 | 
			
		||||
    :class="[!isStart ? 'lay-split-panel-line' : '']"
 | 
			
		||||
    ref="el"
 | 
			
		||||
    v-on="{ mousedown: mousedown, mouseup: mouseup }"
 | 
			
		||||
  ></div>
 | 
			
		||||
  <div
 | 
			
		||||
    v-if="isVertical"
 | 
			
		||||
    :class="['lay-split-panel-item']"
 | 
			
		||||
    :style="{ height: `${space ? space : (100 + space) / stepsCount}%` }"
 | 
			
		||||
  >
 | 
			
		||||
    <slot></slot>
 | 
			
		||||
  </div>
 | 
			
		||||
  <div
 | 
			
		||||
    v-else
 | 
			
		||||
    :class="['lay-split-panel-item']"
 | 
			
		||||
    :style="{ width: `${space ? space : (100 + space) / stepsCount}%` }"
 | 
			
		||||
  >
 | 
			
		||||
    <slot></slot>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
  name: "LaySplitPanelItem"
 | 
			
		||||
@ -100,3 +77,26 @@ onBeforeUnmount(() => {
 | 
			
		||||
  );
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
  <div
 | 
			
		||||
    v-if="!isStart"
 | 
			
		||||
    :class="[!isStart ? 'lay-split-panel-line' : '']"
 | 
			
		||||
    ref="el"
 | 
			
		||||
    v-on="{ mousedown: mousedown, mouseup: mouseup }"
 | 
			
		||||
  ></div>
 | 
			
		||||
  <div
 | 
			
		||||
    v-if="isVertical"
 | 
			
		||||
    :class="['lay-split-panel-item']"
 | 
			
		||||
    :style="{ height: `${space ? space : (100 + space) / stepsCount}%` }"
 | 
			
		||||
  >
 | 
			
		||||
    <slot></slot>
 | 
			
		||||
  </div>
 | 
			
		||||
  <div
 | 
			
		||||
    v-else
 | 
			
		||||
    :class="['lay-split-panel-item']"
 | 
			
		||||
    :style="{ width: `${space ? space : (100 + space) / stepsCount}%` }"
 | 
			
		||||
  >
 | 
			
		||||
    <slot></slot>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
@ -1,86 +1,3 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div
 | 
			
		||||
    v-if="!simple"
 | 
			
		||||
    :class="[
 | 
			
		||||
      'lay-step-item',
 | 
			
		||||
      isLast && !isCenter && composition !== 'row' ? 'lay-step-item-last' : '',
 | 
			
		||||
      isCenter ? 'is-item-center' : '',
 | 
			
		||||
      isVertical ? 'is-vertical' : '',
 | 
			
		||||
    ]"
 | 
			
		||||
    :style="{ flexBasis: space, flexGrow: space === 'auto' ? 1 : 0 }"
 | 
			
		||||
  >
 | 
			
		||||
    <div
 | 
			
		||||
      :class="[
 | 
			
		||||
        !isLast
 | 
			
		||||
          ? isLineActive
 | 
			
		||||
            ? `lay-step-item-line lay-step-item-line-${status || 'active'}`
 | 
			
		||||
            : 'lay-step-item-line'
 | 
			
		||||
          : '',
 | 
			
		||||
        isCenter ? 'is-line-center' : '',
 | 
			
		||||
      ]"
 | 
			
		||||
    >
 | 
			
		||||
      <div
 | 
			
		||||
        :class="[
 | 
			
		||||
          'lay-step-item-pace',
 | 
			
		||||
          isActive ? `lay-step-item-active` : '',
 | 
			
		||||
          isCurrent === index ? `lay-step-item--${currentStatus}` : '',
 | 
			
		||||
          status ? `lay-step-item-${status}` : '',
 | 
			
		||||
          isWait ? 'lay-step-item-wait' : '',
 | 
			
		||||
          isCenter ? 'is-center' : '',
 | 
			
		||||
        ]"
 | 
			
		||||
        @click="onChange(index + 1)"
 | 
			
		||||
      >
 | 
			
		||||
        <slot name="pace">
 | 
			
		||||
          <template v-if="icon">
 | 
			
		||||
            <lay-icon :type="icon"></lay-icon>
 | 
			
		||||
          </template>
 | 
			
		||||
          <template v-else>
 | 
			
		||||
            <span v-if="!isActive">{{ index + 1 }}</span>
 | 
			
		||||
            <lay-icon
 | 
			
		||||
              v-else
 | 
			
		||||
              :type="status === 'fail' ? 'layui-icon-close' : 'layui-icon-ok'"
 | 
			
		||||
            ></lay-icon>
 | 
			
		||||
          </template>
 | 
			
		||||
        </slot>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div
 | 
			
		||||
      :class="[
 | 
			
		||||
        'lay-step-item-content',
 | 
			
		||||
        composition === 'row' ? 'lay-step-item-content-row' : '',
 | 
			
		||||
        isActive ? `lay-step-item-content-active` : '',
 | 
			
		||||
        isCurrent === index ? `lay-step-item-content--${currentStatus}` : '',
 | 
			
		||||
        status ? `lay-step-item-content-${status}` : '',
 | 
			
		||||
        isWait ? 'lay-step-item-content-wait' : '',
 | 
			
		||||
      ]"
 | 
			
		||||
      @click="onChange(index + 1)"
 | 
			
		||||
    >
 | 
			
		||||
      <slot>
 | 
			
		||||
        <div class="lay-step-item-content-title">{{ title }}</div>
 | 
			
		||||
        <p>{{ content }}</p>
 | 
			
		||||
      </slot>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
  <div
 | 
			
		||||
    v-else
 | 
			
		||||
    :class="[
 | 
			
		||||
      'lay-step-item',
 | 
			
		||||
      'lay-step-simple',
 | 
			
		||||
      !isStart ? 'lay-step-item-simple' : '',
 | 
			
		||||
      'lay-step-item-simple-border',
 | 
			
		||||
      isActive ? 'lay-step-item-simple-active' : '',
 | 
			
		||||
      isCurrent === index ? `lay-step-item-simple-${currentStatus}` : '',
 | 
			
		||||
      isCurrentBorder === index
 | 
			
		||||
        ? `lay-step-item-simple-${currentStatus}-border`
 | 
			
		||||
        : '',
 | 
			
		||||
      isSimpleActive ? 'lay-step-item-simple-active-border' : '',
 | 
			
		||||
    ]"
 | 
			
		||||
    @click="onChange(index + 1)"
 | 
			
		||||
  >
 | 
			
		||||
    <slot>{{ index + 1 }}.{{ title }}</slot>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
  name: "LayStepItem"
 | 
			
		||||
@ -201,3 +118,86 @@ onBeforeUnmount(() => {
 | 
			
		||||
  );
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
  <div
 | 
			
		||||
    v-if="!simple"
 | 
			
		||||
    :class="[
 | 
			
		||||
      'lay-step-item',
 | 
			
		||||
      isLast && !isCenter && composition !== 'row' ? 'lay-step-item-last' : '',
 | 
			
		||||
      isCenter ? 'is-item-center' : '',
 | 
			
		||||
      isVertical ? 'is-vertical' : '',
 | 
			
		||||
    ]"
 | 
			
		||||
    :style="{ flexBasis: space, flexGrow: space === 'auto' ? 1 : 0 }"
 | 
			
		||||
  >
 | 
			
		||||
    <div
 | 
			
		||||
      :class="[
 | 
			
		||||
        !isLast
 | 
			
		||||
          ? isLineActive
 | 
			
		||||
            ? `lay-step-item-line lay-step-item-line-${status || 'active'}`
 | 
			
		||||
            : 'lay-step-item-line'
 | 
			
		||||
          : '',
 | 
			
		||||
        isCenter ? 'is-line-center' : '',
 | 
			
		||||
      ]"
 | 
			
		||||
    >
 | 
			
		||||
      <div
 | 
			
		||||
        :class="[
 | 
			
		||||
          'lay-step-item-pace',
 | 
			
		||||
          isActive ? `lay-step-item-active` : '',
 | 
			
		||||
          isCurrent === index ? `lay-step-item--${currentStatus}` : '',
 | 
			
		||||
          status ? `lay-step-item-${status}` : '',
 | 
			
		||||
          isWait ? 'lay-step-item-wait' : '',
 | 
			
		||||
          isCenter ? 'is-center' : '',
 | 
			
		||||
        ]"
 | 
			
		||||
        @click="onChange(index + 1)"
 | 
			
		||||
      >
 | 
			
		||||
        <slot name="pace">
 | 
			
		||||
          <template v-if="icon">
 | 
			
		||||
            <lay-icon :type="icon"></lay-icon>
 | 
			
		||||
          </template>
 | 
			
		||||
          <template v-else>
 | 
			
		||||
            <span v-if="!isActive">{{ index + 1 }}</span>
 | 
			
		||||
            <lay-icon
 | 
			
		||||
              v-else
 | 
			
		||||
              :type="status === 'fail' ? 'layui-icon-close' : 'layui-icon-ok'"
 | 
			
		||||
            ></lay-icon>
 | 
			
		||||
          </template>
 | 
			
		||||
        </slot>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div
 | 
			
		||||
      :class="[
 | 
			
		||||
        'lay-step-item-content',
 | 
			
		||||
        composition === 'row' ? 'lay-step-item-content-row' : '',
 | 
			
		||||
        isActive ? `lay-step-item-content-active` : '',
 | 
			
		||||
        isCurrent === index ? `lay-step-item-content--${currentStatus}` : '',
 | 
			
		||||
        status ? `lay-step-item-content-${status}` : '',
 | 
			
		||||
        isWait ? 'lay-step-item-content-wait' : '',
 | 
			
		||||
      ]"
 | 
			
		||||
      @click="onChange(index + 1)"
 | 
			
		||||
    >
 | 
			
		||||
      <slot>
 | 
			
		||||
        <div class="lay-step-item-content-title">{{ title }}</div>
 | 
			
		||||
        <p>{{ content }}</p>
 | 
			
		||||
      </slot>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
  <div
 | 
			
		||||
    v-else
 | 
			
		||||
    :class="[
 | 
			
		||||
      'lay-step-item',
 | 
			
		||||
      'lay-step-simple',
 | 
			
		||||
      !isStart ? 'lay-step-item-simple' : '',
 | 
			
		||||
      'lay-step-item-simple-border',
 | 
			
		||||
      isActive ? 'lay-step-item-simple-active' : '',
 | 
			
		||||
      isCurrent === index ? `lay-step-item-simple-${currentStatus}` : '',
 | 
			
		||||
      isCurrentBorder === index
 | 
			
		||||
        ? `lay-step-item-simple-${currentStatus}-border`
 | 
			
		||||
        : '',
 | 
			
		||||
      isSimpleActive ? 'lay-step-item-simple-active-border' : '',
 | 
			
		||||
    ]"
 | 
			
		||||
    @click="onChange(index + 1)"
 | 
			
		||||
  >
 | 
			
		||||
    <slot>{{ index + 1 }}.{{ title }}</slot>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayTabItem", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -4,3 +4,610 @@
 | 
			
		||||
.layui-table-col-special {
 | 
			
		||||
  width: 34px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  background-color: #fff;
 | 
			
		||||
  color: #666;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table tr {
 | 
			
		||||
  transition: all 0.3s;
 | 
			
		||||
  -webkit-transition: all 0.3s;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table th {
 | 
			
		||||
  text-align: left;
 | 
			
		||||
  font-weight: 400;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table tbody tr:hover,
 | 
			
		||||
.layui-table thead tr,
 | 
			
		||||
.layui-table-click,
 | 
			
		||||
.layui-table-header,
 | 
			
		||||
.layui-table-hover,
 | 
			
		||||
.layui-table-mend,
 | 
			
		||||
.layui-table-patch,
 | 
			
		||||
.layui-table-tool,
 | 
			
		||||
.layui-table-total,
 | 
			
		||||
.layui-table-total tr,
 | 
			
		||||
.layui-table[lay-even] tr:nth-child(even) {
 | 
			
		||||
  background-color: #fafafa;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table td,
 | 
			
		||||
.layui-table th,
 | 
			
		||||
.layui-table-col-set,
 | 
			
		||||
.layui-table-fixed-r,
 | 
			
		||||
.layui-table-grid-down,
 | 
			
		||||
.layui-table-header,
 | 
			
		||||
.layui-table-page,
 | 
			
		||||
.layui-table-tips-main,
 | 
			
		||||
.layui-table-tool,
 | 
			
		||||
.layui-table-total,
 | 
			
		||||
.layui-table-view,
 | 
			
		||||
.layui-table[lay-skin="line"],
 | 
			
		||||
.layui-table[lay-skin="row"] {
 | 
			
		||||
  border-width: 1px;
 | 
			
		||||
  border-style: solid;
 | 
			
		||||
  border-color: #eee;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table td,
 | 
			
		||||
.layui-table th {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  padding: 9px 15px;
 | 
			
		||||
  min-height: 20px;
 | 
			
		||||
  line-height: 20px;
 | 
			
		||||
  font-size: 14px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table[lay-skin="line"] td,
 | 
			
		||||
.layui-table[lay-skin="line"] th {
 | 
			
		||||
  border-width: 0 0 1px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table[lay-skin="row"] td,
 | 
			
		||||
.layui-table[lay-skin="row"] th {
 | 
			
		||||
  border-width: 0 1px 0 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table[lay-skin="nob"] td,
 | 
			
		||||
.layui-table[lay-skin="nob"] th {
 | 
			
		||||
  border: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table img {
 | 
			
		||||
  max-width: 100px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table[lay-size="lg"] td,
 | 
			
		||||
.layui-table[lay-size="lg"] th {
 | 
			
		||||
  padding: 15px 30px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-table[lay-size="lg"] .layui-table-cell {
 | 
			
		||||
  height: 40px;
 | 
			
		||||
  line-height: 40px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table[lay-size="sm"] td,
 | 
			
		||||
.layui-table[lay-size="sm"] th {
 | 
			
		||||
  font-size: 12px;
 | 
			
		||||
  padding: 5px 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-table[lay-size="sm"] .layui-table-cell {
 | 
			
		||||
  height: 20px;
 | 
			
		||||
  line-height: 20px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table[lay-data] {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-box {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  overflow: hidden;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-table {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  margin: 0;
 | 
			
		||||
  border-collapse: separate;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-table[lay-skin="line"] {
 | 
			
		||||
  border-width: 0 1px 0 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-table[lay-skin="row"] {
 | 
			
		||||
  border-width: 0 0 1px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-table td,
 | 
			
		||||
.layui-table-view .layui-table th {
 | 
			
		||||
  border-top: none;
 | 
			
		||||
  border-left: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-table td.layui-table-col-special,
 | 
			
		||||
.layui-table-view .layui-table th.layui-table-col-special {
 | 
			
		||||
  padding: 5px 16px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-table th.layui-unselect .layui-table-cell span {
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-table td {
 | 
			
		||||
  cursor: default;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-table td[data-edit="text"] {
 | 
			
		||||
  cursor: text;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-form-checkbox[lay-skin="primary"] i {
 | 
			
		||||
  width: 18px;
 | 
			
		||||
  height: 18px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-form-radio {
 | 
			
		||||
  line-height: 0;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-form-radio > i {
 | 
			
		||||
  margin: 0;
 | 
			
		||||
  font-size: 20px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-init {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  left: 0;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  z-index: 110;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-init .layui-icon {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  left: 50%;
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  margin: -15px 0 0 -15px;
 | 
			
		||||
  font-size: 30px;
 | 
			
		||||
  color: #c2c2c2;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-header {
 | 
			
		||||
  border-width: 0 0 1px;
 | 
			
		||||
  overflow: hidden;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-header .layui-table {
 | 
			
		||||
  margin-bottom: -1px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool .layui-inline[lay-event] {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  width: 26px;
 | 
			
		||||
  height: 26px;
 | 
			
		||||
  padding: 5px;
 | 
			
		||||
  line-height: 16px;
 | 
			
		||||
  margin-right: 10px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  color: #333;
 | 
			
		||||
  border: 1px solid #ccc;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
  -webkit-transition: 0.5s all;
 | 
			
		||||
  transition: 0.5s all;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool .layui-inline[lay-event]:hover {
 | 
			
		||||
  border: 1px solid #999;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool-temp {
 | 
			
		||||
  padding-right: 120px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool-self {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  right: 17px;
 | 
			
		||||
  top: 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool .layui-table-tool-self .layui-inline[lay-event] {
 | 
			
		||||
  margin: 0 0 0 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool-panel {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 29px;
 | 
			
		||||
  left: -1px;
 | 
			
		||||
  padding: 5px 0;
 | 
			
		||||
  min-width: 150px;
 | 
			
		||||
  min-height: 40px;
 | 
			
		||||
  border: 1px solid #d2d2d2;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
  overflow-y: auto;
 | 
			
		||||
  background-color: #fff;
 | 
			
		||||
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-cell,
 | 
			
		||||
.layui-table-tool-panel li {
 | 
			
		||||
  overflow: hidden;
 | 
			
		||||
  text-overflow: ellipsis;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool-panel li {
 | 
			
		||||
  padding: 0 10px;
 | 
			
		||||
  line-height: 30px;
 | 
			
		||||
  -webkit-transition: 0.5s all;
 | 
			
		||||
  transition: 0.5s all;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool-panel li .layui-form-checkbox[lay-skin="primary"] {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  padding-left: 28px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool-panel li:hover {
 | 
			
		||||
  background-color: #f6f6f6;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool-panel li .layui-form-checkbox[lay-skin="primary"] i {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  left: 0;
 | 
			
		||||
  top: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool-panel li .layui-form-checkbox[lay-skin="primary"] span {
 | 
			
		||||
  padding: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool .layui-table-tool-self .layui-table-tool-panel {
 | 
			
		||||
  left: auto;
 | 
			
		||||
  right: -1px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-col-set {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  right: 0;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  width: 20px;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  border-width: 0 0 0 1px;
 | 
			
		||||
  background-color: #fff;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-sort {
 | 
			
		||||
  width: 10px;
 | 
			
		||||
  height: 20px;
 | 
			
		||||
  margin-left: 5px;
 | 
			
		||||
  cursor: pointer !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-sort .layui-edge {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  left: 5px;
 | 
			
		||||
  border-width: 5px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-sort .layui-table-sort-asc {
 | 
			
		||||
  top: 3px;
 | 
			
		||||
  border-top: none;
 | 
			
		||||
  border-bottom-style: solid;
 | 
			
		||||
  border-bottom-color: #b2b2b2;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-sort .layui-table-sort-asc:hover {
 | 
			
		||||
  border-bottom-color: #666;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-sort .layui-table-sort-desc {
 | 
			
		||||
  bottom: 5px;
 | 
			
		||||
  border-bottom: none;
 | 
			
		||||
  border-top-style: solid;
 | 
			
		||||
  border-top-color: #b2b2b2;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-sort .layui-table-sort-desc:hover {
 | 
			
		||||
  border-top-color: #666;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-sort[lay-sort="asc"] .layui-table-sort-asc {
 | 
			
		||||
  border-bottom-color: #000;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-sort[lay-sort="desc"] .layui-table-sort-desc {
 | 
			
		||||
  border-top-color: #000;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-cell {
 | 
			
		||||
  height: 28px;
 | 
			
		||||
  line-height: 28px;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-cell .layui-form-checkbox[lay-skin="primary"] {
 | 
			
		||||
  top: -1px;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-cell .layui-table-link {
 | 
			
		||||
  color: #01aaed;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.laytable-cell-checkbox,
 | 
			
		||||
.laytable-cell-numbers,
 | 
			
		||||
.laytable-cell-radio,
 | 
			
		||||
.laytable-cell-space {
 | 
			
		||||
  padding: 0;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  -webkit-box-pack: center;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-body {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  overflow: auto;
 | 
			
		||||
  margin-right: -1px;
 | 
			
		||||
  margin-bottom: -1px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-body .layui-none {
 | 
			
		||||
  line-height: 26px;
 | 
			
		||||
  padding: 30px 15px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  color: #999;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-fixed {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  left: 0;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  z-index: 101;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-fixed .layui-table-body {
 | 
			
		||||
  overflow: hidden;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-fixed-l {
 | 
			
		||||
  box-shadow: 1px 0 8px rgba(0, 0, 0, 0.08);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-fixed-r {
 | 
			
		||||
  left: auto;
 | 
			
		||||
  right: -1px;
 | 
			
		||||
  border-width: 0 0 0 1px;
 | 
			
		||||
  box-shadow: -1px 0 8px rgba(0, 0, 0, 0.08);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-fixed-r .layui-table-header {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  overflow: visible;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-mend {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  right: -49px;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  width: 50px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  z-index: 890;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  min-height: 50px;
 | 
			
		||||
  line-height: 30px;
 | 
			
		||||
  padding: 10px 15px;
 | 
			
		||||
  border-width: 0 0 1px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool .layui-btn-container {
 | 
			
		||||
  margin-bottom: -10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page,
 | 
			
		||||
.layui-table-total {
 | 
			
		||||
  border-width: 1px 0 0;
 | 
			
		||||
  margin-bottom: -1px;
 | 
			
		||||
  overflow: hidden;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  padding: 7px 7px 0;
 | 
			
		||||
  height: 41px;
 | 
			
		||||
  font-size: 12px;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page > div {
 | 
			
		||||
  height: 26px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page .layui-laypage {
 | 
			
		||||
  margin: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page .layui-laypage a,
 | 
			
		||||
.layui-table-page .layui-laypage span {
 | 
			
		||||
  height: 26px;
 | 
			
		||||
  line-height: 26px;
 | 
			
		||||
  margin-bottom: 10px;
 | 
			
		||||
  border: none;
 | 
			
		||||
  background: 0 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page .layui-laypage a,
 | 
			
		||||
.layui-table-page .layui-laypage span.layui-laypage-curr {
 | 
			
		||||
  padding: 0 12px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page .layui-laypage span {
 | 
			
		||||
  margin-left: 0;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page .layui-laypage .layui-laypage-prev {
 | 
			
		||||
  margin-left: -7px !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page .layui-laypage .layui-laypage-curr .layui-laypage-em {
 | 
			
		||||
  left: 0;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page .layui-laypage button,
 | 
			
		||||
.layui-table-page .layui-laypage input {
 | 
			
		||||
  height: 26px;
 | 
			
		||||
  line-height: 26px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page .layui-laypage input {
 | 
			
		||||
  width: 40px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page .layui-laypage button {
 | 
			
		||||
  padding: 0 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page select {
 | 
			
		||||
  height: 18px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-pagebar {
 | 
			
		||||
  float: right;
 | 
			
		||||
  line-height: 26px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view select[lay-ignore] {
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-patch .layui-table-cell {
 | 
			
		||||
  padding: 0;
 | 
			
		||||
  width: 30px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-edit {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  left: 0;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  padding: 0 14px 1px;
 | 
			
		||||
  border-radius: 0;
 | 
			
		||||
  box-shadow: 1px 1px 20px rgba(0, 0, 0, 0.15);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-edit:focus {
 | 
			
		||||
  border-color: #5fb878 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
select.layui-table-edit {
 | 
			
		||||
  padding: 0 0 0 10px;
 | 
			
		||||
  border-color: #d2d2d2;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-form-checkbox,
 | 
			
		||||
.layui-table-view .layui-form-radio,
 | 
			
		||||
.layui-table-view .layui-form-switch {
 | 
			
		||||
  top: 0;
 | 
			
		||||
  margin: 0;
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-form-checkbox {
 | 
			
		||||
  top: -1px;
 | 
			
		||||
  height: 26px;
 | 
			
		||||
  line-height: 26px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-form-checkbox i {
 | 
			
		||||
  height: 26px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-grid .layui-table-cell {
 | 
			
		||||
  overflow: visible;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-grid-down {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  right: 0;
 | 
			
		||||
  width: 26px;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  padding: 5px 0;
 | 
			
		||||
  border-width: 0 0 0 1px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  background-color: #fff;
 | 
			
		||||
  color: #999;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-grid-down .layui-icon {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  left: 50%;
 | 
			
		||||
  margin: -8px 0 0 -8px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-grid-down:hover {
 | 
			
		||||
  background-color: #fbfbfb;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
body .layui-table-tips .layui-layer-content {
 | 
			
		||||
  background: 0 0;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.12);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tips-main {
 | 
			
		||||
  margin: -44px 0 0 -1px;
 | 
			
		||||
  max-height: 150px;
 | 
			
		||||
  padding: 8px 15px;
 | 
			
		||||
  font-size: 14px;
 | 
			
		||||
  overflow-y: scroll;
 | 
			
		||||
  background-color: #fff;
 | 
			
		||||
  color: #666;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tips-c {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  right: -3px;
 | 
			
		||||
  top: -13px;
 | 
			
		||||
  width: 20px;
 | 
			
		||||
  height: 20px;
 | 
			
		||||
  padding: 3px;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
  background-color: #666;
 | 
			
		||||
  border-radius: 50%;
 | 
			
		||||
  color: #fff;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tips-c:hover {
 | 
			
		||||
  background-color: #777;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tips-c:before {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  right: -2px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table,
 | 
			
		||||
.layui-table-view {
 | 
			
		||||
  margin: 10px 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayTimeline", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
import type { IDefineComponent } from "../../types/index";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name || "LayTimelineItem", Component);
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component as IDefineComponent;
 | 
			
		||||
export default Component;
 | 
			
		||||
 | 
			
		||||
@ -1,21 +1,3 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <li class="layui-timeline-item">
 | 
			
		||||
    <i class="layui-icon layui-timeline-axis" v-if="slot.dot">
 | 
			
		||||
      <slot name="dot"></slot>
 | 
			
		||||
    </i>
 | 
			
		||||
    <i class="layui-icon layui-timeline-axis" v-else></i>
 | 
			
		||||
    <div class="layui-timeline-content layui-text">
 | 
			
		||||
      <div v-if="simple" class="layui-timeline-title">
 | 
			
		||||
        {{ title }}
 | 
			
		||||
      </div>
 | 
			
		||||
      <h3 v-else class="layui-timeline-title">
 | 
			
		||||
        {{ title }}
 | 
			
		||||
      </h3>
 | 
			
		||||
      <slot></slot>
 | 
			
		||||
    </div>
 | 
			
		||||
  </li>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
  name: "LayTimelineItem",
 | 
			
		||||
@ -34,3 +16,21 @@ export interface LayTimelineItemProps {
 | 
			
		||||
 | 
			
		||||
const props = defineProps<LayTimelineItemProps>();
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
  <li class="layui-timeline-item">
 | 
			
		||||
    <i class="layui-icon layui-timeline-axis" v-if="slot.dot">
 | 
			
		||||
      <slot name="dot"></slot>
 | 
			
		||||
    </i>
 | 
			
		||||
    <i class="layui-icon layui-timeline-axis" v-else></i>
 | 
			
		||||
    <div class="layui-timeline-content layui-text">
 | 
			
		||||
      <div v-if="simple" class="layui-timeline-title">
 | 
			
		||||
        {{ title }}
 | 
			
		||||
      </div>
 | 
			
		||||
      <h3 v-else class="layui-timeline-title">
 | 
			
		||||
        {{ title }}
 | 
			
		||||
      </h3>
 | 
			
		||||
      <slot></slot>
 | 
			
		||||
    </div>
 | 
			
		||||
  </li>
 | 
			
		||||
</template>
 | 
			
		||||
@ -75,6 +75,7 @@ import LaySplitPanel from "./component/splitPanel/index";
 | 
			
		||||
import LaySplitPanelItem from "./component/splitPanelItem/index";
 | 
			
		||||
import LayException from "./component/exception/index"
 | 
			
		||||
import LayResult from "./component/result/index"
 | 
			
		||||
import LayConfigProvider from "./provider"
 | 
			
		||||
 | 
			
		||||
const components: Record<string, Component> = {
 | 
			
		||||
  LaySplitPanel,
 | 
			
		||||
@ -146,7 +147,8 @@ const components: Record<string, Component> = {
 | 
			
		||||
  LayStepItem,
 | 
			
		||||
  LaySubMenu,
 | 
			
		||||
  LayException,
 | 
			
		||||
  LayResult
 | 
			
		||||
  LayResult,
 | 
			
		||||
  LayConfigProvider
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const install = (app: App): void => {
 | 
			
		||||
@ -226,7 +228,8 @@ export {
 | 
			
		||||
  LayStepItem,
 | 
			
		||||
  LaySubMenu,
 | 
			
		||||
  LayException,
 | 
			
		||||
  LayResult
 | 
			
		||||
  LayResult,
 | 
			
		||||
  LayConfigProvider
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export { layer, useLayer };
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										8
									
								
								src/provider/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/provider/index.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,8 @@
 | 
			
		||||
import type { App } from "vue";
 | 
			
		||||
import Component from "./index.vue";
 | 
			
		||||
 | 
			
		||||
Component.install = (app: App) => {
 | 
			
		||||
  app.component(Component.name, Component);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default Component;
 | 
			
		||||
							
								
								
									
										19
									
								
								src/provider/index.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								src/provider/index.vue
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,19 @@
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
    name: "lay-config-provider"
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
 | 
			
		||||
// 切换主题
 | 
			
		||||
 | 
			
		||||
// 切换语言
 | 
			
		||||
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
    <div class="lay-config-provider">
 | 
			
		||||
        <slot></slot>    
 | 
			
		||||
    </div>    
 | 
			
		||||
</template>
 | 
			
		||||
@ -1677,11 +1677,6 @@ a cite {
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table,
 | 
			
		||||
.layui-table-view {
 | 
			
		||||
  margin: 10px 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-flow-more {
 | 
			
		||||
  margin: 10px 0;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
@ -1716,253 +1711,6 @@ a cite {
 | 
			
		||||
  color: #737383;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  background-color: #fff;
 | 
			
		||||
  color: #666;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table tr {
 | 
			
		||||
  transition: all 0.3s;
 | 
			
		||||
  -webkit-transition: all 0.3s;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table th {
 | 
			
		||||
  text-align: left;
 | 
			
		||||
  font-weight: 400;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table tbody tr:hover,
 | 
			
		||||
.layui-table thead tr,
 | 
			
		||||
.layui-table-click,
 | 
			
		||||
.layui-table-header,
 | 
			
		||||
.layui-table-hover,
 | 
			
		||||
.layui-table-mend,
 | 
			
		||||
.layui-table-patch,
 | 
			
		||||
.layui-table-tool,
 | 
			
		||||
.layui-table-total,
 | 
			
		||||
.layui-table-total tr,
 | 
			
		||||
.layui-table[lay-even] tr:nth-child(even) {
 | 
			
		||||
  background-color: #fafafa;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table td,
 | 
			
		||||
.layui-table th,
 | 
			
		||||
.layui-table-col-set,
 | 
			
		||||
.layui-table-fixed-r,
 | 
			
		||||
.layui-table-grid-down,
 | 
			
		||||
.layui-table-header,
 | 
			
		||||
.layui-table-page,
 | 
			
		||||
.layui-table-tips-main,
 | 
			
		||||
.layui-table-tool,
 | 
			
		||||
.layui-table-total,
 | 
			
		||||
.layui-table-view,
 | 
			
		||||
.layui-table[lay-skin="line"],
 | 
			
		||||
.layui-table[lay-skin="row"] {
 | 
			
		||||
  border-width: 1px;
 | 
			
		||||
  border-style: solid;
 | 
			
		||||
  border-color: #eee;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table td,
 | 
			
		||||
.layui-table th {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  padding: 9px 15px;
 | 
			
		||||
  min-height: 20px;
 | 
			
		||||
  line-height: 20px;
 | 
			
		||||
  font-size: 14px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table[lay-skin="line"] td,
 | 
			
		||||
.layui-table[lay-skin="line"] th {
 | 
			
		||||
  border-width: 0 0 1px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table[lay-skin="row"] td,
 | 
			
		||||
.layui-table[lay-skin="row"] th {
 | 
			
		||||
  border-width: 0 1px 0 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table[lay-skin="nob"] td,
 | 
			
		||||
.layui-table[lay-skin="nob"] th {
 | 
			
		||||
  border: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table img {
 | 
			
		||||
  max-width: 100px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table[lay-size="lg"] td,
 | 
			
		||||
.layui-table[lay-size="lg"] th {
 | 
			
		||||
  padding: 15px 30px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-table[lay-size="lg"] .layui-table-cell {
 | 
			
		||||
  height: 40px;
 | 
			
		||||
  line-height: 40px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table[lay-size="sm"] td,
 | 
			
		||||
.layui-table[lay-size="sm"] th {
 | 
			
		||||
  font-size: 12px;
 | 
			
		||||
  padding: 5px 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-table[lay-size="sm"] .layui-table-cell {
 | 
			
		||||
  height: 20px;
 | 
			
		||||
  line-height: 20px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table[lay-data] {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-box {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  overflow: hidden;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-table {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  margin: 0;
 | 
			
		||||
  border-collapse: separate;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-table[lay-skin="line"] {
 | 
			
		||||
  border-width: 0 1px 0 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-table[lay-skin="row"] {
 | 
			
		||||
  border-width: 0 0 1px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-table td,
 | 
			
		||||
.layui-table-view .layui-table th {
 | 
			
		||||
  border-top: none;
 | 
			
		||||
  border-left: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-table td.layui-table-col-special,
 | 
			
		||||
.layui-table-view .layui-table th.layui-table-col-special {
 | 
			
		||||
  padding: 5px 16px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-table th.layui-unselect .layui-table-cell span {
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-table td {
 | 
			
		||||
  cursor: default;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-table td[data-edit="text"] {
 | 
			
		||||
  cursor: text;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-form-checkbox[lay-skin="primary"] i {
 | 
			
		||||
  width: 18px;
 | 
			
		||||
  height: 18px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-form-radio {
 | 
			
		||||
  line-height: 0;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-form-radio > i {
 | 
			
		||||
  margin: 0;
 | 
			
		||||
  font-size: 20px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-init {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  left: 0;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  z-index: 110;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-init .layui-icon {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  left: 50%;
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  margin: -15px 0 0 -15px;
 | 
			
		||||
  font-size: 30px;
 | 
			
		||||
  color: #c2c2c2;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-header {
 | 
			
		||||
  border-width: 0 0 1px;
 | 
			
		||||
  overflow: hidden;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-header .layui-table {
 | 
			
		||||
  margin-bottom: -1px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool .layui-inline[lay-event] {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  width: 26px;
 | 
			
		||||
  height: 26px;
 | 
			
		||||
  padding: 5px;
 | 
			
		||||
  line-height: 16px;
 | 
			
		||||
  margin-right: 10px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  color: #333;
 | 
			
		||||
  border: 1px solid #ccc;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
  -webkit-transition: 0.5s all;
 | 
			
		||||
  transition: 0.5s all;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool .layui-inline[lay-event]:hover {
 | 
			
		||||
  border: 1px solid #999;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool-temp {
 | 
			
		||||
  padding-right: 120px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool-self {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  right: 17px;
 | 
			
		||||
  top: 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool .layui-table-tool-self .layui-inline[lay-event] {
 | 
			
		||||
  margin: 0 0 0 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool-panel {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 29px;
 | 
			
		||||
  left: -1px;
 | 
			
		||||
  padding: 5px 0;
 | 
			
		||||
  min-width: 150px;
 | 
			
		||||
  min-height: 40px;
 | 
			
		||||
  border: 1px solid #d2d2d2;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
  overflow-y: auto;
 | 
			
		||||
  background-color: #fff;
 | 
			
		||||
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-cell,
 | 
			
		||||
.layui-table-tool-panel li {
 | 
			
		||||
  overflow: hidden;
 | 
			
		||||
  text-overflow: ellipsis;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool-panel li {
 | 
			
		||||
  padding: 0 10px;
 | 
			
		||||
  line-height: 30px;
 | 
			
		||||
  -webkit-transition: 0.5s all;
 | 
			
		||||
  transition: 0.5s all;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-iconpicker-list li,
 | 
			
		||||
.layui-keyboard-list li,
 | 
			
		||||
.layui-menu li,
 | 
			
		||||
@ -1971,284 +1719,6 @@ a cite {
 | 
			
		||||
  transition: all 0.3s;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool-panel li .layui-form-checkbox[lay-skin="primary"] {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  padding-left: 28px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool-panel li:hover {
 | 
			
		||||
  background-color: #f6f6f6;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool-panel li .layui-form-checkbox[lay-skin="primary"] i {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  left: 0;
 | 
			
		||||
  top: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool-panel li .layui-form-checkbox[lay-skin="primary"] span {
 | 
			
		||||
  padding: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool .layui-table-tool-self .layui-table-tool-panel {
 | 
			
		||||
  left: auto;
 | 
			
		||||
  right: -1px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-col-set {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  right: 0;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  width: 20px;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  border-width: 0 0 0 1px;
 | 
			
		||||
  background-color: #fff;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-sort {
 | 
			
		||||
  width: 10px;
 | 
			
		||||
  height: 20px;
 | 
			
		||||
  margin-left: 5px;
 | 
			
		||||
  cursor: pointer !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-sort .layui-edge {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  left: 5px;
 | 
			
		||||
  border-width: 5px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-sort .layui-table-sort-asc {
 | 
			
		||||
  top: 3px;
 | 
			
		||||
  border-top: none;
 | 
			
		||||
  border-bottom-style: solid;
 | 
			
		||||
  border-bottom-color: #b2b2b2;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-sort .layui-table-sort-asc:hover {
 | 
			
		||||
  border-bottom-color: #666;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-sort .layui-table-sort-desc {
 | 
			
		||||
  bottom: 5px;
 | 
			
		||||
  border-bottom: none;
 | 
			
		||||
  border-top-style: solid;
 | 
			
		||||
  border-top-color: #b2b2b2;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-sort .layui-table-sort-desc:hover {
 | 
			
		||||
  border-top-color: #666;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-sort[lay-sort="asc"] .layui-table-sort-asc {
 | 
			
		||||
  border-bottom-color: #000;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-sort[lay-sort="desc"] .layui-table-sort-desc {
 | 
			
		||||
  border-top-color: #000;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-cell {
 | 
			
		||||
  height: 28px;
 | 
			
		||||
  line-height: 28px;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-cell .layui-form-checkbox[lay-skin="primary"] {
 | 
			
		||||
  top: -1px;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-cell .layui-table-link {
 | 
			
		||||
  color: #01aaed;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.laytable-cell-checkbox,
 | 
			
		||||
.laytable-cell-numbers,
 | 
			
		||||
.laytable-cell-radio,
 | 
			
		||||
.laytable-cell-space {
 | 
			
		||||
  padding: 0;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  -webkit-box-pack: center;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-body {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  overflow: auto;
 | 
			
		||||
  margin-right: -1px;
 | 
			
		||||
  margin-bottom: -1px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-body .layui-none {
 | 
			
		||||
  line-height: 26px;
 | 
			
		||||
  padding: 30px 15px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  color: #999;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-fixed {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  left: 0;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  z-index: 101;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-fixed .layui-table-body {
 | 
			
		||||
  overflow: hidden;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-fixed-l {
 | 
			
		||||
  box-shadow: 1px 0 8px rgba(0, 0, 0, 0.08);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-fixed-r {
 | 
			
		||||
  left: auto;
 | 
			
		||||
  right: -1px;
 | 
			
		||||
  border-width: 0 0 0 1px;
 | 
			
		||||
  box-shadow: -1px 0 8px rgba(0, 0, 0, 0.08);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-fixed-r .layui-table-header {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  overflow: visible;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-mend {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  right: -49px;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  width: 50px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  z-index: 890;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  min-height: 50px;
 | 
			
		||||
  line-height: 30px;
 | 
			
		||||
  padding: 10px 15px;
 | 
			
		||||
  border-width: 0 0 1px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tool .layui-btn-container {
 | 
			
		||||
  margin-bottom: -10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page,
 | 
			
		||||
.layui-table-total {
 | 
			
		||||
  border-width: 1px 0 0;
 | 
			
		||||
  margin-bottom: -1px;
 | 
			
		||||
  overflow: hidden;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  padding: 7px 7px 0;
 | 
			
		||||
  height: 41px;
 | 
			
		||||
  font-size: 12px;
 | 
			
		||||
  white-space: nowrap;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page > div {
 | 
			
		||||
  height: 26px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page .layui-laypage {
 | 
			
		||||
  margin: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page .layui-laypage a,
 | 
			
		||||
.layui-table-page .layui-laypage span {
 | 
			
		||||
  height: 26px;
 | 
			
		||||
  line-height: 26px;
 | 
			
		||||
  margin-bottom: 10px;
 | 
			
		||||
  border: none;
 | 
			
		||||
  background: 0 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page .layui-laypage a,
 | 
			
		||||
.layui-table-page .layui-laypage span.layui-laypage-curr {
 | 
			
		||||
  padding: 0 12px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page .layui-laypage span {
 | 
			
		||||
  margin-left: 0;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page .layui-laypage .layui-laypage-prev {
 | 
			
		||||
  margin-left: -7px !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page .layui-laypage .layui-laypage-curr .layui-laypage-em {
 | 
			
		||||
  left: 0;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page .layui-laypage button,
 | 
			
		||||
.layui-table-page .layui-laypage input {
 | 
			
		||||
  height: 26px;
 | 
			
		||||
  line-height: 26px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page .layui-laypage input {
 | 
			
		||||
  width: 40px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page .layui-laypage button {
 | 
			
		||||
  padding: 0 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-page select {
 | 
			
		||||
  height: 18px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-pagebar {
 | 
			
		||||
  float: right;
 | 
			
		||||
  line-height: 26px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view select[lay-ignore] {
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-patch .layui-table-cell {
 | 
			
		||||
  padding: 0;
 | 
			
		||||
  width: 30px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-edit {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  left: 0;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  padding: 0 14px 1px;
 | 
			
		||||
  border-radius: 0;
 | 
			
		||||
  box-shadow: 1px 1px 20px rgba(0, 0, 0, 0.15);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-edit:focus {
 | 
			
		||||
  border-color: #5fb878 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
select.layui-table-edit {
 | 
			
		||||
  padding: 0 0 0 10px;
 | 
			
		||||
  border-color: #d2d2d2;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-form-checkbox,
 | 
			
		||||
.layui-table-view .layui-form-radio,
 | 
			
		||||
.layui-table-view .layui-form-switch {
 | 
			
		||||
  top: 0;
 | 
			
		||||
  margin: 0;
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-colorpicker-alpha-slider,
 | 
			
		||||
.layui-colorpicker-side-slider,
 | 
			
		||||
.layui-menu,
 | 
			
		||||
@ -2257,83 +1727,6 @@ select.layui-table-edit {
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-form-checkbox {
 | 
			
		||||
  top: -1px;
 | 
			
		||||
  height: 26px;
 | 
			
		||||
  line-height: 26px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-view .layui-form-checkbox i {
 | 
			
		||||
  height: 26px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-grid .layui-table-cell {
 | 
			
		||||
  overflow: visible;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-grid-down {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  right: 0;
 | 
			
		||||
  width: 26px;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  padding: 5px 0;
 | 
			
		||||
  border-width: 0 0 0 1px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  background-color: #fff;
 | 
			
		||||
  color: #999;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-grid-down .layui-icon {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 50%;
 | 
			
		||||
  left: 50%;
 | 
			
		||||
  margin: -8px 0 0 -8px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-grid-down:hover {
 | 
			
		||||
  background-color: #fbfbfb;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
body .layui-table-tips .layui-layer-content {
 | 
			
		||||
  background: 0 0;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.12);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tips-main {
 | 
			
		||||
  margin: -44px 0 0 -1px;
 | 
			
		||||
  max-height: 150px;
 | 
			
		||||
  padding: 8px 15px;
 | 
			
		||||
  font-size: 14px;
 | 
			
		||||
  overflow-y: scroll;
 | 
			
		||||
  background-color: #fff;
 | 
			
		||||
  color: #666;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tips-c {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  right: -3px;
 | 
			
		||||
  top: -13px;
 | 
			
		||||
  width: 20px;
 | 
			
		||||
  height: 20px;
 | 
			
		||||
  padding: 3px;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
  background-color: #666;
 | 
			
		||||
  border-radius: 50%;
 | 
			
		||||
  color: #fff;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tips-c:hover {
 | 
			
		||||
  background-color: #777;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-table-tips-c:before {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  right: -2px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.layui-upload-file {
 | 
			
		||||
  display: none !important;
 | 
			
		||||
  opacity: 0.01;
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										27
									
								
								src/theme/variable.less
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								src/theme/variable.less
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,27 @@
 | 
			
		||||
@global-primary-color: #009688;
 | 
			
		||||
 | 
			
		||||
@global-danger-color: #ff5722;
 | 
			
		||||
 | 
			
		||||
@global-normal-color: #1e9fff;
 | 
			
		||||
 | 
			
		||||
@global-warm-color: #ffb800;
 | 
			
		||||
 | 
			
		||||
@global-bg-color: #393D49;
 | 
			
		||||
 | 
			
		||||
@global-text-color: #fff;
 | 
			
		||||
 | 
			
		||||
@global-border-radius: 2px;
 | 
			
		||||
 | 
			
		||||
@button-primary-color: @global-primary-color;
 | 
			
		||||
 | 
			
		||||
@button-normal-color: @global-normal-color;
 | 
			
		||||
 | 
			
		||||
@button-danger-color: @global-danger-color;
 | 
			
		||||
 | 
			
		||||
@button-warm-color: @global-warm-color;
 | 
			
		||||
 | 
			
		||||
@button-border-radius: @global-border-radius;
 | 
			
		||||
 | 
			
		||||
@card-border-radius: @global-border-radius;
 | 
			
		||||
 | 
			
		||||
@card-bg-color: @global-bg-color;
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user