SanHQin před 9 měsíci
rodič
revize
cc118de9e1
1 změnil soubory, kde provedl 35 přidání a 4 odebrání
  1. 35 4
      src/components/pages/test/check/index.vue

+ 35 - 4
src/components/pages/test/check/index.vue

@@ -592,10 +592,10 @@
 								</template>
               </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 : 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">
-
+                :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">
                 <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"
@@ -1122,6 +1122,32 @@ export default {
 				_result = _sum ? (_result/_sum).toFixed(2) : 0
 				return _result ? _result : 0;
 			}
+		},
+		getTimeFilterText(){
+			return (item,index)=>{
+				let _result = [];
+				if(item.type==8){
+					let array = []
+					this.worksArray.forEach(i=>{
+						if(i.array[index].type == 8){
+							let _data = i.array[index].json.answer2;
+							if(!array.map(r=>r.value).includes(_data)){
+								array.push({text:_data,value:_data})
+							}
+						}
+					})
+					array.sort((a, b) =>{
+
+						const dateA = new Date((a.value.replace(/年|月/g, '-')).replace(/日/g,""));
+    				const dateB = new Date((b.value.replace(/年|月/g, '-')).replace(/日/g,""));
+						return dateB - dateA; // 从小到大排序
+					});
+
+					console.log("👉排序:",array)
+					_result=array;
+				}
+				return _result;
+			}
 		}
   },
   methods: {
@@ -1191,6 +1217,10 @@ export default {
 		filterCourse(value, row, index) {
 			return row.array[index].json.answer2.indexOf(value) != -1;
     },
+		//筛选日期
+		filterTime(value, row, index){
+			return row.array[index].json.answer2.indexOf(value)!=-1;
+		},
     wordClickHandler(name, value) {
       //  this.$notify({
       //   title: name,
@@ -1681,6 +1711,7 @@ export default {
             item.nameFilters.push({ text: item.json.array[i].option, value: item.json.array[i].option })
           }
         }
+
         array.push(item)
         return item;
       });