Forráskód Böngészése

✨ CRM:完善合同的新增、修改需求

YunaiV 1 éve
szülő
commit
3bfdb2df33
1 módosított fájl, 30 hozzáadás és 6 törlés
  1. 30 6
      src/views/crm/contract/ContractForm.vue

+ 30 - 6
src/views/crm/contract/ContractForm.vue

@@ -38,7 +38,12 @@
       <el-row>
         <el-col :span="8">
           <el-form-item label="客户名称" prop="customerId">
-            <el-select v-model="formData.customerId" placeholder="请选择客户" class="w-1/1">
+            <el-select
+              v-model="formData.customerId"
+              placeholder="请选择客户"
+              class="w-1/1"
+              @change="handleCustomerChange"
+            >
               <el-option
                 v-for="item in customerList"
                 :key="item.id"
@@ -50,7 +55,12 @@
         </el-col>
         <el-col :span="8">
           <el-form-item label="商机名称" prop="businessId">
-            <el-select :disabled="!formData.customerId" v-model="formData.businessId" class="w-1/1">
+            <el-select
+              @change="handleBusinessChange"
+              :disabled="!formData.customerId"
+              v-model="formData.businessId"
+              class="w-1/1"
+            >
               <el-option
                 v-for="item in getBusinessOptions"
                 :key="item.id"
@@ -192,6 +202,7 @@ import * as BusinessApi from '@/api/crm/business'
 import { erpPriceInputFormatter, erpPriceMultiply } from '@/utils'
 import { useUserStore } from '@/store/modules/user'
 import ContractProductForm from '@/views/crm/contract/components/ContractProductForm.vue'
+import { bu } from '../../../../dist-prod/assets/index-9eac537b'
 
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗
@@ -333,15 +344,28 @@ const resetForm = () => {
   formRef.value?.resetFields()
 }
 
-// TODO 芋艿:切换客户时,需要 reset 关联的几个字段
-// TODO 芋艿:选择商机时,需要自动设置
+/** 处理切换客户 */
+const handleCustomerChange = () => {
+  formData.value.businessId = undefined
+  formData.value.signContactId = undefined
+  formData.value.products = []
+}
+
+/** 处理商机变化 */
+const handleBusinessChange = async (businessId: number) => {
+  const business = await BusinessApi.getBusiness(businessId)
+  business.products.forEach((item) => {
+    item.contractPrice = item.businessPrice
+  })
+  formData.value.products = business.products
+}
 
 /** 动态获取客户联系人 */
 const getContactOptions = computed(() =>
-  contactList.value.filter((item) => item.customerId === formData.value.customerId)
+  contactList.value.filter((item) => item.customerId == formData.value.customerId)
 )
 /** 动态获取商机 */
 const getBusinessOptions = computed(() =>
-  businessList.value.filter((item) => item.customerId === formData.value.customerId)
+  businessList.value.filter((item) => item.customerId == formData.value.customerId)
 )
 </script>