先看实现后的效果图:
计算机主页面,有基本的加减乘除功能,还有退格和清空数据
这里增加了一个历史记录页面,通过将数据异步保存到缓存里后需要查看时直接提取
此小程序主要实现的点击代码如下:
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,使用稍微有些粗糙,后续将继续完善它,希望大家随时来拍砖。



