@@ -5,6 +5,7 @@ import ejs from 'ejs'
55import { v4 as uuidv4 } from 'uuid'
66import { exec } from 'child_process'
77import localstorage from 'electron-localstorage'
8+ import path from 'path'
89
910function queryAllTables ( connection , db ) {
1011 return new Promise ( ( resolve , reject ) => {
@@ -76,12 +77,35 @@ export default function (win, renderer) {
7677 } )
7778 } )
7879
80+ ipcMain . on ( 'localTemplateFile' , ( ) => {
81+ const folder = path . join ( __dirname , '../static/ejs/' )
82+ fs . access ( folder , err => {
83+ if ( ! err ) {
84+ fs . readdir ( folder , ( err , fileList ) => {
85+ if ( ! err ) {
86+ renderer . send ( 'localTemplateFile' , fileList . map ( v => ( {
87+ title : v ,
88+ value : folder + v
89+ } ) ) )
90+ }
91+ } )
92+ }
93+ } )
94+ } )
95+
7996 ipcMain . on ( 'connectToTheDatabase' , ( e , data ) => {
8097 try {
98+ delete data . tryConnection
8199 connection = mysql . createConnection ( data )
82- win . webContents . send ( 'connection.success' )
100+ connection . ping ( ( err ) => {
101+ if ( err ) {
102+ win . webContents . send ( 'connection.failed' , { msg : '请启动mysql服务!' + err . message } )
103+ } else {
104+ win . webContents . send ( 'connection.success' )
105+ }
106+ } )
83107 } catch ( err ) {
84- win . webContents . send ( 'connection.failed' , err )
108+ win . webContents . send ( 'connection.failed' , { msg : err . message } )
85109 }
86110 } )
87111
@@ -166,11 +190,12 @@ export default function (win, renderer) {
166190 ipcMain . on ( 'generateCustomFiles' , ( e , data ) => {
167191 // 使用固定文件位置
168192 const setting = localstorage . getItem ( 'setting' )
193+ const name = data . name || uuidv4 ( )
169194 let filepath
170195 if ( setting && setting . fileGenerationDirectory ) {
171- filepath = setting . fileGenerationDirectory + '\\' + uuidv4 ( ) + '.' + data . suffix
196+ filepath = setting . fileGenerationDirectory + '\\' + name + '.' + data . suffix
172197 } else {
173- filepath = app . getPath ( 'userData' ) + '\\files\\ ' + uuidv4 ( ) + '.' + data . suffix
198+ filepath = app . getPath ( 'userData' ) + '\\' + name + '.' + data . suffix
174199 }
175200 ejs . renderFile ( data . templateName , data , ( err , str ) => {
176201 if ( err ) {
@@ -179,11 +204,11 @@ export default function (win, renderer) {
179204 msg : 'err: ' + err . message
180205 } )
181206 } else {
182- fs . writeFile ( filepath , str , { flag : 'a' } , ( err , datas ) => {
207+ // flag: a 不存在该文件则会创建该文件
208+ fs . writeFile ( filepath , str , { flag : 'ax' } , ( err , datas ) => {
183209 if ( err ) {
184210 renderer . send ( 'generateCustomFiles' , {
185- code : - 1 ,
186- msg : 'err: ' + err . message
211+ code : err . code
187212 } )
188213 } else {
189214 renderer . send ( 'generateCustomFiles' , {
@@ -257,4 +282,28 @@ export default function (win, renderer) {
257282 ipcMain . on ( 'getSetting' , ( ) => {
258283 renderer . send ( 'getSetting' , localstorage . getItem ( 'setting' ) )
259284 } )
285+
286+ // 保存数据源
287+ ipcMain . on ( 'saveDataSource' , ( e , json ) => {
288+ localstorage . setItem ( 'dataSource' , json )
289+ } )
290+
291+ // 取出数据源
292+ ipcMain . on ( 'getDataSource' , ( ) => {
293+ renderer . send ( 'getDataSource' , localstorage . getItem ( 'dataSource' ) )
294+ } )
295+
296+ // 查询文档
297+ ipcMain . on ( 'consultYourDocumentation' , ( e , id ) => {
298+ const file = path . join ( __dirname , '../static/document' , id )
299+ fs . access ( file , err => {
300+ if ( ! err ) {
301+ fs . readFile ( file , 'utf8' , ( err , data ) => {
302+ if ( ! err ) {
303+ renderer . send ( 'consultYourDocumentation' , data )
304+ }
305+ } )
306+ }
307+ } )
308+ } )
260309}
0 commit comments