UNPKG

vxe-table-pro

Version:

Vue table plugins based on vxe-table

108 lines (107 loc) 2.59 kB
import { defineComponent as y, ref as h, computed as g, watch as b, resolveComponent as p, createBlock as d, openBlock as i, mergeProps as C, withCtx as V, createElementBlock as O, Fragment as _, renderList as q } from "vue"; const k = { enabled: [ { label: "启用", value: 1 }, { label: "停用", value: 2 } ] }, B = /* @__PURE__ */ y({ __name: "index", props: { options: { type: Array, default: () => null }, queryOptions: { type: Function, default: null }, placeholder: { type: String, default: "请选择" }, optionKey: { type: String, default: "" }, form: { type: Object, default: () => ({}) }, valueChange: { type: Function, default: () => { } }, multiple: { type: Boolean, default: !1 }, modelValue: { type: String, default: "" } }, emits: ["update:modelValue"], setup(u, { emit: s }) { const e = u, n = h([]), c = s, r = g({ get: () => e.modelValue, set: (l) => c("update:modelValue", l) }); b( () => [e.options, e.queryOptions], () => { var l; if (e.queryOptions) { (l = e.queryOptions) == null || l.call(e, e.form).then((t) => { n.value = t; }); return; } if (e.options) { n.value = e.options; return; } e.optionKey && (n.value = k[e.optionKey] || []); }, { immediate: !0 } ); const m = (l) => { var t; l && ((t = e.queryOptions) == null || t.call(e, e.form).then((o) => { n.value = o; })); }, f = (l) => { const t = n.value.find((o) => o.value === l); e.valueChange && e.valueChange(t, e.form); }; return (l, t) => { const o = p("el-option"), v = p("el-select"); return i(), d(v, C({ modelValue: r.value, "onUpdate:modelValue": t[0] || (t[0] = (a) => r.value = a), style: { width: "100%" }, placeholder: u.placeholder }, e, { filterable: "", clearable: "", onVisibleChange: m, onChange: f, multiple: u.multiple }), { default: V(() => [ (i(!0), O(_, null, q(n.value, (a) => (i(), d(o, { key: a.value, value: a.value, label: a.label }, null, 8, ["value", "label"]))), 128)) ]), _: 1 }, 16, ["modelValue", "placeholder", "multiple"]); }; } }); export { B as default };