فهرست منبع

前端模糊查询优化

yjwang 22 ساعت پیش
والد
کامیت
6aa5dada33

+ 4 - 4
src/views/course/courseQuestionBank/index.vue

@@ -30,7 +30,7 @@
         </el-select>
       </el-form-item>
 	  <el-form-item label="题目类别" prop="questionType">
-	    <el-select v-model="queryParams.questionType" ref="typeSelect" placeholder="请选择类别" @change="changeCateType" clearable size="small">
+	    <el-select v-model="queryParams.questionType" ref="typeSelect" placeholder="请选择类别" @change="changeCateType" filterable clearable size="small">
 	      <el-option
           v-for="item in questionRootTypeOptions"
           :key="item.dictValue"
@@ -40,7 +40,7 @@
 	    </el-select>
 	  </el-form-item>
     <el-form-item label="题目子类别" prop="questionSubType" label-width="100px">
-      <el-select v-model="queryParams.questionSubType" ref="typeSelect" placeholder="请选择子类别" clearable size="small">
+      <el-select v-model="queryParams.questionSubType" ref="typeSelect" placeholder="请选择子类别" filterable clearable size="small">
         <el-option
           v-for="item in questionSubTypeOptions"
           :key="item.dictValue"
@@ -197,7 +197,7 @@
           </el-select>
         </el-form-item>
 		<el-form-item label="题目类别 " prop="questionType">
-		  <el-select v-model="form.questionType" clearable placeholder="请选择题目类别" @change="changeCateType">
+		  <el-select v-model="form.questionType" filterable clearable placeholder="请选择题目类别" @change="changeCateType">
         <el-option
           v-for="item in questionRootTypeOptions"
           :key="item.dictValue"
@@ -205,7 +205,7 @@
           :value="item.dictValue"
         />
 		  </el-select>
-      <el-select v-model="form.questionSubType" clearable placeholder="请选择题目子类别" >
+      <el-select v-model="form.questionSubType" filterable clearable placeholder="请选择题目子类别" >
         <el-option
           v-for="item in questionSubTypeOptions"
           :key="item.dictValue"

+ 2 - 2
src/views/course/userCourse/index.vue

@@ -2,7 +2,7 @@
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
       <el-form-item label="课堂分类" prop="cateId">
-        <el-select v-model="queryParams.cateId" placeholder="请选择" clearable size="small"
+        <el-select v-model="queryParams.cateId" placeholder="请选择" filterable clearable size="small"
                    @change="getQuerySubCateList(queryParams.cateId)">
           <el-option
             v-for="dict in categoryOptions"
@@ -13,7 +13,7 @@
         </el-select>
       </el-form-item>
       <el-form-item label="课堂子分类" prop="subCateId">
-        <el-select v-model="queryParams.subCateId" placeholder="请选择" clearable size="small">
+        <el-select v-model="queryParams.subCateId" placeholder="请选择" filterable clearable size="small">
           <el-option
             v-for="dict in querySubCateOptions"
             :key="dict.dictValue"

+ 2 - 2
src/views/course/userCoursePeriod/index.vue

@@ -94,7 +94,7 @@
             />
           </el-form-item>
           <el-form-item label="公司" prop="companyIdList">
-            <el-select v-model="queryParams.companyIdList" placeholder="请选择公司" clearable size="small" multiple>
+            <el-select v-model="queryParams.companyIdList"  filterable placeholder="请选择公司" clearable size="small" multiple>
               <el-option
                 v-for="item in companyOptions"
                 :key="item.companyId"
@@ -232,7 +232,7 @@
           <el-input v-model="form.periodName" placeholder="请输入营期名称" />
         </el-form-item>
          <el-form-item label="公司" prop="companyId">
-          <el-select v-model="form.companyId" placeholder="请选择公司" multiple>
+          <el-select v-model="form.companyId" placeholder="请选择公司" filterable clearable multiple>
             <el-option
               v-for="item in companyOptions"
               :key="item.companyId"

+ 3 - 0
src/views/course/userCoursePeriod/statistics.vue

@@ -7,6 +7,8 @@
           <el-select
             v-model="queryParams.videoIdList"
             multiple
+            filterable
+            clearable
             placeholder="请选择营期课程"
             style="width: 400px"
           >
@@ -23,6 +25,7 @@
           <el-select
             v-model="queryParams.companyId"
             placeholder="请选择公司"
+            filterable
             clearable
             style="width: 400px"
           >

+ 38 - 26
src/views/course/videoResource/index.vue

@@ -20,7 +20,7 @@
         />
       </el-form-item>
       <el-form-item label="分类" prop="typeId">
-        <el-select v-model="queryParams.typeId" clearable placeholder="请选择分类" @change="val => changeCateType(val, 1)">
+        <el-select v-model="queryParams.typeId" filterable clearable placeholder="请选择分类" @change="val => changeCateType(val, 1)">
           <el-option
             v-for="item in rootTypeList"
             :key="item.dictValue"
@@ -30,7 +30,7 @@
         </el-select>
       </el-form-item>
       <el-form-item label="子分类" prop="typeSubId">
-        <el-select v-model="queryParams.typeSubId" clearable placeholder="请选择子分类">
+        <el-select v-model="queryParams.typeSubId" filterable clearable placeholder="请选择子分类">
           <el-option
             v-for="item in subTypeList"
             :key="item.dictValue"
@@ -203,7 +203,7 @@
         </el-form-item>
 
         <el-form-item label="分类" prop="typeId">
-          <el-select v-model="form.typeId" placeholder="请选择分类" style="width: 100%" @change="val => changeCateType(val, 2)">
+          <el-select v-model="form.typeId" filterable clearable placeholder="请选择分类" style="width: 100%" @change="val => changeCateType(val, 2)">
             <el-option
               v-for="item in rootTypeList"
               :key="item.dictValue"
@@ -214,7 +214,7 @@
         </el-form-item>
 
         <el-form-item label="子分类" prop="typeSubId">
-          <el-select v-model="form.typeSubId" clearable placeholder="请选择子分类" style="width: 100%">
+          <el-select v-model="form.typeSubId" filterable clearable placeholder="请选择子分类" style="width: 100%">
             <el-option
               v-for="item in subTypeList"
               :key="item.dictValue"
@@ -539,7 +539,7 @@
         class="upload-dialog">
         <el-form :model="batchUploadForm" ref="batchUploadForm" label-width="80px">
           <el-form-item style="margin-top: 20px" label="分类" prop="typeId" :rules="[{ required: true, message: '请选择分类', trigger: 'blur' }]">
-            <el-select v-model="batchUploadForm.typeId" placeholder="请选择分类" style="width: 100%" @change="val => changeCateType(val, 3)">
+            <el-select v-model="batchUploadForm.typeId" placeholder="请选择分类" filterable clearable  style="width: 100%" @change="val => changeCateType(val, 3)">
               <el-option
                 v-for="item in rootTypeList"
                 :key="item.dictValue"
@@ -550,7 +550,7 @@
           </el-form-item>
 
           <el-form-item label="子分类" prop="typeSubId" :rules="[{ required: true, message: '请选择子分类', trigger: 'blur' }]">
-            <el-select v-model="batchUploadForm.typeSubId" clearable placeholder="请选择子分类" style="width: 100%">
+            <el-select v-model="batchUploadForm.typeSubId" filterable clearable placeholder="请选择子分类" style="width: 100%">
               <el-option
                 v-for="item in subTypeList"
                 :key="item.dictValue"
@@ -610,6 +610,8 @@
               ref="customSelect"
               class="custom-select-class"
               v-model="batchEditDialog.form.projectIds"
+              filterable
+              clearable
               multiple
               placeholder="请选择关联题目"
               @click.native.stop="openProjectDialog(batchEditDialog.form.projectIds, 2)"
@@ -785,6 +787,14 @@ export default {
   },
   data() {
     return {
+      // 新增题目缓存
+      projectSelectionCache: {
+        0: [],
+        1: [],
+        2: [],
+        3: [],
+        4: []
+      },
       // 遮罩层
       loading: true,
       // 选中数组
@@ -1730,7 +1740,7 @@ export default {
       this.batchUploadForm = {
         typeId: null,
         typeSubId: null,
-        projectIds: [],
+        projectIds: [...this.projectSelectionCache[1] || []], // 使用缓存
         files: []
       };
       this.batchFileList = [];
@@ -1943,6 +1953,7 @@ export default {
           this.$refs.customSelect.blur();
         }
       });
+
       // 重置查询参数
       this.projectQueryParams = {
         pageNum: 1,
@@ -1953,7 +1964,6 @@ export default {
 
       this.selectedType = type
 
-      // 设置选中的项目IDs
       if (projectIds) {
         if (typeof projectIds === 'string') {
           this.selectedProjectIds = projectIds.split(',').map(id => parseInt(id));
@@ -1963,16 +1973,12 @@ export default {
           this.selectedProjectIds = [projectIds];
         }
       } else {
-        this.selectedProjectIds = [];
+        // 新增使用缓存数据
+        this.selectedProjectIds = [...this.projectSelectionCache[type] || []];
       }
 
-      // 显示弹窗
       this.projectDialogVisible = true;
-
-      // 加载分类树数据
       this.initCategoryTree();
-
-      // 加载项目列表
       this.getProjectList();
     },
 
@@ -1981,17 +1987,11 @@ export default {
       // 更新表单中的项目ID
       if (this.selectedType === 0) {
         this.form.projectIds = this.selectedProjectIds;
-      }
-
-      else if (this.selectedType === 1) {
+      } else if (this.selectedType === 1) {
         this.batchUploadForm.projectIds = this.selectedProjectIds;
-      }
-
-      else if (this.selectedType === 2) {
+      } else if (this.selectedType === 2) {
         this.batchEditDialog.form.projectIds = this.selectedProjectIds;
-      }
-
-      else if (this.selectedType === 3) {
+      } else if (this.selectedType === 3) {
         const params = {
           id: this.currentRow.id,
           projectIds: this.selectedProjectIds.join(",")
@@ -2003,12 +2003,13 @@ export default {
             this.getList();
           }
         });
-      }
-
-      else if (this.selectedType === 4) {
+      } else if (this.selectedType === 4) {
         this.currentRow.projectIds = this.selectedProjectIds
       }
 
+      //缓存选择结果
+      this.projectSelectionCache[this.selectedType] = [...this.selectedProjectIds];
+
       this.projectDialogVisible = false;
     },
 
@@ -2484,6 +2485,17 @@ export default {
       }
       return '';
     },
+    clearProjectCache(type) {
+      if (type === undefined) {
+        // 清空所有缓存
+        this.projectSelectionCache = {
+          0: [], 1: [], 2: [], 3: [], 4: []
+        };
+      } else {
+        this.projectSelectionCache[type] = [];
+      }
+      this.$message.success('已清空题目选择缓存');
+    }
   }
 }
 </script>