index.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
  2. import { createVNode as _createVNode } from "vue";
  3. import { defineComponent, computed } from 'vue';
  4. import PropTypes from '../_util/vue-types';
  5. import CheckCircleFilled from "@ant-design/icons-vue/es/icons/CheckCircleFilled";
  6. import CloseCircleFilled from "@ant-design/icons-vue/es/icons/CloseCircleFilled";
  7. import ExclamationCircleFilled from "@ant-design/icons-vue/es/icons/ExclamationCircleFilled";
  8. import WarningFilled from "@ant-design/icons-vue/es/icons/WarningFilled";
  9. import noFound from './noFound';
  10. import serverError from './serverError';
  11. import unauthorized from './unauthorized';
  12. import useConfigInject from '../_util/hooks/useConfigInject';
  13. import classNames from '../_util/classNames';
  14. export var IconMap = {
  15. success: CheckCircleFilled,
  16. error: CloseCircleFilled,
  17. info: ExclamationCircleFilled,
  18. warning: WarningFilled
  19. };
  20. export var ExceptionMap = {
  21. '404': noFound,
  22. '500': serverError,
  23. '403': unauthorized
  24. };
  25. // ExceptionImageMap keys
  26. var ExceptionStatus = Object.keys(ExceptionMap);
  27. export var resultProps = function resultProps() {
  28. return {
  29. prefixCls: String,
  30. icon: PropTypes.any,
  31. status: {
  32. type: [Number, String],
  33. default: 'info'
  34. },
  35. title: PropTypes.any,
  36. subTitle: PropTypes.any,
  37. extra: PropTypes.any
  38. };
  39. };
  40. var renderIcon = function renderIcon(prefixCls, _ref) {
  41. var status = _ref.status,
  42. icon = _ref.icon;
  43. if (ExceptionStatus.includes("".concat(status))) {
  44. var SVGComponent = ExceptionMap[status];
  45. return _createVNode("div", {
  46. "class": "".concat(prefixCls, "-icon ").concat(prefixCls, "-image")
  47. }, [_createVNode(SVGComponent, null, null)]);
  48. }
  49. var IconComponent = IconMap[status];
  50. var iconNode = icon || _createVNode(IconComponent, null, null);
  51. return _createVNode("div", {
  52. "class": "".concat(prefixCls, "-icon")
  53. }, [iconNode]);
  54. };
  55. var renderExtra = function renderExtra(prefixCls, extra) {
  56. return extra && _createVNode("div", {
  57. "class": "".concat(prefixCls, "-extra")
  58. }, [extra]);
  59. };
  60. var Result = defineComponent({
  61. compatConfig: {
  62. MODE: 3
  63. },
  64. name: 'AResult',
  65. props: resultProps(),
  66. slots: ['title', 'subTitle', 'icon', 'extra'],
  67. setup: function setup(props, _ref2) {
  68. var slots = _ref2.slots;
  69. var _useConfigInject = useConfigInject('result', props),
  70. prefixCls = _useConfigInject.prefixCls,
  71. direction = _useConfigInject.direction;
  72. var className = computed(function () {
  73. return classNames(prefixCls.value, "".concat(prefixCls.value, "-").concat(props.status), _defineProperty({}, "".concat(prefixCls.value, "-rtl"), direction.value === 'rtl'));
  74. });
  75. return function () {
  76. var _props$title, _slots$title, _props$subTitle, _slots$subTitle, _props$icon, _slots$icon, _props$extra, _slots$extra;
  77. var title = (_props$title = props.title) !== null && _props$title !== void 0 ? _props$title : (_slots$title = slots.title) === null || _slots$title === void 0 ? void 0 : _slots$title.call(slots);
  78. var subTitle = (_props$subTitle = props.subTitle) !== null && _props$subTitle !== void 0 ? _props$subTitle : (_slots$subTitle = slots.subTitle) === null || _slots$subTitle === void 0 ? void 0 : _slots$subTitle.call(slots);
  79. var icon = (_props$icon = props.icon) !== null && _props$icon !== void 0 ? _props$icon : (_slots$icon = slots.icon) === null || _slots$icon === void 0 ? void 0 : _slots$icon.call(slots);
  80. var extra = (_props$extra = props.extra) !== null && _props$extra !== void 0 ? _props$extra : (_slots$extra = slots.extra) === null || _slots$extra === void 0 ? void 0 : _slots$extra.call(slots);
  81. var pre = prefixCls.value;
  82. return _createVNode("div", {
  83. "class": className.value
  84. }, [renderIcon(pre, {
  85. status: props.status,
  86. icon: icon
  87. }), _createVNode("div", {
  88. "class": "".concat(pre, "-title")
  89. }, [title]), subTitle && _createVNode("div", {
  90. "class": "".concat(pre, "-subtitle")
  91. }, [subTitle]), renderExtra(pre, extra), slots.default && _createVNode("div", {
  92. "class": "".concat(pre, "-content")
  93. }, [slots.default()])]);
  94. };
  95. }
  96. });
  97. /* add resource */
  98. Result.PRESENTED_IMAGE_403 = ExceptionMap[403];
  99. Result.PRESENTED_IMAGE_404 = ExceptionMap[404];
  100. Result.PRESENTED_IMAGE_500 = ExceptionMap[500];
  101. /* istanbul ignore next */
  102. Result.install = function (app) {
  103. app.component(Result.name, Result);
  104. return app;
  105. };
  106. export default Result;