소스 검색

广告活动、购买的其它商品、搜索词i添加周和月统计数据

guojing_wu 1 년 전
부모
커밋
b119e88dfc

+ 10 - 0
src/views/adManage/sp/campaigns/api.ts

@@ -57,6 +57,16 @@ export function getLineData(query: UserPageQuery) {
     })
 }
 
+export function getLineWeekData(query: UserPageQuery) {
+    query["dateRangeType"] = "W"
+    return getLineData(query)
+}
+
+export function getLineMonthData(query: UserPageQuery) {
+    query["dateRangeType"] = "M"
+    return getLineData(query)
+}
+
 export function getAdStructureData(query: UserPageQuery) {
     return request({
         url: apiPrefix + "structure/",

+ 42 - 46
src/views/adManage/sp/campaigns/index.vue

@@ -1,13 +1,19 @@
 <template>
 	<fs-page class="fs-page-custom">
-    <fs-crud ref="crudRef" v-bind="crudBinding">
+		<fs-crud ref="crudRef" v-bind="crudBinding">
 			<template #header-middle>
 				<el-tabs v-model="tabActiveName" class="chart-tabs" type="border-card">
 					<el-tab-pane label="数据趋势" name="dataTendency">
-						<DataTendencyChart v-if="tabActiveName === 'dataTendency'" :fetchCard="getCardData" :fetchLine="getLineData"></DataTendencyChart>
+						<DataTendencyChart
+							v-if="tabActiveName === 'dataTendency'"
+							:fetchCard="getCardData"
+							:fetchLine="getLineData"
+							:fetch-line-month="getLineMonthData"
+							:fetch-line-week="getLineWeekData">
+						</DataTendencyChart>
 					</el-tab-pane>
-					<el-tab-pane label="广告结构" name="adStruct" >
-						<AdStructChart v-if="tabActiveName === 'adStruct'"/>
+					<el-tab-pane label="广告结构" name="adStruct">
+						<AdStructChart v-if="tabActiveName === 'adStruct'" />
 					</el-tab-pane>
 					<el-tab-pane label="散点视图" name="scatterView">
 						<div v-if="tabActiveName === 'scatterView'">散点视图</div>
@@ -15,60 +21,53 @@
 				</el-tabs>
 			</template>
 			<template #cell_percentTimeInBudget="scope">
-        <el-progress :percentage="scope.row.percentTimeInBudget > 0 ? scope.row.percentTimeInBudget * 100: 0" />
-      </template>
+				<el-progress :percentage="scope.row.percentTimeInBudget > 0 ? scope.row.percentTimeInBudget * 100 : 0" />
+			</template>
 			<template #cell_campaignName="scope">
-        <el-link type="primary" :underline="false" @click="jumpGroup(scope.row)">{{ scope.row.campaignName }}</el-link>
-      </template>
+				<el-link type="primary" :underline="false" @click="jumpGroup(scope.row)">{{ scope.row.campaignName }}</el-link>
+			</template>
 			<template #cell_MissedImpressions="scope">
-        {{ scope.row.MissedImpressionsLower ?? '0' }} ~ {{ scope.row.MissedImpressionsUpper ?? '0' }}
-      </template>
-			<template #cell_MissedClicks="scope">
-        {{ scope.row.MissedClicksLower ?? '0' }} ~ {{ scope.row.MissedClicksUpper ?? '0' }}
-      </template>
-			<template #cell_MissedSales="scope">
-        {{ scope.row.MissedSalesLower ?? '0' }} ~ {{ scope.row.MissedSalesUpper ?? '0' }}
-      </template>
+				{{ scope.row.MissedImpressionsLower ?? '0' }} ~ {{ scope.row.MissedImpressionsUpper ?? '0' }}
+			</template>
+			<template #cell_MissedClicks="scope"> {{ scope.row.MissedClicksLower ?? '0' }} ~ {{ scope.row.MissedClicksUpper ?? '0' }} </template>
+			<template #cell_MissedSales="scope"> {{ scope.row.MissedSalesLower ?? '0' }} ~ {{ scope.row.MissedSalesUpper ?? '0' }} </template>
 
 			<template v-for="field of Object.keys(BaseColumn)" #[`cell_${field}`]="scope">
-        <p>{{ scope.row[field] }}</p>
-        <el-popover
-          effect="dark"
-          :width="260">
-          <template #reference>
-            <DataCompare :field="field" :value="scope.row[field]" :gapVal="scope.row[`gap${field}`]" :showCompare="showCompare"/>
-          </template>
-          <p>对比周期:{{ compareDate[0] }} ~ {{ compareDate[1] }}</p>
-          <p>对比值:{{ scope.row[`prev${field}`] }}</p>
-        </el-popover>
-      </template>
-      <template #toolbar-left>
-        <div class="campare-switch">
-          <span>数据对比 </span>
-          <el-switch v-model="showCompare" size="small" />
-        </div>
-      </template>
-
+				<p>{{ scope.row[field] }}</p>
+				<el-popover effect="dark" :width="260">
+					<template #reference>
+						<DataCompare :field="field" :value="scope.row[field]" :gapVal="scope.row[`gap${field}`]" :showCompare="showCompare" />
+					</template>
+					<p>对比周期:{{ compareDate[0] }} ~ {{ compareDate[1] }}</p>
+					<p>对比值:{{ scope.row[`prev${field}`] }}</p>
+				</el-popover>
+			</template>
+			<template #toolbar-left>
+				<div class="campare-switch">
+					<span>数据对比 </span>
+					<el-switch v-model="showCompare" size="small" />
+				</div>
+			</template>
 		</fs-crud>
 	</fs-page>
 </template>
 
 <script lang="ts" setup>
-import {ref, onMounted, computed, watch, onBeforeMount} from 'vue'
-import { useFs, FsPage } from '@fast-crud/fast-crud';
-import { createCrudOptions } from './crud';
+import { ref, onMounted, computed, watch, onBeforeMount } from 'vue'
+import { useFs, FsPage } from '@fast-crud/fast-crud'
+import { createCrudOptions } from './crud'
 import { useShopInfo } from '/@/stores/shopInfo'
 import { usePublicData } from '/@/stores/publicData'
 import { storeToRefs } from 'pinia'
 import { useRoute, useRouter } from 'vue-router'
 import AdStructChart from './chartComponents/adStruct.vue'
 import DataTendencyChart from '/@/views/adManage/sp/chartComponents/dataTendency.vue'
-import { getCardData, getLineData } from './api'
+import { getCardData, getLineData, getLineMonthData, getLineWeekData } from './api'
 import { BaseColumn } from '/@/views/adManage/utils/commonTabColumn.js'
 import DataCompare from '/@/components/dataCompare/index.vue'
 import { getCompareDate } from '/@/views/adManage/utils/tools.js'
 
-const tabActiveName = ref("dataTendency")
+const tabActiveName = ref('dataTendency')
 const shopInfo = useShopInfo()
 const publicData = usePublicData()
 const { dateRange } = storeToRefs(publicData)
@@ -81,7 +80,7 @@ onMounted(async () => {
 	crudExpose.doRefresh()
 })
 const compareDate = computed(() => {
-  return getCompareDate(dateRange.value)
+	return getCompareDate(dateRange.value)
 })
 const jumpGroup = (row: any) => {
 	router.push({
@@ -90,12 +89,9 @@ const jumpGroup = (row: any) => {
 	})
 }
 
-watch(
-	[dateRange, profile],
-	async () => {
-		crudExpose.doRefresh()
-	}
-)
+watch([dateRange, profile], async () => {
+	crudExpose.doRefresh()
+})
 </script>
 
 <style lang="scss" scoped>

+ 10 - 0
src/views/adManage/sp/purchasedOtherProducts/api.ts

@@ -26,3 +26,13 @@ export function getLineData(query: UserPageQuery) {
   })
 }
 
+export function getLineWeekData(query: UserPageQuery) {
+  query["dateRangeType"] = "W"
+  return getLineData(query)
+}
+
+export function getLineMonthData(query: UserPageQuery) {
+  query["dateRangeType"] = "M"
+  return getLineData(query)
+}
+

+ 3 - 1
src/views/adManage/sp/purchasedOtherProducts/index.vue

@@ -7,6 +7,8 @@
 						<DataTendencyChart 
             :fetchCard="getCardData" 
             :fetchLine="getLineData"
+            :fetch-line-month="getLineMonthData"
+						:fetch-line-week="getLineWeekData"
             :init-metric="initMetric"
             :metric-enum="spCampaignPuchasedOtherProductsMetricsEnum">
           </DataTendencyChart>
@@ -48,7 +50,7 @@ import { ref, onMounted, computed, watch } from 'vue'
 import { useFs, FsPage } from '@fast-crud/fast-crud';
 import { createCrudOptions } from './crud'
 import DataTendencyChart from '/@/views/adManage/sp/chartComponents/dataTendency.vue'
-import { getCardData, getLineData } from './api'
+import { getCardData, getLineData, getLineMonthData, getLineWeekData } from './api'
 import { useShopInfo } from '/@/stores/shopInfo'
 import { usePublicData } from '/@/stores/publicData'
 import { storeToRefs } from 'pinia'

+ 10 - 0
src/views/adManage/sp/searchTerm/api.ts

@@ -25,3 +25,13 @@ export function getLineData(query: UserPageQuery) {
       params: query
   })
 }
+
+export function getLineWeekData(query: UserPageQuery) {
+  query["dateRangeType"] = "W"
+  return getLineData(query)
+}
+
+export function getLineMonthData(query: UserPageQuery) {
+  query["dateRangeType"] = "M"
+  return getLineData(query)
+}

+ 8 - 2
src/views/adManage/sp/searchTerm/index.vue

@@ -4,7 +4,13 @@
       <template #header-middle>
         <el-tabs v-model="tabActiveName" class="chart-tabs" type="border-card">
 					<el-tab-pane label="数据趋势" name="dataTendency">
-						<DataTendencyChart v-if="tabActiveName === 'dataTendency'" :fetchCard="getCardData" :fetchLine="getLineData"></DataTendencyChart>
+						<DataTendencyChart
+							v-if="tabActiveName === 'dataTendency'"
+							:fetch-card="getCardData"
+							:fetch-line="getLineData"
+							:fetch-line-month="getLineMonthData"
+							:fetch-line-week="getLineWeekData">
+						</DataTendencyChart>
 					</el-tab-pane>
 					<el-tab-pane label="散点视图" name="scatterView">
 						<div v-if="tabActiveName === 'scatterView'">敬请期待...</div>
@@ -39,7 +45,7 @@ import { ref, onMounted, watch, computed } from 'vue'
 import { useFs, FsPage } from '@fast-crud/fast-crud';
 import { createCrudOptions } from './crud'
 import DataTendencyChart from '/@/views/adManage/sp/chartComponents/dataTendency.vue'
-import { getCardData, getLineData } from './api'
+import { getCardData, getLineData, getLineMonthData, getLineWeekData } from './api'
 import { useShopInfo } from '/@/stores/shopInfo'
 import { usePublicData } from '/@/stores/publicData'
 import { storeToRefs } from 'pinia'