From 186234cb3833e620aa0ae46212fe337eb2d6e77d Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期四, 13 三月 2025 13:07:02 +0800 Subject: [PATCH] feat: 接口对接 --- apps/bMiniApp/src/subpackages/task/taskHandleCheckDetail/InnerPage.vue | 28 + apps/bMiniApp/src/constants/task.ts | 21 + apps/cMiniApp/src/subpackages/user/complaint/complaint.vue | 36 +- apps/cMiniApp/src/pages/home/index.vue | 2 apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue | 10 apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue | 29 + apps/cMiniApp/src/pages/task/InnerPage.vue | 2 packages/services/api/FlexTask.ts | 63 +++++ packages/services/api/index.ts | 4 apps/cMiniApp/src/pages/mine/index.vue | 4 apps/bMiniApp/src/subpackages/mine/mineFavorites/InnerPage.vue | 36 ++ packages/services/api/User.ts | 11 apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue | 15 + apps/cMiniApp/src/subpackages/curriculum/mineCurriculumVitae/InnerPage.vue | 21 + packages/services/api/UserResume.ts | 30 +- apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue | 2 packages/services/api/typings.d.ts | 190 +++++++++++++++ apps/bMiniApp/src/subpackages/task/batchTaskList/InnerPage.vue | 13 apps/cMiniApp/src/subpackages/curriculum/mineDetailedInfo/InnerPage.vue | 53 ++++ apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue | 26 +- apps/cMiniApp/src/subpackages/curriculum/mineWorkExperience/InnerPage.vue | 54 +++ apps/bMiniApp/src/subpackages/mine/mineContactRecord/InnerPage.vue | 21 + apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue | 3 packages/components/src/Card/FlexJobCard.vue | 23 + apps/bMiniApp/src/subpackages/jobApplicationManage/components/JobDetail.vue | 3 apps/bMiniApp/src/pages/home/HomeQueryMenuView.vue | 14 26 files changed, 607 insertions(+), 107 deletions(-) diff --git a/apps/bMiniApp/src/constants/task.ts b/apps/bMiniApp/src/constants/task.ts index d0e14ad..16d939b 100644 --- a/apps/bMiniApp/src/constants/task.ts +++ b/apps/bMiniApp/src/constants/task.ts @@ -129,3 +129,24 @@ [FlexTaskCheckAcceptStatusEnum.Passed]: '楠屾敹閫氳繃', [FlexTaskCheckAcceptStatusEnum.Refused]: '楠屾敹鏈�氳繃', }; + +export enum FlexWorkerEleSignEnum { + /** + * 寰呯绾� + */ + WaitSign = 10, + /** + * 宸茬绾� + */ + HasSign = 20, + /** + * 宸茶В绾� + */ + CancelSign = 30, +} + +export const FlexWorkerEleSignEnumText = { + [FlexWorkerEleSignEnum.WaitSign]: '寰呯绾�', + [FlexWorkerEleSignEnum.HasSign]: '宸茬绾�', + [FlexWorkerEleSignEnum.CancelSign]: '宸茶В绾�', +}; diff --git a/apps/bMiniApp/src/pages/home/HomeQueryMenuView.vue b/apps/bMiniApp/src/pages/home/HomeQueryMenuView.vue index 4c5cdf1..9aebcf1 100644 --- a/apps/bMiniApp/src/pages/home/HomeQueryMenuView.vue +++ b/apps/bMiniApp/src/pages/home/HomeQueryMenuView.vue @@ -5,7 +5,7 @@ <ProRadio v-model="query.gender" :value-enum="GenderText" show-all-btn></ProRadio> </QueryMenuItem> <QueryMenuItem title="韬唤"> - <ProRadio v-model="query.gender" :value-enum="GenderText" show-all-btn></ProRadio> + <ProRadio v-model="query.gender" :value-enum="IdentityList" show-all-btn></ProRadio> </QueryMenuItem> <QueryMenuItem> <template #title> @@ -23,7 +23,7 @@ ></nut-range> </QueryMenuItem> <QueryMenuItem title="璧勬牸璇佷功"> - <ProRadio v-model="query.gender" :value-enum="GenderText" show-all-btn></ProRadio> + <ProRadio v-model="query.gender" :value-enum="CertificateTypeList" show-all-btn></ProRadio> </QueryMenuItem> </div> </QueryMenuView> @@ -31,7 +31,8 @@ <script setup lang="ts"> import { QueryMenuView, QueryMenuItem, ProRadio } from '@12333/components'; -import { GenderText } from '@12333/constants'; +import { GenderText, SearchType } from '@12333/constants'; +import { useSearchSettingType } from '@12333/hooks'; defineOptions({ name: 'HomeQueryMenuView', @@ -41,6 +42,13 @@ // const props = withDefaults(defineProps<Props>(), {}); +const { searchSettingTypeList: CertificateTypeList } = useSearchSettingType({ + searchType: SearchType.CertificateType, +}); +const { searchSettingTypeList: IdentityList } = useSearchSettingType({ + searchType: SearchType.Identity, +}); + const emit = defineEmits<{ (e: 'reset'): void; (e: 'close'): void; diff --git a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue index 243cce3..e143e38 100644 --- a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue +++ b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue @@ -13,6 +13,7 @@ :icon="IconAttentionActive" text="鏀惰棌" :isFlex="false" + @click="handleAttention" ></PageFooterAction> <PageFooterBtn type="primary" @click="toggle">绔嬪嵆鑱旂郴</PageFooterBtn> </template> @@ -29,6 +30,7 @@ import IconAttention from '@/assets/flexJob/icon-attention-lg.png'; import IconAttentionActive from '@/assets/flexJob/icon-attention-lg-active.png'; import { useToggle } from 'senin-mini/hooks'; +import { Message } from '@12333/utils'; defineOptions({ name: 'flexJobDetail', @@ -56,6 +58,19 @@ }); const { isCollapse, toggle } = useToggle(); + +async function handleAttention() { + try { + let params: API.CollectFlexWorkerResumeInput = { + flexWorkerId: detail.value?.flexWorkerId, + userResumeId: detail.value?.userResumeId, + }; + let res = await flexWorkerServices.collectFlexWorkerResume(params); + if (res) { + Message.success('鏀惰棌鎴愬姛'); + } + } catch (error) {} +} </script> <style lang="scss"> diff --git a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue index 65077aa..b52155b 100644 --- a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue +++ b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue @@ -8,18 +8,19 @@ title-gutter="12" title-scroll > - <ProTabPane :title="`宸茬绾" :pane-key="TaskStatus.All"></ProTabPane> - <ProTabPane :title="`寰呯绾" :pane-key="TaskStatus.WaitSign"></ProTabPane> - <ProTabPane :title="`宸茶В绾" :pane-key="TaskStatus.Effect"></ProTabPane> + <ProTabPane :title="`宸茬绾" :pane-key="FlexWorkerEleSignEnum.HasSign"></ProTabPane> + <ProTabPane :title="`寰呯绾" :pane-key="FlexWorkerEleSignEnum.WaitSign"></ProTabPane> + <ProTabPane :title="`宸茶В绾" :pane-key="FlexWorkerEleSignEnum.CancelSign"></ProTabPane> </ProTabs> <InfiniteLoading scrollViewClassName="common-infinite-scroll-list home-list" v-bind="infiniteLoadingProps" + :key="queryState.mineHireType" > <template #renderItem="{ item }"> <FlexJobCard :show-done-detail="false" :show-footer-left="false" @click="goDetail(item)"> <template #footerRight> - <template v-if="Number(queryState.mineHireType) === TaskStatus.All"> + <template v-if="queryState.mineHireType === FlexWorkerEleSignEnum.HasSign"> <nut-button class="flexJobManage-card-plain-button" type="default" @@ -42,7 +43,7 @@ import { useInfiniteLoading } from '@12333/hooks'; import { OrderInputType } from '@12333/constants'; import * as flexWorkerServices from '@12333/services/api/FlexWorker'; -import { TaskStatus } from '@/constants/task'; +import { FlexWorkerEleSignEnum } from '@/constants/task'; import Taro from '@tarojs/taro'; defineOptions({ @@ -50,12 +51,13 @@ }); const queryState = reactive({ - mineHireType: TaskStatus.All, + mineHireType: FlexWorkerEleSignEnum.HasSign, }); const { infiniteLoadingProps } = useInfiniteLoading( ({ pageParam }) => { - let params: API.GetFlexTaskListInput = { + let params: API.GetFlexSignWorkerListInput = { + signStatus: queryState.mineHireType, pageModel: { rows: 20, page: pageParam, @@ -63,24 +65,24 @@ }, }; - return flexWorkerServices.getFlexTaskByArrange(params, { + return flexWorkerServices.getFlexSignWorkerList(params, { showLoading: false, }); }, { - queryKey: ['flexWorkerServices/getFlexTaskByArrange'], + queryKey: ['flexWorkerServices/getFlexSignWorkerList', queryState], } ); -function goDetail(item: API.GetFlexTaskListOutput) { +function goDetail(item: API.GetNewestWorkerListOutput) { Taro.navigateTo({ - url: `${RouterPath.flexJobDetailFromManage}?id=${item.taskId}`, + url: `${RouterPath.flexJobDetailFromManage}?userId=${item.userId}`, }); } function checkContract() {} function handleUnContract() {} -function goSignContract(item: API.GetFlexTaskListOutput) { +function goSignContract(item: API.GetNewestWorkerListOutput) { Taro.navigateTo({ url: `${RouterPath.flexJobSign}`, }); diff --git a/apps/bMiniApp/src/subpackages/jobApplicationManage/components/JobDetail.vue b/apps/bMiniApp/src/subpackages/jobApplicationManage/components/JobDetail.vue index ceb504a..9caeaae 100644 --- a/apps/bMiniApp/src/subpackages/jobApplicationManage/components/JobDetail.vue +++ b/apps/bMiniApp/src/subpackages/jobApplicationManage/components/JobDetail.vue @@ -34,7 +34,7 @@ <TaskDetailWelfareItem v-for="item in detail.taskWeals" :key="item.id" - :icon="setOSSLink(item.name)" + :icon="setOSSLink(item.imageUrl)" :text="item.name" /> </div> @@ -53,6 +53,7 @@ import { SalaryTimeTypeEnumUnit, FlexTaskSettleTypeEnumText } from '@/constants/task'; import dayjs from 'dayjs'; import { setOSSLink } from '@12333/utils'; +import { RectRight } from '@nutui/icons-vue-taro'; defineOptions({ name: 'JobDetail', diff --git a/apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue index 38a6504..1340552 100644 --- a/apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue +++ b/apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue @@ -7,7 +7,6 @@ isTransparent title-gutter="12" title-scroll - @change="invalidateQueries" > <ProTabPane :title="`${ @@ -86,7 +85,7 @@ }); }, { - queryKey: ['flexWorkerServices/getFlexTaskList'], + queryKey: ['flexWorkerServices/getFlexTaskList', queryState], } ); diff --git a/apps/bMiniApp/src/subpackages/mine/mineContactRecord/InnerPage.vue b/apps/bMiniApp/src/subpackages/mine/mineContactRecord/InnerPage.vue index 3869b14..2405fab 100644 --- a/apps/bMiniApp/src/subpackages/mine/mineContactRecord/InnerPage.vue +++ b/apps/bMiniApp/src/subpackages/mine/mineContactRecord/InnerPage.vue @@ -4,7 +4,18 @@ v-bind="infiniteLoadingProps" > <template #renderItem="{ item }"> - <FlexJobCard :show-footer-left="false"> </FlexJobCard> + <FlexJobCard + :show-footer-left="false" + :name="item.name" + :age="item.age" + :genderType="item.genderType" + :workExperience="item.workExperience" + :isRealName="item.isRealName" + :arrangeCount="item.arrangeCount" + :educationalLevel="item.educationalLevel" + @contact="handleContact" + > + </FlexJobCard> </template> </InfiniteLoading> </template> @@ -24,7 +35,7 @@ const { infiniteLoadingProps } = useInfiniteLoading( ({ pageParam }) => { - let params: API.GetFlexTaskListInput = { + let params: API.PageInput = { pageModel: { rows: 20, page: pageParam, @@ -32,14 +43,16 @@ }, }; - return flexWorkerServices.getFlexTaskByArrange(params, { + return flexWorkerServices.getUserContractRecordList(params, { showLoading: false, }); }, { - queryKey: ['flexWorkerServices/getFlexTaskByArrange'], + queryKey: ['flexWorkerServices/getUserContractRecordList'], } ); + +function handleContact() {} </script> <style lang="scss"> diff --git a/apps/bMiniApp/src/subpackages/mine/mineFavorites/InnerPage.vue b/apps/bMiniApp/src/subpackages/mine/mineFavorites/InnerPage.vue index 380011f..957308d 100644 --- a/apps/bMiniApp/src/subpackages/mine/mineFavorites/InnerPage.vue +++ b/apps/bMiniApp/src/subpackages/mine/mineFavorites/InnerPage.vue @@ -4,7 +4,18 @@ v-bind="infiniteLoadingProps" > <template #renderItem="{ item }"> - <FlexJobCard> </FlexJobCard> + <FlexJobCard + :name="item.name" + :age="item.age" + :genderType="item.genderType" + :workExperience="item.workExperience" + :isRealName="item.isRealName" + :arrangeCount="item.arrangeCount" + :educationalLevel="item.educationalLevel" + @contact="handleContact" + @cancel-collection="handleCancelCollection(item)" + > + </FlexJobCard> </template> </InfiniteLoading> </template> @@ -15,6 +26,7 @@ import { useInfiniteLoading } from '@12333/hooks'; import { OrderInputType } from '@12333/constants'; import * as flexWorkerServices from '@12333/services/api/FlexWorker'; +import { Message } from '@12333/utils'; defineOptions({ name: 'InnerPage', @@ -22,9 +34,9 @@ const userStore = useUserStore(); -const { infiniteLoadingProps } = useInfiniteLoading( +const { infiniteLoadingProps, invalidateQueries } = useInfiniteLoading( ({ pageParam }) => { - let params: API.GetFlexTaskListInput = { + let params: API.PageInput = { pageModel: { rows: 20, page: pageParam, @@ -32,14 +44,28 @@ }, }; - return flexWorkerServices.getFlexTaskByArrange(params, { + return flexWorkerServices.getWorkerResumeCollectList(params, { showLoading: false, }); }, { - queryKey: ['flexWorkerServices/getFlexTaskByArrange'], + queryKey: ['flexWorkerServices/getWorkerResumeCollectList'], } ); + +function handleContact() {} +async function handleCancelCollection(item: API.GetNewestWorkerListOutput) { + try { + let params: API.APIcancelUserResumeCollectParams = { + flexWorkerId: item.userId, + }; + let res = await flexWorkerServices.cancelUserResumeCollect(params); + if (res) { + Message.success('鎿嶄綔鎴愬姛'); + invalidateQueries(); + } + } catch (error) {} +} </script> <style lang="scss"> diff --git a/apps/bMiniApp/src/subpackages/task/batchTaskList/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/batchTaskList/InnerPage.vue index ae81c7c..d8c055d 100644 --- a/apps/bMiniApp/src/subpackages/task/batchTaskList/InnerPage.vue +++ b/apps/bMiniApp/src/subpackages/task/batchTaskList/InnerPage.vue @@ -1,5 +1,5 @@ <template> - <div class="searchbar-container"> + <div class="searchbar-container" v-if="showQueryState"> <BlSearchbar v-model.trim="searchValue" placeholder="鎼滅储濮撳悕/韬唤璇佸彿" @@ -18,8 +18,10 @@ :showFooterLeft="false" > <template #footerRight> - <nut-button type="primary" @click="handleArrange(item)">瀹夋帓</nut-button> - <!-- <div class="batch-task-card-status">宸插畨鎺�</div> --> + <nut-button v-if="showQueryState" type="primary" @click="handleArrange(item)" + >瀹夋帓</nut-button + > + <div v-else class="batch-task-card-status">宸插畨鎺�</div> </template> </FlexJobCard> </template> @@ -42,10 +44,15 @@ const searchValue = ref(''); const router = Taro.useRouter(); const taskId = router.params?.taskId ?? ''; +const status = router.params?.status ?? ''; const queryState = reactive({ searchValueTrim: '', }); +const showQueryState = computed(() => { + return status === 'arrange'; +}); + const handleSearch = _.debounce(function () { queryState.searchValueTrim = trim(searchValue.value); }, 300); diff --git a/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue index 85e4494..5728029 100644 --- a/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue +++ b/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue @@ -93,7 +93,7 @@ function goHandleTaskDetail(item: API.GetNewestWorkerListOutput) { Taro.navigateTo({ - url: `${RouterPath.taskHandleCheckDetail}?userId=${item.userId}`, + url: `${RouterPath.taskHandleCheckDetail}?userId=${item.userId}&taskId=${taskId}`, }); } </script> diff --git a/apps/bMiniApp/src/subpackages/task/taskHandleCheckDetail/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/taskHandleCheckDetail/InnerPage.vue index 84ccdba..cc10ce4 100644 --- a/apps/bMiniApp/src/subpackages/task/taskHandleCheckDetail/InnerPage.vue +++ b/apps/bMiniApp/src/subpackages/task/taskHandleCheckDetail/InnerPage.vue @@ -2,12 +2,19 @@ <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> <ContentScrollView style="background-color: #fff"> <div class="personal-info-wrapper"> - <TaskCheckPersonalView /> + <TaskCheckPersonalView + :avatarUrl="setOSSLink(detail.avatarUrl)" + :name="detail.name" + :isRealName="detail.isRealName" + :contactPhone="detail.contactPhone" + /> </div> <div class="taskCheckDetail-status-wrapper"> <div class="taskCheckDetail-status-title">楠屾敹鐓х墖</div> </div> - <div class="taskCheckDetail-time">2024.11.14 9:28:39</div> + <div class="taskCheckDetail-time"> + {{ dayjs(detail.appleCheckTime).format('YYYY.MM.DD HH:mm:ss') }} + </div> <nut-grid square :column-num="3" @@ -16,7 +23,11 @@ v-if="list.length > 0" class="pro-img-grid" > - <nut-grid-item v-for="(item, index) in list" :key="item" class="pro-img-grid-item"> + <nut-grid-item + v-for="(item, index) in detail.checkImageUrl" + :key="index" + class="pro-img-grid-item" + > <div class="pro-img-grid-img-item"> <PreviewImage :src="item" class="pro-img-grid-img" :urls="list" /> </div> @@ -37,13 +48,16 @@ import TaskCheckPersonalView from '../components/TaskCheckPersonalView.vue'; import { PreviewImage } from '@12333/components'; import { Colors } from '@12333/constants'; +import { setOSSLink } from '@12333/utils'; +import dayjs from 'dayjs'; defineOptions({ name: 'InnerPage', }); const router = Taro.useRouter(); -const taskId = router.params?.id ?? ''; +const taskId = router.params?.taskId ?? ''; +const userId = router.params?.userId ?? ''; const { isLoading, @@ -53,14 +67,14 @@ } = useQuery({ queryKey: ['flexWorkerServices/getOrdeForDetail', taskId], queryFn: async () => { - return await flexWorkerServices.getOrdeForDetail( - { id: taskId }, + return await flexWorkerServices.getFlexTaskWorkerCheckContentDto( + { flexTaskId: taskId, flexWorkerId: userId }, { showLoading: false, } ); }, - placeholderData: () => ({} as API.OrderInfoDto), + placeholderData: () => ({} as API.GetTaskWorkerCheckContentOutput), }); const list = ref([ diff --git a/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue index 14184b8..9c049a0 100644 --- a/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue +++ b/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue @@ -34,10 +34,12 @@ type="primary" :color="Colors.Info" class="dark-btn" - @click="goSubmitTaskDetail(item)" + @click.stop="goBatchTaskList(item, 'detail')" >璇︽儏</nut-button > - <nut-button type="primary" v-else @click="goBatchTaskList(item)">浜哄憳瀹夋帓</nut-button> + <nut-button type="primary" v-else @click.stop="goBatchTaskList(item, 'arrange')" + >浜哄憳瀹夋帓</nut-button + > </template> </JobApplicationCard> </template> @@ -93,9 +95,9 @@ }); } -function goBatchTaskList(item: API.GetFlexTaskListOutput) { +function goBatchTaskList(item: API.GetFlexTaskListOutput, status: string) { Taro.navigateTo({ - url: `${RouterPath.batchTaskList}?taskId=${item.taskId}`, + url: `${RouterPath.batchTaskList}?taskId=${item.taskId}&detail=${status}`, }); } </script> diff --git a/apps/cMiniApp/src/pages/home/index.vue b/apps/cMiniApp/src/pages/home/index.vue index 1c9395b..de26f12 100644 --- a/apps/cMiniApp/src/pages/home/index.vue +++ b/apps/cMiniApp/src/pages/home/index.vue @@ -110,7 +110,7 @@ function goTaskDetail(item: API.GetFlexTaskListOutput) { Taro.navigateTo({ - url: `${RouterPath.taskDetail}?id=${item.id}`, + url: `${RouterPath.taskDetail}?id=${item.taskId}`, }); } </script> diff --git a/apps/cMiniApp/src/pages/mine/index.vue b/apps/cMiniApp/src/pages/mine/index.vue index b1746f9..e07e7ce 100644 --- a/apps/cMiniApp/src/pages/mine/index.vue +++ b/apps/cMiniApp/src/pages/mine/index.vue @@ -136,9 +136,9 @@ Taro.useShareAppMessage((res) => { return { - title: `${userDetail.value?.contacter}鍚嶇墖`, + // title: `${userDetail.value?.contacter}鍚嶇墖`, // path: `${RouterPath.userHomePage}?userId=${userDetail.value?.userId}`, - imageUrl: userDetail.value?.avatarUrl, + // imageUrl: userDetail.value?.avatarUrl, }; }); diff --git a/apps/cMiniApp/src/pages/task/InnerPage.vue b/apps/cMiniApp/src/pages/task/InnerPage.vue index cb331f8..33a1569 100644 --- a/apps/cMiniApp/src/pages/task/InnerPage.vue +++ b/apps/cMiniApp/src/pages/task/InnerPage.vue @@ -63,7 +63,7 @@ // url: `${RouterPath.taskSubmitCheck}?id=${item.id}`, // }); Taro.navigateTo({ - url: `${RouterPath.taskCheckDetail}?id=${item.id}`, + url: `${RouterPath.taskCheckDetail}?id=${item.taskId}`, }); } </script> diff --git a/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue index 7b1d765..cfccdcb 100644 --- a/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue +++ b/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue @@ -10,18 +10,18 @@ <nut-form-item label="鎵嬫満鍙�:" class="bole-form-item" prop="phone" required> <nut-input v-model.trim="form.phone" placeholder="璇疯緭鍏ユ墜鏈哄彿" type="text" /> </nut-form-item> - <nut-form-item label="韬唤:" class="bole-form-item" prop="gender"> + <nut-form-item label="韬唤:" class="bole-form-item" prop="socialIdentity"> <ChooseInputWithPicker - v-model="form.gender" + v-model="form.socialIdentity" placeholder="璇烽�夋嫨韬唤" - :value-enum="TaskStatusText" + :value-enum="IdentityTypeList" /> </nut-form-item> - <nut-form-item label="瀛﹀巻:" class="bole-form-item" prop="gender"> + <nut-form-item label="瀛﹀巻:" class="bole-form-item" prop="educationalLevel"> <ChooseInputWithPicker - v-model="form.gender" + v-model="form.educationalLevel" placeholder="璇烽�夋嫨瀛﹀巻" - :value-enum="TaskStatusText" + :value-enum="EducationTypeList" /> </nut-form-item> <nut-form-item label="甯搁┗鍩庡競:" class="bole-form-item" prop="gender"> @@ -44,22 +44,35 @@ import { TaskStatusText, TaskStatus } from '@/constants'; import { convertApi2FormUrlOnlyOne } from '@12333/utils'; import { useUser } from '@/hooks'; +import { useSearchSettingType } from '@12333/hooks'; +import { SearchType } from '@12333/constants'; defineOptions({ name: 'InnerPage', }); -const { userDetail } = useUser(); +const { searchSettingTypeList: EducationTypeList } = useSearchSettingType({ + searchType: SearchType.Education, +}); +const { searchSettingTypeList: IdentityTypeList } = useSearchSettingType({ + searchType: SearchType.Identity, +}); const form = reactive({ - avatarUrl: convertApi2FormUrlOnlyOne(userDetail.value?.originalAvatarUrl), + // avatarUrl: convertApi2FormUrlOnlyOne(userDetail.value?.originalAvatarUrl), name: '', phone: '', gender: TaskStatus.All, + socialIdentity: '', + educationalLevel: '', + areaList: [] as number[], }); const rules = reactive<FormRules>({ phone: [{ required: true, message: '璇疯緭鍏ユ墜鏈哄彿' }], + socialIdentity: [{ required: true, message: '璇烽�夋嫨韬唤' }], + educationalLevel: [{ required: true, message: '璇烽�夋嫨瀛﹀巻' }], + areaList: [{ required: true, message: '璇烽�夋嫨甯搁┗鍩庡競' }], }); const formRef = ref<any>(null); function handleConfirm() { diff --git a/apps/cMiniApp/src/subpackages/curriculum/mineCurriculumVitae/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/mineCurriculumVitae/InnerPage.vue index 629cb78..77d25d5 100644 --- a/apps/cMiniApp/src/subpackages/curriculum/mineCurriculumVitae/InnerPage.vue +++ b/apps/cMiniApp/src/subpackages/curriculum/mineCurriculumVitae/InnerPage.vue @@ -91,12 +91,14 @@ import MineAgreementSignDetailItem from '../../mine/mineAgreementSignDetail/MineAgreementSignDetailItem.vue'; import { List, ListItem, JobTagList } from '@12333/components'; import { RouterPath } from '@/constants'; +import * as userResumeServices from '@12333/services/api/userResume'; import IconArrow from '@/assets/setting/icon-arrow.png'; import IconAuth from '@/assets/mine/icon-auth.png'; import IconMale from '@/assets/mine/icon-male.png'; import IconFemale from '@/assets/mine/icon-female.png'; import IconPhone from '@/assets/mine/icon-phone.png'; import Taro from '@tarojs/taro'; +import { useQuery } from '@tanstack/vue-query'; defineOptions({ name: 'InnerPage', @@ -104,6 +106,25 @@ const userStore = useUserStore(); const isLogin = useIsLogin(); +const router = Taro.useRouter(); + +const taskId = router.params?.taskId; + +const { + isLoading, + isError, + data: detail, + refetch, +} = useQuery({ + queryKey: ['userResumeServices/getUserResume', taskId], + queryFn: async () => { + return await userResumeServices.getUserResume({ + showLoading: false, + }); + }, + placeholderData: () => ({} as API.MyResumeOutput), + onSuccess(data) {}, +}); function goPage(routeName: string) { Taro.navigateTo({ diff --git a/apps/cMiniApp/src/subpackages/curriculum/mineDetailedInfo/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/mineDetailedInfo/InnerPage.vue index 02bb09b..e360f49 100644 --- a/apps/cMiniApp/src/subpackages/curriculum/mineDetailedInfo/InnerPage.vue +++ b/apps/cMiniApp/src/subpackages/curriculum/mineDetailedInfo/InnerPage.vue @@ -17,7 +17,8 @@ prop="photo" label-position="top" > - <Uploader v-model:file-list="form.photo" :maximum="6" class="bole-uploader"> </Uploader> + <Uploader v-model:file-list="form.lifeCircleImgUrlList" :maximum="6" class="bole-uploader"> + </Uploader> </nut-form-item> </nut-form> </ContentScrollView> @@ -27,22 +28,64 @@ </template> <script setup lang="ts"> -import { useUser } from '@/hooks'; +import { goBack } from '@/utils'; import { NumberInput } from '@12333/components'; +import * as userResumeServices from '@12333/services/api/userResume'; +import { convertApiPath2Url, Message } from '@12333/utils'; +import { FileItem } from '@nutui/nutui-taro/dist/types/__VUE/uploader/type'; +import { useQuery } from '@tanstack/vue-query'; defineOptions({ name: 'InnerPage', }); -const { userDetail } = useUser(); +const { + isLoading, + isError, + data: detail, + refetch, +} = useQuery({ + queryKey: ['userResumeServices/getUserResumeDetailInfo'], + queryFn: async () => { + return await userResumeServices.getUserResumeDetailInfo({ + showLoading: false, + }); + }, + placeholderData: () => ({} as API.UserResumeDetailInfoOutput), + onSuccess(data) { + form.height = data.height; + form.weight = data.weight; + form.lifeCircleImgUrlList = data.lifeCircleImgUrlList?.length + ? data.lifeCircleImgUrlList.map((x) => convertApiPath2Url(x)) + : []; + }, +}); const form = reactive({ height: '', weight: '', - photo: [], + lifeCircleImgUrlList: [] as FileItem[], }); -function handleConfirm() {} +async function handleConfirm() { + try { + let params: API.SaveUserResumeDetailInfoInput = { + weight: form.weight, + height: form.weight, + lifeCircleImgUrlList: form.lifeCircleImgUrlList?.length + ? form.lifeCircleImgUrlList.map((x) => x.url) + : [], + }; + let res = await userResumeServices.saveUserResumeDetailInfo(params); + if (res) { + Message.success('淇濆瓨鎴愬姛', { + onClosed() { + goBack(); + }, + }); + } + } catch (error) {} +} </script> <style lang="scss"> diff --git a/apps/cMiniApp/src/subpackages/curriculum/mineWorkExperience/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/mineWorkExperience/InnerPage.vue index 5dd1dbc..60f5d12 100644 --- a/apps/cMiniApp/src/subpackages/curriculum/mineWorkExperience/InnerPage.vue +++ b/apps/cMiniApp/src/subpackages/curriculum/mineWorkExperience/InnerPage.vue @@ -1,11 +1,11 @@ <template> <ContentScrollView :paddingH="false"> <nut-form :model-value="form" ref="formRef"> - <nut-form-item label="宸ヤ綔骞撮檺:" class="bole-form-item" prop="workYear"> - <nut-input v-model="form.workYear" placeholder="璇疯緭鍏�"> </nut-input> + <nut-form-item label="宸ヤ綔骞撮檺:" class="bole-form-item" prop="workingSeniority"> + <nut-input v-model="form.workingSeniority" placeholder="璇疯緭鍏�"> </nut-input> </nut-form-item> - <nut-form-item label="宸ヤ綔缁忛獙:" class="bole-form-item" prop="workYear"> - <nut-input v-model="form.workYear" type="textarea" placeholder="璇疯緭鍏�"> </nut-input> + <nut-form-item label="宸ヤ綔缁忛獙:" class="bole-form-item" prop="workExperience"> + <nut-input v-model="form.workExperience" type="textarea" placeholder="璇疯緭鍏�"> </nut-input> </nut-form-item> </nut-form> </ContentScrollView> @@ -15,19 +15,55 @@ </template> <script setup lang="ts"> -import { useUser } from '@/hooks'; +import { goBack } from '@/utils'; +import * as userResumeServices from '@12333/services/api/userResume'; +import { Message } from '@12333/utils'; +import { useQuery } from '@tanstack/vue-query'; defineOptions({ name: 'InnerPage', }); -const { userDetail } = useUser(); - const form = reactive({ - workYear: '', + workingSeniority: '', + workExperience: '', }); -function handleConfirm() {} +const { + isLoading, + isError, + data: detail, + refetch, +} = useQuery({ + queryKey: ['userResumeServices/getUserResumeWorkExperience'], + queryFn: async () => { + return await userResumeServices.getUserResumeWorkExperience({ + showLoading: false, + }); + }, + placeholderData: () => ({} as API.UserResumeWorkExperienceOutput), + onSuccess(data) { + form.workingSeniority = data.workingSeniority; + form.workExperience = data.workExperience; + }, +}); + +async function handleConfirm() { + try { + let params: API.SaveUserResumeWorkExperienceInput = { + workingSeniority: form.workingSeniority, + workExperience: form.workExperience, + }; + let res = await userResumeServices.saveUserResumeWorkExperience(params); + if (res) { + Message.success('淇濆瓨鎴愬姛', { + onClosed() { + goBack(); + }, + }); + } + } catch (error) {} +} </script> <style lang="scss"> diff --git a/apps/cMiniApp/src/subpackages/user/complaint/complaint.vue b/apps/cMiniApp/src/subpackages/user/complaint/complaint.vue index 32c86ac..445dd60 100644 --- a/apps/cMiniApp/src/subpackages/user/complaint/complaint.vue +++ b/apps/cMiniApp/src/subpackages/user/complaint/complaint.vue @@ -52,7 +52,7 @@ <script setup lang="ts"> import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types'; -import * as cooperationApplyServices from '@12333/services/api/CooperationApply'; +// import * as cooperationApplyServices from '@12333/services/api/CooperationApply'; import { CooperateTypeText, CooperateApplyTypeEnum } from '@12333/constants'; import { FormValidator, Message } from '@12333/utils'; import Taro from '@tarojs/taro'; @@ -94,23 +94,23 @@ async function createPlatformCooperationApply() { try { - let params: API.CreatePlatformCooperationApplyInput = { - title: CooperateTypeText.Complaint, - contact: form.contact, - contactPhone: form.contactPhone, - applyDescription: form.remark, - companyName: form.companyName, - applyType: CooperateApplyTypeEnum.Complaint, - }; - let res = await cooperationApplyServices.createPlatformCooperationApply(params); - if (res) { - await Message.confirm({ - message: '淇℃伅宸叉彁浜わ紝璇疯�愬績绛夊緟宸ヤ綔浜哄憳鐨勮仈绯�', - }); - Taro.navigateBack({ - delta: 1, - }); - } + // let params: API.CreatePlatformCooperationApplyInput = { + // title: CooperateTypeText.Complaint, + // contact: form.contact, + // contactPhone: form.contactPhone, + // applyDescription: form.remark, + // companyName: form.companyName, + // applyType: CooperateApplyTypeEnum.Complaint, + // }; + // let res = await cooperationApplyServices.createPlatformCooperationApply(params); + // if (res) { + // await Message.confirm({ + // message: '淇℃伅宸叉彁浜わ紝璇疯�愬績绛夊緟宸ヤ綔浜哄憳鐨勮仈绯�', + // }); + // Taro.navigateBack({ + // delta: 1, + // }); + // } } catch (error) {} } </script> diff --git a/packages/components/src/Card/FlexJobCard.vue b/packages/components/src/Card/FlexJobCard.vue index 8039453..bcdc7ac 100644 --- a/packages/components/src/Card/FlexJobCard.vue +++ b/packages/components/src/Card/FlexJobCard.vue @@ -1,6 +1,13 @@ <template> <div class="flexJob-card-wrapper"> - <FlexJobTopView :name="name" :age="age" :genderType="genderType" /> + <FlexJobTopView + :name="name" + :age="age" + :genderType="genderType" + :isRealName="isRealName" + :arrangeCount="arrangeCount" + :educationalLevel="educationalLevel" + /> <div class="flexJob-card-done-list"> {{ workExperience }} </div> @@ -14,14 +21,16 @@ <div class="flexJob-card-footer-left-wrapper"> <div class="flexJob-card-footer-left" v-if="showFooterLeft"> <slot name="footerLeft"> - <div class="flexJob-card-footer-text">鍙栨秷鏀惰棌</div> + <div class="flexJob-card-footer-text" @click.stop="emit('cancelCollection')"> + 鍙栨秷鏀惰棌 + </div> </slot> </div> </div> <div class="flexJob-card-footer-right" v-if="showFooterRight"> <slot name="footerRight"> - <nut-button type="primary">绔嬪嵆鑱旂郴</nut-button> + <nut-button type="primary" @click.stop="emit('contact')">绔嬪嵆鑱旂郴</nut-button> </slot> </div> </div> @@ -29,8 +38,6 @@ </template> <script setup lang="ts"> -import IconMale from '@/assets/mine/icon-male.png'; -import IconFemale from '@/assets/mine/icon-female.png'; import { CommonTaskCardProps } from './card'; import FlexJobTopView from './FlexJobTopView.vue'; import { Gender } from '@12333/constants'; @@ -47,6 +54,7 @@ name?: string; genderType?: Gender; age?: number; + isRealName?: boolean; educationalLevel?: string; workExperience?: string; arrangeCount?: number; @@ -57,6 +65,11 @@ showFooterRight: true, showDoneDetail: true, }); + +const emit = defineEmits<{ + (e: 'cancelCollection'): void; + (e: 'contact'): void; +}>(); </script> <style lang="scss"> diff --git a/packages/services/api/FlexTask.ts b/packages/services/api/FlexTask.ts new file mode 100644 index 0000000..e26d387 --- /dev/null +++ b/packages/services/api/FlexTask.ts @@ -0,0 +1,63 @@ +/* eslint-disable */ +// @ts-ignore +import { request } from '@/utils/request'; + +/** 鑾峰彇浠诲姟璇︽儏 GET /api/FlexTask/GetFlexTaskDetail */ +export async function getFlexTaskDetail( + // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) + params: API.APIgetFlexTaskDetailParams, + options?: API.RequestConfig +) { + return request<API.GetFlexTaskDetailForBackOutput>('/api/FlexTask/GetFlexTaskDetail', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 鑾峰彇杩愯惀绔换鍔$鐞嗗垪琛� POST /api/FlexTask/GetFlexTaskList */ +export async function getFlexTaskList( + body: API.GetFlexTaskForBackInput, + options?: API.RequestConfig +) { + return request<API.FlexTaskListOutputPageOutput>('/api/FlexTask/GetFlexTaskList', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 鑾峰彇鎶ュ悕璇︽儏 POST /api/FlexTask/GetFlexTaskWorkerList */ +export async function getFlexTaskWorkerList( + body: API.GetFlexTaskWorkerListInput, + options?: API.RequestConfig +) { + return request<API.GetWorkerListForBackOutputPageOutput>('/api/FlexTask/GetFlexTaskWorkerList', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 璁剧疆浠诲姟鎺ㄨ崘鐘舵�� POST /api/FlexTask/SetFlexTaskReRecommendStatus */ +export async function setFlexTaskReRecommendStatus( + body: API.SetRecommendInput, + options?: API.RequestConfig +) { + return request<number>('/api/FlexTask/SetFlexTaskReRecommendStatus', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} diff --git a/packages/services/api/User.ts b/packages/services/api/User.ts new file mode 100644 index 0000000..603e2e7 --- /dev/null +++ b/packages/services/api/User.ts @@ -0,0 +1,11 @@ +/* eslint-disable */ +// @ts-ignore +import { request } from '@/utils/request'; + +/** 鑾峰彇涓汉淇℃伅璇︽儏 GET /api/User/GetUserInfo */ +export async function getUserInfo(options?: API.RequestConfig) { + return request<API.UserDto>('/api/User/GetUserInfo', { + method: 'GET', + ...(options || {}), + }); +} diff --git a/packages/services/api/UserResume.ts b/packages/services/api/UserResume.ts index b10d921..9b0735e 100644 --- a/packages/services/api/UserResume.ts +++ b/packages/services/api/UserResume.ts @@ -2,7 +2,7 @@ // @ts-ignore import { request } from '@/utils/request'; -/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 GET /api/UserResume/GetUserResume */ +/** 鏍规嵁鐢ㄦ埛鑾峰彇绠�鍘� GET /api/UserResume/GetUserResume */ export async function getUserResume(options?: API.RequestConfig) { return request<API.MyResumeOutput>('/api/UserResume/GetUserResume', { method: 'GET', @@ -10,7 +10,7 @@ }); } -/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 GET /api/UserResume/GetUserResumeCertificateDetailById */ +/** 鏍规嵁璁よ瘉id鑾峰彇璁よ瘉璇︽儏 GET /api/UserResume/GetUserResumeCertificateDetailById */ export async function getUserResumeCertificateDetailById( // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) params: API.APIgetUserResumeCertificateDetailByIdParams, @@ -28,7 +28,7 @@ ); } -/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 GET /api/UserResume/GetUserResumeCertificateList */ +/** 鏍规嵁鐢ㄦ埛ID鑾峰彇鐢ㄦ埛璁よ瘉淇℃伅 GET /api/UserResume/GetUserResumeCertificateList */ export async function getUserResumeCertificateList(options?: API.RequestConfig) { return request<API.UserResumeCertificateListOutput[]>( '/api/UserResume/GetUserResumeCertificateList', @@ -39,7 +39,7 @@ ); } -/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 GET /api/UserResume/GetUserResumeDetailInfo */ +/** 鑾峰彇鐢ㄦ埛绠�鍘嗚鎯� GET /api/UserResume/GetUserResumeDetailInfo */ export async function getUserResumeDetailInfo(options?: API.RequestConfig) { return request<API.UserResumeDetailInfoOutput>('/api/UserResume/GetUserResumeDetailInfo', { method: 'GET', @@ -47,7 +47,7 @@ }); } -/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 GET /api/UserResume/GetUserResumeWorkExperience */ +/** 鏍规嵁鐢ㄦ埛id鑾峰彇鐢ㄦ埛宸ヤ綔缁忓巻 GET /api/UserResume/GetUserResumeWorkExperience */ export async function getUserResumeWorkExperience(options?: API.RequestConfig) { return request<API.UserResumeWorkExperienceOutput>( '/api/UserResume/GetUserResumeWorkExperience', @@ -58,12 +58,12 @@ ); } -/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 POST /api/UserResume/SaveUserResumeBaseInfo */ +/** 淇濆瓨绠�鍘嗙殑鍩虹淇℃伅 POST /api/UserResume/SaveUserResumeBaseInfo */ export async function saveUserResumeBaseInfo( body: API.SaveUserResumeBaseInfoInput, options?: API.RequestConfig ) { - return request<any>('/api/UserResume/SaveUserResumeBaseInfo', { + return request<number>('/api/UserResume/SaveUserResumeBaseInfo', { method: 'POST', headers: { 'Content-Type': 'application/json', @@ -73,12 +73,12 @@ }); } -/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 POST /api/UserResume/SaveUserResumeCertificate */ +/** 淇濆瓨鐢ㄦ埛鐨勭畝鍘嗚璇佷俊鎭� POST /api/UserResume/SaveUserResumeCertificate */ export async function saveUserResumeCertificate( body: API.SaveUserResumeCertificateInput, options?: API.RequestConfig ) { - return request<any>('/api/UserResume/SaveUserResumeCertificate', { + return request<number>('/api/UserResume/SaveUserResumeCertificate', { method: 'POST', headers: { 'Content-Type': 'application/json', @@ -88,12 +88,12 @@ }); } -/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 POST /api/UserResume/SaveUserResumeDetailInfo */ +/** 淇濆瓨绠�鍘嗚鎯� POST /api/UserResume/SaveUserResumeDetailInfo */ export async function saveUserResumeDetailInfo( body: API.SaveUserResumeDetailInfoInput, options?: API.RequestConfig ) { - return request<any>('/api/UserResume/SaveUserResumeDetailInfo', { + return request<number>('/api/UserResume/SaveUserResumeDetailInfo', { method: 'POST', headers: { 'Content-Type': 'application/json', @@ -103,12 +103,12 @@ }); } -/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 POST /api/UserResume/SaveUserResumeExpectationJob */ +/** 淇濆瓨鐢ㄦ埛鏈熸湜鐨勫矖浣嶄俊鎭� POST /api/UserResume/SaveUserResumeExpectationJob */ export async function saveUserResumeExpectationJob( body: API.SaveUserResumeExpectationJobInput, options?: API.RequestConfig ) { - return request<any>('/api/UserResume/SaveUserResumeExpectationJob', { + return request<number>('/api/UserResume/SaveUserResumeExpectationJob', { method: 'POST', headers: { 'Content-Type': 'application/json', @@ -118,12 +118,12 @@ }); } -/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 POST /api/UserResume/SaveUserResumeWorkExperience */ +/** 淇濆瓨鐢ㄦ埛宸ヤ綔缁忓巻 POST /api/UserResume/SaveUserResumeWorkExperience */ export async function saveUserResumeWorkExperience( body: API.SaveUserResumeWorkExperienceInput, options?: API.RequestConfig ) { - return request<any>('/api/UserResume/SaveUserResumeWorkExperience', { + return request<number>('/api/UserResume/SaveUserResumeWorkExperience', { method: 'POST', headers: { 'Content-Type': 'application/json', diff --git a/packages/services/api/index.ts b/packages/services/api/index.ts index 4b96af1..a9c1745 100644 --- a/packages/services/api/index.ts +++ b/packages/services/api/index.ts @@ -9,6 +9,7 @@ import * as Common from './Common'; import * as Features from './Features'; import * as FlexEnterprise from './FlexEnterprise'; +import * as FlexTask from './FlexTask'; import * as FlexWorker from './FlexWorker'; import * as IdentityRole from './IdentityRole'; import * as IdentityUser from './IdentityUser'; @@ -18,6 +19,7 @@ import * as Profile from './Profile'; import * as SearchSetting from './SearchSetting'; import * as Tenant from './Tenant'; +import * as User from './User'; import * as UserResume from './UserResume'; import * as Version from './Version'; export default { @@ -28,6 +30,7 @@ Common, Features, FlexEnterprise, + FlexTask, FlexWorker, IdentityRole, IdentityUser, @@ -37,6 +40,7 @@ Profile, SearchSetting, Tenant, + User, UserResume, Version, }; diff --git a/packages/services/api/typings.d.ts b/packages/services/api/typings.d.ts index b48eac8..3b11f05 100644 --- a/packages/services/api/typings.d.ts +++ b/packages/services/api/typings.d.ts @@ -184,6 +184,10 @@ moduleId?: string; } + interface APIgetFlexTaskDetailParams { + id?: string; + } + interface APIgetFlexTaskDtoParams { id?: string; } @@ -799,6 +803,7 @@ id?: string; aideType?: FlexTaskAideEnum; name?: string; + imageUrl?: string; } type FlexTaskAideEnum = 10 | 20; @@ -806,6 +811,38 @@ type FlexTaskCheckAcceptStatusEnum = 10 | 20 | 30; type FlexTaskFeeTypeEnum = 10 | 20 | 30 | 40; + + interface FlexTaskListOutput { + taskId?: string; + /** 浠诲姟鍚嶇О */ + taskName?: string; + releaseStatus?: FlexTaskReleaseStatusEnum; + /** 瀹夋帓鐘舵�� */ + arrangeStatus?: boolean; + /** 鍙戝竷鏃ユ湡 */ + startDate?: string; + /** 缁撴潫鏃ユ湡 */ + endDate?: string; + feeType?: FlexTaskFeeTypeEnum; + settleType?: FlexTaskSettleTypeEnum; + settleStatus?: SettleStatusEnum; + /** 鏄惁鎺ㄨ崘 */ + isRecommend?: boolean; + /** 缁撶畻鏂瑰紡 */ + fee?: number; + /** 鎶ュ悕浜烘暟 */ + applyWorkerCount?: number; + /** 鏄惁宸插畬鎴愰獙鏀� */ + isOverCheck?: boolean; + overCheckStatus?: OverCheckStatusEnum; + creationTime?: string; + } + + interface FlexTaskListOutputPageOutput { + pageModel?: Pagination; + objectData?: any; + data?: FlexTaskListOutput[]; + } type FlexTaskReleaseStatusEnum = 10 | 20; @@ -869,6 +906,44 @@ signStatus?: FlexWorkerEleSignEnum; } + interface GetFlexTaskDetailForBackOutput { + /** 浠诲姟Id */ + taskId?: string; + /** 浠诲姟鍚嶇О */ + taskName?: string; + isArrange?: boolean; + startDate?: string; + endDate?: string; + feeType?: FlexTaskFeeTypeEnum; + feeTypeName?: string; + settleType?: FlexTaskSettleTypeEnum; + /** 缁撶畻鏂瑰紡 */ + settleTypeName?: string; + /** 绂忓埄 */ + taskWeals?: FlexTaskAideDto[]; + /** 璇佷功 */ + taskCerts?: FlexTaskAideDto[]; + /** 鏈嶅姟璐� */ + fee?: number; + provinceId?: number; + cityId?: number; + areaId?: number; + /** 鐪� */ + provinceName?: string; + /** 甯� */ + cityName?: string; + /** 鍖哄煙 */ + areaName?: string; + /** 浠诲姟鍦扮偣 */ + address?: string; + creationDate?: string; + /** 鏈�灏忓勾榫� */ + minAge?: number; + /** 鏈�澶у勾榫� */ + maxAge?: number; + sexType?: GenderTypeEnum; + } + interface GetFlexTaskDtoOutput { taskId?: string; taskName?: string; @@ -893,6 +968,19 @@ minAge?: number; maxAge?: number; sexType?: GenderTypeEnum; + } + + interface GetFlexTaskForBackInput { + pageModel?: Pagination; + /** 浠诲姟鍚嶇О */ + taskName?: string; + /** 鍙戝竷寮�濮嬫棩鏈� */ + startBeginDate?: string; + /** 鍙戝竷缁撴潫鏃ユ湡 */ + startEndDate?: string; + releaseStatus?: FlexTaskReleaseStatusEnum; + /** 鏄惁鎺ㄨ崘 */ + isRecommend?: boolean; } interface GetFlexTaskListByStatusInput { @@ -961,6 +1049,11 @@ /** 浠诲姟Id */ flexTaskId?: string; checkAcceptStatus?: FlexTaskCheckAcceptStatusEnum; + } + + interface GetFlexTaskWorkerListInput { + pageModel?: Pagination; + flexTaskId?: string; } interface GetFlexWorkerRecordOutput { @@ -1102,6 +1195,27 @@ interface GetTypeSearchSettingListInput { searchType: number; belongType?: number; + } + + interface GetWorkerListForBackOutput { + userId?: string; + /** 濮撳悕 */ + name?: string; + /** 韬唤璇佸彿鐮� */ + idNumber?: string; + /** 鐢佃瘽鍙风爜 */ + contactPhone?: string; + /** 骞撮緞 */ + age?: number; + genderType?: GenderTypeEnum; + eduLevelName?: string; + hireStatus?: FlexTaskWorkerHireEnum; + } + + interface GetWorkerListForBackOutputPageOutput { + pageModel?: Pagination; + objectData?: any; + data?: GetWorkerListForBackOutput[]; } interface IanaTimeZone { @@ -1393,6 +1507,7 @@ resumeCertifiDetail?: UserResumeCertificateDetailOutput; resumeDetailInfo?: UserResumeDetailInfoOutput; resumeWorkExperience?: UserResumeWorkExperienceOutput; + /** 宸ヤ綔璁板綍 */ resumeWorkRecordList?: UserResumeWorkerRecordOutput[]; } @@ -1441,6 +1556,8 @@ securityToken?: string; requestId?: string; } + + type OverCheckStatusEnum = 10 | 20 | -10; interface PageInput { pageModel?: Pagination; @@ -1597,6 +1714,13 @@ typeSimple?: string; } + interface RoleDto { + /** 瑙掕壊Id */ + id?: string; + /** 瑙掕壊鍚� */ + name?: string; + } + interface SaveUserResumeBaseInfoInput { name?: string; socialIdentity?: string; @@ -1693,10 +1817,18 @@ preViewData?: string; } + interface SetRecommendInput { + id?: string; + /** 鏄惁鎺ㄨ崘 */ + isRecommend?: boolean; + } + interface SetRoleUserInput { userId?: string[]; roleId?: string; } + + type SettleStatusEnum = 10 | 20 | -10; interface SetUserRoleInput { userId?: string; @@ -1828,51 +1960,102 @@ items?: UserData[]; } - interface UserResumeBaseInfoOutput { + interface UserDto { + /** 鐢ㄦ埛Id */ + id?: string; + /** 鐧诲綍鐢ㄦ埛鍚嶏紙璐﹀彿锛� */ + userName?: string; + /** 鍚嶇О */ name?: string; + /** 鐢ㄦ埛鎵嬫満鍙� */ phoneNumber?: string; + /** 璐︽埛鏄惁閿佷綇锛堟槸鍚︾鐢級 */ + isLocked?: boolean; + /** 瑙掕壊淇℃伅 */ + roles?: RoleDto[]; + /** 澶囨敞 */ + remark?: string; + /** 缁勭粐鏋舵瀯鍏徃id */ + companyOrgId?: string; + /** 缁勭粐鏋舵瀯閮ㄩ棬id */ + departmentOrgId?: string; + } + + interface UserResumeBaseInfoOutput { + /** 濮撳悕 */ + name?: string; + /** 鐢佃瘽鍙风爜 */ + phoneNumber?: string; + /** 澶村儚 */ avatarUrl?: string; genderType?: GenderTypeEnum; + /** 骞撮緞 */ age?: number; + /** 涓婂矖娆℃暟 */ arrangeCount?: number; + /** 韬唤璇佸彿鐮� */ idNumber?: string; + /** 韬唤 */ socialIdentity?: string; + /** 韬唤鍚嶇О */ socialIdentityName?: string; + /** 瀛﹀巻 */ educationalLevel?: string; + /** 瀛﹀巻鍚嶇О */ educationalLevelName?: string; + /** 甯搁┗鐪佷唤Code */ residentProvinceCode?: number; + /** 甯搁┗鍩庡競code */ residentCityCode?: number; + /** 甯搁┗鐪佷唤鍚嶇О */ residentProvinceName?: string; + /** 甯搁┗鍩庡競鍚嶇О */ residentCityName?: string; } interface UserResumeCertificateDetailOutput { + /** 绠�鍘嗚璇佽鎯匢d */ id?: string; + /** 鐢ㄦ埛绠�鍘咺d */ userResumeId?: string; + /** 璁よ瘉绫诲埆Id */ certificateTypeId?: string; + /** 璁よ瘉璇佷欢鍙烽粯璁よ韩浠借瘉 */ certificateNo?: string; + /** 璇佷欢寮�濮嬫椂闂� */ beginTime?: string; + /** 璇佷欢缁撴潫鏃堕棿 */ endTime?: string; + /** 鏄惁姘镐箙 */ isPermanent?: boolean; certificateUnit?: string; + /** 韬唤璇佹闈� */ certificateFrontImgUrl?: string; + /** 韬唤璇佸弽闈� */ certificateBackImgUrl?: string; } interface UserResumeCertificateListOutput { id?: string; + /** 璇佷功Id */ certificateTypeId?: string; + /** 璇佷功鍚嶇О */ certificateTypeName?: string; + /** 宸ヤ綔绠�鍘咺d */ userResumeId?: string; } interface UserResumeDetailInfoOutput { + /** 韬珮 */ height?: string; + /** 浣撻噸 */ weight?: string; + /** 涓汉鐢熸椿鐓� */ lifeCircleImgUrlList?: string[]; } interface UserResumeExpectationJobOutput { + /** 鏈熸湜宀椾綅鍒楄〃 */ jobIdList?: IdNameOutput[]; freeTime?: UserResumeFreeTimeEnum; jobSeekingStatus?: UserResumeJobSeekingStatusEnum; @@ -1883,13 +2066,18 @@ type UserResumeJobSeekingStatusEnum = 1 | 2 | 3; interface UserResumeWorkerRecordOutput { + /** 宸ヤ綔鏃堕棿 */ workTime?: string; + /** 宸ヤ綔鍦扮偣 */ workAddress?: string; + /** 宸ヤ綔鍚嶇О */ workName?: string; } interface UserResumeWorkExperienceOutput { + /** 宸ヤ綔骞撮檺 */ workingSeniority?: string; + /** 宸ヤ綔缁忛獙 */ workExperience?: string; } -- Gitblit v1.9.1