From 6942c113c1601e6cf48899ab6dec50866662dcec Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期五, 17 四月 2026 14:17:44 +0800
Subject: [PATCH] 入库功能更改
---
src/api/salesManagement/salesLedger.js | 18 ++---
src/views/salesManagement/salesLedger/index.vue | 105 +++++++++++++++++++++++++++++++++--
2 files changed, 107 insertions(+), 16 deletions(-)
diff --git a/src/api/salesManagement/salesLedger.js b/src/api/salesManagement/salesLedger.js
index 383c36a..9f8e153 100644
--- a/src/api/salesManagement/salesLedger.js
+++ b/src/api/salesManagement/salesLedger.js
@@ -111,11 +111,11 @@
}
// 閿�鍞彴璐﹂〉闈㈠彂璐э紝鏌ヨ搴撳瓨鏄惁鍏呰冻
export function getProductInventory(query) {
- return request({
- url: "/sales/ledger/getProductInventory",
- method: "get",
- params: query,
- });
+ return request({
+ url: "/sales/ledger/getProductInventory",
+ method: "get",
+ params: query,
+ });
}
// 鍏朵粬閲戦缁存姢锛堥攢鍞彴璐�-宸ュ簭/娴佺▼閲戦锛�
@@ -188,8 +188,7 @@
// 鎵撳嵃閿�鍞彂璐у崟
export function getSalesInvoices(query) {
- const data =
- query && typeof query === "object" ? query : { salesLedgerId: query };
+ const data = query && typeof query === "object" ? query : { salesLedgerId: query };
return request({
url: "/sales/ledger/salesInvoices",
method: "post",
@@ -206,11 +205,10 @@
}
// 閿�鍞彴璐�-鍏ュ簱
-export function salesStock(id) {
- const data = id && typeof id === "object" ? id : { id };
+export function salesStock(data) {
return request({
url: "/sales/ledger/salesStock",
method: "post",
data,
});
-}
\ No newline at end of file
+}
diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index ace1ee9..282b41d 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -63,8 +63,10 @@
style="width: 140px">
<el-option label="鏈叆搴�"
:value="0" />
- <el-option label="宸插叆搴�"
+ <el-option label="閮ㄥ垎鍏ュ簱"
:value="1" />
+ <el-option label="宸插叆搴�"
+ :value="2" />
</el-select>
</el-form-item>
<el-form-item>
@@ -214,6 +216,18 @@
type="danger">涓嶈冻</el-tag>
</template>
</el-table-column>
+ <el-table-column label="鍏ュ簱鐘舵��"
+ width="100px"
+ align="center">
+ <template #default="scope">
+ <el-tag v-if="scope.row.productStockStatus == 1"
+ type="success">宸插叆搴�</el-tag>
+ <el-tag v-else-if="scope.row.productStockStatus == 0"
+ type="info">鏈嚭搴�</el-tag>
+ <el-tag v-else
+ type="danger">涓嶈冻</el-tag>
+ </template>
+ </el-table-column>
<!-- <el-table-column label="鍙戣揣鐘舵��" width="140" align="center">
<template #default="scope">
<el-tag :type="getShippingStatusType(scope.row)" size="small">
@@ -328,6 +342,8 @@
<el-tag v-if="Number(scope.row.stockStatus) === 0"
type="info">鏈叆搴�</el-tag>
<el-tag v-else-if="Number(scope.row.stockStatus) === 1"
+ type="success">閮ㄥ垎鍏ュ簱</el-tag>
+ <el-tag v-else-if="Number(scope.row.stockStatus) === 2"
type="success">宸插叆搴�</el-tag>
<el-tag v-else
type="info">-</el-tag>
@@ -1613,6 +1629,46 @@
</div>
</template>
</el-dialog>
+ <!-- 鍏ュ簱浜у搧閫夋嫨寮圭獥 -->
+ <el-dialog v-model="stockDialogVisible"
+ title="閫夋嫨鍏ュ簱浜у搧"
+ width="60%"
+ :close-on-click-modal="false">
+ <el-table :data="stockProductList"
+ border
+ stripe
+ v-loading="stockLoading"
+ height="400px"
+ @selection-change="val => selectedStockProductIds = val.map(item => item.id)">
+ <el-table-column type="selection"
+ width="55"
+ align="center" />
+ <el-table-column align="center"
+ label="搴忓彿"
+ type="index"
+ width="60" />
+ <el-table-column prop="productCategory"
+ label="浜у搧澶х被"
+ show-overflow-tooltip />
+ <el-table-column prop="specificationModel"
+ label="瑙勬牸鍨嬪彿"
+ show-overflow-tooltip />
+ <el-table-column prop="quantity"
+ label="鏁伴噺"
+ width="100" />
+ <el-table-column prop="floorCode"
+ label="妤煎眰缂栧彿"
+ show-overflow-tooltip />
+ </el-table>
+ <template #footer>
+ <el-button @click="stockDialogVisible = false">鍙栨秷</el-button>
+ <el-button type="primary"
+ @click="submitStock"
+ :disabled="selectedStockProductIds.length === 0">
+ 纭鍏ュ簱
+ </el-button>
+ </template>
+ </el-dialog>
</div>
</template>
@@ -1688,6 +1744,13 @@
const processFlowSelectBoundRouteId = ref(null);
const processFlowSelectBoundRouteName = ref("");
+ // 鍏ュ簱寮圭獥鐩稿叧
+ const stockDialogVisible = ref(false);
+ const stockProductList = ref([]);
+ const selectedStockProductIds = ref([]);
+ const stockLoading = ref(false);
+ const currentStockLedgerId = ref(null);
+
// 鐢ㄦ埛淇℃伅琛ㄥ崟寮规鏁版嵁
const operationType = ref("");
const dialogFormVisible = ref(false);
@@ -1700,7 +1763,7 @@
entryDateStart: undefined,
entryDateEnd: undefined,
deliveryStatus: undefined, // 鍙戣揣鐘舵�侊細1鏈彂璐� 2瀹℃壒涓� 3瀹℃壒澶辫触 4宸插彂璐�
- stockStatus: undefined, // 鍏ュ簱鐘舵�侊細0鏈叆搴� 1宸插叆搴�
+ stockStatus: undefined, // 鍏ュ簱鐘舵�侊細0鏈叆搴� 1閮ㄥ垎鍏ュ簱 2宸插叆搴�
},
form: {
salesContractNo: "",
@@ -2614,12 +2677,37 @@
ElMessage.warning("鎵�閫夋暟鎹己灏慽d锛屾棤娉曞叆搴�");
return;
}
- if (Number(row.stockStatus) === 1) {
- ElMessage.info("璇ュ彴璐﹀凡鍏ュ簱锛屾棤闇�閲嶅鎿嶄綔");
+ if (Number(row.stockStatus) === 2) {
+ ElMessage.info("璇ュ彴璐﹀凡鍏ㄩ儴鍏ュ簱锛屾棤闇�閲嶅鎿嶄綔");
return;
}
+
+ currentStockLedgerId.value = id;
+ selectedStockProductIds.value = [];
+ stockProductList.value = [];
+ stockDialogVisible.value = true;
+ stockLoading.value = true;
+
try {
- await ElMessageBox.confirm("纭瀵规墍閫夊彴璐︽墽琛屽叆搴擄紵", "鎻愮ず", {
+ const res = await productList({ salesLedgerId: id, type: 1 });
+ stockProductList.value = [];
+ stockProductList.value =
+ res.data.filter(item => item.productStockStatus == 0) || [];
+ } catch (e) {
+ proxy?.$modal?.msgError?.("鑾峰彇浜у搧鍒楄〃澶辫触");
+ } finally {
+ stockLoading.value = false;
+ }
+ };
+
+ const submitStock = async () => {
+ if (selectedStockProductIds.value.length === 0) {
+ ElMessage.warning("璇烽�夋嫨鑷冲皯涓�涓骇鍝佽繘琛屽叆搴�");
+ return;
+ }
+
+ try {
+ await ElMessageBox.confirm("纭瀵规墍閫変骇鍝佹墽琛屽叆搴擄紵", "鎻愮ず", {
confirmButtonText: "纭畾",
cancelButtonText: "鍙栨秷",
type: "warning",
@@ -2627,10 +2715,15 @@
} catch {
return;
}
+
proxy?.$modal?.loading?.("姝e湪鍏ュ簱锛岃绋嶅��...");
try {
- await salesStock({ id });
+ await salesStock({
+ salesLedgerId: currentStockLedgerId.value,
+ salesLedgerProducts: selectedStockProductIds.value,
+ });
proxy?.$modal?.msgSuccess?.("鍏ュ簱鎴愬姛");
+ stockDialogVisible.value = false;
await getList();
} catch (e) {
proxy?.$modal?.msgError?.("鍏ュ簱澶辫触锛岃绋嶅悗閲嶈瘯");
--
Gitblit v1.9.3