123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- <route lang="json">
- {
- "style": {
- "navigationBarTitleText": "编辑基本信息",
- "navigationBarBackgroundColor": "#ffffff"
- }
- }
- </route>
- <script setup lang="ts">
- import {
- getDesignerBasicInfo,
- updateDesignerBasicInfo,
- } from '../../../../../core/libs/agent-requests'
- import { getByDictType } from '../../../../../core/libs/requests'
- import { messages } from '../../../../../core/libs/messages'
- import BottomAppBar from '@/components/bottom-app-bar.vue'
- import DataForm from '@/components/data-form.vue'
- import { DataFormSchema } from '../../../../../components/data-form'
- import { DesignerBasicInfo } from '@designer-hub/app/src/core/libs/models'
- import { requestToast } from '@designer-hub/app/src/core/utils/common'
- import { omit } from 'radash'
- const tab = ref('basic')
- // 基础信息 家庭信息 奖项信息 销售信息 游学/活动信息
- const tabs = [
- { label: '基础信息', value: 'basic' },
- { label: '家庭信息', value: 'family' },
- { label: '奖项信息', value: 'award' },
- { label: '销售信息', value: 'sale' },
- { label: '游学/活动信息', value: 'activity' },
- { label: '其他活动信息', value: 'events' },
- ]
- const id = ref()
- const wish = ref()
- const { data: basicData, run: setBasicData } = useRequest(() => getDesignerBasicInfo(id.value))
- const formData = ref({})
- const schema = ref<
- DataFormSchema<
- Pick<
- DesignerBasicInfo,
- | 'companyAddress'
- | 'idCardNumber'
- | 'passportNumber'
- | 'householdAddress'
- | 'cooperationTime'
- | 'circle'
- | 'hobbies'
- | 'sharingIntent'
- | 'imageUrl'
- // | 'maritalStatus'
- | 'maritalStatusStr'
- >
- >
- >({
- employer: {
- type: 'TextField',
- label: messages.objects.designerBasiceInfo.employer,
- labelWidth: 120,
- props: undefined,
- },
- companyAddress: {
- type: 'TextField',
- label: messages.objects.designerBasiceInfo.companyAddress,
- labelWidth: 120,
- props: undefined,
- },
- idCardNumber: {
- type: 'TextField',
- label: messages.objects.designerBasiceInfo.idCardNumber,
- labelWidth: 120,
- },
- passportNumber: {
- type: 'TextField',
- label: messages.objects.designerBasiceInfo.passportNumber,
- labelWidth: 120,
- },
- householdAddress: {
- type: 'TextField',
- label: messages.objects.designerBasiceInfo.householdAddress,
- labelWidth: 120,
- },
- cooperationTime: {
- type: 'TimePick',
- label: messages.objects.designerBasiceInfo.cooperationTime,
- labelWidth: 120,
- props: {
- type: 'date',
- },
- },
- circle: {
- type: 'TextField',
- label: messages.objects.designerBasiceInfo.circle,
- labelWidth: 120,
- },
- hobbies: {
- type: 'TextField',
- label: messages.objects.designerBasiceInfo.hobbies,
- labelWidth: 120,
- },
- sharingIntent: {
- // type: 'TextField',
- // label: messages.objects.designerBasiceInfo.sharingIntent,
- // labelWidth: 120,
- type: 'Select',
- label: messages.objects.designerBasiceInfo.sharingIntent,
- labelWidth: 120,
- props: {
- // columns: [
- // { label: '不愿意', value: 3 },
- // { label: '一般', value: 1 },
- // { label: '愿意', value: 2 },
- // { label: '非常愿意', value: 4 },
- // ],
- columns: []
- },
- },
- // imageUrl: {
- // type: 'ImageUploader',
- // label: messages.objects.designerBasiceInfo.imageUrl,
- // },
- maritalStatus: {
- type: 'Select',
- label: messages.objects.designerBasiceInfo.maritalStatus,
- labelWidth: 120,
- props: {
- columns: [
- { label: '未婚', value: 1 },
- { label: '已婚', value: 2 },
- { label: '离婚', value: 3 },
- { label: '丧偶', value: 4 },
- ],
- },
- },
- })
- const eventsQuery = computed(() => ({ type: '3' }))
- const handleSubmit = async () => {
- console.log(formData.value)
- const { code } = await requestToast(
- () =>
- updateDesignerBasicInfo({
- ...formData.value,
- userId: id.value,
- }),
- {
- success: true,
- successTitle: '保存成功',
- },
- )
- if (code === 0) {
- await setBasicData()
- await uni.navigateBack()
- }
- }
- onLoad(async (query: { id: string }) => {
- id.value = query.id
- await setBasicData()
- formData.value = {
- ...omit(basicData.value, ['sex']),
- };
- let value1 = await getByDictType('sharing_intent_type')
- schema.value.sharingIntent!.props!.columns = value1.data
- // console.log(value1)
- console.log(schema.value.sharingIntent.props?.columns)
- })
- </script>
- <template>
- <div class="flex-grow bg-white p-4">
- <DataForm :schema="schema" v-model="formData" :direction="'horizontal'"></DataForm>
- <BottomAppBar fixed placeholder>
- <wd-button block :round="false" @click="handleSubmit">保存</wd-button>
- </BottomAppBar>
- </div>
- </template>
|