乐趣区

关于vue.js:ElectronVue-方法库

文件门路

/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)
  })
}
退出移动版