cyber-web-ui
Version:
spring-cyber前端ui框架
124 lines (123 loc) • 4.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _vue = require("vue");
var _icon = _interopRequireDefault(require("../icon"));
var _history = require("../_utils/history.js");
var _config = require("../_utils/config.js");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var PageLabel = (0, _vue.defineComponent)({
name: 'CPageLabel',
props: {
// 标题
title: {
type: String,
default: "标题"
},
// 提示
tips: {
type: String,
default: ""
},
// 图标
icon: {
type: String,
default: ""
},
// 显示顶部导航栏
showHeader: {
type: Boolean,
default: false
},
// 默认返回路径
back: {
type: String,
default: ''
},
// 文档链接
documentLink: String,
// 文档提示文本
documentText: {
type: String,
default: '了解更多'
}
},
setup: function setup(props, _ref) {
var attrs = _ref.attrs,
slots = _ref.slots,
emit = _ref.emit,
expose = _ref.expose;
var documentLink = (0, _vue.computed)(function () {
if (!props.documentLink) return;
if (/^http(s?):\/\//.test(props.documentLink)) return props.documentLink;
return _config.DOCUMENT_ADDRESS + props.documentLink;
});
function backHandler() {
// 若有自定义返回方法,则调用该方法
if (props.onBack) {
props.onBack();
return;
}
// 默认返回方法,若无可返回路径,则跳转到指定返回路径
(0, _history.historyBack)(props.back);
}
expose({
back: backHandler
});
return function () {
var _slots$right;
function breadcrumbSlot() {
var _slots$breadcrumb;
return slots.header ? slots.header() : props.showHeader ? (0, _vue.createVNode)("div", {
"class": "cyber-page-label-header"
}, [(0, _vue.createVNode)(_icon.default, {
"icon": "cyber-fanhui",
"isSvg": true,
"size": "21",
"class": "cyber-back-icon",
"onClick": backHandler
}, null), (_slots$breadcrumb = slots.breadcrumb) === null || _slots$breadcrumb === void 0 ? void 0 : _slots$breadcrumb.call(slots)]) : undefined;
}
function iconSlot() {
var _slots$icon;
return slots.icon ? (_slots$icon = slots.icon) === null || _slots$icon === void 0 ? void 0 : _slots$icon.call(slots) : (0, _vue.createVNode)(_icon.default, {
"isSvg": true,
"icon": props.icon,
"size": "64"
}, null);
}
function titleSlot() {
var _slots$title;
return (0, _vue.createVNode)("div", {
"class": "cyber-page-label-title"
}, [slots.title ? (_slots$title = slots.title) === null || _slots$title === void 0 ? void 0 : _slots$title.call(slots) : props.title]);
}
function tipsSlot() {
return slots.tips || props.tips ? (0, _vue.createVNode)("div", {
"class": "cyber-page-label-tips"
}, [slots.tips ? slots.tips() : props.tips, documentLink.value ? (0, _vue.createVNode)("a", {
"href": documentLink.value,
"target": "_blank",
"class": "document_link"
}, [props.documentText]) : undefined]) : undefined;
}
return (0, _vue.createVNode)("div", {
"class": "cyber-page-label"
}, [breadcrumbSlot(), (0, _vue.createVNode)("div", {
"class": "cyber-page-label-body"
}, [(0, _vue.createVNode)("div", {
"class": "cyber-page-label-body-left"
}, [(0, _vue.createVNode)("div", {
"class": "title-icon"
}, [iconSlot()]), (0, _vue.createVNode)("div", {
"class": "cyber-page-label-content"
}, [titleSlot(), tipsSlot()])]), (_slots$right = slots.right) === null || _slots$right === void 0 ? void 0 : _slots$right.call(slots)])]);
};
}
});
PageLabel.install = function (app) {
app.component(PageLabel.name, PageLabel);
};
var _default = exports.default = PageLabel;