UNPKG

@ctsy/layui-vue

Version:

a component library for Vue 3 base on layui-vue

98 lines (97 loc) 3.67 kB
var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); import { defineComponent, inject, computed, ref, onMounted, withDirectives, openBlock, createElementBlock, normalizeClass, unref, createBlock, isRef, createCommentVNode, renderSlot, createTextVNode, toDisplayString, vShow } from "vue"; import _sfc_main$1 from "./checkbox/index.js"; const _hoisted_1 = ["value"]; const __default__ = { name: "LaySelectOption" }; const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({}, __default__), { props: { value: null, label: { default: "" }, keyword: { default: "" }, disabled: { type: Boolean, default: false } }, setup(__props) { const props = __props; const selectItemHandle = inject("selectItemHandle"); const selectItem = inject("selectItem"); const selectItemPush = inject("selectItemPush"); const keyword = inject("keyword"); const selectHandle = function() { !props.disabled && callSelectItemHandle(!selected.value); }; const callSelectItemHandle = function(isChecked) { selectItemHandle({ value: props.value, label: props.label, disabled: props.disabled }, isChecked); }; const selected = computed({ get() { const selectValues = selectItem.value.value; if (Array.isArray(selectValues)) { return selectValues.indexOf(props.value) > -1; } return selectItem.value.value === props.value; }, set(val) { } }); const callSelectItemPush = function() { let item = { value: props.value, label: props.label, disabled: props.disabled }; selectItemPush(item); }; const search = ref(""); onMounted(() => { search.value = props.keyword || props.label; callSelectItemPush(); selected.value && callSelectItemHandle(); }); return (_ctx, _cache) => { return withDirectives((openBlock(), createElementBlock("dd", { value: __props.value, class: normalizeClass([{ "layui-this": unref(selected) }, { "layui-disabled": __props.disabled }]), onClick: selectHandle }, [ unref(selectItem).multiple ? (openBlock(), createBlock(unref(_sfc_main$1), { key: 0, skin: "primary", modelValue: unref(selected), "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(selected) ? selected.value = $event : null), onChange: selectHandle, label: "" }, null, 8, ["modelValue"])) : createCommentVNode("", true), renderSlot(_ctx.$slots, "default", {}, () => [ createTextVNode(toDisplayString(__props.label), 1) ]) ], 10, _hoisted_1)), [ [vShow, unref(keyword) ? search.value.includes(unref(keyword)) : true] ]); }; } })); export { _sfc_main as _ };