zdg #72

Merged
zhangxuelin merged 21 commits from zdg into main 2024-07-26 14:39:20 +08:00
12 changed files with 47 additions and 28 deletions
Showing only changes of commit 705dbf3832 - Show all commits

View File

@ -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

View File

@ -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 {

View File

@ -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

View File

@ -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>

View File

@ -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}
}) })

View File

@ -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('确认删除该班级?', {

View File

@ -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', () => {

View File

@ -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;
} }

View File

@ -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

View File

@ -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)