| | |
| | | { |
| | | "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", |
| | | "projectname": "bMiniApp", |
| | | "setting": { |
| | | "compileHotReLoad": true, |
| | | "bigPackageSizeSupport": true, |
| | | "urlCheck": false, |
| | | "coverView": true, |
| | | "lazyloadPlaceholderEnable": false, |
| | | "skylineRenderEnable": false, |
| | | "preloadBackgroundData": false, |
| | | "autoAudits": false, |
| | | "useApiHook": true, |
| | | "useApiHostProcess": true, |
| | | "showShadowRootInWxmlPanel": true, |
| | | "useStaticServer": false, |
| | | "useLanDebug": false, |
| | | "showES6CompileOption": false, |
| | | "checkInvalidKey": true, |
| | | "ignoreDevUnusedFiles": true, |
| | | "useIsolateContext": true |
| | | }, |
| | | "condition": {}, |
| | | "libVersion": "3.9.3" |
| | | "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", |
| | | "projectname": "bMiniApp", |
| | | "setting": { |
| | | "compileHotReLoad": true, |
| | | "bigPackageSizeSupport": true, |
| | | "urlCheck": false, |
| | | "coverView": true, |
| | | "lazyloadPlaceholderEnable": false, |
| | | "skylineRenderEnable": false, |
| | | "preloadBackgroundData": false, |
| | | "autoAudits": false, |
| | | "useApiHook": true, |
| | | "useApiHostProcess": true, |
| | | "showShadowRootInWxmlPanel": true, |
| | | "useStaticServer": false, |
| | | "useLanDebug": false, |
| | | "showES6CompileOption": false, |
| | | "checkInvalidKey": true, |
| | | "ignoreDevUnusedFiles": true, |
| | | "useIsolateContext": true |
| | | }, |
| | | "condition": { |
| | | "miniprogram": { |
| | | "list": [ |
| | | { |
| | | "name": "验收管理", |
| | | "pathName": "subpackages/task/taskCheck/taskCheck", |
| | | "query": "", |
| | | "scene": null, |
| | | "launchMode": "default" |
| | | }, |
| | | { |
| | | "name": "验收详情", |
| | | "pathName": "subpackages/task/taskCheckDetail/taskCheckDetail", |
| | | "query": "id=927b9898-1e9f-4aec-99aa-08ddf4e125c9&date=2025-10-19&checkReceiveStatus=10", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | "libVersion": "3.9.3" |
| | | } |
| | |
| | | 'taskHandleCheckDetail/taskHandleCheckDetail', |
| | | 'taskManage/taskManage', |
| | | 'batchTaskList/batchTaskList', |
| | | 'taskUserSubmitCheckHistories/taskUserSubmitCheckHistories', |
| | | ], |
| | | }, |
| | | { |
| | |
| | | taskHandleCheckDetail = '/subpackages/task/taskHandleCheckDetail/taskHandleCheckDetail', |
| | | taskManage = '/subpackages/task/taskManage/taskManage', |
| | | batchTaskList = '/subpackages/task/batchTaskList/batchTaskList', |
| | | taskUserSubmitCheckHistories = '/subpackages/task/taskUserSubmitCheckHistories/taskUserSubmitCheckHistories', |
| | | |
| | | jobApplicationManage = '/subpackages/jobApplicationManage/jobApplicationManage/jobApplicationManage', |
| | | jobApplicationDetail = '/subpackages/jobApplicationManage/jobApplicationDetail/jobApplicationDetail', |
| | |
| | | :contactPhoneNumber="contactPhoneNumber" |
| | | > |
| | | <template #actions> |
| | | <nut-button |
| | | v-if="checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitCheckReceive" |
| | | type="primary" |
| | | class="task-check-card-phone-btn" |
| | | >验收</nut-button |
| | | > |
| | | <div v-else class="task-check-card-phone-status" :style="{ color: Colors.Success }"> |
| | | {{ EnumTaskCheckReceiveStatusText[checkReceiveStatus] }} |
| | | </div> |
| | | <template v-if="checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn"> |
| | | <nut-button |
| | | v-if="!checkInTime" |
| | | type="primary" |
| | | class="task-check-card-phone-btn" |
| | | @click.stop="emit('checkInOrOut', CheckInOrOutEventEnum.CheckIn)" |
| | | >签到</nut-button |
| | | > |
| | | <nut-button |
| | | v-else-if="!checkOutTime" |
| | | type="primary" |
| | | class="task-check-card-phone-btn" |
| | | @click.stop="emit('checkInOrOut', CheckInOrOutEventEnum.CheckOut)" |
| | | >签出</nut-button |
| | | > |
| | | <div v-else class="task-check-card-phone-status" :style="{ color: Colors.Success }"> |
| | | {{ EnumTaskCheckReceiveStatusText[checkReceiveStatus] }} |
| | | </div> |
| | | </template> |
| | | <template v-else> |
| | | <nut-button |
| | | v-if="checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitCheckReceive" |
| | | type="primary" |
| | | class="task-check-card-phone-btn" |
| | | >验收</nut-button |
| | | > |
| | | <div v-else class="task-check-card-phone-status" :style="{ color: Colors.Success }"> |
| | | {{ EnumTaskCheckReceiveStatusText[checkReceiveStatus] }} |
| | | </div> |
| | | </template> |
| | | </template> |
| | | </TaskCheckPersonalView> |
| | | </div> |
| | |
| | | EnumUserGender, |
| | | EnumTaskCheckReceiveStatus, |
| | | EnumTaskCheckReceiveStatusText, |
| | | EnumTaskCheckReceiveMethod, |
| | | } from '@12333/constants'; |
| | | import { CheckInOrOutEventEnum } from '../constants'; |
| | | |
| | | defineOptions({ |
| | | name: 'TaskCheckCard', |
| | |
| | | isReal?: boolean; |
| | | contactPhoneNumber?: string; |
| | | checkReceiveStatus?: EnumTaskCheckReceiveStatus; |
| | | /** 签到时间 */ |
| | | checkInTime?: string; |
| | | /** 签出时间 */ |
| | | checkOutTime?: string; |
| | | checkReceiveMethod?: EnumTaskCheckReceiveMethod; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), {}); |
| | | |
| | | const emit = defineEmits<{ |
| | | (e: 'checkReceive'): void; |
| | | (e: 'checkInOrOut', ev: CheckInOrOutEventEnum): void; |
| | | }>(); |
| | | </script> |
| | | |
New file |
| | |
| | | <template> |
| | | <div class="task-check-card-wrapper"> |
| | | <TaskCheckPersonalView |
| | | class="task-check-card-view" |
| | | :avatar="avatar" |
| | | :name="name" |
| | | :gender="gender" |
| | | :isReal="isReal" |
| | | :contactPhoneNumber="contactPhoneNumber" |
| | | > |
| | | <template #time v-if="!!checkTime"> |
| | | {{ dayjs(checkTime).format('HH:mm') }} |
| | | </template> |
| | | <template #actions> |
| | | <div |
| | | class="task-check-card-phone-status" |
| | | :style="{ color: EnumTaskUserSubmitCheckHistoryTypeColor[type] }" |
| | | > |
| | | {{ EnumTaskUserSubmitCheckHistoryTypeText[type] }} |
| | | </div> |
| | | </template> |
| | | </TaskCheckPersonalView> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import dayjs from 'dayjs'; |
| | | import TaskCheckPersonalView from './TaskCheckPersonalView.vue'; |
| | | import { |
| | | Colors, |
| | | EnumUserGender, |
| | | EnumTaskUserSubmitCheckHistoryType, |
| | | EnumTaskUserSubmitCheckHistoryTypeText, |
| | | EnumTaskUserSubmitCheckHistoryTypeColor, |
| | | } from '@12333/constants'; |
| | | |
| | | defineOptions({ |
| | | name: 'TaskCheckHistoryCard', |
| | | }); |
| | | |
| | | type Props = { |
| | | avatar?: string; |
| | | name?: string; |
| | | gender?: EnumUserGender; |
| | | isReal?: boolean; |
| | | contactPhoneNumber?: string; |
| | | type?: EnumTaskUserSubmitCheckHistoryType; |
| | | checkTime?: string; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), {}); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | |
| | | .task-check-card-wrapper { |
| | | background: #ffffff; |
| | | border-radius: 12px; |
| | | padding: 40px; |
| | | padding-right: 26px; |
| | | margin-bottom: 24px; |
| | | |
| | | &:last-child { |
| | | margin-bottom: 0; |
| | | } |
| | | |
| | | .task-check-card-view { |
| | | .task-check-card-phone-container { |
| | | margin-top: 0; |
| | | } |
| | | } |
| | | |
| | | .task-check-card-phone-status { |
| | | font-size: 24px; |
| | | height: 52px; |
| | | line-height: 52px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <FlexJobTopView :avatar="avatar" :name="name" :gender="gender" :isReal="isReal"> |
| | | <template #time> |
| | | <slot name="time"></slot> |
| | | </template> |
| | | <template #detail> |
| | | <div class="task-check-card-phone-container"> |
| | | <div class="task-check-card-phone-wrapper"> |
New file |
| | |
| | | export enum CheckInOrOutEventEnum { |
| | | /**签到 */ |
| | | CheckIn = 10, |
| | | /**签出 */ |
| | | CheckOut = 20, |
| | | } |
| | |
| | | <script setup lang="ts"> |
| | | import { MyTaskCard, ProTabs, ProTabPane, Calendar } from '@12333/components'; |
| | | import Taro from '@tarojs/taro'; |
| | | import { EnumTaskCheckReceiveStatus } from '@12333/constants'; |
| | | import { EnumTaskCheckReceiveStatus, EnumTaskCheckReceiveMethod } from '@12333/constants'; |
| | | import { useCheckReceiveTasks } from '@12333/hooks'; |
| | | import dayjs from 'dayjs'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | |
| | | const { queryState, infiniteLoadingProps } = useCheckReceiveTasks(); |
| | | |
| | | function goSubmitTaskDetail(item: API.GetCheckReceiveTasksQueryResultItem) { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.taskCheckDetail}?id=${item.id}&date=${queryState.date}&checkReceiveStatus=${queryState.checkReceiveStatus}`, |
| | | }); |
| | | if ( |
| | | item.checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn && |
| | | dayjs(queryState.date).isBefore(dayjs()) |
| | | ) { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.taskUserSubmitCheckHistories}?id=${item.id}&date=${dayjs( |
| | | queryState.date |
| | | ).format('YYYY-MM-DD')}`, |
| | | }); |
| | | } else { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.taskCheckDetail}?id=${item.id}&date=${dayjs(queryState.date).format( |
| | | 'YYYY-MM-DD' |
| | | )}&checkReceiveStatus=${queryState.checkReceiveStatus}`, |
| | | }); |
| | | } |
| | | } |
| | | </script> |
| | |
| | | :name="item.name" |
| | | :gender="item.gender" |
| | | :isReal="item.isReal" |
| | | :checkInTime="item.checkInTime" |
| | | :checkOutTime="item.checkOutTime" |
| | | :contactPhoneNumber="item.contactPhoneNumber" |
| | | :checkReceiveStatus="item.checkReceiveStatus" |
| | | :checkReceiveMethod="detail?.checkReceiveMethod" |
| | | @checkReceive="goTaskDetail(item)" |
| | | @checkInOrOut="checkReceiveTask" |
| | | /> |
| | | </template> |
| | | </InfiniteLoading> |
| | |
| | | import { useInfiniteLoading } from '@12333/hooks'; |
| | | import TaskCheckCard from '../components/TaskCheckCard.vue'; |
| | | import { MyTaskCard } from '@12333/components'; |
| | | import { EnumTaskCheckReceiveStatus } from '@12333/constants'; |
| | | import { setOSSLink } from '@12333/utils'; |
| | | import { EnumTaskCheckReceiveMethod, EnumTaskCheckReceiveStatus } from '@12333/constants'; |
| | | import { Message, setOSSLink } from '@12333/utils'; |
| | | import dayjs from 'dayjs'; |
| | | import { CheckInOrOutEventEnum } from '../constants'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | |
| | | const date = router.params?.date ?? ''; |
| | | const checkReceiveStatus = Number(router.params?.checkReceiveStatus); |
| | | |
| | | const detail = ref<API.GetCheckReceiveTasksQueryResultItem>(); |
| | | |
| | | const { infiniteLoadingProps } = useInfiniteLoading( |
| | | ({ pageParam }) => { |
| | | async ({ pageParam }) => { |
| | | let params: API.GetCheckReceiveTaskQuery = { |
| | | pageModel: { |
| | | rows: 20, |
| | |
| | | checkReceiveStatus: checkReceiveStatus, |
| | | }; |
| | | |
| | | return taskCheckReceiveServices.getCheckReceiveTask(params, { |
| | | let res = await taskCheckReceiveServices.getCheckReceiveTask(params, { |
| | | showLoading: false, |
| | | }); |
| | | detail.value = res.objectData; |
| | | return res; |
| | | }, |
| | | { |
| | | queryKey: ['taskCheckReceiveServices/getCheckReceiveTask'], |
| | |
| | | ); |
| | | |
| | | function goTaskDetail(item: API.GetCheckReceiveTaskQueryResultItem) { |
| | | if (item.checkReceiveStatus === EnumTaskCheckReceiveStatus.Completed) { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.taskCheckedDetail}?id=${item.id}`, |
| | | }); |
| | | if (detail.value.checkReceiveMethod !== EnumTaskCheckReceiveMethod.CheckIn) { |
| | | if (item.checkReceiveStatus === EnumTaskCheckReceiveStatus.Completed) { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.taskCheckedDetail}?id=${item.id}`, |
| | | }); |
| | | } |
| | | if ( |
| | | item.checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitCheckReceive || |
| | | item.checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitSubmit |
| | | ) { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.taskHandleCheckDetail}?id=${item.id}&date=${date}`, |
| | | }); |
| | | } |
| | | } |
| | | if ( |
| | | item.checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitCheckReceive || |
| | | item.checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitSubmit |
| | | ) { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.taskHandleCheckDetail}?id=${item.id}&date=${date}`, |
| | | }); |
| | | } |
| | | } |
| | | |
| | | async function checkReceiveTask(ev: CheckInOrOutEventEnum) { |
| | | try { |
| | | let params: API.CheckReceiveTaskCommand = { |
| | | id: id, |
| | | }; |
| | | if (ev === CheckInOrOutEventEnum.CheckIn) { |
| | | params.checkInTime = dayjs().format('YYYY-MM-DD HH:mm:ss'); |
| | | } else if (ev === CheckInOrOutEventEnum.CheckOut) { |
| | | params.checkOutTime = dayjs().format('YYYY-MM-DD HH:mm:ss'); |
| | | } |
| | | let res = await taskCheckReceiveServices.checkReceiveTask(params); |
| | | if (res) { |
| | | Message.success('提交成功'); |
| | | infiniteLoadingProps.value?.refetch?.(); |
| | | } |
| | | } catch (error) {} |
| | | } |
| | | </script> |
New file |
| | |
| | | <template> |
| | | <LoadingLayout> |
| | | <ProTabs |
| | | v-model="queryState.type" |
| | | name="taskUserSubmitCheckHistories-tab" |
| | | :showPaneContent="false" |
| | | class="taskUserSubmitCheckHistories-tabs" |
| | | isTransparent |
| | | title-gutter="8" |
| | | title-scroll |
| | | > |
| | | <ProTabPane :title="`全部`" :pane-key="0"></ProTabPane> |
| | | <ProTabPane |
| | | :title="EnumTaskUserSubmitCheckHistoryTypeText[EnumTaskUserSubmitCheckHistoryType.CheckIn]" |
| | | :pane-key="EnumTaskUserSubmitCheckHistoryType.CheckIn" |
| | | ></ProTabPane> |
| | | <ProTabPane |
| | | :title="EnumTaskUserSubmitCheckHistoryTypeText[EnumTaskUserSubmitCheckHistoryType.CheckOut]" |
| | | :pane-key="EnumTaskUserSubmitCheckHistoryType.CheckOut" |
| | | ></ProTabPane> |
| | | <ProTabPane |
| | | :title=" |
| | | EnumTaskUserSubmitCheckHistoryTypeText[EnumTaskUserSubmitCheckHistoryType.UnCheckIn] |
| | | " |
| | | :pane-key="EnumTaskUserSubmitCheckHistoryType.UnCheckIn" |
| | | ></ProTabPane> |
| | | <ProTabPane |
| | | :title=" |
| | | EnumTaskUserSubmitCheckHistoryTypeText[EnumTaskUserSubmitCheckHistoryType.UnCheckOut] |
| | | " |
| | | :pane-key="EnumTaskUserSubmitCheckHistoryType.UnCheckOut" |
| | | ></ProTabPane> |
| | | </ProTabs> |
| | | <ChunkTitle :title="title" /> |
| | | <InfiniteLoading |
| | | scrollViewClassName="common-infinite-scroll-list" |
| | | v-bind="infiniteLoadingProps" |
| | | > |
| | | <template #renderItem="{ item }"> |
| | | <TaskCheckHistoryCard |
| | | :avatar="setOSSLink(item.avatar)" |
| | | :name="item.name" |
| | | :gender="item.gender" |
| | | :isReal="item.isReal" |
| | | :contactPhoneNumber="item.contactPhoneNumber" |
| | | :type="item.type" |
| | | :checkTime="item.checkTime" |
| | | /> |
| | | </template> |
| | | </InfiniteLoading> |
| | | </LoadingLayout> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import Taro from '@tarojs/taro'; |
| | | import * as taskCheckReceiveServices from '@12333/services/apiV2/taskCheckReceive'; |
| | | import { useInfiniteLoading } from '@12333/hooks'; |
| | | import TaskCheckHistoryCard from '../components/TaskCheckHistoryCard.vue'; |
| | | import { ProTabs, ProTabPane } from '@12333/components'; |
| | | import { |
| | | EnumTaskUserSubmitCheckHistoryTypeText, |
| | | EnumTaskUserSubmitCheckHistoryTypeColor, |
| | | EnumTaskUserSubmitCheckHistoryType, |
| | | WeekCN, |
| | | } from '@12333/constants'; |
| | | import { Message, setOSSLink } from '@12333/utils'; |
| | | import dayjs from 'dayjs'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const router = Taro.useRouter(); |
| | | const id = router.params?.id ?? ''; |
| | | const date = router.params?.date ?? ''; |
| | | |
| | | const title = `${dayjs(date).format('YYYY年MM月DD日')} 星期${WeekCN[dayjs(date).day()]}`; |
| | | |
| | | const queryState = reactive({ |
| | | type: 0 as any as EnumTaskUserSubmitCheckHistoryType, |
| | | }); |
| | | |
| | | const { infiniteLoadingProps } = useInfiniteLoading( |
| | | async ({ pageParam }) => { |
| | | let params: API.GetCheckReceiveTaskUserSubmitCheckHistoriesQuery = { |
| | | pageModel: { |
| | | rows: 20, |
| | | page: pageParam, |
| | | }, |
| | | taskInfoId: id, |
| | | date: dayjs(date).format('YYYY-MM-DD'), |
| | | type: queryState.type, |
| | | }; |
| | | |
| | | let res = await taskCheckReceiveServices.getCheckReceiveTaskUserSubmitCheckHistories(params, { |
| | | showLoading: false, |
| | | }); |
| | | return res; |
| | | }, |
| | | { |
| | | queryKey: ['taskCheckReceiveServices/getCheckReceiveTaskUserSubmitCheckHistories', queryState], |
| | | } |
| | | ); |
| | | </script> |
New file |
| | |
| | | export default definePageConfig({ |
| | | disableScroll: true, |
| | | }); |
New file |
| | |
| | | <template> |
| | | <PageLayoutWithBg class="taskUserSubmitCheckHistories-page-wrapper" title="验收详情"> |
| | | <InnerPage /> |
| | | </PageLayoutWithBg> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import InnerPage from './InnerPage.vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'taskUserSubmitCheckHistories', |
| | | }); |
| | | </script> |
| | |
| | | /> |
| | | <div class="flexJob-card-top-info"> |
| | | <div class="flexJob-card-top-info-item"> |
| | | <div class="flexJob-card-top-info-name">{{ name }}</div> |
| | | <div class="flexJob-card-top-info-gender"> |
| | | <img |
| | | v-if="gender === EnumUserGender.Male" |
| | | :src="IconMale" |
| | | class="flexJob-card-top-info-gender-icon" |
| | | /> |
| | | <img v-else :src="IconFemale" class="flexJob-card-top-info-gender-icon" /> |
| | | <div class="flexJob-card-top-info-item-w"> |
| | | <div class="flexJob-card-top-info-name">{{ name }}</div> |
| | | <div class="flexJob-card-top-info-gender"> |
| | | <img |
| | | v-if="gender === EnumUserGender.Male" |
| | | :src="IconMale" |
| | | class="flexJob-card-top-info-gender-icon" |
| | | /> |
| | | <img v-else :src="IconFemale" class="flexJob-card-top-info-gender-icon" /> |
| | | </div> |
| | | <div class="flexJob-card-top-info-auth" :class="{ 'is-real-name': isReal }"> |
| | | {{ isReal ? '已实名' : '未实名' }} |
| | | </div> |
| | | </div> |
| | | <div class="flexJob-card-top-info-auth" :class="{ 'is-real-name': isReal }"> |
| | | {{ isReal ? '已实名' : '未实名' }} |
| | | <div class="flexJob-card-top-info-item-right"> |
| | | <slot name="time"></slot> |
| | | </div> |
| | | </div> |
| | | <slot name="detail"> |
| | |
| | | flex: 1; |
| | | min-width: 0; |
| | | |
| | | .flexJob-card-top-info-item-w { |
| | | display: flex; |
| | | align-items: center; |
| | | flex: 1; |
| | | min-width: 0; |
| | | } |
| | | |
| | | .flexJob-card-top-info-item { |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .flexJob-card-top-info-item-right { |
| | | font-size: 28px; |
| | | line-height: 34px; |
| | | color: boleGetCssVar('text-color', 'secondary'); |
| | | } |
| | | |
| | | .flexJob-card-top-info-name { |
| | | font-size: 34px; |
| | | line-height: 34px; |
| | |
| | | Stopped = 100, |
| | | } |
| | | |
| | | /** 任务结算审核状态 */ |
| | | export enum EnumTaskSettlementAuditStatus { |
| | | /**待审核 */ |
| | | Wait = 10, |
| | | /**审核通过 */ |
| | | Pass = 20, |
| | | /**驳回 */ |
| | | Fail = 30, |
| | | } |
| | | |
| | | /** 任务结算单状态 */ |
| | | export enum EnumTaskSettlementOrderStatus { |
| | | /**待上传 */ |
| | |
| | | Stop = 50, |
| | | } |
| | | |
| | | /** 任务人员提交信息签到记录类型 */ |
| | | export enum EnumTaskUserSubmitCheckHistoryType { |
| | | /**签到 */ |
| | | CheckIn = 10, |
| | | /**签出 */ |
| | | CheckOut = 20, |
| | | /**未到岗 */ |
| | | UnCheckIn = 30, |
| | | /**未签出 */ |
| | | UnCheckOut = 40, |
| | | } |
| | | |
| | | /** 任务验收状态 */ |
| | | export enum EnumTaskUserSubmitCheckReceiveStatus { |
| | | /**待提交 */ |
| | | WaitSubmit = 10, |
| | | /**待验收/未到岗 */ |
| | | /**待验收 */ |
| | | WaitCheckReceive = 20, |
| | | /**验收通过/已签到 */ |
| | | Success = 30, |
| | | /**验收未通过 */ |
| | | /**验收未通过/未到岗 */ |
| | | Fail = 40, |
| | | } |
| | | |
| | |
| | | */ |
| | | UserCertification = 10, |
| | | } |
| | | |
| | | export const WeekCN = ['日', '一', '二', '三', '四', '五', '六']; |
| | |
| | | GetTaskInfoQueryResultHireButton, |
| | | GetTaskInfoQueryResultApplyButton, |
| | | EnumTaskUserSubmitCheckReceiveStatus, |
| | | EnumTaskUserSubmitCheckHistoryType, |
| | | } from './apiEnum'; |
| | | |
| | | export const EnumBillingMethodText = { |
| | |
| | | [GetTaskInfoQueryResultApplyButton.WaitHire]: '待确认', |
| | | [GetTaskInfoQueryResultApplyButton.WaitSignContract]: '去签约', |
| | | }; |
| | | |
| | | export const EnumTaskUserSubmitCheckHistoryTypeText = { |
| | | [EnumTaskUserSubmitCheckHistoryType.CheckIn]: '签到', |
| | | [EnumTaskUserSubmitCheckHistoryType.CheckOut]: '签出', |
| | | [EnumTaskUserSubmitCheckHistoryType.UnCheckIn]: '未到岗', |
| | | [EnumTaskUserSubmitCheckHistoryType.UnCheckOut]: '未签出', |
| | | }; |
| | | |
| | | export const EnumTaskUserSubmitCheckHistoryTypeColor = { |
| | | [EnumTaskUserSubmitCheckHistoryType.CheckIn]: Colors.Success, |
| | | [EnumTaskUserSubmitCheckHistoryType.CheckOut]: Colors.Success, |
| | | [EnumTaskUserSubmitCheckHistoryType.UnCheckIn]: Colors.Danger, |
| | | [EnumTaskUserSubmitCheckHistoryType.UnCheckOut]: Colors.Info, |
| | | }; |
| | |
| | | import * as enterpriseEmployee from './enterpriseEmployee'; |
| | | import * as user from './user'; |
| | | import * as role from './role'; |
| | | import * as enterpriseWallet from './enterpriseWallet'; |
| | | import * as ocrUtils from './ocrUtils'; |
| | | import * as task from './task'; |
| | | import * as enterprise from './enterprise'; |
| | | import * as logRecords from './logRecords'; |
| | | import * as resource from './resource'; |
| | | import * as enterpriseWallet from './enterpriseWallet'; |
| | | import * as dictionary from './dictionary'; |
| | | import * as codeUrl from './codeUrl'; |
| | | import * as electronSign from './electronSign'; |
| | |
| | | import * as taskCheckReceive from './taskCheckReceive'; |
| | | import * as taskUser from './taskUser'; |
| | | import * as sms from './sms'; |
| | | import * as logRecords from './logRecords'; |
| | | import * as menu from './menu'; |
| | | import * as fileUtils from './fileUtils'; |
| | | import * as userWallet from './userWallet'; |
| | | import * as settings from './settings'; |
| | | import * as menu from './menu'; |
| | | import * as userWallet from './userWallet'; |
| | | import * as fileUtils from './fileUtils'; |
| | | import * as syncDatabase from './syncDatabase'; |
| | | export default { |
| | | enterpriseEmployee, |
| | | user, |
| | | role, |
| | | enterpriseWallet, |
| | | ocrUtils, |
| | | task, |
| | | enterprise, |
| | | logRecords, |
| | | resource, |
| | | enterpriseWallet, |
| | | dictionary, |
| | | codeUrl, |
| | | electronSign, |
| | |
| | | taskCheckReceive, |
| | | taskUser, |
| | | sms, |
| | | logRecords, |
| | | menu, |
| | | fileUtils, |
| | | userWallet, |
| | | settings, |
| | | menu, |
| | | userWallet, |
| | | fileUtils, |
| | | syncDatabase, |
| | | }; |
| | |
| | | // @ts-ignore |
| | | import { request } from '@/utils/request'; |
| | | |
| | | /** 审核任务结算 POST /api/flexjob/task/auditTaskSettlement */ |
| | | export async function auditTaskSettlement( |
| | | body: API.AuditTaskSettlementCommand, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<string>('/api/flexjob/task/auditTaskSettlement', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** 删除任务 DELETE /api/flexjob/task/deleteTaskInfo */ |
| | | export async function deleteTaskInfo(body: API.DeleteTaskInfoCommand, options?: API.RequestConfig) { |
| | | return request<number>('/api/flexjob/task/deleteTaskInfo', { |
| | |
| | | ); |
| | | } |
| | | |
| | | /** 查询验收任务详情-签到签出记录 POST /api/flexjob/taskCheckReceive/getCheckReceiveTaskUserSubmitCheckHistories */ |
| | | export async function getCheckReceiveTaskUserSubmitCheckHistories( |
| | | body: API.GetCheckReceiveTaskUserSubmitCheckHistoriesQuery, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.GetCheckReceiveTaskUserSubmitCheckHistoriesQueryResult>( |
| | | '/api/flexjob/taskCheckReceive/getCheckReceiveTaskUserSubmitCheckHistories', |
| | | { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** 查询验收详情 POST /api/flexjob/taskCheckReceive/getCheckReceiveTaskUserSubmits */ |
| | | export async function getCheckReceiveTaskUserSubmits( |
| | | body: API.GetCheckReceiveTaskUserSubmitsQuery, |
| | |
| | | ids?: string[]; |
| | | } |
| | | |
| | | interface AuditTaskSettlementCommand { |
| | | /** 结算订单Id */ |
| | | id?: string; |
| | | auditStatus?: EnumTaskSettlementAuditStatus; |
| | | /** 审核备注 */ |
| | | auditRemark?: string; |
| | | } |
| | | |
| | | interface BaiduOcrBusinessLicenseResultModel { |
| | | /** 企业全称 */ |
| | | enterpriseName?: string; |
| | |
| | | sessionKey: string; |
| | | } |
| | | |
| | | interface BuildOperatorTokenCommand { |
| | | /** 操作密码 */ |
| | | password?: string; |
| | | } |
| | | |
| | | interface BuildOperatorTokenCommandResult { |
| | | /** 操作令牌 */ |
| | | operatorToken?: string; |
| | | } |
| | | |
| | | interface ChangePhoneNumberCommand { |
| | | /** 手机号码 */ |
| | | phoneNumber: string; |
| | |
| | | |
| | | type CheckHealthQuery = Record<string, any>; |
| | | |
| | | interface CheckOperatorTokenCommand { |
| | | /** 操作令牌 */ |
| | | operatorToken?: string; |
| | | } |
| | | |
| | | interface CheckReceiveTaskCommand { |
| | | /** 提交Id */ |
| | | id?: string; |
| | | /** 签到时间 */ |
| | | checkInTime?: string; |
| | | /** 签出时间 */ |
| | | checkOutTime?: string; |
| | | checkReceiveStatus?: EnumTaskUserSubmitCheckReceiveStatus; |
| | | } |
| | | |
| | |
| | | interface EditTaskSettlementOrderRosterCommand { |
| | | /** 名单Id */ |
| | | id?: string; |
| | | /** 累计工时 */ |
| | | totalWorkHours?: number; |
| | | /** 结算金额 */ |
| | | settlementAmount: number; |
| | | /** 实发金额 */ |
| | |
| | | Stopped = 100, |
| | | } |
| | | |
| | | enum EnumTaskSettlementAuditStatus { |
| | | /**待审核 */ |
| | | Wait = 10, |
| | | /**审核通过 */ |
| | | Pass = 20, |
| | | /**驳回 */ |
| | | Fail = 30, |
| | | } |
| | | |
| | | enum EnumTaskSettlementOrderStatus { |
| | | /**待上传 */ |
| | | Wait = 10, |
| | |
| | | Stop = 50, |
| | | } |
| | | |
| | | enum EnumTaskUserSubmitCheckHistoryType { |
| | | /**签到 */ |
| | | CheckIn = 10, |
| | | /**签出 */ |
| | | CheckOut = 20, |
| | | /**未到岗 */ |
| | | UnCheckIn = 30, |
| | | /**未签出 */ |
| | | UnCheckOut = 40, |
| | | } |
| | | |
| | | enum EnumTaskUserSubmitCheckReceiveStatus { |
| | | /**待提交 */ |
| | | WaitSubmit = 10, |
| | | /**待验收/未到岗 */ |
| | | /**待验收 */ |
| | | WaitCheckReceive = 20, |
| | | /**验收通过/已签到 */ |
| | | Success = 30, |
| | | /**验收未通过 */ |
| | | /**验收未通过/未到岗 */ |
| | | Fail = 40, |
| | | } |
| | | |
| | |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultBuildOperatorTokenCommandResult { |
| | | /** 跟踪Id */ |
| | | traceId?: string; |
| | | /** 状态码 */ |
| | | code?: number; |
| | | /** 错误码 */ |
| | | errorCode?: string; |
| | | data?: BuildOperatorTokenCommandResult; |
| | | /** 执行成功 */ |
| | | success?: boolean; |
| | | /** 错误信息 */ |
| | | msg?: any; |
| | | /** 附加数据 */ |
| | | extras?: any; |
| | | /** 时间戳 */ |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultEnterpriseUserElectronSignCommandResult { |
| | | /** 跟踪Id */ |
| | | traceId?: string; |
| | |
| | | /** 错误码 */ |
| | | errorCode?: string; |
| | | data?: GetCheckReceiveTasksQueryResult; |
| | | /** 执行成功 */ |
| | | success?: boolean; |
| | | /** 错误信息 */ |
| | | msg?: any; |
| | | /** 附加数据 */ |
| | | extras?: any; |
| | | /** 时间戳 */ |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultGetCheckReceiveTaskUserSubmitCheckHistoriesQueryResult { |
| | | /** 跟踪Id */ |
| | | traceId?: string; |
| | | /** 状态码 */ |
| | | code?: number; |
| | | /** 错误码 */ |
| | | errorCode?: string; |
| | | data?: GetCheckReceiveTaskUserSubmitCheckHistoriesQueryResult; |
| | | /** 执行成功 */ |
| | | success?: boolean; |
| | | /** 错误信息 */ |
| | |
| | | /** 是否实名 */ |
| | | isReal?: boolean; |
| | | realMethod?: EnumUserRealMethod; |
| | | /** 签到时间 */ |
| | | checkInTime?: string; |
| | | /** 签出时间 */ |
| | | checkOutTime?: string; |
| | | /** 操作人 */ |
| | | operator?: string; |
| | | /** 最近提交时间 */ |
| | | lastSubmitTime?: string; |
| | | checkReceiveStatus?: EnumTaskCheckReceiveStatus; |
| | |
| | | lastCheckReceiveTime?: string; |
| | | } |
| | | |
| | | interface GetCheckReceiveTaskUserSubmitCheckHistoriesQuery { |
| | | /** 任务Id */ |
| | | taskInfoId?: string; |
| | | /** 日期 */ |
| | | date?: string; |
| | | type?: EnumTaskUserSubmitCheckHistoryType; |
| | | pageModel?: PagedListQueryPageModel; |
| | | } |
| | | |
| | | interface GetCheckReceiveTaskUserSubmitCheckHistoriesQueryResult { |
| | | pageModel?: PagedListQueryResultPageModel; |
| | | /** 数据 */ |
| | | data?: GetCheckReceiveTaskUserSubmitCheckHistoriesQueryResultItem[]; |
| | | } |
| | | |
| | | interface GetCheckReceiveTaskUserSubmitCheckHistoriesQueryResultItem { |
| | | /** 记录Id */ |
| | | id?: string; |
| | | /** 头像 */ |
| | | avatar?: string; |
| | | /** 姓名 */ |
| | | name?: string; |
| | | /** 身份证号 */ |
| | | identity?: string; |
| | | gender?: EnumUserGender; |
| | | /** 年龄 */ |
| | | age?: number; |
| | | /** 手机号 */ |
| | | contactPhoneNumber?: string; |
| | | /** 是否实名 */ |
| | | isReal?: boolean; |
| | | realMethod?: EnumUserRealMethod; |
| | | /** 签到签出时间 */ |
| | | checkTime?: string; |
| | | /** 操作人 */ |
| | | operator?: string; |
| | | type?: EnumTaskUserSubmitCheckHistoryType; |
| | | } |
| | | |
| | | interface GetCheckReceiveTaskUserSubmitQueryResult { |
| | | /** 提交Id */ |
| | | id?: string; |
| | |
| | | id?: string; |
| | | /** 验收时间 */ |
| | | date?: string; |
| | | /** 签到时间 */ |
| | | checkInTime?: string; |
| | | /** 签出时间 */ |
| | | checkOutTime?: string; |
| | | /** 操作人 */ |
| | | operator?: string; |
| | | /** 提交时间 */ |
| | | createdTime?: string; |
| | | /** 验收照片 */ |
| | |
| | | interface GetSettlementTaskUsersQueryResultDetail { |
| | | /** 结算订单Id */ |
| | | id?: string; |
| | | /** 校验验收起始日期 */ |
| | | checkReceiveBeginDate?: string; |
| | | /** 校验验收截止日期 */ |
| | | checkReceiveEndDate?: string; |
| | | /** 任务名称 */ |
| | | name?: string; |
| | | /** 任务单号 */ |
| | | code?: string; |
| | | billingMethod?: EnumBillingMethod; |
| | | /** 服务费 */ |
| | | serviceFee?: number; |
| | | /** 核定工时 */ |
| | | verifyWorkHours?: number; |
| | | /** 超时服务费 */ |
| | | timeoutServiceFee?: number; |
| | | settlementOrderStatus?: EnumTaskSettlementOrderStatus; |
| | | /** 结算单名称 */ |
| | | settlementOrderName?: string; |
| | |
| | | interface GetSettlementTaskUsersQueryResultItem { |
| | | /** 结算名单Id */ |
| | | id?: string; |
| | | /** 任务人员Id */ |
| | | taskInfoUserId?: string; |
| | | /** 用户信息Id */ |
| | | userId?: string; |
| | | /** 姓名 */ |
| | |
| | | identity?: string; |
| | | /** 手机号 */ |
| | | contactPhoneNumber?: string; |
| | | /** 累计工时 */ |
| | | totalWorkHours?: number; |
| | | /** 所属银行 */ |
| | | bank?: string; |
| | | /** 开户支行名称 */ |
| | |
| | | bankBranch?: string; |
| | | /** 收款账户 */ |
| | | receiveAccount?: string; |
| | | /** 累计工时 */ |
| | | totalWorkHours?: number; |
| | | /** 结算金额 */ |
| | | settlementAmount?: number; |
| | | /** 实发金额 */ |
| | |
| | | userName?: string; |
| | | /** 手机号 */ |
| | | phoneNumber?: string; |
| | | /** 密码 */ |
| | | /** 密码(选填 填了就改不填就不改) */ |
| | | password?: string; |
| | | /** 操作密码(选填 填了就改不填就不改) */ |
| | | operatorPassword?: string; |
| | | /** 角色Id */ |
| | | roleIds?: string[]; |
| | | status?: EnumUserStatus; |
| | |
| | | // @ts-ignore |
| | | import { request } from '@/utils/request'; |
| | | |
| | | /** 生成操作令牌 POST /api/user/user/buildOperatorToken */ |
| | | export async function buildOperatorToken( |
| | | body: API.BuildOperatorTokenCommand, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.BuildOperatorTokenCommandResult>('/api/user/user/buildOperatorToken', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** 校验操作令牌 POST /api/user/user/checkOperatorToken */ |
| | | export async function checkOperatorToken( |
| | | body: API.CheckOperatorTokenCommand, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<boolean>('/api/user/user/checkOperatorToken', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** 删除用户银行卡信息 DELETE /api/user/user/deletePersonalUserBankCard */ |
| | | export async function deletePersonalUserBankCard( |
| | | body: API.DeletePersonalUserBankCardCommand, |