From 53e9b23a40186efd149fd5c5350b5eced1f69920 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 25 八月 2026 17:54:26 +0800
Subject: [PATCH] feat(auth): 更新认证页面为农业数字化平台主题
---
src/views/wls/productsales/modules/form.vue | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 51 insertions(+), 0 deletions(-)
diff --git a/src/views/wls/productsales/modules/form.vue b/src/views/wls/productsales/modules/form.vue
index f6ba967..dcb1abc 100644
--- a/src/views/wls/productsales/modules/form.vue
+++ b/src/views/wls/productsales/modules/form.vue
@@ -16,6 +16,7 @@
createProductSales,
finishProductSales,
getProductSales,
+ scanProductSales,
shippingProductSales,
stockProductSales,
submitProductSales,
@@ -29,6 +30,10 @@
const emit = defineEmits(['success']);
const formType = ref<FormType>('create');
const formData = ref<MesWmProductSalesApi.ProductSales>();
+const scanContent = ref('');
+const scanQuantity = ref<number>();
+const scanLoading = ref(false);
+const scanRefreshKey = ref(0);
const originalSnapshot = ref(''); // 琛ㄥ崟鍘熷鏁版嵁蹇収锛岀敤浜庢彁浜ゆ椂璺宠繃鏈彉鏇寸殑淇濆瓨璇锋眰
const isEditable = computed(() =>
// 鏄惁涓虹紪杈戞ā寮忥紙鍙繚瀛橈級
@@ -96,6 +101,31 @@
emit('success');
} finally {
modalApi.unlock();
+ }
+}
+
+/** 鎵爜鎷h揣锛氭壂鐮佹灙閫氬父浠ュ洖杞︾粨鏉熻緭鍏� */
+async function handleScan() {
+ if (!formData.value?.id || !scanContent.value.trim() || scanLoading.value) {
+ return;
+ }
+ scanLoading.value = true;
+ try {
+ const result = await scanProductSales({
+ quantity: scanQuantity.value,
+ salesId: formData.value.id,
+ scanContent: scanContent.value.trim(),
+ });
+ message[result.alreadyScanned ? 'warning' : 'success'](
+ result.alreadyScanned
+ ? `璇ョ爜宸叉壂鎻忥紝鏄庣粏缂栧彿锛�${result.detailId ?? '-'}`
+ : `${result.message || '鎵爜鎴愬姛'}${result.scanType ? `锛�${result.scanType === 'PALLET' ? '鎵樼洏鐮�' : '琚嬬爜'}锛塦 : ''}`,
+ );
+ scanContent.value = '';
+ scanQuantity.value = undefined;
+ scanRefreshKey.value += 1;
+ } finally {
+ scanLoading.value = false;
}
}
@@ -231,9 +261,30 @@
<template v-if="formData?.id">
<Divider>鐗╂枡淇℃伅</Divider>
<div class="mx-4">
+ <div v-if="isStock" class="mb-3 flex items-center gap-2 px-4">
+ <a-input
+ v-model:value="scanContent"
+ :disabled="scanLoading"
+ autofocus
+ class="flex-1"
+ placeholder="璇锋壂鎻忚鐮佹垨鎵樼洏鐮侊紝鍥炶溅鎻愪氦"
+ @press-enter="handleScan"
+ />
+ <a-input-number
+ v-model:value="scanQuantity"
+ :disabled="scanLoading"
+ :min="0"
+ placeholder="鏁伴噺锛堝彲閫夛級"
+ style="width: 140px"
+ />
+ <Button :loading="scanLoading" type="default" @click="handleScan">
+ 鎵爜
+ </Button>
+ </div>
<LineList
:form-type="formType"
:notice-id="formData.noticeId"
+ :refresh-key="scanRefreshKey"
:sales-id="formData.id"
/>
</div>
--
Gitblit v1.9.3