Bladeren bron

Merge remote-tracking branch 'origin/main' into main

EvilDragon 2 maanden geleden
bovenliggende
commit
e4ca47ad2a

+ 1 - 1
packages/app/src/pages/home/activity/detail/index.vue

@@ -268,7 +268,7 @@ onShareTimeline(() => ({ title: data.value.name, imageUrl: data.value.thumbnailU
       <div v-if="type === 'studyTour'" class="flex items-center h-full mt-9 gap-1.5">
         <wd-img width="18" height="18" :src="map"></wd-img>
         <div class="text-[#c1c1c1] text-base font-normal font-['PingFang_SC'] leading-normal">
-          第
+          第{{ data?.sort }}
         </div>
       </div>
     </div>

+ 1 - 1
packages/app/src/pages/home/study-tour/components/study-tour-card.vue

@@ -34,7 +34,7 @@ const toDetail = () => {
       <div class="flex gap-1">
         <wd-img width="23" height="23" :src="map"></wd-img>
         <div class="text-white text-base font-normal font-['PingFang_SC'] leading-relaxed">
-          第{{ options?.index + 1 }}站
+          第{{ options?.sort }}站
         </div>
         <div class="flex-1"></div>
         <div

+ 5 - 1
packages/app/src/pages/home/study-tour/index.vue

@@ -60,7 +60,11 @@ onMounted(async () => {
             height="100%"
             custom-class="aspect-[1.73/1]"
             :src="banners[0].bannerImgUrl"
-            @click="router.push(`/pages/home/study-tour/list`)"
+            @click="
+              router.push(
+                `/pages/home/study-tour/list?designStudyAbroadYear=${banners[0].designStudyAbroadYear}`,
+              )
+            "
           ></wd-img>
         </div>
       </template>

+ 18 - 3
packages/app/src/pages/home/study-tour/list.vue

@@ -8,12 +8,18 @@
 </route>
 <script setup lang="ts">
 import SectionHeading from '@/components/section-heading.vue'
-import { getAppMemberLevelConfigs, getStudyTours } from '../../../core/libs/requests'
+import { getAppMemberLevelConfigs, getByDictType, getStudyTours } from '../../../core/libs/requests'
 import dayjs from 'dayjs'
 import StudyTourCard from './components/study-tour-card.vue'
 import PageHelper from '@/components/page-helper.vue'
+import { CircleType, DictType } from '@/core/libs/models'
+import { zipToObject } from 'radash'
+
+// const title = computed(() => `${dayjs().year()}年游学计划`)
+const designStudyAbroadYear = ref('')
+const title = ref('')
+const studyYear = ref('')
 
-const title = computed(() => `${dayjs().year()}年游学计划`)
 const { data: levels, run: setLevels } = useRequest(() => getAppMemberLevelConfigs(), {
   initialData: [],
 })
@@ -23,6 +29,12 @@ const levelsByMemberLevel = computed(() =>
     return acc
   }, {}),
 )
+onLoad(async (query) => {
+  console.log('designStudyAbroadYear=', query)
+  designStudyAbroadYear.value = query.designStudyAbroadYear
+  title.value = `${designStudyAbroadYear.value}年游学计划`
+})
+
 onMounted(async () => {
   await setLevels()
 })
@@ -35,7 +47,10 @@ onMounted(async () => {
     >
       *我们为您精心打造了一个独特且极具价值的游学项目。这个项目的核心旨在全方位提升
     </div>
-    <PageHelper :request="getStudyTours" :query="{ showStatus: '1' }">
+    <PageHelper
+      :request="getStudyTours"
+      :query="{ showStatus: '1', studyYear: designStudyAbroadYear }"
+    >
       <template #default="{ source }">
         <div class="py-4 flex flex-col gap-6">
           <template v-for="(it, index) in source?.list" :key="index">

+ 59 - 9
packages/merchant/src/pages/agent/designer/index.vue

@@ -11,7 +11,7 @@
 import Card from '@/components/card.vue'
 import DataForm from '@/components/data-form.vue'
 import PageHelperEvo from '@/components/page-helper-evo.vue'
-import { focusOrCancel, getDesigners } from '../../../core/libs/agent-requests'
+import { createFollowUp, focusOrCancel, getDesigners } from '../../../core/libs/agent-requests'
 import { vipIcon, rightArrowIcon, filterIcon } from '@designer-hub/assets/src/svgs'
 import { toHomePage } from '../../../core/libs/actions'
 import { Designer } from '@designer-hub/app/src/core/libs/models'
@@ -23,6 +23,8 @@ import { useMemberLevelsStore } from '../../../store/member-levles'
 import { storeToRefs } from 'pinia'
 import { useUserStore } from '../../../store'
 import link from '@designer-hub/assets/src/libs/assets/link'
+import { beforeNow } from '@/utils/date-util'
+import { getDesignerList } from '@/core/libs/requests'
 
 const userStore = useUserStore()
 const { userInfo } = storeToRefs(userStore)
@@ -34,6 +36,9 @@ const { schema, rules } = useFollowUp()
 const memberLevelsStore = useMemberLevelsStore()
 const { memberLevels } = storeToRefs(memberLevelsStore)
 const { getMemberLevelLogo } = memberLevelsStore
+const followUpForm = ref({})
+const followUpFormRef = ref({})
+
 const filterQuery = ref<{
   tags: any[]
   levels: any[]
@@ -90,6 +95,33 @@ const handleImportant = async (designer: Designer) => {
     await pageHelperRef.value?.refresh()
   }
 }
+const saveFollowUp = (item: any) => {
+  console.log(item)
+  schema.value.stylistId.props.columns = [{ value: item.id, label: item.name }]
+  followUpForm.value.stylistId = item.id
+  publishState.value = true
+}
+const createFollowUpSubmit = async () => {
+  const { valid } = await followUpFormRef.value.validate()
+  if (!valid) {
+    return
+  }
+  console.log(followUpForm.value)
+  const { code } = await requestToast(
+    () =>
+      createFollowUp({
+        ...followUpForm.value,
+        address: { address: '', latitude: '', longitude: '' },
+      }),
+    {
+      success: true,
+      successTitle: '跟进成功',
+    },
+  )
+  if (code === 0) {
+    publishState.value = false
+  }
+}
 const handleSubmit = () => {
   query.value = {
     ...filterQuery.value,
@@ -118,6 +150,17 @@ onLoad(async (params: { title?: string; filter?: string; tags?: string }) => {
     tags: filterQuery.value.tags.join(','),
     levels: filterQuery.value.levels.join(','),
   }
+  // const {
+  //   data: { list },
+  // } = await getDesignerList({
+  //   brokerId: String(userInfo.value.userId),
+  //   pageNo: 1,
+  //   pageSize: -1,
+  // })
+  // schema.value.stylistId.props.columns = list.map((item) => ({
+  //   value: item.id,
+  //   label: item.name,
+  // }))
 })
 </script>
 
@@ -186,8 +229,7 @@ onLoad(async (params: { title?: string; filter?: string; tags?: string }) => {
                         <div
                           class="text-black/30 text-xs font-normal font-['PingFang_SC'] leading-none"
                         >
-<!--                          2天前访问-->
-                          {{it.accessTime}}
+                          {{ it.accessTime ? `${beforeNow(new Date(it.accessTime))}访问` : '' }}
                         </div>
                         <div class="bg-[#eeeeee] w-[2px] h-[10px]"></div>
                         <div
@@ -202,7 +244,7 @@ onLoad(async (params: { title?: string; filter?: string; tags?: string }) => {
 
                 <div class="row-start-2 col-start-2 col-end-4">
                   <div class="flex items-center justify-between w-full mt-[20px]">
-                    <div v-if="!it.followUp30Days" class="flex items-center">
+                    <div v-if="it.followUp30Days" class="flex items-center">
                       <div class="w-2 h-2 bg-[#89f4e2] rounded-full mr-[7px]"></div>
                       <div
                         class="text-black/90 text-xs font-normal font-['PingFang_SC'] leading-snug"
@@ -210,7 +252,7 @@ onLoad(async (params: { title?: string; filter?: string; tags?: string }) => {
                         30天未跟进
                       </div>
                     </div>
-                    <div class="flex items-center">
+                    <div class="flex items-center" v-if="it.generatePoints60Days">
                       <div class="w-2 h-2 bg-[#ffb96a] rounded-full mr-[7px]"></div>
                       <div
                         class="text-black/90 text-xs font-normal font-['PingFang_SC'] leading-snug"
@@ -218,7 +260,7 @@ onLoad(async (params: { title?: string; filter?: string; tags?: string }) => {
                         60天未产生积分
                       </div>
                     </div>
-                    <div class="flex items-center">
+                    <div class="flex items-center" v-if="it.expendPoints60Days">
                       <div class="w-2 h-2 bg-[#c493ff] rounded-full mr-[7px]"></div>
                       <div
                         class="text-black/90 text-xs font-normal font-['PingFang_SC'] leading-snug"
@@ -272,7 +314,7 @@ onLoad(async (params: { title?: string; filter?: string; tags?: string }) => {
                   >
                     <div
                       class="text-center text-white text-sm font-normal font-['PingFang_SC'] leading-normal"
-                      @click.stop="publishState = true"
+                      @click.stop="saveFollowUp(it)"
                     >
                       写跟进
                     </div>
@@ -287,8 +329,16 @@ onLoad(async (params: { title?: string; filter?: string; tags?: string }) => {
   </view>
   <wd-action-sheet v-model="publishState" title="创建跟进" @close="publishState = false">
     <view class="flex flex-col p-4">
-      <div><DataForm :schema="schema" :rules="rules" direction="horizontal"></DataForm></div>
-      <div><wd-button block :round="false">提交</wd-button></div>
+      <div>
+        <DataForm
+          ref="followUpFormRef"
+          :schema="schema"
+          v-model="followUpForm"
+          :rules="rules"
+          direction="horizontal"
+        ></DataForm>
+      </div>
+      <div><wd-button block :round="false" @click="createFollowUpSubmit">提交</wd-button></div>
     </view>
   </wd-action-sheet>
   <!-- 筛选action-sheet -->