This commit is contained in:
gyq
2025-12-02 10:27:55 +08:00
parent d3340eb953
commit f514b75128
4 changed files with 30 additions and 24 deletions

View File

@@ -1,15 +1,20 @@
<template>
<div class="container">
<router-view />
<el-config-provider :size="globalSize">
<router-view />
</el-config-provider>
</div>
</template>
<script setup>
import { createPinia } from 'pinia'
import { useSocketStore } from '@/stores/socket';
import { ElConfigProvider } from 'element-plus'
const pinia = createPinia()
const globalSize = 'large'
onMounted(() => {
// 重启或刷新防止ws丢失
const socketStore = useSocketStore(pinia)

View File

@@ -8,7 +8,9 @@ export const useUserStore = defineStore('user', {
token: '',
shopInfo: '',
shopStaff: '',
account: ''
loginType: 0,
account: '',
staffAccount: ''
}),
actions: {
async login(params) {
@@ -21,7 +23,9 @@ export const useUserStore = defineStore('user', {
if (res.loginType == 1) this.shopStaff = res.shopStaff
// async 函数直接返回值即可 resolve
this.loginType = params.loginType
this.account = params.username
this.staffAccount = params.staffUserName
return res
} else {
ElMessage.error('先下单模式下不可登录,请联系管理员')
@@ -71,7 +75,7 @@ export const useUserStore = defineStore('user', {
{
key: 'kitchen-user',
storage: localStorage,
paths: ['token', 'shopInfo', 'shopStaff', 'account'] // 持久化指定状态
paths: ['token', 'shopInfo', 'shopStaff', 'loginType', 'account', 'staffAccount'] // 持久化指定状态
}
]
}

View File

@@ -49,15 +49,17 @@
</div>
<div class="table_list_wrap" v-if="checkType == 1">
<div class="item list" :class="{ empty: tableList.length <= 0 }">
<div class="tab_item" v-for="item in tableList" :key="item.orderId" @click="changeTableItem(item)">
<div class="tab_item" :class="{ active: selectItem.orderId === item.orderId }" v-for="item in tableList"
:key="item.orderId" @click="changeTableItem(item)">
<div class="tab_header_wrap">
{{ item.tableName }} | {{ item.areaName }}
</div>
<div class="content">
<div class="btn_wrap">
<div class="btn">
<el-button type="primary" style="width: 100%;">待出菜{{ item.pendingDishCount
}}</el-button>
<el-button :type="selectItem.orderId === item.orderId ? 'danger' : 'primary'"
style="width: 100%;">待出菜{{ item.pendingDishCount
}}</el-button>
</div>
</div>
<!-- <div class="people_wrap">
@@ -84,7 +86,6 @@
</template>
</el-table-column>
<el-table-column label="用时" prop="time_taken"></el-table-column>
<el-table-column label="下单时间" prop="orderTime"></el-table-column>
<el-table-column label="状态" prop="subStatus" width="150">
<template v-slot="scope">
<el-tag disable-transitions :type="statusFilter(scope.row.subStatus).type" size="large">
@@ -264,10 +265,12 @@ async function getKitchenTableAjax() {
})
tableList.value = res
if (res.length > 0) {
if (!selectItem.value.id) {
if (!selectItem.value.orderId) {
selectItem.value = res[0]
}
getKitchenTableFoodsAjax()
console.log(selectItem.value);
} else {
selectItem.value = {}
tableData.list = []
@@ -413,9 +416,6 @@ function statusFilter(status) {
// 刷新所有数据的状态
function updateOrderStatus() {
// console.log('刷新所有数据的状态.tableData.list', tableData.list);
// console.log('刷新所有数据的状态.goodsTableData.value', goodsTableData.value);
if (checkType.value == 1) {
// 刷新按台桌查看的数据
tableData.list.forEach(item => {
@@ -457,7 +457,7 @@ function timeTakenUtils(row) {
}
// 上菜用时
if (row.subStatus == 'DELIVERED') {
return formatTimeDiff(row.foodServeTime)
return formatTimeDiff(row.startOrderTime, row.foodServeTime)
}
}
@@ -465,8 +465,6 @@ function timeTakenUtils(row) {
const timer = ref(null)
function startUpdate() {
if (userStore.shopInfo.isServeTimeControl && (goodsTableData.length || tableData.list.length)) {
console.log('启动刷新');
// 只有开启的情况下调用
updateOrderStatus()
if (timer.value !== null) {
@@ -612,17 +610,16 @@ onUnmounted(() => {
.tab_item {
height: 150px;
background-color: #3F9EFF;
background-color: var(--el-color-primary);
padding: 7px;
display: flex;
flex-direction: column;
border-radius: 8px;
overflow: hidden;
transition: all 0.3s ease-in-out;
&.active {
transform: translateY(-10px) scale(1.1);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15);
background-color: var(--el-color-danger);
}
.tab_header_wrap {

View File

@@ -23,15 +23,15 @@
<el-form ref="formRef" :model="form" :rules="rules">
<el-form-item prop="username">
<el-input v-model="form.username" clearable prefix-icon="User" size="large" :maxlength="20"
placeholder="请输入用户名/手机号"></el-input>
placeholder="请输入商户号"></el-input>
</el-form-item>
<el-form-item prop="staffUserName" v-if="form.loginType == 1">
<el-input v-model="form.staffUserName" clearable prefix-icon="User" size="large"
:maxlength="20" placeholder="请输入员工用户名/手机号"></el-input>
:maxlength="20" placeholder="请输入员工号"></el-input>
</el-form-item>
<el-form-item prop="password">
<el-input v-model="form.password" clearable prefix-icon="Lock" size="large" :maxlength="20"
placeholder="请输入登录密码"></el-input>
<el-input v-model="form.password" type="password" clearable prefix-icon="Lock" size="large"
:maxlength="20" placeholder="请输入登录密码"></el-input>
</el-form-item>
<el-form-item prop="code">
<div class="ipt_wrap">
@@ -66,10 +66,10 @@ const router = useRouter()
const formRef = ref(null)
const loading = ref(false)
const form = ref({
loginType: 0, // 登录类型 0:商户登录 1:员工登录
loginType: userStore.loginType, // 登录类型 0:商户登录 1:员工登录
username: userStore.account,
password: '',
staffUserName: '',
staffUserName: userStore.staffAccount,
code: '',
uuid: ''
})