From 9d9292898ae8c040ed52d08faf0bcbee43c2c9da Mon Sep 17 00:00:00 2001 From: zy Date: Sun, 25 May 2025 20:14:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E6=9C=BA-=E5=AE=A2=E6=88=B7-=E5=8F=98?= =?UTF-8?q?=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/SelectCustomer/src/index.vue | 1 - src/components/UploadFile/src/UploadFile.vue | 9 +- src/components/product/index.vue | 2 - src/views/crm/backlog/index.vue | 6 +- src/views/crm/business/BusinessForm.vue | 50 ++++--- .../components/BusinessProductForm.vue | 70 +++++---- .../business/detail/BusinessDetailsHeader.vue | 4 +- src/views/crm/business/detail/index.vue | 8 +- src/views/crm/business/index.vue | 20 +-- src/views/crm/contact/ContactForm.vue | 9 +- .../crm/contact/components/ContactList.vue | 4 +- .../crm/contact/detail/ContactDetailsInfo.vue | 30 ++-- src/views/crm/contact/detail/index.vue | 24 +-- src/views/crm/contact/index.vue | 8 +- src/views/crm/contract/ContractChange.vue | 14 +- src/views/crm/contract/ContractForm.vue | 23 ++- .../crm/contract/components/ContracStop.vue | 35 +++-- .../contract/components/ContractExtension.vue | 102 ++++++++----- .../crm/contract/components/ContractList.vue | 2 +- .../contract/detail/ContractChangeDetail.vue | 4 +- src/views/crm/contract/index.vue | 23 +-- .../customer/detail/ComplaintsSuggestion.vue | 4 +- .../crm/feedback/CustomerFeedbackDetail.vue | 8 +- .../crm/feedback/CustomerFeedbackForm.vue | 3 +- src/views/crm/feedback/index.vue | 4 +- src/views/crm/followup/FollowUpRecordForm.vue | 2 +- src/views/crm/followup/index.vue | 2 +- src/views/crm/quotation/QuotationForm.vue | 59 +++++--- src/views/crm/quotation/index.vue | 22 +-- .../organizations/OrganizationsForm.vue | 27 +++- src/views/system/organizations/index.vue | 139 ++++-------------- 31 files changed, 354 insertions(+), 364 deletions(-) diff --git a/src/components/SelectCustomer/src/index.vue b/src/components/SelectCustomer/src/index.vue index 692949431..70e5642b5 100644 --- a/src/components/SelectCustomer/src/index.vue +++ b/src/components/SelectCustomer/src/index.vue @@ -126,7 +126,6 @@ watch(allFilterEvents, () => { }, { immediate: true, deep: true }) const loadmore = () => { - console.log('%csrc/components/SelectCustomer/src/index.vue:116 123', 'color: #007acc;', 123); if (props.customerList.length <= options.value.length) return; pageNo.value++; nextTick(() => { diff --git a/src/components/UploadFile/src/UploadFile.vue b/src/components/UploadFile/src/UploadFile.vue index 882f21c90..c180fcc2f 100644 --- a/src/components/UploadFile/src/UploadFile.vue +++ b/src/components/UploadFile/src/UploadFile.vue @@ -25,11 +25,8 @@ 选取文件 diff --git a/src/views/crm/contract/ContractChange.vue b/src/views/crm/contract/ContractChange.vue index 8a02f9a15..d3078a91e 100644 --- a/src/views/crm/contract/ContractChange.vue +++ b/src/views/crm/contract/ContractChange.vue @@ -65,9 +65,9 @@ --> - + { processInstanceId: undefined, auditStatus: undefined, startTime: undefined, - endTime: undefined, + agreementDeadline: undefined, penaltyRate: undefined, latePaymentRate: undefined, settleMethod: undefined, diff --git a/src/views/crm/contract/ContractForm.vue b/src/views/crm/contract/ContractForm.vue index e7a5f869e..a9fd74fd1 100644 --- a/src/views/crm/contract/ContractForm.vue +++ b/src/views/crm/contract/ContractForm.vue @@ -11,15 +11,16 @@ 基础信息 - + - + + + + + + - + @@ -703,6 +705,9 @@ const formRules = reactive({ latePaymentRate: [{ required: true, message: '延期付款利率不能为空', trigger: 'blur' }], collUserId: [{ required: true, message: '协作人不能为空', trigger: 'blur' }], settleMethod: [{ required: true, message: '财务结算方式不能为空', trigger: 'change' }], + servicor: [{ required: true, message: '服务对接人不能为空', trigger: 'change' }], + technicalLead: [{ required: true, message: '技术对接人不能为空', trigger: 'change' }], + settlementLead: [{ required: true, message: '结算对接人不能为空', trigger: 'change' }], }) const formRef = ref() // 表单 Ref const userOptions = ref([]) // 用户列表 @@ -991,6 +996,10 @@ onMounted(async () => { if (formType.value) await open(formType.value) } + + formData.value.customerId = Number(route.query.bizId) || '' + + if(formData.value.customerId) onCustomerChange(formData.value.customerId) // 获得客户列表 customerList.value = await CustomerApi.getCustomerSimpleList() // 获得用户列表 diff --git a/src/views/crm/contract/components/ContracStop.vue b/src/views/crm/contract/components/ContracStop.vue index 25ab0d4d6..0b0acada3 100644 --- a/src/views/crm/contract/components/ContracStop.vue +++ b/src/views/crm/contract/components/ContracStop.vue @@ -1,43 +1,45 @@ @@ -55,7 +57,10 @@ import { propTypes } from '@/utils/propTypes' /** CRM 方案报价 表单 */ defineOptions({ name: 'QuotationForm' }) - +const props = defineProps<{ + formFields: {}, + isTrue: false +}>() const { t } = useI18n() // 国际化 const message = useMessage() // 消息弹窗 const customerList = ref([]) // 客户列表的数据 diff --git a/src/views/crm/contract/components/ContractExtension.vue b/src/views/crm/contract/components/ContractExtension.vue index ebe3344b6..3efbab6c7 100644 --- a/src/views/crm/contract/components/ContractExtension.vue +++ b/src/views/crm/contract/components/ContractExtension.vue @@ -1,12 +1,13 @@ @@ -205,7 +225,7 @@ const formData = ref({ pricingUserId: undefined, signUserId: undefined, signPhoneNumber: undefined, - signEmail: undefined, + note: undefined, signWechat: undefined, paymentTerm: undefined, creditMethod: undefined, @@ -254,7 +274,9 @@ const subTabsName = ref('quotationProduct') const quotationProductFormRef = ref() const props = defineProps<{ - data: undefined + data: undefined, + formFields: {}, + isTrue: false }>() /** 监听主表的关联字段的变化,加载对应的子表数据 */ @@ -336,8 +358,8 @@ const onPartnerChange = async (id: string) => { } const changeYear = (val) => { - if (formData.value.extensionYears && formData.value.endTime) { - let time = new Date(formData.value.endTime) + if (formData.value.extensionYears && formData.value.agreementDeadline) { + let time = new Date(formData.value.agreementDeadline) let year = time.getFullYear() let month = time.getMonth() + 1 let day = time.getDate() diff --git a/src/views/crm/contract/components/ContractList.vue b/src/views/crm/contract/components/ContractList.vue index 6aa587716..7490ed34f 100644 --- a/src/views/crm/contract/components/ContractList.vue +++ b/src/views/crm/contract/components/ContractList.vue @@ -114,7 +114,7 @@ const handleQuery = () => { /** 添加 */ const formRef = ref() const openForm = () => { - push({ name: 'CrmContractAdd' }) + push({ name: 'CrmContractAdd', query: { bizId: props.bizId } }) } /** 打开合同详情 */ diff --git a/src/views/crm/contract/detail/ContractChangeDetail.vue b/src/views/crm/contract/detail/ContractChangeDetail.vue index 26ea72ac4..5f3274714 100644 --- a/src/views/crm/contract/detail/ContractChangeDetail.vue +++ b/src/views/crm/contract/detail/ContractChangeDetail.vue @@ -105,8 +105,8 @@ - - + + diff --git a/src/views/crm/contract/index.vue b/src/views/crm/contract/index.vue index a32358760..b112e8ff8 100644 --- a/src/views/crm/contract/index.vue +++ b/src/views/crm/contract/index.vue @@ -8,6 +8,9 @@ class="-mb-15px" label-width="68px" > + + + - - - - + diff --git a/src/views/crm/customer/detail/ComplaintsSuggestion.vue b/src/views/crm/customer/detail/ComplaintsSuggestion.vue index 05a616f3c..b25a31905 100644 --- a/src/views/crm/customer/detail/ComplaintsSuggestion.vue +++ b/src/views/crm/customer/detail/ComplaintsSuggestion.vue @@ -158,9 +158,7 @@ const route = useRouter() const getList = async () => { loading.value = true try { - console.log('%csrc/views/crm/customer/detail/ComplaintsSuggestion.vue:159 route', 'color: #007acc;', route); queryParams.customerId = props.bizId - console.log('%csrc/views/crm/customer/detail/ComplaintsSuggestion.vue:163 queryParams', 'color: #007acc;', queryParams); const data = await CustomerFeedbackApi.getCustomerFeedbackPage(queryParams) list.value = data.list total.value = data.total @@ -208,7 +206,7 @@ const formRef = ref() // } const router = useRouter() // 路由 const openFormAdd = () => { - router.push({ name: 'CustomerFeedbackCreate' }) + router.push({ name: 'CustomerFeedbackCreate', query: { bizId: props.bizId } }) } const openFormEdit = (row: Object) => { diff --git a/src/views/crm/feedback/CustomerFeedbackDetail.vue b/src/views/crm/feedback/CustomerFeedbackDetail.vue index 9945b36b5..d753d0089 100644 --- a/src/views/crm/feedback/CustomerFeedbackDetail.vue +++ b/src/views/crm/feedback/CustomerFeedbackDetail.vue @@ -193,6 +193,7 @@ import { defaultProps, handleTree } from '@/utils/tree' import * as DeptApi from '@/api/system/dept' import * as UserApi from '@/api/system/user' import { getLimitForm } from '@/api/bpm/form' +import { propTypes } from '@/utils/propTypes' /** 客户反馈 表单 */ defineOptions({ name: 'CustomerFeedbackForm' }) @@ -200,7 +201,10 @@ defineOptions({ name: 'CustomerFeedbackForm' }) const { t } = useI18n() // 国际化 const message = useMessage() // 消息弹窗 const { proxy }: any = getCurrentInstance(); - +const props = defineProps({ + id: propTypes.number.def(undefined), + type: propTypes.number.def(undefined), +}) const isTrue = ref(false) const userOptions = ref([]) // 用户列表 const userList = ref([]) //用户列表 @@ -359,7 +363,7 @@ const getLimit = async () => { const route = useRoute(); onMounted(async() => { isTrue.value = !!route.query.isDetail - formType.value = route.query.id + formType.value = props.id || route.query.id if (formType.value) await open(formType.value) diff --git a/src/views/crm/feedback/CustomerFeedbackForm.vue b/src/views/crm/feedback/CustomerFeedbackForm.vue index 1c178e991..344788187 100644 --- a/src/views/crm/feedback/CustomerFeedbackForm.vue +++ b/src/views/crm/feedback/CustomerFeedbackForm.vue @@ -11,7 +11,7 @@ - + @@ -301,6 +301,7 @@ const resetForm = () => { const route = useRoute(); onMounted(async() => { + formData.value.customerId = Number(route.query.bizId) || '' formType.value = route.query.id if (formType.value) await open(formType.value) diff --git a/src/views/crm/feedback/index.vue b/src/views/crm/feedback/index.vue index 1664d879d..5102949c5 100644 --- a/src/views/crm/feedback/index.vue +++ b/src/views/crm/feedback/index.vue @@ -50,7 +50,7 @@ > 新增 - 导出 - + --> diff --git a/src/views/crm/followup/FollowUpRecordForm.vue b/src/views/crm/followup/FollowUpRecordForm.vue index 6eb8b1f87..7862422b4 100644 --- a/src/views/crm/followup/FollowUpRecordForm.vue +++ b/src/views/crm/followup/FollowUpRecordForm.vue @@ -138,7 +138,7 @@ const submitForm = async () => { ...formData.value, contactIds: formData.value.contacts.map((item) => item.id), businessIds: formData.value.businesses.map((item) => item.id), - fileUrls: [formData.value.fileUrls] + fileUrls: formData.value.fileUrls ? [formData.value.fileUrls] : [] } as unknown as FollowUpRecordVO await FollowUpRecordApi.createFollowUpRecord(data) message.success(t('common.createSuccess')) diff --git a/src/views/crm/followup/index.vue b/src/views/crm/followup/index.vue index 709ae23ab..0895fd7ec 100644 --- a/src/views/crm/followup/index.vue +++ b/src/views/crm/followup/index.vue @@ -40,7 +40,7 @@ - -