|
@@ -1,5 +1,11 @@
|
|
|
#include "ConfigExpertDataWidget.h"
|
|
|
|
|
|
+#include "QFDAlert.h"
|
|
|
+
|
|
|
+#include <dbService/ClassSet.h>
|
|
|
+#include <dbService/UserService.h>
|
|
|
+#include <dbService/UserConfigService.h>
|
|
|
+
|
|
|
#include "common/QFDIcon.h"
|
|
|
|
|
|
#include <Common/Icon.h>
|
|
@@ -11,14 +17,13 @@
|
|
|
#include <QLabel>
|
|
|
#include <QListWidget>
|
|
|
|
|
|
+#include <QDebug>
|
|
|
+
|
|
|
ConfigExpertDataWidget::ConfigExpertDataWidget(QWidget *parent) : QWidget(parent)
|
|
|
{
|
|
|
initialize();
|
|
|
initLayout();
|
|
|
connectSignalsAndSlots();
|
|
|
-
|
|
|
- refreshAddedList();
|
|
|
- refreshExpList();
|
|
|
}
|
|
|
|
|
|
void ConfigExpertDataWidget::initialize()
|
|
@@ -36,28 +41,28 @@ void ConfigExpertDataWidget::initialize()
|
|
|
m_splitter = new QSplitter(Qt::Vertical, this);
|
|
|
m_splitter->setChildrenCollapsible(false);
|
|
|
|
|
|
- m_addedWidget = new QWidget(this);
|
|
|
- m_addedWidget->setObjectName("addedWidget");
|
|
|
- m_addedWidgetLayout = new QVBoxLayout(m_addedWidget);
|
|
|
- m_addedWidgetLayout->setSpacing(0);
|
|
|
- m_addedWidgetLayout->setMargin(0);
|
|
|
- m_addedListHeader = new QWidget(this);
|
|
|
- m_addedListHeader->setObjectName("addedListHeader");
|
|
|
- m_addedListHeader->setFixedHeight(30);
|
|
|
- m_addedListHeaderLayout = new QHBoxLayout(m_addedListHeader);
|
|
|
- m_addedListTitleLabel = new QLabel("已添加", this);
|
|
|
- m_addedListTitleLabel->setObjectName("addedListTitleLabel");
|
|
|
- m_addedListTitleLabel->setMargin(5);
|
|
|
- m_addedListTipsLabel = new QLabel("注:已添加专家的权重之和须等于1", this);
|
|
|
- m_addedListTipsLabel->setObjectName("addedListTipsLabel");
|
|
|
- m_addedListTipsLabel->setFixedHeight(20);
|
|
|
+ m_configWidget = new QWidget(this);
|
|
|
+ m_configWidget->setObjectName("addedWidget");
|
|
|
+ m_configWidgetLayout = new QVBoxLayout(m_configWidget);
|
|
|
+ m_configWidgetLayout->setSpacing(0);
|
|
|
+ m_configWidgetLayout->setMargin(0);
|
|
|
+ m_configListHeader = new QWidget(this);
|
|
|
+ m_configListHeader->setObjectName("addedListHeader");
|
|
|
+ m_configListHeader->setFixedHeight(30);
|
|
|
+ m_configListHeaderLayout = new QHBoxLayout(m_configListHeader);
|
|
|
+ m_configListTitleLabel = new QLabel("已添加", this);
|
|
|
+ m_configListTitleLabel->setObjectName("addedListTitleLabel");
|
|
|
+ m_configListTitleLabel->setMargin(5);
|
|
|
+ m_configListTipsLabel = new QLabel("注:已添加专家的权重之和须等于1", this);
|
|
|
+ m_configListTipsLabel->setObjectName("addedListTipsLabel");
|
|
|
+ m_configListTipsLabel->setFixedHeight(20);
|
|
|
|
|
|
m_saveButton = new QPushButton(NEWFLICON(FluentIcon, SAVE)->icon(), "", this);
|
|
|
m_saveButton->setObjectName("saveButton");
|
|
|
m_saveButton->setFixedSize(QSize(28, 28));
|
|
|
m_saveButton->setToolTip("保存");
|
|
|
- m_addedListWidget = new QListWidget(this);
|
|
|
- m_addedListWidget->setObjectName("addedListWidget");
|
|
|
+ m_configListWidget = new QListWidget(this);
|
|
|
+ m_configListWidget->setObjectName("addedListWidget");
|
|
|
|
|
|
m_expWidget = new QWidget(this);
|
|
|
m_expWidget->setObjectName("expWidget");
|
|
@@ -86,19 +91,19 @@ void ConfigExpertDataWidget::initLayout()
|
|
|
m_vBoxLayout->addWidget(m_titleLabel);
|
|
|
m_vBoxLayout->addWidget(m_splitter);
|
|
|
|
|
|
- m_splitter->addWidget(m_addedWidget);
|
|
|
+ m_splitter->addWidget(m_configWidget);
|
|
|
m_splitter->addWidget(m_expWidget);
|
|
|
|
|
|
- m_addedWidgetLayout->addWidget(m_addedListHeader);
|
|
|
- m_addedWidgetLayout->addWidget(m_addedListWidget);
|
|
|
- m_addedWidgetLayout->addWidget(m_addedListTipsLabel, Qt::AlignBottom);
|
|
|
+ m_configWidgetLayout->addWidget(m_configListHeader);
|
|
|
+ m_configWidgetLayout->addWidget(m_configListWidget);
|
|
|
+ m_configWidgetLayout->addWidget(m_configListTipsLabel, Qt::AlignBottom);
|
|
|
|
|
|
m_expWidgetLayout->addWidget(m_expListHeader);
|
|
|
m_expWidgetLayout->addWidget(m_expListWidget);
|
|
|
|
|
|
- m_addedListHeaderLayout->setMargin(0);
|
|
|
- m_addedListHeaderLayout->addWidget(m_addedListTitleLabel, Qt::AlignLeft);
|
|
|
- m_addedListHeaderLayout->addWidget(m_saveButton, Qt::AlignRight);
|
|
|
+ m_configListHeaderLayout->setMargin(0);
|
|
|
+ m_configListHeaderLayout->addWidget(m_configListTitleLabel, Qt::AlignLeft);
|
|
|
+ m_configListHeaderLayout->addWidget(m_saveButton, Qt::AlignRight);
|
|
|
|
|
|
m_expListHeaderLayout->setMargin(0);
|
|
|
m_expListHeaderLayout->addWidget(m_expListTitleLabel, Qt::AlignLeft);
|
|
@@ -126,22 +131,61 @@ void ConfigExpertDataWidget::initLayout()
|
|
|
|
|
|
void ConfigExpertDataWidget::connectSignalsAndSlots() { }
|
|
|
|
|
|
+void ConfigExpertDataWidget::setProcess(SchemePlanManager::SchemeProcessInfo process)
|
|
|
+{
|
|
|
+ m_process = process;
|
|
|
+}
|
|
|
+
|
|
|
+void ConfigExpertDataWidget::loadData()
|
|
|
+{
|
|
|
+ qDeleteAll(m_expertList);
|
|
|
+ m_expertList.clear();
|
|
|
+ if (!UserService().QueryUserListNotAdmin(&m_expertList)) {
|
|
|
+ QFDAlert::showAlertWithCode(QF_CODE_DATA_ERROR, this);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ qDeleteAll(m_configList);
|
|
|
+ m_configList.clear();
|
|
|
+ if (!UserConfigService().QueryUserConfigListInfoByEngineerId(&m_configList, m_process.projectId)) {
|
|
|
+ QFDAlert::showAlertWithCode(QF_CODE_DATA_ERROR, this);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ refreshExpList();
|
|
|
+ refreshAddedList();
|
|
|
+}
|
|
|
+
|
|
|
+void ConfigExpertDataWidget::showEvent(QShowEvent *event)
|
|
|
+{
|
|
|
+ Q_UNUSED(event)
|
|
|
+ loadData();
|
|
|
+}
|
|
|
+
|
|
|
+void ConfigExpertDataWidget::hideEvent(QHideEvent *event)
|
|
|
+{
|
|
|
+ Q_UNUSED(event)
|
|
|
+}
|
|
|
+
|
|
|
void ConfigExpertDataWidget::refreshAddedList()
|
|
|
{
|
|
|
- m_addedListWidget->clear();
|
|
|
+ m_configListWidget->clear();
|
|
|
+
|
|
|
+ for (int i = 0; i < m_configList.count(); i++) {
|
|
|
+ UserConfig *config = m_configList[i];
|
|
|
|
|
|
- for (int i = 1; i <= 3; i++) {
|
|
|
QListWidgetItem *item = new QListWidgetItem;
|
|
|
QWidget *w = new QWidget();
|
|
|
QHBoxLayout *hBox = new QHBoxLayout(w);
|
|
|
- QLabel *idx = new QLabel(QString::number(i));
|
|
|
+ QLabel *idx = new QLabel(QString::number(i + 1));
|
|
|
idx->setFixedWidth(25);
|
|
|
- QLabel *name = new QLabel(QString("专家%1").arg(i * 2));
|
|
|
+ QLabel *name = new QLabel(config->userName);
|
|
|
|
|
|
QDoubleSpinBox *spin = new QDoubleSpinBox(w);
|
|
|
spin->setRange(0, 1);
|
|
|
spin->setSingleStep(0.01);
|
|
|
spin->setFixedSize(QSize(60, 25));
|
|
|
+ spin->setValue(config->weight / 100);
|
|
|
|
|
|
QPushButton *import = new QPushButton(NEWFLICON(FluentIcon, DOWNLOAD)->icon(), "", w);
|
|
|
import->setFixedSize(QSize(25, 25));
|
|
@@ -163,8 +207,8 @@ void ConfigExpertDataWidget::refreshAddedList()
|
|
|
hBox->addWidget(import);
|
|
|
hBox->addWidget(remove, Qt::AlignRight);
|
|
|
|
|
|
- m_addedListWidget->addItem(item);
|
|
|
- m_addedListWidget->setItemWidget(item, w);
|
|
|
+ m_configListWidget->addItem(item);
|
|
|
+ m_configListWidget->setItemWidget(item, w);
|
|
|
|
|
|
idx->setStyleSheet("font-size:14px; color:#aaaaaa");
|
|
|
}
|
|
@@ -174,22 +218,20 @@ void ConfigExpertDataWidget::refreshExpList()
|
|
|
{
|
|
|
m_expListWidget->clear();
|
|
|
|
|
|
- for (int i = 1; i <= 50; i++) {
|
|
|
+ for (int i = 0; i < m_expertList.count(); i++) {
|
|
|
+ QFUser *expert = m_expertList[i];
|
|
|
+
|
|
|
QListWidgetItem *item = new QListWidgetItem;
|
|
|
QWidget *w = new QWidget();
|
|
|
QHBoxLayout *hBox = new QHBoxLayout(w);
|
|
|
- QLabel *idx = new QLabel(QString::number(i));
|
|
|
+ QLabel *idx = new QLabel(QString::number(i + 1));
|
|
|
idx->setFixedWidth(25);
|
|
|
- QLabel *name = new QLabel(QString("专家%1").arg(i));
|
|
|
+ QLabel *name = new QLabel(expert->userName);
|
|
|
QPushButton *button = new QPushButton(NEWFLICON(FluentIcon, ADD)->icon(), "", w);
|
|
|
button->setFixedSize(QSize(25, 25));
|
|
|
button->setIconSize(QSize(10, 10));
|
|
|
button->setToolTip("添加");
|
|
|
|
|
|
- if (i % 2 == 0 && i <= 6) {
|
|
|
- button->setHidden(true);
|
|
|
- }
|
|
|
-
|
|
|
hBox->setSpacing(0);
|
|
|
hBox->setMargin(10);
|
|
|
hBox->addWidget(idx);
|