微信小程序常用的方法(留着用)
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();
});
}
微信小程序常用的方法(留着用)的更多相关文章
- 微信小程序数据请求方法wx.request小测试
微信小程序数据请求方法 wx.request wxml文件: <view> <textarea value="{{textdata}}"/> </vi ...
- 微信小程序开发系列教程三:微信小程序的调试方法
微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 这个教程的前两篇文章,介绍了如何用下图所示的微信开发者工具自动生成一个Hel ...
- 微信小程序常用样式汇总
本文系转载: 原文作者:chenzheng8975 原文地址:https://www.cnblogs.com/chenzheng8975/p/9605186.html 微信小程序常用样式汇总 小程序特 ...
- 微信小程序最新授权方法,getUserInfo
20180511微信小程序正式关闭原先getUserInfo的逻辑 不再允许自动弹出授权框. 方法一: index.wxml(准备一个用于给用户授权的页面,我这里直接用了一个全屏按钮) <vie ...
- 微信小程序——wxParse使用方法
wxParse是一个微信小程序富文本解析组件.现在小程序里面自带了一个<rich-text>组件也能解析富文本,但是表现不尽人意.所以我还是采用的wxParse来解析富文本的. wxPar ...
- 微信小程序节点查询方法:wx.createSelectorQuery()的使用场景与注意事项
小程序由于内置于微信,这使得它有了得天独厚的宣传和使用优势,本着学习的心态,我在官网上看了一遍开发文档,大致得出小程序框架的设计模式与使用注意事项(重点来了,其实开发文档某些方面叙述的并不仔细,甚至存 ...
- 微信小程序特殊字符转义方法——&转义&等等
在我编写公司小程序的过程中,有一次在网页端添加了一张图片,结果在小程序端访问失败了,究其原因,竟然是因为该图片名称中有一个“&”符号,网页端添加后,自动转义成了“&”存储到了数据库.当 ...
- 微信小程序--数据共享与方法共享
目录 全局数据共享 Mobox npm安装及其注意事项 小程序对 npm 的支持与限制 npm 依赖包的安装与使用 Mobox 1. 全局数据共享 2. 小程序中的全局数据共享方案 3. 使用mobx ...
- 微信小程序~生命周期方法详解
生命周期是指一个小程序从创建到销毁的一系列过程 在小程序中 ,通过App()来注册一个小程序 ,通过Page()来注册一个页面 先来看一张小程序项目结构 从上图可以看出,根目录下面有包含了app.js ...
随机推荐
- def跨域+jwt
1.跨域 由于浏览器具有“同源策略”的限制.如果在同一个域下发送ajax请求,浏览器的同源策略不会阻止.如果在不同域下发送ajax,浏览器的同源策略会阻止. 总结 域相同,永远不会存在跨域. crm, ...
- search(1)- elasticsearch结构概念
上篇提到选择了elasticsearch ES作为专业化搜索引擎的核心,这篇讨论一下ES的基本结构和应用概念.首先,从硬结构方面来讲:ES是在一个集群(cluster)环境里运行的,所以ES应该具备高 ...
- Scrapy同时启动多个爬虫
1. 在项目文件夹中新建一个commands文件夹 2. 在command的文件夹中新建一个文件 crawlall.py 3.在crawlall.py 中写一个command类,该类继承 scrapy ...
- Top命令你最少要了解到这个程度
top命令几乎是每个程序员都会用到的Linux命令.这个命令用来查看Linux系统的综合性能,比如CPU使用情况,内存使用情况.这个命令能帮助我快速定位程序的性能问题. 虽然这个命令很重要,但是之前对 ...
- 手动生成WebService代理类
方式一: 手动生成WebService代理类需要把一句生成语句,如 wsdl.exe /l:cs /out:D:/ProxyServices.cs http://localhost/WebServic ...
- python高阶函数&异常处理
高阶函数 1.什么是高阶函数 在Python中,变量可以指向函数 函数名也是变量 既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数. ma ...
- 部署harbor以https模式和k8s对接
集群时间同步 我们在之前的kubeasz部署高可用kubernetes1.17.2 并实现traefik2.1.2部署篇已经实现了基于chrony的时间同步 [root@bs-k8s-master01 ...
- 【5min+】更好的选项实践。.Net Core中的IOptions
系列介绍 [五分钟的dotnet]是一个利用您的碎片化时间来学习和丰富.net知识的博文系列.它所包含了.net体系中可能会涉及到的方方面面,比如C#的小细节,AspnetCore,微服务中的.net ...
- 从ISTIO熔断说起-轻舟网关熔断
最近大家经常被熔断洗脑,股市的动荡,让熔断再次出现在大家眼前.微服务中的熔断即服务提供方在一定时间内,因为访问压力太大或依赖异常等原因,而出现异常返回或慢响应,熔断即停止该服务的访问,防止发生雪崩效应 ...
- bzoj4693
题意 bzoj 做法 结论1:对于\((X_1,X_2,...,X_k)\),其为红的充要条件为:令\(Y_i=X_i-1\),\(\prod\limits_{k=1}^K {\sum\limits_ ...