zdg #72
|
@ -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"
|
||||||
},
|
},
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 57 KiB |
Binary file not shown.
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB |
|
@ -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;
|
||||||
|
|
||||||
|
@ -215,6 +216,7 @@ function setLayout() {
|
||||||
height: 30px;
|
height: 30px;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
margin-top: 8px;
|
margin-top: 8px;
|
||||||
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.user-avatar:hover {
|
.user-avatar:hover {
|
||||||
|
|
|
@ -38,7 +38,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: '班级中心'},
|
||||||
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
...toolRouters
|
...toolRouters
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
<i class="iconfont icon-bianji"></i>
|
<i class="iconfont icon-bianji"></i>
|
||||||
<span>编辑</span>
|
<span>编辑</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="item-popover-item" @click="delRow(item)">
|
<div class="item-popover-item" v-if="userInfo.userId == item.uploadUserId" @click="delRow(item)">
|
||||||
<i class="iconfont icon-shanchu"></i>
|
<i class="iconfont icon-shanchu"></i>
|
||||||
<span>删除</span>
|
<span>删除</span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -65,11 +65,15 @@ import FileImage from '@/components/file-image/index.vue'
|
||||||
import { deleteSmarttalk, updateSmarttalk } from '@/api/file'
|
import { deleteSmarttalk, updateSmarttalk } from '@/api/file'
|
||||||
import { addFileToPrepare } from '@/api/subject'
|
import { addFileToPrepare } from '@/api/subject'
|
||||||
import { getFileSuffix } from '@/utils/ruoyi'
|
import { getFileSuffix } from '@/utils/ruoyi'
|
||||||
|
import useUserStore from '@/store/modules/user'
|
||||||
import useResoureStore from '../store'
|
import useResoureStore from '../store'
|
||||||
|
|
||||||
const { ipcRenderer } = window.electron || {}
|
const { ipcRenderer } = window.electron || {}
|
||||||
|
const userstore = useUserStore()
|
||||||
const sourceStore = useResoureStore()
|
const sourceStore = useResoureStore()
|
||||||
|
|
||||||
|
const userInfo = userstore.user
|
||||||
|
|
||||||
// 分页change
|
// 分页change
|
||||||
const handleSizeChange = (limit) => {
|
const handleSizeChange = (limit) => {
|
||||||
sourceStore.query.pageSize = limit
|
sourceStore.query.pageSize = limit
|
||||||
|
|
|
@ -28,7 +28,6 @@ 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 { createWindow } from '@/utils/tool'
|
import { createWindow } from '@/utils/tool'
|
||||||
import { hasPermission } from '@/utils/hasPermission'
|
|
||||||
//
|
//
|
||||||
const sourceStore = useResoureStore()
|
const sourceStore = useResoureStore()
|
||||||
const isDialogOpen = ref(false)
|
const isDialogOpen = ref(false)
|
||||||
|
|
Loading…
Reference in New Issue