<el-table
ref="schoolTable"
:data="schoolList"
border
:row-key="onlyId"
style="width: 100%"
class="margin-bottom-20"
v-loading="schoolListLoading"
lazy
:load="loadTable"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
:row-class-name="tableRowClassName"
>
<el-table-column align="center" prop="schCategoryName" label="等级">
<template slot-scope="scope">
<span v-if="scope.row.schCategoryName">学校</span>
<span v-else-if="scope.row.gradeName">年级</span>
<span v-else>班级</span>
</template>
</el-table-column>
</el-table>
<script>
data () {
return {
schoolList: [],
schClassList:[],
}
},
methods:{
onlyId (val) {
return val.id + 'only'
},
created () {
this.getSchoolInfo();
},
getSchoolInfo () {
this.schoolListLoading = true;
this.listQuery.newUserId = this.userId || this.userInfo.id;
this.listQuery.regionCode = this.regionId;
getDataAll("schoolInfo/selectSchoolInfoByUserId", this.listQuery)
.then(res => {
this.schoolListLoading = false;
if (res.data.resultCode === 200) {
this.schoolList = res.data.resultContent.list;
this.schoolList.map(i => {
i.hasChildren = true;
});
this.total = res.data.resultContent.total;
} else {
this.$message({ message: res.data.resultMsg, type: "error" });
}
}).catch(() => {
this.schoolListLoading = false;
this.$message({ message: "查询学校信息失败!", type: "error" });
});
},
},
loadTable (tree, treeNode, resolve) {
this.tree = tree;
this.treeNode = treeNode;
this.resolve = resolve;
if (!this.treeIds.includes(tree.id)) {
this.treeIds.push(tree.id);
}
if (treeNode.level === 0) {
this.schGradeList = []
getDataAll("schoolGrade/selectGradeById", {
schoolId: tree.id,
userId: this.userInfo.id,
pageNum: 1,
pageSize: 100
}).then(res => {
let data = [];
if (res.data.resultCode === 200) {
this.gradeId = tree.id;
data = res.data.resultContent.list;
data.map((i, index) => {
this.schGradeList.push(i.id)
i.hasChildren = true;
i.isLevelUp = 1;
if (i.id == tree.id) {
return data.splice(index, 1);
}
});
} else {
this.$message({ message: res.data.resultMsg, type: "error" });
}
resolve(data);
}).catch(() => {
this.$message({ message: "查询年级失败!", type: "error" });
resolve([]);
});
}
else if (treeNode.level === "") {
this.schClassList = []
getDataAll("schoolClass/selectClassById", {
classGradeId: tree.id,
userId: this.userInfo.id,
pageNum: 1,
pageSize: 100
}).then(res => {
let data = [];
if (res.data.resultCode === 200) {
this.classId = tree.id;
data = res.data.resultContent.list;
data.map((i, index) => {
this.schClassList.push(i.id)
return data[index].id += "key"
});
} else {
this.$message({ message: res.data.resultMsg, type: "error" });
}
resolve(data);
})
.catch((err) => {
this.$message({ message: "查询班级失败!", type: "error" });
resolve([]);
});
} else {
resolve([]);
}
}
</script>