UNPKG

wetrade-design

Version:

一款多语言支持Vue3的UI框架

145 lines 5.92 kB
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty"; import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2"; import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties"; var _excluded = ["image", "description", "imageStyle", "class", "mode", "type", "noImage", "scene"]; import { createVNode as _createVNode } from "vue"; import classNames from '../_util/classNames'; import LocaleReceiver from '../locale-provider/LocaleReceiver'; import getEmptyImg from './empty'; import SimpleEmptyImg from './simple'; import { filterEmpty } from '../_util/props-util'; import PropTypes from '../_util/vue-types'; import { withInstall } from '../_util/type'; import useConfigInject from '../_util/hooks/useConfigInject'; import Button from '../button'; var simpleEmptyImg = _createVNode(SimpleEmptyImg, null, null); var Empty = function Empty(props, _ref) { var _slots$description, _props$mode; var _ref$slots = _ref.slots, slots = _ref$slots === void 0 ? {} : _ref$slots, attrs = _ref.attrs, emit = _ref.emit; var _useConfigInject = useConfigInject('empty', props), direction = _useConfigInject.direction, prefixClsRef = _useConfigInject.prefixCls, configProvider = _useConfigInject.configProvider; var prefixCls = prefixClsRef.value; var _props$attrs = _objectSpread(_objectSpread({}, props), attrs), _props$attrs$image = _props$attrs.image, image = _props$attrs$image === void 0 ? getEmptyImg() : _props$attrs$image, _props$attrs$descript = _props$attrs.description, description = _props$attrs$descript === void 0 ? ((_slots$description = slots.description) === null || _slots$description === void 0 ? void 0 : _slots$description.call(slots)) || undefined : _props$attrs$descript, imageStyle = _props$attrs.imageStyle, _props$attrs$class = _props$attrs.class, className = _props$attrs$class === void 0 ? '' : _props$attrs$class, mode = _props$attrs.mode, type = _props$attrs.type, noImage = _props$attrs.noImage, _props$attrs$scene = _props$attrs.scene, scene = _props$attrs$scene === void 0 ? 'default' : _props$attrs$scene, restProps = _objectWithoutProperties(_props$attrs, _excluded); var theme = (_props$mode = props.mode) !== null && _props$mode !== void 0 ? _props$mode : configProvider.mode; var refresh = function refresh() { emit('refresh'); }; return _createVNode(LocaleReceiver, { "componentName": "Empty", "children": function children(locale) { var _classNames; var LOCALE_DESC = { default: locale.description, permi: locale.permiDesc, network: locale.networkDesc, found: locale.foundDesc, account: locale.accountDesc, message: locale.messageDesc, system: locale.systemDesc, search: locale.searchDesc }; var desc = LOCALE_DESC[scene] || locale.description; var des = typeof description !== 'undefined' ? description : desc; var alt = typeof des === 'string' ? des : 'empty'; var imageNode = null; if (typeof image === 'string') { imageNode = _createVNode("img", { "alt": alt, "src": image }, null); } else { imageNode = theme ? getEmptyImg({ mode: theme, scene: scene }) : image; } var isImage = !noImage && type !== 'text'; var desContent; if (scene === 'network') { if (!['module', 'text'].includes(type)) { desContent = _createVNode("p", { "class": "".concat(prefixCls, "-description") }, [des]); } else { desContent = _createVNode("p", { "class": "".concat(prefixCls, "-description") }, [locale.networkModuleDesc, _createVNode("span", { "class": "".concat(prefixCls, "-refresh-btn"), "onClick": refresh }, [locale.btn.network])]); } } else { desContent = desc && _createVNode("p", { "class": "".concat(prefixCls, "-description") }, [des]); } var footerContent; if (scene === 'network') { var _locale$btn; footerContent = !['module', 'text'].includes(type) && _createVNode("div", { "class": "".concat(prefixCls, "-footer") }, [_createVNode(Button, { "type": "primary", "onClick": refresh }, { default: function _default() { return [(_locale$btn = locale.btn) === null || _locale$btn === void 0 ? void 0 : _locale$btn.network]; } })]); } else { footerContent = slots.default && _createVNode("div", { "class": "".concat(prefixCls, "-footer") }, [filterEmpty(slots.default())]); } return _createVNode("div", _objectSpread({ "class": classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, "".concat(prefixCls, "-normal"), image === simpleEmptyImg), _defineProperty(_classNames, "".concat(prefixCls, "-rtl"), direction.value === 'rtl'), _defineProperty(_classNames, "".concat(prefixCls, "-module"), type === 'module'), _defineProperty(_classNames, "".concat(prefixCls, "-text"), type === 'text'), _classNames)) }, restProps), [isImage && _createVNode("div", { "class": "".concat(prefixCls, "-image"), "style": imageStyle }, [imageNode]), desContent, footerContent]); } }, null); }; Empty.displayName = 'WdEmpty'; Empty.inheritAttrs = false; Empty.PRESENTED_IMAGE_SIMPLE = simpleEmptyImg; Empty.props = { prefixCls: String, image: PropTypes.any, description: PropTypes.any, imageStyle: { type: Object, default: undefined }, scene: { type: String, default: 'default' }, mode: { type: String, default: undefined }, onRefresh: { type: Function, default: undefined } }; export default withInstall(Empty);