maohu il y a 1 mois
Parent
commit
8312eddf8e
2 fichiers modifiés avec 87 ajouts et 65 suppressions
  1. 21 9
      Functions/DisplayQTMain.py
  2. 66 56
      Functions/QTMain.py

+ 21 - 9
Functions/DisplayQTMain.py

@@ -79,6 +79,7 @@ class sortdisplaySever(QObject):
             self.thread.quit()
         except Exception as e:
             app_logger.log_error(e)
+        finally:
             self.thread.quit()
 
     def severpost_nomeassge(self, postname, postdata, postdata2, postdata3):
@@ -428,6 +429,12 @@ class MainWidget(QWidget, Ui_Form):
     def __init__(self):
         super().__init__()
         try:
+            # 新增:防抖定时器
+            self.debounce_timer = QtCore.QTimer(self)
+            self.debounce_timer.setSingleShot(True)
+            self.debounce_timer.timeout.connect(self.debounced_search)
+            self.debounce_delay = 300  # 防抖延迟时间(毫秒)
+
             self.displaySelectstr3 = "0"
             self.displaySelect_mode = "1"
             self.localip = None
@@ -539,13 +546,22 @@ class MainWidget(QWidget, Ui_Form):
             self.checkBox_3.setChecked(False)
             self.pushbutton_searchflight.clicked.connect(self.FLIGHTonChangeman)
             self.lineEdit_flight.textEdited[str].connect(lambda: self.changebackground())
-            self.lineEdit_flight.textChanged.connect(self.FLIGHTonChange)
+            #self.lineEdit_flight.textChanged.connect(self.FLIGHTonChange)
+            self.lineEdit_flight.textChanged.connect(self.on_search_text_changed)
             self.serchTimer = QTimer()
             self.serchTimer.start(150 * 1000)
             self.serchTimer.timeout.connect(self.QThreadSortTimer)
             self.updatecheck()
         except Exception:
             pass
+    def on_search_text_changed(self):
+        """文本变化时重置定时器"""
+        self.debounce_timer.start(self.debounce_delay)
+
+    def debounced_search(self):
+        """实际触发搜索的方法"""
+        self.FLIGHTonChange_text = self.lineEdit_flight.text()
+        self.QThreadSortNow("search")
 
     def changebackground(self):
         try:
@@ -590,14 +606,6 @@ class MainWidget(QWidget, Ui_Form):
             self.label_11.setText("已断开")
             self.label_11.setStyleSheet("background-color:red;color:white;border-radius:5px;padding:2px;font-weight:bold")
 
-    def AddPG_widget(self):
-        try:
-            self.AddPG.show()
-            self.AddPG_signal.emit(self.user, self.selectedtime, self.ipinfo)
-        except Exception:
-            pass
-
-
     def displaySelect2(self):
         try:
             displaySelect = self.sender()
@@ -783,6 +791,10 @@ class MainWidget(QWidget, Ui_Form):
                                                                        self.selectedtime, self.FLIGHTonChange_text,
                                                                        self.displayMode, "1", self.displaySelect_mode,
                                                                        th11)
+                try:
+                    self.sortTableWidgetDispalyThread11.sortupdate.disconnect()
+                except TypeError:
+                    pass
                 self.sortTableWidgetDispalyThread11.sortupdate.connect(self.QThreadSortDispalyNow)
                 self.sortTableWidgetDispalyThread11.moveToThread(th11)
                 th11.started.connect(self.sortTableWidgetDispalyThread11.run)

+ 66 - 56
Functions/QTMain.py

@@ -54,6 +54,28 @@ class MainWidget(QWidget, Ui_Form):
     def __init__(self):
         super().__init__()
         try:
+            # 新增:防抖定时器
+            self.debounce_timer = QtCore.QTimer(self)
+            self.debounce_timer.setSingleShot(True)
+            self.debounce_timer.timeout.connect(self.debounced_search)
+            self.debounce_delay = 300  # 防抖延迟时间(毫秒)
+            # 新增:防抖定时器
+            self.debounce_timer_phone = QtCore.QTimer(self)
+            self.debounce_timer_phone.setSingleShot(True)
+            self.debounce_timer_phone.timeout.connect(self.debounced_search_phone)
+            # 新增:防抖定时器
+            self.debounce_timer_deal = QtCore.QTimer(self)
+            self.debounce_timer_deal.setSingleShot(True)
+            self.debounce_timer_deal.timeout.connect(self.debounced_search_deal)
+            # 新增:防抖定时器
+            self.debounce_timer_people = QtCore.QTimer(self)
+            self.debounce_timer_people.setSingleShot(True)
+            self.debounce_timer_people.timeout.connect(self.debounced_search_people)
+            # 新增:防抖定时器
+            self.debounce_timer_log= QtCore.QTimer(self)
+            self.debounce_timer_log.setSingleShot(True)
+            self.debounce_timer_log.timeout.connect(self.debounced_search_log)
+
             self.displaySelectstr3 = "0"
             self.displaySelect_mode = "1"
             self.sum = 0
@@ -234,7 +256,6 @@ class MainWidget(QWidget, Ui_Form):
             self.tableWidget_3.setColumnCount(len(phoneLabel))
             self.tableWidget_3.verticalHeader().setVisible(False)
             self.tableWidget_3.setHorizontalHeaderLabels(phoneLabel)
-            self.lineEdit_phonenum.textChanged.connect(self.changeonPhone)
             self.tableWidget_3.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
             self.tableWidget_3.customContextMenuRequested.connect(self.generateMenu3)
 
@@ -291,28 +312,25 @@ class MainWidget(QWidget, Ui_Form):
 
             self.checkBox_3.stateChanged.connect(self.displaySelect3)
             self.checkBox_3.setChecked(False)
-
             self.severpost_nomeassge("createWorkloadtablesFromPg", "/%s" % self.selectedtime, "", "", "")
-
             self.pushbutton_searchflight.clicked.connect(self.FLIGHTonChangeman)
             self.pushButton_searchpeople.clicked.connect(self.searchpeople)
             self.pushButton_5.clicked.connect(self.disearchpeople)
             self.pushButton_2.clicked.connect(self.call)
             self.pushButton_3.clicked.connect(self.calldown)
             self.pushButton_4.clicked.connect(self.relogin)
-            self.pushButton_searchchange.clicked.connect(self.changeonChange)
-            self.pushButton_searchlog.clicked.connect(self.logonChange)
-
+            self.pushButton_searchchange.clicked.connect(self.on_search_text_deal)
+            self.pushButton_searchlog.clicked.connect(self.on_search_text_log)
             self.lineEdit_flight.textEdited[str].connect(lambda: self.changebackground())
             self.lineEdit_people.textEdited[str].connect(lambda: self.changebackground())
             self.lineEdit_change.textEdited[str].connect(lambda: self.changebackground())
             self.lineEdit_log.textEdited[str].connect(lambda: self.changebackground())
 
-            self.lineEdit_flight.textChanged.connect(self.FLIGHTonChange)
-            self.lineEdit_flight.returnPressed.connect(self.on_enter_pressed)
-            self.lineEdit_log.textChanged.connect(self.logonChange)
-            self.lineEdit_people.textChanged.connect(self.peolpleonChange)
-            self.lineEdit_change.textChanged.connect(self.changeonChange)
+            self.lineEdit_flight.textChanged.connect(self.on_search_text_changed)
+            self.lineEdit_log.textChanged.connect(self.on_search_text_log)
+            self.lineEdit_people.textChanged.connect(self.on_search_text_people)
+            self.lineEdit_change.textChanged.connect(self.on_search_text_deal)
+            self.lineEdit_phonenum.textChanged.connect(self.on_search_text_phone)
 
             self.serchTimer = QTimer()
             self.serchTimer.start(3 * 1000)
@@ -428,28 +446,37 @@ class MainWidget(QWidget, Ui_Form):
         except Exception as e:
             app_logger.log_error(e)
 
-    def changeonPhone(self):
+    def debounced_search_phone(self):
         try:
             self.changeonPhone_text = self.lineEdit_phonenum.text()
             self.QThreadSortNow("phone")
         except Exception as e:
             app_logger.log_error(e)
 
-    def FLIGHTonChange(self):
-        try:
-            if self.lineEdit_flight.text() == "":
-                self.FLIGHTonChange_text = self.lineEdit_flight.text()
-                self.QThreadSortNow("search")
-        except Exception as e:
-            app_logger.log_error(e)
-    def on_enter_pressed(self):
+    def on_search_text_changed(self):
+        """文本变化时重置定时器"""
+        self.debounce_timer.start(self.debounce_delay)
+    def on_search_text_deal(self):
+        """文本变化时重置定时器"""
+        self.debounce_timer_deal.start(self.debounce_delay)
+    def on_search_text_people(self):
+        """文本变化时重置定时器"""
+        self.debounce_timer_people.start(self.debounce_delay)
+    def on_search_text_log(self):
+        """文本变化时重置定时器"""
+        self.debounce_timer_log.start(self.debounce_delay)
+    def on_search_text_changed(self):
+        """文本变化时重置定时器"""
+        self.debounce_timer.start(self.debounce_delay)
+    def on_search_text_phone(self):
+        """文本变化时重置定时器"""
+        self.debounce_timer_phone.start(self.debounce_delay)
+    def debounced_search(self):
+        """实际触发搜索的方法"""
+        self.FLIGHTonChange_text = self.lineEdit_flight.text()
+        self.QThreadSortNow("search")
+
 
-        try:
-            self.FLIGHTonChange_text = self.lineEdit_flight.text()
-            # print(self.FLIGHTonChange_text)
-            self.QThreadSortNow("search")
-        except Exception as e:
-            app_logger.log_error(e)
     def FLIGHTonChangeman(self):
         try:
             now=datetime.datetime.now()- datetime.timedelta(seconds=5)
@@ -463,21 +490,21 @@ class MainWidget(QWidget, Ui_Form):
         except Exception as e:
             app_logger.log_error(e)
 
-    def peolpleonChange(self):
+    def debounced_search_people(self):
         try:
             self.peolpleonChange_text = self.lineEdit_people.text()
             self.QThreadSortNow("people")
         except Exception as e:
             app_logger.log_error(e)
 
-    def changeonChange(self):
+    def debounced_search_deal(self):
         try:
             self.changeonChange_text = self.lineEdit_change.text()
             self.QThreadSortNow("change")
         except Exception as e:
             app_logger.log_error(e)
 
-    def logonChange(self):
+    def debounced_search_log(self):
         try:
             self.logonChange_text = self.lineEdit_log.text()
             self.QThreadSortNow("log")
@@ -768,16 +795,6 @@ class MainWidget(QWidget, Ui_Form):
         except Exception as e:
             app_logger.log_error(e)
 
-    '''
-    def showchangeFlight(self):
-        try:
-            self.changeFlight = changeFlight()
-            self.changeFlight.ipinfo = self.ipinfo
-            self.changeFlight.user = self.user
-            self.changeFlight.start()
-        except Exception as e:
-            app_logger.log_error(e)
-    '''
     def openFile(self):
         try:
             fileName, _ = QFileDialog.getOpenFileName(self, '打开文件', '/')
@@ -2704,10 +2721,16 @@ class MainWidget(QWidget, Ui_Form):
                 item1 = menu.addAction("工作单确认检查")
                 if "√"  in jjdq:
                     item2 = menu.addAction("查看接机电签")
-                if "√"  in hbdq:
+                else:
+                    item2 = ""
+                if "√" in hbdq:
                     item3 = menu.addAction("查看航班电签")
-                if "√"  in esdq:
+                else:
+                    item3 = ""
+                if "√" in esdq:
                     item4 = menu.addAction("查看送机电签")
+                else:
+                    item4 = ""
                 screenPos = self.tableWidgetFlight.mapToGlobal(pos)
                 action = menu.exec(screenPos)
 
@@ -2750,6 +2773,8 @@ class MainWidget(QWidget, Ui_Form):
                     response = requests.get("http://" + str(self.ipinfo) + "/static/checkjobcard", params=params).content
                     open_with_system_viewer(response)
                     return
+                else:
+                    return
 
         else:
             QMessageBox.warning(self, "提示", "权限不够,请联系管理员!")
@@ -2931,21 +2956,6 @@ class MainWidget(QWidget, Ui_Form):
 
                         elif 0 < colNum < 11:
                             self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(colNum)])))
-
-                            if colNum == 5 and tableWidgetDispalydata[row][str(colNum)] in ["8182","8185","8186"] and tableWidgetDispalydata[row][str(19)] =="航前":
-
-                                if "【工具提示】无TPIS,带胎压表" not in tableWidgetDispalydata[row][str(61)] and self.displayMode == "A":
-                                    flightid = tableWidgetDispalydata[row][str(53)]
-                                    # print(flightid)
-                                    flighttype = tableWidgetDispalydata[row]["19"]
-                                    fjxx = "【工具提示】无TPIS,带胎压表;" + str(tableWidgetDispalydata[row][str(61)])
-                                    ip = "http://" + str(self.ipinfo) + "/static/updateEidteItem/" + "%s/" % str(fjxx) + "%s/" % str(flightid) + "%s/" % str(self.displayMode) + "%s/" % str(flighttype) + "%s" % str(self.selectedtime)
-                                    try:
-                                        requests.get(url=ip, timeout=30).json()
-                                    except Exception as e:
-                                        QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
-                                        app_logger.log_error(e)
-
                         elif colNum == 0:
                             self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(int(row)+1)))