- 如何再添加多个状态?
如何在此条件处再添加而外的条件? [图片]
2022-07-25 - 云开发 CMS内容管理登录不上,差不多两个星期了,登录不进去,输入账号密码又跳回登录界面,一直重复
[图片]
2022-07-25 - 小程序云开发如何导出超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-21 - 小程序报错提示“forEach”未定义?
如图所示,下拉页面触发刷新,刷新的过程连带一项任务刷新,但是报错未定义“forEach”,我该怎么修改? js: onPullDownRefresh: function () { this.getGoodsList() }, getGoodsList:function(e){ wx.showLoading({ title: '刷新数据中...', }) db.collection('Orders').where({ qqaccount: this.data.fuzhi[0].qqaccount }).get({ success:res=>{ let fuzhi = res.data this.setData({ fuzhi:fuzhi }) wx.stopPullDownRefresh() }, complete:()=>{ wx.hideLoading() } }) this.transfrom() }, //校验经验,根据 当前经验 判断显示当前对应的 等级 及 等级图标 transfrom(fuzhi){ fuzhi.forEach(element => { if (element.experience <= 456){ element.level = '列兵1' element.pic = 'url' }else if (element.experience <= 8026911){ element.level = '大校 1' element.pic = 'url' }else if (element.experience <= 8481771){ element.level = '大校 2' element.pic = 'url' } } [图片]
2022-07-19 - 如何根据数值内容,显示对应的图标和等级?
如根据经验在多少的范围内是某个等级和图标? 0-100经验 = 新手 + 新手图标, 101-200经验 = 初级 + 初级图标 ,201-300经验 = 中级 + 中间图标,请教各位大神我应该怎么写? [图片]
2022-07-16 - 小程序进度条如何以我的某个值为主显示百分比呢?
如图所示,如何以我设的经验值做进度条的百分比?我应该怎么写?js我应该怎么写? [图片]
2022-07-15 - 云开发怎么根据查询条件查询到的内容,把整条数组数据传值到下一页面?
"qqaccount"是账号,我输入对应账号查找,查询到后将该账号信息全部内容传值到下一页面,我应该如何修改? ToSearch: function(e) { if(this.data.search == '') { wx.showToast({ title: '请输入账号', icon:'error' }) return } if(this.data.search.length<5) { wx.showToast({ title: '请输入正确账号', icon:'error' }) return } wx.showLoading({ title: '努力加载中', }) db.collection('Orders').where({ qqaccount: this.data.search }).get().then(res => { if(res.data.length != 0) { this.setData({ shangpinbiao: res.data }) wx.reLaunch({ url: '../dingdan/dingdan' }) }else { wx.showToast({ title: '未找到账号', icon: 'none' }) } wx.hideLoading() }) }, [图片]
2022-07-14 - 云开发,通过我登录的账户把对应账户的所有信息传入之后页面?
现在传入单个值可以,如何将对应登录的账户所有值传入之后页面? js: //自定义变量,存储用户输入的账号 let account = '' //自定义变量,存储用户输入的密码 let password = '' Page({ data:{ code:'' }, formSubmit: function(e){ console.log(e.detail.value) if(e.detail.value.code=''){ wx.showToast({ title: '请输入验证码', icon:'none' }) } //将输入的验证码和生成的验证码都转为全大写字母,然后再比较是否相等 else if(e.detail.value.code.toUpperCase()===this.code.toUpperCase()){ console.log('验证码输入正确') } }, changeCode(e){ var code; code = ''; var codeLength = 4; var random = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',); for (var i = 0; i < codeLength; i++){ var index = Math.floor(Math.random() * 62); code += random[index]; } this.setData({ code: code }) }, //获取输入验证码 makecodeInput: function (e) { console.log("用户输入的验证码",e.detail.value); this.setData({ makecode: e.detail.value }) }, onLoad: function(options) { //刚进入页面随机先获取一个 this.changeCode() console.log(this.data.code) }, //获取用户输入的账号、密码 getAccount(e){ console.log("用户输入的账号",e.detail.value); account = e.detail.value }, getPassword(e){ console.log("用户输入的密码",e.detail.value); password = e.detail.value }, //登录功能 loadByAccount(e){ //校验账号 if(account.length<4){ wx.showToast({ title: '账号至少4位', icon:"none" }) return } if(password.length<1){ wx.showToast({ title: '密码不能为空', icon:"none" }) return } if(!this.data.makecode){ wx.showToast({ title: '验证码不能为空', icon:"none" }) return } if(this.data.makecode.toUpperCase() != this.data.code.toUpperCase()){ wx.showToast({ title: '验证码不正确', icon: 'error', duration: 800, }) this.changeCode() return } //登录功能的实现 wx.cloud.database().collection("users") .where({ Account:account }) .get() .then(res=>{ console.log("获取账号成功",res); //校验密码长度 if(password.length<4){ wx.showToast({ title: '密码至少4位', icon:"none" }) return } //校验密码是否等于数据库中的密码 if(password==res.data[0].Password){ console.log("登录成功",res); //显示登录成功提示 wx.showToast({ title: '登录成功', icon:"success", duration:2000, //提示2秒后自动跳转到首页 success:function(){ setTimeout(function(){ wx.navigateTo({ url: '../index/index?account='+account, //将 account 传入index }) },1000) } }) }else{ console.log("密码不正确,登录失败"); wx.showToast({ title: '密码不正确', icon:"none" }) this.changeCode() } }) .catch(err=>{ console.log("获取账号失败",err); wx.showToast({ title: '账号不存在', icon:"none" }) }) }, })
2022-07-08 - 验证报错 Cannot read property 'detail' of un?
如图所示 js: formSubmit: function(e){ if(e.detail.value.code=''){ wx.showToast({ title: '请输入验证码', icon:'none' }) } //将输入的验证码和生成的验证码都转为全大写字母,然后再比较是否相等 else if(e.detail.value.code.toUpperCase()==this.code.toUpperCase()){ console.log('验证码输入正确') } }, [图片]
2022-07-07 - 云开发上传照片如何实现照片组上传?
目前是只能单次上传,多次上传不行,请教一下问题出自哪? js: //选择上传图片 upload(){ let that=this; wx.chooseImage({ count: 4, //默认9 sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有 sourceType: ['album'], //从相册选择 success: (res) => { if (this.data.wxzpsc.length != 0) { this.setData({ wxzpsc: this.data.wxzpsc.concat(res.tempFilePaths) }) } else { this.setData({ wxzpsc: res.tempFilePaths }) } that.addBtn(res.tempFilePaths[0]); } }); }, //提交表单添加到数据库 addBtn: function(e){ let that=this; if(that.data.wxzpsc.length > 0){//1、判断是否有图片 that.setData({ //3、给上传图片初始化一个长度,上传成功的数组和已有的数组一致 images_success:that.data.wxzpsc }) that.uploadImage(0)//2、有图片时先上传第一张 } }, uploadImage:function(index){ let that=this wx.cloud.uploadFile({//上传至微信云存储 cloudPath:'wxzpsc/' + new Date().getTime() + "_" + Math.floor(Math.random()*1000) + ".jpg",//使用时间戳加随机数给图片命名 filePath:that.data.wxzpsc[index],// 本地文件路径 success: res => { // 返回文件 ID console.log("上传成功",res.fileID) that.data.images_success[index] = res.fileID; that.data.images_success_size = that.data.images_success_size+1; if(that.data.images_success_size == that.data.wxzpsc.length){ console.log("上传成功:", that.data.images_success) } else { that.uploadImage(index+1) } }, fail: err =>{ that.setData({ images_success:[], images_success_size:0 }) wx.showToast({ icon:'none', title: '上传失败,请重新上传', }) } }) },
2022-06-30