313 lines
9.7 KiB
QML
313 lines
9.7 KiB
QML
import QtQuick
|
|
import QtQuick.Dialogs
|
|
import QtQuick.Controls
|
|
import "./common"
|
|
// import "./Style"
|
|
|
|
Dialog{
|
|
id: self
|
|
width: 760
|
|
height: 450
|
|
title: "用户管理"
|
|
standardButtons: Dialog.NoButton
|
|
// modality: Qt.ApplicationModal
|
|
property var userModel: ListModel{}
|
|
signal showDialog
|
|
onVisibleChanged: {
|
|
if(visible)
|
|
{
|
|
get_users()
|
|
showDialog()
|
|
}
|
|
}
|
|
|
|
function get_users()
|
|
{
|
|
var result = backend_proxy.get_users()
|
|
if(result.code !== 200)
|
|
{
|
|
alert.show(result.msg)
|
|
return
|
|
}
|
|
userModel.clear()
|
|
result.data.forEach(function(item){
|
|
item.role_name = ""
|
|
userModel.append(item)
|
|
})
|
|
|
|
}
|
|
|
|
function add_user()
|
|
{
|
|
var obj = {"name":"新用户", "password": "000000", "role": 1}
|
|
var result = backend_proxy.add_user(JSON.stringify(obj))
|
|
if(result.code !== 200)
|
|
{
|
|
alert.show(result.msg)
|
|
return
|
|
}
|
|
var item = result.data
|
|
item.role_name = ""
|
|
userModel.append(item)
|
|
}
|
|
function delete_user()
|
|
{
|
|
var obj = userModel.get(userTableView.currentRow)
|
|
var result = backend_proxy.delete_user(obj.id)
|
|
if(result.code !== 200)
|
|
{
|
|
alert.show(result.msg)
|
|
return
|
|
}
|
|
userModel.remove(userTableView.currentRow)
|
|
}
|
|
|
|
function update_user(obj)
|
|
{
|
|
var result = backend_proxy.update_user(JSON.stringify(obj))
|
|
if(result.code !== 200)
|
|
{
|
|
alert.show(result.msg)
|
|
return
|
|
}
|
|
}
|
|
|
|
Rectangle{
|
|
|
|
height: parent.height
|
|
anchors.left:parent.left
|
|
anchors.right: parent.right
|
|
anchors.leftMargin: 5
|
|
Rectangle{
|
|
anchors.left : parent.left
|
|
height: 40
|
|
anchors.top: parent.top
|
|
anchors.right: parent.right
|
|
border.width: 1
|
|
color: "#f3f3f3"
|
|
border.color: "lightgray"
|
|
Row
|
|
{
|
|
x: 5
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
spacing: 5
|
|
QxTitleButton{
|
|
text: "添加"
|
|
|
|
onClicked: add_user()
|
|
}
|
|
QxTitleButton{
|
|
text: "删除"
|
|
enabled: userTableView.currentRow > -1
|
|
onClicked: {
|
|
var role = userModel.get(userTableView.currentRow).role
|
|
var name = userModel.get(userTableView.currentRow).name
|
|
if(name == g_session.name)
|
|
{
|
|
alert.show("当前用户不可删除")
|
|
return
|
|
}
|
|
removeUserDlg.msg = userModel.get(userTableView.currentRow).name
|
|
removeUserDlg.visible = true
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
TableView{
|
|
id: userTableView
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
anchors.top: parent.top
|
|
anchors.bottom: parent.bottom
|
|
anchors.topMargin: 40
|
|
// headerDelegate: Rectangle{
|
|
// anchors.top: parent.top
|
|
// width: parent.width
|
|
// height: 20
|
|
// color: "white"
|
|
// QxText {
|
|
// anchors.centerIn: parent
|
|
// font.pointSize: 10
|
|
// text: styleData.value
|
|
// }
|
|
// Rectangle{
|
|
// width: 1
|
|
// height: parent.height
|
|
// visible: styleData.value !== "序号"
|
|
// color: "lightgray"
|
|
// }
|
|
// Rectangle{
|
|
// y: parent.height
|
|
// width: parent.width
|
|
// height: 1
|
|
// color: "lightgray"
|
|
// }
|
|
// }
|
|
// rowDelegate: Rectangle{
|
|
// height: 25
|
|
// color : userTableView.currentRow === styleData.row ? "#beebff": ( (styleData.row %2 == 0) ? "#f2f2f2": "white" )
|
|
// }
|
|
// itemDelegate: Item {
|
|
// clip: true
|
|
// QxText {
|
|
// visible: styleData.role === "id"
|
|
// x: 5
|
|
// anchors.centerIn: parent
|
|
// color: "#999999"
|
|
// elide: styleData.elideMode
|
|
// font.pointSize: 10
|
|
// text: styleData.row + 1
|
|
// }
|
|
// QxText{
|
|
// z: 2
|
|
// visible: styleData.role == "name"&& !tp.visible
|
|
// text: !!model ? model.name : ""
|
|
// }
|
|
// QxText{
|
|
// z: 2
|
|
// visible: styleData.role == "password"&& !tp.visible
|
|
// text: !!model ? model.password : ""
|
|
// }
|
|
// Item{
|
|
// anchors.fill: parent
|
|
// visible: styleData.role == "role"
|
|
// QxText {
|
|
// text: !!model ? ( model.role == 0 ? "管理员" : "员工" ) : ""
|
|
// }
|
|
// MouseArea{
|
|
// anchors.fill: parent
|
|
// enabled: !!model ? ( model.name != g_session.name ) : false
|
|
// onClicked: {
|
|
// if(model.role == 1)
|
|
// model.role = 0
|
|
// else
|
|
// model.role = 1
|
|
// update_user(userModel.get(styleData.row))
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// QxTextInput{
|
|
// z: 2
|
|
// id: tp
|
|
// visible: false
|
|
// onTextChanged: {
|
|
// if( styleData.role === "name" )
|
|
// {
|
|
// if(text != styleData.value){
|
|
// model.name = text
|
|
// update_user(userModel.get(styleData.row))
|
|
// }
|
|
|
|
// }
|
|
// else if(styleData.role === "password")
|
|
// {
|
|
// if(text != styleData.value)
|
|
// {
|
|
// model.password = text
|
|
// update_user(userModel.get(styleData.row))
|
|
// }
|
|
// }
|
|
// }
|
|
// onFocusChanged: {
|
|
// if(!focus)
|
|
// visible = false
|
|
// }
|
|
// Connections{
|
|
// target: self
|
|
// function onShowDialog()
|
|
// {
|
|
// tp.visible = false
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// MouseArea{
|
|
// visible: styleData.role !== "role" && styleData.role !== "id"
|
|
// anchors.fill: parent
|
|
// onClicked: {
|
|
// tp.text = styleData.value
|
|
// tp.focus = true
|
|
// tp.visible = true
|
|
// }
|
|
// }
|
|
// Rectangle{
|
|
// width: 1
|
|
// height: parent.height
|
|
// visible: styleData.role !== "id"
|
|
// color: "lightgray"
|
|
// }
|
|
// }
|
|
Rectangle{
|
|
width: parent.width
|
|
height: 1
|
|
color: "lightgray"
|
|
}
|
|
|
|
// TableViewColumn {
|
|
// id: planNoCol
|
|
// title: "序号"
|
|
// role: "id"
|
|
// width: 80
|
|
// }
|
|
// TableViewColumn {
|
|
// id: usernameCol
|
|
// title: "用户名"
|
|
// role: "name"
|
|
// width: (userTableView.width - 82 ) /3
|
|
// }
|
|
// TableViewColumn {
|
|
// id: passwordCol
|
|
// title: "密码"
|
|
// role: "password"
|
|
// width: usernameCol.width
|
|
// }
|
|
// TableViewColumn {
|
|
// id: roleCol
|
|
// title: "权限"
|
|
// role: "role"
|
|
// width: usernameCol.width
|
|
// }
|
|
|
|
model: userModel
|
|
}
|
|
}
|
|
Dialog {
|
|
id: removeUserDlg
|
|
property var msg: ""
|
|
title: "删除用户"
|
|
standardButtons: Dialog.NoButton
|
|
Column
|
|
{
|
|
anchors.centerIn: parent
|
|
spacing: 10
|
|
QxText {
|
|
text: "删除用户:\n" + removeUserDlg.msg
|
|
}
|
|
Row
|
|
{
|
|
anchors.right: parent.right
|
|
spacing: 20
|
|
Button
|
|
{
|
|
text: "是"
|
|
//style: ButtonStyle{}
|
|
onClicked: removeUserDlg.accept()
|
|
}
|
|
Button
|
|
{
|
|
text: "否"
|
|
//style: ButtonStyle{}
|
|
onClicked: removeUserDlg.reject()
|
|
}
|
|
}
|
|
}
|
|
visible: false
|
|
width: 300
|
|
height: 100
|
|
onAccepted: delete_user()
|
|
}
|
|
}
|
|
|