关于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)
  })
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理