<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>