UNPKG

captain-ui

Version:

有赞vue wap业务组件库

123 lines (115 loc) 3.27 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _helper = _interopRequireDefault(require("@youzan/utils/url/helper")); var _default2 = { render: function render() { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; return _c('div', { staticClass: "cap-app-nav", class: { 'cap-app-nav--show': _vm.subShow, 'cap-app-nav--hide': !_vm.subShow, 'cap-app4-nav': +_vm.navStyle === 4, 'cap-app5-nav': +_vm.navStyle === 5 } }, [_c('ul', { directives: [{ name: "show", rawName: "v-show", value: _vm.subShow, expression: "subShow" }], staticClass: "cap-app-nav__subitems" }, _vm._l(_vm.navs, function (item, index) { return _c('li', { key: index, staticClass: "cap-app-nav__subitem", class: ["cap-app" + _vm.navStyle + "-nav__subitem--" + _vm.navs.length + "-" + (index + 1)] }, [_c('a', { staticClass: "cap-app-nav__sublink", style: _vm.computeLinkStyle(item), attrs: { "href": item.link_url } })]); }), 0), _c('ul', { staticClass: "cap-app-nav__main" }, [_vm.hasMainNav ? [_c('li', { staticClass: "cap-app-nav__mainitem pull-left" }, [_c('a', { style: _vm.computeLinkStyle(_vm.mainNavs[0]), attrs: { "href": _vm.mainNavs[0].link_url } })])] : _vm._e(), _c('li', { staticClass: "cap-app-nav__mainitem cap-app-nav__mainitem--special", on: { "click": function click($event) { $event.stopPropagation(); _vm.subShow = !_vm.subShow; } } }, [_c('a', { attrs: { "href": "javascript:void(0)" } })]), _vm.hasMainNav ? [_c('li', { staticClass: "cap-app-nav__mainitem pull-right" }, [_c('a', { style: _vm.computeLinkStyle(_vm.mainNavs[1]), attrs: { "href": _vm.mainNavs[1].link_url } })])] : _vm._e()], 2)]); }, props: { navs: { type: Array, default: function _default() { return []; } }, mainNavs: { type: Array, default: function _default() { return []; } }, navStyle: [String, Number] }, data: function data() { return { subShow: false }; }, computed: { hasMainNav: function hasMainNav() { return +this.navStyle === 5; } }, mounted: function mounted() { this.handleDocumentClick = this.handleDocumentClick.bind(this); document.addEventListener('click', this.handleDocumentClick); }, destroyed: function destroyed() { document.removeEventListener('click', this.handleDocumentClick); }, methods: { computeLinkStyle: function computeLinkStyle(item) { if (item && item.image_url) { var imageUrl = _helper.default.getCdnImageUrl(item.isActived ? item.actived_image_url : item.image_url); return { 'background-image': "url(" + imageUrl + ")" }; } }, handleDocumentClick: function handleDocumentClick() { this.subShow = false; } } }; exports.default = _default2;