优化登录页面

This commit is contained in:
gyq
2025-12-03 10:42:34 +08:00
parent 9b7290f019
commit ed1932d3f4
3 changed files with 38 additions and 14 deletions

View File

@@ -40,3 +40,15 @@ export function logout(data) {
data,
});
}
/**
* 店铺详情
* @param {*}
* @returns
*/
export function shopInfoDetail() {
return request({
method: "get",
url: `${BASE_URL}/shopInfo/detail`
});
}

View File

@@ -1,6 +1,6 @@
// 导入 Pinia 的仓库创建函数
import { defineStore } from 'pinia';
import { login as apiLogin, logout as apiLogout } from '@/api/account.js'
import { login as apiLogin, logout as apiLogout, shopInfoDetail } from '@/api/account.js'
import { ElMessage, ElMessageBox } from 'element-plus';
export const useUserStore = defineStore('user', {
@@ -44,13 +44,13 @@ export const useUserStore = defineStore('user', {
try {
await apiLogout()
// 登出成功后尝试关闭 websocket若已存在
// try {
// const mod = await import('@/stores/socket')
// const socketStore = mod.useSocketStore()
// socketStore.close()
// } catch (e) {
// console.warn('close socket failed', e)
// }
try {
const mod = await import('@/stores/socket')
const socketStore = mod.useSocketStore()
socketStore.close()
} catch (e) {
console.warn('close socket failed', e)
}
this.token = ''
this.shopInfo = ''
@@ -67,6 +67,15 @@ export const useUserStore = defineStore('user', {
})
.catch(() => { })
},
// 更新店铺信息
async updateShopInfo() {
try {
const res = await shopInfoDetail()
this.shopInfo = res
} catch (error) {
console.log(error);
}
}
},
// 核心:开启持久化,确保 Token 保存在 localStorage
persist: {

View File

@@ -48,8 +48,8 @@
</div> -->
</div>
<div class="table_list_wrap" v-if="checkType == 1">
<div class="item" :class="{ empty: tableList.length <= 0 }">
<div class="list">
<div class="item">
<div class="list" :class="{ empty: tableList.length <= 0 }">
<div class="tab_item" :class="{ active: index === selectItemIndex }"
v-for="(item, index) in tableList" :key="item.orderId" @click="changeTableItem(index)">
<div class="tab_header_wrap">
@@ -76,7 +76,7 @@
<div class="table_info_wrap">
<el-button type="primary">{{ tableList[selectItemIndex].tableName || '-' }} | {{
tableList[selectItemIndex].areaName || '-'
}}</el-button>
}}</el-button>
<el-text>待出菜{{ tableList[selectItemIndex].pendingDishCount }}</el-text>
<el-text>员工名称{{ tableList[selectItemIndex].staffName || notStaff }}</el-text>
<el-text>下单时间{{ tableList[selectItemIndex].orderTime || '-' }}</el-text>
@@ -121,7 +121,7 @@
<div class="table" v-for="(item, index) in goodsTableData" :key="index">
<div class="goods_table_title">
<span>{{ item.productName }} 待出菜{{ item.total
}}</span>
}}</span>
</div>
<el-table :data="item.foodItems" border stripe>
<el-table-column label="下单台桌" prop="areaName">
@@ -174,6 +174,8 @@ import { useScanListener } from '@/composables/useScanListener'
import { useSocketStore } from "@/stores/socket.js";
import { onUnmounted } from 'vue';
const userStore = useUserStore()
const socketStore = useSocketStore()
const unsub = socketStore.subscribe(msg => {
@@ -181,10 +183,11 @@ const unsub = socketStore.subscribe(msg => {
if (msg.type == 'bc') {
checkTypeHandle({ value: checkType.value })
}
if (msg.type == 'shopInfoUpdate') {
userStore.updateShopInfo()
}
})
const userStore = useUserStore()
const notStaff = ref('管理员')
// 扫码获取扫码内容