From 676578f3be736ef109d1c8a15da265a62c66ba04 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期二, 12 八月 2025 13:13:23 +0800
Subject: [PATCH] feat: 接口对接
---
apps/cMiniApp/src/subpackages/curriculum/mineCertificateAddOrEdit/InnerPage.vue | 4
apps/cMiniApp/src/pages/home/index.vue | 4
apps/cMiniApp/.eslintrc-auto-import.json | 3
apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue | 4
apps/cMiniApp/src/subpackages/curriculum/mineJobIntention/InnerPage.vue | 5
apps/cMiniApp/src/subpackages/mine/mineCollectTask/InnerPage.vue | 27 +-----
apps/cMiniApp/project.private.config.json | 14 +++
apps/cMiniApp/src/subpackages/curriculum/mineCertificate/InnerPage.vue | 9 --
apps/cMiniApp/src/subpackages/curriculum/mineCurriculumVitae/InnerPage.vue | 20 ++--
apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue | 62 ++++++++++++++-
packages/components/src/Card/TaskCard.vue | 5 -
apps/cMiniApp/auto-imports.d.ts | 2
apps/cMiniApp/src/subpackages/curriculum/mineDetailedInfo/InnerPage.vue | 4
apps/cMiniApp/project.config.json | 4
apps/cMiniApp/src/hooks/user.ts | 19 ++++
apps/cMiniApp/src/subpackages/curriculum/mineWorkExperience/InnerPage.vue | 4
16 files changed, 122 insertions(+), 68 deletions(-)
diff --git a/apps/cMiniApp/.eslintrc-auto-import.json b/apps/cMiniApp/.eslintrc-auto-import.json
index ff1c0db..ade550f 100644
--- a/apps/cMiniApp/.eslintrc-auto-import.json
+++ b/apps/cMiniApp/.eslintrc-auto-import.json
@@ -109,6 +109,7 @@
"useSwitchTab": true,
"useTaskList": true,
"useUser": true,
- "useUserResume": true
+ "useUserResume": true,
+ "useUpdateResume": true
}
}
diff --git a/apps/cMiniApp/auto-imports.d.ts b/apps/cMiniApp/auto-imports.d.ts
index f8c3f8a..5702a8e 100644
--- a/apps/cMiniApp/auto-imports.d.ts
+++ b/apps/cMiniApp/auto-imports.d.ts
@@ -91,6 +91,7 @@
const useSlots: typeof import('vue')['useSlots']
const useSwitchTab: typeof import('./src/hooks/router')['useSwitchTab']
const useTemplateRef: typeof import('vue')['useTemplateRef']
+ const useUpdateResume: typeof import('./src/hooks/user')['useUpdateResume']
const useUser: typeof import('./src/hooks/user')['useUser']
const useUserResume: typeof import('./src/hooks/user')['useUserResume']
const watch: typeof import('vue')['watch']
@@ -203,6 +204,7 @@
readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']>
readonly useSwitchTab: UnwrapRef<typeof import('./src/hooks/router')['useSwitchTab']>
readonly useTemplateRef: UnwrapRef<typeof import('vue')['useTemplateRef']>
+ readonly useUpdateResume: UnwrapRef<typeof import('./src/hooks/user')['useUpdateResume']>
readonly useUser: UnwrapRef<typeof import('./src/hooks/user')['useUser']>
readonly useUserResume: UnwrapRef<typeof import('./src/hooks/user')['useUserResume']>
readonly watch: UnwrapRef<typeof import('vue')['watch']>
diff --git a/apps/cMiniApp/project.config.json b/apps/cMiniApp/project.config.json
index 1d057ff..cc53dd5 100644
--- a/apps/cMiniApp/project.config.json
+++ b/apps/cMiniApp/project.config.json
@@ -3,8 +3,8 @@
"description": "",
"setting": {
"urlCheck": false,
- "es6": true,
- "enhance": true,
+ "es6": false,
+ "enhance": false,
"postcss": false,
"preloadBackgroundData": false,
"minified": false,
diff --git a/apps/cMiniApp/project.private.config.json b/apps/cMiniApp/project.private.config.json
index 02429d4..5bf897c 100644
--- a/apps/cMiniApp/project.private.config.json
+++ b/apps/cMiniApp/project.private.config.json
@@ -77,6 +77,20 @@
"query": "",
"launchMode": "default",
"scene": null
+ },
+ {
+ "name": "",
+ "pathName": "subpackages/task/taskDetail/taskDetail",
+ "query": "id=04c75425-e783-4dbf-0f16-08ddd626b756",
+ "launchMode": "default",
+ "scene": null
+ },
+ {
+ "name": "",
+ "pathName": "subpackages/curriculum/mineCurriculumVitae/mineCurriculumVitae",
+ "query": "",
+ "launchMode": "default",
+ "scene": null
}
]
}
diff --git a/apps/cMiniApp/src/hooks/user.ts b/apps/cMiniApp/src/hooks/user.ts
index 4238c51..db1c702 100644
--- a/apps/cMiniApp/src/hooks/user.ts
+++ b/apps/cMiniApp/src/hooks/user.ts
@@ -2,7 +2,7 @@
import Taro from '@tarojs/taro';
import { object2query, LocationUtils } from '@12333/utils';
import { ParkOrHRStatus, UserCertificationFrontStatus } from '@12333/constants';
-import { useQuery } from '@tanstack/vue-query';
+import { useQuery, useQueryClient } from '@tanstack/vue-query';
import { MaybeRef } from 'vue';
import { useRefeshDidShow } from '@12333/hooks/infiniteLoading';
import * as userResumeServices from '@12333/services/apiV2/userResume';
@@ -117,3 +117,20 @@
refetch,
};
}
+
+export function useUpdateResume() {
+ const queryClient = useQueryClient();
+
+ const updateUserResumeCredentials = () => {
+ return queryClient.invalidateQueries(['userResumeServices/getUserResumeCredentials']);
+ };
+
+ const updateUserResume = () => {
+ return queryClient.invalidateQueries(['userResumeServices/getUserResume']);
+ };
+
+ return {
+ updateUserResumeCredentials,
+ updateUserResume,
+ };
+}
diff --git a/apps/cMiniApp/src/pages/home/index.vue b/apps/cMiniApp/src/pages/home/index.vue
index fb3d2cb..5231954 100644
--- a/apps/cMiniApp/src/pages/home/index.vue
+++ b/apps/cMiniApp/src/pages/home/index.vue
@@ -57,7 +57,7 @@
:key="queryState.orderType"
>
<template #renderItem="{ item }">
- <TaskCard @click="goTaskDetail(item)" v-bind="item" @apply="goTaskApply(item)" />
+ <TaskCard @click="goTaskDetail(item)" v-bind="item" />
</template>
</InfiniteLoading>
</PageLayoutWithBg>
@@ -65,8 +65,6 @@
<script setup lang="ts">
import { useUser } from '@/hooks';
-import { useUserStore } from '@/stores/modules/user';
-import { RectDown, Location2 } from '@nutui/icons-vue-taro';
import Taro from '@tarojs/taro';
import { setLocationCity } from '@/utils';
import _ from 'lodash';
diff --git a/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue
index 399ab72..3eb5d6a 100644
--- a/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/curriculum/editMineInfo/InnerPage.vue
@@ -54,6 +54,8 @@
name: 'InnerPage',
});
+const { updateUserResume } = useUpdateResume();
+
const eventChannel = useEventChannel();
const { dictionaryDataList: identityList } = useDictionaryDataSelect({
@@ -145,7 +147,7 @@
Message.success('淇濆瓨鎴愬姛', {
onClosed() {
goBack();
- eventChannel.emit('updateResume', { content: true });
+ updateUserResume();
},
});
}
diff --git a/apps/cMiniApp/src/subpackages/curriculum/mineCertificate/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/mineCertificate/InnerPage.vue
index f546f29..e659738 100644
--- a/apps/cMiniApp/src/subpackages/curriculum/mineCertificate/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/curriculum/mineCertificate/InnerPage.vue
@@ -21,18 +21,9 @@
import { RouterPath } from '@/constants';
import * as userResumeServices from '@12333/services/apiV2/userResume';
import { useQuery } from '@tanstack/vue-query';
-import { useEvent } from 'senin-mini/hooks';
defineOptions({
name: 'InnerPage',
-});
-
-useEvent('updateResume', function (data: { content: boolean }) {
- if (data.content) {
- refetch({
- type: 'inactive',
- });
- }
});
const {
diff --git a/apps/cMiniApp/src/subpackages/curriculum/mineCertificateAddOrEdit/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/mineCertificateAddOrEdit/InnerPage.vue
index 26fc3cf..6aaee7d 100644
--- a/apps/cMiniApp/src/subpackages/curriculum/mineCertificateAddOrEdit/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/curriculum/mineCertificateAddOrEdit/InnerPage.vue
@@ -78,7 +78,7 @@
const router = Taro.useRouter();
const id = router.params?.id as string;
const isEdit = computed(() => !!id);
-const queryClient = useQueryClient();
+const { updateUserResumeCredentials } = useUpdateResume();
const { dictionaryDataList: certificateTypeList } = useDictionaryDataSelect({
categoryCode: CategoryCode.CertificateType,
@@ -173,7 +173,7 @@
Message.success(isEdit.value ? '缂栬緫鎴愬姛' : '娣诲姞鎴愬姛', {
onClosed() {
goBack();
- queryClient.invalidateQueries(['userResumeServices/getUserResumeCredentials']);
+ updateUserResumeCredentials();
},
});
}
diff --git a/apps/cMiniApp/src/subpackages/curriculum/mineCurriculumVitae/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/mineCurriculumVitae/InnerPage.vue
index 8165e96..2e12b89 100644
--- a/apps/cMiniApp/src/subpackages/curriculum/mineCurriculumVitae/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/curriculum/mineCurriculumVitae/InnerPage.vue
@@ -125,7 +125,6 @@
import IconPhone from '@/assets/mine/icon-phone.png';
import Taro from '@tarojs/taro';
import { setOSSLink } from '@12333/utils';
-import { useEvent } from 'senin-mini/hooks';
defineOptions({
name: 'InnerPage',
@@ -140,16 +139,15 @@
function goPage(routeName: string) {
Taro.navigateTo({
url: routeName,
- events: {
- updateResume(data: { content: boolean }) {
- console.log('content: ', data.content);
- if (data.content) {
- refetch({
- type: 'inactive',
- });
- }
- },
- },
+ // events: {
+ // updateResume(data: { content: boolean }) {
+ // if (data.content) {
+ // refetch({
+ // type: 'inactive',
+ // });
+ // }
+ // },
+ // },
});
}
function goEditMineInfo() {
diff --git a/apps/cMiniApp/src/subpackages/curriculum/mineDetailedInfo/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/mineDetailedInfo/InnerPage.vue
index 9a7eca4..07085f8 100644
--- a/apps/cMiniApp/src/subpackages/curriculum/mineDetailedInfo/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/curriculum/mineDetailedInfo/InnerPage.vue
@@ -38,7 +38,7 @@
name: 'InnerPage',
});
-const { refetch: userResumeRefetch } = useUserResume();
+const { updateUserResume } = useUpdateResume();
const {
isLoading,
@@ -81,7 +81,7 @@
Message.success('淇濆瓨鎴愬姛', {
onClosed() {
goBack();
- userResumeRefetch({ type: 'inactive' });
+ updateUserResume();
},
});
}
diff --git a/apps/cMiniApp/src/subpackages/curriculum/mineJobIntention/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/mineJobIntention/InnerPage.vue
index d913841..a826890 100644
--- a/apps/cMiniApp/src/subpackages/curriculum/mineJobIntention/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/curriculum/mineJobIntention/InnerPage.vue
@@ -48,13 +48,12 @@
import { Message } from '@12333/utils';
import { useQuery } from '@tanstack/vue-query';
import { goBack } from '@/utils';
-import { useEventChannel } from 'senin-mini/hooks';
defineOptions({
name: 'InnerPage',
});
-const eventChannel = useEventChannel();
+const { updateUserResume } = useUpdateResume();
const { dictionaryDataList: positionList } = useDictionaryDataSelect({
categoryCode: CategoryCode.Position,
@@ -131,7 +130,7 @@
Message.success('淇濆瓨鎴愬姛', {
onClosed() {
goBack();
- eventChannel.emit('updateResume', { content: true });
+ updateUserResume();
},
});
}
diff --git a/apps/cMiniApp/src/subpackages/curriculum/mineWorkExperience/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/mineWorkExperience/InnerPage.vue
index 1303900..36a1ced 100644
--- a/apps/cMiniApp/src/subpackages/curriculum/mineWorkExperience/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/curriculum/mineWorkExperience/InnerPage.vue
@@ -24,7 +24,7 @@
name: 'InnerPage',
});
-const { refetch: userResumeRefetch } = useUserResume();
+const { updateUserResume } = useUpdateResume();
const form = reactive({
workSeniority: '',
@@ -64,7 +64,7 @@
Message.success('淇濆瓨鎴愬姛', {
onClosed() {
goBack();
- userResumeRefetch({ type: 'inactive' });
+ updateUserResume();
},
});
}
diff --git a/apps/cMiniApp/src/subpackages/mine/mineCollectTask/InnerPage.vue b/apps/cMiniApp/src/subpackages/mine/mineCollectTask/InnerPage.vue
index b4a33b2..1861411 100644
--- a/apps/cMiniApp/src/subpackages/mine/mineCollectTask/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/mine/mineCollectTask/InnerPage.vue
@@ -16,34 +16,15 @@
<script setup lang="ts">
import { TaskCard } from '@12333/components';
import { useUserStore } from '@/stores/modules/user';
-import { useInfiniteLoading } from '@12333/hooks';
-import { OrderInputType } from '@12333/constants';
-import * as flexWorkerServices from '@12333/services/api/FlexWorker';
+import { useTaskList } from '@12333/hooks';
defineOptions({
name: 'InnerPage',
});
-const userStore = useUserStore();
-
-const { infiniteLoadingProps } = useInfiniteLoading(
- ({ pageParam }) => {
- let params: API.GetFlexTaskListInput = {
- pageModel: {
- rows: 20,
- page: pageParam,
- orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
- },
- };
-
- return flexWorkerServices.getFlexTaskByArrange(params, {
- showLoading: false,
- });
- },
- {
- queryKey: ['flexWorkerServices/getFlexTaskByArrange'],
- }
-);
+const { infiniteLoadingProps } = useTaskList({
+ defaultQueryMenuState: {},
+});
</script>
<style lang="scss">
diff --git a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
index 6a0d918..3261651 100644
--- a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
@@ -6,6 +6,7 @@
<img
:src="detail.isCollected ? IconAttentioActive : IconAttention"
class="taskDetail-attention-icon"
+ @click="handleAttention"
/>
</template>
<div class="taskDetail-time">
@@ -100,9 +101,17 @@
:isFlex="false"
openType="share"
></PageFooterAction>
- <PageFooterAction :icon="IconPhone" text="鎵嬫満" :isFlex="false"></PageFooterAction>
- <PageFooterBtn v-if="detail.releaseStatus === EnumTaskReleaseStatus.InProcess" type="primary"
- >鎶ュ悕锛�5浜哄凡鎶ュ悕锛�</PageFooterBtn
+ <PageFooterAction
+ :icon="IconPhone"
+ text="鎵嬫満"
+ :isFlex="false"
+ @click="handleCall"
+ ></PageFooterAction>
+ <PageFooterBtn
+ v-if="detail.releaseStatus === EnumTaskReleaseStatus.InProcess"
+ type="primary"
+ @click="handleApply"
+ >{{ `鎶ュ悕锛�${detail?.applyCount ?? 0}浜哄凡鎶ュ悕锛塦 }}</PageFooterBtn
>
<PageFooterBtn v-if="detail.releaseStatus === EnumTaskReleaseStatus.Stopped" color="#999999"
>宸插仠姝�</PageFooterBtn
@@ -115,6 +124,7 @@
import Taro from '@tarojs/taro';
import { useQuery } from '@tanstack/vue-query';
import * as taskServices from '@12333/services/apiV2/task';
+import * as taskUserServices from '@12333/services/apiV2/taskUser';
import { useToggle } from 'senin-mini/hooks';
import { TaskPrice, TaskDetailWelfareItem } from '@12333/components';
import IconAttention from '@/assets/task/icon-attention.png';
@@ -127,7 +137,7 @@
import './taskDetail.scss';
import CompanyDesc from '../components/CompanyDesc.vue';
import dayjs from 'dayjs';
-import { TaskUtils, toThousand, setOSSLink } from '@12333/utils';
+import { TaskUtils, toThousand, setOSSLink, Message } from '@12333/utils';
import {
EnumSettlementCycleText,
BillingMethodEnumUnit,
@@ -182,4 +192,48 @@
});
}
});
+
+const handleApply = useAccessLogin(async () => {
+ try {
+ let params: API.ApplyTaskCommand = {
+ ids: [taskId],
+ };
+ let res = await taskUserServices.applyTask(params);
+ if (res) {
+ Message.success('鎶ュ悕鎴愬姛', {
+ onClosed() {
+ refetch({ type: 'inactive' });
+ },
+ });
+ }
+ } catch (error) {}
+});
+
+const handleAttention = useAccessLogin(async () => {
+ try {
+ await Message.confirm({
+ message: `纭畾${detail.value?.isCollected ? '鍙栨秷鏀惰棌' : '鏀惰棌'}鍚楋紵`,
+ });
+ let params: API.CollectTaskCommand = {
+ ids: [taskId],
+ isCollect: !detail.value?.isCollected,
+ };
+ let res = await taskUserServices.collectTask(params);
+ if (res) {
+ Message.success('鎿嶄綔鎴愬姛', {
+ onClosed() {
+ refetch({ type: 'inactive' });
+ },
+ });
+ }
+ } catch (error) {}
+});
+
+const handleCall = useAccessLogin(() => {
+ if (detail.value.contactPhoneNumber) {
+ Taro.makePhoneCall({
+ phoneNumber: detail.value.contactPhoneNumber,
+ });
+ }
+});
</script>
diff --git a/packages/components/src/Card/TaskCard.vue b/packages/components/src/Card/TaskCard.vue
index 687f7f6..254b6c5 100644
--- a/packages/components/src/Card/TaskCard.vue
+++ b/packages/components/src/Card/TaskCard.vue
@@ -37,10 +37,7 @@
</div>
<div class="task-card-actions" v-if="showActions">
<slot name="actions">
- <nut-button
- v-if="releaseStatus === EnumTaskReleaseStatus.InProcess"
- type="primary"
- @click.stop="emit('apply', id)"
+ <nut-button v-if="releaseStatus === EnumTaskReleaseStatus.InProcess" type="primary"
>鎶ュ悕</nut-button
>
</slot>
--
Gitblit v1.9.1