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