|
@@ -5,22 +5,13 @@
|
|
|
<DateRangePicker v-model="dateRange"></DateRangePicker>
|
|
|
</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>
|
|
|
- <p :class="scope.row[`gap${field}`] > 0 ? 'green' : 'red'" v-show="showCompare">
|
|
|
- <el-icon v-show="scope.row[field]">
|
|
|
- <Top v-if="scope.row[`gap${field}`] > 0"/>
|
|
|
- <Bottom v-else/>
|
|
|
- </el-icon>
|
|
|
- <span>{{ scope.row[`gap${field}`] }}%</span>
|
|
|
- </p>
|
|
|
- </template>
|
|
|
- <p>对比周期:{{ placementData.compare_date[0] }} ~ {{ placementData.compare_date[1] }}</p>
|
|
|
- <p>对比值:{{ scope.row[`prev${field}`] }}</p>
|
|
|
- </el-popover>
|
|
|
+ <DataCompare
|
|
|
+ :field="field"
|
|
|
+ :value="scope.row[field]"
|
|
|
+ :prev-val="scope.row[`prev${field}`]"
|
|
|
+ :gap-val="scope.row[`gap${field}`]"
|
|
|
+ :date-range="dateRange"
|
|
|
+ :show-compare="showCompare"/>
|
|
|
</template>
|
|
|
<template #toolbar-left>
|
|
|
<div>
|
|
@@ -37,35 +28,33 @@ import { ref, onMounted, Ref, watch } from 'vue'
|
|
|
import { useFs, FsPage } from '@fast-crud/fast-crud'
|
|
|
import { createCrudOptions } from './crud'
|
|
|
import { usePublicData } from '/@/stores/publicData'
|
|
|
-import { useShopInfo } from '/@/stores/shopInfo'
|
|
|
+import { storeToRefs } from 'pinia'
|
|
|
import DateRangePicker from '/@/components/DateRangePicker/index.vue'
|
|
|
import { GetList } from './api'
|
|
|
import { BaseColumn } from '/@/views/adManage/utils/commonTabColumn.js'
|
|
|
import { LocationQueryValue } from 'vue-router'
|
|
|
+import DataCompare from '/@/components/dataCompare/index.vue'
|
|
|
|
|
|
defineOptions({
|
|
|
name: "Placement"
|
|
|
})
|
|
|
const publicData = usePublicData()
|
|
|
-const shopInfo = useShopInfo()
|
|
|
-const dateRange: Ref<string[]> = ref(publicData.dateRange)
|
|
|
+const { dateRange } = storeToRefs(publicData)
|
|
|
interface Props {
|
|
|
campaignId: LocationQueryValue | LocationQueryValue[]
|
|
|
}
|
|
|
const props = defineProps<Props>()
|
|
|
const loading = ref(true)
|
|
|
-const placementData = ref({items: [], compare_date: []})
|
|
|
|
|
|
const showCompare = ref(false)
|
|
|
const fetchData = async () => {
|
|
|
loading.value = true
|
|
|
const resp = await GetList({
|
|
|
campaignId: props.campaignId,
|
|
|
- date__gte: dateRange.value[0],
|
|
|
- date__lte: dateRange.value[1]
|
|
|
+ startDate: dateRange.value[0],
|
|
|
+ endDate: dateRange.value[1]
|
|
|
})
|
|
|
- placementData.value = resp.data
|
|
|
- crudExpose.setTableData(placementData.value.items)
|
|
|
+ crudExpose.setTableData(resp.data)
|
|
|
loading.value = false
|
|
|
}
|
|
|
|