<template>
|
<LoadingLayout :loading="isLoading && isEdit" :error="isError" :loadError="refetch">
|
<PublishResourceStep1 v-if="current === 'step1'"></PublishResourceStep1>
|
<PublishResourceStep2 v-else-if="current === 'step2'"></PublishResourceStep2>
|
</LoadingLayout>
|
</template>
|
|
<script setup lang="ts">
|
import { usePublishResourceContext } from './context';
|
import PublishResourceStep1 from './PublishResourceStep1.vue';
|
import PublishResourceStep2 from './PublishResourceStep2.vue';
|
import { useQuery } from '@tanstack/vue-query';
|
import * as resourceServices from '@12333/services/api/Resource';
|
import { EditorType } from '@12333/constants';
|
|
defineOptions({
|
name: 'InnerPage',
|
});
|
|
const { current, resourceId, form, isEdit } = usePublishResourceContext();
|
|
const { isLoading, isError, refetch } = useQuery({
|
queryKey: ['resourceServices/getFrontResourceInfo', resourceId],
|
queryFn: async () => {
|
return await resourceServices.getFrontResourceInfo(
|
{ id: resourceId },
|
{
|
showLoading: false,
|
}
|
);
|
},
|
enabled: !!resourceId,
|
onSuccess(data) {
|
form.categoryId = data.categoryId;
|
form.title = data.title;
|
form.resourceIntros =
|
data.resourceIntros?.find?.((x) => x.type === EditorType.Text)?.content ?? '';
|
form.resourceCount = data.resourceCount;
|
form.cities = data.cities?.map((x) => x.areaCode);
|
form.isLimitDeliveryCity = data.intendedDeliveryCities?.length > 0;
|
form.intendedDeliveryCity = data.intendedDeliveryCities?.map((x) => x.areaCode);
|
form.cooperationFee = data.cooperationFee;
|
form.isSyncCircleFriend = data.isSyncCircleFriend;
|
form.status = data.status;
|
form.checkRemark = data.checkRemark;
|
form.industryTypeId = data.industryTypeId;
|
form.isOpenOnlineTrade = data.isOpenOnlineTrade;
|
},
|
});
|
</script>
|