瀏覽代碼

feat: 折线图修改

wyf 1 年之前
父節點
當前提交
b92db3f584

+ 9 - 9
src/api/datamanagement/dataplatform.ts

@@ -65,9 +65,9 @@ export const getUserAccessRecords = (params: UserAccessRecordQueryParams) => {
  */
 export interface ChartQuery {
   /** 开始时间 */
-  startTime: string;
+  startTime?: string;
   /** 结束时间 */
-  endTime: string;
+  endTime?: string;
   /** 员工id */
   userId?: string;
   /** 车间id */
@@ -106,11 +106,11 @@ export interface CameraVisitedTimes {
 /**
  * @description: 获取相机被访问次数数据
  */
-export const getCameraVisitedTimes = (params: ChartQuery) => {
+export const getCameraVisitedTimes = (body: ChartQuery) => {
   return http.request<CameraVisitedTimes[]>({
-    url: `/userRecord/statisticByCamera?startTime=${params.startTime}&endTime=${params.endTime}&workshopList=${params.workshopList?.join(',')}`,
-    // url: '/userRecord/statisticByCamera'+"?startTime="+params.startTime+"&endTime="+params.endTime+"&workshopList="+params.workshopList,
-    method: 'get',
+    url: '/userRecord/statisticByCamera',
+    method: 'post',
+    data: body,
   });
 };
 
@@ -136,10 +136,10 @@ export interface UserDailyVisitTimes {
 /**
  * @description: 获取员工日访问车间次数数据
  */
-export const getUserDailyVisitTimes = (params: ChartQuery) => {
+export const getUserDailyVisitTimes = (body: ChartQuery) => {
   return http.request<UserDailyVisitTimes[]>({
     url: '/userRecord/statisticByWorkshopPerDay',
-    method: 'get',
-    params,
+    method: 'post',
+    data: body,
   });
 };

+ 2 - 2
src/views/datamanager/platformdata/PlatformData.vue

@@ -23,8 +23,8 @@
 
 <script setup lang="ts">
   import { ref } from 'vue';
-  import Query from './compoents/query/Query.vue';
-  import Score from './compoents/score/Score.vue';
+  import Query from './components/query/Query.vue';
+  import Score from './components/score/Score.vue';
 
   const activeName = ref('count');
 </script>

+ 1 - 0
src/views/datamanager/platformdata/charts/LineChart.vue

@@ -82,6 +82,7 @@
         {
           name: '日期',
           type: 'line',
+          showSymbol: false,
           data: props.chartData,
         },
         // TODO 根据返回数据维度添加

+ 41 - 26
src/views/datamanager/platformdata/components/common/DialogNavBar.vue

@@ -37,7 +37,6 @@
 
 <script setup lang="ts">
   import { onMounted, ref, watch } from 'vue';
-  import { ElMessage } from 'element-plus';
   import { ChartQuery } from '@/api/datamanagement/dataplatform';
   import { formatDate } from '@/utils/platformUtils';
 
@@ -45,36 +44,43 @@
   const selectedWorkshop = ref<number[]>();
   const dateRange = ref<Date[]>();
 
-  const props = defineProps<{
-    workshopList?: any[] | undefined;
-  }>();
+  const props = withDefaults(
+    defineProps<{
+      chartType?: string;
+      workshopList?: any[] | undefined;
+    }>(),
+    {
+      chartType: 'bar',
+    },
+  );
 
   // 参数改变事件
   const emits = defineEmits<{
     (e: 'chartParamsChanged', parmas: ChartQuery);
   }>();
 
-  const serchParams = ref<ChartQuery>({
-    startTime: '',
-    endTime: '',
-  });
+  const serchParams = ref<ChartQuery>({});
 
   const onSearch = () => {
-    if (!dateRange.value || dateRange.value[0] == null || dateRange.value[1] == null) {
-      ElMessage.error('请选择时间范围');
-      return;
-    }
-    serchParams.value.startTime = formatDate(dateRange.value[0]);
-    serchParams.value.endTime = formatDate(dateRange.value[1]);
-    // console.log(props.workshopList);
-    // serchParams.value.workshopList = props.workshopList?.map((item) => item.id);
-    if (props.workshopList !== undefined) {
-      if (!selectedWorkshop.value || !selectedWorkshop.value.length) {
-        ElMessage.error('请至少选择一个车间');
-        return;
-      }
-      serchParams.value.workshopList = selectedWorkshop.value;
+    if (
+      !dateRange.value ||
+      dateRange.value[0].toString() === 'Invalid Date' ||
+      dateRange.value[1].toString() === 'Invalid Date'
+    ) {
+      delete serchParams.value.startTime;
+      delete serchParams.value.endTime;
+    } else {
+      serchParams.value.startTime = formatDate(dateRange.value[0]);
+      serchParams.value.endTime = formatDate(dateRange.value[1]);
     }
+    serchParams.value.workshopList = props.workshopList?.map((item) => item.id);
+    // if (props.workshopList !== undefined) {
+    //   if (!selectedWorkshop.value || !selectedWorkshop.value.length) {
+    //     ElMessage.error('请至少选择一个车间');
+    //     return;
+    //   }
+    //   serchParams.value.workshopList = selectedWorkshop.value;
+    // }
     emits('chartParamsChanged', serchParams.value);
   };
 
@@ -105,15 +111,24 @@
     if (props.workshopList !== undefined) {
       selectedWorkshop.value = props.workshopList!.map((item) => item.id);
     }
-    dateRange.value = [new Date(2000, 1, 1, 0, 0, 0), new Date()];
     onSearch();
   });
 
   const shortcuts = [
     {
-      text: '今天',
+      text: props.chartType === 'bar' ? '今天' : '本周',
       value: () => {
-        return [new Date().setHours(0, 0, 0, 0), new Date().setHours(23, 59, 59, 999)];
+        return props.chartType === 'bar'
+          ? [new Date().setHours(0, 0, 0, 0), new Date()]
+          : [
+              new Date(new Date().getTime() - 3600 * 1000 * 24 * new Date().getDay()).setHours(
+                0,
+                0,
+                0,
+                0,
+              ),
+              new Date(),
+            ];
       },
     },
     {
@@ -128,7 +143,7 @@
     {
       text: '累计',
       value: () => {
-        return [new Date(2000, 1, 1, 0, 0, 0, 0), new Date()];
+        return [null, null];
       },
     },
   ];

+ 5 - 2
src/views/datamanager/platformdata/components/common/PlatformTable.vue

@@ -99,7 +99,11 @@
     width="1000px"
     center
   >
-    <DialogNavBar :workshop-list="workshopList" @chart-params-changed="onDialogParamsChanged" />
+    <DialogNavBar
+      chart-type="line"
+      :workshop-list="workshopList"
+      @chart-params-changed="onDialogParamsChanged"
+    />
     <LineChart :chart-data="chartData.val" :chart-lable="chartData.label" />
   </el-dialog>
 </template>
@@ -217,7 +221,6 @@
     } else {
       const data = await getUserDailyVisitTimes(cp);
       chartData.value = formatTimeChart(data);
-      // TODO 整理数据传入chartData
     }
   };
   const chartData = ref<{

+ 2 - 3
src/views/datamanager/platformdata/components/query/Query.vue

@@ -78,7 +78,6 @@
     } else {
       const data = await getCameraVisitedTimes(cp);
       chartData.value = formatCameraChart(data);
-      // TODO 解决车间多选参数的问题
     }
   };
   const chartData = ref<{
@@ -95,8 +94,8 @@
     pageSize: 10,
     // nickname: '',
     // username: '',
-    sortKey: 'statisticAll',
-    sortType: 'asc',
+    // sortKey: 'statisticAll',
+    // sortType: 'asc',
   });
   const tableData = ref<UserAccessRecordList>();
   watch(