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