Commit 9b693ad3 authored by ‘oliver.hui’'s avatar ‘oliver.hui’

10311803

No related merge requests found
Pipeline #30120 failed with stage
in 32 seconds
#include "sysusermgtv1.h"
#include <QDebug>
#include <QDockWidget>
#include <QGraphicsDropShadowEffect>
#include <QToolBar>
#include <QVBoxLayout>
#include <QDebug>
#include <tbaseutil/tdataparse.h>
#include <tbaseutil/tdataresponse.h>
#include <tbaseutil/tenumlist.h>
#include <tbaseutil/ttheme.h>
#include <tbaseutil/tresource.h>
#include <tbaseutil/ttheme.h>
#include <topcore/topclasshelper.h>
#include <topcore/topclasssqlthread.h>
#include <topcore/topenummanager.h>
#include <topcore/topcore.h>
#include <toputil/t.h>
#include <topcore/topenummanager.h>
#include <topcore/topmessagecontroller.h>
#include <topcore/topclasshelper.h>
#include <toputil/t.h>
#include <twidget/taccordion.h>
#include <twidget/tmessagebar.h>
#include <twidget/tmessagebox.h>
#include <twidget/tpagetool.h>
#include <twidget/tsearchentry.h>
#include <twidget/tsplitter.h>
#include <twidget/ttableview.h>
#include <twidget/taccordion.h>
#include "sysusermgtv1thread.h"
SysUserMgtV1::SysUserMgtV1(const QString &iModuleNameStr, const QVariantMap iUrlPars, QWidget *iParent)
......@@ -43,7 +43,6 @@ SysUserMgtV1::SysUserMgtV1(const QString &iModuleNameStr, const QVariantMap iUrl
if (mProductCategoryLst.isEmpty()) {
mProductCategoryLst.append(APP->productCategory());
}
//
mCenterSplitter = new TSplitter(this);
this->setCentralWidget(mCenterSplitter);
......@@ -93,24 +92,19 @@ void SysUserMgtV1::initNaviView()
//设置导航栏顶部label 伸缩按钮区域 显示导航栏文本
QLabel *naviLabel = new QLabel(ttr("Navigation"));
naviLabel->setProperty("SS_TYPE", "SUBHEADER");
naviLayout->addWidget(naviLabel,0);
naviLayout->addWidget(naviLabel, 0);
naviLayout->addSpacing(TTHEME_DP(4));
//ui界面与按钮窗口
QFrame *naviWidget = new QFrame(this);
naviLayout->addWidget(naviWidget);
//垂直布局left包含ui解析窗口 与按钮布局
QVBoxLayout *leftLayout = new QVBoxLayout(naviWidget);
//新建ui解析窗口
mNaviView = new TUiLoader(this);
TUiLoader *filterUi = qobject_cast<TUiLoader*>(mNaviView);
filterUi->setSelf(this);
filterUi->setScriptEngine(APP->scriptEngine());
filterUi->setUiStr(ui("navi").toString());
mNaviView->setSelf(this);
mNaviView->setScriptEngine(APP->scriptEngine());
mNaviView->setUiStr(ui("navi").toString());
leftLayout->addWidget(mNaviView);
QHBoxLayout *BtnsLayout = new QHBoxLayout();
......@@ -142,7 +136,6 @@ void SysUserMgtV1::initNaviView()
void SysUserMgtV1::initTableView()
{
//布局
//新建表格窗口mbodywidget
mBodyWidget = new QWidget(this);
//表格窗口mbodywidget添加垂直布局vboxlayout
......@@ -153,7 +146,6 @@ void SysUserMgtV1::initTableView()
//新加表格视图mtableview
mTableView = new TTableView(this);
//新建表头 空白无内容
mTableConf = new TopClassTableConf;
//把view里面的键值对给到mTableConf
......@@ -164,12 +156,14 @@ void SysUserMgtV1::initTableView()
//将表头添加进表格中
mTableView->setHeaderItem(headerItem);
// 给表设置键和主键
mTableView->setDataKeyList(mTableConf->dataKeys);
mTableView->setPrimaryKey(mTableConf->primaryKey);
//创建连接,当用户点击表头图标时,切换数据的正序反序排列顺序
QHeaderView *horizontaHeaderView = mTableView->horizontalHeader();
//对应功能 点击表头排序功能
connect(horizontaHeaderView, SIGNAL(sortIndicatorChanged(int,Qt::SortOrder)),
this, SLOT(refresh()));
//添加 搜索按钮工具TSearchEntry
if (QToolBar *toolbar = qobject_cast<QToolBar*>(uim()->getWidget("MAIN_TOOLBAR"))) {
......@@ -179,20 +173,15 @@ void SysUserMgtV1::initTableView()
}
//表格窗口mbodywidget添加mTableview
vboxlayout->addWidget(mTableView, 1);
//添加 翻页按钮工具TpageTool
if (QToolBar *toolbar = qobject_cast<QToolBar*>(uim()->getWidget("BOTTOM_TOOLBAR"))) {
vboxlayout->addWidget(toolbar, 2);
mPageTool = qobject_cast<TPageTool *>(uim()->getWidget("BOTTOM_TOOLBAR/PAGE_TOOL"));
}
//功能
//点击事件切换功能
connect(mTableView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
this, SLOT(onSelectionChanged()));
//点击表头排序功能
connect(horizontaHeaderView, SIGNAL(sortIndicatorChanged(int,Qt::SortOrder)),
this, SLOT(refresh()));
//添加 右键弹窗工具
if (QMenu *table_popup = qobject_cast<QMenu *>(uim()->getWidget("TABLEVIEW_POPUP"))) {
mTableView->setContextMenu(table_popup);
......@@ -311,7 +300,8 @@ void SysUserMgtV1::refresh(bool iResetPageBol)
mDetailView->setUid(0);
}
TSqlSelectorV2 SysUserMgtV1::getSqlSelector(bool iResetPageBol){
TSqlSelectorV2 SysUserMgtV1::getSqlSelector(bool iResetPageBol)
{
TSqlSelectorV2 selector;
if (!mTableConf->dbSql.isEmpty()) {
selector.setTable(QString("(%1) _TEMP_TABLE_").arg(mTableConf->dbSql));
......@@ -415,7 +405,8 @@ void SysUserMgtV1::newItem()
}
//删除模块
void SysUserMgtV1::deleteItem(const QVariantList &iIdLst){
void SysUserMgtV1::deleteItem(const QVariantList &iIdLst)
{
//不能删除当前登陆的用户
if (selectedNames().contains(APP->userName())) {
alertError(ttr("Current login user can not be deleted!"));
......
......@@ -26,14 +26,12 @@ public slots:
bool canModify();
QVariantList selectedItems();
void deleteItem(const QVariantList &iIdLst);
private slots:
void onSelectionChanged();
void onDetailChanged();
void onDetailSaved(const QVariant &iUidStr);
void onNaviReset();
void onPageChanged();
private:
void initNaviView();
void initTableView();
......@@ -42,7 +40,6 @@ private:
TSqlSelectorV2 getSqlSelector(bool iResetPageBol = true);
QString uiloaderWhere();
void fillTableData(const TDataResponse &iDataRes);
private:
QStringList mProductCategoryLst;
TSplitter *mCenterSplitter = nullptr;
......@@ -56,5 +53,4 @@ private:
SysUserV1 *mDetailView = nullptr;
};
#endif // SYSUSERMGTV1_H
......@@ -20,24 +20,11 @@
#include <twidget/tuiloader.h>
#include "sysuserv1thread.h"
SysUserV1::SysUserV1(const QString &iModuleNameStr,const QVariantMap iUrlPars,QWidget *iparent)
SysUserV1::SysUserV1(const QString &iModuleNameStr, const QVariantMap iUrlPars, QWidget *iparent)
: TopClassAbs(iparent)
{
this->setLicenseKey("sys_common");
this->initModule(iModuleNameStr,iUrlPars);
//产品相关 大致明白意思没有具体了解为什么这样做
QVariant prodCfg = iUrlPars.value("product_category");
if (prodCfg.type() == QVariant::List || prodCfg.type() == QVariant::StringList) {
for (QVariant row : prodCfg.toList()) {
mProductCategoryLst.append(row.toString());
}
} else if (!prodCfg.toString().isEmpty()) {
mProductCategoryLst.append(prodCfg.toString());
}
if (mProductCategoryLst.isEmpty()) {
mProductCategoryLst.append(APP->productCategory());
}
this->initModule(iModuleNameStr, iUrlPars);
//初始化布局
initCenterUi();
......@@ -86,7 +73,7 @@ void SysUserV1::initCenterUi()
mUiLoader->setProperty("SS_BG", "PANEL");
mUiLoader->setProperty("SS_BORDER", 1);
mUiLoader->setUiStr(ui("user-info").toString());
mBodyLayout->addWidget(mUiLoader,0);
mBodyLayout->addWidget(mUiLoader, 0);
//数据更改关联功能。之前以为initdetail涵盖了数据修改 但uiloader数据修改其实应该具体设置
connect(mUiLoader, SIGNAL(dataChanged()), this, SLOT(setDataModified()));
......@@ -108,7 +95,8 @@ void SysUserV1::resizeEvent(QResizeEvent *iEvent)
}
//uid变化模块
void SysUserV1::uidChangeEvent(const QString &iUidStr){
void SysUserV1::uidChangeEvent(const QString &iUidStr)
{
//uid无值为初始0
if(iUidStr.toInt() == 0){
......@@ -119,16 +107,16 @@ void SysUserV1::uidChangeEvent(const QString &iUidStr){
QVariant data = doThreadWork(new SysUserV1Thread(this), "LOAD_DATA", QVariant(this->uid()));
unloading();
//获取data.tomap();的回执
TDataResponse dataRes(data.toMap());
if(dataRes.hasError()){
if(dataRes.hasError()) {
alertError(ttr("load data failed!"), dataRes.errText());
}else{
} else {
clearData();
//问题:dataRes已经是data.tomap为什么还要取dataRes.data().toMap?
//猜测:这里应该是对应存储功能中getData分割.字段的相反功能 带.字段载入
QVariantMap dataMap = dataRes.data().toMap();
QVariantMap attrData = dataMap.value("attr_data").toMap();
for(QString key : attrData.keys()){
for(QString key : attrData.keys()) {
dataMap.insert("attr_data." + key, attrData.value(key));
}
setData(dataMap);
......@@ -136,47 +124,50 @@ void SysUserV1::uidChangeEvent(const QString &iUidStr){
}
}
//设置状态栏调节:可
mUiLoader->setState("status", "unable");
mUiLoader->setState("status", "enable");
//设置数据处于修改:否
setDataModified(false);
}
void SysUserV1::clearData(){
void SysUserV1::clearData()
{
//载入 构造map 清空原数据
mUiLoader->loadValues(QVariantMap(), true);
}
void SysUserV1::setData(const QVariantMap &iDataMap){
void SysUserV1::setData(const QVariantMap &iDataMap)
{
//载入 形参map 不清原数据 须接收未显示字段 比如product_category
mUiLoader->loadValues(iDataMap, false);
//问题:原代码此处会设置setTitie 为什么需要设置?
}
//衔接mgt->newitem模块
void SysUserV1::create(){
void SysUserV1::create()
{
setLastUid(this->uid());
//问题: true对应false设置效果不明
setUid(0, true);
mUiLoader->setState("status", "disable");
QVariantMap defaultValueMap;
defaultValueMap.insert("product_category", mProductCategoryLst);
//意义不明未深究
defaultValueMap = defaultValueMap.unite(config("default_value").toMap());
//
setData(defaultValueMap);
//设置数据处于修改 默认true
setDataModified();
}
//取消模块 同时触发mgt-detailchanged 页面变化
void SysUserV1::reload(){
void SysUserV1::reload()
{
QString uidStr = lastUid().isEmpty() ? uid() : lastUid();
//uidchanged true setid 为真调用uidchangged
setUid(uidStr, true);
}
//保存模块
void SysUserV1::saveData(){
void SysUserV1::saveData()
{
//写报错不熟练
//获取提交错误
QVariantList errList = mUiLoader->validateAll("COMMIT", true, "ERROR");
......@@ -211,6 +202,7 @@ void SysUserV1::saveData(){
}
QVariantMap SysUserV1::getData() const{
//ui获取所有字段
QVariantMap dataMap = mUiLoader->getAllValues(true).toVariant().toMap();
QStringList keys = dataMap.keys();
for(QString key : keys){
......@@ -231,9 +223,6 @@ QVariantMap SysUserV1::getData() const{
attrData.insert("effective_date", APP->getServerToday());
dataMap.insert("attr_data", attrData);
}
if (dataMap.value("product_category").toStringList().isEmpty()) {
dataMap.insert("product_category", mProductCategoryLst);
}
//mUiLoader->getAllValues无法获取id值 手动添加
dataMap.insert("id", this->uid());
......
......@@ -33,8 +33,6 @@ private:
void initCenterUi();
private:
QStringList mProductCategoryLst;
QHBoxLayout *mBodyLayout = nullptr;
TUiLoader *mUiLoader = nullptr;
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment