@zhsz/cool-design-crud
Version:
56 lines (55 loc) • 1.48 kB
JavaScript
import { defineComponent, createVNode, mergeProps } from "vue";
import "../../utils/test.mjs";
import { useCore, useTools } from "../../hooks/core.mjs";
import "clone-deep";
import "array.prototype.flat";
import "merge";
import "@formily/core";
import { omit, pickBy } from "lodash-es";
import "../../hooks/table.mjs";
import { SearchIcon } from "tdesign-icons-vue-next";
import { Button } from "tdesign-vue-next";
import ButtonProps from "tdesign-vue-next/es/button/props";
const btn = /* @__PURE__ */ defineComponent({
name: "cl-adv-btn",
props: {
...ButtonProps
},
components: {
SearchIcon,
TdButton: Button
},
setup(props, {
slots
}) {
const {
crud,
mitt
} = useCore();
const {
style
} = useTools();
function open() {
var _a;
mitt.emit("crud.openAdvSearch");
(_a = props == null ? void 0 : props.onClick) == null ? void 0 : _a.call(props, {});
}
return () => {
var _a;
return createVNode(Button, mergeProps({
"variant": "outline",
"class": "cl-adv-btn",
"size": style.size
}, omit(pickBy(props, (value) => value !== void 0), ["onClick", "variant"]), {
"onClick": open
}), {
default: slots.default ? (_a = slots.default) == null ? void 0 : _a.call(slots) : () => crud.dict.label.advSearch,
icon: () => createVNode(SearchIcon, null, null),
...slots
});
};
}
});
export {
btn as default
};