2023-06-30 18:37:17 +08:00
|
|
|
|
import QtQuick
|
|
|
|
|
import QtQuick.Layouts
|
|
|
|
|
import QtQuick.Window
|
|
|
|
|
import QtQuick.Controls
|
|
|
|
|
import QtQuick.Controls.Basic
|
|
|
|
|
import FluentUI
|
2023-07-05 15:39:29 +08:00
|
|
|
|
import "qrc:///AicsKnowledgeBase/qml/global"
|
2023-07-03 10:38:59 +08:00
|
|
|
|
import "qrc:///AicsKnowledgeBase/qml/component"
|
2023-06-30 18:37:17 +08:00
|
|
|
|
|
|
|
|
|
FluArea {
|
2023-07-07 00:24:17 +08:00
|
|
|
|
id: searchPage
|
2023-06-30 18:37:17 +08:00
|
|
|
|
property string url: ''
|
2023-07-02 15:58:02 +08:00
|
|
|
|
backgroundColor: "#f9f9f9"
|
2023-06-30 18:37:17 +08:00
|
|
|
|
Layout.fillHeight: true
|
|
|
|
|
Layout.fillWidth: true
|
|
|
|
|
Layout.topMargin: 20
|
|
|
|
|
paddings: 10
|
|
|
|
|
|
2023-07-03 16:12:26 +08:00
|
|
|
|
// FluText {
|
|
|
|
|
// Layout.topMargin: 20
|
|
|
|
|
// text: "Search"
|
|
|
|
|
// }
|
2023-07-07 00:24:17 +08:00
|
|
|
|
|
|
|
|
|
|
2023-07-03 10:38:59 +08:00
|
|
|
|
/*
|
|
|
|
|
按标题,内容搜索
|
2023-07-05 15:39:29 +08:00
|
|
|
|
*/
|
2023-07-07 00:24:17 +08:00
|
|
|
|
ColumnLayout {
|
2023-07-05 15:39:29 +08:00
|
|
|
|
|
2023-07-05 01:59:35 +08:00
|
|
|
|
width: parent.width
|
2023-07-07 00:24:17 +08:00
|
|
|
|
RowLayout {
|
|
|
|
|
width: parent.width
|
|
|
|
|
|
2023-07-05 15:39:29 +08:00
|
|
|
|
// 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
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// ]
|
|
|
|
|
// }
|
2023-07-07 00:24:17 +08:00
|
|
|
|
FluTextBox {
|
|
|
|
|
placeholderText: "对标题进行搜索……"
|
2023-07-03 16:12:26 +08:00
|
|
|
|
Layout.fillWidth: true
|
|
|
|
|
}
|
2023-07-07 00:24:17 +08:00
|
|
|
|
FluIconButton {
|
2023-07-03 16:12:26 +08:00
|
|
|
|
Layout.alignment: Qt.AlignRight
|
2023-07-07 00:24:17 +08:00
|
|
|
|
iconSource: FluentIcons.Search
|
|
|
|
|
onClicked: {
|
2023-07-05 15:39:29 +08:00
|
|
|
|
var allTags = inputTags.getAllTags(tags.tagList)
|
2023-07-07 00:24:17 +08:00
|
|
|
|
var allTagId = []
|
2023-07-05 15:39:29 +08:00
|
|
|
|
console.log(allTags)
|
|
|
|
|
|
|
|
|
|
for (var i = 0; i < allTags.length; i++) {
|
|
|
|
|
var url = "?name="
|
|
|
|
|
url = url + allTags[i]
|
|
|
|
|
console.log(url)
|
2023-07-07 00:24:17 +08:00
|
|
|
|
Request.get(url, function (result, data) {
|
|
|
|
|
allTagId.push()
|
|
|
|
|
})
|
2023-07-05 15:39:29 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
2023-07-03 16:12:26 +08:00
|
|
|
|
}
|
2023-07-05 15:39:29 +08:00
|
|
|
|
}
|
2023-07-07 00:24:17 +08:00
|
|
|
|
FluCheckBox {
|
|
|
|
|
id: searchTitleAndContent
|
|
|
|
|
text: "同时搜索简介和内容"
|
2023-07-03 16:12:26 +08:00
|
|
|
|
}
|
2023-07-04 12:40:04 +08:00
|
|
|
|
|
2023-07-03 16:12:26 +08:00
|
|
|
|
//按文件类型
|
2023-07-07 00:24:17 +08:00
|
|
|
|
RowLayout {
|
|
|
|
|
id: selectFormat
|
|
|
|
|
width: parent.width
|
|
|
|
|
FluText {
|
2023-07-03 16:12:26 +08:00
|
|
|
|
Layout.alignment: Qt.AlignLeft
|
2023-07-07 00:24:17 +08:00
|
|
|
|
text: "类型: "
|
2023-07-03 16:12:26 +08:00
|
|
|
|
}
|
2023-07-07 00:24:17 +08:00
|
|
|
|
FluCheckBox {
|
|
|
|
|
id: selectAllFormat
|
|
|
|
|
text: "all"
|
|
|
|
|
Component.onCompleted: {
|
2023-07-03 16:12:26 +08:00
|
|
|
|
clicked()
|
|
|
|
|
}
|
2023-07-07 00:24:17 +08:00
|
|
|
|
onClicked: {
|
|
|
|
|
selectVideo.checked = true
|
|
|
|
|
selectDoc.checked = true
|
|
|
|
|
selectAudio.checked = true
|
2023-07-03 16:12:26 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
2023-07-07 00:24:17 +08:00
|
|
|
|
FluCheckBox {
|
|
|
|
|
id: selectVideo
|
|
|
|
|
text: "Video"
|
|
|
|
|
onClicked: {
|
2023-07-04 12:40:04 +08:00
|
|
|
|
selectFormat.setAllStatus()
|
2023-07-03 16:12:26 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
2023-07-07 00:24:17 +08:00
|
|
|
|
FluCheckBox {
|
|
|
|
|
id: selectDoc
|
|
|
|
|
text: "Doc"
|
|
|
|
|
onClicked: {
|
2023-07-04 12:40:04 +08:00
|
|
|
|
selectFormat.setAllStatus()
|
2023-07-03 16:12:26 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
2023-07-03 10:38:59 +08:00
|
|
|
|
|
2023-07-07 00:24:17 +08:00
|
|
|
|
FluCheckBox {
|
|
|
|
|
id: selectAudio
|
|
|
|
|
text: "Audio"
|
|
|
|
|
onClicked: {
|
2023-07-05 01:59:35 +08:00
|
|
|
|
selectFormat.setAllStatus()
|
2023-07-03 16:12:26 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
2023-07-04 12:40:04 +08:00
|
|
|
|
|
|
|
|
|
function setAllStatus() {
|
2023-07-07 00:24:17 +08:00
|
|
|
|
selectAllFormat.checked = selectVideo.checked
|
|
|
|
|
&& selectDoc.checked && selectAudio.checked
|
2023-07-04 12:40:04 +08:00
|
|
|
|
}
|
2023-07-03 16:12:26 +08:00
|
|
|
|
}
|
2023-07-03 10:38:59 +08:00
|
|
|
|
|
2023-07-07 00:24:17 +08:00
|
|
|
|
RowLayout {
|
|
|
|
|
id: inputTags
|
|
|
|
|
width: parent.width
|
2023-07-05 01:59:35 +08:00
|
|
|
|
height: 32
|
2023-07-07 00:24:17 +08:00
|
|
|
|
FluText {
|
2023-07-05 01:59:35 +08:00
|
|
|
|
Layout.alignment: Qt.AlignLeft
|
2023-07-07 00:24:17 +08:00
|
|
|
|
text: "标签: "
|
2023-07-05 01:59:35 +08:00
|
|
|
|
}
|
|
|
|
|
|
2023-07-07 00:24:17 +08:00
|
|
|
|
Tag {
|
|
|
|
|
id: tags
|
2023-07-05 01:59:35 +08:00
|
|
|
|
width: 290
|
|
|
|
|
}
|
2023-07-07 00:24:17 +08:00
|
|
|
|
function getAllTags(tagList) {
|
|
|
|
|
var allTags = []
|
2023-07-05 15:39:29 +08:00
|
|
|
|
for (var i = 0; i < tagList.count; i++) {
|
2023-07-07 00:24:17 +08:00
|
|
|
|
var item = tagList.get(i)
|
2023-07-05 15:39:29 +08:00
|
|
|
|
allTags.push(item.tag)
|
|
|
|
|
}
|
|
|
|
|
return allTags
|
|
|
|
|
//console.log(allTags)
|
|
|
|
|
}
|
2023-07-05 01:59:35 +08:00
|
|
|
|
}
|
|
|
|
|
|
2023-07-05 13:58:03 +08:00
|
|
|
|
FluArea {
|
2023-07-04 13:38:01 +08:00
|
|
|
|
backgroundColor: "#f9f9f9"
|
|
|
|
|
border.width: 0
|
|
|
|
|
width: parent.width
|
|
|
|
|
height: 500
|
2023-07-03 10:38:59 +08:00
|
|
|
|
|
2023-07-05 13:58:03 +08:00
|
|
|
|
FileList {
|
2023-07-04 13:38:01 +08:00
|
|
|
|
disableHeader: true
|
2023-07-05 13:58:03 +08:00
|
|
|
|
dataModel: ListModel {
|
|
|
|
|
ListElement {
|
|
|
|
|
uuid: "0"
|
|
|
|
|
title: "File 1"
|
|
|
|
|
isDir: true
|
|
|
|
|
brief: "This is a test file"
|
|
|
|
|
type: "FOLDER"
|
|
|
|
|
}
|
|
|
|
|
ListElement {
|
|
|
|
|
uuid: "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 {
|
|
|
|
|
uuid: "3"
|
|
|
|
|
title: "File 3"
|
|
|
|
|
isDir: false
|
|
|
|
|
brief: "This is a test file"
|
|
|
|
|
type: "PPT"
|
|
|
|
|
date: "2020-09-09"
|
|
|
|
|
pageView: 100
|
|
|
|
|
size: 10200000022
|
|
|
|
|
stars: 10
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-07-03 16:12:26 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-07-07 00:24:17 +08:00
|
|
|
|
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"
|
|
|
|
|
}
|
2023-06-30 18:37:17 +08:00
|
|
|
|
}
|