import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuick.Controls.Material // 确保导入Material模块
import "../components"
import "../dialogs"
Page {
id: root
background: Rectangle {
color: "#1a1a2e"
}
// 临时数据 - 用于测试界面显示
property var searchResults: [
{
id: "2023001",
name: "张三",
gender: "男",
college: "计算机学院",
department: "软件工程系",
className: "软工1班",
dormitory: "A101",
hometown: "北京",
phone: "13800138000"
},
{
id: "2023002",
name: "李四",
gender: "女",
college: "经济管理学院",
department: "金融系",
className: "金融2班",
dormitory: "B203",
hometown: "上海",
phone: "13900139000"
}
]
ColumnLayout {
anchors.fill: parent
anchors.margins: 24
spacing: 20
// 标题区域
Rectangle {
Layout.fillWidth: true
height: 80
radius: 12
color: "#252541"
border.color: "#4a4a7a"
Label {
anchors.centerIn: parent
text: "🔍 学生信息查询"
font {
bold: true
pixelSize: 28
family: "Microsoft YaHei"
}
color: "#e0e0ff"
}
}
// 查询条件卡片
Rectangle {
Layout.fillWidth: true
height: 120
radius: 12
color: "#252541"
border.color: "#4a4a7a"
opacity: 0.9
ColumnLayout {
anchors.fill: parent
anchors.margins: 20
spacing: 10
// 搜索栏
SearchBar {
id: searchBar
Layout.fillWidth: true
Layout.preferredHeight: 48
onSearchRequested: {
console.log("搜索请求:", searchType.currentValue, searchField.text)
// 实际应用中应调用服务层搜索方法
// StudentService.searchStudents({
// type: searchType.currentValue,
// keyword: searchField.text
// })
}
}
// 提示信息
Label {
text: "提示:可按照学号、姓名、学院、班级等条件查询"
font.pixelSize: 12
color: "#a0a0c0"
Layout.alignment: Qt.AlignHCenter
}
}
}
// 查询结果卡片
Rectangle {
Layout.fillWidth: true
Layout.fillHeight: true
radius: 12
color: "#1e1e3a"
border.color: "#4a4a7a"
opacity: 0.9
// 结果标题
Label {
text: "查询结果"
font.bold: true
font.pixelSize: 18
color: Material.primary // 使用Material.primary代替Material.accent
padding: 16
anchors.top: parent.top
anchors.left: parent.left
}
// 结果统计信息
RowLayout {
anchors.top: parent.top
anchors.right: parent.right
anchors.margins: 16
spacing: 16
Label {
text: "共找到 <b>" + root.searchResults.length + "</b> 条记录"
font.pixelSize: 14
color: "#e0e0ff"
}
Button {
text: "导出结果"
background: Rectangle { // 直接设置背景而不是使用Material.background
color: "#3a3a6a"
radius: 6
}
Layout.preferredWidth: 100
Layout.preferredHeight: 32
contentItem: Label {
text: "💾 " + parent.text
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
font.pixelSize: 12
color: "#e0e0ff"
}
MouseArea {
anchors.fill: parent
hoverEnabled: true
onEntered: parent.background.color = "#4a4a8a"
onExited: parent.background.color = "#3a3a6a"
onClicked: console.log("导出结果")
}
}
}
// 学生表格
StudentTable {
anchors {
fill: parent
topMargin: 50
margins: 16
}
model: root.searchResults // 使用临时数据
onEditRequested: editDialog.open(student)
onDeleteRequested: confirmDialog.open(student.id)
}
}
}
// 对话框
EditDialog { id: editDialog }
ConfirmDialog {
id: confirmDialog
onConfirmed: function(studentId) {
console.log("确认删除学生:", studentId)
// 实际应用中应调用服务层删除方法
// StudentService.deleteStudent(studentId)
}
}
}