页面通用变量
混入的常用页面变量,可直接使用。
opn
页面传参
如果有upid,自动保存。
pagepost
页面参数与搜索项整合
非ref响应式。
me
用户登录后信息
addtimes: 注册时间戳
icon: 头像
id: 用户ID
mobile: 手机号
name: 昵称
needpass: 是否需改密码
upid: 推荐人ID
g
本地字典数据,登录前无该数据。
init
一般Ajax请求后更新,无需页面响应式定义。
jsnurl
微服务集群url。
srv
默认微服务集群码。
默认: t
version
版本号。
header_statusbar_height
顶部系统栏高度。
header_title_height
标题栏高度。
header_title_margin
胶囊左右留白。
footer_safe_height
底部安全高度。
meta
page-meta配置项。
用于暗黑模式和敬老模式。
app函数库
app.methods.*
仅在app中调用
getpage(idx)
获取当前/上页页面句柄
参数: 0 当前页,1 上一页
返回: 句柄 或 null
setuserstorage({me,storage,pnttrack})
保存用户信息、字典缓存、积分埋点
参数: {个人信息,字典,积分埋点}
返回: {me,g}
保存到localstorage: me,g,_pnttrack
appupdate(plat, cb)
自动版本更新
APP调用login.getappver
小程序调用各自函数
有新版本则下载更新后重启。
参数:
plat: 更新目标 all全部,app只APP
cb: 可选更新的回调函数,需async,返回true更新
connectbt(devup, devtype, devid)
连接蓝牙设备
参数: 设备标识,设备类型,设备ID
返回: 无
new CiyWebSocket(addr)
websocket客户端类
实现断线尝试重连
初始化: addr网址
async app.alert(txt)
系统默认的alert效果
参数: 内容文本
async app.toast(txt, icon)
系统默认的toast效果
参数: 内容文本,图标
app & page函数库
app.xx()或this.xx()均能调用,用法相同。
async getme()
返回登录后的数据。
未登录返回{me:0}。
async callfunc({srv, func, cache, cachekey, loadhide, loadtxt, data})
服务端Ajax API请求,header带上token。
自动保存新token,无感续期。
参数:
srv: 指定微服务集群代码,在jsnurl配置
func: 调用函数。
http开头,指向到外部位置。
包含?,jsnurl本地服务器下任意位置。
否则,jsnurl+jsnajax+[类名.函数名]。
cache: 0不缓存 >0 超过秒数请求
cachekey: 指定缓存名,一般参数区分用。默认f_[func]
loadhide: true隐藏加载中显示
loadtxt: 设置加载中显示文本,默认:加载中
data: post数据对象
返回: json
返回错误: {errmsg, ...}
返回成功: {code:1, ...}
如果code=2, 自动拉起重新登录页面
如果header带token re, 通知app刷新用户信息及字典等。
系统定时调用login.restorage,保持本地与服务器数据一致。
lang(code)
多语言翻译
参数: code key
返回: 翻译后文本
uperr(type, msg)
捕获错误并加入上传队列
参数: 错误分类码、错误描述、附带数据
系统后台定时上传,错误队列。
错误数据先保存到本地,等待下次或再次进入上报,防止崩溃丢失关键错误数据。
json_parse(str)
将字符串转JSON,能过滤调试数据
返回: object 或 null
json_string(obj)
将JSON转字符串
getstorage(key, def)
获取localstorage值,自动json反序列化
返回: object 或 string 或 def
setstorage(key, val)
写入localstorage值,自动json序列化
clearstorage()
清空所有localstorage
removestorage(key)
删除localstorage中一个key对
page函数库
页面功能
跳转到、打开、拨打、动画等。
async gourl(url)
跳转到其他页面。
http前缀,跳转到web页面
! 前缀,跳转到原型图页面,menuid|tag
* 前缀,alert提示语
$ 前缀,先检查登录状态再内部跳转
其他,跳转内部页面,支持switchTab
goweb(url, name)
跳转到web页面,携带token。
参数: 链接、标题
goloc(lat, lng)
跳转到地图指定位置
gophone(phone)
拨打指定电话,调取系统电话拨打页面
goani(opn, cb, othcb)
元素动画播放
参数: {anis,init}、export回调、hide等回调
anis支持string和array
copyboard(str)
将str拷贝到剪贴板
page函数库
变量转换
类型判断、字典换算、转码等。
isfloat0(num)
判断是否为0,防止浮点数问题。
尽量不要使用浮点数。
isarray(val)
变量类型是否是 object array
isobject(val)
变量类型是否是 object object
islocalmedia(file)
变量文件名是否是本地文件(微信)
isimg(file)
判断扩展名是否图片类型,jpg,gif,png
isvideo(file)
判断扩展名是否视频类型,mp3,mp4
file_ext(file)
返回文件扩展名(大写),不带点。
file_stor(url)
将url转成绝对url,用于cdn分散文件存储。
hasstr(str, find)
在str中是否包含find
ccode(arr, value, field, nonestr)
在字典数组中找到id对应对象的field值
arr: 字典数组
value: 待匹配值
field: 输出字段,默认name。_obj返回本身
nonestr: 未匹配到返回的字符串
scode(arr, ids, field)
在字典数组中找到ids字符串对应对象的field值数组
arr: 字典数组
ids: 逗号分隔的字符串
field: 输出字段,不填则返回对象
mcode(arr, value, field)
在字典数组中找到value对应的对象,追溯上级。
arr: 字典数组
value: 待匹配值
field: 输出字段,不填则返回对象
返回: array
bcode(arr, value, field)
在字典数组中找到value按位对应的对象。
arr: 字典数组
value: 待匹配int值
field: 输出字段,不填则返回对象
返回: array
enbase64(str)
将str转成base64格式。
svg2bg(svg)
将svg转成base64格式的url(data:image...),backgroundImage语法。
page函数库
变量显示
变量可视化转换。
topad0(num, length)
数字前面不足位补0。
tonumtho(num)
整数部分千分位显示。
tonumdec(num, showzero, len)
小数部分显示
showzero,是否保留.00,全0小数。
len,保留位数。
tostr(val)
将字符串转换成可见,替换了双引号。
toint(val)
将字符串转换成整数。
tofloat(val)
将字符串转换成浮点。
tostamp(val)
将字符串转换成时间戳。
val=0或无,则返回当前时间
todatetime(time, format, nostr)
将时间戳转换成可显示。
nostr: 时间戳为0时返回的字符串。
format: 输出格式:
默认: YYYY-MM-DD HH:nn
id: DDHHnn
H: YYYY-MM-DD HH
d: YYYY-MM-DD
D: YYYY年MM月DD日
x: MM-DD
m: YYYY-MM
n: YYYY-M
y: YYYY
M: YYYY年MM月
i: HH:nn
s: YYYY-MM-DD HH:nn:ss
st: MM-DD HH:nn
tofix(num, length=4)
将数字转换成合适的可显示小数。
length<0,小数点保留n位,全0则不显示。
length>0,小数点保留n位,不去0。
length=0,按数长保留,尽量少的位数显示。
tounit(ori)
将三级单位,unit字符串转换成可显示文字。
如: 瓶|12|盒。显示成 1盒=12瓶
tocyc(ori)
将周期,cyc字符串转换成可显示文字。
如: -1,1个月。86400,1天。60,1分钟
tomsk(ori, pstr)
文字遮罩,将未加密字符串转换成部分显示。
如: pstr=###
totimespan(time, bestr, zero, before)
将时间转成 xx天后/xx小时前。
time: 时间戳
bestr: 后缀文字
zero: 小于60秒显示文字。默认: 刚刚
before: true过去时间,false未来时间
totimesec(time, bestr, zero, before)
将时间转成 xx天后/xx小时前。
time: 时间戳
bestr: 后缀文字
zero: 小于60秒显示文字。默认: 刚刚
before: true过去时间,false未来时间
totimepoint(time, bsecond)
将[1,86400]数字转成 HH:ii[:ss]
例: 1 = 0:0:0,86400 = 23:59:59
time: 按秒的数字
bsecond: 是否包含秒
todayage(time, noday)
返回日/月龄天数。
time: 时间戳
noday: true只显示月份,否则月份+天数
tobr(txt, autohtml)
将txt中\n转成<br/>
如果autohtml != true,则替换<>
page函数库
功能设置
交互设置功能。
pagenoscroll(bool)
页面是否允许滚动。
true不允许,false允许。
settheme(theme)
设置暗黑模式。
theme支持dark/light/空。空为切换。
setfont(font)
设置敬老模式,字体大小。
font支持def/lg较大/xl很大/xxl极大。
executepnt(pntid, post)
触发积分埋点。
pntid为埋点ID,post为上传的辅助数据。
setTabbar(nameobj)
设置底部导航栏。
object为局部替换。
array为全部替换。
page函数库
组件函数
快捷调用组件,确保每个页面都有该组件。
async getauth(must)
获取用户信息,未登录调起登录界面。
true强制打开登录页,false微信自动登录。
async scanqr()
扫二维码。
返回{type,code}。
async popmenu(opn)
弹出上拉菜单。
async toast(opn)
toast提示。
async alert(opn, btns)
alert弹出框。
async askmsg(opn, btns)
alert弹出询问框。
返回btn信息。
async inputmsg(opn, btns)
alert弹出询问框。
返回{text:xxx,btn:btn信息}。
async sleep(ms)
延迟毫秒数,一定要await等待。
async load_ciydict(url)
动态获取静态字典。
page函数库
数据处理
解析转换数据、匹配数据。
shareparam(opn)
分享链接转换,type=message从首页跳转。
type: message用户,timeline朋友圈。
title: 转发标题。
img: 图片绝对链接,无则当前页面截图。
query: 无需upid的参数{}。
path: message下,当前页面route。
特别的,在message下,支持3秒内异步,需自行实现。
getstrparam(str, split='|')
将简易字符串解析成object。
一般在系统配置等场景使用。
例如: key1=val&key2=val
返回: {key1,key2}。
urlparam()
解析url?部分转成object,urldecode转码。
例如: /main?key1=val&key2=val
返回: {key1,key2}。
arrayfind(arr, val, field)
从数组中匹配值。返回index。
找到arr[{field=val}]的index。
objdeepmerge(src, desc, btop)
object深度合并。
将desc数据并入src中,并返回
自动避开ciy_静态字典,自动处理带id的数组。
btop:true, 新数据插入到顶部。
objclone(obj)
object深度复制。
str2date(str)
字符串yyyy-mm-dd hh:ii:ss转new Date。
bin2hex(bin)
bin转hex字符串。
例如: Ab转成4162
hex2bin(hex)
hex字符串转bin。
例如: 4162转成Ab
page函数库
其他函数
style2obj(style)
将style属性转换成object。
如果style是object直接返回。
如果是字符串,则驼峰处理后返回
nopower(mepower, power)
权限检查,判断是否无权限。
mepower: 用户拥有的权限。
power: 目标权限。
权限是字符串拼接,多个权限用.分隔。
.*. 超级管理员。
权限组成: 单字母+相关id+子权限代码
单字母: p PC端,m移动端,x扩展。
相关id: 端取menu.id,扩展取power.id。
子权限代码: 自定义,页内不重复。
例: mepower = .p500a.p500d.p402.
power = p402a,则有权限。
getroute()
获取当前页面路由,多端兼容。
com_getpage()
组件中获取页面句柄。
async com_gethdft()
组件中获取页面标题栏/导航栏高度(px)。
返回: {headerheight, footerheight}
async getrefs()
getrefsSync同步函数
获取页面组件句柄。
页面未准备好,则延时0.1s再获取一次。
async getrect()
获取元素尺寸。
async file_upload1(file, opn)
上传单个文件。
支持本地服务器和S3云存储,由于备案原因,S3需服务器中转。
file: {} 或 文件位置
name: 文件名
tempFilePath/path: 文件位置
size: 文件大小bytes
opn:
返回上传后路径
async file_uploads(files, opn, fn)
上传多个文件。
支持本地服务器和S3云存储,由于备案原因,S3需服务器中转。
files: [{},{}...]
name: 文件名
tempFilePath/path: 文件位置
size: 文件大小bytes
opn:
fn: {success, fail, progress} 回调函数集合
success(上传后路径, file)。
fail(错误文本, file, xhr)。
progress(百分比,file)。
async go_load(obj, act)
将异步资源加载同步化。
act为特例,如exec。
默认处理onload,onerror事件
async go/goe(promise)
模仿golang错误处理机制。
将异步函数中err部分转成返回值。
go可带一个参数。
goe不带任何参数,更方便处理。