@@ -167,9 +168,14 @@
{{ detailData.owner_name || '未分配' }}
- {{ formatDate(detailData.register_time) }}
- {{ formatDate(detailData.expire_time) }}
+ {{ detailData.registered_capital ? detailData.registered_capital + ' 万元' : '-' }}
+ {{ detailData.paid_capital ? detailData.paid_capital + ' 万元' : '-' }}
+ {{ formatDate(detailData.establish_date) }}
+ {{ detailData.administrative_division || '-' }}
+ {{ detailData.enterprise_type || '-' }}
+ {{ detailData.taxpayer_qualification || '-' }}
{{ detailData.address || '-' }}
+ {{ detailData.business_scope || '-' }}
{{ formatDateTime(detailData.create_time) }}
{{ formatDateTime(detailData.update_time) }}
@@ -250,6 +256,8 @@
+
+
@@ -274,6 +282,12 @@
@success="loadContacts"
/>
+
+
import { ref, reactive, computed, onMounted } from "vue";
import { ElMessage, ElMessageBox } from "element-plus";
-import { Plus, Search, Refresh } from "@element-plus/icons-vue";
+import { Plus, Search, Refresh, Cpu } from "@element-plus/icons-vue";
import {
getCrmCustomerList,
deleteCrmCustomer,
@@ -313,6 +327,7 @@ import {
import { listContacts, deleteContact } from "@/api/contact";
import CustomerEdit from "./components/edit.vue";
import ContactEdit from "../contact/components/edit.vue";
+import SmartAddCompany from "./components/smartAddCompany.vue";
import {
CUSTOMER_TYPE_OPTIONS,
STATUS_OPTIONS,
@@ -343,6 +358,7 @@ const contactList = ref([]);
const currentRow = ref(null);
const contactEditVisible = ref(false);
const contactEditData = ref(null);
+const smartAddVisible = ref(false);
// 移入公海
const poolVisible = ref(false);
@@ -601,4 +617,20 @@ async function submitMovePool() {
}
}
}
+
+.detail-content {
+ padding: 4px 8px;
+
+ :deep(.el-descriptions__label) {
+ width: 130px;
+ min-width: 130px;
+ color: var(--el-text-color-regular);
+ font-weight: 500;
+ vertical-align: top;
+ }
+
+ :deep(.el-descriptions__content) {
+ word-break: break-all;
+ }
+}
diff --git a/backend/src/views/apps/crm/pool/index.vue b/backend/src/views/apps/crm/pool/index.vue
index c7f0585..e022d48 100644
--- a/backend/src/views/apps/crm/pool/index.vue
+++ b/backend/src/views/apps/crm/pool/index.vue
@@ -128,7 +128,6 @@
领取
分配
- 移出公海
删除
@@ -233,7 +232,6 @@ import {
getPoolList,
claimPoolCustomer,
assignPoolCustomer,
- removeFromPool,
deleteCrmCustomer,
} from "@/api/crm";
import { getAllUsers } from "@/api/user";
@@ -391,9 +389,11 @@ async function submitAssign() {
}
assignSubmitting.value = true;
try {
+ const user = userOptions.value.find((u) => u.id === assignUserId.value);
await assignPoolCustomer({
ids: assignTargets.value.map((item) => item.id),
owner_user_id: assignUserId.value,
+ owner_user_name: user?.name || "",
});
ElMessage.success("分配成功");
assignVisible.value = false;
@@ -406,26 +406,7 @@ async function submitAssign() {
}
}
-/* ---------------------------- 移出 / 删除 ---------------------------- */
-async function handleRemove(rows) {
- if (!rows.length) return;
- try {
- await ElMessageBox.confirm(
- `确定将选中的 ${rows.length} 个客户移出公海吗?`,
- "移出公海",
- { type: "warning" }
- );
- await removeFromPool({ ids: rows.map((item) => item.id) });
- ElMessage.success("已移出公海");
- multipleSelection.value = [];
- fetchList();
- } catch (e) {
- if (e !== "cancel") {
- ElMessage.error(e.message || "操作失败");
- }
- }
-}
-
+/* -------------------------------- 删除 -------------------------------- */
async function handleDelete(row) {
try {
await ElMessageBox.confirm(
diff --git a/backend/src/views/apps/crm/supplier/components/edit.vue b/backend/src/views/apps/crm/supplier/components/edit.vue
index 061e070..012484b 100644
--- a/backend/src/views/apps/crm/supplier/components/edit.vue
+++ b/backend/src/views/apps/crm/supplier/components/edit.vue
@@ -1,182 +1,252 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+ 万元
+
+
+
+
+
+
+ 万元
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ 发票信息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 银行信息
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+ 确认所有信息无误后,点击「保存」完成创建。
+
+
+
- 取消
- 保存
+
+
+
diff --git a/backend/src/views/apps/crm/supplier/components/smartAddCompany.vue b/backend/src/views/apps/crm/supplier/components/smartAddCompany.vue
new file mode 100644
index 0000000..12981e8
--- /dev/null
+++ b/backend/src/views/apps/crm/supplier/components/smartAddCompany.vue
@@ -0,0 +1,520 @@
+
+
+
+
+
+
+
+
+
+
+ 基本信息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 万元
+
+
+
+
+
+
+ 万元
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 联系信息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 开票信息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 备注
+
+
+
+
+
+ AI响应数据
+
+
+
+
+
+
{{ formattedAiData }}
+
+ 此数据为AI返回的原始响应,仅作查看参考,已自动填充可编辑字段到上方表单
+
+
+
+
+
+ 返回修改名称
+ 确认保存
+
+
+
+
+
+
+
diff --git a/backend/src/views/apps/crm/supplier/index.vue b/backend/src/views/apps/crm/supplier/index.vue
index 083bd3e..41db26c 100644
--- a/backend/src/views/apps/crm/supplier/index.vue
+++ b/backend/src/views/apps/crm/supplier/index.vue
@@ -8,6 +8,7 @@
@@ -155,11 +156,18 @@
{{ statusText(detailData.status) }}
-