From fea5bd698d89fb5ead08082c3763e6d160343658 Mon Sep 17 00:00:00 2001 From: karlis <2995621482@qq.com> Date: Thu, 6 Jul 2023 15:10:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=B0=E5=BB=BA=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A4=B9=E9=9D=99=E6=80=81=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AicsKnowledgeBase/qml/component/FileList.qml | 109 ++++++++++------ .../qml/component/InputDialog.qml | 122 ++++++++++++++++++ AicsKnowledgeBase/res/createFolder.png | Bin 0 -> 5546 bytes 3 files changed, 194 insertions(+), 37 deletions(-) create mode 100644 AicsKnowledgeBase/qml/component/InputDialog.qml create mode 100644 AicsKnowledgeBase/res/createFolder.png diff --git a/AicsKnowledgeBase/qml/component/FileList.qml b/AicsKnowledgeBase/qml/component/FileList.qml index e992e3e..11e348c 100644 --- a/AicsKnowledgeBase/qml/component/FileList.qml +++ b/AicsKnowledgeBase/qml/component/FileList.qml @@ -2,6 +2,7 @@ import QtQuick 2.15 import QtQuick.Layouts import FluentUI import QtQuick.Dialogs +import QtQuick.Controls import "qrc:///AicsKnowledgeBase/qml/global" import SignalFileOperation 1.0 import AicsKB.FileTransferManager @@ -44,43 +45,76 @@ Item { "uuid": uuid }]) } - FluButton { - Layout.alignment: Qt.AlignRight - text: "上传" - onClicked: function () { - console.log("click") - fileDialog.open() - } - FileDialog { - id: fileDialog - onAccepted: function () { - let name = FileTransferManager.getFileName(selectedFile) - const size = FileTransferManager.getFileSize( - selectedFile) - const md5 = FileTransferManager.getFileMd5(selectedFile) - if (size <= 0 || md5 === '') - return - var body = { - "name": name, - "brief": "brief", - "size": size, - "md5": md5, - "tags": [], - "parentId": header.items.length - !== 0 ? header.items[header.items.length - 1].uuid : null + RowLayout { + Layout.preferredWidth: parent.width + Item { + Layout.alignment: Qt.AlignRight + height: 28 + width: 28 + InputDialog { + id: dialog + title: "新建文件夹" + buttonFlags: FluContentDialog.PositiveButton + | FluContentDialog.NegativeButton + negativeText: "取消" + positiveText: "确定" + message: "请输入文件夹名称" + onPositiveClicked: text => { + console.log(text) + } + } + + Image { + source: "qrc:/AicsKnowledgeBase/res/createFolder.png" + anchors.fill: parent + } + MouseArea { + anchors.fill: parent + onClicked: { + dialog.open() + } + } + } + FluButton { + Layout.alignment: Qt.AlignRight + text: "上传" + onClicked: function () { + console.log("click") + fileDialog.open() + } + FileDialog { + id: fileDialog + onAccepted: function () { + let name = FileTransferManager.getFileName( + selectedFile) + const size = FileTransferManager.getFileSize( + selectedFile) + const md5 = FileTransferManager.getFileMd5( + selectedFile) + if (size <= 0 || md5 === '') + return + var body = { + "name": name, + "brief": "brief", + "size": size, + "md5": md5, + "tags": [], + "parentId": header.items.length !== 0 ? header.items[header.items.length - 1].uuid : null + } + 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( + selectedFile, data.id, + data.ticket, name) + }, function (res, data) { + console.log(res) + }) } - 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( - selectedFile, data.id, - data.ticket, name) - }, function (res, data) { - console.log(res) - }) } } } @@ -151,6 +185,7 @@ Item { === 0 ? "null" : header.items[header.items.length - 1].uuid Request.get("/knowledge/" + uuid, function (response) { var data = JSON.parse(response) + console.log(response) console.log(data.knowledgeFileAttribute) fileListModel.clear() var files = data.children @@ -186,7 +221,7 @@ Item { } fileListModel.append(modelItem) } - console.log(fileListModel) + console.log(fileListModel.count) listView.currentIndex = -1 }) } diff --git a/AicsKnowledgeBase/qml/component/InputDialog.qml b/AicsKnowledgeBase/qml/component/InputDialog.qml new file mode 100644 index 0000000..ef60cda --- /dev/null +++ b/AicsKnowledgeBase/qml/component/InputDialog.qml @@ -0,0 +1,122 @@ +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls +import QtQuick.Window +import FluentUI + +FluPopup { + id: popup + property string title: "Title" + property string message: "Message" + property string neutralText: "Neutral" + property string negativeText: "Negative" + property string positiveText: "Positive" + signal neutralClicked + signal negativeClicked + signal positiveClicked(string text) + enum ButtonFlag { + NegativeButton = 1, + NeutralButton = 2, + PositiveButton = 4 + } + property int buttonFlags: FluContentDialog.NegativeButton | FluContentDialog.PositiveButton + property var minWidth: { + if (Window.window == null) + return 400 + return Math.min(Window.window.width, 400) + } + focus: true + Rectangle { + id: layout_content + anchors.fill: parent + implicitWidth: minWidth + implicitHeight: text_title.height + text_message.height + layout_actions.height + color: 'transparent' + radius: 5 + FluText { + id: text_title + font: FluTextStyle.TitleLarge + text: title + topPadding: 20 + leftPadding: 20 + rightPadding: 20 + wrapMode: Text.WrapAnywhere + anchors { + top: parent.top + left: parent.left + right: parent.right + } + } + FluTextBox { + id: text_message + font: FluTextStyle.Body + wrapMode: Text.WrapAnywhere + placeholderText: message + topPadding: 14 + leftPadding: 20 + rightPadding: 20 + bottomPadding: 14 + anchors { + top: text_title.bottom + left: parent.left + right: parent.right + } + } + 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: text_message.bottom + left: parent.left + right: parent.right + } + RowLayout { + anchors { + centerIn: parent + margins: spacing + fill: parent + } + spacing: 15 + FluButton { + id: neutral_btn + Layout.fillWidth: true + Layout.fillHeight: true + visible: popup.buttonFlags & FluContentDialog.NeutralButton + text: neutralText + onClicked: { + popup.close() + neutralClicked() + } + } + FluButton { + id: negative_btn + Layout.fillWidth: true + Layout.fillHeight: true + visible: popup.buttonFlags & FluContentDialog.NegativeButton + text: negativeText + onClicked: { + popup.close() + negativeClicked() + } + } + FluFilledButton { + id: positive_btn + Layout.fillWidth: true + Layout.fillHeight: true + visible: popup.buttonFlags & FluContentDialog.PositiveButton + text: positiveText + onClicked: { + popup.close() + positiveClicked(text_message.text) + } + } + } + } + } +} diff --git a/AicsKnowledgeBase/res/createFolder.png b/AicsKnowledgeBase/res/createFolder.png new file mode 100644 index 0000000000000000000000000000000000000000..1cac6e80eec9a990561024d16272eb0746e65da3 GIT binary patch literal 5546 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