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