Ver código fonte

fix(app): 会员审核

EvilDragon 4 meses atrás
pai
commit
8334ab0c76

+ 2 - 2
packages/app/env/.env.development

@@ -12,9 +12,9 @@ VITE_SHOW_SOURCEMAP = true
 # VITE_SERVER_BASEURL = 'http://192.168.2.39:48080'
 # VITE_SERVER_BASEURL = 'http://192.168.0.157:48080'
 # 刘岁成
-VITE_SERVER_BASEURL = 'http://192.168.2.38:48080'
+# VITE_SERVER_BASEURL = 'http://192.168.2.38:48080'
 # 赵要军
-# VITE_SERVER_BASEURL = 'http://192.168.2.41:48080'
+VITE_SERVER_BASEURL = 'http://192.168.2.41:48080'
 # 姚逊涛
 # VITE_SERVER_BASEURL = 'http://192.168.2.42:48080'
 

+ 1 - 1
packages/app/src/core/libs/net-images.ts

@@ -5,5 +5,5 @@ export enum NetImages {
   'DesigerHomepageDefaultBg' = 'https://image.zhuchaohui.com/zhucaohui/58dcb982d2957c5578478abbf000936efe9d11c96c5af4d457177cf5d90a9d39.png',
   ConsultDefaultBg = 'https://image.zhuchaohui.com/zhucaohui/f1942e62d1b1adc23f37de705570e22d098da319e10c8a448dc49e594d4bee3a.png',
   StudyTourItemBg = 'https://image.zhuchaohui.com/zhucaohui/254b7ea7fdecaba8e318a7f50e292d036cafe49904fc7fc160a5477ce921e261.png',
-  DefaultAvatar = 'https://image.zhuchaohui.com/zhucaohui/f846a8628026aede3e8e9182fd96f6f8867ac01b611c204a3511b89b1f05e301.png',
+  DefaultAvatar = 'https://image.zhuchaohui.com/zhucaohui/0b57771c2fbe60157e592a5b0e51a2b2b6c5263300663ad33efd55b235a2402a.png',
 }

+ 21 - 1
packages/app/src/core/libs/requests.ts

@@ -15,6 +15,7 @@ import {
   Banner,
   StudyTour,
   PointsOrder,
+  UserAuthInfo,
 } from '../models/moment'
 import dayjs from 'dayjs'
 
@@ -153,7 +154,26 @@ export const createUserAuthInfo = (
 /**
  * 获取设计师审核信息
  */
-export const getUserAuthInfo = () => httpPost('/app-api/member/user-auth-info/get')
+export const getUserAuthInfo = () => httpGet<UserAuthInfo>('/app-api/member/user-auth-info/get')
+/**
+ * 更新设计师审核信息
+ */
+export const updateUserAuthInfo = (
+  data: Partial<{
+    id: number
+    userId: number
+    designerName: string
+    gender: number
+    mobile: string
+    channelSource: number
+    referrer: string
+    employer: string
+    spatialExpertiseType: number
+    attachment: string
+    auditStatus: number
+    remark: string
+  }>,
+) => httpPost('/app-api/member/user-auth-info/update', data)
 export const getCircles = (query: { tagName?: string; circleType?: string; stylistId?: string }) =>
   httpGet<{
     list: {

+ 14 - 1
packages/app/src/core/models/moment.ts

@@ -452,6 +452,20 @@ export interface PointsOrder {
    */
   payPoints: number
 }
+export interface UserAuthInfo {
+  id: number
+  designerName: string
+  gender: number
+  mobile: string
+  channelSource: number
+  referrer: string
+  employer: string
+  spatialExpertiseType: number
+  attachment: string
+  auditStatus: number
+  remark: string
+  auditTime: number
+}
 export enum DictType {
   /**
    *  擅长空间类型
@@ -516,4 +530,3 @@ export enum BannerMode {
    */
   StudyTour = 5,
 }
-export enum OrderPayType {}

+ 1 - 2
packages/app/src/pages/home/mall/confirm-order/index.vue

@@ -25,7 +25,6 @@ import { useRouter } from '../../../../core/utils/router'
 const router = useRouter()
 const userStore = useUserStore()
 const { userInfo } = storeToRefs(userStore)
-const products = ref([{}, {}, {}])
 const show = ref(false)
 const a = ref(1)
 const data = ref()
@@ -50,7 +49,7 @@ onLoad(async (query: { data: string }) => {
   <view class="flex-grow flex flex-col px-3.5 py-5.5 gap-6">
     <Card>
       <div class="flex flex-col gap-6">
-        <template v-for="(it, i) in data.list" :key="i">
+        <template v-for="(it, i) in data?.list" :key="i">
           <div class="flex gap-3">
             <div class="w-16 h-16 bg-[#f6f6f6] rounded-lg">
               <wd-img width="100%" height="100%" :src="it.orderImgUrl"></wd-img>

+ 7 - 0
packages/app/src/pages/home/mall/shopping-cart/index.vue

@@ -83,6 +83,13 @@ const handlePlaceOrder = async () => {
   )
   if (code === 0) {
     // router.push(`/pages/home/mall/confirm-order`)
+    await deleteProductItemBuy({
+      doList: selected.value.map(({ productId }) => ({
+        productId,
+        deleted: true,
+        userId: userInfo.value.userId,
+      })),
+    })
     router.push(`/pages/home/mall/confirm-order/index?data=${JSON.stringify(res)}`)
   }
 }

+ 55 - 21
packages/app/src/pages/mine/authentication/index.vue

@@ -15,6 +15,7 @@ import {
   createUserAuthInfo,
   getByDictType,
   getUserAuthInfo,
+  updateUserAuthInfo,
   validateReferrerCode,
 } from '../../../core/libs/requests'
 import { DictType } from '../../../core/models/moment'
@@ -25,6 +26,8 @@ import { storeToRefs } from 'pinia'
 import { useMessage, useToast } from 'wot-design-uni'
 import { useRouter } from '../../../core/utils/router'
 import { requestToast } from '../../../core/utils/common'
+import { omit, pick } from 'radash'
+import UploadEvo from '@/components/upload-evo.vue'
 
 const { alert } = useMessage()
 const router = useRouter()
@@ -32,10 +35,9 @@ const userStore = useUserStore()
 const { userInfo, isDesigner } = storeToRefs(userStore)
 const { error } = useToast()
 const formData = ref<any>({})
+const attachment = ref()
 const formInited = ref(false)
-const { data: userAuthInfo, run: setUserAuthInfo } = useRequest(() => getUserAuthInfo(), {
-  initialData: {},
-})
+const { data: userAuthInfo, run: setUserAuthInfo } = useRequest(() => getUserAuthInfo())
 const schema = ref({
   channelSource: {
     type: 'Select',
@@ -44,6 +46,7 @@ const schema = ref({
       labelWidth: '126rpx',
       placeholder: '请选择通过哪个渠道入驻的筑巢荟',
       columns: [],
+      disabled: userAuthInfo != null,
     },
   },
   referrer: {
@@ -52,6 +55,7 @@ const schema = ref({
     props: {
       labelWidth: '126rpx',
       placeholder: '请如实填写推荐人编号,设计师会员编号或渠道编号',
+      disabled: userAuthInfo != null,
     },
   },
   designerName: {
@@ -90,29 +94,52 @@ const schema = ref({
 })
 const handleSubmit = async () => {
   console.log(formData.value)
-  const { data, code: status } = await requestToast(() =>
-    validateReferrerCode({ code: formData.value.referrer }),
-  )
-  if (data === false || status !== 0) {
-    uni.showToast({ title: '推荐人编号不正确', icon: 'none' })
-    return
-  }
-  const { code, msg } = await createUserAuthInfo({
-    gender: userInfo.value.sex,
-    attachment: 'https://via.placeholder.com/319x204',
-    userId: userInfo.value.userId,
-    ...formData.value,
-  })
-  if (code === 0) {
-    router.replace(`/pages/mine/authentication/submit/success/index`)
+  if (!userAuthInfo.value) {
+    const { data, code: status } = await requestToast(() =>
+      validateReferrerCode({ code: formData.value.referrer }),
+    )
+    if (data === false || status !== 0) {
+      uni.showToast({ title: '推荐人编号不正确', icon: 'none' })
+      return
+    }
+    const { code, msg } = await createUserAuthInfo({
+      gender: userInfo.value.sex,
+      attachment: 'https://via.placeholder.com/319x204',
+      userId: userInfo.value.userId,
+      ...formData.value,
+    })
+    if (code === 0) {
+      router.replace(`/pages/mine/authentication/submit/success/index`)
+    } else {
+      error(msg)
+    }
   } else {
-    error(msg)
+    const toBeUpdate = {
+      ...omit(formData.value, []),
+      attachment: attachment.value,
+      id: userAuthInfo.value.id,
+      gender: userInfo.value.sex,
+    }
+    const { code } = await requestToast(() => updateUserAuthInfo({ ...toBeUpdate, auditStatus: 1 }))
+    if (code === 0) {
+      router.replace(`/pages/mine/authentication/submit/success/index`)
+    }
   }
 }
 onMounted(async () => {
   await setUserAuthInfo()
   if (userAuthInfo.value) {
     console.log(userAuthInfo.value)
+    formData.value = pick(userAuthInfo.value, [
+      'channelSource',
+      'referrer',
+      'designerName',
+      'designerName',
+      'mobile',
+      'employer',
+      'spatialExpertiseType',
+    ])
+    attachment.value = userAuthInfo.value.attachment
   }
   const { data } = await getByDictType('member_channel_source')
   const { data: res } = await getByDictType(DictType.memberSpatialExpertiseType)
@@ -162,13 +189,20 @@ defineExpose({})
           custom-class="mb-4"
         ></SectionHeading>
         <div class="h-0.25 bg-[#e1e1e1] mb-5"></div>
-        <wd-upload></wd-upload>
+        <!-- <wd-upload></wd-upload> -->
+        <UploadEvo v-if="formInited" v-model="attachment"></UploadEvo>
       </Card>
       <div class="flex-1"></div>
       <div>
-        <wd-button block :round="false" :disabled="isDesigner" @click="handleSubmit">
+        <wd-button
+          block
+          :round="false"
+          :disabled="isDesigner || userInfo.userAuthStatus === 1"
+          @click="handleSubmit"
+        >
           提交
         </wd-button>
+        <!-- <wd-button @click="handleSubmit">test</wd-button> -->
       </div>
     </div>
   </div>

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

@@ -14,6 +14,7 @@ import { storeToRefs } from 'pinia'
 import { isEmpty } from 'radash'
 import TasksCard from './components/tasks-card.vue'
 import { useRouter } from '../../core/utils/router'
+import { NetImages } from '../../core/libs/net-images'
 
 const router = useRouter()
 const userStore = useUserStore()
@@ -80,7 +81,7 @@ const pieces = ref([
   },
 ])
 const avatar = computed(() =>
-  !isEmpty(userInfo.value.avatar) ? userInfo.value.avatar : 'https://via.placeholder.com/72x72',
+  !isEmpty(userInfo.value.avatar) ? userInfo.value.avatar : NetImages.DefaultAvatar,
 )
 const certificationStatusText = computed(() => {
   if (!userInfo.value.userStatusEnabled) return '未认证'