Skip to content

Commit 3bfdb2d

Browse files
committed
✨ CRM:完善合同的新增、修改需求
1 parent 9d44b9a commit 3bfdb2d

File tree

1 file changed

+30
-6
lines changed

1 file changed

+30
-6
lines changed

src/views/crm/contract/ContractForm.vue

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,12 @@
3838
<el-row>
3939
<el-col :span="8">
4040
<el-form-item label="客户名称" prop="customerId">
41-
<el-select v-model="formData.customerId" placeholder="请选择客户" class="w-1/1">
41+
<el-select
42+
v-model="formData.customerId"
43+
placeholder="请选择客户"
44+
class="w-1/1"
45+
@change="handleCustomerChange"
46+
>
4247
<el-option
4348
v-for="item in customerList"
4449
:key="item.id"
@@ -50,7 +55,12 @@
5055
</el-col>
5156
<el-col :span="8">
5257
<el-form-item label="商机名称" prop="businessId">
53-
<el-select :disabled="!formData.customerId" v-model="formData.businessId" class="w-1/1">
58+
<el-select
59+
@change="handleBusinessChange"
60+
:disabled="!formData.customerId"
61+
v-model="formData.businessId"
62+
class="w-1/1"
63+
>
5464
<el-option
5565
v-for="item in getBusinessOptions"
5666
:key="item.id"
@@ -192,6 +202,7 @@ import * as BusinessApi from '@/api/crm/business'
192202
import { erpPriceInputFormatter, erpPriceMultiply } from '@/utils'
193203
import { useUserStore } from '@/store/modules/user'
194204
import ContractProductForm from '@/views/crm/contract/components/ContractProductForm.vue'
205+
import { bu } from '../../../../dist-prod/assets/index-9eac537b'
195206
196207
const { t } = useI18n() // 国际化
197208
const message = useMessage() // 消息弹窗
@@ -333,15 +344,28 @@ const resetForm = () => {
333344
formRef.value?.resetFields()
334345
}
335346
336-
// TODO 芋艿:切换客户时,需要 reset 关联的几个字段
337-
// TODO 芋艿:选择商机时,需要自动设置
347+
/** 处理切换客户 */
348+
const handleCustomerChange = () => {
349+
formData.value.businessId = undefined
350+
formData.value.signContactId = undefined
351+
formData.value.products = []
352+
}
353+
354+
/** 处理商机变化 */
355+
const handleBusinessChange = async (businessId: number) => {
356+
const business = await BusinessApi.getBusiness(businessId)
357+
business.products.forEach((item) => {
358+
item.contractPrice = item.businessPrice
359+
})
360+
formData.value.products = business.products
361+
}
338362
339363
/** 动态获取客户联系人 */
340364
const getContactOptions = computed(() =>
341-
contactList.value.filter((item) => item.customerId === formData.value.customerId)
365+
contactList.value.filter((item) => item.customerId == formData.value.customerId)
342366
)
343367
/** 动态获取商机 */
344368
const getBusinessOptions = computed(() =>
345-
businessList.value.filter((item) => item.customerId === formData.value.customerId)
369+
businessList.value.filter((item) => item.customerId == formData.value.customerId)
346370
)
347371
</script>

0 commit comments

Comments
 (0)