先看实现后的效果图:
计算机主页面,有基本的加减乘除功能,还有退格和清空数据
这里增加了一个历史记录页面,通过将数据异步保存到缓存里后需要查看时直接提取
此小程序主要实现的点击代码如下:
clickBtn: function (event) { var id = event.target.id; if(id == this.data.id1){ //退格 var data = this.data.screenData; if(data == 0){ return; } data = data.substring(0,data.length-1); if(data == ''|| data =='-'){ data=0; } this.setData({screenData: data}); }else if(id == this.data.id2){ //清空数据 this.setData({screenData: '0'}); }else if(id == this.data.id3){ //正负号 var data = this.data.screenData; if(data == 0){ return } var firstword = data.substring(0,1); if(firstword == '-'){ data = data.substring(1,data.length); }else data = '-'+ data; this.setData({screenData: data}); }else if(id == this.data.id20){ //运行结果 var data = this.data.screenData; if(data == 0){ return; } var result = eval(data); this.data.logs.push(data+'='+result); try { wx.setStorageSync('res', this.data.logs); } catch (e) { } this.setData({screenData: result}); } else{ if(id == this.data.id4||id == this.data.id8|| id == this.data.id12|| id == this.data.id16){ if(this.data.lastIsOperator == true|| this.data.screenData == 0){ return; } } var data; if (this.data.screenData == 0) { data = event.target.id; } else{ data = this.data.screenData + event.target.id; } this.setData({ screenData: data }); if (id == this.data.id4 || id == this.data.id8 || id == this.data.id12 || id == this.data.id16) { this.setData({lastIsOperator: true}); }else this.setData({lastIsOperator: false}); } }
当前这个计算器还有些许bug,使用稍微有些粗糙,后续将继续完善它,希望大家随时来拍砖。