From b9cdabe04591781218892a41464acc6db02d7e68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=AB=E5=9C=B0=E5=83=A7?= <357099073@qq.com> Date: Fri, 11 Sep 2026 00:22:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=90=84=E9=A1=B9=E5=86=85?= =?UTF-8?q?=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/src/api/crm.js | 5 - .../apps/crm/contact/components/edit.vue | 54 +- backend/src/views/apps/crm/contact/index.vue | 67 +- .../apps/crm/customer/components/edit.vue | 587 ++++++++++++------ .../customer/components/smartAddCompany.vue | 520 ++++++++++++++++ backend/src/views/apps/crm/customer/index.vue | 40 +- backend/src/views/apps/crm/pool/index.vue | 25 +- .../apps/crm/supplier/components/edit.vue | 581 +++++++++++------ .../supplier/components/smartAddCompany.vue | 520 ++++++++++++++++ backend/src/views/apps/crm/supplier/index.vue | 40 +- .../apps/erp/components/smartAddCompany.vue | 67 ++ go/controllers/backend_ai_chat.go | 87 ++- go/controllers/backend_ai_smart_generate.go | 31 +- go/controllers/backend_crm_contact.go | 495 +++++++++++++++ go/controllers/backend_crm_permission.go | 72 +++ go/controllers/backend_crm_pool.go | 268 ++++++++ go/controllers/backend_erp_customer.go | 23 +- go/controllers/backend_erp_supplier.go | 17 + go/database/init_mysql.sql | 8 + go/models/erp_company_contact.go | 4 +- go/models/init.go | 46 ++ go/models/tenant_crm_customer.go | 8 + go/models/tenant_crm_supplier.go | 1 + go/routers/backend/backend.go | 12 + 24 files changed, 3109 insertions(+), 469 deletions(-) create mode 100644 backend/src/views/apps/crm/customer/components/smartAddCompany.vue create mode 100644 backend/src/views/apps/crm/supplier/components/smartAddCompany.vue create mode 100644 go/controllers/backend_crm_contact.go create mode 100644 go/controllers/backend_crm_permission.go create mode 100644 go/controllers/backend_crm_pool.go diff --git a/backend/src/api/crm.js b/backend/src/api/crm.js index b3af036..e620eec 100644 --- a/backend/src/api/crm.js +++ b/backend/src/api/crm.js @@ -86,11 +86,6 @@ export function assignPoolCustomer(data) { return request({ url: "/backend/crm/pool/assign", method: "post", data }); } -/** 移出公海:ids 客户ID集合 */ -export function removeFromPool(data) { - return request({ url: "/backend/crm/pool/remove", method: "post", data }); -} - /** 移入公海:ids 客户ID集合,reason 移入原因 */ export function moveToPool(data) { return request({ url: "/backend/crm/pool/move", method: "post", data }); diff --git a/backend/src/views/apps/crm/contact/components/edit.vue b/backend/src/views/apps/crm/contact/components/edit.vue index c0de645..77df56a 100644 --- a/backend/src/views/apps/crm/contact/components/edit.vue +++ b/backend/src/views/apps/crm/contact/components/edit.vue @@ -80,17 +80,32 @@ - + - + + + + + + + + + + + + + + + + - + @@ -109,13 +124,29 @@ /> + + + + + + + + + + @@ -162,9 +193,14 @@ const defaultForm = () => ({ mobile: "", phone: "", email: "", + wechat: "", + qq: "", + dingtalk: "", department: "", position: "", + home_address: "", is_primary: 0, + status: 1, remark: "", }); @@ -175,10 +211,14 @@ const rules = { related_id: [{ required: true, message: "请选择关联对象", trigger: "change" }], contact_name: [{ required: true, message: "请输入联系人姓名", trigger: "blur" }], mobile: [ - { required: true, message: "请输入手机号", trigger: "blur" }, { - pattern: /^1[3-9]\d{9}$/, - message: "手机号格式不正确", + // 手机号非必填,填写时才校验格式 + validator: (rule, value, callback) => { + const val = (value || "").trim(); + if (!val) return callback(); + if (!/^1[3-9]\d{9}$/.test(val)) return callback(new Error("手机号格式不正确")); + callback(); + }, trigger: "blur", }, ], diff --git a/backend/src/views/apps/crm/contact/index.vue b/backend/src/views/apps/crm/contact/index.vue index af6fc5d..5bfb4e0 100644 --- a/backend/src/views/apps/crm/contact/index.vue +++ b/backend/src/views/apps/crm/contact/index.vue @@ -52,7 +52,7 @@