diff --git a/AicsKnowledgeBase/qml/LoginWindow.qml b/AicsKnowledgeBase/qml/LoginWindow.qml index a7dbc86..4863fa1 100644 --- a/AicsKnowledgeBase/qml/LoginWindow.qml +++ b/AicsKnowledgeBase/qml/LoginWindow.qml @@ -5,6 +5,7 @@ import QtQuick.Window import QtQuick.Layouts import org.wangwenx190.FramelessHelper import AicsKB.HttpClient +import "qrc:///AicsKnowledgeBase/qml/global" AppFluWindow { id: window @@ -32,7 +33,7 @@ AppFluWindow { Rectangle{ width: parent.width * 0.5 height: parent.height - color: "#f3f3f3" + color: "#f3f3f3" ColumnLayout { id: loginRect anchors.fill: parent @@ -90,21 +91,36 @@ AppFluWindow { //normalColor: "#ffffff" text: "登录" onClicked: { - FluApp.navigate("/"); - window.close(); + var param ={ + username: account.text, + password: password.text + } + + Request.post("login",JSON.toString(param), function(result, data) { + console.log(result) + console.log(data) + FluApp.navigate("/"); + window.close(); + }, function() { + FluApp.navigate("/"); + window.close(); + }) + + //HttpClient.doGetRequest( // "https://quic.aiortc.org/", // loginItem, "login") } } + } } - // FluPivotItem { - // title: "注册" - // Rectangle{ - // anchors.fill: parent - // color: "blue" - // } + // FluPivotItem { + // title: "注册" + // Rectangle{ + // anchors.fill: parent + // color: "blue" + // } //} } } diff --git a/AicsKnowledgeBase/qml/MainWindow.qml b/AicsKnowledgeBase/qml/MainWindow.qml index 262e2d2..bba7d88 100644 --- a/AicsKnowledgeBase/qml/MainWindow.qml +++ b/AicsKnowledgeBase/qml/MainWindow.qml @@ -24,6 +24,33 @@ FluWindow { } } + RowLayout { + anchors.top: parent.top + anchors.right: parent.right + anchors.rightMargin: 140 + + height: 44 + + layoutDirection: Qt.RightToLeft + +// Rectangle{ +// anchors.fill: parent +// color: "red" +// } + + Rectangle{ + color: FluColors.White + radius: 50 + width: 32 + height: 32 + } + + Text { + Layout.margins: {right: 10} + text: "用户名" + } + } + RowLayout { anchors.fill: parent diff --git a/AicsKnowledgeBase/qml/global/NavItems.qml b/AicsKnowledgeBase/qml/global/NavItems.qml index f56ac79..c8ee738 100644 --- a/AicsKnowledgeBase/qml/global/NavItems.qml +++ b/AicsKnowledgeBase/qml/global/NavItems.qml @@ -47,6 +47,14 @@ FluObject { } } + FluPaneItem { + title: "搜索" + icon: FluentIcons.Search + onTap: { + navigationView.push("qrc:/AicsKnowledgeBase/qml/page/SearchPage.qml") + } + } + function startPageByItem(data) { navigationView.startPageByItem(data) } diff --git a/AicsKnowledgeBase/qml/global/Request.qml b/AicsKnowledgeBase/qml/global/Request.qml new file mode 100644 index 0000000..da07527 --- /dev/null +++ b/AicsKnowledgeBase/qml/global/Request.qml @@ -0,0 +1,52 @@ +pragma Singleton + +import QtQuick + +QtObject { + id: request + + property string baseUrl: "http://127.0.0.1:4523/m1/2914957-0-default/" + + // GET + function get(url, success, failure) { + var xhr = new XMLHttpRequest + xhr.open("GET", baseUrl + url) + xhr.onreadystatechange = function () { + handleResponse(xhr, success, failure) + } + xhr.send() + } + + // POST + function post(url, arg, success, failure) { + var xhr = new XMLHttpRequest + xhr.open("POST", baseUrl + url) + xhr.setRequestHeader("Content-Length", arg.length) + xhr.setRequestHeader( + "Content-Type", + "application/x-www-form-urlencoded;") //用POST的时候一定要有这句 + xhr.onreadystatechange = function () { + handleResponse(xhr, success, failure) + } + xhr.send(arg) + } + + // 处理返回值 + function handleResponse(xhr, success, failure) { + if (xhr.readyState === XMLHttpRequest.DONE) { + if (xhr.status === 200) { + if (success !== null && success !== undefined) { + var result = xhr.responseText + try { + success(result, JSON.parse(result)) + } catch (e) { + success(result, {}) + } + } + } else { + if (failure !== null && failure !== undefined) + failure(xhr.responseText, xhr.status) + } + } + } +} diff --git a/AicsKnowledgeBase/qml/global/qmldir b/AicsKnowledgeBase/qml/global/qmldir index 5878107..b7fda2e 100644 --- a/AicsKnowledgeBase/qml/global/qmldir +++ b/AicsKnowledgeBase/qml/global/qmldir @@ -1,2 +1,3 @@ singleton NavItems 1.0 NavItems.qml singleton FooterItems 1.0 FooterItems.qml +singleton Request 1.0 Request.qml \ No newline at end of file diff --git a/AicsKnowledgeBase/qml/page/SearchPage.qml b/AicsKnowledgeBase/qml/page/SearchPage.qml new file mode 100644 index 0000000..909ae98 --- /dev/null +++ b/AicsKnowledgeBase/qml/page/SearchPage.qml @@ -0,0 +1,20 @@ +import QtQuick +import QtQuick.Layouts +import QtQuick.Window +import QtQuick.Controls +import QtQuick.Controls.Basic +import FluentUI + +FluArea { + property string url: '' + + Layout.fillHeight: true + Layout.fillWidth: true + Layout.topMargin: 20 + paddings: 10 + + FluText { + Layout.topMargin: 20 + text: "Search" + } +} diff --git a/AicsKnowledgeBase/src/main.cpp b/AicsKnowledgeBase/src/main.cpp index edc0d6b..676475b 100644 --- a/AicsKnowledgeBase/src/main.cpp +++ b/AicsKnowledgeBase/src/main.cpp @@ -36,7 +36,7 @@ int main(int argc, char* argv[]) qmlRegisterSingletonInstance("AicsKB.HttpClient", 1, 0, "HttpClient", httpClient); - const QUrl url(u"qrc:/AicsKnowledgeBase/qml/component/FileList.qml"_qs); + const QUrl url(u"qrc:/AicsKnowledgeBase/qml/App.qml"_qs); QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, &app, [url](QObject* obj, const QUrl& objUrl) { if (!obj && url == objUrl)