navBar.vue 1.81 KB
<template>
  <div class="nav-bar"
       v-if="navs"
       :style="navs.style || ''">
    <div class="box">
      <div class="left-box"
           v-if="navs.back">
        <div class="back"
             @click="doBack">
          <img :src="navs.back.img"
               class="img" />
        </div>
      </div>
      <div class="left-box visibility"
           v-else></div>
      <div class="center-box">
        <div class="title"
             v-if="navs.title">{{navs.title}}</div>
      </div>
      <div class="right-box"
           v-if="navs.funcs">
        <div class="func-box"
             v-for="(func, index) in navs.funcs"
             :key="index"
             @click="doFunc(func)">
          <img :src="func.img"
               v-if="func.img"
               class="img" />
          <div class="text"
               v-if="func.text">{{func.text}}</div>
          <img :src="func.symbol"
               v-if="func.symbol"
               class="symbol-img" />
        </div>
      </div>
      <div class="right-box visibility"
           v-else></div>
    </div>
  </div>
</template>

<script>
export default {
  name: 'navBar',
  data: function () {
    return {

    }
  },
  props: ["navs"],
  methods: {

    /**
     * 后退
     */
    doBack () {

      // 后退事件
      this.$emit('back');
    },

    /**
     * 自定义函数
     * @param {function} func [需要执行的函数]
     */
    doFunc (func) {
      if (typeof func === "object" && typeof func.func === "function") {
        if (func.params !== null && func.params !== undefined && func.params) {
          func.func(func.params);
        } else {
          func.func();
        }
      }
    }
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style rel="stylesheet/less" lang="less">
@import './navBar';
</style>