Compare commits

...

13 Commits

6 changed files with 82 additions and 28 deletions

View File

@ -146,7 +146,7 @@ export default async function ({ app, shell, BrowserWindow, ipcMain }) {
//使用默认应用打开本地文件
ipcMain.on('open-path-app', (e, destination) => {
let path = appRootFilePath + destination
shell.openExternal(path).catch((error) => {
shell.openPath(path).catch((error) => {
console.log(error)
})
})

View File

@ -28,6 +28,7 @@ function createLoginWindow() {
icon: join(__dirname, '../../resources/logo2.ico'),
...(process.platform === 'linux' ? { icon } : {}),
webPreferences: {
defaultEncoding: 'utf-8',
preload: join(__dirname, '../preload/index.js'),
sandbox: false,
nodeIntegration: true,
@ -67,6 +68,7 @@ function createMainWindow() {
icon: join(__dirname, '../../resources/logo2.ico'),
...(process.platform === 'linux' ? { icon } : {}),
webPreferences: {
defaultEncoding: 'utf-8',
preload: join(__dirname, '../preload/index.js'),
sandbox: false,
// nodeIntegration: true,
@ -115,6 +117,7 @@ async function createLinkWin(data) {
autoHideMenuBar: true,
...(process.platform === 'linux' ? { icon } : {}),
webPreferences: {
defaultEncoding: 'utf-8',
sandbox: false,
nodeIntegration: true,
worldSafeExecuteJavaScript: true,
@ -143,6 +146,8 @@ async function createLinkWin(data) {
// 初始化完成
app.on('ready', () => {
process.env.LANG = 'en_US.UTF-8'
process.env['ELECTRON_DISABLE_SANDBOX'] = true;
// 设置应用程序用户模型标识符
electronApp.setAppUserModelId('com.electron')

View File

@ -42,7 +42,7 @@
</template>
<script setup>
import { onMounted, ref, nextTick, toRaw, reactive,watch } from 'vue';
import { onMounted, ref, nextTick, toRaw, reactive } from 'vue';
import useUserStore from '@/store/modules/user'
import { listEvaluation } from '@/api/subject'
@ -258,7 +258,7 @@ const transData = (data) => {
const getSubject = async () => {
const { rows } = await listEvaluation({ itemkey: "version", pageSize: 500 })
subjectList.value = rows.filter(item => item.edustage == edustage && item.edusubject == edusubject)
subjectList.value = rows.filter(item => item.edustage == edustage && item.edusubject == edusubject && isHaveUnit(item.id))
localStorage.setItem('subjectList', JSON.stringify(subjectList.value))
//
@ -270,11 +270,11 @@ const getSubject = async () => {
}
// const isHaveUnit = (id) => {
// return evaluationList.value.some(item => {
// return item.rootid == id
// })
// }
const isHaveUnit = (id) => {
return evaluationList.value.some(item => {
return item.rootid == id
})
}
const handleNodeClick = (data, node) => {
@ -305,9 +305,6 @@ const handleNodeClick = (data, node) => {
currentNode.data = curData
emit('nodeClick', curData)
}
watch(() => userStore.edusubject, () => {
console.log(userStore.edusubject,'userStore.edusubject')
})
onMounted(() => {
getSubjectContent()
})

View File

@ -168,7 +168,7 @@ export default {
}
}
},
emits: { 'on-move': null, 'on-delete': null, 'on-set': null, 'on-delhomework': null },
emits: { 'on-move': null, 'on-delete': null, 'on-set': null, 'on-delhomework': null,'on-filearg': null },
data() {
return {
listenList: [],
@ -230,6 +230,7 @@ export default {
}
},
openFileWin(items) {
if (!items||!items.fileSuffix) return;
getPrepareById(items.id).then((item) => {
Object.assign(items, item)
asyncLocalFile(items).then(() => {
@ -266,15 +267,18 @@ export default {
},
// web AIX
openFileLink(item){
let unitId = item.levelSecondId ? item.levelSecondId : item.levelFirstId
// key linkConfig.js
let key = 'filehomework'
let configObj = outLink()[key]
//
ipcRenderer.send('openWindow', {
key,
fullPath: configObj.fullPath + `&fileShowName=${item.fileShowName}&fileFullPath=${item.fileFullPath}`,
fullPath: configObj.fullPath + `&fileShowName=${item.fileShowName}&fileFullPath=${item.fileFullPath}&unitId=${unitId}`,
cookieData: { ...configObj.data }
})
this.$emit('on-filearg', item)
}
},
mounted() {

View File

@ -79,6 +79,7 @@
@on-delete="deleteTalk"
@on-set="openSet"
@on-delhomework="delhomework"
@on-filearg="isOpenHomework = true"
>
<el-checkbox v-if="!item.uniquekey" label="" :value="item" />
</file-list-item>
@ -91,6 +92,7 @@
@on-delete="deleteTalk"
@on-set="openSet"
@on-delhomework="delhomework"
>
<el-checkbox v-if="!item.uniquekey" label="" :value="item" />
</file-list-item>
@ -145,7 +147,7 @@ import FileOperBatch from '@/views/prepare/container/file-oper-batch.vue'
import SetHomework from './container/set-homework.vue'
import outLink from '@/utils/linkConfig'
import { createWindow } from '@/utils/tool'
import { uniqBy, cloneDeep } from 'lodash'
import { cloneDeep } from 'lodash'
import { delClasswork, addEntpcourse } from '@/api/teaching/classwork'
import { getSelfReserv, startClass } from '@/api/classManage'
const toolStore = useToolState()
@ -227,8 +229,8 @@ export default {
const curWin = Remote.getCurrentWindow()
curWin.on('focus', ()=>{
if(!this.isOpenHomework) return
console.log(100)
this.initHomeWork()
this.asyncAllFile()
this.isOpenHomework = false
})
@ -414,6 +416,7 @@ export default {
this.curBookImg = data.textBook.curBookImg
this.curBookPath = data.textBook.curBookPath
this.checkFileList = []
this.currentWorkList = []
let cata = parseCataByNode(data.node)
this.currentNode = data.node
this.uploadData.levelFirstId = cata[0]
@ -475,10 +478,21 @@ export default {
}
// key linkConfig.js
let configObj = outLink()[key]
let fullPath = configObj.fullPath
// urlunitId ID
if(key != 'standard' && key != 'aiModel'){
let unitId = this.uploadData.levelSecondId ? this.uploadData.levelSecondId : this.uploadData.levelFirstId
if(key == 'gk'){
fullPath += `?unitId=${unitId}`
}
else{
fullPath += `&unitId=${unitId}`
}
}
//
ipcRenderer.send('openWindow', {
key,
fullPath: configObj.fullPath,
fullPath: fullPath,
cookieData: { ...configObj.data }
})
},
@ -551,10 +565,8 @@ export default {
res.rows[i].entpcourseworklistarray = []
}
}
//
let ary = uniqBy([...list], 'id')
//
this.currentWorkList = cloneDeep(ary)
this.currentWorkList = cloneDeep(list)
})
},
getWeekday1(date) {

View File

@ -15,6 +15,15 @@
<el-radio value="1"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="学段">
<el-radio-group v-model="user.edustage" @change="semeterChange">
<template v-for="(item,index) in semesterList" :key="index">
<el-radio :value="item.title">
{{item.title }}
</el-radio>
</template>
</el-radio-group>
</el-form-item>
<el-form-item label="任教学科">
<el-radio-group v-model="user.edusubject">
<template v-for="(item,index) in subjectList" :key="index">
@ -32,7 +41,7 @@
<script setup>
import { ref, getCurrentInstance } from 'vue'
import { updateUserProfile } from '@/api/system/user'
import {updateUserInfo } from '@/api/system/user'
import { listEvaluation } from '@/api/subject/index'
import useUserStore from '@/store/modules/user'
import {ElMessage} from 'element-plus'
@ -46,6 +55,26 @@ const props = defineProps({
const { proxy } = getCurrentInstance()
const userStore = useUserStore()
//
const semesterList = ref([
{
id:1,
title:'幼儿园'
},
{
id:2,
title:'小学'
},
{
id:3,
title:'初中'
},
{
id:4,
title:'高中'
},
])
const rules = ref({
nickName: [{ required: true, message: '用户昵称不能为空', trigger: 'blur' }],
email: [
@ -97,15 +126,17 @@ setTimeout(() => {
function submit() {
proxy.$refs.userRef.validate((valid) => {
if (valid) {
console.log(props.user)
updateUserProfile(props.user).then((response) => {
props.user.avatar = userStore.user.avatar
updateUserInfo(props.user).then((response) => {
if(response.code == 200){
userStore.getInfo().then(res => {
if(res.code === 200){
ElMessage.success('修改成功')
}else{
ElMessage.error(response.msg)
}
userStore.login({username:props.user.phonenumber,password:props.user.plainpwd}).then(() => {
userStore.getInfo().then(res => {
if(res.code === 200){
ElMessage.success('修改成功')
}else{
ElMessage.error(response.msg)
}
})
})
}else{
ElMessage.error(response.msg)
@ -114,4 +145,9 @@ function submit() {
}
})
}
const semeterChange = (item) => {
if(item === '幼儿园'){
props.user.edusubject = ''
}
}
</script>