| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- <template>
- <gui-popup
- ref="guipopupfornk"
- position="bottom"
- :canCloseByShade="canCloseByShade">
- <view
- class="gui-bg-gray gui-dark-bg-level-3"
- @tap.stop.prevent="stopfun">
- <text
- class="gui-keyboard-res gui-block gui-primary-text"
- v-if="showInputRes"
- :style="{fontSize:resultSize}">{{resVal}}</text>
- <view
- class="gui-keyboard gui-flex gui-row gui-space-between">
- <view
- class="gui-keyboard-left gui-flex gui-row gui-wrap gui-space-between">
- <view
- v-for="(item, index) in [1,2,3,4,5,6,7,8,9]"
- :key="index"
- class="gui-keyboard-keys gui-bg-white gui-dark-bg-level-1"
- :data-keynumber="item"
- hover-class="gui-tap"
- @tap.stop="inputNow">
- <text
- class="gui-block gui-keyboard-keys-text gui-primary-text">{{item}}</text>
- </view>
- <view
- class="gui-keyboard-keys gui-bg-white gui-dark-bg-level-1"
- :style="{width: isPoint ? '259rpx':'538rpx'}"
- data-keynumber="0"
- @tap.stop="inputNow">
- <text
- class="gui-keyboard-keys-text gui-block gui-primary-text"
- :style="{width: isPoint ? '259rpx':'538rpx'}">0</text>
- </view>
- <view
- v-if="isPoint"
- class="gui-keyboard-keys gui-bg-white gui-dark-bg-level-1"
- :style="{width:'259rpx'}"
- data-keynumber="."
- @tap.stop="inputNow">
- <text
- class="gui-keyboard-keys-text gui-block gui-primary-text"
- :style="{ width:'259rpx' }">.</text>
- </view>
- </view>
- <view
- class="gui-keyboard-right gui-flex gui-columns gui-align-items-center">
- <view
- class="gui-keyboard-keys gui-bg-white gui-dark-bg-level-1"
- hover-class="gui-tap"
- :data-keynumber="-3"
- @tap.stop="deleteNow">
- <text
- class="gui-keyboard-keys-text gui-icons gui-block gui-primary-text"></text>
- </view>
- <view
- class="gui-keyboard-keys gui-keyboard-done gui-bg-primary"
- hover-class="gui-tap"
- @tap.stop="done">
- <text
- class="gui-keyboard-done gui-block gui-color-white">{{doneBtnName}}</text>
- </view>
- </view>
- </view>
- <!-- iphone 底部适配 -->
- <gui-iphone-bottom v-if="!isSwitchPage"></gui-iphone-bottom>
- </view>
- </gui-popup>
- </template>
- <script>
- export default{
- name : "gui-number-keyboard",
- props : {
- canCloseByShade : { type : Boolean, default : false},
- doneBtnName : { type : String, default : "完成" },
- isPoint : { type : Boolean, default : true },
- value : { type : String, default : ''},
- showInputRes : { type : Boolean, default : true},
- resultSize : { type : String, default : '32rpx'},
- isSwitchPage : { type : Boolean, default : false}
- },
- methods:{
- open : function(){
- this.$refs.guipopupfornk.open();
- },
- close : function(){
- this.$refs.guipopupfornk.close();
- },
- stopfun : function(e){
- e.stopPropagation();
- return ;
- },
- inputNow : function (e){
- var k = e.currentTarget.dataset.keynumber;
- this.resVal += k+'';
- this.tapIndex = k;
- this.$emit('keyboardInput', k);
- this.removeClass();
- },
- deleteNow : function (e){
- var k = e.currentTarget.dataset.keynumber;
- this.tapIndex = k;
- this.resVal = this.resVal.substring(0, this.resVal.length - 1);
- this.$emit('keyboardDelete');
- this.removeClass();
- },
- done : function(){
- this.$emit('keyboardDone');
- },
- setVal : function (val) {
- this.resVal = val;
- },
- removeClass : function () {
- setTimeout(()=>{this.tapIndex = -1;}, 100);
- },
- },
- data() {
- return {
- resVal : '',
- tapIndex : -1
- }
- },
- created:function(){
- this.resVal = this.value+'';
- },
- watch:{
- value : function (val) {
- this.resVal = val+'';
- }
- },
- emits:['keyboardInput', 'keyboardDelete', 'keyboardDone']
- }
- </script>
- <style scoped>
- </style>
|