Merge branch 'main' into zhuhao_dev
This commit is contained in:
commit
03ce0df516
|
@ -13,8 +13,8 @@
|
||||||
"build": "electron-vite build",
|
"build": "electron-vite build",
|
||||||
"postinstall": "electron-builder install-app-deps",
|
"postinstall": "electron-builder install-app-deps",
|
||||||
"build:unpack": "npm run build && electron-builder --dir",
|
"build:unpack": "npm run build && electron-builder --dir",
|
||||||
"build:test": "npm run build && electron-builder --win --config ./electron-builder-test.yml",
|
"build:dev": "npm run build && electron-builder --win --config ./electron-builder-test.yml",
|
||||||
"build:prod": "npm run build && electron-builder --win --config ./electron-builder.yml",
|
"build:test": "npm run build && electron-builder --win --config ./electron-builder.yml",
|
||||||
"build:mac": "npm run build && electron-builder --mac",
|
"build:mac": "npm run build && electron-builder --mac",
|
||||||
"build:linux": "npm run build && electron-builder --linux"
|
"build:linux": "npm run build && electron-builder --linux"
|
||||||
},
|
},
|
||||||
|
|
|
@ -190,6 +190,7 @@ function setLayout() {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
padding-bottom: 5px;
|
padding-bottom: 5px;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,13 @@ export const constantRoutes = [
|
||||||
component: () => import('@/views/profile/index.vue'),
|
component: () => import('@/views/profile/index.vue'),
|
||||||
name: 'profile',
|
name: 'profile',
|
||||||
meta: {title: '个人中心'}
|
meta: {title: '个人中心'}
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
path: '/class',
|
||||||
|
component: () => import('@/views/classManage/index.vue'),
|
||||||
|
name: 'class',
|
||||||
|
meta: {title: '班级中心'},
|
||||||
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -19,10 +19,8 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import {ref,defineProps,defineEmits} from "vue";
|
import {ref,defineProps,defineEmits,onMounted} from "vue";
|
||||||
import { useRouter } from 'vue-router'
|
|
||||||
const activeIndex = ref('0')
|
const activeIndex = ref('0')
|
||||||
const router = useRouter()
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
classList:{
|
classList:{
|
||||||
type:Array,
|
type:Array,
|
||||||
|
@ -45,7 +43,9 @@ const handleSelect = (itemDom,pathKey) => {
|
||||||
// })
|
// })
|
||||||
emits('handleSelect',{index,id})
|
emits('handleSelect',{index,id})
|
||||||
}
|
}
|
||||||
|
onMounted(() => {
|
||||||
|
console.log(props.classList,'props.classList')
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|
|
@ -113,8 +113,7 @@ import useUserStore from '@/store/modules/user'
|
||||||
import {useRoute} from 'vue-router'
|
import {useRoute} from 'vue-router'
|
||||||
import {ElMessage} from "element-plus";
|
import {ElMessage} from "element-plus";
|
||||||
|
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore().user
|
||||||
const route = useRoute()
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
classId: {type: Number}
|
classId: {type: Number}
|
||||||
})
|
})
|
||||||
|
|
|
@ -2,19 +2,24 @@
|
||||||
<el-card style="width: 100%">
|
<el-card style="width: 100%">
|
||||||
<template #header>
|
<template #header>
|
||||||
<div style="text-align: left">
|
<div style="text-align: left">
|
||||||
<el-button type="danger" @click="deleteClassRoom">删除班级</el-button>
|
<el-button v-if="classInfo.teacher.length > 0" type="danger" @click="deleteClassRoom">删除班级</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
<template v-if="classInfo.teacher.length > 0">
|
||||||
<el-descriptions :column="1">
|
<el-descriptions :column="1">
|
||||||
<el-descriptions-item label="班级名称">{{ classInfo.className }}</el-descriptions-item>
|
<el-descriptions-item label="班级名称">{{ classInfo.className }}</el-descriptions-item>
|
||||||
<el-descriptions-item label="教师">
|
<el-descriptions-item label="教师">
|
||||||
<template v-if="classInfo.teacher.length > 0">
|
<template>
|
||||||
<el-tag type="primary" v-for="(item, index) in classInfo.teacher" :key="index">{{item.name}}</el-tag>
|
<el-tag type="primary" v-for="(item, index) in classInfo.teacher" :key="index">{{item.name}}</el-tag>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>暂无</template>
|
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="学生人数">{{ classInfo.student.length }}人</el-descriptions-item>
|
<el-descriptions-item label="学生人数">{{ classInfo.student.length }}人</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template v-else>
|
||||||
|
<el-empty description="暂无班级信息" style="margin: 0 auto"/>
|
||||||
|
</template>
|
||||||
</el-card>
|
</el-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -35,7 +40,7 @@
|
||||||
student: []
|
student: []
|
||||||
})
|
})
|
||||||
const isDelClass = delClassDemo()
|
const isDelClass = delClassDemo()
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore().user
|
||||||
//删除教室
|
//删除教室
|
||||||
const deleteClassRoom = () => {
|
const deleteClassRoom = () => {
|
||||||
ElMessageBox.alert('确认删除该班级?', {
|
ElMessageBox.alert('确认删除该班级?', {
|
||||||
|
|
|
@ -75,7 +75,7 @@
|
||||||
import ClassInfo from './classInfo.vue'
|
import ClassInfo from './classInfo.vue'
|
||||||
import Aside from './aside.vue'
|
import Aside from './aside.vue'
|
||||||
|
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore().user
|
||||||
const isDel = delClassDemo()
|
const isDel = delClassDemo()
|
||||||
//获取班级信息
|
//获取班级信息
|
||||||
const classList = ref([])
|
const classList = ref([])
|
||||||
|
@ -144,7 +144,7 @@
|
||||||
classList.value = []
|
classList.value = []
|
||||||
listClassmain({ entpid: userStore.deptId, pageSize: 500, status: 'open' }).then(response => {
|
listClassmain({ entpid: userStore.deptId, pageSize: 500, status: 'open' }).then(response => {
|
||||||
response.rows.forEach(item => {
|
response.rows.forEach(item => {
|
||||||
if(item.classteacherids && Number(item.classteacherids) === userStore?.id){
|
if(item.classteacherids && Number(item.classteacherids) === userStore.userId){
|
||||||
classList.value.push(item)
|
classList.value.push(item)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -265,6 +265,7 @@
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getClassInfo()
|
getClassInfo()
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
|
console.log(userStore.deptId,'123')
|
||||||
viewportHeight.value = getViewportHeight()
|
viewportHeight.value = getViewportHeight()
|
||||||
})
|
})
|
||||||
window.addEventListener('resize', () => {
|
window.addEventListener('resize', () => {
|
||||||
|
|
|
@ -118,7 +118,7 @@
|
||||||
|
|
||||||
const studentVisible = ref(false)
|
const studentVisible = ref(false)
|
||||||
const importVisiable = ref(false)
|
const importVisiable = ref(false)
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore().user
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
classId: {type: Number}
|
classId: {type: Number}
|
||||||
})
|
})
|
||||||
|
@ -191,6 +191,8 @@
|
||||||
message: '修改成功',
|
message: '修改成功',
|
||||||
type: 'success',
|
type: 'success',
|
||||||
})
|
})
|
||||||
|
getClassStudentInfo()
|
||||||
|
studentVisible.value = false
|
||||||
})
|
})
|
||||||
}else{
|
}else{
|
||||||
studentForm.entpid = classInfo.value.entpid;
|
studentForm.entpid = classInfo.value.entpid;
|
||||||
|
@ -206,10 +208,11 @@
|
||||||
type: 'success',
|
type: 'success',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
|
||||||
}
|
|
||||||
getClassStudentInfo()
|
getClassStudentInfo()
|
||||||
studentVisible.value = false
|
studentVisible.value = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,6 @@ import ResoureSearch from './container/resoure-search.vue'
|
||||||
import ResoureList from './container/resoure-list.vue'
|
import ResoureList from './container/resoure-list.vue'
|
||||||
import uploadDialog from '@/components/upload-dialog/index.vue'
|
import uploadDialog from '@/components/upload-dialog/index.vue'
|
||||||
import uploaderState from '@/store/modules/uploader'
|
import uploaderState from '@/store/modules/uploader'
|
||||||
import { hasPermission } from '@/utils/hasPermission'
|
|
||||||
//
|
//
|
||||||
const sourceStore = useResoureStore()
|
const sourceStore = useResoureStore()
|
||||||
const isDialogOpen = ref(false)
|
const isDialogOpen = ref(false)
|
||||||
|
|
Loading…
Reference in New Issue