#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);
|
this->setWindowTitle("权限管理");
|
vector<QString> lableList;
|
lableList.push_back("员工编号");
|
lableList.push_back("姓名");
|
lableList.push_back("部门");
|
lableList.push_back("登录时间");
|
lableList.push_back("注册时间");
|
|
lableList.push_back("职位");
|
clientSocket = new PmsClientSocket(this);
|
|
dia = new PermissonDialog(this,clientSocket);
|
|
m_model = new QStandardItemModel(globalPms.size(),lableList.size(),this);
|
|
|
QStringList lable;
|
for(int i=0;i<m_model->columnCount();i++){
|
lable << lableList.at(i);
|
}
|
|
m_model->setHorizontalHeaderLabels(lable);
|
|
ui->tableView->setModel(m_model);
|
ui->tableView->verticalHeader()->hide();
|
|
connect(this,SIGNAL(sendUserNo(PmsQueryResult)),dia,SLOT(recvUserNo(PmsQueryResult)));
|
connect(clientSocket,SIGNAL(notifyDateChange(vector<PmsQueryResult>)),this,SLOT(renderItemData(vector<PmsQueryResult>)));
|
connect(m_model,SIGNAL(itemChanged(QStandardItem*)),this,SLOT(listenItemChange(QStandardItem*)));
|
|
|
// 发一次查询全部数据请求
|
clientSocket->queryAllUserAboutUser();
|
|
|
|
|
QComBoxDelegate * qc = new QComBoxDelegate(this);
|
ui->tableView->setItemDelegateForColumn(5,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() << "更新当前员工信息"
|
<< globalPms[row].getUserNo();
|
// 发送员工编号信息
|
emit sendUserNo(globalPms[row]);
|
|
dia->setModal(true);
|
dia->show();
|
});
|
|
}
|
|
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()
|
{
|
|
PmsParam pm;
|
pm.setName(ui->lineEdit->text());
|
pm.setPermissonType(ui->lineEdit_2->text());
|
pm.setUserNo(ui->lineEdit_3->text());
|
|
clientSocket->queryPmsByParam(pm);
|
|
}
|
|
void PermissonWindow::listenItemChange(QStandardItem *item)
|
{
|
if(item->column()==m_model->columnCount()-1){
|
QString localText = item->text();
|
|
PmsPlusParma pm;
|
pm.setPermissonType(localText);
|
|
int id = globalPms[item->row()].getId();
|
pm.setId(id);
|
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(curRes.getUserNo()));
|
m_model->setItem(i,1,new QStandardItem(curRes.getName()));
|
m_model->setItem(i,2,new QStandardItem(QString::fromStdString(curRes.getDepartment())));
|
m_model->setItem(i,3,new QStandardItem(QString::fromStdString(curRes.getLoginTime())));
|
m_model->setItem(i,4,new QStandardItem(QString::fromStdString(curRes.getRegisterTime())));
|
|
m_model->blockSignals(true);
|
m_model->setItem(i,5,new QStandardItem(curRes.getPermissonType()));
|
m_model->blockSignals(false);
|
}
|
ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
|
|
qDebug() << "查询到的数量 " << globalPms.size();
|
}
|