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. 爬虫前奏——初谈Requests库

    什么是Requests Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库如果你看过上篇文章关于urllib库的使用,你会发现,其 ...

  2. props watch 接口抖动

    readType (val) { this.innerReadType = '-' this.$nextTick(() => { this.innerReadType = val }) },

  3. Python+Appium实现自动化测试

    一.环境准备 1.脚本语言:Python3.x    IDE:安装Pycharm 2.安装Java JDK .Android SDK 3.adb环境,path添加E:\Software\Android ...

  4. [前端开发]Vue组件化的思想

    组件化的思想 将一个页面中的处理逻辑放在一起,处理起来就会很复杂,不利于后续管理和扩展. 如果将页面拆分成一个个小的功能块,每个功能块实现自己的内容,之后对页面的管理和维护就变得很容易了. 注册组件的 ...

  5. sleep()和wait()方法的区别

    1,sleep()声明在Thread类中,而且是静态方法: wait()声明在Object类中,而且必须由锁对象调用. 2,sleep()时间达到后恢复: wait()可以设置事件自动恢复,如果没有设 ...

  6. navicat使用、pymysql连接数据库

    内容回顾 select distinct 字段1,字段2,... from 表名 where 分组之前的过滤条件 group by 分组条件 having 分组之后过滤条件 order by 排序字段 ...

  7. 洛谷 P5639 【CSGRound2】守序者的尊严 题解

    原题链接 简要题意: 从 \(1\) 号位开始走,可以连续走过一段连续的 \(0\) ,每走一次,所有位置取反. (即 \(0 \gets 1\),\(1 \gets 0\)). 算法一 模拟暴力即可 ...

  8. 曹工说Spring Boot源码(27)-- Spring的component-scan,光是include-filter属性的各种配置方式,就够玩半天了.md

    写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...

  9. 使用VS开始一个新项目配置外部库的新手总结

    在使用VS做一个项目的时候,往往会需要使用各种各样的库,一般一个标准的外部库目录大体结构为: VS在配置这些库的时候有多种可行方法,但是不同的方法对于项目后续的管理和移植有不同的影响,我使用过以下三种 ...

  10. adb的基本安装和介绍(一)

    一,什么是adb? adb全称为Android Debug Bridge,就是起到调试桥的作用.顾名思义,adb就是android sdk 的一个工具 借助adb工具,我们可以管理设备或手机模拟器的状 ...