yangws #131
|
@ -9,7 +9,7 @@ VITE_APP_BASE_API = '/dev-api'
|
||||||
|
|
||||||
VITE_APP_DOMAIN = 'file.ysaix.com'
|
VITE_APP_DOMAIN = 'file.ysaix.com'
|
||||||
|
|
||||||
VITE_APP_UPLOAD_API = 'http://192.168.2.52:7863'
|
VITE_APP_UPLOAD_API = 'https://file.ysaix.com:7868/prod-api'
|
||||||
|
|
||||||
VITE_APP_RES_FILE_PATH = 'https://file.ysaix.com:7868/src/assets/textbook/booktxt/'
|
VITE_APP_RES_FILE_PATH = 'https://file.ysaix.com:7868/src/assets/textbook/booktxt/'
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "aix-win",
|
"name": "aix-win",
|
||||||
"version": "1.0.7",
|
"version": "1.1.0",
|
||||||
"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",
|
||||||
|
|
|
@ -159,11 +159,11 @@ export function deleteSmartReserv(id) {
|
||||||
method: 'delete'
|
method: 'delete'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
export function startClass(id) {
|
export function startClass(id, ex3) {
|
||||||
return request({
|
return request({
|
||||||
url: '/smarttalk/classReserv/startClass',
|
url: '/smarttalk/classReserv/startClass',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: {id}
|
params: {id, ex3}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
export function endClass(id) {
|
export function endClass(id) {
|
||||||
|
|
|
@ -20,7 +20,6 @@ export function shareStorePlugin({store}) {
|
||||||
function stateSync(store) {
|
function stateSync(store) {
|
||||||
const storeName = store.$id
|
const storeName = store.$id
|
||||||
const jsonStr = circularSafeStringify(store.$state)
|
const jsonStr = circularSafeStringify(store.$state)
|
||||||
console.log('state-change', jsonStr, storeName)
|
|
||||||
// 通知主线程更新
|
// 通知主线程更新
|
||||||
ipcRenderer?.invoke('pinia-state-change', storeName, jsonStr)
|
ipcRenderer?.invoke('pinia-state-change', storeName, jsonStr)
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,7 +82,9 @@ export function ipcHandle(fn,key, cb) {
|
||||||
* @param {*} data 参数
|
* @param {*} data 参数
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
|
let wins_tool = null
|
||||||
export const createWindow = async (type, data) => {
|
export const createWindow = async (type, data) => {
|
||||||
|
if (wins_tool) return console.error('createWindow: win is have')
|
||||||
if (!type) return console.error('createWindow: type is null')
|
if (!type) return console.error('createWindow: type is null')
|
||||||
switch(type) {
|
switch(type) {
|
||||||
case 'tool-sphere': { // 创建-悬浮球
|
case 'tool-sphere': { // 创建-悬浮球
|
||||||
|
@ -97,16 +99,16 @@ export const createWindow = async (type, data) => {
|
||||||
}
|
}
|
||||||
data.isConsole = true // 是否开启控制台
|
data.isConsole = true // 是否开启控制台
|
||||||
data.option = {...defOption, ...option}
|
data.option = {...defOption, ...option}
|
||||||
const win = await toolWindow(data)
|
wins_tool = await toolWindow(data)
|
||||||
win.type = type // 唯一标识
|
wins_tool.type = type // 唯一标识
|
||||||
win.show()
|
wins_tool.show()
|
||||||
win.setFullScreen(true) // 设置窗口为全屏
|
wins_tool.setFullScreen(true) // 设置窗口为全屏
|
||||||
win.setIgnoreMouseEvents(true, {forward: true}) // 忽略鼠标事件但是事件继续传递给窗口
|
wins_tool.setIgnoreMouseEvents(true, {forward: true}) // 忽略鼠标事件但是事件继续传递给窗口
|
||||||
win.setAlwaysOnTop(true,'screen-saver') // 将窗口设置为顶层窗口
|
wins_tool.setAlwaysOnTop(true,'screen-saver') // 将窗口设置为顶层窗口
|
||||||
win.setVisibleOnAllWorkspaces(true) // 如果窗口在所有工作区都可见
|
wins_tool.setVisibleOnAllWorkspaces(true) // 如果窗口在所有工作区都可见
|
||||||
// win.webContents.openDevTools() // 打开调试工具
|
// win.webContents.openDevTools() // 打开调试工具
|
||||||
eventHandles(type, win) // 事件监听处理
|
eventHandles(type, wins_tool) // 事件监听处理
|
||||||
return win
|
return wins_tool
|
||||||
}
|
}
|
||||||
case 'open-PDF': { //课本展示-pdf
|
case 'open-PDF': { //课本展示-pdf
|
||||||
const option = data.option||{}
|
const option = data.option||{}
|
||||||
|
@ -193,6 +195,7 @@ const eventHandles = (type, win) => {
|
||||||
win.on('closed', () => {
|
win.on('closed', () => {
|
||||||
if(onClosed) onClosed() // 自定义关闭事件
|
if(onClosed) onClosed() // 自定义关闭事件
|
||||||
win = null
|
win = null
|
||||||
|
wins_tool = null
|
||||||
})
|
})
|
||||||
// 新窗口-创建事件(如:主进程加载远程服务)
|
// 新窗口-创建事件(如:主进程加载远程服务)
|
||||||
ipcRenderer.send('new-window', {id:win.id, type})
|
ipcRenderer.send('new-window', {id:win.id, type})
|
||||||
|
|
|
@ -68,18 +68,18 @@ const startClassR = (item) => {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const toolStore = useToolState()
|
// const toolStore = useToolState()
|
||||||
|
let wins = null;
|
||||||
// 上课-工具类悬浮
|
// 上课-工具类悬浮
|
||||||
const openLesson = () => {
|
const openLesson = () => {
|
||||||
if (toolStore.isToolWin) return ElMessage.error('您当前已开始上课,请勿重复操作')
|
|
||||||
startClass(props.item.id)
|
startClass(props.item.id)
|
||||||
listEntpcourse({
|
listEntpcourse({
|
||||||
evalid: props.item.ex2,
|
evalid: props.item.ex2,
|
||||||
edituserid: useUserStore().user.userId,
|
edituserid: useUserStore().user.userId,
|
||||||
pageSize: 500
|
pageSize: 500
|
||||||
}).then(res=>{
|
}).then(async res=>{
|
||||||
if (res.rows[0].id) {
|
if (res.rows[0].id) {
|
||||||
createWindow('tool-sphere', { url: '/tool/sphere?entpcourseid=' + res.rows[0].id + "&reservId=" + props.item.id })
|
wins = await createWindow('tool-sphere', { url: '/tool/sphere?entpcourseid=' + res.rows[0].id + "&reservId=" + props.item.id })
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -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() {
|
data() {
|
||||||
return {
|
return {
|
||||||
listenList: [],
|
listenList: [],
|
||||||
|
@ -266,15 +266,18 @@ export default {
|
||||||
},
|
},
|
||||||
// 文件资源打开web AIX 布置作业
|
// 文件资源打开web AIX 布置作业
|
||||||
openFileLink(item){
|
openFileLink(item){
|
||||||
|
let unitId = item.levelSecondId ? item.levelSecondId : item.levelFirstId
|
||||||
// key 对应的 linkConfig.js 外部链接配置
|
// key 对应的 linkConfig.js 外部链接配置
|
||||||
let key = 'filehomework'
|
let key = 'filehomework'
|
||||||
let configObj = outLink()[key]
|
let configObj = outLink()[key]
|
||||||
// 通知主进程
|
// 通知主进程
|
||||||
ipcRenderer.send('openWindow', {
|
ipcRenderer.send('openWindow', {
|
||||||
key,
|
key,
|
||||||
fullPath: configObj.fullPath + `&fileShowName=${item.fileShowName}&fileFullPath=${item.fileFullPath}`,
|
fullPath: configObj.fullPath + `&fileShowName=${item.fileShowName}&fileFullPath=${item.fileFullPath}&unitId=${unitId}`,
|
||||||
cookieData: { ...configObj.data }
|
cookieData: { ...configObj.data }
|
||||||
})
|
})
|
||||||
|
|
||||||
|
this.$emit('on-filearg', item)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
|
|
@ -79,6 +79,7 @@
|
||||||
@on-delete="deleteTalk"
|
@on-delete="deleteTalk"
|
||||||
@on-set="openSet"
|
@on-set="openSet"
|
||||||
@on-delhomework="delhomework"
|
@on-delhomework="delhomework"
|
||||||
|
@on-filearg="isOpenHomework = true"
|
||||||
>
|
>
|
||||||
<el-checkbox v-if="!item.uniquekey" label="" :value="item" />
|
<el-checkbox v-if="!item.uniquekey" label="" :value="item" />
|
||||||
</file-list-item>
|
</file-list-item>
|
||||||
|
@ -91,6 +92,7 @@
|
||||||
@on-delete="deleteTalk"
|
@on-delete="deleteTalk"
|
||||||
@on-set="openSet"
|
@on-set="openSet"
|
||||||
@on-delhomework="delhomework"
|
@on-delhomework="delhomework"
|
||||||
|
|
||||||
>
|
>
|
||||||
<el-checkbox v-if="!item.uniquekey" label="" :value="item" />
|
<el-checkbox v-if="!item.uniquekey" label="" :value="item" />
|
||||||
</file-list-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 SetHomework from './container/set-homework.vue'
|
||||||
import outLink from '@/utils/linkConfig'
|
import outLink from '@/utils/linkConfig'
|
||||||
import { createWindow } from '@/utils/tool'
|
import { createWindow } from '@/utils/tool'
|
||||||
import { uniqBy, cloneDeep } from 'lodash'
|
import { cloneDeep } from 'lodash'
|
||||||
import { delClasswork, addEntpcourse } from '@/api/teaching/classwork'
|
import { delClasswork, addEntpcourse } from '@/api/teaching/classwork'
|
||||||
import { getSelfReserv, startClass } from '@/api/classManage'
|
import { getSelfReserv, startClass } from '@/api/classManage'
|
||||||
const toolStore = useToolState()
|
const toolStore = useToolState()
|
||||||
|
@ -227,8 +229,8 @@ export default {
|
||||||
const curWin = Remote.getCurrentWindow()
|
const curWin = Remote.getCurrentWindow()
|
||||||
curWin.on('focus', ()=>{
|
curWin.on('focus', ()=>{
|
||||||
if(!this.isOpenHomework) return
|
if(!this.isOpenHomework) return
|
||||||
console.log(100)
|
|
||||||
this.initHomeWork()
|
this.initHomeWork()
|
||||||
|
this.asyncAllFile()
|
||||||
this.isOpenHomework = false
|
this.isOpenHomework = false
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -475,10 +477,21 @@ export default {
|
||||||
}
|
}
|
||||||
// key 对应的 linkConfig.js 外部链接配置
|
// key 对应的 linkConfig.js 外部链接配置
|
||||||
let configObj = outLink()[key]
|
let configObj = outLink()[key]
|
||||||
|
let fullPath = configObj.fullPath
|
||||||
|
//打开作业 高考 url增加unitId 章节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', {
|
ipcRenderer.send('openWindow', {
|
||||||
key,
|
key,
|
||||||
fullPath: configObj.fullPath,
|
fullPath: fullPath,
|
||||||
cookieData: { ...configObj.data }
|
cookieData: { ...configObj.data }
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@ -551,10 +564,8 @@ export default {
|
||||||
res.rows[i].entpcourseworklistarray = []
|
res.rows[i].entpcourseworklistarray = []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 去重
|
|
||||||
let ary = uniqBy([...this.currentFileList, ...list], 'id')
|
|
||||||
// 深度克隆
|
// 深度克隆
|
||||||
this.currentWorkList = cloneDeep(ary)
|
this.currentWorkList = cloneDeep(list)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
getWeekday1(date) {
|
getWeekday1(date) {
|
||||||
|
@ -594,11 +605,8 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 上课-工具类悬浮
|
// 上课-工具类悬浮
|
||||||
openLesson() {
|
async openLesson() {
|
||||||
const toolStore = useToolState()
|
await startClass(this.curClassReserv.id)
|
||||||
console.log(toolStore.isToolWin,'toolStore.isToolWin')
|
|
||||||
if (toolStore.isToolWin) return this.$message.error('您当前已开始上课,请勿重复操作')
|
|
||||||
startClass(this.curClassReserv.id)
|
|
||||||
createWindow('tool-sphere', {
|
createWindow('tool-sphere', {
|
||||||
url:
|
url:
|
||||||
'/tool/sphere?entpcourseid=' +
|
'/tool/sphere?entpcourseid=' +
|
||||||
|
|
|
@ -109,7 +109,7 @@ const sideMouse = e => {
|
||||||
mouseChange(type == 'mouseleave')
|
mouseChange(type == 'mouseleave')
|
||||||
}
|
}
|
||||||
// 侧边工具栏: 操作变化
|
// 侧边工具栏: 操作变化
|
||||||
const sideChange = o => {
|
const sideChange = async o => {
|
||||||
// console.log(o)
|
// console.log(o)
|
||||||
switch(o.prop) {
|
switch(o.prop) {
|
||||||
case 'resource': // 资源
|
case 'resource': // 资源
|
||||||
|
@ -120,7 +120,7 @@ const sideChange = o => {
|
||||||
break
|
break
|
||||||
case 'over': // 下课
|
case 'over': // 下课
|
||||||
toolStore.isToolWin = false
|
toolStore.isToolWin = false
|
||||||
endClass(route.query.reservId)
|
await endClass(route.query.reservId)
|
||||||
ipcMsgSend('tool-sphere:close')
|
ipcMsgSend('tool-sphere:close')
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue