Merge remote-tracking branch 'origin/main' into main

main
wuyize 2023-07-03 17:13:58 +08:00
commit 3f30e4ed4d
5 changed files with 265 additions and 109 deletions

View File

@ -156,33 +156,33 @@ Item {
}
ListModel {
id: fileListModel
// ListElement {
// title: "File 1"
// isDir: true
// brief: "This is a test file"
// type: "FOLDER"
// }
// ListElement {
// uid: "2"
// title: "File 2"
// isDir: false
// brief: "This is a test file"
// size: 500
// type: "WORD"
// date: "2020-09-09"
// pageView: 100
// stars: 10
// }
// ListElement {
// uid: "3"
// title: "File 3"
// isDir: false
// brief: "This is a test file"
// type: "PPT"
// date: "2020-09-09"
// pageView: 100
// size: 10200000022
// stars: 10
// }
ListElement {
title: "File 1"
isDir: true
brief: "This is a test file"
type: "FOLDER"
}
ListElement {
uid: "2"
title: "File 2"
isDir: false
brief: "This is a test file"
size: 500
type: "WORD"
date: "2020-09-09"
pageView: 100
stars: 10
}
ListElement {
uid: "3"
title: "File 3"
isDir: false
brief: "This is a test file"
type: "PPT"
date: "2020-09-09"
pageView: 100
size: 10200000022
stars: 10
}
}
}

View File

@ -1,78 +0,0 @@
import QtQuick 2.15
import FluentUI
import QtQuick.Layouts
FluArea {
id: fileItem
property string uuid
property string title
property string brief
property string date
property int pageView
property var tags: []
property var notes: []
property int stars
property var colorList: ["blue", "green", "orange", "red", "yellow", "purple", "pink", "brown", "teal", "cyan", "gray", "darkgray"]
signal tagClicked(string tag)
ColumnLayout {
id: row
anchors.fill: parent
anchors.margins: 10
spacing: 10
ColumnLayout {
id: clickable
anchors.fill: parent
MouseArea {
anchors.fill: parent
onDoubleClicked: {
fileItem.parent.doubleClicked()
}
}
FluText {
id: title
text: fileItem.title
font{
pointSize: 12
bold: true
}
}
FluText {
id: brief
text: fileItem.brief
}
RowLayout {
id: infoRow
visible: !fileItem.isDir
FluText {
id: date
text: fileItem.date
}
FluText {
id: pageView
text: fileItem.pageView + "浏览"
}
FluText {
id: stars
text: fileItem.stars + "收藏"
}
}
}
RowLayout {
visible: !fileItem.isDir
Repeater {
model: fileItem.tags
delegate: FluTextButton {
text: "#" + fileItem.tags[index]
normalColor: colorList[index % colorList.length]
font.pixelSize: 12
Layout.preferredWidth: 50
onClicked: {
emit: tagClicked(text)
}
}
}
}
}
}

View File

@ -0,0 +1,78 @@
import QtQuick 2.15
import QtQuick.Layouts
import FluentUI
import "qrc:///AicsKnowledgeBase/qml/global"
Item {
anchors.fill: parent
signal open(string note)
ListView {
id: listView
anchors.fill: parent
spacing: 8
header: noteListItemHeader
model: noteListModel
delegate: noteListItemDelegate
}
Component {
id: noteListItemHeader
Item {
id: noteListItemHeaderItem
// width: ListView.view.width
// height: 48
// FluText {
// text: ""
// }
}
}
Component {
id: noteListItemDelegate
Rectangle {
id: noteListItemRect
width: ListView.view.width
height: 150
MouseArea {
anchors.fill: parent
onClicked: {
open(model.uuid)
}
}
NoteListItem {
id: noteListItem
uuid: model.uuid
width: parent.width
height: parent.height
title: model.title
date: model.date
brief: model.brief
pageView: model.pageView
author: model.author
stars: model.stars
}
}
}
function setListModel(listModel) {
listView.model = listModel
}
ListModel {
id: noteListModel
ListElement {
uuid: "1"
title: "超级无敌报错"
brief: "file:///D:/academic/2023-qtBig/AicsKnowledgeBase_client/AicsKnowledgeBase/qml/component/NoteList.qml:41:21: Unable to assign [undefined] to QString"
author: "admin"
pageView: 123
stars: 27
date: "2022-02-02"
}
ListElement {
uuid: "2"
title: "Qt布局"
brief: "锚定anchors在确定父子组件之间同级组件之间的相对位置时非常常用若使用锚定方式确定子组件与父组件之间的位置关系使用 topbottomleftright topMarginbottomMarginleftMarginrightMargin进行上下左右对齐以及对齐后的留白距离。若要使子组件在父组件的水平垂直居中使用"
author: "超级无敌长的账户名"
pageView: 123
stars: 27
date: "2022-02-02"
}
}
}

View File

@ -0,0 +1,61 @@
import QtQuick 2.15
import FluentUI
import QtQuick.Layouts
FluArea {
id: noteItem
property string uuid
property string title
property string brief
property string date
property int pageView
property int stars
property string author
ColumnLayout {
id: row
anchors.fill: parent
anchors.margins: 10
spacing: 10
RowLayout {
id: titleRow
Layout.preferredWidth: parent.width
FluText {
text: title
font.bold: true
font.pointSize: 15
Layout.alignment: Qt.AlignLeft
}
FluText {
text: author
Layout.alignment: Qt.AlignRight
}
}
FluText {
text: " " + brief
Layout.fillWidth: true
wrapMode: Text.WrapAnywhere
elide: Text.ElideRight
maximumLineCount: 3
}
RowLayout {
id: bottomRow
Layout.preferredWidth: parent.width
FluText {
text: date
color: "#5F5F5F"
Layout.alignment: Qt.AlignLeft
}
FluText {
text: pageView + " 浏览"
color: "#5F5F5F"
Layout.alignment: Qt.AlignRight
}
FluText {
text: stars + " 收藏"
color: "#5F5F5F"
Layout.alignment: Qt.AlignRight
}
}
}
}

View File

@ -4,6 +4,7 @@ import QtQuick.Window
import QtQuick.Controls
import QtQuick.Controls.Basic
import FluentUI
import "qrc:///AicsKnowledgeBase/qml/component"
FluArea {
property string url: ''
@ -13,8 +14,102 @@ FluArea {
Layout.topMargin: 20
paddings: 10
// FluText {
// Layout.topMargin: 20
// text: "Search"
// }
/*
*/
ColumnLayout{
RowLayout{
width:parent.width
FluDropDownButton{
id:select_model
Layout.alignment: Qt.AlignLeft
text:"标题"
items:[
FluMenuItem{
text:"标题"
onClicked: {
select_model.text = text
}
},
FluMenuItem{
text:"内容"
onClicked: {
select_model.text = text
}
},
FluMenuItem{
text:"标签"
onClicked: {
select_model.text = text
}
}
]
}
FluTextBox{
//placeholderText:""
Layout.fillWidth: true
}
FluIconButton{
Layout.alignment: Qt.AlignRight
iconSource:FluentIcons.Search
}
}
//
RowLayout{
width:parent.width
FluText{
Layout.topMargin: 20
text: "Search"
Layout.alignment: Qt.AlignLeft
text:"格式: "
}
FluCheckBox{
id:selectAllFormat
text:"all"
Component.onCompleted:{
clicked()
}
onClicked:{
selectPDFAndWord.checked=true
selectVideo.checked=true
selectPPT.checked=true
}
}
FluCheckBox{
id:selectPDFAndWord
text:"pdf/word"
onClicked:{
selectAllFormat.checked = selectPDFAndWord.checked && selectPPT.checked && selectVideo.checked
}
}
FluCheckBox{
id:selectPPT
text:"ppt"
onClicked:{
selectAllFormat.checked = selectPDFAndWord.checked && selectPPT.checked && selectVideo.checked
}
}
FluCheckBox{
id:selectVideo
text:"video"
onClicked:{
selectAllFormat.checked = selectPDFAndWord.checked && selectPPT.checked && selectVideo.checked
}
}
}
Rectangle{
FileList{
}
}
}
}