文件门路
/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').remoteexport 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) })}