pda操作

This commit is contained in:
2026-09-22 17:28:37 +08:00
parent 4ed1faea5f
commit 68357a4766
3 changed files with 30 additions and 10 deletions
+14 -5
View File
@@ -1,6 +1,6 @@
<template>
<view v-if="user" class="page-shell portal-page home-page">
<PortalHeader ref="portalHeader" :title="user.warehouse ? `首页 · ${user.warehouse}` : '首页'" :user="user" menu :warehouses="warehouses" :selected-warehouse-id="user.warehouseId" :warehouse-loading="warehouseLoading" :warehouse-error="warehouseError" @warehouse-select="changeWarehouse" @menu-change="menuOpen = $event" />
<PortalHeader ref="portalHeader" :title="user.warehouse ? `首页 · ${user.warehouse}` : '首页'" :user="user" :menu="!isBoundOperator" :warehouses="warehouses" :selected-warehouse-id="user.warehouseId" :warehouse-loading="warehouseLoading" :warehouse-error="warehouseError" @warehouse-select="changeWarehouse" @menu-change="menuOpen = $event" />
<view class="home-menu">
<view v-for="group in groups" :key="group.key" class="home-group" :class="{ 'home-group-disabled': !group.available }">
<view class="home-group-title"><view class="home-group-mark" :class="`home-group-mark-${group.key}`"></view><text>{{ group.name }}</text></view>
@@ -21,7 +21,7 @@
import PortalHeader from '@/components/PortalHeader.vue'
import { MODULES } from '@/data/demo-data.js'
import { listPdaWarehouses } from '@/api/pda-loading.js'
import { session, requireSession, selectWarehouse } from '@/stores/session.js'
import { session, requireSession, selectWarehouse, isDomesticPdaOperator } from '@/stores/session.js'
const ICON_TYPES = {
'一件代发清点组托': 'download',
@@ -42,6 +42,7 @@
export default {
components: { PortalHeader },
data() { return { user: session.currentUser, groups: HOME_GROUPS, menuOpen: false, warehouses: [], warehouseLoading: false, warehouseError: '' } },
computed: { isBoundOperator() { return isDomesticPdaOperator(this.user) } },
onShow() { if (!requireSession()) return; this.user = session.currentUser; this.loadWarehouses() },
onBackPress() {
if (!this.menuOpen) return false
@@ -53,13 +54,21 @@
if (this.warehouseLoading) return
this.warehouseLoading = true; this.warehouseError = ''
try {
this.warehouses = await listPdaWarehouses()
if (!this.user.warehouseId) this.$nextTick(() => this.$refs.portalHeader.openMenu())
const warehouses = await listPdaWarehouses()
if (this.isBoundOperator) {
const bound = warehouses.find((warehouse) => String(warehouse.id) === String(this.user.domesticWarehouseId || ''))
if (!bound) throw new Error('账号绑定的作业仓库不存在或已停用,请联系管理员')
this.user = selectWarehouse(bound)
this.warehouses = [bound]
} else {
this.warehouses = warehouses
if (!this.user.warehouseId) this.$nextTick(() => this.$refs.portalHeader.openMenu())
}
} catch (error) {
this.warehouseError = error.message || '仓库加载失败,请稍后重试'
} finally { this.warehouseLoading = false }
},
changeWarehouse(warehouse) { this.user = selectWarehouse(warehouse) },
changeWarehouse(warehouse) { if (this.isBoundOperator) return; this.user = selectWarehouse(warehouse) },
openOperation(operation) {
if (!operation.available) return
if (!this.user.warehouseId) { this.$refs.portalHeader.openMenu(); return }