Compare commits

...

7 Commits

5 changed files with 25 additions and 21 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "electron-app", "name": "electron-app",
"version": "1.0.0", "version": "1.0.1",
"description": "An Electron application with Vue", "description": "An Electron application with Vue",
"main": "./out/main/index.js", "main": "./out/main/index.js",
"author": "example.com", "author": "example.com",
@ -22,6 +22,7 @@
"@electron-toolkit/preload": "^3.0.1", "@electron-toolkit/preload": "^3.0.1",
"@electron-toolkit/utils": "^3.0.0", "@electron-toolkit/utils": "^3.0.0",
"@element-plus/icons-vue": "^2.3.1", "@element-plus/icons-vue": "^2.3.1",
"@electron/remote": "^2.1.2",
"@vitejs/plugin-vue-jsx": "^4.0.0", "@vitejs/plugin-vue-jsx": "^4.0.0",
"@vueuse/core": "^10.11.0", "@vueuse/core": "^10.11.0",
"crypto-js": "^4.2.0", "crypto-js": "^4.2.0",
@ -44,7 +45,6 @@
}, },
"devDependencies": { "devDependencies": {
"@electron-toolkit/eslint-config": "^1.0.2", "@electron-toolkit/eslint-config": "^1.0.2",
"@electron/remote": "^2.1.2",
"@rushstack/eslint-patch": "^1.10.3", "@rushstack/eslint-patch": "^1.10.3",
"@vitejs/plugin-vue": "^5.0.5", "@vitejs/plugin-vue": "^5.0.5",
"@vue/eslint-config-prettier": "^9.0.0", "@vue/eslint-config-prettier": "^9.0.0",

View File

@ -1,11 +1,11 @@
/** /**
* @description: electron 封装的工具函数 * @description: electron 封装的工具函数
*/ */
// const { ipcRenderer } = window.electron || {} const { ipcRenderer } = window.electron || {}
// import { ipcRenderer } from 'electron' // 渲染器里面可以使用ipcRenderer // import { ipcRenderer } from 'electron' // 渲染器里面可以使用ipcRenderer
// const path = require('path') const path = require('path')
const Remote = require('@electron/remote') const Remote = require('@electron/remote')
// 常用变量 // 常用变量
@ -16,11 +16,11 @@ const isDev = process.env.NODE_ENV !== 'production'
/** /**
* @description 消息发送-nodejs 消息发送 * @description 消息发送-nodejs 消息发送
* @form src/main/tool.js 来源 * @form src/main/tool.js 来源
* @param {*} key 消息key * @param {*} key 消息key
* tool-sphere:create 创建-悬浮球 * tool-sphere:create 创建-悬浮球
* @param {*} data 参数 * @param {*} data 参数
* url:路由地址,width:窗口宽度,height:窗口高度,option:自定义选项 * url:路由地址,width:窗口宽度,height:窗口高度,option:自定义选项
* @returns * @returns
*/ */
export function ipcMsgSend(key, data) { export function ipcMsgSend(key, data) {
return new Promise((resolve) => { return new Promise((resolve) => {
@ -37,7 +37,7 @@ export function ipcMsgSend(key, data) {
* @param {*} type 类型 * @param {*} type 类型
* tool-sphere 创建-悬浮球 * tool-sphere 创建-悬浮球
* @param {*} data 参数 * @param {*} data 参数
* @returns * @returns
*/ */
export const createWindow = async (type, data) => { export const createWindow = async (type, data) => {
if (!type) return console.error('createWindow: type is null') if (!type) return console.error('createWindow: type is null')
@ -97,7 +97,7 @@ export function toolWindow({url, isFile, isConsole, option={}}) {
let height = option?.height || 600 let height = option?.height || 600
const mainWin = Remote.getCurrentWindow() // 获取主窗口对象 const mainWin = Remote.getCurrentWindow() // 获取主窗口对象
const devUrl = `${BaseUrl}${url}` const devUrl = `${BaseUrl}${url}`
const buildUrl = `file://${__dirname}/index.html${url}` const buildUrl = path.join(__dirname, 'index.html#')
const urlAll = isDev ? devUrl : buildUrl const urlAll = isDev ? devUrl : buildUrl
return new Promise((resolve) => { return new Promise((resolve) => {
const config = { const config = {
@ -113,8 +113,9 @@ export function toolWindow({url, isFile, isConsole, option={}}) {
} }
// 创建-新窗口 // 创建-新窗口
let win = new Remote.BrowserWindow(config) let win = new Remote.BrowserWindow(config)
if (!!isFile) win.loadFile(urlAll) // 加载文件 console.log(urlAll)
else win.loadURL(urlAll) // 加载url if (!!isFile) win.loadFile(urlAll+url) // 加载文件
else win.loadURL(urlAll,{hash: url}) // 加载url
win.once('ready-to-show', () => {resolve(win)}) win.once('ready-to-show', () => {resolve(win)})
// 主窗口关闭事件 // 主窗口关闭事件
mainWin.once('closed', () => { win.destroy()}) mainWin.once('closed', () => { win.destroy()})

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>

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>

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,8 +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>{{ item.username }}</div> <div><el-text class="mx-1" type="warning">{{ item.username }}</el-text></div>
</div> </div>
</template> </template>
<template v-else> <template v-else>