Browse Source

fix(numberkeyboard): props conflict issue #1486 (#1526)

Drjingfubo 3 years ago
parent
commit
ed0d2c91c6

+ 6 - 8
src/packages/__VUE/numberkeyboard/index.taro.vue

@@ -10,7 +10,7 @@
     <div class="nut-numberkeyboard" ref="root">
     <div class="nut-numberkeyboard" ref="root">
       <div class="number-board-header" v-if="title">
       <div class="number-board-header" v-if="title">
         <h3 class="tit">{{ title }}</h3>
         <h3 class="tit">{{ title }}</h3>
-        <span class="keyboard-close" @click="closeBoard()">{{ translate('done') }}</span>
+        <span class="keyboard-close" v-if="type == 'default'" @click="closeBoard()">{{ translate('done') }}</span>
       </div>
       </div>
       <div class="number-board-body">
       <div class="number-board-body">
         <div class="number-board">
         <div class="number-board">
@@ -61,7 +61,7 @@
               />
               />
             </div>
             </div>
           </div>
           </div>
-          <div class="key-board-wrapper" @click="closeBoard()" v-if="title == ''">
+          <div class="key-board-wrapper" @click="closeBoard()">
             <div :class="['key', 'finish', { activeFinsh: clickKeyIndex == 'finish' }]">
             <div :class="['key', 'finish', { activeFinsh: clickKeyIndex == 'finish' }]">
               {{ confirmText || translate('done') }}
               {{ confirmText || translate('done') }}
             </div>
             </div>
@@ -159,8 +159,11 @@ export default create({
       if (customKeys.length > 2) {
       if (customKeys.length > 2) {
         customKeys = [customKeys[0], customKeys[1]];
         customKeys = [customKeys[0], customKeys[1]];
       }
       }
+      if (customKeys.length == 2 && props.title && props.type != 'rightColumn') {
+        customKeys = [customKeys[0]];
+      }
       if (customKeys.length === 1) {
       if (customKeys.length === 1) {
-        if (props.title) {
+        if (props.title && props.type != 'rightColumn') {
           keys.push({ id: customKeys[0], type: 'custom' }, { id: 0, type: 'number' }, { id: 'delete', type: 'delete' });
           keys.push({ id: customKeys[0], type: 'custom' }, { id: 0, type: 'number' }, { id: 'delete', type: 'delete' });
         } else {
         } else {
           keys.push({ id: 0, type: 'number' }, { id: customKeys[0], type: 'custom' });
           keys.push({ id: 0, type: 'number' }, { id: customKeys[0], type: 'custom' });
@@ -171,11 +174,6 @@ export default create({
           { id: 0, type: 'number' },
           { id: 0, type: 'number' },
           { id: customKeys[1], type: 'custom' }
           { id: customKeys[1], type: 'custom' }
         );
         );
-        if (props.title) {
-          keys.push({ id: 'delete', type: 'delete' });
-        }
-      } else {
-        keys.push({ id: 0, type: 'number' });
       }
       }
       return keys;
       return keys;
     }
     }

+ 6 - 8
src/packages/__VUE/numberkeyboard/index.vue

@@ -12,7 +12,7 @@
     <div class="nut-numberkeyboard" ref="root">
     <div class="nut-numberkeyboard" ref="root">
       <div class="number-board-header" v-if="title">
       <div class="number-board-header" v-if="title">
         <h3 class="tit">{{ title }}</h3>
         <h3 class="tit">{{ title }}</h3>
-        <span class="keyboard-close" @click="closeBoard()">{{ translate('done') }}</span>
+        <span class="keyboard-close" v-if="type == 'default'" @click="closeBoard()">{{ translate('done') }}</span>
       </div>
       </div>
       <div class="number-board-body">
       <div class="number-board-body">
         <div class="number-board">
         <div class="number-board">
@@ -63,7 +63,7 @@
               />
               />
             </div>
             </div>
           </div>
           </div>
-          <div class="key-board-wrapper key-board-finish" @click="closeBoard()" v-if="title == ''">
+          <div class="key-board-wrapper key-board-finish" @click="closeBoard()">
             <div :class="['key', 'finish', { activeFinsh: clickKeyIndex == 'finish' }]">
             <div :class="['key', 'finish', { activeFinsh: clickKeyIndex == 'finish' }]">
               {{ confirmText || translate('done') }}
               {{ confirmText || translate('done') }}
             </div>
             </div>
@@ -171,8 +171,11 @@ export default create({
       if (customKeys.length > 2) {
       if (customKeys.length > 2) {
         customKeys = [customKeys[0], customKeys[1]];
         customKeys = [customKeys[0], customKeys[1]];
       }
       }
+      if (customKeys.length == 2 && props.title && props.type != 'rightColumn') {
+        customKeys = [customKeys[0]];
+      }
       if (customKeys.length === 1) {
       if (customKeys.length === 1) {
-        if (props.title) {
+        if (props.title && props.type != 'rightColumn') {
           keys.push({ id: customKeys[0], type: 'custom' }, { id: 0, type: 'number' }, { id: 'delete', type: 'delete' });
           keys.push({ id: customKeys[0], type: 'custom' }, { id: 0, type: 'number' }, { id: 'delete', type: 'delete' });
         } else {
         } else {
           keys.push({ id: 0, type: 'number' }, { id: customKeys[0], type: 'custom' });
           keys.push({ id: 0, type: 'number' }, { id: customKeys[0], type: 'custom' });
@@ -183,11 +186,6 @@ export default create({
           { id: 0, type: 'number' },
           { id: 0, type: 'number' },
           { id: customKeys[1], type: 'custom' }
           { id: customKeys[1], type: 'custom' }
         );
         );
-        if (props.title) {
-          keys.push({ id: 'delete', type: 'delete' });
-        }
-      } else {
-        keys.push({ id: 0, type: 'number' });
       }
       }
       return keys;
       return keys;
     }
     }

+ 2 - 2
src/sites/mobile-taro/vue/src/dentry/pages/numberkeyboard/index.vue

@@ -16,7 +16,7 @@
     <nut-numberkeyboard
     <nut-numberkeyboard
       type="rightColumn"
       type="rightColumn"
       v-model:visible="visible3"
       v-model:visible="visible3"
-      randomKeys="true"
+      :randomKeys="true"
       :custom-key="customKey1"
       :custom-key="customKey1"
       @input="input"
       @input="input"
       @close="close(3)"
       @close="close(3)"
@@ -58,7 +58,7 @@ export default {
     const visible6 = ref(false);
     const visible6 = ref(false);
     const value = ref('');
     const value = ref('');
     const customKey1 = reactive(['.']);
     const customKey1 = reactive(['.']);
-    const customKey2 = reactive(['.']);
+    const customKey2 = reactive(['.', 'x']);
     const customKey3 = reactive(['X']);
     const customKey3 = reactive(['X']);
     const visibleArr = [visible1, visible2, visible3, visible4, visible5, visible6];
     const visibleArr = [visible1, visible2, visible3, visible4, visible5, visible6];
     function input(number: any) {}
     function input(number: any) {}