Fan 3 هفته پیش
والد
کامیت
d2efe1d20f

+ 1 - 1
ui/smarttrade-platform/.env.production

@@ -1,4 +1,4 @@
 # 生产环境后台接口地址
-VITE_API_BASE_URL=/api
+VITE_API_BASE_URL=/
 
 VITE_API_APP_ID=7

+ 1 - 1
ui/smarttrade-platform/.env.test

@@ -1,4 +1,4 @@
 # 测试环境后台接口地址
-VITE_API_BASE_URL=/api
+VITE_API_BASE_URL=/
 
 VITE_API_APP_ID=7

+ 1 - 0
ui/smarttrade-platform/src/api/marketing/index.js

@@ -7,3 +7,4 @@ export const editSop = (id, data = {}) => put(`/router/rest/api/sop/${id}`, data
 export const getSopById = (id) => get(`/router/rest/api/sop/${id}`)
 export const addMarketing = (data = {}) => post('/router/rest/marketing/add', data)
 export const editMarketing = (data = {}) => post('/router/rest/marketing/edit', data)
+export const marketingAnalysis = () => get('/router/rest/marketing/dashboard/stats')

+ 15 - 7
ui/smarttrade-platform/src/views/MarketingView.vue

@@ -23,42 +23,42 @@
       <div class="stat-card-lg">
         <div class="stat-icon-lg blue"><i class="fas fa-paper-plane"></i></div>
         <div class="stat-content-lg">
-          <h3>{{ formatNumber(marketingStats.totalSent) }}</h3>
+          <h3>{{ statsData?.monthlySent }}</h3>
           <p>本月发送</p>
         </div>
       </div>
       <div class="stat-card-lg">
         <div class="stat-icon-lg green"><i class="fas fa-envelope-open"></i></div>
         <div class="stat-content-lg">
-          <h3>{{ marketingStats.openRate }}%</h3>
+          <h3>{{ statsData?.avgOpenRate }}</h3>
           <p>平均打开率</p>
         </div>
       </div>
       <div class="stat-card-lg">
         <div class="stat-icon-lg purple"><i class="fas fa-mouse-pointer"></i></div>
         <div class="stat-content-lg">
-          <h3>{{ marketingStats.clickRate }}%</h3>
+          <h3>{{ statsData?.clickRate }}</h3>
           <p>点击率</p>
         </div>
       </div>
       <div class="stat-card-lg">
         <div class="stat-icon-lg orange"><i class="fas fa-reply"></i></div>
         <div class="stat-content-lg">
-          <h3>{{ marketingStats.replyRate }}%</h3>
+          <h3>{{ statsData?.replyRate }}</h3>
           <p>回复率</p>
         </div>
       </div>
       <div class="stat-card-lg">
         <div class="stat-icon-lg success"><i class="fas fa-shield-alt"></i></div>
         <div class="stat-content-lg">
-          <h3>{{ marketingStats.protectedCustomers }}</h3>
+          <h3>{{ statsData?.protectedCustomers }}</h3>
           <p>受保护客户</p>
         </div>
       </div>
       <div class="stat-card-lg">
         <div class="stat-icon-lg warning"><i class="fas fa-exclamation-circle"></i></div>
         <div class="stat-content-lg">
-          <h3>{{ marketingStats.pendingReview }}</h3>
+          <h3>{{ statsData?.pendingReview }}</h3>
           <p>待审核</p>
         </div>
       </div>
@@ -1254,7 +1254,7 @@
 <script setup>
 import { ref, computed, onMounted } from 'vue'
 import AddMarketing from '../components/addMarketing.vue'
-import { getMarketingList, getSopById } from '../api/marketing'
+import { getMarketingList, getSopById, marketingAnalysis } from '../api/marketing'
 
 const filterTab = ref('all')
 
@@ -1289,6 +1289,7 @@ const openCreateModal = () => {
 const marketingList = ref([])
 onMounted(() => {
   getData()
+  getStatsData()
 })
 
 const getData = () => {
@@ -1306,6 +1307,13 @@ const getData = () => {
   })
 }
 
+const statsData = ref()
+const getStatsData = () => {
+  marketingAnalysis().then(res => {
+    statsData.value = res.result
+  })
+}
+
 
 // History filters
 const historySearch = ref('')