VK框架快速开发辅助工具
传送门
d.ts
语法提示,提升开发体验 传送门
HBX版本 >= 4.14
时运行项目到 Vue3
时会报错的问题access_token
的接口改为稳定版接口 传送门
特别注意
store/index.js
文件22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架2.17.4
更新导致的 vk.baseDao.selects
执行树形结构查询时无法连表的问题22466457
欢迎萌新和大佬来使用和共同改进框架vk.baseDao.selects
执行树形结构查询时,在支付宝小程序云中表现不一致的问题22466457
欢迎萌新和大佬来使用和共同改进框架2.17.2
引起的 vk.baseDao.select
的 getOne: true
时会报错的问题22466457
欢迎萌新和大佬来使用和共同改进框架vk.baseDao.getTableData
的参数 getCount
的默认值为 true
,但若含有 lastWhereJson
或 lastSortArr
则默认值为 false
(兼顾性能和实用性)vk.baseDao.selects
、 vk.baseDao.getTableData
将 addFields
的执行顺序调整到 fieldJson
之前vk.baseDao.select
、vk.baseDao.selects
、vk.baseDao.getTableData
新增返回值 getCount
,表示是否同时执行了 count
请求 传送门
vk.baseDao.select
、vk.baseDao.selects
、vk.baseDao.getTableData
新增参数 debug
,传 true
会返回执行rows和count的数据库语句执行耗时,单位毫秒,方便优化数据库语句/pages_template/uni-id/weixin/set-user-info.vue
)22466457
欢迎萌新和大佬来使用和共同改进框架vk.uploadFile
当needSave为true但file.name为空时, 自动从cloudPath中获取namemain.js
移除 vk.init
代码(不再需要手动init)22466457
欢迎萌新和大佬来使用和共同改进框架vk.uploadFile
支持扩展存储-七牛云 传送门
vk.pubfn.timeFormat
在抖音小程序真机调试报错的问题vk.callFunction
支持参数 secretType22466457
欢迎萌新和大佬来使用和共同改进框架vk.crypto.aes.decrypt
可能报解密失败的问题。微信公众号jsapi
相关接口,可实现微信公众号的快速开发。vk.notifyEventReady(eventName, data)
通知特定事件已准备就绪,并将数据传递给awaitEventReady注册的回调函数。一定会在 awaitEventReady 函数被调用之前触发。vk.awaitEventReady(eventName, callback)
等待特定事件执行后再执行相应的回调函数,如果事件已准备就绪,它会立即执行回调函数;否则,它将等待事件notifyEventReady后再执行。vk.baseDao.add
不再修改传入的 dataJson
参数的值(数据库里依然会自动添加 _add_time
字段)vk.baseDao.getTableData
的 whereJson
实现逻辑,使之更符合实际开发需求(现在强制条件不会覆盖前端条件,而是一起进行and条件)关于 vk.baseDao.getTableData
的 whereJson
的调整说明
time > 100
,则即使前端传了 time > 1000
,最终where条件也还是 time > 100
(即在强制条件内的字段条件被固定死了)time > 100
,而前端传了 time > 1000
,最终where条件是 time > 100 and time > 1000
(依然有强制条件的效果,但更灵活了,前端能在强制条件范围内自由查询)22466457
欢迎萌新和大佬来使用和共同改进框架短信发送
接口当uni-id配置成多端隔离(数组形式)会报错的bugvk.importObject
部分情况下会报错的问题$hasRole
函数的功能 传送门
vk.pubfn.timeFormat
支持显示时区,完整格式为 yyyy-MM-ddThh:mm:ssZ
22466457
欢迎萌新和大佬来使用和共同改进框架vk.baseDao.sample
在腾讯云空间最大只能取20条的bugvk.pubfn.test
新增参数 allowEmpty
控制是否允许为空 传送门
22466457
欢迎萌新和大佬来使用和共同改进框架vk.request
API,需要手动指定 uniIdToken: true
才会在请求头中自动添加 uni-id-token
vk.request
当满足响应规范时,会自动保存 token
和 userInfo
以及token失效跳登录页面vk.baseDao.setById
(根据ID判断存在则修改,不存在则添加,此为原子操作,非查询再判断)user/pub/sendEmailCode
发送邮件验证码新增针对同一个邮箱每天的次数限制(默认30次,可在函数内修改默认次数)user/pub/sendSmsCode
发送短信验证码新增针对同一个手机号每天的次数限制(默认12次,可在函数内修改默认次数)22466457
欢迎萌新和大佬来使用和共同改进框架router/service/user/pub
)vk.sessionStorage
本地会话缓存,仅h5可用vk.uploadFile
新增参数 cloudPathAsRealPath
默认为true,代表支持阿里云目录vk.uploadFile
新增参数 cloudDirectory
可以设置上传至指定的云端目录vk.request
新增 interceptor
参数(该参数仅前端调用时生效)传送门
22466457
欢迎萌新和大佬来使用和共同改进框架2.14.2
更新导致的支付宝小程序报错问题。22466457
欢迎萌新和大佬来使用和共同改进框架user/kh/addUploadRecord
细节vk.importObject
支持 importObjectOptions
参数 传送门
vk.pubfn.test(str, 'username')
检测的长度调整为3-32位22466457
欢迎萌新和大佬来使用和共同改进框架vk.pubfn.formValidate
详情
vk.crypto.aes.encrypt
和 vk.crypto.aes.decrypt
新增 mode
参数,支持切换为加密算法,方便兼容java、php等后端语言加解密 详情
22466457
欢迎萌新和大佬来使用和共同改进框架admin/system_uni/pay-orders/sys/*
vk.baseDao.selects
当getCount为false时,hasMore永远是false的bug22466457
欢迎萌新和大佬来使用和共同改进框架vk.callFunction
可能会报错的bug22466457
欢迎萌新和大佬来使用和共同改进框架vk.callFunction
可能会报错的bug22466457
欢迎萌新和大佬来使用和共同改进框架vk.openapi.weixin.security.msgSecCheck
至2.0版本 传送门 - 微信文档
微信公众号万能API调用接口
在调用部分接口时可能会报错的问题22466457
欢迎萌新和大佬来使用和共同改进框架uni_id_token
改为 uni-id-token
(新版阿里云不支持 uni_id_token
请求头)vk.openapi.weixin.h5.request
接口无法在阿里云空间中自动使用代理的问题。vk.pubfn.getOffsetTime
接口在云端月偏移量计算在可能会出错的问题。22466457
欢迎萌新和大佬来使用和共同改进框架vk.pubfn.getCommonTime()
API内部细节22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架router/index.js
代码修改(注意:如果你只使用一个router,则不修改也没有问题)
'use strict';
// 注意:此为云函数路由入口文件,请勿修改此文件代码,你自己的云函数逻辑应写在service目录下
const vk = require('vk-unicloud'); // vk-unicloud 工具包
vk.init(require('./config.js'));
exports.main = async (event, context) => {
return await vk.router({ event, context, vk });
};
修改为
'use strict';
// 注意:此为云函数路由入口文件,请勿修改此文件代码,你自己的云函数逻辑应写在service目录下
const vkCloud = require('vk-unicloud'); // 引入 vk-unicloud
const vk = vkCloud.createInstance(require('./config.js')); // 通过 vkCloud.createInstance 创建 vk 实例
exports.main = async (event, context) => {
return await vk.router({ event, context, vk });
};
22466457
欢迎萌新和大佬来使用和共同改进框架router/index.js
代码修改(注意:如果你只使用一个router,则不修改也没有问题)
'use strict';
// 注意:此为云函数路由入口文件,请勿修改此文件代码,你自己的云函数逻辑应写在service目录下
const vk = require('vk-unicloud'); // vk-unicloud 工具包
vk.init(require('./config.js'));
exports.main = async (event, context) => {
return await vk.router({ event, context, vk });
};
修改为
'use strict';
// 注意:此为云函数路由入口文件,请勿修改此文件代码,你自己的云函数逻辑应写在service目录下
const vkCloud = require('vk-unicloud'); // 引入 vk-unicloud
const vk = vkCloud.createInstance(require('./config.js')); // 通过 vkCloud.createInstance 创建 vk 实例
exports.main = async (event, context) => {
return await vk.router({ event, context, vk });
};
22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架vk.crypto.aes.encrypt
、vk.crypto.aes.decrypt
在非 router
目录结构的云函数中运行可能会报错的问题。vk.pubfn.getCurrentPage()
API 在最新版HBX上的兼容性。22466457
欢迎萌新和大佬来使用和共同改进框架vk.baseDao.getTableData
的查询条件某个字段的值指定为null时,可能会报错的问题。22466457
欢迎萌新和大佬来使用和共同改进框架vk.baseDao.getTableData
的查询条件某个字段的值指定为null时,可能会报错的问题。22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架vk.request
请求时,若本地缓存中有 uni_id_token
,则请求头会带上 uni_id_token
的值router
函数 url化后
,若没有直接传 uni_id_token
参数,则会尝试从请求头中获取 uni_id_token
22466457
欢迎萌新和大佬来使用和共同改进框架vk.baseDao.getTableData
内使用 _.geoNear
无效的问题。22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架vk.pubfn.getCommonTime
更新文档 传送门
22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架微信登录
、 微信获取openid
等接口不再返回 sessionKey
取而代之的是返回 encryptedKey
(加密后的数据,云函数解密后可获得 sessionKey
)vk.crypto.aes
用于返回给前端加密数据时的加密密钥vk.crypto.aes.encrypt
用于加密数据vk.crypto.aes.decrypt
用于解密数据// 加密数据
let encryptedKey = vk.crypto.aes.encrypt({
data: {
sessionKey: "XXXXX"
}
});
console.log('encryptedKey: ', encryptedKey)
// 解密 sessionKey 示例
let decryptedRes = vk.crypto.aes.decrypt({
data: encryptedKey, // 待解密的原文
});
console.log('decryptedRes: ', decryptedRes)
let sessionKey = decryptedRes.sessionKey;
console.log('sessionKey: ', sessionKey)
特别注意
1、本次更新需要替换 router/service/user/pub/
目录
2、如果你使用了 使用微信小程序绑定的手机号一键登录
的API,则请看此处调整代码 传送门
22466457
欢迎萌新和大佬来使用和共同改进框架微信登录
、 微信获取openid
等接口不再返回 sessionKey
取而代之的是返回 encryptedKey
(加密后的数据,云函数解密后可获得 sessionKey
)vk.crypto.aes
用于返回给前端加密数据时的加密密钥
vk.crypto.aes.encrypt
用于加密数据vk.crypto.aes.decrypt
用于解密数据// 加密数据
let encryptedKey = vk.crypto.aes.encrypt({
data: {
sessionKey: "XXXXX"
}
});
console.log('encryptedKey: ', encryptedKey)
// 解密 sessionKey 示例
let decryptedRes = vk.crypto.aes.decrypt({
data: encryptedKey, // 待解密的原文
});
console.log('decryptedRes: ', decryptedRes)
let sessionKey = decryptedRes.sessionKey;
console.log('sessionKey: ', sessionKey)
特别注意
1、本次更新需要替换 router/service/user/pub/
目录
2、如果你使用了 使用微信小程序绑定的手机号一键登录
的API,则请看此处调整代码 传送门
22466457
欢迎萌新和大佬来使用和共同改进框架微信登录
、 微信获取openid
等接口不再返回 sessionKey
取而代之的是返回 encryptedKey
(加密后的数据,云函数解密后可获得 sessionKey
)vk.crypto.aes
用于返回给前端加密数据时的加密密钥vk.crypto.aes.encrypt
用于加密数据vk.crypto.aes.decrypt
用于解密数据// 加密数据
let encryptedKey = vk.crypto.aes.encrypt({
data: {
sessionKey: "XXXXX"
}
});
console.log('encryptedKey: ', encryptedKey)
// 解密 sessionKey 示例
let decryptedRes = vk.crypto.aes.decrypt({
data: encryptedKey, // 待解密的原文
});
console.log('decryptedRes: ', decryptedRes)
let sessionKey = decryptedRes.sessionKey;
console.log('sessionKey: ', sessionKey)
特别注意
本次更新需要替换 router/service/user/pub/
目录
22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架checkUserExist
: 是否需要检测手机号对应的账号是否存在,默认false:不检测 设置为true:会检测,如果检测到用户不存在,则不发短信。(如通过手机号找回密码的业务,如果手机号都未注册,则没有必要发短信)(需要替换文件:router/service/user/pub/sendSmsCode.js
)_.geoNear
部分情况下会失效的问题。22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架type
从 reset
改为 reset-pwd
(与unicloud官方对齐)type
从 reset
改为 reset-pwd
(与unicloud官方对齐)22466457
欢迎萌新和大佬来使用和共同改进框架this.getCloudInfo()
内增加 functionName
、functionType
传送门
this.getClientInfo()
内增加 source
传送门
22466457
欢迎萌新和大佬来使用和共同改进框架uni-id
配置 removeDcloudAppid
默认false,若设置true,则注册成功后,会自动删除 dcloud_appid
字段,以达到禁用隔离不同端用户的功能。(需配合中间件registerInitFilter)vk.openapi.weixin.urllink.generate
云函数生成小程序url链接API 传送门
vk.userCenter.getWeixinMPurl
前端直接生成小程序url链接API 传送门
vk.openapi.weixin.wxacode.getUnlimited
和 vk.openapi.weixin.urlscheme.generate
支持参数 env_version
传送门
22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架_.geoNear
和 lastWhereJson
同时使用时报错的bug22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架vk.baseDao.update
vk.baseDao.updateById
vk.baseDao.updateAndReturn
API的 dataJson
参数若有 _id
,则自动忽略 _id
(因_id不可修改,原先是直接报错)22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架isCloudObject:true
的对象定义为私有对象(如 service/user/util/login_log.js
),前端禁止访问(只能被云函数/云对象 require
方式调用)。client端
默认自带 admin端
需要的函数和菜单权限表数据,方便 admin
一键绑定 client
项目(不再需要复制admin项目内的文件了)。万能连表
支持使用数组下标对应的值进行连表,如用户表根据inviter_uid的第一个值进行连表达到只查出第一个上级用户信息的效果 点击查看
22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架uni-id
至 3.3.23
vk.getVuex
当数据不存在时,返回值由 undefined
调整为 空字符串
(undefined在部分平台会有问题)22466457
欢迎萌新和大佬来使用和共同改进框架uni-id
至 3.3.23
vk.getVuex
当数据不存在时,返回值由 undefined
调整为 空字符串
(undefined在部分平台会有问题)22466457
欢迎萌新和大佬来使用和共同改进框架uni-id
新增配置参数 "preferedWebPlatform": "h5",
,用于解决因HBX3.4.14版本导致的 h5
变为 web
带来的一系列问题。(完美兼容,你无需改自己的逻辑代码了)vk.getVuex
当数据不存在时,返回值由 空字符串
调整为 undefined
22466457
欢迎萌新和大佬来使用和共同改进框架云对象
的内置api this.getClientInfo
可以获取到更多信息(uni.getSystemInfo返回的客户端信息)云函数
的 originalParam.context
可以获取到更多信息(uni.getSystemInfo返回的客户端信息)22466457
欢迎萌新和大佬来使用和共同改进框架vk.callFunction
api 点击查看详情
- 1.1、支持在云对象中请求其他云对象内的函数。
- 1.2、支持在云对象中请求云函数。
- 1.3、支持在云函数内请求其他云函数。
- 1.4、支持在云函数内请求云对象内的函数。
pub
类型的函数无需 need_user_info:true
,也能从token中解析并获取到uid(无数据库请求,不影响性能)22466457
欢迎萌新和大佬来使用和共同改进框架云对象
模式下 sys类型函数
在非admin目录下时,请求会提示 need_user_info
的问题。22466457
欢迎萌新和大佬来使用和共同改进框架云对象
模式下 sys类型函数
在非admin目录下时,请求会提示 need_user_info
的问题。22466457
欢迎萌新和大佬来使用和共同改进框架alt+左键
跳转到组件源代码文件的bug。(只需删除 pages.json
内的空 easycom
规则即可,此为造成无法识别组件的原因。)pages.json
内的空 easycom
规则即可,此为造成无法识别组件的原因。)interceptor.login
前端自定义login拦截器,在某些情况下无法正常拦截的问题。22466457
欢迎萌新和大佬来使用和共同改进框架云对象
在 service
层根目录时,pub.对象名.js
pub权限失效的问题。22466457
欢迎萌新和大佬来使用和共同改进框架vk.baseDao.selects
和 vk.baseDao.getTableData
API新增 lastSortArr
参数,用于聚合后再排序。lastWhereJson
和 lastSortArr
在数据量大的情况下是有性能问题的,(建议主表的where条件中先进行筛选,如只查本季度数据,只要主表过滤完后数据量不大,则没有性能问题。)lastWhereJson
后,返回的 total
不准确的问题。22466457
欢迎萌新和大佬来使用和共同改进框架uni-id
3.3.21javascript代码块提示
查看详情
/store/index.js
文件)22466457
欢迎萌新和大佬来使用和共同改进框架javascript代码块提示
查看详情
/store/index.js
文件)22466457
欢迎萌新和大佬来使用和共同改进框架uni-id
3.3.18vk.pubfn.getFileType(url)
根据文件url获取文件类型vk.pubfn.getFileSuffix(url)
根据文件url获取文件后缀名vk.pubfn.checkFileSuffix(url,["png", "jpg", "jpeg", "gif", "bmp", "svg"])
根据文件url判断是否满足指定后缀名中的任意1个22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架vk.openapi.weixin.uniformMessage.send
小程序转公众号消息模板接口 点击查看
vk.openapi.weixin.h5.templateMessage.send
公众号消息模板接口 点击查看
22466457
欢迎萌新和大佬来使用和共同改进框架uni-id
配置新增 tokenMaxLimit
每个账户的最大token数量,0为不限,淘汰策略:新的淘汰旧的(注意,即使设置为0,框架也会自动淘汰已过期的token)点击查看
targetTimezone
可设置默认时区(中国为8,8代表东8区,-8代表西8区)functionNameToUrl
和 isRequestDefault
点击查看
本次更新除了常规升级框架外,还需要下载最新版框架示例项目,从最新版中复制 以下文件 替换 你项目中的对应文件。
router/middleware/modules/returnUserInfoFilter.js
(此为用户登录注册全局中间件)router/service/user/pub/loginByWeixin.js
(此为微信登录云函数)22466457
欢迎萌新和大佬来使用和共同改进框架uni-id
配置新增 tokenMaxLimit
每个账户的最大token数量,0为不限,淘汰策略:新的淘汰旧的(注意,即使设置为0,框架也会自动淘汰已过期的token)点击查看
targetTimezone
可设置默认时区(中国为8,8代表东8区,-8代表西8区)functionNameToUrl
和 isRequestDefault
点击查看
本次更新除了常规升级框架外,还需要下载最新版框架示例项目,从最新版中复制 以下文件 替换 你项目中的对应文件。
router/middleware/modules/returnUserInfoFilter.js
(此为用户登录注册全局中间件)router/service/user/pub/loginByWeixin.js
(此为微信登录云函数)22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架云对象
路由模式 什么是云对象?
云对象路由模式
和 云函数路由模式
。22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架uni-id
配置属性是 h5-weixin
,非 h5
。/pages_template/uni-id/weixin/h5-weixin
https://ext.dcloud.net.cn/plugin?id=2204
点击查看
22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架vk.navigateTo
以 ./ 开头时 如:vk.navigateTo("./order-list") 判断是否需要登录不准确的问题。22466457
欢迎萌新和大佬来使用和共同改进框架app.config.js
中的 checkTokenPages
检测页面是否需要登录支持 首页(启动页)的检测22466457
欢迎萌新和大佬来使用和共同改进框架###【重要】由于uni官方限制自定义表不可以用 opendb-
和 uni-
开头,故以下数据库表名只能进行调整
opendb-components-dynamic
改为 vk-components-dynamic
opendb-global-data
改为 vk-global-data
uni-id-files
改为 vk-files
uni-id-files-categories
改为 vk-files-categories
更改表名势必会对老项目产生影响。
unicloud控制台
把表名改成对应的新表名22466457
欢迎萌新和大佬来使用和共同改进框架万能连表
支持副表外键是数组类型(只要数组内任意元素与主表外键匹配即可)点击查看
22466457
欢迎萌新和大佬来使用和共同改进框架vk.openapi.weixin.security.imgSecCheck
图片安全检测失效的问题22466457
欢迎萌新和大佬来使用和共同改进框架vk.pubfn.priceFilter
、vk.pubfn.percentageFilter
、vk.pubfn.discountFilter
部分情况下,默认值不生效的问题。vk.pubfn.string2Number
会将空字符串转为0的问题。22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架vk.baseDao
内api支持连接其他服务空间的数据库 点击查看
22466457
欢迎萌新和大佬来使用和共同改进框架await vk.pubfn.batchRun
批量循环并发执行异步函数(云函数内专用, 使用场景: 批量发送短信、邮件、消息通知等。)点击查看
22466457
欢迎萌新和大佬来使用和共同改进框架npm
方式安装的 uView
组件库,开发者可以选择自己喜欢的组件库进行开发。点击查看
vk-u-goods-sku-popup
(推荐 vk-data-goods-sku-popup
代替)点击查看
vk-u-number-box
(推荐 u-number-box
代替)vk-u-grid-button
vk-u-swiper
vk-u-verification-code
并改名为 vk-data-verification-code
如想要继续使用这些组件,可以把这些组件复制到项目根目录的 components
目录(没有则新建)(目录名和组件名需一致,如 vk-u-grid-button/vk-u-grid-button
)
22466457
欢迎萌新和大佬来使用和共同改进框架vk.pubfn.getOffsetTime
获得指定时间偏移 year年 month月 day天 hours时 minutes分 seconds秒前或后的时间戳 点击查看
22466457
欢迎萌新和大佬来使用和共同改进框架uni-id
为 3.3.9
去除重复的 context.xxx
未找到的提示语22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架vk.pubfn.base64ToFile
支持 APP 环境执行vk.pubfn.fileToBase64
支持 APP 环境执行vk.baseDao.adds
无返回值的问题。vk.baseDao.selects
当 localKey
为 a.b.c
这样的形式时会报错的问题。22466457
欢迎萌新和大佬来使用和共同改进框架vk.h5
前端API接口(H5专用的一些接口,只有H5环境时,才有该对象,不会增大小程序的包体积)vk.h5.wx
(wx为公众号js_sdk接口) 微信小程序环境内js_sdk文档 微信公众号环境内js_sdk文档
vk.navigateToHome
跳转到首页 (app.config.js 的 index.url)vk.navigateToLogin
跳转到登录页 (app.config.js 的 login.url)vk.callFunctionUtil.updateRequestGlobalParam
全局公共请求参数的一处逻辑问题。22466457
欢迎萌新和大佬来使用和共同改进框架vk.h5
前端API接口(H5专用的一些接口,只有H5环境时,才有该对象,不会增大小程序的包体积)vk.h5.wx
(wx为公众号js_sdk接口) 微信小程序环境内js_sdk文档 微信公众号环境内js_sdk文档
vk.navigate.navigateToHome
跳转到首页vk.navigate.navigateToLogin
跳转到登录页vk.callFunctionUtil.updateRequestGlobalParam
全局公共请求参数的一处逻辑问题。22466457
欢迎萌新和大佬来使用和共同改进框架vk.h5
前端API接口(H5专用的一些接口,只有H5环境时,才有该对象,不会增大小程序的包体积)vk.h5.wx
(wx为公众号js_sdk接口) 微信小程序环境内js_sdk文档 微信公众号环境内js_sdk文档
vk.navigate.navigateToHome
跳转到首页vk.navigate.navigateToLogin
跳转到登录页vk.callFunctionUtil.updateRequestGlobalParam
全局公共请求参数的一处逻辑问题。22466457
欢迎萌新和大佬来使用和共同改进框架vk.pubfn.hidden(str, first, last);
的 first
和 last
默认为0 点击查看
22466457
欢迎萌新和大佬来使用和共同改进框架template
模板中使用 vk.pubfn
(可以用简写法 $fn
代替 vk.pubfn
)22466457
欢迎萌新和大佬来使用和共同改进框架vk.userCenter
接口细节,现在参数 loading:true
或 loading:false
均可以关闭 loading提示框
22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架router/util/pubFunction.js
内的代码出现编译错误时,控制台能打印编译错误信息。22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架vk.pubfn.string2Number
新增第二位参数option/**
* 将能转成数字的字符串转数字(支持字符串、对象、数组)
* @param {Any} obj
* @param {Object} option 哪些格式需要排除
* 默认排除
* mobile:true 手机号,如 15200000001
* idCard:true 身份证,如 330154202109301214
* startFrom0:true 第一位是0,且长度大于1的,同时第二位不是.的字符串 如 01,057189101254
*/
vk.pubfn.string2Number(obj, option);
22466457
欢迎萌新和大佬来使用和共同改进框架vk.pubfn.string2Number
将能转成数字的字符串值转Number类型(支持字符串、对象、数组)(深度遍历)vk.callFunctionUtil.updateRequestGlobalParam
设置全局请求参数 regExp
参数支持数组(满足数组内任意正则即算匹配) 点击查看
22466457
欢迎萌新和大佬来使用和共同改进框架pages_template/openapi/h5-weixin/h5-weixin
pages_template/uni-id/weixin/weixin
公众号配置文件在 uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json
"h5-weixin": {
"oauth": {
"weixin": {
"appid": "微信公众号appid",
"appsecret": "微信公众号appsecret"
}
}
},
22466457
欢迎萌新和大佬来使用和共同改进框架vk.pubfn.snake2camelJson
对象内的属性名 - 蛇形转驼峰 点击查看
vk.pubfn.camel2snakeJson
对象内的属性名 - 驼峰转蛇形 点击查看
vk.pubfn.snake2camel
字符串 - 蛇形转驼峰 点击查看
vk.pubfn.camel2snake
字符串 - 驼峰转蛇形 点击查看
22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架uni-id
至 3.3.6 (修复邀请码可能重复的Bug)22466457
欢迎萌新和大佬来使用和共同改进框架user/kh/updateUser
问题。22466457
欢迎萌新和大佬来使用和共同改进框架vk.baseDao.updateAndReturn
API 点击查看
vk.pubfn.getDayOffsetStartAndEnd
获得相对当前时间的偏移 count 天的起止日期(日的开始和结束) 点击查看
vk.pubfn.getMonthOffsetStartAndEnd
获得相对当前时间的偏移 count 月的起止日期(月的开始和结束) 点击查看
vk.pubfn.getYearOffsetStartAndEnd
获得相对当前时间的偏移 count 年的起止日期(年的开始和结束) 点击查看
vk.pubfn.sleep
进程等待(主要用于在云函数中需要故意等待几秒的情况)点击查看
app.config.js
新增参数 globalErrorCode
可以修改全局异常的提示信息 点击查看
javascript代码块提示.json
最近新增的api的代码提示 点击查看
vk.baseDao.selects
新增参数addFields
点击查看
vk.pubfn.timeFormat
等API,当参数time为字符串时间戳时的特殊处理 点击查看
22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架uni-id
配置隔离导致的微信vk.openapi.weixin
API 兼容性问题。vk.pubfn.isArray
判断变量是否是数组类型vk.pubfn.isObject
判断变量是否是对象类型22466457
欢迎萌新和大佬来使用和共同改进框架uni-id
至 3.3.3
22466457
欢迎萌新和大佬来使用和共同改进框架uni-id
至 3.3.2
22466457
欢迎萌新和大佬来使用和共同改进框架vk.callFunction
支持请求其他服务空间的云函数const myCloud = uniCloud.init({
provider: 'aliyun',
spaceId: 'xxxx-yyy',
clientSecret: 'xxxx'
});
vk.callFunction({
url: 'template/db_api/pub/count',
title:'请求中...',
unicloud: myCloud,
success(data) {
console.log(data);
}
});
22466457
欢迎萌新和大佬来使用和共同改进框架vk.callFunction
支持请求其他服务空间的云函数const myCloud = uniCloud.init({
provider: 'aliyun',
spaceId: 'xxxx-yyy',
clientSecret: 'xxxx'
});
vk.callFunction({
url: 'template/db_api/pub/count',
title:'请求中...',
unicloud: myCloud,
success(data) {
console.log(data);
}
});
22466457
欢迎萌新和大佬来使用和共同改进框架javascript代码块提示
(有部分错误的问题:少,号的问题)(在编辑器输入dao.即可弹出代码提示)点击查看详情
22466457
欢迎萌新和大佬来使用和共同改进框架javascript代码块提示
(在编辑器输入dao.即可弹出代码提示)点击查看详情
22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架createInstance is undefined
的问题。22466457
欢迎萌新和大佬来使用和共同改进框架lastWhereJson
而导致getCount
错误的问题。22466457
欢迎萌新和大佬来使用和共同改进框架lastWhereJson
而导致getCount
错误的问题。22466457
欢迎萌新和大佬来使用和共同改进框架config
公共模块,升级为uni-config-center
模式 点击查看升级教程
config
公共模块,升级为uni-config-center
模式 点击查看升级教程
config
公共模块,升级为uni-config-center
模式 点击查看升级教程
22466457
欢迎萌新和大佬来使用和共同改进框架22466457
欢迎萌新和大佬来使用和共同改进框架user/kh/getMenu
云函数获取菜单错误的bug。opendb-global-data
表expired_at
索引设置错误 "MgoIsUnique": true 改为 "MgoIsUnique": false(需要把索引删除后重新创建,选择非唯一索引)22466457
欢迎萌新和大佬来使用和共同改进框架vk.pubfn.timeFormat
若参数不符合规则,则原值显示。vk.pubfn.random
新增第三个参数arr
(产生的随机数不会和此数组的任意一项重复) 点击查看
22466457
欢迎萌新和大佬来使用和共同改进框架vk.baseDao.add
因hbx 3.1.18版本导致的本地运行时 _add_time_str
错误的问题。22466457
欢迎萌新和大佬来使用和共同改进框架onActionIntercepted
(被中间件拦截时执行) 和 onActionError
(云函数执行异常时执行) 类型中间件 点击查看
timeFilter
、dateDiff
能正确识别10位数时间戳和13位时间戳。点击查看
vk.baseDao.sample
支持 fieldJson
参数 点击查看数据API
返回树状结构
时最后一级子节点没有继承主表foreignDB
属性的bug。查询返回树状结构文档
vk.callFunctionUtil.uploadFile
自动识别文件类型,无需传fileType
参数22466457
欢迎萌新和大佬来使用和共同改进框架vk.callFunctionUtil.uploadFile
新增参数 file
,needSave
若needSave=true,则文件URL会保存到数据库。(会显示在admin端的素材管理中)vk.baseDao.selects
和 vk.baseDao.select
新增两个属性getOne
、 getMain
点击查看详情
vk.callFunctionUtil.uploadFile
上传视频时后缀名可能会错误的问题。云函数URL化
路由模式下,URL重写支持只允许部分云函数可被访问。(可以做到只暴露指定的API接口,增加URL化后的安全性)router/util/urlrewrite.js
文件配置内容如下 点击URL重写规则
/**
* URL重写
* 如让 https://xxx.bspapp.com/http/router/aaa 指向云函数 template/db_api/pub/select
*/
module.exports = {
"rule":{
"^findById/(.+)": "template/db_api/pub/findById?_id=$1",
"^aaa$": "template/db_api/pub/select"
},
"config":{
// 当设置为true时,只有符合url重写规则内的云函数才可以被url化访问。
"accessOnlyInRule":false
}
};
22466457
欢迎萌新和大佬来使用和共同改进框架vk.callFunctionUtil.uploadFile
新增参数 file
,needSave
若needSave=true,则文件URL会保存到数据库。(会显示在admin端的素材管理中)vk.baseDao.getTableData
默认排序规则调整为_id
降序,之前是_add_time
降序vk.baseDao.getTableData
和 vk.baseDao.selects
连表查询逻辑。22466457
欢迎萌新和大佬来使用和共同改进框架####【优化】vk.baseDao
API的查询性能。
22466457
欢迎萌新和大佬来使用和共同改进框架vk-unicloud-admin
开发框架已正式上线vk-unicloud
系列如下,可以满足开发完整系统。client端
框架地址:https://ext.dcloud.net.cn/plugin?id=2204
点击查看
admin端
框架地址:https://ext.dcloud.net.cn/plugin?name=vk-unicloud-admin
点击查看
client端
框架文档:https://gitee.com/vk-uni/vk-uni-cloud-router/wikis/pages?sort_id=2912167&doc_id=975983
点击查看
admin端
框架文档:https://gitee.com/vk-uni/vk-uni-cloud-router/wikis/pages?sort_id=4003875&doc_id=975983
点击查看
22466457
欢迎萌新和大佬来使用和共同改进框架uni_modules
版本 点击查看升级指南
pages-dev.json
机制,写法与pages.json
相同,但里面的页面只有运行(开发)环境时才会被HBX打包,发行(正式)环境下不会被HBX打包进去。点击查看详情
可以将一些测试页面写在 `pages-dev.json`内,这些测试页面在正式发布时是不会被HBX打包到源码里的。
npm install @alicloud/pop-core
)点击查看详情
util/smsUtil.js
(使用新的vk.system.smsUtil.sendSms
聚合短信发送接口,且比之前的写法更优雅)uni_modules
版本 点击查看升级指南
云函数url化
支持以纯链接形式访问路由后的云函数 如: https://xxx.bspapp.com/http/router/client/user/pub/findGoodsInfo?id=1
云函数url化
支持URL重写 点击查看URL重写详情
vk.selects
支持主表外键是数组的情况下(如uni-id-users
表的role
字段)连表查出roleList
点击查看场景5
uni_modules
版本 点击查看升级指南
vk.selects
支持返回树状结构 点击查看详情
vk.pubfn.deepClone
深度克隆(与vk.pubfn.copyObject
的区别:可以克隆函数)vk.setData
内部逻辑使用帮助/代码快捷提示/javascript代码块提示.json
代码块有更新 (将文件内的代码复制到 hbx 工具 - 代码块设置 - javascript代码块)uni_modules
版本 点击查看升级指南
console.log
在小程序端可能会无法打印出代码所在位置的问题。vk.request
新增参数needOriginalRes
默认为false
,若为true
,则会返回原始数据(包含请求头等数据)vk.request
默认的header
与官方对其(之前默认是{"content-type": "application/json; charset=UTF-8"}
)uni-id
模式调整为:兼容单实例多并发模式uni_modules
版本 点击查看升级指南
vk.baseDao.selects
支持_.geoNear
API(将记录按照离给定点从近到远输出。)点击查看万能连表场景4
官方原生语法中,连表查询和非连表查询在使用`_.geoNear`时用较大差别;
而 vk.baseDao.selects(万能连表)写法跟 vk.baseDao.select(单表查询) 写法保持统一,使上手更简单。
// 注意: 必须以msg:为前缀,否则框架无法识别(只支持字符串)
throw new Error("msg:这里是错误的提示");
app.config.js
新增 tokenExpiredAutoDelete
属性,默认true
若设为false
,则token
失效时,依然保留前端的token缓存
。uni_modules
版本 点击查看升级指南
百度开放平台API接口
(营业执照识别、身份证识别等) 点击查看
kh
目录下的函数默认会获取 userInfo
(当前登录用户信息),如果此云函数不需要用户信息,可以在前端多传一个参数need_user_info:false
可以减少一次数据库查询(加快响应速度)(快100ms左右) 点击查看
returnUserInfoFilter
过滤器的内部逻辑vk.callFunction
新增参数 needAlert
(默认为true) 来代替 noAlert
(默认为false) 二选一即可(建议后面都使用needAlert
参数,它更语义化)uni_modules
版本 点击查看升级指南
vk.pubfn.timeUtil.isLeapYear
判断是否是闰年vk.pubfn.timeUtil.isQingming
判断是否是清明节/**
* 判断是否是闰年
* @params {Number | Date} year 需要计算的年份或时间,默认使用当前时间的年份
*/
vk.pubfn.timeUtil.isLeapYear(2021);
/**
* 判断是否是清明节
* @params {Object} date 时间对象
*/
vk.pubfn.timeUtil.isQingming(new Date());
uni_modules
版本 点击查看升级指南
app
环境中直接保存用户微信昵称和头像的使用示例。/pages_template/uni-id/weixin/weixin
vuex
储存值为0时,会变成空字符串
的问题。uni_modules
版本 点击查看升级指南
vk.userCenter.code2SessionWeixin
的内部逻辑。使之可以正确的和vk.userCenter.loginByWeixinPhoneNumber
搭配使用uni_modules
版本 点击查看升级指南
token
时,缓存时间错误的问题。vk.callFunctionUtil.uploadFile
上传视频返回.png
的问题 点击查看详情
vk.userCenter.loginByUniverify
示例页面:/pages_template/uni-id/univerify/univerify
uni_modules
版本 点击查看升级指南
vuex
后,移除了名为uni_id_user_info
的本地缓存(重复了)(userInfo
使用vk.getVuex('$user.userInfo')
获取)token
时,没有正确使用缓存的问题。vk.userCenter.loginByUniverify
示例页面:/pages_template/uni-id/univerify/univerify
uni_modules
版本 点击查看升级指南
uni.vk
来使用 vk
对象内的APIapp.config.js
新增参数 checkSharePages
控制页面是否可以被小程序分享console.log
将不会打印任何日志。若发行模式下需要强制打印,可用 `vk.log` 代替 `console.log`
uni_modules
版本 点击查看升级指南
vk.callFunctionUtil.uploadFile
支持前端直传至阿里云oss
点击查看详情
app.config.js
新增 myfn
参数,可用来拓展自定义公共函数 点击查看详情
uni_modules
版本 点击查看升级指南
vk.openapi.weixin.subscribeMessage.send
微信小程序发送订阅消息 点击查看详情
示例页面:/pages_template/openapi/weixin/sendMessage/sendMessage
vk.baseDao.add
和 vk.baseDao.adds
新增参数 cancelAddTime
为true
,则不会有_add_time
和_add_time_str
字段生成vk.baseDao.add
和 vk.baseDao.adds
支持添加自定义 _id
vk.setVuex
和 vk.setData
的赋值逻辑需替换:/store/index.js 文件
uni_modules
版本 点击查看升级指南
vuex
的使用方式有较大更新。(有性能提升)点击查看详情
uni_modules
版本 点击查看升级指南
vk.baseDao.deleteById
会报vk is not defined
的错误。config
的默认passwordSecret
和tokenSecret
调整为与uni-id
默认config
一致`tokenSecret`一致的好处:兼容clientDB
注意:如您目前的项目已上线,请谨慎修改passwordSecret(tokenSecret已上线的项目也可以修改)。
uni_modules
版本 点击查看升级指南
vk.baseDao.selects
支持副表与副表的副表进行连表 点击查看详情
1.1、支持无限张副表和主表进行连接(横向无限张表)
1.2、支持副表与副表的副表进行连接(竖向无限层连接)
uni_modules
版本 点击查看升级指南
uni_modules
版本,下次更新框架只需要在hbx编译器中一键更新。vk.userCenter.loginByWeixinPhoneNumber
前端可以使用微信小程序一键进行手机号登录vk.userCenter.getPhoneNumber
前端一键获取微信小程序绑定的手机号vk.openapi.weixin.decrypt.getPhoneNumber
云函数解析微信小程序绑定的手机号vk.userCenter.getWeixinMPqrcode
前端一键生成带参数的小程序码vk.userCenter.getWeixinMPscheme
前端一键生成带参数的小程序scheme码(支持从手机短信跳转到小程序)middleware/modules/returnUserInfoFilter
中间件的处理逻辑。javascript代码块提示.json
输入vk.
可以快速提示代码块 根目录/使用帮助/代码快捷提示
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。