@ohu-mobile/core
Version:
87 lines (86 loc) • 2.95 kB
JavaScript
;
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
});