Explorar el Código

feature-修改了接口调用

廖彦舟 hace 4 meses
padre
commit
c68d335ecf

+ 8 - 0
src/apis/behavior.ts

@@ -11,6 +11,14 @@ const bevaviorApis = {
             }
         })
     },
+    selectBehaviorRecordVersions: (studentId: number, assignmentId :number) => {
+        return axiosInstance.get(`${PREFIX}/versions`, {
+            params: {
+                studentId,
+                assignmentId
+            }
+        })
+    },
     addBehaviorRecord: (assignmentId :number, file) => {
         const formData = new FormData();
         formData.append("assignmentId", assignmentId.toString())

+ 5 - 7
src/views/BehaviorPage/BehaviorBoard.vue

@@ -37,7 +37,6 @@ watch(selectedAssignment,()=>{
 })
 const assignmentList:Ref<AssignmentVO[]> = ref([]);
 const dataIsLoading:Ref<boolean> = ref(true);
-let assignmentData:any[]= []
 
 const emptyText = computed(()=>{
   if (selectedCourse.value.courseId === -1){
@@ -332,7 +331,6 @@ function getHistory(array:string[]) {
 const currentVersionIndex:Ref<number> = ref(0)
 provide('currentVersionIndex',currentVersionIndex)
 const versionIsLoading = ref(false)
-import * as dayjs from 'dayjs';
 const formatDateTime = (isoString: string): string => {
   let tempDate = new Date(isoString)
   return `${tempDate.getFullYear()}/${tempDate.getMonth()+1}/${tempDate.getDate()} `+
@@ -340,13 +338,13 @@ const formatDateTime = (isoString: string): string => {
 };
 async function getVersionList(){
   versionIsLoading.value = true
-  let res = await apis.selectBehaviorRecord(currentEngagement.value.studentId,currentEngagement.value.assignmentId)
+  let res = await apis.selectBehaviorRecordVersions(currentEngagement.value.studentId,currentEngagement.value.assignmentId)
   console.log('版本号',res)
-  if (res && res.data && res.data.code === 200 && Array.isArray(res.data.data)){
-    let events = res.data.data as any[]
-    dataHistory.value = events.map((value,index)=>{
+  if (res && res.data && res.data.code === 200 && Array.isArray(res.data.data?.versions)){
+    let versions = res.data.data.versions as any[]
+    dataHistory.value = versions.map((value)=>{
       return {
-        name:`版本${index+1}`,
+        name:`版本${value.version}`,
         time:formatDateTime(value.createdAt),
         author:currentEngagement.value.studentName
       }

+ 3 - 5
src/views/BehaviorPage/component/EditCanvas.vue

@@ -4,7 +4,6 @@ import * as echarts from 'echarts';
 import {inject} from "vue-demi";
 import useApis from "@/apis";
 import {type EChartsType} from "echarts";
-import {ElMessage} from "element-plus";
 const props = defineProps<{
   assignmentId:number,
   splitNumber:number,
@@ -52,7 +51,6 @@ function formatTimeWithMilliseconds(stamp:number ){
   const hours = date.getHours().toString().padStart(2, '0');
   const minutes = date.getMinutes().toString().padStart(2, '0');
   const seconds = date.getSeconds().toString().padStart(2, '0');
-  const milliseconds = date.getMilliseconds().toString().padStart(3, '0');
   return `${hours}:${minutes}:${seconds}`;
 }
 function getCanvasData(chart:EChartsType){
@@ -64,10 +62,10 @@ function getCanvasData(chart:EChartsType){
   let assignmentId = currentEngagement.value.assignmentId;
   chart.showLoading({text:'加载中'});
   loadingStatus.value.edit = true;
-  apis.selectBehaviorRecord(studentId,assignmentId)
+  apis.selectBehaviorRecordVersions(studentId,assignmentId)
   .then((res:any) => {
-    if (res && res.data && res.data.code === 200 && res.data.data[versionIndex.value]){
-      let rowData = res.data.data[versionIndex.value].events satisfies any[];
+    if (res && res.data && res.data.code === 200 && res.data.data && res.data.data.versions&& res.data.data.versions[versionIndex.value]){
+      let rowData = res.data.data.versions[versionIndex.value]?.events satisfies any[];
       console.log("行为数据",rowData);
       cursorData.length=0;
       productData.length = 0;

+ 13 - 21
src/views/BehaviorPage/component/HeatMap.vue

@@ -85,15 +85,14 @@
 import {ref, computed, onMounted,type Ref, watch} from 'vue'
 import bevaviorApis from '@/apis/behavior'
 import {inject} from "vue-demi";
-import {ElMessage} from "element-plus";
+
 
 // 响应式数据 - 控制UI元素尺寸
 const charWidth = ref(12) // 普通字符宽度(像素)
 const spaceWidth = ref(8) // 空格字符宽度(像素)
 const heatmapRectWidth = ref(8) // 热度图矩形宽度(像素)
 const heatmapRectHeight = ref(12) // 热度图矩形高度(像素)
-const heatmapOffset = ref(5) // 热度图与文本的垂直偏移(像素)
-const lineHeight = ref(30) // 文本行高(像素)
+
 
 // 提示框相关数据
 const tooltipVisible = ref(false)
@@ -137,9 +136,9 @@ watch(engagement,async () => {
   try {
     studentId = engagement.value.studentId;
     assignmentId = engagement.value.assignmentId;
-    const res = await bevaviorApis.selectBehaviorRecord(studentId, assignmentId)
-    if (res.data && res.data.data && Array.isArray(res.data.data[versionIndex.value].events)) {
-      actionData.value = res.data.data[versionIndex.value].events
+    const res = await bevaviorApis.selectBehaviorRecordVersions(studentId, assignmentId)
+    if (res.data && res.data.code == 200 && res.data.data && res.data.data.versions && Array.isArray(res.data.data.versions[versionIndex.value].events)) {
+      actionData.value = res.data.data.versions[versionIndex.value].events
     } else {
       actionData.value = []
     }
@@ -155,10 +154,10 @@ watch(versionIndex,async ()=>{
   try {
     studentId = engagement.value.studentId;
     assignmentId = engagement.value.assignmentId;
-    const res = await bevaviorApis.selectBehaviorRecord(studentId, assignmentId)
+    const res = await bevaviorApis.selectBehaviorRecordVersions(studentId, assignmentId)
     console.log('热力图',res)
-    if (res.data && res.data.data && Array.isArray(res.data.data[versionIndex.value].events)) {
-      actionData.value = res.data.data[versionIndex.value].events
+    if (res.data &&res.data.code == 200 && res.data.data && res.data.data.versions && Array.isArray(res.data.data.versions[versionIndex.value].events)) {
+      actionData.value = res.data.data.versions[versionIndex.value].events
     } else {
       actionData.value = []
     }
@@ -171,9 +170,10 @@ onMounted(async () => {
   try {
     studentId = engagement.value.studentId;
     assignmentId = engagement.value.assignmentId;
-    const res = await bevaviorApis.selectBehaviorRecord(studentId, assignmentId)
-    if (res.data && res.data.data && Array.isArray(res.data.data[versionIndex.value].events)) {
-      actionData.value = res.data.data[versionIndex.value].events
+    const res = await bevaviorApis.selectBehaviorRecordVersions(studentId, assignmentId)
+    if (res.data && res.data.code == 200 && res.data.data && res.data.data.versions && res.data.data.versions[versionIndex.value]
+        && Array.isArray(res.data.data.versions[versionIndex.value].events)) {
+      actionData.value = res.data.data.versions[versionIndex.value].events
     } else {
       actionData.value = []
     }
@@ -369,15 +369,7 @@ const hideTooltip = () => {
   border-radius: 2px;
 }
 
-.tooltip {
-  position: absolute;
-  background-color: rgba(0, 0, 0, 0.8);
-  color: white;
-  padding: 5px;
-  border-radius: 3px;
-  font-size: 12px;
-  z-index: 10;
-}
+
 
 .controls {
   font-size: 15px;

+ 3 - 5
src/views/BehaviorPage/component/PauseCanvas.vue

@@ -4,7 +4,6 @@ import * as echarts from 'echarts';
 import {inject} from "vue-demi";
 import useApis from "@/apis";
 import type {EChartsType} from "echarts";
-import {ElMessage} from "element-plus";
 const props = defineProps<{
   assignmentId:number,
   splitNumber:number,
@@ -26,7 +25,6 @@ function formatTimeWithMilliseconds(stamp:number ){
   const hours = date.getHours().toString().padStart(2, '0');
   const minutes = date.getMinutes().toString().padStart(2, '0');
   const seconds = date.getSeconds().toString().padStart(2, '0');
-  const milliseconds = date.getMilliseconds().toString().padStart(3, '0');
   return `${hours}:${minutes}:${seconds}`;
 }
 
@@ -72,10 +70,10 @@ function getCanvasData(chart:EChartsType){
   let assignmentId = currentEngagement.value.assignmentId;
   chart.showLoading({text:'加载中'});
   loadingStatus.value.pause = true;
-  apis.selectBehaviorRecord(studentId,assignmentId)
+  apis.selectBehaviorRecordVersions(studentId,assignmentId)
       .then((res:any) => {
-        if (res && res.data && res.data.code === 200 && res.data.data[versionIndex.value]){
-          let rowData = res.data.data[versionIndex.value].events as any[];
+        if (res.data && res.data.code == 200 && res.data.data && res.data.data.versions &&  Array.isArray(res.data.data.versions[versionIndex.value]?.events)){
+          let rowData = res.data.data.versions[versionIndex.value].events as any[];
           console.log("行为数据",rowData);
           let zeroCount =0;
           pauseData.length = 0;

+ 4 - 3
src/views/BehaviorPage/component/ProcessCanvas.vue

@@ -70,10 +70,11 @@ function getCanvasData(chart:EChartsType){
   loadingStatus.value.process = true;
   let studentId = currentEngagement.value.studentId;
   let assignmentId = currentEngagement.value.assignmentId;
-  apis.selectBehaviorRecord(studentId,assignmentId)
+  apis.selectBehaviorRecordVersions(studentId,assignmentId)
       .then((res:any) => {
-        if (res && res.data && res.data.code === 200&& res.data.data[versionIndex.value]){
-          let rowData = res.data.data[versionIndex.value].events as any[];
+        if (res.data && res.data.code == 200 && res.data.data && res.data.data.versions
+            && Array.isArray(res.data.data.versions[versionIndex.value]?.events)){
+          let rowData = res.data.data.versions[versionIndex.value].events as any[];
           console.log("行为数据",rowData);
           //数组初始化
           cursorData.length=0;

+ 7 - 6
src/views/BehaviorPage/component/TotalCanvas.vue

@@ -56,21 +56,22 @@ function drawChart(chart: EChartsType){
     text: '加载中'
   });
   loadingStatus.value.total = true;
-  apis.selectBehaviorRecord(currentEngagement.value.studentId,currentEngagement.value.assignmentId)
+  apis.selectBehaviorRecordVersions(currentEngagement.value.studentId,currentEngagement.value.assignmentId)
   .then((res:any) => {
     // console.log(res);
-    if (res&&res.data&&res.data.code === 200){
+    if (res && res.data && res.data.code == 200 && res.data.data && res.data.data.versions&& res.data.data.versions[versionIndex.value]
+        && Array.isArray(res.data.data.versions[versionIndex.value]?.events)){
       noData.value = false
-      if (!res.data.data[versionIndex.value]){
+      if (!res.data.data.versions[versionIndex.value]){
         noData.value = true;
         chart.hideLoading();
         loadingStatus.value.total = false;
         return
       }
       data = [
-        { value: res.data.data[versionIndex.value].insertCount, name: '产出行为' },
-        { value: res.data.data[versionIndex.value].longPauseCount, name: '停顿行为' },
-        { value: res.data.data[versionIndex.value].deleteCount, name: '修改行为' },
+        { value: res.data.data.versions[versionIndex.value].insertCount, name: '产出行为' },
+        { value: res.data.data.versions[versionIndex.value].longPauseCount, name: '停顿行为' },
+        { value: res.data.data.versions[versionIndex.value].deleteCount, name: '修改行为' },
       ]
       let option = {
         tooltip: {

+ 3 - 52
src/views/BehaviorPage/subPage/EditAnalysis.vue

@@ -3,7 +3,6 @@ import "./TotalAnalysis.scss"
 import EditCanvas from "@/views/BehaviorPage/component/EditCanvas.vue";
 import {onMounted, type Ref, ref, watch} from "vue";
 import {inject} from "vue-demi";
-import * as echarts from "echarts";
 import useApis from "@/apis";
 let tableData = ref([])
 
@@ -29,54 +28,6 @@ watch(versionIndex,()=>{
 })
 function getTableData() {
   tableData.value = [
-    {
-      revision: 0,
-      type: "Normal Production",
-      content: "This is a test",
-      edits: "???",
-      start: "125",
-      end: "145",
-      duration: "10s",
-      beginPos: "0",
-      endPos: "10",
-      length: "10",
-    },
-    {
-      revision: 1,
-      type: "Delete",
-      content: "This is a test",
-      edits: "???",
-      start: "125",
-      end: "145",
-      duration: "10s",
-      beginPos: "0",
-      endPos: "10",
-      length: "10",
-    },
-    {
-      revision: 0,
-      type: "Normal Production",
-      content: "This is a test",
-      edits: "???",
-      start: "125",
-      end: "145",
-      duration: "10s",
-      beginPos: "0",
-      endPos: "10",
-      length: "10",
-    },
-    {
-      revision: 2,
-      type: "Insert",
-      content: "This is a test",
-      edits: "???",
-      start: "125",
-      end: "145",
-      duration: "10s",
-      beginPos: "0",
-      endPos: "10",
-      length: "10",
-    },
 
   ]
   if (!currentEngagement.value){
@@ -84,10 +35,10 @@ function getTableData() {
   }
   let studentId = currentEngagement.value.studentId;
   let assignmentId = currentEngagement.value.assignmentId;
-  apis.selectBehaviorRecord(studentId,assignmentId)
+  apis.selectBehaviorRecordVersions(studentId,assignmentId)
       .then((res:any) => {
-        if (res && res.data && res.data.code === 200){
-          let rowData = res.data.data[versionIndex.value].events as any[];
+        if (res && res.data && res.data.code == 200 && res.data.data && res.data.data.versions && Array.isArray(res.data.data.versions[versionIndex.value]?.events)){
+          let rowData = res.data.data.versions[versionIndex.value].events as any[];
           console.log("行为数据",rowData);
           tableData.value.length = 0;
           rowData.forEach((item:any,index:number) => {

+ 4 - 15
src/views/BehaviorPage/subPage/TotalAnalysis.vue

@@ -4,7 +4,6 @@ import TotalCanvas from "@/views/BehaviorPage/component/TotalCanvas.vue";
 import {onMounted, type Ref, ref, watch} from "vue";
 import useApis from "@/apis";
 import {inject} from "vue-demi";
-import * as echarts from "echarts";
 import {ElMessage, type TableColumnCtx} from "element-plus";
 
 let tableData = ref([])
@@ -38,24 +37,14 @@ watch(versionIndex,()=>{
 })
 function getBehaviorData(){
   //TODO
-  // tableData.value = [
-  //   {Id:0,EventType:"focus",Output:"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",Position:"12",DocLength:"12",StartTime:"00:00:00",EndTime:"00:01:05"},
-  //   {Id:1,EventType:"mouse",Output:"xxxx",Position:"12",DocLength:"12",StartTime:"00:00:00",EndTime:"00:01:05"},
-  //   {Id:2,EventType:"keyboard",Output:"xxxx",Position:"12",DocLength:"12",StartTime:"00:00:00",EndTime:"00:01:05"},
-  //   {Id:3,EventType:"focus",Output:"xxxx",Position:"12",DocLength:"12",StartTime:"00:00:00",EndTime:"00:01:05"},
-  //   {Id:4,EventType:"focus",Output:"xxxx",Position:"12",DocLength:"12",StartTime:"00:00:00",EndTime:"00:01:05"},
-  //   {Id:5,EventType:"mouse",Output:"xxxx",Position:"12",DocLength:"12",StartTime:"00:00:00",EndTime:"00:01:05"},
-  //   {Id:6,EventType:"keyboard",Output:"xxxx",Position:"12",DocLength:"12",StartTime:"00:00:00",EndTime:"00:01:05"},
-  // ];
   if (!currentEngagement.value){
     return;
   }
-  apis.selectBehaviorRecord(currentEngagement.value.studentId,currentEngagement.value.assignmentId)
+  apis.selectBehaviorRecordVersions(currentEngagement.value.studentId,currentEngagement.value.assignmentId)
     .then((res: any) => {
-      if (res && res.data && res.data.code === 200){
-        let rowData = res.data.data[versionIndex.value]
+      if (res && res.data && res.data.code == 200 && res.data.data && res.data.data.versions && Array.isArray(res.data.data.versions[versionIndex.value]?.events)){
         console.log("行为数据",res)
-        tableData.value = res.data.data[versionIndex.value].events.map((item:any,index:number) => {
+        tableData.value = res.data.data.versions[versionIndex.value].events.map((item:any,index:number) => {
           return {
             Id:index,
             EventType:item.type,
@@ -101,7 +90,7 @@ onMounted(()=>{
           :assignment-id="1"/>
     </div>
     <div class="table-container">
-      <el-table :data="tableData" style="width: 90%" max-height="500">
+      <el-table empty-text="暂无数据" :data="tableData" style="width: 90%" max-height="500">
         <el-table-column prop="Id" label="Id" width="120" sortable/>
         <el-table-column prop="EventType"
                          :filters="[