浏览代码

Merge branch 'beta' of https://git.cocorobo.cn/CocoRoboLabs/pbl-teacher-table into beta

lsc 4 月之前
父节点
当前提交
b55c790762
共有 1 个文件被更改,包括 80 次插入5 次删除
  1. 80 5
      src/components/pages/test/check/index.vue

+ 80 - 5
src/components/pages/test/check/index.vue

@@ -576,7 +576,7 @@
 					</div>
           <!-- 按人员pc端 isDesktop-->
           <div class="table_content" v-if="stype == 2 && isDesktop">
-            <el-table class="el-table" ref="table" :data="worksArray" border :fit="true" :key="2" v-loading="isLoading"
+            <el-table class="el-table" ref="table" :data="tableWorksArray" border :fit="true" :key="2" v-loading="isLoading"
               style="width: 100%" :header-cell-style="{ background: '#f1f1f1', fontSize: '17px' }"
               @filter-change="handleFilterChange"  @selection-change="handleSelectionChange">
               <el-table-column
@@ -598,9 +598,26 @@
               </el-table-column>
               <el-table-column v-for="(item, index) in chapters" :key="index" :label="item.json.title"
                 :min-width="item.type == 5 ? 200 : 150" align="left"
-								:filters="item.type == 1 ? item.nameFilters : (item.type ==  6 || item.type ==  11)? item.nameFilters : item.type==8?getTimeFilterText(item,index):null"
-                :filter-method="item.type == 1 ? (value, row) => { return filterName(value, row, index) } : (item.type == 6 || item.type == 11)?(value, row) => { return filterCourse(value, row, index)}:item.type==8?(value,row)=>{return filterTime(value,row,index)}:null"
-                :filter-placement="item.type == 8 ||item.type == 1 || item.type ==6|| item.type ==11 ? filterPlacement : null">
+								:filters="item.type == 1 ? item.nameFilters : (item.type ==  6 || item.type ==  11)? item.nameFilters :null"
+                :filter-method="item.type == 1 ? (value, row) => { return filterName(value, row, index) } : (item.type == 6 || item.type == 11)?(value, row) => { return filterCourse(value, row, index)}:null"
+                :filter-placement="item.type == 1 || item.type ==6|| item.type ==11 ? filterPlacement : null">
+                <!--  item.type==8?getTimeFilterText(item,index): item.type==8?(value,row)=>{return filterTime(value,row,index)}:  item.type == 8 ||-->
+                <template slot="header" slot-scope="scope" >
+                  <div v-if="item.type==8" style="display: flex;align-items: center;">
+                    <span>{{ item.json.title }}</span>
+                    <div class="tableDatePicker">
+                      <el-date-picker
+                      v-model="tableDatePicker[index]"
+                      @change="tableDataPickerChange"
+                      type="daterange"
+                      range-separator="▼">
+                    </el-date-picker>
+                    </div>
+                  </div>
+                  <div v-else>
+                    {{ item.json.title }}
+                  </div>
+                </template>
                 <template slot-scope="scope">
                   <div v-if="scope.row.array[index].type == 1" style="display: flex; flex-wrap: wrap;">
                     <span class="answer_type" v-for="(answer2, index2) in scope.row.array[index].json.answer2"
@@ -1021,6 +1038,7 @@ export default {
       courseName: "",
       dialogVisibleShare: false,
       worksArray: [],
+      tableWorksArray:[],
       testArray: [],
       options2: {
         1: "选择题",
@@ -1042,7 +1060,8 @@ export default {
       btnDisplay: false,
 
       fileLoading: [],
-      selectWorkList:[]
+      selectWorkList:[],
+      tableDatePicker:[],
       // fileLoadCount: [],
       // fileLoadNum: [],
       // infoprogress: [],
@@ -1590,6 +1609,7 @@ export default {
           }
           this.testArray = testArray
           this.worksArray = array
+          this.tableWorksArray = array;
           this.isLoading = false;
 
         })
@@ -2435,6 +2455,22 @@ export default {
 		},
     handleSelectionChange(value){
       this.selectWorkList = value
+    },
+    tableDataPickerChange(){
+      let _copyData = JSON.parse(JSON.stringify(this.worksArray));
+      this.tableDatePicker.forEach((i,index)=>{
+        /*[null,["2024-12-05T00:00:00.000","2025-01-12T00:00:00.000"],["2024-12-04T00:00:00.000","2025-01-24T00:00:00.000"]] */
+        if(i && i.length>0){
+          let _startDate = new Date(i[0]);
+          let _endDate = new Date(i[1])
+          _copyData = _copyData.filter(f=>{
+            let _answer = f.array[index].json.answer2.replace(/日/g, '').replace(/年|月/g, '-');
+            let _answerDate = new Date(_answer);
+            return _answerDate>=_startDate && _answerDate<=_endDate;
+          })
+        }
+      })
+      this.tableWorksArray = _copyData;
     }
   },
   beforeDestroy() {
@@ -3376,4 +3412,43 @@ export default {
   border-radius: 5px;
 	overflow: hidden;
 }
+
+.tableDatePicker{
+  width: 20px;
+  height: 20px;
+  margin-left: 5px;
+}
+
+.tableDatePicker>>>.el-date-editor{
+  width: 100% !important;
+  height: 100% !important;
+  padding: 0 !important;
+  cursor: pointer;
+  background: none;
+  border: none;
+}
+
+
+.tableDatePicker>>>.el-date-editor>i{
+  display: none;
+}
+
+.tableDatePicker>>>.el-date-editor>input{
+  display: none;
+}
+
+.tableDatePicker>>>.el-date-editor>span{
+  width: 100%;
+  height: 100%;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  color: #9095A7;
+}
+
+/* .tableDatePicker>>>.el-date-editor>.el-range__close-icon{
+  display: block;
+  position: relative;
+  top: -5px;
+} */
 </style>