Browse Source

merge code

kevin.T 2 months ago
parent
commit
15c612890c

+ 17 - 0
packages/app/src/core/libs/models.ts

@@ -1322,6 +1322,23 @@ export interface Badge {
   popUp: boolean
 }
 /**
+ * 典藏
+ * */
+export interface Collection {
+  id: number
+  userId: number
+  quantity: number
+  badgeId: number
+  badgeType: string
+  badgeName: string
+  badgeNotObtainedImage: string
+  badgeYesObtainedImage: string
+  badgeDescription: string
+  popUp: boolean
+  userSize: number | string
+  badgeSize: number | string
+}
+/**
  * 证书
  */
 export interface Certificate {

+ 10 - 5
packages/app/src/core/libs/requests.ts

@@ -24,6 +24,7 @@ import {
   ActivitySignUp,
   Product,
   ConfirmOrder,
+  Collection,
 } from './models'
 import dayjs from 'dayjs'
 import { AgreementType } from '@/core/libs/enums'
@@ -240,7 +241,7 @@ export const createCircleReview = (
   }>,
 ) => httpPost<any>('/app-api/member/circle-review/create', data)
 export const deleteCircleReview = (id) => httpGet('/app-api/member/circle-review/delete', { id })
-export const getCircleReviews = (query: { circleId: string ,hot:boolean}) =>
+export const getCircleReviews = (query: { circleId: string; hot: boolean }) =>
   httpGet<{
     list: Comment[]
   }>('/app-api/member/circle-review/getCircleReviewByCircleId', query)
@@ -633,13 +634,12 @@ export const updateMessage = (data: Partial<Message>) =>
 /**
  * 获取未读数量
  */
-export const readCount = () =>
-  httpGet('/app-api/member/message-manage/readCount')
+export const readCount = () => httpGet('/app-api/member/message-manage/readCount')
 /**
  * 批量修改为已读
  */
-export const updateReadByMessageType = (data:{messageType: number,messageSubType: number}) =>
-  httpPut('/app-api/member/message-manage/updateReadByMessageType',data)
+export const updateReadByMessageType = (data: { messageType: number; messageSubType: number }) =>
+  httpPut('/app-api/member/message-manage/updateReadByMessageType', data)
 /**
  * 积分订单取消
  */
@@ -932,6 +932,11 @@ export const updateHonorPopUp = (query: { bizId: string; bizType: string }) =>
 export const getBadges = (query = {}) =>
   httpGet<{ [key: string]: Badge[] }>('/app-api/member/stylist-honor/get-badge-list', query)
 /**
+ * 获取典藏徽章列表
+ * */
+export const getListCollectionBadge = (query = {}) =>
+  httpGet<Collection[]>('/app-api/member/stylist-honor/listCollectionBadge', query)
+/**
  * 获取个人徽章
  */
 export const getOwnBadges = (query = {}) =>

+ 72 - 59
packages/app/src/pages/messages/index.vue

@@ -1,10 +1,10 @@
 <route lang="json">
 {
-"layout": "tabbar",
-"style": {
-"navigationBarTitleText": "消息",
-"navigationBarBackgroundColor": "#fff"
-}
+  "layout": "tabbar",
+  "style": {
+    "navigationBarTitleText": "消息",
+    "navigationBarBackgroundColor": "#fff"
+  }
 }
 </route>
 
@@ -13,59 +13,73 @@ import PageHelper from '@/components/page-helper.vue'
 import {
   getMessages,
   orderPointsCancel,
-  orderPointsSubmit, readCount,
-  updateMessage, updateReadByMessageType,
+  orderPointsSubmit,
+  readCount,
+  updateMessage,
+  updateReadByMessageType,
 } from '../../core/libs/requests'
-import {MessageType} from '../../core/libs/enums'
-import {ComponentExposed} from 'vue-component-type-helpers'
-import {Coupon, Message} from '../../core/libs/models'
-import {requestToast} from '../../core/utils/common'
-import {useUserStore} from '../../store'
-import {storeToRefs} from 'pinia'
+import { MessageType } from '../../core/libs/enums'
+import { ComponentExposed } from 'vue-component-type-helpers'
+import { Coupon, Message } from '../../core/libs/models'
+import { requestToast } from '../../core/utils/common'
+import { useUserStore } from '../../store'
+import { storeToRefs } from 'pinia'
 import MessageCard from './components/message-card.vue'
-import {useMessage} from 'wot-design-uni'
+import { useMessage } from 'wot-design-uni'
 import CouponsSelector from '../common/components/coupons-selector.vue'
-import {handleClickInstruction} from '../../core/libs/actions'
+import { handleClickInstruction } from '../../core/libs/actions'
 import PageHelperEvo from '@/components/page-helper-evo.vue'
 
 const pageHelperRef = ref<ComponentExposed<typeof PageHelper>>()
 const userStore = useUserStore()
-const {userInfo} = storeToRefs(userStore)
+const { userInfo } = storeToRefs(userStore)
 const show = ref(false)
 const tab = ref(0)
 const tabs = ref([
-  {label: '积分消息', value: MessageType.Integral,badgeProps: {
+  {
+    label: '积分消息',
+    value: MessageType.Integral,
+    badgeProps: {
       isDot: true,
       right: '-8px',
-      hidden: false
-    }},
-  {label: '系统消息', value: MessageType.System,badgeProps: {
+      hidden: false,
+    },
+  },
+  {
+    label: '系统消息',
+    value: MessageType.System,
+    badgeProps: {
       isDot: true,
       right: '-8px',
-      hidden:false
-    }},
-  {label: '互动消息', value: MessageType.Interact,badgeProps: {
+      hidden: false,
+    },
+  },
+  {
+    label: '互动消息',
+    value: MessageType.Interact,
+    badgeProps: {
       isDot: true,
       right: '-8px',
-      hidden:false
-    }},
+      hidden: false,
+    },
+  },
 ])
 const selectedCoupons = ref<Coupon[]>([])
 const coupons = ref<Coupon[]>([])
 const cancelReason = ref('')
 const currentMessage = ref<Message>()
-const {alert, confirm} = useMessage()
-const {confirm: rejectConfirm} = useMessage('wd-message-box-slot')
+const { alert, confirm } = useMessage()
+const { confirm: rejectConfirm } = useMessage('wd-message-box-slot')
 
-const query = computed(() => ({messageType: tabs.value[tab.value]?.value}))
+const query = computed(() => ({ messageType: tabs.value[tab.value]?.value }))
 
 const handleCancel = async (message: Message) => {
   await rejectConfirm({
     title: '驳回',
-    beforeConfirm: async ({resolve}) => {
+    beforeConfirm: async ({ resolve }) => {
       if (!cancelReason.value) {
         resolve(false)
-        await uni.showToast({title: '请输入驳回原因', icon: 'none'})
+        await uni.showToast({ title: '请输入驳回原因', icon: 'none' })
         return
       }
       await requestToast(
@@ -74,23 +88,23 @@ const handleCancel = async (message: Message) => {
             id: message.businessId.toString(),
             cancelReason: cancelReason.value,
           }),
-        {success: true, successTitle: '积分确认已驳回'},
+        { success: true, successTitle: '积分确认已驳回' },
       )
       resolve(true)
     },
   })
   // await deleteMessage(message.id.toString())
-  await updateMessage({id: message.id, isRead: '1'})
+  await updateMessage({ id: message.id, isRead: '1' })
   await pageHelperRef.value?.refresh()
 }
-const handleChange  = async (value) =>{
-  let tab1 = tabs.value[value.index];
+const handleChange = async (value) => {
+  let tab1 = tabs.value[value.index]
   await getReadCount()
-  if (tab1.value == MessageType.Integral){
-    await updateReadByMessageType({messageType:MessageType.System,messageSubType:null})
+  if (tab1.value == MessageType.Integral) {
+    await updateReadByMessageType({ messageType: MessageType.System, messageSubType: null })
   }
-  if (tab1.value == MessageType.System){
-    await updateReadByMessageType({messageType:MessageType.System,messageSubType:4})
+  if (tab1.value == MessageType.System) {
+    await updateReadByMessageType({ messageType: MessageType.System, messageSubType: 4 })
   }
 }
 const handleSubmit = async (message: Message, coupons: Coupon[]) => {
@@ -123,27 +137,29 @@ const handleSubmit = async (message: Message, coupons: Coupon[]) => {
     },
   )
   // await deleteMessage(message.id.toString())
-  await updateMessage({id: message.id, isRead: '1'})
+  await updateMessage({ id: message.id, isRead: '1' })
   await pageHelperRef.value?.refresh()
   selectedCoupons.value = []
 }
 
 const getReadCount = async () => {
-   await readCount().then(x =>{
-     x.data.forEach(c =>{
-       const matchedTab = tabs.value.find(a => a.value === c.messageType);
-       if (matchedTab != undefined && c.quantity != 0){
-         console.log(matchedTab.value,"messageType")
-         tabs.value.forEach(b =>{
-           console.log(b.value,"111")
-           if (b.value == matchedTab.value){
-             b.badgeProps.hidden = true
-           }
-         })
-       }
-     })
-
- });
+  await readCount().then(({ data }) => {
+    //  x.data.forEach(c =>{
+    //    const matchedTab = tabs.value.find(a => a.value === c.messageType);
+    //    if (matchedTab != undefined && c.quantity != 0){
+    //      console.log(matchedTab.value,"messageType")
+    //      tabs.value.forEach(b =>{
+    //        console.log(b.value,"111")
+    //        if (b.value == matchedTab.value){
+    //          b.badgeProps.hidden = true
+    //        }
+    //      })
+    //    }
+    //  })
+    tabs.value = tabs.value.map((a, i) => {
+      return { ...a, badgeProps: { isDot: true, right: '-8px', hidden: data[i]?.quantity == 0 } }
+    })
+  })
 }
 const handleQ = async (msg, res) => {
   currentMessage.value = msg
@@ -156,8 +172,6 @@ onShow(async () => {
   await nextTick(() => {
     pageHelperRef.value?.reload()
   })
-
-
 })
 </script>
 
@@ -172,9 +186,8 @@ onShow(async () => {
     >
       <template #top>
         <wd-tabs v-model="tab" @change="handleChange">
-          <block v-for="({ label, badgeProps }, i) in tabs" :key="i" >
-              <wd-tab :title="`${label}`" class="relative" :badge-props="badgeProps">
-              </wd-tab>
+          <block v-for="({ label, badgeProps }, i) in tabs" :key="i">
+            <wd-tab :title="`${label}`" class="relative" :badge-props="badgeProps"></wd-tab>
           </block>
         </wd-tabs>
       </template>

+ 52 - 8
packages/app/src/pages/mine/honors/detail/index.vue

@@ -8,11 +8,10 @@
 </route>
 <script setup lang="ts">
 import NavbarEvo from '@/components/navbar-evo.vue'
-import Card from '@/components/card.vue'
-import SectionHeading from '@/components/section-heading.vue'
 import { getBadges, getCertificates } from '../../../../core/libs/requests'
 import { Badge } from '../../../../core/libs/models'
 import { NetImages } from '../../../../core/libs/net-images'
+import dayjs from 'dayjs'
 
 const active = ref('badge')
 const tabs = ref([
@@ -41,8 +40,28 @@ const data = ref<{
   // 已获取的图片和未获取的图片
   image: string
   activedImage: string
-}>()
+  badgeType?: string
+  badgeDescription?: string
+  createTime?: number | Date
+}>({
+  name: '',
+  quantity: 0,
+  image: '',
+  activedImage: '',
+})
 const image = computed(() => (data.value.quantity ? data.value.activedImage : data.value.image))
+const setBadgesPath = (type: string) => {
+  console.log('========================', type)
+  if (type === '活动徽章') {
+    uni.redirectTo({
+      url: `/pages/home/offline-activity/index`,
+    })
+  } else {
+    uni.switchTab({
+      url: `/pages/home/index`,
+    })
+  }
+}
 onLoad(async (query: { type: 'badge' | 'certificate'; data: string }) => {
   console.log(JSON.parse(query.data))
 
@@ -53,6 +72,9 @@ onLoad(async (query: { type: 'badge' | 'certificate'; data: string }) => {
       quantity: badge.quantity,
       image: badge.badgeNotObtainedImage,
       activedImage: badge.badgeYesObtainedImage,
+      badgeType: badge.badgeType,
+      badgeDescription: badge.badgeDescription,
+      createTime: badge.createTime,
     }
   }
 })
@@ -86,19 +108,41 @@ onLoad(async (query: { type: 'badge' | 'certificate'; data: string }) => {
       </div>
       <div class="text-center text-white text-sm font-normal font-['PingFang_SC'] uppercase">
         <!-- 参加东方艺术设计研学营 -->
-        {{ `参加${data.name}` }}
+        {{ `${data.badgeDescription}` }}
       </div>
       <div class="mt-6 flex items-center gap-4">
         <div class="w-4 h-0.25 bg-white"></div>
-        <div class="text-center text-white text-sm font-normal font-['PingFang_SC'] uppercase">
-          2024年10月2日获得
+        <div
+          class="text-center text-white text-sm font-normal font-['PingFang_SC'] uppercase"
+          v-if="data.quantity > 0"
+        >
+          {{ dayjs(data.createTime).format('YYYY年MM月DD日')
+          }}{{ data.quantity > 1 ? '首次' : '' }}获得
+        </div>
+        <div
+          class="text-center text-white text-sm font-normal font-['PingFang_SC'] uppercase"
+          v-else
+        >
+          暂无获得该徽章
         </div>
         <div class="w-4 h-0.25 bg-white"></div>
       </div>
-      <div class="text-center text-white text-sm font-normal font-['PingFang_SC'] uppercase">
+      <div
+        v-if="data.quantity > 1"
+        class="text-center text-white text-sm font-normal font-['PingFang_SC'] uppercase"
+      >
         累计参与{{ data.quantity }}次
       </div>
     </div>
-    <wd-button custom-class="w-[161px] h-12 bg-[#0cbe7c]! rounded-[30px]">去分享</wd-button>
+    <wd-button custom-class="w-[161px] h-12 bg-[#0cbe7c]! rounded-[30px]" v-if="data.quantity > 0">
+      去分享
+    </wd-button>
+    <wd-button
+      custom-class="w-[161px] h-12 bg-[#0cbe7c]! rounded-[30px]"
+      @click="setBadgesPath(data.badgeType)"
+      v-else
+    >
+      去获得
+    </wd-button>
   </div>
 </template>

+ 118 - 74
packages/app/src/pages/mine/honors/index.vue

@@ -10,7 +10,12 @@
 import NavbarEvo from '@/components/navbar-evo.vue'
 import Card from '@/components/card.vue'
 import SectionHeading from '@/components/section-heading.vue'
-import { getBadges, getCertificates, getHonorStatistics } from '../../../core/libs/requests'
+import {
+  getBadges,
+  getCertificates,
+  getHonorStatistics,
+  getListCollectionBadge,
+} from '../../../core/libs/requests'
 import { useRouter } from '../../../core/utils/router'
 import arcBottom from '@designer-hub/assets/src/libs/assets/arcBottom'
 import { NetImages } from '../../../core/libs/net-images'
@@ -26,6 +31,7 @@ const router = useRouter()
 const userStore = useUserStore()
 const { userInfo } = storeToRefs(userStore)
 const active = ref('badge')
+const autoplay = ref<boolean>(false)
 const tabs = ref([
   { label: '徽章', value: 'badge' },
   { label: '证书', value: 'certificate' },
@@ -36,29 +42,47 @@ const { data: statistics, run: setStatistics } = useRequest(() =>
 const { data: badges, run: setBadges } = useRequest(() => getBadges({ userId: id.value }), {
   initialData: {},
 })
+const { data: collectionBadges, run: setCollectionBadges } = useRequest(
+  () => getListCollectionBadge({ userId: id.value }),
+  { initialData: [] },
+)
 const { data: certificates, run: setCertificates } = useRequest(
   () => getCertificates({ userId: id.value }),
   {
     initialData: [],
   },
 )
+console.log('certificates:::::', certificates)
+const handleSwiperChange = (e: any) => {
+  console.log(e)
+}
+
+const handleGetCondition = (badge: any) => {
+  console.log(badge)
+}
+
+const handleGetBadge = (badge: any) => {
+  console.log(badge)
+}
 const currentCertificate = ref<Certificate | undefined>()
 const isOwner = computed(() => String(userInfo.value?.userId) === id.value)
 onLoad(async (query?: Record<string | 'active' | 'id' | 'isShared', string>) => {
-  if (query?.active) {
-    active.value = query.active
-  }
-  if (query?.id) {
-    id.value = query.id
-  }
-  if (query?.isShared) {
-    isShared.value = true
+  console.log('query:::::', query)
+  if (Object.keys(query).length !== 0) {
+    if (query?.active) {
+      active.value = query.active
+    }
+    if (query?.id) {
+      id.value = query.id
+    }
+    if (query?.isShared) {
+      isShared.value = true
+    }
   }
   await setStatistics()
   await setBadges()
   await setCertificates()
-  // currentCertificate.value = certificates.value[0]
-  // console.log(badges.value)
+  await setCollectionBadges()
 })
 </script>
 <template>
@@ -92,7 +116,9 @@ onLoad(async (query?: Record<string | 'active' | 'id' | 'isShared', string>) =>
                 {{ it.label }}
               </div>
               <div class="flex items-end gap-1">
-                <div class="text-center text-white text-2xl font-medium font-['D-DIN-PRO'] leading-6">
+                <div
+                  class="text-center text-white text-2xl font-medium font-['D-DIN-PRO'] leading-6"
+                >
                   {{ it.value }}
                 </div>
                 <div
@@ -126,69 +152,87 @@ onLoad(async (query?: Record<string | 'active' | 'id' | 'isShared', string>) =>
       </template>
     </div>
     <template v-if="active === 'badge'">
-      <!--      v-if="String(userInfo.userId) === id"-->
-      <Card custom-class="border border-solid bg-[#25221f]! border-[rgba(255,236,185,0.20)]">
-        <div class="grid grid-cols-[90px_1fr] gap-x-4">
-          <div class="grid-row-start-1 grid-row-end-4 col-start-1">
-            <wd-img
-              width="90"
-              height="90"
-              src="https://image.zhuchaohui.com/zhucaohui/1f8f9129cc24b2a9bc25d8a2821da64233994c38efea36a80f4b1aade0476bab.png"
-            ></wd-img>
-          </div>
-          <div class="row-start-1 col-start-2 flex items-center justify-between">
-            <div
-              class="text-center text-[#ffecb9] text-lg font-normal font-['PingFang_SC'] leading-relaxed"
-            >
-              学习大师
-            </div>
-            <div
-              class="h-[26px] px-2.5 rounded-[30px] border border-solid border-[#ffecb9] justify-center items-center gap-2.5 inline-flex"
-            >
-              <div
-                class="text-center text-[#ffecb9] text-xs font-normal font-['PingFang_SC'] leading-relaxed"
-              >
-                获取条件
-              </div>
-            </div>
-          </div>
-          <div class="row-start-2 col-start-2">
-            <div
-              class="text-start text-white/60 text-xs font-normal font-['PingFang_SC'] leading-relaxed"
-            >
-              参加游学解锁典藏徽章
-            </div>
-          </div>
-          <div class="row-start-3 col-start-2 flex items-center gap-4">
-            <div class="flex-1">
-              <ProgressEvo
-                :height="5"
-                :model-value="0.2 * 100"
-                color="linear-gradient(90deg, #FFDA72 0%, #FFECB9 100%)"
-              ></ProgressEvo>
-            </div>
-            <div>
-              <span class="text-white text-xs font-normal font-['PingFang_SC'] leading-none">
-                2
-              </span>
-              <span class="text-[#a1a1a1] text-xs font-normal font-['PingFang_SC'] leading-none">
-                /8
-              </span>
-            </div>
-          </div>
-          <div class="row-start-4 col-start-1 flex items-center justify-center">
-            <div
-              class="w-[59px] h-[21px] px-2.5 bg-[#524c3b] rounded-[30px] shadow shadow-inner justify-center items-center gap-0.5 inline-flex"
-            >
-              <div
-                class="text-center text-[#ffecb9] text-[10px] font-normal font-['PingFang_SC'] leading-relaxed"
-              >
-                获取榜
+      <view class="h-[145px]" v-if="String(userInfo.userId) === id">
+        <swiper :autoplay="autoplay" @change="handleSwiperChange">
+          <swiper-item v-for="item in collectionBadges" :key="item.id">
+            <Card custom-class="border border-solid bg-[#25221f]! border-[rgba(255,236,185,0.20)]">
+              <div class="grid grid-cols-[90px_1fr] gap-x-4">
+                <div class="grid-row-start-1 grid-row-end-4 col-start-1">
+                  <wd-img
+                    width="90"
+                    height="90"
+                    :src="
+                      item.userSize === item.badgeSize
+                        ? item.badgeYesObtainedImage
+                        : item.badgeNotObtainedImage
+                    "
+                  ></wd-img>
+                </div>
+                <div class="row-start-1 col-start-2 flex items-center justify-between">
+                  <div
+                    class="text-center text-[#ffecb9] text-lg font-normal font-['PingFang_SC'] leading-relaxed"
+                  >
+                    学习大师
+                  </div>
+                  <div
+                    class="h-[26px] px-2.5 rounded-[30px] border border-solid border-[#ffecb9] justify-center items-center gap-2.5 inline-flex"
+                  >
+                    <div
+                      class="text-center text-[#ffecb9] text-xs font-normal font-['PingFang_SC'] leading-relaxed"
+                      @click="handleGetCondition(item.id)"
+                    >
+                      获取条件
+                    </div>
+                  </div>
+                </div>
+                <div class="row-start-2 col-start-2">
+                  <div
+                    class="text-start text-white/60 text-xs font-normal font-['PingFang_SC'] leading-relaxed"
+                  >
+                    参加游学解锁典藏徽章
+                  </div>
+                </div>
+                <div class="row-start-3 col-start-2 flex items-center gap-4">
+                  <div class="flex-1">
+                    <ProgressEvo
+                      :height="5"
+                      :model-value="
+                        (
+                          Number.parseInt(item.userSize as any) /
+                          Number.parseInt(item.badgeSize as any)
+                        ).toFixed(2) * 100
+                      "
+                      color="linear-gradient(90deg, #FFDA72 0%, #FFECB9 100%)"
+                    ></ProgressEvo>
+                  </div>
+                  <div>
+                    <span class="text-white text-xs font-normal font-['PingFang_SC'] leading-none">
+                      {{ item.userSize }}
+                    </span>
+                    <span
+                      class="text-[#a1a1a1] text-xs font-normal font-['PingFang_SC'] leading-none"
+                    >
+                      /{{ item.badgeSize }}
+                    </span>
+                  </div>
+                </div>
+                <div class="row-start-4 col-start-1 flex items-center justify-center">
+                  <div
+                    class="w-[59px] h-[21px] px-2.5 bg-[#524c3b] rounded-[30px] shadow shadow-inner justify-center items-center gap-0.5 inline-flex"
+                  >
+                    <div
+                      class="text-center text-[#ffecb9] text-[10px] font-normal font-['PingFang_SC'] leading-relaxed"
+                      @click="handleGetBadge(item.id)"
+                    >
+                      获取榜
+                    </div>
+                  </div>
+                </div>
               </div>
-            </div>
-          </div>
-        </div>
-      </Card>
+            </Card>
+          </swiper-item>
+        </swiper>
+      </view>
 
       <template v-for="([key, it], index) in Object.entries(badges)" :key="index">
         <Card

+ 4 - 1
packages/app/src/pages/mine/index.vue

@@ -268,7 +268,10 @@ onPageScroll(({ scrollTop }: { scrollTop: number }) => {
               {{ !isLogined ? '请点击登录' : userInfo?.nickname }}
             </div>
             <div v-if="isCertified">
-              <div class="w-[76px] h-6 relative" @click="router.push('/pages/mine/honors/index')">
+              <div
+                class="w-[76px] h-6 relative"
+                @click="router.push(`/pages/mine/honors/index?id=${userInfo?.userId}`)"
+              >
                 <div
                   class="w-[76px] h-[18px] left-3 pl-1 top-[1.5px] absolute bg-[#4f4b42] rounded-[3px] border border-solid border-[#a89f89]"
                 >

+ 5 - 8
packages/merchant/src/manifest.json

@@ -37,7 +37,10 @@
         ],
         "minSdkVersion": 30,
         "targetSdkVersion": 30,
-        "abiFilters": ["armeabi-v7a", "arm64-v8a"]
+        "abiFilters": [
+          "armeabi-v7a",
+          "arm64-v8a"
+        ]
       },
       "ios": {},
       "sdkConfigs": {},
@@ -84,12 +87,6 @@
     "setting": {
       "urlCheck": false
     },
-    "requiredPrivateInfos": ["getLocation", "chooseAddress", "chooseLocation"],
-    "permission": {
-      "scope.userLocation": {
-        "desc": "你的位置信息将用于小程序位置接口的效果展示"
-      }
-    },
     "usingComponents": true
   },
   "mp-alipay": {
@@ -111,4 +108,4 @@
       "base": "/"
     }
   }
-}
+}

+ 12 - 1
packages/merchant/src/pages/mine/index.vue

@@ -24,13 +24,15 @@ import { useUserStore } from '@/store'
 import AgentMine from './components/agent-mine.vue'
 import PageHelperEvo from '@/components/page-helper-evo.vue'
 import { ComponentExposed } from 'vue-component-type-helpers'
+import type { CalendarInstance } from 'wot-design-uni/components/wd-calendar/types'
 
+const calendar = ref<CalendarInstance>()
 const pageHelperRef = ref<ComponentExposed<typeof PageHelperEvo>>()
 const userStore = useUserStore()
 const publishState = ref(false)
 const { isLogined, userInfo, isMerchant, isAgent } = storeToRefs(userStore)
 const { data, run: setData } = useRequest(() => getVendorAppInfo())
-const { data: orders, run: setOrders } = useRequest(() => getOrders())
+const { data: orders, run: setOrders } = useRequest(() => getOrders({}))
 const { data: yearTarget, run: setYearTarget } = useRequest(() => getYearTarget())
 const { data: designerData, run: setdesignerData } = useRequest(() => getDesignerStatistics())
 const { data: followData, run: setFollowData } = useRequest(() => getFollowStatistics())
@@ -59,6 +61,10 @@ const query = ref({})
 const toInfoSeting = () => {
   uni.navigateTo({ url: '/pages/mine/merchant/merchant_settings' })
 }
+const openCalendar = () => {
+  console.log('打开日历')
+  calendar.value?.open()
+}
 const toOrder = (order: any) => {
   uni.navigateTo({ url: `/pages/mine/merchant/orders/detail/index?id=${order.id}` })
 }
@@ -237,6 +243,8 @@ onPageScroll(({ scrollTop }: { scrollTop: number }) => {
             </template>
           </wd-radio-group>
           <SectionHeading custom-class="my-[10px]" title="自定义"></SectionHeading>
+          <!-- <wd-button @click="openCalendar">打开日历</wd-button>
+          <wd-calendar ref="calendar" :with-cell="false" v-model="value" @confirm="handleConfirm" /> -->
           <wd-datetime-picker
             custom-value-class="text-[#333] child-value w=[100%]"
             :disabled="filterQuery.dateTimeType !== 4"
@@ -276,6 +284,9 @@ onPageScroll(({ scrollTop }: { scrollTop: number }) => {
 </template>
 
 <style scoped lang="scss">
+::v-deep .wd-radio__label {
+  line-height: 30px !important;
+}
 ::v-deep .child-value {
   > view,
   > div {