From 7a81db1741fc446d4543f12aec587d911218a3ff Mon Sep 17 00:00:00 2001
From: lishenao <3065849776@qq.com>
Date: 星期五, 04 七月 2025 16:05:55 +0800
Subject: [PATCH] 库存管理数据修改
---
src/api/inventoryManagement/stockManage.js | 7
src/views/inventoryManagement/receiptManagement/index.vue | 392 ++++++++++++++++++++----------------------------
src/views/inventoryManagement/issueManagement/index.vue | 46 +----
src/views/inventoryManagement/stockManagement/index.vue | 2
src/api/inventoryManagement/stockIn.js | 9 +
src/views/inventoryManagement/dispatchLog/index.vue | 2
6 files changed, 184 insertions(+), 274 deletions(-)
diff --git a/src/api/inventoryManagement/stockIn.js b/src/api/inventoryManagement/stockIn.js
index 90abb03..b03b60b 100644
--- a/src/api/inventoryManagement/stockIn.js
+++ b/src/api/inventoryManagement/stockIn.js
@@ -46,5 +46,14 @@
})
}
+export function selectProductRecordListByPuechaserId(query) {
+ return request({
+ url: '/stockin/productlist',
+ method: 'get',
+ params: query
+ })
+}
+
+
//
diff --git a/src/api/inventoryManagement/stockManage.js b/src/api/inventoryManagement/stockManage.js
index b7f0052..e309241 100644
--- a/src/api/inventoryManagement/stockManage.js
+++ b/src/api/inventoryManagement/stockManage.js
@@ -9,13 +9,6 @@
});
};
-export const getStockManageOutPage = (params) => {
- return request({
- url: "/stockmanagement/stockoutpage",
- method: "get",
- params,
- });
-};
// 淇敼搴撳瓨淇℃伅
export const updateStockManage = (data) => {
diff --git a/src/views/inventoryManagement/dispatchLog/index.vue b/src/views/inventoryManagement/dispatchLog/index.vue
index c83b0b0..81eff0b 100644
--- a/src/views/inventoryManagement/dispatchLog/index.vue
+++ b/src/views/inventoryManagement/dispatchLog/index.vue
@@ -231,7 +231,7 @@
// 瀵煎嚭
const handleOut = () => {
- ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
+ ElMessageBox.confirm("鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
confirmButtonText: "纭",
cancelButtonText: "鍙栨秷",
type: "warning",
diff --git a/src/views/inventoryManagement/issueManagement/index.vue b/src/views/inventoryManagement/issueManagement/index.vue
index e513a63..7ed1f68 100644
--- a/src/views/inventoryManagement/issueManagement/index.vue
+++ b/src/views/inventoryManagement/issueManagement/index.vue
@@ -75,16 +75,13 @@
getStockManagePage,
delStockManage,
stockOut,
- getStockManageOutPage
} from "@/api/inventoryManagement/stockManage.js";
const userStore = useUserStore()
const { proxy } = getCurrentInstance()
const tableData = ref([])
-const productData = ref([])
const selectedRows = ref([])
const userList = ref([])
-const customerOption = ref([])
const tableLoading = ref(false)
const page = reactive({
current: 1,
@@ -98,37 +95,17 @@
const data = reactive({
searchForm: {
supplierName: '',
+ inboundQuantity:'',
+ inboundTime:'',
+ nickName: '',
+ userId: '',
},
form: {
- supplierId: null,
- supplierName: '',
- productId: null,
- productName: '',
- userId: userStore.userId,
- nickName: '',
- productModelId: null,
- model: '',
- unit: '',
- productrecordId: null,
- taxInclusiveUnitPrice: '',
- taxInclusiveTotalPrice: '',
- taxRate: '',
- taxExclusiveTotalPrice: '',
- inboundTime: '',
- inboundBatch: '',
- stockQuantity: '',
- boundTime: '',
+ productrecordId: '',
},
rules: {
- supplierName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- productCategory: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
- specificationModel: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- unit: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
inboundTime: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
- inboundBatch: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
inboundQuantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- taxInclusiveUnitPrice: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- taxRate: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
nickname: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }]
}
})
@@ -147,7 +124,7 @@
}
const getList = () => {
tableLoading.value = true
- getStockManageOutPage({ ...searchForm.value, ...page }).then(res => {
+ getStockManagePage({ ...searchForm.value, ...page }).then(res => {
tableLoading.value = false
tableData.value = res.data.records
console.log('res', res.data.records)
@@ -155,6 +132,7 @@
tableLoading.value = false
})
}
+
const findNodeById = (nodes, productId) => {
for (let i = 0; i < nodes.length; i++) {
if (nodes[i].value === productId) {
@@ -171,7 +149,6 @@
};
// 琛ㄦ牸閫夋嫨鏁版嵁
const handleSelectionChange = (selection) => {
-
// 杩囨护鎺夊瓙鏁版嵁
selectedRows.value = selection.filter(item => item.id);
console.log('selection', selectedRows.value)
@@ -191,12 +168,12 @@
form.value = {}
// 鍒濆鍖栬〃鍗曟暟鎹�
form.value = {
+ productrecordId: '',
inboundQuantity: '', // 鍑哄簱鏁伴噺娓呯┖
inboundTime: getCurrentDate(), // 榛樿褰撳墠鏃ユ湡
nickName: '', // 榛樿褰撳墠鐢ㄦ埛
}
console.log('form',form.value)
-
// 鍔犺浇鐢ㄦ埛鍒楄〃
try {
const userLists = await userListNoPage()
@@ -212,10 +189,11 @@
if (valid && currentRowId.value) {
const outData = {
id: currentRowId.value, // 鍘熷璁板綍ID
- outQuantity: form.value.inboundQuantity, // 鍑哄簱鏁伴噺
- outTime: form.value.inboundTime, // 鍑哄簱鏃堕棿
+ Quantity: form.value.inboundQuantity, // 鍑哄簱鏁伴噺
+ Time: form.value.inboundTime, // 鍑哄簱鏃堕棿
userId: form.value.userId // 鎿嶄綔浜�
}
+ console.log(outData)
stockOut(outData).then(res => {
proxy.$modal.msgSuccess("鎻愪氦鎴愬姛")
@@ -236,7 +214,7 @@
// 瀵煎嚭
const handleOut = () => {
ElMessageBox.confirm(
- '閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�',
+ '鏄惁纭瀵煎嚭锛�',
'瀵煎嚭', {
confirmButtonText: '纭',
cancelButtonText: '鍙栨秷',
diff --git a/src/views/inventoryManagement/receiptManagement/index.vue b/src/views/inventoryManagement/receiptManagement/index.vue
index ad9a9d8..734d9e7 100644
--- a/src/views/inventoryManagement/receiptManagement/index.vue
+++ b/src/views/inventoryManagement/receiptManagement/index.vue
@@ -40,16 +40,32 @@
<pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper"
:page="page.current" :limit="page.size" @pagination="paginationChange" />
</div>
+
<el-dialog v-model="dialogFormVisible" :title="operationType === 'add' ? '鏂板鍏ュ簱' : '缂栬緫鍏ュ簱'" width="70%"
@close="closeDia">
<el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
<el-form-item label="閲囪喘璁㈠崟鍙�" prop="salesContractNo">
- <el-input v-model="form.salesContractNo" placeholder="璇疯緭鍏�" clearable />
+ <el-input
+ v-model="form.purchaseContractNumber"
+ placeholder="璇疯緭鍏ュ悎鍚屽彿"
+ clearable
+ @change="searchByContractNo"
+ :disabled="operationType === 'edit'"
+ >
+ <template #append>
+ <el-button
+ icon="Search"
+ @click="searchByContractNo"
+ :loading="loadingProducts"
+ />
+ </template>
+ </el-input>
</el-form-item>
<el-table
- :data="productData"
+ :data="productList"
border
- @selection-change="productSelected"
+ v-loading="loadingProducts"
+ @selection-change="handleSelectionChange"
>
<el-table-column align="center" type="selection" width="55" />
<el-table-column
@@ -61,6 +77,7 @@
<el-table-column label="浜у搧澶х被" prop="productCategory" />
<el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" />
<el-table-column label="鍗曚綅" prop="unit" width="70" />
+ <el-table-column label="渚涘簲鍟�" prop="supplierName" width="100" />
<el-table-column label="閲囪喘鏁伴噺" prop="quantity" width="100" />
<el-table-column label="寰呭叆搴撴暟閲�" prop="quantity0" width="100" />
<el-table-column label="鏈鍏ュ簱鏁伴噺" prop="quantityStock" width="120">
@@ -104,29 +121,25 @@
import { ref } from 'vue'
import { ElMessageBox } from "element-plus";
import useUserStore from '@/store/modules/user'
-import { userListNoPage } from "@/api/system/user.js";
import {
getStockInPage,
updateStockIn,
addSutockIn,
delStockIn,
- exportStockIn
+ selectProductRecordListByPuechaserId
} from "@/api/inventoryManagement/stockIn.js";
-import {listSupplier} from "@/api/basicData/supplierManageFile.js";
-import {modelListPage, productTreeList} from "@/api/basicData/product.js";
+
const userStore = useUserStore()
const { proxy } = getCurrentInstance()
+
const tableData = ref([])
const selectedRows = ref([])
const userList = ref([])
-const supplierLists = ref([])
-const productList = ref([]);
-const productModelList = ref([]);
-const purchaseRecords = ref([]);
-const loadingProducts = ref(false);
+
const loading = ref(false);
const tableLoading = ref(false)
+
const page = reactive({
current: 1,
size: 100,
@@ -134,52 +147,32 @@
const total = ref(0)
// 鐢ㄦ埛淇℃伅琛ㄥ崟寮规鏁版嵁
-const operationType = ref('')
-const dialogFormVisible = ref(false)
+const operationType = ref('')// 鎿嶄綔绫诲瀷: 'add' 鎴� 'edit'
+const dialogFormVisible = ref(false)// 寮规鏄剧ず鐘舵��
+const productList = ref([]);// 浜у搧鍒楄〃鏁版嵁
+const loadingProducts = ref(false);// 浜у搧鍔犺浇鐘舵��
+const productSelectedRows = ref([]) // 浜у搧琛ㄦ牸閫変腑琛�
const data = reactive({
searchForm: {
supplierName: '',
},
form: {
- supplierId: null,
- supplierName: '',
- productId: null,
- productName: '',
- userId: userStore.userId,
- nickName: '',
- model: '',
- productModelId: null,
- unit: '',
- productrecordId: null,
- taxInclusiveUnitPrice: '',
- taxInclusiveTotalPrice: '',
- taxRate: '',
- taxExclusiveTotalPrice: '',
- inboundTime: '',
- inboundBatch: '',
- inboundQuantity: ''
+ id: null,
+ purchaseContractNumber: '', // 閲囪喘璁㈠崟鍙�
+ supplierId: null, // 渚涘簲鍟咺D
+ supplierName: '', // 渚涘簲鍟嗗悕绉�
+ inboundTime: '', // 鍏ュ簱鏃堕棿
+ inboundBatch: '', // 鍏ュ簱鎵规
+ recorderId: userStore.userId, // 褰曞叆浜篒D
+ recorderName: userStore.name, // 褰曞叆浜哄鍚�
+ entryDate: getCurrentDate(), // 褰曞叆鏃ユ湡
+ remark: '', // 澶囨敞
},
rules: {
- productId: [
- { required: true, message: "璇烽�夋嫨浜у搧澶х被", trigger: "change" }
- ],
- productModelId: [
- { required: true, message: "璇烽�夋嫨瑙勬牸鍨嬪彿", trigger: "change" }
- ],
- supplierId: [
- { required: true, message: "璇烽�夋嫨渚涘簲鍟�", trigger: "change" }
- ],
- inboundQuantity: [
- { required: true, message: "璇疯緭鍏ュ叆搴撴暟閲�", trigger: "blur" }
- ],
- userId: [
- { required: true, message: "璇烽�夋嫨鍏ュ簱浜�", trigger: "change" }
- ],
- unit: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- inboundTime: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
- inboundBatch: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- taxInclusiveUnitPrice: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- taxRate: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ purchaseContractNumber: [{ required: true, message: "璇疯緭鍏ラ噰璐悎鍚屽彿", trigger: "blur" }],
+ supplierId: [{ required: true, message: "璇烽�夋嫨渚涘簲鍟�", trigger: "change" }],
+ inboundTime: [{ required: true, message: "璇烽�夋嫨鍏ュ簱鏃堕棿", trigger: "change" }],
+ inboundBatch: [{ required: true, message: "璇疯緭鍏ュ叆搴撴壒娆�", trigger: "blur" }]
}
})
const { searchForm, form, rules } = toRefs(data)
@@ -190,13 +183,11 @@
page.current = 1
getList()
}
-
const paginationChange = (obj) => {
page.current = obj.page;
page.size = obj.limit;
getList()
}
-
const getList = () => {
tableLoading.value = true
getStockInPage({ ...searchForm.value, ...page }).then(res => {
@@ -209,211 +200,139 @@
})
}
-// 姝g‘鐨勪骇鍝佸垪琛ㄥ姞杞芥柟娉�
-const loadProductList = async () => {
- loadingProducts.value = true;
+
+// 璋冪敤selectProductRecordListByPuechaserId杩欎釜鏂规硶鏍规嵁鍚堝悓鏌ヨ鍒癷d锛屽啀璋冪敤getProductRecordByhetong杩欎釜鏂规硶鏍规嵁id鏌ヨ鍒颁骇鍝佽鍗曡褰�
+// 鏂板鏍规嵁鍚堝悓鍙锋煡璇骇鍝佽褰曠殑鏂规硶
+const searchByContractNo = async () =>
+{
+ if (!form.value.purchaseContractNumber) {
+ proxy.$modal.msgWarning('璇疯緭鍏ュ悎鍚屽彿')
+ return
+ }
try {
- const res = await productTreeList();
-
- // 鎵佸钩鍖栧鐞嗕骇鍝佹爲
- const flattenProducts = (nodes, parentId = null) => {
- let result = [];
- nodes.forEach(node => {
- // 鍙坊鍔犳湁id鍜宭abel鐨勮妭鐐�
- if (node.id && node.label) {
- result.push({
- id: node.id,
- productName: node.label,
- parentId: parentId
- });
- }
- // 閫掑綊澶勭悊瀛愯妭鐐�
- if (node.children) {
- result = result.concat(flattenProducts(node.children, node.id));
- }
- });
- return result;
- };
-
- productList.value = flattenProducts(res.data);
- console.log('鍔犺浇鐨勪骇鍝佸垪琛�:', productList.value);
+ loadingProducts.value = true
+ // 鏍规嵁鍚堝悓鏌ヨ浜у搧璁板綍
+ const productRes = await selectProductRecordListByPuechaserId({
+ purchaseContractNumber: form.value.purchaseContractNumber
+ });
+ console.log('productRes:', productRes)
+ if (!productRes.data || productRes.data.length === 0) {
+ proxy.$modal.msgWarning('璇ュ悎鍚屼笅娌℃湁浜у搧璁板綍')
+ productList.value = [];
+ return
+ }
+ // 澶勭悊浜у搧鏁版嵁锛屾坊鍔犳湰娆″叆搴撴暟閲忓瓧娈�
+ productList.value = productRes.data.map(item => ({
+ ...item,
+ quantityStock: 0 // 鍒濆鍖栨湰娆″叆搴撴暟閲忎负0
+ }))
} catch (error) {
- console.error('鍔犺浇浜у搧鍒楄〃澶辫触:', error);
- proxy.$modal.msgError('鍔犺浇浜у搧鍒楄〃澶辫触');
+ console.error('鏌ヨ浜у搧璁板綍澶辫触:', error)
+ proxy.$modal.msgError('鏌ヨ浜у搧璁板綍澶辫触')
+ productList.value = [];
} finally {
- loadingProducts.value = false;
+ loadingProducts.value = false
}
- return null; // 娌℃湁鎵惧埌鑺傜偣锛岃繑鍥瀗ull
-};
+}
-// 琛ㄦ牸閫夋嫨鏁版嵁
-// const handleSelectionChange = (selection) => {
-
-// 鍔犺浇瑙勬牸鍨嬪彿鍒楄〃
- const loadProductModels = async (productId) => {
- if (!productId) {
- productModelList.value = [];
- return;
- }
-
- try {
- const res = await modelListPage({
- id: productId,
- current: 1,
- size: 100
- });
-
- productModelList.value = res.data.records.map(item => ({
- id: item.id,
- model: item.model,
- unit: item.unit
- }));
-
- } catch (error) {
- console.error('鍔犺浇瑙勬牸鍨嬪彿澶辫触:', error);
- proxy.$modal.msgError('鍔犺浇瑙勬牸鍨嬪彿澶辫触');
- }
- };
-
-// 浜у搧閫夋嫨鍙樺寲
- const handleProductChange = (productId) => {
- form.value.productModelId = null
- form.value.productrecordId = null
- resetPurchaseFields()
- if (productId) {
- loadProductModels(productId)
- } else {
- productModelList.value = []
- }
- }
-
-// 瑙勬牸鍨嬪彿閫夋嫨鍙樺寲
- const handleModelChange = async (modelId) => {
- if (!form.value.productId || !modelId) return
-
- try {
- // 鏍规嵁浜у搧ID鍜屽瀷鍙稩D鏌ヨ閲囪喘璁板綍
- const res = await getPurchaseRecords({
- productId: form.value.productId,
- productModelId: form.value.productModelId,
- type: 2 // 鍋囪2琛ㄧず宸叉壒鍑嗙殑閲囪喘璁板綍
- })
-
- purchaseRecords.value = res.data.records
-
- if (purchaseRecords.value.length > 0) {
- // 榛樿鍙栫涓�鏉¢噰璐褰�
- const record = purchaseRecords.value[0]
- fillFormFromPurchaseRecord(record)
- }
- } catch (error) {
- console.error('鏌ヨ閲囪喘璁板綍澶辫触:', error)
- proxy.$modal.msgError('鏌ヨ閲囪喘璁板綍澶辫触')
- }
- }
-
-// 浠庨噰璐褰曞~鍏呰〃鍗�
- const fillFormFromPurchaseRecord = (record) => {
- form.value.productrecordId = record.id
- form.value.taxInclusiveUnitPrice = record.taxInclusiveUnitPrice
- form.value.taxRate = record.taxRate
- form.value.taxInclusiveTotalPrice = record.taxInclusiveTotalPrice
- form.value.taxExclusiveTotalPrice = record.taxExclusiveTotalPrice
- }
-
-// 閲嶇疆閲囪喘鐩稿叧瀛楁
- const resetPurchaseFields = () => {
- form.value.productrecordId = null
- form.value.unit = ''
- form.value.taxInclusiveUnitPrice = null
- form.value.taxRate = null
- form.value.taxInclusiveTotalPrice = null
- form.value.taxExclusiveTotalPrice = null
- }
-
- const loadUserList = async () => {
- try {
- const res = await userListNoPage()
- userList.value = res.data
- } catch (error) {
- console.error('鍔犺浇鐢ㄦ埛鍒楄〃澶辫触:', error)
- }
- }
-
- const loadSupplierList = async () => {
- try {
- const res = await listSupplier()
- supplierLists.value = res.data.records
- } catch (error) {
- console.error('鍔犺浇渚涘簲鍟嗗垪琛ㄥけ璐�:', error)
- }
- }
// 鎵撳紑寮规
const openForm = async (type, row) => {
operationType.value = type
dialogFormVisible.value = true
- // 鍔犺浇蹇呰鏁版嵁
- await Promise.all([
- loadUserList(),
- loadSupplierList(),
- loadProductList()
- ])
if (type === 'add') {
- // 鏂板鏃堕噸缃〃鍗�
+ // 鏂板鏃跺垵濮嬪寲琛ㄥ崟
form.value = {
- userId: userStore.userId // 璁剧疆榛樿鍏ュ簱浜轰负褰撳墠鐢ㄦ埛
+ id: null,
+ purchaseContractNumber: '',
+ supplierId: null,
+ supplierName: '',
+ inboundTime: '',
+ inboundBatch: '',
+ recorderId: userStore.userId,
+ recorderName: userStore.name,
+ entryDate: getCurrentDate(),
+ remark: ''
}
+ productList.value = [] // 娓呯┖浜у搧鍒楄〃
} else {
- // 缂栬緫鏃跺~鍏呰〃鍗曟暟鎹�
- form.value = {
- ...row,
- supplierId: row.supplierId,
- productId: row.productId,
- productModelId: row.productModelId,
- userId: row.userId
- }
- if (row.productId) {
- await loadProductModels(row.productId)
+ form.value = JSON.parse(JSON.stringify(row))
+ try {
+ loadingProducts.value = true
+ // 鏍规嵁鍚堝悓鍙峰姞杞藉搴旂殑浜у搧鍒楄〃锛堝亣璁� getProductByContract 鏄彲鐢ㄦ帴鍙o級
+ const res = await getProductRecordByhetong(form.value.purchaseContractNumber)
+ productList.value = res.data.map(item => ({
+ ...item,
+ quantityStock: item.quantityStock || 0 // 濡傛灉宸叉湁鍏ュ簱鏁伴噺鍒欎繚鐣�
+ }))
+ } catch (error) {
+ proxy.$modal.msgError('鍔犺浇浜у搧澶辫触')
+ productList.value = []
+ } finally {
+ loadingProducts.value = false
}
}
}
+
// 鎻愪氦琛ㄥ崟
const submitForm = async () => {
try {
await proxy.$refs.formRef.validate()
- if (!form.value.productrecordId) {
- proxy.$modal.msgError('璇烽�夋嫨浜у搧澶х被鍜岃鏍煎瀷鍙蜂互鑾峰彇閲囪喘璁板綍')
+ // 楠岃瘉鑷冲皯閫夋嫨浜嗕竴涓骇鍝�
+ if (selectedRows.value.length === 0) {
+ proxy.$modal.msgError('璇峰厛鏌ヨ骞堕�夋嫨浜у搧')
return
}
- const submitData = {
- productrecordId: form.value.productrecordId,
- supplierId: form.value.supplierId,
- inboundQuantity: form.value.inboundQuantity,
- userId: form.value.userId,
+ // 楠岃瘉鍏ュ簱鏁伴噺
+ const invalidProducts = selectedRows.value.filter(
+ product => product.quantityStock <= 0 || product.quantityStock > product.quantity0
+ )
+
+ if (invalidProducts.length > 0) {
+ proxy.$modal.msgError('璇蜂负鎵�鏈変骇鍝佽緭鍏ユ湁鏁堢殑鍏ュ簱鏁伴噺')
+ return
}
- const apiMethod = operationType.value === 'add' ? addSutockIn : updateStockIn
- await apiMethod(submitData)
+ // 鍑嗗鎻愪氦鏁版嵁
+ // 鍑嗗鎻愪氦鏁版嵁 - 淇敼涓哄悗绔渶瑕佺殑鏍煎紡
+ const stockInData = {
+ // 鍏ュ簱鍗曞熀鏈俊鎭�
+ ...form.value,
+ inboundTime: formatDateTime(form.value.inboundTime),
+ nickName: userStore.nickName,// 浣跨敤鏂版牸寮忓寲鍑芥暟
+ details: selectedRows.value.map(product => ({
+ id: product.id,
+ inboundQuantity: Number(product.quantityStock)
+ })),
+ };
+ console.log('鍑嗗鎻愪氦鐨勬暟鎹�:', JSON.parse(JSON.stringify(stockInData)));
+ // 璋冪敤API
+ loading.value = true
+ await addSutockIn(stockInData)
- proxy.$modal.msgSuccess(operationType.value === 'add' ? '鏂板鎴愬姛' : '淇敼鎴愬姛')
+ proxy.$modal.msgSuccess('鏂板鍏ュ簱鎴愬姛')
closeDia()
- getList()
+ getList() // 鍒锋柊鍒楄〃
+
} catch (error) {
console.error('鎻愪氦澶辫触:', error)
if (!error.errors) {
proxy.$modal.msgError('鎿嶄綔澶辫触锛岃閲嶈瘯')
}
+ } finally {
+ loading.value = false
}
}
+
// 鍏抽棴寮规
const closeDia = () => {
proxy.$refs.formRef.resetFields()
dialogFormVisible.value = false
+
}
// 琛ㄦ牸閫夋嫨鏁版嵁
const handleSelectionChange = (selection) => {
@@ -421,6 +340,7 @@
selectedRows.value = selection.filter(item => item.id);
console.log('selection', selectedRows.value)
}
+
const expandedRowKeys = ref([])
// 涓昏〃鍚堣鏂规硶
@@ -431,7 +351,7 @@
// 瀵煎嚭
const handleOut = () => {
ElMessageBox.confirm(
- '閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�',
+ '鏄惁纭瀵煎嚭锛�',
'瀵煎嚭', {
confirmButtonText: '纭',
cancelButtonText: '鍙栨秷',
@@ -470,26 +390,36 @@
}
// 鑾峰彇褰撳墠鏃ユ湡骞舵牸寮忓寲涓� YYYY-MM-DD
- function getCurrentDate() {
- const today = new Date();
- const year = today.getFullYear();
- const month = String(today.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮�
- const day = String(today.getDate()).padStart(2, '0');
- return `${year}-${month}-${day}`;
+// 淇敼涓烘洿閫氱敤鐨勬棩鏈熸椂闂存牸寮忓寲鍑芥暟
+function formatDateTime(date = new Date(), includeTime = true) {
+ const d = new Date(date);
+ const year = d.getFullYear();
+ const month = String(d.getMonth() + 1).padStart(2, '0');
+ const day = String(d.getDate()).padStart(2, '0');
+
+ if (!includeTime) {
+ return `${year}-${month}-${day}`; // 淇濇寔鍘熸湁 getCurrentDate 鍔熻兘
}
- const productSelectedRows = ref([])
- const productSelected = (selectedRows) => {
- productSelectedRows.value = selectedRows;
- };
+ // 鏂板鏃堕棿閮ㄥ垎鏍煎紡鍖�
+ const hours = String(d.getHours()).padStart(2, '0');
+ const minutes = String(d.getMinutes()).padStart(2, '0');
+ const seconds = String(d.getSeconds()).padStart(2, '0');
- const formattedNumber = (row, column, cellValue) => {
- return parseFloat(cellValue).toFixed(2);
- };
+ return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+}
+
+// 淇濇寔鍘熸湁 getCurrentDate 鐨勫吋瀹规��
+function getCurrentDate() {
+ return formatDateTime(new Date(), false);
+}
+
+
+
+
onMounted(() => {
getList()
})
-}
</script>
<style scoped lang="scss"></style>
diff --git a/src/views/inventoryManagement/stockManagement/index.vue b/src/views/inventoryManagement/stockManagement/index.vue
index 53680f6..b5181d2 100644
--- a/src/views/inventoryManagement/stockManagement/index.vue
+++ b/src/views/inventoryManagement/stockManagement/index.vue
@@ -304,7 +304,7 @@
// 瀵煎嚭
const handleOut = () => {
ElMessageBox.confirm(
- '閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�',
+ '鏄惁纭瀵煎嚭锛�',
'瀵煎嚭', {
confirmButtonText: '纭',
cancelButtonText: '鍙栨秷',
--
Gitblit v1.9.3