This commit is contained in:
2026-09-01 10:00:05 +08:00
parent d0770517dc
commit c0d6a4eb47
2 changed files with 34 additions and 2 deletions
@@ -33,6 +33,7 @@ const pdaError = ref<ApiErrorDetails | null>(null)
const pdaPushKey = ref('')
const pdaReason = ref('')
const pickForm = ref({ itemId: 0, positionId: 0, packages: 1, productQuantity: 1, idempotencyKey: '' })
const pdaCompleted = computed(() => pdaTask.value?.status === 'COMPLETED')
const dispatchStatusLabels: Record<string, string> = {
PENDING_DEPARTURE: '待发车',
@@ -190,8 +191,9 @@ onMounted(load)
<el-table-column label="托盘" prop="palletNo" min-width="140" /><el-table-column label="转仓提示" min-width="150"><template #default="{ row }"><el-tag v-if="row.warehouseRouteLabel" type="warning" effect="plain">{{ row.warehouseRouteLabel }}</el-tag><span v-else>{{ text(row.fbaWarehouseCode || row.destinationWarehouseCode) }}</span></template></el-table-column><el-table-column label="计划箱数" prop="scheduledPackages" width="100" /><el-table-column label="已拣箱数" prop="pickedPackages" width="100" />
<el-table-column label="库位(可用)" min-width="220"><template #default="{ row }"><el-button v-for="position in row.positions || []" :key="position.id" link type="primary" @click.stop="selectPdaRow(row); pickForm.positionId = Number(position.id)">{{ position.id }}({{ position.availablePackages }})</el-button></template></el-table-column>
</el-table>
<div class="pick-form"><span class="pick-label">拣货明细:{{ pickForm.itemId || '未选择' }}</span><el-input-number v-model="pickForm.positionId" :min="1" controls-position="right" placeholder="库位ID" /><el-input-number v-model="pickForm.packages" :min="1" controls-position="right" placeholder="箱数" @change="(value) => { pickForm.productQuantity = Number(value || 1) }" /><el-input v-model="pickForm.idempotencyKey" placeholder="拣货幂等键" /><el-button type="success" :loading="pdaMutating" @click="submitPick">拣货并扣减库存</el-button></div>
<div class="pda-complete"><el-input v-model="pdaReason" placeholder="完成原因(可选)" /><el-button type="warning" :loading="pdaMutating" @click="completePda">完成拣货</el-button></div>
<div v-if="!pdaCompleted" class="pick-form"><span class="pick-label">拣货明细:{{ pickForm.itemId || '未选择' }}</span><el-input-number v-model="pickForm.positionId" :min="1" controls-position="right" placeholder="库位ID" /><el-input-number v-model="pickForm.packages" :min="1" controls-position="right" placeholder="箱数" @change="(value) => { pickForm.productQuantity = Number(value || 1) }" /><el-input v-model="pickForm.idempotencyKey" placeholder="拣货幂等键" /><el-button type="success" :loading="pdaMutating" @click="submitPick">拣货并扣减库存</el-button></div>
<div v-if="!pdaCompleted" class="pda-complete"><el-input v-model="pdaReason" placeholder="完成原因(可选)" /><el-button type="warning" :loading="pdaMutating" @click="completePda">完成拣货</el-button></div>
<el-alert v-else title="拣货任务已完成,无需再次提交" type="success" :closable="false" class="pda-complete" />
</div>
<el-empty v-else description="尚未加载PDA任务,请点击启动拣货" />
</section>
+30
View File
@@ -8,6 +8,9 @@ import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
export default defineConfig(({ mode }) => {
const env = loadEnv(mode, process.cwd(), '')
const proxyTarget = env.API_PROXY_TARGET || 'http://localhost:8080'
const authProxyTarget = env.AUTH_API_PROXY_TARGET || proxyTarget
const iamProxyTarget = env.IAM_API_PROXY_TARGET || proxyTarget
const warehouseProxyTarget = env.WAREHOUSE_API_PROXY_TARGET || proxyTarget
const overseasProxyTarget = env.OVERSEAS_API_PROXY_TARGET || 'http://localhost:9300'
return {
@@ -30,6 +33,33 @@ export default defineConfig(({ mode }) => {
server: {
strictPort: true,
proxy: {
'/api/auth': {
target: authProxyTarget,
changeOrigin: true,
configure(proxy) {
proxy.on('proxyReq', (proxyRequest) => {
proxyRequest.removeHeader('origin')
})
},
},
'/api/platform/v1/iam': {
target: iamProxyTarget,
changeOrigin: true,
configure(proxy) {
proxy.on('proxyReq', (proxyRequest) => {
proxyRequest.removeHeader('origin')
})
},
},
'/api/platform/v1/warehouse-admin': {
target: warehouseProxyTarget,
changeOrigin: true,
configure(proxy) {
proxy.on('proxyReq', (proxyRequest) => {
proxyRequest.removeHeader('origin')
})
},
},
'/api': {
target: proxyTarget,
changeOrigin: true,