1
0

13 Commity 98211b0359 ... 52e2c18dff

Autor SHA1 Správa Dátum
  wenjie 52e2c18dff ``` 2 týždňov pred
  wenjie ffc3bbdce0 Merge remote-tracking branch 'origin/master' into wj 2 týždňov pred
  zouzexu aed1edf0bf Merge branch 'zzx' 2 týždňov pred
  zouzexu f04361c63d ``` 2 týždňov pred
  zouzexu e02d4b1f1f Merge branch 'zzx' 2 týždňov pred
  zouzexu a9d0b13a4c ``` 2 týždňov pred
  zouzexu 2a38c531e9 Merge branch 'zzx' 2 týždňov pred
  zouzexu bf5c0e624c ``` 2 týždňov pred
  zouzexu 8864579f45 ``` 2 týždňov pred
  zhangtao 375ffbe451 fix: 修复 manifest.json 文件末尾缺少换行符 2 týždňov pred
  zouzexu 1a48b52fe2 feat: 删除不再使用的页面配置和组件声明 2 týždňov pred
  zouzexu 53490039fc Merge branch 'master' into zzx 2 týždňov pred
  zouzexu 4dacdf1da3 ``` 2 týždňov pred

+ 1 - 1
package.json

@@ -80,6 +80,7 @@
     "@dcloudio/uni-mp-weixin": "3.0.0-4060620250520001",
     "@dcloudio/uni-mp-xhs": "3.0.0-4060620250520001",
     "@dcloudio/uni-quickapp-webview": "3.0.0-4060620250520001",
+    "@uni-helper/vite-plugin-uni-layouts": "0.1.10",
     "@vueuse/core": "^11.0.3",
     "alova": "^3.3.4",
     "echarts": "^6.0.0",
@@ -108,7 +109,6 @@
     "@uni-helper/uni-types": "^1.0.0-alpha.6",
     "@uni-helper/unocss-preset-uni": "^0.2.11",
     "@uni-helper/vite-plugin-uni-components": "^0.2.0",
-    "@uni-helper/vite-plugin-uni-layouts": "^0.1.11",
     "@uni-helper/vite-plugin-uni-manifest": "^0.2.8",
     "@uni-helper/volar-service-uni-pages": "^0.3.11",
     "@uni-ku/bundle-optimizer": "1.3.15-beta.2",

+ 21 - 65
pnpm-lock.yaml

@@ -70,6 +70,9 @@ importers:
       '@dcloudio/uni-quickapp-webview':
         specifier: 3.0.0-4060620250520001
         version: 3.0.0-4060620250520001(@vueuse/core@11.0.3(vue@3.4.38(typescript@5.5.4)))(postcss@8.4.41)(rollup@4.21.1)(vue@3.4.38(typescript@5.5.4))
+      '@uni-helper/vite-plugin-uni-layouts':
+        specifier: 0.1.10
+        version: 0.1.10(rollup@4.21.1)
       '@vueuse/core':
         specifier: ^11.0.3
         version: 11.0.3(vue@3.4.38(typescript@5.5.4))
@@ -149,9 +152,6 @@ importers:
       '@uni-helper/vite-plugin-uni-components':
         specifier: ^0.2.0
         version: 0.2.0(rollup@4.21.1)
-      '@uni-helper/vite-plugin-uni-layouts':
-        specifier: ^0.1.11
-        version: 0.1.11(rollup@4.21.1)
       '@uni-helper/vite-plugin-uni-manifest':
         specifier: ^0.2.8
         version: 0.2.8(vite@5.2.8(@types/node@20.16.2)(sass@1.78.0)(terser@5.31.6))
@@ -453,11 +453,6 @@ packages:
     engines: {node: '>=6.0.0'}
     hasBin: true
 
-  '@babel/parser@7.28.0':
-    resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==}
-    engines: {node: '>=6.0.0'}
-    hasBin: true
-
   '@babel/parser@7.28.4':
     resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==}
     engines: {node: '>=6.0.0'}
@@ -2508,8 +2503,8 @@ packages:
   '@uni-helper/vite-plugin-uni-components@0.2.0':
     resolution: {integrity: sha512-h/rV8Z3N+wus/ZviYzkdRePNSUlkndn5H+wVC17ZXmG+2mqmUfLJdGskzrCbgE7Y1TT7u8E9yMz8Ah/RwMf0GQ==}
 
-  '@uni-helper/vite-plugin-uni-layouts@0.1.11':
-    resolution: {integrity: sha512-FXdFATBFsHAl7xY9q3KO0EexMRGua/7txIiQTm2rQi1/bXcft4CUXldtuHl9Upq0V6CT47aanmfzcOF5CpHK7Q==}
+  '@uni-helper/vite-plugin-uni-layouts@0.1.10':
+    resolution: {integrity: sha512-RJdGmJjZtpKNVfShiKYZrualMxdi+i8uh7zpPG+X3lzf6wyKSJgWwVAj3GUdqeE/QUEncNPmj2sqwuyeLXPxbA==}
 
   '@uni-helper/vite-plugin-uni-manifest@0.2.8':
     resolution: {integrity: sha512-6QtUcCTkvpR5GAPUxyKlEtm+KYxOk1RSVfdrxlWYW2q7Iws0D7UeNirA4GMuc/SaayEjURlU7cUrS7NceoPCfQ==}
@@ -3201,8 +3196,8 @@ packages:
     resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
     engines: {node: '>= 0.8'}
 
-  c12@1.11.1:
-    resolution: {integrity: sha512-KDU0TvSvVdaYcQKQ6iPHATGz/7p/KiVjPg4vQrB6Jg/wX9R0yl5RZxWm9IoZqaIHD2+6PZd81+KMGwRr/lRIUg==}
+  c12@1.11.2:
+    resolution: {integrity: sha512-oBs8a4uvSDO9dm8b7OCFW7+dgtVrwmwnrVXYzLm43ta7ep2jCn/0MhoUFygIWtxhyy6+/MG7/agvpY0U1Iemew==}
     peerDependencies:
       magicast: ^0.3.4
     peerDependenciesMeta:
@@ -3787,10 +3782,6 @@ packages:
     resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
     engines: {node: '>=8'}
 
-  dotenv@16.4.5:
-    resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==}
-    engines: {node: '>=12'}
-
   dotenv@16.6.1:
     resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==}
     engines: {node: '>=12'}
@@ -4421,10 +4412,6 @@ packages:
   get-tsconfig@4.7.6:
     resolution: {integrity: sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==}
 
-  giget@1.2.3:
-    resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==}
-    hasBin: true
-
   giget@1.2.5:
     resolution: {integrity: sha512-r1ekGw/Bgpi3HLV3h1MRBIlSAdHoIMklpaQ3OQLFcRw9PwAj2rqigvIbg+dBUI51OxVI2jsEtDywDBjSiuf7Ug==}
     hasBin: true
@@ -5557,11 +5544,6 @@ packages:
   nwsapi@2.2.22:
     resolution: {integrity: sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==}
 
-  nypm@0.3.11:
-    resolution: {integrity: sha512-E5GqaAYSnbb6n1qZyik2wjPDZON43FqOJO59+3OkWrnmQtjggrMOVnsyzfjxp/tS6nlYJBA4zRA5jSM2YaadMg==}
-    engines: {node: ^14.16.0 || >=16.10.0}
-    hasBin: true
-
   nypm@0.5.4:
     resolution: {integrity: sha512-X0SNNrZiGU8/e/zAB7sCTtdxWTMSIO73q+xuKgglm2Yvzwlo8UoC5FNySQFCvl84uPaeADkqHUZUkWy4aH4xOA==}
     engines: {node: ^14.16.0 || >=16.10.0}
@@ -5594,8 +5576,8 @@ packages:
   ofetch@1.3.4:
     resolution: {integrity: sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw==}
 
-  ohash@1.1.3:
-    resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==}
+  ohash@1.1.6:
+    resolution: {integrity: sha512-TBu7PtV8YkAZn0tSxobKY2n2aAQva936lhRrj6957aDaCf9IEtqsKbgMzXE/F/sjqYOwmrukeORHNLe5glk7Cg==}
 
   ohash@2.0.11:
     resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==}
@@ -7502,10 +7484,6 @@ snapshots:
     dependencies:
       '@babel/types': 7.27.1
 
-  '@babel/parser@7.28.0':
-    dependencies:
-      '@babel/types': 7.28.2
-
   '@babel/parser@7.28.4':
     dependencies:
       '@babel/types': 7.28.4
@@ -10418,18 +10396,18 @@ snapshots:
       - rollup
       - supports-color
 
-  '@uni-helper/vite-plugin-uni-layouts@0.1.11(rollup@4.21.1)':
+  '@uni-helper/vite-plugin-uni-layouts@0.1.10(rollup@4.21.1)':
     dependencies:
-      '@babel/types': 7.28.2
+      '@babel/types': 7.28.4
       '@uni-helper/uni-env': 0.1.7
-      '@vue/compiler-core': 3.4.21
-      '@vue/compiler-sfc': 3.4.21
+      '@vue/compiler-core': 3.4.38
+      '@vue/compiler-sfc': 3.4.38
       ast-kit: 0.11.3(rollup@4.21.1)
-      c12: 1.11.1
+      c12: 1.11.2
       chokidar: 3.6.0
       fast-glob: 3.3.3
       jsonc-parser: 3.3.1
-      magic-string: 0.30.17
+      magic-string: 0.30.21
       scule: 1.3.0
     transitivePeerDependencies:
       - magicast
@@ -11085,7 +11063,7 @@ snapshots:
 
   ast-kit@0.11.3(rollup@4.21.1):
     dependencies:
-      '@babel/parser': 7.28.0
+      '@babel/parser': 7.28.4
       '@rollup/pluginutils': 5.1.0(rollup@4.21.1)
       pathe: 1.1.2
     transitivePeerDependencies:
@@ -11293,16 +11271,16 @@ snapshots:
 
   bytes@3.1.2: {}
 
-  c12@1.11.1:
+  c12@1.11.2:
     dependencies:
       chokidar: 3.6.0
       confbox: 0.1.8
       defu: 6.1.4
-      dotenv: 16.4.5
-      giget: 1.2.3
+      dotenv: 16.6.1
+      giget: 1.2.5
       jiti: 1.21.7
       mlly: 1.7.4
-      ohash: 1.1.3
+      ohash: 1.1.6
       pathe: 1.1.2
       perfect-debounce: 1.0.0
       pkg-types: 1.3.1
@@ -11874,8 +11852,6 @@ snapshots:
     dependencies:
       is-obj: 2.0.0
 
-  dotenv@16.4.5: {}
-
   dotenv@16.6.1: {}
 
   dotgitignore@2.1.0:
@@ -12701,17 +12677,6 @@ snapshots:
     dependencies:
       resolve-pkg-maps: 1.0.0
 
-  giget@1.2.3:
-    dependencies:
-      citty: 0.1.6
-      consola: 3.2.3
-      defu: 6.1.4
-      node-fetch-native: 1.6.4
-      nypm: 0.3.11
-      ohash: 1.1.3
-      pathe: 1.1.2
-      tar: 6.2.1
-
   giget@1.2.5:
     dependencies:
       citty: 0.1.6
@@ -14015,15 +13980,6 @@ snapshots:
 
   nwsapi@2.2.22: {}
 
-  nypm@0.3.11:
-    dependencies:
-      citty: 0.1.6
-      consola: 3.2.3
-      execa: 8.0.1
-      pathe: 1.1.2
-      pkg-types: 1.3.1
-      ufo: 1.6.1
-
   nypm@0.5.4:
     dependencies:
       citty: 0.1.6
@@ -14074,7 +14030,7 @@ snapshots:
       node-fetch-native: 1.6.4
       ufo: 1.5.4
 
-  ohash@1.1.3: {}
+  ohash@1.1.6: {}
 
   ohash@2.0.11: {}
 

+ 15 - 2
src/api/api.type.d.ts

@@ -1575,7 +1575,7 @@ namespace Api {
     star?: string
     releaseTime?: string
     comingTitle?: string
-    showSt?: string
+    showSt?: number
     category?: string
     director?: string
     originPrice?: string
@@ -2200,6 +2200,19 @@ namespace Api {
     /**
      * 实际充电度数(单位:0.001 kw/h)
      */
-    totalCharge?: number
+    totalPower?: number
+    /**
+     * 停止类型
+     */
+    stopMethod?: number
+    /**
+     * 终端编号
+     */
+    connectorId?: string
+    /**
+     * 充电电费
+     */
+    totalMoney?: number
+
   }
 }

+ 1 - 1
src/api/globals.d.ts

@@ -449,7 +449,7 @@ declare global {
         Config extends Alova2MethodConfig<listData<Api.xsbOrderList>> & {
           data: {
             businessType?: string;
-            orderStatus?: string;
+            orderStatus?: string|number;
             pageNum?: number;
             pageSize?: number;
             dvyType?: number | string;

+ 38 - 38
src/pages/cart/index.vue

@@ -23,11 +23,11 @@ const navList = ref([
   { title: '全部', id: 1 },
   { title: '星闪豹', id: 2 },
   { title: '电影演出', id: 3 },
-  { title: '视频权益', id: 4 },
-  { title: '大牌点餐', id: 5 },
+  // { title: '视频权益', id: 4 },
+  // { title: '大牌点餐', id: 5 },
   { title: '加油', id: 6 },
-  { title: '酒店民宿', id: 7 },
-  { title: '代驾', id: 8 },
+  // { title: '酒店民宿', id: 7 },
+  // { title: '代驾', id: 8 },
 ])
 
 watch(() => cartList.value, async () => {
@@ -49,53 +49,53 @@ async function handleSelectAddress() {
       safe-area-inset-top fixed
     >
       <template #left>
-        <view class="ml10rpx flex items-center" @click.stop="handleSelectAddress">
-          <view class="mr20rpx text-36rpx font-semibold">
+        <view class="ml-10rpx flex items-center" @click.stop="handleSelectAddress">
+          <view class="mr-20rpx text-36rpx font-semibold">
             购物车
           </view>
-          <image :src="`${StaticUrl}/location-green.png`" class="h33.8rpx w29rpx" />
-          <view class="ml10rpx max-w-280rpx truncate text-32rpx text-#222 font-semibold">
+          <image :src="`${StaticUrl}/location-green.png`" class="h-33.8rpx w-29rpx" />
+          <view class="ml-10rpx max-w-280rpx truncate text-32rpx text-[#222] font-semibold">
             {{ smqjhSelectedAddress?.city || '请选择地址' }}
           </view>
         </view>
       </template>
     </wd-navbar>
-    <view class="xsb-linear h406rpx" />
+    <view class="xsb-linear h-406rpx" />
     <view class="-mt220rpx">
-      <view class="flex items-center justify-between pb16rpx">
-        <view class="w85%">
+      <view class="flex items-center justify-between pb-16rpx">
+        <view class="w-[85%]">
           <wd-tabs v-model="tab">
             <block v-for="tabs in navList" :key="tabs.id">
               <wd-tab :title="tabs.title" />
             </block>
           </wd-tabs>
         </view>
-        <view class="guanli h80rpx w104rpx flex flex-shrink-0 items-center justify-center text-28rpx font-semibold">
+        <view class="guanli h-80rpx w-104rpx flex flex-shrink-0 items-center justify-center text-28rpx font-semibold">
           管理
         </view>
       </view>
-      <scroll-view scroll-y class="content box-border px24rpx">
-        <view v-for="shop in cartList" :key="shop.shopId" class="mb24rpx rounded-16rpx bg-white px24rpx pb18rpx pt28rpx">
+      <scroll-view scroll-y class="content box-border px-24rpx">
+        <view v-for="shop in cartList" :key="shop.shopId" class="mb-24rpx rounded-16rpx bg-white px-24rpx pb-18rpx pt-28rpx">
           <wd-checkbox v-model="shop.AllShopGoods" size="large" @change="cartStore.cartStoreAllChecked($event, shop)">
             <view class="text-28rpx font-semibold">
               {{ shop.shopName }}
             </view>
           </wd-checkbox>
-          <view class="mt20rpx h2rpx w-full bg-#F0F0F0" />
+          <view class="mt-20rpx h-2rpx w-full bg-[#F0F0F0]" />
           <wd-checkbox-group v-model="shop.allGoods" size="large" @change="cartStore.cartGoodsChecked($event, shop)">
             <view
-              v-for="item in shop.skuList" :key="item.id" class="relative mt20rpx flex items-center"
+              v-for="item in shop.skuList" :key="item.id" class="relative mt-20rpx flex items-center"
             >
-              <view class="mr20rpx h32rpx w32rpx">
+              <view class="mr-20rpx h-32rpx w-32rpx">
                 <wd-checkbox :model-value="item.id" />
               </view>
               <view class="flex flex-1">
                 <image
                   :src="item.pic"
-                  class="h206rpx w200rpx flex-shrink-0"
+                  class="h-206rpx w-200rpx flex-shrink-0"
                   @click.stop="router.push({ name: 'xsb-goods', params: { id: String(item.prodId) } })"
                 />
-                <view class="ml20rpx flex-1">
+                <view class="ml-20rpx flex-1">
                   <view class="text-left text-28rpx font-semibold">
                     <!-- <view v-for="i in 2" :key="i" class="mr5px inline-block">
                         <wd-tag type="danger">
@@ -104,26 +104,26 @@ async function handleSelectAddress() {
                       </view> -->
                     {{ item.skuName }}
                   </view>
-                  <view class="mt14rpx text-24rpx text-#AAAAAA">
+                  <view class="mt-14rpx text-24rpx text-[#AAAAAA]">
                     规格:{{ item.spec }}
                   </view>
-                  <view class="mt14rpx flex items-center justify-between">
-                    <view class="text-36rpx text-#FF4A39 font-semibold">
+                  <view class="mt-14rpx flex items-center justify-between">
+                    <view class="text-36rpx text-[#FF4A39] font-semibold">
                       ¥{{ item.price }}
                     </view>
                     <!-- <wd-input-number v-model="item.num" disable-input @change="handleChangeNum($event, item)" /> -->
                     <view class="flex items-center">
                       <image
                         :src="` ${StaticUrl}/sub-cart.png`"
-                        class="h44rpx w44rpx"
+                        class="h-44rpx w-44rpx"
                         @click.stop="cartStore.cartSubGoods(item)"
                       />
-                      <view class="box-border h44rpx w84rpx flex items-center justify-center border border-#F0F0F0 border-solid text-24rpx text-#AAAAAA">
+                      <view class="box-border h-44rpx w-84rpx flex items-center justify-center border border-[#F0F0F0] border-solid text-24rpx text-[#AAAAAA]">
                         {{ item.num }}
                       </view>
                       <image
                         :src="` ${StaticUrl}/add-cart.png`"
-                        class="h44rpx w44rpx"
+                        class="h-44rpx w-44rpx"
                         @click.stop="cartStore.cartAddGoods(item)"
                       />
                     </view>
@@ -131,12 +131,12 @@ async function handleSelectAddress() {
                 </view>
               </view>
               <view v-if="item.shopSkuStocks == '0'" class="absolute left-0 top-0 z-1 h-full w-full flex items-center justify-center bg-[rgba(255,255,255,.6)]">
-                <view class="rounded-16rpx bg-[rgba(0,0,0,.5)] p20rpx text-white">
+                <view class="rounded-16rpx bg-[rgba(0,0,0,.5)] p-20rpx text-white">
                   商品已售罄
                 </view>
               </view>
               <view v-if="item.isDelete == '1'" class="absolute left-0 top-0 z-1 h-full w-full flex items-center justify-center bg-[rgba(255,255,255,.6)]">
-                <view class="rounded-16rpx bg-[rgba(0,0,0,.5)] p20rpx text-white">
+                <view class="rounded-16rpx bg-[rgba(0,0,0,.5)] p-20rpx text-white">
                   商品已删除
                 </view>
               </view>
@@ -145,9 +145,9 @@ async function handleSelectAddress() {
         </view>
 
         <view v-if="!cartList.length" class="box-border w-full flex items-center justify-center">
-          <view class="mt220rpx flex flex-col items-center">
-            <image :src="`${StaticUrl}/cart.png`" class="h110rpx w110rpx" />
-            <view class="mb20rpx mt20rpx text-24rpx">
+          <view class="mt-220rpx flex flex-col items-center">
+            <image :src="`${StaticUrl}/cart.png`" class="h-110rpx w-110rpx" />
+            <view class="mb-20rpx mt-20rpx text-24rpx">
               你还没有添加商品哦~
             </view>
             <wd-button plain @click=" useTabbar().setTabbarItemActive('smqjh-home'), router.pushTab({ name: 'smqjh-home' })">
@@ -155,38 +155,38 @@ async function handleSelectAddress() {
             </wd-button>
           </view>
         </view>
-        <view class="h140rpx" />
+        <view class="h-140rpx" />
       </scroll-view>
     </view>
-    <view v-if="cartList.length" class="fixedShadow fixed bottom-60rpx left-0 z-99 box-border w-full flex items-center justify-between rounded-t-16rpx bg-white px24rpx pb60rpx pt10rpx">
+    <view v-if="cartList.length" class="fixedShadow fixed bottom-60rpx left-0 z-99 box-border w-full flex items-center justify-between rounded-t-16rpx bg-white px-24rpx pb-60rpx pt-10rpx">
       <view class="ios w-full flex items-center justify-between">
         <view class="flex items-center">
           <image
             :src="`${StaticUrl}/cart-lanzi.png`"
-            class="h100rpx w100rpx"
+            class="h-100rpx w-100rpx"
           />
-          <view class="ml16rpx flex items-center">
+          <view class="ml-16rpx flex items-center">
             <wd-checkbox v-model="isCartAllChecked" size="large" @change="cartStore.cartAllChecked">
               全选
             </wd-checkbox>
-            <view class="ml10rpx text-24rpx text-#FF4A39" @click="cartStore.cartDeleteGoods">
+            <view class="ml-10rpx text-24rpx text-[#FF4A39]" @click="cartStore.cartDeleteGoods">
               删除
             </view>
           </view>
         </view>
         <view class="flex items-center">
           <view class="flex items-center font-semibold">
-            <view class="text-22rpx text-#222">
+            <view class="text-22rpx text-[#222]">
               总计:
             </view>
-            <view class="flex items-baseline text-24rpx text-#FF4A39">
+            <view class="flex items-baseline text-24rpx text-[#FF4A39]">
               <text class="text-36rpx">
                 {{ totalProduct?.price || '0.00' }}
               </text>
             </view>
           </view>
-          <view class="ml20rpx w160rpx">
+          <view class="ml-20rpx w-160rpx">
             <wd-button block size="large" @click="cartStore.cartOrderConfirm">
               结算
             </wd-button>

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

@@ -1,5 +1,5 @@
 <script setup lang="ts">
-import { chargeOrderStatus } from '../utils/index'
+import { chargeOrderStatus, secondToTime, stopType } from '../utils/index'
 import router from '@/router'
 import { StaticUrl } from '@/config'
 
@@ -52,7 +52,7 @@ async function getOrderDetail() {
           </view>
         </view>
         <view class="mt-20rpx text-28rpx text-#9ED605 font-bold">
-          {{ chargeOrderDetail?.totalCharge }}度电
+          {{ chargeOrderDetail?.totalPower }}度电
         </view>
       </view>
       <view class="mt-20rpx rounded-16rpx bg-#FFF p-24rpx">
@@ -77,7 +77,8 @@ async function getOrderDetail() {
             终止方式
           </view>
           <view class="mt-20rpx text-32rpx font-bold">
-            {{ '--' }}
+            <!-- 0:用户手动停止充电;1:客户归属地运营商平台停止充电;2:BMS停止充电;3:充电机设备故障;4:连接器断开;其它:自定义 -->
+            {{ stopType(chargeOrderDetail?.stopMethod) }}
           </view>
         </view>
       </view>
@@ -103,7 +104,7 @@ async function getOrderDetail() {
             订单时间
           </view>
           <view class="text-28rpx text-#AAA">
-            {{ chargeOrderDetail?.chargeTime }}
+            {{ secondToTime(Number(chargeOrderDetail?.chargeTime)) }}
           </view>
         </view>
         <view class="mt-28rpx flex items-center justify-between">
@@ -111,7 +112,7 @@ async function getOrderDetail() {
             充电电站
           </view>
           <view class="text-28rpx text-#AAA">
-            {{ chargeOrderDetail?.powerStationName }}
+            {{ chargeOrderDetail?.powerStationName || '--' }}
           </view>
         </view>
         <view class="mt-28rpx flex items-center justify-between">
@@ -119,7 +120,7 @@ async function getOrderDetail() {
             终端编号
           </view>
           <view class="text-28rpx text-#AAA">
-            {{ '--' }}
+            {{ chargeOrderDetail?.connectorId || '--' }}
           </view>
         </view>
         <view class="mt-28rpx flex items-center justify-between">
@@ -127,7 +128,7 @@ async function getOrderDetail() {
             电费
           </view>
           <view class="text-28rpx text-#AAA">
-            {{ '--' }}元
+            {{ chargeOrderDetail?.totalMoney }}元
           </view>
         </view>
         <view class="mt-28rpx flex items-center justify-between">

+ 2 - 1
src/subPack-charge/chargeOrderList/chargeOrderList.vue

@@ -19,7 +19,7 @@ const { data: orderList, refresh, isLastPage, page, reload } = usePagination((pa
   businessType: 'CD',
   pageNum,
   pageSize,
-  dvyType: unref(navActiveTab) === 0 ? '' : unref(navActiveTab),
+  orderStatus: unref(navActiveTab) === 0 ? '' : unref(navActiveTab),
 } }), {
   immediate: false,
   pageNum: 1,
@@ -125,6 +125,7 @@ function handleItemClick(item: Api.xsbOrderList) {
           </view>
         </view>
       </view>
+      <StatusTip v-if="!orderList.length" tip="暂无内容" />
     </view>
   </view>
 </template>

+ 36 - 0
src/subPack-charge/utils/index.ts

@@ -36,6 +36,42 @@ export function chargeOrderStatus(status: any) {
   return statusObj
 }
 
+/**
+ * 停止方式
+ * @param stopMethod
+ */
+export function stopType(stopMethod: any) {
+  // 0:用户手动停止充电;1:客户归属地运营商平台停止充电;2:BMS停止充电;3:充电机设备故障;4:连接器断开;其它:自定义
+  let stopText = ''
+  switch (stopMethod) {
+    case 0:
+      stopText = '用户手动停止充电'
+      break
+    case 1:
+      stopText = '客户归属地运营商平台停止充电'
+      break
+    case 2:
+      stopText = 'BMS停止充电'
+      break
+    case 3:
+      stopText = '充电机设备故障'
+      break
+    case 4:
+      stopText = '连接器断开'
+  }
+  return stopText
+}
+
+/**
+ * 秒转为时间格式
+ */
+export function secondToTime(second: number) {
+  const h = Math.floor(second / 3600)
+  const m = Math.floor((second - h * 3600) / 60)
+  const s = Math.floor(second - h * 3600 - m * 60)
+  return `${h < 10 ? `0${h}` : h}:${m < 10 ? `0${m}` : m}:${s < 10 ? `0${s}` : s}`
+}
+
 /**
  * 扫码工具类
  */

+ 3 - 1
src/subPack-film/choose-film/index.vue

@@ -93,6 +93,8 @@ function handleFilm(title: string = '保利万和学府影城', cinemaId: string
 
 async function getData() {
   uni.showLoading({ title: '加载中' })
+  console.log('qingind', query.value)
+
   const res = await Apis.film.getFilmList({ data: query.value })
   uni.hideLoading()
   if (res.data) {
@@ -306,7 +308,7 @@ onLoad((options) => {
             </view>
             <view
               v-for="(item, index) in cityList[currentCity].districts" :key="index" class="choose-item"
-              @click="choose(item.cityId, item.districtId)"
+              @click="choose(item.cityId, currentCity, item.districtId)"
             >
               <view class="name" :class="[query.districtId == item.districtId ? 'active' : '']">
                 {{ item.districtName }}

+ 2 - 2
src/subPack-film/choose-seat/components/pages/config.js

@@ -9,11 +9,11 @@ export default {
   topHeight: 40, // 画布距离视口顶部高度 用于计算坐标。
   hallHeight: 40, // 画布中荧幕高度
   footerHeight: 0, // 底部区域的高度
-  maxSelectNum: 0, // 最大可选座位数
+  maxSelectNum: 4, // 最大可选座位数
   seatMaxWidth: 35, // 座位的最大宽度
   seatMinWidth: 5, // 座位的最小宽度
   miniMapShowTime: 2000, // 停止操作后,过多久隐藏小图
-  isolateSeats: true, // 孤座检查是否开启
+  isolateSeats: false, // 孤座检查是否开启
   areaList: [], // 座位区域 格式见md文档
   SEAT_FIELDS: {
     ROW_ID: 'rowId', // 行ID字段名

+ 3 - 0
src/subPack-film/choose-seat/index.vue

@@ -369,6 +369,9 @@ onLoad(async (opt): Promise<void> => {
 })
 
 function handleTime(time: string, sessionId: string) {
+  if (time === active.value) {
+    return
+  }
   active.value = time
   router.push({ name: 'film-choose-seat', params: { sessionId, movieId: seatInfo.value.movieId as string, cinemaId: seatInfo.value.cinemaId } })
 }

+ 2 - 6
src/subPack-film/index/index.vue

@@ -23,10 +23,6 @@ function jump(active: any) {
   router.push({ name: 'film-movie', params: { active } })
 }
 
-function handleItem() {
-  console.log('dianji')
-}
-
 function handleBuy(item: Api.filmMovieList) {
   console.log('goumai')
   router.push({ name: 'film-movie-detail', params: { id: item.id as string, movieId: item.movieId as string } })
@@ -69,7 +65,7 @@ onMounted(() => {
       <view class="p-0r gap-y-10r grid grid-cols-4 w-full gap-x-20rpx">
         <view
           v-for="(item, index) in hotList" :key="index" class="item relative aspect-square w-152rpx"
-          @click="handleItem"
+          @click="handleBuy(item)"
         >
           <view class="tag absolute rounded-8rpx bg-[rgba(34,34,34,0.7)] px-10rpx text-18rpx text-[#fff] leading-26rpx">
             {{ item.version }}
@@ -98,7 +94,7 @@ onMounted(() => {
       <view class="gap-y-10r p-0r grid grid-cols-4 w-full gap-x-20rpx">
         <view
           v-for="(item, index) in comingSoonList" :key="index" class="item relative aspect-square w-152rpx"
-          @click="handleItem"
+          @click="handleBuy(item)"
         >
           <view class="tag absolute rounded-8rpx bg-[rgba(34,34,34,0.7)] px-10rpx text-18rpx text-[#fff] leading-26rpx">
             {{ item.version }}

+ 1 - 1
src/subPack-film/movie-detail/index.vue

@@ -122,7 +122,7 @@ onLoad((options) => {
       </scroll-view>
     </view> -->
 
-    <view class="btn-box">
+    <view v-if="info.showSt as number == 1 " class="btn-box">
       <button class="buy-btn" type="default" @click="buy">
         特惠购票
       </button>

+ 12 - 6
src/subPack-film/movie/index.vue

@@ -108,11 +108,11 @@ function addPageNum() {
 onLoad((options) => {
   console.log('onload', options)
 
-  active.value = options?.active || 0
+  active.value = Number(options?.active || 0)
   refreshData()
 })
 onReachBottom(() => {
-  console.log('onReachBottom')
+  console.log('onReachBottom', state.value)
   addPageNum()
 })
 
@@ -123,14 +123,14 @@ function handleItem(index: number) {
   loadData()
 }
 
-function handleFilm(title: string = '保利万和学府影城') {
-  console.log(title)
-
+function handleFilm(title: string, movieId: string, cinemaId: string) {
   router.push({
     name: 'film-select-time',
     params: {
       id: '2221',
       title,
+      movieId,
+      cinemaId,
     },
   })
 }
@@ -143,6 +143,12 @@ function handleBuy(item: Api.filmMovieList) {
 function handleWant() {
   useGlobalToast().show('敬请期待')
 }
+
+onMounted(() => {
+  if (!Location.value.latitude) {
+    useAddressStore().getLocation()
+  }
+})
 </script>
 
 <template>
@@ -219,7 +225,7 @@ function handleWant() {
 
     <!-- 影院 列表 -->
     <view v-else-if="active == 1" class="film-list">
-      <view v-for="(item, index) in filmList" :key="index" class="film-item" @click="handleFilm()">
+      <view v-for="(item, index) in filmList" :key="index" class="film-item" @click="handleFilm(item.name, '', item.cinemaId)">
         <view class="name-box">
           <view class="name w-450rpx overflow-hidden text-ellipsis whitespace-nowrap">
             {{ item.name }}

+ 1 - 1
src/subPack-film/order-detail/index.vue

@@ -75,7 +75,7 @@ onLoad((options) => {
   <view class="film-order-detail">
     <view class="status">
       <!-- 支付成功,待出票  -->
-      {{ handleCommonOrderStatusText(orderInfo) }}
+      {{ orderInfo.hbOrderStatus == 0 ? "待支付" : handleCommonOrderStatusText(orderInfo) }}
     </view>
     <view class="status-desc">
       如需改签、退款,请直接联系商家

+ 10 - 5
src/subPack-film/order/index.vue

@@ -1,7 +1,9 @@
 <script setup lang="ts">
 import Tabbar from '../components/tabbar.vue'
 import { OrderStatus, handleCommonCancelOrder, handleCommonOrderStatusText } from '../utils/order-data'
+import { getWxCommonPayment, handleCommonPayMent } from '../utils/confirm-order'
 // import { StaticUrl } from '@/config'
+import { timeFormat } from '../utils'
 import { createGlobalLoadingMiddleware } from '@/api/core/middleware'
 import router from '@/router'
 
@@ -101,7 +103,10 @@ onLoad(() => {
 
     <!-- 列表 -->
     <view class="order-list">
-      <view v-for="(item, index) in orderList" :key="index" class="order-item block" @click.self="handleOrder(item.orderNumber as string)">
+      <view
+        v-for="(item, index) in orderList" :key="index" class="order-item block"
+        @click.self="handleOrder(item.orderNumber as string)"
+      >
         <view class="top-box">
           <view class="title">
             {{ item.movieName }}
@@ -136,7 +141,7 @@ onLoad(() => {
               影院:{{ item.cinemaName }}
             </view>
             <view class="info-item">
-              场次:2025-12-23 21:00
+              场次:{{ timeFormat(item.session) }}
             </view>
             <view class="info-item">
               数量:{{ item.orderMovieItems?.length }}张
@@ -152,14 +157,14 @@ onLoad(() => {
             <view
               class="btn cancel"
               custom-style="width: 128rpx;height: 38rpx;font-size: 24rpx;color: #AAAAAA;box-sizing: border-box;"
-              @click="handleCancel(item)"
+              @click.stop="handleCancel(item)"
             >
               取消订单
             </view>
             <view
               class="btn"
               custom-style="width: 128rpx;height: 38rpx;font-size: 24rpx;color: #222222;box-sizing: border-box"
-              @click="handlePay(item.orderNumber as string)"
+              @click.stop="handlePay(item.orderNumber as string)"
             >
               付款
             </view>
@@ -167,7 +172,7 @@ onLoad(() => {
           <wd-button
             v-if="item.orderMovieItems[0].ticketCode"
             custom-style="width: 188rpx;height: 44rpx;font-size: 28rpx;box-sizing: border-box"
-            @click="handleCopy(item.orderMovieItems[0].ticketCode as string)"
+            @click.stop="handleCopy(item.orderMovieItems[0].ticketCode as string)"
           >
             复制取票码
           </wd-button>

+ 7 - 4
src/subPack-film/select-time/index.vue

@@ -55,7 +55,9 @@ const movieShows = computed(() => {
 function handleClick(index: number, movieId: string) {
   current.value = index
   query.value.movieId = movieId
-  getData()
+  getData().then(() => {
+    getDate(movieId)
+  })
   console.log(333333, current.value)
 }
 function changeTime(val: string) {
@@ -91,7 +93,7 @@ async function getData() {
 }
 
 async function getDate(movieId: string) {
-  const res = await Apis.film.getFilmDateList({ data: { movieId } })
+  const res = await Apis.film.getFilmDateList({ data: { movieId, cinemaId: query.value.cinemaId } })
   dayList.value = res.data
 }
 
@@ -101,8 +103,9 @@ onLoad((options) => {
   uni.setNavigationBarTitle({ title: options?.title })
   query.value.movieId = options?.movieId
   query.value.cinemaId = options?.cinemaId
-  getDate(options?.movieId)
-  getData()
+  getData().then(() => {
+    getDate(options?.movieId || filmInfo.value.movieShows?.[0].movieId)
+  })
 })
 </script>
 

+ 8 - 2
src/subPack-film/submit-order/index.vue

@@ -108,6 +108,7 @@ async function pay() {
   })
   const { data: orderNumber } = await Apis.film.addFilmOrder({ data: query.value })
   const res = await handleCommonPayMent(orderNumber)
+  loading.value = false
   if (res.payType !== 1) {
     await getWxCommonPayment(res)
     await paySuccess()
@@ -115,7 +116,6 @@ async function pay() {
   else {
     await paySuccess()
   }
-  loading.value = false
 }
 
 function call() {
@@ -125,7 +125,13 @@ function call() {
 }
 async function getPoints() {
   const res = await Apis.xsb.findUserPoints({})
-  info.value.points = res.data.availablePointsTotal as number
+  if (res.data) {
+    info.value.points = res.data.availablePointsTotal as number
+  }
+  else {
+    info.value.points = 0
+  }
+  console.log(11111111, info.value.points)
 }
 getPoints()
 

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

@@ -9,7 +9,7 @@ defineProps<{
 }>()
 
 function handleItemClick(item: Api.xsbOrderList) {
-  const orderNumber = item.chargeOrder?.orderNumber
+  const orderNumber = item.orderNumber
   if (orderNumber) {
     router.push({
       name: 'charge-order-detail',

+ 4 - 4
src/subPack-smqjh/components/film-orderList/film-orderList.vue

@@ -98,7 +98,7 @@ function handleOrder(orderNo: string) {
           影院:{{ item.cinemaName }}
         </view>
         <view class="info-item">
-          场次:2025-12-23 21:00
+          场次:{{ item.session.replace('T', ' ') }}
         </view>
         <view class="info-item">
           数量:{{ item.orderMovieItems?.length }}张
@@ -114,14 +114,14 @@ function handleOrder(orderNo: string) {
         <view
           class="btn cancel"
           custom-style="width: 128rpx;height: 38rpx;font-size: 24rpx;color: #AAAAAA;box-sizing: border-box;"
-          @click="handleCancel(item)"
+          @click.stop="handleCancel(item)"
         >
           取消订单
         </view>
         <view
           class="btn"
           custom-style="width: 128rpx;height: 38rpx;font-size: 24rpx;color: #222222;box-sizing: border-box"
-          @click="handlePay(item.orderNumber as string)"
+          @click.stop="handlePay(item.orderNumber as string)"
         >
           付款
         </view>
@@ -129,7 +129,7 @@ function handleOrder(orderNo: string) {
       <wd-button
         v-if="item.orderMovieItems[0].ticketCode"
         custom-style="width: 188rpx;height: 44rpx;font-size: 28rpx;box-sizing: border-box"
-        @click="handleCopy(item.orderMovieItems[0].ticketCode as string)"
+        @click.stop="handleCopy(item.orderMovieItems[0].ticketCode as string)"
       >
         复制取票码
       </wd-button>

+ 12 - 3
vite.config.ts

@@ -1,4 +1,5 @@
 import process from 'node:process'
+import path from 'node:path'
 import Uni from '@dcloudio/vite-plugin-uni'
 import UniHelperComponents from '@uni-helper/vite-plugin-uni-components'
 import { WotResolver } from '@uni-helper/vite-plugin-uni-components/resolvers'
@@ -23,8 +24,8 @@ export default async () => {
       UniHelperManifest(),
       // https://github.com/uni-helper/vite-plugin-uni-pages
       pagesJson({
-        dts: 'src/uni-pages.d.ts',
-        pageDir: 'pages',
+        dts: path.resolve(process.cwd(), 'src/uni-pages.d.ts'),
+        pagesDir: 'pages',
         subPackageDirs: [
           'subPack-xsb',
           'subPack-common',
@@ -37,7 +38,15 @@ export default async () => {
          * @default []
          */
         exclude: ['**/components/**/*.*'],
-        hooks: [hookUniPlatform],
+        hooks: [
+          hookUniPlatform,
+          // 简单调试 hook:在生成时打印上下文,帮助定位问题
+          (ctx) => {
+            console.log('[pages-json] pages type:', Object.prototype.toString.call(ctx.pages))
+            console.log('[pages-json] pages count:', Array.isArray(ctx.pages) ? ctx.pages.length : 'not array')
+            console.log('[pages-json] output dts:', path.resolve(process.cwd(), 'src/uni-pages.d.ts'))
+          },
+        ],
       }),
       // https://github.com/uni-helper/vite-plugin-uni-layouts
       UniHelperLayouts(),