Browse Source

feat(components): 添加 wd-input 组件类型声明

feat(Zpopup): 支持自定义背景色并默认设置为 #f6f6f6
- 新增 `bg` 属性用于控制 popup 背景色
- 默认背景色从硬编码改为通过 props 控制
- 增加 lock-scroll 属性防止滚动穿透

feat(pages): 新增 common 子包及多个通用页面
- 添加地址选择、积分、修改昵称、用户中心等页面
- 配置相关路由与导航栏标题
- 完善 uni-pages.d.ts 类型声明文件

feat(login): 优化登录逻辑和提示方式
- 禁止自动发送请求,改由事件触发
- 使用 useGlobalToast 替代旧 toast 实例

feat(my): 个人中心跳转至通用模块页面
- 用户中心与积分页面点击后跳转到公共子包对应页面

feat(goods): 优化商品详情页展示样式
- 动态控制 tab 栏透明度而非显示隐藏
- 调整内容区域负边距以适配布局
- 增加配送信息卡片及相关交互弹窗

feat(afterSales): 增加售后配送信息填写功能
- 提供取件时间选择器弹窗组件
- 显示配送费用及相关说明文案
- 更新订单状态下的操作流程

feat(styles): 微调部分 UI 样式细节
- 修改售后列表取消文案的背景颜色
- 调整 tabs 导航项宽度及对齐方式
- 更新商品详情页部分内容结构与间距

chore(vite): 注册 common 子包路径
- 在 vite.config.ts 中添加 src/subPack-common 子包扫描路径
zhangtao 6 ngày trước cách đây
mục cha
commit
9eb9f3deb4

+ 1 - 0
src/components.d.ts

@@ -22,6 +22,7 @@ declare module 'vue' {
     WdConfigProvider: typeof import('wot-design-uni/components/wd-config-provider/wd-config-provider.vue')['default']
     WdDivider: typeof import('wot-design-uni/components/wd-divider/wd-divider.vue')['default']
     WdIcon: typeof import('wot-design-uni/components/wd-icon/wd-icon.vue')['default']
+    WdInput: typeof import('wot-design-uni/components/wd-input/wd-input.vue')['default']
     WdInputNumber: typeof import('wot-design-uni/components/wd-input-number/wd-input-number.vue')['default']
     WdMessageBox: typeof import('wot-design-uni/components/wd-message-box/wd-message-box.vue')['default']
     WdNavbar: typeof import('wot-design-uni/components/wd-navbar/wd-navbar.vue')['default']

+ 8 - 3
src/components/Zpopup.vue

@@ -1,13 +1,18 @@
 <script setup lang="ts">
+withDefaults(defineProps<{
+  bg?: string
+}>(), {
+  bg: '#f6f6f6',
+})
 const show = defineModel({ default: false })
 </script>
 
 <template>
-  <wd-popup v-model="show" custom-style="border-radius:32rpx;32rpx 0rpx 0rpx" :z-index="999999" position="bottom">
-    <view class="bg-#F6F6F6">
+  <wd-popup v-model="show" lock-scroll custom-style="border-radius:32rpx;32rpx 0rpx 0rpx" :z-index="999999" position="bottom">
+    <view :style="{ background: bg }">
       <slot />
       <view class="h150rpx" />
-      <view class="footer ios fixed bottom-0 left-0 box-border w-full rounded-t-32rpx bg-white px24rpx pt20rpx">
+      <view class="ios footer fixed bottom-0 left-0 box-border w-full rounded-t-32rpx bg-white px24rpx pt20rpx">
         <slot name="footer" />
       </view>
     </view>

+ 37 - 0
src/pages.json

@@ -172,6 +172,43 @@
           }
         }
       ]
+    },
+    {
+      "root": "subPack-common",
+      "pages": [
+        {
+          "path": "address/index",
+          "type": "page",
+          "name": "common-address",
+          "style": {
+            "navigationBarTitleText": "选择收获地址"
+          }
+        },
+        {
+          "path": "integral/index",
+          "type": "page",
+          "name": "common-integral",
+          "style": {
+            "navigationBarTitleText": "积分"
+          }
+        },
+        {
+          "path": "nickName/index",
+          "type": "page",
+          "name": "common-nickName",
+          "style": {
+            "navigationBarTitleText": "修改昵称"
+          }
+        },
+        {
+          "path": "user-center/index",
+          "type": "page",
+          "name": "common-user-center",
+          "style": {
+            "navigationBarTitleText": "账户设置"
+          }
+        }
+      ]
     }
   ]
 }

+ 2 - 3
src/pages/login/index.vue

@@ -13,8 +13,7 @@ const { data, send } = useRequest((code, phoneCode) => Apis.sys.auth({ params: {
   grant_type: 'wechat',
   code,
   phoneCode,
-} }), { middleware: createGlobalLoadingMiddleware({ loadingText: '微信授权登录中' }) })
-const toast = useGlobalToast()
+} }), { middleware: createGlobalLoadingMiddleware({ loadingText: '微信授权登录中' }), immediate: false })
 async function handleGetPhone(e: UniHelper.ButtonOnGetphonenumberDetail) {
   console.log(e, '手机号')
   uni.showLoading({ mask: true })
@@ -24,7 +23,7 @@ async function handleGetPhone(e: UniHelper.ButtonOnGetphonenumberDetail) {
       uni.hideLoading()
       await send(res.code, e.code)
       token.value = data.value.data.access_token
-      toast.show({ msg: '登录成功' })
+      useGlobalToast().show({ msg: '登录成功' })
       setTimeout(() => {
         router.back()
       }, 2000)

+ 3 - 2
src/pages/my/index.vue

@@ -1,5 +1,6 @@
 <script setup lang="ts">
 import { StaticUrl } from '@/config'
+import router from '@/router'
 
 definePage({
   name: 'smqjh-my',
@@ -24,7 +25,7 @@ const tabList = ref([
       title="个人中心" custom-style="background-color: transparent !important;" :bordered="false"
       safe-area-inset-top fixed :z-index="99"
     />
-    <view class="header relative h-408rpx rounded-18px">
+    <view class="header relative h-408rpx rounded-18px" @click="router.push({ name: 'common-user-center' })">
       <view class="absolute bottom-100rpx left-0 box-border w-full flex items-center justify-between pl48rpx pr58rpx">
         <image :src="`${StaticUrl}/9.png`" alt="" class="h100rpx w100rpx" />
         <view class="text-32rpx font-semibold">
@@ -80,7 +81,7 @@ const tabList = ref([
     <view class="item-cell mt20rpx">
       <wd-card custom-class="card">
         <wd-cell-group custom-class="cell-group">
-          <wd-cell title="积分" custom-title-class="cell-title" clickable is-link>
+          <wd-cell title="积分" custom-title-class="cell-title" clickable is-link @click="router.push({ name: 'common-integral' })">
             <template #icon>
               <image :src="`${StaticUrl}/7.png`" class="h50rpx w50rpx" />
             </template>

+ 16 - 0
src/subPack-common/address/index.vue

@@ -0,0 +1,16 @@
+<script setup lang="ts">
+definePage({
+  name: 'common-address',
+  style: {
+    navigationBarTitleText: '选择收获地址',
+  },
+})
+</script>
+
+<template>
+  <div />
+</template>
+
+<style scoped>
+
+</style>

+ 73 - 0
src/subPack-common/integral/index.vue

@@ -0,0 +1,73 @@
+<script setup lang="ts">
+definePage({
+  name: 'common-integral',
+  style: {
+    navigationBarTitleText: '积分',
+    disableScroll: true,
+  },
+})
+</script>
+
+<template>
+  <view class="pages pty24rpx">
+    <view class="grid grid-cols-4 w-full bg-white py24rpx">
+      <view class="flex flex-col items-center justify-center">
+        <view class="text-28rpx text-#AAAAAA">
+          总充值积分
+        </view>
+        <view class="text-36rpx text-#222 font-semibold">
+          100
+        </view>
+      </view>
+      <view class="flex flex-col items-center justify-center">
+        <view class="text-28rpx text-#AAAAAA">
+          当前可用积分
+        </view>
+        <view class="text-36rpx text-#222 font-semibold">
+          100
+        </view>
+      </view>
+      <view class="flex flex-col items-center justify-center">
+        <view class="text-28rpx text-#AAAAAA">
+          已过期积分
+        </view>
+        <view class="text-36rpx text-#222 font-semibold">
+          100
+        </view>
+      </view>
+      <view class="flex flex-col items-center justify-center">
+        <view class="text-28rpx text-#AAAAAA">
+          已消耗积分
+        </view>
+        <view class="text-36rpx text-#222 font-semibold">
+          100
+        </view>
+      </view>
+    </view>
+    <view class="px24rpx py20rpx">
+      可用积分记录
+    </view>
+    <scroll-view scroll-y class="view">
+      <view v-for="item in 20" :key="item" class="bg-white p24rpx">
+        <view class="flex items-center justify-between text-32rpx font-semibold">
+          <view class="text-#222">
+            购物
+          </view>
+          <view class="text-#FF4A39">
+            -20
+          </view>
+        </view>
+        <view class="mt20rpx flex items-center justify-between text-28rpx text-#AAAAAA">
+          <view>12月17日 17:06</view>
+          <view>当前可用积分 100</view>
+        </view>
+      </view>
+    </scroll-view>
+  </view>
+</template>
+
+<style scoped>
+.view{
+  height: calc(100vh - var(--window-top) - 250rpx);
+}
+</style>

+ 30 - 0
src/subPack-common/nickName/index.vue

@@ -0,0 +1,30 @@
+<script setup lang="ts">
+definePage({
+  name: 'common-nickName',
+  style: {
+    navigationBarTitleText: '修改昵称',
+  },
+})
+const nickName = ref('')
+function handleSubmit() {
+  console.log(nickName.value, '昵称')
+}
+</script>
+
+<template>
+  <view class="box-border bg-white p24rpx" :style="{ height: `calc(100vh - var(--window-top))` }">
+    <view class="border-2rpx border-#F0F0F0 rounded-16rpx border-solid px24rpx py28rpx">
+      <wd-input v-model="nickName" placeholder="请输入昵称" clearable no-border type="nickname" />
+    </view>
+    <view class="mb28rpx mt20rpx text-28rpx text-#AAAAAA">
+      限2-10个汉字
+    </view>
+    <wd-button block size="large" @click="handleSubmit">
+      确定
+    </wd-button>
+  </view>
+</template>
+
+<style scoped>
+
+</style>

+ 45 - 0
src/subPack-common/user-center/index.vue

@@ -0,0 +1,45 @@
+<script setup lang="ts">
+import { StaticUrl } from '@/config'
+import router from '@/router'
+
+definePage({
+  name: 'common-user-center',
+  style: {
+    navigationBarTitleText: '账户设置',
+  },
+})
+function handleChooseAvatar(e: UniHelper.ButtonOnChooseavatarEvent) {
+  console.log(e.avatarUrl)
+}
+</script>
+
+<template>
+  <view class="pages p24rpx">
+    <view class="rounded-16rpx bg-white bg-white p24rpx">
+      <view class="flex items-center justify-between">
+        <view>头像</view>
+        <view class="h60rpx w60rpx">
+          <wd-button :icon="`${StaticUrl}/avator.png`" type="icon" open-type="chooseAvatar" @chooseavatar="handleChooseAvatar" />
+        </view>
+      </view>
+      <view class="mt26rpx flex items-center justify-between" @click="router.push({ name: 'common-nickName' })">
+        <view>昵称</view>
+        <view>赵四</view>
+      </view>
+    </view>
+  </view>
+</template>
+
+<style scoped lang="scss">
+.btn{
+  all: unset;
+}
+.pages{
+  :deep(){
+    .wd-icon--image{
+      width: 60rpx !important;
+      height: 60rpx !important;
+    }
+  }
+}
+</style>

+ 10 - 3
src/subPack-xsb/goods/index.vue

@@ -92,14 +92,14 @@ function handleGoCurren(id: number) {
         </view>
       </view>
     </view>
-    <view v-show="isShowTab" class="sticky left-0 z-99 box-border h84rpx w-full flex items-center justify-between bg-white px24rpx" :style="{ top: `${statusBarHeight + MenuButtonHeight}px` }">
+    <view class="sticky left-0 z-99 box-border h84rpx w-full flex items-center justify-between bg-white px24rpx" :style="{ top: `${statusBarHeight + MenuButtonHeight}px`, opacity: isShowTab ? 1 : 0 }" :class="[isShowTab ? '' : '']">
       <view v-for="item in goodsDetaileTabList" :key="item.id" class="relative flex items-center text-32rpx font-semibold" @click="handleGoCurren(item.id)">
         {{ item.title }}
         <view v-show="currentDetaile == item.id" class="line absolute left-50% h12rpx w40rpx rounded-8rpx bg-[var(--them-color)] -bottom-15rpx -translate-x-50%" />
       </view>
     </view>
     <view class="px24rpx">
-      <view class="mt24rpx">
+      <view class="-mt64rpx">
         <view class="text-left text-28rpx font-semibold">
           <view v-for="i in 2" :key="i" class="mr5px inline-block">
             <wd-tag type="primary">
@@ -120,6 +120,7 @@ function handleGoCurren(id: number) {
           一口化渣{{ item }}
         </view>
       </view>
+
       <view class="mt20rpx flex items-center justify-between rounded-16rpx bg-white p24rpx">
         <view class="flex items-center">
           <view class="flex-shrink-0">
@@ -175,6 +176,7 @@ function handleGoCurren(id: number) {
           </view>
         </view>
       </view>
+
       <view class="mt20rpx rounded-16rpx bg-white p24rpx">
         <wd-tabs v-model="goodsTab">
           <block v-for="item in goodsTabList" :key="item.id">
@@ -216,6 +218,7 @@ function handleGoCurren(id: number) {
         </view>
       </view>
     </view>
+
     <view class="view-2 mt20rpx bg-white">
       <view class="p24rpx text-32rpx font-semibold">
         商品详情
@@ -271,7 +274,7 @@ function handleGoCurren(id: number) {
         </view>
         <view class="flex items-center">
           <view class="w220rpx">
-            <wd-button plain hairline block>
+            <wd-button hairline plain block>
               加入购物车
             </wd-button>
           </view>
@@ -302,7 +305,11 @@ function handleGoCurren(id: number) {
 
 .page-xsb {
   :deep() {
+    .wd-tabs__nav-container .wd-tabs__nav-item:nth-child(2){
+      width: 220rpx !important ;
+    }
     .wd-tabs__nav-item {
+      flex:unset !important;
       .wd-tabs__nav-item-text {
         font-size: 32rpx !important;
       }

+ 1 - 1
src/subPack-xsb/my/afterSales/index.vue

@@ -36,7 +36,7 @@ function handleSelectReson() {
 </script>
 
 <template>
-  <view class="page-xsb">
+  <view class="page-xsb" :style="`overflow:${showReson ? 'hidden' : 'visible'};`">
     <view class="box-border w-full flex items-center bg-#f8e3ca px24rpx py12rpx">
       <wd-icon name="info-circle-filled" size="22px" color="#FF941A" />
       <view class="ml16rpx text-28rpx">

+ 155 - 29
src/subPack-xsb/my/afterSalesDetail/index.vue

@@ -9,10 +9,96 @@ definePage({
   },
 })
 const activeStep = ref(0)
+const showTime = ref(false)
+const TimeId = ref()
+const dayId = ref(1)
 </script>
 
 <template>
-  <view class="page-xsb pt20rpx">
+  <view class="page-xsb pt20rpx" :style="`overflow:${showTime ? 'hidden' : 'visible'};`">
+    <view class="mb24rpx">
+      <wd-card>
+        <view class="py24rpx">
+          <view class="text-32rpx text-#222 font-semibold">
+            待填写配送信息
+          </view>
+          <view class="mt20rpx text-24rpx text-#AAAAAA">
+            申请已通过,请在47时59分内,填写配送信息并支付配送费
+          </view>
+        </view>
+      </wd-card>
+    </view>
+    <view class="mb24rpx">
+      <wd-card>
+        <view class="py24rpx">
+          <view class="text-32rpx text-#222 font-semibold">
+            配送信息
+          </view>
+          <view class="mt24rpx flex items-center justify-between" @click="showTime = true">
+            <view class="text-28rpx">
+              <text class="text-#FF4D3A">
+                *
+              </text>
+              <text class="text-#222">
+                取件时间
+              </text>
+            </view>
+            <view class="flex items-center text-#AAAAAA">
+              请选择时间 <wd-icon name="chevron-right" size="22px" />
+            </view>
+          </view>
+          <view class="mt24rpx flex items-center justify-between">
+            <view class="text-28rpx">
+              <text class="text-#FF4D3A">
+                *
+              </text>
+              <text class="text-#222">
+                取件地址
+              </text>
+            </view>
+            <view class="flex items-center text-#222">
+              富力中心A座3401
+            </view>
+          </view>
+          <view class="mt24rpx flex items-center justify-between">
+            <view />
+            <view class="flex items-center text-#222">
+              杨先生 189****4678
+            </view>
+          </view>
+          <view class="mt24rpx flex items-center justify-between">
+            <view class="text-28rpx">
+              <text class="text-#FF4D3A">
+                *
+              </text>
+              <text class="text-#222">
+                退货方式
+              </text>
+            </view>
+            <view class="flex items-center text-#222">
+              上门取件
+            </view>
+          </view>
+          <view class="mt24rpx h2rpx w-full bg-#F0F0F0" />
+          <view class="mt28rpx text-28rpx text-#222 font-semibold">
+            请支付配送费 <text class="text-32rpx text-#FF4D3A">
+              ¥12
+            </text>
+          </view>
+          <view class="mt24rpx text-24rpx text-#AAAAAA">
+            <view> 1.因个人原因退货,需客户承担商品返还商家的运费</view>
+            <view class="mt20rpx">
+              2.请确保商品不影响二次销售,否则商家会拒绝收货
+            </view>
+          </view>
+          <view class="mt24rpx w-full">
+            <wd-button block>
+              立即支付
+            </wd-button>
+          </view>
+        </view>
+      </wd-card>
+    </view>
     <wd-card>
       <view class="py24rpx">
         <view class="text-32rpx text-#222 font-semibold">
@@ -113,29 +199,32 @@ const activeStep = ref(0)
           <view class="mt24rpx h2rpx w-full bg-#F0F0F0" />
         </template>
         <CollapsePanel :line-height="150">
-          <view v-for="item in 5" :key="item" class="mb20rpx w-full flex items-center">
-            <view class="mr20rpx w120rpx flex-shrink-0">
-              <image
-                :src="`${StaticUrl}/shu.png`"
-                class="h120rpx w120rpx"
-              />
-            </view>
-            <view class="flex-1">
-              <view class="w-full flex items-center justify-between font-semibold">
-                <view class="text-28rpx">
-                  赶海季生鲜大闸蟹
+          <view v-for="item in 5" :key="item" class="mb20rpx">
+            <view class="w-full flex items-center">
+              <view class="mr20rpx w120rpx flex-shrink-0">
+                <image
+                  :src="`${StaticUrl}/shu.png`"
+                  class="h120rpx w120rpx"
+                />
+              </view>
+              <view class="flex-1">
+                <view class="w-full flex items-center justify-between font-semibold">
+                  <view class="text-28rpx">
+                    赶海季生鲜大闸蟹
+                  </view>
+                  <view class="text-32rpx text-#FF4D3A">
+                    ¥103.95
+                  </view>
                 </view>
-                <view class="text-32rpx text-#FF4D3A">
-                  ¥103.95
+                <view class="text-24rpx text-#AAAAAA">
+                  规格:5kg,盒
+                </view>
+                <view class="text-24rpx text-#AAAAAA">
+                  单价:¥1.8
                 </view>
-              </view>
-              <view class="text-24rpx text-#AAAAAA">
-                规格:5kg,盒
-              </view>
-              <view class="text-24rpx text-#AAAAAA">
-                ×1
               </view>
             </view>
+            <view class="mt24rpx h2rpx w-full bg-#F0F0F0" />
           </view>
         </CollapsePanel>
 
@@ -170,15 +259,8 @@ const activeStep = ref(0)
             <view class="text-28rpx font-semibold">
               合计:
             </view>
-            <view class="flex items-center">
-              <view class="text-24rpx text-#AAAAAA">
-                总计54 共减14
-              </view>
-              <view class="ml8rpx text-28rpx text-#FF4D3A font-semibold">
-                <text class="text-#222">
-                  实付款
-                </text> ¥54.00
-              </view>
+            <view class="ml8rpx text-28rpx text-#FF4D3A font-semibold">
+              ¥54.00
             </view>
           </view>
         </template>
@@ -241,6 +323,50 @@ const activeStep = ref(0)
       </wd-card>
     </view>
     <view class="h30rpx" />
+    <Zpopup v-model="showTime" bg="#fff">
+      <view class="px24rpx py28rpx">
+        <view class="text-center text-32rpx font-semibold">
+          选择收件时间
+        </view>
+        <view class="mt24rpx flex items-center rounded-16rpx bg-#ffead1 px24rpx py12rpx text-28rpx">
+          <wd-icon name="info-circle-filled" size="22px" color="#FF941A" />
+          <view class="ml16rpx text-28rpx">
+            请您确保选择的时间,配送员能收到货。
+          </view>
+        </view>
+        <view class="flex">
+          <view class="w250rpx">
+            <scroll-view scroll-y class="mt24rpx h400rpx">
+              <view v-for="item in 10" :key="item" :class="[dayId == item ? 'text-[var(--them-color)]' : 'text-#222']" class="mb28rpx h60rpx flex items-center justify-center" @click="dayId = item">
+                11月29日(今天)
+              </view>
+              <view class="h20rpx" />
+            </scroll-view>
+          </view>
+
+          <view class="flex-1">
+            <scroll-view scroll-y class="mt24rpx box-border h400rpx pl50rpx">
+              <view v-for="item in 10" :key="item" class="mb28rpx box-border h60rpx w-full flex items-center" :class="[TimeId == item ? 'text-[var(--them-color)]' : 'text-#222']" @click="TimeId = item">
+                <view>12:00-14:00(8.7元配送费)</view>
+                <view class="ml20rpx h32rpx w32rpx">
+                  <image
+                    v-if="TimeId == item"
+                    :src="`${StaticUrl}/checked.png`"
+                    class="ml20rpx h32rpx w32rpx"
+                  />
+                </view>
+              </view>
+              <view class="h20rpx" />
+            </scroll-view>
+          </view>
+        </view>
+      </view>
+      <template #footer>
+        <wd-button block>
+          确定
+        </wd-button>
+      </template>
+    </Zpopup>
   </view>
 </template>
 

+ 1 - 1
src/subPack-xsb/my/afterSalesList/index.vue

@@ -45,7 +45,7 @@ definePage({
             </view>
           </view>
         </view>
-        <view class="mt24rpx rounded-16rpx bg-#F0F0F0 px24rpx py20rpx text-28rpx text-#222">
+        <view class="mt24rpx rounded-16rpx bg-#F9F9F9 px24rpx py20rpx text-28rpx text-#222">
           售后取消
           <text class="text-24rpx text-#AAAAAA">
             您已主动取消退款申请,如有需要可再次提交

+ 2 - 2
src/subPack-xsb/my/index.vue

@@ -25,7 +25,7 @@ const tabList = ref([
       title="个人中心" custom-style="background-color: transparent !important;" :bordered="false"
       safe-area-inset-top fixed :z-index="99"
     />
-    <view class="header relative h-408rpx rounded-18px">
+    <view class="header relative h-408rpx rounded-18px" @click="router.push({ name: 'common-user-center' })">
       <view class="absolute bottom-100rpx left-0 box-border w-full flex items-center justify-between pl48rpx pr58rpx">
         <image :src="`${StaticUrl}/9.png`" alt="" class="h100rpx w100rpx" />
         <view class="text-32rpx font-semibold">
@@ -81,7 +81,7 @@ const tabList = ref([
     <view class="item-cell mt20rpx">
       <wd-card custom-class="card">
         <wd-cell-group custom-class="cell-group">
-          <wd-cell title="积分" custom-title-class="cell-title" clickable is-link>
+          <wd-cell title="积分" custom-title-class="cell-title" clickable is-link @click="router.push({ name: 'common-integral' })">
             <template #icon>
               <image :src="`${StaticUrl}/7.png`" class="h50rpx w50rpx" />
             </template>

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

@@ -17,7 +17,11 @@ type _LocationUrl =
   "/subPack-xsb/my/afterSalesDetail/index" |
   "/subPack-xsb/my/afterSalesList/index" |
   "/subPack-xsb/my/order/index" |
-  "/subPack-xsb/my/orderDetaile/index";
+  "/subPack-xsb/my/orderDetaile/index" |
+  "/subPack-common/address/index" |
+  "/subPack-common/integral/index" |
+  "/subPack-common/nickName/index" |
+  "/subPack-common/user-center/index";
 
 interface NavigateToOptions {
   url: _LocationUrl;

+ 1 - 0
vite.config.ts

@@ -25,6 +25,7 @@ export default async () => {
         dts: 'src/uni-pages.d.ts',
         subPackages: [
           'src/subPack-xsb',
+          'src/subPack-common',
         ],
         /**
          * 排除的页面,相对于 dir 和 subPackages