瀏覽代碼

!334 feat: 客户配置 review 修改
* feat: 客户配置 review 修改
* feat: 客户配置 review 修改
* feat: 客户配置 review 修改
* feat: 客户配置 review 修改
* feat: 客户配置 review 修改
* feat: 客户配置 review 修改
* feat: 客户配置 review 修改

(cherry picked from commit 85810c07867522f9b5f541db2d8898f91bf7a790)

wanwan 1 年之前
父節點
當前提交
a6b9ce704d

+ 0 - 1
src/views/crm/clue/ClueForm.vue

@@ -10,7 +10,6 @@
       <el-form-item label="线索名称" prop="name">
         <el-input v-model="formData.name" placeholder="请输入线索名称" />
       </el-form-item>
-      <!-- TODO 芋艿:后续客户的选择 -->
       <el-form-item label="客户" prop="customerId">
         <el-select v-model="formData.customerId" clearable placeholder="请选择客户">
           <el-option

+ 4 - 0
src/views/crm/config/customerLimitConfig/customerLimitConfig.ts

@@ -0,0 +1,4 @@
+// TODO 可以挪到它对应的 api.ts 文件里哈
+/**
+ * 客户限制配置类型
+ */

+ 85 - 0
src/views/crm/customer/detail/CustomerDetailsTop.vue

@@ -0,0 +1,85 @@
+<template>
+  <div v-loading="loading">
+    <div class="flex items-start justify-between">
+      <div>
+        <!-- 左上:客户基本信息 -->
+        <CustomerBasicInfo :customer="customer" />
+      </div>
+      <div>
+        <!-- 右上:按钮 -->
+        <el-button v-hasPermi="['crm:customer:update']" @click="openForm('update', customer.id)">
+          编辑
+        </el-button>
+        <el-button>更改成交状态</el-button>
+      </div>
+    </div>
+    <el-row class="mt-10px">
+      <el-button>
+        <Icon class="mr-5px" icon="ph:calendar-fill" />
+        创建任务
+      </el-button>
+      <el-button>
+        <Icon class="mr-5px" icon="carbon:email" />
+        发送邮件
+      </el-button>
+      <el-button>
+        <Icon class="mr-5px" icon="system-uicons:contacts" />
+        创建联系人
+      </el-button>
+      <el-button>
+        <Icon class="mr-5px" icon="ep:opportunity" />
+        创建商机
+      </el-button>
+      <el-button>
+        <Icon class="mr-5px" icon="clarity:contract-line" />
+        创建合同
+      </el-button>
+      <el-button>
+        <Icon class="mr-5px" icon="icon-park:income-one" />
+        创建回款
+      </el-button>
+      <el-button>
+        <Icon class="mr-5px" icon="fluent:people-team-add-20-filled" />
+        添加团队成员
+      </el-button>
+    </el-row>
+  </div>
+  <ContentWrap class="mt-10px">
+    <el-descriptions :column="5" direction="vertical">
+      <el-descriptions-item label="客户级别">
+        <dict-tag :type="DICT_TYPE.CRM_CUSTOMER_LEVEL" :value="customer.level" />
+      </el-descriptions-item>
+      <el-descriptions-item label="成交状态">
+        {{ customer.dealStatus ? '已成交' : '未成交' }}
+      </el-descriptions-item>
+      <el-descriptions-item label="负责人">
+        {{ customer.ownerUserName }}
+      </el-descriptions-item>
+      <!-- TODO wanwan 首要联系人? -->
+      <el-descriptions-item label="首要联系人" />
+      <!-- TODO wanwan 首要联系人电话? -->
+      <el-descriptions-item label="首要联系人电话">
+        {{ customer.mobile }}
+      </el-descriptions-item>
+    </el-descriptions>
+  </ContentWrap>
+
+  <!-- 表单弹窗:添加/修改 -->
+  <CustomerForm ref="formRef" @success="emit('refresh')" />
+</template>
+<script setup lang="ts">
+import * as CustomerApi from '@/api/crm/customer'
+import { DICT_TYPE } from '@/utils/dict'
+import CustomerBasicInfo from '@/views/crm/customer/detail/CustomerBasicInfo.vue'
+import CustomerForm from '@/views/crm/customer/CustomerForm.vue'
+
+const { customer, loading } = defineProps<{ customer: CustomerApi.CustomerVO; loading: boolean }>()
+
+const openForm = (type: string, id?: number) => {
+  formRef.value.open(type, id)
+}
+
+const formRef = ref()
+
+const emit = defineEmits(['refresh']) // 定义 success 事件,用于操作成功后的回调
+</script>

+ 2 - 2
src/views/crm/customer/detail/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <CustomerDetailsHeader :customer="customer" :loading="loading" @refresh="getCustomerData(id)" />
+  <CustomerDetailsTop :customer="customer" :loading="loading" @refresh="getCustomerData(id)" />
   <el-col>
     <el-tabs>
       <el-tab-pane label="详细资料">
@@ -66,7 +66,7 @@ const loading = ref(true) // 加载中
 /**
  * 获取详情
  *
- * @param id 客户编号
+ * @param id
  */
 const customer = ref<CustomerApi.CustomerVO>({} as CustomerApi.CustomerVO) // 客户详情
 const getCustomerData = async (id: number) => {