UNPKG

@ohu-mobile/core

Version:
87 lines (86 loc) 2.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _CloseCircleFilled2 = _interopRequireDefault(require("@ohu-mobile/icons/lib/CloseCircleFilled")); var _CheckboxCircleFilled2 = _interopRequireDefault(require("@ohu-mobile/icons/lib/CheckboxCircleFilled")); var _vueStrictProp = _interopRequireDefault(require("vue-strict-prop")); var _Icon = _interopRequireDefault(require("../Icon")); var _assets = require("./assets"); var _variables = require("../_config/variables"); var _defineComponent = require("../_utils/defineComponent"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var statusMap = { 'network-broken': _assets.NoNetworkIllustration, empty: _assets.NoDataIllustration, 'no-message': _assets.NoNewsIllustration, 'not-queried': _assets.NoQueryDataIllustration, success: _CheckboxCircleFilled2.default, error: _CloseCircleFilled2.default }; var Result = (0, _defineComponent.defineComponent)('result').create({ props: { title: String, subTitle: String, statusMap: _vueStrictProp.default.ofType().default(function () { return {}; }), svgSize: (0, _vueStrictProp.default)(String).default('140px'), status: _vueStrictProp.default.ofStringLiterals('network-broken', 'empty', 'no-message', 'not-queried', 'success', 'error').default('empty') }, computed: { svgMap: function svgMap() { return Object.assign({}, statusMap, this.statusMap); } }, methods: { renderIconArea: function renderIconArea() { var h = this.$createElement; var $slots = this.$slots, status = this.status; if ($slots.icon) return $slots.icon; var style = {}; if (status === 'success') { style.color = _variables.$colorPrimary; } else if (status === 'error') { style.color = _variables.$colorTextError; } else { style.fontSize = this.svgSize; } // support dymanic generate svg var statusSvg = this.svgMap[status]; var svg = statusSvg instanceof Function ? statusSvg() : statusSvg; if (svg) { return h(_Icon.default, { "attrs": { "type": svg }, "style": style }); } return ''; } }, render: function render() { var h = arguments[0]; var title = this.title, subTitle = this.subTitle, $slots = this.$slots; var root = this.$rootCls(); return h("div", { "class": root }, [h("div", { "class": root.element('icon') }, [this.renderIconArea()]), title && h("h2", { "class": root.element('title') }, [title]), subTitle && h("h3", { "class": root.element('subtitle') }, [subTitle]), $slots.extra && h("div", { "class": root.element('extra') }, [$slots.extra])]); } }); var _default = exports.default = Object.assign(Result, { statusMap: statusMap });