UNPKG

song-ui-u

Version:

vue3 + js的PC前端组件库

141 lines (135 loc) 4.33 kB
'use strict'; var vue = require('vue'); var icons = require('song-ui-pro-icon'); require('../../button/index.cjs'); require('../../buttonGroup/index.cjs'); var index = require('../../icon/index.cjs'); require('../../input/index.cjs'); require('../../textarea/index.cjs'); require('../../row/index.cjs'); require('../../col/index.cjs'); require('../../container/index.cjs'); require('../../checkbox/index.cjs'); require('../../switch/index.cjs'); require('../../form/index.cjs'); require('../../message/index.cjs'); require('../../mask/src/mask.cjs'); require('../../modal/index.cjs'); require('../../messageBox/index.cjs'); require('../../drawer/index.cjs'); require('../../badge/index.cjs'); require('../../space/index.cjs'); require('../../image/index.cjs'); require('../../radio/index.cjs'); require('../../divider/index.cjs'); require('../../chat/index.cjs'); require('../../progress/index.cjs'); require('../../upload/index.cjs'); require('../../vTree/index.cjs'); require('../../table/index.cjs'); require('../../tabs/index.cjs'); require('../../menu/index.cjs'); require('../../steps/index.cjs'); require('../index.cjs'); require('../../breadcrumble/index.cjs'); require('../../datePicker/index.cjs'); require('../../tooltip/index.cjs'); require('../../popover/index.cjs'); require('../../timePicker/index.cjs'); require('../../select/index.cjs'); require('../../collapse/index.cjs'); require('../../card/index.cjs'); require('../../timeline/index.cjs'); require('../../tag/index.cjs'); require('../../result/index.cjs'); require('../../sender/index.cjs'); function _interopNamespaceDefault(e) { var n = Object.create(null); if (e) { Object.keys(e).forEach(function (k) { if (k !== 'default') { var d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty(n, k, d.get ? d : { enumerable: true, get: function () { return e[k]; } }); } }); } n.default = e; return Object.freeze(n); } var icons__namespace = /*#__PURE__*/_interopNamespaceDefault(icons); function _isSlot(s) { return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s); } var header = /* @__PURE__ */ vue.defineComponent({ name: "x-page-header", props: { title: { type: String }, content: String, backText: { type: String, default: "\u8FD4\u56DE" }, showBack: { type: Boolean, default: true }, disableRoute: Boolean, icon: { type: [String], default: "ChevronLeft" } }, emits: ["back"], setup(props, { emit, slots }) { const hasExtra = vue.computed(() => !!slots.extra); const hasContent = vue.computed(() => !!slots.content || props.content); const handleBack = () => { emit("back"); if (!props.disableRoute) { window.history.length > 1 ? window.history.back() : window.location.href = "/"; } }; const renderIcon = () => { if (slots.icon) return slots.icon(); return icons__namespace[props.icon].render(); }; return () => { let _slot; return vue.createVNode("div", { "class": "x-page-header" }, [slots.breadcrumb?.() && vue.createVNode("div", { "class": "x-page-header__breadcrumb" }, [slots.breadcrumb()]), vue.createVNode("div", { "class": "x-page-header__main" }, [props.showBack && vue.createVNode("div", { "class": "x-page-header__back", "onClick": handleBack }, [vue.createVNode(index.XIcon, { "size": "20" }, _isSlot(_slot = // 动态组件渲染 renderIcon()) ? _slot : { default: () => [_slot] }), vue.createVNode("span", { "class": "x-page-header__text" }, [props.backText])]), vue.createVNode("div", { "class": "x-page-header__title" }, [slots.title?.() || props.title]), vue.createVNode("div", { "class": "x-page-header__divider" }, null), hasContent.value && vue.createVNode("div", { "class": "x-page-header__content" }, [slots.content?.() || props.content])]), hasExtra.value && vue.createVNode("div", { "class": "x-page-header__extra" }, [slots.extra()]), slots.default?.()]); }; } }); module.exports = header; //# sourceMappingURL=header.cjs.map