From 74a7faf2cbde2efdc02df4f96cf4e15a33b5750c Mon Sep 17 00:00:00 2001
From: lzh <3394874942@qq.com>
Date: 星期五, 01 十一月 2024 10:46:10 +0800
Subject: [PATCH] Merge branch 'master' of ssh://115.28.86.8:29418/~admin/昆仑_1025

---
 Client/姜可庚/code/2024kunlun_project_permisson/permissonwindow.cpp |  166 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 166 insertions(+), 0 deletions(-)

diff --git "a/Client/\345\247\234\345\217\257\345\272\232/code/2024kunlun_project_permisson/permissonwindow.cpp" "b/Client/\345\247\234\345\217\257\345\272\232/code/2024kunlun_project_permisson/permissonwindow.cpp"
new file mode 100644
index 0000000..71580ef
--- /dev/null
+++ "b/Client/\345\247\234\345\217\257\345\272\232/code/2024kunlun_project_permisson/permissonwindow.cpp"
@@ -0,0 +1,166 @@
+锘�#include "permissonwindow.h"
+#include "qcomboxdelegate.h"
+#include "ui_permissonwindow.h"
+
+#include <QDialog>
+#include <QMouseEvent>
+#include <QPushButton>
+
+PermissonWindow::PermissonWindow(QWidget *parent) :
+    QMainWindow(parent),
+    ui(new Ui::PermissonWindow)
+{
+    ui->setupUi(this);
+    clientSocket = new PmsClientSocket(this);
+
+    dia = new PermissonDialog(this,clientSocket);
+
+
+
+    connect(this,SIGNAL(sendUserNo(PmsQueryResult)),dia,SLOT(recvUserNo(PmsQueryResult)));
+    connect(clientSocket,SIGNAL(notifyDateChange(vector<PmsQueryResult>)),this,SLOT(renderItemData(vector<PmsQueryResult>)));
+
+    roleMap["鏅�氶噰鐭垮憳宸�"] = 1;
+    roleMap["鎶�鏈淮鎶や汉鍛�"] = 2;
+    roleMap["绯荤粺绠$悊鍛�"] = 3;
+    roleMap["瀹夊叏绠$悊浜哄憳"] = 4;
+
+    this->setWindowTitle("鏉冮檺绠$悊");
+    vector<QString> lableList;
+    lableList.push_back("鍛樺伐缂栧彿");
+    lableList.push_back("濮撳悕");
+    lableList.push_back("褰撳ぉ宸ヤ綔鏃堕棿");
+    lableList.push_back("褰撳ぉ缁撴潫鏃堕棿");
+    lableList.push_back("鑱屼綅");
+
+
+
+    m_model = new QStandardItemModel(globalPms.size(),lableList.size(),this);
+
+    ui->tableView->setModel(m_model);
+
+    for(int i=0;i<m_model->rowCount();i++){
+        PmsQueryResult curRes = globalPms[i];
+        m_model->setItem(i,0,new QStandardItem(QString::fromStdString(curRes.getUserNo())));
+        m_model->setItem(i,1,new QStandardItem(QString::fromLocal8Bit(curRes.getName().c_str())));
+        m_model->setItem(i,2,new QStandardItem(QString::fromStdString(curRes.getStartDateTime())));
+        m_model->setItem(i,3,new QStandardItem(QString::fromStdString(curRes.getEndDateTime())));
+        m_model->setItem(i,4,new QStandardItem(QString::fromLocal8Bit(curRes.getPermissonType().c_str())));
+
+    }
+
+    ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
+    ui->tableView->verticalHeader()->hide();
+
+
+    QStringList lable;
+    for(int i=0;i<m_model->columnCount();i++){
+        lable << lableList.at(i);
+    }
+
+    m_model->setHorizontalHeaderLabels(lable);
+
+    QComBoxDelegate * qc = new QComBoxDelegate(this);
+
+
+
+    ui->tableView->setItemDelegateForColumn(4,qc);
+
+
+    m = new QMenu(this);
+    QAction * ac1 = new QAction("缂栬緫褰撳墠鍛樺伐鏉冮檺");
+
+
+    m->addAction(ac1);
+
+
+    ui->tableView->viewport()->installEventFilter(this);
+
+
+
+
+    connect(ac1,&QAction::triggered,[=]{
+         int row = ui->tableView->currentIndex().row();
+         qDebug() << "鏇存柊褰撳墠鍛樺伐淇℃伅"
+                  <<  QString::fromStdString( globalPms[row].getUserNo());
+         // 鍙戦�佸憳宸ョ紪鍙蜂俊鎭�
+         emit sendUserNo(globalPms[row]);
+
+         dia->setModal(true);
+         dia->show();
+    });
+
+
+    connect(m_model,SIGNAL(itemChanged(QStandardItem*)),this,SLOT(listenItemChange(QStandardItem*)));
+
+
+}
+
+bool PermissonWindow::eventFilter(QObject *watch, QEvent *event)
+{
+    if(watch == ui->tableView->viewport() || watch == ui->tableView->verticalHeader()->viewport()
+
+            || watch == ui->tableView->horizontalHeader()->viewport()){
+        if(event->type()==QEvent::MouseButtonPress
+                && ((QMouseEvent *)event)->button()==Qt::RightButton
+                && m_model->rowCount() > 0){
+            m->exec(QCursor::pos());
+        }
+
+    }
+    return QMainWindow::eventFilter(watch,event);
+}
+
+
+PermissonWindow::~PermissonWindow()
+{
+    delete dbInfo;
+    delete dia;
+    delete m_model;
+    delete m;
+    delete ui;
+}
+
+void PermissonWindow::on_pushButton_clicked()
+{
+    qDebug() << "鍙戦�佹煡璇㈣姹�";
+    PmsParam pm;
+    pm.setName(ui->lineEdit->text().toStdString());
+    pm.setPermissonType(ui->lineEdit_2->text().toStdString());
+    pm.setUserNo(ui->lineEdit_3->text().toStdString());
+
+    clientSocket->queryPmsByParam(pm);
+    qDebug() << "鏌ヨ涓�";
+
+}
+
+void PermissonWindow::listenItemChange(QStandardItem *item)
+{
+    QString localText = item->text();
+    if(roleMap.count(localText.toStdString())){
+        qDebug() << "鍙戣捣鑱屼綅鏇存柊璇锋眰";
+        PmsPlusParma pm;
+        pm.setPermissonType(localText.toStdString());
+        pm.setRoleId(roleMap[localText.toStdString()]);
+        clientSocket->updatePmsByParam(pm);
+    }
+}
+
+void PermissonWindow::renderItemData(vector<PmsQueryResult> res)
+{
+    globalPms = res;
+    m_model->setRowCount(globalPms.size());
+
+    for(int i=0;i<m_model->rowCount();i++){
+        PmsQueryResult curRes = globalPms[i];
+        m_model->setItem(i,0,new QStandardItem(QString::fromStdString(curRes.getUserNo())));
+        m_model->setItem(i,1,new QStandardItem(QString::fromLocal8Bit(curRes.getName().c_str())));
+        m_model->setItem(i,2,new QStandardItem(QString::fromStdString(curRes.getStartDateTime())));
+        m_model->setItem(i,3,new QStandardItem(QString::fromStdString(curRes.getEndDateTime())));
+        m_model->setItem(i,4,new QStandardItem(QString::fromLocal8Bit(curRes.getPermissonType().c_str())));
+
+    }
+    ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
+    qDebug() << "鏌ヨ鍒扮殑鏁伴噺 " << globalPms.size();
+}
+

--
Gitblit v1.8.0