diff --git a/.gitignore b/.gitignore
index 75093f3..5e751e7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,6 +12,7 @@ node_modules
dist
*.local
.opencode
+.omo
# Editor directories and files
.idea
@@ -20,7 +21,3 @@ dist
*.njsproj
*.sln
*.sw?
-
-# unh
-pages.json
-manifest.json
diff --git a/README.md b/README.md
index c4d2222..9d637f7 100644
--- a/README.md
+++ b/README.md
@@ -93,4 +93,3 @@ Road_roller/
| `src/utils` | 工具函数,自动导入 |
### 功能模块
-标题字体是22px
diff --git a/src/components/project/item.vue b/src/components/project/item.vue
index 5ec83be..07ba5e1 100644
--- a/src/components/project/item.vue
+++ b/src/components/project/item.vue
@@ -1,38 +1,95 @@
+
-
-
-
-
- {{ tag }}
+
+
+
+
+ {{ getStatusText(status) }}
-
- {{ time }}
-
-
- {{ trigger }}
-
+
+
+
+
+ 作业时长
+
+
+ {{ workTime }}
+
+
+
+
+ 压实面积
+
+
+ {{ compactArea }}
+
+
+
+
+ 碾压遍数
+
+
+ {{ rollerCount }}
+
+
+
+
+
+
+
+ 开始项目
+
+
+ 暂停项目
+
+
+ 结束项目
+
+
@@ -47,49 +104,85 @@ defineProps<{
display: flex;
justify-content: space-between;
align-items: center;
- margin-bottom: 12px;
+ margin-bottom: 16px;
+}
+
+.header-left {
+ display: flex;
+ align-items: center;
+ gap: 10px;
+}
+
+.project-icon {
+ width: 40px;
+ height: 40px;
+ border-radius: 8px;
+}
+
+.header-info {
+ display: flex;
+ flex-direction: column;
}
.project-name {
- font-size: 22px;
+ font-size: 40rpx;
font-weight: bold;
color: #333;
}
-.status {
+.stake-range {
+ font-size: 32rpx;
+ color: #999;
+}
+
+.status-badge {
+ display: flex;
+ align-items: center;
+ gap: 6px;
+}
+
+.status-dot {
+ width: 8px;
+ height: 8px;
+ border-radius: 50%;
+ background-color: #52c41a;
+}
+
+.status-text {
font-size: 14px;
- padding: 4px 12px;
- border-radius: 12px;
- background-color: #f6ffed;
color: #52c41a;
}
-.tags {
+.stats-row {
display: flex;
- gap: 8px;
- margin-bottom: 12px;
+ justify-content: space-around;
+ padding: 16px 0;
+ border-top: 1px solid #f5f5f5;
+ border-bottom: 1px solid #f5f5f5;
+ margin-bottom: 16px;
}
-.tag {
- background-color: #fff1f0;
- border-radius: 8px;
- padding: 4px 12px;
+.stat-item {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
}
-.tag-text {
- font-size: 14px;
- color: #ff4d4f;
+.stat-label {
+ font-size: 40rpx;
+ color: #999;
+ margin-bottom: 4px;
}
-.time {
- font-size: 18px;
- color: #666;
- display: block;
- margin-bottom: 8px;
+.stat-value {
+ font-size: 40rpx;
+ font-weight: bold;
+ color: #333;
}
-.trigger {
- font-size: 18px;
- color: #666;
+.btn-row {
+ display: flex;
+ justify-content: flex-end;
+ gap: 60rpx;
}
diff --git a/src/manifest.json b/src/manifest.json
new file mode 100644
index 0000000..f4b5577
--- /dev/null
+++ b/src/manifest.json
@@ -0,0 +1,76 @@
+{
+ "name": "Road_roller",
+ "appid": "__UNI__BA80270",
+ "description": "",
+ "versionName": "1.0.0",
+ "versionCode": "100",
+ "transformPx": false,
+ "app-plus": {
+ "usingComponents": true,
+ "nvueStyleCompiler": "uni-app",
+ "compilerVersion": 3,
+ "splashscreen": {
+ "alwaysShowBeforeRender": true,
+ "waiting": true,
+ "autoclose": true,
+ "delay": 0
+ },
+ "modules": {
+ "Bluetooth": {},
+ "SQLite": {}
+ },
+ "distribute": {
+ "android": {
+ "permissions": [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ },
+ "ios": {},
+ "sdkConfigs": {}
+ },
+ "screenOrientation": [
+ "landscape-primary"
+ ]
+ },
+ "quickapp": {},
+ "mp-weixin": {
+ "appid": "",
+ "setting": {
+ "urlCheck": false
+ },
+ "usingComponents": true,
+ "darkmode": true,
+ "themeLocation": "theme.json"
+ },
+ "mp-alipay": {
+ "usingComponents": true
+ },
+ "mp-baidu": {
+ "usingComponents": true
+ },
+ "mp-toutiao": {
+ "usingComponents": true
+ },
+ "uniStatistics": {
+ "enable": false
+ },
+ "vueVersion": "3",
+ "h5": {
+ "darkmode": true,
+ "themeLocation": "theme.json"
+ }
+}
\ No newline at end of file
diff --git a/src/pages.json b/src/pages.json
new file mode 100644
index 0000000..0d1796c
--- /dev/null
+++ b/src/pages.json
@@ -0,0 +1,145 @@
+{
+ "easycom": {
+ "autoscan": true,
+ "custom": {
+ "^wd-(.*)": "@wot-ui/ui/components/wd-$1/wd-$1.vue",
+ "^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue"
+ }
+ },
+ "globalStyle": {
+ "backgroundColor": "@bgColor",
+ "backgroundColorBottom": "@bgColorBottom",
+ "backgroundColorTop": "@bgColorTop",
+ "backgroundTextStyle": "@bgTxtStyle",
+ "navigationBarBackgroundColor": "#ffffff",
+ "navigationBarTextStyle": "black",
+ "navigationBarTitleText": "Road-Roller"
+ },
+ "pages": [
+ // GENERATED BY UNI-PAGES, PLATFORM: H5 || APP
+ {
+ "path": "pages/Ahome/index",
+ "type": "page",
+ "layout": false,
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/bluetooth/index",
+ "type": "page",
+ "layout": false,
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/heatmap/index",
+ "type": "page",
+ "layout": false,
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/message/index",
+ "type": "page",
+ "layout": false,
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/project/index",
+ "type": "page",
+ "layout": false,
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/report/index",
+ "type": "page",
+ "layout": false,
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/rtk/index",
+ "type": "page",
+ "layout": false,
+ "style": {
+ "navigationBarTitleText": "RTK轨迹"
+ }
+ },
+ {
+ "path": "pages/settings/index",
+ "type": "page",
+ "layout": false,
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/warning/index",
+ "type": "page",
+ "layout": false,
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/work/index",
+ "type": "page",
+ "layout": false,
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/report/detail/index",
+ "type": "page",
+ "layout": false,
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/warning/detail/index",
+ "type": "page",
+ "layout": false,
+ "style": {
+ "navigationStyle": "custom"
+ }
+ }
+ ],
+ "subPackages": [],
+ "tabBar": {
+ "backgroundColor": "@tabBgColor",
+ "borderStyle": "@tabBorderStyle",
+ "color": "@tabFontColor",
+ "selectedColor": "@tabSelectedColor",
+ "list": [
+ // GENERATED BY UNI-PAGES, PLATFORM: H5 || APP
+ {
+ "pagePath": "pages/Ahome/index",
+ "text": "首页",
+ "iconPath": "static/home.png",
+ "selectedIconPath": "static/home1.png"
+ },
+ {
+ "pagePath": "pages/work/index",
+ "text": "工作",
+ "iconPath": "static/work.png",
+ "selectedIconPath": "static/work1.png"
+ },
+ {
+ "pagePath": "pages/report/index",
+ "text": "报告",
+ "iconPath": "static/report.png",
+ "selectedIconPath": "static/report1.png"
+ }
+ ]
+ }
+}
diff --git a/src/pages/project/index.vue b/src/pages/project/index.vue
index 1a5c0fd..70d96fc 100644
--- a/src/pages/project/index.vue
+++ b/src/pages/project/index.vue
@@ -13,17 +13,19 @@ const tabs = ['全部', '进行中', '已结束']
const projects = [
{
projectName: '徐工XS65H #01',
- status: '进行中',
- tags: ['定位异常', '警告'],
- time: '14:10:04·已持续5分30秒',
- trigger: '触发阈值:RTK信号弱,精度下降',
+ stakeRange: 'K1+200-K1+800',
+ status: 0,
+ workTime: '8h',
+ compactArea: '28.5m²',
+ rollerCount: '10遍',
},
{
- projectName: '徐工XS65H #01',
- status: '进行中',
- tags: ['定位异常', '警告'],
- time: '14:10:04·已持续5分30秒',
- trigger: '触发阈值:RTK信号弱,精度下降',
+ projectName: '徐工XS65H #02',
+ stakeRange: 'K2+100-K2+600',
+ status: 2,
+ workTime: '5h',
+ compactArea: '15.2m²',
+ rollerCount: '6遍',
},
]
@@ -65,10 +67,11 @@ function handleCreate() {
v-for="(item, index) in projects"
:key="index"
:project-name="item.projectName"
+ :stake-range="item.stakeRange"
:status="item.status"
- :tags="item.tags"
- :time="item.time"
- :trigger="item.trigger"
+ :work-time="item.workTime"
+ :compact-area="item.compactArea"
+ :roller-count="item.rollerCount"
/>
diff --git a/src/static/machine.png b/src/static/machine.png
new file mode 100644
index 0000000..34194d5
Binary files /dev/null and b/src/static/machine.png differ