tabs.vue 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <template>
  2. <div id="tabs">
  3. <!-- 主要成果单位 -->
  4. <span v-for="(item, index) in displayList" :key="index" @click="change(item.name)">{{ item.name }}</span>
  5. <!-- 其他 -->
  6. <el-dropdown trigger="click" @command="change">
  7. <span class="el-dropdown-link btn"><i class="el-icon-d-arrow-right"></i> </span>
  8. <el-dropdown-menu slot="dropdown">
  9. <el-dropdown-item v-for="(item, index) in dropList" :key="index" :command="item.name">{{ item.name }}</el-dropdown-item>
  10. </el-dropdown-menu>
  11. </el-dropdown>
  12. </div>
  13. </template>
  14. <script>
  15. import { mapState, createNamespacedHelpers } from 'vuex';
  16. export default {
  17. name: 'tabs',
  18. props: {
  19. displayList: { type: Array, default: () => [] },
  20. dropList: { type: Array, default: () => [] },
  21. },
  22. components: {},
  23. data: function () {
  24. return {};
  25. },
  26. created() {},
  27. methods: {
  28. change(data) {
  29. this.$emit('toSearch', { company: data });
  30. },
  31. },
  32. computed: {
  33. ...mapState(['user', 'menuParams']),
  34. pageTitle() {
  35. return `${this.$route.meta.title}`;
  36. },
  37. },
  38. metaInfo() {
  39. return { title: this.$route.meta.title };
  40. },
  41. };
  42. </script>
  43. <style lang="less" scoped>
  44. span {
  45. font-size: 16px;
  46. padding: 8px 10px;
  47. display: inline-block;
  48. font-weight: bold;
  49. }
  50. span:hover {
  51. cursor: pointer;
  52. color: #409eff;
  53. }
  54. .btn {
  55. padding: 0px 0 0 0;
  56. position: relative;
  57. top: 1px;
  58. i {
  59. font-size: 20px;
  60. font-weight: bold;
  61. }
  62. }
  63. </style>