完成tag组件

main
shmily744 2023-07-07 00:56:12 +08:00
parent eb09b43ee8
commit ddc67c9f65
2 changed files with 131 additions and 71 deletions

View File

@ -4,6 +4,8 @@ import QtQuick.Window
import QtQuick.Controls
import QtQuick.Controls.Basic
import FluentUI
import QtQml
import "qrc:///AicsKnowledgeBase/qml/global"
Rectangle {
id: input
@ -13,10 +15,32 @@ Rectangle {
radius: 5
clip: true
border.color: textInput.activeFocus ? "#268CDC":"#979592" //gray100
ListModel { id: tagListModel }
property ListModel tagList: tagListModel
property var tagMap:[]
property var presetsTags:[]
property var presetsTagsItem:[]
Component.onCompleted: {
Request.get("tag?name",
function(result, data){
// console.log("success")
// console.log(result)
// console.log(data.length)
for(var i =0;i<data.length;i++){
tagMap.push([data[i].id,data[i].name])
presetsTags.push(data[i].name)
presetsTagsItem.push({title:data[i].name})
}
// console.log(tagMap)
// console.log(presetsTags)
},function (p1, p2) {
// console.log("failure")
// console.log(p1)
// console.log(p2)
})
}
Row {
x: 5
@ -48,23 +72,23 @@ Rectangle {
width: input.width - rowTag.width
height: parent.height
TextField {
FluAutoSuggestBox{
id:textInput
placeholderText: qsTr("按回车键Enter创建标签")
anchors.verticalCenter: parent.verticalCenter
width: parent.width
placeholderText: "按回车键Enter创建标签"
Layout.preferredWidth: 300
//items:[{title:""},{title:""},{title:""}]
items: presetsTagsItem
onFocusChanged: {
text =""
}
anchors.verticalCenter: parent.verticalCenter
width: parent.width - 15
clip: true
background: Rectangle {
}
Keys.onReturnPressed: {
var presetsTags = ["前端","后端","数据库"]
if (text.length === 0)
return
@ -72,12 +96,10 @@ Rectangle {
text = ""
return
}
tagListModel.append({"tag": text})
//console.log(tagListModel.get(0))
text = ""
}
Keys.onPressed: {
if (event.key === Qt.Key_Backspace) {
if (text.length === 0 && tagListModel.count) {
@ -86,7 +108,6 @@ Rectangle {
}
}
}
}
}

View File

@ -8,6 +8,7 @@ import "qrc:///AicsKnowledgeBase/qml/global"
import "qrc:///AicsKnowledgeBase/qml/component"
FluArea {
id: searchPage
property string url: ''
backgroundColor: "#f9f9f9"
Layout.fillHeight: true
@ -19,6 +20,7 @@ FluArea {
// Layout.topMargin: 20
// text: "Search"
// }
/*
*/
@ -27,6 +29,7 @@ FluArea {
width: parent.width
RowLayout {
width: parent.width
// FluDropDownButton{
// id:select_model
// Layout.alignment: Qt.AlignLeft
@ -52,11 +55,9 @@ FluArea {
// }
// ]
// }
FluTextBox {
placeholderText: "对标题进行搜索……"
Layout.fillWidth: true
}
FluIconButton {
Layout.alignment: Qt.AlignRight
@ -70,16 +71,12 @@ FluArea {
var url = "?name="
url = url + allTags[i]
console.log(url)
Request.get(url,
function(result, data){
Request.get(url, function (result, data) {
allTagId.push()
}
)
})
}
}
}
}
FluCheckBox {
id: searchTitleAndContent
@ -130,7 +127,8 @@ FluArea {
}
function setAllStatus() {
selectAllFormat.checked = selectVideo.checked && selectDoc.checked && selectAudio.checked
selectAllFormat.checked = selectVideo.checked
&& selectDoc.checked && selectAudio.checked
}
}
@ -148,9 +146,9 @@ FluArea {
width: 290
}
function getAllTags(tagList) {
var allTags=[];
var allTags = []
for (var i = 0; i < tagList.count; i++) {
var item = tagList.get(i);
var item = tagList.get(i)
allTags.push(item.tag)
}
return allTags
@ -200,4 +198,45 @@ FluArea {
}
}
}
function getKnowledgeDetail(uuid, title, brief, tags) {
var raw = Request.getAwait("/knowledget/" + uuid)
var data = JSON.parse(raw)
var item = {
"uuid": uuid,
"title": title,
"brief": brief,
"isDir": false,
"date": data.createTime,
"fuuid": data.parent.id,
"pageView": data.knowledgeFileAttribute.pageView,
"stars": data.knowledgeFileAttribute.stars,
"size": data.knowledgeFileAttribute.size,
"type": getType(data.knowledgeFileAttribute.suffix),
"tags": tags
}
}
function getType(suffix) {
if (suffix === "ppt" || suffix === "pptx")
return "PPT"
else if (suffix === "doc" || suffix === "docx")
return "WORD"
else if (suffix === "pdf")
return "PDF"
else if (suffix === "txt")
return "TXT"
else if (suffix === "xls" || suffix === "xlsx")
return "EXCEL"
else if (suffix === "zip" || suffix === "rar")
return "ZIP"
else if (suffix === "png" || suffix === "jpg" || suffix === "jpeg"
|| suffix === "gif")
return "IMAGE"
else if (suffix === "mp3" || suffix === "wav")
return "AUDIO"
else if (suffix === "mp4" || suffix === "avi" || suffix === "rmvb"
|| suffix === "rm" || suffix === "wmv" || suffix === "mkv")
return "VIDEO"
else
return "OTHER"
}
}