ソースを参照

Search projects

chengxr 1 年間 前
コミット
cc26dea95e

+ 14 - 5
QFD/view/HomeView.cpp

@@ -71,6 +71,7 @@ void HomeView::initLayout()
 void HomeView::connectSignalsAndSlots()
 {
     connect(m_createProjPushButton, &PushButton::clicked, this, &HomeView::slotCreateProjClicked);
+    connect(m_searchLineEdit, &LineEdit::textChanged, this, &HomeView::slotSearchTextChanged);
 }
 
 void HomeView::refreshTable()
@@ -83,15 +84,18 @@ void HomeView::refreshTable()
         return;
     }
 
-    m_projStateWidget->showProjects(m_projList);
+    m_projStateWidget->showProjects(searchResult());
+}
 
+QList<EngineerInfo *> HomeView::searchResult() const
+{
+    QList<EngineerInfo *> list;
     for (EngineerInfo *proj : m_projList) {
-        qDebug() << proj->engineerId << proj->engineerName << proj->schemaEvalId << proj->remark << proj->evalFlags();
-
-        for (UserConfig *config : proj->configs) {
-            qDebug() << "==" << config->userName << config->weight;
+        if (proj->engineerName.contains(m_searchLineEdit->text())) {
+            list.append(proj);
         }
     }
+    return list;
 }
 
 void HomeView::slotCreateProjClicked()
@@ -101,3 +105,8 @@ void HomeView::slotCreateProjClicked()
         m_createProjWidget->show();
     }
 }
+
+void HomeView::slotSearchTextChanged()
+{
+    m_projStateWidget->showProjects(searchResult());
+}

+ 3 - 0
QFD/view/HomeView.h

@@ -34,8 +34,11 @@ private:
 
     void refreshTable();
 
+    QList<EngineerInfo *> searchResult() const;
+
 private slots:
     void slotCreateProjClicked();
+    void slotSearchTextChanged();
 
 private:
     bool m_initilized = false;

+ 29 - 22
QFD/widgets/CreateProjWidget.cpp

@@ -1,5 +1,7 @@
 #include "CreateProjWidget.h"
 
+#include <dbService/ClassSet.h>
+
 #include <Widgets/LineEdit.h>
 #include <Widgets/Button.h>
 #include <Widgets/CheckBox.h>
@@ -24,19 +26,19 @@ const QString CreateProjWidget::projName() const
 
 bool CreateProjWidget::importanceSelected() const
 {
-    return m_importanceCheckBox->isChecked();
+    return m_importanceEvalCheckBox->isChecked();
 }
 
 bool CreateProjWidget::schemeSelected() const
 {
-    return m_schemeCheckBox->isChecked();
+    return m_schemeEvalCheckBox->isChecked();
 }
 
 void CreateProjWidget::clearInputs()
 {
     m_nameLineEdit->clear();
-    m_importanceCheckBox->setChecked(false);
-    m_schemeCheckBox->setChecked(false);
+    m_importanceEvalCheckBox->setChecked(false);
+    m_schemeEvalCheckBox->setChecked(false);
 }
 
 void CreateProjWidget::initWindow()
@@ -48,7 +50,7 @@ void CreateProjWidget::initWindow()
     setModal(true);
     setWindowFlags(Qt::Dialog);
     setWindowFlag(Qt::WindowContextHelpButtonHint, false);
-    resize(400, 250);
+    resize(400, 300);
 }
 
 void CreateProjWidget::initialize()
@@ -63,14 +65,17 @@ void CreateProjWidget::initialize()
     m_nameLineEdit->setPlaceholderText("请输入工程名");
     m_nameLineEdit->setMaximumWidth(500);
     m_nameLineEdit->setMinimumWidth(300);
-    m_importanceCheckBox = new CheckBox("能力与技术重要度评估", this);
-    m_capaCheckBox       = new CheckBox("能力重要度评估指标体系", this);
-    m_capaCheckBox->setEnabled(false);
-    m_techCheckBox = new CheckBox("技术措施重要度评估对象", this);
-    m_techCheckBox->setEnabled(false);
-    m_schemeCheckBox = new CheckBox("技术方案评估", this);
-    m_buttonLayout   = new QHBoxLayout();
-    m_createButton   = new PushButton("创建", this);
+    m_importanceEvalCheckBox = new CheckBox(EngineerInfo::nameOFEvalType(EngineerInfo::Importance), this);
+    m_capaIndexCheckBox      = new CheckBox(EngineerInfo::nameOFIndexType(EngineerInfo::Capability), this);
+    m_capaIndexCheckBox->setEnabled(false);
+    m_techIndexCheckBox = new CheckBox(EngineerInfo::nameOFIndexType(EngineerInfo::TechMessaures), this);
+    m_techIndexCheckBox->setEnabled(false);
+    m_schemeEvalCheckBox  = new CheckBox(EngineerInfo::nameOFEvalType(EngineerInfo::TechSchema), this);
+    m_schemeIndexCheckBox = new CheckBox(EngineerInfo::nameOFIndexType(EngineerInfo::SchemaEval), this);
+    m_schemeIndexCheckBox->setEnabled(false);
+
+    m_buttonLayout = new QHBoxLayout();
+    m_createButton = new PushButton("创建", this);
     m_createButton->setEnabled(false);
     m_cancelButton = new PushButton("取消", this);
 }
@@ -86,11 +91,12 @@ void CreateProjWidget::initLayout()
     m_gridLayout->addWidget(new QWidget(this), 1, 1, 4, 1, Qt::AlignLeft);
 
     m_gridLayout->addWidget(m_typeLabel, 4, 0, 1, 1, Qt::AlignRight);
-    m_gridLayout->addWidget(m_importanceCheckBox, 4, 1, 1, 5, Qt::AlignLeft);
-    m_gridLayout->addWidget(m_capaCheckBox, 5, 2, 1, 7, Qt::AlignLeft);
-    m_gridLayout->addWidget(m_techCheckBox, 6, 2, 1, 7, Qt::AlignLeft);
+    m_gridLayout->addWidget(m_importanceEvalCheckBox, 4, 1, 1, 5, Qt::AlignLeft);
+    m_gridLayout->addWidget(m_capaIndexCheckBox, 5, 2, 1, 7, Qt::AlignLeft);
+    m_gridLayout->addWidget(m_techIndexCheckBox, 6, 2, 1, 7, Qt::AlignLeft);
     m_gridLayout->addWidget(new QWidget(this), 7, 1, 4, 1, Qt::AlignLeft);
-    m_gridLayout->addWidget(m_schemeCheckBox, 8, 1, 1, 5, Qt::AlignLeft);
+    m_gridLayout->addWidget(m_schemeEvalCheckBox, 8, 1, 1, 5, Qt::AlignLeft);
+    m_gridLayout->addWidget(m_schemeIndexCheckBox, 9, 2, 1, 7, Qt::AlignLeft);
 
     m_vBoxLayout->addStretch();
     m_vBoxLayout->addLayout(m_buttonLayout);
@@ -102,8 +108,8 @@ void CreateProjWidget::initLayout()
 void CreateProjWidget::connectSignalsAndSlots()
 {
     connect(m_nameLineEdit, &LineEdit::textChanged, this, &CreateProjWidget::slotTextChanged);
-    connect(m_importanceCheckBox, &CheckBox::stateChanged, this, &CreateProjWidget::slotCheckBoxChanged);
-    connect(m_schemeCheckBox, &CheckBox::stateChanged, this, &CreateProjWidget::slotCheckBoxChanged);
+    connect(m_importanceEvalCheckBox, &CheckBox::stateChanged, this, &CreateProjWidget::slotCheckBoxChanged);
+    connect(m_schemeEvalCheckBox, &CheckBox::stateChanged, this, &CreateProjWidget::slotCheckBoxChanged);
     connect(m_createButton, &PushButton::clicked, this, &CreateProjWidget::slotCreateClicked);
     connect(m_cancelButton, &PushButton::clicked, this, &CreateProjWidget::slotCancelClicked);
 }
@@ -111,7 +117,7 @@ void CreateProjWidget::connectSignalsAndSlots()
 void CreateProjWidget::updateCreateButtonState()
 {
     bool nameValid = m_nameLineEdit->text().length() > 0;
-    bool typeValid = m_importanceCheckBox->isChecked() || m_schemeCheckBox->isChecked();
+    bool typeValid = m_importanceEvalCheckBox->isChecked() || m_schemeEvalCheckBox->isChecked();
 
     m_createButton->setEnabled(nameValid && typeValid);
 }
@@ -124,8 +130,9 @@ void CreateProjWidget::slotTextChanged(const QString &text)
 
 void CreateProjWidget::slotCheckBoxChanged(int)
 {
-    m_capaCheckBox->setChecked(m_importanceCheckBox->isChecked());
-    m_techCheckBox->setChecked(m_importanceCheckBox->isChecked());
+    m_capaIndexCheckBox->setChecked(m_importanceEvalCheckBox->isChecked());
+    m_techIndexCheckBox->setChecked(m_importanceEvalCheckBox->isChecked());
+    m_schemeIndexCheckBox->setChecked(m_schemeEvalCheckBox->isChecked());
     updateCreateButtonState();
 }
 

+ 10 - 9
QFD/widgets/CreateProjWidget.h

@@ -42,15 +42,16 @@ private slots:
     void slotCancelClicked();
 
 private:
-    QVBoxLayout *m_vBoxLayout      = nullptr;
-    QGridLayout *m_gridLayout      = nullptr;
-    QLabel *m_nameLabel            = nullptr;
-    QLabel *m_typeLabel            = nullptr;
-    LineEdit *m_nameLineEdit       = nullptr;
-    CheckBox *m_importanceCheckBox = nullptr;
-    CheckBox *m_capaCheckBox       = nullptr;
-    CheckBox *m_techCheckBox       = nullptr;
-    CheckBox *m_schemeCheckBox     = nullptr;
+    QVBoxLayout *m_vBoxLayout          = nullptr;
+    QGridLayout *m_gridLayout          = nullptr;
+    QLabel *m_nameLabel                = nullptr;
+    QLabel *m_typeLabel                = nullptr;
+    LineEdit *m_nameLineEdit           = nullptr;
+    CheckBox *m_importanceEvalCheckBox = nullptr;
+    CheckBox *m_capaIndexCheckBox      = nullptr;
+    CheckBox *m_techIndexCheckBox      = nullptr;
+    CheckBox *m_schemeEvalCheckBox     = nullptr;
+    CheckBox *m_schemeIndexCheckBox    = nullptr;
 
     QHBoxLayout *m_buttonLayout = nullptr;
     PushButton *m_createButton  = nullptr;

+ 1 - 0
QFD/widgets/ProjectStateWidget.cpp

@@ -25,6 +25,7 @@ ProjectStateWidget::ProjectStateWidget(QWidget *parent) : QWidget(parent)
 void ProjectStateWidget::showProjects(QList<EngineerInfo *> proList)
 {
     m_projTableWidget->clearContents();
+    m_projTableWidget->clearSpans();
     setRowCount(proList);
 
     int row = 0;