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