Browse Source

fix(app): 商家信息

EvilDragon 4 months ago
parent
commit
fb3fbcb383

+ 1 - 1
packages/app/src/components/data-form.vue

@@ -92,7 +92,7 @@ defineExpose({
           :class="[direction === 'horizontal' ? 'items-center' : '']"
           :style="
             direction === 'horizontal'
-              ? { 'grid-template-columns': `${props.labelWidth} auto` }
+              ? { 'grid-template-columns': `${props?.labelWidth} auto` }
               : {}
           "
         >

+ 0 - 17
packages/app/src/components/nav-bar-evo.vue

@@ -1,17 +0,0 @@
-<script setup lang="ts">
-defineProps<{
-  title?: string
-}>()
-const navBarProps = ref({
-  fixed: true,
-  safeAreaInsetTop: true,
-  bordered: false,
-  leftArrow: true,
-  customClass: 'bg-transparent! text-white!',
-})
-</script>
-<template>
-  <wd-config-provider :themeVars="{}">
-    <wd-navbar fixed safeAreaInsetTop v-bind="{ ...navBarProps, title }"></wd-navbar>
-  </wd-config-provider>
-</template>

+ 1 - 0
packages/app/src/components/navbar-evo.vue

@@ -1,6 +1,7 @@
 <script lang="ts" setup>
 import { ConfigProviderThemeVars } from 'wot-design-uni'
 import { useRouter } from '../core/utils/router'
+import {computed} from 'vue'
 
 const props = defineProps<{ transparent?: boolean; title?: string; dark?: boolean }>()
 const router = useRouter()

+ 5 - 3
packages/app/src/components/page-helper.vue

@@ -1,5 +1,7 @@
 <script setup lang="ts" generic="S extends Object, T extends { list: S[] }">
 import { NetImages } from '../core/libs/net-images'
+import useRequest from '../hooks/useRequest'
+import {ref, Ref, watch, onMounted} from 'vue'
 
 const props = defineProps<{
   request: (query: any) => Promise<IResData<T>>
@@ -21,9 +23,9 @@ watch(
 onMounted(async () => {
   await setData()
 })
-onReachBottom(() => {
-  console.log(1111)
-})
+// onReachBottom(() => {
+//   console.log(1111)
+// })
 defineExpose({
   refresh: () => {
     setData()

+ 1 - 1
packages/app/src/hooks/useRequest.ts

@@ -1,4 +1,4 @@
-import { UnwrapRef } from 'vue'
+import { UnwrapRef, ref } from 'vue'
 
 type IUseRequestOptions<T> = {
   /** 是否立即执行 */

+ 10 - 0
packages/merchant/src/core/libs/requests.ts

@@ -2,6 +2,7 @@ import { http, httpGet, httpPost } from '../../utils/http'
 import { Schedule } from '../models/schedule'
 import { Moment } from '../models/moment'
 import dayjs from 'dayjs'
+import { ResPageData } from '@designer-hub/app/src/core/libs/models'
 
 export const getUserInfo = () =>
   httpGetMock<any>({
@@ -243,6 +244,15 @@ export const refreshToken = (refreshToken: string) =>
  */
 export const scanCodeCheckPaper = (data: { orderNo: string }) =>
   httpPost('/app-api/member/vendorApp/scanCodeCheckPaper', data)
+/**
+ * 商家端-获取商家信息
+ */
+export const getVendorAppInfo = () => httpGet('/app-api/member/vendorApp/getInfo')
+/**
+ * 商家端-获取商家订单
+ */
+export const getOrders = () =>
+  httpPost<ResPageData<any>>('/app-api/member/vendorApp/getPointsOrderByVendorPage')
 export const httpGetMock = <T>(data: T) =>
   new Promise<IResData<T>>((resolve) => resolve({ code: 1, msg: '', data } as IResData<T>))
 export interface Circle {

+ 1 - 1
packages/merchant/src/hooks/useRequest.ts

@@ -1,4 +1,4 @@
-import { UnwrapRef } from 'vue'
+import { UnwrapRef, ref } from 'vue'
 
 type IUseRequestOptions<T> = {
   /** 是否立即执行 */

+ 44 - 24
packages/merchant/src/pages/mine/index.vue

@@ -4,30 +4,39 @@
 
 <script setup lang="ts">
 import { onMounted, ref } from 'vue'
-import { getMemberUserInfo } from '../../core/libs/requests'
+import { getMemberUserInfo, getOrders, getVendorAppInfo } from '../../core/libs/requests'
 import { useUserStore } from '../../store'
 import { storeToRefs } from 'pinia'
 import { isEmpty } from 'radash'
 import Card from '@designer-hub/app/src/components/card.vue'
 import SectionHeading from '@designer-hub/app/src/components/section-heading.vue'
 import { merchantPageHeaderBg, desinTopBg, rightArrowIcon } from '@designer-hub/assets/src/svgs'
+import NavBarEvo from '@designer-hub/app/src/components/navbar-evo.vue'
+import PageHelper from '@designer-hub/app/src/components/page-helper.vue'
 
 const userStore = useUserStore()
+
 const { isLogined, userInfo } = storeToRefs(userStore)
 const { setUserInfo } = userStore
-const { data, run } = useRequest(getMemberUserInfo)
+// const { data, run } = useRequest(getMemberUserInfo)
 const avatar = computed(() =>
   !isEmpty(userInfo.value.avatar) ? userInfo.value.avatar : 'https://via.placeholder.com/72x72',
 )
+const { data, run: setData } = useRequest(() => getVendorAppInfo())
+const { data: orders, run: setOrders } = useRequest(() => getOrders())
 const nickNameClickHandle = async () => {
   if (isLogined.value) return
+
   uni.navigateTo({ url: '/pages/login/index' })
 }
+
 const toInfoSeting = () => {
   uni.navigateTo({ url: '/pages/mine/merchant/merchant_settings' })
 }
 onShow(async () => {
   if (isLogined.value) {
+    await setData()
+    await setOrders()
     // await run()
     // setUserInfo({
     //   ...userInfo.value,
@@ -59,6 +68,7 @@ onPageScroll(({ scrollTop }: { scrollTop: number }) => {
 
 <template>
   <view>
+    <NavBarEvo title="我的" transparent dark></NavBarEvo>
     <template v-if="userInfo.appLoginType === 1">
       <div class="aspect-[0.96/1] absolute left-0 right-0 top--1">
         <wd-img
@@ -254,30 +264,40 @@ onPageScroll(({ scrollTop }: { scrollTop: number }) => {
           </div>
         </div>
         <div class="mt-[16px]">
-          <div class="bg-white rounded-2xl p-[16px] flex flex-col" @click="toorderDetail">
-            <div class="text-black/90 text-sm font-normal font-['PingFang_SC'] leading-normal">
-              完成时间:2024-10-20 10:00
-            </div>
+          <PageHelper :request="getOrders" :query="{}">
+            <template #default="{ source }">
+              <template v-for="(it, i) in source.list" :key="i">
+                <div class="bg-white rounded-2xl p-[16px] flex flex-col" @click="toorderDetail">
+                  <div
+                    class="text-black/90 text-sm font-normal font-['PingFang_SC'] leading-normal"
+                  >
+                    完成时间:2024-10-20 10:00
+                  </div>
 
-            <div class="flex mt-[19px] items-center">
-              <div class="w-[86px] h-[86px] bg-[#f6f6f6] rounded-[10px]"></div>
-              <div class="ml-[16px]">
-                <div class="text-black text-base font-normal font-['PingFang_SC'] leading-normal">
-                  阿芙佳朵
-                </div>
-                <div
-                  class="text-left text-black/30 text-sm font-normal font-['PingFang_SC'] leading-normal"
-                >
-                  数量x2
-                </div>
-                <div
-                  class="text-left text-black/30 text-sm font-normal font-['PingFang_SC'] leading-normal"
-                >
-                  600积分
+                  <div class="flex mt-[19px] items-center">
+                    <div class="w-[86px] h-[86px] bg-[#f6f6f6] rounded-[10px]"></div>
+                    <div class="ml-[16px]">
+                      <div
+                        class="text-black text-base font-normal font-['PingFang_SC'] leading-normal"
+                      >
+                        阿芙佳朵
+                      </div>
+                      <div
+                        class="text-left text-black/30 text-sm font-normal font-['PingFang_SC'] leading-normal"
+                      >
+                        数量x2
+                      </div>
+                      <div
+                        class="text-left text-black/30 text-sm font-normal font-['PingFang_SC'] leading-normal"
+                      >
+                        600积分
+                      </div>
+                    </div>
+                  </div>
                 </div>
-              </div>
-            </div>
-          </div>
+              </template>
+            </template>
+          </PageHelper>
         </div>
       </view>
     </template>

+ 0 - 1
packages/merchant/src/utils/index.ts

@@ -1,5 +1,4 @@
 import { pages, subPackages, tabBar } from '@/pages.json'
-import { path } from 'node:path'
 const getLastPage = () => {
   // getCurrentPages() 至少有1个元素,所以不再额外判断
   // const lastPage = getCurrentPages().at(-1)