Преглед изворни кода

🐛 perf<数据中心-<合并展示,数据录入>>: 数据录入界面添加筛选

合并展示表格卡片去除;
数据录入界面添加筛选;
解决图表加载功能请求多次问题
xinyan пре 11 месеци
родитељ
комит
6d54e435fd

+ 47 - 20
src/views/reportManage/TaskManage/index.vue

@@ -47,9 +47,6 @@ const rules = reactive<FormRules>({
 });
 
 //表格
-// let page = 1;
-// let limit = 10;
-
 interface RowVO {
   platformNumber: string;
   platformName: string;
@@ -62,6 +59,7 @@ interface RowVO {
 }
 
 const xGrid = ref<VxeGridInstance<RowVO>>();
+const originalDataMap = new Map();
 
 const gridOptions = reactive<VxeGridProps<RowVO>>({
   border: false,
@@ -178,17 +176,32 @@ const hasActiveEditRow = (row: RowVO) => {
   return false;
 };
 
+// 进入编辑状态
 const editRowEvent = (row: RowVO) => {
   const $grid = xGrid.value;
   if ($grid) {
+    // 在进入编辑状态前保存原始数据
+    originalDataMap.set(row.id, { ...row });
+    // 初始化 row.user 确保其与 row.user_name 同步
+    if (!row.user || row.user.length === 0) {
+      row.user = operationList.value
+          .filter(op => row.user_name.includes(op.label))
+          .map(op => op.value);
+    }
     $grid.setEditRow(row);
   }
 };
 
 //清除编辑状态
-const clearRowEvent = () => {
+const clearRowEvent = (row: RowVO) => {
   const $grid = xGrid.value;
   if ($grid) {
+    const originalData = originalDataMap.get(row.id);
+    if (originalData) {
+      // 恢复原始数据
+      Object.assign(row, originalData);
+      originalDataMap.delete(row.id);
+    }
     $grid.clearEdit();
   }
 };
@@ -235,17 +248,28 @@ const removeEvent = async () => {
   }
 };
 
-async function updateRow(row: RowVO) {
-  const $grid = xGrid.value;
-  const transUser = ref('');
-  operationList.value.find((item) => {
-    if (item.label === row.user_name) {
-      transUser.value = item.value;
-    } else if (row.user_name === item.value) {
-      row.user_name = item.label;
-      transUser.value = item.value;
+// 更新数据校验
+const requiredFields = [
+  { field: 'platformNumber', title: '平台编号' },
+  { field: 'platformName', title: '平台名称' },
+  { field: 'country', title: '国家' },
+  { field: 'brandName', title: '品牌' },
+  { field: 'user', title: '运营' },
+  { field: 'currencyCode', title: '汇款币种' }
+];
+
+const validateRow = (row) => {
+  for (const { field, title } of requiredFields) {
+    if (!row[field] || (Array.isArray(row[field]) && row[field].length === 0)) {
+      ElMessage.error(`${title}不能为空`);
+      return;
     }
-  });
+  }
+  return true;
+};
+
+async function updateRow(row) {
+  const $grid = xGrid.value;
   if ($grid) {
     const updatedRowData = {
       id: row.id,
@@ -253,10 +277,10 @@ async function updateRow(row: RowVO) {
       platformName: row.platformName,
       country: row.country,
       brandName: row.brandName,
-      user: [transUser.value],
+      user: row.user,
       currencyCode: row.currencyCode,
     };
-    // console.log(updatedRowData);
+    console.log('updatedRowData', updatedRowData);
     try {
       const response = await postUpdateTask(updatedRowData);
       console.log(response);
@@ -277,8 +301,12 @@ async function updateRow(row: RowVO) {
 const saveRowEvent = async (row: RowVO) => {
   const $grid = xGrid.value;
   if ($grid) {
+    if (!validateRow(row)) {
+      return;
+    }
     await $grid.clearEdit();
     await updateRow(row);
+    await getTaskList();
     gridOptions.loading = true;
     setTimeout(() => {
       gridOptions.loading = false;
@@ -377,7 +405,7 @@ onMounted(() => {
         </template>
         <template #operate="{ row }">
           <template v-if="hasActiveEditRow(row)">
-            <vxe-button content="取消" @click="clearRowEvent"></vxe-button>
+            <vxe-button content="取消" @click="clearRowEvent(row)"></vxe-button>
             <vxe-button status="primary" content="保存" @click="saveRowEvent(row)"></vxe-button>
           </template>
           <template v-else>
@@ -397,9 +425,8 @@ onMounted(() => {
           <vxe-input v-model="row.brandName"></vxe-input>
         </template>
         <template #operation_edit="{ row }">
-          <vxe-select v-model="row.user" transfer multiple>
-            <vxe-option v-for="item in operationList" :key="item.value" :value="item.value"
-                        :label="item.label"></vxe-option>
+          <vxe-select v-model="row.user" multiple>
+            <vxe-option v-for="item in operationList" :key="item.value" :value="item.value" :label="item.label"></vxe-option>
           </vxe-select>
         </template>
         <template #currency_edit="{ row }">

+ 9 - 4
src/views/reportManage/dataCenter/combinedDisplay/components/chartDateTendency/index.vue

@@ -43,10 +43,10 @@ const props = withDefaults(defineProps<Props>(), {
 
 const metrics = ref(props.initMetric)
 
-const metricsItems: Ref<MetricData[]> = ref([])
+// const metricsItems: Ref<MetricData[]> = ref([])
 let chartObj: any
 const chartRef = ref()
-const statDim = ref('day')
+// const statDim = ref('day')
 const option: any = {
   dataset: {
     source: [],
@@ -189,11 +189,16 @@ const getDataset = async () => {
 
 const emit = defineEmits(['changeStatDim'])
 
+let initialized = false;
 watch(props.query, async () => {
-  emitter.emit('chartDateTendency-changeStatDim') // 触发DataTable的loading
+  if (!initialized) {
+    initialized = true;
+    return;
+  }
+  // emitter.emit('chartDateTendency-changeStatDim') // 触发DataTable的loading
   loading.value = true
   const items = await getDataset()
-  emit('changeStatDim', items) // 向父组件传递数据后再传递给DataTable
+  // emit('changeStatDim', items) // 向父组件传递数据后再传递给DataTable
   const opt = { dataset: { source: items } }
   chartObj.setOption(opt)
   loading.value = false

+ 26 - 26
src/views/reportManage/dataCenter/combinedDisplay/components/tableData/mainData.vue

@@ -9,8 +9,8 @@ const props = defineProps({
   monthDate:Object,
   taskIds: Object,
 });
-const dateType = inject<Ref>('dateDimension');
-const currentDate = inject<Ref>('currentDate')
+// const dateType = inject<Ref>('dateDimension');
+// const currentDate = inject<Ref>('currentDate')
 
 const tableColumns = ref([]);
 const tableData = ref([]);
@@ -54,11 +54,11 @@ const gridEvents = {
   },
 };
 
-watch(currentDate,(newValue)=>{
-  if (newValue){
-    console.log(newValue);
-  }
-})
+// watch(currentDate,(newValue)=>{
+//   if (newValue){
+//     console.log(newValue);
+//   }
+// })
 
 // 获取数据
 async function fetchMainData(taskIds) {
@@ -95,7 +95,7 @@ watch(() => props.dayDate, (newDayDate) => {
     const {dailyStartDate, dailyTime}= newDayDate;
     dayStartDate.value = dailyStartDate;
     dayEndDate.value = dailyTime;
-    loadData();
+    // loadData();
   }
 });
 // 监测 weekDate 变化
@@ -112,7 +112,7 @@ watch(() => props.monthDate, (newMonthDate) => {
   if (newMonthDate) {
     const {startDate} = newMonthDate;
     monthStartDate.value = startDate;
-    loadData();
+    // loadData();
   }
 });
 
@@ -142,25 +142,25 @@ async function loadData() {
 }
 
 // 初始化日期值
-function initializeDateValues() {
-  if (props.dayDate) {
-    const [startDate, endDate] = props.dayDate;
-    dayStartDate.value = startDate;
-    dayEndDate.value = endDate;
-  }
-  if (props.weekDate) {
-    const [startDate] = props.weekDate;
-    weekStartDate.value = startDate;
-  }
-  if (props.monthDate) {
-    const [startDate] = props.monthDate;
-    monthStartDate.value = startDate;
-  }
-}
+// function initializeDateValues() {
+//   if (props.dayDate) {
+//     const [startDate, endDate] = props.dayDate;
+//     dayStartDate.value = startDate;
+//     dayEndDate.value = endDate;
+//   }
+//   if (props.weekDate) {
+//     const [startDate] = props.weekDate;
+//     weekStartDate.value = startDate;
+//   }
+//   if (props.monthDate) {
+//     const [startDate] = props.monthDate;
+//     monthStartDate.value = startDate;
+//   }
+// }
 
 onMounted(async () => {
-  initializeDateValues();
-  await loadData();
+  // initializeDateValues();
+  // await loadData();
 });
 </script>
 

+ 46 - 46
src/views/reportManage/dataCenter/combinedDisplay/index.vue

@@ -1,5 +1,5 @@
 <script lang="ts" setup>
-import { dayMetricsEnum, monthMetricsEnum, weekMetricsEnum } from '/src/views/reportManage/dataCenter/utils/enum';
+import {monthCompareMetricsEnum} from '/src/views/reportManage/dataCenter/utils/enum';
 import {
   getCardDayData,
   getCardMonthData,
@@ -26,26 +26,26 @@ const selectorRef = ref(null);
 const taskIds = ref({});
 
 //日周月
-const dateDimension = ref('day');
-provide('dateDimension', dateDimension);
+// const dateDimension = ref('day');
+// provide('dateDimension', dateDimension);
 
 const dayDate = ref(null);
 const weekDate = ref(null);
 const monthDate = ref(null);
 
-const currentDate = computed(() => {
-  if (dateDimension.value === 'day') {
-    return dayDate.value;
-  } else if (dateDimension.value === 'week') {
-    return weekDate.value;
-  } else if (dateDimension.value === 'month') {
-    return monthDate.value;
-  }
-});
+// const currentDate = computed(() => {
+//   if (dateDimension.value === 'day') {
+//     return dayDate.value;
+//   } else if (dateDimension.value === 'week') {
+//     return weekDate.value;
+//   } else if (dateDimension.value === 'month') {
+//     return monthDate.value;
+//   }
+// });
 
-watch(currentDate, (val) => {
-  // console.log('currentDate', val);
-});
+// watch(currentDate, (val) => {
+//   // console.log('currentDate', val);
+// });
 
 const monthCurrentDate = ref({});
 
@@ -56,11 +56,11 @@ const processingDateChange = (date) => {
   monthDate.value = date.monthDate;
 };
 
-provide('currentDate', currentDate);
-const mainQueryParams = ref({
-  currentDate,
-  taskIds,
-});
+// provide('currentDate', currentDate);
+// const mainQueryParams = ref({
+//   currentDate,
+//   taskIds,
+// });
 
 const monthQueryParams = ref({
   taskIds,
@@ -99,19 +99,19 @@ function handleButtonClick(tableName) {
 //   return [startDate.toISOString().substring(0, 10), endDate.toISOString().substring(0, 10)];
 // }
 
-emitter.on('DateTendency-dateChange', (value: string) => {
-  dateDimension.value = value;
-});
+// emitter.on('DateTendency-dateChange', (value: string) => {
+//   dateDimension.value = value;
+// });
 
-const currentMetricEnum = computed(() => {
-  if (dateDimension.value === 'day') {
-    return dayMetricsEnum;
-  } else if (dateDimension.value === 'week') {
-    return weekMetricsEnum;
-  } else if (dateDimension.value === 'month') {
-    return monthMetricsEnum;
-  }
-});
+// const currentMetricEnum = computed(() => {
+//   if (dateDimension.value === 'day') {
+//     return dayMetricsEnum;
+//   } else if (dateDimension.value === 'week') {
+//     return weekMetricsEnum;
+//   } else if (dateDimension.value === 'month') {
+//     return monthMetricsEnum;
+//   }
+// });
 
 </script>
 
@@ -127,25 +127,25 @@ const currentMetricEnum = computed(() => {
         <DataPicker style="display: flex; align-items: center;" @changeDate="processingDateChange" />
       </div>
     </el-card>
-    <el-card v-if="showTable === 'mainData'" class="mb-1.5">
-      <DateTendency
-          :fetch-line-month="getLineForMonth"
-          :fetch-line-week="getLineForWeek"
-          :fetchCard="getCardDayData"
-          :fetchCardMonth="getCardMonthData"
-          :fetchCardWeek="getCardWeekData"
-          :fetchLine="getLineForDay"
-          :metricEnum="currentMetricEnum"
-          :query="mainQueryParams"
-      >
-      </DateTendency>
-    </el-card>
+    <!--<el-card v-if="showTable === 'mainData'" class="mb-1.5">-->
+    <!--  <DateTendency-->
+    <!--      :fetch-line-month="getLineForMonth"-->
+    <!--      :fetch-line-week="getLineForWeek"-->
+    <!--      :fetchCard="getCardDayData"-->
+    <!--      :fetchCardMonth="getCardMonthData"-->
+    <!--      :fetchCardWeek="getCardWeekData"-->
+    <!--      :fetchLine="getLineForDay"-->
+    <!--      :metricEnum="currentMetricEnum"-->
+    <!--      :query="mainQueryParams"-->
+    <!--  >-->
+    <!--  </DateTendency>-->
+    <!--</el-card>-->
     <el-card v-if="showTable === 'monthlyComparativeData'" class="mb-1.5">
       <chartDateTendency
           :fetch-line-month="getLineForMonth"
           :fetch-line-week="getLineForWeek"
           :fetchLine="getLineData"
-          :metricEnum="currentMetricEnum"
+          :metricEnum="monthCompareMetricsEnum"
           :query="monthQueryParams"
       >
       </chartDateTendency>

+ 21 - 16
src/views/reportManage/dataCenter/normalDisplay/components/DateTendency/index.vue

@@ -3,17 +3,17 @@
     <MetricsCards v-model="metrics" :metric-items="metricsItems" @change="changeMetric"></MetricsCards>
     <el-radio-group v-model="statDim" class="chart-button-group" @change="changeStatDim">
       <el-radio-button label="day">日</el-radio-button>
-      <el-radio-button label="week" :disabled="!props.fetchLineWeek">周</el-radio-button>
-      <el-radio-button label="month" :disabled="!props.fetchLineWeek">月</el-radio-button>
+      <el-radio-button :disabled="!props.fetchLineWeek" label="week">周</el-radio-button>
+      <el-radio-button :disabled="!props.fetchLineWeek" label="month">月</el-radio-button>
     </el-radio-group>
-    <div style="height: 350px" ref="chartRef"></div>
+    <div ref="chartRef" style="height: 350px"></div>
   </div>
 </template>
 
 <script lang="ts" setup>
 import * as echarts from 'echarts';
 import { Ref, computed, onBeforeUnmount, onMounted, ref, watch } from 'vue';
-import { dayMetricsEnum, weekMetricsEnum, monthMetricsEnum} from '/src/views/reportManage/dataCenter/utils/enum'
+import { dayMetricsEnum, weekMetricsEnum, monthMetricsEnum } from '/src/views/reportManage/dataCenter/utils/enum';
 import XEUtils from 'xe-utils';
 import MetricsCards from '../MetricsCards/index.vue';
 import emitter from '/src/utils/emitter';
@@ -232,6 +232,7 @@ const initLine = async () => {
 
 //条形图数据
 const getDataset = async () => {
+  // console.log('getDataset,line');
   if (statDim.value === 'week') {
     if (props.fetchLineWeek) {
       const resp = await props.fetchLineWeek(queryParams.value);
@@ -248,6 +249,7 @@ const getDataset = async () => {
     const resp = await props.fetchLine(queryParams.value);
     return resp.data;
   }
+
 };
 
 //卡片数据
@@ -285,26 +287,29 @@ const changeMetric = () => {
 //根据日,周,月更新图表
 const emit = defineEmits(['changeStatDim']);
 const changeStatDim = async () => {
-  // emitter.emit('DateTendency-changeStatDim') // 触发DataTable的loading
   emitter.emit('DateTendency-dateChange', statDim.value);
-  loading.value = true;
-  let source = await getDataset();
-  if (source.length > 0) {
-    chartObj.setOption({dataset: {source: source}});
-  }
-  await getMetricsItems();
-  loading.value = false;
-  emit('changeStatDim', source); // 向父组件传递数据后再传递给DataTable
+  // loading.value = true;
+  // // let source = await getDataset();
+  // // if (source.length > 0) {
+  // //   chartObj.setOption({dataset: {source: source}});
+  // // }
+  // // await getMetricsItems();
+  // loading.value = false;
 };
 
 //监测dataRange的变化
+let initialized = false;
+
 watch(props.query, async () => {
-  // console.log("------watch-----queryParams", props.query)
-  emitter.emit('DateTendency-changeStatDim'); // 触发DataTable的loading
+  if (!initialized) {
+    initialized = true;
+    return;
+  }
+  // emitter.emit('DateTendency-changeStatDim'); // 触发DataTable的loading
   loading.value = true;
   await getMetricsItems();
   const items = await getDataset();
-  emit('changeStatDim', items); // 向父组件传递数据后再传递给DataTable
+  // emit('changeStatDim', items); // 向父组件传递数据后再传递给DataTable
   const opt = {dataset: {source: items}};
   chartObj.setOption(opt);
   loading.value = false;

+ 16 - 14
src/views/reportManage/dataCenter/normalDisplay/components/Selector/index.vue

@@ -3,8 +3,8 @@ import { onMounted, ref, watch } from 'vue';
 import { getOperationSelect, getTasks, getTasksId } from '/@/views/reportManage/TaskManage/api';
 
 const emit = defineEmits();
-const platformNumberList = ref([]);
-const platformNameList = ref([]);
+const platformNumberList = ref('');
+const platformNameList = ref('');
 const operationList = ref([]);
 const countryList = ref([]);
 const brandNameList = ref([]);
@@ -44,7 +44,13 @@ const filteredData = ref([]);
 
 async function fetchFilteredData() {
   const filters: any = {};
-  const processFilter = (list: any, singleKey: string, multipleKey: string) => {
+  const processFilterSingle = (value: any, singleKey: string) => {
+    if (value) {
+      filters[singleKey] = value;
+    }
+  };
+
+  const processFilterMultiple = (list: any, singleKey: string, multipleKey: string) => {
     if (list.value.length === 1) {
       filters[singleKey] = list.value[0];
     } else if (list.value.length > 1) {
@@ -52,10 +58,10 @@ async function fetchFilteredData() {
     }
   };
 
-  processFilter(platformNumberList, 'platformNumber', 'platformNumbers');
-  processFilter(platformNameList, 'platformName', 'platformNames');
-  processFilter(countryList, 'country', 'countrys');
-  processFilter(brandNameList, 'brandName', 'brandNames');
+  processFilterSingle(platformNumberList.value, 'platformNumber');
+  processFilterSingle(platformNameList.value, 'platformName');
+  processFilterMultiple(countryList, 'country', 'countries');
+  processFilterMultiple(brandNameList, 'brandName', 'brandNames');
 
   if (operationList.value.length > 0) {
     filters.users = operationList.value.join(',');
@@ -77,7 +83,7 @@ async function emitChange() {
   emit('update:updateData', updateData);
 }
 
-watch([platformNumberList, platformNameList, countryList, brandNameList, operationList], () => {
+watch([countryList, brandNameList, operationList], () => {
   emitChange();
 
 })
@@ -94,12 +100,8 @@ defineExpose({fetchFilteredData, filteredData, updateData});
 
 <template>
   <div class="flex gap-2">
-    <el-select v-model="platformNumberList" multiple collapse-tags collapse-tags-tooltip placeholder="平台编号" style="width: 160px">
-      <el-option v-for="item in platformNumberOptions" :key="item" :label="item" :value="item" />
-    </el-select>
-    <el-select v-model="platformNameList" multiple collapse-tags collapse-tags-tooltip placeholder="平台名称" style="width: 160px">
-      <el-option v-for="item in platformNameOptions" :key="item" :label="item" :value="item" />
-    </el-select>
+    <el-input v-model="platformNumberList" @keyup.enter="emitChange" placeholder="平台编号" style="width: 160px"></el-input>
+    <el-input v-model="platformNameList" @keyup.enter="emitChange" placeholder="平台名称" style="width: 160px"></el-input>
     <el-select v-model="operationList" multiple collapse-tags collapse-tags-tooltip placeholder="运营" style="width: 160px">
       <el-option v-for="item in operationOptions" :key="item.value" :label="item.label" :value="item.value" />
     </el-select>

+ 30 - 24
src/views/reportManage/dataCenter/normalDisplay/components/TableDataDisplay.vue

@@ -99,6 +99,14 @@ async function fetchData(apiFunction, taskIds) {
     });
     gridOptions[dateType.value].data = resp.data;
     gridOptions.pagerConfig.total = resp.total;
+    // const firstRow = resp.data[0];
+    // const dynamicColumns = [];
+    // for (const key in firstRow) {
+    //   if (key.includes('的销售额')) { // 匹配以日期开头的键名
+    //     dynamicColumns.push({ field: key, title: key });
+    //     console.log('dynamicColumns',dynamicColumns);
+    //   }
+    // }
   } catch (error) {
     console.error('Error fetching task data:', error);
   } finally {
@@ -111,11 +119,11 @@ async function fetchDayData(taskIds) {
 }
 
 async function fetchWeekData(taskIds) {
-  await fetchData(getWeekData, taskIds);
+  // await fetchData(getWeekData, taskIds);
 }
 
 async function fetchMonthData(taskIds) {
-  await fetchData(getMonthData, taskIds);
+  // await fetchData(getMonthData, taskIds);
 }
 
 function fetchCurrentData(taskIds) {
@@ -124,6 +132,7 @@ function fetchCurrentData(taskIds) {
     fetchDayData(taskIds);
   } else if (dateType.value === 'week') {
     data_datetime_exact = weekEndDate;
+    console.log('week');
     fetchWeekData(taskIds);
   } else if (dateType.value === 'month') {
     data_datetime_exact = endDate;
@@ -145,10 +154,7 @@ const handleImport = () => {
 };
 
 onMounted(() => {
-  fetchCurrentData(props.taskIds);
-  watch(dateType, () => {
-    fetchCurrentData(props.taskIds);
-  });
+  // fetchCurrentData(props.taskIds);
 });
 </script>
 
@@ -161,24 +167,24 @@ onMounted(() => {
         <span v-else-if="dateType === 'week'" class="text-right">{{weekEndDate}}周数据</span>
         <span v-else-if="dateType === 'month'" class="text-right">{{endDate}}月数据</span>
       </template>
-      <template #platformNumber_default="{ row }">
-        <div>{{ row.task_info.platformNumber }}</div>
-      </template>
-      <template #platformName_default="{ row }">
-        <div>{{ row.task_info.platformName }}</div>
-      </template>
-      <template #user_name_default="{ row }">
-        <div>{{ row.task_info.user_name }}</div>
-      </template>
-      <template #country_default="{ row }">
-        <div>{{ row.task_info.country }}</div>
-      </template>
-      <template #brandName_default="{ row }">
-        <div>{{ row.task_info.brandName }}</div>
-      </template>
-      <template #currencyCode_default="{ row }">
-        <div>{{ row.task_info.currencyCode }}</div>
-      </template>
+      <!--<template #platformNumber_default="{ row }">-->
+      <!--  <div>{{ row.task_info.platformNumber }}</div>-->
+      <!--</template>-->
+      <!--<template #platformName_default="{ row }">-->
+      <!--  <div>{{ row.task_info.platformName }}</div>-->
+      <!--</template>-->
+      <!--<template #user_name_default="{ row }">-->
+      <!--  <div>{{ row.task_info.user_name }}</div>-->
+      <!--</template>-->
+      <!--<template #country_default="{ row }">-->
+      <!--  <div>{{ row.task_info.country }}</div>-->
+      <!--</template>-->
+      <!--<template #brandName_default="{ row }">-->
+      <!--  <div>{{ row.task_info.brandName }}</div>-->
+      <!--</template>-->
+      <!--<template #currencyCode_default="{ row }">-->
+      <!--  <div>{{ row.task_info.currencyCode }}</div>-->
+      <!--</template>-->
 
     </vxe-grid>
   </div>

+ 193 - 168
src/views/reportManage/dataCenter/normalDisplay/components/TableDataEntry.vue

@@ -14,32 +14,34 @@ import { dayColumns, weekColumns, monthColumns } from '../../utils/columns';
 import { ComponentSize, ElMessage, FormInstance, FormRules } from 'element-plus';
 import enLocale from 'element-plus/es/locale/lang/en';
 import Selector from '/@/views/reportManage/dataCenter/normalDisplay/components/Selector/index.vue';
-
 dayjs.extend(isoWeek);
 
-const router = useRouter();
+// const router = useRouter();
 const route = useRoute();
 const dateType = <string>route.query.dateType;
 
+// 筛选查询
+const selectorRef = ref(null);
+const taskIds = ref({});
+
 //日期选择
-const dailyEntryTime = ref(dayjs().format('YYYY-MM-DD'));
-const dailyTime = ref(dayjs().subtract(1, 'day').format('YYYY-MM-DD'));
+// const dailyEntryTime = ref(dayjs().format('YYYY-MM-DD'));
+const dailySalesTime = ref(dayjs().subtract(1, 'day').format('YYYY-MM-DD'));
 
 const weeklyEntryTime = ref(null);
-const weeklySalesTime = ref(null);
+// const weeklySalesTime = ref(null);
 const weeklyAdTime = ref(null);
 
-const entryStartDate = ref('');
-const entryEndDate = ref('');
-const salesStartDate = ref('');
-const salesEndDate = ref('');
+const entryStartDate = ref(dayjs().locale('en').startOf('week').format('YYYY-MM-DD'));
+const entryEndDate = ref(dayjs().locale('en').endOf('week').format('YYYY-MM-DD'));
+// const salesStartDate = ref('');
+// const salesEndDate = ref('');
 const adStartDate = ref('');
 const adEndDate = ref('');
 
 const monthlyEntryTime = ref(null);
 const startDate = ref(null);
 const endDate = ref(null);
-
 const shortcuts = [
   {
     text: '今天',
@@ -63,26 +65,15 @@ const shortcuts = [
   },
 ];
 
-function handleDayChange(event) {
-  const $dailyEntryTime = dailyEntryTime.value;
-  if ($dailyEntryTime) {
-    const dailyTimeValue = new Date($dailyEntryTime);
-    dailyTimeValue.setDate(dailyTimeValue.getDate());
-    dailyTime.value = dailyTimeValue.toISOString().split('T')[0];
-  } else {
-    dailyTime.value = '';
-  }
+function handleDayChange(value) {
+  dailySalesTime.value = dayjs(value).format('YYYY-MM-DD');
+  fetchCurrentTaskData();
 }
 
 const handleWeekChange = () => {
   if (weeklyEntryTime.value) {
     entryStartDate.value = dayjs(weeklyEntryTime.value).locale('en').startOf('week').format('YYYY-MM-DD');
     entryEndDate.value = dayjs(weeklyEntryTime.value).locale('en').endOf('week').format('YYYY-MM-DD');
-
-    weeklySalesTime.value = weeklyEntryTime.value;
-    salesStartDate.value = entryStartDate.value;
-    salesEndDate.value = entryEndDate.value;
-
     const adDate = dayjs(weeklyEntryTime.value).locale('en').subtract(7, 'day');
     weeklyAdTime.value = adDate.format('YYYY-WW');
     adStartDate.value = adDate.startOf('week').format('YYYY-MM-DD');
@@ -90,10 +81,6 @@ const handleWeekChange = () => {
   }
 };
 
-const entryFormat = computed(() => `${entryStartDate.value} to ${entryEndDate.value}`);
-const salesFormat = computed(() => `${salesStartDate.value} to ${salesEndDate.value}`);
-const adFormat = computed(() => `${adStartDate.value} to ${adEndDate.value}`);
-
 watch(weeklyEntryTime, handleWeekChange);
 
 const handleMonthChange = (value) => {
@@ -104,31 +91,51 @@ const handleMonthChange = (value) => {
     const lastDay = new Date(year, month, 0).getDate();
     startDate.value = `${year}-${String(month).padStart(2, '0')}-01`;
     endDate.value = `${year}-${String(month).padStart(2, '0')}-${lastDay}`;
+    // console.log('start', startDate.value, 'end', endDate.value);
   } else {
     startDate.value = null;
     endDate.value = null;
   }
 };
+
+const entryFormat = computed(() => `${entryStartDate.value} to ${entryEndDate.value}`);
+const adFormat = computed(() => `${adStartDate.value} to ${adEndDate.value}`);
 const monthlyEntryFormat = computed(() => `${startDate.value} to ${endDate.value}`);
 
 const disabledDate = (time: Date) => {
   return time.getTime() > Date.now();
 };
 
+function setDefaultDate() {
+  switch (dateType) {
+    case 'day':
+      dailySalesTime.value = dayjs().subtract(1, 'day').format('YYYY-MM-DD');
+      break;
+    case 'week':
+      weeklyEntryTime.value = dayjs().locale('en').subtract(1, 'week').startOf('week').format('YYYY-MM-DD');
+      handleWeekChange();
+      break;
+    case 'month':
+      monthlyEntryTime.value = new Date();
+      startDate.value = dayjs(monthlyEntryTime.value).startOf('month').format('YYYY-MM-DD');
+      endDate.value = dayjs(monthlyEntryTime.value).endOf('month').format('YYYY-MM-DD');
+  }
+}
+
 //表单
 interface taskDataForm {
-  sales: number;
-  ad_sales: number;
-  ad_cost: number;
+  sales_original: number,
+  ad_sales_original: number,
+  ad_cost_original: number,
 
   total_sales_current_monthly: number;
   impression: number;
   ad_click: number;
   ad_order: number;
-  money_by_amazon: number;
-  money_by_other: number;
-  session: string;
-  order: string;
+  money_by_amazon_original: number;
+  money_by_other_original: number;
+  session: number;
+  order: number;
   availableSalesDay: number;
   intransitInventory: number;
   overseasStorage: number;
@@ -139,21 +146,22 @@ const formSize = ref<ComponentSize>('default');
 const dayFormVisible = ref(false);
 const taskDataFormRef = ref<FormInstance>();
 const taskDataForm = reactive({
-  sales: null,
-  ad_sales: null,
-  ad_cost: null,
+  sales_original: null,
+  ad_sales_original: null,
+  ad_cost_original: null,
   total_sales_current_monthly: null,
   impression: null,
   ad_click: null,
   ad_order: null,
-  money_by_amazon: null,
-  money_by_other: null,
-  session: '',
-  order: '',
+  // money_by_other: null,
+  session: null,
+  order: null,
   availableSalesDay: null,
   intransitInventory: null,
   overseasStorage: null,
   refundRate: null,
+  money_by_amazon_original:null,
+  money_by_other_original:null,
 });
 
 const resetForm = (formEl: FormInstance | undefined) => {
@@ -161,17 +169,17 @@ const resetForm = (formEl: FormInstance | undefined) => {
   formEl.resetFields();
 };
 const rules = reactive<FormRules>({
-  sales: [{required: true, message: '请输入销售额', trigger: 'blur'}],
-  ad_sales: [{required: true, message: '请输入广告销售额', trigger: 'blur'}],
-  ad_cost: [{required: true, message: '请输入广告花费', trigger: 'blur'}],
+  sales_original: [{required: true, message: '请输入销售额', trigger: 'blur'}],
+  ad_sales_original: [{required: true, message: '请输入广告销售额', trigger: 'blur'}],
+  ad_cost_original: [{required: true, message: '请输入广告花费', trigger: 'blur'}],
   total_sales_current_monthly: [{required: true, message: '请输入当月销售额', trigger: 'blur'}],
   impression: [{required: true, message: '请输入广告展示量', trigger: 'blur'}],
   ad_click: [{required: true, message: '请输入广告点击量', trigger: 'blur'}],
   ad_order: [{required: true, message: '请输入广告订单量', trigger: 'blur'}],
-  money_by_amazon: [{required: true, message: '请输入亚马逊佣金', trigger: 'blur'}],
-  money_by_other: [{required: true, message: '请输入其他佣金', trigger: 'blur'}],
+  money_by_amazon_original: [{required: true, message: '请输入亚马逊佣金', trigger: 'blur'}],
+  money_by_other_original: [{required: true, message: '请输入其他佣金', trigger: 'blur'}],
   session: [{required: true, message: '请输入会话数', trigger: 'blur'}],
-  order: [{required: true, message: '请输入转化', trigger: 'blur'}],
+  order: [{required: true, message: '请输入订单', trigger: 'blur'}],
   availableSalesDay: [{required: true, message: '请输入可用销量天数', trigger: 'blur'}],
   intransitInventory: [{required: true, message: '请输入在途库存', trigger: 'blur'}],
   overseasStorage: [{required: true, message: '请输入海外仓库存', trigger: 'blur'}],
@@ -189,16 +197,16 @@ const monthData = [];
 interface RowVO {
   id: number;
   task: number;
-  sales: number;
-  ad_sales: number;
-  ad_cost: number;
-
+  // ad_cost: number;
+  sales_original: number,
+  ad_sales_original: number,
+  ad_cost_original: number,
   total_sales_current_monthly: number;
   impression: number;
   ad_click: number;
   ad_order: number;
-  money_by_amazon: number;
-  money_by_other: number;
+  money_by_amazon_original: number;
+  money_by_other_original: number;
   session: string;
   order: string;
   availableSalesDay: number;
@@ -208,9 +216,11 @@ interface RowVO {
 }
 
 const xGrid = ref<VxeGridInstance<RowVO>>();
+const originalDataMap = new Map();
+
 const gridOptions = reactive({
   border: false,
-  height: 900,
+  height: 800,
   align: null,
   round: true,
   loading: false,
@@ -249,7 +259,6 @@ const gridOptions = reactive({
   }
 });
 
-
 const gridEvents = {
   pageChange({currentPage, pageSize}) {
     if (gridOptions.pagerConfig) {
@@ -269,9 +278,14 @@ const hasActiveEditRow = (row: RowVO) => {
   return false;
 };
 
-const clearRowEvent = () => {
+const clearRowEvent = (row: RowVO) => {
   const $grid = xGrid.value;
   if ($grid) {
+    const originalData = originalDataMap.get(row.id);
+    if (originalData) {
+      Object.assign(row, originalData);
+      originalDataMap.delete(row.id);
+    }
     $grid.clearEdit();
   }
 };
@@ -279,19 +293,27 @@ const clearRowEvent = () => {
 const handelEditRow = (row: RowVO) => {
   const $grid = xGrid.value;
   if ($grid) {
+    originalDataMap.set(row.id, { ...row });
     $grid.setEditRow(row);
   }
 };
 
+function updateDataChange(newId) {
+  if (selectorRef.value) {
+    taskIds.value = newId.value;
+    fetchCurrentTaskData()
+  }
+}
+
 // 获取表格数据
 let dateParams;
-
 async function fetchTaskData(apiFunction) {
   try {
     gridOptions.loading = true;
     const resp = await apiFunction({
       page: gridOptions.pagerConfig.currentPage,
       limit: gridOptions.pagerConfig.pageSize,
+      task_ids: taskIds.value,
       ...dateParams
     });
     gridOptions[dateType].data = resp.data;
@@ -303,18 +325,6 @@ async function fetchTaskData(apiFunction) {
   }
 }
 
-watch(dailyTime, () => {
-  fetchCurrentTaskData();
-});
-
-watch(salesEndDate, () => {
-  fetchCurrentTaskData();
-});
-
-watch(endDate, () => {
-  fetchCurrentTaskData();
-});
-
 async function fetchDayTaskData() {
   await fetchTaskData(getDayTaskData);
 }
@@ -330,19 +340,19 @@ async function fetchMonthTaskData() {
 function fetchCurrentTaskData() {
   if (dateType === 'day') {
     dateParams = {
-      day_start_date: dailyTime.value,
-      day_end_date: dailyTime.value
+      day_start_date: dailySalesTime.value,
+      day_end_date: dailySalesTime.value
     };
     fetchDayTaskData();
   } else if (dateType === 'week') {
     dateParams = {
-      week_start_date: salesEndDate.value,
-      week_end_date: salesEndDate.value
+      week_start_date: entryStartDate.value,
+      week_end_date: entryEndDate.value
     };
     fetchWeekTaskData();
   } else if (dateType === 'month') {
     dateParams = {
-      month_start_date: endDate.value,
+      month_start_date: startDate.value,
       month_end_date: endDate.value
     };
     fetchMonthTaskData();
@@ -357,37 +367,54 @@ const editEvent = async (row: RowVO) => {
   dayFormVisible.value = true;
 };
 
-const validateNumericFields = (fields: Record<string, any>): boolean => {
-  const numericFields = ['sales', 'total_sales_current_monthly', 'ad_sales', 'ad_cost', 'impression', 'ad_click', 'ad_order', 'money_by_amazon', 'money_by_other', 'availableSalesDay', 'intransitInventory', 'overseasStorage', 'refundRate'];
-
-  for (const field of numericFields) {
-    if (fields[field] !== null && fields[field] !== undefined && isNaN(Number(fields[field]))) {
-      const column = weekColumns.value.find(col => col.field === field);
-      const title = column ? column.title : field;
-      ElMessage.warning(`${title} 必须为数字`);
-      return false;
+// 校验数据
+const validateNumericFields = (fields: Record<string, any>, fieldsToValidate: string[]): boolean => {
+  const numericFields = ['sales_original', 'total_sales_current_monthly', 'ad_sales_original', 'ad_cost_original', 'money_by_amazon_original', 'money_by_other_original', 'refundRate'];
+  const integerFields = ['impression', 'ad_click', 'ad_order', 'session', 'order', 'availableSalesDay', 'intransitInventory', 'overseasStorage'];
+
+  for (const field of fieldsToValidate) {
+    const value = fields[field];
+    if (numericFields.includes(field)) {
+      if (value === null || value === undefined || value === '') {
+        const column = weekColumns.value.find(col => col.field === field);
+        const title = column ? column.title : field;
+        ElMessage.warning(`${title} 不能为空`);
+        return false;
+      }
+      if (isNaN(Number(value))) {
+        const column = weekColumns.value.find(col => col.field === field);
+        const title = column ? column.title : field;
+        ElMessage.warning(`${title} 必须为数字`);
+        return false;
+      }
+    } else if (integerFields.includes(field)) {
+      if (value === null || value === undefined || value === '') {
+        const column = weekColumns.value.find(col => col.field === field);
+        const title = column ? column.title : field;
+        ElMessage.warning(`${title} 不能为空`);
+        return false;
+      }
+      if (!Number.isInteger(Number(value)) || isNaN(Number(value))) {
+        const column = weekColumns.value.find(col => col.field === field);
+        const title = column ? column.title : field;
+        ElMessage.warning(`${title} 必须为整数`);
+        return false;
+      }
     }
   }
+
   return true;
 };
 
 //创建日数据
 async function createDayData() {
-  // if (
-  //     isNaN(parseFloat(taskDataForm.sales)) ||
-  //     isNaN(parseFloat(taskDataForm.ad_sales)) ||
-  //     isNaN(parseFloat(taskDataForm.ad_cost))
-  // ) {
-  //   ElMessage.warning('销售额、广告销售额、广告花费必须为数字');
-  //   return; // 停止执行后续操作
-  // }
   if (!validateNumericFields(taskDataForm)) return;
   const body = {
-    sales: taskDataForm.sales,
-    ad_sales: taskDataForm.ad_sales,
-    ad_cost: taskDataForm.ad_cost,
-    enter_datetime: dailyEntryTime.value,
-    data_datetime: dailyTime.value,
+    sales_original: taskDataForm.sales_original,
+    ad_sales_original: taskDataForm.ad_sales_original,
+    ad_cost_original: taskDataForm.ad_cost_original,
+    // enter_datetime: dailySalesTime.value,
+    data_datetime: dailySalesTime.value,
     task: taskId,
   };
   if (!currentId) {
@@ -410,29 +437,27 @@ async function createDayData() {
 
 //创建周数据
 async function createWeekData() {
-
+  if (!validateNumericFields(taskDataForm)) return;
   const body = {
-    sales: taskDataForm.sales,
+    sales_original: taskDataForm.sales_original,
+    ad_sales_original: taskDataForm.ad_sales_original,
+    ad_cost_original: taskDataForm.ad_cost_original,
     total_sales_current_monthly: taskDataForm.total_sales_current_monthly,
-    ad_sales: taskDataForm.ad_sales,
-    ad_cost: taskDataForm.ad_cost,
     impression: taskDataForm.impression,
     ad_click: taskDataForm.ad_click,
     ad_order: taskDataForm.ad_order,
-    money_by_amazon: taskDataForm.money_by_amazon,
-    money_by_other: taskDataForm.money_by_other,
+    money_by_amazon_original: taskDataForm.money_by_amazon_original,
+    money_by_other_original: taskDataForm.money_by_other_original,
     session: taskDataForm.session,
     order: taskDataForm.order,
     availableSalesDay: taskDataForm.availableSalesDay,
     intransitInventory: taskDataForm.intransitInventory,
     overseasStorage: taskDataForm.overseasStorage,
     refundRate: taskDataForm.refundRate,
-    sales_start_time: salesStartDate.value,
-    sales_end_time: salesEndDate.value,
+    sales_start_time: entryStartDate.value,
+    sales_end_time: entryEndDate.value,
     ad_start_time: adStartDate.value,
     ad_end_time: adEndDate.value,
-    enter_start_datetime: entryStartDate.value,
-    enter_end_datetime: entryEndDate.value,
     task: taskId,
   };
   if (!currentId) {
@@ -455,17 +480,16 @@ async function createWeekData() {
 
 //创建月数据
 async function createMonthData() {
+  if (!validateNumericFields(taskDataForm)) return;
   const body = {
-    sales: taskDataForm.sales,
-    ad_sales: taskDataForm.ad_sales,
-    ad_cost: taskDataForm.ad_cost,
+    sales_original: taskDataForm.sales_original,
+    ad_sales_original: taskDataForm.ad_sales_original,
+    ad_cost_original: taskDataForm.ad_cost_original,
     impression: taskDataForm.impression,
     ad_click: taskDataForm.ad_click,
     ad_order: taskDataForm.ad_order,
     data_start_time: startDate.value,
     data_end_time: endDate.value,
-    enter_start_time: startDate.value,
-    enter_end_time: endDate.value,
     task: taskId,
   };
   if (!currentId) {
@@ -509,13 +533,13 @@ const submitForm = async (formEl: FormInstance | undefined) => {
 async function updateDayData(row: RowVO) {
   const $grid = xGrid.value;
   if ($grid) {
+
     const body = {
       id: row.id,
-      sales: row.sales,
-      ad_sales: row.ad_sales,
-      ad_cost: row.ad_cost,
-      enter_datetime: dailyEntryTime.value,
-      data_datetime: dailyTime.value,
+      sales_original: row.sales_original,
+      ad_sales_original: row.ad_sales_original,
+      ad_cost_original: row.ad_cost_original,
+      data_datetime: dailySalesTime.value,
       task: row.task,
     };
     try {
@@ -539,23 +563,23 @@ async function updateWeekData(row: RowVO) {
   if ($grid) {
     const body = {
       id: row.id,
-      sales: row.sales,
+      sales_original: row.sales_original,
+      ad_sales_original: row.ad_sales_original,
+      ad_cost_original: row.ad_cost_original,
       total_sales_current_monthly: row.total_sales_current_monthly,
-      ad_sales: row.ad_sales,
-      ad_cost: row.ad_cost,
       impression: row.impression,
       ad_click: row.ad_click,
       ad_order: row.ad_order,
-      money_by_amazon: row.money_by_amazon,
-      money_by_other: row.money_by_other,
+      money_by_amazon_original: row.money_by_amazon_original,
+      money_by_other_original: row.money_by_other_original,
       session: row.session,
       order: row.order,
       availableSalesDay: row.availableSalesDay,
       intransitInventory: row.intransitInventory,
       overseasStorage: row.overseasStorage,
       refundRate: row.refundRate,
-      sales_start_time: salesStartDate.value,
-      sales_end_time: salesEndDate.value,
+      sales_start_time: entryStartDate.value,
+      sales_end_time: entryEndDate.value,
       ad_start_time: adStartDate.value,
       ad_end_time: adEndDate.value,
       enter_start_datetime: entryStartDate.value,
@@ -583,9 +607,9 @@ async function updateMonthData(row: RowVO) {
   if ($grid) {
     const body = {
       id: row.id,
-      sales: row.sales,
-      ad_sales: row.ad_sales,
-      ad_cost: row.ad_cost,
+      sales_original: row.sales_original,
+      ad_sales_original: row.ad_sales_original,
+      ad_cost_original: row.ad_cost_original,
       impression: row.impression,
       ad_click: row.ad_click,
       ad_order: row.ad_order,
@@ -613,20 +637,19 @@ async function updateMonthData(row: RowVO) {
 const editRowEvent = async (row: any) => {
   const $grid = xGrid.value;
   if ($grid) {
-    await $grid.clearEdit();
     if (dateType === 'day') {
+      const fieldsToValidate = ['sales_original', 'ad_sales_original', 'ad_cost_original'];
+      if (!validateNumericFields(row, fieldsToValidate)) return; // 验证字段
       await updateDayData(row);
     } else if (dateType === 'week') {
+      const fieldsToValidate = ['sales_original', 'ad_sales_original', 'ad_cost_original', 'total_sales_current_monthly', 'impression', 'ad_click', 'ad_order', 'money_by_amazon_original', 'money_by_other_original', 'session', 'order', 'availableSalesDay', 'intransitInventory', 'overseasStorage', 'refundRate'];
+      if (!validateNumericFields(row, fieldsToValidate)) return; // 验证字段
       await updateWeekData(row);
     } else if (dateType === 'month') {
+      const fieldsToValidate = ['sales_original', 'ad_sales_original', 'ad_cost_original', 'impression', 'ad_click', 'ad_order',];
       await updateMonthData(row);
     }
-
-    gridOptions.loading = true;
-    // 模拟异步保存
-    setTimeout(() => {
-      gridOptions.loading = false;
-    }, 300);
+    await $grid.clearEdit();
   }
 };
 
@@ -639,18 +662,19 @@ const currentGridOptions = computed(() => {
 });
 
 const filteredDayColumns = computed(() => {
-  return dayColumns.value.filter(item => !['平台编号', '平台名称', '国家', '品牌', '操作', '运营'].includes(item.title));
+  return dayColumns.value.filter(item => !['平台编号', '平台名称', '国家', '品牌', '操作', '运营','销售额','广告销售额','广告花费'].includes(item.title));
 });
 
 const filteredWeekColumns = computed(() => {
-  return weekColumns.value.filter(item => !['平台编号', '平台名称', '国家', '品牌', '操作', '运营'].includes(item.title));
+  return weekColumns.value.filter(item => !['平台编号', '平台名称', '国家', '品牌', '操作', '运营','销售额','广告销售额','广告花费'].includes(item.title));
 });
 
 const filteredMonthColumns = computed(() => {
-  return monthColumns.value.filter(item => !['平台编号', '平台名称', '国家', '品牌', '操作', '运营'].includes(item.title));
+  return monthColumns.value.filter(item => !['平台编号', '平台名称', '国家', '品牌', '操作', '运营','销售额','广告销售额','广告花费'].includes(item.title));
 });
 
 onMounted(() => {
+  setDefaultDate();
   fetchCurrentTaskData();
 });
 </script>
@@ -659,27 +683,28 @@ onMounted(() => {
   <div>
     <el-card class="custom-card-style justify-between my-1.5 mx-2" >
       <div class="custom-card-style flex gap-1.5 justify-between my-1.5 mx-2" >
-        <!--<Selector ref="selectorRef" @update:updateData="updateDataChange" />-->
+        <Selector ref="selectorRef" @update:updateData="updateDataChange" />
         <div v-if="dateType === 'day'" class="demo-date-picker">
           <div class="block">
             <span class="demonstration">日数据时间:</span>
             <el-date-picker
-                v-model="dailyTime"
+                v-model="dailySalesTime"
                 :shortcuts="shortcuts"
-                disabled
-                type="Date"
-            />
-          </div>
-          <div class="block">
-            <span class="demonstration">日录入数据时间:</span>
-            <el-date-picker
-                v-model="dailyEntryTime"
                 :disabled-date="disabledDate"
-                :shortcuts="shortcuts"
                 type="Date"
                 @change="handleDayChange"
             />
           </div>
+          <!--<div class="block">-->
+          <!--  <span class="demonstration">日录入数据时间:</span>-->
+          <!--  <el-date-picker-->
+          <!--      v-model="dailyEntryTime"-->
+          <!--      :disabled-date="disabledDate"-->
+          <!--      :shortcuts="shortcuts"-->
+          <!--      type="Date"-->
+          <!--      @change="handleDayChange"-->
+          <!--  />-->
+          <!--</div>-->
         </div>
         <div v-if="dateType === 'week'" class="demo-date-picker">
           <el-config-provider :locale="enLocale">
@@ -693,18 +718,18 @@ onMounted(() => {
                   type="week"
               />
             </div>
+            <!--<div class="block">-->
+            <!--  <span class="demonstration">周销售数据时间:</span>-->
+            <!--  <el-date-picker-->
+            <!--      v-model="weeklySalesTime"-->
+            <!--      :format="salesFormat"-->
+            <!--      disabled-->
+            <!--      placeholder="选择一周"-->
+            <!--      type="week"-->
+            <!--  />-->
+            <!--</div>-->
             <div class="block">
               <span class="demonstration">周销售数据时间:</span>
-              <el-date-picker
-                  v-model="weeklySalesTime"
-                  :format="salesFormat"
-                  disabled
-                  placeholder="选择一周"
-                  type="week"
-              />
-            </div>
-            <div class="block">
-              <span class="demonstration">周录入数据时间:</span>
               <el-date-picker
                   v-model="weeklyEntryTime"
                   :disabled-date="disabledDate"
@@ -718,7 +743,7 @@ onMounted(() => {
         </div>
         <div v-if="dateType === 'month'" class="demo-date-picker">
           <div class="block">
-            <span class="demonstration">月录入数据时间:</span>
+            <span class="demonstration">月数据时间:</span>
             <el-date-picker
                 v-model="monthlyEntryTime"
                 :disabled-date="disabledDate"
@@ -737,7 +762,7 @@ onMounted(() => {
       <vxe-grid ref="xGrid" stripe v-bind="currentGridOptions" v-on="gridEvents">
         <template #operate="{ row }">
           <template v-if="hasActiveEditRow(row)">
-            <el-button link size="small" @click="clearRowEvent">取消</el-button>
+            <el-button link size="small" @click="clearRowEvent(row)">取消</el-button>
             <el-button link size="small" type="warning" @click="editRowEvent(row)">保存</el-button>
           </template>
           <template v-else>
@@ -745,14 +770,14 @@ onMounted(() => {
           </template>
           <el-button :disabled="row.id" link size="small" type="primary" @click="editEvent(row)">创建</el-button>
         </template>
-        <template #sales_edit="{ row }">
-          <vxe-input v-model="row.sales"></vxe-input>
+        <template #sales_original_edit="{ row }">
+          <vxe-input v-model="row.sales_original"></vxe-input>
         </template>
-        <template #ad_sales_edit="{ row }">
-          <vxe-input v-model="row.ad_sales"></vxe-input>
+        <template #ad_sales_original_edit="{ row }">
+          <vxe-input v-model="row.ad_sales_original"></vxe-input>
         </template>
-        <template #ad_cost_edit="{ row }">
-          <vxe-input v-model="row.ad_cost"></vxe-input>
+        <template #ad_cost_original_edit="{ row }">
+          <vxe-input v-model="row.ad_cost_original"></vxe-input>
         </template>
         <template #total_sales_current_monthly_edit="{ row }">
           <vxe-input v-model="row.total_sales_current_monthly"></vxe-input>
@@ -767,10 +792,10 @@ onMounted(() => {
           <vxe-input v-model="row.ad_order"></vxe-input>
         </template>
         <template #money_by_amazon_edit="{ row }">
-          <vxe-input v-model="row.money_by_amazon"></vxe-input>
+          <vxe-input v-model="row.money_by_amazon_original"></vxe-input>
         </template>
         <template #money_by_other_edit="{ row }">
-          <vxe-input v-model="row.money_by_other"></vxe-input>
+          <vxe-input v-model="row.money_by_other_original"></vxe-input>
         </template>
         <template #session_edit="{ row }">
           <vxe-input v-model="row.session"></vxe-input>

+ 5 - 4
src/views/reportManage/dataCenter/normalDisplay/index.vue

@@ -17,7 +17,7 @@ import emitter from '/src/utils/emitter';
 
 //筛选查询
 const selectorRef = ref(null);
-const taskIds = ref({});
+const taskIds = ref(null);
 //日周月选择
 const currentDate = ref({});
 const dateDimension = ref('day');
@@ -32,8 +32,8 @@ const handelDateChange = (date) => {
   currentDate.value = date;
 };
 
-watch(currentDate, (value) => {
-});
+// watch(currentDate, (value) => {
+// });
 
 emitter.on('DateTendency-dateChange', (value: string) => {
   dateDimension.value = value;
@@ -46,6 +46,7 @@ provide('currentDate', currentDate);
 function updateDataChange(newId) {
   if (selectorRef.value) {
     taskIds.value = newId.value;
+    // console.log('newId', newId.value);
   }
 }
 
@@ -92,7 +93,7 @@ onBeforeUnmount(() => {
 <style scoped>
 .custom-card-style {
   z-index: 999;
-  position: sticky;
+  /*position: sticky;*/
   top: 0;
 }
 </style>