@arco-vue-pro-components/pro-components
Version:
基于@arco-design/web-vue组件的高级组件,包括pro-table
74 lines (73 loc) • 2.48 kB
JavaScript
;
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;