首页
免费后端云服务
关于
推荐
免费图床源码
Search
1
小程序后端入门系列视频教程【一-微信开发工具介绍】
9,730 阅读
2
微信小程序三级联动之多列选择器
9,615 阅读
3
小程序开发免费后端之神秘利器分享
9,543 阅读
4
Golang-开发企业级资源权限管理【第一步表设计】-1
9,093 阅读
5
学会微信服务端开发第一步
8,985 阅读
日常记录
日常
随笔
Bmob后端云
从零开始学物联网
Serverless实战驾校小程序
心邮
Serverless
向量数据库
登录
Search
Magic
累计撰写
124
篇文章
累计收到
157
条评论
首页
栏目
日常记录
日常
随笔
Bmob后端云
从零开始学物联网
Serverless实战驾校小程序
心邮
Serverless
向量数据库
页面
免费后端云服务
关于
推荐
免费图床源码
搜索到
124
篇与
的结果
2019-03-22
微信小程序三级联动之多列选择器
有些时候,三级联动业务场景并不只是全国地区选择,可能还涉及到自定义分类的三级联动,这时就需要使用微信的多列选择器。如果只是一列字段,或者每次拖动一次都去服务端取,会比较容易。 如果想一次定义好json,关联数据相对比较复杂,此案例json结构如下:效果如下实现过程1.WXML(这是一段微信官方文档的代码)<view class="section"> <view class="section__title">普通选择器</view> <picker bindchange="bindPickerChange" value="{{index}}" range="{{array}}"> <view class="picker"> 当前选择:{{array[index]}} </view> </picker> <picker bindchange="bindPickerChange1" value="{{index}}" range="{{array}}"> <view class="picker"> 当前选择:{{array[index]}} </view> </picker> </view> 2.js 逻辑部分 // 第一步 data 定义数据 ssl:地区json //第二步 设置默认三级联动数据 Onload //获取省市区json var ssls = this.data.ssl; //定义对应变量 var sheng = []; var shi = []; var qu = []; for (var i in ssls) { sheng.push(ssls[i].p_name) if (i == 0) { for (var u in ssls[i].p_city) { // console.log(ssls[i].p_city[u].c_name) shi.push(ssls[i].p_city[u].c_name) for (var j in ssls[i].p_city[u].p_district) { // console.log(ssls[i].p_city[u].c_name) qu.push(ssls[i].p_city[u].p_district[j].d_name) } } } } console.log(sheng, shi); this.setData({ multiArray: [sheng, shi, qu] }); //第三步:选择对应的value值改变 bindMultiPickerChange: function (e) { console.log('picker发送选择改变,携带值为', e.detail.value) this.setData({ multiIndex: e.detail.value }) }, //第四步:下拉拖动选项事件(这里只需要处理第一栏,与第二栏【因为第三栏拖动的时候,没有第四栏关联变动了,关于此处讲的栏,请看代码后图1-3】) bindMultiPickerColumnChange: function (e) { console.log('修改的列为', e.detail.column, ',值为', e.detail.value); var data = { multiArray: this.data.multiArray, multiIndex: this.data.multiIndex }; data.multiIndex[e.detail.column] = e.detail.value; switch (e.detail.column) { case 0: this.setData({ thisSheng: e.detail.value }) //此处是拖动第一栏的时候处理 var row = this.getCity(e.detail.value); data.multiArray[1] = row[0]; data.multiArray[2] = row[1]; //此处默认选中第一项 data.multiIndex[1] = 0; data.multiIndex[2] = 0; break; case 1: //此处是拖动第二栏的时候处理 var row = this.getCity(this.data.thisSheng, e.detail.value); console.log(row); data.multiArray[2] = row[1]; data.multiIndex[2] = 0; console.log(data.multiIndex); break; } this.setData(data); },关键处理函数// 获取城市信息 getCity: function (x, y = 999, z = 999) { console.log("xy", x, y); var ssls = this.data.ssl; var shi = []; var qu = []; for (var i in ssls) { if (i == x) { for (var u in ssls[i].p_city) { shi.push(ssls[i].p_city[u].c_name) if (u == y) { for (var j in ssls[i].p_city[u].p_district) { qu.push(ssls[i].p_city[u].p_district[j].d_name) } break; } if (y == 999) { for (var j in ssls[i].p_city[u].p_district) { qu.push(ssls[i].p_city[u].p_district[j].d_name) } } } break; } } console.log(shi); return [shi, qu]; },代码下载地址:https://github.com/magic007/weApp/tree/master/multiSelector基本手动实现一次官方的全国地区选择功能,只是相比官方更灵活,能添加更多种类型。
2019年03月22日
9,615 阅读
30 评论
2 点赞
2018-12-27
Golang-开发企业级资源权限管理【第一步表设计】-1
暂无简介
2018年12月27日
9,093 阅读
34 评论
11 点赞
2018-09-26
想自己上线微信小程序一定要会代码
本教程教你如何免费发布一款自己微信小程序。微信小程序门槛已经下降到个人了,很多不会写代码的人也想免费上线一款自己的小程序,该如何做到?他有这些要求:无需写代码整个发布到上线最好不要超过10分钟我要保留整个小程序的源码,以防止下次上线需要。项目源码安全无后门、有详细的文档说明稳定、安全。免费、不花一分钱。本视频10分钟上线自己微信小程序,一一解决这些问题。[https://www.zhihu.com/video/939867296253034496](https://www.zhihu.com/video/939867296253034496)
2018年09月26日
8 阅读
0 评论
0 点赞
2018-08-30
小程序混合开发(2)朋友圈功能
1.分析功能先看截图1. 朋友圈列表2. 朋友圈详细3. 评论功能2.数据库建立这里列表与详细,我们用一个表来实现,评论用第二个表。总计2个表post 表我们可以直接这样导入一个JSON,但由于首页的资讯这样操作,导致数据都一模一样,这次我们使用云函数定时采集数据到数据库。采集数据数据结构地址: var url = 'https://apiquan.ithome.com/api/post?categoryid=0&type=0&orderTime=1526981875455&visistCount=&pageLength=' 如果手动导入可以导入此数据结构[ { "id":266716, "t":"普通联通卡可以转米粉卡吗?", "c":"[杂谈]", "cn":"畅谈", "uid":100058, "un":"中国火箭军", "rn":"诺基亚 Lumia 930", "pt":"/Date(1527057744773)/", "rt":"/Date(1527060538403)/", "vc":0, "rc":17, "IC":false, "IH":false, "ot":"/Date(-62135596800000)/" } ]云函数获取网址数据代码 function onRequest(request, response, modules) { var http = modules.oHttp; var url = 'https://apiquan.ithome.com/api/post?categoryid=0&type=0&orderTime=1526981875455&visistCount=&pageLength=' http(url, function(error, res, body) { response.end(body); }); } 点击测试看结果这样就可以拿到目标网址数据,如何插入到数据库,看下面代码db.insert({ "table":"XXX", //表名 "data":{"a":"XXXX","b":"XXXX"} //需要更新的数据,格式为JSON },function(err,data){ //回调函数 }); 上面是插入单行数据,如果批量插入,可以使用下面代码function onRequest(request, response, modules) { var http = modules.oHttp; var db = modules.oData; var url = 'https://apiquan.ithome.com/api/post?categoryid=0&type=0&orderTime=1526981875455&visistCount=&pageLength=' http(url, function(error, res, body) { //结果转为对象类型 var results =JSON.parse(body); var arr = []; //循环更新数据 for (var i in results) { newdata = { "method": "post", "path": "/1/classes/post", "body":results[i] }; arr.push(newdata) } //获取数组对象 var bat = modules.oBatch; //批量操作 bat.exec({ "data": { "requests": arr } }, function (err, data) { //回调函数 response.end(data); return; }); response.end(JSON.stringify(results.length)); }); } //点击测试,效果下如图定时任务当然你也可以设置个定时任务我这里设置结果0 0 16 * * * 表示每天的16时0分0秒,触发定时器一次 当然你也可以设置每小时,每天,每分钟,每秒,每隔5分钟等等,规则可以自己定义,具体请看云函数文档文档地址定时任务云函数文档这一节我们把朋友圈的数据表建立,并采集了相关数据,下一节我们修改mpvue小程序代码。
2018年08月30日
7,271 阅读
0 评论
35 点赞
2018-07-28
微信心邮小程序开发实战(3)-心情列表与添加-md
回顾上一篇文章讲了微信小程序心邮信箱功能的实现,这节讲代码心情列表的实现,这跟上节信箱列表差不多,只是只显示自己的心情,这个就不讲了,讲下如何添加倾诉心情。目录结构write/ ├── write.js ├── write.json ├── write.wxml └── write.wxss右侧浮动添加按钮<navigator class="toWrite" url="../write/write">样式 .toWrite { ./pages/index/index.wxss:27width:100rpx; height:100rpx; background:url(http://bmob-cdn-7744.b0.upaiyun.com/2016/11/29/360d32564024a5ab80e4477169949473.png) no-repeat; padding:0; background-size:cover; position:fixed; right:74rpx; bottom:100rpx; border-bottom:0; border-top:0; } write.wxml 页面布局<loading hidden="{{loading}}"> 页面初始化中... </loading> <view class="add_pic" bindtap="uploadPic" wx-if="{{!isSrc}}"> <view>添加图片(选)</view> </view> <view wx:if="{{isSrc}}" class="image_box"> <view class="picPre"> <image src="{{src}}" mode="aspectFill"></image> <view bindtap="clearPic"></view> </view> </view> <input placeholder="输入标题(选)" class="add_title" value="" bindinput="setTitle"/> <view class="addConent"> <textarea placeholder="记下这一刻的心情" maxlength="1000" value="" bindblur="setContent"/> </view> <label for="changePublic"> <switch checked="{{isPublic}}" bindchange="changePublic" type="checkbox" name="is_hide"/> <text>邮寄心情</text> </label> <button bindtap="sendNewMood" data-content="{{content}}" loading="{{isLoading}}" data-title="{{title}}" hover-start-time="200" disabled="{{isdisabled}}">发布</button>逻辑JS实现添加图片保存到全局变量uploadPic:function(){//选择图标 wx.chooseImage({ count: 1, // 默认9 sizeType: ['original', 'compressed'], sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有 success: function (res) { // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片 var tempFilePaths = res.tempFilePaths that.setData({ isSrc:true, src:tempFilePaths }) } }) },删除图片实现//由于Bmob提供的免费空间20G用不完,这里的文件并没真的删除服务端图片,只是清空了图片。如需删除,可以这样 delImg: function () {//图片删除 var path; //删除第一张 path = 图片路径; var s = new Bmob.Files.del(path).then(function (res) { if (res.msg == "ok") { console.log('删除成功'); common.showModal("删除成功"); } console.log(res); }, function (error) { console.log(error) } ); }, --------------心邮目前的代码------------------- clearPic:function(){//删除图片 that.setData({ isSrc:false, src:"" }) },上传保存至表里, sendNewMood: function(e) {//保存心情 //判断心情是否为空 var content=e.target.dataset.content; var title=e.target.dataset.title; if(content==""){ common.dataLoading("心情内容不能为空","loading"); } else{ that.setData({ isLoading:true, isdisabled:true }) wx.getStorage({ key: 'user_id', success: function(ress) { var Diary = Bmob.Object.extend("Diary"); var diary = new Diary(); var me = new Bmob.User(); me.id=ress.data; diary.set("title",title); diary.set("content",content); diary.set("is_hide",that.data.ishide); diary.set("publisher", me); diary.set("likeNum",0); diary.set("commentNum",0); diary.set("liker",[]); if(that.data.isSrc==true){ var name=that.data.src;//上传的图片的别名 var file=new Bmob.File(name,that.data.src); file.save(); diary.set("pic",file); } diary.save(null, { success: function(result) { that.setData({ isLoading:false, isdisabled:false }) // 添加成功,返回成功之后的objectId(注意:返回的属性名字是id,不是objectId),你还可以在Bmob的Web管理后台看到对应的数据 common.dataLoading("发布心情成功","success",function(){ wx.navigateBack({ delta: 1 }) }); }, error: function(result, error) { // 添加失败 console.log(error) common.dataLoading("发布心情失败","loading"); that.setData({ isLoading:false, isdisabled:false }) } }); } }) } },至此添加心情功能已经完成1.告知一个小技巧,数据库列表,图片字段可以点击直接上传替换或删除的,这样也许你的小程序管理后台都不用开发了。看最下面截图2.核心代码,保存到数据库,下面贴最简单的源码添加标题内容到数据库 var Diary = Bmob.Object.extend("diary"); var diary = new Diary(); diary.set("title","hello"); diary.set("content","hello world"); //添加数据,第一个入口参数是null diary.save(null, { success: function(result) { // 添加成功,返回成功之后的objectId(注意:返回的属性名字是id,不是objectId),你还可以在Bmob的Web管理后台看到对应的数据 console.log("日记创建成功, objectId:"+result.id); }, error: function(result, error) { // 添加失败 console.log('创建日记失败'); } });
2018年07月28日
4,936 阅读
0 评论
9 点赞
1
...
10
11
12
...
25