index.vue 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <route lang="json">
  2. {
  3. "style": {
  4. "navigationBarTitleText": "个人信息",
  5. "navigationBarBackgroundColor": "#ffffff"
  6. }
  7. }
  8. </route>
  9. <script setup lang="ts">
  10. import SectionHeading from '@designer-hub/app/src/components/section-heading.vue'
  11. import { getDesignerBasicInfo, getDesignerExtraEvents } from '../../../core/libs/agent-requests'
  12. import { messages } from '../../../core/libs/messages'
  13. import { omit } from 'radash'
  14. import BottomAppBar from '@/components/bottom-app-bar.vue'
  15. import { renders } from '../../../core/libs/renders'
  16. import DataRender from '@/components/data-render.vue'
  17. import PageHelperEvo from '@/components/page-helper-evo.vue'
  18. const tab = ref('basic')
  19. // 基础信息 家庭信息 奖项信息 销售信息 游学/活动信息
  20. const tabs = [
  21. { label: '基础信息', value: 'basic' },
  22. { label: '家庭信息', value: 'family' },
  23. { label: '奖项信息', value: 'award' },
  24. { label: '销售信息', value: 'sale' },
  25. { label: '游学/活动信息', value: 'activity' },
  26. { label: '其他活动信息', value: 'events' },
  27. ]
  28. const id = ref()
  29. const { data: basicData, run: setBasicData } = useRequest(() => getDesignerBasicInfo(id.value))
  30. const eventsQuery = computed(() => ({ type: '3' }))
  31. // const {} = useRequest()
  32. const handleEditBasicInfo = async () => {
  33. await uni.navigateTo({ url: `/pages/designer/archives/basic-info/index?id=${id.value}` })
  34. }
  35. onLoad(async (query: { id: string }) => {
  36. id.value = query.id
  37. await setBasicData()
  38. })
  39. </script>
  40. <template>
  41. <div class="flex-grow bg-white">
  42. <wd-tabs v-model="tab">
  43. <template v-for="(it, index) in tabs" :key="index">
  44. <wd-tab :title="it.label" :name="it.value"></wd-tab>
  45. </template>
  46. </wd-tabs>
  47. <div class="flex flex-col px-5 gap-5">
  48. <template v-if="tab === 'basic'">
  49. <template
  50. v-for="([key, value], index) in Object.entries(omit(basicData, ['id', 'userId']))"
  51. :key="index"
  52. >
  53. <div class="flex items-center justify-between">
  54. <div class="text-black/40 text-base font-normal font-['PingFang SC'] leading-none">
  55. {{ messages.objects.designerBasiceInfo[key] }}
  56. </div>
  57. <DataRender v-bind="renders.designerBasiceInfo[key](value)"></DataRender>
  58. </div>
  59. <!-- <SectionHeading size="base" :title="messages.objects.designerBasiceInfo[key]">
  60. <template #append>
  61. <DataRender v-bind="renders.designerBasiceInfo[key](value)"></DataRender>
  62. </template>
  63. </SectionHeading> -->
  64. <div class="w-full h-.25 bg-[#f4f4f4]"></div>
  65. </template>
  66. </template>
  67. <template v-if="tab === 'family'">
  68. <template></template>
  69. </template>
  70. <template v-if="tab === 'events'">
  71. <PageHelperEvo :request="getDesignerExtraEvents" :query="eventsQuery">
  72. <template #default="{ source }">
  73. <template v-for="(it, index) in source.list" :key="index">
  74. <div>{{ it }}</div>
  75. </template>
  76. </template>
  77. </PageHelperEvo>
  78. </template>
  79. </div>
  80. <BottomAppBar fixed placeholder>
  81. <wd-button block :round="false" @click="handleEditBasicInfo">编辑</wd-button>
  82. </BottomAppBar>
  83. </div>
  84. </template>