Commit 2bffa686753069d2f0e29883e02cc7d1c5c10693
1 parent
7b93c3f6
业务线 小程序不用写死,从后端接口获取
Showing
36 changed files
with
256 additions
and
223 deletions
App.vue
common/config/env.js
| @@ -2,12 +2,10 @@ | @@ -2,12 +2,10 @@ | ||
| 2 | const env = { | 2 | const env = { |
| 3 | // 开发环境 | 3 | // 开发环境 |
| 4 | development: { | 4 | development: { |
| 5 | - // baseUrl: 'https://test.jichengshanshui.com.cn:28302', | ||
| 6 | - // https://test.jichengshanshui.com.cn:28302 | ||
| 7 | - | ||
| 8 | - baseUrl: 'http://192.168.1.163:48081', | ||
| 9 | - | ||
| 10 | - uploadUrl: 'http://192.168.1.163:48081', | 5 | + baseUrl: 'http://192.168.1.55:48081', |
| 6 | + uploadUrl:'http://192.168.1.55:48081', | ||
| 7 | + // baseUrl: 'https://test.jichengshanshui.com.cn:28302', | ||
| 8 | + // uploadUrl: 'https://test.jichengshanshui.com.cn:28302', | ||
| 11 | // baseApi:'admin-api', | 9 | // baseApi:'admin-api', |
| 12 | // appApi:'app-api' | 10 | // appApi:'app-api' |
| 13 | }, | 11 | }, |
common/styles/ui-standard.scss
| @@ -52,11 +52,11 @@ $j-reject-a: #B91C1C; | @@ -52,11 +52,11 @@ $j-reject-a: #B91C1C; | ||
| 52 | $j-neutral-a: #565E6B; | 52 | $j-neutral-a: #565E6B; |
| 53 | 53 | ||
| 54 | /* --- 1.5 文本色 --- */ | 54 | /* --- 1.5 文本色 --- */ |
| 55 | -$j-text-title: #1F2937; // 卡片主标题 | ||
| 56 | -$j-text-label: #9CA3AF; // 标签(浅灰) | ||
| 57 | -$j-text-value: #4B5563; // 内容值 | ||
| 58 | -$j-text-weak: #9CA3AF; // 辅助说明 | ||
| 59 | -$j-text-strong: #1F2937; // 强调值 | 55 | +$j-text-title: #111827; // 卡片主标题 |
| 56 | +$j-text-label: #6B7280; // 标签(次级灰) | ||
| 57 | +$j-text-value: #1F2937; // 内容值(正文黑) | ||
| 58 | +$j-text-weak: #6B7280; // 辅助说明 | ||
| 59 | +$j-text-strong: #111827; // 强调值 | ||
| 60 | 60 | ||
| 61 | /* --- 1.6 字号层级(全站 6 档) --- */ | 61 | /* --- 1.6 字号层级(全站 6 档) --- */ |
| 62 | $j-fs-title: 32rpx; // 16px 卡片主标题 | 62 | $j-fs-title: 32rpx; // 16px 卡片主标题 |
| @@ -93,10 +93,10 @@ $j-shadow-card: 0 4rpx 16rpx rgba(17, 24, 39, 0.06); | @@ -93,10 +93,10 @@ $j-shadow-card: 0 4rpx 16rpx rgba(17, 24, 39, 0.06); | ||
| 93 | $j-shadow-float: 0 -8rpx 28rpx rgba(17, 24, 39, 0.08); | 93 | $j-shadow-float: 0 -8rpx 28rpx rgba(17, 24, 39, 0.08); |
| 94 | 94 | ||
| 95 | /* ========================================================================== | 95 | /* ========================================================================== |
| 96 | - * 2. 信息项:标签自然宽 + 值右对齐(设计稿 .kv) | 96 | + * 2. 信息项:标签自然宽 + 值左对齐(设计稿 .kv) |
| 97 | * -------------------------------------------------------------------------- | 97 | * -------------------------------------------------------------------------- |
| 98 | - * 设计稿不固定标签列宽:标签浅灰靠左,值占满剩余宽度并右对齐, | ||
| 99 | - * 因此各行内容值的右边缘天然对齐,不会参差不齐。 | 98 | + * 标签浅灰靠左,值紧跟标签之后并左对齐,读起来是「标签:值」一句话, |
| 99 | + * 长文本换行也从固定位置起始,不会出现值忽左忽右的观感。 | ||
| 100 | * ========================================================================== */ | 100 | * ========================================================================== */ |
| 101 | .u-body-item { | 101 | .u-body-item { |
| 102 | display: flex !important; | 102 | display: flex !important; |
| @@ -132,7 +132,7 @@ $j-shadow-float: 0 -8rpx 28rpx rgba(17, 24, 39, 0.08); | @@ -132,7 +132,7 @@ $j-shadow-float: 0 -8rpx 28rpx rgba(17, 24, 39, 0.08); | ||
| 132 | font-weight: 400 !important; | 132 | font-weight: 400 !important; |
| 133 | color: $j-text-value !important; | 133 | color: $j-text-value !important; |
| 134 | line-height: 1.5 !important; | 134 | line-height: 1.5 !important; |
| 135 | - text-align: right; | 135 | + text-align: left; |
| 136 | word-break: break-all; | 136 | word-break: break-all; |
| 137 | } | 137 | } |
| 138 | 138 | ||
| @@ -357,13 +357,16 @@ $j-shadow-float: 0 -8rpx 28rpx rgba(17, 24, 39, 0.08); | @@ -357,13 +357,16 @@ $j-shadow-float: 0 -8rpx 28rpx rgba(17, 24, 39, 0.08); | ||
| 357 | * 6. 详情页统一:u-cell 排版收口(设计稿 .card.pad + .kv) | 357 | * 6. 详情页统一:u-cell 排版收口(设计稿 .card.pad + .kv) |
| 358 | * -------------------------------------------------------------------------- | 358 | * -------------------------------------------------------------------------- |
| 359 | * 三类工单(养护 / 区域 / AI)详情都用 up-cell 渲染字段,此处统一层级: | 359 | * 三类工单(养护 / 区域 / AI)详情都用 up-cell 渲染字段,此处统一层级: |
| 360 | - * 标签 26rpx #9CA3AF 左 / 内容值 26rpx #4B5563 右 / 行内 16rpx 上下 | 360 | + * 标签 26rpx #6B7280 左 / 内容值 26rpx #1F2937 紧跟标签后,左对齐 / 行内 16rpx 上下 |
| 361 | * 注意:uview-plus 单元格内部类名为 u-cell__xxx(组件内为 scoped 样式), | 361 | * 注意:uview-plus 单元格内部类名为 u-cell__xxx(组件内为 scoped 样式), |
| 362 | * 全局层必须带 !important 才生效。 | 362 | * 全局层必须带 !important 才生效。 |
| 363 | + * 组件默认给 title 加 flex:1、给 value 加 margin-left:auto,值会被推到最右, | ||
| 364 | + * 只改 text-align 不生效,必须同时收回 title 的 flex 并让 value 占满剩余宽度。 | ||
| 363 | * ========================================================================== */ | 365 | * ========================================================================== */ |
| 364 | .u-cell__body { | 366 | .u-cell__body { |
| 365 | display: flex !important; | 367 | display: flex !important; |
| 366 | justify-content: space-between !important; | 368 | justify-content: space-between !important; |
| 369 | + column-gap: $j-sp-sm !important; | ||
| 367 | padding: 16rpx $j-card-pad !important; | 370 | padding: 16rpx $j-card-pad !important; |
| 368 | } | 371 | } |
| 369 | 372 | ||
| @@ -380,8 +383,33 @@ $j-shadow-float: 0 -8rpx 28rpx rgba(17, 24, 39, 0.08); | @@ -380,8 +383,33 @@ $j-shadow-float: 0 -8rpx 28rpx rgba(17, 24, 39, 0.08); | ||
| 380 | line-height: 1.5 !important; | 383 | line-height: 1.5 !important; |
| 381 | } | 384 | } |
| 382 | 385 | ||
| 383 | -/* 标题插槽(#title 自定义 view)同样收到「标签」层级 */ | 386 | +/* 标签只占自身宽度,值紧随其后: |
| 387 | + * 标签与内容之间的距离固定 16rpx(与列表卡片 .u-body-item 的 gap 保持一致) */ | ||
| 388 | +.u-cell__title { | ||
| 389 | + flex: 0 1 auto !important; | ||
| 390 | + min-width: 0; | ||
| 391 | +} | ||
| 392 | + | ||
| 393 | +/* 标题区外层容器:组件默认 flex:1,会把整行剩余宽度都吃掉, | ||
| 394 | + * 导致 value 只能从半行之后开始,看起来像居中/右对齐,这里收回成「按内容宽度」 */ | ||
| 395 | +.u-cell__body__content { | ||
| 396 | + flex: 0 1 auto !important; | ||
| 397 | + min-width: 0; | ||
| 398 | +} | ||
| 399 | + | ||
| 400 | +/* #value 插槽:内容会被直接渲染成 .u-cell__body 的 flex 子元素(不是 u-cell__value), | ||
| 401 | + * 上面那套规则管不到,必须单独补一份,否则插槽渲染的字段仍然贴在最右边 */ | ||
| 402 | +.u-cell__body > view:not(.u-cell__body__content):not(.u-cell__left-icon-wrap):not(.u-cell__right-icon-wrap) { | ||
| 403 | + flex: 1 1 auto !important; | ||
| 404 | + min-width: 0; | ||
| 405 | + text-align: left !important; | ||
| 406 | +} | ||
| 407 | + | ||
| 408 | +/* 标题插槽(#title 自定义 view)同样收到「标签」层级; | ||
| 409 | + * 模板里常给这个 view 写 inline 的 min-width: 200rpx,会把间距撑成一大段, | ||
| 410 | + * 这里用 !important 统一收回,保证所有页面的「标签—内容」距离都是 16rpx */ | ||
| 384 | .u-cell__title > view { | 411 | .u-cell__title > view { |
| 412 | + min-width: 0 !important; | ||
| 385 | font-size: $j-fs-label !important; | 413 | font-size: $j-fs-label !important; |
| 386 | font-weight: 400 !important; | 414 | font-weight: 400 !important; |
| 387 | color: $j-text-label !important; | 415 | color: $j-text-label !important; |
| @@ -389,15 +417,18 @@ $j-shadow-float: 0 -8rpx 28rpx rgba(17, 24, 39, 0.08); | @@ -389,15 +417,18 @@ $j-shadow-float: 0 -8rpx 28rpx rgba(17, 24, 39, 0.08); | ||
| 389 | } | 417 | } |
| 390 | 418 | ||
| 391 | .u-cell__value { | 419 | .u-cell__value { |
| 420 | + flex: 1 1 auto !important; | ||
| 421 | + min-width: 0; | ||
| 422 | + margin-left: 0 !important; | ||
| 392 | font-size: $j-fs-value !important; | 423 | font-size: $j-fs-value !important; |
| 393 | font-weight: 400 !important; | 424 | font-weight: 400 !important; |
| 394 | color: $j-text-value !important; | 425 | color: $j-text-value !important; |
| 395 | line-height: 1.5 !important; | 426 | line-height: 1.5 !important; |
| 396 | - text-align: right !important; | 427 | + text-align: left !important; |
| 397 | word-break: break-all; | 428 | word-break: break-all; |
| 398 | } | 429 | } |
| 399 | 430 | ||
| 400 | -/* 插槽内的内容值统一走 .common-text-color(App.vue 中定义为 #4B5563) */ | 431 | +/* 插槽内的内容值统一走 .common-text-color(App.vue 中定义为 #1F2937) */ |
| 401 | 432 | ||
| 402 | /* 信息区块统一成卡片:四周留白一致,标题/内容与边框保持固定间距 */ | 433 | /* 信息区块统一成卡片:四周留白一致,标题/内容与边框保持固定间距 */ |
| 403 | .u-cell-group { | 434 | .u-cell-group { |
components/unified-task-actions/unified-task-actions.vue
| @@ -321,7 +321,7 @@ defineExpose({ open }) | @@ -321,7 +321,7 @@ defineExpose({ open }) | ||
| 321 | } | 321 | } |
| 322 | 322 | ||
| 323 | .unified-action-tip { | 323 | .unified-action-tip { |
| 324 | - color: #9CA3AF; | 324 | + color: #6B7280; |
| 325 | font-size: 28rpx; | 325 | font-size: 28rpx; |
| 326 | padding: 20rpx 0; | 326 | padding: 20rpx 0; |
| 327 | } | 327 | } |
| @@ -395,7 +395,7 @@ defineExpose({ open }) | @@ -395,7 +395,7 @@ defineExpose({ open }) | ||
| 395 | // 字数统计贴灰底显示(组件内部写死了白底,需 !important 覆盖) | 395 | // 字数统计贴灰底显示(组件内部写死了白底,需 !important 覆盖) |
| 396 | .unified-action-form :deep(.u-textarea__count) { | 396 | .unified-action-form :deep(.u-textarea__count) { |
| 397 | background-color: transparent !important; | 397 | background-color: transparent !important; |
| 398 | - color: #9CA3AF; | 398 | + color: #6B7280; |
| 399 | } | 399 | } |
| 400 | 400 | ||
| 401 | .unified-action-btns { | 401 | .unified-action-btns { |
pages-sub/daily/maintain-manage/add-record.vue
| @@ -1088,8 +1088,8 @@ export default { | @@ -1088,8 +1088,8 @@ export default { | ||
| 1088 | <style lang="scss" scoped> | 1088 | <style lang="scss" scoped> |
| 1089 | // 页面:设计稿底 #F4F6FA,底部给固定操作栏留位(按钮 88rpx + 上下 24rpx) | 1089 | // 页面:设计稿底 #F4F6FA,底部给固定操作栏留位(按钮 88rpx + 上下 24rpx) |
| 1090 | .page-container { | 1090 | .page-container { |
| 1091 | - padding-bottom: calc(180rpx + constant(safe-area-inset-bottom)); | ||
| 1092 | - padding-bottom: calc(180rpx + env(safe-area-inset-bottom)); | 1091 | + padding-bottom: calc(136rpx + constant(safe-area-inset-bottom)); |
| 1092 | + padding-bottom: calc(136rpx + env(safe-area-inset-bottom)); | ||
| 1093 | } | 1093 | } |
| 1094 | 1094 | ||
| 1095 | // 表单容器:不再整屏铺白,改为浮起的白卡(设计稿 .card) | 1095 | // 表单容器:不再整屏铺白,改为浮起的白卡(设计稿 .card) |
| @@ -1268,7 +1268,7 @@ export default { | @@ -1268,7 +1268,7 @@ export default { | ||
| 1268 | padding: 80rpx 24rpx; | 1268 | padding: 80rpx 24rpx; |
| 1269 | text-align: center; | 1269 | text-align: center; |
| 1270 | font-size: 26rpx; | 1270 | font-size: 26rpx; |
| 1271 | - color: #9CA3AF; | 1271 | + color: #6B7280; |
| 1272 | background-color: #ffffff; | 1272 | background-color: #ffffff; |
| 1273 | border-radius: 16rpx; | 1273 | border-radius: 16rpx; |
| 1274 | } | 1274 | } |
| @@ -1279,7 +1279,7 @@ export default { | @@ -1279,7 +1279,7 @@ export default { | ||
| 1279 | text-align: center; | 1279 | text-align: center; |
| 1280 | font-size: 22rpx; | 1280 | font-size: 22rpx; |
| 1281 | line-height: 1.6; | 1281 | line-height: 1.6; |
| 1282 | - color: #9CA3AF; | 1282 | + color: #6B7280; |
| 1283 | } | 1283 | } |
| 1284 | 1284 | ||
| 1285 | // 底部固定操作栏:白底 + 上分隔线;左「提交」白底描边,右「提交并结束」绿色主按钮 | 1285 | // 底部固定操作栏:白底 + 上分隔线;左「提交」白底描边,右「提交并结束」绿色主按钮 |
pages-sub/daily/maintain-manage/finish-plan-detail.vue
| @@ -681,14 +681,14 @@ onLoad((options) => { | @@ -681,14 +681,14 @@ onLoad((options) => { | ||
| 681 | .sec-count { | 681 | .sec-count { |
| 682 | margin-left: auto; | 682 | margin-left: auto; |
| 683 | font-size: 24rpx; | 683 | font-size: 24rpx; |
| 684 | - color: #9CA3AF; | 684 | + color: #6B7280; |
| 685 | white-space: nowrap; | 685 | white-space: nowrap; |
| 686 | } | 686 | } |
| 687 | 687 | ||
| 688 | /* 某条子上报没填字段时的占位文案 */ | 688 | /* 某条子上报没填字段时的占位文案 */ |
| 689 | .no-field-tip { | 689 | .no-field-tip { |
| 690 | font-size: 26rpx; | 690 | font-size: 26rpx; |
| 691 | - color: #9CA3AF; | 691 | + color: #6B7280; |
| 692 | padding: 8rpx 0; | 692 | padding: 8rpx 0; |
| 693 | } | 693 | } |
| 694 | 694 | ||
| @@ -740,7 +740,7 @@ onLoad((options) => { | @@ -740,7 +740,7 @@ onLoad((options) => { | ||
| 740 | padding: 0 16rpx; | 740 | padding: 0 16rpx; |
| 741 | background: #F4F6FA; | 741 | background: #F4F6FA; |
| 742 | border-radius: 8rpx; | 742 | border-radius: 8rpx; |
| 743 | - color: #4B5563; | 743 | + color: #1F2937; |
| 744 | font-size: 22rpx; | 744 | font-size: 22rpx; |
| 745 | line-height: 40rpx; | 745 | line-height: 40rpx; |
| 746 | } | 746 | } |
| @@ -776,7 +776,7 @@ onLoad((options) => { | @@ -776,7 +776,7 @@ onLoad((options) => { | ||
| 776 | background: #ffffff; | 776 | background: #ffffff; |
| 777 | border-radius: 16rpx; | 777 | border-radius: 16rpx; |
| 778 | font-size: 26rpx; | 778 | font-size: 26rpx; |
| 779 | - color: #9CA3AF; | 779 | + color: #6B7280; |
| 780 | box-shadow: 0 4rpx 16rpx rgba(17, 24, 39, 0.06); | 780 | box-shadow: 0 4rpx 16rpx rgba(17, 24, 39, 0.06); |
| 781 | } | 781 | } |
| 782 | 782 |
pages-sub/daily/maintain-manage/now-list-page.vue
| @@ -112,8 +112,8 @@ const handleAddReport = () => { | @@ -112,8 +112,8 @@ const handleAddReport = () => { | ||
| 112 | .page-wrap { | 112 | .page-wrap { |
| 113 | min-height: 100vh; | 113 | min-height: 100vh; |
| 114 | // 底部固定栏(按钮 88rpx + 上下各 24rpx)+ 安全区 | 114 | // 底部固定栏(按钮 88rpx + 上下各 24rpx)+ 安全区 |
| 115 | - padding-bottom: calc(180rpx + constant(safe-area-inset-bottom)); | ||
| 116 | - padding-bottom: calc(180rpx + env(safe-area-inset-bottom)); | 115 | + padding-bottom: calc(136rpx + constant(safe-area-inset-bottom)); |
| 116 | + padding-bottom: calc(136rpx + env(safe-area-inset-bottom)); | ||
| 117 | background: #F4F6FA; | 117 | background: #F4F6FA; |
| 118 | } | 118 | } |
| 119 | // 顶部提示条:浅蓝底 + 蓝字 + 圆形感叹号(设计稿 .banner) | 119 | // 顶部提示条:浅蓝底 + 蓝字 + 圆形感叹号(设计稿 .banner) |
| @@ -168,7 +168,7 @@ const handleAddReport = () => { | @@ -168,7 +168,7 @@ const handleAddReport = () => { | ||
| 168 | } | 168 | } |
| 169 | .item-row { | 169 | .item-row { |
| 170 | font-size: 26rpx; | 170 | font-size: 26rpx; |
| 171 | - color: #4B5563; | 171 | + color: #1F2937; |
| 172 | margin-bottom: 12rpx; | 172 | margin-bottom: 12rpx; |
| 173 | } | 173 | } |
| 174 | .item-row-bottom { | 174 | .item-row-bottom { |
| @@ -187,7 +187,7 @@ const handleAddReport = () => { | @@ -187,7 +187,7 @@ const handleAddReport = () => { | ||
| 187 | height: 56rpx; | 187 | height: 56rpx; |
| 188 | padding: 0 24rpx; | 188 | padding: 0 24rpx; |
| 189 | font-size: 24rpx; | 189 | font-size: 24rpx; |
| 190 | - color: #4B5563; | 190 | + color: #1F2937; |
| 191 | background-color: #ffffff; | 191 | background-color: #ffffff; |
| 192 | border: 1rpx solid #E8EBF0; | 192 | border: 1rpx solid #E8EBF0; |
| 193 | border-radius: 8rpx; | 193 | border-radius: 8rpx; |
pages-sub/daily/maintain-manage/pending-plan-detail.vue
| @@ -139,7 +139,7 @@ const addNewRecord = () => { | @@ -139,7 +139,7 @@ const addNewRecord = () => { | ||
| 139 | /* 统一卡片样式(与巡查计划明细一致) */ | 139 | /* 统一卡片样式(与巡查计划明细一致) */ |
| 140 | .page-container { | 140 | .page-container { |
| 141 | min-height: 100vh; | 141 | min-height: 100vh; |
| 142 | - padding-bottom: 200rpx; | 142 | + padding-bottom: calc(144rpx + env(safe-area-inset-bottom)); |
| 143 | background-color: #F4F6FA; | 143 | background-color: #F4F6FA; |
| 144 | box-sizing: border-box; | 144 | box-sizing: border-box; |
| 145 | } | 145 | } |
pages-sub/daily/maintain-manage/road-detail-list.vue
| @@ -9,7 +9,7 @@ | @@ -9,7 +9,7 @@ | ||
| 9 | :list="statusTabs" | 9 | :list="statusTabs" |
| 10 | line-width="44rpx" | 10 | line-width="44rpx" |
| 11 | active-color="#2563EB" | 11 | active-color="#2563EB" |
| 12 | - inactive-color="#4B5563" | 12 | + inactive-color="#1F2937" |
| 13 | :scrollable="true" | 13 | :scrollable="true" |
| 14 | class="status-tabs" | 14 | class="status-tabs" |
| 15 | @click="handleStatusChange" | 15 | @click="handleStatusChange" |
pages-sub/daily/maintain-manage/type-list-page.vue
| @@ -3,7 +3,7 @@ | @@ -3,7 +3,7 @@ | ||
| 3 | <up-sticky> | 3 | <up-sticky> |
| 4 | <view class="sticky-wrap"> | 4 | <view class="sticky-wrap"> |
| 5 | <up-tabs v-model="activeStatus" :list="statusTabs" line-width="44rpx" active-color="#2563EB" | 5 | <up-tabs v-model="activeStatus" :list="statusTabs" line-width="44rpx" active-color="#2563EB" |
| 6 | - inactive-color="#4B5563" :scrollable="false" @change="handleStatusChange"></up-tabs> | 6 | + inactive-color="#1F2937" :scrollable="false" @change="handleStatusChange"></up-tabs> |
| 7 | </view> | 7 | </view> |
| 8 | </up-sticky> | 8 | </up-sticky> |
| 9 | <z-paging ref="pagingRef" v-model="currentList" @query="fetchData" :auto-show-system-loading="true"> | 9 | <z-paging ref="pagingRef" v-model="currentList" @query="fetchData" :auto-show-system-loading="true"> |
| @@ -434,7 +434,7 @@ onUnload(() => { | @@ -434,7 +434,7 @@ onUnload(() => { | ||
| 434 | .plan-no { | 434 | .plan-no { |
| 435 | margin-top: 8rpx; | 435 | margin-top: 8rpx; |
| 436 | font-size: 24rpx; | 436 | font-size: 24rpx; |
| 437 | - color: #9CA3AF; | 437 | + color: #6B7280; |
| 438 | line-height: 1.4; | 438 | line-height: 1.4; |
| 439 | } | 439 | } |
| 440 | .info-row { | 440 | .info-row { |
| @@ -446,15 +446,15 @@ onUnload(() => { | @@ -446,15 +446,15 @@ onUnload(() => { | ||
| 446 | } | 446 | } |
| 447 | .info-label { | 447 | .info-label { |
| 448 | font-size: 26rpx; | 448 | font-size: 26rpx; |
| 449 | - color: #9CA3AF; | 449 | + color: #6B7280; |
| 450 | flex-shrink: 0; | 450 | flex-shrink: 0; |
| 451 | } | 451 | } |
| 452 | .info-value { | 452 | .info-value { |
| 453 | flex: 1; | 453 | flex: 1; |
| 454 | min-width: 0; | 454 | min-width: 0; |
| 455 | font-size: 26rpx; | 455 | font-size: 26rpx; |
| 456 | - color: #4B5563; | ||
| 457 | - text-align: right; | 456 | + color: #1F2937; |
| 457 | + text-align: left; | ||
| 458 | } | 458 | } |
| 459 | /* 操作区统一收底:上 16rpx 留白 + 分隔线(设计稿 .tcard-foot) */ | 459 | /* 操作区统一收底:上 16rpx 留白 + 分隔线(设计稿 .tcard-foot) */ |
| 460 | .action-row { | 460 | .action-row { |
pages-sub/daily/maintain-manage/type-list.vue
| @@ -138,19 +138,19 @@ onUnload(()=>{ | @@ -138,19 +138,19 @@ onUnload(()=>{ | ||
| 138 | .info-label { | 138 | .info-label { |
| 139 | flex-shrink: 0; | 139 | flex-shrink: 0; |
| 140 | font-size: 26rpx; | 140 | font-size: 26rpx; |
| 141 | - color: #9CA3AF; | 141 | + color: #6B7280; |
| 142 | line-height: 1.5; | 142 | line-height: 1.5; |
| 143 | } | 143 | } |
| 144 | 144 | ||
| 145 | .info-value { | 145 | .info-value { |
| 146 | flex: 1; | 146 | flex: 1; |
| 147 | min-width: 0; | 147 | min-width: 0; |
| 148 | - text-align: right; | 148 | + text-align: left; |
| 149 | } | 149 | } |
| 150 | 150 | ||
| 151 | .info-line { | 151 | .info-line { |
| 152 | font-size: 26rpx; | 152 | font-size: 26rpx; |
| 153 | - color: #4B5563; | 153 | + color: #1F2937; |
| 154 | line-height: 1.5; | 154 | line-height: 1.5; |
| 155 | word-break: break-all; | 155 | word-break: break-all; |
| 156 | 156 | ||
| @@ -165,6 +165,6 @@ onUnload(()=>{ | @@ -165,6 +165,6 @@ onUnload(()=>{ | ||
| 165 | padding: 120rpx 0; | 165 | padding: 120rpx 0; |
| 166 | text-align: center; | 166 | text-align: center; |
| 167 | font-size: 26rpx; | 167 | font-size: 26rpx; |
| 168 | - color: #9CA3AF; | 168 | + color: #6B7280; |
| 169 | } | 169 | } |
| 170 | </style> | 170 | </style> |
pages-sub/daily/patrol-manage/add-patrol-record.vue
| @@ -493,7 +493,7 @@ export default { | @@ -493,7 +493,7 @@ export default { | ||
| 493 | <style lang="scss" scoped> | 493 | <style lang="scss" scoped> |
| 494 | .u-page { | 494 | .u-page { |
| 495 | min-height: 100vh; | 495 | min-height: 100vh; |
| 496 | - padding-bottom: 200rpx; | 496 | + padding-bottom: calc(144rpx + env(safe-area-inset-bottom)); |
| 497 | background-color: #F4F6FA; | 497 | background-color: #F4F6FA; |
| 498 | box-sizing: border-box; | 498 | box-sizing: border-box; |
| 499 | } | 499 | } |
| @@ -571,7 +571,7 @@ export default { | @@ -571,7 +571,7 @@ export default { | ||
| 571 | border-radius: 12rpx; | 571 | border-radius: 12rpx; |
| 572 | } | 572 | } |
| 573 | .form-card--field :deep(.u-textarea__count) { | 573 | .form-card--field :deep(.u-textarea__count) { |
| 574 | - color: #9CA3AF; | 574 | + color: #6B7280; |
| 575 | } | 575 | } |
| 576 | /* 上传:虚线框 */ | 576 | /* 上传:虚线框 */ |
| 577 | .form-card--field :deep(.u-upload__button) { | 577 | .form-card--field :deep(.u-upload__button) { |
| @@ -582,7 +582,7 @@ export default { | @@ -582,7 +582,7 @@ export default { | ||
| 582 | .upload-hint { | 582 | .upload-hint { |
| 583 | margin-top: 16rpx; | 583 | margin-top: 16rpx; |
| 584 | font-size: 24rpx; | 584 | font-size: 24rpx; |
| 585 | - color: #9CA3AF; | 585 | + color: #6B7280; |
| 586 | } | 586 | } |
| 587 | 587 | ||
| 588 | /* 底部提交栏 */ | 588 | /* 底部提交栏 */ |
pages-sub/daily/patrol-manage/finish-plan-detail.vue
| @@ -162,7 +162,7 @@ onLoad((options) => { | @@ -162,7 +162,7 @@ onLoad((options) => { | ||
| 162 | 162 | ||
| 163 | /* 空文本 */ | 163 | /* 空文本 */ |
| 164 | .empty-text { | 164 | .empty-text { |
| 165 | - color: #9CA3AF; | 165 | + color: #6B7280; |
| 166 | font-size: 26rpx; | 166 | font-size: 26rpx; |
| 167 | line-height: 80rpx; | 167 | line-height: 80rpx; |
| 168 | display: block; | 168 | display: block; |
pages-sub/daily/patrol-manage/pending-plan-detail.vue
| @@ -128,7 +128,7 @@ const addNewRecord = () => { | @@ -128,7 +128,7 @@ const addNewRecord = () => { | ||
| 128 | /* 统一卡片样式(与工单/巡查表单页一致) */ | 128 | /* 统一卡片样式(与工单/巡查表单页一致) */ |
| 129 | .page-container { | 129 | .page-container { |
| 130 | min-height: 100vh; | 130 | min-height: 100vh; |
| 131 | - padding-bottom: 200rpx; | 131 | + padding-bottom: calc(144rpx + env(safe-area-inset-bottom)); |
| 132 | background-color: #F4F6FA; | 132 | background-color: #F4F6FA; |
| 133 | box-sizing: border-box; | 133 | box-sizing: border-box; |
| 134 | } | 134 | } |
pages-sub/daily/quick-order/add-order.vue
| @@ -626,7 +626,7 @@ export default { | @@ -626,7 +626,7 @@ export default { | ||
| 626 | /* 统一卡片样式(与工单/巡查表单页一致) */ | 626 | /* 统一卡片样式(与工单/巡查表单页一致) */ |
| 627 | .page-container { | 627 | .page-container { |
| 628 | min-height: 100vh; | 628 | min-height: 100vh; |
| 629 | - padding-bottom: 200rpx; | 629 | + padding-bottom: calc(144rpx + env(safe-area-inset-bottom)); |
| 630 | background-color: #F4F6FA; | 630 | background-color: #F4F6FA; |
| 631 | box-sizing: border-box; | 631 | box-sizing: border-box; |
| 632 | } | 632 | } |
| @@ -705,7 +705,7 @@ export default { | @@ -705,7 +705,7 @@ export default { | ||
| 705 | border-radius: 12rpx; | 705 | border-radius: 12rpx; |
| 706 | } | 706 | } |
| 707 | .form-card--field :deep(.u-textarea__count) { | 707 | .form-card--field :deep(.u-textarea__count) { |
| 708 | - color: #9CA3AF; | 708 | + color: #6B7280; |
| 709 | } | 709 | } |
| 710 | /* 上传:虚线框 */ | 710 | /* 上传:虚线框 */ |
| 711 | .form-card--field :deep(.u-upload__button) { | 711 | .form-card--field :deep(.u-upload__button) { |
| @@ -716,7 +716,7 @@ export default { | @@ -716,7 +716,7 @@ export default { | ||
| 716 | .upload-hint { | 716 | .upload-hint { |
| 717 | margin-top: 16rpx; | 717 | margin-top: 16rpx; |
| 718 | font-size: 24rpx; | 718 | font-size: 24rpx; |
| 719 | - color: #9CA3AF; | 719 | + color: #6B7280; |
| 720 | } | 720 | } |
| 721 | 721 | ||
| 722 | /* 底部提交栏 */ | 722 | /* 底部提交栏 */ |
pages-sub/daily/quick-order/index.vue
| @@ -43,7 +43,7 @@ | @@ -43,7 +43,7 @@ | ||
| 43 | <empty-view/> | 43 | <empty-view/> |
| 44 | </template> | 44 | </template> |
| 45 | 45 | ||
| 46 | - <view class="common-card-list" style="padding-top: 136rpx;padding-bottom: 180rpx"> | 46 | + <view class="common-card-list" style="padding-top: 136rpx;padding-bottom: calc(120rpx + env(safe-area-inset-bottom))"> |
| 47 | <view class="plan-card" v-for="(item,index) in orderList" :key="`${item.orderNo}_${index}`"> | 47 | <view class="plan-card" v-for="(item,index) in orderList" :key="`${item.orderNo}_${index}`"> |
| 48 | <view class="u-body-item u-flex"> | 48 | <view class="u-body-item u-flex"> |
| 49 | <view class="u-body-item-title">工单编号:</view> | 49 | <view class="u-body-item-title">工单编号:</view> |
pages-sub/data/tree-archive/addInspect.vue
| @@ -1050,7 +1050,8 @@ onUnload(() => { | @@ -1050,7 +1050,8 @@ onUnload(() => { | ||
| 1050 | background-color: #F4F6FA; | 1050 | background-color: #F4F6FA; |
| 1051 | } | 1051 | } |
| 1052 | .inspect-scroll { | 1052 | .inspect-scroll { |
| 1053 | - height: calc(100vh - 120rpx); | 1053 | + // 底部固定栏 120rpx + 与卡片之间统一 24rpx 间距 |
| 1054 | + height: calc(100vh - 144rpx - env(safe-area-inset-bottom)); | ||
| 1054 | } | 1055 | } |
| 1055 | 1056 | ||
| 1056 | /* 折叠面板:每个部位一张白色卡片(设计稿 .card) */ | 1057 | /* 折叠面板:每个部位一张白色卡片(设计稿 .card) */ |
| @@ -1124,7 +1125,7 @@ onUnload(() => { | @@ -1124,7 +1125,7 @@ onUnload(() => { | ||
| 1124 | margin-bottom: 15rpx; | 1125 | margin-bottom: 15rpx; |
| 1125 | font-size: 26rpx; | 1126 | font-size: 26rpx; |
| 1126 | .risk-label { | 1127 | .risk-label { |
| 1127 | - color: #9CA3AF; | 1128 | + color: #6B7280; |
| 1128 | margin-right: 10rpx; | 1129 | margin-right: 10rpx; |
| 1129 | } | 1130 | } |
| 1130 | .risk-value { | 1131 | .risk-value { |
| @@ -1159,7 +1160,7 @@ onUnload(() => { | @@ -1159,7 +1160,7 @@ onUnload(() => { | ||
| 1159 | .modal-row { | 1160 | .modal-row { |
| 1160 | font-size: 26rpx; | 1161 | font-size: 26rpx; |
| 1161 | line-height: 2; | 1162 | line-height: 2; |
| 1162 | - color: #4B5563; | 1163 | + color: #1F2937; |
| 1163 | } | 1164 | } |
| 1164 | } | 1165 | } |
| 1165 | 1166 | ||
| @@ -1175,7 +1176,7 @@ onUnload(() => { | @@ -1175,7 +1176,7 @@ onUnload(() => { | ||
| 1175 | min-width: 220rpx; /* 根据需求自行调大/调小 */ | 1176 | min-width: 220rpx; /* 根据需求自行调大/调小 */ |
| 1176 | display: inline-block; | 1177 | display: inline-block; |
| 1177 | font-size: 26rpx; | 1178 | font-size: 26rpx; |
| 1178 | - color: #4B5563; | 1179 | + color: #1F2937; |
| 1179 | } | 1180 | } |
| 1180 | 1181 | ||
| 1181 | /* 单列单选组,增加上下间距,避免误触 */ | 1182 | /* 单列单选组,增加上下间距,避免误触 */ |
| @@ -1191,12 +1192,12 @@ onUnload(() => { | @@ -1191,12 +1192,12 @@ onUnload(() => { | ||
| 1191 | border: 1rpx solid #E8EBF0; | 1192 | border: 1rpx solid #E8EBF0; |
| 1192 | border-radius: 12rpx; | 1193 | border-radius: 12rpx; |
| 1193 | font-size: 26rpx; | 1194 | font-size: 26rpx; |
| 1194 | - color: #4B5563; | 1195 | + color: #1F2937; |
| 1195 | background-color: #FAFBFC; | 1196 | background-color: #FAFBFC; |
| 1196 | margin-bottom: 12rpx; | 1197 | margin-bottom: 12rpx; |
| 1197 | &.disabled-row { | 1198 | &.disabled-row { |
| 1198 | background: #F4F6FA; | 1199 | background: #F4F6FA; |
| 1199 | - color: #9CA3AF; | 1200 | + color: #6B7280; |
| 1200 | } | 1201 | } |
| 1201 | } | 1202 | } |
| 1202 | 1203 |
pages-sub/data/tree-archive/addTree.vue
| @@ -29,7 +29,7 @@ | @@ -29,7 +29,7 @@ | ||
| 29 | <up-form-item label="胸径" prop="dbh" required> | 29 | <up-form-item label="胸径" prop="dbh" required> |
| 30 | <up-input v-model.trim="formData.dbh" placeholder="请输入" maxlength="10" border="none" input-align="left"/> | 30 | <up-input v-model.trim="formData.dbh" placeholder="请输入" maxlength="10" border="none" input-align="left"/> |
| 31 | <template #right> | 31 | <template #right> |
| 32 | - <text style="padding-left: 12rpx;color:#9CA3AF;font-size:26rpx">厘米</text> | 32 | + <text style="padding-left: 12rpx;color:#6B7280;font-size:26rpx">厘米</text> |
| 33 | </template> | 33 | </template> |
| 34 | </up-form-item> | 34 | </up-form-item> |
| 35 | </up-col> | 35 | </up-col> |
| @@ -38,7 +38,7 @@ | @@ -38,7 +38,7 @@ | ||
| 38 | <up-input v-model.trim="formData.treeheight" placeholder="请输入" maxlength="10" border="none" | 38 | <up-input v-model.trim="formData.treeheight" placeholder="请输入" maxlength="10" border="none" |
| 39 | input-align="left"/> | 39 | input-align="left"/> |
| 40 | <template #right> | 40 | <template #right> |
| 41 | - <text style="padding-left: 12rpx;color:#9CA3AF;font-size:26rpx;">米</text> | 41 | + <text style="padding-left: 12rpx;color:#6B7280;font-size:26rpx;">米</text> |
| 42 | </template> | 42 | </template> |
| 43 | </up-form-item> | 43 | </up-form-item> |
| 44 | </up-col> | 44 | </up-col> |
| @@ -157,7 +157,7 @@ | @@ -157,7 +157,7 @@ | ||
| 157 | <up-input v-model.trim="formData.weekday" placeholder="请输入" maxlength="10" border="none" | 157 | <up-input v-model.trim="formData.weekday" placeholder="请输入" maxlength="10" border="none" |
| 158 | input-align="left"/> | 158 | input-align="left"/> |
| 159 | <template #right> | 159 | <template #right> |
| 160 | - <text style="padding-left:12rpx;color:#9CA3AF;font-size:26rpx">厘米</text> | 160 | + <text style="padding-left:12rpx;color:#6B7280;font-size:26rpx">厘米</text> |
| 161 | </template> | 161 | </template> |
| 162 | </up-form-item> | 162 | </up-form-item> |
| 163 | </up-col> | 163 | </up-col> |
| @@ -171,7 +171,7 @@ | @@ -171,7 +171,7 @@ | ||
| 171 | <up-input v-model.trim="formData.canopyeastwest" placeholder="请输入" maxlength="10" border="none" | 171 | <up-input v-model.trim="formData.canopyeastwest" placeholder="请输入" maxlength="10" border="none" |
| 172 | input-align="left"/> | 172 | input-align="left"/> |
| 173 | <template #right> | 173 | <template #right> |
| 174 | - <text style="padding-left:12rpx;color:#9CA3AF;font-size:26rpx">米</text> | 174 | + <text style="padding-left:12rpx;color:#6B7280;font-size:26rpx">米</text> |
| 175 | </template> | 175 | </template> |
| 176 | </up-form-item> | 176 | </up-form-item> |
| 177 | </up-col> | 177 | </up-col> |
| @@ -180,7 +180,7 @@ | @@ -180,7 +180,7 @@ | ||
| 180 | <up-input v-model.trim="formData.canopysouthnorth" placeholder="请输入" maxlength="10" border="none" | 180 | <up-input v-model.trim="formData.canopysouthnorth" placeholder="请输入" maxlength="10" border="none" |
| 181 | input-align="left"/> | 181 | input-align="left"/> |
| 182 | <template #right> | 182 | <template #right> |
| 183 | - <text style="padding-left:12rpx;color:#9CA3AF;font-size:26rpx">米</text> | 183 | + <text style="padding-left:12rpx;color:#6B7280;font-size:26rpx">米</text> |
| 184 | </template> | 184 | </template> |
| 185 | </up-form-item> | 185 | </up-form-item> |
| 186 | </up-col> | 186 | </up-col> |
| @@ -196,8 +196,6 @@ | @@ -196,8 +196,6 @@ | ||
| 196 | </view> | 196 | </view> |
| 197 | </up-form> | 197 | </up-form> |
| 198 | 198 | ||
| 199 | - <view style="height: 60px;width: 100%"></view> | ||
| 200 | - | ||
| 201 | <view class="fixed-bottom-btn-wrap"> | 199 | <view class="fixed-bottom-btn-wrap"> |
| 202 | <up-button type="primary" @click="submit" :loading="loadingFlag" size="large" bold>提交</up-button> | 200 | <up-button type="primary" @click="submit" :loading="loadingFlag" size="large" bold>提交</up-button> |
| 203 | </view> | 201 | </view> |
| @@ -550,7 +548,7 @@ const submit = async () => { | @@ -550,7 +548,7 @@ const submit = async () => { | ||
| 550 | /* 页面底色 + 留白(设计稿 --page-bg / .body) */ | 548 | /* 页面底色 + 留白(设计稿 --page-bg / .body) */ |
| 551 | .page-container { | 549 | .page-container { |
| 552 | padding: 24rpx; | 550 | padding: 24rpx; |
| 553 | - padding-bottom: 200rpx; // 给底部固定按钮留空间 | 551 | + padding-bottom: calc(144rpx + env(safe-area-inset-bottom)); // 给底部固定按钮留空间 |
| 554 | box-sizing: border-box; | 552 | box-sizing: border-box; |
| 555 | background-color: #F4F6FA; | 553 | background-color: #F4F6FA; |
| 556 | } | 554 | } |
| @@ -646,13 +644,13 @@ const submit = async () => { | @@ -646,13 +644,13 @@ const submit = async () => { | ||
| 646 | .coord-k { | 644 | .coord-k { |
| 647 | flex-shrink: 0; | 645 | flex-shrink: 0; |
| 648 | font-size: 22rpx; | 646 | font-size: 22rpx; |
| 649 | - color: #9CA3AF; | 647 | + color: #6B7280; |
| 650 | } | 648 | } |
| 651 | .coord-v { | 649 | .coord-v { |
| 652 | flex: 1; | 650 | flex: 1; |
| 653 | min-width: 0; | 651 | min-width: 0; |
| 654 | font-size: 24rpx; | 652 | font-size: 24rpx; |
| 655 | - color: #4B5563; | 653 | + color: #1F2937; |
| 656 | overflow: hidden; | 654 | overflow: hidden; |
| 657 | text-overflow: ellipsis; | 655 | text-overflow: ellipsis; |
| 658 | white-space: nowrap; | 656 | white-space: nowrap; |
| @@ -679,7 +677,7 @@ const submit = async () => { | @@ -679,7 +677,7 @@ const submit = async () => { | ||
| 679 | } | 677 | } |
| 680 | .page-container :deep(.u-upload__button__text) { | 678 | .page-container :deep(.u-upload__button__text) { |
| 681 | font-size: 22rpx !important; | 679 | font-size: 22rpx !important; |
| 682 | - color: #9CA3AF !important; | 680 | + color: #6B7280 !important; |
| 683 | } | 681 | } |
| 684 | .page-container :deep(.u-upload__wrap__preview) { | 682 | .page-container :deep(.u-upload__wrap__preview) { |
| 685 | border-radius: 12rpx !important; | 683 | border-radius: 12rpx !important; |
| @@ -696,7 +694,7 @@ const submit = async () => { | @@ -696,7 +694,7 @@ const submit = async () => { | ||
| 696 | .upload-tip-line { | 694 | .upload-tip-line { |
| 697 | font-size: 22rpx; | 695 | font-size: 22rpx; |
| 698 | line-height: 1.5; | 696 | line-height: 1.5; |
| 699 | - color: #9CA3AF; | 697 | + color: #6B7280; |
| 700 | } | 698 | } |
| 701 | 699 | ||
| 702 | /* 展开/收起:浅蓝底整行按钮(设计稿 .btn.soft) */ | 700 | /* 展开/收起:浅蓝底整行按钮(设计稿 .btn.soft) */ |
pages-sub/data/tree-archive/editTree.vue
| @@ -45,7 +45,7 @@ | @@ -45,7 +45,7 @@ | ||
| 45 | <up-input v-model.trim="formData.dbh" placeholder="请输入" maxlength="10" border="none" | 45 | <up-input v-model.trim="formData.dbh" placeholder="请输入" maxlength="10" border="none" |
| 46 | input-align="left"/> | 46 | input-align="left"/> |
| 47 | <template #right> | 47 | <template #right> |
| 48 | - <text style="padding-left: 12rpx;color:#9CA3AF;font-size:26rpx">厘米</text> | 48 | + <text style="padding-left: 12rpx;color:#6B7280;font-size:26rpx">厘米</text> |
| 49 | </template> | 49 | </template> |
| 50 | </up-form-item> | 50 | </up-form-item> |
| 51 | </up-col> | 51 | </up-col> |
| @@ -54,7 +54,7 @@ | @@ -54,7 +54,7 @@ | ||
| 54 | <up-input v-model.trim="formData.treeheight" placeholder="请输入" maxlength="10" border="none" | 54 | <up-input v-model.trim="formData.treeheight" placeholder="请输入" maxlength="10" border="none" |
| 55 | input-align="left"/> | 55 | input-align="left"/> |
| 56 | <template #right> | 56 | <template #right> |
| 57 | - <text style="padding-left: 12rpx;color:#9CA3AF;font-size:26rpx;">米</text> | 57 | + <text style="padding-left: 12rpx;color:#6B7280;font-size:26rpx;">米</text> |
| 58 | </template> | 58 | </template> |
| 59 | </up-form-item> | 59 | </up-form-item> |
| 60 | </up-col> | 60 | </up-col> |
| @@ -145,7 +145,7 @@ | @@ -145,7 +145,7 @@ | ||
| 145 | <up-input v-model.trim="formData.weekday" placeholder="请输入" maxlength="10" border="none" | 145 | <up-input v-model.trim="formData.weekday" placeholder="请输入" maxlength="10" border="none" |
| 146 | input-align="left"/> | 146 | input-align="left"/> |
| 147 | <template #right> | 147 | <template #right> |
| 148 | - <text style="padding-left:12rpx;color:#9CA3AF;font-size:26rpx">厘米</text> | 148 | + <text style="padding-left:12rpx;color:#6B7280;font-size:26rpx">厘米</text> |
| 149 | </template> | 149 | </template> |
| 150 | </up-form-item> | 150 | </up-form-item> |
| 151 | </up-col> | 151 | </up-col> |
| @@ -159,7 +159,7 @@ | @@ -159,7 +159,7 @@ | ||
| 159 | <up-input v-model.trim="formData.canopyeastwest" placeholder="请输入" maxlength="10" border="none" | 159 | <up-input v-model.trim="formData.canopyeastwest" placeholder="请输入" maxlength="10" border="none" |
| 160 | input-align="left"/> | 160 | input-align="left"/> |
| 161 | <template #right> | 161 | <template #right> |
| 162 | - <text style="padding-left:12rpx;color:#9CA3AF;font-size:26rpx">米</text> | 162 | + <text style="padding-left:12rpx;color:#6B7280;font-size:26rpx">米</text> |
| 163 | </template> | 163 | </template> |
| 164 | </up-form-item> | 164 | </up-form-item> |
| 165 | </up-col> | 165 | </up-col> |
| @@ -168,7 +168,7 @@ | @@ -168,7 +168,7 @@ | ||
| 168 | <up-input v-model.trim="formData.canopysouthnorth" placeholder="请输入" maxlength="10" border="none" | 168 | <up-input v-model.trim="formData.canopysouthnorth" placeholder="请输入" maxlength="10" border="none" |
| 169 | input-align="left"/> | 169 | input-align="left"/> |
| 170 | <template #right> | 170 | <template #right> |
| 171 | - <text style="padding-left:12rpx;color:#9CA3AF;font-size:26rpx">米</text> | 171 | + <text style="padding-left:12rpx;color:#6B7280;font-size:26rpx">米</text> |
| 172 | </template> | 172 | </template> |
| 173 | </up-form-item> | 173 | </up-form-item> |
| 174 | </up-col> | 174 | </up-col> |
| @@ -705,7 +705,7 @@ const toAddInspect = () => { | @@ -705,7 +705,7 @@ const toAddInspect = () => { | ||
| 705 | <style scoped lang="scss"> | 705 | <style scoped lang="scss"> |
| 706 | .container { | 706 | .container { |
| 707 | min-height: 100vh; | 707 | min-height: 100vh; |
| 708 | - padding-bottom: 200rpx; | 708 | + padding-bottom: calc(144rpx + env(safe-area-inset-bottom)); |
| 709 | background-color: #F4F6FA; | 709 | background-color: #F4F6FA; |
| 710 | box-sizing: border-box; | 710 | box-sizing: border-box; |
| 711 | } | 711 | } |
| @@ -741,7 +741,7 @@ const toAddInspect = () => { | @@ -741,7 +741,7 @@ const toAddInspect = () => { | ||
| 741 | } | 741 | } |
| 742 | .base-info-wrap :deep(.u-input__inner) { | 742 | .base-info-wrap :deep(.u-input__inner) { |
| 743 | font-size: 26rpx; | 743 | font-size: 26rpx; |
| 744 | - color: #4B5563; | 744 | + color: #1F2937; |
| 745 | } | 745 | } |
| 746 | 746 | ||
| 747 | /* 分区标题:蓝色竖条 + 标题文字 */ | 747 | /* 分区标题:蓝色竖条 + 标题文字 */ |
| @@ -774,7 +774,7 @@ const toAddInspect = () => { | @@ -774,7 +774,7 @@ const toAddInspect = () => { | ||
| 774 | } | 774 | } |
| 775 | 775 | ||
| 776 | .record-wrap { | 776 | .record-wrap { |
| 777 | - padding: 24rpx 0 40rpx; | 777 | + padding: 24rpx 0 0; |
| 778 | } | 778 | } |
| 779 | 779 | ||
| 780 | /* 巡检 / 变更日志卡片:白底 16rpx 圆角 + 浅投影(设计稿 .tcard) */ | 780 | /* 巡检 / 变更日志卡片:白底 16rpx 圆角 + 浅投影(设计稿 .tcard) */ |
| @@ -784,6 +784,10 @@ const toAddInspect = () => { | @@ -784,6 +784,10 @@ const toAddInspect = () => { | ||
| 784 | background-color: #ffffff !important; | 784 | background-color: #ffffff !important; |
| 785 | box-shadow: 0 4rpx 16rpx rgba(17, 24, 39, 0.06) !important; | 785 | box-shadow: 0 4rpx 16rpx rgba(17, 24, 39, 0.06) !important; |
| 786 | } | 786 | } |
| 787 | +/* 最后一张卡不再带下外边距,页面底部留白统一交给容器 */ | ||
| 788 | +.tree-card:last-child { | ||
| 789 | + margin-bottom: 0 !important; | ||
| 790 | +} | ||
| 787 | .tree-card :deep(.u-card__body) { | 791 | .tree-card :deep(.u-card__body) { |
| 788 | padding: 24rpx !important; | 792 | padding: 24rpx !important; |
| 789 | } | 793 | } |
| @@ -832,7 +836,7 @@ const toAddInspect = () => { | @@ -832,7 +836,7 @@ const toAddInspect = () => { | ||
| 832 | .card-body-inner { | 836 | .card-body-inner { |
| 833 | display: flex; | 837 | display: flex; |
| 834 | font-size: 26rpx; | 838 | font-size: 26rpx; |
| 835 | - color: #4B5563; | 839 | + color: #1F2937; |
| 836 | } | 840 | } |
| 837 | 841 | ||
| 838 | .fs-align__center { | 842 | .fs-align__center { |
| @@ -890,7 +894,7 @@ const toAddInspect = () => { | @@ -890,7 +894,7 @@ const toAddInspect = () => { | ||
| 890 | .inspect-row { | 894 | .inspect-row { |
| 891 | font-size: 26rpx; | 895 | font-size: 26rpx; |
| 892 | line-height: 1.9; | 896 | line-height: 1.9; |
| 893 | - color: #4B5563; | 897 | + color: #1F2937; |
| 894 | } | 898 | } |
| 895 | .detail-text { | 899 | .detail-text { |
| 896 | color: #2563EB; | 900 | color: #2563EB; |
pages-sub/data/tree-archive/index.vue
| @@ -4,10 +4,10 @@ | @@ -4,10 +4,10 @@ | ||
| 4 | <view class="filter-bar"> | 4 | <view class="filter-bar"> |
| 5 | <view class="sel" @click="showActionSheet = true"> | 5 | <view class="sel" @click="showActionSheet = true"> |
| 6 | <text class="sel-text up-line-1">{{ formData.companyId || '归属单位' }}</text> | 6 | <text class="sel-text up-line-1">{{ formData.companyId || '归属单位' }}</text> |
| 7 | - <up-icon name="arrow-down" size="12" color="#9CA3AF"></up-icon> | 7 | + <up-icon name="arrow-down" size="12" color="#6B7280"></up-icon> |
| 8 | </view> | 8 | </view> |
| 9 | <view class="sbox"> | 9 | <view class="sbox"> |
| 10 | - <up-icon name="search" size="12" color="#9CA3AF"></up-icon> | 10 | + <up-icon name="search" size="12" color="#6B7280"></up-icon> |
| 11 | <input | 11 | <input |
| 12 | v-model="searchValue" | 12 | v-model="searchValue" |
| 13 | class="sbox-input" | 13 | class="sbox-input" |
| @@ -58,7 +58,7 @@ | @@ -58,7 +58,7 @@ | ||
| 58 | </view> | 58 | </view> |
| 59 | <view class="card-body"> | 59 | <view class="card-body"> |
| 60 | <view class="kv"> | 60 | <view class="kv"> |
| 61 | - <text class="k">已录入行道树</text> | 61 | + <text class="k">已录入行道树:</text> |
| 62 | <text class="v up-line-1">{{ item.recordedCount }} / {{ item.treeCount }} 棵</text> | 62 | <text class="v up-line-1">{{ item.recordedCount }} / {{ item.treeCount }} 棵</text> |
| 63 | </view> | 63 | </view> |
| 64 | <!-- 录入进度:占总数比例,纯模板计算未新增 JS --> | 64 | <!-- 录入进度:占总数比例,纯模板计算未新增 JS --> |
| @@ -69,11 +69,11 @@ | @@ -69,11 +69,11 @@ | ||
| 69 | ></view> | 69 | ></view> |
| 70 | </view> | 70 | </view> |
| 71 | <view class="kv"> | 71 | <view class="kv"> |
| 72 | - <text class="k">起点</text> | 72 | + <text class="k">起点:</text> |
| 73 | <text class="v up-line-1">{{ item.startRemark }}</text> | 73 | <text class="v up-line-1">{{ item.startRemark }}</text> |
| 74 | </view> | 74 | </view> |
| 75 | <view class="kv"> | 75 | <view class="kv"> |
| 76 | - <text class="k">终点</text> | 76 | + <text class="k">终点:</text> |
| 77 | <text class="v up-line-1">{{ item.endRemark }}</text> | 77 | <text class="v up-line-1">{{ item.endRemark }}</text> |
| 78 | </view> | 78 | </view> |
| 79 | </view> | 79 | </view> |
| @@ -237,7 +237,7 @@ const checkRoadDataValid = () => { | @@ -237,7 +237,7 @@ const checkRoadDataValid = () => { | ||
| 237 | flex: 1; | 237 | flex: 1; |
| 238 | min-width: 0; | 238 | min-width: 0; |
| 239 | font-size: 26rpx; | 239 | font-size: 26rpx; |
| 240 | - color: #4B5563; | 240 | + color: #1F2937; |
| 241 | } | 241 | } |
| 242 | 242 | ||
| 243 | // 道路搜索框 | 243 | // 道路搜索框 |
| @@ -262,7 +262,7 @@ const checkRoadDataValid = () => { | @@ -262,7 +262,7 @@ const checkRoadDataValid = () => { | ||
| 262 | } | 262 | } |
| 263 | .sbox-placeholder { | 263 | .sbox-placeholder { |
| 264 | font-size: 26rpx; | 264 | font-size: 26rpx; |
| 265 | - color: #9CA3AF; | 265 | + color: #6B7280; |
| 266 | } | 266 | } |
| 267 | .sbox-go { | 267 | .sbox-go { |
| 268 | flex-shrink: 0; | 268 | flex-shrink: 0; |
| @@ -291,7 +291,7 @@ const checkRoadDataValid = () => { | @@ -291,7 +291,7 @@ const checkRoadDataValid = () => { | ||
| 291 | .left-item { | 291 | .left-item { |
| 292 | padding: 24rpx 20rpx; | 292 | padding: 24rpx 20rpx; |
| 293 | font-size: 26rpx; | 293 | font-size: 26rpx; |
| 294 | - color: #4B5563; | 294 | + color: #1F2937; |
| 295 | white-space: nowrap; | 295 | white-space: nowrap; |
| 296 | overflow: hidden; | 296 | overflow: hidden; |
| 297 | text-overflow: ellipsis; | 297 | text-overflow: ellipsis; |
| @@ -379,13 +379,13 @@ const checkRoadDataValid = () => { | @@ -379,13 +379,13 @@ const checkRoadDataValid = () => { | ||
| 379 | } | 379 | } |
| 380 | .kv .k { | 380 | .kv .k { |
| 381 | flex-shrink: 0; | 381 | flex-shrink: 0; |
| 382 | - color: #9CA3AF; | 382 | + color: #6B7280; |
| 383 | } | 383 | } |
| 384 | .kv .v { | 384 | .kv .v { |
| 385 | flex: 1; | 385 | flex: 1; |
| 386 | min-width: 0; | 386 | min-width: 0; |
| 387 | - color: #4B5563; | ||
| 388 | - text-align: right; | 387 | + color: #1F2937; |
| 388 | + text-align: left; | ||
| 389 | } | 389 | } |
| 390 | 390 | ||
| 391 | // 录入进度条:直观呈现「已录入 / 总数」 | 391 | // 录入进度条:直观呈现「已录入 / 总数」 |
pages-sub/data/tree-archive/logDetail.vue
| @@ -24,7 +24,7 @@ | @@ -24,7 +24,7 @@ | ||
| 24 | <up-form-item label="胸径" prop="dbh" required> | 24 | <up-form-item label="胸径" prop="dbh" required> |
| 25 | <up-input v-model="formData.dbh" maxlength="10" border="none" input-align="left" readonly placeholder=""/> | 25 | <up-input v-model="formData.dbh" maxlength="10" border="none" input-align="left" readonly placeholder=""/> |
| 26 | <template #right> | 26 | <template #right> |
| 27 | - <text style="padding-left: 12rpx;color:#9CA3AF;font-size:26rpx">厘米</text> | 27 | + <text style="padding-left: 12rpx;color:#6B7280;font-size:26rpx">厘米</text> |
| 28 | </template> | 28 | </template> |
| 29 | </up-form-item> | 29 | </up-form-item> |
| 30 | </up-col> | 30 | </up-col> |
| @@ -32,7 +32,7 @@ | @@ -32,7 +32,7 @@ | ||
| 32 | <up-form-item label="高度" prop="treeheight"> | 32 | <up-form-item label="高度" prop="treeheight"> |
| 33 | <up-input v-model="formData.treeheight" maxlength="10" border="none" input-align="left" readonly placeholder=""/> | 33 | <up-input v-model="formData.treeheight" maxlength="10" border="none" input-align="left" readonly placeholder=""/> |
| 34 | <template #right> | 34 | <template #right> |
| 35 | - <text style="padding-left: 12rpx;color:#9CA3AF;font-size:26rpx;">米</text> | 35 | + <text style="padding-left: 12rpx;color:#6B7280;font-size:26rpx;">米</text> |
| 36 | </template> | 36 | </template> |
| 37 | </up-form-item> | 37 | </up-form-item> |
| 38 | </up-col> | 38 | </up-col> |
| @@ -107,7 +107,7 @@ | @@ -107,7 +107,7 @@ | ||
| 107 | <up-form-item label="干周" prop="weekday"> | 107 | <up-form-item label="干周" prop="weekday"> |
| 108 | <up-input v-model="formData.weekday" maxlength="10" border="none" input-align="left" readonly placeholder=""/> | 108 | <up-input v-model="formData.weekday" maxlength="10" border="none" input-align="left" readonly placeholder=""/> |
| 109 | <template #right> | 109 | <template #right> |
| 110 | - <text style="padding-left:12rpx;color:#9CA3AF;font-size:26rpx">厘米</text> | 110 | + <text style="padding-left:12rpx;color:#6B7280;font-size:26rpx">厘米</text> |
| 111 | </template> | 111 | </template> |
| 112 | </up-form-item> | 112 | </up-form-item> |
| 113 | </up-col> | 113 | </up-col> |
| @@ -120,7 +120,7 @@ | @@ -120,7 +120,7 @@ | ||
| 120 | <up-form-item label="东西冠幅" prop="canopyeastwest"> | 120 | <up-form-item label="东西冠幅" prop="canopyeastwest"> |
| 121 | <up-input v-model="formData.canopyeastwest" maxlength="10" border="none" input-align="left" readonly placeholder=""/> | 121 | <up-input v-model="formData.canopyeastwest" maxlength="10" border="none" input-align="left" readonly placeholder=""/> |
| 122 | <template #right> | 122 | <template #right> |
| 123 | - <text style="padding-left:12rpx;color:#9CA3AF;font-size:26rpx">米</text> | 123 | + <text style="padding-left:12rpx;color:#6B7280;font-size:26rpx">米</text> |
| 124 | </template> | 124 | </template> |
| 125 | </up-form-item> | 125 | </up-form-item> |
| 126 | </up-col> | 126 | </up-col> |
| @@ -128,7 +128,7 @@ | @@ -128,7 +128,7 @@ | ||
| 128 | <up-form-item label="南北冠幅" prop="canopysouthnorth"> | 128 | <up-form-item label="南北冠幅" prop="canopysouthnorth"> |
| 129 | <up-input v-model="formData.canopysouthnorth" maxlength="10" border="none" input-align="left" readonly placeholder=""/> | 129 | <up-input v-model="formData.canopysouthnorth" maxlength="10" border="none" input-align="left" readonly placeholder=""/> |
| 130 | <template #right> | 130 | <template #right> |
| 131 | - <text style="padding-left:12rpx;color:#9CA3AF;font-size:26rpx">米</text> | 131 | + <text style="padding-left:12rpx;color:#6B7280;font-size:26rpx">米</text> |
| 132 | </template> | 132 | </template> |
| 133 | </up-form-item> | 133 | </up-form-item> |
| 134 | </up-col> | 134 | </up-col> |
| @@ -278,13 +278,13 @@ onReady(() => {}); | @@ -278,13 +278,13 @@ onReady(() => {}); | ||
| 278 | 278 | ||
| 279 | :deep(.u-input__inner) { | 279 | :deep(.u-input__inner) { |
| 280 | font-size: 26rpx; | 280 | font-size: 26rpx; |
| 281 | - color: #4B5563; | 281 | + color: #1F2937; |
| 282 | background-color: transparent !important; | 282 | background-color: transparent !important; |
| 283 | } | 283 | } |
| 284 | 284 | ||
| 285 | .show-text { | 285 | .show-text { |
| 286 | font-size: 26rpx; | 286 | font-size: 26rpx; |
| 287 | - color: #4B5563; | 287 | + color: #1F2937; |
| 288 | line-height: 80rpx; | 288 | line-height: 80rpx; |
| 289 | width: 100%; | 289 | width: 100%; |
| 290 | display: block; | 290 | display: block; |
pages-sub/data/tree-archive/treeRecord.vue
| @@ -119,7 +119,7 @@ const fetchData = async (pageNo, pageSize) => { | @@ -119,7 +119,7 @@ const fetchData = async (pageNo, pageSize) => { | ||
| 119 | 119 | ||
| 120 | /* 列表:左右 24rpx 留白,卡片之间 24rpx(设计稿 .body) */ | 120 | /* 列表:左右 24rpx 留白,卡片之间 24rpx(设计稿 .body) */ |
| 121 | .record-wrap { | 121 | .record-wrap { |
| 122 | - padding: 24rpx 0 180rpx; // 底部预留固定按钮高度 | 122 | + padding: 24rpx 0 calc(120rpx + env(safe-area-inset-bottom)); // 底部固定按钮栏 120rpx,卡片自带 24rpx 外边距 |
| 123 | } | 123 | } |
| 124 | 124 | ||
| 125 | /* 树木卡片:白底 16rpx 圆角 + 浅投影(设计稿 .tcard) */ | 125 | /* 树木卡片:白底 16rpx 圆角 + 浅投影(设计稿 .tcard) */ |
| @@ -168,7 +168,7 @@ const fetchData = async (pageNo, pageSize) => { | @@ -168,7 +168,7 @@ const fetchData = async (pageNo, pageSize) => { | ||
| 168 | flex-shrink: 0; | 168 | flex-shrink: 0; |
| 169 | margin-left: 16rpx; | 169 | margin-left: 16rpx; |
| 170 | font-size: 22rpx; | 170 | font-size: 22rpx; |
| 171 | - color: #9CA3AF; | 171 | + color: #6B7280; |
| 172 | } | 172 | } |
| 173 | 173 | ||
| 174 | .record-kv { | 174 | .record-kv { |
| @@ -176,7 +176,7 @@ const fetchData = async (pageNo, pageSize) => { | @@ -176,7 +176,7 @@ const fetchData = async (pageNo, pageSize) => { | ||
| 176 | align-items: center; | 176 | align-items: center; |
| 177 | margin-top: 10rpx; | 177 | margin-top: 10rpx; |
| 178 | font-size: 24rpx; | 178 | font-size: 24rpx; |
| 179 | - color: #4B5563; | 179 | + color: #1F2937; |
| 180 | } | 180 | } |
| 181 | .record-ico { | 181 | .record-ico { |
| 182 | width: 24rpx; | 182 | width: 24rpx; |
pages-sub/problem/ai-manage/index.vue
| @@ -51,7 +51,7 @@ | @@ -51,7 +51,7 @@ | ||
| 51 | <empty-view /> | 51 | <empty-view /> |
| 52 | </template> | 52 | </template> |
| 53 | 53 | ||
| 54 | - <view class="common-card-list" style="padding-top: 216rpx;padding-bottom: 180rpx"> | 54 | + <view class="common-card-list" style="padding-top: 216rpx;padding-bottom: calc(120rpx + env(safe-area-inset-bottom))"> |
| 55 | <!-- 待办工单卡片 --> | 55 | <!-- 待办工单卡片 --> |
| 56 | <up-card | 56 | <up-card |
| 57 | v-if="activeTab === 0" | 57 | v-if="activeTab === 0" |
pages-sub/problem/regional-order-manage/add-order.vue
| @@ -840,7 +840,7 @@ if (hasRepeat) { | @@ -840,7 +840,7 @@ if (hasRepeat) { | ||
| 840 | /* 统一卡片样式(与工单表单页一致) */ | 840 | /* 统一卡片样式(与工单表单页一致) */ |
| 841 | .page-container { | 841 | .page-container { |
| 842 | min-height: 100vh; | 842 | min-height: 100vh; |
| 843 | - padding-bottom: 200rpx; | 843 | + padding-bottom: calc(144rpx + env(safe-area-inset-bottom)); |
| 844 | background-color: #F4F6FA; | 844 | background-color: #F4F6FA; |
| 845 | box-sizing: border-box; | 845 | box-sizing: border-box; |
| 846 | } | 846 | } |
pages-sub/problem/regional-order-manage/add-patrol-order.vue
| @@ -368,7 +368,7 @@ const submitWorkOrder = async () => { | @@ -368,7 +368,7 @@ const submitWorkOrder = async () => { | ||
| 368 | /* 统一卡片样式(与工单表单页一致) */ | 368 | /* 统一卡片样式(与工单表单页一致) */ |
| 369 | .page-container { | 369 | .page-container { |
| 370 | min-height: 100vh; | 370 | min-height: 100vh; |
| 371 | - padding-bottom: 200rpx; | 371 | + padding-bottom: calc(144rpx + env(safe-area-inset-bottom)); |
| 372 | background-color: #F4F6FA; | 372 | background-color: #F4F6FA; |
| 373 | box-sizing: border-box; | 373 | box-sizing: border-box; |
| 374 | } | 374 | } |
pages-sub/problem/regional-order-manage/distribution-order.vue
| @@ -537,7 +537,7 @@ const submitWorkOrder = async () => { | @@ -537,7 +537,7 @@ const submitWorkOrder = async () => { | ||
| 537 | /* 统一卡片样式(与工单表单页一致) */ | 537 | /* 统一卡片样式(与工单表单页一致) */ |
| 538 | .page-container { | 538 | .page-container { |
| 539 | min-height: 100vh; | 539 | min-height: 100vh; |
| 540 | - padding-bottom: 200rpx; // 给底部按钮留空间 | 540 | + padding-bottom: calc(144rpx + env(safe-area-inset-bottom)); // 给底部按钮留空间 |
| 541 | background-color: #F4F6FA; | 541 | background-color: #F4F6FA; |
| 542 | box-sizing: border-box; | 542 | box-sizing: border-box; |
| 543 | } | 543 | } |
pages-sub/problem/regional-order-manage/index.vue
| @@ -62,14 +62,6 @@ | @@ -62,14 +62,6 @@ | ||
| 62 | > | 62 | > |
| 63 | <template #body> | 63 | <template #body> |
| 64 | <view class="card-body"> | 64 | <view class="card-body"> |
| 65 | - <!-- <view v-if="activeTab !== 0" class="ml-10">--> | ||
| 66 | - <!-- <up-button type="primary" size="mini" @click="handleDetail(item)">工单详情</up-button>--> | ||
| 67 | - <!-- </view>--> | ||
| 68 | - | ||
| 69 | - <view class="common-custom-btn " v-if="activeTab !== 0" style="--btn-top: 130px;" @click="handleDetail(item)"> | ||
| 70 | - 工单详情 | ||
| 71 | - </view> | ||
| 72 | - | ||
| 73 | <view class="u-body-item u-flex"> | 65 | <view class="u-body-item u-flex"> |
| 74 | <view class="u-body-item-title">工单编号:</view> | 66 | <view class="u-body-item-title">工单编号:</view> |
| 75 | <view class="u-line-1 u-body-value">{{ item.orderNo || '-' }}</view> | 67 | <view class="u-line-1 u-body-value">{{ item.orderNo || '-' }}</view> |
| @@ -88,14 +80,10 @@ | @@ -88,14 +80,10 @@ | ||
| 88 | </view> | 80 | </view> |
| 89 | 81 | ||
| 90 | <view class="u-body-item u-flex common-justify-between common-item-center"> | 82 | <view class="u-body-item u-flex common-justify-between common-item-center"> |
| 91 | - <view class="u-body-item-title">紧急程度:{{ uni.$dict.getDictLabel('workorder_pressing_type', item.pressingType) || '-' }}</view> | ||
| 92 | - <!-- <view class="u-line-1 u-body-value flex-1 text-right">--> | ||
| 93 | - <!-- {{ uni.$dict.getDictLabel('workorder_pressing_type', item.pressingType) || '-' }}--> | ||
| 94 | - <!-- </view>--> | ||
| 95 | - <!-- 只有 我发起的(1)、已办(2) 显示该行的详情按钮 --> | ||
| 96 | - <!-- <view v-if="activeTab !== 0" class="ml-10">--> | ||
| 97 | - <!-- <up-button type="primary" size="mini" @click="handleDetail(item)">工单详情</up-button>--> | ||
| 98 | - <!-- </view>--> | 83 | + <view class="u-body-item-title">紧急程度:</view> |
| 84 | + <view class="u-line-1 u-body-value"> | ||
| 85 | + {{ uni.$dict.getDictLabel('workorder_pressing_type', item.pressingType) || '-' }} | ||
| 86 | + </view> | ||
| 99 | </view> | 87 | </view> |
| 100 | <view class="u-body-item u-flex"> | 88 | <view class="u-body-item u-flex"> |
| 101 | <view class="u-body-item-title">工单状态:</view> | 89 | <view class="u-body-item-title">工单状态:</view> |
| @@ -130,7 +118,10 @@ | @@ -130,7 +118,10 @@ | ||
| 130 | </template> | 118 | </template> |
| 131 | </view> | 119 | </view> |
| 132 | 120 | ||
| 133 | - <!-- 已删除:原来单独的【我发起的/已办】按钮区,不需要了 --> | 121 | + <!-- 已办 / 我发起的:操作按钮收进底部操作区,不再用绝对定位盖住信息行 --> |
| 122 | + <view v-if="activeTab !== 0" class="card-action-row"> | ||
| 123 | + <view class="mini-btn mini-btn--primary" @click="handleDetail(item)">工单详情</view> | ||
| 124 | + </view> | ||
| 134 | </view> | 125 | </view> |
| 135 | </template> | 126 | </template> |
| 136 | </up-card> | 127 | </up-card> |
| @@ -746,7 +737,7 @@ onLoad(() => { | @@ -746,7 +737,7 @@ onLoad(() => { | ||
| 746 | // 顶部留白 = 吸顶筛选条高度(Tabs 44 + 搜索条 10+32+10 = 96px) + 12px 间距 | 737 | // 顶部留白 = 吸顶筛选条高度(Tabs 44 + 搜索条 10+32+10 = 96px) + 12px 间距 |
| 747 | // 原写法用 calc(var(--status-bar-height) + 140rpx),状态栏高度随机型变化,低状态栏机型会压到卡片 | 738 | // 原写法用 calc(var(--status-bar-height) + 140rpx),状态栏高度随机型变化,低状态栏机型会压到卡片 |
| 748 | .common-card-list { | 739 | .common-card-list { |
| 749 | - padding: 216rpx 0 180rpx; | 740 | + padding: 216rpx 0 calc(120rpx + env(safe-area-inset-bottom)); |
| 750 | box-sizing: border-box; | 741 | box-sizing: border-box; |
| 751 | } | 742 | } |
| 752 | 743 |
pages-sub/problem/regional-order-manage/list-detail.vue
| @@ -27,11 +27,11 @@ | @@ -27,11 +27,11 @@ | ||
| 27 | <!-- 工单详情 Tab --> | 27 | <!-- 工单详情 Tab --> |
| 28 | <view v-show="activeTopTab === 0" class="detail-content"> | 28 | <view v-show="activeTopTab === 0" class="detail-content"> |
| 29 | <up-cell-group :border="false" class="detail-cell-group"> | 29 | <up-cell-group :border="false" class="detail-cell-group"> |
| 30 | - <up-cell title="工单编号" :value="orderDetail.orderNo || '--'" align="middle"></up-cell> | 30 | + <up-cell title="工单编号:" :value="orderDetail.orderNo || '--'" align="middle"></up-cell> |
| 31 | 31 | ||
| 32 | <up-cell align="middle"> | 32 | <up-cell align="middle"> |
| 33 | <template #title> | 33 | <template #title> |
| 34 | - <view style="min-width: 200rpx">工单位置</view> | 34 | + <view style="min-width: 200rpx">工单位置:</view> |
| 35 | </template> | 35 | </template> |
| 36 | <template #value> | 36 | <template #value> |
| 37 | <view class="common-text-color up-line-1">{{ orderDetail.lonLatAddress || '--' }}</view> | 37 | <view class="common-text-color up-line-1">{{ orderDetail.lonLatAddress || '--' }}</view> |
| @@ -40,18 +40,18 @@ | @@ -40,18 +40,18 @@ | ||
| 40 | 40 | ||
| 41 | <up-cell align="middle"> | 41 | <up-cell align="middle"> |
| 42 | <template #title> | 42 | <template #title> |
| 43 | - <view style="min-width: 200rpx">问题类型</view> | 43 | + <view style="min-width: 200rpx">问题类型:</view> |
| 44 | </template> | 44 | </template> |
| 45 | <template #value> | 45 | <template #value> |
| 46 | <view class="common-text-color up-line-1">{{ orderDetail.orderName || '--' }}</view> | 46 | <view class="common-text-color up-line-1">{{ orderDetail.orderName || '--' }}</view> |
| 47 | </template> | 47 | </template> |
| 48 | </up-cell> | 48 | </up-cell> |
| 49 | 49 | ||
| 50 | - <up-cell title="街道名称" :value="orderDetail.streetName || '--'" align="middle"></up-cell> | 50 | + <up-cell title="街道名称:" :value="orderDetail.streetName || '--'" align="middle"></up-cell> |
| 51 | 51 | ||
| 52 | <up-cell v-if="orderDetail.roadName"> | 52 | <up-cell v-if="orderDetail.roadName"> |
| 53 | <template #title> | 53 | <template #title> |
| 54 | - <view style="min-width: 200rpx">道路名称</view> | 54 | + <view style="min-width: 200rpx">道路名称:</view> |
| 55 | </template> | 55 | </template> |
| 56 | <template #value> | 56 | <template #value> |
| 57 | <view class="common-text-color up-line-1">{{ orderDetail.roadName || '--' }}</view> | 57 | <view class="common-text-color up-line-1">{{ orderDetail.roadName || '--' }}</view> |
| @@ -60,7 +60,7 @@ | @@ -60,7 +60,7 @@ | ||
| 60 | 60 | ||
| 61 | <up-cell> | 61 | <up-cell> |
| 62 | <template #title> | 62 | <template #title> |
| 63 | - <view style="min-width: 200rpx">情况描述</view> | 63 | + <view style="min-width: 200rpx">情况描述:</view> |
| 64 | </template> | 64 | </template> |
| 65 | <template #value> | 65 | <template #value> |
| 66 | <view class="common-text-color up-line-1">{{ orderDetail.remark || '--' }}</view> | 66 | <view class="common-text-color up-line-1">{{ orderDetail.remark || '--' }}</view> |
| @@ -68,22 +68,22 @@ | @@ -68,22 +68,22 @@ | ||
| 68 | </up-cell> | 68 | </up-cell> |
| 69 | 69 | ||
| 70 | <up-cell | 70 | <up-cell |
| 71 | - title="紧急程度" | 71 | + title="紧急程度:" |
| 72 | :value="uni.$dict.getDictLabel('workorder_pressing_type', orderDetail.pressingType) || '--'" | 72 | :value="uni.$dict.getDictLabel('workorder_pressing_type', orderDetail.pressingType) || '--'" |
| 73 | align="middle" | 73 | align="middle" |
| 74 | ></up-cell> | 74 | ></up-cell> |
| 75 | 75 | ||
| 76 | - <up-cell title="提交人" :value="orderDetail.userName || '--'" align="middle"></up-cell> | 76 | + <up-cell title="提交人:" :value="orderDetail.userName || '--'" align="middle"></up-cell> |
| 77 | 77 | ||
| 78 | <up-cell | 78 | <up-cell |
| 79 | - title="提交时间" | 79 | + title="提交时间:" |
| 80 | :value="timeFormat(orderDetail.createTime, 'yyyy-mm-dd hh:MM:ss') || '--'" | 80 | :value="timeFormat(orderDetail.createTime, 'yyyy-mm-dd hh:MM:ss') || '--'" |
| 81 | align="middle" | 81 | align="middle" |
| 82 | ></up-cell> | 82 | ></up-cell> |
| 83 | 83 | ||
| 84 | <up-cell v-if="orderDetail.handleResult"> | 84 | <up-cell v-if="orderDetail.handleResult"> |
| 85 | <template #title> | 85 | <template #title> |
| 86 | - <view style="min-width: 200rpx">处理结果</view> | 86 | + <view style="min-width: 200rpx">处理结果:</view> |
| 87 | </template> | 87 | </template> |
| 88 | <template #value> | 88 | <template #value> |
| 89 | <view class="common-text-color up-line-1">{{ orderDetail.handleResult || '--' }}</view> | 89 | <view class="common-text-color up-line-1">{{ orderDetail.handleResult || '--' }}</view> |
| @@ -107,7 +107,7 @@ | @@ -107,7 +107,7 @@ | ||
| 107 | 107 | ||
| 108 | <up-cell | 108 | <up-cell |
| 109 | v-if="orderDetail.expectedFinishDate" | 109 | v-if="orderDetail.expectedFinishDate" |
| 110 | - title="希望完成时间" | 110 | + title="希望完成时间:" |
| 111 | :value="timeFormat(orderDetail.expectedFinishDate, 'yyyy-mm-dd hh:MM:ss')" | 111 | :value="timeFormat(orderDetail.expectedFinishDate, 'yyyy-mm-dd hh:MM:ss')" |
| 112 | align="middle" | 112 | align="middle" |
| 113 | :border="false" | 113 | :border="false" |
| @@ -115,7 +115,7 @@ | @@ -115,7 +115,7 @@ | ||
| 115 | 115 | ||
| 116 | <up-cell | 116 | <up-cell |
| 117 | v-if="orderDetail.finishDate" | 117 | v-if="orderDetail.finishDate" |
| 118 | - title="工单完结时间" | 118 | + title="工单完结时间:" |
| 119 | :value="timeFormat(orderDetail.finishDate, 'yyyy-mm-dd hh:MM:ss')" | 119 | :value="timeFormat(orderDetail.finishDate, 'yyyy-mm-dd hh:MM:ss')" |
| 120 | align="middle" | 120 | align="middle" |
| 121 | :border="false" | 121 | :border="false" |
| @@ -127,7 +127,7 @@ | @@ -127,7 +127,7 @@ | ||
| 127 | <up-cell-group :border="false"> | 127 | <up-cell-group :border="false"> |
| 128 | <up-cell> | 128 | <up-cell> |
| 129 | <template #title> | 129 | <template #title> |
| 130 | - <view style="min-width: 200rpx">共同处理人</view> | 130 | + <view style="min-width: 200rpx">共同处理人:</view> |
| 131 | </template> | 131 | </template> |
| 132 | <template #value> | 132 | <template #value> |
| 133 | <view class="common-text-color up-line-1"> | 133 | <view class="common-text-color up-line-1"> |
| @@ -1108,14 +1108,14 @@ onLoad((options: any) => { | @@ -1108,14 +1108,14 @@ onLoad((options: any) => { | ||
| 1108 | 1108 | ||
| 1109 | // 按操作栏行数给内容预留底部间距 | 1109 | // 按操作栏行数给内容预留底部间距 |
| 1110 | .main-content.pb-rows-1 { | 1110 | .main-content.pb-rows-1 { |
| 1111 | - padding-bottom: 190rpx; | 1111 | + padding-bottom: calc(88rpx + env(safe-area-inset-bottom)); |
| 1112 | } | 1112 | } |
| 1113 | 1113 | ||
| 1114 | .main-content.pb-rows-2 { | 1114 | .main-content.pb-rows-2 { |
| 1115 | - padding-bottom: 290rpx; | 1115 | + padding-bottom: calc(168rpx + env(safe-area-inset-bottom)); |
| 1116 | } | 1116 | } |
| 1117 | 1117 | ||
| 1118 | .main-content.pb-rows-3 { | 1118 | .main-content.pb-rows-3 { |
| 1119 | - padding-bottom: 390rpx; | 1119 | + padding-bottom: calc(248rpx + env(safe-area-inset-bottom)); |
| 1120 | } | 1120 | } |
| 1121 | </style> | 1121 | </style> |
| 1122 | \ No newline at end of file | 1122 | \ No newline at end of file |
pages-sub/problem/regional-order-manage/list.vue
| @@ -505,12 +505,6 @@ onMounted(async () => { | @@ -505,12 +505,6 @@ onMounted(async () => { | ||
| 505 | } | 505 | } |
| 506 | } | 506 | } |
| 507 | 507 | ||
| 508 | -/* 列表顶部留出吸顶栏高度,避免内容被遮挡 */ | ||
| 509 | -.common-card-list { | ||
| 510 | - /* 原有样式保留,追加顶部内边距 */ | ||
| 511 | - padding: calc(var(--status-bar-height) + 100rpx + 44rpx) 0 30rpx; | ||
| 512 | - box-sizing: border-box; | ||
| 513 | -} | ||
| 514 | 508 | ||
| 515 | 509 | ||
| 516 | /* 第一行筛选布局 */ | 510 | /* 第一行筛选布局 */ |
| @@ -566,7 +560,7 @@ onMounted(async () => { | @@ -566,7 +560,7 @@ onMounted(async () => { | ||
| 566 | } | 560 | } |
| 567 | 561 | ||
| 568 | .common-card-list { | 562 | .common-card-list { |
| 569 | - padding: calc(var(--status-bar-height) + 160rpx) 0 30rpx; | 563 | + padding: calc(var(--status-bar-height) + 160rpx) 0 0; |
| 570 | box-sizing: border-box; | 564 | box-sizing: border-box; |
| 571 | } | 565 | } |
| 572 | 566 |
pages-sub/problem/regional-order-manage/order-detail.vue
| @@ -30,12 +30,12 @@ | @@ -30,12 +30,12 @@ | ||
| 30 | <view v-show="activeTopTab == 0" class="detail-content"> | 30 | <view v-show="activeTopTab == 0" class="detail-content"> |
| 31 | <up-cell-group :border="false" class="detail-cell-group"> | 31 | <up-cell-group :border="false" class="detail-cell-group"> |
| 32 | <!-- 工单编号 --> | 32 | <!-- 工单编号 --> |
| 33 | - <up-cell title="工单编号" :value="orderDetail.orderNo || '--'" align="middle"></up-cell> | 33 | + <up-cell title="工单编号:" :value="orderDetail.orderNo || '--'" align="middle"></up-cell> |
| 34 | 34 | ||
| 35 | <!-- 工单位置 --> | 35 | <!-- 工单位置 --> |
| 36 | <up-cell align="middle"> | 36 | <up-cell align="middle"> |
| 37 | <template #title> | 37 | <template #title> |
| 38 | - <view style="min-width: 200rpx">工单位置</view> | 38 | + <view style="min-width: 200rpx">工单位置:</view> |
| 39 | </template> | 39 | </template> |
| 40 | <template #value> | 40 | <template #value> |
| 41 | <view class="common-text-color up-line-1">{{ orderDetail.lonLatAddress || '--' }}</view> | 41 | <view class="common-text-color up-line-1">{{ orderDetail.lonLatAddress || '--' }}</view> |
| @@ -45,7 +45,7 @@ | @@ -45,7 +45,7 @@ | ||
| 45 | <!-- 问题类型 --> | 45 | <!-- 问题类型 --> |
| 46 | <up-cell align="middle"> | 46 | <up-cell align="middle"> |
| 47 | <template #title> | 47 | <template #title> |
| 48 | - <view style="min-width: 200rpx">问题类型</view> | 48 | + <view style="min-width: 200rpx">问题类型:</view> |
| 49 | </template> | 49 | </template> |
| 50 | <template #value> | 50 | <template #value> |
| 51 | <view class="common-text-color up-line-1">{{ orderDetail.orderName || '--' }}</view> | 51 | <view class="common-text-color up-line-1">{{ orderDetail.orderName || '--' }}</view> |
| @@ -53,11 +53,11 @@ | @@ -53,11 +53,11 @@ | ||
| 53 | </up-cell> | 53 | </up-cell> |
| 54 | 54 | ||
| 55 | <!-- 街道名称 --> | 55 | <!-- 街道名称 --> |
| 56 | - <up-cell title="街道名称" :value="orderDetail.streetName || '--'" align="middle"></up-cell> | 56 | + <up-cell title="街道名称:" :value="orderDetail.streetName || '--'" align="middle"></up-cell> |
| 57 | 57 | ||
| 58 | <up-cell v-if="orderDetail.roadName"> | 58 | <up-cell v-if="orderDetail.roadName"> |
| 59 | <template #title> | 59 | <template #title> |
| 60 | - <view style="min-width: 200rpx">道路名称</view> | 60 | + <view style="min-width: 200rpx">道路名称:</view> |
| 61 | </template> | 61 | </template> |
| 62 | <template #value> | 62 | <template #value> |
| 63 | <view class="common-text-color up-line-1">{{ orderDetail.roadName || '--' }}</view> | 63 | <view class="common-text-color up-line-1">{{ orderDetail.roadName || '--' }}</view> |
| @@ -67,7 +67,7 @@ | @@ -67,7 +67,7 @@ | ||
| 67 | <!-- 情况描述 --> | 67 | <!-- 情况描述 --> |
| 68 | <up-cell> | 68 | <up-cell> |
| 69 | <template #title> | 69 | <template #title> |
| 70 | - <view style="min-width: 200rpx">情况描述</view> | 70 | + <view style="min-width: 200rpx">情况描述:</view> |
| 71 | </template> | 71 | </template> |
| 72 | <template #value> | 72 | <template #value> |
| 73 | <view class="common-text-color up-line-1">{{ orderDetail.remark || '--' }}</view> | 73 | <view class="common-text-color up-line-1">{{ orderDetail.remark || '--' }}</view> |
| @@ -76,17 +76,17 @@ | @@ -76,17 +76,17 @@ | ||
| 76 | 76 | ||
| 77 | <!-- 紧急程度 --> | 77 | <!-- 紧急程度 --> |
| 78 | <up-cell | 78 | <up-cell |
| 79 | - title="紧急程度" | 79 | + title="紧急程度:" |
| 80 | :value="uni.$dict.getDictLabel('workorder_pressing_type', orderDetail.pressingType) || '--'" | 80 | :value="uni.$dict.getDictLabel('workorder_pressing_type', orderDetail.pressingType) || '--'" |
| 81 | align="middle" | 81 | align="middle" |
| 82 | ></up-cell> | 82 | ></up-cell> |
| 83 | 83 | ||
| 84 | <!-- 提交人 --> | 84 | <!-- 提交人 --> |
| 85 | - <up-cell title="提交人" :value="orderDetail.userName || '--'" align="middle"></up-cell> | 85 | + <up-cell title="提交人:" :value="orderDetail.userName || '--'" align="middle"></up-cell> |
| 86 | 86 | ||
| 87 | <!-- 提交时间 --> | 87 | <!-- 提交时间 --> |
| 88 | <up-cell | 88 | <up-cell |
| 89 | - title="提交时间" | 89 | + title="提交时间:" |
| 90 | :value="timeFormat(orderDetail.createTime, 'yyyy-mm-dd hh:MM:ss') || '--'" | 90 | :value="timeFormat(orderDetail.createTime, 'yyyy-mm-dd hh:MM:ss') || '--'" |
| 91 | align="middle" | 91 | align="middle" |
| 92 | ></up-cell> | 92 | ></up-cell> |
| @@ -94,7 +94,7 @@ | @@ -94,7 +94,7 @@ | ||
| 94 | <!-- 处理结果 --> | 94 | <!-- 处理结果 --> |
| 95 | <up-cell v-if="orderDetail.handleResult"> | 95 | <up-cell v-if="orderDetail.handleResult"> |
| 96 | <template #title> | 96 | <template #title> |
| 97 | - <view style="min-width: 200rpx">处理结果</view> | 97 | + <view style="min-width: 200rpx">处理结果:</view> |
| 98 | </template> | 98 | </template> |
| 99 | <template #value> | 99 | <template #value> |
| 100 | <view class="common-text-color up-line-1">{{ orderDetail.handleResult || '--' }}</view> | 100 | <view class="common-text-color up-line-1">{{ orderDetail.handleResult || '--' }}</view> |
| @@ -120,7 +120,7 @@ | @@ -120,7 +120,7 @@ | ||
| 120 | <!-- 希望完成时间 --> | 120 | <!-- 希望完成时间 --> |
| 121 | <up-cell | 121 | <up-cell |
| 122 | v-if="orderDetail.expectedFinishDate" | 122 | v-if="orderDetail.expectedFinishDate" |
| 123 | - title="希望完成时间" | 123 | + title="希望完成时间:" |
| 124 | :value="timeFormat(orderDetail.expectedFinishDate, 'yyyy-mm-dd hh:MM:ss')" | 124 | :value="timeFormat(orderDetail.expectedFinishDate, 'yyyy-mm-dd hh:MM:ss')" |
| 125 | align="middle" | 125 | align="middle" |
| 126 | :border="false" | 126 | :border="false" |
| @@ -128,7 +128,7 @@ | @@ -128,7 +128,7 @@ | ||
| 128 | 128 | ||
| 129 | <up-cell | 129 | <up-cell |
| 130 | v-if="orderDetail.finishDate" | 130 | v-if="orderDetail.finishDate" |
| 131 | - title="工单完结时间" | 131 | + title="工单完结时间:" |
| 132 | :value="timeFormat(orderDetail.finishDate, 'yyyy-mm-dd hh:MM:ss')" | 132 | :value="timeFormat(orderDetail.finishDate, 'yyyy-mm-dd hh:MM:ss')" |
| 133 | align="middle" | 133 | align="middle" |
| 134 | :border="false" | 134 | :border="false" |
| @@ -140,7 +140,7 @@ | @@ -140,7 +140,7 @@ | ||
| 140 | <up-cell-group :border="false"> | 140 | <up-cell-group :border="false"> |
| 141 | <up-cell> | 141 | <up-cell> |
| 142 | <template #title> | 142 | <template #title> |
| 143 | - <view style="min-width: 200rpx">共同处理人</view> | 143 | + <view style="min-width: 200rpx">共同处理人:</view> |
| 144 | </template> | 144 | </template> |
| 145 | <template #value> | 145 | <template #value> |
| 146 | <view class="common-text-color up-line-1"> | 146 | <view class="common-text-color up-line-1"> |
| @@ -1253,14 +1253,14 @@ onShow(() => {}); | @@ -1253,14 +1253,14 @@ onShow(() => {}); | ||
| 1253 | 1253 | ||
| 1254 | // 按操作栏行数给内容预留底部间距 | 1254 | // 按操作栏行数给内容预留底部间距 |
| 1255 | .main-content.pb-rows-1 { | 1255 | .main-content.pb-rows-1 { |
| 1256 | - padding-bottom: 190rpx; | 1256 | + padding-bottom: calc(88rpx + env(safe-area-inset-bottom)); |
| 1257 | } | 1257 | } |
| 1258 | 1258 | ||
| 1259 | .main-content.pb-rows-2 { | 1259 | .main-content.pb-rows-2 { |
| 1260 | - padding-bottom: 290rpx; | 1260 | + padding-bottom: calc(168rpx + env(safe-area-inset-bottom)); |
| 1261 | } | 1261 | } |
| 1262 | 1262 | ||
| 1263 | .main-content.pb-rows-3 { | 1263 | .main-content.pb-rows-3 { |
| 1264 | - padding-bottom: 390rpx; | 1264 | + padding-bottom: calc(248rpx + env(safe-area-inset-bottom)); |
| 1265 | } | 1265 | } |
| 1266 | </style> | 1266 | </style> |
| 1267 | \ No newline at end of file | 1267 | \ No newline at end of file |
pages-sub/problem/work-order-manage/add-maintain-order.vue
| @@ -1054,8 +1054,8 @@ const submitWorkOrder = async () => { | @@ -1054,8 +1054,8 @@ const submitWorkOrder = async () => { | ||
| 1054 | // 页面容器:浅灰底 + 给底部固定栏(按钮 88rpx + 上下各 24rpx)留空间 | 1054 | // 页面容器:浅灰底 + 给底部固定栏(按钮 88rpx + 上下各 24rpx)留空间 |
| 1055 | .page-container { | 1055 | .page-container { |
| 1056 | min-height: 100vh; | 1056 | min-height: 100vh; |
| 1057 | - padding-bottom: calc(180rpx + constant(safe-area-inset-bottom)); | ||
| 1058 | - padding-bottom: calc(180rpx + env(safe-area-inset-bottom)); | 1057 | + padding-bottom: calc(160rpx + constant(safe-area-inset-bottom)); |
| 1058 | + padding-bottom: calc(160rpx + env(safe-area-inset-bottom)); | ||
| 1059 | background-color: #F4F6FA; | 1059 | background-color: #F4F6FA; |
| 1060 | } | 1060 | } |
| 1061 | 1061 |
pages-sub/problem/work-order-manage/add-order.vue
| @@ -615,7 +615,7 @@ const submitWorkOrder = async () => { | @@ -615,7 +615,7 @@ const submitWorkOrder = async () => { | ||
| 615 | <style lang="scss" scoped> | 615 | <style lang="scss" scoped> |
| 616 | .page-container { | 616 | .page-container { |
| 617 | min-height: 100vh; | 617 | min-height: 100vh; |
| 618 | - padding-bottom: 200rpx; | 618 | + padding-bottom: calc(144rpx + env(safe-area-inset-bottom)); |
| 619 | background-color: #F4F6FA; | 619 | background-color: #F4F6FA; |
| 620 | box-sizing: border-box; | 620 | box-sizing: border-box; |
| 621 | } | 621 | } |
| @@ -686,7 +686,7 @@ const submitWorkOrder = async () => { | @@ -686,7 +686,7 @@ const submitWorkOrder = async () => { | ||
| 686 | border-radius: 12rpx; | 686 | border-radius: 12rpx; |
| 687 | } | 687 | } |
| 688 | .form-card--field :deep(.u-textarea__count) { | 688 | .form-card--field :deep(.u-textarea__count) { |
| 689 | - color: #9CA3AF; | 689 | + color: #6B7280; |
| 690 | } | 690 | } |
| 691 | /* 上传:虚线框 */ | 691 | /* 上传:虚线框 */ |
| 692 | .form-card--field :deep(.u-upload__button) { | 692 | .form-card--field :deep(.u-upload__button) { |
pages-sub/problem/work-order-manage/distribution-order.vue
| @@ -42,7 +42,7 @@ | @@ -42,7 +42,7 @@ | ||
| 42 | border="none" | 42 | border="none" |
| 43 | ></up-input> | 43 | ></up-input> |
| 44 | <template #right> | 44 | <template #right> |
| 45 | - <up-icon name="arrow-right" size="16" color="#9CA3AF"></up-icon> | 45 | + <up-icon name="arrow-right" size="16" color="#6B7280"></up-icon> |
| 46 | </template> | 46 | </template> |
| 47 | </up-form-item> | 47 | </up-form-item> |
| 48 | </view> | 48 | </view> |
| @@ -296,8 +296,8 @@ const submitWorkOrder = async () => { | @@ -296,8 +296,8 @@ const submitWorkOrder = async () => { | ||
| 296 | // 页面容器:浅灰底 + 给底部固定栏(按钮 88rpx + 上下各 24rpx)留空间 | 296 | // 页面容器:浅灰底 + 给底部固定栏(按钮 88rpx + 上下各 24rpx)留空间 |
| 297 | .page-container { | 297 | .page-container { |
| 298 | min-height: 100vh; | 298 | min-height: 100vh; |
| 299 | - padding-bottom: calc(180rpx + constant(safe-area-inset-bottom)); | ||
| 300 | - padding-bottom: calc(180rpx + env(safe-area-inset-bottom)); | 299 | + padding-bottom: calc(160rpx + constant(safe-area-inset-bottom)); |
| 300 | + padding-bottom: calc(160rpx + env(safe-area-inset-bottom)); | ||
| 301 | background-color: #F4F6FA; | 301 | background-color: #F4F6FA; |
| 302 | } | 302 | } |
| 303 | 303 | ||
| @@ -364,7 +364,7 @@ const submitWorkOrder = async () => { | @@ -364,7 +364,7 @@ const submitWorkOrder = async () => { | ||
| 364 | // 字数统计贴灰底显示(组件内部写死了白底,需 !important 覆盖) | 364 | // 字数统计贴灰底显示(组件内部写死了白底,需 !important 覆盖) |
| 365 | .form-card :deep(.u-textarea__count) { | 365 | .form-card :deep(.u-textarea__count) { |
| 366 | background-color: transparent !important; | 366 | background-color: transparent !important; |
| 367 | - color: #9CA3AF; | 367 | + color: #6B7280; |
| 368 | } | 368 | } |
| 369 | 369 | ||
| 370 | // 底部固定操作栏:白底 + 上分隔线 + 蓝色渐变主按钮(设计稿 .bar / .btn.pri) | 370 | // 底部固定操作栏:白底 + 上分隔线 + 蓝色渐变主按钮(设计稿 .bar / .btn.pri) |
pages-sub/problem/work-order-manage/index.vue
| @@ -57,7 +57,7 @@ | @@ -57,7 +57,7 @@ | ||
| 57 | <empty-view/> | 57 | <empty-view/> |
| 58 | </template> | 58 | </template> |
| 59 | 59 | ||
| 60 | - <view class="common-card-list" style="padding-top: 216rpx;padding-bottom: 180rpx"> | 60 | + <view class="common-card-list" style="padding-top: 216rpx;padding-bottom: calc(120rpx + env(safe-area-inset-bottom))"> |
| 61 | <!-- 待办工单卡片 --> | 61 | <!-- 待办工单卡片 --> |
| 62 | <up-card | 62 | <up-card |
| 63 | v-if="activeTab == 0" | 63 | v-if="activeTab == 0" |
pages-sub/problem/work-order-manage/order-detail.vue
| @@ -35,12 +35,12 @@ | @@ -35,12 +35,12 @@ | ||
| 35 | <view class="sec-title">工单信息</view> | 35 | <view class="sec-title">工单信息</view> |
| 36 | </view> | 36 | </view> |
| 37 | <!-- 工单编号 --> | 37 | <!-- 工单编号 --> |
| 38 | - <up-cell title="工单编号" :value="orderDetail.orderNo || '--'" align="middle"></up-cell> | 38 | + <up-cell title="工单编号:" :value="orderDetail.orderNo || '--'" align="middle"></up-cell> |
| 39 | 39 | ||
| 40 | <!-- 工单位置 --> | 40 | <!-- 工单位置 --> |
| 41 | <up-cell align="middle"> | 41 | <up-cell align="middle"> |
| 42 | <template #title> | 42 | <template #title> |
| 43 | - <view style="min-width: 200rpx">工单位置</view> | 43 | + <view style="min-width: 200rpx">工单位置:</view> |
| 44 | </template> | 44 | </template> |
| 45 | <template #value> | 45 | <template #value> |
| 46 | <view class="common-text-color up-line-1">{{ orderDetail.lonLatAddress || '--' }}</view> | 46 | <view class="common-text-color up-line-1">{{ orderDetail.lonLatAddress || '--' }}</view> |
| @@ -50,18 +50,18 @@ | @@ -50,18 +50,18 @@ | ||
| 50 | <!-- 问题类型--> | 50 | <!-- 问题类型--> |
| 51 | <up-cell align="middle"> | 51 | <up-cell align="middle"> |
| 52 | <template #title> | 52 | <template #title> |
| 53 | - <view style="min-width: 200rpx">问题类型</view> | 53 | + <view style="min-width: 200rpx">问题类型:</view> |
| 54 | </template> | 54 | </template> |
| 55 | <template #value> | 55 | <template #value> |
| 56 | <view class="common-text-color up-line-1">{{ orderDetail.orderName || '--' }}</view> | 56 | <view class="common-text-color up-line-1">{{ orderDetail.orderName || '--' }}</view> |
| 57 | </template> | 57 | </template> |
| 58 | </up-cell> | 58 | </up-cell> |
| 59 | <!-- 街道名称 --> | 59 | <!-- 街道名称 --> |
| 60 | - <up-cell title="街道名称" :value="orderDetail.streetName || '--'" align="middle"></up-cell> | 60 | + <up-cell title="街道名称:" :value="orderDetail.streetName || '--'" align="middle"></up-cell> |
| 61 | 61 | ||
| 62 | <up-cell v-if="orderDetail.roadName"> | 62 | <up-cell v-if="orderDetail.roadName"> |
| 63 | <template #title> | 63 | <template #title> |
| 64 | - <view style="min-width: 200rpx">道路名称</view> | 64 | + <view style="min-width: 200rpx">道路名称:</view> |
| 65 | </template> | 65 | </template> |
| 66 | <template #value> | 66 | <template #value> |
| 67 | <view class="common-text-color up-line-1">{{ orderDetail.roadName || '--' }}</view> | 67 | <view class="common-text-color up-line-1">{{ orderDetail.roadName || '--' }}</view> |
| @@ -70,17 +70,17 @@ | @@ -70,17 +70,17 @@ | ||
| 70 | 70 | ||
| 71 | <!-- 紧急程度 --> | 71 | <!-- 紧急程度 --> |
| 72 | <up-cell | 72 | <up-cell |
| 73 | - title="紧急程度" | 73 | + title="紧急程度:" |
| 74 | :value="uni.$dict.getDictLabel('workorder_pressing_type', orderDetail.pressingType) || '--'" | 74 | :value="uni.$dict.getDictLabel('workorder_pressing_type', orderDetail.pressingType) || '--'" |
| 75 | align="middle" | 75 | align="middle" |
| 76 | ></up-cell> | 76 | ></up-cell> |
| 77 | 77 | ||
| 78 | <!-- 提交人 --> | 78 | <!-- 提交人 --> |
| 79 | - <up-cell title="提交人" :value="orderDetail.userName || '--'" align="middle"></up-cell> | 79 | + <up-cell title="提交人:" :value="orderDetail.userName || '--'" align="middle"></up-cell> |
| 80 | 80 | ||
| 81 | <!-- 提交时间 --> | 81 | <!-- 提交时间 --> |
| 82 | <up-cell | 82 | <up-cell |
| 83 | - title="提交时间" | 83 | + title="提交时间:" |
| 84 | :value="timeFormat(orderDetail.createTime, 'yyyy-mm-dd hh:MM:ss') || '--'" | 84 | :value="timeFormat(orderDetail.createTime, 'yyyy-mm-dd hh:MM:ss') || '--'" |
| 85 | align="middle" | 85 | align="middle" |
| 86 | ></up-cell> | 86 | ></up-cell> |
| @@ -88,19 +88,19 @@ | @@ -88,19 +88,19 @@ | ||
| 88 | <!-- 处理结果 --> | 88 | <!-- 处理结果 --> |
| 89 | <up-cell v-if="orderDetail.handleResult"> | 89 | <up-cell v-if="orderDetail.handleResult"> |
| 90 | <template #title> | 90 | <template #title> |
| 91 | - <view style="min-width: 200rpx">处理结果</view> | 91 | + <view style="min-width: 200rpx">处理结果:</view> |
| 92 | </template> | 92 | </template> |
| 93 | <template #value> | 93 | <template #value> |
| 94 | <view class="common-text-color up-line-1">{{ orderDetail.handleResult || '--' }}</view> | 94 | <view class="common-text-color up-line-1">{{ orderDetail.handleResult || '--' }}</view> |
| 95 | </template> | 95 | </template> |
| 96 | </up-cell> | 96 | </up-cell> |
| 97 | 97 | ||
| 98 | - <up-cell title="重点巡检区域" :value="orderDetail.keyInspection==0?'否':'是'" align="middle"></up-cell> | 98 | + <up-cell title="重点巡检区域:" :value="orderDetail.keyInspection==0?'否':'是'" align="middle"></up-cell> |
| 99 | 99 | ||
| 100 | <!-- 希望完成时间 --> | 100 | <!-- 希望完成时间 --> |
| 101 | <up-cell | 101 | <up-cell |
| 102 | v-if="orderDetail.expectedFinishDate!==0" | 102 | v-if="orderDetail.expectedFinishDate!==0" |
| 103 | - title="希望完成时间" | 103 | + title="希望完成时间:" |
| 104 | :value="timeFormat(orderDetail.expectedFinishDate, 'yyyy-mm-dd hh:MM:ss')" | 104 | :value="timeFormat(orderDetail.expectedFinishDate, 'yyyy-mm-dd hh:MM:ss')" |
| 105 | align="middle" | 105 | align="middle" |
| 106 | :border="false" | 106 | :border="false" |
| @@ -108,7 +108,7 @@ | @@ -108,7 +108,7 @@ | ||
| 108 | 108 | ||
| 109 | <up-cell | 109 | <up-cell |
| 110 | v-if="orderDetail.finishDate" | 110 | v-if="orderDetail.finishDate" |
| 111 | - title="工单完结时间" | 111 | + title="工单完结时间:" |
| 112 | :value="timeFormat(orderDetail.finishDate, 'yyyy-mm-dd hh:MM:ss')" | 112 | :value="timeFormat(orderDetail.finishDate, 'yyyy-mm-dd hh:MM:ss')" |
| 113 | align="middle" | 113 | align="middle" |
| 114 | :border="false" | 114 | :border="false" |
| @@ -155,7 +155,7 @@ | @@ -155,7 +155,7 @@ | ||
| 155 | <up-cell-group :border="false"> | 155 | <up-cell-group :border="false"> |
| 156 | <up-cell> | 156 | <up-cell> |
| 157 | <template #title> | 157 | <template #title> |
| 158 | - <view style="min-width: 200rpx">共同处理人</view> | 158 | + <view style="min-width: 200rpx">共同处理人:</view> |
| 159 | </template> | 159 | </template> |
| 160 | <template #value> | 160 | <template #value> |
| 161 | <view class="common-text-color up-line-1"> | 161 | <view class="common-text-color up-line-1"> |
| @@ -1150,13 +1150,13 @@ onShow(() => { | @@ -1150,13 +1150,13 @@ onShow(() => { | ||
| 1150 | width: 100%; | 1150 | width: 100%; |
| 1151 | text-align: left; | 1151 | text-align: left; |
| 1152 | font-size: 28rpx; | 1152 | font-size: 28rpx; |
| 1153 | - color: #4B5563; | 1153 | + color: #1F2937; |
| 1154 | line-height: 1.6; | 1154 | line-height: 1.6; |
| 1155 | word-break: break-all; | 1155 | word-break: break-all; |
| 1156 | } | 1156 | } |
| 1157 | 1157 | ||
| 1158 | .empty-text { | 1158 | .empty-text { |
| 1159 | - color: #9CA3AF; | 1159 | + color: #6B7280; |
| 1160 | font-size: 28rpx; | 1160 | font-size: 28rpx; |
| 1161 | } | 1161 | } |
| 1162 | } | 1162 | } |
| @@ -1188,7 +1188,7 @@ onShow(() => { | @@ -1188,7 +1188,7 @@ onShow(() => { | ||
| 1188 | .empty-img-text { | 1188 | .empty-img-text { |
| 1189 | height: 75px; | 1189 | height: 75px; |
| 1190 | line-height: 75px; | 1190 | line-height: 75px; |
| 1191 | - color: #9CA3AF; | 1191 | + color: #6B7280; |
| 1192 | font-size: 28rpx; | 1192 | font-size: 28rpx; |
| 1193 | } | 1193 | } |
| 1194 | } | 1194 | } |
| @@ -1390,15 +1390,15 @@ onShow(() => { | @@ -1390,15 +1390,15 @@ onShow(() => { | ||
| 1390 | 1390 | ||
| 1391 | // 按操作栏行数给内容预留底部间距 | 1391 | // 按操作栏行数给内容预留底部间距 |
| 1392 | .main-content.pb-rows-1 { | 1392 | .main-content.pb-rows-1 { |
| 1393 | - padding-bottom: 190rpx; | 1393 | + padding-bottom: calc(88rpx + env(safe-area-inset-bottom)); |
| 1394 | } | 1394 | } |
| 1395 | 1395 | ||
| 1396 | .main-content.pb-rows-2 { | 1396 | .main-content.pb-rows-2 { |
| 1397 | - padding-bottom: 290rpx; | 1397 | + padding-bottom: calc(168rpx + env(safe-area-inset-bottom)); |
| 1398 | } | 1398 | } |
| 1399 | 1399 | ||
| 1400 | .main-content.pb-rows-3 { | 1400 | .main-content.pb-rows-3 { |
| 1401 | - padding-bottom: 390rpx; | 1401 | + padding-bottom: calc(248rpx + env(safe-area-inset-bottom)); |
| 1402 | } | 1402 | } |
| 1403 | 1403 | ||
| 1404 | // 作业填报明细:白色卡片(设计稿 .card) | 1404 | // 作业填报明细:白色卡片(设计稿 .card) |
| @@ -1422,7 +1422,7 @@ onShow(() => { | @@ -1422,7 +1422,7 @@ onShow(() => { | ||
| 1422 | 1422 | ||
| 1423 | .work-field-value { | 1423 | .work-field-value { |
| 1424 | max-width: 420rpx; | 1424 | max-width: 420rpx; |
| 1425 | - text-align: right; | 1425 | + text-align: left; |
| 1426 | word-break: break-all; | 1426 | word-break: break-all; |
| 1427 | } | 1427 | } |
| 1428 | 1428 |
pages/mine/index.vue
| @@ -17,40 +17,43 @@ | @@ -17,40 +17,43 @@ | ||
| 17 | </view> | 17 | </view> |
| 18 | 18 | ||
| 19 | 19 | ||
| 20 | - <view class="mine-content"> | ||
| 21 | - <view class="card-title">个人信息</view> | ||
| 22 | - <up-cell-group> | ||
| 23 | - <up-cell title="姓名" :value="userInfo.nickname"></up-cell> | ||
| 24 | - <up-cell title="账号" :value="userInfo.username"></up-cell> | ||
| 25 | - <up-cell title="电话" :value="userInfo.mobile"></up-cell> | ||
| 26 | - <up-cell title="角色" :value="translateRoles(userStore.userInfo.roles)"></up-cell> | ||
| 27 | - <up-cell title="考勤" :isLink="true" url="/pages-sub/daily/attendanceRecord"></up-cell> | ||
| 28 | - </up-cell-group> | ||
| 29 | - </view> | ||
| 30 | - | 20 | + <!-- 个人信息卡 + 操作按钮:整体在剩余区域内垂直居中 --> |
| 21 | + <view class="mine-body"> | ||
| 22 | + <view class="mine-content"> | ||
| 23 | + <view class="card-title">个人信息</view> | ||
| 24 | + <up-cell-group> | ||
| 25 | + <up-cell title="姓名:" :value="userInfo.nickname"></up-cell> | ||
| 26 | + <up-cell title="账号:" :value="userInfo.username"></up-cell> | ||
| 27 | + <up-cell title="电话:" :value="userInfo.mobile"></up-cell> | ||
| 28 | + <up-cell title="角色:" :value="translateRoles(userStore.userInfo.roles)"></up-cell> | ||
| 29 | + <up-cell title="考勤" :isLink="true" url="/pages-sub/daily/attendanceRecord"></up-cell> | ||
| 30 | + </up-cell-group> | ||
| 31 | + </view> | ||
| 31 | 32 | ||
| 32 | - <up-button | ||
| 33 | - v-if="!userStore.isLogin" | ||
| 34 | - type="primary" | ||
| 35 | - size="mini" | ||
| 36 | - shape="circle" | ||
| 37 | - @click="handleLogin" | ||
| 38 | - class="login-btn" | ||
| 39 | - > | ||
| 40 | - 立即登录 | ||
| 41 | - </up-button> | ||
| 42 | 33 | ||
| 43 | - <!-- 退出登录按钮 (仅登录状态显示) --> | ||
| 44 | - <view v-if="userStore.isLogin" class="logout-btn-wrap"> | ||
| 45 | <up-button | 34 | <up-button |
| 35 | + v-if="!userStore.isLogin" | ||
| 46 | type="primary" | 36 | type="primary" |
| 47 | - size="large" | 37 | + size="mini" |
| 48 | shape="circle" | 38 | shape="circle" |
| 49 | - @click="confirmLogout" | 39 | + @click="handleLogin" |
| 50 | class="login-btn" | 40 | class="login-btn" |
| 51 | > | 41 | > |
| 52 | - 退出登录 | 42 | + 立即登录 |
| 53 | </up-button> | 43 | </up-button> |
| 44 | + | ||
| 45 | + <!-- 退出登录按钮 (仅登录状态显示) --> | ||
| 46 | + <view v-if="userStore.isLogin" class="logout-btn-wrap"> | ||
| 47 | + <up-button | ||
| 48 | + type="primary" | ||
| 49 | + size="large" | ||
| 50 | + shape="circle" | ||
| 51 | + @click="confirmLogout" | ||
| 52 | + class="login-btn" | ||
| 53 | + > | ||
| 54 | + 退出登录 | ||
| 55 | + </up-button> | ||
| 56 | + </view> | ||
| 54 | </view> | 57 | </view> |
| 55 | </view> | 58 | </view> |
| 56 | </template> | 59 | </template> |
| @@ -119,15 +122,28 @@ export default { | @@ -119,15 +122,28 @@ export default { | ||
| 119 | padding-bottom: 48rpx; | 122 | padding-bottom: 48rpx; |
| 120 | box-sizing: border-box; | 123 | box-sizing: border-box; |
| 121 | background-color: #F4F6FA; | 124 | background-color: #F4F6FA; |
| 125 | + /* 竖向 flex:头部固定高度,卡片+按钮组在剩余区域居中 */ | ||
| 126 | + display: flex; | ||
| 127 | + flex-direction: column; | ||
| 128 | +} | ||
| 129 | + | ||
| 130 | +/* 卡片 + 退出登录按钮:作为一组在头部以下的剩余空间里垂直居中 */ | ||
| 131 | +.mine-body { | ||
| 132 | + flex: 1; | ||
| 133 | + display: flex; | ||
| 134 | + flex-direction: column; | ||
| 135 | + justify-content: center; | ||
| 122 | } | 136 | } |
| 123 | 137 | ||
| 124 | /* 顶部信息栏:品牌渐变(设计稿 --grad-head) */ | 138 | /* 顶部信息栏:品牌渐变(设计稿 --grad-head) */ |
| 125 | .header-bg { | 139 | .header-bg { |
| 126 | position: relative; | 140 | position: relative; |
| 141 | + flex-shrink: 0; | ||
| 127 | width: 100%; | 142 | width: 100%; |
| 128 | display: flex; | 143 | display: flex; |
| 129 | align-items: center; | 144 | align-items: center; |
| 130 | - padding: 48rpx 32rpx 120rpx; | 145 | + /* 卡片不再上压,底部留白按原视觉高度(120 - 80 重叠)收成 40rpx */ |
| 146 | + padding: 48rpx 32rpx 40rpx; | ||
| 131 | box-sizing: border-box; | 147 | box-sizing: border-box; |
| 132 | background: linear-gradient(135deg, #1D4ED8 0%, #2563EB 60%, #3B82F6 100%); | 148 | background: linear-gradient(135deg, #1D4ED8 0%, #2563EB 60%, #3B82F6 100%); |
| 133 | } | 149 | } |
| @@ -139,11 +155,11 @@ export default { | @@ -139,11 +155,11 @@ export default { | ||
| 139 | overflow: hidden; | 155 | overflow: hidden; |
| 140 | } | 156 | } |
| 141 | 157 | ||
| 142 | -/* 个人信息卡片:白底 16rpx 圆角 + 浅投影,向上压住渐变头图 */ | 158 | +/* 个人信息卡片:白底 16rpx 圆角 + 浅投影(不再上压头图,随卡片组一起居中) */ |
| 143 | .mine-content { | 159 | .mine-content { |
| 144 | position: relative; | 160 | position: relative; |
| 145 | z-index: 1; | 161 | z-index: 1; |
| 146 | - margin: -80rpx 24rpx 0; | 162 | + margin: 0 24rpx; |
| 147 | padding: 8rpx 24rpx 16rpx; | 163 | padding: 8rpx 24rpx 16rpx; |
| 148 | background-color: #ffffff; | 164 | background-color: #ffffff; |
| 149 | border-radius: 16rpx; | 165 | border-radius: 16rpx; |
| @@ -174,7 +190,7 @@ export default { | @@ -174,7 +190,7 @@ export default { | ||
| 174 | } | 190 | } |
| 175 | .mine-content :deep(.u-cell__value) { | 191 | .mine-content :deep(.u-cell__value) { |
| 176 | font-size: 26rpx !important; | 192 | font-size: 26rpx !important; |
| 177 | - color: #4B5563 !important; | 193 | + color: #1F2937 !important; |
| 178 | } | 194 | } |
| 179 | .mine-content :deep(.u-line) { | 195 | .mine-content :deep(.u-line) { |
| 180 | background-color: #EEF1F6 !important; | 196 | background-color: #EEF1F6 !important; |