Skip to content

Commit 3660cd2

Browse files
author
puhui999
committed
CRM: 完善回款合同回款计划编辑合同回显
1 parent a31c995 commit 3660cd2

File tree

4 files changed

+30
-24
lines changed

4 files changed

+30
-24
lines changed

src/api/crm/receivable/index.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,20 @@ import request from '@/config/axios'
33
export interface ReceivableVO {
44
id: number
55
no: string
6-
planId: number
7-
customerId: number
6+
planId?: number
7+
customerId?: number
88
customerName?: string
9-
contractId: number
9+
contractId?: number
1010
contract?: {
11+
id?: number
12+
name?: string
1113
no: string
1214
totalPrice: number
1315
}
1416
auditStatus: number
1517
processInstanceId: number
1618
returnTime: Date
17-
returnType: string
19+
returnType: number
1820
price: number
1921
ownerUserId: number
2022
ownerUserName?: string

src/api/crm/receivable/plan/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export interface ReceivablePlanVO {
1111
remindTime: Date
1212
customerId: number
1313
customerName?: string
14-
contractId: number
14+
contractId?: number
1515
contractNo?: string
1616
ownerUserId: number
1717
ownerUserName?: string

src/views/crm/receivable/ReceivableForm.vue

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<el-row>
1111
<el-col :span="12">
1212
<el-form-item label="回款编号" prop="no">
13-
<el-input disabled v-model="formData.no" placeholder="保存时自动生成" />
13+
<el-input v-model="formData.no" disabled placeholder="保存时自动生成" />
1414
</el-form-item>
1515
</el-col>
1616
<el-col :span="12">
@@ -38,8 +38,8 @@
3838
:disabled="formType !== 'create'"
3939
class="w-1/1"
4040
filterable
41-
@change="handleCustomerChange"
4241
placeholder="请选择客户"
42+
@change="handleCustomerChange"
4343
>
4444
<el-option
4545
v-for="item in customerList"
@@ -57,15 +57,15 @@
5757
:disabled="formType !== 'create' || !formData.customerId"
5858
class="w-1/1"
5959
filterable
60-
@change="handleContractChange"
6160
placeholder="请选择合同"
61+
@change="handleContractChange"
6262
>
6363
<el-option
6464
v-for="data in contractList"
6565
:key="data.id"
66+
:disabled="data.auditStatus !== 20"
6667
:label="data.name"
6768
:value="data.id!"
68-
:disabled="data.auditStatus !== 20"
6969
/>
7070
</el-select>
7171
</el-form-item>
@@ -78,15 +78,15 @@
7878
v-model="formData.planId"
7979
:disabled="formType !== 'create' || !formData.contractId"
8080
class="!w-1/1"
81-
@change="handleReceivablePlanChange"
8281
placeholder="请选择回款期数"
82+
@change="handleReceivablePlanChange"
8383
>
8484
<el-option
8585
v-for="data in receivablePlanList"
8686
:key="data.id"
87+
:disabled="data.receivableId"
8788
:label="'第 ' + data.period + ' 期'"
8889
:value="data.id!"
89-
:disabled="data.receivableId"
9090
/>
9191
</el-select>
9292
</el-form-item>
@@ -109,11 +109,11 @@
109109
<el-form-item label="回款金额" prop="price">
110110
<el-input-number
111111
v-model="formData.price"
112+
:min="0.01"
113+
:precision="2"
112114
class="!w-100%"
113115
controls-position="right"
114116
placeholder="请输入回款金额"
115-
:min="0.01"
116-
:precision="2"
117117
/>
118118
</el-form-item>
119119
</el-col>
@@ -145,12 +145,12 @@
145145
<script lang="ts" setup>
146146
import * as ReceivablePlanApi from '@/api/crm/receivable/plan'
147147
import * as ReceivableApi from '@/api/crm/receivable'
148+
import { ReceivableVO } from '@/api/crm/receivable'
148149
import * as UserApi from '@/api/system/user'
149150
import * as CustomerApi from '@/api/crm/customer'
150151
import * as ContractApi from '@/api/crm/contract'
151152
import { useUserStore } from '@/store/modules/user'
152153
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
153-
import form from '@/components/Form/src/Form.vue'
154154
155155
const { t } = useI18n() // 国际化
156156
const message = useMessage() // 消息弹窗
@@ -185,9 +185,10 @@ const open = async (
185185
if (id) {
186186
formLoading.value = true
187187
try {
188-
formData.value = await ReceivableApi.getReceivable(id)
189-
await handleCustomerChange(formData.value.customerId)
190-
formData.value.contractId = formData.value.contract.id
188+
const data = (await ReceivableApi.getReceivable(id)) as ReceivableVO
189+
formData.value = data
190+
await handleCustomerChange(data.customerId!)
191+
formData.value.contractId = data?.contract?.id
191192
} finally {
192193
formLoading.value = false
193194
}
@@ -266,7 +267,7 @@ const handleContractChange = async (contractId: number) => {
266267
// 获得回款计划列表
267268
receivablePlanList.value = []
268269
receivablePlanList.value = await ReceivablePlanApi.getReceivablePlanSimpleList(
269-
formData.value.customerId,
270+
formData.value.customerId!,
270271
contractId
271272
)
272273
// 设置金额

src/views/crm/receivable/plan/ReceivablePlanForm.vue

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<el-row>
1111
<el-col :span="12">
1212
<el-form-item label="还款期数" prop="period">
13-
<el-input disabled v-model="formData.period" placeholder="保存时自动生成" />
13+
<el-input v-model="formData.period" disabled placeholder="保存时自动生成" />
1414
</el-form-item>
1515
</el-col>
1616
<el-col :span="12">
@@ -38,8 +38,8 @@
3838
:disabled="formType !== 'create'"
3939
class="w-1/1"
4040
filterable
41-
@change="handleCustomerChange"
4241
placeholder="请选择客户"
42+
@change="handleCustomerChange"
4343
>
4444
<el-option
4545
v-for="item in customerList"
@@ -74,11 +74,11 @@
7474
<el-form-item label="计划回款金额" prop="price">
7575
<el-input-number
7676
v-model="formData.price"
77+
:min="0.01"
78+
:precision="2"
7779
class="!w-100%"
7880
controls-position="right"
7981
placeholder="请输入计划回款金额"
80-
:min="0.01"
81-
:precision="2"
8282
/>
8383
</el-form-item>
8484
</el-col>
@@ -136,7 +136,7 @@ import * as CustomerApi from '@/api/crm/customer'
136136
import * as ContractApi from '@/api/crm/contract'
137137
import { useUserStore } from '@/store/modules/user'
138138
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
139-
import { aw } from '../../../../../dist-prod/assets/index-9eac537b'
139+
import { cloneDeep } from 'lodash-es'
140140
141141
const { t } = useI18n() // 国际化
142142
const message = useMessage() // 消息弹窗
@@ -167,7 +167,10 @@ const open = async (type: string, id?: number, customerId?: number, contractId?:
167167
if (id) {
168168
formLoading.value = true
169169
try {
170-
formData.value = await ReceivablePlanApi.getReceivablePlan(id)
170+
const data = await ReceivablePlanApi.getReceivablePlan(id)
171+
formData.value = cloneDeep(data)
172+
await handleCustomerChange(data.customerId!)
173+
formData.value.contractId = data?.contractId
171174
} finally {
172175
formLoading.value = false
173176
}

0 commit comments

Comments
 (0)