151 lines
5.5 KiB
QML
151 lines
5.5 KiB
QML
import QtQuick 2.15
|
|
import QtQuick.Layouts
|
|
import FluentUI
|
|
import QtQuick.Dialogs
|
|
import "qrc:///AicsKnowledgeBase/qml/global"
|
|
import SignalFileOperation 1.0
|
|
import AicsKB.FileTransferManager
|
|
|
|
FluButton {
|
|
property var header
|
|
property var currentSelectedFile: null
|
|
|
|
Layout.alignment: Qt.AlignRight
|
|
text: "上传"
|
|
onClicked: function () {
|
|
console.log("click")
|
|
fileDialog.open()
|
|
}
|
|
FileDialog {
|
|
id: fileDialog
|
|
onAccepted: function () {
|
|
currentSelectedFile = selectedFile
|
|
popup.open()
|
|
}
|
|
onRejected: currentSelectedFile = null
|
|
}
|
|
|
|
FluPopup {
|
|
id: popup
|
|
focus: true
|
|
Rectangle {
|
|
id: layout_content
|
|
anchors.fill: parent
|
|
implicitWidth: Window.window == null ? 400 : Math.min(
|
|
Window.window.width, 400)
|
|
|
|
implicitHeight: text_title.height + content.height + layout_actions.height
|
|
color: 'transparent'
|
|
radius: 5
|
|
FluText {
|
|
id: text_title
|
|
font: FluTextStyle.Title
|
|
text: "上传知识文件"
|
|
topPadding: 20
|
|
leftPadding: 20
|
|
rightPadding: 20
|
|
wrapMode: Text.WrapAnywhere
|
|
anchors {
|
|
top: parent.top
|
|
left: parent.left
|
|
right: parent.right
|
|
}
|
|
}
|
|
|
|
Row {
|
|
id: content
|
|
topPadding: 14
|
|
leftPadding: 20
|
|
rightPadding: 20
|
|
bottomPadding: 14
|
|
anchors {
|
|
top: text_title.bottom
|
|
left: parent.left
|
|
right: parent.right
|
|
}
|
|
FluMultilineTextBox {
|
|
id: brief_textbox
|
|
width: parent.width - parent.leftPadding - parent.rightPadding
|
|
placeholderText: "请输入简介"
|
|
}
|
|
}
|
|
|
|
Rectangle {
|
|
id: layout_actions
|
|
height: 68
|
|
radius: 5
|
|
color: FluTheme.dark ? Qt.rgba(
|
|
32 / 255, 32 / 255, 32 / 255,
|
|
blurBackground ? blurOpacity - 0.4 : 1) : Qt.rgba(
|
|
243 / 255, 243 / 255, 243 / 255,
|
|
blurBackground ? blurOpacity - 0.4 : 1)
|
|
anchors {
|
|
top: content.bottom
|
|
left: parent.left
|
|
right: parent.right
|
|
}
|
|
RowLayout {
|
|
anchors {
|
|
centerIn: parent
|
|
margins: spacing
|
|
fill: parent
|
|
}
|
|
spacing: 15
|
|
FluButton {
|
|
id: negative_btn
|
|
Layout.fillWidth: true
|
|
Layout.fillHeight: true
|
|
text: "取消"
|
|
onClicked: {
|
|
popup.close()
|
|
}
|
|
}
|
|
FluFilledButton {
|
|
id: positive_btn
|
|
Layout.fillWidth: true
|
|
Layout.fillHeight: true
|
|
text: "上传"
|
|
onClicked: {
|
|
popup.close()
|
|
let name = FileTransferManager.getFileName(
|
|
currentSelectedFile)
|
|
const size = FileTransferManager.getFileSize(
|
|
currentSelectedFile)
|
|
const md5 = FileTransferManager.getFileMd5(
|
|
currentSelectedFile)
|
|
if (size <= 0 || md5 === '')
|
|
return
|
|
var body = {
|
|
"name": name,
|
|
"brief": brief_textbox.text,
|
|
"size": size,
|
|
"md5": md5,
|
|
"tags": [],
|
|
"parentId": currentParentId()
|
|
}
|
|
console.log("begin")
|
|
console.log(JSON.stringify(body))
|
|
Request.post("knowledge/file",
|
|
JSON.stringify(body),
|
|
function (res, data) {
|
|
console.log(res)
|
|
console.log(data)
|
|
FileTransferManager.upload(
|
|
currentSelectedFile,
|
|
data.id, data.ticket,
|
|
name)
|
|
}, function (res, data) {
|
|
console.log(res)
|
|
})
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function currentParentId() {
|
|
return header.items.length !== 0 ? header.items[header.items.length - 1].uuid : null
|
|
}
|
|
}
|