const { ipcRenderer } = require('electron'); const { dialog } = require('@electron/remote'); // 辅助函数:获取文件名 (保留扩展名) function get_filename(filePath) { if (!filePath) return ""; return filePath.split(/[/\\]/).pop(); } let s_lan = "zh"; function language_str(str) { let t = { "noFile": { zh: "当前文件不存在!", ozh: "This file does not exist!", en: "File not found!" }, "saveTime": { zh: "保存时间:", ozh: "保存時間:", en: "Saved on:" }, "selectFile": { zh: "请选择文件", ozh: "請選擇文件", en: "Please select a file" }, "comfirm": { zh: "确认", ozh: "確認", en: "Confirm" }, "cancel": { zh: "取消", ozh: "取消", en: "Cancel" }, "SDFile": { zh: "SoonDesign模板文件", ozh: "SoonDesign模闆文件", en: "SoonDesign Template File" }, "vers": { zh: "版本:", ozh: "版本:", en: "Version:" }, "copyright": { zh: "版权所有 © 2023", ozh: "版權所有 © 2023", en: "Copyright © 2023" }, "about": { zh: "关于 SoonDesign", ozh: "關於 SoonDesign", en: "About SoonDesign" }, "lost": { zh: "(文件已丢失)", ozh: "(文件已丟失)", en: "(File Lost)" }, "clickToDelete": { zh: "文件已丢失,点击删除此记录", ozh: "文件已丟失,點擊刪除此記錄", en: "File lost, click to remove" }, "deleted": { zh: "已删除", ozh: "已刪除", en: "Deleted" }, "whetherSave": { zh: "是否保存当前文件?", ozh: "是否保存當前文件?", en: "Save current file?" }, // 补全可能用到的翻译 "delTitle": { zh: "警告", ozh: "警告", en: "Warning" }, "delContent": { zh: "文件已丢失,确认是否删除?", ozh: "文件已丟失,確認是否刪除?", en: "File lost, confirm delete?" } } return t[str][s_lan] || t[str]['zh']; } layui.use(['layer', 'form', 'jquery'], function () { var $ = layui.$; var layer = layui.layer , form = layui.form; if (window.sysAPI && window.sysAPI.getAppVersion) { window.sysAPI.getAppVersion().then(ver => { $("#app-version").text("v" + ver); }).catch(e => console.log(e)); } ipcRenderer.send('get-sys-language'); ipcRenderer.on('close', (event, message) => { ipcRenderer.send('run-close'); }) function langua_ge(lan = 'zh') { $("[language='m']").each(function (i) { $(this).html($(this).attr(lan)); }) $("[language='t']").each(function (i) { $(this).attr("title", $(this).attr(lan)); }) } $('#language_select').on('change', function () { langua_ge($(this).find('option:selected').val()); s_lan = $(this).find('option:selected').val(); localStorage.setItem("lang", s_lan); loadHistory(); }); ipcRenderer.on('sys-lan', (event, data) => { let lang = localStorage.getItem("lang"); if (lang) { s_lan = lang; } else { if (data.startsWith('zh')) { s_lan = data === 'zh-TW' ? 'ozh' : 'zh'; } else { s_lan = 'en'; } } langua_ge(s_lan); $("#language_select").val(s_lan); localStorage.setItem("lang", s_lan); loadHistory(); }); // ========================================== // 加载列表 // ========================================== async function loadHistory() { try { const j = await window.sysAPI.readHistory(); let h = ""; let needUpdate = false; for (let item of j.history) { let src = ""; let fileExists = true; let imgStyle = ""; let realType = item.type; const soonData = await window.sysAPI.readJsonFile(item.path); if (soonData) { src = soonData.frontDisplayPic; let fileType = soonData.soonType ? soonData.soonType : (soonData.backBlackPic ? 2 : 1); if (item.type != fileType) { item.type = fileType; realType = fileType; needUpdate = true; } } else { fileExists = false; if (realType && (realType == 2 || realType == "2")) { src = "./public/images/bg_2.png"; } else { src = "./public/images/bg_1.png"; } imgStyle = "opacity: 0.6; filter: grayscale(100%);"; } let displayName = get_filename(item.path); let cardTitle = item.path; let cardStyle = ""; if (!fileExists) { displayName += ` ${language_str("lost")}`; cardTitle = language_str("clickToDelete"); cardStyle = "border: 1px dashed #ff5722;"; } h += `