deepwise-fusion-lib

超融合公共库

Usage no npm install needed!

<script type="module">
  import deepwiseFusionLib from 'https://cdn.skypack.dev/deepwise-fusion-lib';
</script>

README

deepwise-fusion-lib

超融合公共库

Usage

安装

修改源: npm config set registry  http://172.16.41.100:4873/

npm install deepwise-fusion-lib

引入一些scss变量

import 'deepwise-fusion-lib/theme/vars.scss'

覆盖element ui 默认样式

在项目入口文件引入:
import 'deepwise-fusion-lib/theme/element-cover.scss'

加解密

import {secret} from 'deepwise-fusion-lib'

加密:
let base64 = secret.encrypt('content')

解密(包含双重解密):
let content = secret.decrypt('base64')

对象字段按ASCII码顺序排序
let nb = secret.sortObj(ob)

数据验签
let sign = secret.getSign(timestamp, ob)

登陆信息

import {auth} from 'deepwise-fusion-lib'

存储token, 主应用在用
auth.setToken(token)

存储用户信息,主应用在用
auth.setUser(user)

获取token
let token = auth.getToken()

获取用户信息
let user = auth.getUser()

http工具

import { Message } from 'element-ui'
import {http, auth} from 'deepwise-fusion-lib'
import {decrypt} from 'deepwise-fusion-lib/packages/Secret'
import config from '../config/'

let decryptor = null
// 条件编译 tree shake掉decrypt 防止密码泄漏
if(process.env.DW_ENV === 'dev') {
  decryptor = decrypt
} else {
  decryptor = window.decrypt
}

var BASE_URL = config.BASE_URL

export default {
  post(url, data = {}, throwErr = false, headers = {}, autoEncrypt = true) {
    return this.request('POST', BASE_URL + url, data, throwErr, headers, autoEncrypt)
  },
  get(url, data = {}, throwErr = false, headers = {}, autoEncrypt = true) {
    return this.request('GET', BASE_URL + url, data, throwErr, headers, autoEncrypt)
  },
  request(method, url, data = {}, throwErr, headers, autoEncrypt = true) {
    const request = method === 'GET' ? http.get.bind(http) : http.post.bind(http)
    
    return new Promise((resolve, reject) => {
      request(url, data, headers, autoEncrypt).then(res => {
        if(res.ret === 0) {
          resolve(JSON.parse(decryptor(res.data)))
        } else if(res.ret === '失效code') {
          auth.clear()
          window.location.href = '/login'
        } else if(throwErr) {
          reject(res)
        } else {
          Message.error(res.msg)
        }
      })
    })
  },
},
uploadFile(file, data = {}, headers = {}, throwErr = false) {
    return new Promise((resolve, reject) => {
      http.uploadFile(userBaseUrl + '/uploadFile', file, data, headers, config.ENCRYPT).then(res => {
        console.log(res)
        if(res.ret === 0) {
          if(!res.encrypt || res.data === null) {
            resolve(res.data)
          } else {
            resolve(JSON.parse(decryptor(res.data)))
          }
        } else if(res.ret === '失效code') {
          auth.clear()
          window.location.href = '/login'
        } else if(throwErr) {
          reject(res)
        } else {
          Message.error(res.msg)
        }
      })
    })
  }