1
0
mirror of https://github.com/ZeroCatDev/Classworks.git synced 2026-02-04 07:53:11 +00:00

feat: 添加拉起EA2播放器功能,支持将配置JSON转换为base64并通过协议打开

This commit is contained in:
Sunwuyuan 2025-12-28 17:08:08 +08:00
parent 3a6f6f5fdc
commit fb4da655c6
No known key found for this signature in database
GPG Key ID: A6A54CF66F56BB64

View File

@ -108,7 +108,18 @@
variant="elevated"
@click="downloadAsEa2"
>
部署到 ExamAware2 知试
.ea2 文件
</v-btn>
<v-btn
:disabled="!isValidConfig"
class="text-none"
color="secondary"
prepend-icon="mdi-play-circle"
variant="elevated"
@click="openInEa2Player"
>
拉起EA2播放器
</v-btn>
<v-tooltip
@ -1830,6 +1841,42 @@ export default {
this.deleting = false;
}
},
/**
* 拉起EA2播放器
* 将配置JSON转换为base64并通过examaware://
*/
openInEa2Player() {
try {
// JSON
const configToSave = {
examName: this.localConfig.examName,
message: this.localConfig.message,
room: this.localConfig.room,
examInfos: this.localConfig.examInfos.map((info) => ({
name: info.name,
start: this.formatDisplayDateTime(info.start),
end: this.formatDisplayDateTime(info.end),
alertTime: parseInt(info.alertTime) || 15,
})),
};
const jsonString = JSON.stringify(configToSave);
// base64
const base64Data = btoa(unescape(encodeURIComponent(jsonString)));
// examaware://URL
const ea2Url = `examaware://player?data=${base64Data}`;
//
window.location.href = ea2Url;
this.$message?.success('正在拉起 ExamAware2 播放器...');
} catch (err) {
this.error = '拉起播放器失败: ' + err.message;
}
},
},
};
</script>