From d2124efc2b19d309550fc7ff95a16858c54faca0 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期二, 08 七月 2025 17:48:33 +0800
Subject: [PATCH] yys  1.出库管理-分页查询      2.出库管理-导出      3.出库管理-领用      4.出库台账-分页查询      5.出库台账-导出      6.出库台账-删除      7.库存管理-分页查询      8.库存管理-导出      9.库存管理-删除

---
 src/api/inventoryManagement/stockManage.js              |    6 +-
 src/api/inventoryManagement/stockOut.js                 |    8 +-
 src/views/inventoryManagement/issueManagement/index.vue |   36 ++++++++---
 src/views/inventoryManagement/stockManagement/index.vue |   77 +++++++++++++++----------
 src/views/inventoryManagement/dispatchLog/index.vue     |   16 ++--
 5 files changed, 86 insertions(+), 57 deletions(-)

diff --git a/src/api/inventoryManagement/stockManage.js b/src/api/inventoryManagement/stockManage.js
index e309241..09a1150 100644
--- a/src/api/inventoryManagement/stockManage.js
+++ b/src/api/inventoryManagement/stockManage.js
@@ -3,7 +3,7 @@
 // 鏌ヨ搴撳瓨淇℃伅鍒楄〃
 export const getStockManagePage = (params) => {
     return request({
-        url: "/stockmanagement/page",
+        url: "/stockin/listPage",
         method: "get",
         params,
     });
@@ -22,8 +22,8 @@
 // 鍒犻櫎搴撳瓨淇℃伅
 export function delStockManage(ids) {
     return request({
-        url: '/stockmanagement/del',
-        method: 'delete',
+        url: '/stockin/del',
+        method: 'post',
         data: ids
     })
 }
diff --git a/src/api/inventoryManagement/stockOut.js b/src/api/inventoryManagement/stockOut.js
index 51ad1a8..5d410d9 100644
--- a/src/api/inventoryManagement/stockOut.js
+++ b/src/api/inventoryManagement/stockOut.js
@@ -3,7 +3,7 @@
 //鏌ヨ鍑哄簱鍒楄〃
 export const getStockOutPage = (params) => {
     return request({
-        url: "/stockout/page",
+        url: "/stockmanagement/listPage",
         method: "get",
         params,
     });
@@ -30,8 +30,8 @@
 //鍒犻櫎鍑哄簱淇℃伅
 export const delStockOut = (ids) => {
     return request({
-        url: '/stockout/del',
-        method: 'delete',
+        url: '/stockmanagement/del',
+        method: 'post',
         data: ids
     })
 }
@@ -39,7 +39,7 @@
 //瀵煎嚭鍑哄簱淇℃伅
 export const exportStockOut = (query) => {
     return request({
-        url: '/stockout/export',
+        url: '/stockmanagement/export',
         method: 'get',
         params: query,
         responseType: 'blob'
diff --git a/src/views/inventoryManagement/dispatchLog/index.vue b/src/views/inventoryManagement/dispatchLog/index.vue
index 81eff0b..fe07789 100644
--- a/src/views/inventoryManagement/dispatchLog/index.vue
+++ b/src/views/inventoryManagement/dispatchLog/index.vue
@@ -38,7 +38,7 @@
         <el-table-column align="center" label="搴忓彿" type="index" width="60" />
         <el-table-column
           label="鍑哄簱鏃ユ湡"
-          prop="inboundTime"
+          prop="createDate"
           width="100"
           show-overflow-tooltip
         />
@@ -68,37 +68,37 @@
         />
         <el-table-column
           label="鍑哄簱鏁伴噺"
-          prop="inboundQuantity"
+          prop="inboundNum"
           width="100"
           show-overflow-tooltip
         />
         <el-table-column
           label="鍚◣鍗曚环(鍏�)"
-          prop="entryDate"
+          prop="taxInclusiveUnitPrice"
           width="100"
           show-overflow-tooltip
         />
         <el-table-column
           label="鍚◣鎬讳环(鍏�)"
-          prop="executionDate"
+          prop="taxInclusiveTotalPrice"
           width="100"
           show-overflow-tooltip
         />
         <el-table-column
           label="绋庣巼(%)"
-          prop="executionDate"
+          prop="taxRate"
           width="100"
           show-overflow-tooltip
         />
         <el-table-column
           label="涓嶅惈绋庢�讳环(鍏�)"
-          prop="executionDate"
+          prop="taxExclusiveTotalPrice"
           width="180"
           show-overflow-tooltip
         />
         <el-table-column
           label="鍑哄簱浜�"
-          prop="nickname"
+          prop="createBy"
           width="80"
           show-overflow-tooltip
         />
@@ -259,7 +259,7 @@
     type: "warning",
   })
     .then(() => {
-      delStockOut(ids).then((res) => {
+      delStockOut({ids:ids}).then((res) => {
         proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
         getList();
       });
diff --git a/src/views/inventoryManagement/issueManagement/index.vue b/src/views/inventoryManagement/issueManagement/index.vue
index 7ed1f68..3fd7aae 100644
--- a/src/views/inventoryManagement/issueManagement/index.vue
+++ b/src/views/inventoryManagement/issueManagement/index.vue
@@ -19,18 +19,19 @@
         :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)">
         <el-table-column align="center" type="selection" width="55" />
         <el-table-column align="center" label="搴忓彿" type="index" width="60" />
-        <el-table-column label="鍏ュ簱鏃堕棿" prop="inboundTime" width="100" show-overflow-tooltip />
-        <el-table-column label="鍏ュ簱鎵规" prop="inboundBatch" width="160" show-overflow-tooltip />
+        <el-table-column label="鍏ュ簱鏃堕棿" prop="createDate" width="100" show-overflow-tooltip />
+        <el-table-column label="鍏ュ簱鎵规" prop="inboundBatches" width="160" show-overflow-tooltip />
         <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" width="160" show-overflow-tooltip />
-        <el-table-column label="浜у搧澶х被" prop="productName" width="100" show-overflow-tooltip />
-        <el-table-column label="瑙勬牸鍨嬪彿" prop="model" width="160" show-overflow-tooltip />
+        <el-table-column label="浜у搧澶х被" prop="productCategory" width="100" show-overflow-tooltip />
+        <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" width="160" show-overflow-tooltip />
         <el-table-column label="鍗曚綅" prop="unit" width="70" show-overflow-tooltip />
-        <el-table-column label="鍏ュ簱鏁伴噺" prop="stockQuantity" width="90" show-overflow-tooltip />
+        <el-table-column label="鍏ュ簱鏁伴噺" prop="inboundNum" width="90" show-overflow-tooltip />
+        <el-table-column label="寰呭嚭搴撴暟閲�" prop="inboundNum0" width="90" show-overflow-tooltip />
         <el-table-column label="鍚◣鍗曚环" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />
         <el-table-column label="鍚◣鎬讳环" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />
         <el-table-column label="绋庣巼(%)" prop="taxRate" width="80" show-overflow-tooltip />
         <el-table-column label="涓嶅惈绋庢�讳环" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />
-        <el-table-column label="鍏ュ簱浜�" prop="nickName" width="80" show-overflow-tooltip />
+        <el-table-column label="鍏ュ簱浜�" prop="createBy" width="80" show-overflow-tooltip />
         <el-table-column fixed="right" label="鎿嶄綔" min-width="60" align="center">
           <template #default="scope">
             <el-button link type="primary" size="small" @click="openForm(scope.row);">棰嗙敤</el-button>
@@ -71,6 +72,9 @@
 import { ElMessageBox } from "element-plus";
 import useUserStore from '@/store/modules/user'
 import { userListNoPage } from "@/api/system/user.js";
+import {
+  getStockInPage
+} from "@/api/inventoryManagement/stockIn.js";
 import {
   getStockManagePage,
     delStockManage,
@@ -124,7 +128,7 @@
 }
 const getList = () => {
   tableLoading.value = true
-  getStockManagePage({ ...searchForm.value, ...page }).then(res => {
+  getStockInPage({ ...searchForm.value, ...page }).then(res => {
     tableLoading.value = false
     tableData.value = res.data.records
     console.log('res', res.data.records)
@@ -161,10 +165,15 @@
 };
 const currentRowId = ref(null) // 鏂板锛氬瓨鍌ㄥ綋鍓嶆搷浣滅殑琛孖D
 
+const currentRowNum = ref(0)
+const salesLedgerProductId = ref(null);
+
 // 鎵撳紑寮规
 const openForm = async (row) => {
   dialogFormVisible.value = true
   currentRowId.value = row.id
+  currentRowNum.value = row.inboundNum0
+  salesLedgerProductId.value = row.salesLedgerProductId
   form.value = {}
   // 鍒濆鍖栬〃鍗曟暟鎹�
   form.value = {
@@ -185,13 +194,18 @@
 
 // 鎻愪氦琛ㄥ崟
 const submitForm = () => {
+  let num = Number(form.value.inboundQuantity)
+  if(num < 1 || num > currentRowNum.value){
+    return proxy.$modal.msgWarning("璇峰~鍏ユ湁鏁堟暟瀛�")
+  }
   proxy.$refs["formRef"].validate(valid => {
     if (valid && currentRowId.value) {
       const outData = {
         id: currentRowId.value, // 鍘熷璁板綍ID
-        Quantity: form.value.inboundQuantity, // 鍑哄簱鏁伴噺
-        Time: form.value.inboundTime, // 鍑哄簱鏃堕棿
-        userId: form.value.userId // 鎿嶄綔浜�
+        salesLedgerProductId: salesLedgerProductId.value,
+        quantity: form.value.inboundQuantity, // 鍑哄簱鏁伴噺
+        time: form.value.inboundTime, // 鍑哄簱鏃堕棿
+        userId: form.value.nickName // 鎿嶄綔浜�
       }
       console.log(outData)
 
@@ -221,7 +235,7 @@
     type: 'warning',
   }
   ).then(() => {
-    proxy.download("/stockmanagement/export", {}, '鍏ュ簱鍙拌处.xlsx')
+    proxy.download("/stockin/export", {}, '鍏ュ簱鍙拌处.xlsx')
   }).catch(() => {
     proxy.$modal.msg("宸插彇娑�")
   })
diff --git a/src/views/inventoryManagement/stockManagement/index.vue b/src/views/inventoryManagement/stockManagement/index.vue
index a9b2f88..b5526c5 100644
--- a/src/views/inventoryManagement/stockManagement/index.vue
+++ b/src/views/inventoryManagement/stockManagement/index.vue
@@ -19,18 +19,18 @@
         :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)">
         <el-table-column align="center" type="selection" width="55" />
         <el-table-column align="center" label="搴忓彿" type="index" width="60" />
-        <el-table-column label="搴撳瓨鏃ユ湡" prop="boundTime" width="100" show-overflow-tooltip />
-        <el-table-column label="鍏ュ簱鏃ユ湡" prop="inboundTime" width="100" show-overflow-tooltip />
+        <el-table-column label="搴撳瓨鏃ユ湡" prop="createDate" width="100" show-overflow-tooltip />
+        <el-table-column label="鍏ュ簱鏃ユ湡" prop="createDate" width="100" show-overflow-tooltip />
         <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" width="160" show-overflow-tooltip />
-        <el-table-column label="浜у搧澶х被" prop="productName" width="100" show-overflow-tooltip />
-        <el-table-column label="瑙勬牸鍨嬪彿" prop="model" width="100" show-overflow-tooltip />
+        <el-table-column label="浜у搧澶х被" prop="productCategory" width="100" show-overflow-tooltip />
+        <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" width="100" show-overflow-tooltip />
         <el-table-column label="鍗曚綅" prop="unit" width="80" show-overflow-tooltip />
-        <el-table-column label="搴撳瓨鏁伴噺" prop="stockQuantity" width="100" show-overflow-tooltip />
+        <el-table-column label="搴撳瓨鏁伴噺" prop="inboundNum0" width="100" show-overflow-tooltip />
         <el-table-column label="鍚◣鍗曚环" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />
         <el-table-column label="鍚◣鎬讳环" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />
         <el-table-column label="绋庣巼(%)" prop="taxRate" width="100" show-overflow-tooltip />
         <el-table-column label="涓嶅惈绋庢�讳环" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />
-        <el-table-column label="鍏ュ簱浜�" prop="nickName" width="80" show-overflow-tooltip />
+        <el-table-column label="鍏ュ簱浜�" prop="createBy" width="80" show-overflow-tooltip />
         <el-table-column fixed="right" label="鎿嶄綔" min-width="60" align="center">
           <template #default="scope">
             <el-button link type="primary" size="small" @click="openForm('edit', scope.row);">缂栬緫</el-button>
@@ -51,9 +51,9 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="浜у搧澶х被锛�" prop="productId">
-              <el-select v-model="form.productId" placeholder="璇烽�夋嫨" clearable filterable @change="handleProductChange">
+              <el-select v-model="form.productCategory" placeholder="璇烽�夋嫨" clearable filterable @change="handleProductChange">
                 <el-option v-for="item in productList" :key="item.id" :label="item.productName"
-                           :value="item.id" />
+                           :value="item.productName" />
               </el-select>
             </el-form-item>
           </el-col>
@@ -61,7 +61,7 @@
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="瑙勬牸鍨嬪彿锛�" prop="productManageId">
-              <el-select v-model="form.productModelId" placeholder="璇峰厛閫夋嫨浜у搧澶х被" clearable filterable :disabled="!form.productId"
+              <el-select v-model="form.specificationModel" placeholder="璇峰厛閫夋嫨浜у搧澶х被" clearable filterable :disabled="!form.productCategory"
                          @change="handleModelChange">
                 <el-option v-for="item in productModelList" :key="item.id" :label="item.model"
                            :value="item.id" />
@@ -77,13 +77,13 @@
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="搴撳瓨鏃堕棿锛�" prop="projectName">
-              <el-date-picker style="width: 100%" v-model="form.boundTime" value-format="YYYY-MM-DD" format="YYYY-MM-DD"
+              <el-date-picker style="width: 100%" v-model="form.createDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD"
                 type="date" placeholder="璇烽�夋嫨" clearable />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="鍏ュ簱鏃堕棿锛�" prop="projectName">
-              <el-date-picker style="width: 100%" v-model="form.inboundTime" value-format="YYYY-MM-DD" format="YYYY-MM-DD"
+              <el-date-picker style="width: 100%" v-model="form.createDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD"
                 type="date" placeholder="璇烽�夋嫨" clearable />
             </el-form-item>
           </el-col>
@@ -118,7 +118,7 @@
 
           <el-col :span="12">
             <el-form-item label="鍑哄簱浜猴細" prop="entryPerson">
-              <el-select v-model="form.nickName" placeholder="璇烽�夋嫨" clearable>
+              <el-select v-model="form.createBy" placeholder="璇烽�夋嫨" clearable>
                 <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId" />
               </el-select>
             </el-form-item>
@@ -141,6 +141,7 @@
 import { ElMessageBox } from "element-plus";
 import useUserStore from '@/store/modules/user'
 import { userListNoPage } from "@/api/system/user.js";
+import { productTreeList,modelList } from "@/api/basicData/product.js"
 import {
   getStockManagePage ,
   updateStockManage,
@@ -153,6 +154,8 @@
 const productData = ref([])
 const selectedRows = ref([])
 const userList = ref([])
+const productList = ref([])
+const productModelList = ref([])
 // const customerOption = ref([])
 const tableLoading = ref(false)
 const page = reactive({
@@ -259,13 +262,25 @@
   // console.log('userStore.id', userStore.id)
   // form.value.entryPerson = userStore.id
   if (type === 'edit') {
-    currentId.value = row.id;
-    getSalesLedgerWithProducts({ id: row.id, type: 1 }).then(res => {
-      form.value = { ...res }
-      form.value.entryPerson = Number(res.entryPerson)
-      productData.value = form.value.productData
-      fileList.value = form.value.salesLedgerFiles
+    form.value = { ...row }
+    productTreeList().then(res =>{
+      productList.value = res
+      productList.value.forEach(i =>{
+        if (i.label === row.productCategory) {
+          modelList({ id: i.id }).then((res) => {
+            productModelList.value = res;
+          });
+        }
+      })
     })
+
+
+    // getSalesLedgerWithProducts({ id: row.id, type: 1 }).then(res => {
+
+    //   form.value.entryPerson = Number(res.entryPerson)
+    //   productData.value = form.value.productData
+    //   fileList.value = form.value.salesLedgerFiles
+    // })
   }
   form.value.entryDate = getCurrentDate() // 璁剧疆榛樿褰曞叆鏃ユ湡涓哄綋鍓嶆棩鏈�
   dialogFormVisible.value = true
@@ -275,18 +290,18 @@
 const submitForm = () => {
   proxy.$refs["formRef"].validate(valid => {
     if (valid) {
-      if (productData.value.length > 0) {
-        form.value.productData = proxy.HaveJson(productData.value)
-      } else {
-        proxy.$modal.msgWarning('璇锋坊鍔犱骇鍝佷俊鎭�')
-        return
-      }
-      let tempFileIds = []
-      if (fileList.value.length > 0) {
-        tempFileIds = fileList.value.map(item => item.tempId)
-      }
-      form.value.tempFileIds = tempFileIds
-      form.value.type = 1
+      // if (productData.value.length > 0) {
+      //   form.value.productData = proxy.HaveJson(productData.value)
+      // } else {
+      //   proxy.$modal.msgWarning('璇锋坊鍔犱骇鍝佷俊鎭�')
+      //   return
+      // }
+      // let tempFileIds = []
+      // if (fileList.value.length > 0) {
+      //   tempFileIds = fileList.value.map(item => item.tempId)
+      // }
+      // form.value.tempFileIds = tempFileIds
+      // form.value.type = 1
       addOrUpdateSalesLedger(form.value).then(res => {
         proxy.$modal.msgSuccess("鎻愪氦鎴愬姛")
         closeDia()
@@ -333,7 +348,7 @@
     type: 'warning',
   }
   ).then(() => {
-    delStockManage(ids).then(res => {
+    delStockManage({ids:ids}).then(res => {
       proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛")
       getList()
     })

--
Gitblit v1.9.3