blob: 603f6ba25f99cc165fc69839f48d3a6febb57834 [file] [log] [blame]
<template>
<div style="padding: 5px;">
<text class="result">{{result}}</text>
<div class="row">
<text class="btn" onclick="input">1</text>
<text class="btn" onclick="input">2</text>
<text class="btn" onclick="input">3</text>
<text class="btn btn-operator" onclick="input">+</text>
</div>
<div class="row">
<text class="btn" onclick="input">4</text>
<text class="btn" onclick="input">5</text>
<text class="btn" onclick="input">6</text>
<text class="btn btn-operator" onclick="input">-</text>
</div>
<div class="row">
<text class="btn" onclick="input">7</text>
<text class="btn" onclick="input">8</text>
<text class="btn" onclick="input">9</text>
<text class="btn btn-operator" onclick="input">*</text>
</div>
<div class="row">
<text class="btn" onclick="input">0</text>
<text class="btn" onclick="input">.</text>
<text class="btn" onclick="clear">AC</text>
<text class="btn btn-operator" onclick="calculate">=</text>
</div>
</div>
</template>
<style>
.row {
flex-direction: row;
}
.result {
text-align: right;
background-color: #666;
font-size: 40px;
color: white;
}
.btn {
flex: 1;
text-align: center;
background-color: #eee;
font-size: 36px;
}
.btn, .result {
height: 100px;
padding: 30px;
margin: 5px;
}
.btn-operator {
background-color: #669;
font-size: 40px;
color: white;
}
</style>
<script>
require('weex-components');
var OP = ['+', '-', '*', '/'];
var inputs = [];
module.exports = {
data: {
result: ''
},
methods: {
input: function(e) {
var value = e.target.attr['value'];
var lastOne = inputs.length ? inputs[inputs.length - 1] : '';
if (OP.indexOf(lastOne) > -1 && OP.indexOf(value) > -1) {
return;
}
inputs.push(value);
var buf = [], char;
for (var i = 0; i < inputs.length; i++) {
char = inputs[i];
if (OP.indexOf(char) > -1) {
char = ' ' + char + ' ';
}
buf.push(char);
}
this.result = buf.join('');
},
calculate: function() {
var result = eval(this.result);
inputs = [result];
this.result = result;
},
clear: function() {
inputs = [];
this.result = '';
}
}
}
</script>