|
38 | 38 | <el-row>
|
39 | 39 | <el-col :span="8">
|
40 | 40 | <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 | + > |
42 | 47 | <el-option
|
43 | 48 | v-for="item in customerList"
|
44 | 49 | :key="item.id"
|
|
50 | 55 | </el-col>
|
51 | 56 | <el-col :span="8">
|
52 | 57 | <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 | + > |
54 | 64 | <el-option
|
55 | 65 | v-for="item in getBusinessOptions"
|
56 | 66 | :key="item.id"
|
@@ -192,6 +202,7 @@ import * as BusinessApi from '@/api/crm/business'
|
192 | 202 | import { erpPriceInputFormatter, erpPriceMultiply } from '@/utils'
|
193 | 203 | import { useUserStore } from '@/store/modules/user'
|
194 | 204 | import ContractProductForm from '@/views/crm/contract/components/ContractProductForm.vue'
|
| 205 | +import { bu } from '../../../../dist-prod/assets/index-9eac537b' |
195 | 206 |
|
196 | 207 | const { t } = useI18n() // 国际化
|
197 | 208 | const message = useMessage() // 消息弹窗
|
@@ -333,15 +344,28 @@ const resetForm = () => {
|
333 | 344 | formRef.value?.resetFields()
|
334 | 345 | }
|
335 | 346 |
|
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 | +} |
338 | 362 |
|
339 | 363 | /** 动态获取客户联系人 */
|
340 | 364 | const getContactOptions = computed(() =>
|
341 |
| - contactList.value.filter((item) => item.customerId === formData.value.customerId) |
| 365 | + contactList.value.filter((item) => item.customerId == formData.value.customerId) |
342 | 366 | )
|
343 | 367 | /** 动态获取商机 */
|
344 | 368 | const getBusinessOptions = computed(() =>
|
345 |
| - businessList.value.filter((item) => item.customerId === formData.value.customerId) |
| 369 | + businessList.value.filter((item) => item.customerId == formData.value.customerId) |
346 | 370 | )
|
347 | 371 | </script>
|
0 commit comments