feat(router,auth,components): implement token check and refactor navigation and UI
implement proper token validation in checkToken hook that redirects to login when no token exists replace uni.navigateTo with vue-router's push for unified page navigation update route names to camelCase (order_list → orderList) for consistent naming refactor quick booking page: add named route usage, remove unused z-paging, swap uni-icons to van-icon, fix inline styles update development environment token for testing
This commit is contained in:
@@ -14,6 +14,6 @@ VITE_SOCKET_BASE_URL = "/ingress/agent/ws/chat"
|
||||
VITE_CLIENT_ID = "6"
|
||||
|
||||
# Token
|
||||
VITE_TOKEN = "eyJraWQiOiJiMTVhZTk0Mi03MjI5LTMyOWUtODA1Yi0wNjFlNmRjYTE1MDQiLCJhbGciOiJSUzI1NiJ9.eyJ0ZW5hbnRfaWQiOjEsInN1YiI6Im94T3NGN2lqTkxvbEFIdkhDZDYtek1acE5kNWsiLCJjbGllbnRJZCI6ImN1c3RvbSIsImlzcyI6Imh0dHBzOi8vcGlnNGNsb3VkLmNvbSIsImNsaWVudF9pZCI6ImN1c3RvbSIsImF1dGhvcml0aWVzIjpbXSwiYXVkIjoiY3VzdG9tIiwibGljZW5zZSI6Imh0dHBzOi8vcGlnNGNsb3VkLmNvbSIsIndlY2hhdF9vcGVuaWQiOiJveE9zRjdpak5Mb2xBSHZIQ2Q2LXpNWnBOZDVrIiwibmJmIjoxNzc5OTgzMTUzLCJ1c2VyX2lkIjoiMjAwNTEwMjg0NDQ2OTM4NzI2NSIsInNjb3BlIjpbInNlcnZlciJdLCJleHAiOjE3Nzk5OTMxNTMsImlhdCI6MTc3OTk4MzE1MywianRpIjoiNDFmMjJmYWYtZWM3My00YWExLTg0NjAtYjkxNjJiMTgwY2RlIiwidXNlcm5hbWUiOiJveE9zRjdpak5Mb2xBSHZIQ2Q2LXpNWnBOZDVrIn0.P80pKKFjZF3recRt_flWRUjWhM2n-pyu5eabW9Ba0qtKWY5rnC1Of-TIBRExeS4yaXvYnlGn1eiYk5dTPcbFmQi211GLNj6-WhpGDSpRibE-8KMjTFsQMEJTaDSJTdvLKbp3W9H57NGgi2Hpn0t1afGn-bi5Tmh2eVPIyRd0k9vI9AvW2RJjbCeCM7RHVE5I2BaACPEDSuVN3EIp88wS0OS0DMBpSUZPzyb-CJMfeHwZ6l5GW27EbPZUkY9OZtsZgG9JG2tdZO9zC0sStNhwtA7WcLkc0M0EDKxGDXpuYJKfQXMn0gXLCAf-iIW5pD4BYMFI3j2HglqVEDwKFc_rrg"
|
||||
VITE_TOKEN = "eyJraWQiOiJiMTVhZTk0Mi03MjI5LTMyOWUtODA1Yi0wNjFlNmRjYTE1MDQiLCJhbGciOiJSUzI1NiJ9.eyJ0ZW5hbnRfaWQiOjEsInN1YiI6Im94T3NGN2lqTkxvbEFIdkhDZDYtek1acE5kNWsiLCJjbGllbnRJZCI6ImN1c3RvbSIsImlzcyI6Imh0dHBzOi8vcGlnNGNsb3VkLmNvbSIsImNsaWVudF9pZCI6ImN1c3RvbSIsImF1dGhvcml0aWVzIjpbXSwiYXVkIjoiY3VzdG9tIiwibGljZW5zZSI6Imh0dHBzOi8vcGlnNGNsb3VkLmNvbSIsIndlY2hhdF9vcGVuaWQiOiJveE9zRjdpak5Mb2xBSHZIQ2Q2LXpNWnBOZDVrIiwibmJmIjoxNzgwMjE5NjU0LCJ1c2VyX2lkIjoiMjAwNTEwMjg0NDQ2OTM4NzI2NSIsInNjb3BlIjpbInNlcnZlciJdLCJleHAiOjE3ODAyMjk2NTQsImlhdCI6MTc4MDIxOTY1NCwianRpIjoiZTlmZGJiNTAtYjFjZC00YThhLWJkOTctZTU0NTAxMDNhNTkyIiwidXNlcm5hbWUiOiJveE9zRjdpak5Mb2xBSHZIQ2Q2LXpNWnBOZDVrIn0.o_nvQVBPt1fYg3DIs7I1mapX124VqAgvHr4jEPoVZuFJjgPfziDvEBJRLw0yw4C1Ii3BxRlKw1CGRjmZ2FHPxk0gYBXGRD31isqezNLiBgVlv7wyI6pkfdk-_QEysu2Lh5hH5RWqndeNNKtQsjeGKOXV1amF7nekN4p9HnSHj6Y2h1iD6Zt2wVoKDlaJZ8yu7LB8uE8XMhKjY_ua2ujDXCRadrD4ihXqPOTaiqb5NERjHyCRKuSkEWUqFtLG7WbdOEH7SmXhlasRQ_ERVb3yKLsQdxSzP88BxKaqB7Xc8hBE1iROrF3iNGQCTK12QN8VuYMDq9CBNW10gGCsdR9vvQ"
|
||||
|
||||
|
||||
|
||||
@@ -7,7 +7,18 @@ export const goLogin = () => {};
|
||||
export const goBack = () => {};
|
||||
|
||||
// 检测token
|
||||
export const checkToken = () => {};
|
||||
export const checkToken = () => {
|
||||
const token = true || localStorage.getItem("token");
|
||||
|
||||
return new Promise((resolve) => {
|
||||
if (!token) {
|
||||
goLogin();
|
||||
return;
|
||||
}
|
||||
|
||||
resolve(token);
|
||||
});
|
||||
};
|
||||
|
||||
// 登录逻辑
|
||||
export const onLogin = async () => {};
|
||||
|
||||
@@ -15,11 +15,13 @@
|
||||
|
||||
<script setup>
|
||||
import { ref } from "vue";
|
||||
import { useRouter } from 'vue-router'
|
||||
import { emitter } from '@/utils/events'
|
||||
import { Command } from "@/constants/ChatModel";
|
||||
import { SEND_MESSAGE_COMMAND_TYPE } from "@/constants/constant";
|
||||
import { checkToken } from "@/hooks/useGoLogin";
|
||||
|
||||
const router = useRouter();
|
||||
const itemList = ref([
|
||||
{
|
||||
icon: "",
|
||||
@@ -53,7 +55,7 @@ const sendReply = (item) => {
|
||||
// 快速预定
|
||||
if (item.type === Command.quickBooking) {
|
||||
checkToken().then(() => {
|
||||
uni.navigateTo({ url: "/pages-quick/list" });
|
||||
router.push({ name: "quick" });
|
||||
});
|
||||
return;
|
||||
}
|
||||
@@ -61,11 +63,12 @@ const sendReply = (item) => {
|
||||
// 我的订单
|
||||
if (item.type === Command.myOrder) {
|
||||
checkToken().then(() => {
|
||||
uni.navigateTo({ url: "/pages-order/order/list" });
|
||||
router.push({ name: "orderList" });
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
// 呼叫服务
|
||||
emitter.emit(SEND_MESSAGE_COMMAND_TYPE, item);
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -1,11 +1,8 @@
|
||||
<template>
|
||||
<z-paging ref="paging" v-model="dataList" use-virtual-list :force-close-inner-list="true" cell-height-mode="dynamic"
|
||||
safe-area-inset-bottom @query="queryList">
|
||||
<template #top>
|
||||
<TopNavBar title="快速预定" :background="$theme - color - 100" />
|
||||
|
||||
<Tabs @change="handleTabChange" />
|
||||
|
||||
<div>
|
||||
<TopNavBar title="快速预定" />
|
||||
<Tabs @change="handleTabChange" />
|
||||
<div>
|
||||
<!-- 选择入住、离店日期 0:是酒店 -->
|
||||
<div v-if="didSelectedTabItem && didSelectedTabItem.orderType == 0" class="bg-white flex items-center p-[12px]">
|
||||
<div class="in flex items-center">
|
||||
@@ -16,7 +13,8 @@
|
||||
</div>
|
||||
|
||||
<!-- 几晚 -->
|
||||
<span class="nights bg-E5E8EE text-[11px] font-medium text-ink-600 rounded-[5px] ml-[8px] mr-[8px]">
|
||||
<span
|
||||
class="py-[3px] px-[6px] bg-[#E5E8EE] text-[11px] font-medium text-ink-600 rounded-[5px] ml-[8px] mr-[8px]">
|
||||
{{ selectedDate.totalDays }}晚
|
||||
</span>
|
||||
|
||||
@@ -28,16 +26,16 @@
|
||||
</div>
|
||||
|
||||
<!-- 日期图标 -->
|
||||
<uni-icons class="ml-auto" type="calendar" size="24" color="#0CCD58" @click="calendarVisible = true" />
|
||||
<van-icon class="ml-auto" type="calendar" size="24" color="#0CCD58" @click="calendarVisible = true" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<Card v-for="(item, index) in dataList" :key="index" :item="item" :selectedDate="selectedDate" />
|
||||
</z-paging>
|
||||
<Card v-for="(item, index) in dataList" :key="index" :item="item" :selectedDate="selectedDate" />
|
||||
</div>
|
||||
|
||||
<!-- 日历组件 -->
|
||||
<Calender :visible="calendarVisible" mode="range" :default-value="selectedDate" @close="handleCalendarClose"
|
||||
@range-select="handleDateSelect" />
|
||||
<!-- 日历组件 -->
|
||||
<Calender :visible="calendarVisible" mode="range" :default-value="selectedDate" @close="handleCalendarClose"
|
||||
@range-select="handleDateSelect" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
@@ -115,9 +113,3 @@ const handleDateSelect = (data) => {
|
||||
paging.value.reload();
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.nights {
|
||||
padding: 3px 6px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -39,7 +39,7 @@ export const routes = [
|
||||
},
|
||||
{
|
||||
path: "/order",
|
||||
name: "order_list",
|
||||
name: "orderList",
|
||||
component: () => import("@/pages/order/order/list.vue"),
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user