|
@@ -1,28 +1,12 @@
|
|
|
<template>
|
|
|
<div style="width: 100%; padding: 0px 15px">
|
|
|
- <el-form
|
|
|
- :model="formData.data"
|
|
|
- :rules="rules"
|
|
|
- ref="formDom"
|
|
|
- label-position="top"
|
|
|
- :disabled="props.queryData.accountRequestFundsDetailList ? true : false"
|
|
|
- >
|
|
|
+ <el-form :model="formData.data" :rules="rules" ref="formDom" label-position="top" :disabled="props.queryData.accountRequestFundsDetailList ? true : false">
|
|
|
<div class="_t">基础信息</div>
|
|
|
<el-row :gutter="10">
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="归属公司" prop="corporationId">
|
|
|
- <el-select
|
|
|
- v-model="formData.data.corporationId"
|
|
|
- placeholder="请选择"
|
|
|
- filterable
|
|
|
- style="width: 100%"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in companyData"
|
|
|
- :label="item.name"
|
|
|
- :value="item.id"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
+ <el-select v-model="formData.data.corporationId" placeholder="请选择" filterable style="width: 100%">
|
|
|
+ <el-option v-for="item in companyData" :label="item.name" :value="item.id"> </el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
@@ -37,43 +21,22 @@
|
|
|
clearable
|
|
|
filterable
|
|
|
style="width: 100%"
|
|
|
- @change="handleChangeDept"
|
|
|
- />
|
|
|
+ @change="handleChangeDept" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row :gutter="10">
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="请款类型" prop="type">
|
|
|
- <el-select
|
|
|
- v-model="formData.data.type"
|
|
|
- placeholder="请选择"
|
|
|
- filterable
|
|
|
- style="width: 100%"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in fundsType"
|
|
|
- :label="item.dictValue"
|
|
|
- :value="item.dictKey"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
+ <el-select v-model="formData.data.type" placeholder="请选择" filterable style="width: 100%">
|
|
|
+ <el-option v-for="item in fundsType" :label="item.dictValue" :value="item.dictKey"> </el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="币种" prop="currency">
|
|
|
- <el-select
|
|
|
- v-model="formData.data.currency"
|
|
|
- placeholder="请选择"
|
|
|
- filterable
|
|
|
- style="width: 100%"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in currencyType"
|
|
|
- :label="item.dictValue"
|
|
|
- :value="item.dictKey"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
+ <el-select v-model="formData.data.currency" placeholder="请选择" filterable style="width: 100%">
|
|
|
+ <el-option v-for="item in currencyType" :label="item.dictValue" :value="item.dictKey"> </el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
@@ -81,22 +44,12 @@
|
|
|
<el-row>
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="用款时间" prop="paymentTime">
|
|
|
- <el-date-picker
|
|
|
- v-model="formData.data.paymentTime"
|
|
|
- type="datetime"
|
|
|
- placeholder="请选择"
|
|
|
- value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
- />
|
|
|
+ <el-date-picker v-model="formData.data.paymentTime" type="datetime" placeholder="请选择" value-format="YYYY-MM-DD HH:mm:ss" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-form-item label="用款说明" prop="paymentRemarks">
|
|
|
- <el-input
|
|
|
- v-model="formData.data.paymentRemarks"
|
|
|
- placeholder="请输入"
|
|
|
- type="textarea"
|
|
|
- >
|
|
|
- </el-input>
|
|
|
+ <el-input v-model="formData.data.paymentRemarks" placeholder="请输入" type="textarea"> </el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="上传附件">
|
|
|
<el-upload
|
|
@@ -106,8 +59,7 @@
|
|
|
action="https://winfaster.obs.cn-south-1.myhuaweicloud.com"
|
|
|
:data="uploadData"
|
|
|
:on-preview="handlePreview"
|
|
|
- :before-upload="handleBeforeUpload"
|
|
|
- >
|
|
|
+ :before-upload="handleBeforeUpload">
|
|
|
<el-button type="primary">选择</el-button>
|
|
|
</el-upload>
|
|
|
</el-form-item>
|
|
@@ -123,102 +75,49 @@
|
|
|
@click="handleClickFile(item)"
|
|
|
>{{ item.fileName }}
|
|
|
<span style="margin-left: 5px"
|
|
|
- ><el-icon @click.native.stop="handleClickDownload(item)"
|
|
|
- ><Download /></el-icon></span
|
|
|
+ ><el-icon @click.native.stop="handleClickDownload(item)"><Download /></el-icon></span
|
|
|
></el-tag>
|
|
|
</div>
|
|
|
<div class="_t">请款明细</div>
|
|
|
<el-form-item>
|
|
|
- <el-button type="primary" @click="handleAddRow" style="margin: 10px 0">
|
|
|
- 添加行
|
|
|
- </el-button>
|
|
|
+ <el-button type="primary" @click="handleAddRow" style="margin: 10px 0"> 添加行 </el-button>
|
|
|
<el-table :data="formData.data.accountRequestFundsDetailList">
|
|
|
<el-table-column prop="count" label="费用类型" min-width="150">
|
|
|
<template #default="{ row, $index }">
|
|
|
- <el-form-item
|
|
|
- :prop="'accountRequestFundsDetailList.' + $index + '.costType'"
|
|
|
- :rules="rules.costType"
|
|
|
- :inline-message="true"
|
|
|
- >
|
|
|
- <el-select
|
|
|
- v-model="row.costType"
|
|
|
- placeholder="请选择"
|
|
|
- filterable
|
|
|
- style="width: 100%"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in fundsCostType"
|
|
|
- :label="item.dictValue"
|
|
|
- :value="item.dictKey"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
+ <el-form-item :prop="'accountRequestFundsDetailList.' + $index + '.costType'" :rules="rules.costType" :inline-message="true">
|
|
|
+ <el-select v-model="row.costType" placeholder="请选择" filterable style="width: 100%">
|
|
|
+ <el-option v-for="item in fundsCostType" :label="item.dictValue" :value="item.dictKey"> </el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="count" label="关联合同" min-width="150">
|
|
|
<template #default="{ row, $index }">
|
|
|
- <el-form-item
|
|
|
- :prop="
|
|
|
- 'accountRequestFundsDetailList.' + $index + '.contractId'
|
|
|
- "
|
|
|
- :rules="rules.contractId"
|
|
|
- :inline-message="true"
|
|
|
- >
|
|
|
- <el-select
|
|
|
- v-model="row.contractId"
|
|
|
- placeholder="请选择"
|
|
|
- filterable
|
|
|
- style="width: 100%"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in contractList"
|
|
|
- :label="item.code"
|
|
|
- :value="item.id"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
+ <el-form-item :prop="'accountRequestFundsDetailList.' + $index + '.contractId'" :rules="rules.contractId" :inline-message="true">
|
|
|
+ <el-select v-model="row.contractId" placeholder="请选择" filterable style="width: 100%">
|
|
|
+ <el-option v-for="item in contractList" :label="item.code" :value="item.id"> </el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="count" label="款项说明" min-width="150">
|
|
|
<template #default="{ row, $index }">
|
|
|
- <el-form-item
|
|
|
- :prop="'accountRequestFundsDetailList.' + $index + '.remarks'"
|
|
|
- :rules="rules.remarks"
|
|
|
- :inline-message="true"
|
|
|
- >
|
|
|
- <el-input
|
|
|
- v-model="row.remarks"
|
|
|
- placeholder="请输入"
|
|
|
- type="textarea"
|
|
|
- />
|
|
|
+ <el-form-item :prop="'accountRequestFundsDetailList.' + $index + '.remarks'" :rules="rules.remarks" :inline-message="true">
|
|
|
+ <el-input v-model="row.remarks" placeholder="请输入" type="textarea" />
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="amount" label="请款金额" min-width="150">
|
|
|
<template #default="{ row, $index }">
|
|
|
- <el-form-item
|
|
|
- :prop="'accountRequestFundsDetailList.' + $index + '.amount'"
|
|
|
- :rules="rules.amount"
|
|
|
- :inline-message="true"
|
|
|
- >
|
|
|
- <el-input-number
|
|
|
- v-model="row.amount"
|
|
|
- :precision="4"
|
|
|
- :controls="false"
|
|
|
- :min="0"
|
|
|
- @change="handleChangeAmount"
|
|
|
- />
|
|
|
+ <el-form-item :prop="'accountRequestFundsDetailList.' + $index + '.amount'" :rules="rules.amount" :inline-message="true">
|
|
|
+ <el-input-number onmousewheel="return false;" v-model="row.amount" :precision="4" :controls="false" :min="0" @change="handleChangeAmount" />
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column prop="zip" label="操作" width="100">
|
|
|
<template #default="{ $index }">
|
|
|
- <el-button type="primary" link @click="handleRemove($index)"
|
|
|
- >删除</el-button
|
|
|
- >
|
|
|
+ <el-button type="primary" link @click="handleRemove($index)">删除</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -226,11 +125,7 @@
|
|
|
<el-row :gutter="10">
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="请款总额" prop="total">
|
|
|
- <el-input
|
|
|
- v-model="formData.data.total"
|
|
|
- placeholder="请输入"
|
|
|
- disabled
|
|
|
- />
|
|
|
+ <el-input v-model="formData.data.total" placeholder="请输入" disabled />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
@@ -243,35 +138,15 @@
|
|
|
<el-row :gutter="10">
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="付款方式" prop="paymentMethod">
|
|
|
- <el-select
|
|
|
- v-model="formData.data.paymentMethod"
|
|
|
- placeholder="请选择"
|
|
|
- filterable
|
|
|
- style="width: 100%"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in fundsPaymentMethod"
|
|
|
- :label="item.dictValue"
|
|
|
- :value="item.dictKey"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
+ <el-select v-model="formData.data.paymentMethod" placeholder="请选择" filterable style="width: 100%">
|
|
|
+ <el-option v-for="item in fundsPaymentMethod" :label="item.dictValue" :value="item.dictKey"> </el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="付款账户" prop="accountManagementId">
|
|
|
- <el-select
|
|
|
- v-model="formData.data.accountManagementId"
|
|
|
- placeholder="请选择"
|
|
|
- filterable
|
|
|
- style="width: 100%"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in accountData"
|
|
|
- :label="item.alias"
|
|
|
- :value="item.id"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
+ <el-select v-model="formData.data.accountManagementId" placeholder="请选择" filterable style="width: 100%">
|
|
|
+ <el-option v-for="item in accountData" :label="item.alias" :value="item.id"> </el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
@@ -284,28 +159,19 @@
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="银行账号" prop="accountOpening">
|
|
|
- <el-input
|
|
|
- v-model="formData.data.accountOpening"
|
|
|
- placeholder="请输入"
|
|
|
- />
|
|
|
+ <el-input v-model="formData.data.accountOpening" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row :gutter="10">
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="开户银行" prop="openingBank">
|
|
|
- <el-input
|
|
|
- v-model="formData.data.openingBank"
|
|
|
- placeholder="请输入"
|
|
|
- />
|
|
|
+ <el-input v-model="formData.data.openingBank" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="联行号 / SWIFT Code" prop="interbankNumber">
|
|
|
- <el-input
|
|
|
- v-model="formData.data.interbankNumber"
|
|
|
- placeholder="请输入"
|
|
|
- />
|
|
|
+ <el-input v-model="formData.data.interbankNumber" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -328,20 +194,12 @@ let formData = reactive({
|
|
|
},
|
|
|
});
|
|
|
let rules = ref({
|
|
|
- corporationId: [
|
|
|
- { required: true, message: "请选择归属公司", trigger: "change" },
|
|
|
- ],
|
|
|
- departmentId: [
|
|
|
- { required: true, message: "请选择归属部门", trigger: "change" },
|
|
|
- ],
|
|
|
+ corporationId: [{ required: true, message: "请选择归属公司", trigger: "change" }],
|
|
|
+ departmentId: [{ required: true, message: "请选择归属部门", trigger: "change" }],
|
|
|
type: [{ required: true, message: "请选择请款类型", trigger: "change" }],
|
|
|
- paymentTime: [
|
|
|
- { required: true, message: "请选择用款时间", trigger: "change" },
|
|
|
- ],
|
|
|
+ paymentTime: [{ required: true, message: "请选择用款时间", trigger: "change" }],
|
|
|
currency: [{ required: true, message: "请选择币种", trigger: "change" }],
|
|
|
- paymentMethod: [
|
|
|
- { required: true, message: "请选择付款方式", trigger: "change" },
|
|
|
- ],
|
|
|
+ paymentMethod: [{ required: true, message: "请选择付款方式", trigger: "change" }],
|
|
|
// accountManagementId: [
|
|
|
// { required: true, message: "请选择付款账号", trigger: "change" },
|
|
|
// ],
|
|
@@ -391,10 +249,7 @@ onMounted(() => {
|
|
|
// console.log(route.query.processType, props.queryData, "adada");
|
|
|
// }
|
|
|
setTimeout(() => {
|
|
|
- if (
|
|
|
- props.queryData &&
|
|
|
- (route.query.processType == 10 || route.query.processType == 20)
|
|
|
- ) {
|
|
|
+ if (props.queryData && (route.query.processType == 10 || route.query.processType == 20)) {
|
|
|
formData.data = props.queryData;
|
|
|
}
|
|
|
}, 2000);
|
|
@@ -409,17 +264,13 @@ const currencyType = ref([]);
|
|
|
const contractList = ref([]);
|
|
|
const getDictData = () => {
|
|
|
// 获取归属公司数据
|
|
|
- proxy
|
|
|
- .post("/corporation/page", { pageNum: 1, pageSize: 9999 })
|
|
|
- .then((res) => {
|
|
|
- companyData.value = res.rows;
|
|
|
- });
|
|
|
+ proxy.post("/corporation/page", { pageNum: 1, pageSize: 9999 }).then((res) => {
|
|
|
+ companyData.value = res.rows;
|
|
|
+ });
|
|
|
// 账户数据
|
|
|
- proxy
|
|
|
- .post("/accountManagement/page", { pageNum: 1, pageSize: 9999 })
|
|
|
- .then((res) => {
|
|
|
- accountData.value = res.rows;
|
|
|
- });
|
|
|
+ proxy.post("/accountManagement/page", { pageNum: 1, pageSize: 9999 }).then((res) => {
|
|
|
+ accountData.value = res.rows;
|
|
|
+ });
|
|
|
// 关联合同
|
|
|
proxy.post("/contract/page", { pageNum: 1, pageSize: 9999 }).then((res) => {
|
|
|
contractList.value = res.rows;
|
|
@@ -562,10 +413,9 @@ defineExpose({
|
|
|
});
|
|
|
</script>
|
|
|
|
|
|
-
|
|
|
<style lang="scss" scoped>
|
|
|
._t {
|
|
|
margin-bottom: 5px;
|
|
|
font-size: 14px;
|
|
|
}
|
|
|
-</style>
|
|
|
+</style>
|