|
@@ -1,11 +1,12 @@
|
|
<route lang="yaml">
|
|
<route lang="yaml">
|
|
|
|
+layout: back
|
|
style:
|
|
style:
|
|
navigationStyle: custom
|
|
navigationStyle: custom
|
|
</route>
|
|
</route>
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
import MomentItem from '@/components/moment-item.vue'
|
|
import MomentItem from '@/components/moment-item.vue'
|
|
-import { getByDictType, getCircles } from '@/core/libs/requests'
|
|
|
|
-import { useUserStore } from '@/store'
|
|
|
|
|
|
+import { getByDictType, getCircles } from '../../../core/libs/requests'
|
|
|
|
+import { useUserStore } from '../../../store'
|
|
import { storeToRefs } from 'pinia'
|
|
import { storeToRefs } from 'pinia'
|
|
|
|
|
|
const userStore = useUserStore()
|
|
const userStore = useUserStore()
|
|
@@ -14,37 +15,94 @@ const tab = ref('2')
|
|
const { data: circleTypes, run: getCircleType } = useRequest(() =>
|
|
const { data: circleTypes, run: getCircleType } = useRequest(() =>
|
|
getByDictType('member_circle_type'),
|
|
getByDictType('member_circle_type'),
|
|
)
|
|
)
|
|
-const { data: circlesData, run } = useRequest(
|
|
|
|
- () =>
|
|
|
|
- getCircles({
|
|
|
|
- circleType: tab.value,
|
|
|
|
- // stylistName: userInfo.value.nickname,
|
|
|
|
- stylistId: userInfo.value.userId,
|
|
|
|
- }),
|
|
|
|
- { initialData: { list: [] } },
|
|
|
|
-)
|
|
|
|
|
|
+const circlesData = ref({ list: [] })
|
|
|
|
+// const { data: circlesData, run } = useRequest(
|
|
|
|
+// () =>
|
|
|
|
+// getCircles({
|
|
|
|
+// circleType: tab.value,
|
|
|
|
+// // stylistName: userInfo.value.nickname,
|
|
|
|
+// stylistId: userInfo.value.userId,
|
|
|
|
+// }),
|
|
|
|
+// { initialData: { list: [] } },
|
|
|
|
+// )
|
|
|
|
+const setCirclesData = async (circleType) => {
|
|
|
|
+ const { data } = await getCircles({
|
|
|
|
+ circleType,
|
|
|
|
+ stylistId: userInfo.value.userId,
|
|
|
|
+ })
|
|
|
|
+ circlesData.value = data
|
|
|
|
+}
|
|
const tabs = ref([
|
|
const tabs = ref([
|
|
{ label: '案例', value: '2' },
|
|
{ label: '案例', value: '2' },
|
|
{ label: '动态', value: '1' },
|
|
{ label: '动态', value: '1' },
|
|
|
|
+ { label: '视频', value: '0' },
|
|
])
|
|
])
|
|
|
|
+const handleTabsChange = async ({ name }: any) => {
|
|
|
|
+ if (['1', '2'].includes(name)) {
|
|
|
|
+ await setCirclesData(name)
|
|
|
|
+ }
|
|
|
|
+}
|
|
onMounted(async () => {
|
|
onMounted(async () => {
|
|
- await getCircleType()
|
|
|
|
|
|
+ // await getCircleType()
|
|
|
|
+ await setCirclesData(tab.value)
|
|
console.log(circleTypes.value)
|
|
console.log(circleTypes.value)
|
|
|
|
|
|
- await run()
|
|
|
|
|
|
+ // await run()
|
|
|
|
+})
|
|
|
|
+defineExpose({
|
|
|
|
+ navBarFixed: false,
|
|
})
|
|
})
|
|
</script>
|
|
</script>
|
|
<template>
|
|
<template>
|
|
<div class="">
|
|
<div class="">
|
|
- <wd-tabs v-model="tab">
|
|
|
|
- <template v-for="({ label, value }, index) in tabs" :key="index">
|
|
|
|
- <wd-tab :title="label" :name="value"></wd-tab>
|
|
|
|
- </template>
|
|
|
|
- </wd-tabs>
|
|
|
|
- <template v-for="it of circlesData.list" :key="it.id">
|
|
|
|
- <view class="my-6">
|
|
|
|
- <MomentItem :options="it"></MomentItem>
|
|
|
|
- </view>
|
|
|
|
- </template>
|
|
|
|
|
|
+ <div class="relative">
|
|
|
|
+ <wd-img
|
|
|
|
+ width="100%"
|
|
|
|
+ :src="'https://via.placeholder.com/375x329'"
|
|
|
|
+ mode="widthFix"
|
|
|
|
+ custom-class="aspect-[1.14/1]"
|
|
|
|
+ />
|
|
|
|
+ <div class="absolute bottom-0 left-0 right-0">
|
|
|
|
+ <div class="h-[107px] bg-gradient-to-t from-black to-transparent">
|
|
|
|
+ <div class="flex">
|
|
|
|
+ <div
|
|
|
|
+ class="w-18 h-18 border-white border border-solid mx-3.5 rounded-full overflow-hidden"
|
|
|
|
+ >
|
|
|
|
+ <wd-img width="100%" height="100%" :src="userInfo?.avatar"></wd-img>
|
|
|
|
+ </div>
|
|
|
|
+ <div>
|
|
|
|
+ <div class="text-white text-2xl font-normal font-['PingFang SC'] leading-normal">
|
|
|
|
+ {{ userInfo?.nickname }}
|
|
|
|
+ </div>
|
|
|
|
+ <div>
|
|
|
|
+ <div
|
|
|
|
+ class="h-6 px-2 bg-black/10 rounded-[30px] border border-white/60 justify-center items-center gap-2.5 inline-flex"
|
|
|
|
+ >
|
|
|
|
+ <div
|
|
|
|
+ class="text-center text-white text-[10px] font-normal font-['PingFang SC'] leading-normal"
|
|
|
|
+ >
|
|
|
|
+ 创设空间事务所创始人
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="bg-white rounded-t-2xl relative bottom-4">
|
|
|
|
+ <wd-tabs v-model="tab" @change="handleTabsChange">
|
|
|
|
+ <template v-for="({ label, value }, index) in tabs" :key="index">
|
|
|
|
+ <wd-tab :title="label" :name="value"></wd-tab>
|
|
|
|
+ </template>
|
|
|
|
+ </wd-tabs>
|
|
|
|
+ <div class="p-3.5 flex flex-col bg-[#f6f6f6] gap-3.5">
|
|
|
|
+ <template v-for="it of circlesData.list" :key="it.id">
|
|
|
|
+ <view class="">
|
|
|
|
+ <MomentItem :options="it"></MomentItem>
|
|
|
|
+ </view>
|
|
|
|
+ </template>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|