<template>
	<fs-page class="fs-page-custom">
		<fs-crud ref="crudRef" v-bind="crudBinding">
			<template #search-left>
				<DateRangePicker v-model="dateRange"></DateRangePicker>
			</template>
			<template #header-middle>
				<DataTendencyChart :query="queryParams" :fetch-card="getCardData" :fetch-line="getLineData"> </DataTendencyChart>
			</template>
			<template v-for="field of Object.keys(BaseColumn)" #[`cell_${field}`]="scope">
        <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 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, watch } from 'vue'
import { useFs, FsPage } from '@fast-crud/fast-crud'
import { createCrudOptions } from './crud'
import { LocationQueryValue } from 'vue-router'
import DataTendencyChart from '/@/views/adManage/sp/chartComponents/dataTendency.vue'
// import { useShopInfo } from '/@/stores/shopInfo'
import { usePublicData } from '/@/stores/publicData'
import { getCardData, getLineData } from './api'
import { storeToRefs } from 'pinia'
import DateRangePicker from '/@/components/DateRangePicker/index.vue'
import { BaseColumn } from '/@/views/adManage/utils/commonTabColumn.js'
import DataCompare from '/@/components/dataCompare/index.vue'


interface Props {
	adGroupId: LocationQueryValue | LocationQueryValue[]
}
const props = defineProps<Props>()
const publicData = usePublicData()
const { dateRange } = storeToRefs(publicData)
const showCompare = ref(false)
const queryParams = ref({
	adGroupId: props.adGroupId,
	dateRange,
})
const { crudBinding, crudRef, crudExpose } = useFs({ createCrudOptions, context: queryParams })

onMounted(() => {
	crudExpose.doRefresh()
})
watch(queryParams, async () => {
	crudExpose.doRefresh()
}, { deep: true })
</script>

<style lang="scss" scoped>
.campare-switch {
  flex: none;
}
.chart-tabs {
	margin: 5px 0;

	.el-tabs__nav {
		padding-left: 0 !important;
	}
}
</style>
