function zero_fill_hex(num, digits) {
let s = num.toString(16);
while (s.length < digits)
s = "0" + s;
return s;
} /**
* rgba 转 16进制
* @param rgb
* @returns {*}
*/
function rgb2hex(rgb) {
if (!rgb) {
return rgb;
}
if (rgb.charAt(0) === '#')
return rgb;
const ds = rgb.split(/\D+/);
const decimal = Number(ds[1]) * 65536 + Number(ds[2]) * 256 + Number(ds[3]);
return "#" + zero_fill_hex(decimal, 6);
} /**
*
* @returns {string}
*/
function guid() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
const r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
} /**
* 图标转换
* @param icon
* @returns {*} 图标原字符串
*/
function convertIcon(icon) {
if (!icon)
return icon;
return icon.slice(5);
} /**
* url
* @param url
* @param name
* @param value
* @returns {*}
*/
function urlUpdateParams(url, name, value) {
let r = url;
if (r != null && r !== 'undefined' && r !== "") {
value = encodeURIComponent(value);
const reg = new RegExp("(^|)" + name + "=([^&]*)(|$)");
const tmp = name + "=" + value;
if (url.match(reg) != null) {
r = url.replace(eval(reg), tmp);
} else {
if (url.match("[\?]")) {
r = url + "&" + tmp;
} else {
r = url + "?" + tmp;
}
}
}
return r;
} /**
* 格式化时间
* @param timestamp
* @returns {string}
*/
function timestampToTime(timestamp) {
const date = new Date(timestamp * 1000);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
const Y = date.getFullYear() + '-';
const M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
const D = date.getDate() + ' ';
const h = date.getHours() + ':';
const m = date.getMinutes() + ':';
const s = date.getSeconds();
return Y + M + D + h + m + s;
} /**
* 跳转到新页面 并生产缓存key
* @param data
*/
function navigateToCacheData(data) {
const that = data.that;
let url = data.url;
const cacheKey = "_cacheKey_" + (data.type || "");
const key = "temp_cache_" + guid();
that.setState({
[cacheKey]: key
});
url = urlUpdateParams(url, "key", key);
Taro.navigateTo({
url: url
});
} /**
* 返回上一个页面并且传回数据
* @param that
* @param data
*/
function navigateBackCacheData(that, data) {
const key = that.$router.params.key;
if (key) {
Taro.setStorage({
key: key,
data: data
}).then(() => {
Taro.navigateBack({});
});
} else {
Taro.navigateBack({});
}
} /**
* 获取关闭的页面传回的数据
* @param data
* @param fn
*/
function getPageBackCacheData(data, fn) {
const that = data.that;
const cacheKey = "_cacheKey_" + (data.type || "");
const _cacheKey_ = that.state[cacheKey];
if (_cacheKey_) {
Taro.getStorage({
key: _cacheKey_
}).then((res) => {
fn && fn(res.data);
}).catch(() => {
});
Taro.removeStorage({
key: _cacheKey_
})
}
} // 弹窗
function showModal(data, fn) {
Taro.showModal({
title: data.title,
content: data.content || "",
confirmText: data.confirmText || "确认",
cancelText: data.cancelText || "取消",
confirmColor: "#2297e5",
success: function (t) {
if (!t.confirm) {
return
}
fn && fn();
}
});
} // 装换带小数的钱
function convertMoney(couponVal) {
if (parseInt(couponVal) === parseFloat(couponVal)) {
return parseFloat(couponVal);
}
return parseFloat(couponVal);
} // 打开新页面
function navigateTo(data, parName, json) {
if (!data) {
console.error(data);
return;
}
if (parName && json) {
// 添加参数
json = JSON.stringify(json);
json = encodeURIComponent(json);
data.url = urlUpdateParams(data.url, parName, json);
}
Taro.navigateTo(data).catch((res) => {
if (res.errMsg.indexOf("limit") !== -1) {
// 超出限制关闭所有重新打开
reLaunch(data)
} else {
Taro.showToast({
title: "打开失败",
icon: "none"
});
}
})
} // 延迟加载
function reLaunch(data) {
Taro.reLaunch(data).catch(() => {
// 跳转失败
Taro.showLoading({
title: '加载中',
});
setTimeout(function () {
Taro.hideLoading();
Taro.reLaunch(data)
}, 2000);
}).then(() => {
Taro.hideLoading();
});
}

微信小程序常用的方法(留着用)的更多相关文章

  1. 微信小程序数据请求方法wx.request小测试

    微信小程序数据请求方法 wx.request wxml文件: <view> <textarea value="{{textdata}}"/> </vi ...

  2. 微信小程序开发系列教程三:微信小程序的调试方法

    微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 这个教程的前两篇文章,介绍了如何用下图所示的微信开发者工具自动生成一个Hel ...

  3. 微信小程序常用样式汇总

    本文系转载: 原文作者:chenzheng8975 原文地址:https://www.cnblogs.com/chenzheng8975/p/9605186.html 微信小程序常用样式汇总 小程序特 ...

  4. 微信小程序最新授权方法,getUserInfo

    20180511微信小程序正式关闭原先getUserInfo的逻辑 不再允许自动弹出授权框. 方法一: index.wxml(准备一个用于给用户授权的页面,我这里直接用了一个全屏按钮) <vie ...

  5. 微信小程序——wxParse使用方法

    wxParse是一个微信小程序富文本解析组件.现在小程序里面自带了一个<rich-text>组件也能解析富文本,但是表现不尽人意.所以我还是采用的wxParse来解析富文本的. wxPar ...

  6. 微信小程序节点查询方法:wx.createSelectorQuery()的使用场景与注意事项

    小程序由于内置于微信,这使得它有了得天独厚的宣传和使用优势,本着学习的心态,我在官网上看了一遍开发文档,大致得出小程序框架的设计模式与使用注意事项(重点来了,其实开发文档某些方面叙述的并不仔细,甚至存 ...

  7. 微信小程序特殊字符转义方法——&转义&amp;等等

    在我编写公司小程序的过程中,有一次在网页端添加了一张图片,结果在小程序端访问失败了,究其原因,竟然是因为该图片名称中有一个“&”符号,网页端添加后,自动转义成了“&”存储到了数据库.当 ...

  8. 微信小程序--数据共享与方法共享

    目录 全局数据共享 Mobox npm安装及其注意事项 小程序对 npm 的支持与限制 npm 依赖包的安装与使用 Mobox 1. 全局数据共享 2. 小程序中的全局数据共享方案 3. 使用mobx ...

  9. 微信小程序~生命周期方法详解

    生命周期是指一个小程序从创建到销毁的一系列过程 在小程序中 ,通过App()来注册一个小程序 ,通过Page()来注册一个页面 先来看一张小程序项目结构 从上图可以看出,根目录下面有包含了app.js ...

随机推荐

  1. JVM01——JVM内存区域的构成

    从本文开始将为各位带来JVM方面的知识点,关注我的公众号「Java面典」了解更多Java相关知识点. JVM内存主要分为三部分线程私有(Thread Local).线程共享(Thread Shared ...

  2. 前端基础面试题(js部分)

      前端基础面试题(JS部分)   1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined.Null.Boolean.Number.String值类 ...

  3. 使用PageHelper插件分页时,如何对对象进行转换以及添加属性

    一.插件介绍 PageHelper是针对Mybaits的分页插件,支持任何复杂的单表.多表分页. 二.基本用法 以springboot为例,有两种方式配置,一种是传统的,引入依赖,编写配置类:一种是使 ...

  4. C++ json解决方案

    前段时间用到C++来封装com 因此从数据转换上我采用的Json来当两种语言的传递方式,现做下json的序列化与反序列化方案的总结: Rapidjson 文档地址:http://rapidjson.o ...

  5. 【Java】反射调用与面向对象结合使用产生的惊艳

    缘起 我在看Spring的源码时,发现了一个隐藏的问题,就是父类方法(Method)在子类实例上的反射(Reflect)调用. 初次看到,感觉有些奇特,因为父类方法可能是抽象的或私有的,但我没有去怀疑 ...

  6. mysql & Tomcat使用问题记录

    mysql使用问题记录 1.mysql如何修改root密码 a.进入mysql安装目录b.登录 mysql -u root -pc.修改密码 mysql> SET PASSWORD FOR ro ...

  7. Apex_2. LiveBos两个时间求相差天数、历时

    (1)获取两个时间相差天数(没有上午下午区分) var d1=ABS_DATESTRING(FStartTime,'yyyy/MM/dd'); var d2=ABS_DATESTRING(FEndTi ...

  8. hdu3294 Manacher算法模板

    题目链接:http://icpc.njust.edu.cn/Problem/Hdu/3294/ 回文长度如果是mxx,回文中心是id的话,在扩展串中(id-mxx+1,id+mxx-1)的这段中去除标 ...

  9. 用sort 排序

    这两天看了一个比较好的sort总结,所以转载了一下 阅读目录 1.sort 2.sort简介 3.sort扩展 1.sort 使用:#include <algorithm>   using ...

  10. 题解 P2755 【洗牌问题】

    这是本人的第一篇题解 请多多宽恕 这一道题其实不要用数组 我们来观察一下n=3时的情况: 原: 1 2 3 4 5 6 4 1 5 2 6 3 2 4 6 1 3 5 1 2 3 4 5 6 我们去观 ...