|
|
@@ -7,7 +7,12 @@
|
|
|
<a-radio-button v-for="dept in selectedDepts" :key="dept" :value="dept">{{ dept }}</a-radio-button>
|
|
|
</a-radio-group> -->
|
|
|
<div style="display: flex; flex-direction: column">
|
|
|
- <MyRadioButtonGroup ref="Dept" v-model="selectedDept" @change="handleSelectedDept">
|
|
|
+ <MyRadioButtonGroup
|
|
|
+ ref="Dept"
|
|
|
+ v-show="selectedDepts.length > 0"
|
|
|
+ v-model="selectedDept"
|
|
|
+ @change="handleSelectedDept"
|
|
|
+ >
|
|
|
<MyRadioButtonOffOut
|
|
|
v-for="(item, index) in selectedDepts"
|
|
|
:key="index"
|
|
|
@@ -17,7 +22,12 @@
|
|
|
></MyRadioButtonOffOut>
|
|
|
</MyRadioButtonGroup>
|
|
|
<div style="height: 10px"></div>
|
|
|
- <MyRadioButtonGroup ref="Big" v-model="selectedDeptBig" @change="handleSelectedCourses11">
|
|
|
+ <MyRadioButtonGroup
|
|
|
+ ref="Big"
|
|
|
+ v-show="selectedDeptBigs.length > 0"
|
|
|
+ v-model="selectedDeptBig"
|
|
|
+ @change="handleSelectedCourses"
|
|
|
+ >
|
|
|
<MyRadioButton
|
|
|
v-for="(item, index) in selectedDeptBigs"
|
|
|
:key="index"
|
|
|
@@ -27,7 +37,12 @@
|
|
|
></MyRadioButton>
|
|
|
</MyRadioButtonGroup>
|
|
|
<div style="height: 10px"></div>
|
|
|
- <MyRadioButtonGroup ref="Smail" v-model="selectedDeptSmail" @change="handleSelectedCourses1">
|
|
|
+ <MyRadioButtonGroup
|
|
|
+ ref="Smail"
|
|
|
+ v-show="selectedDeptSmails.length > 0"
|
|
|
+ v-model="selectedDeptSmail"
|
|
|
+ @change="handleSelectedSmails"
|
|
|
+ >
|
|
|
<MyRadioButton
|
|
|
v-for="(item, index) in selectedDeptSmails"
|
|
|
:key="index"
|
|
|
@@ -48,7 +63,7 @@
|
|
|
<a-radio-button v-for="dept in selectedCourses" :key="dept" :value="dept">{{ dept }}</a-radio-button>
|
|
|
其他课程选项
|
|
|
</a-radio-group> -->
|
|
|
- <MyRadioButtonGroup ref="Course" v-model="selectedCourse" @change="handleSelectedCourses">
|
|
|
+ <MyRadioButtonGroup ref="Course" v-model="selectedCourse" @change="handleSelectedCourses1">
|
|
|
<MyRadioButton
|
|
|
v-for="(item, index) in selectedCourses"
|
|
|
:key="index"
|
|
|
@@ -63,20 +78,30 @@
|
|
|
<div style="height: 10px"></div>
|
|
|
<!-- 课程类型和课件格式(联动单选) -->
|
|
|
<div class="filter-group">
|
|
|
- <span class="filter-group-title">课程类型:</span>
|
|
|
+ <span class="filter-group-title">资源类型:</span>
|
|
|
<!-- <a-radio-group v-model:value="selectedType" @change="handleTypeChange">
|
|
|
<a-radio-button v-for="dept in selectedTypes" :key="dept" :value="dept">{{ dept }}</a-radio-button>
|
|
|
</a-radio-group> -->
|
|
|
-
|
|
|
- <MyRadioButtonGroup ref="Type" v-model="selectedType" @change="handleTypeChange">
|
|
|
- <MyRadioButton
|
|
|
- v-for="(item, index) in selectedTypes"
|
|
|
- :key="index"
|
|
|
- :value="item"
|
|
|
- :label="item"
|
|
|
- :index="index"
|
|
|
- ></MyRadioButton>
|
|
|
- </MyRadioButtonGroup>
|
|
|
+ <div style="display: flex; flex-direction: column">
|
|
|
+ <MyRadioButtonGroup ref="Type" v-model="selectedTypeBig" @change="handleTypeChange">
|
|
|
+ <MyRadioButton
|
|
|
+ v-for="(item, index) in selectedTypesBig"
|
|
|
+ :key="index"
|
|
|
+ :value="item"
|
|
|
+ :label="item"
|
|
|
+ :index="index"
|
|
|
+ ></MyRadioButton>
|
|
|
+ </MyRadioButtonGroup>
|
|
|
+ <MyRadioButtonGroup ref="Type" v-model="selectedType" @change="handleTypeChange">
|
|
|
+ <MyRadioButton
|
|
|
+ v-for="(item, index) in selectedTypes"
|
|
|
+ :key="index"
|
|
|
+ :value="item"
|
|
|
+ :label="item"
|
|
|
+ :index="index"
|
|
|
+ ></MyRadioButton>
|
|
|
+ </MyRadioButtonGroup>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<div style="height: 10px"></div>
|
|
|
<div class="line"></div>
|
|
|
@@ -105,16 +130,16 @@
|
|
|
<span class="filter-group-title">已选条件:</span>
|
|
|
<div style="display: flex; align-items: center; margin-top: 7px">
|
|
|
<a-tag
|
|
|
- v-for="tag in selectedTags"
|
|
|
+ v-for="tag in selectedTagKeys"
|
|
|
style="display: flex; justify-content: center; align-items: center"
|
|
|
:key="tag"
|
|
|
closable
|
|
|
@close="handleTagClose(tag)"
|
|
|
>
|
|
|
- {{ tag }}
|
|
|
+ {{ tag.name }}
|
|
|
</a-tag>
|
|
|
|
|
|
- <span v-if="selectedTags.length > 0" class="clean" @click="handleClean">清除筛选</span>
|
|
|
+ <span v-if="selectedTagKeys.length > 0" class="clean" @click="handleClean">清除筛选</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -131,6 +156,7 @@
|
|
|
const selectedDeptBig = ref('')
|
|
|
const selectedDeptSmail = ref('')
|
|
|
const selectedCourse = ref('')
|
|
|
+ const selectedTypeBig = ref('')
|
|
|
const selectedType = ref('')
|
|
|
const selectedFormat = ref('')
|
|
|
const Dept = ref(null)
|
|
|
@@ -157,13 +183,9 @@
|
|
|
'教学评价办公室'
|
|
|
])
|
|
|
|
|
|
- const selectedDeptBigsList= ref([
|
|
|
-
|
|
|
- ])
|
|
|
-
|
|
|
- const selectedDeptSmailsList= ref([
|
|
|
+ const selectedDeptBigsList = ref([])
|
|
|
|
|
|
- ])
|
|
|
+ const selectedDeptSmailsList = ref([])
|
|
|
|
|
|
const selectedDeptSmails = ref([
|
|
|
'三级架构a',
|
|
|
@@ -196,34 +218,54 @@
|
|
|
'机型改装训练',
|
|
|
'应急程序训练'
|
|
|
])
|
|
|
+ const selectedTypesBig = ref(['全部大', '热门资源大', '名师资源大', '必修大大', '选修大'])
|
|
|
const selectedTypes = ref(['全部', '热门资源', '名师资源', '必修', '选修'])
|
|
|
const selectedFormats = ref(['全部', 'ppt', 'word', 'excel', 'pdf', 'mp4', 'zip', 'rar'])
|
|
|
|
|
|
const handleSelectedDept = (e) => {
|
|
|
- if(e==0){
|
|
|
- selectedDeptBigs.value=[]
|
|
|
- selectedDeptSmails.value=[]
|
|
|
+ if (e == 0) {
|
|
|
+ selectedDeptBigs.value = []
|
|
|
+ } else {
|
|
|
+ selectedDeptBigs.value = selectedDeptBigsList.value[e]
|
|
|
+ }
|
|
|
+ selectedDeptSmails.value = []
|
|
|
+ if (selectedDeptBigs.value.length > 0) {
|
|
|
+ Big.value.setClean(-1)
|
|
|
}
|
|
|
- selectedDeptBigs.value=selectedDeptBigsList.value[e]
|
|
|
- Big.value.setClean(selectedDeptBigs.value[0])
|
|
|
- Smail.value.setClean(selectedDeptSmails.value[0])
|
|
|
|
|
|
updateSelectedTags()
|
|
|
}
|
|
|
- const handleSelectedCourses11 = (e) => {
|
|
|
- selectedDeptSmails.value=selectedDeptSmailsList.value[e]
|
|
|
+ const handleSelectedCourses = (e) => {
|
|
|
+ if (e == 0) {
|
|
|
+ selectedDeptSmails.value = []
|
|
|
+ } else {
|
|
|
+ selectedDeptSmails.value = selectedDeptSmailsList.value[e]
|
|
|
+ }
|
|
|
+ if (selectedDeptSmails.value.length > 0) {
|
|
|
+ Smail.value.setClean(-1)
|
|
|
+ }
|
|
|
+ // selectedDeptSmails.value = selectedDeptSmailsList.value[e]
|
|
|
+ updateSelectedTags()
|
|
|
+ }
|
|
|
+ const handleSelectedSmails = (e) => {
|
|
|
+ // if (e == 0) {
|
|
|
+ // selectedDeptSmails.value = []
|
|
|
+ // } else {
|
|
|
+ // selectedDeptSmails.value = selectedDeptSmailsList.value[e]
|
|
|
+ // }
|
|
|
+ // selectedDeptSmails.value = selectedDeptSmailsList.value[e]
|
|
|
updateSelectedTags()
|
|
|
}
|
|
|
// 处理课程类型选择变化
|
|
|
const handleTypeChange = (e) => {
|
|
|
// selectedFormat.value = undefined // 选择课程类型时,重置课件格式
|
|
|
- updateSelectedTags()
|
|
|
+ // updateSelectedTags()
|
|
|
}
|
|
|
|
|
|
// 处理课件格式选择变化
|
|
|
const handleFormatChange = (e) => {
|
|
|
// selectedType.value = undefined // 选择课件格式时,重置课程类型
|
|
|
- updateSelectedTags()
|
|
|
+ // updateSelectedTags()
|
|
|
}
|
|
|
|
|
|
// 更新已选条件
|
|
|
@@ -236,29 +278,54 @@
|
|
|
// ...(selectedType.value !== '全部' ? { key: 'Type', list: [selectedType.value] } : []),
|
|
|
// ...(selectedFormat.value !== '全部' ? { key: 'Format', list: [selectedFormat.value] } : [])
|
|
|
// ]
|
|
|
- if (selectedDept.value !== '全部') {
|
|
|
- selectedTags.value.push(...[selectedDept.value])
|
|
|
- selectedTagKeys.value.push('Dept')
|
|
|
- }
|
|
|
- if (selectedCourse.value !== '全部') {
|
|
|
- selectedTags.value.push(...[selectedCourse.value])
|
|
|
- selectedTagKeys.value.push('Course')
|
|
|
+ console.log('筛选条件第一个', selectedDept.value, selectedDepts.value)
|
|
|
+ console.log('筛选条件第二个', selectedDeptBig.value, selectedDeptBigs.value)
|
|
|
+ console.log('筛选条件第三个', selectedDeptSmail.value, selectedDeptSmails.value)
|
|
|
+ if (selectedDept.value !== '' && selectedDept.value !== 0) {
|
|
|
+ selectedTags.value.push(...[selectedDepts.value[selectedDept.value].name])
|
|
|
+ selectedTagKeys.value.push({
|
|
|
+ listType: 0,
|
|
|
+ index: selectedDept.value,
|
|
|
+ name: selectedDepts.value[selectedDept.value].name
|
|
|
+ })
|
|
|
}
|
|
|
- if (selectedType.value !== '全部') {
|
|
|
- selectedTags.value.push(...[selectedType.value])
|
|
|
- selectedTagKeys.value.push('Type')
|
|
|
+ if (selectedDeptBig.value !== '' && selectedDeptBig.value !== 0) {
|
|
|
+ selectedTags.value.push(...[selectedDeptBigs.value[selectedDeptBig.value].name])
|
|
|
+ selectedTagKeys.value.push({
|
|
|
+ listType: 1,
|
|
|
+ index: selectedDeptBig.value,
|
|
|
+ name: selectedDeptBigs.value[selectedDeptBig.value].name
|
|
|
+ })
|
|
|
}
|
|
|
- if (selectedFormat.value !== '全部') {
|
|
|
- selectedTags.value.push(...[selectedFormat.value])
|
|
|
- selectedTagKeys.value.push('Format')
|
|
|
+ if (selectedDeptSmail.value !== '' && selectedDeptSmail.value !== 0) {
|
|
|
+ selectedTags.value.push(...[selectedDeptSmails.value[selectedDeptSmail.value].name])
|
|
|
+ selectedTagKeys.value.push({
|
|
|
+ listType: 2,
|
|
|
+ index: selectedDeptSmail.value,
|
|
|
+ name: selectedDeptSmails.value[selectedDeptSmail.value].name
|
|
|
+ })
|
|
|
}
|
|
|
+
|
|
|
+ // if (selectedCourse.value !== '全部') {
|
|
|
+ // selectedTags.value.push(...[selectedCourse.value])
|
|
|
+ // selectedTagKeys.value.push('Course')
|
|
|
+ // }
|
|
|
+
|
|
|
+ // if (selectedType.value !== '全部') {
|
|
|
+ // selectedTags.value.push(...[selectedType.value])
|
|
|
+ // selectedTagKeys.value.push('Type')
|
|
|
+ // }
|
|
|
+ // if (selectedFormat.value !== '全部') {
|
|
|
+ // selectedTags.value.push(...[selectedFormat.value])
|
|
|
+ // selectedTagKeys.value.push('Format')
|
|
|
+ // }
|
|
|
console.log('筛选条件', selectedTags.value, selectedTagKeys.value)
|
|
|
}
|
|
|
|
|
|
// 删除已选条件
|
|
|
const handleTagClose = (tag) => {
|
|
|
if (tag === selectedDept.value) {
|
|
|
- selectedDept.value = '不限'
|
|
|
+ selectedDept.value = '全部'
|
|
|
} else if (tag === selectedCourse.value) {
|
|
|
selectedCourse.value = '全部'
|
|
|
} else if (tag === selectedType.value) {
|
|
|
@@ -269,36 +336,40 @@
|
|
|
updateSelectedTags()
|
|
|
}
|
|
|
const handleClean = () => {
|
|
|
-
|
|
|
selectedTags.value = []
|
|
|
- selectedDept.value = '不限'
|
|
|
+ selectedDept.value = '全部'
|
|
|
selectedCourse.value = '全部'
|
|
|
selectedType.value = '全部'
|
|
|
selectedFormat.value = '全部'
|
|
|
- selectedDeptBigs.value=[]
|
|
|
- Dept.value.setClean('不限')
|
|
|
- Big.value.setClean(selectedDeptBigs.value[0])
|
|
|
- Smail.value.setClean(selectedDeptSmails.value[0])
|
|
|
- Course.value.setClean('全部')
|
|
|
- Type.value.setClean('全部')
|
|
|
- Format.value.setClean('全部')
|
|
|
+ selectedDeptBigs.value = []
|
|
|
+ // Dept.value.setClean('全部')
|
|
|
+ // Big.value.setClean(selectedDeptBigs.value[0])
|
|
|
+ // Smail.value.setClean(selectedDeptSmails.value[0])
|
|
|
+ // Course.value.setClean('全部')
|
|
|
+ // Type.value.setClean('全部')
|
|
|
+ // Format.value.setClean('全部')
|
|
|
|
|
|
- collegeApi.tree().then((data) => {
|
|
|
- selectedDepts.value=data;
|
|
|
- selectedDepts.value.splice(0, 0, {name:"全部"})
|
|
|
- let onelist=selectedDepts.value;
|
|
|
- for (let i = 1; i <onelist.length; i++) {
|
|
|
- selectedDeptBigsList.value.push(onelist[i].children);
|
|
|
- let twoList=onelist[i].children;
|
|
|
- for(let j=0;j<twoList.length;j++){
|
|
|
- selectedDeptSmailsList.value.push(twoList[j].children);
|
|
|
+ collegeApi.treeAll().then((data) => {
|
|
|
+ selectedDepts.value = data
|
|
|
+ selectedDepts.value.forEach((item) => {
|
|
|
+ selectedDeptBigsList.value.push(item.children)
|
|
|
+ if (item.children) {
|
|
|
+ item.children.forEach((item) => {
|
|
|
+ if (item.children) {
|
|
|
+ selectedDeptSmailsList.value.push(item.children)
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
- }
|
|
|
+ })
|
|
|
+ // Dept.value.setClean(0)
|
|
|
+ // handleSelectedDept(0)
|
|
|
+ // handleSelectedCourses(0)
|
|
|
})
|
|
|
- selectedDeptBigsList.value.splice(0, 0, {name:""})
|
|
|
-
|
|
|
-
|
|
|
- updateSelectedTags(selectedDepts.value)
|
|
|
+ // selectedDepts.value.unshift({ name: '全部' })
|
|
|
+ // selectedDeptBigsList.value.unshift({ name: '全部' })
|
|
|
+ // selectedDeptSmailsList.value.unshift({ name: '全部' })
|
|
|
+ // console.log('看看呢', selectedDepts.value)
|
|
|
+ // updateSelectedTags()
|
|
|
}
|
|
|
|
|
|
onMounted(() => {
|