Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
fmPOS
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zhenfei.zhang
fmPOS
Commits
930d88e8
Commit
930d88e8
authored
Mar 01, 2017
by
NitefullWind
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1. 实现登录功能。 2. 修复菜单按钮展开时的小bug.
parent
10ba8584
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
151 additions
and
43 deletions
+151
-43
fmp_home/fmnetwork.cpp
+4
-4
fmp_home/fmnetwork.h
+1
-1
fmp_home/fmp_home.cpp
+18
-0
fmp_home/fmp_home.h
+4
-3
fmp_home/fmp_home_i.h
+4
-1
fmp_home/fmp_home_navwindow.cpp
+32
-19
fmp_home/fmp_home_navwindow.h
+3
-0
fmp_home/fmp_home_p.cpp
+19
-6
fmp_home/fmp_home_p.h
+6
-1
fmp_home/fmp_login.cpp
+43
-8
fmp_home/fmp_login.h
+13
-0
fmp_home/fmp_login.ui
+4
-0
No files found.
fmp_home/fmnetwork.cpp
View file @
930d88e8
...
@@ -20,12 +20,12 @@ FMNetwork::~FMNetwork()
...
@@ -20,12 +20,12 @@ FMNetwork::~FMNetwork()
delete
_req
;
delete
_req
;
}
}
bool
FMNetwork
::
post
(
const
QString
*
url
,
const
QByteArray
*
reqData
,
QByteArray
*
rspData
)
bool
FMNetwork
::
post
(
const
QString
&
url
,
const
QByteArray
*
reqData
,
QByteArray
*
rspData
)
{
{
qDebug
()
<<
"Post Url: "
<<
*
url
;
qDebug
()
<<
"Post Url: "
<<
url
;
qDebug
()
<<
"Post Data: "
<<
*
reqData
;
qDebug
()
<<
"Post Data: "
<<
*
reqData
;
_req
->
setUrl
(
*
url
);
_req
->
setUrl
(
url
);
// 设置请求头
// 设置请求头
_req
->
setHeader
(
QNetworkRequest
::
ContentTypeHeader
,
"application/json"
);
_req
->
setHeader
(
QNetworkRequest
::
ContentTypeHeader
,
"application/json"
);
...
@@ -47,7 +47,7 @@ bool FMNetwork::post(const QString *url, const QByteArray *reqData, QByteArray *
...
@@ -47,7 +47,7 @@ bool FMNetwork::post(const QString *url, const QByteArray *reqData, QByteArray *
timer
.
stop
();
timer
.
stop
();
if
(
reply
->
error
()
==
QNetworkReply
::
NoError
)
{
if
(
reply
->
error
()
==
QNetworkReply
::
NoError
)
{
*
rspData
=
reply
->
readAll
();
*
rspData
=
reply
->
readAll
();
qDebug
()
<<
tr
(
"Recv data:
%1"
)
<<
*
rspData
;
qDebug
()
<<
tr
(
"Recv data:
"
)
<<
QString
::
fromUtf8
(
*
rspData
)
;
}
else
{
}
else
{
_errorString
=
reply
->
errorString
();
_errorString
=
reply
->
errorString
();
qDebug
()
<<
tr
(
"Network error: %1"
).
arg
(
_errorString
);
qDebug
()
<<
tr
(
"Network error: %1"
).
arg
(
_errorString
);
...
...
fmp_home/fmnetwork.h
View file @
930d88e8
...
@@ -20,7 +20,7 @@ public:
...
@@ -20,7 +20,7 @@ public:
* @param rspData 返回数据
* @param rspData 返回数据
* @return 是否有错误
* @return 是否有错误
*/
*/
bool
post
(
const
QString
*
url
,
const
QByteArray
*
reqData
,
QByteArray
*
rspData
);
bool
post
(
const
QString
&
url
,
const
QByteArray
*
reqData
,
QByteArray
*
rspData
);
QString
errorString
()
const
{
return
_errorString
;}
QString
errorString
()
const
{
return
_errorString
;}
private
:
private
:
...
...
fmp_home/fmp_home.cpp
View file @
930d88e8
...
@@ -29,3 +29,21 @@ int FMPHome::Uninit()
...
@@ -29,3 +29,21 @@ int FMPHome::Uninit()
Q_D
(
FMPHome
);
Q_D
(
FMPHome
);
return
d
->
Uninit
();
return
d
->
Uninit
();
}
}
int
FMPHome
::
login
()
{
Q_D
(
FMPHome
);
return
d
->
login
();
}
bool
FMPHome
::
isLogined
()
{
Q_D
(
FMPHome
);
return
d
->
_isLogined
;
}
QString
FMPHome
::
userName
()
{
Q_D
(
FMPHome
);
return
d
->
_userName
;
}
fmp_home/fmp_home.h
View file @
930d88e8
...
@@ -21,12 +21,13 @@ public:
...
@@ -21,12 +21,13 @@ public:
int
Uninit
();
int
Uninit
();
int
Upgrade
()
{
return
0
;}
int
Upgrade
()
{
return
0
;}
int
Downgrade
()
{
return
0
;}
int
Downgrade
()
{
return
0
;}
int
login
();
bool
isLogined
();
QString
userName
();
public
slots
:
public
slots
:
void
OnUpgraded
()
{}
void
OnUpgraded
()
{}
public
:
int
Login
()
{
return
0
;}
private
:
private
:
FMPHomePrivate
*
d_ptr
;
FMPHomePrivate
*
d_ptr
;
bool
_inited
;
bool
_inited
;
...
...
fmp_home/fmp_home_i.h
View file @
930d88e8
...
@@ -2,11 +2,14 @@
...
@@ -2,11 +2,14 @@
#define FMP_HOME_I_H
#define FMP_HOME_I_H
#include <fmp_base_i.h>
#include <fmp_base_i.h>
#include <QString>
class
FMPHomeInterface
:
public
FMPluginInterface
class
FMPHomeInterface
:
public
FMPluginInterface
{
{
public
:
public
:
virtual
int
Login
()
=
0
;
virtual
int
login
()
=
0
;
virtual
bool
isLogined
()
=
0
;
virtual
QString
userName
()
=
0
;
};
};
Q_DECLARE_INTERFACE
(
FMPHomeInterface
,
"fmp.home"
)
Q_DECLARE_INTERFACE
(
FMPHomeInterface
,
"fmp.home"
)
...
...
fmp_home/fmp_home_navwindow.cpp
View file @
930d88e8
...
@@ -21,6 +21,7 @@ NavWindow::NavWindow(QWidget *parent) :
...
@@ -21,6 +21,7 @@ NavWindow::NavWindow(QWidget *parent) :
MenuUiProp
.
distance
=
100
;
MenuUiProp
.
distance
=
100
;
MenuUiProp
.
beginAngle
=
-
(
PI
*
0.45
);
MenuUiProp
.
beginAngle
=
-
(
PI
*
0.45
);
MenuUiProp
.
endAngle
=
(
PI
*
0.45
);
MenuUiProp
.
endAngle
=
(
PI
*
0.45
);
isUseAnimation
=
true
;
setNavStatus
(
Default
);
setNavStatus
(
Default
);
...
@@ -29,6 +30,11 @@ NavWindow::NavWindow(QWidget *parent) :
...
@@ -29,6 +30,11 @@ NavWindow::NavWindow(QWidget *parent) :
connect
(
_btn_group
,
SIGNAL
(
buttonClicked
(
QAbstractButton
*
)),
this
,
SLOT
(
onMenuBtnClicked
(
QAbstractButton
*
)));
connect
(
_btn_group
,
SIGNAL
(
buttonClicked
(
QAbstractButton
*
)),
this
,
SLOT
(
onMenuBtnClicked
(
QAbstractButton
*
)));
initMenu
();
initMenu
();
connect
(
this
,
SIGNAL
(
statusChanged
(
NavStatus
)),
this
,
SLOT
(
onStatusChanged
(
NavStatus
)));
connect
(
_animationShow
,
&
QParallelAnimationGroup
::
finished
,
this
,
[
=
](){
ui
->
navMainBtn
->
lower
();
});
}
}
NavWindow
::~
NavWindow
()
NavWindow
::~
NavWindow
()
...
@@ -41,22 +47,7 @@ NavWindow::~NavWindow()
...
@@ -41,22 +47,7 @@ NavWindow::~NavWindow()
void
NavWindow
::
setNavStatus
(
const
NavStatus
status
)
void
NavWindow
::
setNavStatus
(
const
NavStatus
status
)
{
{
this
->
_status
=
status
;
this
->
_status
=
status
;
switch
(
status
)
{
emit
statusChanged
(
status
);
case
Default
:
spreadMenus
(
false
);
ui
->
navMainBtn
->
setStyleSheet
(
"#navMainBtn{ border-image: url(:fm-icon_01)}"
);
break
;
case
Spread
:
spreadMenus
(
true
);
ui
->
navMainBtn
->
setStyleSheet
(
"#navMainBtn{ border-image: url(:fm-icon_02)}"
);
break
;
case
Message
:
ui
->
navMainBtn
->
setStyleSheet
(
"#navMainBtn{ border-image: url(:xiaoxi)}"
);
break
;
default
:
ui
->
navMainBtn
->
setStyleSheet
(
"#navMainBtn{ border-image: url(:fm-icon_01)}"
);
break
;
}
}
}
void
NavWindow
::
on_navMainBtn_clicked
()
void
NavWindow
::
on_navMainBtn_clicked
()
...
@@ -68,11 +59,14 @@ void NavWindow::on_navMainBtn_clicked()
...
@@ -68,11 +59,14 @@ void NavWindow::on_navMainBtn_clicked()
void
NavWindow
::
spreadMenus
(
const
bool
isSpread
)
void
NavWindow
::
spreadMenus
(
const
bool
isSpread
)
{
{
if
(
isSpread
)
{
//! Start animation.
if
(
isSpread
&&
isUseAnimation
)
{
ui
->
navMainBtn
->
raise
();
_animationShow
->
start
();
_animationShow
->
start
();
}
}
//! Set the menu btns are visible.
foreach
(
QAbstractButton
*
b
,
_btn_group
->
buttons
())
{
foreach
(
QAbstractButton
*
b
,
_btn_group
->
buttons
())
{
QPushButton
*
btn
=
qobject_cast
<
QPushButton
*>
(
b
);
auto
btn
=
qobject_cast
<
QPushButton
*>
(
b
);
btn
->
setVisible
(
isSpread
);
btn
->
setVisible
(
isSpread
);
}
}
}
}
...
@@ -109,7 +103,6 @@ void NavWindow::initMenu()
...
@@ -109,7 +103,6 @@ void NavWindow::initMenu()
animation
->
setEndValue
(
btn
->
geometry
());
animation
->
setEndValue
(
btn
->
geometry
());
_animationShow
->
addAnimation
(
animation
);
_animationShow
->
addAnimation
(
animation
);
}
}
ui
->
navMainBtn
->
raise
();
}
}
void
NavWindow
::
onMenuBtnClicked
(
QAbstractButton
*
btn
)
void
NavWindow
::
onMenuBtnClicked
(
QAbstractButton
*
btn
)
...
@@ -117,3 +110,23 @@ void NavWindow::onMenuBtnClicked(QAbstractButton *btn)
...
@@ -117,3 +110,23 @@ void NavWindow::onMenuBtnClicked(QAbstractButton *btn)
QString
btnName
=
btn
->
objectName
();
QString
btnName
=
btn
->
objectName
();
emit
menuBtnClicked
(
btnName
);
emit
menuBtnClicked
(
btnName
);
}
}
void
NavWindow
::
onStatusChanged
(
NavStatus
status
)
{
switch
(
status
)
{
case
Default
:
spreadMenus
(
false
);
ui
->
navMainBtn
->
setStyleSheet
(
"#navMainBtn{ border-image: url(:fm-icon_01)}"
);
break
;
case
Spread
:
spreadMenus
(
true
);
ui
->
navMainBtn
->
setStyleSheet
(
"#navMainBtn{ border-image: url(:fm-icon_02)}"
);
break
;
case
Message
:
ui
->
navMainBtn
->
setStyleSheet
(
"#navMainBtn{ border-image: url(:xiaoxi)}"
);
break
;
default
:
ui
->
navMainBtn
->
setStyleSheet
(
"#navMainBtn{ border-image: url(:fm-icon_01)}"
);
break
;
}
}
fmp_home/fmp_home_navwindow.h
View file @
930d88e8
...
@@ -50,10 +50,12 @@ public slots:
...
@@ -50,10 +50,12 @@ public slots:
signals
:
signals
:
void
menuBtnClicked
(
QString
btnName
);
void
menuBtnClicked
(
QString
btnName
);
void
statusChanged
(
NavStatus
status
);
private
slots
:
private
slots
:
void
on_navMainBtn_clicked
();
void
on_navMainBtn_clicked
();
void
onMenuBtnClicked
(
QAbstractButton
*
);
void
onMenuBtnClicked
(
QAbstractButton
*
);
void
onStatusChanged
(
NavStatus
status
);
private
:
private
:
Ui
::
NavWindow
*
ui
;
Ui
::
NavWindow
*
ui
;
...
@@ -74,6 +76,7 @@ private:
...
@@ -74,6 +76,7 @@ private:
double
endAngle
;
double
endAngle
;
};
};
MenuUiProps
MenuUiProp
;
MenuUiProps
MenuUiProp
;
bool
isUseAnimation
;
};
};
#endif // NAVWINDOW_H
#endif // NAVWINDOW_H
fmp_home/fmp_home_p.cpp
View file @
930d88e8
...
@@ -8,7 +8,10 @@
...
@@ -8,7 +8,10 @@
FMPHomePrivate
::
FMPHomePrivate
(
FMPHome
*
q
)
FMPHomePrivate
::
FMPHomePrivate
(
FMPHome
*
q
)
:
q_ptr
(
q
),
:
q_ptr
(
q
),
_navWindow
(
new
NavWindow
)
_navWindow
(
new
NavWindow
),
_isLogined
(
false
),
_userName
(
""
),
_errorMsg
(
""
)
{
{
}
}
...
@@ -19,11 +22,7 @@ FMPHomePrivate::~FMPHomePrivate()
...
@@ -19,11 +22,7 @@ FMPHomePrivate::~FMPHomePrivate()
int
FMPHomePrivate
::
Init
()
int
FMPHomePrivate
::
Init
()
{
{
loginWnd
=
new
FMPLogin
;
if
(
login
()
!=
FMP_SUCCESS
)
{
int
ret
=
loginWnd
->
exec
();
delete
loginWnd
;
loginWnd
=
nullptr
;
if
(
ret
==
FMP_FAILURE
)
{
return
FMP_FAILURE
;
return
FMP_FAILURE
;
}
}
_navWindow
->
show
();
_navWindow
->
show
();
...
@@ -49,6 +48,20 @@ int FMPHomePrivate::Uninit()
...
@@ -49,6 +48,20 @@ int FMPHomePrivate::Uninit()
return
FMP_SUCCESS
;
return
FMP_SUCCESS
;
}
}
int
FMPHomePrivate
::
login
()
{
FMPLogin
loginWnd
;
loginWnd
.
exec
();
if
(
loginWnd
.
isLogined
())
{
_isLogined
=
true
;
_userName
=
loginWnd
.
userName
();
return
FMP_SUCCESS
;
}
else
{
_isLogined
=
false
;
return
FMP_FAILURE
;
}
}
void
FMPHomePrivate
::
onMenuBtnClicked
(
QString
btnName
)
void
FMPHomePrivate
::
onMenuBtnClicked
(
QString
btnName
)
{
{
qDebug
()
<<
"===="
<<
__FUNCTION__
<<
btnName
;
qDebug
()
<<
"===="
<<
__FUNCTION__
<<
btnName
;
...
...
fmp_home/fmp_home_p.h
View file @
930d88e8
...
@@ -16,15 +16,20 @@ public:
...
@@ -16,15 +16,20 @@ public:
int
Init
();
int
Init
();
int
Uninit
();
int
Uninit
();
int
login
();
public
slots
:
public
slots
:
void
onMenuBtnClicked
(
QString
btnName
);
void
onMenuBtnClicked
(
QString
btnName
);
public
:
public
:
FMPHome
*
q_ptr
;
FMPHome
*
q_ptr
;
bool
_isLogined
;
QString
_userName
;
QString
_errorMsg
;
private
:
private
:
NavWindow
*
_navWindow
;
NavWindow
*
_navWindow
;
FMPLogin
*
loginWnd
;
};
};
#endif // FMP_HOME_P_H
#endif // FMP_HOME_P_H
fmp_home/fmp_login.cpp
View file @
930d88e8
...
@@ -2,6 +2,9 @@
...
@@ -2,6 +2,9 @@
#include "ui_fmp_login.h"
#include "ui_fmp_login.h"
#include <QMessageBox>
#include <QMessageBox>
#include <QDesktopWidget>
#include <QDesktopWidget>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonParseError>
#include "fmp_num_pad.h"
#include "fmp_num_pad.h"
#include "fmnetwork.h"
#include "fmnetwork.h"
#include <QDebug>
#include <QDebug>
...
@@ -9,7 +12,9 @@
...
@@ -9,7 +12,9 @@
FMPLogin
::
FMPLogin
(
QDialog
*
parent
)
:
FMPLogin
::
FMPLogin
(
QDialog
*
parent
)
:
FMPWnd
(
parent
),
FMPWnd
(
parent
),
ui
(
new
Ui
::
FMPLogin
),
ui
(
new
Ui
::
FMPLogin
),
_numPad
(
new
FMNumPad
)
_numPad
(
new
FMNumPad
),
_userName
(
""
),
_errorMsg
(
""
)
{
{
ui
->
setupUi
(
this
);
ui
->
setupUi
(
this
);
connect
(
_numPad
,
SIGNAL
(
digit_confirm
()),
this
,
SLOT
(
on_login_btn_clicked
()));
connect
(
_numPad
,
SIGNAL
(
digit_confirm
()),
this
,
SLOT
(
on_login_btn_clicked
()));
...
@@ -28,16 +33,46 @@ FMPLogin::~FMPLogin()
...
@@ -28,16 +33,46 @@ FMPLogin::~FMPLogin()
void
FMPLogin
::
on_login_btn_clicked
()
void
FMPLogin
::
on_login_btn_clicked
()
{
{
_numPad
->
close
();
_numPad
->
close
();
QString
url
=
"http://115.159.142.32:30001/api/user/login"
;
this
->
setEnabled
(
false
);
QByteArray
reqData
=
"{
\"
StoreId
\"
:
\"
123
\"
,
\"
PartnerId
\"
:
\"
123
\"
,
\"
UserId
\"
:
\"
123
\"
,
\"
Pwd
\"
:
\"
123
\"
,
\"
ClassNo
\"
:
\"
123
\"
,
\"
DeviceId
\"
:
\"\"
}"
;
if
(
login
(
ui
->
user_edit
->
text
(),
ui
->
pwd_edit
->
text
()))
{
this
->
close
();
}
else
{
QMessageBox
::
critical
(
this
,
"Login Failed"
,
_errorMsg
);
this
->
setEnabled
(
true
);
ui
->
pwd_edit
->
clear
();
ui
->
pwd_edit
->
setFocus
();
}
}
bool
FMPLogin
::
login
(
QString
userName
,
QString
password
)
{
_userName
=
""
;
QString
url
=
"http://115.159.226.87:20001/api/user/login"
;
QByteArray
reqData
=
tr
(
"{
\"
StoreId
\"
:
\"
%1
\"
,
\"
PartnerId
\"
:
\"
%2
\"
,
\"
UserId
\"
:
\"
%3
\"
,
\"
Pwd
\"
:
\"
%4
\"
}"
)
.
arg
(
"fm99999"
)
.
arg
(
"1371"
)
.
arg
(
userName
)
.
arg
(
password
).
toLatin1
();
QByteArray
rspData
;
QByteArray
rspData
;
FMNetwork
net
;
FMNetwork
net
;
if
(
net
.
post
(
&
url
,
&
reqData
,
&
rspData
))
{
if
(
net
.
post
(
url
,
&
reqData
,
&
rspData
))
{
QMessageBox
::
information
(
this
,
"Login"
,
QString
(
rspData
));
// 解析返回的数据
}
else
{
QJsonParseError
error
;
QMessageBox
::
critical
(
this
,
"Login"
,
net
.
errorString
());
QJsonDocument
json
=
QJsonDocument
::
fromJson
(
rspData
,
&
error
);
if
(
error
.
error
==
QJsonParseError
::
NoError
)
{
QJsonObject
job
=
json
.
object
();
if
(
job
[
"Code"
]
==
1000
)
{
_userName
=
job
[
"Data"
].
toObject
()[
"UserId"
].
toString
();
}
else
{
_errorMsg
=
job
[
"Msg"
].
toString
();
}
}
else
{
_errorMsg
=
error
.
errorString
();
}
}
}
this
->
close
();
return
isLogined
();
}
}
void
FMPLogin
::
on_key_btn_clicked
()
void
FMPLogin
::
on_key_btn_clicked
()
...
...
fmp_home/fmp_login.h
View file @
930d88e8
...
@@ -17,6 +17,17 @@ public:
...
@@ -17,6 +17,17 @@ public:
explicit
FMPLogin
(
QDialog
*
parent
=
0
);
explicit
FMPLogin
(
QDialog
*
parent
=
0
);
~
FMPLogin
();
~
FMPLogin
();
/**
* @brief login
* @param userName
* @param password
* @return
*/
bool
login
(
QString
userName
,
QString
password
);
bool
isLogined
()
{
return
_userName
!=
""
;}
QString
userName
()
{
return
_userName
;}
QString
errorMsg
()
{
return
_errorMsg
;}
private
slots
:
private
slots
:
void
on_login_btn_clicked
();
void
on_login_btn_clicked
();
...
@@ -28,6 +39,8 @@ private:
...
@@ -28,6 +39,8 @@ private:
Ui
::
FMPLogin
*
ui
;
Ui
::
FMPLogin
*
ui
;
FMNumPad
*
_numPad
;
FMNumPad
*
_numPad
;
QString
_userName
;
QString
_errorMsg
;
};
};
#endif // FMP_LOGIN_H
#endif // FMP_LOGIN_H
fmp_home/fmp_login.ui
View file @
930d88e8
...
@@ -355,7 +355,11 @@ QLineEdit {
...
@@ -355,7 +355,11 @@ QLineEdit {
</layout>
</layout>
</widget>
</widget>
<tabstops>
<tabstops>
<tabstop>
user_edit
</tabstop>
<tabstop>
pwd_edit
</tabstop>
<tabstop>
login_btn
</tabstop>
<tabstop>
login_btn
</tabstop>
<tabstop>
key_btn
</tabstop>
<tabstop>
key_btn_2
</tabstop>
<tabstop>
close_btn
</tabstop>
<tabstop>
close_btn
</tabstop>
</tabstops>
</tabstops>
<resources/>
<resources/>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment