From 8d68f26b1504a6f3017226a6acdd00e9a724a548 Mon Sep 17 00:00:00 2001 From: yxdy Date: Sat, 15 Feb 2025 18:06:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FluentUI/Controls/TabView.qml | 9 + Gallery/CMakeLists.txt | 9 +- Gallery/Gallery_en_US.ts | 2 +- Gallery/Gallery_zh_CN.ts | 2 +- Gallery/res/image/icons/car.png | Bin 0 -> 59009 bytes Gallery/res/image/icons/gc.png | Bin 0 -> 2326 bytes Gallery/res/image/icons/mime.png | Bin 0 -> 56662 bytes Gallery/res/qml/App.qml | 2 + Gallery/res/qml/Global.qml | 2 + Gallery/res/qml/component/ComAnalysisInfo.qml | 141 +++++++++-- Gallery/res/qml/component/ComDesignInfo.qml | 8 +- .../res/qml/component/ComDesignInfoLine.qml | 101 ++++---- .../qml/component/ComDesignInfoPolygon.qml | 17 +- Gallery/res/qml/component/LeftMainMenu.qml | 31 ++- Gallery/res/qml/component/LeftMainMenuTab.qml | 14 +- Gallery/res/qml/component/LeftProjectMenu.qml | 9 - Gallery/res/qml/component/LeftResource.qml | 143 +++++++++++ .../res/qml/component/RightComponentInfo.qml | 13 +- .../res/qml/component/RightMainContent.qml | 27 +- Gallery/res/qml/component/TitleBar.qml | 24 +- Gallery/res/qml/component/ToolBar.qml | 28 +++ Gallery/res/qml/screen/MainPageScreen.qml | 110 +++++--- .../res/qml/screen/PointIconListScreen.qml | 14 +- Gallery/res/qml/screen/SearchNearScreen.qml | 235 ++++++++++++++++++ Gallery/res/qml/screen/SimTransportScreen.qml | 104 ++++++++ Gallery/res/qml/window/MainPageWindow.qml | 4 +- Gallery/res/qml/window/SearchNearWindow.qml | 19 ++ Gallery/res/qml/window/SimTransportWindow.qml | 27 ++ 28 files changed, 949 insertions(+), 146 deletions(-) create mode 100644 Gallery/res/image/icons/car.png create mode 100644 Gallery/res/image/icons/gc.png create mode 100644 Gallery/res/image/icons/mime.png create mode 100644 Gallery/res/qml/component/LeftResource.qml create mode 100644 Gallery/res/qml/screen/SearchNearScreen.qml create mode 100644 Gallery/res/qml/screen/SimTransportScreen.qml create mode 100644 Gallery/res/qml/window/SearchNearWindow.qml create mode 100644 Gallery/res/qml/window/SimTransportWindow.qml diff --git a/FluentUI/Controls/TabView.qml b/FluentUI/Controls/TabView.qml index d0f3d7a..a5b5985 100644 --- a/FluentUI/Controls/TabView.qml +++ b/FluentUI/Controls/TabView.qml @@ -10,6 +10,9 @@ Item { property int itemWidth: 146 property bool addButtonVisibility: true signal newPressed + signal closeTabed(var item) + signal closeTabOk() + signal clickNav(var item) id:control implicitHeight: height implicitWidth: width @@ -127,6 +130,7 @@ Item { drag.axis: Drag.XAxis onClicked: { tab_nav.currentIndex = model.index + clickNav(model) } } Rectangle{ @@ -194,7 +198,9 @@ Item { verticalCenter: parent.verticalCenter } onClicked: { + closeTabed(model) tab_model.remove(index) + closeTabOk() } } Rectangle{ @@ -254,4 +260,7 @@ Item { function choose(index) { tab_nav.currentIndex = index } + function get_cur_tab() { + return tab_model.get(tab_nav.currentIndex) + } } diff --git a/Gallery/CMakeLists.txt b/Gallery/CMakeLists.txt index c82aff5..912bbe8 100644 --- a/Gallery/CMakeLists.txt +++ b/Gallery/CMakeLists.txt @@ -158,10 +158,12 @@ set(RESOURCES_FILES res/image/icons/dry.png res/image/icons/dw.png res/image/icons/fwq.png - res/image/icons/icon_car.png + res/image/icons/car.png res/image/icons/park.png res/image/icons/sf.png res/image/icons/u.png + res/image/icons/gc.png + res/image/icons/mime.png Gallery_zh_CN.qm Gallery_en_US.qm ) @@ -241,6 +243,11 @@ qt_add_qml_module(${PROJECT_NAME} QML_FILES res/qml/window/NewFolderWindow.qml QML_FILES res/qml/screen/NewFolderScreen.qml QML_FILES res/qml/component/LeftMainMenu.qml + QML_FILES res/qml/window/SearchNearWindow.qml + QML_FILES res/qml/screen/SearchNearScreen.qml + QML_FILES res/qml/window/SimTransportWindow.qml + QML_FILES res/qml/screen/SimTransportScreen.qml + QML_FILES res/qml/component/LeftResource.qml ) if (NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten") diff --git a/Gallery/Gallery_en_US.ts b/Gallery/Gallery_en_US.ts index 6f26524..7e29eed 100644 --- a/Gallery/Gallery_en_US.ts +++ b/Gallery/Gallery_en_US.ts @@ -761,7 +761,7 @@ RightMainContent - + 您确认要删除吗? diff --git a/Gallery/Gallery_zh_CN.ts b/Gallery/Gallery_zh_CN.ts index 5aa5111..4c6658b 100644 --- a/Gallery/Gallery_zh_CN.ts +++ b/Gallery/Gallery_zh_CN.ts @@ -1092,7 +1092,7 @@ RightMainContent - + 您确认要删除吗? diff --git a/Gallery/res/image/icons/car.png b/Gallery/res/image/icons/car.png new file mode 100644 index 0000000000000000000000000000000000000000..b215087cc26fb2ca014b4889947c40c10ac04c1d GIT binary patch literal 59009 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

;&zXUdkNitMuc93wG?5Qczm%d+VuyE_ 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 - console.log(JSON.stringify(data)) + var data = {id: control.generateUUID(), title: data.title, height: 35, icon: "qrc:/qt/qml/Gallery/res/image/ico_tab.png", cdata: null} + control.setMenuData(data) } } //////////// Component.onCompleted: { - var data = {id: "1", title: "主页", height: 35, icon: "qrc:/qt/qml/Gallery/res/image/ico_tab.png", cdata: null} + var data = {id: "1", title: "充电站规划", height: 35, icon: "qrc:/qt/qml/Gallery/res/image/ico_tab.png", cdata: null} + control.setMenuData(data) + var data = {id: "12", title: "运输计划", height: 35, icon: "qrc:/qt/qml/Gallery/res/image/ico_tab.png", cdata: null} control.setMenuData(data) } @@ -180,4 +183,14 @@ Item { dataModel.sourceData = initData } + + function generateUUID() { + var d = new Date().getTime(); + var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { + var r = (d + Math.random()*16)%16 | 0; + d = Math.floor(d/16); + return (c=='x' ? r : (r&0x3|0x8)).toString(16); + }); + return uuid; + } } diff --git a/Gallery/res/qml/component/LeftMainMenuTab.qml b/Gallery/res/qml/component/LeftMainMenuTab.qml index 63d2794..432aa43 100644 --- a/Gallery/res/qml/component/LeftMainMenuTab.qml +++ b/Gallery/res/qml/component/LeftMainMenuTab.qml @@ -9,6 +9,8 @@ Item { signal clickMenuItem(var data) + signal clickResource(var data) + property var colors : [Colors.yellow,Colors.orange,Colors.red,Colors.magenta,Colors.purple,Colors.blue,Colors.teal,Colors.green] property var randomAccentColor: function(){ @@ -79,10 +81,18 @@ Item { } } - Rectangle{ + // 资源面板 + LeftResource{ Layout.fillWidth: true Layout.fillHeight: true - color: 'yellow' + onClickResource: function(data) { + control.clickResource(data) + } + + // color: 'yellow' + // LeftResource{ + // anchors.fill: parent + // } } Rectangle{ Layout.fillWidth: true diff --git a/Gallery/res/qml/component/LeftProjectMenu.qml b/Gallery/res/qml/component/LeftProjectMenu.qml index bab18c7..8b57791 100644 --- a/Gallery/res/qml/component/LeftProjectMenu.qml +++ b/Gallery/res/qml/component/LeftProjectMenu.qml @@ -165,15 +165,6 @@ Item { tmp.cdata = data } - // initData.push({key: "组件1", height: 35, icon: "qrc:/qt/qml/Gallery/res/image/ico_tab.png"}) - // initData.push({key: "线路1", height: 35, icon: "qrc:/qt/qml/Gallery/res/image/ico_tab.png", children: [ - // {key: "新疆", height: 36, icon: ""}, - // {key: "耳字豪", height: 36, icon: ""} - // ]}) - // initData.push({key: "陆港集合", height: 35, icon: "qrc:/qt/qml/Gallery/res/image/ico_tab.png", children: [ - // {key: "耳字豪陆港", height: 36, icon: ""} - // ]}) - dataModel.sourceData = initData } } diff --git a/Gallery/res/qml/component/LeftResource.qml b/Gallery/res/qml/component/LeftResource.qml new file mode 100644 index 0000000..a7ed9c8 --- /dev/null +++ b/Gallery/res/qml/component/LeftResource.qml @@ -0,0 +1,143 @@ +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls +import FluentUI.Controls +import FluentUI.impl +import Gallery + +ColumnLayout { + id: control + + signal clickResource(var name) + + anchors.fill: parent + + ColumnLayout{ + Layout.fillHeight: true + Layout.fillWidth: true + spacing: 10 + + Rectangle{ + Layout.preferredWidth: 200 + Layout.preferredHeight: 50 + color: "transparent" + + border.color: "#ffffff" + border.width: 2 + + RowLayout{ + anchors.fill: parent + Label{ + Layout.leftMargin: 10 + Layout.fillWidth: true + text: "新疆煤炭资源(156个)" + font.pointSize: 10 + } + Button{ + text: "加载" + Layout.rightMargin: 10 + onClicked: { + control.clickResource({type: "meitan", title: "新疆煤炭资源"}) + } + } + } + + // MouseArea{ + // anchors.fill: parent + // hoverEnabled: true + // onEntered: parent.color = "#292929" + // onExited: parent.color = "transparent" + // } + } + + + Rectangle{ + Layout.preferredWidth: 200 + Layout.preferredHeight: 50 + color: "transparent" + + border.color: "#ffffff" + border.width: 2 + + RowLayout{ + anchors.fill: parent + Label{ + Layout.leftMargin: 10 + Layout.fillWidth: true + text: "G7高速周边充电站(15个)" + font.pointSize: 10 + } + Button{ + text: "加载" + Layout.rightMargin: 10 + } + } + + MouseArea{ + anchors.fill: parent + hoverEnabled: true + onEntered: parent.color = "#292929" + onExited: parent.color = "transparent" + } + } + + Rectangle{ + Layout.preferredWidth: 200 + Layout.preferredHeight: 50 + color: "transparent" + + border.color: "#ffffff" + border.width: 2 + + RowLayout{ + anchors.fill: parent + Label{ + Layout.leftMargin: 10 + Layout.fillWidth: true + text: "全国陆港分布(15个)" + font.pointSize: 10 + } + Button{ + text: "加载" + Layout.rightMargin: 10 + onClicked: { + control.clickResource({type: "lugang", title: "全国陆港分布"}) + } + } + } + } + + + Rectangle{ + Layout.preferredWidth: 200 + Layout.preferredHeight: 50 + color: "transparent" + + border.color: "#ffffff" + border.width: 2 + + RowLayout{ + anchors.fill: parent + Label{ + Layout.leftMargin: 10 + Layout.fillWidth: true + text: "包头市倾斜摄影数据" + font.pointSize: 10 + } + Button{ + text: "加载" + Layout.rightMargin: 10 + } + } + + MouseArea{ + anchors.fill: parent + hoverEnabled: true + onEntered: parent.color = "#292929" + onExited: parent.color = "transparent" + } + } + + + } +} diff --git a/Gallery/res/qml/component/RightComponentInfo.qml b/Gallery/res/qml/component/RightComponentInfo.qml index e006ee1..7a963d2 100644 --- a/Gallery/res/qml/component/RightComponentInfo.qml +++ b/Gallery/res/qml/component/RightComponentInfo.qml @@ -89,7 +89,7 @@ Item { control.iconChanged(data) } onTextChanged: function(data) { - control.textChanged(data) + control.textChanged({title: data, id: com_design.entityId}) } onTextColorChanged: function(data) { console.log(data) @@ -109,12 +109,12 @@ Item { console.log("change line color ==" + data) control.lineInfoChanged({lineColor: data}) } + onTextChanged: function(data) { + control.lineInfoChanged({title: data, id: com_design_line.entityId }) + } // onIconChanged: function(data) { // control.iconChanged(data) // } - // onTextChanged: function(data) { - // control.textChanged(data) - // } // onTextColorChanged: function(data) { // console.log(data) // control.textColorChanged(data) @@ -138,7 +138,10 @@ Item { Rectangle{ Layout.fillWidth: true Layout.fillHeight: true - color: 'yellow' + color: 'transparent' + Label{ + text: "对接thingboard接口?" + } } Rectangle{ Layout.fillWidth: true diff --git a/Gallery/res/qml/component/RightMainContent.qml b/Gallery/res/qml/component/RightMainContent.qml index 6b00d9b..47ebaf5 100644 --- a/Gallery/res/qml/component/RightMainContent.qml +++ b/Gallery/res/qml/component/RightMainContent.qml @@ -6,6 +6,9 @@ import FluentUI.impl import Gallery Item { + id: control + signal clickSee(var item) + anchors.fill: parent Component{ id: item_project @@ -77,13 +80,13 @@ Item { } } IconButton{ - text: "查看" + text: "设计" icon.name: FluentIcons.graph_RedEye icon.width: 10 icon.height: 10 spacing: 3 onClicked: { - + control.clickSee(model) } } IconButton{ @@ -140,6 +143,14 @@ Item { desc: "" img: "qrc:/qt/qml/Gallery/res/image/card/bg_card.png" } + ListElement { + uuid: "2" + title: "河津站" + company: "绿电智联(浙江)数据科技有限公司" + time: "2025-01-05 12:00:00" + desc: "" + img: "qrc:/qt/qml/Gallery/res/image/card/bg_card.png" + } } // 新建项目弹框 @@ -154,7 +165,7 @@ Item { var day = d.getDate() var str_time = year + "-" + (month >= 10 ? month : "0" + month) + "-" + (day >= 10 ? day : "0" + day) - list_model.append({title: data.title, company: data.company, desc: data.desc, time: str_time}) + list_model.append({title: data.title, company: data.company, desc: data.desc, time: str_time, uuid: control.generateUUID()}) // var ml = Qt.createComponent("qrc:/qt/qml/FluentUI/Controls/PaneItemExpander.qml"); // if (ml.status === Component.Ready) { // var menu = ml.createObject(nav_menu,{title: data.title }) @@ -201,4 +212,14 @@ Item { } } } + + function generateUUID() { + var d = new Date().getTime(); + var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { + var r = (d + Math.random()*16)%16 | 0; + d = Math.floor(d/16); + return (c=='x' ? r : (r&0x3|0x8)).toString(16); + }); + return uuid; + } } diff --git a/Gallery/res/qml/component/TitleBar.qml b/Gallery/res/qml/component/TitleBar.qml index 624c487..739f96c 100644 --- a/Gallery/res/qml/component/TitleBar.qml +++ b/Gallery/res/qml/component/TitleBar.qml @@ -7,7 +7,7 @@ import FluentUI.impl import Qt5Compat.GraphicalEffects Item { - signal clickNav(var path) + signal clickNav(var path, var params) id: control property var mapTabs: {"": ""} // anchors.fill: parent @@ -69,7 +69,7 @@ Item { onEntered: parent.color = "#000000" onExited: parent.color = "#292929" onClicked: { - control.clickNav("home") + control.clickNav("home", "") // selectedSegment = model.text // segmentDialog.close() } @@ -95,7 +95,25 @@ Item { id:com_page Rectangle{ anchors.fill: parent - color: "transparent" + color: "green" + } + } + onClickNav: function(data) { + control.clickNav("other", data.argument.path) + } + onCloseTabed: function(index) { + console.log("tab count=" + tab_view.count()) + control.mapTabs[index.argument.path] = undefined + } + onCloseTabOk: { + if (tab_view.count() > 0) { + tab_view.choose(tab_view.count() - 1) + var curt = tab_view.get_cur_tab() + var uuid = curt.argument.path + console.log(curt.argument.title) + control.clickNav("other", uuid) + } else { + control.clickNav("home", "") } } function newTab(){ diff --git a/Gallery/res/qml/component/ToolBar.qml b/Gallery/res/qml/component/ToolBar.qml index b53a601..8492313 100644 --- a/Gallery/res/qml/component/ToolBar.qml +++ b/Gallery/res/qml/component/ToolBar.qml @@ -79,25 +79,53 @@ Item { ToggleButton{ Layout.fillWidth: false text: "三角" + onClicked: { + control.clickButton("StartTriangle") + } } ToggleButton{ Layout.fillWidth: false text: "圆" + onClicked: { + control.clickButton("StartCircle") + } } ToggleButton{ Layout.fillWidth: false text: "椭圆" + onClicked: { + control.clickButton("StartEllipse") + } } ToggleButton{ Layout.fillWidth: false text: "自由线" + onClicked: { + control.clickButton("StartFreeLine") + } } ToggleButton{ Layout.fillWidth: false text: "自由面" + onClicked: { + control.clickButton("StartFreeSurface") + } } } } + + Rectangle{ + Layout.preferredWidth: 100 + Layout.preferredHeight: 30 + color: "transparent" + // Button{ + // text: "运输仿真" + // highlighted: true + // onClicked: { + // WindowRouter.go("/sim",{type:"WindowType.Standard"}) + // } + // } + } } } diff --git a/Gallery/res/qml/screen/MainPageScreen.qml b/Gallery/res/qml/screen/MainPageScreen.qml index e8f18d3..20e3270 100644 --- a/Gallery/res/qml/screen/MainPageScreen.qml +++ b/Gallery/res/qml/screen/MainPageScreen.qml @@ -3,6 +3,7 @@ import QtQuick.Layouts import QtQuick.Controls import FluentUI.Controls import FluentUI.impl +import Gallery import "../component" Item { @@ -21,10 +22,14 @@ Item { TitleBar{ id: title_bar Layout.preferredWidth: parent.width - - onClickNav: (params) => { - control.is_home = true - nav_main.visitUrl("/") + onClickNav: (type, params) => { + if (type == "home") { + control.is_home = true + } else if (type == "other") { + control.is_home = false + map_container.run_js("QT_Refresh", params) + } + // nav_main.visitUrl("/") } } @@ -32,7 +37,9 @@ Item { visible: !control.is_home Layout.preferredWidth: parent.width onClickButton: (fun) => { - console.log(fun) + control.show_right = false + com_info.reset_info() + map_container.run_js(fun) } } @@ -48,31 +55,41 @@ Item { color: "transparent" // 主页的菜单。 - // LeftMainMenu{ - // anchors.fill: parent + LeftMainMenu{ + anchors.fill: parent + } + + // LeftNavMenu{ + // id: nav_main + // height: parent.height + // onClickMenu: (item) => { + // if (item.key == "/") { + // control.is_home = true + // } else if (item.key == "/newproject") { + + // } else { + // console.log(item.title + ", filter list...") + // control.is_home = false + // title_bar.addTab(item.title, item.key) + // } + // } // } + } - LeftNavMenu{ - id: nav_main - height: parent.height - onClickMenu: (item) => { - if (item.key == "/") { - control.is_home = true - } else if (item.key == "/newproject") { - - } else { - console.log(item.title + ", filter list...") - control.is_home = false - title_bar.addTab(item.title, item.key) - } + Rectangle{ + visible: control.is_home + Layout.fillHeight: true + Layout.fillWidth: true + color: "transparent" + RightMainContent { + anchors.fill: parent + onClickSee: function(data) { + title_bar.addTab(data.title, data.uuid) + control.is_home = false } } } - // Rectangle{ - // visible: control.is_home - // } - // LeftProjectMenu{ // visible: !control.is_home @@ -87,9 +104,20 @@ Item { Layout.leftMargin: 10 onClickMenuItem: function(data) { - map_container.run_js("QT_ZoomTo", [data.id]) - // 更新右侧 - com_info.update_only_data(data) + console.log(JSON.stringify(data)) + if (data.type && data.type == "resource") { + map_container.run_js("QT_ZoomToResource", data.id) + } else { + map_container.run_js("QT_ZoomTo", [data.id]) + // 更新右侧 + com_info.update_only_data(data) + } + } + + onClickResource: function(data) { + map_container.run_js("QT_LoadResource", [data.type, data.title]) + // 需要更新元素tab数据 + } } @@ -103,6 +131,7 @@ Item { Layout.fillHeight: true Layout.fillWidth: true onAsyncMapInfo: function(data) { + com_info.reset_info() console.log("接受===" + data.type) if (data.type == "point") { control.right_type = data.type @@ -125,6 +154,11 @@ Item { control.right_type = data.type com_info.update_design(data.data) left_tab.setMenuData(data.data) + } else if (data.type == "search-near") { + WindowRouter.go("/searchNear",{type:"WindowType.Standard"}) + } else if (data.type == "resource") { + // 资源类的没有右侧面板 + left_tab.setMenuData(data.data) } } } @@ -141,7 +175,12 @@ Item { map_container.run_js("QT_ChangeIcon", {img: data}) } onTextChanged: function(data) { - map_container.run_js("QT_ChangeIcon", {text: data}) + map_container.run_js("QT_ChangeIcon", {text: data.title}) + // 更新左侧标题 + console.log("id====" + data.id) + if (data.title && data.id) { + left_tab.setMenuData(data) + } } onTextColorChanged: function(data) { map_container.run_js("QT_ChangeIcon", {textColor: data}) @@ -149,6 +188,11 @@ Item { onLineInfoChanged: function(data) { map_container.run_js("QT_ChangeLine", data) + // 更新左侧标题 + console.log("id====" + data.id) + if (data.title && data.id) { + left_tab.setMenuData(data) + } } onPolyInfoChanged: function(data) { @@ -161,4 +205,14 @@ Item { } } } + + + Connections { + target: Global + onSendMessage: function(message) { + console.log("Window 2 received:", message) + map_container.run_js("QT_StartSim", "") + } + } + } diff --git a/Gallery/res/qml/screen/PointIconListScreen.qml b/Gallery/res/qml/screen/PointIconListScreen.qml index b52747a..38cfe1a 100644 --- a/Gallery/res/qml/screen/PointIconListScreen.qml +++ b/Gallery/res/qml/screen/PointIconListScreen.qml @@ -17,6 +17,11 @@ Item { ListModel{ id: point_model + ListElement{ + key: "mime.png" + title: "煤矿" + image: "qrc:/qt/qml/Gallery/res/image/icons/mime.png" + } ListElement{ key: "dry.png" title: "陆港" @@ -33,9 +38,9 @@ Item { image: "qrc:/qt/qml/Gallery/res/image/icons/fwq.png" } ListElement{ - key: "icon_car.png" + key: "car.png" title: "车辆" - image: "qrc:/qt/qml/Gallery/res/image/icons/icon_car.png" + image: "qrc:/qt/qml/Gallery/res/image/icons/car.png" } ListElement{ key: "sf.png" @@ -47,6 +52,11 @@ Item { title: "U型路口" image: "qrc:/qt/qml/Gallery/res/image/icons/u.png" } + ListElement{ + key: "gc.png" + title: "发电厂" + image: "qrc:/qt/qml/Gallery/res/image/icons/gc.png" + } } GridView{ diff --git a/Gallery/res/qml/screen/SearchNearScreen.qml b/Gallery/res/qml/screen/SearchNearScreen.qml new file mode 100644 index 0000000..9e6ab4c --- /dev/null +++ b/Gallery/res/qml/screen/SearchNearScreen.qml @@ -0,0 +1,235 @@ +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls +import FluentUI.Controls +import FluentUI.impl + +ColumnLayout { + anchors.fill: parent + anchors.rightMargin: 10 + + // 输入框 + RowLayout{ + Layout.preferredHeight: 50 + spacing: 15 + TextBox{ + Layout.fillWidth: true + Layout.leftMargin: 10 + Layout.preferredHeight: 35 + placeholderText: "关键词" + } + Button{ + text: "搜索" + Layout.preferredWidth: 90 + Layout.preferredHeight: 35 + } + ComboBox{ + model: ListModel { + id: model + ListElement { text: "1公里内" } + ListElement { text: "5公里内" } + ListElement { text: "10公里内" } + } + Layout.rightMargin: 10 + } + } + + + ListModel{ + id: tab_model + ListElement{ + title: "充电站" + } + ListElement{ + title: "加氢站" + } + ListElement{ + title: "煤矿" + } + ListElement{ + title: "陆港" + } + ListElement{ + title: "收费站" + } + ListElement{ + title: "服务区" + } + } + // 过滤条件 + RowLayout{ + spacing: 15 + Layout.leftMargin: 10 + Repeater { + model: tab_model + Rectangle{ + width: 80 + height: 30 + color: "#0C53C0" + Label{ + text: model.title + anchors.centerIn: parent + } + MouseArea { + anchors.fill: parent + hoverEnabled: true + onEntered: parent.color = "#60B0EF" + onExited: parent.color = "#0C53C0" + onClicked: { + console.log("cdz") + } + } + } + } + + } + // 搜索结果 + ColumnLayout{ + Layout.fillHeight: true + Rectangle{ + Layout.fillHeight: true + Layout.fillWidth: true + Layout.leftMargin: 10 + Layout.rightMargin: 10 + Layout.topMargin: 10 + Layout.bottomMargin: 10 + color: "transparent" + border.color: "#ffffff" + border.width: 2 + + ColumnLayout{ + anchors.fill: parent + Rectangle{ + Layout.leftMargin: 2 + Layout.topMargin: 2 + + Layout.preferredWidth: parent.width - 4 + height: 60 + color: "transparent" + + ColumnLayout{ + anchors.fill: parent + spacing: 5 + RowLayout{ + Layout.fillWidth: true + Label{ + Layout.fillWidth: true + Layout.leftMargin: 5 + text: "新电青丰1号站充电桩" + font.pointSize: 14 + } + Label{ + Layout.preferredWidth: 90 + Layout.rightMargin: 5 + text: "2.7km" + horizontalAlignment: Text.AlignRight + font.pointSize: 8 + } + } + RowLayout{ + Layout.fillWidth: true + Layout.fillHeight: true + spacing: 5 + Label{ + Layout.leftMargin: 5 + Layout.fillWidth: true + text: "营业中,充电桩:6个,空闲:2个,实时电价:1元/kwh,服务费:1.2元/kwh" + font.pointSize: 8 + } + + Button{ + text: "查看" + highlighted: true + } + Button{ + text: "导航去" + highlighted: true + Layout.rightMargin: 5 + } + } + } + MouseArea { + anchors.fill: parent + hoverEnabled: true + onEntered: parent.color = "#292929" + onExited: parent.color = "transparent" + } + + Rectangle{ + width: parent.width + height: 1 + color: "#fff" + anchors.bottom: parent.bottom + } + } + + Rectangle{ + Layout.leftMargin: 2 + Layout.topMargin: 2 + + Layout.preferredWidth: parent.width - 4 + height: 60 + color: "transparent" + + ColumnLayout{ + anchors.fill: parent + spacing: 5 + RowLayout{ + Layout.fillWidth: true + Label{ + Layout.fillWidth: true + Layout.leftMargin: 5 + text: "青河县鹏新矿业" + font.pointSize: 14 + } + Label{ + Layout.preferredWidth: 90 + Layout.rightMargin: 5 + text: "2.7km" + horizontalAlignment: Text.AlignRight + font.pointSize: 8 + } + } + RowLayout{ + Layout.fillWidth: true + Layout.fillHeight: true + spacing: 5 + Label{ + Layout.leftMargin: 5 + Layout.fillWidth: true + text: "营业中,煤炭价格:300元/吨,装载车辆:35辆,周边道路:畅通" + font.pointSize: 8 + } + + Button{ + text: "查看" + highlighted: true + } + Button{ + text: "导航去" + highlighted: true + Layout.rightMargin: 5 + } + } + } + MouseArea { + anchors.fill: parent + hoverEnabled: true + onEntered: parent.color = "#292929" + onExited: parent.color = "transparent" + } + Rectangle{ + width: parent.width + height: 1 + color: "#fff" + anchors.bottom: parent.bottom + } + } + + Item{ + Layout.fillHeight: true + } + } + } + } +} diff --git a/Gallery/res/qml/screen/SimTransportScreen.qml b/Gallery/res/qml/screen/SimTransportScreen.qml new file mode 100644 index 0000000..a7c0ad3 --- /dev/null +++ b/Gallery/res/qml/screen/SimTransportScreen.qml @@ -0,0 +1,104 @@ +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls +import FluentUI.Controls +import FluentUI.impl +import Gallery + +ColumnLayout { + anchors.left: parent.left + anchors.leftMargin: 50 + anchors.top: parent.top + anchors.topMargin: 20 + spacing: 20 + + RowLayout{ + Label{ + text: "收货方:" + Layout.preferredWidth: 70 + } + TextField{ + placeholderText: "TextField" + Layout.preferredWidth: 250 + } + } + + RowLayout{ + Label{ + text: "供货方:" + Layout.preferredWidth: 70 + } + RadioButton { + checked: true + text: "所有煤矿" + } + RadioButton { + text: "框选范围" + } + } + + RowLayout{ + Label{ + text: "车辆类型:" + Layout.preferredWidth: 70 + } + CheckBox { + checked: true + text: "电车" + } + CheckBox { + text: "氢车" + } + CheckBox { + text: "燃油车" + } + } + + RowLayout{ + Label{ + text: "开始时间:" + Layout.preferredWidth: 70 + } + DatePicker { + } + } + + RowLayout{ + Label{ + text: "结束时间:" + Layout.preferredWidth: 70 + } + DatePicker { + } + } + + RowLayout{ + Label{ + text: "" + Layout.preferredWidth: 70 + } + Button{ + text: "开始计算" + onClicked: { + Global.sendMessage('start-sim') + + lbl_zongjie.visible = true + } + } + Button{ + text: "导出报告" + } + } + + Label{ + id: lbl_zongjie + visible: false + Layout.fillWidth: true + text: "计算总结:成本:xxx,收益:xxx,投建站点:2座,后期预估收益:100万/年" + wrapMode: Label.WordWrap + } + + Item{ + Layout.fillHeight: true + } +} diff --git a/Gallery/res/qml/window/MainPageWindow.qml b/Gallery/res/qml/window/MainPageWindow.qml index 8b20c82..2b412ab 100644 --- a/Gallery/res/qml/window/MainPageWindow.qml +++ b/Gallery/res/qml/window/MainPageWindow.qml @@ -9,8 +9,8 @@ import "../component" FramelessWindow { id: window title: "Antsev Studio" - width: 800 - height: 600 + width: 1200 + height: 700 visible: true fitsAppBarWindows: false launchMode: WindowType.SingleInstance diff --git a/Gallery/res/qml/window/SearchNearWindow.qml b/Gallery/res/qml/window/SearchNearWindow.qml new file mode 100644 index 0000000..3fad333 --- /dev/null +++ b/Gallery/res/qml/window/SearchNearWindow.qml @@ -0,0 +1,19 @@ +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls +import FluentUI.Controls +import FluentUI.impl +import Gallery + +FramelessWindow { + property var argument + id: window + title: "搜索周边" + width: 600 + height: 400 + fixSize: true + visible: true + launchMode: WindowType.SingleInstance + windowEffect: Global.windowEffect + initialItem: R.resolvedUrl("res/qml/screen/SearchNearScreen.qml") +} diff --git a/Gallery/res/qml/window/SimTransportWindow.qml b/Gallery/res/qml/window/SimTransportWindow.qml new file mode 100644 index 0000000..acc73ca --- /dev/null +++ b/Gallery/res/qml/window/SimTransportWindow.qml @@ -0,0 +1,27 @@ +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls +import FluentUI.Controls +import FluentUI.impl +import Gallery + +FramelessWindow { + property var argument + id: window + title: "整体运输仿真" + width: 600 + height: 500 + fixSize: true + visible: true + launchMode: WindowType.Standard + windowEffect: Global.windowEffect + onInit: + (arg)=>{ + argument = arg + } + onNewInit: + (arg)=>{ + argument = arg + } + initialItem: R.resolvedUrl("res/qml/screen/SimTransportScreen.qml") +}