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"
|
VITE_CLIENT_ID = "6"
|
||||||
|
|
||||||
# Token
|
# 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 = () => {};
|
export const goBack = () => {};
|
||||||
|
|
||||||
// 检测token
|
// 检测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 () => {};
|
export const onLogin = async () => {};
|
||||||
|
|||||||
@@ -15,11 +15,13 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref } from "vue";
|
import { ref } from "vue";
|
||||||
|
import { useRouter } from 'vue-router'
|
||||||
import { emitter } from '@/utils/events'
|
import { emitter } from '@/utils/events'
|
||||||
import { Command } from "@/constants/ChatModel";
|
import { Command } from "@/constants/ChatModel";
|
||||||
import { SEND_MESSAGE_COMMAND_TYPE } from "@/constants/constant";
|
import { SEND_MESSAGE_COMMAND_TYPE } from "@/constants/constant";
|
||||||
import { checkToken } from "@/hooks/useGoLogin";
|
import { checkToken } from "@/hooks/useGoLogin";
|
||||||
|
|
||||||
|
const router = useRouter();
|
||||||
const itemList = ref([
|
const itemList = ref([
|
||||||
{
|
{
|
||||||
icon: "",
|
icon: "",
|
||||||
@@ -53,7 +55,7 @@ const sendReply = (item) => {
|
|||||||
// 快速预定
|
// 快速预定
|
||||||
if (item.type === Command.quickBooking) {
|
if (item.type === Command.quickBooking) {
|
||||||
checkToken().then(() => {
|
checkToken().then(() => {
|
||||||
uni.navigateTo({ url: "/pages-quick/list" });
|
router.push({ name: "quick" });
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -61,11 +63,12 @@ const sendReply = (item) => {
|
|||||||
// 我的订单
|
// 我的订单
|
||||||
if (item.type === Command.myOrder) {
|
if (item.type === Command.myOrder) {
|
||||||
checkToken().then(() => {
|
checkToken().then(() => {
|
||||||
uni.navigateTo({ url: "/pages-order/order/list" });
|
router.push({ name: "orderList" });
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 呼叫服务
|
||||||
emitter.emit(SEND_MESSAGE_COMMAND_TYPE, item);
|
emitter.emit(SEND_MESSAGE_COMMAND_TYPE, item);
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,11 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<z-paging ref="paging" v-model="dataList" use-virtual-list :force-close-inner-list="true" cell-height-mode="dynamic"
|
<div>
|
||||||
safe-area-inset-bottom @query="queryList">
|
<TopNavBar title="快速预定" />
|
||||||
<template #top>
|
<Tabs @change="handleTabChange" />
|
||||||
<TopNavBar title="快速预定" :background="$theme - color - 100" />
|
<div>
|
||||||
|
|
||||||
<Tabs @change="handleTabChange" />
|
|
||||||
|
|
||||||
<!-- 选择入住、离店日期 0:是酒店 -->
|
<!-- 选择入住、离店日期 0:是酒店 -->
|
||||||
<div v-if="didSelectedTabItem && didSelectedTabItem.orderType == 0" class="bg-white flex items-center p-[12px]">
|
<div v-if="didSelectedTabItem && didSelectedTabItem.orderType == 0" class="bg-white flex items-center p-[12px]">
|
||||||
<div class="in flex items-center">
|
<div class="in flex items-center">
|
||||||
@@ -16,7 +13,8 @@
|
|||||||
</div>
|
</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 }}晚
|
{{ selectedDate.totalDays }}晚
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
@@ -28,16 +26,16 @@
|
|||||||
</div>
|
</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>
|
</div>
|
||||||
</template>
|
|
||||||
|
|
||||||
<Card v-for="(item, index) in dataList" :key="index" :item="item" :selectedDate="selectedDate" />
|
<Card v-for="(item, index) in dataList" :key="index" :item="item" :selectedDate="selectedDate" />
|
||||||
</z-paging>
|
</div>
|
||||||
|
|
||||||
<!-- 日历组件 -->
|
<!-- 日历组件 -->
|
||||||
<Calender :visible="calendarVisible" mode="range" :default-value="selectedDate" @close="handleCalendarClose"
|
<Calender :visible="calendarVisible" mode="range" :default-value="selectedDate" @close="handleCalendarClose"
|
||||||
@range-select="handleDateSelect" />
|
@range-select="handleDateSelect" />
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
@@ -115,9 +113,3 @@ const handleDateSelect = (data) => {
|
|||||||
paging.value.reload();
|
paging.value.reload();
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
.nights {
|
|
||||||
padding: 3px 6px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ export const routes = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "/order",
|
path: "/order",
|
||||||
name: "order_list",
|
name: "orderList",
|
||||||
component: () => import("@/pages/order/order/list.vue"),
|
component: () => import("@/pages/order/order/list.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user