main.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. const path = require('path');
  2. const fs = require('fs')
  3. const csv = require('csv-parser')
  4. const prompt = require('electron-prompt');
  5. const { app, BrowserWindow } = require('electron');
  6. const { ipcMain } = require('electron')
  7. function createWindow() {
  8. // 创建浏览器窗口
  9. let win = new BrowserWindow({
  10. width: 800,
  11. height: 600,
  12. webPreferences: {
  13. nodeIntegration: true,
  14. contextIsolation: true,
  15. preload: path.join(__dirname, 'preload.js')
  16. }
  17. })
  18. win.webContents.openDevTools() // 打开开发者工具
  19. // 加载index.html文件
  20. win.loadFile('index.html');
  21. }
  22. app.on('ready', createWindow);
  23. ipcMain.on('parse-csv', (event, path) => {
  24. const results = []
  25. fs.createReadStream(path)
  26. .pipe(csv())
  27. .on('data', (data) => {
  28. results.push(data)
  29. })
  30. .on('end', () => {
  31. event.reply('csv-data', results)
  32. })
  33. })
  34. ipcMain.on('get-file-list', (event, dirPath) => {
  35. console.error('Will read directory: ', dirPath);
  36. fs.readdir(dirPath, (err, files) => {
  37. if (err) {
  38. console.error('Error reading directory: ', err);
  39. event.reply('file-list-error', err);
  40. } else {
  41. event.reply('file-list-data', files);
  42. }
  43. });
  44. });
  45. ipcMain.on('open-newlv-prompt', (event, arg) => {
  46. prompt({
  47. title: 'Prompt',
  48. label: '请输入关卡id:',
  49. value: '',
  50. inputAttrs: {
  51. type: 'text'
  52. },
  53. type: 'input'
  54. })
  55. .then((r) => {
  56. if(r === null) {
  57. console.log('user cancelled');
  58. } else {
  59. console.log('result', r);
  60. event.reply('prompt-newlv-reply', r);
  61. }
  62. })
  63. .catch(console.error);
  64. })
  65. ipcMain.on('open-newinst-prompt', (event, arg) => {
  66. prompt({
  67. title: 'Prompt',
  68. label: '请输入实例id:',
  69. value: '',
  70. inputAttrs: {
  71. type: 'text'
  72. },
  73. type: 'input'
  74. })
  75. .then((r) => {
  76. if(r === null) {
  77. console.log('user cancelled');
  78. } else {
  79. console.log('result', r);
  80. event.reply('prompt-newinst-reply', r);
  81. }
  82. })
  83. .catch(console.error);
  84. })