From 84e3847138b1e6d9907f0c4b5f278cc6f0836909 Mon Sep 17 00:00:00 2001
From: 周宾 <2802492122@qq.com>
Date: 星期一, 29 十二月 2025 13:40:40 +0800
Subject: [PATCH] 天津双奇点-基础数据-产品维护 增加产品导入模板

---
 src/views/inventoryManagement/receiptManagement/components/formDiaManual.vue |  115 ++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 84 insertions(+), 31 deletions(-)

diff --git a/src/views/inventoryManagement/receiptManagement/components/formDiaManual.vue b/src/views/inventoryManagement/receiptManagement/components/formDiaManual.vue
index 6d2c07b..07ce74e 100644
--- a/src/views/inventoryManagement/receiptManagement/components/formDiaManual.vue
+++ b/src/views/inventoryManagement/receiptManagement/components/formDiaManual.vue
@@ -29,32 +29,37 @@
               accept="image/*"
               :data="{ type: 9 }"
             >
-              <img v-if="scope.row.url" :src="javaApiUrl+scope.row.url"></img>
+              <img class="upload-img" v-if="scope.row.url" :src="javaApiUrl+scope.row.url"></img>
               <el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>
             </el-upload>
           </template>
         </el-table-column>
-        <el-table-column label="浜у搧澶х被" prop="productCategory" width="200">
+        <el-table-column label="浜у搧鍚嶇О" prop="productCategory" width="200">
           <template #default="scope">
-            <el-input v-model="scope.row.productCategory" placeholder="璇疯緭鍏ヤ骇鍝佸ぇ绫�" />
+            <el-input v-model="scope.row.productCategory" placeholder="璇疯緭鍏ヤ骇鍝佸悕绉�" />
           </template>
         </el-table-column>
-        <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" width="200">
+        <el-table-column label="浜у搧楂樺害" prop="specificationModel" width="200">
           <template #default="scope">
-            <el-input v-model="scope.row.specificationModel" placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�" />
+            <el-input v-model="scope.row.specificationModel" placeholder="璇疯緭鍏ヤ骇鍝侀珮搴�" />
           </template>
         </el-table-column>
-        <el-table-column label="鍗曚綅" prop="unit" width="100">
+        <el-table-column label="楂樺害鍗曚綅" prop="unit" width="100">
           <template #default="scope">
-            <el-input v-model="scope.row.unit" placeholder="璇疯緭鍏ュ崟浣�" />
+            <el-input v-model="scope.row.unit" placeholder="璇疯緭鍏ラ珮搴﹀崟浣�" />
           </template>
         </el-table-column>
-        <el-table-column label="渚涘簲鍟�" prop="supplierName" width="200">
+        <el-table-column label="绾哥瑙勬牸" prop="cartonSpecifications" width="200">
+          <template #default="scope">
+            <el-input v-model="scope.row.cartonSpecifications" placeholder="璇疯緭鍏ョ焊绠辫鏍�" />
+          </template>
+        </el-table-column>
+        <!-- <el-table-column label="渚涘簲鍟�" prop="supplierName" width="200">
           <template #default="scope">
             <el-input v-model="scope.row.supplierName" placeholder="璇疯緭鍏ヤ緵搴斿晢" />
           </template>
-        </el-table-column>
-        <el-table-column label="鐗╁搧绫诲瀷" prop="itemType" width="150">
+        </el-table-column> -->
+        <!-- <el-table-column label="鐗╁搧绫诲瀷" prop="itemType" width="150">
           <template #default="scope">
             <el-select v-model="scope.row.itemType" filterable allow-create placeholder="璇烽�夋嫨鐗╁搧绫诲瀷" style="width: 100%">
               <el-option
@@ -65,12 +70,27 @@
               />
             </el-select>
           </template>
-        </el-table-column>
-        <el-table-column label="鍏ュ簱鏁伴噺" prop="inboundNum" width="150">
+        </el-table-column> -->
+        <el-table-column label="鍏ュ簱鏁伴噺-浠�" prop="inboundNum" width="150">
           <template #default="scope">
-            <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="scope.row.inboundNum" @change="() => calculateTotalPrice(scope.row)" />
+            <el-input-number :step="1" :min="0" style="width: 100%" v-model="scope.row.inboundNum" @change="() => calculateTotalPrice(scope.row)" />
           </template>
         </el-table-column>
+        <el-table-column label="姣忎欢鏁伴噺/鏀�" prop="boxNum" width="150">
+          <template #default="scope">
+            <el-input-number :step="1" :min="0" style="width: 100%" v-model="scope.row.boxNum" @change="() => calculateTotalPrice(scope.row)" />
+          </template>
+        </el-table-column>
+        <el-table-column label="鍗曚环(鍏�)/浠�" prop="taxInclusiveUnitPrice" width="150">
+         <template #default="scope">
+           <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="scope.row.taxInclusiveUnitPrice" @change="() => calculateTotalPrice(scope.row)" />
+         </template>
+       </el-table-column>
+       <el-table-column label="鍗曚环(缇庡厓)/浠�" prop="dollarPrice" width="150">
+         <template #default="scope">
+           <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="scope.row.dollarPrice"/>
+         </template>
+       </el-table-column>
         <el-table-column label="鍏ュ簱鏃ユ湡" prop="inboundDate" width="180">
           <template #default="scope">
             <el-date-picker
@@ -88,11 +108,7 @@
 <!--            <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="scope.row.quantityStock" @change="() => calculateTotalPrice(scope.row)" />-->
 <!--          </template>-->
 <!--        </el-table-column>-->
-<!--        <el-table-column label="鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" width="150">-->
-<!--          <template #default="scope">-->
-<!--            <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="scope.row.taxInclusiveUnitPrice" @change="() => calculateTotalPrice(scope.row)" />-->
-<!--          </template>-->
-<!--        </el-table-column>-->
+       
 <!--        <el-table-column -->
 <!--           label="鎬讳环(鍏�)" -->
 <!--           prop="taxInclusiveTotalPrice" -->
@@ -127,10 +143,7 @@
   Authorization: "Bearer " + getToken(),
 });
 
-const imeUrl = ref(import.meta.env.VITE_APP_ENV)
-console.log(import.meta)
 const javaApiUrl = __BASE_API__;
-console.log('Java API 鍦板潃:', javaApiUrl)
 
 const userStore = useUserStore()
 const { proxy } = getCurrentInstance()
@@ -200,6 +213,7 @@
     id: null,
     productCategory: '',
     specificationModel: '',
+    cartonSpecifications:'',
     unit: '',
     supplierName: form.value.supplierName || '',
     itemType: '',
@@ -210,6 +224,8 @@
     taxInclusiveTotalPrice: 0,
     taxRate: null,
     taxExclusiveTotalPrice: 0,
+    boxNum: 0,
+    dollarPrice: 0
   });
 };
 
@@ -247,22 +263,46 @@
     for (let i = 0; i < productList.value.length; i++) {
       const product = productList.value[i];
       if (!product.productCategory || !product.specificationModel || !product.unit) {
-        proxy.$modal.msgError(`绗�${i + 1}琛屼骇鍝佹暟鎹湭濉啓瀹屾暣锛堜骇鍝佸ぇ绫汇�佽鏍煎瀷鍙枫�佸崟浣嶄负蹇呭~锛塦)
+        proxy.$modal.msgError(`绗�${i + 1}琛屼骇鍝佹暟鎹湭濉啓瀹屾暣锛堜骇鍝併�佷骇鍝侀珮搴︺�侀珮搴﹀崟浣嶄负蹇呭~锛塦)
         return
       }
-      if (!product.itemType) {
-        proxy.$modal.msgError(`绗�${i + 1}琛岃閫夋嫨鐗╁搧绫诲瀷`)
+      if (!product.url) {
+        proxy.$modal.msgError(`绗�${i + 1}琛屼骇鍝佹湭涓婁紶浜у搧鍥剧墖`)
+        return
+      }
+      if (!product.cartonSpecifications) {
+        proxy.$modal.msgError(`绗�${i + 1}琛屼骇鍝佹湭濉啓绾哥瑙勬牸`)
+        return
+      }
+      // if (!product.itemType) {
+      //   proxy.$modal.msgError(`绗�${i + 1}琛岃閫夋嫨鐗╁搧绫诲瀷`)
+      //   return
+      // }
+      const stock = Number(product?.inboundNum ?? 0);
+      if (!Number.isFinite(stock) || stock <= 0) {
+        proxy.$modal.msgError(`绗�${i + 1}琛屾湰娆″叆搴撴暟閲忛渶澶т簬0`)
+        return
+      }
+      const boxNum = Number(product?.boxNum ?? 0);
+      if (!Number.isFinite(boxNum) || boxNum <= 0) {
+        proxy.$modal.msgError(`绗�${i + 1}琛屾瘡浠舵暟閲�/鏀渶澶т簬0`)
+        return
+      }
+      const taxInclusiveUnitPrice = Number(product?.taxInclusiveUnitPrice ?? 0);
+      if (!Number.isFinite(taxInclusiveUnitPrice) || taxInclusiveUnitPrice <= 0) {
+        proxy.$modal.msgError(`绗�${i + 1}琛屽崟浠凤紙鍏冿級闇�澶т簬0`)
+        return
+      }
+      const dollarPrice = Number(product?.dollarPrice ?? 0);
+      if (!Number.isFinite(dollarPrice) || dollarPrice <= 0) {
+        proxy.$modal.msgError(`绗�${i + 1}琛屽崟浠凤紙缇庡厓锛夐渶澶т簬0`)
         return
       }
       if (!product.inboundDate) {
         proxy.$modal.msgError(`绗�${i + 1}琛岃閫夋嫨鍏ュ簱鏃ユ湡`)
         return
       }
-      const stock = Number(product?.inboundNum ?? 0);
-      if (!Number.isFinite(stock) || stock <= 0) {
-        proxy.$modal.msgError(`绗�${i + 1}琛屾湰娆″叆搴撴暟閲忛渶澶т簬0`)
-        return
-      }
+      
     }
 
     const payloadList = productList.value.map(product => ({
@@ -278,7 +318,10 @@
       taxExclusiveTotalPrice: Number(product.taxExclusiveTotalPrice || 0),
 			taxInclusiveUnitPrice: Number(product.taxInclusiveUnitPrice || 0),
 			taxInclusiveTotalPrice: Number(product.taxInclusiveTotalPrice || 0),
-      url: product.url,
+      boxNum:Number(product.boxNum),
+      cartonSpecifications: product.cartonSpecifications,
+      url: product.url||'',
+      dollarPrice: Number(product.dollarPrice || 0),
     }));
     loading.value = true
     if (operationType.value === 'edit') {
@@ -373,6 +416,10 @@
       taxInclusiveUnitPrice: Number(row?.taxInclusiveUnitPrice ?? 0),
       taxInclusiveTotalPrice: Number(row?.taxInclusiveTotalPrice ?? 0),
       taxExclusiveTotalPrice: Number(row?.taxExclusiveTotalPrice ?? 0),
+      boxNum: Number(row?.boxNum ?? 0),
+      cartonSpecifications: row?.cartonSpecifications ?? '',
+      url: row?.url ?? '',
+      dollarPrice: Number(row?.dollarPrice ?? 0),
     }]
   }
 }
@@ -382,5 +429,11 @@
 })
 </script>
 
-<style scoped lang="scss"></style>
+<style scoped lang="scss">
+  .upload-img{
+    width: 80px;
+    height: 80px;
+    object-fit: contain;
+  }
+</style>
 

--
Gitblit v1.9.3