Quellcode durchsuchen

```
fix(subPack-charge): 修正充电页面地图模式点击跳转方式

将 charge-search 组件的地图模式点击事件从 router.push 改为 router.replace,
避免页面历史栈中产生不必要的记录。

同时修复了 manifest.json 文件末尾多余的逗号问题。
```

zouzexu vor 1 Woche
Ursprung
Commit
41b869282e

+ 10 - 0
src/pages.json

@@ -350,6 +350,16 @@
             "navigationStyle": "custom"
           }
         },
+        {
+          "path": "chargeOrderList/chargeOrderList",
+          "type": "page",
+          "name": "charge-order-list",
+          "islogin": false,
+          "style": {
+            "navigationBarTitleText": "充电订单",
+            "navigationStyle": "custom"
+          }
+        },
         {
           "path": "chargeSearchList/chargeSearchList",
           "type": "page",

+ 2 - 0
src/store/address.ts

@@ -98,6 +98,8 @@ export const useAddressStore = defineStore('address', {
       uni.chooseLocation({
         success: (res) => {
           console.log(res, '收获地址')
+          this.Location.latitude = res.latitude
+          this.Location.longitude = res.longitude
           this.name = res.name
         },
         fail: (e) => {

+ 8 - 2
src/subPack-charge/chargeOrderDetail/chargeOrderDetail.vue

@@ -1,5 +1,6 @@
 <script setup lang="ts">
 import router from '@/router'
+import { StaticUrl } from '@/config'
 
 const { statusBarHeight, MenuButtonHeight } = storeToRefs(useSysStore())
 
@@ -22,8 +23,13 @@ definePage({
     <view :style="{ paddingTop: `${(Number(statusBarHeight) || 44) + MenuButtonHeight + 12}px` }" />
     <view class="box-border px24rpx">
       <view class="rounded-16rpx bg-#FFF p-24rpx">
-        <view class="flex items-center gap-20rpx">
-          <view>icon</view>
+        <view class="flex items-center gap-8rpx">
+          <view>
+            <image
+              class="h-40rpx w-40rpx"
+              :src="`${StaticUrl}/charge-order-number.png`"
+            />
+          </view>
           <view class="text-28rpx">
             充电度数
           </view>

+ 108 - 0
src/subPack-charge/chargeOrderList/chargeOrderList.vue

@@ -0,0 +1,108 @@
+<script setup lang="ts">
+import { navTabTypeList } from '../utils/order-data'
+import router from '@/router'
+import { createGlobalLoadingMiddleware } from '@/api/core/middleware'
+import { StaticUrl } from '@/config'
+
+const navActiveTab = ref(0)
+const { statusBarHeight, MenuButtonHeight } = storeToRefs(useSysStore())
+definePage({
+  name: 'charge-order-list',
+  islogin: false,
+  style: {
+    navigationBarTitleText: '充电订单',
+    navigationStyle: 'custom',
+  },
+})
+const { data: orderList, refresh, isLastPage, page, reload } = usePagination((pageNum, pageSize) => Apis.xsb.orderList({ data: {
+  businessType: 'CD',
+  pageNum,
+  pageSize,
+  dvyType: unref(navActiveTab) === 0 ? '' : unref(navActiveTab),
+} }), {
+  immediate: false,
+  pageNum: 1,
+  pageSize: 10,
+  initialData: [],
+  data: res => res.data?.list,
+  append: true,
+  middleware: createGlobalLoadingMiddleware(),
+})
+onShow(() => {
+  refresh()
+})
+onReachBottom(() => {
+  if (!isLastPage.value) {
+    page.value++
+  }
+})
+function handleChangeTypeNav(value: number) {
+  navActiveTab.value = value
+  orderList.value = []
+  reload()
+  console.log(navActiveTab.value, '===============')
+}
+</script>
+
+<template>
+  <view class="min-h-screen from-[#E2FF91] to-[rgba(158,214,5,0)] bg-gradient-to-b">
+    <wd-navbar
+      title="充电订单" custom-style="background: linear-gradient(90deg, #F1FECC 0%, #EAFEFA 100%);"
+      :bordered="false" :z-index="999" safe-area-inset-top left-arrow fixed @click-left="router.back()"
+    />
+    <view :style="{ paddingTop: `${(Number(statusBarHeight) || 44) + MenuButtonHeight + 12}px` }" />
+    <view class="nav sticky top-0 z10 px24rpx">
+      <view class="h80rpx flex items-center">
+        <view
+          v-for="item in navTabTypeList" :key="item.value" class="mr64rpx h-full flex flex-col items-center justify-center text-32rpx"
+          :class="[navActiveTab == item.value ? 'font-semibold ' : 'text-#AAAAAA']"
+          @click="handleChangeTypeNav(item.value)"
+        >
+          {{ item.name }}
+          <view
+            class="mt10rpx bg-[var(--them-color)] transition-all transition-duration-400 ease-in"
+            :class="[navActiveTab == item.value ? 'w40rpx h8rpx rounded-4rpx' : '']"
+          />
+        </view>
+      </view>
+    </view>
+    <view class="box-border px24rpx">
+      <view v-for="item in orderList" :key="item.orderNumber" class="mt-20rpx mt20rpx rounded-16rpx bg-#FFF p-24rpx" @click="router.push({ name: 'charge-order-detail' })">
+        <view class="flex items-center justify-between">
+          <view>
+            <view class="text-28rpx font-bold">
+              {{ item.shopName }}
+            </view>
+            <view class="mt-20rpx text-24rpx text-#AAA">
+              订单时间:{{ item.createTime || '未知' }}
+            </view>
+            <view class="mt-20rpx text-24rpx text-#AAA">
+              终端名称:{{ item.orderItemList?.[0]?.goodsName || '未知' }}
+            </view>
+          </view>
+          <view class="text-center text-28rpx text-#4EDC86">
+            <image
+              class="h-64rpx w-64rpx"
+              :src="`${StaticUrl}/charge-order-ing.png`"
+            />
+            <view>{{ '充电中' }}</view>
+          </view>
+        </view>
+        <view class="my-20rpx h-2rpx w-full bg-#F0F0F0" />
+        <view class="flex items-center justify-between">
+          <view class="text-28rpx">
+            充电费用:
+          </view>
+          <view class="text-32rpx text-#FF6464 font-800">
+            <text class="text-18rpx">
+              ¥
+            </text>
+            {{ item.actualTotal }}
+          </view>
+        </view>
+      </view>
+    </view>
+  </view>
+</template>
+
+<style lang="scss" scoped></style>

+ 2 - 2
src/subPack-charge/chargeSiteDetail/chargeSiteDetail.vue

@@ -19,7 +19,7 @@ definePage({
     navigationStyle: 'custom',
   },
 })
-const activeFilter = ref('0')
+const activeFilter = ref('1')
 onMounted(() => {
   getStationDetail()
   opcity.value = 0
@@ -53,8 +53,8 @@ const filterOptions = computed(() => {
   }
 
   return [
-    { key: '0', label: `离线(${counts['0']})` },
     { key: '1', label: `空闲(${counts['1']})` },
+    { key: '0', label: `离线(${counts['0']})` },
     { key: '2', label: `占用(${counts['2']})` },
   ]
 })

+ 3 - 3
src/subPack-charge/index/index.vue

@@ -91,7 +91,7 @@ function handleFilterClick(filterKey: number) {
       </template>
     </wd-navbar>
     <view :style="{ paddingTop: `${(Number(statusBarHeight) || 44) + MenuButtonHeight + 12}px` }" class="px24rpx">
-      <charge-search map-mode-text-value="地图模式" @map-mode-click="router.push({ name: 'charge-map' })" />
+      <charge-search map-mode-text-value="地图模式" @map-mode-click="router.replace({ name: 'charge-map' })" />
       <view class="userInfo-card">
         <view class="flex items-center gap-20rpx">
           <image
@@ -100,7 +100,7 @@ function handleFilterClick(filterKey: number) {
           />
           <view class="flex items-center gap-16rpx">
             <view class="text-32rpx text-#2B303A font-bold">
-              {{ userInfo?.nickName || '游客' }}
+              {{ userInfo?.nickName || '暂未登录' }}
             </view>
             <view v-if="!token" class="text-24rpx text-#9ED605" @click="router.replace({ name: 'smqjh-login' })">
               授权登录
@@ -131,7 +131,7 @@ function handleFilterClick(filterKey: number) {
               </view>
             </view>
           </view>
-          <view class="flex items-center gap-20rpx bg-#F3FFD1 p-24rpx" @click="router.push({ name: 'smqjh-order' })">
+          <view class="flex items-center gap-20rpx bg-#F3FFD1 p-24rpx" @click="router.push({ name: 'charge-order-list' })">
             <view>
               <view class="text-28rpx font-bold">
                 充电订单

+ 5 - 0
src/subPack-charge/utils/order-data.ts

@@ -0,0 +1,5 @@
+export const navTabTypeList = [
+  { name: '全部订单', value: 0 },
+  { name: '进行中', value: 1 },
+  { name: '已完成', value: 2 },
+]

+ 1 - 1
src/subPack-smqjh/components/charge-orderList/charge-orderList.vue

@@ -26,7 +26,7 @@ defineProps<{
           {{ subPackOrder?.handleCommonOrderStatusText(item) }}
         </view>
       </view>
-      <wd-divider />
+      <view class="my-20rpx h-2rpx w-full bg-#F0F0F0" />
       <view class="flex items-center justify-between">
         <view class="text-28rpx">
           充电费用:

+ 1 - 1
src/subPack-xsb/order/index.vue

@@ -33,7 +33,7 @@ const { data: orderList, refresh, isLastPage, page, reload } = usePagination((pa
 })
 function handleChangeTypeNav(value: number) {
   navActiveTab.value = value
-  console.log(navActiveTab.value, '===============')
+  console.log(navActiveTab.value)
   orderList.value = []
   reload()
 }

+ 1 - 0
src/uni-pages.d.ts

@@ -33,6 +33,7 @@ type _LocationUrl =
   "/subPack-charge/chargeing/chargeing" |
   "/subPack-charge/chargeMap/chargeMap" |
   "/subPack-charge/chargeOrderDetail/chargeOrderDetail" |
+  "/subPack-charge/chargeOrderList/chargeOrderList" |
   "/subPack-charge/chargeSearchList/chargeSearchList" |
   "/subPack-charge/chargeSiteDetail/chargeSiteDetail" |
   "/subPack-charge/chargeStart/chargeStart" |