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

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
1.3.24latest

Version History

VersionDownloads (Last 7 Days)Published
1.3.24
1.3.15
1.2.13
1.2.04
1.1.62
1.1.53
1.1.42
1.1.31
1.1.22
1.0.203
1.0.192
1.0.184
1.0.162
1.0.142
1.0.133
1.0.124
1.0.113
1.0.103
1.0.94
1.0.84
1.0.72
1.0.61
1.0.53
1.0.43
1.0.31
1.0.21
1.0.13
1.0.02

Package Sidebar

Install

npm i libs-js

Weekly Downloads

76

Version

1.3.2

License

ISC

Unpacked Size

280 kB

Total Files

47

Last publish

Collaborators

  • chaiyining007
  • youzijiang