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

修改IOS手机端queryFrom 输入截断问题

ajun 5 лет назад
Родитель
Сommit
d66c956d24

+ 3 - 1
database/migrations/2020_12_23_174008_add_column_logistic_id_to_order_trackings.php

@@ -36,7 +36,9 @@ class AddColumnLogisticIdToOrderTrackings extends Migration
     {
         /** @var OrderTrackingService $service */
         $service = app(OrderTrackingService::class);
-        $maxId= \App\OrderTracking::query()->orderByDesc('id')->first()->id;
+        $maxId= \App\OrderTracking::query()->orderByDesc('id')->first();
+        if(!$maxId)return;
+        $maxId = $maxId->id;
         $logistic = \App\Logistic::query()->where('name','新杰物流')->first();
         $logistic_zt = \App\Logistic::query()->where('name','自提')->first();
         for ($i=0;$i<= $maxId;$i+=100){

+ 70 - 64
resources/js/queryForm/queryForm.js

@@ -347,9 +347,13 @@ const query = function getQueryForm(data) {
     function getDateMonth(condition) {
         let dateMonth = $("<input name = '"+ condition.name +"' type='month' class='form-control form-control-sm' style='vertical-align: middle; max-width: 200px;' placeholder='" + condition.placeholder + "' autocomplete='off' data-toggle='tooltip' >");
         dateMonth.attr('title', condition.tip === undefined ? '' : condition.tip);
-        dateMonth.bind('input propertychange', function () {
-            let dom = {name: condition.name, type: 'dateMonth', value: this.value, mold: 'dateMonth'};
-            modifyData(dom);
+        dateMonth.blur(function(){
+            modifyData({name: condition.name, type: 'dateMonth', value: this.value, mold: 'dateMonth'});
+        });
+        dateMonth.keypress(function(event){
+            if(event.which  === 13){
+                modifyData({name: condition.name, type: 'input', value: this.value, mold: 'input'});
+            }
         });
         return dateMonth;
     }
@@ -358,9 +362,11 @@ const query = function getQueryForm(data) {
     function getInput(condition) {
         let input = $("<input name='" + condition.name + "' class='form-control form-control-sm' style='vertical-align: middle; max-width: 200px;' placeholder='" + condition.placeholder + "' autocomplete='off' data-toggle='tooltip' data-placement='top' >");
         input.attr('title', condition.tip === undefined ? '' : condition.tip);
-        input.on('input', function () {
-            let dom = {name: condition.name, type: 'input', value: this.value, mold: 'input'}
-            modifyData(dom)
+        input.blur(function(){
+            modifyData({name: condition.name, type: 'input', value: this.value, mold: 'input'});
+        });
+        input.keypress(function(event){
+            if(event.which  === 13)modifyData({name: condition.name, type: 'input', value: this.value, mold: 'input'});
         });
         return input;
     }
@@ -396,17 +402,26 @@ const query = function getQueryForm(data) {
             placeholder = condition.placeholder[1];
         }
         fillSelectOption(select, condition.data, placeholder);
-        input.bind('input propertychange', function () {
+        input.blur(function(){
             let value = this.value;
             let data = condition.data.filter(function (map) {
                 return map.value.includes(value);
-            })
+            });
             fillSelectOption(select, data || condition.data);
             select.val(_data[condition.name].select);
-        })
+        });
+        input.keypress(function(event){
+            if(event.which  === 13){
+                let value = this.value;
+                let data = condition.data.filter(function (map) {
+                    return map.value.includes(value);
+                })
+                fillSelectOption(select, data || condition.data);
+                select.val(_data[condition.name].select);
+            }
+        });
         select.change(function () {
-            let dom = {name: condition.name, type: 'input_select', value: this.value, mold: 'select'};
-            modifyData(dom);
+            modifyData({name: condition.name, type: 'input_select', value: this.value, mold: 'select'});
         })
         return div.append(input).append(select);
     }
@@ -418,13 +433,14 @@ const query = function getQueryForm(data) {
         input.attr('title', controlJsType(condition.tip[0], 'undefined') ? '' : condition.tip[0]);
         let select = $("<select class='form-control form-control-sm ml-2' name='" + condition.name[1] + "'  style='max-width: 200px;' title='" + condition.tip[1] + "''>");
         fillSelectOption(select, condition.data);
-        input.bind('input propertychange', function () {
-            let dom = {name: this.name, type: 'input_select_longtext', value: this.value, mold: 'input'};
-            modifyData(dom);
-        })
+        input.blur(function(){
+            modifyData({name: this.name, type: 'input_select_longtext', value: this.value, mold: 'input'});
+        });
+        input.keypress(function(event){
+            if(event.which === 13)modifyData({name: this.name, type: 'input_select_longtext', value: this.value, mold: 'input'});
+        });
         select.change(function () {
-            let dom = {name: this.name, type: 'input_select_longtext', value: this.value, mold: 'select'};
-            modifyData(dom);
+            modifyData({name: this.name, type: 'input_select_longtext', value: this.value, mold: 'select'});
         })
         return div.append(input).append(select);
     }
@@ -433,21 +449,18 @@ const query = function getQueryForm(data) {
     function getdateTime(condition) {
         let dateTime = $("<input type='date' class='form-control form-control-sm' name='" + condition.name + "'  style='max-width: 150px' data-toggle='tooltip' data-placement='top' title='" + condition.tip + "' style='width: 200px'>");
         dateTime.attr('title', controlJsType(condition.tip, 'undefined') ? '' : condition.tip);
-        dateTime.bind('input propertychange', function () {
-            let dom = {name: condition.name, type: 'dateTime', value: this.value, mold: 'dateTime'};
-            modifyData(dom);
-        })
+        dateTime.blur(function(){
+            modifyData({name: condition.name, type: 'dateTime', value: this.value, mold: 'dateTime'});
+        });
         return dateTime;
     }
 
-    // dateTimeLocal
     //dateTimeLocal
     function getDateTimeLocal(condition) {
         let dateTimeLocal = $("<input name = '"+ condition.name +"' type='datetime-local' step='01' class='form-control form-control-sm' style='vertical-align: middle; max-width: 280px;' placeholder='" + condition.placeholder + "' autocomplete='off' data-toggle='tooltip' data-placement='top' >");
         dateTimeLocal.attr('title', condition.tip === undefined ? '' : condition.tip);
         dateTimeLocal.bind('input propertychange', function () {
-            let dom = {name: condition.name, type: 'dateTimeLocal', value: this.value, mold: 'dateTimeLocal'};
-            modifyData(dom);
+            modifyData({name: condition.name, type: 'dateTimeLocal', value: this.value, mold: 'dateTimeLocal'});
         });
         return dateTimeLocal;
     }
@@ -459,24 +472,20 @@ const query = function getQueryForm(data) {
         dateTime.attr('title', controlJsType(condition.tip[0], 'undefined') ? '' : condition.tip[0]);
         let min = $("<input id='" + condition.name + "_min' class='form-control form-control-sm ml-2' style='max-width: 100px;' placeholder='00:00' data-toggle='tooltip' data-placement='top' >");
         min.attr('title', controlJsType(condition.tip[1], 'undefined') ? '' : condition.tip[1]);
-
-        dateTime.bind('input propertychange', function () {
+        dateTime.blur(function(){
             let value = this.value !== '' ? this.value + ' ' +(!!min.val() ?  min.val() :'00:00' ) : '';
-            let dom = {name: condition.name, type: 'time', value: value, mold: 'time'};
-            modifyData(dom);
-        })
-        min.bind('input propertychange', function () {
-            verifyTime(this);
-        })
-        min.bind('input propertychange', function () {
-            if (['null', 'undefined', ''].includes(dateTime.val())) {
-                return;
+            modifyData( {name: condition.name, type: 'time', value: value, mold: 'time'});
+        });
+        dateTime.keypress(function(event){
+            if(event.which === 13){
+                let value = this.value !== '' ? this.value + ' ' +(!!min.val() ?  min.val() :'00:00' ) : '';
+                modifyData({name: this.name, type: 'input_select_longtext', value: value, mold: 'input'});
             }
-
+        });
+        min.bind('input propertychange', function () {
+            if (['null', 'undefined', ''].includes(dateTime.val()))return;
             let value = ['null', 'undefined', ''].includes(dateTime.val()) ? '' : dateTime.val() + ' ' + min.val();
-            //let value = dateTime.value !== '' ? dateTime.value + ' ' + (min.value === '' ? '00:00' : min. value) : '';
-            let dom = {name: condition.name, type: 'time', value: value, mold: 'time'};
-            modifyData(dom);
+            modifyData({name: condition.name, type: 'time', value: value, mold: 'time'});
         })
         return div.append(dateTime).append(min);
     }
@@ -489,14 +498,18 @@ const query = function getQueryForm(data) {
         let input2 = $("<input name='" + condition.name[1] + "' class='form-control form-control-sm ml-2' style='vertical-align: middle; max-width: 150px;' placeholder='" + condition.placeholder[1] + "' data-toggle='tooltip' data-placement='top' title='" + condition.tip[1] + "'>");
         input2.attr('title', controlJsType(condition.tip[1], 'undefined') ? '' : condition.tip[1]);
 
-        input1.bind('input propertychange', function () {
-            let dom = {name: this.name, type: 'input_input', value: this.value, mold: 'input'};
-            modifyData(dom);
-        })
-        input2.bind('input propertychange', function () {
-            let dom = {name: this.name, type: 'input_input', value: this.value, mold: 'input'};
-            modifyData(dom);
-        })
+        input1.blur(function(){
+            modifyData({name: this.name, type: 'input_input', value: this.value, mold: 'input'});
+        });
+        input1.keypress(function(event){
+            if(event.which === 13)modifyData({name: this.name, type: 'input_input', value: this.value, mold: 'input'});
+        });
+        input2.blur(function(){
+            modifyData({name: this.name, type: 'input_input', value: this.value, mold: 'input'});
+        });
+        input2.keypress(function(event){
+            if(event.which === 13)modifyData({name: this.name, type: 'input_input', value: this.value, mold: 'input'});
+        });
         return div.append(input1).append(input2);
     }
 
@@ -531,12 +544,10 @@ const query = function getQueryForm(data) {
 
         fillSelectOption(select, condition.data)
         dateTime.bind('input propertychange', function () {
-            let dom = {name: this.name, type: 'dateTime_select', value: this.value, mold: 'dateTime'};
-            modifyData(dom);
+            modifyData( {name: this.name, type: 'dateTime_select', value: this.value, mold: 'dateTime'});
         })
         select.change(function () {
-            let dom = {name: this.name, type: 'dateTime_select', value: this.value, mold: 'select'};
-            modifyData(dom);
+            modifyData({name: this.name, type: 'dateTime_select', value: this.value, mold: 'select'});
         })
         return div.append(dateTime).append(select);
     }
@@ -1091,22 +1102,17 @@ const query = function getQueryForm(data) {
     function inputKeyDown() {
         $(_form).find('input').keydown(function (e) {
             if (e.keyCode === 13) {
-                if (_this.keydownSearch) {
-                    _this.onsubmit()
-                }
-                if (controlJsType(_this.keydownfun, 'fun')) {
-                    _this.keydownfun();
-                }
+                setTimeout(function () {
+                    if (_this.keydownSearch) _this.onsubmit();
+                    if (controlJsType(_this.keydownfun, 'fun')) _this.keydownfun();
+                },100);
             }
         });
-
         $(_form).find("input[type='date']").change(function (e) {
-            if (_this.keydownSearch) {
-                _this.onsubmit()
-            }
-            if (controlJsType(_this.keydownfun, 'fun')) {
-                _this.keydownfun();
-            }
+            setTimeout(function () {
+                if (_this.keydownSearch)_this.onsubmit();
+                if (controlJsType(_this.keydownfun, 'fun')) _this.keydownfun();
+            },100);
         });
     }