瀏覽代碼

删除方案功能

chengxr 1 年之前
父節點
當前提交
230e13be10

+ 14 - 0
QFD/dbService/SchemeInfoService.cpp

@@ -118,6 +118,20 @@ bool SchemeInfoService::updateSchemeScore(const int &id, const double &score)
     return ret;
 }
 
+bool SchemeInfoService::deleteScheme(int id)
+{
+    bool ret = false;
+    try {
+        Transaction t(SqlDBHelper::getDatabase());
+        t.deleteFrom("t_scheme_info").where("id = ?", id);
+        t.commit();
+        ret = true;
+    } catch (const DBException &ex) {
+        qDebug() << ex.lastError.text();
+    }
+    return ret;
+}
+
 bool SchemeInfoService::addUniqueGCEData(const SchemaEval &scheme)
 {
     SchemaEval s;

+ 2 - 0
QFD/dbService/SchemeInfoService.h

@@ -15,6 +15,8 @@ public:
     bool addScheme(const SchemaEval &scheme);
     bool updateSchemeScore(const int &id, const double &score);
 
+    bool deleteScheme(int id);
+
     bool addUniqueGCEData(const SchemaEval &scheme);
     bool queryGCEData(SchemaEval &scheme, int projId, QString name);
 };

+ 1 - 1
QFD/widgets/ConfigMeasureDataWidget.cpp

@@ -159,7 +159,7 @@ void ConfigMeasureDataWidget::refreshList()
         QPushButton *remove = new QPushButton(NEWFLICON(QFDIcon, Minus)->icon(), "", this);
         remove->setFixedSize(QSize(25, 25));
         remove->setIconSize(QSize(10, 10));
-        remove->setToolTip("删除数据");
+        remove->setToolTip("删除");
         connect(remove, &QPushButton::clicked, [this, i](int) { slotRemoveDataClicked(i); });
 
         QWidget *w       = new QWidget;

+ 35 - 2
QFD/widgets/ConfigSchemeDataWidget.cpp

@@ -1,6 +1,7 @@
 #include "ConfigSchemeDataWidget.h"
 
 #include "ProjectManager.h"
+#include "common/QFDIcon.h"
 
 #include <dbService/SchemeInfoService.h>
 
@@ -131,9 +132,27 @@ void ConfigSchemeDataWidget::refreshList()
 {
     m_listWidget->clear();
 
-    for (SchemaEval *eval : m_schemeList) {
-        QListWidgetItem *item = new QListWidgetItem(eval->name);
+    for (int i = 0; i < m_schemeList.size(); ++i) {
+        SchemaEval *eval = m_schemeList[i];
+
+        QLabel *title = new QLabel;
+        title->setText(eval->name);
+
+        QPushButton *remove = new QPushButton(NEWFLICON(QFDIcon, Minus)->icon(), "", this);
+        remove->setFixedSize(QSize(25, 25));
+        remove->setIconSize(QSize(10, 10));
+        remove->setToolTip("删除");
+        connect(remove, &QPushButton::clicked, [this, i](int) { slotRemoveDataClicked(i); });
+
+        QWidget *w       = new QWidget;
+        QHBoxLayout *lay = new QHBoxLayout(w);
+        lay->addWidget(title);
+        lay->addStretch();
+        lay->addWidget(remove);
+
+        QListWidgetItem *item = new QListWidgetItem;
         m_listWidget->addItem(item);
+        m_listWidget->setItemWidget(item, w);
     }
 }
 
@@ -162,3 +181,17 @@ void ConfigSchemeDataWidget::slotSelectedChanged()
     pixmap = pixmap.scaled(m_pic->width(), m_pic->height(), Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation);
     m_pic->setPixmap(pixmap);
 }
+
+void ConfigSchemeDataWidget::slotRemoveDataClicked(int index)
+{
+    bool ret = SchemeInfoService().deleteScheme(m_schemeList[index]->id);
+    if (ret) {
+        m_schemeList.removeAt(index);
+        refreshList();
+        emit sigDeleteScheme();
+
+        if (m_schemeList.size() > 0) {
+            selectFirst();
+        }
+    }
+}

+ 2 - 1
QFD/widgets/ConfigSchemeDataWidget.h

@@ -30,8 +30,8 @@ public:
     void selectLast();
 
 signals:
-
     void sigAddScheme();
+    void sigDeleteScheme();
 
 private:
     void initWidget();
@@ -43,6 +43,7 @@ private:
 private slots:
     void slotAddDataClicked();
     void slotSelectedChanged();
+    void slotRemoveDataClicked(int index);
 
 private:
     SchemePlanManager::SchemeProcessInfo m_process;

+ 8 - 1
QFD/widgets/DataCollectionWidget.cpp

@@ -75,6 +75,7 @@ DataCollectionWidget::DataCollectionWidget(ProjectInfo *proj, QWidget *parent) :
     connect(m_configExpert, &ConfigExpertDataWidget::sigConfigCurrentChanged, this,
             &DataCollectionWidget::slotConfigSelectionChanged);
     connect(m_configScheme, &ConfigSchemeDataWidget::sigAddScheme, this, &DataCollectionWidget::slotAddScheme);
+    connect(m_configScheme, &ConfigSchemeDataWidget::sigDeleteScheme, this, &DataCollectionWidget::slotDeleteScheme);
     connect(m_configMeasure, &ConfigMeasureDataWidget::sigAddData, this, &DataCollectionWidget::slotAddMeasureData);
     connect(m_configMeasure, &ConfigMeasureDataWidget::sigCurrentRowChanged, this,
             &DataCollectionWidget::slotCurrentMeasureDataSelected);
@@ -397,6 +398,12 @@ void DataCollectionWidget::slotAddScheme()
     }
 }
 
+void DataCollectionWidget::slotDeleteScheme()
+{
+    DataTableWidget *table = (DataTableWidget *)m_tab->currentWidget();
+    table->setupModels();
+}
+
 void DataCollectionWidget::slotAddSchemeInfo(const QString name, const QString remark, const QString path)
 {
     DataTableWidget *table = (DataTableWidget *)m_tab->currentWidget();
@@ -415,8 +422,8 @@ void DataCollectionWidget::slotAddSchemeInfo(const QString name, const QString r
     bool ret           = SchemeInfoService().AddSchemeInfoList({ scheme });
     if (ret) {
         m_configScheme->loadData();
+        table->setupModels();
         m_configScheme->selectLast();
-        table->addScheme(scheme);
     }
 }
 

+ 2 - 0
QFD/widgets/DataCollectionWidget.h

@@ -45,6 +45,8 @@ private slots:
 
     void slotAddScheme();
 
+    void slotDeleteScheme();
+
     void slotAddSchemeInfo(const QString name, const QString remark, const QString path);
 
     void slotAddMeasureData();

+ 2 - 1
QFD/widgets/DataTableWidget.cpp

@@ -687,6 +687,7 @@ void DataTableWidget::itemChanged(QStandardItem *item)
         }
         scheme->valueStr = valueList.join(";");
 
-        SchemeInfoService().UpdateValueStrById(scheme->id, scheme->valueStr);
+        bool ret = SchemeInfoService().UpdateValueStrById(scheme->id, scheme->valueStr);
+        qDebug() << __FUNCTION__ << __LINE__ << ret << endl;
     }
 }