|
@@ -110,6 +110,75 @@
|
|
|
:rules="rules3"
|
|
|
ref="submit3"
|
|
|
>
|
|
|
+ <template #details>
|
|
|
+ <div style="width: 100%">
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ @click="handleAddRow(true)"
|
|
|
+ style="margin: 10px 0"
|
|
|
+ >
|
|
|
+ 添加
|
|
|
+ </el-button>
|
|
|
+ <el-table
|
|
|
+ :data="formData3.data.exchangeSettlementDetailList"
|
|
|
+ show-summary
|
|
|
+ >
|
|
|
+ <el-table-column prop="count" label="合同编号" min-width="150">
|
|
|
+ <template #default="{ row, $index }">
|
|
|
+ <el-form-item
|
|
|
+ :prop="
|
|
|
+ 'exchangeSettlementDetailList.' + $index + '.contractId'
|
|
|
+ "
|
|
|
+ :rules="rulesOne.contractId"
|
|
|
+ :inline-message="true"
|
|
|
+ >
|
|
|
+ <el-select
|
|
|
+ v-model="row.contractId"
|
|
|
+ placeholder="请选择"
|
|
|
+ filterable
|
|
|
+ style="width: 100%"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in contractList2"
|
|
|
+ :label="item.code"
|
|
|
+ :value="item.id"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="amount" label="关联金额" min-width="150">
|
|
|
+ <template #default="{ row, $index }">
|
|
|
+ <el-form-item
|
|
|
+ :prop="'exchangeSettlementDetailList.' + $index + '.amount'"
|
|
|
+ :rules="rulesOne.amount"
|
|
|
+ :inline-message="true"
|
|
|
+ >
|
|
|
+ <el-input-number
|
|
|
+ onmousewheel="return false;"
|
|
|
+ v-model="row.amount"
|
|
|
+ :precision="2"
|
|
|
+ :controls="false"
|
|
|
+ :min="0"
|
|
|
+ style="width: 100%"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="zip" label="操作" width="80">
|
|
|
+ <template #default="{ $index }">
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ link
|
|
|
+ @click="handleRemove($index, true)"
|
|
|
+ >删除</el-button
|
|
|
+ >
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
</byForm>
|
|
|
<template #footer>
|
|
|
<el-button @click="settlementModal = false" size="large"
|
|
@@ -334,7 +403,7 @@
|
|
|
<template #loanUserName>
|
|
|
<div style="width: 100%">
|
|
|
<el-autocomplete
|
|
|
- v-model="formData.data.loanUserName"
|
|
|
+ v-model="formData.loanData.loanUserName"
|
|
|
:fetch-suggestions="querySearch"
|
|
|
:disabled="submitType == 'edit'"
|
|
|
clearable
|
|
@@ -360,7 +429,7 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
-<script setup>
|
|
|
+<script setup name="AccountStatement">
|
|
|
import { computed, ref } from "vue";
|
|
|
import byTable from "@/components/byTable/index";
|
|
|
import byForm from "@/components/byForm/index";
|
|
@@ -826,6 +895,7 @@ const openSettlementModal = (type, row) => {
|
|
|
commissionCurrency: null,
|
|
|
remarks: null,
|
|
|
businessId: null,
|
|
|
+ exchangeSettlementDetailList: [],
|
|
|
};
|
|
|
settlementModal.value = true;
|
|
|
};
|
|
@@ -848,6 +918,32 @@ const formData3 = reactive({
|
|
|
const submit3 = ref(null);
|
|
|
const settlementSubmitForm = () => {
|
|
|
submit3.value.handleSubmit(() => {
|
|
|
+ if (!formData3.data.exchangeSettlementDetailList.length > 0) {
|
|
|
+ ElMessage({
|
|
|
+ message: "请添加关联合同",
|
|
|
+ type: "info",
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ const list = formData3.data.exchangeSettlementDetailList;
|
|
|
+ for (let i = 0; i < list.length; i++) {
|
|
|
+ const e = list[i];
|
|
|
+ if (!(e.amount > 0)) {
|
|
|
+ return ElMessage({
|
|
|
+ message: "关联金额不能为0!",
|
|
|
+ type: "info",
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ const total = list.reduce((total, x) => (total += Number(x.amount)), 0);
|
|
|
+ if (
|
|
|
+ Number(parseFloat(total).toFixed(2)) !== Number(formData3.data.amount)
|
|
|
+ ) {
|
|
|
+ return ElMessage({
|
|
|
+ message: "关联合同金额总合必须等于汇出金额",
|
|
|
+ type: "info",
|
|
|
+ });
|
|
|
+ }
|
|
|
//汇出汇入账号不能相同
|
|
|
if (
|
|
|
formData3.data.accountManagementId ===
|
|
@@ -985,12 +1081,11 @@ const settlementFormConfig = computed(() => {
|
|
|
type: "title",
|
|
|
title: "关联合同",
|
|
|
},
|
|
|
+
|
|
|
{
|
|
|
- type: "select",
|
|
|
- prop: "businessId",
|
|
|
- label: "选择合同",
|
|
|
- filterable: true,
|
|
|
- data: contractList2.value,
|
|
|
+ type: "slot",
|
|
|
+ slotName: "details",
|
|
|
+ label: "",
|
|
|
},
|
|
|
];
|
|
|
});
|
|
@@ -1375,14 +1470,25 @@ const submitForm = () => {
|
|
|
});
|
|
|
};
|
|
|
|
|
|
-const handleAddRow = () => {
|
|
|
- formData.dataOne.taxRefundDetailsList.push({
|
|
|
- contractId: "",
|
|
|
- amount: null,
|
|
|
- });
|
|
|
+const handleAddRow = (flag) => {
|
|
|
+ if (flag) {
|
|
|
+ formData3.data.exchangeSettlementDetailList.push({
|
|
|
+ contractId: "",
|
|
|
+ amount: null,
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ formData.dataOne.taxRefundDetailsList.push({
|
|
|
+ contractId: "",
|
|
|
+ amount: null,
|
|
|
+ });
|
|
|
+ }
|
|
|
};
|
|
|
-const handleRemove = (index) => {
|
|
|
- formData.dataOne.taxRefundDetailsList.splice(index, 1);
|
|
|
+const handleRemove = (index, flag) => {
|
|
|
+ if (flag) {
|
|
|
+ formData3.data.exchangeSettlementDetailList.splice(index, 1);
|
|
|
+ } else {
|
|
|
+ formData.dataOne.taxRefundDetailsList.splice(index, 1);
|
|
|
+ }
|
|
|
};
|
|
|
|
|
|
const submitFormOne = () => {
|