123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- <template>
- <view class="top-window-header" :class="isDarkMode ? 'theme-dark' : 'theme-light'">
- <view class="left-header">
- <navigator class="left-header" open-type="reLaunch" url="/pages/component/view/view">
- <image src="/static/uni.png" class="logo" mode="heightFix"></image>
- <text>hello uni-app x</text>
- </navigator>
- </view>
- <custom-tab-bar class="tab-bar-flex" direction="horizontal" :show-icon="false" :selected="current"
- @onTabItemTap="toSecondMenu" />
- </view>
- </template>
- <script lang="uts">
- type IndexPageItem = {
- tabBar : string.PageURIString;
- indexPageUrl : string.PageURIString;
- }
- import { state } from '@/store/index.uts'
- export default {
- data() {
- return {
- selected: {
- component: 0,
- API: 1,
- CSS: 2,
- template: 3
- },
- current: 0,
- indexPage: [{
- tabBar: '/pages/tabBar/component',
- indexPageUrl: '/pages/component/view/view'
- }, {
- tabBar: '/pages/tabBar/API',
- indexPageUrl: '/pages/API/get-app/get-app'
- }, {
- tabBar: '/pages/tabBar/CSS',
- indexPageUrl: '/pages/CSS/layout/width'
- }, {
- tabBar: '/pages/tabBar/template',
- indexPageUrl: '/pages/template/slider-100/slider-100'
- }] as IndexPageItem[]
- }
- },
- computed: {
- isDarkMode() : boolean {
- return state.isDarkMode
- }
- },
- watch: {
- $route: {
- // immediate: true,
- handler(newRoute) {
- const width = uni.getSystemInfoSync().windowWidth
- if (width <= 768) {
- return
- }
- let path = newRoute.path
- let category
- if (path === '/') {
- category = 'component'
- uni.redirectTo({
- url: '/pages/component/view/view'
- })
- return
- } else if (path.indexOf('/pages/tabBar') === 0) {
- const indexPageItem = this.indexPage.find(item => item.tabBar === path)
- if (!indexPageItem) {
- console.error('Invalid page path: ', path)
- return
- }
- uni.redirectTo({
- url: indexPageItem.indexPageUrl
- })
- return
- } else {
- category = path.split('/')[2]
- }
- this.current = this.selected[category]
- }
- }
- },
- methods: {
- toSecondMenu(e : OnTabItemTapOption) {
- const activeTabBar = '/' + e.pagePath
- for (const item of this.indexPage) {
- if (activeTabBar === item.tabBar) {
- uni.redirectTo({
- url: item.indexPageUrl
- })
- }
- }
- }
- }
- }
- </script>
- <style>
- .top-window-header {
- height: 60px;
- padding: 0 15px;
- flex-direction: row;
- justify-content: space-between;
- align-items: center;
- box-sizing: border-box;
- border-bottom: 1px solid #e1e1e1;
- color: var(--text-color, #333333);
- background-color: var(--list-background-color,#ffffff);
- }
- .left-header {
- flex-direction: row;
- align-items: center;
- flex: 1;
- }
- .logo {
- height: 30px;
- width: 30px;
- margin-right: 8px;
- }
- .tab-bar-flex {
- width: 360px;
- }
- </style>
|