From 736a4b462e06a3335cb8235c0211bc8f5547bfd6 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期六, 12 七月 2025 14:47:59 +0800
Subject: [PATCH] 1.来票台账删除功能联调

---
 src/views/procurementManagement/procurementLedger/index.vue |  139 ++++++++++++++++++++++++++++++++++++---------
 1 files changed, 110 insertions(+), 29 deletions(-)

diff --git a/src/views/procurementManagement/procurementLedger/index.vue b/src/views/procurementManagement/procurementLedger/index.vue
index 5ac4a96..38c34f4 100644
--- a/src/views/procurementManagement/procurementLedger/index.vue
+++ b/src/views/procurementManagement/procurementLedger/index.vue
@@ -76,37 +76,50 @@
         <el-table-column
           label="閲囪喘鍚堝悓鍙�"
           prop="purchaseContractNumber"
+          width="200"
           show-overflow-tooltip
         />
         <el-table-column
           label="閿�鍞悎鍚屽彿"
           prop="salesContractNo"
+          width="200"
           show-overflow-tooltip
         />
         <el-table-column
           label="渚涘簲鍟嗗悕绉�"
+          width="240"
           prop="supplierName"
           show-overflow-tooltip
         />
         <el-table-column
           label="椤圭洰鍚嶇О"
           prop="projectName"
+          width="420"
+          show-overflow-tooltip
+        />
+        <el-table-column
+          label="浠樻鏂瑰紡"
+          width="100"
+          prop="paymentMethod"
           show-overflow-tooltip
         />
         <el-table-column
           label="鍚堝悓閲戦(鍏�)"
           prop="contractAmount"
+           width="200"
           show-overflow-tooltip
           :formatter="formattedNumber"
         />
         <el-table-column
           label="褰曞叆浜�"
           prop="recorderName"
+           width="100"
           show-overflow-tooltip
         />
         <el-table-column
           label="褰曞叆鏃ユ湡"
           prop="entryDate"
+           width="100"
           show-overflow-tooltip
         />
         <el-table-column
@@ -121,6 +134,7 @@
               type="primary"
               size="small"
               @click="openForm('edit', scope.row)"
+							:disabled="scope.row.receiptPaymentAmount>0 || scope.row.recorderName !== userStore.nickName"
               >缂栬緫</el-button
             >
           </template>
@@ -236,6 +250,17 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row :gutter="30">
+          <el-col :span="12">
+            <el-form-item label="浠樻鏂瑰紡">
+              <el-input
+                v-model="form.paymentMethod"
+                placeholder="璇疯緭鍏�"
+                clearable
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
         <el-row>
           <el-form-item label="浜у搧淇℃伅锛�" prop="entryDate">
             <el-button type="primary" @click="openProductForm('add')"
@@ -264,7 +289,7 @@
           <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" />
           <el-table-column label="鍗曚綅" prop="unit" width="70" />
           <el-table-column label="鏁伴噺" prop="quantity" width="70" />
-          <el-table-column label="绋庣巼(%)" prop="taxRate" width="70" />
+          <el-table-column label="绋庣巼(%)" prop="taxRate" width="80" />
           <el-table-column
             label="鍚◣鍗曚环(鍏�)"
             prop="taxInclusiveUnitPrice"
@@ -405,16 +430,20 @@
               />
             </el-form-item>
           </el-col>
-          <el-col :span="12">
-            <el-form-item label="鏁伴噺锛�" prop="quantity">
-              <el-input
-                v-model="productForm.quantity"
-                placeholder="璇疯緭鍏�"
-                clearable
-                @change="mathNum"
-              />
-            </el-form-item>
-          </el-col>
+					<el-col :span="12">
+						<el-form-item label="绋庣巼(%)锛�" prop="taxRate">
+							<el-select
+								v-model="productForm.taxRate"
+								placeholder="璇烽�夋嫨"
+								clearable
+								@change="mathNum"
+							>
+								<el-option label="1" value="1" />
+								<el-option label="6" value="6" />
+								<el-option label="13" value="13" />
+							</el-select>
+						</el-form-item>
+					</el-col>
         </el-row>
         <el-row :gutter="30">
           <el-col :span="12">
@@ -429,20 +458,18 @@
               />
             </el-form-item>
           </el-col>
-          <el-col :span="12">
-            <el-form-item label="绋庣巼(%)锛�" prop="taxRate">
-              <el-select
-                v-model="productForm.taxRate"
-                placeholder="璇烽�夋嫨"
-                clearable
-                @change="mathNum"
-              >
-                <el-option label="1" value="1" />
-                <el-option label="6" value="6" />
-                <el-option label="13" value="13" />
-              </el-select>
-            </el-form-item>
-          </el-col>
+					<el-col :span="12">
+						<el-form-item label="鏁伴噺锛�" prop="quantity">
+							<el-input-number
+								:step="0.1"
+								clearable
+								style="width: 100%"
+								v-model="productForm.quantity"
+								placeholder="璇疯緭鍏�"
+								@change="mathNum"
+							/>
+						</el-form-item>
+					</el-col>
         </el-row>
         <el-row :gutter="30">
           <el-col :span="12">
@@ -453,7 +480,7 @@
                 :step="0.1"
                 clearable
                 style="width: 100%"
-                disabled
+                @change="reverseMathNum('taxInclusiveTotalPrice')"
               />
             </el-form-item>
           </el-col>
@@ -462,7 +489,10 @@
               label="涓嶅惈绋庢�讳环(鍏�)锛�"
               prop="taxExclusiveTotalPrice"
             >
-              <el-input v-model="productForm.taxExclusiveTotalPrice" disabled />
+              <el-input 
+                v-model="productForm.taxExclusiveTotalPrice"
+                @change="reverseMathNum('taxExclusiveTotalPrice')"
+              />
             </el-form-item>
           </el-col>
         </el-row>
@@ -553,6 +583,7 @@
     productData: [],
     supplierName: "",
     supplierId: "",
+    paymentMethod: "",
   },
   rules: {
     purchaseContractNumber: [
@@ -673,7 +704,7 @@
       productList({ salesLedgerId: row.id, type: 2 }).then((res) => {
         const index = tableData.value.findIndex((item) => item.id === row.id);
         if (index > -1) {
-          tableData.value[index].children = res;
+          tableData.value[index].children = res.data;
         }
         expandedRowKeys.value.push(row.id);
       });
@@ -761,6 +792,10 @@
 // 绉婚櫎鏂囦欢
 function handleRemove(file) {
   console.log("handleRemove", file.id);
+  if (file.size > 1024 * 1024 * 10) { 
+    // 浠呭墠绔竻鐞嗭紝涓嶈皟鐢ㄥ垹闄ゆ帴鍙e拰鎻愮ず
+    return; 
+  }
   if (operationType.value === "edit") {
     let ids = [];
     ids.push(file.id);
@@ -954,6 +989,12 @@
 const handleDelete = () => {
   let ids = [];
   if (selectedRows.value.length > 0) {
+		// 妫�鏌ユ槸鍚︽湁浠栦汉缁存姢鐨勬暟鎹�
+		const unauthorizedData = selectedRows.value.filter(item => item.recorderName !== userStore.nickName);
+		if (unauthorizedData.length > 0) {
+			proxy.$modal.msgWarning("涓嶅彲鍒犻櫎浠栦汉缁存姢鐨勬暟鎹�");
+			return;
+		}
     ids = selectedRows.value.map((item) => item.id);
   } else {
     proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
@@ -983,7 +1024,10 @@
   return `${year}-${month}-${day}`;
 }
 const mathNum = () => {
-  console.log("productForm.value", productForm.value);
+	if (!productForm.value.taxRate) {
+		proxy.$modal.msgWarning("璇峰厛閫夋嫨绋庣巼");
+		return;
+	}
   if (!productForm.value.taxInclusiveUnitPrice) {
     return;
   }
@@ -1005,6 +1049,43 @@
       );
   }
 };
+const reverseMathNum = (field) => {
+	if (!productForm.value.taxRate) {
+		proxy.$modal.msgWarning("璇峰厛閫夋嫨绋庣巼");
+		return;
+	}
+  const taxRate = Number(productForm.value.taxRate);
+  if (!taxRate) return;
+  if (field === 'taxInclusiveTotalPrice') {
+    // 宸茬煡鍚◣鎬讳环鍜屾暟閲忥紝鍙嶇畻鍚◣鍗曚环
+    if (productForm.value.quantity) {
+      productForm.value.taxInclusiveUnitPrice = 
+        (Number(productForm.value.taxInclusiveTotalPrice) / Number(productForm.value.quantity)).toFixed(2);
+    }
+    // 宸茬煡鍚◣鎬讳环鍜屽惈绋庡崟浠凤紝鍙嶇畻鏁伴噺
+    else if (productForm.value.taxInclusiveUnitPrice) {
+      productForm.value.quantity = 
+        (Number(productForm.value.taxInclusiveTotalPrice) / Number(productForm.value.taxInclusiveUnitPrice)).toFixed(2);
+    }
+    // 鍙嶇畻涓嶅惈绋庢�讳环
+    productForm.value.taxExclusiveTotalPrice = 
+      (Number(productForm.value.taxInclusiveTotalPrice) / (1 + taxRate / 100)).toFixed(2);
+  } else if (field === 'taxExclusiveTotalPrice') {
+    // 鍙嶇畻鍚◣鎬讳环
+    productForm.value.taxInclusiveTotalPrice = 
+      (Number(productForm.value.taxExclusiveTotalPrice) * (1 + taxRate / 100)).toFixed(2);
+    // 宸茬煡鏁伴噺锛屽弽绠楀惈绋庡崟浠�
+    if (productForm.value.quantity) {
+      productForm.value.taxInclusiveUnitPrice = 
+        (Number(productForm.value.taxInclusiveTotalPrice) / Number(productForm.value.quantity)).toFixed(2);
+    }
+    // 宸茬煡鍚◣鍗曚环锛屽弽绠楁暟閲�
+    else if (productForm.value.taxInclusiveUnitPrice) {
+      productForm.value.quantity = 
+        (Number(productForm.value.taxInclusiveTotalPrice) / Number(productForm.value.taxInclusiveUnitPrice)).toFixed(2);
+    }
+  }
+};
 // 閿�鍞悎鍚岄�夋嫨鏀瑰彉鏂规硶
 const salesLedgerChange = async (row) => {
   console.log("row", row);

--
Gitblit v1.9.3