|
|
@@ -8,34 +8,27 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
-import Icon from '../icon/icon.vue';
|
|
|
-import '../icon/icon.scss';
|
|
|
-import Subsidenavbar from '../subsidenavbar/subsidenavbar.vue';
|
|
|
-import '../subsidenavbar/subsidenavbar.scss';
|
|
|
-import Sidenavbaritem from '../sidenavbaritem/sidenavbaritem.vue';
|
|
|
-import '../sidenavbaritem/sidenavbaritem.scss';
|
|
|
export default {
|
|
|
- name:'nut-sidenavbar',
|
|
|
+ name: "nut-sidenavbar",
|
|
|
props: {
|
|
|
- offset:{
|
|
|
- type:[String,Number],
|
|
|
- default:15
|
|
|
+ offset: {
|
|
|
+ type: [String, Number],
|
|
|
+ default: 15
|
|
|
}
|
|
|
},
|
|
|
- components: {
|
|
|
- 'nut-icon': Icon,
|
|
|
- 'nut-subsidenavbar': Subsidenavbar,
|
|
|
- 'nut-sidenavbaritem': Sidenavbaritem,
|
|
|
- },
|
|
|
mounted() {
|
|
|
- this.observer = new MutationObserver(function(mutations) {
|
|
|
- this.handleSlots()
|
|
|
- }.bind(this));
|
|
|
-
|
|
|
- this.observer.observe(
|
|
|
- this.$refs.list,
|
|
|
- { attributes: true, childList: true, characterData: true, subtree: true }
|
|
|
+ this.observer = new MutationObserver(
|
|
|
+ function(mutations) {
|
|
|
+ this.handleSlots();
|
|
|
+ }.bind(this)
|
|
|
);
|
|
|
+
|
|
|
+ this.observer.observe(this.$refs.list, {
|
|
|
+ attributes: true,
|
|
|
+ childList: true,
|
|
|
+ characterData: true,
|
|
|
+ subtree: true
|
|
|
+ });
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
@@ -46,23 +39,28 @@ export default {
|
|
|
methods: {
|
|
|
handleSlots() {
|
|
|
let slots = this.$slots.default;
|
|
|
- if(slots) {
|
|
|
- slots = slots.filter(item => item.elm.nodeType !== 3).map(item => {
|
|
|
- return item.elm
|
|
|
- })
|
|
|
- this.setPaddingLeft(slots)
|
|
|
+ if (slots) {
|
|
|
+ slots = slots
|
|
|
+ .filter(item => item.elm.nodeType !== 3)
|
|
|
+ .map(item => {
|
|
|
+ return item.elm;
|
|
|
+ });
|
|
|
+ this.setPaddingLeft(slots);
|
|
|
}
|
|
|
},
|
|
|
setPaddingLeft(nodeList, level = 1) {
|
|
|
- for(let i = 0; i < nodeList.length; i++) {
|
|
|
+ for (let i = 0; i < nodeList.length; i++) {
|
|
|
let item = nodeList[i];
|
|
|
- item.children[0].style.paddingLeft = this.offset * level + 'px'
|
|
|
- if(item.className !== 'nut-sidenavbaritem') {
|
|
|
- this.setPaddingLeft(Array.from(item.children[1].children), ++this.count)
|
|
|
+ item.children[0].style.paddingLeft = this.offset * level + "px";
|
|
|
+ if (item.className !== "nut-sidenavbaritem") {
|
|
|
+ this.setPaddingLeft(
|
|
|
+ Array.from(item.children[1].children),
|
|
|
+ ++this.count
|
|
|
+ );
|
|
|
}
|
|
|
}
|
|
|
this.count = 1;
|
|
|
}
|
|
|
}
|
|
|
-}
|
|
|
+};
|
|
|
</script>
|