Просмотр исходного кода

修改 SearchAutoCompleteWidget 的显示/隐藏逻辑。

yangzhijie 4 лет назад
Родитель
Сommit
80045250bc

+ 1 - 6
examples/navbar/src/NavbarExample.vue

@@ -32,12 +32,7 @@ export default {
   },
   },
 
 
   methods: {
   methods: {
-    show: function(){
-      this.$refs.modal.showModal();
-    },
-    show1: function(){
-      this.$refs.modal1.showModal();
-    },
+    
   },
   },
 };
 };
 </script>
 </script>

+ 1 - 6
examples/page-size-select/src/PageSizeSelectExample.vue

@@ -25,12 +25,7 @@ export default {
   },
   },
 
 
   methods: {
   methods: {
-    show: function(){
-      this.$refs.modal.showModal();
-    },
-    show1: function(){
-      this.$refs.modal1.showModal();
-    },
+   
   },
   },
 };
 };
 </script>
 </script>

+ 8 - 6
packages/info/src/InfoSearchWidget.vue

@@ -11,7 +11,7 @@
       @keyup.up="selectUp"
       @keyup.up="selectUp"
       @keyup.down="selectDown"
       @keyup.down="selectDown"
       @keyup.enter="selectEnter"
       @keyup.enter="selectEnter"
-      @keyup.esc="$refs.autoComplete.hide()"
+      @keyup.esc="autoCompleteVisible = false"
     />
     />
     <span
     <span
       class="input-group-addon"
       class="input-group-addon"
@@ -42,6 +42,7 @@
     </Modal>
     </Modal>
     <SearchAutoCompleteWidget
     <SearchAutoCompleteWidget
       ref="autoComplete"
       ref="autoComplete"
+      v-model:show="autoCompleteVisible"
       :info-window-no="infoWindowNo"
       :info-window-no="infoWindowNo"
       :where-clause-source="whereClauseSource"
       :where-clause-source="whereClauseSource"
       class="auto-complete"
       class="auto-complete"
@@ -108,6 +109,7 @@ export default {
       showSubInfoWindow: false,	// 显示子查询窗口
       showSubInfoWindow: false,	// 显示子查询窗口
       loading: false,
       loading: false,
       modal: false,
       modal: false,
+      autoCompleteVisible: false,
     };
     };
   },
   },
 
 
@@ -182,11 +184,11 @@ export default {
       var data = _self.$refs.autoComplete.getSelectData();
       var data = _self.$refs.autoComplete.getSelectData();
       if (data != undefined) {
       if (data != undefined) {
         _self.dataSelected(data);
         _self.dataSelected(data);
-        _self.$refs.autoComplete.hide();
+        _self.autoCompleteVisible = false;
       } else {
       } else {
         if (_self.searchText == undefined || _self.searchText.length == 0) {
         if (_self.searchText == undefined || _self.searchText.length == 0) {
-          if (_self.$refs.autoComplete.isVisible() == true) {
-            _self.$refs.autoComplete.hide();
+          if (_self.autoCompleteVisible == true) {
+            _self.autoCompleteVisible = false;
           } else {
           } else {
             _self.$refs.autoComplete.initSearch('');
             _self.$refs.autoComplete.initSearch('');
           }
           }
@@ -199,7 +201,7 @@ export default {
       var _self = this;
       var _self = this;
       this.modal=true;
       this.modal=true;
 
 
-      _self.$refs.autoComplete.hide();
+      _self.autoCompleteVisible = false;
 
 
       this.$nextTick(function () {
       this.$nextTick(function () {
         if (this.$refs.info) {
         if (this.$refs.info) {
@@ -246,7 +248,7 @@ export default {
       var _self = this;
       var _self = this;
       this.modal=false;
       this.modal=false;
 
 
-      _self.$refs.autoComplete.hide();
+      _self.autoCompleteVisible = false;
 
 
       if (modelData == undefined) {
       if (modelData == undefined) {
         return;
         return;

+ 12 - 24
packages/info/src/SearchAutoCompleteWidget.vue

@@ -1,6 +1,6 @@
 <template>
 <template>
   <div
   <div
-    v-show="isShowAuto"
+    v-if="show"
     class="div-autoComplete"
     class="div-autoComplete"
     :style="{ left: realLeftComputed }"
     :style="{ left: realLeftComputed }"
   >
   >
@@ -47,6 +47,13 @@ var Common = require('../../common/Common.js').default;
 export default {
 export default {
   name: 'SearchAutoCompleteWidget',
   name: 'SearchAutoCompleteWidget',
   props: {
   props: {
+    /**
+     * 是否显示自动提示列表
+     */
+    'show':{
+      type: Boolean,
+      default: false,
+    },
     'infoWindowNo':{
     'infoWindowNo':{
       type: String,
       type: String,
       default: null,
       default: null,
@@ -69,13 +76,12 @@ export default {
     },
     },
   },
   },
 
 
-  emits: ['selectData'],
+  emits: ['selectData', 'update:show'],
 
 
   data: function () {
   data: function () {
     return {
     return {
       infoWindowDto: {},
       infoWindowDto: {},
       infoWindowData: {},
       infoWindowData: {},
-      isShowAuto: false,
       selectIndex: -1,
       selectIndex: -1,
       realLeft: {},
       realLeft: {},
       isSearchWidget: true,
       isSearchWidget: true,
@@ -92,9 +98,9 @@ export default {
     infoWindowData: function (val) {
     infoWindowData: function (val) {
       var _self = this;
       var _self = this;
       if (val.dataList != undefined && val.dataList.length > 0) {
       if (val.dataList != undefined && val.dataList.length > 0) {
-        _self.isShowAuto = true;
+        _self.$emit('update:show', true);
       } else {
       } else {
-        _self.isShowAuto = false;
+        _self.$emit('update:show', false);
       }
       }
     },
     },
 
 
@@ -167,24 +173,6 @@ export default {
       return null;
       return null;
     },
     },
 
 
-    /**
-     * 隐藏
-     * @return {[type]} [description]
-     */
-    hide: function () {
-      var _self = this;
-      _self.isShowAuto = false;
-    },
-
-
-    /**
-     * 是否可见
-     * @return {Boolean} [description]
-     */
-    isVisible: function () {
-      return this.isShowAuto;
-    },
-
     /**
     /**
      * 查询InfoWindowDto
      * 查询InfoWindowDto
      * @return {void} 
      * @return {void} 
@@ -229,7 +217,7 @@ export default {
           _self.getInfoWindowData(text);
           _self.getInfoWindowData(text);
         }
         }
       } else {
       } else {
-        _self.isShowAuto = false;
+        _self.$emit('update:show', false);
       }
       }
     },
     },
 
 

+ 8 - 6
packages/info/src/SearchWidget.vue

@@ -12,7 +12,7 @@
       @keyup.up="selectUp"
       @keyup.up="selectUp"
       @keyup.down="selectDown"
       @keyup.down="selectDown"
       @keyup.enter="selectEnter"
       @keyup.enter="selectEnter"
-      @keyup.esc="$refs.autoComplete.hide()"
+      @keyup.esc="autoCompleteVisible = false"
     />
     />
     <div :class="[classSize != undefined ? 'input-group-btn classSize' : 'input-group-btn']">
     <div :class="[classSize != undefined ? 'input-group-btn classSize' : 'input-group-btn']">
       <button
       <button
@@ -51,6 +51,7 @@
 
 
     <SearchAutoCompleteWidget
     <SearchAutoCompleteWidget
       ref="autoComplete"
       ref="autoComplete"
+      v-model:show="autoCompleteVisible"
       :info-window-no="infoWindowNo"
       :info-window-no="infoWindowNo"
       :where-clause-source="whereClauseSource"
       :where-clause-source="whereClauseSource"
       class="auto-complete"
       class="auto-complete"
@@ -142,6 +143,7 @@ export default {
       leftPosition: 0,
       leftPosition: 0,
       loading: false,
       loading: false,
       modal: false,
       modal: false,
+      autoCompleteVisible: false,
     };
     };
   },
   },
 
 
@@ -216,11 +218,11 @@ export default {
       var data = _self.$refs.autoComplete.getSelectData();
       var data = _self.$refs.autoComplete.getSelectData();
       if (data != undefined) {
       if (data != undefined) {
         _self.dataSelected(data);
         _self.dataSelected(data);
-        _self.$refs.autoComplete.hide();
+        _self.autoCompleteVisible = false;
       } else {
       } else {
         if (_self.searchText == undefined || _self.searchText.length == 0) {
         if (_self.searchText == undefined || _self.searchText.length == 0) {
-          if (_self.$refs.autoComplete.isVisible() == true) {
-            _self.$refs.autoComplete.hide();
+          if (_self.autoCompleteVisible == true) {
+            _self.autoCompleteVisible = false;
           } else {
           } else {
             _self.$refs.autoComplete.initSearch('');
             _self.$refs.autoComplete.initSearch('');
           }
           }
@@ -239,7 +241,7 @@ export default {
 
 
       this.modal=true;
       this.modal=true;
 
 
-      _self.$refs.autoComplete.hide();
+      _self.autoCompleteVisible = false;
 
 
       if (this.$refs.info) {
       if (this.$refs.info) {
         _self.$refs.info.refresh();
         _self.$refs.info.refresh();
@@ -282,7 +284,7 @@ export default {
       var _self = this;
       var _self = this;
       this.modal=false;
       this.modal=false;
 
 
-      _self.$refs.autoComplete.hide();
+      _self.autoCompleteVisible = false;
 
 
       if (modelData == undefined) {
       if (modelData == undefined) {
         return;
         return;