#include "frmuseradd.h" #include "ui_frmuseradd.h" #include "dbquery.h" #include "frmmessagebox.h" frmUserAdd::frmUserAdd(QWidget *parent) : QWidget(parent), ui(new Ui::frmUserAdd) { ui->setupUi(this); this->initForm(); } frmUserAdd::~frmUserAdd() { delete ui; } void frmUserAdd::initForm() { //设置属性以便应用样式表 ui->widgetReturn->setProperty("flag", "return"); ui->btnFinger->setProperty("flag", "btn"); ui->widgetAdmin->setProperty("flag", "admin"); ui->widgetDoor->setProperty("flag", "door"); } bool frmUserAdd::checkUser() { QString userID = ui->txtUserID->text().trimmed(); QString userName = ui->txtUserName->text().trimmed(); QString userPwd = ui->txtUserPwd->text().trimmed(); QString userPwdX = ui->txtUserPwdX->text().trimmed(); if (userID.isEmpty()) { frmMessageBox::Instance()->showInfo("用户编号不能为空!"); frmMessageBox::Instance()->show(); ui->txtUserID->setFocus(); return false; } if (this->userID.isEmpty()) { if (DbQuery::existUser(userID)) { frmMessageBox::Instance()->showInfo("用户编号已经存在!"); frmMessageBox::Instance()->show(); ui->txtUserID->setFocus(); return false; } } if (userName.isEmpty()) { frmMessageBox::Instance()->showInfo("用户名称不能为空!"); frmMessageBox::Instance()->show(); ui->txtUserName->setFocus(); return false; } if (userPwd.isEmpty()) { frmMessageBox::Instance()->showInfo("用户密码不能为空!"); frmMessageBox::Instance()->show(); ui->txtUserPwd->setFocus(); return false; } if (userPwdX.isEmpty()) { frmMessageBox::Instance()->showInfo("确认密码不能为空!"); frmMessageBox::Instance()->show(); ui->txtUserPwdX->setFocus(); return false; } if (userPwd != userPwdX) { frmMessageBox::Instance()->showInfo("用户密码和确认密码不一致!"); frmMessageBox::Instance()->show(); ui->txtUserPwdX->setFocus(); return false; } return true; } void frmUserAdd::on_btnFinger_clicked() { //校验输入信息是否正确 if (!checkUser()) { return; } QString userID = ui->txtUserID->text().trimmed(); //查询该用户是否已经存在,存在才能继续录入,否则先要保存 if (!DbQuery::existUser(userID)) { frmMessageBox::Instance()->showInfo("用户不存在,请先保存该用户!"); frmMessageBox::Instance()->show(); ui->btnSave->setFocus(); return; } emit returnMain(2); emit userFinger(userID); } void frmUserAdd::on_btnSave_clicked() { //校验输入信息是否正确 if (!checkUser()) { return; } QString userID = ui->txtUserID->text().trimmed(); QString userName = ui->txtUserName->text().trimmed(); QString userPwd = ui->txtUserPwd->text().trimmed(); QStringList list; QList btns; //用户权限采用字符串形式存入数据库,比如 开柜/设置 表示拥有开柜和设置权限 list.clear(); btns = ui->widgetAdmin->findChildren(); foreach (QPushButton *btn, btns) { if (btn->isChecked()) { list.append(btn->text()); } } QString userAdmin = list.join("/"); //用户开门权限用字符串形式存入数据库,例如 外门/内门1 表示拥有外门和内门1的开门权限 list.clear(); btns = ui->widgetDoor->findChildren(); foreach (QPushButton *btn, btns) { if (btn->isChecked()) { list.append(btn->text()); } } QString userDoor = list.join("/"); //用户指纹信息暂时为空,需要录入指纹后自动更新 QString userFinger = "/////////"; //根据传进来的用户编号判断是需要添加用户还是修改用户 if (this->userID.isEmpty()) { DbQuery::addUserInfo(userID, userName, userPwd, userAdmin, userDoor, userFinger); } else { DbQuery::updateUserInfo(userID, userName, userPwd, userAdmin, userDoor, userFinger); } emit returnMain(0); } void frmUserAdd::on_btnReturn_clicked() { emit returnMain(0); } void frmUserAdd::receiveUserInfo(const QString &userID) { this->userID = userID; QString userName; QString userPwd; QString userAdmin; QString userDoor; QString userFinger; if (!this->userID.isEmpty()) { ui->btnFinger->setText("重录指纹"); DbQuery::getUserInfo(userID, userName, userPwd, userAdmin, userDoor, userFinger); } else { ui->btnFinger->setText("录入指纹"); } ui->txtUserID->setText(userID); ui->txtUserName->setText(userName); ui->txtUserPwd->setText(userPwd); ui->txtUserPwdX->setText(userPwd); QStringList list; QList btns; //根据权限自动选中对应权限按钮 list = userAdmin.split("/"); btns = ui->widgetAdmin->findChildren(); foreach (QPushButton *btn, btns) { btn->setChecked(list.contains(btn->text())); } //根据权限自动选中对应门按钮 list = userDoor.split("/"); btns = ui->widgetDoor->findChildren(); foreach (QPushButton *btn, btns) { btn->setChecked(list.contains(btn->text())); } }