From e213f4fbc54d69a5c478a5c44857c0eb1a2a54ae Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 26 十二月 2025 09:18:50 +0800
Subject: [PATCH] feat: init
---
packages/components/src/Card/ReserveServiceCard.vue | 132 +++++-----
apps/bStandardMiniApp/src/subpackages/orderManage/orderManage/InnerPage.vue | 64 +----
packages/constants/index.ts | 1
packages/hooks/standardOrder.ts | 72 +++++
packages/services/apiV2/index.ts | 4
apps/bStandardMiniApp/src/subpackages/appointmentManage/appointmentManageDetail/InnerPage.vue | 9
packages/services/apiV2/typings.d.ts | 196 +++++++++++++++
packages/components/src/Card/TaskPrice.vue | 5
packages/constants/standardOrder.ts | 36 +++
packages/services/apiV2/taskUser.ts | 51 ++++
apps/bStandardMiniApp/src/subpackages/orderManage/orderManageDetail/InnerPage.vue | 48 +++
apps/bStandardMiniApp/src/subpackages/appointmentManage/appointmentManage/InnerPage.vue | 60 +---
12 files changed, 507 insertions(+), 171 deletions(-)
diff --git a/apps/bStandardMiniApp/src/subpackages/appointmentManage/appointmentManage/InnerPage.vue b/apps/bStandardMiniApp/src/subpackages/appointmentManage/appointmentManage/InnerPage.vue
index 75be597..38cc784 100644
--- a/apps/bStandardMiniApp/src/subpackages/appointmentManage/appointmentManage/InnerPage.vue
+++ b/apps/bStandardMiniApp/src/subpackages/appointmentManage/appointmentManage/InnerPage.vue
@@ -1,6 +1,6 @@
<template>
<ProTabs
- v-model="queryState.status"
+ v-model="queryState.appointmentStatus"
name="home-tab"
:showPaneContent="false"
class="home-tabs"
@@ -11,35 +11,40 @@
<ProTabPane :title="`鍏ㄩ儴`" :pane-key="0"></ProTabPane>
<ProTabPane
:title="`寰呯‘璁"
- :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitHire"
+ :pane-key="EnumStandardOrderAppointmentStatus.WaitSure"
></ProTabPane>
<ProTabPane
:title="`寰呮湇鍔"
- :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitSignContract"
+ :pane-key="EnumStandardOrderAppointmentStatus.WaitServe"
></ProTabPane>
<ProTabPane
:title="`宸插畬鎴恅"
- :pane-key="GetPersonalApplyTaskInfosQueryStatus.HireRefuse"
+ :pane-key="EnumStandardOrderAppointmentStatus.Completed"
></ProTabPane>
- <ProTabPane :title="`宸插彇娑坄" :pane-key="40"></ProTabPane>
+ <ProTabPane
+ :title="`宸插彇娑坄"
+ :pane-key="EnumStandardOrderAppointmentStatus.Cancelled"
+ ></ProTabPane>
</ProTabs>
<InfiniteLoading
scrollViewClassName="common-infinite-scroll-list home-list"
v-bind="infiniteLoadingProps"
- :key="queryState.status"
+ :key="queryState.appointmentStatus"
>
<template #renderItem="{ item }">
<ReserveServiceCard
- :name="item.name"
+ :serviceName="item.serviceName"
:begin-time="item.beginTime"
+ :serviceFee="item.serviceFee"
:end-time="item.endTime"
- :billing-method="item.billingMethod"
- :benefits="item.benefits"
- :service-fee="item.serviceFee"
- :settlement-cycle="item.settlementCycle"
- :address-name="item.addressName"
+ :supplierEnterpriseName="item.supplierEnterpriseName"
+ :address-detail="item.addressDetail"
+ :appointmentStatus="item.appointmentStatus"
@click="goDetail(item)"
>
+ <template #serviceCustome>
+ {{ `鏈嶅姟浜哄憳锛�${item.serverNames}` }}
+ </template>
</ReserveServiceCard>
</template>
</InfiniteLoading>
@@ -47,40 +52,15 @@
<script setup lang="ts">
import { ProTabs, ProTabPane, ReserveServiceCard } from '@12333/components';
-import { useUserStore } from '@/stores/modules/user';
-import { useInfiniteLoading } from '@12333/hooks';
-import { EnumPagedListOrder, GetPersonalApplyTaskInfosQueryStatus } from '@12333/constants';
-import * as taskServices from '@12333/services/apiV2/task';
+import { useGetStandardOrders } from '@12333/hooks';
+import { EnumStandardOrderAppointmentStatus } from '@12333/constants';
import Taro from '@tarojs/taro';
defineOptions({
name: 'InnerPage',
});
-const queryState = reactive({
- status: 0 as any as GetPersonalApplyTaskInfosQueryStatus,
-});
-
-const userStore = useUserStore();
-
-const { infiniteLoadingProps } = useInfiniteLoading(
- ({ pageParam }) => {
- let params: API.GetTaskInfosQuery = {
- pageModel: {
- rows: 20,
- page: pageParam,
- orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
- },
- };
-
- return taskServices.getOpenTaskInfos(params, {
- showLoading: false,
- });
- },
- {
- queryKey: ['taskServices/getOpenTaskInfos', queryState],
- }
-);
+const { queryState, infiniteLoadingProps } = useGetStandardOrders();
function goDetail(item: any) {
Taro.navigateTo({
diff --git a/apps/bStandardMiniApp/src/subpackages/appointmentManage/appointmentManageDetail/InnerPage.vue b/apps/bStandardMiniApp/src/subpackages/appointmentManage/appointmentManageDetail/InnerPage.vue
index 20f5aae..24fff87 100644
--- a/apps/bStandardMiniApp/src/subpackages/appointmentManage/appointmentManageDetail/InnerPage.vue
+++ b/apps/bStandardMiniApp/src/subpackages/appointmentManage/appointmentManageDetail/InnerPage.vue
@@ -1,7 +1,7 @@
<template>
<!-- <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> -->
<ContentScrollView hasPaddingTop>
- <MineServiceDetailView />
+ <MineServiceDetailView :addressDetail="detail?.addressDetail" />
</ContentScrollView>
<PageFooter>
<PageFooterBtn type="primary" class="business-card-btn" @click="goCancel"
@@ -17,8 +17,7 @@
<script setup lang="ts">
import { MineServiceDetailView } from '@12333/components';
import Taro from '@tarojs/taro';
-import * as standardServiceServices from '@12333/services/apiV2/standardService';
-import { RouterPath } from '@/constants';
+import { useStandardOrder } from '@12333/hooks';
defineOptions({
name: 'InnerPage',
@@ -27,6 +26,10 @@
const route = Taro.useRouter();
const id = route.params?.id as string;
+const { detail } = useStandardOrder({
+ id: id,
+});
+
function goCancel() {}
function goConfirm() {}
diff --git a/apps/bStandardMiniApp/src/subpackages/orderManage/orderManage/InnerPage.vue b/apps/bStandardMiniApp/src/subpackages/orderManage/orderManage/InnerPage.vue
index ca9d581..1d64964 100644
--- a/apps/bStandardMiniApp/src/subpackages/orderManage/orderManage/InnerPage.vue
+++ b/apps/bStandardMiniApp/src/subpackages/orderManage/orderManage/InnerPage.vue
@@ -1,6 +1,6 @@
<template>
<ProTabs
- v-model="queryState.status"
+ v-model="queryState.payStatus"
name="home-tab"
:showPaneContent="false"
class="home-tabs"
@@ -9,36 +9,29 @@
title-scroll
>
<ProTabPane :title="`鍏ㄩ儴`" :pane-key="0"></ProTabPane>
- <ProTabPane
- :title="`寰呮敮浠榒"
- :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitHire"
- ></ProTabPane>
- <ProTabPane
- :title="`宸叉敮浠榒"
- :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitSignContract"
- ></ProTabPane>
- <ProTabPane
- :title="`宸插畬鎴恅"
- :pane-key="GetPersonalApplyTaskInfosQueryStatus.HireRefuse"
- ></ProTabPane>
+ <ProTabPane :title="`寰呮敮浠榒" :pane-key="EnumStandardOrderPayStatus.Completed"></ProTabPane>
+ <ProTabPane :title="`宸叉敮浠榒" :pane-key="EnumStandardOrderPayStatus.Completed"></ProTabPane>
+ <ProTabPane :title="`宸插畬鎴恅" :pane-key="EnumStandardOrderPayStatus.Cancelled"></ProTabPane>
</ProTabs>
<InfiniteLoading
scrollViewClassName="common-infinite-scroll-list home-list"
v-bind="infiniteLoadingProps"
- :key="queryState.status"
+ :key="queryState.payStatus"
>
<template #renderItem="{ item }">
<ReserveServiceCard
- :name="item.name"
+ :serviceName="item.serviceName"
:begin-time="item.beginTime"
+ :serviceFee="item.serviceFee"
:end-time="item.endTime"
- :billing-method="item.billingMethod"
- :benefits="item.benefits"
- :service-fee="item.serviceFee"
- :settlement-cycle="item.settlementCycle"
- :address-name="item.addressName"
+ :supplierEnterpriseName="item.supplierEnterpriseName"
+ :address-detail="item.addressDetail"
+ :appointmentStatus="item.appointmentStatus"
@click="goOrderDetail(item)"
>
+ <template #serviceCustome>
+ {{ `鏈嶅姟浜哄憳锛�${item.serverNames}` }}
+ </template>
</ReserveServiceCard>
</template>
</InfiniteLoading>
@@ -46,40 +39,15 @@
<script setup lang="ts">
import { ProTabs, ProTabPane, ReserveServiceCard } from '@12333/components';
-import { useUserStore } from '@/stores/modules/user';
-import { useInfiniteLoading } from '@12333/hooks';
-import { EnumPagedListOrder, GetPersonalApplyTaskInfosQueryStatus } from '@12333/constants';
-import * as taskServices from '@12333/services/apiV2/task';
+import { useGetStandardOrders } from '@12333/hooks';
+import { EnumStandardOrderPayStatus } from '@12333/constants';
import Taro from '@tarojs/taro';
defineOptions({
name: 'InnerPage',
});
-const queryState = reactive({
- status: 0 as any as GetPersonalApplyTaskInfosQueryStatus,
-});
-
-const userStore = useUserStore();
-
-const { infiniteLoadingProps } = useInfiniteLoading(
- ({ pageParam }) => {
- let params: API.GetTaskInfosQuery = {
- pageModel: {
- rows: 20,
- page: pageParam,
- orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
- },
- };
-
- return taskServices.getOpenTaskInfos(params, {
- showLoading: false,
- });
- },
- {
- queryKey: ['taskServices/getOpenTaskInfos', queryState],
- }
-);
+const { queryState, infiniteLoadingProps } = useGetStandardOrders();
function goOrderDetail(item: any) {
Taro.navigateTo({
diff --git a/apps/bStandardMiniApp/src/subpackages/orderManage/orderManageDetail/InnerPage.vue b/apps/bStandardMiniApp/src/subpackages/orderManage/orderManageDetail/InnerPage.vue
index 637daf2..54203d0 100644
--- a/apps/bStandardMiniApp/src/subpackages/orderManage/orderManageDetail/InnerPage.vue
+++ b/apps/bStandardMiniApp/src/subpackages/orderManage/orderManageDetail/InnerPage.vue
@@ -4,11 +4,12 @@
<MineServiceDetailView />
</ContentScrollView>
<PageFooter class="order-settle-bar">
- <div class="order-settle-price-wrapper">
- <div class="order-settle-price-label">鏀粯锛�</div>
- <nut-price :price="155" size="large" />
- </div>
- <PageFooterBtn type="primary" class="business-card-btn">绔嬪嵆涓嬪崟</PageFooterBtn>
+ <PageFooterBtn class="business-card-btn" @click="cancelStandardOrderAppointment"
+ >鍙栨秷棰勭害</PageFooterBtn
+ >
+ <PageFooterBtn type="primary" class="business-card-btn" @click="handleSubmit"
+ >纭棰勭害</PageFooterBtn
+ >
</PageFooter>
<!-- </LoadingLayout> -->
</template>
@@ -16,8 +17,10 @@
<script setup lang="ts">
import { MineServiceDetailView } from '@12333/components';
import Taro from '@tarojs/taro';
-import * as standardServiceServices from '@12333/services/apiV2/standardService';
-import { useCheckReceiveTaskUserSubmit } from '@12333/hooks';
+import * as standardOrderServices from '@12333/services/apiV2/standardOrder';
+import { Message } from '@12333/utils';
+import { goBack } from '@/utils';
+import { useStandardOrder } from '@12333/hooks';
defineOptions({
name: 'InnerPage',
@@ -25,6 +28,37 @@
const route = Taro.useRouter();
const id = route.params?.id as string;
+
+const { detail } = useStandardOrder({
+ id: id,
+});
+
+async function cancelStandardOrderAppointment() {
+ try {
+ await Message.confirm({ message: '纭瑕佸彇娑堥绾﹀悧锛�' });
+ let params: API.CancelStandardOrderAppointmentCommand = {
+ id: id,
+ };
+ let res = await standardOrderServices.cancelStandardOrderAppointment(params);
+ if (res) {
+ Message.success('鎿嶄綔鎴愬姛');
+ goBack();
+ }
+ } catch (error) {}
+}
+
+async function handleSubmit() {
+ try {
+ let params: API.SureStandardOrderAppointmentCommand = {
+ id: id,
+ };
+ let res = await standardOrderServices.sureStandardOrderAppointment(params);
+ if (res) {
+ Message.success('鎿嶄綔鎴愬姛');
+ goBack();
+ }
+ } catch (error) {}
+}
</script>
<style lang="scss">
diff --git a/packages/components/src/Card/ReserveServiceCard.vue b/packages/components/src/Card/ReserveServiceCard.vue
index 711023d..9af2e80 100644
--- a/packages/components/src/Card/ReserveServiceCard.vue
+++ b/packages/components/src/Card/ReserveServiceCard.vue
@@ -1,44 +1,44 @@
<template>
<div class="reserve-service-card-wrapper" :class="{ 'un-read': unRead }">
<div class="reserve-service-card-title-wrapper">
- <div class="reserve-service-card-title">{{ name }}</div>
+ <div class="reserve-service-card-title">{{ serviceName }}</div>
<slot name="title-right">
- <TaskPrice
- v-if="releaseStatus !== EnumTaskReleaseStatus.Stopped"
- :value="toThousand(serviceFee ?? 0)"
- :unit="BillingMethodEnumUnit[billingMethod]"
- :billingMethod="billingMethod"
- />
+ <TaskPrice :value="toThousand(serviceFee ?? 0)" unit="鍏�" />
</slot>
</div>
<div class="reserve-service-card-item-list">
<div class="reserve-service-card-item">
- 鏈嶅姟鏃堕棿锛歿{ dayjs(beginTime).format('YYYY骞碝M鏈圖鏃�') }} 13:00-15:00
+ 鏈嶅姟鏃堕棿锛歿{
+ `${dayjs(beginTime).format('YYYY骞碝M鏈圖鏃� HH:mm:ss')} - ${dayjs(endTime).format(
+ 'YYYY骞碝M鏈圖鏃� HH:mm:ss'
+ )}`
+ }}
</div>
- <div class="reserve-service-card-item">鏈嶅姟鍦板潃锛歿{ addressName }}</div>
+ <div class="reserve-service-card-item">鏈嶅姟鍦板潃锛歿{ addressDetail }}</div>
</div>
<div class="reserve-service-card-footer">
<div class="reserve-service-card-left">
- <div class="reserve-service-card-footer-address">鏈嶅姟鏈烘瀯锛氭垜鏄満鏋勫悕绉�</div>
+ <div class="reserve-service-card-footer-address">
+ <slot name="serviceCustome"> 鏈嶅姟鏈烘瀯锛歿{ supplierEnterpriseName }} </slot>
+ </div>
</div>
- <div class="reserve-service-card-status">寰呯‘璁�</div>
+ <div class="reserve-service-card-status">
+ <slot name="status">
+ {{ EnumStandardOrderAppointmentStatusText[appointmentStatus] }}
+ </slot>
+ </div>
</div>
</div>
</template>
<script setup lang="ts">
import {
- EnumBillingMethod,
- EnumSettlementCycle,
- EnumTaskCheckReceiveStatus,
- EnumTaskRecommendStatus,
- EnumTaskReleaseStatus,
- EnumTaskSettlementStatus,
- EnumTaskStatus,
- EnumUserGender,
- BillingMethodEnumUnit,
- EnumTaskUserHireStatus,
+ EnumStandardOrderAppointmentStatus,
+ EnumEnterpriseCooperationServiceFeeCollectType,
+ EnumStandardOrderSettlementStatus,
+ EnumStandardOrderPayStatus,
+ EnumStandardOrderAppointmentStatusText,
} from '@12333/constants';
import dayjs from 'dayjs';
import { toThousand } from '@12333/utils';
@@ -51,51 +51,61 @@
type Props = {
/** Id */
id?: string;
- /** 浠诲姟鍚嶇О */
- name: string;
- /** 浠诲姟鍗曞彿 */
+ /** 璁㈠崟鍙� */
code?: string;
- billingMethod?: EnumBillingMethod;
+ /** 鏈嶅姟鍚� */
+ serviceName?: string;
+ /** 鏈嶅姟鍗曞彿 */
+ serviceCode?: string;
+ /** 鏈嶅姟鍥剧墖 */
+ serviceFile?: string;
+ /** 鐪佸競鍖�+璇︾粏鍦板潃+闂ㄧ墝鍙� */
+ addressDetail?: string;
+ /** 鏈嶅姟璧峰鏃堕棿 */
+ beginTime?: string;
+ /** 鏈嶅姟鎴鏃堕棿 */
+ endTime?: string;
+ /** 涓嬪崟鐢ㄦ埛Id */
+ createdUserId?: string;
+ /** 涓嬪崟鐢ㄦ埛 */
+ createdUserName?: string;
+ /** 鑱旂郴鐢佃瘽 */
+ createdUserContactPhoneNumber?: string;
+ /** 涓嬪崟鏃堕棿 */
+ createdTime?: string;
+ appointmentStatus?: EnumStandardOrderAppointmentStatus;
+ /** 鐢叉柟浼佷笟Id */
+ partyAEnterpriseId?: string;
+ /** 鐢叉柟浼佷笟 */
+ partyAEnterpriseName?: string;
+ /** 渚涘簲鍟咺d */
+ supplierEnterpriseId?: string;
+ /** 渚涘簲鍟� */
+ supplierEnterpriseName?: string;
+ /** 鏈嶅姟浜哄憳 */
+ serverNames?: string;
+ /** 鏈嶅姟浜哄憳鑱旂郴鐢佃瘽 */
+ serverContactPhoneNumbers?: string;
+ payStatus?: EnumStandardOrderPayStatus;
+ /** 鏀粯瀹屾垚鏃堕棿 */
+ payCompletedTime?: string;
+ /** 瀹炰粯閲戦 */
+ payAmount?: number;
+ /** 瀹炴敹閲戦 */
+ receiveAmount?: number;
+ serviceFeeCollectType?: EnumEnterpriseCooperationServiceFeeCollectType;
/** 鏈嶅姟璐� */
serviceFee?: number;
- settlementCycle?: EnumSettlementCycle;
- /** 绂忓埄 */
- benefits?: API.GetTaskInfoQueryResultBenefit[];
- genderLimit?: EnumUserGender;
- /** 璧勬牸璇佷功绫诲瀷 */
- credentialLimits?: API.GetTaskInfoQueryResultCredentialLimit[];
- /** 浠诲姟鍦扮偣鎵�灞炵渷浠界紪鍙� */
- provinceCode?: string;
- /** 浠诲姟鍦扮偣鎵�灞炵渷浠� */
- provinceContent?: string;
- /** 浠诲姟鍦扮偣鎵�灞炲煄甯傜紪鍙� */
- cityCode?: string;
- /** 浠诲姟鍦扮偣鎵�灞炲煄甯� */
- cityContent?: string;
- /** 浠诲姟鍦扮偣鍚嶇О */
- addressName?: string;
- /** 浠诲姟鍦扮偣璇︾粏鍦板潃 */
- addressDetail?: string;
- /** 缁忓害 */
- longitude?: number;
- /** 绾害 */
- latitude?: number;
- /** 鎶ュ悕浜烘暟 */
- userCount?: number;
- status?: EnumTaskStatus;
- /** 浠诲姟寮�濮嬫椂闂� */
- beginTime?: string;
- /** 浠诲姟缁撴潫鏃堕棿 */
- endTime?: string;
- releaseStatus?: EnumTaskReleaseStatus;
- checkReceiveStatus?: EnumTaskCheckReceiveStatus;
- settlementStatus?: EnumTaskSettlementStatus;
- recommendStatus?: EnumTaskRecommendStatus;
- /** 鍒涘缓鏃堕棿 */
- createdTime?: string;
- hireStatus?: EnumTaskUserHireStatus;
+ settlementStatus?: EnumStandardOrderSettlementStatus;
+ /** 缁撶畻鍗曞彿 */
+ settlementCode?: string;
+ /** 缁撶畻鏃堕棿 */
+ settlementTime?: string;
+ /** 缁撶畻閲戦 */
+ settlementAmount?: number;
unRead?: boolean;
+ showActions?: boolean;
};
const props = withDefaults(defineProps<Props>(), {
diff --git a/packages/components/src/Card/TaskPrice.vue b/packages/components/src/Card/TaskPrice.vue
index 0f93364..6a77f96 100644
--- a/packages/components/src/Card/TaskPrice.vue
+++ b/packages/components/src/Card/TaskPrice.vue
@@ -1,6 +1,9 @@
<template>
<div class="task-price">
- <div class="task-price-decimal" v-if="billingMethod !== EnumBillingMethod.Face">
+ <div
+ class="task-price-decimal"
+ v-if="!!billingMethod || billingMethod !== EnumBillingMethod.Face"
+ >
{{ value }}
</div>
<div class="task-price-unit">{{ unit }}</div>
diff --git a/packages/constants/index.ts b/packages/constants/index.ts
index 5de30ac..5248118 100644
--- a/packages/constants/index.ts
+++ b/packages/constants/index.ts
@@ -15,3 +15,4 @@
export * from './apiEnum';
export * from './enterpriseEmployee';
export * from './enterpriseWallet';
+export * from './standardOrder';
diff --git a/packages/constants/standardOrder.ts b/packages/constants/standardOrder.ts
new file mode 100644
index 0000000..044ebc4
--- /dev/null
+++ b/packages/constants/standardOrder.ts
@@ -0,0 +1,36 @@
+import {
+ EnumGetStandardOrdersQueryScene,
+ EnumStandardOrderAppointmentStatus,
+ EnumStandardOrderPayStatus,
+ EnumStandardOrderSettlementStatus,
+ EnumStandardServiceReleaseStatus,
+} from './apiEnum';
+
+export const EnumStandardServiceReleaseStatusText = {
+ [EnumStandardServiceReleaseStatus.InProcess]: '鍙戝竷涓�',
+ [EnumStandardServiceReleaseStatus.Stopped]: '宸插仠姝�',
+};
+
+export const EnumStandardOrderAppointmentStatusText = {
+ [EnumStandardOrderAppointmentStatus.WaitSure]: '寰呯‘璁�',
+ [EnumStandardOrderAppointmentStatus.WaitServe]: '寰呮湇鍔�',
+ [EnumStandardOrderAppointmentStatus.Completed]: '宸插畬鎴�',
+ [EnumStandardOrderAppointmentStatus.Cancelled]: '宸插彇娑�',
+};
+
+export const EnumStandardOrderPayStatusText = {
+ [EnumStandardOrderPayStatus.Wait]: '寰呮敮浠�',
+ [EnumStandardOrderPayStatus.Completed]: '宸叉敮浠�',
+ [EnumStandardOrderPayStatus.Cancelled]: '宸插彇娑�',
+};
+
+export const EnumStandardOrderSettlementStatusText = {
+ [EnumStandardOrderSettlementStatus.Wait]: '寰呯粨绠�',
+ [EnumStandardOrderSettlementStatus.Completed]: '宸插畬鎴�',
+};
+
+export const EnumGetStandardOrdersQuerySceneText = {
+ [EnumGetStandardOrdersQueryScene.Appointment]: '棰勭害璁㈠崟',
+ [EnumGetStandardOrdersQueryScene.Pay]: '鏀粯璁㈠崟',
+ [EnumGetStandardOrdersQueryScene.Settlement]: '缁撶畻璁㈠崟',
+};
diff --git a/packages/hooks/standardOrder.ts b/packages/hooks/standardOrder.ts
index d18be38..b241843 100644
--- a/packages/hooks/standardOrder.ts
+++ b/packages/hooks/standardOrder.ts
@@ -1,7 +1,10 @@
import { useQuery, useQueryClient } from '@tanstack/vue-query';
import * as standardServiceServices from '@12333/services/apiV2/standardService';
-import { computed, MaybeRef, unref } from 'vue';
+import * as standardOrderServices from '@12333/services/apiV2/standardOrder';
+import { computed, MaybeRef, reactive, unref } from 'vue';
import { groupBy } from 'lodash';
+import { useInfiniteLoading } from '@12333/hooks';
+import { EnumStandardOrderAppointmentStatus, EnumStandardOrderPayStatus } from '@12333/constants';
type UseStandardServiceDetailOptions = {
id: MaybeRef<string>;
@@ -95,3 +98,70 @@
standardServiceListForCategoryMap,
};
}
+
+export function useGetStandardOrders() {
+ const queryState = reactive({
+ appointmentStatus: 0 as any as EnumStandardOrderAppointmentStatus,
+ payStatus: 0 as any as EnumStandardOrderPayStatus,
+ });
+
+ const { infiniteLoadingProps } = useInfiniteLoading(
+ ({ pageParam }) => {
+ let params: API.GetStandardOrdersQuery = {
+ pageModel: {
+ rows: 20,
+ page: pageParam,
+ },
+ };
+
+ if (queryState.appointmentStatus) {
+ params.appointmentStatus = queryState.appointmentStatus;
+ }
+ if (queryState.payStatus) {
+ params.payStatus = queryState.payStatus;
+ }
+
+ return standardOrderServices.getStandardOrders(params, {
+ showLoading: false,
+ });
+ },
+ {
+ queryKey: ['standardOrderServices/getStandardOrders', queryState],
+ }
+ );
+
+ return {
+ queryState,
+ infiniteLoadingProps,
+ };
+}
+
+type UseStandardOrderOptions = {
+ id: MaybeRef<string>;
+ onSuccess?: (data: API.GetStandardOrderQueryResult) => any;
+};
+
+export function useStandardOrder({ id, onSuccess }: UseStandardOrderOptions) {
+ const {
+ isLoading,
+ isError,
+ data: detail,
+ refetch,
+ } = useQuery({
+ queryKey: ['standardOrderServices/getStandardOrder', id],
+ queryFn: async () => {
+ const params: API.APIgetStandardOrderParams = {
+ id: unref(id),
+ };
+ return await standardOrderServices.getStandardOrder(params, {
+ showLoading: false,
+ });
+ },
+ placeholderData: () => ({} as API.GetStandardOrderQueryResult),
+ onSuccess(data) {
+ onSuccess?.(data);
+ },
+ });
+
+ return { detail, isLoading, isError, refetch };
+}
diff --git a/packages/services/apiV2/index.ts b/packages/services/apiV2/index.ts
index 74abc28..10b88c6 100644
--- a/packages/services/apiV2/index.ts
+++ b/packages/services/apiV2/index.ts
@@ -14,11 +14,11 @@
import * as logRecords from './logRecords';
import * as dictionary from './dictionary';
import * as taskCheckReceive from './taskCheckReceive';
+import * as taskUser from './taskUser';
import * as standardOrder from './standardOrder';
import * as standardService from './standardService';
import * as userResume from './userResume';
import * as auth from './auth';
-import * as taskUser from './taskUser';
import * as enterpriseInsuranceProduct from './enterpriseInsuranceProduct';
import * as eventUtils from './eventUtils';
import * as enterpriseCooperationWallet from './enterpriseCooperationWallet';
@@ -45,11 +45,11 @@
logRecords,
dictionary,
taskCheckReceive,
+ taskUser,
standardOrder,
standardService,
userResume,
auth,
- taskUser,
enterpriseInsuranceProduct,
eventUtils,
enterpriseCooperationWallet,
diff --git a/packages/services/apiV2/taskUser.ts b/packages/services/apiV2/taskUser.ts
index a66d30a..e7816d9 100644
--- a/packages/services/apiV2/taskUser.ts
+++ b/packages/services/apiV2/taskUser.ts
@@ -41,6 +41,42 @@
});
}
+/** 鏌ヨ浠诲姟瀹夋帓鐏靛伐璇︽儏 GET /api/flexjob/taskUser/getArrangeTaskEnterpriseEmployee */
+export async function getArrangeTaskEnterpriseEmployee(
+ // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+ params: API.APIgetArrangeTaskEnterpriseEmployeeParams,
+ options?: API.RequestConfig
+) {
+ return request<API.GetArrangeTaskEnterpriseEmployeeQueryResult>(
+ '/api/flexjob/taskUser/getArrangeTaskEnterpriseEmployee',
+ {
+ method: 'GET',
+ params: {
+ ...params,
+ },
+ ...(options || {}),
+ }
+ );
+}
+
+/** 鏌ヨ浠诲姟瀹夋帓鐏靛伐鍒楄〃 POST /api/flexjob/taskUser/getArrangeTaskEnterpriseEmployees */
+export async function getArrangeTaskEnterpriseEmployees(
+ body: API.GetArrangeTaskEnterpriseEmployeesQuery,
+ options?: API.RequestConfig
+) {
+ return request<API.GetArrangeTaskEnterpriseEmployeesQueryResult>(
+ '/api/flexjob/taskUser/getArrangeTaskEnterpriseEmployees',
+ {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json-patch+json',
+ },
+ data: body,
+ ...(options || {}),
+ }
+ );
+}
+
/** B绔煡璇汉鍛樺畨鎺掑垎椤靛垪琛ㄤ俊鎭� POST /api/flexjob/taskUser/getArrangeTaskUsers */
export async function getArrangeTaskUsers(
body: API.GetArrangeTaskUsersQuery,
@@ -104,6 +140,21 @@
});
}
+/** 鏌ヨ寰呭畨鎺掍换鍔″垎椤靛垪琛� POST /api/flexjob/taskUser/getWaitArrangeTasks */
+export async function getWaitArrangeTasks(
+ body: API.GetWaitArrangeTasksQuery,
+ options?: API.RequestConfig
+) {
+ return request<API.GetWaitArrangeTasksQueryResult>('/api/flexjob/taskUser/getWaitArrangeTasks', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json-patch+json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
/** 浠诲姟瀹夋帓 PUT /api/flexjob/taskUser/setTaskUserArrange */
export async function setTaskUserArrange(
body: API.SetTaskUserArrangeCommand,
diff --git a/packages/services/apiV2/typings.d.ts b/packages/services/apiV2/typings.d.ts
index aeea194..9966d2e 100644
--- a/packages/services/apiV2/typings.d.ts
+++ b/packages/services/apiV2/typings.d.ts
@@ -104,6 +104,11 @@
maxDeep?: number;
}
+ interface APIgetArrangeTaskEnterpriseEmployeeParams {
+ /** 鐏靛伐Id */
+ id?: string;
+ }
+
interface APIgetCheckReceiveTaskUserSubmitParams {
/** 鎻愪氦Id锛堢敤浜嶣绔鎴风锛� */
submitId?: string;
@@ -2189,6 +2194,42 @@
timestamp?: number;
}
+ interface FriendlyResultGetArrangeTaskEnterpriseEmployeeQueryResult {
+ /** 璺熻釜Id */
+ traceId?: string;
+ /** 鐘舵�佺爜 */
+ code?: number;
+ /** 閿欒鐮� */
+ errorCode?: string;
+ data?: GetArrangeTaskEnterpriseEmployeeQueryResult;
+ /** 鎵ц鎴愬姛 */
+ success?: boolean;
+ /** 閿欒淇℃伅 */
+ msg?: any;
+ /** 闄勫姞鏁版嵁 */
+ extras?: any;
+ /** 鏃堕棿鎴� */
+ timestamp?: number;
+ }
+
+ interface FriendlyResultGetArrangeTaskEnterpriseEmployeesQueryResult {
+ /** 璺熻釜Id */
+ traceId?: string;
+ /** 鐘舵�佺爜 */
+ code?: number;
+ /** 閿欒鐮� */
+ errorCode?: string;
+ data?: GetArrangeTaskEnterpriseEmployeesQueryResult;
+ /** 鎵ц鎴愬姛 */
+ success?: boolean;
+ /** 閿欒淇℃伅 */
+ msg?: any;
+ /** 闄勫姞鏁版嵁 */
+ extras?: any;
+ /** 鏃堕棿鎴� */
+ timestamp?: number;
+ }
+
interface FriendlyResultGetArrangeTaskUsersQueryResult {
/** 璺熻釜Id */
traceId?: string;
@@ -3773,6 +3814,24 @@
timestamp?: number;
}
+ interface FriendlyResultGetWaitArrangeTasksQueryResult {
+ /** 璺熻釜Id */
+ traceId?: string;
+ /** 鐘舵�佺爜 */
+ code?: number;
+ /** 閿欒鐮� */
+ errorCode?: string;
+ data?: GetWaitArrangeTasksQueryResult;
+ /** 鎵ц鎴愬姛 */
+ success?: boolean;
+ /** 閿欒淇℃伅 */
+ msg?: any;
+ /** 闄勫姞鏁版嵁 */
+ extras?: any;
+ /** 鏃堕棿鎴� */
+ timestamp?: number;
+ }
+
interface FriendlyResultGetWxmpSettingsQueryResult {
/** 璺熻釜Id */
traceId?: string;
@@ -4682,6 +4741,66 @@
quickQuery?: string;
}
+ interface GetArrangeTaskEnterpriseEmployeeQueryResult {
+ /** 鐏靛伐Id */
+ id?: string;
+ /** 澶村儚 */
+ avatar?: string;
+ /** 濮撳悕 */
+ name?: string;
+ /** 韬唤璇佸彿 */
+ identity?: string;
+ /** 鎵嬫満鍙� */
+ contactPhoneNumber?: string;
+ gender?: EnumUserGender;
+ /** 骞撮緞 */
+ age?: number;
+ /** 鏄惁瀹炲悕 */
+ isReal?: boolean;
+ realMethod?: EnumUserRealMethod;
+ /** 鐢靛瓙鍚堝悓 */
+ contractUrl?: string;
+ /** 鍗忚璧峰鏃堕棿 */
+ contractBegin?: string;
+ /** 鍗忚缁堟鏃堕棿 */
+ contractEnd?: string;
+ /** 宸插畨鎺掍换鍔� */
+ taskInfos?: GetWaitArrangeTasksQueryResultItem[];
+ }
+
+ interface GetArrangeTaskEnterpriseEmployeesQuery {
+ /** 鍏抽敭瀛楋紙濮撳悕銆佽韩浠借瘉鍙枫�佹墜鏈哄彿锛� */
+ keywords?: string;
+ pageModel?: PagedListQueryPageModel;
+ }
+
+ interface GetArrangeTaskEnterpriseEmployeesQueryResult {
+ pageModel?: PagedListQueryResultPageModel;
+ /** 鏁版嵁 */
+ data?: GetArrangeTaskEnterpriseEmployeesQueryResultItem[];
+ }
+
+ interface GetArrangeTaskEnterpriseEmployeesQueryResultItem {
+ /** Id */
+ id?: string;
+ /** 澶村儚 */
+ avatar?: string;
+ /** 濮撳悕 */
+ name?: string;
+ /** 韬唤璇佸彿 */
+ identity?: string;
+ /** 鎵嬫満鍙� */
+ contactPhoneNumber?: string;
+ gender?: EnumUserGender;
+ /** 骞撮緞 */
+ age?: number;
+ /** 鏄惁瀹炲悕 */
+ isReal?: boolean;
+ realMethod?: EnumUserRealMethod;
+ /** 宸插畨鎺� */
+ arrangeTaskCount?: number;
+ }
+
interface GetArrangeTaskUsersQuery {
/** 浠诲姟Id */
id?: string;
@@ -7957,6 +8076,18 @@
serviceId?: string;
/** 鏈嶅姟鍚� */
serviceName?: string;
+ /** 鏈嶅姟鍗曞彿 */
+ serviceCode?: string;
+ /** 鏈嶅姟鍥剧墖 */
+ serviceFile?: string;
+ /** 涓嬪崟鐢ㄦ埛Id */
+ createdUserId?: string;
+ /** 涓嬪崟鐢ㄦ埛 */
+ createdUserName?: string;
+ /** 鑱旂郴鐢佃瘽 */
+ createdUserContactPhoneNumber?: string;
+ /** 涓嬪崟鏃堕棿 */
+ createdTime?: string;
/** 鐢叉柟浼佷笟Id */
partyAEnterpriseId?: string;
/** 鐢叉柟浼佷笟 */
@@ -8003,12 +8134,8 @@
supplierEnterpriseId?: string;
/** 渚涘簲鍟� */
supplierEnterpriseName?: string;
- /** 鏈嶅姟浜哄憳Id */
- serverId?: string;
- /** 鏈嶅姟浜哄憳濮撳悕 */
- serverName?: string;
- /** 鏈嶅姟浜哄憳鑱旂郴鐢佃瘽 */
- serverContactPhoneNumber?: string;
+ /** 鏈嶅姟浜哄憳 */
+ servers?: GetStandardOrderQueryResultServer[];
/** 澶囨敞 */
remark?: string;
payAccess?: EnumUserBankCardAccess;
@@ -8022,6 +8149,8 @@
payAmount?: number;
/** 鏀粯鏃堕棿 */
payTime?: string;
+ /** 鏀粯瀹屾垚鏃堕棿 */
+ payCompletedTime?: string;
settlementStatus?: EnumStandardOrderSettlementStatus;
serviceFeeCollectType?: EnumEnterpriseCooperationServiceFeeCollectType;
/** 鏈嶅姟璐� */
@@ -8032,6 +8161,15 @@
settlementAmount?: number;
}
+ interface GetStandardOrderQueryResultServer {
+ /** Id */
+ id?: string;
+ /** 濮撳悕 */
+ name?: string;
+ /** 鑱旂郴鐢佃瘽 */
+ contactPhoneNumber?: string;
+ }
+
interface GetStandardOrdersQuery {
scene?: EnumGetStandardOrdersQueryScene;
/** 鍏抽敭瀛楋紙璁㈠崟鍙�/鏈嶅姟鍚嶏級 */
@@ -8065,6 +8203,14 @@
serviceName?: string;
/** 鏈嶅姟鍗曞彿 */
serviceCode?: string;
+ /** 鏈嶅姟鍥剧墖 */
+ serviceFile?: string;
+ /** 鐪佸競鍖�+璇︾粏鍦板潃+闂ㄧ墝鍙� */
+ addressDetail?: string;
+ /** 鏈嶅姟璧峰鏃堕棿 */
+ beginTime?: string;
+ /** 鏈嶅姟鎴鏃堕棿 */
+ endTime?: string;
/** 涓嬪崟鐢ㄦ埛Id */
createdUserId?: string;
/** 涓嬪崟鐢ㄦ埛 */
@@ -8082,8 +8228,10 @@
supplierEnterpriseId?: string;
/** 渚涘簲鍟� */
supplierEnterpriseName?: string;
- /** 渚涘簲鍟嗚仈绯荤數璇� */
- supplierContactPhoneNumber?: string;
+ /** 鏈嶅姟浜哄憳 */
+ serverNames?: string;
+ /** 鏈嶅姟浜哄憳鑱旂郴鐢佃瘽 */
+ serverContactPhoneNumbers?: string;
payStatus?: EnumStandardOrderPayStatus;
/** 鏀粯瀹屾垚鏃堕棿 */
payCompletedTime?: string;
@@ -8091,6 +8239,7 @@
payAmount?: number;
/** 瀹炴敹閲戦 */
receiveAmount?: number;
+ serviceFeeCollectType?: EnumEnterpriseCooperationServiceFeeCollectType;
/** 鏈嶅姟璐� */
serviceFee?: number;
settlementStatus?: EnumStandardOrderSettlementStatus;
@@ -9119,6 +9268,37 @@
pageModel?: PagedListQueryPageModel;
}
+ interface GetWaitArrangeTasksQuery {
+ /** 鐏靛伐Id */
+ enterpriseEmployeeId?: string;
+ /** 鍏抽敭瀛楋紙浠诲姟鍚嶃�佷换鍔″崟鍙凤級 */
+ keywords?: string;
+ pageModel?: PagedListQueryPageModel;
+ }
+
+ interface GetWaitArrangeTasksQueryResult {
+ pageModel?: PagedListQueryResultPageModel;
+ /** 鏁版嵁 */
+ data?: GetWaitArrangeTasksQueryResultItem[];
+ }
+
+ interface GetWaitArrangeTasksQueryResultItem {
+ /** Id */
+ id?: string;
+ /** 浠诲姟鍚嶇О */
+ name?: string;
+ /** 浠诲姟鍗曞彿 */
+ code?: string;
+ /** 鍙戝崟瀹㈡埛Id */
+ enterpriseId?: string;
+ /** 鍙戝崟瀹㈡埛 */
+ enterpriseName?: string;
+ /** 浠诲姟寮�濮嬫椂闂� */
+ beginTime?: string;
+ /** 浠诲姟缁撴潫鏃堕棿 */
+ endTime?: string;
+ }
+
type GetWxmpSettingsQuery = Record<string, any>;
interface GetWxmpSettingsQueryResult {
--
Gitblit v1.10.0