libs-js

1.3.2 • Public • Published

Libs

零散的工具函数,独立业务场景,几乎不可能用到全部的函数
建议:单独引用
import * as libs from 'libs'        //将会引入所有函数(不推荐)
 
// 调用名
libs.base64.encode
libs.base64.decode
libs.base64.toBlob
libs.cookie
libs.countDown
libs.dealImage
libs.emoji
libs.fileToBase64
libs.getStrLength
libs.getSuffixName
libs.imgLoad
libs.localStorage
libs.OSSAjax
libs.queryString
libs.sessionStorage
libs.turnTime
libs.XMLToJson
import 函数名 from 'libs-js/src/文件名'  // 单独引用(推荐)

queryString

import queryString from 'libs-js/src/queryString'
 
//单个参数
queryString("param");
 
//以哈希取,以哈希返回
queryString({
  param1:"默认值",
  param2:"默认值",
  param3:"默认值"
});
 
//以数组取,以数组希返回
queryString(["param1","param2","param3"]);

cookie

import cookie from 'libs-js/src/cookie'
 
//写入cookie
cookie("key","value");
 
//取值
cookie("key");
 
//取一堆值
cookie(["key1","key2","key3"]);//{key1:"value",key2:"value",key3:"value"}

countDown

import countdown from 'libs-js/src/countDown'
countdown({
    start: 60, //倒计时初始值
    processCallBack: ({
        h,
        m,
        s
    }) => {
        //倒计时进行中的回调{h:时, m:分, s:秒}
    },
    endCallBack: () => {
        //倒计时结束时的回调
    }
});

localStorage,sessionStorage

sessionStorage用法与 localStorage一致

import
{
  local_storage,
  remove_local_storage_item,
  clear_local_storage
} from 'libs-js/src/localStorage'
 
//写入
local_storage("key","value");
 
//取值
local_storage("key");
 
//删除某一项
remove_local_storage_item("key");
 
//清空
clear_local_storage();

imgLoad

图片加载回调

import imgLoad from 'libs-js/src/imgLoad'
 
imgLoad('URL',()=>{
  console.log(this)
});

XMLToJson

import {Create} from 'libs-js/src/XMLToJson'
 
const xmlstr=`
<?xml version="1.0" encoding="UTF-8"?>
<PostResponse>
  <Bucket>Bucket</Bucket>
  <Location>Location</Location>
  <Key>Key</Key>
  <ETag>ETag</ETag>
</PostResponse>`;
 
const xmlstr2=`
<?xml version="1.0" encoding="UTF-8"?>
<PostResponse>
  <Bucket>Bucket2</Bucket>
  <Location>Location2</Location>
  <Key>Key2</Key>
  <ETag>ETag2</ETag>
</PostResponse>`;
const xml = Create(xmlstr);
/*
{
  xmlstr:`同xmlstr`,
  jsonObj:{
    PostResponse:{
      Bucket:{
        'text':'Bucket'
      },
      ETag:{
        'text':'ETag'
      },
      Key:{
        'text':'Key'
      },
      Location:{
        'text':'Location'
      },
    }
  }
}
*/
 
console.log(xml.jsonObj);
 
xml.xmlstr = xmlstr2;
 
/*
{
  xmlstr:`同xmlstr`,
  jsonObj:{
    PostResponse:{
      Bucket:{
        'text':'Bucket2'
      },
      ETag:{
        'text':'ETag2'
      },
      Key:{
        'text':'Key2'
      },
      Location:{
        'text':'Location2'
      },
    }
  }
}
*/
 
console.log(xml.jsonObj);

OSSAjax

oss上传文件用的ajax

import ajax from 'libs-js/src/OSSAjax'
 
/**
 * 往oss上传用的ajax
 *
 * @param      {String}     action      上传地址,默认//cyn-test.oss-cn-hangzhou.aliyuncs.com
 * @param      {String}     filename    默认:"file"
 * @param      {File}       file        文件域
 * @param      {Object}     data        参数{
 *                                          key:"保存到oss的文件名",
 *                                          OSSAccessKeyId:"",
 *                                          policy:"",
 *                                          Signature:""
 *                                         }
 * @param      {Function}   onProgress  进度回调
 * @param      {Function}   onError     异常回调
 * @param      {Function}   onSuccess   成功回调
 * @param      {Object}     headers     不解释
 */
ajax({
  data: oss_config,
  action: action,
  file: file,
  filename: this.file_key,
  onSuccess: (data) => {
    
  },
  onError: (error, data) => {
    
  },
  onProgress: (e) => {
   
  }
});

fileToBase64

文件转base64

import file_to_base64 from 'libs-js/src/fileToBase64'
 
file_to_base64(document.getElementById('input_file'),base64 => {
  console.log(base64);
});

dealImage

处理图像:等比降低图像质量 未裁剪

import file_to_base64 from 'libs-js/src/fileToBase64'
import deal_image from 'libs-js/src/dealImage'
 
const max_size = 1024; //假设限制最大1M
const img_size = 2048; //假设当前图片2M,一般是file.size / 1024 除以1024是为了转成k
 
//先将上传域的图片base64
file_to_base64(document.getElementById('input_file'),base64 => {
  deal_image(base64 , max_size / img_size , base64 => {
    //压缩后的base64
    console.log(base64);
  });
});

base64ToBlob

base64编码转Blob

// 一系列处理 可以 实现 前端压缩图片(仅压缩),然后上传
 
import file_to_base64 from 'libs-js/src/fileToBase64'
import deal_image from 'libs-js/src/dealImage'
import base64ToBlob from 'libs-js/src/base64ToBlob'
 
const max_size = 1024; //假设限制最大1M
const img_size = 2048; //假设当前图片2M,一般是file.size / 1024 除以1024是为了转成k
 
//先将上传域的图片base64
file_to_base64(document.getElementById('input_file'),base64 => {
  deal_image(base64 , max_size / img_size , base64 => {
    //压缩后的base64
    console.log(base64);
    const block = base64.split(";");
    const contentType = block[0].split(":")[1];
    const realData = block[1].split(",")[1];
    const blob = base64ToBlob(realData, contentType);
    console.log(blob);
    const formData = new FormData();
    formData.append('file_key',blob);
    const xhr = new XMLHttpRequest();
    xhr.open('post', '上传地址', true);
    xhr.send(formData);
  });
});

emoji

包含2个方法:is_emoji_character,utf16_to_entities

turnTime

时间差拆分

import turnTime from 'libs-js/src/turnTime'
 
//这段创建时间的代码是demo,别模仿,渣渣浏览器可能new不出来的
const d1 = +new Date('2017-11-11 10:00:00');
const d2 = +new Date('2017-11-11 12:01:01');
 
/*
{
  d:0,
  h:2,
  m:1,
  millisecond:0,
  s:1
}
*/
turnTime(d2 - d1);
 

base64

base64加密解密

import {encode,decode,jsonencode,jsondecode} from 'libs-js/src/base64'
 
encode('abcd');      // YWJjZA==
decode('YWJjZA==');  // abcd
 
encode(encodeURIComponent('加密中文'));   //JUU1JThBJUEwJUU1JUFGJTg2JUU0JUI4JUFEJUU2JTk2JTg3
decodeURIComponent(decode('JUU1JThBJUEwJUU1JUFGJTg2JUU0JUI4JUFEJUU2JTk2JTg3')) //加密中文
 
 

getStrLength

中文2个字符,其他1个字符,计算字符串长度

import getStrLength from 'libs-js/src/getStrLength'
 
getStrLength('中文');      // 4
 
getStrLength('English');  // 7

getSuffixName

获取后缀名

import getSuffixName from 'libs-js/src/getSuffixName'
 
getSuffixName('xxxx/xxx/xx/yyy/abc.jpg'); // jpg

invisibleAsciiToHtml

不可见Ascii码,转html,目前只有

   /n     =>   <br>  
   /r     =>   <br>
   /x20   =>   &nbsp; //空格
import invisible_ascii_to_html from 'libs-js/src/invisibleAsciiToHtml'
 
invisible_ascii_to_html(`1
2 3`); //1<br>2&nbsp;3

FormatDate

对 Date 的扩展

import "libs-js/src/FormatDate";
 
new Date().Format("yyyy-MM-dd HH:mm"); //2017-01-01 01:01

Package Sidebar

Install

npm i libs-js

Weekly Downloads

6

Version

1.3.2

License

ISC

Unpacked Size

280 kB

Total Files

47

Last publish

Collaborators

  • chaiyining007
  • youzijiang