From 5694090781fb8badc7ab31d9a4a38de1856d5eda Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 08 八月 2025 16:30:54 +0800
Subject: [PATCH] feat: 接口对接
---
apps/bMiniApp/.eslintrc-auto-import.json | 24 ++
packages/constants/task.ts | 12 +
apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue | 62 +---
apps/bMiniApp/auto-imports.d.ts | 27 ++
apps/bMiniApp/src/hooks/task.ts | 86 +++++++
packages/services/apiV2/auth.ts | 23 +
packages/services/apiV2/index.ts | 28 +-
apps/bMiniApp/src/pages/mine/index.vue | 2
packages/services/apiV2/task.ts | 31 +-
packages/services/apiV2/typings.d.ts | 149 +++++++------
apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue | 93 ++-----
packages/constants/apiEnum.ts | 14 -
packages/components/src/Card/JobApplicationCard.vue | 55 +---
13 files changed, 354 insertions(+), 252 deletions(-)
diff --git a/apps/bMiniApp/.eslintrc-auto-import.json b/apps/bMiniApp/.eslintrc-auto-import.json
index e7293cf..be7295f 100644
--- a/apps/bMiniApp/.eslintrc-auto-import.json
+++ b/apps/bMiniApp/.eslintrc-auto-import.json
@@ -98,6 +98,28 @@
"useIsLogin": true,
"useLoginedJump": true,
"useSwitchTab": true,
- "useUser": true
+ "useUser": true,
+ "HomeOrderType": true,
+ "useTaskList": true,
+ "EnumBillingMethod": true,
+ "EnumClientType": true,
+ "EnumMenuType": true,
+ "EnumMenuVisitLevel": true,
+ "EnumPagedListOrder": true,
+ "EnumRealAccess": true,
+ "EnumResourceController": true,
+ "EnumResourceMethod": true,
+ "EnumRoleWebApiDataPower": true,
+ "EnumSettlementCycle": true,
+ "EnumSmsAccess": true,
+ "EnumSmsTemplateType": true,
+ "EnumTaskCheckReceiveStatus": true,
+ "EnumTaskRecommendStatus": true,
+ "EnumTaskReleaseStatus": true,
+ "EnumTaskSettlementStatus": true,
+ "EnumTaskStatus": true,
+ "EnumUserGender": true,
+ "EnumUserStatus": true,
+ "EnumUserType": true
}
}
diff --git a/apps/bMiniApp/auto-imports.d.ts b/apps/bMiniApp/auto-imports.d.ts
index 1ce3144..a2bb986 100644
--- a/apps/bMiniApp/auto-imports.d.ts
+++ b/apps/bMiniApp/auto-imports.d.ts
@@ -8,6 +8,27 @@
const AppLocalConfig: typeof import('./src/constants/app')['AppLocalConfig']
const BackType: typeof import('./src/constants/enum')['BackType']
const EffectScope: typeof import('vue')['EffectScope']
+ const EnumBillingMethod: typeof import('./src/constants/apiEnum')['EnumBillingMethod']
+ const EnumClientType: typeof import('./src/constants/apiEnum')['EnumClientType']
+ const EnumMenuType: typeof import('./src/constants/apiEnum')['EnumMenuType']
+ const EnumMenuVisitLevel: typeof import('./src/constants/apiEnum')['EnumMenuVisitLevel']
+ const EnumPagedListOrder: typeof import('./src/constants/apiEnum')['EnumPagedListOrder']
+ const EnumRealAccess: typeof import('./src/constants/apiEnum')['EnumRealAccess']
+ const EnumResourceController: typeof import('./src/constants/apiEnum')['EnumResourceController']
+ const EnumResourceMethod: typeof import('./src/constants/apiEnum')['EnumResourceMethod']
+ const EnumRoleWebApiDataPower: typeof import('./src/constants/apiEnum')['EnumRoleWebApiDataPower']
+ const EnumSettlementCycle: typeof import('./src/constants/apiEnum')['EnumSettlementCycle']
+ const EnumSmsAccess: typeof import('./src/constants/apiEnum')['EnumSmsAccess']
+ const EnumSmsTemplateType: typeof import('./src/constants/apiEnum')['EnumSmsTemplateType']
+ const EnumTaskCheckReceiveStatus: typeof import('./src/constants/apiEnum')['EnumTaskCheckReceiveStatus']
+ const EnumTaskRecommendStatus: typeof import('./src/constants/apiEnum')['EnumTaskRecommendStatus']
+ const EnumTaskReleaseStatus: typeof import('./src/constants/apiEnum')['EnumTaskReleaseStatus']
+ const EnumTaskSettlementStatus: typeof import('./src/constants/apiEnum')['EnumTaskSettlementStatus']
+ const EnumTaskStatus: typeof import('./src/constants/apiEnum')['EnumTaskStatus']
+ const EnumUserGender: typeof import('./src/constants/apiEnum')['EnumUserGender']
+ const EnumUserStatus: typeof import('./src/constants/apiEnum')['EnumUserStatus']
+ const EnumUserType: typeof import('./src/constants/apiEnum')['EnumUserType']
+ const HomeOrderType: typeof import('./src/hooks/task')['HomeOrderType']
const OssAssets: typeof import('./src/constants/img')['OssAssets']
const RouterPath: typeof import('./src/constants/router')['RouterPath']
const TabBarPageRouter: typeof import('./src/constants/tabBar')['TabBarPageRouter']
@@ -87,6 +108,7 @@
const useRouter: typeof import('vue-router')['useRouter']
const useSlots: typeof import('vue')['useSlots']
const useSwitchTab: typeof import('./src/hooks/router')['useSwitchTab']
+ const useTaskList: typeof import('./src/hooks/task')['useTaskList']
const useTemplateRef: typeof import('vue')['useTemplateRef']
const useUser: typeof import('./src/hooks/user')['useUser']
const watch: typeof import('vue')['watch']
@@ -105,6 +127,9 @@
// @ts-ignore
export type { RouterPath, RouterPath } from './src/constants/router'
import('./src/constants/router')
+ // @ts-ignore
+ export type { HomeOrderType } from './src/hooks/task'
+ import('./src/hooks/task')
}
// for vue template auto import
import { UnwrapRef } from 'vue'
@@ -113,6 +138,7 @@
readonly AppLocalConfig: UnwrapRef<typeof import('./src/constants/app')['AppLocalConfig']>
readonly BackType: UnwrapRef<typeof import('./src/constants/enum')['BackType']>
readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']>
+ readonly HomeOrderType: UnwrapRef<typeof import('./src/hooks/task')['HomeOrderType']>
readonly OssAssets: UnwrapRef<typeof import('./src/constants/img')['OssAssets']>
readonly RouterPath: UnwrapRef<typeof import('./src/constants/router')['RouterPath']>
readonly TabBarPageRouter: UnwrapRef<typeof import('./src/constants/tabBar')['TabBarPageRouter']>
@@ -190,6 +216,7 @@
readonly useRouter: UnwrapRef<typeof import('vue-router')['useRouter']>
readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']>
readonly useSwitchTab: UnwrapRef<typeof import('./src/hooks/router')['useSwitchTab']>
+ readonly useTaskList: UnwrapRef<typeof import('./src/hooks/task')['useTaskList']>
readonly useTemplateRef: UnwrapRef<typeof import('vue')['useTemplateRef']>
readonly useUser: UnwrapRef<typeof import('./src/hooks/user')['useUser']>
readonly watch: UnwrapRef<typeof import('vue')['watch']>
diff --git a/apps/bMiniApp/src/hooks/task.ts b/apps/bMiniApp/src/hooks/task.ts
new file mode 100644
index 0000000..f5c6f5f
--- /dev/null
+++ b/apps/bMiniApp/src/hooks/task.ts
@@ -0,0 +1,86 @@
+import { useInfiniteLoading } from '@12333/hooks';
+import {
+ EnumPagedListOrder,
+ EnumSettlementCycle,
+ EnumTaskRecommendStatus,
+ EnumTaskReleaseStatus,
+ EnumTaskStatus,
+ EnumUserGender,
+} from '@12333/constants';
+import _ from 'lodash';
+import { trim } from '@12333/utils';
+import { MaybeRef } from 'vue';
+import * as taskServices from '@12333/services/apiV2/task';
+
+export enum HomeOrderType {
+ Recommend = 'Recommend',
+ LastShelfTime = 'LastShelfTime',
+}
+
+type UseTaskListOptions = {
+ cityCode?: MaybeRef<string>;
+ enabled?: MaybeRef<boolean>;
+};
+
+export function useTaskList(options: UseTaskListOptions = {}) {
+ const { cityCode = '', enabled = true } = options;
+
+ const searchValue = ref('');
+
+ const queryMenuState = reactive({
+ genderLimit: '' as any as EnumUserGender,
+ settlementCycle: '' as any as EnumSettlementCycle,
+ benefitCodes: '',
+ status: '' as any as EnumTaskStatus,
+ releaseStatus: '' as any as EnumTaskReleaseStatus,
+ });
+
+ const queryState = reactive({
+ searchValueTrim: '',
+ orderType: HomeOrderType.Recommend,
+ });
+
+ const handleSearch = _.debounce(function () {
+ queryState.searchValueTrim = trim(searchValue.value);
+ }, 300);
+
+ const { infiniteLoadingProps, invalidateQueries } = useInfiniteLoading(
+ ({ pageParam }) => {
+ let params: API.GetTaskInfosQuery = {
+ pageModel: {
+ rows: 20,
+ page: pageParam,
+ orderInput: [
+ queryState.orderType === HomeOrderType.Recommend
+ ? { property: 'recommendStatus', order: EnumPagedListOrder.Desc }
+ : { property: 'createdTime', order: EnumPagedListOrder.Desc },
+ ],
+ },
+ keywords: queryState.searchValueTrim,
+ cityCode: unref(cityCode),
+ settlementCycle: queryMenuState.settlementCycle,
+ benefitCodes: [queryMenuState.benefitCodes].filter(Boolean),
+ genderLimit: queryMenuState.genderLimit,
+ status: queryMenuState.status,
+ releaseStatus: queryMenuState.releaseStatus,
+ };
+
+ return taskServices.getTaskInfos(params, {
+ showLoading: false,
+ });
+ },
+ {
+ queryKey: ['taskServices/getTaskInfos', queryState, queryMenuState, cityCode],
+ enabled: enabled,
+ }
+ );
+
+ return {
+ searchValue,
+ queryState,
+ queryMenuState,
+ handleSearch,
+ infiniteLoadingProps,
+ invalidateQueries,
+ };
+}
diff --git a/apps/bMiniApp/src/pages/mine/index.vue b/apps/bMiniApp/src/pages/mine/index.vue
index 0f60b4c..c5c3a21 100644
--- a/apps/bMiniApp/src/pages/mine/index.vue
+++ b/apps/bMiniApp/src/pages/mine/index.vue
@@ -42,7 +42,7 @@
<div class="mine-go-login" v-else>鍘荤櫥褰�</div>
</div>
</template>
- <div class="mine-business-card">
+ <div class="mine-business-card" v-if="isLogin">
<div class="mine-business-card-item" @click="goBusinessCard">
<img class="mine-business-card-item-icon" :src="IconBusinessCard" alt="" />
<div class="mine-business-card-item-text">鎴戠殑鐢靛瓙鍚嶇墖</div>
diff --git a/apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue
index a29d411..715026f 100644
--- a/apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue
@@ -1,6 +1,6 @@
<template>
<ProTabs
- v-model="queryState.flexTaskReleaseStatus"
+ v-model="queryMenuState.releaseStatus"
name="home-tab"
:showPaneContent="false"
class="home-tabs"
@@ -9,37 +9,35 @@
title-scroll
>
<ProTabPane
- :title="`${
- FlexTaskReleaseStatusEnumText[FlexTaskReleaseStatusEnum.Releasing]
- }(${releaseing})`"
- :pane-key="FlexTaskReleaseStatusEnum.Releasing"
+ :title="`鍙戝竷涓�(${releaseing})`"
+ :pane-key="EnumTaskReleaseStatus.InProcess"
></ProTabPane>
<ProTabPane
- :title="`${FlexTaskReleaseStatusEnumText[FlexTaskReleaseStatusEnum.Stoping]}(${stoping})`"
- :pane-key="FlexTaskReleaseStatusEnum.Stoping"
+ :title="`宸插仠姝�(${stoping})`"
+ :pane-key="EnumTaskReleaseStatus.Stopped"
></ProTabPane>
</ProTabs>
<InfiniteLoading
scrollViewClassName="common-infinite-scroll-list home-list"
v-bind="infiniteLoadingProps"
- :key="queryState.flexTaskReleaseStatus"
+ :key="queryMenuState.releaseStatus"
>
<template #renderItem="{ item }">
<JobApplicationCard
- :taskName="item.taskName"
- :startDate="item.startDate"
- :endDate="item.endDate"
- :creationTime="item.creationTime"
- :address="item.address"
- :fee="item.fee"
- :applyWorkerCount="item.applyWorkerCount"
- :unit="SalaryTimeTypeEnumUnit[item.feeType]"
+ :name="item.name"
+ :beginTime="item.beginTime"
+ :endTime="item.endTime"
+ :createdTime="item.createdTime"
+ :addressName="item.addressName"
+ :serviceFee="item.serviceFee"
+ :userCount="item.userCount"
+ :unit="BillingMethodEnumUnit[item.billingMethod]"
:releaseStatus="item.releaseStatus"
@edit="goEdit(item)"
@copy="goEdit(item, true)"
@detail="goDetail(item)"
- @publish="handleChangeStatus(item, FlexTaskReleaseStatusEnum.Releasing)"
- @stop="handleChangeStatus(item, FlexTaskReleaseStatusEnum.Stoping)"
+ @publish="handleChangeStatus(item, EnumTaskReleaseStatus.InProcess)"
+ @stop="handleChangeStatus(item, EnumTaskReleaseStatus.Stopped)"
@delete="handleDelete(item)"
>
</JobApplicationCard>
@@ -50,44 +48,17 @@
<script setup lang="ts">
import { JobApplicationCard, ProTabs, ProTabPane } from '@12333/components';
import { RouterPath } from '@/constants';
-import { useInfiniteLoading } from '@12333/hooks';
-import { OrderInputType } from '@12333/constants';
-import {
- FlexTaskReleaseStatusEnum,
- FlexTaskReleaseStatusEnumText,
- SalaryTimeTypeEnumUnit,
-} from '@12333/constants/task';
+import { EnumTaskReleaseStatus, BillingMethodEnumUnit } from '@12333/constants';
import * as flexWorkerServices from '@12333/services/api/FlexWorker';
import Taro from '@tarojs/taro';
import { Message } from '@12333/utils';
+import * as taskServices from '@12333/services/apiV2/task';
defineOptions({
name: 'InnerPage',
});
-const queryState = reactive({
- flexTaskReleaseStatus: FlexTaskReleaseStatusEnum.Releasing,
-});
-
-const { infiniteLoadingProps, invalidateQueries } = useInfiniteLoading(
- ({ pageParam }) => {
- let params: API.GetFlexTaskListByStatusInput = {
- releaseStatus: queryState.flexTaskReleaseStatus,
- pageModel: {
- rows: 20,
- page: pageParam,
- orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
- },
- };
-
- return flexWorkerServices.getFlexTaskList(params, {
- showLoading: false,
- });
- },
- {
- queryKey: ['flexWorkerServices/getFlexTaskList', queryState],
- }
-);
+const { queryMenuState, infiniteLoadingProps, invalidateQueries } = useTaskList();
const releaseing = computed(() => {
return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.releaseing ?? 0;
@@ -97,15 +68,15 @@
});
async function handleChangeStatus(
- item: API.GetFlexTaskListOutput,
- releaseStatus: FlexTaskReleaseStatusEnum
+ item: API.GetTaskInfosQueryResultItem,
+ releaseStatus: EnumTaskReleaseStatus
) {
try {
- let params: API.UpdateTaskReleaseStatusInput = {
- taskId: item.taskId,
+ let params: API.SetTaskInfoReleaseStatusCommand = {
+ ids: [item.id],
releaseStatus: releaseStatus,
};
- let res = await flexWorkerServices.updateFlexTaskReleaseStatus(params);
+ let res = await taskServices.setTaskInfoReleaseStatus(params);
if (res) {
Message.success('鎿嶄綔鎴愬姛');
invalidateQueries();
@@ -113,15 +84,15 @@
} catch (error) {}
}
-async function handleDelete(item: API.GetFlexTaskListOutput) {
+async function handleDelete(item: API.GetTaskInfosQueryResultItem) {
try {
await Message.confirm({
message: '纭畾瑕佸垹闄ゅ悧锛�',
});
- let params: API.APIdeleteFlexTaskParams = {
- id: item.taskId,
+ let params: API.DeleteTaskInfoCommand = {
+ ids: [item.id],
};
- let res = await flexWorkerServices.deleteFlexTask(params);
+ let res = await taskServices.deleteTaskInfo(params);
if (res) {
Message.success('鍒犻櫎鎴愬姛');
invalidateQueries();
@@ -129,14 +100,14 @@
} catch (error) {}
}
-function goEdit(item: API.GetFlexTaskListOutput, isCopy = false) {
+function goEdit(item: API.GetTaskInfosQueryResultItem, isCopy = false) {
Taro.navigateTo({
- url: `${RouterPath.publishTask}?taskId=${item.taskId}&isCopy=${isCopy}`,
+ url: `${RouterPath.publishTask}?taskId=${item.id}&isCopy=${isCopy}`,
});
}
-function goDetail(item: API.GetFlexTaskListOutput) {
+function goDetail(item: API.GetTaskInfosQueryResultItem) {
Taro.navigateTo({
- url: `${RouterPath.jobApplicationDetail}?taskId=${item.taskId}`,
+ url: `${RouterPath.jobApplicationDetail}?taskId=${item.id}`,
});
}
</script>
diff --git a/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue
index dd4535c..9944fd9 100644
--- a/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue
@@ -1,6 +1,6 @@
<template>
<ProTabs
- v-model="queryState.status"
+ v-model="queryMenuState.status"
name="task-tab"
:showPaneContent="false"
class="task-tabs"
@@ -8,29 +8,29 @@
title-gutter="8"
title-scroll
>
- <ProTabPane :title="`寰呭畨鎺�(${notCount})`" pane-key="10"></ProTabPane>
- <ProTabPane :title="`宸插畨鎺�(${hasCount})`" pane-key="20"></ProTabPane>
+ <ProTabPane :title="`寰呭畨鎺�(${notCount})`" :pane-key="EnumTaskStatus.Wait"></ProTabPane>
+ <ProTabPane :title="`宸插畨鎺�(${hasCount})`" :pane-key="EnumTaskStatus.Complete"></ProTabPane>
</ProTabs>
<InfiniteLoading
scrollViewClassName="common-infinite-scroll-list"
v-bind="infiniteLoadingProps"
- :key="queryState.status"
+ :key="queryMenuState.status"
>
<template #renderItem="{ item }">
<JobApplicationCard
- :taskName="item.taskName"
- :startDate="item.startDate"
- :endDate="item.endDate"
- :address="item.address"
- :creationTime="item.creationTime"
- :fee="item.fee"
- :unit="SalaryTimeTypeEnumUnit[item.feeType]"
+ :name="item.name"
+ :beginTime="item.beginTime"
+ :endTime="item.endTime"
+ :addressName="item.addressName"
+ :createdTime="item.createdTime"
+ :serviceFee="item.serviceFee"
+ :unit="BillingMethodEnumUnit[item.billingMethod]"
@click="goSubmitTaskDetail(item)"
mode="taskManage"
>
<template #footer-actions>
<nut-button
- v-if="item.isArrange"
+ v-if="item.status === EnumTaskStatus.Complete"
type="primary"
:color="Colors.Info"
class="dark-btn"
@@ -49,38 +49,14 @@
<script setup lang="ts">
import { JobApplicationCard, ProTabs, ProTabPane } from '@12333/components';
import Taro from '@tarojs/taro';
-import { useInfiniteLoading } from '@12333/hooks';
-import { OrderInputType, Colors } from '@12333/constants';
-import * as flexWorkerServices from '@12333/services/api/FlexWorker';
-import { SalaryTimeTypeEnumUnit } from '@12333/constants/task';
+import { EnumTaskStatus, BillingMethodEnumUnit, Colors } from '@12333/constants';
+import { useTaskList } from '@/hooks/task';
defineOptions({
name: 'InnerPage',
});
-const queryState = reactive({
- status: '10',
-});
-
-const { infiniteLoadingProps } = useInfiniteLoading(
- ({ pageParam }) => {
- let params: API.GetFlexTaskListInput = {
- isArrange: queryState.status === '20',
- pageModel: {
- rows: 20,
- page: pageParam,
- orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
- },
- };
-
- return flexWorkerServices.getFlexTaskByArrange(params, {
- showLoading: false,
- });
- },
- {
- queryKey: ['flexWorkerServices/getFlexTaskByArrange', queryState],
- }
-);
+const { queryMenuState, infiniteLoadingProps } = useTaskList();
const hasCount = computed(() => {
return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.hasCount ?? 0;
@@ -89,15 +65,15 @@
return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.notCount ?? 0;
});
-function goSubmitTaskDetail(item: API.GetFlexTaskListOutput) {
+function goSubmitTaskDetail(item: API.GetTaskInfosQueryResultItem) {
Taro.navigateTo({
- url: `${RouterPath.flexJobDetail}?taskId=${item.taskId}`,
+ url: `${RouterPath.flexJobDetail}?taskId=${item.id}`,
});
}
-function goBatchTaskList(item: API.GetFlexTaskListOutput, status: string) {
+function goBatchTaskList(item: API.GetTaskInfosQueryResultItem, status: string) {
Taro.navigateTo({
- url: `${RouterPath.batchTaskList}?taskId=${item.taskId}&detail=${status}`,
+ url: `${RouterPath.batchTaskList}?taskId=${item.id}&detail=${status}`,
});
}
</script>
diff --git a/packages/components/src/Card/JobApplicationCard.vue b/packages/components/src/Card/JobApplicationCard.vue
index 2b77b39..f4cf8b8 100644
--- a/packages/components/src/Card/JobApplicationCard.vue
+++ b/packages/components/src/Card/JobApplicationCard.vue
@@ -1,8 +1,8 @@
<template>
<div class="job-application-card-wrapper">
<div class="job-application-card-title-wrapper">
- <div class="job-application-card-title">{{ taskName }}</div>
- <TaskPrice :value="fee" :unit="unit" v-if="mode === 'taskManage'" />
+ <div class="job-application-card-title">{{ name }}</div>
+ <TaskPrice :value="serviceFee" :unit="unit" v-if="mode === 'taskManage'" />
<div v-else class="job-application-card-title-more" @click.stop="handleMore">
<img :src="IconMore" class="more-btn-icon" />
</div>
@@ -10,29 +10,29 @@
<div class="job-application-card-line">
<div class="job-application-card-time">
{{
- `${dayjs(startDate).format('YYYY骞碝M鏈圖D鏃�')}鑷�${dayjs(endDate).format('YYYY骞碝M鏈圖D鏃�')}`
+ `${dayjs(beginTime).format('YYYY骞碝M鏈圖D鏃�')}鑷�${dayjs(endTime).format('YYYY骞碝M鏈圖D鏃�')}`
}}
</div>
<div class="job-application-card-status" v-if="mode === 'normal'">
- {{ FlexTaskReleaseStatusEnumText[releaseStatus] }}
+ {{ EnumTaskReleaseStatusText[releaseStatus] }}
</div>
</div>
<div class="job-application-card-line">
<div class="job-application-card-company">
<div class="job-application-card-company-tag">H</div>
- <div class="job-application-card-company-address">{{ address }}</div>
+ <div class="job-application-card-company-address">{{ addressName }}</div>
</div>
<div class="job-application-card-people" v-if="mode === 'normal'">
- {{ `鎶ュ悕浜烘暟锛�${applyWorkerCount}` }}
+ {{ `鎶ュ悕浜烘暟锛�${userCount}` }}
</div>
</div>
<div class="job-application-card-line">
<div class="job-application-card-publish-time">
- {{ `鍙戝竷鏃ユ湡锛�${dayjs(creationTime).format('YYYY-MM-DD')}` }}
+ {{ `鍙戝竷鏃ユ湡锛�${dayjs(createdTime).format('YYYY-MM-DD')}` }}
</div>
<slot name="footer-actions">
<div class="job-application-card-fee">
- <TaskPrice :value="fee" :unit="unit" />
+ <TaskPrice :value="serviceFee" :unit="unit" />
</div>
</slot>
</div>
@@ -46,6 +46,7 @@
import { ActionSheet } from '@nutui/nutui-taro';
import { Portal } from 'senin-mini/components';
import { TaskPrice } from '@12333/components';
+import { EnumTaskStatus, EnumTaskReleaseStatus, EnumTaskReleaseStatusText } from '@12333/constants';
import dayjs from 'dayjs';
defineOptions({
@@ -61,36 +62,20 @@
Delete,
}
-enum FlexTaskReleaseStatusEnum {
- /**
- * 鍙戝竷涓�
- */
- Releasing = 10,
- /**
- * 宸插仠姝�
- */
- Stoping = 20,
-}
-
-const FlexTaskReleaseStatusEnumText = {
- [FlexTaskReleaseStatusEnum.Releasing]: '鍙戝竷涓�',
- [FlexTaskReleaseStatusEnum.Stoping]: '宸插仠姝�',
-};
-
type Props = CommonTaskCardProps & {
showActions?: boolean;
- status?: FlexTaskReleaseStatusEnum;
+ status?: EnumTaskStatus;
mode?: 'taskManage' | 'normal';
- taskName?: string;
- startDate?: string;
- endDate?: string;
- address?: string;
- creationTime?: string;
- fee?: number;
- applyWorkerCount?: number;
+ name?: string;
+ beginTime?: string;
+ endTime?: string;
+ addressName?: string;
+ createdTime?: string;
+ serviceFee?: number;
+ userCount?: number;
unit?: string;
- releaseStatus?: API.FlexTaskReleaseStatusEnum;
+ releaseStatus?: EnumTaskReleaseStatus;
};
const props = withDefaults(defineProps<Props>(), {
@@ -119,13 +104,13 @@
value: ManageActions.Detail,
}
);
- if (props.releaseStatus === FlexTaskReleaseStatusEnum.Stoping) {
+ if (props.releaseStatus === EnumTaskReleaseStatus.Stopped) {
_menuList.push({
name: '鍙戝竷',
value: ManageActions.Publish,
});
}
- if (props.releaseStatus === FlexTaskReleaseStatusEnum.Releasing) {
+ if (props.releaseStatus === EnumTaskReleaseStatus.InProcess) {
_menuList.push({
name: '鍋滄鍙戝竷',
value: ManageActions.Stop,
diff --git a/packages/constants/apiEnum.ts b/packages/constants/apiEnum.ts
index d4ebf8b..f260f44 100644
--- a/packages/constants/apiEnum.ts
+++ b/packages/constants/apiEnum.ts
@@ -125,20 +125,6 @@
AliyunSms = 10,
}
-/** 鐭俊妯℃澘绫诲瀷 */
-export enum EnumSmsTemplateType {
- /**鐧诲綍 */
- Login = 0,
- /**娉ㄥ唽 */
- Register = 1,
- /**淇敼瀵嗙爜 */
- UpdatePassword = 2,
- /**缁戝畾鎵嬫満鍙风爜 */
- BindPhoneNumber = 3,
- /**淇敼鎵嬫満鍙风爜 */
- UpdatePhoneNumber = 4,
-}
-
/** 浠诲姟缁撶畻鐘舵�� */
export enum EnumTaskCheckReceiveStatus {
/**寰呴獙鏀� */
diff --git a/packages/constants/task.ts b/packages/constants/task.ts
index ccc95e1..ef18f0a 100644
--- a/packages/constants/task.ts
+++ b/packages/constants/task.ts
@@ -1,4 +1,9 @@
-import { EnumBillingMethod, EnumUserGender, EnumSettlementCycle } from './apiEnum';
+import {
+ EnumBillingMethod,
+ EnumUserGender,
+ EnumSettlementCycle,
+ EnumTaskReleaseStatus,
+} from './apiEnum';
export const EnumBillingMethodText = {
[EnumBillingMethod.Month]: '鎸夋湀',
@@ -30,3 +35,8 @@
[EnumBillingMethod.Hour]: '鍏�/灏忔椂',
[EnumBillingMethod.Piece]: '鍏�/浠�',
};
+
+export const EnumTaskReleaseStatusText = {
+ [EnumTaskReleaseStatus.InProcess]: '鍙戝竷涓�',
+ [EnumTaskReleaseStatus.Stopped]: '宸插仠姝�',
+};
diff --git a/packages/services/apiV2/auth.ts b/packages/services/apiV2/auth.ts
index 00b5ddb..f783319 100644
--- a/packages/services/apiV2/auth.ts
+++ b/packages/services/apiV2/auth.ts
@@ -53,7 +53,7 @@
/** 瀵嗙爜鐧诲綍 POST /api/user/auth/passwordLogin */
export async function passwordLogin(body: API.PasswordLoginCommand, options?: API.RequestConfig) {
- return request<API.PasswordLoginCommandCallback>('/api/user/auth/passwordLogin', {
+ return request<API.LoginCommandCallback>('/api/user/auth/passwordLogin', {
method: 'POST',
headers: {
'Content-Type': 'application/json-patch+json',
@@ -63,9 +63,24 @@
});
}
-/** 鍙戦�侀獙璇佺爜 POST /api/user/auth/sendVerifyCode */
-export async function sendVerifyCode(body: API.SendVerifyCodeCommand, options?: API.RequestConfig) {
- return request<string>('/api/user/auth/sendVerifyCode', {
+/** 鍙戦�佺櫥褰曟垨娉ㄥ唽鐭俊 POST /api/user/auth/sendLoginOrRegisterVerifyCode */
+export async function sendLoginOrRegisterVerifyCode(
+ body: API.SendLoginOrRegisterVerifyCodeCommand,
+ options?: API.RequestConfig
+) {
+ return request<string>('/api/user/auth/sendLoginOrRegisterVerifyCode', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json-patch+json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
+/** 鐭俊鐧诲綍 POST /api/user/auth/smsLogin */
+export async function smsLogin(body: API.SmsLoginCommand, options?: API.RequestConfig) {
+ return request<API.LoginCommandCallback>('/api/user/auth/smsLogin', {
method: 'POST',
headers: {
'Content-Type': 'application/json-patch+json',
diff --git a/packages/services/apiV2/index.ts b/packages/services/apiV2/index.ts
index dcda25c..3671cc8 100644
--- a/packages/services/apiV2/index.ts
+++ b/packages/services/apiV2/index.ts
@@ -2,21 +2,21 @@
/* eslint-disable */
// API 鏇存柊鏃堕棿锛�
// API 鍞竴鏍囪瘑锛�
-import * as dictionary from './dictionary';
-import * as menu from './menu';
-import * as enterprise from './enterprise';
-import * as task from './task';
-import * as auth from './auth';
-import * as user from './user';
-import * as role from './role';
import * as resource from './resource';
+import * as user from './user';
+import * as dictionary from './dictionary';
+import * as auth from './auth';
+import * as task from './task';
+import * as enterprise from './enterprise';
+import * as role from './role';
+import * as menu from './menu';
export default {
- dictionary,
- menu,
- enterprise,
- task,
- auth,
- user,
- role,
resource,
+ user,
+ dictionary,
+ auth,
+ task,
+ enterprise,
+ role,
+ menu,
};
diff --git a/packages/services/apiV2/task.ts b/packages/services/apiV2/task.ts
index 23c1be7..5dd6235 100644
--- a/packages/services/apiV2/task.ts
+++ b/packages/services/apiV2/task.ts
@@ -2,6 +2,18 @@
// @ts-ignore
import { request } from '@/utils/request';
+/** 鍒犻櫎浠诲姟 DELETE /api/flexjob/task/deleteTaskInfo */
+export async function deleteTaskInfo(body: API.DeleteTaskInfoCommand, options?: API.RequestConfig) {
+ return request<number>('/api/flexjob/task/deleteTaskInfo', {
+ method: 'DELETE',
+ headers: {
+ 'Content-Type': 'application/json-patch+json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
/** 鏌ヨ浠诲姟璇︽儏 GET /api/flexjob/task/getTaskInfo */
export async function getTaskInfo(
// 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
@@ -19,17 +31,14 @@
/** 鏌ヨ浠诲姟鍒嗛〉鍒楄〃 POST /api/flexjob/task/getTaskInfos */
export async function getTaskInfos(body: API.GetTaskInfosQuery, options?: API.RequestConfig) {
- return request<API.PagedListQueryResultGetTaskInfosQueryResultItem>(
- '/api/flexjob/task/getTaskInfos',
- {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json-patch+json',
- },
- data: body,
- ...(options || {}),
- }
- );
+ return request<API.GetTaskInfosQueryResult>('/api/flexjob/task/getTaskInfos', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json-patch+json',
+ },
+ data: body,
+ ...(options || {}),
+ });
}
/** 淇濆瓨浠诲姟 POST /api/flexjob/task/saveTaskInfo */
diff --git a/packages/services/apiV2/typings.d.ts b/packages/services/apiV2/typings.d.ts
index dc7dd0d..4e963e9 100644
--- a/packages/services/apiV2/typings.d.ts
+++ b/packages/services/apiV2/typings.d.ts
@@ -122,6 +122,10 @@
ids: string[];
}
+ interface DeleteTaskInfoCommand {
+ ids: string[];
+ }
+
enum EnumBillingMethod {
/**鎸夋湀 */
Month = 10,
@@ -233,19 +237,6 @@
enum EnumSmsAccess {
/**闃块噷浜戠煭淇� */
AliyunSms = 10,
- }
-
- enum EnumSmsTemplateType {
- /**鐧诲綍 */
- Login = 0,
- /**娉ㄥ唽 */
- Register = 1,
- /**淇敼瀵嗙爜 */
- UpdatePassword = 2,
- /**缁戝畾鎵嬫満鍙风爜 */
- BindPhoneNumber = 3,
- /**淇敼鎵嬫満鍙风爜 */
- UpdatePhoneNumber = 4,
}
enum EnumTaskCheckReceiveStatus {
@@ -422,6 +413,24 @@
/** 閿欒鐮� */
errorCode?: string;
data?: GetTaskInfoQueryResult;
+ /** 鎵ц鎴愬姛 */
+ success?: boolean;
+ /** 閿欒淇℃伅 */
+ msg?: any;
+ /** 闄勫姞鏁版嵁 */
+ extras?: any;
+ /** 鏃堕棿鎴� */
+ timestamp?: number;
+ }
+
+ interface FriendlyResultGetTaskInfosQueryResult {
+ /** 璺熻釜Id */
+ traceId?: string;
+ /** 鐘舵�佺爜 */
+ code?: number;
+ /** 閿欒鐮� */
+ errorCode?: string;
+ data?: GetTaskInfosQueryResult;
/** 鎵ц鎴愬姛 */
success?: boolean;
/** 閿欒淇℃伅 */
@@ -621,6 +630,24 @@
timestamp?: number;
}
+ interface FriendlyResultLoginCommandCallback {
+ /** 璺熻釜Id */
+ traceId?: string;
+ /** 鐘舵�佺爜 */
+ code?: number;
+ /** 閿欒鐮� */
+ errorCode?: string;
+ data?: LoginCommandCallback;
+ /** 鎵ц鎴愬姛 */
+ success?: boolean;
+ /** 閿欒淇℃伅 */
+ msg?: any;
+ /** 闄勫姞鏁版嵁 */
+ extras?: any;
+ /** 鏃堕棿鎴� */
+ timestamp?: number;
+ }
+
interface FriendlyResultPagedListQueryResultGetDictionaryCategoriesQueryResultItem {
/** 璺熻釜Id */
traceId?: string;
@@ -701,42 +728,6 @@
/** 閿欒鐮� */
errorCode?: string;
data?: PagedListQueryResultGetRolesQueryResultItem;
- /** 鎵ц鎴愬姛 */
- success?: boolean;
- /** 閿欒淇℃伅 */
- msg?: any;
- /** 闄勫姞鏁版嵁 */
- extras?: any;
- /** 鏃堕棿鎴� */
- timestamp?: number;
- }
-
- interface FriendlyResultPagedListQueryResultGetTaskInfosQueryResultItem {
- /** 璺熻釜Id */
- traceId?: string;
- /** 鐘舵�佺爜 */
- code?: number;
- /** 閿欒鐮� */
- errorCode?: string;
- data?: PagedListQueryResultGetTaskInfosQueryResultItem;
- /** 鎵ц鎴愬姛 */
- success?: boolean;
- /** 閿欒淇℃伅 */
- msg?: any;
- /** 闄勫姞鏁版嵁 */
- extras?: any;
- /** 鏃堕棿鎴� */
- timestamp?: number;
- }
-
- interface FriendlyResultPasswordLoginCommandCallback {
- /** 璺熻釜Id */
- traceId?: string;
- /** 鐘舵�佺爜 */
- code?: number;
- /** 閿欒鐮� */
- errorCode?: string;
- data?: PasswordLoginCommandCallback;
/** 鎵ц鎴愬姛 */
success?: boolean;
/** 閿欒淇℃伅 */
@@ -1155,7 +1146,7 @@
/** 浼佷笟Id */
enterpriseId?: string;
/** 浼佷笟鍏ㄧО */
- enterpriseName?: string;
+ enterpriseEnterpriseName?: string;
/** 鍦ㄦ嫑宀椾綅鏁伴噺 */
taskCount?: number;
/** 浠诲姟鍚嶇О */
@@ -1204,7 +1195,9 @@
interface GetTaskInfoQueryResultBenefit {
/** 绂忓埄缂栧彿 */
benefitCode?: string;
- /** 绂忓埄 */
+ /** 绂忓埄鍥炬爣 */
+ benefitField2?: string;
+ /** 绂忓埄鍚嶇О */
benefitContent?: string;
}
@@ -1219,6 +1212,8 @@
pageModel?: PagedListQueryPageModel;
/** 鍏抽敭瀛楋紙浠诲姟鍚嶇О锛� */
keywords?: string;
+ /** 浼佷笟Id */
+ enterpriseId?: string;
/** 鍙戝竷鏃堕棿-寮�濮� */
beginTime?: string;
/** 鍙戝竷鏃堕棿-缁撴潫 */
@@ -1232,6 +1227,24 @@
status?: EnumTaskStatus;
releaseStatus?: EnumTaskReleaseStatus;
recommendStatus?: EnumTaskRecommendStatus;
+ }
+
+ interface GetTaskInfosQueryResult {
+ pageModel?: PagedListQueryResultPageModel;
+ /** 鏁版嵁 */
+ data?: GetTaskInfosQueryResultItem[];
+ count?: GetTaskInfosQueryResultCount;
+ }
+
+ interface GetTaskInfosQueryResultCount {
+ /** 寰呭畨鎺掓暟閲� */
+ waitAssignCount?: number;
+ /** 宸插畨鎺掓暟閲� */
+ completedAssignCount?: number;
+ /** 鍙戝竷涓暟閲� */
+ inProcessReleaseCount?: number;
+ /** 宸插仠姝㈡暟閲� */
+ stoppedReleaseCount?: number;
}
interface GetTaskInfosQueryResultItem {
@@ -1294,6 +1307,13 @@
type GetUserResumeQueryResult = Record<string, any>;
+ interface LoginCommandCallback {
+ /** 鐢ㄦ埛璁块棶浠ょ墝 */
+ accessToken?: string;
+ /** 鍒锋柊浠ょ墝 */
+ refreshToken?: string;
+ }
+
interface PagedListQueryPageModel {
/** 琛屾暟 */
rows?: number;
@@ -1339,12 +1359,6 @@
data?: GetRolesQueryResultItem[];
}
- interface PagedListQueryResultGetTaskInfosQueryResultItem {
- pageModel?: PagedListQueryResultPageModel;
- /** 鏁版嵁 */
- data?: GetTaskInfosQueryResultItem[];
- }
-
interface PagedListQueryResultPageModel {
/** 琛屾暟 */
rows?: number;
@@ -1365,13 +1379,6 @@
password: string;
type?: EnumUserType;
clientType?: EnumClientType;
- }
-
- interface PasswordLoginCommandCallback {
- /** 鐢ㄦ埛璁块棶浠ょ墝 */
- accessToken?: string;
- /** 鍒锋柊浠ょ墝 */
- refreshToken?: string;
}
interface SaveDictionaryCategoryCommand {
@@ -1642,10 +1649,9 @@
data?: any;
}
- interface SendVerifyCodeCommand {
+ interface SendLoginOrRegisterVerifyCodeCommand {
/** 鎵嬫満鍙风爜 */
- phoneNumber?: string;
- templateCode?: EnumSmsTemplateType;
+ phoneNumber: string;
}
interface SetDictionaryDataIsDisabledCommand {
@@ -1722,5 +1728,14 @@
status?: EnumUserStatus;
}
+ interface SmsLoginCommand {
+ /** 鎵嬫満鍙风爜 */
+ phoneNumber: string;
+ /** 楠岃瘉鐮� */
+ verifyCode: string;
+ type?: EnumUserType;
+ clientType?: EnumClientType;
+ }
+
type SyncHumanResourcesAreaDictionaryDataCommand = Record<string, any>;
}
--
Gitblit v1.9.1