Compare commits

...

3 Commits

Author SHA1 Message Date
d9127dfd42 fix table page 2023-05-29 13:37:47 +08:00
c2027a8665 格式化 2023-05-29 13:24:59 +08:00
49d7a25529 fix selelct table 2023-05-29 13:24:33 +08:00
13 changed files with 256 additions and 197 deletions

View File

@ -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,

View File

@ -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"])
]))
]))
]);

View File

@ -951,7 +951,8 @@ const _sfc_main = defineComponent({
} },
getRadioProps: { type: Function, default: () => {
} },
download: { default: "" }
download: { default: "" },
serverpage: { type: Boolean, default: false }
},
emits: [
"change",
@ -1111,7 +1112,7 @@ const _sfc_main = defineComponent({
emit("update:expandKeys", tableExpandKeys.value);
}, { deep: true, immediate: true });
watch(tableDataSource, () => {
if (!props.page) {
if (!props.page || props.serverpage) {
datalist.value = tableDataSource.value;
} else {
let tmp = { ...props.page };
@ -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);

View File

@ -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,

View File

@ -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

View File

@ -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"

View File

@ -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,12 @@ 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)"

View File

@ -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>

View File

@ -53,6 +53,7 @@ export interface TableProps {
getCheckboxProps?: Function;
getRadioProps?: Function;
download?: string;
serverpage?: boolean;
}
const props = withDefaults(defineProps<TableProps>(), {
@ -78,6 +79,7 @@ const props = withDefaults(defineProps<TableProps>(), {
getCheckboxProps: () => {},
getRadioProps: () => {},
download: "",
serverpage: false,
});
const emit = defineEmits([
@ -334,7 +336,7 @@ watch(
{ deep: true, immediate: true }
);
watch(tableDataSource, () => {
if (!props.page) {
if (!props.page || props.serverpage) {
datalist.value = tableDataSource.value;
} else {
// props.page.count = tableDataSource.value.length
@ -356,12 +358,15 @@ 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) {

View File

@ -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 }}...

View File

@ -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