Compare commits
13 Commits
d330b4cd55
...
1edef92586
Author | SHA1 | Date |
---|---|---|
lyc | 1edef92586 | |
朱浩 | db2218b1c5 | |
朱浩 | 926f45f232 | |
朱浩 | 5c0cc9a91c | |
zhengdegang | 1152859479 | |
zdg | 785b70d888 | |
zdg | cae110c686 | |
qinqing | 0d5e9755cb | |
qinqing | 8eff515fd8 | |
qinqing | cf38097739 | |
lyc | 773a795707 | |
zhangxuelin | 40e660f44a | |
zhangxuelin | a0e0388df8 |
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "aix-win",
|
"name": "aix-win",
|
||||||
"version": "2.1.1",
|
"version": "2.1.3",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "./out/main/index.js",
|
"main": "./out/main/index.js",
|
||||||
"author": "example.com",
|
"author": "example.com",
|
||||||
|
|
|
@ -135,7 +135,7 @@ function createMainWindow() {
|
||||||
} else {
|
} else {
|
||||||
mainWindow.loadFile(join(__dirname, '../renderer/index.html'))
|
mainWindow.loadFile(join(__dirname, '../renderer/index.html'))
|
||||||
}
|
}
|
||||||
|
|
||||||
// mainWindow.setAlwaysOnTop(true, "screen-saver") // 将窗口设置为顶层窗口
|
// mainWindow.setAlwaysOnTop(true, "screen-saver") // 将窗口设置为顶层窗口
|
||||||
// mainWindow.setVisibleOnAllWorkspaces(true) // 如果窗口在所有工作区都可见
|
// mainWindow.setVisibleOnAllWorkspaces(true) // 如果窗口在所有工作区都可见
|
||||||
// 第三步: 开启remote服务
|
// 第三步: 开启remote服务
|
||||||
|
@ -280,14 +280,10 @@ function handleAll() {
|
||||||
})
|
})
|
||||||
// 用于监听-状态管理变化-同步所有窗口
|
// 用于监听-状态管理变化-同步所有窗口
|
||||||
ipcMain.handle('pinia-state-change', (e, storeName, jsonStr) => {
|
ipcMain.handle('pinia-state-change', (e, storeName, jsonStr) => {
|
||||||
console.log('pinia-state-change-1', storeName, jsonStr)
|
|
||||||
|
|
||||||
for(const curWin of BrowserWindow.getAllWindows()){
|
for(const curWin of BrowserWindow.getAllWindows()){
|
||||||
const id = curWin.webContents.id
|
const id = curWin.webContents.id
|
||||||
const bool = id !== e.sender.id && !curWin.isDestroyed()
|
const bool = id !== e.sender.id && !curWin.isDestroyed()
|
||||||
if (id === e.sender.id) {
|
|
||||||
console.log('pinia-state-change-2', 'windows-send', curWin.type)
|
|
||||||
}
|
|
||||||
if (bool) { // 除了消息发送窗口和销毁的窗口 其他都发送
|
if (bool) { // 除了消息发送窗口和销毁的窗口 其他都发送
|
||||||
curWin.webContents.send('pinia-state-set', storeName, jsonStr)
|
curWin.webContents.send('pinia-state-set', storeName, jsonStr)
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -294,7 +294,7 @@ See https://github.com/adobe-type-tools/cmap-resources
|
||||||
</span>
|
</span>
|
||||||
<span id="numPages" class="toolbarLabel"></span>
|
<span id="numPages" class="toolbarLabel"></span>
|
||||||
</div>
|
</div>
|
||||||
<div id="toolbarViewerRight" style="display: none;">
|
<div id="toolbarViewerRight">
|
||||||
<div id="editorModeButtons" class="splitToolbarButton toggled" role="radiogroup">
|
<div id="editorModeButtons" class="splitToolbarButton toggled" role="radiogroup">
|
||||||
<button id="editorHighlight" class="toolbarButton" hidden="true" disabled="disabled" title="Highlight" role="radio" aria-checked="false" aria-controls="editorHighlightParamsToolbar" tabindex="31" data-l10n-id="pdfjs-editor-highlight-button">
|
<button id="editorHighlight" class="toolbarButton" hidden="true" disabled="disabled" title="Highlight" role="radio" aria-checked="false" aria-controls="editorHighlightParamsToolbar" tabindex="31" data-l10n-id="pdfjs-editor-highlight-button">
|
||||||
<span data-l10n-id="pdfjs-editor-highlight-button-label">Highlight</span>
|
<span data-l10n-id="pdfjs-editor-highlight-button-label">Highlight</span>
|
||||||
|
|
|
@ -21,7 +21,6 @@ const fileUrl = getAppInstallUrl('pdfjs-dist/web/viewer.html', 'user', '\\out\\r
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
/** 将传入的pdf地址进行编码,防止中文识别错误 */
|
/** 将传入的pdf地址进行编码,防止中文识别错误 */
|
||||||
pdfUrl.value = fileUrl + encodeURIComponent(props.url)
|
pdfUrl.value = fileUrl + encodeURIComponent(props.url)
|
||||||
console.log('组件',pdfUrl.value);
|
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -145,7 +145,6 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
window.test = this
|
|
||||||
this.slotKeys = Object.keys(this.$slots)
|
this.slotKeys = Object.keys(this.$slots)
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
|
@ -285,7 +285,7 @@ onMounted(async () => {
|
||||||
canvas2.canvas.setWidth(window.innerWidth / 2 - 100)
|
canvas2.canvas.setWidth(window.innerWidth / 2 - 100)
|
||||||
// canvas2.canvas.isDrawingMode=false
|
// canvas2.canvas.isDrawingMode=false
|
||||||
canvas1FabricVue.value = canvas2
|
canvas1FabricVue.value = canvas2
|
||||||
window.test = { canvas1, canvas2 }
|
// window.test = { canvas1, canvas2 }
|
||||||
emit('update:numPagesTotal', pdf.numPages)
|
emit('update:numPagesTotal', pdf.numPages)
|
||||||
|
|
||||||
if (props.pdfObj.allPageData.length) {
|
if (props.pdfObj.allPageData.length) {
|
||||||
|
|
|
@ -294,7 +294,7 @@ onMounted(async () => {
|
||||||
canvas2.canvas.setWidth(window.innerWidth / 2 - 100)
|
canvas2.canvas.setWidth(window.innerWidth / 2 - 100)
|
||||||
// canvas2.canvas.isDrawingMode=false
|
// canvas2.canvas.isDrawingMode=false
|
||||||
canvas1FabricVue.value = canvas2
|
canvas1FabricVue.value = canvas2
|
||||||
window.test = { canvas1, canvas2 }
|
// window.test = { canvas1, canvas2 }
|
||||||
emit('update:numPagesTotal', pdf.numPages)
|
emit('update:numPagesTotal', pdf.numPages)
|
||||||
|
|
||||||
if (props.pdfObj.allPageData.length) {
|
if (props.pdfObj.allPageData.length) {
|
||||||
|
|
|
@ -234,7 +234,7 @@ const openDialog = (data) => {
|
||||||
classWorkAnalysis.activeQuizAnalysisData = []
|
classWorkAnalysis.activeQuizAnalysisData = []
|
||||||
|
|
||||||
classWorkAnalysis.row = data
|
classWorkAnalysis.row = data
|
||||||
window.test = this
|
// window.test = this
|
||||||
// zdg: 学生列表
|
// zdg: 学生列表
|
||||||
const studentArr = data.classworkdatastudentids
|
const studentArr = data.classworkdatastudentids
|
||||||
? JSON.parse(`[${data.classworkdatastudentids}]`)
|
? JSON.parse(`[${data.classworkdatastudentids}]`)
|
||||||
|
|
|
@ -44,7 +44,6 @@
|
||||||
v-model="ruleForm.address"
|
v-model="ruleForm.address"
|
||||||
:options="regionData"
|
:options="regionData"
|
||||||
@change="handleChange"
|
@change="handleChange"
|
||||||
:props="{checkStrictly: true}"
|
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="学校" prop="school" v-if="activeIndex==2">
|
<el-form-item label="学校" prop="school" v-if="activeIndex==2">
|
||||||
|
@ -233,23 +232,24 @@ const OpenModel = v =>{
|
||||||
// 关闭弹窗
|
// 关闭弹窗
|
||||||
const handleClose = () => {
|
const handleClose = () => {
|
||||||
var restValue={
|
var restValue={
|
||||||
name: '',
|
name: '',
|
||||||
idNumber:'',
|
idNumber:'',
|
||||||
phoneNumber: '',
|
phoneNumber: '',
|
||||||
Code:'',
|
Code:'',
|
||||||
password:'',
|
password:'',
|
||||||
confirmPassword:'',
|
confirmPassword:'',
|
||||||
class:[],
|
class:[],
|
||||||
discipline:[],
|
discipline:[],
|
||||||
school:[],
|
school:[100,255,279],
|
||||||
}
|
address:["50","5001","500101"]
|
||||||
|
}
|
||||||
Object.assign(ruleForm, restValue);
|
Object.assign(ruleForm, restValue);
|
||||||
schoolSubject.value=[]
|
schoolSubject.value=[]
|
||||||
gradeTree.value=[]
|
gradeTree.value=[]
|
||||||
if (ruleFormRef.value) ruleFormRef.value.resetFields()
|
if (ruleFormRef.value) ruleFormRef.value.resetFields()
|
||||||
removeToken();
|
removeToken();
|
||||||
activeIndex.value=1
|
|
||||||
dialogVisible.value=false
|
dialogVisible.value=false
|
||||||
|
activeIndex.value=1
|
||||||
}
|
}
|
||||||
|
|
||||||
const nextStep = (formEl) => {
|
const nextStep = (formEl) => {
|
||||||
|
@ -346,13 +346,14 @@ const submitForm = async (formEl) => {
|
||||||
confirmPassword:'',
|
confirmPassword:'',
|
||||||
class:[],
|
class:[],
|
||||||
discipline:[],
|
discipline:[],
|
||||||
school:[],
|
school:[100,255,279],
|
||||||
|
address:["50","5001","500101"]
|
||||||
}
|
}
|
||||||
schoolSubject.value=[]
|
schoolSubject.value=[]
|
||||||
gradeTree.value=[]
|
gradeTree.value=[]
|
||||||
Object.assign(ruleForm, restValue);
|
Object.assign(ruleForm, restValue);
|
||||||
|
dialogVisible.value=false
|
||||||
activeIndex.value=1
|
activeIndex.value=1
|
||||||
dialogVisible.value=false
|
|
||||||
}else{
|
}else{
|
||||||
ElMessage.error(res.msg)
|
ElMessage.error(res.msg)
|
||||||
}
|
}
|
||||||
|
@ -495,7 +496,7 @@ const gradeName = (key) =>{
|
||||||
}
|
}
|
||||||
onMounted(()=>{
|
onMounted(()=>{
|
||||||
//默认给到地区重庆
|
//默认给到地区重庆
|
||||||
ruleForm.address = ['50']
|
ruleForm.address = ["50","5001","500101"]
|
||||||
//默认给到学校的值
|
//默认给到学校的值
|
||||||
ruleForm.school = [100,255,279]
|
ruleForm.school = [100,255,279]
|
||||||
})
|
})
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<el-image class="imges" :src="bookInfo ? bookInfo.avartar : ''" />
|
<el-image class="imges" :src="bookInfo ? bookInfo.avartar : ''" />
|
||||||
</div>
|
</div>
|
||||||
<div class="stand-head-right">
|
<div class="stand-head-right">
|
||||||
<div class="stand-head-right-tit">{{booktitle}}</div>
|
<div class="stand-head-right-tit">{{bookInfo ? bookInfo.bookName : ''}}</div>
|
||||||
<i class="iconfont icon-yidongdaozu stand-head-right-icon" @click="dialogVisible = true"></i>
|
<i class="iconfont icon-yidongdaozu stand-head-right-icon" @click="dialogVisible = true"></i>
|
||||||
<div class="stand-head-right-row">
|
<div class="stand-head-right-row">
|
||||||
<div class="stand-head-right-row-time">更新2024.9.10</div>
|
<div class="stand-head-right-row-time">更新2024.9.10</div>
|
||||||
|
@ -68,11 +68,11 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<el-dialog v-model="dialogVisible" title="切换教材" append-to-body width="550">
|
<el-dialog v-model="dialogVisible" title="切换课标" append-to-body width="550">
|
||||||
<div class="booklist">
|
<div class="booklist">
|
||||||
<div :class="{'item': true,'active': booksel === idx}" v-for="item,idx in bookList" :key="idx" @click="bookChange(item,idx)">
|
<div :class="{'item': true,'active': booksel === idx}" v-for="item,idx in bookList" :key="idx" @click="bookChange(item,idx)">
|
||||||
<el-image class="bookimg" :src="item.avartar" />
|
<el-image class="bookimg" :src="item.avartar" />
|
||||||
<div class="bookname">{{item.fileurl.replace('.txt', '')}}</div>
|
<div class="bookname">{{item.bookName}}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
@ -105,7 +105,6 @@ const headref = ref(null);
|
||||||
const searchref = ref(null);
|
const searchref = ref(null);
|
||||||
const listHeight = ref(0);
|
const listHeight = ref(0);
|
||||||
const dialogVisible = ref(false);
|
const dialogVisible = ref(false);
|
||||||
const booktitle = ref('');
|
|
||||||
const bookInfo = ref(null);
|
const bookInfo = ref(null);
|
||||||
const booksel = ref(0);
|
const booksel = ref(0);
|
||||||
const bookList = ref([])
|
const bookList = ref([])
|
||||||
|
@ -246,23 +245,24 @@ const getAllSubject = async () => {
|
||||||
const { rows } = await listEvaluation({ itemkey: "subject", pageSize: 500 })
|
const { rows } = await listEvaluation({ itemkey: "subject", pageSize: 500 })
|
||||||
const { edustage, edusubject } = userStore.user;
|
const { edustage, edusubject } = userStore.user;
|
||||||
rows && rows.map(item => {
|
rows && rows.map(item => {
|
||||||
if(item.edustage === edustage && item.edusubject === edusubject){
|
if(edustage === item.edustage && item.edusubject === edusubject){
|
||||||
bookInfo.value = {...item,avartar: import.meta.env.VITE_APP_BUILD_BASE_PATH + item.avartar}
|
bookInfo.value = {...item,avartar: import.meta.env.VITE_APP_BUILD_BASE_PATH + item.avartar,bookName: bookNameFormat(item.edustage,item.edusubject)}
|
||||||
}
|
}
|
||||||
if(item.fileurl !== ''){
|
if(item.fileurl !== ''){
|
||||||
bookList.value.push({...item,avartar: import.meta.env.VITE_APP_BUILD_BASE_PATH + item.avartar})
|
bookList.value.push({...item,avartar: import.meta.env.VITE_APP_BUILD_BASE_PATH + item.avartar,bookName: bookNameFormat(item.edustage,item.edusubject)})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
const textselidx = bookList.value.findIndex(item => item.edustage === edustage && item.edusubject === edusubject)
|
const textselidx = bookList.value.findIndex(item => item.edustage === edustage && item.edusubject === edusubject)
|
||||||
booksel.value = textselidx
|
booksel.value = textselidx
|
||||||
booktitle.value = bookList.value[textselidx].fileurl.replace('.txt','')
|
|
||||||
const filePath = import.meta.env.VITE_APP_RES_FILE_PATH + bookList.value[textselidx].fileurl.replace('.txt','.pdf')
|
const filePath = import.meta.env.VITE_APP_RES_FILE_PATH + bookList.value[textselidx].fileurl.replace('.txt','.pdf')
|
||||||
await loadPdfAnimation(filePath)
|
await loadPdfAnimation(filePath)
|
||||||
}
|
}
|
||||||
|
const bookNameFormat = (edustage,edusubject) => {
|
||||||
|
return `${edustage}-${edusubject}`
|
||||||
|
}
|
||||||
const bookChange = async (item, idx) => {
|
const bookChange = async (item, idx) => {
|
||||||
booksel.value = idx
|
booksel.value = idx
|
||||||
bookInfo.value = {...item}
|
bookInfo.value = {...item}
|
||||||
booktitle.value = item.fileurl.replace('.txt','')
|
|
||||||
pdfUrl.value = '';
|
pdfUrl.value = '';
|
||||||
const filepath = import.meta.env.VITE_APP_RES_FILE_PATH + item.fileurl.replace('.txt','.pdf')
|
const filepath = import.meta.env.VITE_APP_RES_FILE_PATH + item.fileurl.replace('.txt','.pdf')
|
||||||
await loadPdfAnimation(filepath)
|
await loadPdfAnimation(filepath)
|
||||||
|
@ -539,9 +539,9 @@ onMounted(async () => {
|
||||||
width: 130px;
|
width: 130px;
|
||||||
height: 180px;
|
height: 180px;
|
||||||
}
|
}
|
||||||
.name{
|
.bookname{
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #3b3b3b;
|
text-align: center;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.item:hover{
|
.item:hover{
|
||||||
|
|
|
@ -244,19 +244,17 @@ const getData = (data) => {
|
||||||
// 获取学科
|
// 获取学科
|
||||||
const getAllSubject = async () => {
|
const getAllSubject = async () => {
|
||||||
const { edustage, edusubject } = userStore.user;
|
const { edustage, edusubject } = userStore.user;
|
||||||
const { rows } = await listEvaluation({ itemkey: "version", edustage, edusubject, pageSize: 500 })
|
const { rows } = await listEvaluation({ itemkey: "version", edustage, edusubject, orderby: 'orderidx asc', pageSize: 500 })
|
||||||
rows && rows.map(item => {
|
const dataList = [];
|
||||||
if(item.edustage === edustage && item.edusubject === edusubject){
|
rows && rows.map((item,idx) => {
|
||||||
bookInfo.value = {...item,avartar: import.meta.env.VITE_APP_BUILD_BASE_PATH + item.avartar}
|
|
||||||
}
|
|
||||||
if(item.fileurl !== ''){
|
if(item.fileurl !== ''){
|
||||||
bookList.value.push({...item,avartar: import.meta.env.VITE_APP_BUILD_BASE_PATH + item.avartar})
|
dataList.push({...item,avartar: import.meta.env.VITE_APP_BUILD_BASE_PATH + item.avartar})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
const textselidx = bookList.value.findIndex(item => item.edustage === edustage && item.edusubject === edusubject)
|
bookList.value = dataList
|
||||||
booksel.value = textselidx
|
bookInfo.value = {...dataList[0],avartar: dataList[0].avartar}
|
||||||
booktitle.value = bookList.value[textselidx].fileurl.replace('.txt','')
|
booktitle.value = dataList[0].fileurl.replace('.txt','')
|
||||||
const filePath = import.meta.env.VITE_APP_RES_FILE_PATH + bookList.value[textselidx].fileurl.replace('.txt','.pdf')
|
const filePath = import.meta.env.VITE_APP_RES_FILE_PATH + dataList[0].fileurl.replace('.txt','.pdf')
|
||||||
await loadPdfAnimation(filePath)
|
await loadPdfAnimation(filePath)
|
||||||
}
|
}
|
||||||
const bookChange = async (item, idx) => {
|
const bookChange = async (item, idx) => {
|
||||||
|
|
|
@ -84,8 +84,8 @@ const btnList = [ // 工具栏按钮列表
|
||||||
// === 页面加载完毕 ===
|
// === 页面加载完毕 ===
|
||||||
onMounted(async() => {
|
onMounted(async() => {
|
||||||
if (!electron) return // 浏览器端
|
if (!electron) return // 浏览器端
|
||||||
window.test = sessionStore
|
// window.test = sessionStore
|
||||||
window.test1 = toolStore
|
// window.test1 = toolStore
|
||||||
getClassInfo() // 获取课堂详情 ex3
|
getClassInfo() // 获取课堂详情 ex3
|
||||||
resetStatus() // 开启重置状态-监听
|
resetStatus() // 开启重置状态-监听
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue