文件门路
/src/utils/Tools.js
所需依赖
yarn add xlsx@0.17.3 # 解析解决 Excel 表格专用
挂载为全局办法
/src/main.js
import Vue from 'vue'
import App from './App.vue'
// 全局办法挂载
Vue.prototype.$Tools = new Tools()
文件概述
import xlsx from 'xlsx'
const {dialog, getCurrentWindow} = require('electron').remote
export default class Tools {constructor() {}
// 具体方法写在此处...
}
具体方法
获取输出值的具体数据类型
/**
* 获取输出值的具体数据类型
* @param {*} variable
*/
getType(variable) {return Object.prototype.toString.call(variable).split('')[1].replace(']','')
}
获取文件门路
/**
* 获取文件门路
* @param {string} file_type 文件抉择类型的整体形容
* @param {array} extensions 选中文件的具体扩展名组成数组
*/
getFilePath(file_type = 'All Files', extensions = ['*']) {return new Promise(async (resolve, reject) => {const { canceled, filePaths} = await dialog.showOpenDialog(getCurrentWindow(), {
title: '请抉择一个目录',
properties: ['openFile', 'dontAddToRecent'],
buttonLabel: '抉择此文件', // 确认按钮的 label
filters: [{name: file_type, extensions}],
})
canceled ? reject('用户已勾销对文件的抉择操作') : resolve(filePaths[0])
})
}
获取文件门路
getDirPath() {return new Promise(async (resolve, reject) => {const { canceled, filePaths} = await dialog.showOpenDialog(getCurrentWindow(), {
title: '请抉择一个目录',
properties: ['openDirectory', 'dontAddToRecent'],
buttonLabel: '抉择此文件夹', // 确认按钮的 label
})
canceled ? reject('用户已勾销对文件夹的抉择操作') : resolve(filePaths[0])
})
}
获取文件保留的地位
/**
* 获取文件保留的地位
* @param {string} file_type 文件抉择类型的整体形容
* @param {array} extensions 选中文件的具体扩展名组成数组
*/
getFileSavePath(file_type = 'All Files', extensions = ['*']) {return new Promise(async (resolve, reject) => {const { canceled, filePath} = await dialog.showSaveDialog(getCurrentWindow(), {
title: '请抉择文件的保留地位',
properties: ['dontAddToRecent'],
buttonLabel: '保留在此地位', // 确认按钮的 label
filters: [{name: file_type, extensions}],
})
canceled ? reject('用户已勾销对文件的保留操作') : resolve(filePath)
})
}