Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

YPZ 1 месяц назад
Родитель
Сommit
6cab663cdd

+ 17 - 19
ui/smarttrade-platform/src/components/addMarketing.vue

@@ -341,9 +341,9 @@
                                 <label class="form-label">发送时间</label>
                                 <label class="form-label">发送时间</label>
                                 <el-select v-model="newCampaign.emailSendTime" placeholder="请选择发送时间">
                                 <el-select v-model="newCampaign.emailSendTime" placeholder="请选择发送时间">
                                     <el-option label="AI推荐最优时间" value="optimal" />
                                     <el-option label="AI推荐最优时间" value="optimal" />
-                                    <el-option label="上午 9:00-11:00" value="morning" />
+                                    <!-- <el-option label="上午 9:00-11:00" value="morning" />
                                     <el-option label="下午 14:00-16:00" value="afternoon" />
                                     <el-option label="下午 14:00-16:00" value="afternoon" />
-                                    <el-option label="晚上 19:00-21:00" value="evening" />
+                                    <el-option label="晚上 19:00-21:00" value="evening" /> -->
                                 </el-select>
                                 </el-select>
                             </div>
                             </div>
                         </div>
                         </div>
@@ -923,7 +923,7 @@
                 opportunityCount: Number(newCampaign.value.goals.opportunities) || null,
                 opportunityCount: Number(newCampaign.value.goals.opportunities) || null,
                 channelConfiguration: channelConfig,
                 channelConfiguration: channelConfig,
                 emailAddress: newCampaign.value.emailSender,
                 emailAddress: newCampaign.value.emailSender,
-                emailSentTime: newCampaign.value.emailSendTime,
+                emailSentTime: newCampaign.value.emailSendTime == 'optimal' ? '' : newCampaign.value.emailSendTime,
                 trackConfigOpen: newCampaign.value.trackOpen ? 1 : 0,
                 trackConfigOpen: newCampaign.value.trackOpen ? 1 : 0,
                 trackConfigClick: newCampaign.value.trackClick ? 1 : 0,
                 trackConfigClick: newCampaign.value.trackClick ? 1 : 0,
                 trackConfigReply: newCampaign.value.trackReply ? 1 : 0,
                 trackConfigReply: newCampaign.value.trackReply ? 1 : 0,
@@ -1061,13 +1061,11 @@
             return
             return
         }
         }
         editSop(customSopData.value.id, customSopData.value).then(res => {
         editSop(customSopData.value.id, customSopData.value).then(res => {
-            if(res.code === 200) {
-                ElMessage.success('保存成功')
-                getSop()
-                showCustomSopModal.value = false
-            } else {
-                ElMessage.error(res.message || '保存失败')
-            }
+            ElMessage.success('保存成功')
+            getSop()
+            showCustomSopModal.value = false
+        }).catch(err => {
+            ElMessage.error(err?.message || '保存失败')
         })
         })
     }
     }
 
 
@@ -1090,13 +1088,11 @@
             details: datas
             details: datas
         }
         }
         addSop(params).then(res => {
         addSop(params).then(res => {
-            if(res.code === 200) {
-                ElMessage.success('已保存新SOP序列')
-                getSop()
-                showCustomSopModal.value = false
-            } else {
-                ElMessage.error(res.message || '保存失败')
-            }
+            ElMessage.success('已保存新SOP序列')
+            getSop()
+            showCustomSopModal.value = false
+        }).catch(err => {
+            ElMessage.error(err?.message || '保存新SOP序列失败')
         })
         })
     }
     }
 
 
@@ -1158,9 +1154,11 @@
     }
     }
 
 
     const addCustomer = (data) => {
     const addCustomer = (data) => {
+        if(customerList.value.find(item => item.id === data.id)) {
+            ElMessage.warning('客户已存在')
+            return
+        }
         customerList.value.push(data)
         customerList.value.push(data)
-        //去重
-        customerList.value = [...new Set(customerList.value)]
         ElMessage.success('添加成功')
         ElMessage.success('添加成功')
     }
     }
 
 

+ 21 - 8
ui/smarttrade-platform/src/components/marketing/customerDetail.vue

@@ -69,12 +69,14 @@
                                     <div class="customer-meta">
                                     <div class="customer-meta">
                                         <div class="customer-name-row">
                                         <div class="customer-name-row">
                                             <div class="customer-name">{{ customer.customerName }}</div>
                                             <div class="customer-name">{{ customer.customerName }}</div>
-                                            <span class="customer-badge">{{ customer.tag || '潜客' }}</span>
+                                            <span class="customer-badge" v-if="customer.customerStatusDictValue">{{ getStatusLabel(customer.customerStatusDictValue) }}</span>
+                                        </div>
+                                        <div class="customer-subtitle">
+                                            <span><i class="fas fa-user" style="margin-right: 6px"></i> {{ customer.liaison.name }}{{ customer.liaison.departmentPosition ? ' · ' + customer.liaison.departmentPosition : '' }}</span>
                                         </div>
                                         </div>
-                                        <div class="customer-subtitle">{{ customer.role || '采购总监' }} · {{ customer.company }}</div>
                                         <div class="customer-info-row">
                                         <div class="customer-info-row">
                                             <span><i class="fas fa-map-marker-alt"></i> {{ customer.continent }} - {{ customer.country }}</span>
                                             <span><i class="fas fa-map-marker-alt"></i> {{ customer.continent }} - {{ customer.country }}</span>
-                                            <span><i class="fas fa-dollar-sign"></i> {{ customer.annualPurchase }}</span>
+                                            <span v-if="customer.customerCompany.industry">{{ customer.customerCompany.industry }}</span>
                                         </div>
                                         </div>
                                     </div>
                                     </div>
                                 </div>
                                 </div>
@@ -83,9 +85,9 @@
                                         <div class="customer-score">{{ customer.score }}</div>
                                         <div class="customer-score">{{ customer.score }}</div>
                                         <div class="customer-score-label">意向分</div>
                                         <div class="customer-score-label">意向分</div>
                                     </div>
                                     </div>
-                                    <div class="right-btn">
-                                        <el-icon v-if="modalType == 'add'" @click="addCustomer(customer)"><Plus /></el-icon>
-                                        <el-icon v-else @click="deleteCustomer(customer)"><Delete /></el-icon>
+                                    <div class="right-btn" @click="handleBtn(customer)">
+                                        <el-icon v-if="modalType == 'add'"><Plus /></el-icon>
+                                        <el-icon v-else><Delete /></el-icon>
                                     </div>
                                     </div>
                                 </div>
                                 </div>
                             </div>
                             </div>
@@ -158,6 +160,8 @@
         customerParams.value.country = value ? value[1] : ''
         customerParams.value.country = value ? value[1] : ''
     }
     }
 
 
+    const getStatusLabel = (type) => ({ 1: '暂无需求', 2: '潜在客户', 3: '意向客户', 4: '忠诚客户', 11: '了解产品', 22: '正在跟进', 33: '寄样试用', 44: '意向购买', 55: '准备付款', 66: '暂时搁置' }[type] || type)
+
     const customers = ref([])
     const customers = ref([])
     const total = ref(0)
     const total = ref(0)
     const getCustomerData = () => {
     const getCustomerData = () => {
@@ -206,10 +210,19 @@
         }
         }
     }
     }
 
 
+    const handleBtn = (customer) => {
+        if(modalType.value == 'add'){
+            addCustomer(customer)
+        }else{
+            deleteCustomer(customer)
+        }
+    }
+
     const deleteCustomer = (data) => {
     const deleteCustomer = (data) => {
-        customers.value = customers.value.filter(item => item.id != data.id)
+        filterData.value = filterData.value.filter(item => item.id != data.id)
+        customers.value = filterData.value.slice((customerParams.value.pageIndex - 1) * customerParams.value.pageSize, customerParams.value.pageIndex * customerParams.value.pageSize)
         allData.value = allData.value.filter(item => item.id != data.id)
         allData.value = allData.value.filter(item => item.id != data.id)
-        total.value = allData.value.length
+        total.value = filterData.value.length
         emits('delete', data)
         emits('delete', data)
     }
     }