captain-ui
Version:
有赞vue wap业务组件库
93 lines (81 loc) • 2.28 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
require("vant/es/sidebar-item/style");
var _sidebarItem = _interopRequireDefault(require("vant/es/sidebar-item"));
require("vant/es/sidebar/style");
var _sidebar = _interopRequireDefault(require("vant/es/sidebar"));
var _constants = require("../constants");
var _components;
var _default2 = {
render: function render() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c('van-sidebar', {
staticClass: "cap-category-nav",
style: _vm.positionStyle,
attrs: {
"active-key": _vm.active
}
}, _vm._l(_vm.navList, function (nav, index) {
return _c('van-sidebar-item', {
key: index,
ref: "badges",
refInFor: true,
staticClass: "cap-category-nav__item",
attrs: {
"title": nav.title
},
on: {
"click": function click($event) {
_vm.handleClick(index);
}
}
});
}), 1);
},
name: 'cap-category-nav',
components: (_components = {}, _components[_sidebar.default.name] = _sidebar.default, _components[_sidebarItem.default.name] = _sidebarItem.default, _components),
props: {
navList: {
type: Array,
default: function _default() {
return [];
}
},
active: {
type: Number,
default: 0
},
state: String,
windowHeight: Number
},
data: function data() {
return {
currentActive: this.active
};
},
computed: {
positionStyle: function positionStyle() {
var position = this.state === _constants.NAV_STATE.FIXED ? 'fixed' : '';
var bottom = this.state === _constants.NAV_STATE.SCROLL_OUT ? 0 : '';
var top = this.state !== _constants.NAV_STATE.SCROLL_OUT ? '' : 'auto';
var maxHeight = this.windowHeight + 'px';
return {
position: position,
top: top,
bottom: bottom,
maxHeight: maxHeight
};
}
},
methods: {
handleClick: function handleClick(index) {
this.currentActive = index;
this.$emit('click', index);
}
}
};
exports.default = _default2;