initAppData里面是什么?方便给一下代码片段吗
setData修改了数据,页面为什么没有更新?// app.js initAppData() { return new Promise((resolve, reject) => { this.getVersion().then(res => { // 版本 console.log('版本:' + this.globalData.appletsVersion) if (res) this.getLocation().then(res => { // 经纬度 console.log('经纬度:' + this.globalData.location.latitude + ',' + this.globalData.location.longitude) if (res) this.getStoreList().then(res => { // 门店 console.log('门店:' + this.globalData.storeInfo.storeName) resolve(true) }) }) }) }) }, getLocation() { let that = this return new Promise((resolve, reject) => { wx.getLocation({ type: "wgs84", success(res) { var location = { latitude: res.latitude, longitude: res.longitude } that.globalData.location = location resolve(true) }, fail(err) { // 获取经纬度失败 reject(err) } }) }) }, //获取门店列表 getStoreList() { return new Promise((resolve, reject) => { resolve(true) // 涉及到接口调用,先直接resolve(true) }) }, // 获取小程序版本 getVersion() { return new Promise((resolve) => { resolve(true) // 涉及到接口调用,先直接resolve(true) }) }, // index.js const app = getApp() onShow() { app.initAppData().then(res => { this.setData({ // 修改 showDialog: true, }) console.log(this.data.showDialog) }) },
2022-07-25看描述像异步的问题。是不是第一次,在取数据库数据,并存到缓存之前,页面已经加载了。 把取数据的操作改成同步试试?
自定义tabbar如何实现动态绑定项?业务需要根据不同用户显示不同的tabbar项,现在的做法是登录时调用接口去数据库找当前用户配置的tabbar项存到缓存里,然后自定义tabbar直接显示缓存中的项,但是实际表现是用户第一次登录后tabbar加载是空并不能取到缓存中的数据,等到下一次打开小程序时才能读取到缓存中的数据显示tabbar项,这种情况需要如何解决?
2022-07-25红色请求的JSON格式有问题。正确格式的Json开发者工具会标颜色的,你这个识别成了字符串。
pc小程序JSON自动转译问题?[图片] 红色为请求前JSON串,绿色为返回JSON串。后端没有转译处理,目前此小程序无法在PC端使用
2022-07-25在JSON里配置可以吗?
web-view不能自定义顶部标题?设置后无效 wx.setNavigationBarTitle({ title:'aaa', })
2022-07-25有一个全局对象 _wxConfig [图片]
求问,如何获取app.json 里面的 tabBar对象?换句话说我想在小程序页面输出全局的app.json这个配置对象,能不能拿到?
2022-07-25wx.navigateTo 最多之前10次。 可以根据页面栈清空,也可以用redirect,reLanuch。
小程序左上角返回点击没反应wx.navigateTo 多次点击左上角返回,调用的wx.navigateTo, 次数过多后就没有反应了
2022-07-21后台写个统计的接口,进入小程序后根据带不带参数发送请求、
请问如何统计粉丝扫描了公众号带参数二维码?请问我生成了一个带“scene_str: fatasy”参数的公众号二维码,我应该怎么统计有多少人是通过这个二维码扫描进入或者关注公众号的?
2022-07-21导出的excel只有100条数据?
小程序云开发如何导出超100条数据的excl?现在是云函数只能查询到100条,小程序js查询20条,如何修改超100条数据以上???急! 云函数: const cloud = require('wx-server-sdk') //这里最好也初始化一下你的云开发环境 cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV, }) //操作excel用的类库 const xlsx = require('node-xlsx'); // 云函数入口函数 exports.main = async(event, context) => { try { let applydata = getdata.data; //1,定义excel表格名 let dataCVS = event.fileName; //2,定义存储数据的 let alldata = []; let row = ['时间', '当前状态', '姓名', '性别', '手机号', '身份证', '是否开车入厂', '车牌号','确认配合完成以下工作','体温','来源地区','来源地详细','来访事宜','健康码和行程码','入厂时间','入厂放行值班人','离厂时间','离厂校验值班人']; //表属性 alldata.push(row); for (let key in applydata) { let arr = []; arr.push(applydata[key].createTime); arr.push(applydata[key].xm_zt); arr.push(applydata[key].name); arr.push(applydata[key].xm_xb); arr.push(applydata[key].phone); arr.push(applydata[key].xm_sfz); arr.push(applydata[key].sfkcrc); arr.push(applydata[key].cph); arr.push(applydata[key].wcgzph); arr.push(applydata[key].xm_tw); arr.push(applydata[key].xm_lyd); arr.push(applydata[key].xm_lydxx); arr.push(applydata[key].xm_lfsy); arr.push(applydata[key].scjkm); arr.push(applydata[key].RCcreateTime); arr.push(applydata[key].RCname); arr.push(applydata[key].LCcreateTime); arr.push(applydata[key].LCname); alldata.push(arr) } //3,把数据保存到excel里 var buffer = await xlsx.build([{ name: "mySheetName", data: alldata }]); //4,把excel文件保存到云存储里 return await cloud.uploadFile({ cloudPath: dataCVS, fileContent: buffer, //excel二进制文件 }) } catch (e) { console.error(e) return e } } JS: const db = wx.cloud.database() const _ = db.command import { moment } from '../../utils/moment'; Page({ /** * 页面的初始数据 */ data: { index: "0", picker: ['全部', '近三天', '近七天', '近十五天'], isSelect: false, exportData:"", fileName:"来访登记统计表" }, PickerChange(e) { console.log(e); this.setData({ index: e.detail.value }) }, one(e) { let repTime = e.detail.value.replace(/-/g, '/'); console.log("返回时间:" + repTime); //转换格式 let timeTamp = Date.parse(repTime); //转时间戳 let one = timeTamp this.setData({ repTime, one }) }, two(e) { let repTime2 = e.detail.value.replace(/-/g, '/'); console.log("返回时间:" + repTime2); //转换格式 let timeTamp = Date.parse(repTime2); //转时间戳 let two = parseInt(timeTamp + 86400000) this.setData({ repTime2, two }) }, changeSelect(e) { this.setData({ isSelect: e.detail.value }) }, buttonClick() { let that = this; //判断开关是否打开 if (this.data.isSelect) { //将选择的时间转为时间戳 let one = parseInt(that.data.one) let two = parseInt(that.data.two) console.log(one, two) //判断是否选中时间,没有选中转为时间戳是NaN if (isNaN(one) || isNaN(two)) { wx.showToast({ title: '起始时间或终止时间不能为空', icon: "none" }) } else { db.collection('seamild_lfdj').where({ timestamp: _.and(_.gte(one), _.lte(two)) }).get().then(res => { console.log(res) this.setData({ exportData:res.data }) this.exportData(); }) } } else { //如果没有打开开关,那么就按条件选择筛选 //当前选中的下标 let selectValue = this.data.index; console.log(selectValue) //获取当前时间并转为时间戳 let nowDate = Date.parse(moment("YYYY-MM-DD").replace(/-/g, '/'))+86400000; //声明起始时间,最近几天就用当前时间减去天数 let pastDate = ""; console.log(nowDate,"nowDate") //判断选中的条件 switch (selectValue) { case "0": //查询全部的查询语句 db.collection('seamild_lfdj').get().then(res => { console.log(res) this.setData({ exportData:res.data }) this.exportData(); }) break; case "1": pastDate = nowDate - (86400000*3); console.log(pastDate,"pastDate"); break; case "2": pastDate = nowDate - (86400000*7); console.log(pastDate,"pastDate"); break; case "3": pastDate = nowDate - (86400000*15); console.log(pastDate,"pastDate"); break; } //近三天、近七天、近十五天的查询语句 if(pastDate != ""){ db.collection('seamild_lfdj').where({ timestamp: _.and(_.gte(pastDate), _.lte(nowDate)) }).get().then(res => { console.log(res) this.setData({ exportData:res.data }) this.exportData(); }) } } }, //导出方法,单独拿出来,放一起并发执行,获取不到数据 exportData(){ console.log(this.data.exportData,"exportData") let that = this; if(this.data.exportData != null && this.data.exportData.length > 0){ if(this.data.fileName != "" && this.data.fileName.length > 0){ wx.showLoading({ title: '正在导出' }) wx.cloud.callFunction({ name: "exportExcel", data:{ exportData:this.data.exportData, fileName:this.data.fileName+".xls" }, success(res) { console.log("读取成功", res.result.fileID) wx.hideLoading(); wx.showToast({ title: '导出成功,粘贴到浏览器下载', icon:"none" }) that.setData({ exportDateTime:moment("YYYY-MM-DD hh:mm:ss") }) that.getFileUrl(res.result.fileID); // that.copyFileUrl() }, fail(res) { console.log("读取失败", res) } }) // 刷新当前页面 that.onLoad(); console.log("页面重载") }else{ wx.showToast({ title: '文件名不能为空', icon:"none" }) } }else{ wx.showToast({ title: '当前选择无数据,无法导出', icon:"none" }) } }, //获取云存储文件下载地址,这个地址有效期一天 getFileUrl(fileID) { let that = this; wx.cloud.getTempFileURL({ fileList: [fileID], success: res => { // get temp file URL console.log("文件下载链接", res.fileList[0].tempFileURL) that.setData({ fileUrl: res.fileList[0].tempFileURL }) }, fail: err => { // handle error } }) }, //复制excel文件下载链接 copyFileUrl() { let that = this wx.setClipboardData({ data: that.data.fileUrl, success(res) { wx.getClipboardData({ success(res) { console.log("复制成功", res.data) // data } }) } }) }, inputFileName(e){ this.setData({ fileName:e.detail.value }) }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { //todo 当前的年月日 存入appdata wxml {{nowdata}} let enddate = moment('YYYY-MM-DD'); this.setData({ enddate: enddate }) }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { }, })
2022-07-21CSS写的,可以参考一下:https://developers.weixin.qq.com/s/SetM3UmK7zA8
求问这个聊天图的样式在微信开发者工具里如何实现?[图片]
2022-07-21开发者工具没号码啊,真机试试。。
微信小程序获取用户手机号getPhoneNumber返回undefined怎么解决?微信小程序中按键获取用户手机号getPhoneNumber返回undefined,也不会出现用户许可提示界面。 代码是示例代码。 WWXML代码 <button type="primary" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">获取手机号</button> js代码 getPhoneNumber (e) { console.log("获取手机号按键") console.log(e.detail.code) // this.setData({motto:e.detail.code}) }, [图片]
2022-07-20