pull/781/head
zy 2025-05-28 12:06:00 +08:00
parent a371f574e9
commit 6872426182
4 changed files with 49 additions and 27 deletions

View File

@ -272,6 +272,8 @@ const open = async (type: string, id?: number, customerId?: number, businessId?:
dialogVisible.value = true dialogVisible.value = true
dialogTitle.value = t('action.' + type) dialogTitle.value = t('action.' + type)
formType.value = type formType.value = type
//
customerList.value = await CustomerApi.getSelfCustomerSimpleList()
resetForm() resetForm()
// //
if (id) { if (id) {
@ -284,6 +286,7 @@ const open = async (type: string, id?: number, customerId?: number, businessId?:
} else { } else {
console.log('%csrc/views/crm/contact/ContactForm.vue:229 customerId', 'color: #007acc;', customerId); console.log('%csrc/views/crm/contact/ContactForm.vue:229 customerId', 'color: #007acc;', customerId);
if (customerId) { if (customerId) {
changeCustomerId(customerId)
formData.value.customerId = customerId formData.value.customerId = customerId
formData.value.customerDefault = true // formData.value.customerDefault = true //
} }
@ -295,8 +298,7 @@ const open = async (type: string, id?: number, customerId?: number, businessId?:
} }
// //
contactList.value = await ContactApi.getSimpleContactList() contactList.value = await ContactApi.getSimpleContactList()
//
customerList.value = await CustomerApi.getSelfCustomerSimpleList()
// //
areaList.value = await AreaApi.getAreaTree() areaList.value = await AreaApi.getAreaTree()
// //
@ -336,6 +338,7 @@ const submitForm = async () => {
const changeCustomerId = (val) => { const changeCustomerId = (val) => {
let arr = customerList.value.filter(v => v.id === val) let arr = customerList.value.filter(v => v.id === val)
console.log('%csrc/views/crm/contact/ContactForm.vue:341 arr', 'color: #007acc;', arr,customerList.value);
if(arr.length) formData.value.registeredAddress = arr[0]['registeredAddress'] if(arr.length) formData.value.registeredAddress = arr[0]['registeredAddress']
} }

View File

@ -928,13 +928,13 @@ const onCustomerChange = async (customerId: string) => {
try { try {
formLoading.value = true; formLoading.value = true;
let customerRes
if(formType.value) { // if(formType.value) {
customerRes = await CustomerApi.getCustomer(customerId); // customerRes = await CustomerApi.getCustomer(customerId);
}else { // }else {
customerRes = await CustomerApi.getCustomerDetail(customerId); let customerRes = await CustomerApi.getCustomerDetail(customerId);
formData.value.quotationId = customerRes.quotationId; formData.value.quotationId = customerRes.quotationId;
} // }
formData.value.companyType = customerRes.companyType; formData.value.companyType = customerRes.companyType;
formData.value.listingStatus = customerRes.listingStatus; formData.value.listingStatus = customerRes.listingStatus;
formData.value.financingInfo = customerRes.financingInfo; formData.value.financingInfo = customerRes.financingInfo;
@ -954,9 +954,9 @@ const onCustomerChange = async (customerId: string) => {
formData.value.registeredAddress = customerRes.registeredAddress; formData.value.registeredAddress = customerRes.registeredAddress;
formData.value.afterSaleUserId = customerRes.maintainer; formData.value.afterSaleUserId = customerRes.maintainer;
formData.value.clueDeveloper = customerRes.clueDeveloper; formData.value.clueDeveloper = customerRes.clueDeveloper;
formData.value.servicor = quotation.servicor; formData.value.servicor = customerRes.servicor;
formData.value.technicalLead = quotation.technicalLead; formData.value.technicalLead = customerRes.technicalLead;
formData.value.settlementLead = quotation.settlementLead; formData.value.settlementLead = customerRes.settlementLead;
await handleQuotationChange(customerRes.quotationId); await handleQuotationChange(customerRes.quotationId);
} catch (err) { } catch (err) {
@ -1018,9 +1018,14 @@ onMounted(async () => {
if (formType.value) await open(formType.value) if (formType.value) await open(formType.value)
} }
route.query.bizId ? formData.value.customerId = Number(route.query.bizId) : '' if(route.query.bizId) {
if(formData.value.customerId) onCustomerChange(formData.value.customerId) formData.value.customerId = Number(route.query.bizId)
onCustomerChange(formData.value.customerId)
}
// if(formData.value.customerId) onCustomerChange(formData.value.customerId)
// //
customerList.value = await CustomerApi.getSelfCustomerSimpleList() customerList.value = await CustomerApi.getSelfCustomerSimpleList()
// //

View File

@ -518,9 +518,10 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="拓展人" prop="expanderUserId"> <el-form-item label="拓展人" prop="expanderUserId">
<el-select <el-select
class="w-1/1" class="w-1/1"
placeholder="请选择拓展人" placeholder="请选择拓展人"
v-model="formData.expanderUserId" v-model="formData.expanderUserId"
:disabled="formFields.expanderUserId !== 2 || isTrue"
filterable filterable
> >
<el-option <el-option
@ -537,8 +538,9 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="服务对接人" prop="servicor"> <el-form-item label="服务对接人" prop="servicor">
<el-select <el-select
class="w-1/1" class="w-1/1"
placeholder="请选择服务对接人" :disabled="formFields.servicor !== 2 || isTrue"
placeholder="请选择服务对接人"
v-model="formData.servicor" v-model="formData.servicor"
filterable filterable
> >
@ -556,8 +558,9 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="技术对接人" prop="technicalLead"> <el-form-item label="技术对接人" prop="technicalLead">
<el-select <el-select
class="w-1/1" :disabled="formFields.technicalLead !== 2 || isTrue"
placeholder="请选择技术对接人" class="w-1/1"
placeholder="请选择技术对接人"
v-model="formData.technicalLead" v-model="formData.technicalLead"
filterable filterable
> >
@ -575,7 +578,8 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="结算对接人" prop="settlementLead"> <el-form-item label="结算对接人" prop="settlementLead">
<el-select <el-select
class="w-1/1" class="w-1/1"
:disabled="formFields.settlementLead !== 2 || isTrue"
placeholder="请选择结算对接人" placeholder="请选择结算对接人"
v-model="formData.settlementLead" v-model="formData.settlementLead"
filterable filterable

View File

@ -113,7 +113,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="当事人用户ID" prop="relatedPerson"> <el-form-item label="当事人" prop="relatedPerson">
<el-select <el-select
v-model="formData.relatedPerson" v-model="formData.relatedPerson"
class="w-1/1" class="w-1/1"
@ -144,13 +144,13 @@
<el-col :span="24"> <el-col :span="24">
<el-form-item label="反馈主体" prop="feedbackCompanyEntity"> <el-form-item label="反馈主体" prop="feedbackCompanyEntity">
<el-input type="textarea" :rows="5" v-model="formData.feedbackCompanyEntity" placeholder="请输入反馈主体" /> <el-input maxlength="15" v-model="formData.feedbackCompanyEntity" placeholder="请输入反馈主体" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="反馈内容" prop="feedbackContent"> <el-form-item label="反馈内容" prop="feedbackContent">
<el-input type="textarea" :rows="5" v-model="formData.feedbackContent" placeholder="请输入反馈主体" /> <el-input type="textarea" :rows="5" maxlength="300" v-model="formData.feedbackContent" placeholder="请输入反馈主体" />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -210,15 +210,25 @@ const formData = ref({
attachment: undefined, attachment: undefined,
}) })
const formRules = reactive({ const formRules = reactive({
customerId: [{ required: true, message: '客户ID不能为空', trigger: 'blur' }], customerId: [{ required: true, message: '客户不能为空', trigger: 'blur' }],
contactId: [{ required: true, message: '反馈联系人ID不能为空', trigger: 'blur' }], contactId: [{ required: true, message: '反馈联系人不能为空', trigger: 'blur' }],
mobile: [{ required: true, message: '联系电话不能为空', trigger: 'blur' }], mobile: [{ required: true, message: '联系电话不能为空', trigger: 'blur' },
{pattern: /^(1[3-9][0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/, message: '请输入正确联系电话'}
],
feedbackType: [{ required: true, message: '反馈类型不能为空', trigger: 'change' }], feedbackType: [{ required: true, message: '反馈类型不能为空', trigger: 'change' }],
feedbackLevel: [{ required: true, message: '反馈级别不能为空', trigger: 'blur' }], feedbackLevel: [{ required: true, message: '反馈级别不能为空', trigger: 'blur' }],
urgencyLevel: [{ required: true, message: '紧急程度不能为空', trigger: 'blur' }], urgencyLevel: [{ required: true, message: '紧急程度不能为空', trigger: 'blur' }],
feedbackTime: [{ required: true, message: '反馈时间不能为空', trigger: 'blur' }], feedbackTime: [{ required: true, message: '反馈时间不能为空', trigger: 'blur' }],
feedbackCompanyEntity: [{ required: true, message: '反馈主体不能为空', trigger: 'blur' }], feedbackCompanyEntity: [{ required: true, message: '反馈主体不能为空', trigger: 'blur' }],
feedbackContent: [{ required: true, message: '反馈内容不能为空', trigger: 'blur' }], feedbackContent: [{ required: true, message: '反馈内容不能为空', trigger: 'blur' }],
deptId: [{ required: true, message: '所属部门不能为空', trigger: 'blur' }],
email: [{ required: false, message: '电子邮箱不能为空', trigger: 'blur' } ,
{
pattern:
/^(([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})$/,
message: "请输入正确的电子邮箱",
}
]
}) })
const formRef = ref() // Ref const formRef = ref() // Ref