|
@@ -1,72 +1,71 @@
|
|
|
<template>
|
|
|
- <div class="asj-container">
|
|
|
- <div class="public-search">
|
|
|
- <DateRangePicker v-model="dateRange" :timezone="shopInfo.profile.time_zone"></DateRangePicker>
|
|
|
- <el-select v-model="selectedPortfolios" placeholder="广告组合" clearable multiple>
|
|
|
- <el-option v-for="info of portfolios" :label="info.name" :value="info.portfolioId"></el-option>
|
|
|
- </el-select>
|
|
|
- </div>
|
|
|
- <el-tabs v-model="tabActiveName" class="asj-tabs" @tab-change="changeTab">
|
|
|
- <el-tab-pane label="广告活动" name="campaigns">
|
|
|
- <Campaigns ref="campaignsRef"/>
|
|
|
- </el-tab-pane>
|
|
|
- <el-tab-pane label="关键词投放" name="keywords" :lazy="true">
|
|
|
- <Keywords ref="keywordsRef"/>
|
|
|
- </el-tab-pane>
|
|
|
- <el-tab-pane label="商品投放" :lazy="true"></el-tab-pane>
|
|
|
- <el-tab-pane label="搜索词" :lazy="true"></el-tab-pane>
|
|
|
- <el-tab-pane label="广告位" :lazy="true"></el-tab-pane>
|
|
|
- </el-tabs>
|
|
|
- </div>
|
|
|
+ <div class="asj-container">
|
|
|
+ <div class="public-search">
|
|
|
+ <DateRangePicker v-model="dateRange" :timezone="shopInfo.profile.time_zone"></DateRangePicker>
|
|
|
+ <el-select v-model="selectedPortfolios" placeholder="广告组合" clearable multiple style="width: 400px;"
|
|
|
+ collapse-tags
|
|
|
+ collapse-tags-tooltip
|
|
|
+ :max-collapse-tags="3">
|
|
|
+ <el-option v-for="info of portfolios" :label="info.name" :value="info.portfolioId"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ <el-tabs v-model="tabActiveName" class="asj-tabs" @tab-change="changeTab">
|
|
|
+ <el-tab-pane label="广告活动" name="campaigns">
|
|
|
+ <Campaigns ref="campaignsRef" />
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="关键词投放" name="keywords" :lazy="true">
|
|
|
+ <Keywords ref="keywordsRef" />
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="商品投放" :lazy="true"></el-tab-pane>
|
|
|
+ <el-tab-pane label="推广商品" :lazy="true"></el-tab-pane>
|
|
|
+ <el-tab-pane label="购买的其它商品" :lazy="true"></el-tab-pane>
|
|
|
+ <el-tab-pane label="搜索词" :lazy="true">
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="广告位" :lazy="true">
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="预算上限" :lazy="true"></el-tab-pane>
|
|
|
+ </el-tabs>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
import DateRangePicker from '/@/components/DateRangePicker/index.vue'
|
|
|
import Campaigns from './campaigns/index.vue'
|
|
|
import Keywords from './keywords/index.vue'
|
|
|
-import {recentDaysRange} from '/@/views/adManage/utils/tools'
|
|
|
-import {ref, onBeforeMount, Ref, provide, watch, reactive} from 'vue'
|
|
|
-import {useShopInfo} from '/@/stores/shopInfo'
|
|
|
-import {usePublicData} from '/@/stores/publicData'
|
|
|
-import {GetList} from '/@/views/adManage/portfolios/api'
|
|
|
-import {nextTick} from 'process'
|
|
|
-import {getAdStructureData} from '/@/views/adManage/sp/campaigns/api'
|
|
|
-
|
|
|
+import { recentDaysRange } from '/@/views/adManage/utils/tools'
|
|
|
+import { ref, onBeforeMount, Ref, watch, provide } from 'vue'
|
|
|
+import { useShopInfo } from '/@/stores/shopInfo'
|
|
|
+import { usePublicData } from '/@/stores/publicData'
|
|
|
+import { GetList } from '/@/views/adManage/portfolios/api'
|
|
|
+import { nextTick } from 'process'
|
|
|
+import { storeToRefs } from 'pinia'
|
|
|
|
|
|
const shopInfo = useShopInfo()
|
|
|
const publicData = usePublicData()
|
|
|
const selectedPortfolios: Ref<string[]> = ref([])
|
|
|
const portfolios: Ref<Portfolio[]> = ref([])
|
|
|
-const dateRange: Ref<string[]> = ref(['2023-11-01', '2023-11-04'])
|
|
|
+const { dateRange } = storeToRefs(publicData)
|
|
|
const tabActiveName = ref('campaigns')
|
|
|
const keywordsRef = ref()
|
|
|
const campaignsRef = ref()
|
|
|
|
|
|
-publicData.updateData({dateRange: dateRange.value})
|
|
|
provide('dateRange', dateRange)
|
|
|
|
|
|
onBeforeMount(async () => {
|
|
|
- console.log(shopInfo.profile)
|
|
|
- // dateRange.value = recentDaysRange(shopInfo.profile.time_zone, 7)
|
|
|
-
|
|
|
- const resp: APIResponseData = await GetList({limit: 999})
|
|
|
- portfolios.value = resp.data
|
|
|
+ const resp: APIResponseData = await GetList({ limit: 999 })
|
|
|
+ portfolios.value = resp.data
|
|
|
})
|
|
|
const changeTab = () => {
|
|
|
- nextTick(() => {
|
|
|
- campaignsRef.value.resizeTabChart()
|
|
|
- keywordsRef.value.resizeTabChart()
|
|
|
- })
|
|
|
+ nextTick(() => {
|
|
|
+ campaignsRef.value.resizeTabChart()
|
|
|
+ keywordsRef.value.resizeTabChart()
|
|
|
+ })
|
|
|
}
|
|
|
-watch(
|
|
|
- dateRange,
|
|
|
- () => {
|
|
|
- publicData.updateData({dateRange: dateRange.value})
|
|
|
- }
|
|
|
-)
|
|
|
-
|
|
|
+publicData.$subscribe((mutation, state) => {
|
|
|
+ // console.log(mutation)
|
|
|
+ // console.log(state.dateRange)
|
|
|
+ publicData.setDateRange(state.dateRange)
|
|
|
+})
|
|
|
</script>
|
|
|
|
|
|
-<style>
|
|
|
-
|
|
|
-</style>
|
|
|
+<style></style>
|