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