fix selelct table
This commit is contained in:
parent
92fa833be7
commit
49d7a25529
@ -33,7 +33,8 @@ const _sfc_main = defineComponent({
|
||||
allowClear: { type: Boolean, default: false },
|
||||
showSearch: { type: Boolean, default: false },
|
||||
contentClass: null,
|
||||
contentStyle: null
|
||||
contentStyle: null,
|
||||
position: { default: "top" }
|
||||
},
|
||||
emits: ["update:modelValue", "change", "search"],
|
||||
setup(__props, { emit: emits }) {
|
||||
@ -180,6 +181,7 @@ const _sfc_main = defineComponent({
|
||||
disabledInput: !__props.showSearch,
|
||||
size: __props.size,
|
||||
class: normalizeClass({ "layui-unselect": true }),
|
||||
position: __props.position,
|
||||
onRemove: handleRemove,
|
||||
onClear: handleClear,
|
||||
onInputValueChange: handleSearch,
|
||||
@ -199,7 +201,7 @@ const _sfc_main = defineComponent({
|
||||
}, null, 8, ["class"])
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["modelValue", "input-value", "allow-clear", "placeholder", "collapseTagsTooltip", "minCollapsedNum", "disabled", "disabledInput", "size"])) : (openBlock(), createBlock(_sfc_main$4, {
|
||||
}, 8, ["modelValue", "input-value", "allow-clear", "placeholder", "collapseTagsTooltip", "minCollapsedNum", "disabled", "disabledInput", "size", "position"])) : (openBlock(), createBlock(_sfc_main$4, {
|
||||
key: 1,
|
||||
size: __props.size,
|
||||
disabled: __props.disabled,
|
||||
|
@ -32,8 +32,7 @@ function makeDots(props) {
|
||||
return dots;
|
||||
}
|
||||
const _hoisted_1$4 = ["onMousedown"];
|
||||
const _hoisted_2$4 = /* @__PURE__ */ createElementVNode("div", { class: "layui-slider-line-v" }, null, -1);
|
||||
const _hoisted_3$4 = ["onClick"];
|
||||
const _hoisted_2$4 = ["onClick"];
|
||||
const __default__$4 = {
|
||||
name: "StandardVue"
|
||||
};
|
||||
@ -45,7 +44,8 @@ const _sfc_main$4 = defineComponent({
|
||||
step: { default: 0 },
|
||||
min: { default: 0 },
|
||||
max: { default: 100 },
|
||||
showDots: { type: Boolean, default: false }
|
||||
showDots: { type: Boolean, default: false },
|
||||
backgroundColor: { default: "#ccc" }
|
||||
},
|
||||
emits: ["link-val-hook"],
|
||||
setup(__props, { emit }) {
|
||||
@ -129,14 +129,19 @@ const _sfc_main$4 = defineComponent({
|
||||
style: normalizeStyle({ width: __props.val + "%" }),
|
||||
class: normalizeClass(["layui-slider-rate-v", [__props.disabled ? "layui-slider-disabled disable-line" : ""]])
|
||||
}, null, 6),
|
||||
_hoisted_2$4,
|
||||
createElementVNode("div", {
|
||||
class: "layui-slider-line-v",
|
||||
style: normalizeStyle({
|
||||
backgroundColor: props.backgroundColor
|
||||
})
|
||||
}, null, 4),
|
||||
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(dots), (item, index2) => {
|
||||
return withDirectives((openBlock(), createElementBlock("div", {
|
||||
onClick: ($event) => focusDot(item),
|
||||
class: "layui-slider-dots",
|
||||
key: index2,
|
||||
style: normalizeStyle({ left: item + "%" })
|
||||
}, null, 12, _hoisted_3$4)), [
|
||||
}, null, 12, _hoisted_2$4)), [
|
||||
[vShow, __props.showDots]
|
||||
]);
|
||||
}), 128))
|
||||
@ -628,7 +633,8 @@ const _sfc_main = defineComponent({
|
||||
disabled: { type: Boolean, default: false },
|
||||
range: { type: Boolean },
|
||||
rangeValue: null,
|
||||
showDots: { type: Boolean, default: false }
|
||||
showDots: { type: Boolean, default: false },
|
||||
backgroundColor: { default: "#ccc" }
|
||||
},
|
||||
emits: ["update:modelValue"],
|
||||
setup(__props, { emit }) {
|
||||
@ -680,8 +686,9 @@ const _sfc_main = defineComponent({
|
||||
step: __props.step,
|
||||
min: __props.min,
|
||||
max: __props.max,
|
||||
showDots: __props.showDots
|
||||
}, null, 8, ["val", "disabled", "step", "min", "max", "showDots"])
|
||||
showDots: __props.showDots,
|
||||
backgroundColor: props.backgroundColor
|
||||
}, null, 8, ["val", "disabled", "step", "min", "max", "showDots", "backgroundColor"])
|
||||
]))
|
||||
]))
|
||||
]);
|
||||
|
@ -951,7 +951,8 @@ const _sfc_main = defineComponent({
|
||||
} },
|
||||
getRadioProps: { type: Function, default: () => {
|
||||
} },
|
||||
download: { default: "" }
|
||||
download: { default: "" },
|
||||
serverpage: { type: Boolean, default: false }
|
||||
},
|
||||
emits: [
|
||||
"change",
|
||||
@ -1128,8 +1129,12 @@ const _sfc_main = defineComponent({
|
||||
});
|
||||
let pagecurrent;
|
||||
const change = function(page) {
|
||||
if (props.serverpage) {
|
||||
emit("change", page);
|
||||
} else {
|
||||
pagecurrent = page.current;
|
||||
datalist.value = tableDataSource.value.slice(page.limit * (page.current - 1), page.limit * page.current);
|
||||
}
|
||||
};
|
||||
const rowClick = function(data, evt) {
|
||||
emit("row", data, evt);
|
||||
|
@ -34,7 +34,8 @@ const _sfc_main = defineComponent({
|
||||
collapseTagsTooltip: { type: Boolean },
|
||||
size: { default: "md" },
|
||||
tagProps: null,
|
||||
disabledInput: { type: Boolean }
|
||||
disabledInput: { type: Boolean },
|
||||
position: { default: "top" }
|
||||
},
|
||||
emits: [
|
||||
"update:modelValue",
|
||||
@ -247,7 +248,8 @@ const _sfc_main = defineComponent({
|
||||
isDark: false,
|
||||
trigger: "hover",
|
||||
popperStyle: "padding:6px",
|
||||
disabled: !__props.collapseTagsTooltip
|
||||
disabled: !__props.collapseTagsTooltip,
|
||||
position: __props.position
|
||||
}, {
|
||||
content: withCtx(() => [
|
||||
createElementVNode("div", _hoisted_3, [
|
||||
@ -283,7 +285,7 @@ const _sfc_main = defineComponent({
|
||||
}, 16, ["size"])
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["disabled"])) : createCommentVNode("", true),
|
||||
}, 8, ["disabled", "position"])) : createCommentVNode("", true),
|
||||
createElementVNode("input", {
|
||||
ref_key: "inputRefEl",
|
||||
ref: inputRefEl,
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { w as withInstall } from "../badge/index2.js";
|
||||
import { defineComponent, useSlots, ref, toRef, shallowRef, computed, watch, onMounted, openBlock, createBlock, Teleport, withDirectives, createVNode, Transition, withCtx, createElementVNode, normalizeClass, normalizeStyle, renderSlot, createTextVNode, toDisplayString, vShow, createCommentVNode, nextTick, getCurrentInstance, createElementBlock, Fragment, normalizeProps, mergeProps, unref } from "vue";
|
||||
import { defineComponent, useSlots, ref, toRef, shallowRef, computed, watch, onMounted, openBlock, createBlock, Teleport, withDirectives, createVNode, Transition, withCtx, createElementVNode, normalizeClass, normalizeStyle, renderSlot, createTextVNode, toDisplayString, vShow, createCommentVNode, nextTick, getCurrentInstance, createElementBlock, Fragment, mergeProps, unref } from "vue";
|
||||
import { o as onClickOutside, a as useResizeObserver, c as useEventListener, b as useThrottleFn } from "../_chunks/@vueuse/index.js";
|
||||
var index$1 = /* @__PURE__ */ (() => ".lay-tooltip-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}\n")();
|
||||
var index = /* @__PURE__ */ (() => '.layui-popper{position:fixed;padding:10px;border-radius:3px;word-wrap:break-word;min-width:12px;min-height:12px;font-size:14px;box-sizing:border-box;box-shadow:0 2px 12px #00000026;background-color:#fff;color:#3a3a3a;border:1px solid #cecece;max-width:300px;z-index:99999}.layui-popper[position=top]{margin-bottom:6px}.layui-popper[position=top] .layui-popper-arrow{bottom:-6px;border-bottom-width:0;border-top-color:#cecece}.layui-popper[position=top] .layui-popper-arrow:after{bottom:1px;border-bottom-width:0;margin-left:-6px;border-top-color:#fff}.layui-popper[position=bottom]{margin-top:6px}.layui-popper[position=bottom] .layui-popper-arrow{top:-6px;border-top-width:0;border-bottom-color:#cecece}.layui-popper[position=bottom] .layui-popper-arrow:after{top:1px;border-top-width:0;margin-left:-6px;border-bottom-color:#fff}.layui-popper[position=right]{margin-left:6px}.layui-popper[position=right] .layui-popper-arrow{left:-6px;border-left-width:0;border-right-color:#cecece}.layui-popper[position=right] .layui-popper-arrow:after{left:1px;border-left-width:0;margin-top:-6px;border-right-color:#fff}.layui-popper[position=left]{margin-right:6px}.layui-popper[position=left] .layui-popper-arrow{right:-6px;border-right-width:0;border-left-color:#cecece}.layui-popper[position=left] .layui-popper-arrow:after{right:1px;border-right-width:0;margin-top:-6px;border-left-color:#fff}.layui-popper[position=top] .layui-popper-arrow,.layui-popper[position=bottom] .layui-popper-arrow{left:-moz-calc(44%);left:-webkit-calc(44%);left:calc(50% - 6px)}.layui-popper[position=left] .layui-popper-arrow,.layui-popper[position=right] .layui-popper-arrow{top:-moz-calc(44%);top:-webkit-calc(44%);top:calc(50% - 6px)}.layui-popper:after{content:" ";position:absolute;display:block}.layui-popper[position=top]:after{bottom:-7px;left:0;width:100%;height:7px}.layui-popper[position=bottom]:after{top:-7px;left:0;width:100%;height:7px}.layui-popper[position=left]:after{right:-7px;bottom:0;height:100%;width:7px}.layui-popper[position=right]:after{left:-7px;bottom:0;height:100%;width:7px}.layui-popper .layui-popper-arrow,.layui-popper .layui-popper-arrow:after{position:absolute;display:block;width:0;height:0;border-width:6px;border-style:solid;border-color:transparent}.layui-popper .layui-popper-arrow:after{content:" "}.layui-popper.layui-dark{background-color:#353535;color:#fff;border:1px solid #353535}.layui-popper.layui-dark[position=top]{margin-bottom:6px}.layui-popper.layui-dark[position=top] .layui-popper-arrow{bottom:-6px;border-bottom-width:0;border-top-color:#353535}.layui-popper.layui-dark[position=top] .layui-popper-arrow:after{bottom:1px;border-bottom-width:0;margin-left:-6px;border-top-color:#353535}.layui-popper.layui-dark[position=bottom]{margin-top:6px}.layui-popper.layui-dark[position=bottom] .layui-popper-arrow{top:-6px;border-top-width:0;border-bottom-color:#353535}.layui-popper.layui-dark[position=bottom] .layui-popper-arrow:after{top:1px;border-top-width:0;margin-left:-6px;border-bottom-color:#353535}.layui-popper.layui-dark[position=right]{margin-left:6px}.layui-popper.layui-dark[position=right] .layui-popper-arrow{left:-6px;border-left-width:0;border-right-color:#353535}.layui-popper.layui-dark[position=right] .layui-popper-arrow:after{left:1px;border-left-width:0;margin-top:-6px;border-right-color:#353535}.layui-popper.layui-dark[position=left]{margin-right:6px}.layui-popper.layui-dark[position=left] .layui-popper-arrow{right:-6px;border-right-width:0;border-left-color:#353535}.layui-popper.layui-dark[position=left] .layui-popper-arrow:after{right:1px;border-right-width:0;margin-top:-6px;border-left-color:#353535}\n')();
|
||||
@ -360,12 +360,15 @@ const _sfc_main = defineComponent({
|
||||
renderSlot(_ctx.$slots, "default")
|
||||
])
|
||||
], 512)) : renderSlot(_ctx.$slots, "default", { key: 1 }),
|
||||
isMounted.value ? (openBlock(), createBlock(_sfc_main$1, normalizeProps(mergeProps({ key: 2 }, unref(innerProps))), {
|
||||
isMounted.value ? (openBlock(), createBlock(_sfc_main$1, mergeProps({
|
||||
key: 2,
|
||||
positio: __props.position
|
||||
}, unref(innerProps)), {
|
||||
default: withCtx(() => [
|
||||
renderSlot(_ctx.$slots, "content")
|
||||
]),
|
||||
_: 3
|
||||
}, 16)) : createCommentVNode("", true)
|
||||
}, 16, ["positio"])) : createCommentVNode("", true)
|
||||
], 64);
|
||||
};
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
@ -44,6 +44,7 @@ export interface SelectProps {
|
||||
showSearch?: boolean;
|
||||
contentClass?: string | Array<string | object> | object;
|
||||
contentStyle?: StyleValue;
|
||||
position?:string;
|
||||
}
|
||||
|
||||
export interface SelectEmits {
|
||||
@ -61,6 +62,7 @@ const props = withDefaults(defineProps<SelectProps>(), {
|
||||
disabled: false,
|
||||
multiple: false,
|
||||
size: "md",
|
||||
position:"top"
|
||||
});
|
||||
|
||||
const slots = useSlots();
|
||||
@ -215,6 +217,7 @@ provide("searchMethod", props.searchMethod);
|
||||
:disabledInput="!showSearch"
|
||||
:size="size"
|
||||
:class="{ 'layui-unselect': true }"
|
||||
:position="position"
|
||||
@remove="handleRemove"
|
||||
@clear="handleClear"
|
||||
@input-value-change="handleSearch"
|
||||
|
@ -17,6 +17,7 @@ export interface StandardProps {
|
||||
min?: number;
|
||||
max?: number;
|
||||
showDots?: boolean;
|
||||
backgroundColor:string;
|
||||
}
|
||||
|
||||
const props = withDefaults(defineProps<StandardProps>(), {
|
||||
@ -26,6 +27,7 @@ const props = withDefaults(defineProps<StandardProps>(), {
|
||||
min: 0,
|
||||
max: 100,
|
||||
showDots: false,
|
||||
backgroundColor:"#ccc"
|
||||
});
|
||||
|
||||
const moveAction = throttle(standardMove);
|
||||
@ -117,7 +119,9 @@ const focusDot = (val: number) => {
|
||||
class="layui-slider-rate-v"
|
||||
:class="[disabled ? 'layui-slider-disabled disable-line' : '']"
|
||||
></div>
|
||||
<div class="layui-slider-line-v"></div>
|
||||
<div class="layui-slider-line-v" :style="{
|
||||
backgroundColor:props.backgroundColor
|
||||
}"></div>
|
||||
<div
|
||||
v-show="showDots"
|
||||
@click="focusDot(item)"
|
||||
|
@ -22,6 +22,7 @@ export interface SliderProps {
|
||||
range?: boolean;
|
||||
rangeValue?: number[];
|
||||
showDots?: boolean;
|
||||
backgroundColor:string;
|
||||
}
|
||||
|
||||
const emit = defineEmits(["update:modelValue"]);
|
||||
@ -34,6 +35,7 @@ const props = withDefaults(defineProps<SliderProps>(), {
|
||||
min: 0,
|
||||
max: 100,
|
||||
showDots: false,
|
||||
backgroundColor:"#ccc"
|
||||
});
|
||||
|
||||
let rangeValues: Ref<number[]> | any = toRef(props, "rangeValue");
|
||||
@ -94,6 +96,7 @@ function valHook(val: any) {
|
||||
:min="min"
|
||||
:max="max"
|
||||
:showDots="showDots"
|
||||
:backgroundColor="props.backgroundColor"
|
||||
></StandardVue>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -53,6 +53,7 @@ export interface TableProps {
|
||||
getCheckboxProps?: Function;
|
||||
getRadioProps?: Function;
|
||||
download?: string;
|
||||
serverpage?: boolean;
|
||||
}
|
||||
|
||||
const props = withDefaults(defineProps<TableProps>(), {
|
||||
@ -72,12 +73,13 @@ const props = withDefaults(defineProps<TableProps>(), {
|
||||
rowStyle: "",
|
||||
cellStyle: "",
|
||||
defaultExpandAll: false,
|
||||
spanMethod: () => {},
|
||||
spanMethod: () => { },
|
||||
expandKeys: () => [],
|
||||
loading: false,
|
||||
getCheckboxProps: () => {},
|
||||
getRadioProps: () => {},
|
||||
getCheckboxProps: () => { },
|
||||
getRadioProps: () => { },
|
||||
download: "",
|
||||
serverpage: false
|
||||
});
|
||||
|
||||
const emit = defineEmits([
|
||||
@ -356,12 +358,16 @@ watch(
|
||||
);
|
||||
let pagecurrent: number;
|
||||
const change = function (page: any) {
|
||||
// emit("change", page);
|
||||
if (props.serverpage) {
|
||||
emit("change", page);
|
||||
} else {
|
||||
pagecurrent = page.current;
|
||||
datalist.value = tableDataSource.value.slice(
|
||||
page.limit * (page.current - 1),
|
||||
page.limit * page.current
|
||||
);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
const rowClick = function (data: any, evt: MouseEvent) {
|
||||
@ -830,50 +836,27 @@ window.addEventListener("click", heddin);
|
||||
</div>
|
||||
<div v-if="defaultToolbar" class="layui-table-tool-self">
|
||||
<!-- 筛选 -->
|
||||
<lay-dropdown
|
||||
v-if="showToolbar('filter')"
|
||||
updateAtScroll
|
||||
:style="toolbarStyle('filter')"
|
||||
>
|
||||
<lay-dropdown v-if="showToolbar('filter')" updateAtScroll :style="toolbarStyle('filter')">
|
||||
<div class="layui-inline" title="筛选" lay-event>
|
||||
<i class="layui-icon layui-icon-slider"></i>
|
||||
</div>
|
||||
<template #content>
|
||||
<div class="layui-table-tool-checkbox">
|
||||
<lay-checkbox
|
||||
v-for="column in tableHeadColumns[0]"
|
||||
v-model="tableColumnKeys"
|
||||
skin="primary"
|
||||
:disabled="column.children"
|
||||
:key="column.key"
|
||||
:value="column.key"
|
||||
>{{ column.title }}</lay-checkbox
|
||||
>
|
||||
<lay-checkbox v-for="column in tableHeadColumns[0]" v-model="tableColumnKeys" skin="primary"
|
||||
:disabled="column.children" :key="column.key" :value="column.key">{{ column.title }}</lay-checkbox>
|
||||
</div>
|
||||
</template>
|
||||
</lay-dropdown>
|
||||
|
||||
<!-- 导出 -->
|
||||
<div
|
||||
v-if="showToolbar('export')"
|
||||
class="layui-inline"
|
||||
title="导出"
|
||||
lay-event
|
||||
:style="toolbarStyle('export')"
|
||||
@click="exportData()"
|
||||
>
|
||||
<div v-if="showToolbar('export')" class="layui-inline" title="导出" lay-event :style="toolbarStyle('export')"
|
||||
@click="exportData()">
|
||||
<i class="layui-icon layui-icon-export"></i>
|
||||
</div>
|
||||
|
||||
<!-- 打印 -->
|
||||
<div
|
||||
v-if="showToolbar('print')"
|
||||
:style="toolbarStyle('print')"
|
||||
class="layui-inline"
|
||||
title="打印"
|
||||
lay-event
|
||||
@click="print()"
|
||||
>
|
||||
<div v-if="showToolbar('print')" :style="toolbarStyle('print')" class="layui-inline" title="打印" lay-event
|
||||
@click="print()">
|
||||
<i class="layui-icon layui-icon-print"></i>
|
||||
</div>
|
||||
</div>
|
||||
@ -885,47 +868,26 @@ window.addEventListener("click", heddin);
|
||||
|
||||
<div class="layui-table-box">
|
||||
<!-- 表头 -->
|
||||
<div
|
||||
class="layui-table-header"
|
||||
:style="[{ 'padding-right': `${scrollWidthCell}px` }]"
|
||||
>
|
||||
<div class="layui-table-header" :style="[{ 'padding-right': `${scrollWidthCell}px` }]">
|
||||
<div class="layui-table-header-wrapper" ref="tableHeader">
|
||||
<table
|
||||
class="layui-table"
|
||||
:lay-size="size"
|
||||
:lay-skin="skin"
|
||||
ref="tableHeaderTable"
|
||||
>
|
||||
<table class="layui-table" :lay-size="size" :lay-skin="skin" ref="tableHeaderTable">
|
||||
<colgroup>
|
||||
<template v-for="column in tableBodyColumns" :key="column">
|
||||
<template v-if="tableColumnKeys.includes(column.key)">
|
||||
<col
|
||||
:width="column.width"
|
||||
:style="{
|
||||
<col :width="column.width" :style="{
|
||||
minWidth: column.minWidth ? column.minWidth : '50px',
|
||||
}"
|
||||
/>
|
||||
}" />
|
||||
</template>
|
||||
</template>
|
||||
</colgroup>
|
||||
<thead>
|
||||
<template
|
||||
v-for="(
|
||||
<template v-for="(
|
||||
tableHeadColumn, tableHeadColumnIndex
|
||||
) in tableHeadColumns"
|
||||
:key="tableHeadColumnIndex"
|
||||
>
|
||||
) in tableHeadColumns" :key="tableHeadColumnIndex">
|
||||
<tr>
|
||||
<template
|
||||
v-for="(column, columnIndex) in tableHeadColumn"
|
||||
:key="column"
|
||||
>
|
||||
<th
|
||||
v-if="tableColumnKeys.includes(column.key)"
|
||||
:colspan="column.colspan"
|
||||
:rowspan="column.rowspan"
|
||||
class="layui-table-cell"
|
||||
:class="[
|
||||
<template v-for="(column, columnIndex) in tableHeadColumn" :key="column">
|
||||
<th v-if="tableColumnKeys.includes(column.key)" :colspan="column.colspan" :rowspan="column.rowspan"
|
||||
class="layui-table-cell" :class="[
|
||||
renderFixedClassName(column, columnIndex),
|
||||
column.fixed
|
||||
? `layui-table-fixed-${column.fixed}`
|
||||
@ -939,8 +901,7 @@ window.addEventListener("click", heddin);
|
||||
column.type == 'number'
|
||||
? 'layui-table-cell-number'
|
||||
: '',
|
||||
]"
|
||||
:style="[
|
||||
]" :style="[
|
||||
{
|
||||
textAlign: column.align,
|
||||
},
|
||||
@ -949,16 +910,10 @@ window.addEventListener("click", heddin);
|
||||
columnIndex,
|
||||
tableHeadColumn
|
||||
),
|
||||
]"
|
||||
>
|
||||
]">
|
||||
<template v-if="column.type == 'checkbox'">
|
||||
<lay-checkbox
|
||||
v-model="hasChecked"
|
||||
:is-indeterminate="!allChecked"
|
||||
skin="primary"
|
||||
value="all"
|
||||
@change="changeAll"
|
||||
/>
|
||||
<lay-checkbox v-model="hasChecked" :is-indeterminate="!allChecked" skin="primary" value="all"
|
||||
@change="changeAll" />
|
||||
</template>
|
||||
<template v-else>
|
||||
<span>
|
||||
@ -970,33 +925,16 @@ window.addEventListener("click", heddin);
|
||||
</template>
|
||||
</span>
|
||||
<!-- 插槽 -->
|
||||
<span
|
||||
v-if="column.sort"
|
||||
class="layui-table-sort layui-inline"
|
||||
lay-sort
|
||||
>
|
||||
<i
|
||||
@click.stop="sortTable($event, column.key, 'asc')"
|
||||
class="layui-edge layui-table-sort-asc"
|
||||
title="升序"
|
||||
></i>
|
||||
<i
|
||||
@click.stop="
|
||||
<span v-if="column.sort" class="layui-table-sort layui-inline" lay-sort>
|
||||
<i @click.stop="sortTable($event, column.key, 'asc')" class="layui-edge layui-table-sort-asc"
|
||||
title="升序"></i>
|
||||
<i @click.stop="
|
||||
sortTable($event, column.key, 'desc')
|
||||
"
|
||||
class="layui-edge layui-table-sort-desc"
|
||||
title="降序"
|
||||
></i>
|
||||
" class="layui-edge layui-table-sort-desc" title="降序"></i>
|
||||
</span>
|
||||
<span
|
||||
v-if="column.soul"
|
||||
class="layui-table-sort layui-inline soul-icon"
|
||||
>
|
||||
<i
|
||||
class="soul-icon soul-box"
|
||||
:class="column.soulclass || 'soul-icon-filter'"
|
||||
@click.stop="showsoul($event, column, column.key)"
|
||||
>
|
||||
<span v-if="column.soul" class="layui-table-sort layui-inline soul-icon">
|
||||
<i class="soul-icon soul-box" :class="column.soulclass || 'soul-icon-filter'"
|
||||
@click.stop="showsoul($event, column, column.key)">
|
||||
<!-- <div v-show="column.soulshow" @click.stop="" class="soulbox">
|
||||
11111
|
||||
</div> -->
|
||||
@ -1012,61 +950,29 @@ window.addEventListener("click", heddin);
|
||||
</div>
|
||||
</div>
|
||||
<!-- 表身 -->
|
||||
<div
|
||||
class="layui-table-body layui-table-main"
|
||||
:style="{ height: height, maxHeight: maxHeight }"
|
||||
ref="tableBody"
|
||||
>
|
||||
<table
|
||||
class="layui-table"
|
||||
v-if="datalist.length > 0 && loading == false"
|
||||
:class="{ 'layui-table-even': props.even }"
|
||||
:lay-size="size"
|
||||
:lay-skin="skin"
|
||||
>
|
||||
<div class="layui-table-body layui-table-main" :style="{ height: height, maxHeight: maxHeight }" ref="tableBody">
|
||||
<table class="layui-table" v-if="datalist.length > 0 && loading == false"
|
||||
:class="{ 'layui-table-even': props.even }" :lay-size="size" :lay-skin="skin">
|
||||
<colgroup>
|
||||
<template
|
||||
v-for="(column, columnIndex) in tableBodyColumns"
|
||||
:key="columnIndex"
|
||||
>
|
||||
<template v-for="(column, columnIndex) in tableBodyColumns" :key="columnIndex">
|
||||
<template v-if="tableColumnKeys.includes(column.key)">
|
||||
<col
|
||||
:width="column.width"
|
||||
:style="{
|
||||
<col :width="column.width" :style="{
|
||||
minWidth: column.minWidth ? column.minWidth : '50px',
|
||||
}"
|
||||
/>
|
||||
}" />
|
||||
</template>
|
||||
</template>
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<!-- 渲染 -->
|
||||
<template v-for="(children, index) in datalist" :key="index">
|
||||
<table-row
|
||||
:id="id"
|
||||
:index="index"
|
||||
:data="children"
|
||||
:columns="tableBodyColumns"
|
||||
:indent-size="indentSize"
|
||||
:currentIndentSize="currentIndentSize"
|
||||
:tableColumnKeys="tableColumnKeys"
|
||||
:expandSpace="childrenExpandSpace"
|
||||
:expandIndex="expandIndex"
|
||||
:cellStyle="cellStyle"
|
||||
:cellClassName="cellClassName"
|
||||
:rowStyle="rowStyle"
|
||||
:rowClassName="rowClassName"
|
||||
:spanMethod="spanMethod"
|
||||
:defaultExpandAll="defaultExpandAll"
|
||||
:getCheckboxProps="getCheckboxProps"
|
||||
:getRadioProps="getRadioProps"
|
||||
v-model:expandKeys="tableExpandKeys"
|
||||
v-model:selectedKeys="tableSelectedKeys"
|
||||
v-model:selectedKey="tableSelectedKey"
|
||||
@row="rowClick"
|
||||
@row-double="rowDoubleClick"
|
||||
@row-contextmenu="rowContextmenu"
|
||||
>
|
||||
<table-row :id="id" :index="index" :data="children" :columns="tableBodyColumns" :indent-size="indentSize"
|
||||
:currentIndentSize="currentIndentSize" :tableColumnKeys="tableColumnKeys"
|
||||
:expandSpace="childrenExpandSpace" :expandIndex="expandIndex" :cellStyle="cellStyle"
|
||||
:cellClassName="cellClassName" :rowStyle="rowStyle" :rowClassName="rowClassName"
|
||||
:spanMethod="spanMethod" :defaultExpandAll="defaultExpandAll" :getCheckboxProps="getCheckboxProps"
|
||||
:getRadioProps="getRadioProps" v-model:expandKeys="tableExpandKeys"
|
||||
v-model:selectedKeys="tableSelectedKeys" v-model:selectedKey="tableSelectedKey" @row="rowClick"
|
||||
@row-double="rowDoubleClick" @row-contextmenu="rowContextmenu">
|
||||
<template v-for="name in slotsData" #[name]="{ data }">
|
||||
<slot :name="name" :data="data"></slot>
|
||||
</template>
|
||||
@ -1076,13 +982,9 @@ window.addEventListener("click", heddin);
|
||||
</table-row>
|
||||
</template>
|
||||
<tr v-if="hasTotalRow" class="layui-table-total">
|
||||
<template
|
||||
v-for="(column, columnIndex) in columns"
|
||||
:key="columnIndex"
|
||||
>
|
||||
<template v-for="(column, columnIndex) in columns" :key="columnIndex">
|
||||
<template v-if="tableColumnKeys.includes(column.key)">
|
||||
<td
|
||||
:style="[
|
||||
<td :style="[
|
||||
{
|
||||
textAlign: column.align,
|
||||
whiteSpace: column.ellipsisTooltip
|
||||
@ -1090,14 +992,11 @@ window.addEventListener("click", heddin);
|
||||
: 'normal',
|
||||
},
|
||||
renderFixedStyle(column, columnIndex),
|
||||
]"
|
||||
:class="[
|
||||
]" :class="[
|
||||
'layui-table-cell',
|
||||
renderFixedClassName(column, columnIndex),
|
||||
column.fixed ? `layui-table-fixed-${column.fixed}` : '',
|
||||
]"
|
||||
v-html="renderTotalRowCell(column)"
|
||||
></td>
|
||||
]" v-html="renderTotalRowCell(column)"></td>
|
||||
</template>
|
||||
</template>
|
||||
</tr>
|
||||
@ -1109,9 +1008,7 @@ window.addEventListener("click", heddin);
|
||||
</template>
|
||||
<template v-if="loading == true">
|
||||
<div class="layui-table-loading">
|
||||
<i
|
||||
class="layui-icon-loading layui-icon layui-anim layui-anim-rotate layui-anim-loop"
|
||||
></i>
|
||||
<i class="layui-icon-loading layui-icon layui-anim layui-anim-rotate layui-anim-loop"></i>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
@ -1120,41 +1017,17 @@ window.addEventListener("click", heddin);
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="page && page.total > 0" class="layui-table-page">
|
||||
<table-page
|
||||
:total="page.total"
|
||||
:pages="page.pages"
|
||||
:theme="page.theme"
|
||||
:limits="page.limits"
|
||||
:showSkip="page.showSkip"
|
||||
:show-page="page.showPage"
|
||||
:showRefresh="page.showRefresh"
|
||||
:showLimit="page.showLimit"
|
||||
:showCount="page.showCount"
|
||||
:count="page.count"
|
||||
v-model:current="page.current"
|
||||
v-model:limit="page.limit"
|
||||
@change="change"
|
||||
>
|
||||
<table-page :total="page.total" :pages="page.pages" :theme="page.theme" :limits="page.limits"
|
||||
:showSkip="page.showSkip" :show-page="page.showPage" :showRefresh="page.showRefresh" :showLimit="page.showLimit"
|
||||
:showCount="page.showCount" :count="page.count" v-model:current="page.current" v-model:limit="page.limit"
|
||||
@change="change">
|
||||
</table-page>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-for="(tableHeadColumn, tableHeadColumnIndex) in tableHeadColumns"
|
||||
:key="tableHeadColumnIndex"
|
||||
>
|
||||
<div v-for="(tableHeadColumn, tableHeadColumnIndex) in tableHeadColumns" :key="tableHeadColumnIndex">
|
||||
<div v-for="(column, columnIndex) in tableHeadColumn" :key="column">
|
||||
<soultable
|
||||
:top="soultop"
|
||||
:left="soulleft"
|
||||
v-show="soulkey == column.key"
|
||||
:show="soulkey == column.key"
|
||||
@asc="asc"
|
||||
@desc="desc"
|
||||
@daochu="exportData"
|
||||
:list="datalist"
|
||||
:soulkey="column.key"
|
||||
@sx="sx"
|
||||
></soultable>
|
||||
<soultable :top="soultop" :left="soulleft" v-show="soulkey == column.key" :show="soulkey == column.key" @asc="asc"
|
||||
@desc="desc" @daochu="exportData" :list="datalist" :soulkey="column.key" @sx="sx"></soultable>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -40,12 +40,14 @@ export interface TagInputProps {
|
||||
size?: TagInputSize;
|
||||
tagProps?: TagProps;
|
||||
disabledInput?: boolean;
|
||||
position?:string;
|
||||
}
|
||||
|
||||
const props = withDefaults(defineProps<TagInputProps>(), {
|
||||
placeholder: undefined,
|
||||
minCollapsedNum: 0,
|
||||
size: "md",
|
||||
position:"top"
|
||||
});
|
||||
|
||||
const emit = defineEmits([
|
||||
@ -274,6 +276,7 @@ defineExpose({
|
||||
trigger="hover"
|
||||
popperStyle="padding:6px"
|
||||
:disabled="!collapseTagsTooltip"
|
||||
:position="position"
|
||||
>
|
||||
<LayTag v-bind="tagProps" key="more" :closable="false" :size="size">
|
||||
+{{ moreCount }}...
|
||||
|
@ -108,7 +108,7 @@ onMounted(() => {
|
||||
</span>
|
||||
</div>
|
||||
<slot v-else></slot>
|
||||
<lay-popper v-if="isMounted" v-bind="innerProps">
|
||||
<lay-popper :positio="position" v-if="isMounted" v-bind="innerProps">
|
||||
<slot name="content"></slot>
|
||||
</lay-popper>
|
||||
</template>
|
||||
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user