1.3.2 • Published 4 years ago

libs-js v1.3.2

Weekly downloads
4
License
ISC
Repository
github
Last release
4 years ago

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

```js
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


```js
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
> 处理图像:等比降低图像质量 未裁剪

```js
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 = block0.split(":")1; const realData = block1.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
> 时间差拆分
```js
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; //空格

```js
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
1.3.2

4 years ago

1.3.1

4 years ago

1.2.1

5 years ago

1.2.0

6 years ago

1.1.6

6 years ago

1.1.5

6 years ago

1.1.4

6 years ago

1.1.3

6 years ago

1.1.2

6 years ago

1.0.20

6 years ago

1.0.19

6 years ago

1.0.18

6 years ago

1.0.16

6 years ago

1.0.14

6 years ago

1.0.13

6 years ago

1.0.12

6 years ago

1.0.11

6 years ago

1.0.10

6 years ago

1.0.9

6 years ago

1.0.8

6 years ago

1.0.7

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago