vxe-table-pro
Version:
Vue table plugins based on vxe-table
80 lines (79 loc) • 2 kB
JavaScript
import { defineComponent as m, mergeModels as f, useModel as y, ref as v, watch as b, resolveComponent as s, createBlock as c, openBlock as a, mergeProps as h, withCtx as _, createElementBlock as g, Fragment as k, renderList as x } from "vue";
const O = /* @__PURE__ */ m({
__name: "index",
props: /* @__PURE__ */ f({
options: {
type: Array,
default: () => []
},
queryOptions: {
type: Function,
default: null
},
placeholder: {
type: String,
default: "请选择"
},
optionKey: {
type: String,
default: ""
}
}, {
modelValue: { default: [] },
modelModifiers: {}
}),
emits: ["update:modelValue"],
setup(r) {
const i = y(r, "modelValue"), e = r, l = v([]);
b(
() => [e.options, e.queryOptions],
() => {
var o;
if (e.queryOptions) {
(o = e.queryOptions) == null || o.call(e).then((t) => {
l.value = t;
});
return;
}
if (e.options) {
l.value = e.options;
return;
}
e.optionKey && (l.value = e.options[e.optionKey] || []);
},
{
immediate: !0
}
);
const p = (o) => {
var t;
o && ((t = e.queryOptions) == null || t.call(e).then((u) => {
l.value = u;
}));
};
return (o, t) => {
const u = s("el-checkbox"), d = s("el-checkbox-group");
return a(), c(d, h({
modelValue: i.value,
"onUpdate:modelValue": t[0] || (t[0] = (n) => i.value = n),
style: { width: "100%" }
}, e, {
filterable: "",
clearable: "",
onVisibleChange: p
}), {
default: _(() => [
(a(!0), g(k, null, x(l.value, (n) => (a(), c(u, {
key: n.value,
value: n.value,
label: n.label
}, null, 8, ["value", "label"]))), 128))
]),
_: 1
}, 16, ["modelValue"]);
};
}
});
export {
O as default
};