init
This commit is contained in:
4
es/selectOption/index.js
Normal file
4
es/selectOption/index.js
Normal file
@@ -0,0 +1,4 @@
|
||||
import "../badge/index2.js";
|
||||
export { c as default } from "./index2.js";
|
||||
import "vue";
|
||||
import "../checkbox/index2.js";
|
||||
80
es/selectOption/index2.js
Normal file
80
es/selectOption/index2.js
Normal file
@@ -0,0 +1,80 @@
|
||||
import { w as withInstall } from "../badge/index2.js";
|
||||
import { defineComponent, inject, ref, computed, withDirectives, openBlock, createElementBlock, normalizeClass, unref, createBlock, isRef, createCommentVNode, renderSlot, createTextVNode, toDisplayString, vShow } from "vue";
|
||||
import { a as _sfc_main$1 } from "../checkbox/index2.js";
|
||||
const __default__ = {
|
||||
name: "LaySelectOption"
|
||||
};
|
||||
const _sfc_main = defineComponent({
|
||||
...__default__,
|
||||
props: {
|
||||
label: { default: "" },
|
||||
value: null,
|
||||
disabled: { type: Boolean, default: false },
|
||||
keyword: { default: "" }
|
||||
},
|
||||
setup(__props) {
|
||||
const props = __props;
|
||||
const searchValue = inject("searchValue");
|
||||
const selectRef = inject("selectRef");
|
||||
const selectedValue = inject("selectedValue");
|
||||
const multiple = inject("multiple");
|
||||
const checkboxRef = ref();
|
||||
const handleSelect = () => {
|
||||
var _a;
|
||||
if (multiple.value) {
|
||||
if (!props.disabled) {
|
||||
(_a = checkboxRef.value) == null ? void 0 : _a.toggle();
|
||||
}
|
||||
} else {
|
||||
if (!props.disabled) {
|
||||
selectRef.value.hide();
|
||||
selectedValue.value = props.value;
|
||||
}
|
||||
}
|
||||
};
|
||||
const selected = computed(() => {
|
||||
if (multiple.value) {
|
||||
return selectedValue.value.indexOf(props.value) != -1;
|
||||
} else {
|
||||
return selectedValue.value === props.value;
|
||||
}
|
||||
});
|
||||
const display = computed(() => {
|
||||
var _a, _b;
|
||||
return ((_a = props.keyword) == null ? void 0 : _a.toString().indexOf(searchValue.value)) > -1 || ((_b = props.label) == null ? void 0 : _b.toString().indexOf(searchValue.value)) > -1;
|
||||
});
|
||||
const classes = computed(() => {
|
||||
return [
|
||||
"layui-select-option",
|
||||
{
|
||||
"layui-this": selected.value,
|
||||
"layui-disabled": props.disabled
|
||||
}
|
||||
];
|
||||
});
|
||||
return (_ctx, _cache) => {
|
||||
return withDirectives((openBlock(), createElementBlock("dd", {
|
||||
class: normalizeClass(unref(classes)),
|
||||
onClick: handleSelect
|
||||
}, [
|
||||
unref(multiple) ? (openBlock(), createBlock(_sfc_main$1, {
|
||||
key: 0,
|
||||
skin: "primary",
|
||||
ref_key: "checkboxRef",
|
||||
ref: checkboxRef,
|
||||
modelValue: unref(selectedValue),
|
||||
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(selectedValue) ? selectedValue.value = $event : null),
|
||||
disabled: __props.disabled,
|
||||
value: __props.value
|
||||
}, null, 8, ["modelValue", "disabled", "value"])) : createCommentVNode("", true),
|
||||
renderSlot(_ctx.$slots, "default", {}, () => [
|
||||
createTextVNode(toDisplayString(__props.label), 1)
|
||||
])
|
||||
], 2)), [
|
||||
[vShow, unref(display)]
|
||||
]);
|
||||
};
|
||||
}
|
||||
});
|
||||
const component = withInstall(_sfc_main);
|
||||
export { _sfc_main as _, component as c };
|
||||
Reference in New Issue
Block a user