Skip to content

aotuzuche/auto-libs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

fe97e48 · Jun 26, 2023
Jun 26, 2023
Mar 9, 2022
Jan 5, 2023
Oct 8, 2018
Jul 26, 2019
Jul 26, 2019
Dec 2, 2020
Apr 22, 2021
Jun 10, 2021
Jan 25, 2021
Jul 26, 2019
Jun 26, 2023
Jan 23, 2019
Mar 30, 2021
Oct 12, 2021
Mar 7, 2022

Repository files navigation

AUTO-libs 凹凸公用库

公用样式和脚本引入

reset 样式

import 'auto-libs/build/styles/reset';

flexible 布局脚本

import 'auto-libs/build/scripts/flexible';

Input 扩展

import 'auto-libs/build/scripts/inputEvents';

CDN 方法

获取 cdn 的静态资源或图片资源,cdn 地址会自动根据开发和生产环境切换

另外当传递的值为空时,返回一张灰白色空图,保证了不会访问 cdn/undefined 这样的地址

import { CDN } from 'auto-libs';

CDN.image('myimage.jpg'); // https://carphoto.atzuche.com/myimage.jpg

CDN.asset('myimage.jpg'); // https://cdn.atzuche.com/myimage.jpg

CDN.asset(void 0); // https://cdn.atzuche.com/static/images/space.png

Report 错误上报

上报的错误将会到 sentry 仅适用于 react-scrupts-auto 脚手架项目

import { Report } from 'auto-libs';

// 用于做一些记录
Report.info('info消息');

// 用于警告
Report.warning('warning消息');

// 用于记录错误
Report.error(new Error('错误'));
  1. 使用Report.error时注意:传递的内容不管是不是一个 Error 类型的数据,用new Error()包一层,方便 sentry 做错误定位
  2. 一般我们在try { ... } catch (err) { ... }的 catch 里上报错误,全局的错误在该脚手架中会自动上报

Search 浏览器地址参数处理

import { Search } from 'auto-libs'

// 获取当前网址search内容的map
Search.parse<T>()

// 获取当前网址search内容的string
Search.toString()

// map格式转string格式
const str = Search.map2string({ a: 1, b: 2 }) // a=1&b=2

// string格式转map格式
const map = Search.string2map('a=1&b=2') // { a: '1', b: '2' }

// 获取当前网址search的某个key
const t = Search.get('token')

// 获取当前网址search的某个key,当值为undefined时,取默认值
const t = Search.getDefault('token', '112233')

// 设置某个值到当前网址search中
Search.set('token', '112233')

// 当该key不存在时,设置某个值到当前网址search中
// 注意:当key存在值,不做任何处理
Search.define('token', '112233')

// 删除当前网址search中的某个key
Search.remove('token')

// 清空当前网址的search内容
Search.clear()

// 判断某个key是否存在于当前search
const hasToken = Search.exist('token')

// 比较当前search中某个值
const isNew = Search.is('new', '1')

go 跳转

import { go } from 'auto-libs';

取还车地址

const { address } = go

address({
  redirectUrl: string
  redirectParam: string
  locationInfo?: {
    address?: string;
    name?: string;
    code?: string;
    lat?: string;
    ng?: string;
    telPrefix?: string;
  }
  telPrefix?: string
  cityCode?: string
  keyword?: string
  servicePoint?: 1 | 0
  searchTip?: string
  selectCity?: 1 | 0
  selectCityTip?: string
  isOnDoor?: 1 | 0
})

支付

const { pay } = go

pay({
  amount?: string
  payTitle?: string
  token: string
  orderNo: string
  payKind: string
  redirect_url: string
})

身份认证

const { identityAuth } = go

identityAuth({
  redirect?: string
})

驾照认证

const { dirverAuth } = go

dirverAuth({
  redirect?: string
})

http

import { http } from 'auto-libs';

http.request({
  method: 'get',
  url: `/wechatgw/jsapi/ticket`,
});

httpConsole

import { httpConsole } from 'auto-libs';

httpConsole.request({
  method: 'get',
  url: `/wechatgw/jsapi/ticket`,
});

自定义拦截器

import { http } from 'auto-libs';

http.interceptors.request.use(config => {
  if (config.method === 'get') {
    if (typeof config.params !== 'object') {
      config.params = {};
    }

    config.params.requestId = Number(new Date());
  }

  if (Object.keys(config.data).length > 0) {
    config.data.requestId = Number(new Date());
  }

  return config;
});

export default http;

自定义登陆跳转

import { httpConsole, httpConsoleExtend } from 'auto-libs';

httpConsoleExtend({
  toLogin: config => {
    if (config.status === 400) {
      location.href = '/login';
      return true;
    }

    return false;
  },
});

AS 统计埋点

import { AS } from 'auto-libs';

AS();

页面编号 事件号和携带参数

AS({
  pageNo: 100,
  eventNo: 1000,
  eventContent: {
    name: 'hello world',
  },
});

WX

import { WX } from 'auto-libs';

// 微信分享
WX.share();

自定义参数

WX.share({
  shareTitle: '凹凸租车', // 分享标题
  url: 'https://m.aotuzuche.com', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
  sharePicUrl: 'https://carphoto.aotuzuche.com/web/auto/assets/imgs/logo.png', // 分享图标
  text: '凹凸租车 共享' // 分享详情
  type?: "userinfo" | "base" // 弹窗授权或者静默授权,默认静默
})

自定义按钮

WX.share({
  shareTitle: '凹凸租车', // 分享标题
  url: 'https://m.aotuzuche.com', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
  sharePicUrl: 'https://carphoto.aotuzuche.com/web/auto/assets/imgs/logo.png', // 分享图标
  text: '凹凸租车 共享', // 分享详情
  type?: "userinfo" | "base", // 弹窗授权或者静默授权,默认静默
  jsApiList?: jsApiListType[],  // menus
  callback?: (wx) => void  // ready 回调
})

token 相关

token

import {
  getToken,
  setToken,
  clearToken,
  initToken,
  getConsoleToken,
  setConsoleToken,
  clearConsoleToken,
} from 'auto-libs';

// 获取 token
getToken();

// 设置 token
setToken();

// 清空 token
clearToken();

// 获取console token
getConsoleToken();

// 设置console token
setConsoleToken();

// 清空console token
clearConsoleToken();

// 初始化 token
initToken();

// 或者
await initToken();

// 忽略部分页面做initToken
initToken(() => {
  if (window.location.href === '需要忽略的url') {
    return true;
  }
  return false;
});

登录

import { toLogin } from 'auto-libs'

toLogin(params?)

openId

import { getOpenId, setOpenId, clearOpenId } from 'auto-libs';

// 获取 openId
getOpenId();

// 设置 openId
setOpenId();

// 清空 openId
clearOpenId();

unionId

import { getUnionId, setUnionId, clearUnionId } from 'auto-libs';

// 获取 unionId
getUnionId();

// 设置 unionId
setUnionId();

// 清空 unionId
clearUnionId();

virtualNo

import { getVirtualNo, setVirtualNo, clearVirtualNo } from 'auto-libs';

// 获取虚拟会员号
getVirtualNo();

// 设置虚拟会员号
setVirtualNo();

// 清空虚拟会员号
clearVirtualNo();

memNo

import { getMemNo, setMemNo, clearMemNo } from 'auto-libs';

// 获取 memNo
getMemNo();

// 设置 memNo
setMemNo();

// 清空 memNo
clearMemNo();

时间转换

offsetHours

offsetDays

stringToDate

import { offsetHours, offsetDays, stringToDate } from 'auto-libs';

// 时间差,单位为小时
offsetHours();

// 将时间差转为文字方式
offsetDays();

// 将字符串20190101093000 转换为时间格式
stringToDate();

正则

添加 Reg 对象,包含下面这些方法和属性:

是否是凹凸 app: isApp,

是否是微信: isWX,

是否是支付宝客户端: isAlipay,

是否是 iOS: isiOS,

是否是 android: isAndroid,

是否是百度客户端: isBaidu,

是否是企业微信:isWXWork,

是否是手机号 function: isMobile(str),

是否是电话号码 function: isTel(str),

是否是电子邮箱 function: isEmail(str),

是否是身份证 function:isIDCard(str),

是否是支付宝小程序 function isMiniAlipay() 异步函数,

是否是微信小程序 function isMiniWX() 异步函数,

是否是微信小程序 function isMiniBaidu() 异步函数,

Desensitize 隐私处理方法

idCard-身份证

Desensitize.idCard('310110199912120101')) // 310***********0101

mobile-手机号

Desensitize.mobile('13800138000'); // 138****8000

name-名称

Desensitize.name('张三丰')) // 张**

bankcard-银行卡

Desensitize.bankCard('6228480023265389523'); // 62284800232********

plateCode-车牌号

Desensitize.plateCode('沪AB00993'); // 沪A****93

vin-车架号

Desensitize.vin('6228480023265389523'); // 622*************523

email-邮箱

Desensitize.email('[email protected]'); // l*******@*******

crypto 加密解密

Encrypt

Decrypt

import { Decrypt, Encrypt } from 'auto-libs';

// AES加密
Encrypt.AES();

// AES解密
Decrypt.AES();