From f7cd57455346e4fd7085eae8bcf7b01a75c94d25 Mon Sep 17 00:00:00 2001
From: 周宾 <2802492122@qq.com>
Date: 星期一, 22 十二月 2025 16:35:11 +0800
Subject: [PATCH] 海川开心-协同办公-报销管理金额显示

---
 src/views/inventoryManagement/receiptManagement/index.vue |  233 +++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 143 insertions(+), 90 deletions(-)

diff --git a/src/views/inventoryManagement/receiptManagement/index.vue b/src/views/inventoryManagement/receiptManagement/index.vue
index 6f50507..68b1b77 100644
--- a/src/views/inventoryManagement/receiptManagement/index.vue
+++ b/src/views/inventoryManagement/receiptManagement/index.vue
@@ -1,12 +1,9 @@
 <template>
   <div class="app-container">
     <el-tabs v-model="activeTab" @tab-change="handleTabChange">
-      <el-tab-pane label="鐢熶骇鍏ュ簱" name="production">
+      <el-tab-pane label="鎴愬搧鍏ュ簱" name="production">
         <div class="search_form">
           <div>
-            <span class="search_title">瀹㈡埛鍚嶇О锛�</span>
-            <el-input v-model="searchForm.customerName" style="width: 240px" placeholder="璇疯緭鍏�" @change="handleQuery"
-              clearable prefix-icon="Search" />
             <span class="search_title ml10">鍏ュ簱鏃ユ湡锛�</span>
             <el-date-picker
               v-model="searchForm.timeStr"
@@ -17,55 +14,16 @@
               clearable
               @change="handleQuery"
             />
-            <el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button>
-          </div>
-          <div>
-            <el-button @click="handleOut">瀵煎嚭</el-button>
-          </div>
-        </div>
-        <div class="table_list">
-          <el-table :data="tableData" border v-loading="tableLoading"
-            :expand-row-keys="expandedRowKeys" :row-key="row => row.id" show-summary style="width: 100%"
-            :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)">
-            <el-table-column align="center" label="搴忓彿" type="index" width="60" />
-            <el-table-column label="鍏ュ簱鏃堕棿" prop="createTime" width="100" show-overflow-tooltip />
-            <el-table-column label="鍏ュ簱鎵规" prop="inboundBatches" width="160" show-overflow-tooltip />
-            <el-table-column label="瀹㈡埛鍚嶇О" prop="customerName" width="240" show-overflow-tooltip />
-            <el-table-column label="浜у搧澶х被" prop="productCategory" width="100" show-overflow-tooltip />
-            <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" width="200" show-overflow-tooltip />
-            <el-table-column label="鍗曚綅" prop="unit" width="70" show-overflow-tooltip />
-            <el-table-column label="鍏ュ簱鏁伴噺" prop="inboundNum" 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="createBy" width="80" show-overflow-tooltip />
-          </el-table>
-          <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper"
-            :page="page.current" :limit="page.size" @pagination="paginationChange" />
-        </div>
-      </el-tab-pane>
-      
-      <el-tab-pane label="閲囪喘鍏ュ簱" name="purchase">
-        <div class="search_form">
-          <div>
-            <span class="search_title">渚涘簲鍟嗗悕绉帮細</span>
-            <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="璇疯緭鍏�" @change="handleQuery"
-              clearable prefix-icon="Search" />
-            <span class="search_title ml10">鍏ュ簱鏃ユ湡锛�</span>
-            <el-date-picker
-              v-model="searchForm.timeStr"
-              type="date"
-              placeholder="璇烽�夋嫨鏃ユ湡"
-              value-format="YYYY-MM-DD"
-              format="YYYY-MM-DD"
+            <span class="search_title ml10">浜у搧澶х被锛�</span>
+            <el-input
+              v-model="searchForm.productCategory"
+              style="width: 240px"
+              placeholder="璇疯緭鍏�"
               clearable
-              @change="handleQuery"
             />
             <el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button>
           </div>
           <div>
-            <el-button type="primary" @click="openForm('add', 'purchase')">鏂板鍏ュ簱</el-button>
             <el-button @click="handleOut">瀵煎嚭</el-button>
             <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
           </div>
@@ -76,21 +34,17 @@
             :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="createTime" width="100" show-overflow-tooltip />
-            <el-table-column label="鍏ュ簱鎵规" prop="inboundBatches" width="160" show-overflow-tooltip />
-            <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" width="240" show-overflow-tooltip />
-            <el-table-column label="浜у搧澶х被" prop="productCategory" width="100" show-overflow-tooltip />
-            <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" width="200" show-overflow-tooltip />
+            <el-table-column label="鍏ュ簱鏃堕棿" prop="createTime" show-overflow-tooltip />
+						<el-table-column label="閿�鍞悎鍚屽彿" prop="salesContractNo" width="180" show-overflow-tooltip />
+            <el-table-column label="浜у搧澶х被" prop="productCategory" show-overflow-tooltip />
+            <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" show-overflow-tooltip />
             <el-table-column label="鍗曚綅" prop="unit" width="70" show-overflow-tooltip />
-            <el-table-column label="鍏ュ簱鏁伴噺" prop="inboundNum" 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="createBy" width="80" show-overflow-tooltip />
+						<el-table-column label="鍏ュ簱鏁伴噺" prop="inboundNum" width="100" show-overflow-tooltip />
+						<el-table-column label="鍗曚环(鍏�)" prop="unitPrice" width="150"></el-table-column>
+						<el-table-column label="鎬讳环(鍏�)" prop="totalPrice" width="150"></el-table-column>
             <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, 'purchase');">缂栬緫</el-button>
+                <el-button link type="primary" size="small" @click="openForm('edit', scope.row, 'production');">缂栬緫</el-button>
               </template>
             </el-table-column>
           </el-table>
@@ -99,12 +53,64 @@
         </div>
       </el-tab-pane>
       
-      <el-tab-pane label="鑷畾涔夊叆搴�" name="manual">
+     <el-tab-pane label="鍘熸枡鍏ュ簱" name="purchase">
+       <div class="search_form">
+         <div>
+           <span class="search_title ml10">鍏ュ簱鏃ユ湡锛�</span>
+           <el-date-picker
+             v-model="searchForm.timeStr"
+             type="date"
+             placeholder="璇烽�夋嫨鏃ユ湡"
+             value-format="YYYY-MM-DD"
+             format="YYYY-MM-DD"
+             clearable
+             @change="handleQuery"
+           />
+            <span class="search_title ml10">浜у搧澶х被锛�</span>
+            <el-input
+              v-model="searchForm.productCategory"
+              style="width: 240px"
+              placeholder="璇疯緭鍏�"
+              clearable
+            />
+           <el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button>
+         </div>
+         <div>
+           <el-button type="primary" @click="openForm('add', 'purchase')">鏂板鍏ュ簱</el-button>
+           <el-button @click="handleOut">瀵煎嚭</el-button>
+           <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
+         </div>
+       </div>
+       <div class="table_list">
+         <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange"
+           :expand-row-keys="expandedRowKeys" :row-key="row => row.id" show-summary style="width: 100%"
+           :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="createTime" width="100" show-overflow-tooltip />
+					 <el-table-column label="閲囪喘鍚堝悓鍙�" prop="purchaseContractNumber" width="180" show-overflow-tooltip />
+<el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" width="240" show-overflow-tooltip />
+           <el-table-column label="浜у搧澶х被" prop="productCategory" show-overflow-tooltip />
+           <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" show-overflow-tooltip />
+           <el-table-column label="鍗曚綅" prop="unit" width="70" show-overflow-tooltip />
+					 <el-table-column label="鍏ュ簱鏁伴噺" prop="inboundNum" width="100" show-overflow-tooltip />
+					 <el-table-column label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" width="150"></el-table-column>
+					 <el-table-column label="鍚◣鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" width="150"></el-table-column>
+           <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, 'purchase');">缂栬緫</el-button>
+             </template>
+           </el-table-column>
+         </el-table>
+         <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper"
+           :page="page.current" :limit="page.size" @pagination="paginationChange" />
+       </div>
+     </el-tab-pane>
+      
+      <el-tab-pane label="鏉愭枡鍏ュ簱" name="manual">
         <div class="search_form">
           <div>
-            <span class="search_title">渚涘簲鍟嗗悕绉帮細</span>
-            <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="璇疯緭鍏�" @change="handleQuery"
-              clearable prefix-icon="Search" />
             <span class="search_title ml10">鍏ュ簱鏃ユ湡锛�</span>
             <el-date-picker
               v-model="searchForm.timeStr"
@@ -114,6 +120,13 @@
               format="YYYY-MM-DD"
               clearable
               @change="handleQuery"
+            />
+            <span class="search_title ml10">浜у搧澶х被锛�</span>
+            <el-input
+              v-model="searchForm.productCategory"
+              style="width: 240px"
+              placeholder="璇疯緭鍏�"
+              clearable
             />
             <el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button>
           </div>
@@ -130,19 +143,17 @@
             <el-table-column align="center" type="selection" width="55" />
             <el-table-column align="center" label="搴忓彿" type="index" width="60" />
             <el-table-column label="鍏ュ簱鏃堕棿" prop="inboundDate" width="100" show-overflow-tooltip />
-            <el-table-column label="鍏ュ簱鎵规" prop="inboundBatches" width="160" show-overflow-tooltip />
-            <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" width="240" show-overflow-tooltip />
-            <el-table-column label="浜у搧澶х被" prop="productCategory" width="100" show-overflow-tooltip />
-            <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" width="200" show-overflow-tooltip />
+						<el-table-column label="鎵规鍙�" prop="code" width="130" show-overflow-tooltip />
+            <el-table-column label="浜у搧澶х被" prop="productCategory" show-overflow-tooltip />
+            <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" show-overflow-tooltip />
             <el-table-column label="鍗曚綅" prop="unit" width="70" show-overflow-tooltip />
-            <el-table-column label="鐗╁搧绫诲瀷" prop="itemType" width="100" show-overflow-tooltip />
-            <el-table-column label="鍏ュ簱鏁伴噺" prop="inboundNum" 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="itemType" show-overflow-tooltip />
+						<el-table-column label="鍏ュ簱鏁伴噺" prop="inboundNum" width="100" show-overflow-tooltip />
+						<el-table-column label="鍓╀綑搴撳瓨" prop="inboundNum0" show-overflow-tooltip />
+						<el-table-column label="鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" width="150"></el-table-column>
+						<el-table-column label="鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" width="150"></el-table-column>
             <el-table-column label="鍏ュ簱浜�" prop="createBy" width="80" show-overflow-tooltip />
-            <el-table-column fixed="right" label="鎿嶄綔" min-width="60" align="center">
+            <el-table-column fixed="right" label="鎿嶄綔" width="100" align="center">
               <template #default="scope">
                 <el-button link type="primary" size="small" @click="openForm('edit', scope.row, 'manual');">缂栬緫</el-button>
               </template>
@@ -156,6 +167,7 @@
 
     <form-dia ref="formDia" @close="handleQuery" @success="handleQuery"></form-dia>
     <form-dia-manual ref="formDiaManual" @close="handleQuery" @success="handleQuery"></form-dia-manual>
+    <form-dia-product ref="formDiaProduct" @close="handleQuery" @success="handleQuery"></form-dia-product>
   </div>
 </template>
 
@@ -164,17 +176,22 @@
 import { ref, reactive, toRefs, onMounted, getCurrentInstance, nextTick } from 'vue'
 import { ElMessageBox } from "element-plus";
 import useUserStore from '@/store/modules/user'
+import dayjs from 'dayjs'
 import {
 	getStockInPage,
 	getStockInPageByProduction,
-	getStockInPageByCustom,
 	delStockIn,
 	delStockInCustom, getInPageByCustom,
 } from "@/api/inventoryManagement/stockIn.js";
 import FormDia from './components/formDia.vue'
 import FormDiaManual from './components/formDiaManual.vue'
+import FormDiaProduct from './components/formDiaProduct.vue'
 
-const userStore = useUserStore()
+// 鑾峰彇褰撳墠鏃ユ湡
+function getCurrentDate() {
+  return dayjs().format('YYYY-MM-DD')
+}
+
 const { proxy } = getCurrentInstance()
 
 const tableData = ref([])
@@ -182,6 +199,7 @@
 const tableLoading = ref(false)
 const formDia = ref()
 const formDiaManual = ref()
+const formDiaProduct = ref()
 const activeTab = ref('production') // 褰撳墠婵�娲荤殑 tab
 
 const page = reactive({
@@ -194,7 +212,8 @@
   searchForm: {
     supplierName: '',
     customerName: '',
-    timeStr: '',
+    productCategory:'',
+    timeStr: getCurrentDate(),
   },
 })
 const { searchForm } = toRefs(data)
@@ -221,6 +240,7 @@
     params.supplierName = searchForm.value.supplierName
     params.timeStr = searchForm.value.timeStr
   }
+  params.productCategory = searchForm.value.productCategory
   
   // 鏍规嵁涓嶅悓鐨� tab 绫诲瀷璋冪敤涓嶅悓鐨勬帴鍙�
   const apiCall = activeTab.value === 'production' 
@@ -232,6 +252,26 @@
   apiCall.then(res => {
     tableLoading.value = false
     tableData.value = res.data.records
+    
+    // 鍓嶇璁$畻鎬讳环锛氭�讳环 = unitPrice * inboundNum
+    tableData.value = tableData.value.map(item => {
+      // 浣跨敤鍏ュ簱鏁伴噺璁$畻鎬讳环
+      const inboundNum = Number(item.inboundNum) || 0
+      const unitPrice = Number(item.unitPrice) || 0
+      const taxInclusiveUnitPrice = Number(item.taxInclusiveUnitPrice) || 0
+      
+      // 鏍规嵁鏍囩椤电被鍨嬭绠椾笉鍚岀殑鎬讳环
+      if (activeTab.value === 'production') {
+        // 鎴愬搧搴撳瓨锛氭�讳环 = unitPrice * 鍏ュ簱鏁伴噺
+        item.totalPrice = (unitPrice * inboundNum).toFixed(2)
+      } else {
+        // 鍘熸枡鍜屾潗鏂欏簱瀛橈細鍚◣鎬讳环 = taxInclusiveUnitPrice * 鍏ュ簱鏁伴噺
+        item.taxInclusiveTotalPrice = (taxInclusiveUnitPrice * inboundNum).toFixed(2)
+      }
+      
+      return item
+    })
+    
     total.value = res.data.total
   }).catch(() => {
     tableLoading.value = false
@@ -245,6 +285,7 @@
   searchForm.value.supplierName = ''
   searchForm.value.customerName = ''
   searchForm.value.timeStr = ''
+  searchForm.value.productCategory = ''
   getList()
 }
 
@@ -254,7 +295,9 @@
   await nextTick(() => {
     if (currentTab === 'manual') {
       formDiaManual.value?.openDialog(type, row)
-    } else {
+    } else if (currentTab === 'production') {
+			formDiaProduct.value?.openDialog(type, row)
+		}else {
       formDia.value?.openDialog(type, row)
     }
   })
@@ -298,14 +341,6 @@
     proxy.$modal.msgWarning('璇烽�夋嫨鏁版嵁')
     return
   }
-
-  // 妫�鏌ユ槸鍚︽湁浠栦汉缁存姢鐨勬暟鎹�
-  const unauthorizedData = selectedRows.value.filter(item => item.createBy !== userStore.nickName)
-  if (unauthorizedData.length > 0) {
-    proxy.$modal.msgWarning("涓嶅彲鍒犻櫎浠栦汉缁存姢鐨勬暟鎹�")
-    return
-  }
-
   const ids = selectedRows.value.map(item => item.id)
   
   ElMessageBox.confirm('閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�', '鍒犻櫎', {
@@ -313,9 +348,24 @@
     cancelButtonText: '鍙栨秷',
     type: 'warning',
   }).then(() => {
-    // 鏍规嵁褰撳墠 tab 绫诲瀷閫夋嫨涓嶅悓鐨勫垹闄ゆ帴鍙�
-    const deleteApi = activeTab.value === 'manual' ? delStockInCustom : delStockIn
-    deleteApi({ ids }).then(() => {
+    // 鏍规嵁褰撳墠 tab 绫诲瀷閫夋嫨涓嶅悓鐨勫垹闄ゆ帴鍙e拰type鍙傛暟
+    let deleteApi, deleteParams
+    
+    if (activeTab.value === 'production') {
+      // 鎴愬搧鍒犻櫎锛宼ype浼�2
+      deleteApi = delStockIn
+      deleteParams = { ids, type: 2 }
+    } else if (activeTab.value === 'purchase') {
+      // 鍘熸枡鍒犻櫎锛宼ype浼�1
+      deleteApi = delStockIn
+      deleteParams = { ids, type: 1 }
+    } else {
+      // 鏉愭枡鍏ュ簱
+      deleteApi = delStockInCustom
+      deleteParams = { ids }
+    }
+    
+    deleteApi(deleteParams).then(() => {
       proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛")
       getList()
     }).catch(() => {
@@ -332,3 +382,6 @@
 </script>
 
 <style scoped lang="scss"></style>
+
+
+

--
Gitblit v1.9.3