From 8ab333f837fce5710568cf2fbfa19e00522a77a9 Mon Sep 17 00:00:00 2001
From: sen <sen@qq.com>
Date: 星期四, 25 十二月 2025 12:22:45 +0800
Subject: [PATCH] 修改图标

---
 ui/admin-ui3/src/components/FeeDetailModal/index.vue |   94 ++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 80 insertions(+), 14 deletions(-)

diff --git a/ui/admin-ui3/src/components/FeeDetailModal/index.vue b/ui/admin-ui3/src/components/FeeDetailModal/index.vue
index c8d3587..97593e2 100644
--- a/ui/admin-ui3/src/components/FeeDetailModal/index.vue
+++ b/ui/admin-ui3/src/components/FeeDetailModal/index.vue
@@ -36,16 +36,33 @@
           </el-form-item>
         </el-col>
 
-        <el-col :span="8">
-          <el-form-item label="渚涘簲鍟嗗悕绉�" prop="customerName">
+        <el-col :span="8" v-if="typeText == '搴旀敹'" >
+          <el-form-item label="瀹㈡埛鍚嶇О" prop="customerName">
             <!-- <el-select v-model="mainForm.customerName" placeholder="璇烽�夋嫨渚涘簲鍟嗗悕绉�" style="width: 100%;" clearable>
               <el-option v-for="dict in sys_supplier" :key="dict.value" :label="dict.label"
                 :value="dict.value"></el-option>
             </el-select> -->
-            <el-input v-model="mainForm.customerName" placeholder="璇烽�夋嫨 渚涘簲鍟嗗悕绉�" readonly @click="handleCustonerClick"
+            <el-input v-model="mainForm.customerName" placeholder="璇烽�夋嫨 瀹㈡埛鍚嶇О" readonly @click="handleCustonerClick"
               class="clickable-input">
               <template #suffix>
                 <el-icon @click="handleCustonerClick" class="search-icon">
+                  <Search />
+                </el-icon>
+              </template>
+            </el-input>
+          </el-form-item>
+        </el-col>
+
+             <el-col :span="8" v-if="typeText == '搴斾粯'" >
+          <el-form-item label="渚涘簲鍟嗗悕绉�" prop="supplierName">
+            <!-- <el-select v-model="mainForm.customerName" placeholder="璇烽�夋嫨渚涘簲鍟嗗悕绉�" style="width: 100%;" clearable>
+              <el-option v-for="dict in sys_supplier" :key="dict.value" :label="dict.label"
+                :value="dict.value"></el-option>
+            </el-select> -->
+            <el-input v-model="mainForm.supplierName" placeholder="璇烽�夋嫨 渚涘簲鍟嗗悕绉�" readonly @click="handleTransportClick"
+              class="clickable-input">
+              <template #suffix>
+                <el-icon @click="handleTransportClick" class="search-icon">
                   <Search />
                 </el-icon>
               </template>
@@ -79,17 +96,17 @@
         </el-col>
         <el-col :span="8" v-if="typeText == '搴旀敹'">
           <el-form-item label="搴旀敹閲戦" prop="receivableAmount">
-            <el-input-number v-model="mainForm.receivableAmount" :min="0" class="w-full" />
+            <el-input-number v-model="mainForm.receivableAmount" disabled :min="0" class="w-full" />
           </el-form-item>
         </el-col>
         <el-col :span="8" v-if="typeText == '搴斾粯'">
           <el-form-item label="搴斾粯閲戦" prop="payableAmount">
-            <el-input-number v-model="mainForm.payableAmount" :min="0" class="w-full" />
+            <el-input-number v-model="mainForm.payableAmount" disabled :min="0" class="w-full" />
           </el-form-item>
         </el-col>
         <el-col :span="8">
           <el-form-item label="鏄惁鍐呴儴缁撶畻" prop="isInternalSettlement">
-            <el-select v-model="mainForm.isInternalSettlement" placeholder="璇烽�夋嫨鏄惁鍐呴儴缁撶畻" style="width: 100%;" clearable>
+            <el-select v-model="mainForm.isInternalSettlement" @change="handleSettlementChange" placeholder="璇烽�夋嫨鏄惁鍐呴儴缁撶畻" style="width: 100%;" clearable>
               <el-option v-for="dict in sys_whether_type" :key="dict.value" :label="dict.label"
                 :value="dict.value"></el-option>
             </el-select>
@@ -119,13 +136,13 @@
     <el-table :data="receivableFeeDetailList" border stripe style="width: 100%">
       <el-table-column prop="feeType" label="璐圭敤绫诲瀷" >
         <template #default="scope">
-          {{ dictFormat('fee_type', scope.row.feeType) }}
+          {{ dictFormat(fee_type, scope.row.feeType) }}
         </template>
       </el-table-column>
       <el-table-column prop="feeName" label="璐圭敤鍚嶇О" />
       <el-table-column prop="billingUnit" label="璁¤垂鍗曚綅">
         <template #default="scope">
-          {{ dictFormat('sys_unit', scope.row.billingUnit)}}
+          {{ dictFormat(sys_unit, scope.row.billingUnit)}}
         </template>
       </el-table-column>
       <el-table-column prop="unitPrice" label="璁¤垂鍗曚环" />
@@ -133,7 +150,7 @@
       <el-table-column prop="actualAmount" label="瀹炴敹閲戦" />
       <el-table-column prop="currency" label="甯佸埗">
         <template #default="scope">
-          {{ dictFormat('sys_currency', scope.row.currency)}}
+          {{ dictFormat(sys_currency, scope.row.currency)}}
         </template>
       </el-table-column>
       <el-table-column prop="createTime" label="璐圭敤鐧昏鏃堕棿" width="180" />
@@ -225,14 +242,20 @@
 
   <CustomerSelectDialog :visible="isCustomerSelectVisibleIshow" :default-selected-id="mainForm.customerId"
     @confirm="handleCustomerSelect" @close="isCustomerSelectVisibleIshow = false" />
+
+
+     <TransportService :visible="isTransportServiceIshow" :default-selected-id="mainForm.customerId"
+    @confirm="handleTransportService" @close="isTransportServiceIshow = false" />
 </template>
 
 <script setup lang="ts">
-import { ref, reactive, computed } from 'vue';
+import { ref, reactive, computed, watch } from 'vue';
 import { ElMessage, type FormInstance } from 'element-plus';
 import useCurrentInstance from '@/utils/useCurrentInstance'
 import EntitySelector from '../EntitySelector/index.vue';
 import CustomerSelectDialog from '../CustomerSelectDialog/index';
+import TransportService from '../TransportService/index';
+
 
 const { proxy } = useCurrentInstance()
 const { sys_system, sys_business, sys_receipts, sys_supplier, sys_whether_type, fee_type, sys_currency, sys_unit } = proxy.useDict(
@@ -283,6 +306,8 @@
   receivableAmount: [{ required: true, message: `璇疯緭鍏ュ簲鏀堕噾棰漙, trigger: 'blur' }],
   businessTime: [{ required: true, message: '璇烽�夋嫨涓氬姟鍙戠敓鏃堕棿', trigger: 'change' }],
   internalSettlementUnit: [{ required: true, message: '璇烽�夋嫨鍐呴儴缁撶畻鍗曚綅', trigger: 'change' }],
+  supplierName: [{ required: true, message: '璇烽�夋嫨渚涘簲鍟嗗悕绉�', trigger: 'change' }],
+  businessSector:[{ required: true, message: '璇烽�夋嫨涓氬姟鏉垮潡', trigger: 'change' }]
 });
 
 const itemRules = reactive({
@@ -332,8 +357,8 @@
   if (mainFormRef.value) mainFormRef.value.resetFields();
   receivableFeeDetailList.value = [];
   Object.assign(mainForm, {
-    sourceSystem: '', businessSector: '', documentType: '',
-    documentNo: '', customerName: '', projectName: '',
+    payableConfirmTime:'',sourceSystem: '', businessSector: '', documentType: '',
+    documentNo: '', customerName: '', projectName: '',supplierName:'',
     businessTime: '', receivableConfirmTime: '', receivableAmount: 0, internalSettlementUnit: '', isInternalSettlement: '1'
   });
 };
@@ -343,7 +368,7 @@
   editingIndex.value = null; // 鏄庣‘褰撳墠鏄柊澧炴ā寮�
   Object.assign(itemForm, {
     feeType: '', feeName: '', billingUnit: '', unitPrice: 0, billingQuantity: 0, billingAmount: '0.0000', actualAmount: 1, currency: '',
-    internalSettlementUnit: '', isInternalSettlement: '1'
+    internalSettlementUnit: '', isInternalSettlement: '1',createTime:''
   });
   itemVisible.value = true;
 };
@@ -416,17 +441,58 @@
   mainForm.internalSettlementUnit = data.customerFullName
   // 鍦ㄨ繖閲屽彲浠ュ皢鏁版嵁璧嬪�肩粰琛ㄥ崟鎴栧叾浠栭�昏緫
 }
+const handleSettlementChange = (value) => {
+  // mainForm.isInternalSettlement = value
+  if (value == '0') {
+    mainForm.internalSettlementUnit = ''
+  }
+  
+}
 const isCustomerSelectVisibleIshow = ref(false);
 
 const handleCustonerClick = () => {
   isCustomerSelectVisibleIshow.value = true;
-
 }
+const isTransportServiceIshow = ref(false);
+
+const handleTransportClick = () => {
+  isTransportServiceIshow.value = true;
+}
+
 const handleCustomerSelect = (selectedCustomer) => {
   mainForm.customerName = selectedCustomer.customerFullName;
   mainForm.customerId = selectedCustomer.id; // 鐜板湪瀛楁宸插0鏄庯紝璧嬪�兼湁鏁�
   isCustomerSelectVisibleIshow.value = false;
 };
+
+const handleTransportService = (selectedCustomer) => {
+  mainForm.supplierName = selectedCustomer.serviceName;
+  // mainForm.customerId = selectedCustomer.id; // 鐜板湪瀛楁宸插0鏄庯紝璧嬪�兼湁鏁�
+  isTransportServiceIshow.value = false;
+};
+// 鐩戝惉璐圭敤鏄庣粏鍒楄〃鐨勫彉鍖栵紝鑷姩璁$畻鎬婚骞朵繚鐣�2浣嶅皬鏁�
+watch(
+  () => receivableFeeDetailList.value,
+  (newList) => {
+    const total = newList.reduce((sum, item) => {
+      // 纭繚鍙栧埌鐨勬槸鏁板�硷紝濡傛灉涓虹┖鍒欓粯璁や负 0
+      const amount = parseFloat(item.actualAmount) || 0;
+      return sum + amount;
+    }, 0);
+    
+    // 璁$畻缁撴灉淇濈暀2浣嶅皬鏁�
+    // parseFloat(...toFixed(2)) 鏄负浜嗙‘淇濇渶鍚庡瓨鍏� mainForm 鐨勬槸鏁板瓧绫诲瀷鑰岄潪瀛楃涓�
+    const formattedTotal = parseFloat(total.toFixed(2));
+
+    // 鏍规嵁绫诲瀷璧嬪��
+    if (typeText.value === '搴旀敹') {
+      mainForm.receivableAmount = formattedTotal;
+    } else {
+      mainForm.payableAmount = formattedTotal;
+    }
+  },
+  { deep: true, immediate: true } // immediate: true 纭繚鍒濆鍔犺浇鏁版嵁鏃朵篃鑳借绠椾竴娆�
+);
 defineExpose({ open, canceleClick });
 </script>
 

--
Gitblit v1.8.0