zdg #78

Merged
zhengdegang merged 6 commits from zdg into main 2024-07-26 22:16:53 +08:00
10 changed files with 48 additions and 33 deletions
Showing only changes of commit dd577385af - Show all commits

View File

@ -238,7 +238,7 @@ export default async function ({ app, shell, BrowserWindow, ipcMain }) {
//下载文件 //下载文件
ipcMain.on('download-file-default', (e, { url, fileName }) => { ipcMain.on('download-file-default', (e, { url, fileName }) => {
createFolder('selfFile').then(async () => { createFolder('selfFile').then(async () => {
const browserWindow = BrowserWindow.fromId(e.sender.id) const browserWindow = BrowserWindow.getFocusedWindow()
const id = await manager.download({ const id = await manager.download({
window: browserWindow, window: browserWindow,
url: url, url: url,

View File

@ -61,11 +61,11 @@ const menus = ref([
name: '备课', name: '备课',
path: '/prepare' path: '/prepare'
}, },
{ /*{
icon: 'icon-jiangke1 icon-teach', icon: 'icon-jiangke1 icon-teach',
name: '授课', name: '授课',
path: '/teach' path: '/teach'
} }*/
]) ])
// //

View File

@ -25,15 +25,6 @@
<div class="prepare-uploader-progress" :style="{ width: item.percentage + '%' }"></div> <div class="prepare-uploader-progress" :style="{ width: item.percentage + '%' }"></div>
<div class="prepare-body-main-item-icon"> <div class="prepare-body-main-item-icon">
<FileImage :size="50" :file-name="item.raw.name" /> <FileImage :size="50" :file-name="item.raw.name" />
<!-- <svg
class="icon"
aria-hidden="true"
font-size="50px"
color="red"
style="margin: auto"
>
<use xlink:href="#icon-ppt"></use>
</svg>-->
</div> </div>
<div class="prepare-body-main-item-info"> <div class="prepare-body-main-item-info">
<div class="prepare-item-info-title">{{ item.raw.name }}</div> <div class="prepare-item-info-title">{{ item.raw.name }}</div>

View File

@ -19,7 +19,7 @@ export const constantRoutes = [
path: '/resource', path: '/resource',
component: () => import('@/views/resource/index.vue'), component: () => import('@/views/resource/index.vue'),
name: 'resource', name: 'resource',
meta: {title: '资源',keepAlive:true} meta: {title: '资源'}
}, },
{ {
path: '/prepare', path: '/prepare',

View File

@ -20,6 +20,10 @@ export const resourceFormat = [
label: 'ppt', label: 'ppt',
value: 'ppt' value: 'ppt'
}, },
{
label: 'pptx',
value: 'pptx'
},
{ {
label: 'mp3', label: 'mp3',
value: 'mp3' value: 'mp3'

View File

@ -110,7 +110,6 @@
import {listClassmain, listClassuser, addClassgroup, listClassgroup, delClassgroup,getClassgroup,updateClassgroup} from '@/api/classManage/index' import {listClassmain, listClassuser, addClassgroup, listClassgroup, delClassgroup,getClassgroup,updateClassgroup} from '@/api/classManage/index'
import {ref, onMounted, reactive, defineProps, watch} from 'vue' import {ref, onMounted, reactive, defineProps, watch} from 'vue'
import useUserStore from '@/store/modules/user' import useUserStore from '@/store/modules/user'
import {useRoute} from 'vue-router'
import {ElMessage} from "element-plus"; import {ElMessage} from "element-plus";
const userStore = useUserStore().user const userStore = useUserStore().user

View File

@ -1,5 +1,5 @@
<template> <template>
<el-card style="width: 100%"> <el-card style="width: 100%;height: 100%">
<template #header> <template #header>
<div style="text-align: left"> <div style="text-align: left">
<el-button v-if="classInfo.teacher.length > 0" type="danger" @click="deleteClassRoom">删除班级</el-button> <el-button v-if="classInfo.teacher.length > 0" type="danger" @click="deleteClassRoom">删除班级</el-button>
@ -9,9 +9,10 @@
<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> <template v-if="classInfo.teacher.length > 0">
<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>

View File

@ -15,12 +15,15 @@
</el-aside> </el-aside>
<el-main :style="{'min-height': (viewportHeight - 160) + 'px'}"> <el-main :style="{'min-height': (viewportHeight - 160) + 'px'}">
<!-- <router-view :style="{'height': (viewportHeight - 120) + 'px','overflow-y': 'auto'}" :key="route.path"></router-view>--> <!-- <router-view :style="{'height': (viewportHeight - 120) + 'px','overflow-y': 'auto'}" :key="route.path"></router-view>-->
<!-- 班级概况--> <div :style="{'height': (viewportHeight - 120) + 'px','overflow-y': 'auto'}">
<!-- 班级概况-->
<ClassInfo v-if="currentIndex==0" :classId="classId"></ClassInfo> <ClassInfo v-if="currentIndex==0" :classId="classId"></ClassInfo>
<!-- 学生列表--> <!-- 学生列表-->
<StudentList v-else-if="currentIndex==1" :classId="classId"></StudentList> <StudentList v-else-if="currentIndex==1" :classId="classId"></StudentList>
<!-- 分组情况--> <!-- 分组情况-->
<BasicGroup v-else-if="currentIndex==2" :classId="classId"></BasicGroup> <BasicGroup v-else-if="currentIndex==2" :classId="classId"></BasicGroup>
</div>
</el-main> </el-main>
</el-container> </el-container>
</div> </div>
@ -110,7 +113,7 @@
// //
const courseList = ref([]) const courseList = ref([])
//id //id
const classId = ref('') const classId = ref(0)
// //
const currentIndex = ref(0) const currentIndex = ref(0)
// //
@ -265,7 +268,6 @@
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

@ -1,5 +1,5 @@
<template> <template>
<div> <div style="height: 100%">
<el-card style="width: 100%;height: 100%"> <el-card style="width: 100%;height: 100%">
<template #header> <template #header>
<div style="text-align: left;display: flex;justify-content: space-between"> <div style="text-align: left;display: flex;justify-content: space-between">
@ -19,7 +19,8 @@
src="https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png" src="https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png"
/> />
</div> </div>
<div>{{ item.name }}</div> <div><el-text class="mx-1" type="primary">{{ item.name }}</el-text></div>
<div><el-text class="mx-1" type="warning">{{ item.username }}</el-text></div>
</div> </div>
</template> </template>
<template v-else> <template v-else>

View File

@ -14,6 +14,7 @@
</div> </div>
<el-button type="primary" class="to-class-btn" @click="openLesson"> <el-button type="primary" class="to-class-btn" @click="openLesson">
<i class="iconfont icon-lingdang"></i>上课</el-button> <i class="iconfont icon-lingdang"></i>上课</el-button>
<div class="top-zoom-style"></div>
</div> </div>
<div class="prepare-body-header"> <div class="prepare-body-header">
@ -121,6 +122,11 @@ export default {
}, },
mounted() { mounted() {
}, },
activated() {
if (this.uploadData.textbookId !== null) {
this.asyncAllFile()
}
},
methods: { methods: {
createFile() { createFile() {
creatPPT(this.currentNode.label + '.pptx', this.uploadData).then((res) => { creatPPT(this.currentNode.label + '.pptx', this.uploadData).then((res) => {
@ -321,8 +327,16 @@ export default {
height: 150px; height: 150px;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
background: linear-gradient(#97c4ed, #7aa8e5); position: relative;
padding-right: 20px; background: linear-gradient(#b0d1ef, #3e7bcb);
.top-zoom-style{
position: absolute;
width: 90%;
height: 30px;
background: linear-gradient(#b0d1ef, #5283c4);
bottom: 0;
clip-path: polygon(3% 0%, 97% 0%, 100% 100%, 0% 100%);
}
.textbook-img{ .textbook-img{
height: 120px; height: 120px;
background-color: #ffffff; background-color: #ffffff;
@ -330,11 +344,13 @@ export default {
border-radius: 6px; border-radius: 6px;
overflow: hidden; overflow: hidden;
margin-right: 20px; margin-right: 20px;
z-index: 1;
} }
.top-item{ .top-item{
width: 230px; width: 230px;
position: relative;
flex-wrap: wrap; flex-wrap: wrap;
z-index: 1;
.btn{ .btn{
width: 102px; width: 102px;
background: none; background: none;
@ -358,6 +374,7 @@ export default {
height: 80px; height: 80px;
margin-left: 25px; margin-left: 25px;
font-size: 18px; font-size: 18px;
z-index: 1;
.icon-lingdang{ .icon-lingdang{
margin-right: 5px; margin-right: 5px;
color: #ffffff; color: #ffffff;