123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- <template>
- <div class="statistics-tabs">
- <div
- v-for="(tab, index) in tabList"
- :key="tab.path"
- :class="['tab-bar', { 'tab-active': activeIndex === index }]"
- @click="clickHandler(index)"
- >
- <img
- class="tab-icon"
- :src="activeIndex === index ? tab.activeIcon : tab.defaultIcon"
- :alt="tab.title"
- >
- <span class="tab-title">{{ tab.title }}</span>
- </div>
- </div>
- </template>
- <script>
- const defaultIcon = require('@/assets/nav/ic_statistical_top_default.png')
- const activeIcon = require('@/assets/nav/ic_statistical_top_check.png')
- export default {
- name: 'StatisticsTabs',
- data() {
- return {
- tabList: [
- {
- path: '/statisticsCharts/flight',
- title: '航班量统计',
- defaultIcon,
- activeIcon
- },
- {
- path: '/statisticsCharts/node',
- title: '扫描节点与位置分析',
- defaultIcon,
- activeIcon
- },
- {
- path: '/statisticsCharts/baggage',
- title: '行李量统计',
- defaultIcon,
- activeIcon
- },
- {
- path: '/statisticsCharts/specialBaggage',
- title: '特殊行李量统计',
- defaultIcon,
- activeIcon
- },
- {
- path: '/statisticsCharts/passenger',
- title: '旅客量统计',
- defaultIcon,
- activeIcon
- }
- ],
- activeIndex: null
- }
- },
- watch: {
- '$route.path': {
- handler(val) {
- this.activeIndex = this.tabList.findIndex(tab => tab.path === val)
- },
- immediate: true
- },
- activeIndex(val) {
- this.$router.push({
- path: this.tabList[val].path
- })
- }
- },
- methods: {
- clickHandler(index) {
- this.activeIndex = index
- }
- }
- }
- </script>
- <style lang="scss" scoped>
- .statistics-tabs {
- display: flex;
- .tab-bar {
- min-width: 216px;
- height: 56px;
- background-color: #ffffff;
- padding-left: 24px;
- display: flex;
- align-items: center;
- box-shadow: 0px 6px 7px 0px rgba(0, 0, 0, 0.06);
- border-radius: 4px;
- cursor: pointer;
- &:not(:last-child) {
- margin-right: 16px;
- }
- .tab-icon {
- width: 16px;
- height: 16px;
- margin-right: 15px;
- }
- .tab-title {
- font-size: 16px;
- font-family: Helvetica 'Microsoft YaHei';
- font-weight: bold;
- color: #101116;
- }
- &.tab-active {
- background-color: #2d67e3;
- .tab-title {
- color: #ffffff;
- }
- }
- }
- }
- </style>
|