Add employee in GUI and set up a dictionary for it

This commit is contained in:
2025-01-15 09:35:54 +01:00
parent 80a269a729
commit 3eadad5d5b
3 changed files with 87 additions and 18 deletions

View File

@@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Controls
ApplicationWindow
{
id: addmitarbeiter
id: addMitarbeiter
title: qsTr("Objekt - Neuer Mitarbeiter")
ColumnLayout
@@ -31,6 +31,7 @@ ApplicationWindow
}
TextField
{
id: assignee
Layout.fillWidth: true
}
Label
@@ -40,6 +41,7 @@ ApplicationWindow
}
TextField
{
id: wage
Layout.fillWidth: true
}
Label
@@ -49,6 +51,7 @@ ApplicationWindow
}
TextField
{
id: duration
Layout.fillWidth: true
}
Label
@@ -58,6 +61,7 @@ ApplicationWindow
}
TextField
{
id: cleanDays
Layout.fillWidth: true
}
Label
@@ -67,6 +71,7 @@ ApplicationWindow
}
TextField
{
id: tasks
Layout.fillWidth: true
}
Label
@@ -76,6 +81,7 @@ ApplicationWindow
}
TextField
{
id: output
Layout.fillWidth: true
}
}
@@ -90,11 +96,30 @@ ApplicationWindow
Button
{
text: qsTr("Abbrechen")
onClicked: addMitarbeiter.close()
}
Button
{
text: qsTr("Hinzufügen")
onClicked:
{
if (assignee.text.trim() !== "" && duration.text.trim() !== "" && wage.text.trim() !== "" && cleanDays.text.trim() !== "" && tasks.text.trim() !== "" && output.text.trim() !== "")
{
var ne = {
"assignee": assignee.text.trim(),
"duration": duration.text.trim(),
"wage": wage.text.trim(),
"cleandays": cleanDays.text.trim(),
"tasks": tasks.text.trim(),
"output": output.text.trim(),
};
addMitarbeiter.addNewEmployee(ne)
addMitarbeiter.close()
}
}
}
}
}
signal addNewEmployee(var new_employee)
}

View File

@@ -182,7 +182,6 @@ GridLayout
ListView
{
id: contactView
//Layout.fillWidth: true
implicitHeight: parent.height
model: contactModel
@@ -191,8 +190,6 @@ GridLayout
delegate: Item
{
width: parent.width
//color: firstname.palette.base
//border.color: firstname.activeFocus? firstname.palette.highlight: firstname.palette.base
height: 15
Row

View File

@@ -4,7 +4,8 @@ import QtQuick.Controls
GridLayout
{
property var employeens: null
property var employeeForm: null
property var employees: null
id: oaoemployee
columns: 2
rows: 4
@@ -19,6 +20,23 @@ GridLayout
id: employeeModel
}
Component
{
id: employeesHeader
Row
{
Text
{
id: empName
text: qsTr("Mitarbeiter")
width: 175
font.bold: true
horizontalAlignment: Text.AlignHCenter
color: "yellow"
}
}
}
Rectangle
{
Layout.fillWidth: true
@@ -28,21 +46,26 @@ GridLayout
border.color: mitarbeiterhin.activeFocus? mitarbeiterhin.palette.highlight: mitarbeiterhin.palette.base
ListView
{
id: mitarbeitertext
model: ListModel{ListElement {name: "Mitarbeiter1"} ListElement{name: "Mitarbeiter2"}}
delegate: Item
id: employeesList
//anchors.fill: parent
implicitHeight: parent.height
model: employeeModel
header: employeesHeader
delegate: Row
{
width: 200
height: 15
padding: 7
Text
{
text: model.name
text: model.namens
color: "yellow"
}
}
// wrapMode: TextEdit.Wrap
// background: Rectangle
// {
// color: mitarbeiterhin.palette.base
// border.color: mitarbeiterhin.activeFocus? mitarbeiterhin.palette.highlight: mitarbeiterhin.palette.base
// }
}
}
RowLayout
@@ -63,18 +86,42 @@ GridLayout
Button
{
id: mitarbeiterhin
property var neuermitarbeiter: undefined
text: qsTr("Mitarbeiter hinzufügen")
onClicked:
{
var nm = Qt.createComponent("AddObjectEmployee.qml")
if (nm.status === Component.Ready)
{
neuermitarbeiter = nm.createObject (appWindow, {width: 600, height: 400})
neuermitarbeiter.show()
employeeForm = nm.createObject (appWindow, {width: 600, height: 400})
employeeForm.addNewEmployee.connect(onAddEmployee)
employeeForm.show()
}
else console.log(nm.errorString())
}
}
}
function onAddEmployee(new_employee)
{
var num_employees = 0
if (employees === null || employees === undefined) employees = {}
else num_employees = Object.keys(employees).length;
employees[num_employees] = {}
employees[num_employees]["assignee"] = new_employee["assignee"];
employees[num_employees]["duration"] = new_employee["duration"];
employees[num_employees]["wage"] = new_employee["wage"];
employees[num_employees]["cleandays"] = new_employee["cleandays"];
employees[num_employees]["tasks"] = new_employee["tasks"];
employees[num_employees]["output"] = new_employee["output"];
employeeModel.append({namens: new_employee["assignee"]});
console.log(employeeModel.get(num_employees).namens)
console.log(new_employee["assignee"])
console.log(JSON.stringify(new_employee))
}
}