UNPKG

@arco-vue-pro-components/pro-components

Version:
74 lines (73 loc) 2.48 kB
"use strict"; var vue = require("vue"); var webVue = require("@arco-design/web-vue"); var index = require("../../locale/index.js"); var index$1 = require("../../_utils/index.js"); var context = require("../form/context.js"); var Alert = vue.defineComponent({ name: "TableAlert", props: { alwaysShowAlert: { type: Boolean, default: false }, alertRender: { type: [Function, Boolean] } }, setup(props, { slots }) { const { alwaysShowAlert } = vue.toRefs(props); const tableCtx = vue.inject(context.proTableInjectionKey, {}); const { getMessage } = index.useI18n(); const prefixCls = index$1.getPrefixCls("pro-table-alert"); const render = () => { var _a; const data = { selectedRowKeys: (tableCtx == null ? void 0 : tableCtx.selectedRowKeys) || [], selectedRows: (tableCtx == null ? void 0 : tableCtx.selectedRows) || [], onCleanSelected: () => { var _a2, _b; (_b = (_a2 = tableCtx == null ? void 0 : tableCtx.action) == null ? void 0 : _a2.clearSelected) == null ? void 0 : _b.call(_a2); } }; if (slots["alert-render"]) { return slots["alert-render"](data); } const dom = typeof props.alertRender === "function" ? props.alertRender(data) : props.alertRender; if (vue.isVNode(dom)) { return dom; } if (dom === false || (tableCtx == null ? void 0 : tableCtx.selectedRowKeys) && ((_a = tableCtx == null ? void 0 : tableCtx.selectedRowKeys) == null ? void 0 : _a.length) < 1 && !alwaysShowAlert.value) { return null; } return vue.createVNode(webVue.Alert, { "class": `${prefixCls}-container`, "closable": false }, { default: () => [vue.createVNode(webVue.Space, null, { default: () => [getMessage("alert.selected", "\u5DF2\u9009\u62E9"), (tableCtx == null ? void 0 : tableCtx.selectedRowKeys) && (tableCtx == null ? void 0 : tableCtx.selectedRowKeys.length), getMessage("alert.item", "\u9879"), vue.createTextVNode("\xA0\xA0")] })], action: () => { return vue.createVNode("a", { "class": `${prefixCls}-clear`, "onClick": data.onCleanSelected, "key": "0" }, [getMessage("alert.clear", "\u6E05\u7A7A")]); } }); }; return { render }; }, render() { return this.render(); } }); module.exports = Alert;