Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp
3个文件已添加
2 文件已重命名
10个文件已修改
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import TaskCheckPersonalView from '../../task/components/TaskCheckPersonalView.vue'; |
| | | import BusinessCardDetailItem from './BusinessCardDetailItem.vue'; |
| | | import IconWechat from '@/assets/businessCard/icon-wechat.png'; |
| | | import IconPosition from '@/assets/businessCard/icon-position.png'; |
| | | import IconEmail from '@/assets/businessCard/icon-email.png'; |
| | | import IconCompany from '@/assets/businessCard/icon-company.png'; |
| | | import IconAddress from '@/assets/businessCard/icon-address.png'; |
| | | import { TaskCheckPersonalView } from '@12333/components'; |
| | | |
| | | defineOptions({ |
| | | name: 'BusinessCardDetailInfoView', |
| | |
| | | <div v-else class="task-check-card-phone-status" :style="{ color: Colors.Success }"> |
| | | {{ EnumTaskCheckReceiveStatusText[checkReceiveStatus] }} |
| | | </div> --> |
| | | <nut-button type="primary" class="task-check-card-phone-btn" @click.stop="handleMore" |
| | | >操作</nut-button |
| | | <template |
| | | v-if="props.submitCheckReceiveStatus !== EnumTaskUserSubmitCheckReceiveStatus.Fail" |
| | | > |
| | | <nut-button |
| | | v-if="!checkInTime || !checkOutTime" |
| | | type="primary" |
| | | class="task-check-card-phone-btn" |
| | | @click.stop="handleMore" |
| | | >操作</nut-button |
| | | > |
| | | <div v-else class="task-check-card-phone-status" :style="{ color: Colors.Success }"> |
| | | {{ EnumTaskCheckReceiveStatusText[checkReceiveStatus] }} |
| | | </div> |
| | | </template> |
| | | </template> |
| | | <template v-else> |
| | | <nut-button |
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import TaskCheckPersonalView from './TaskCheckPersonalView.vue'; |
| | | import { |
| | | Colors, |
| | | EnumUserGender, |
| | | EnumTaskCheckReceiveStatus, |
| | | EnumTaskCheckReceiveStatusText, |
| | | EnumTaskCheckReceiveMethod, |
| | | EnumGetCheckReceiveTasksQueryResultItemCheckStatus, |
| | | EnumTaskUserSubmitCheckReceiveStatus, |
| | | } from '@12333/constants'; |
| | | import { TaskCheckPersonalView } from '@12333/components'; |
| | | import { CheckInOrOutEventEnum } from '../constants'; |
| | | import { Portal } from 'senin-mini/components'; |
| | | import { ActionSheet } from '@nutui/nutui-taro'; |
| | |
| | | /** 签出时间 */ |
| | | checkOutTime?: string; |
| | | checkReceiveMethod?: EnumTaskCheckReceiveMethod; |
| | | |
| | | submitCheckReceiveStatus?: EnumTaskUserSubmitCheckReceiveStatus; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), {}); |
| | | |
| | | const emit = defineEmits<{ |
| | | (e: 'checkReceive'): void; |
| | | (e: 'checkInOrOut', ev: CheckInOrOutEventEnum): void; |
| | | (e: 'checkInOrOut', ev: EnumTaskUserSubmitCheckReceiveStatus): void; |
| | | }>(); |
| | | |
| | | const menuList = computed(() => { |
| | | let _menuList = []; |
| | | if (props.checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn) { |
| | | _menuList.push( |
| | | { |
| | | _menuList.push({ |
| | | name: '未到岗', |
| | | value: ManageActions.OutWork, |
| | | }); |
| | | if (!props.checkInTime) { |
| | | _menuList.push({ |
| | | name: '签到', |
| | | value: ManageActions.CheckIn, |
| | | }, |
| | | { |
| | | }); |
| | | } else if (!props.checkOutTime) { |
| | | _menuList.push({ |
| | | name: '签出', |
| | | value: ManageActions.CheckOut, |
| | | }, |
| | | { |
| | | name: '未到岗', |
| | | value: ManageActions.OutWork, |
| | | } |
| | | ); |
| | | }); |
| | | } |
| | | } |
| | | |
| | | return _menuList; |
| | |
| | | function handleEmit(action: { name: string; value: number }) { |
| | | switch (action.value) { |
| | | case ManageActions.CheckIn: |
| | | emit('checkInOrOut', CheckInOrOutEventEnum.CheckIn); |
| | | emit('checkInOrOut', EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive); |
| | | break; |
| | | case ManageActions.CheckOut: |
| | | emit('checkInOrOut', CheckInOrOutEventEnum.CheckOut); |
| | | emit('checkInOrOut', EnumTaskUserSubmitCheckReceiveStatus.Success); |
| | | break; |
| | | case ManageActions.OutWork: |
| | | emit('checkInOrOut', CheckInOrOutEventEnum.CheckOut); |
| | | emit('checkInOrOut', EnumTaskUserSubmitCheckReceiveStatus.Fail); |
| | | break; |
| | | } |
| | | } |
| | |
| | | :contactPhoneNumber="item.contactPhoneNumber" |
| | | :checkReceiveStatus="item.checkReceiveStatus" |
| | | :checkReceiveMethod="detail?.checkReceiveMethod" |
| | | :submitCheckReceiveStatus="item.submitCheckReceiveStatus" |
| | | @checkReceive="goTaskDetail(item)" |
| | | @checkInOrOut="(ev) => checkReceiveTask(ev, item.id)" |
| | | /> |
| | |
| | | import { useInfiniteLoading } from '@12333/hooks'; |
| | | import TaskCheckCard from '../components/TaskCheckCard.vue'; |
| | | import { MyTaskCard } from '@12333/components'; |
| | | import { EnumTaskCheckReceiveMethod, EnumTaskCheckReceiveStatus } from '@12333/constants'; |
| | | import { |
| | | EnumTaskCheckReceiveMethod, |
| | | EnumTaskCheckReceiveStatus, |
| | | EnumTaskUserSubmitCheckReceiveStatus, |
| | | } from '@12333/constants'; |
| | | import { Message, setOSSLink } from '@12333/utils'; |
| | | import dayjs from 'dayjs'; |
| | | import { CheckInOrOutEventEnum } from '../constants'; |
| | |
| | | } |
| | | } |
| | | |
| | | async function checkReceiveTask(ev: CheckInOrOutEventEnum, taskInfoUserId: string) { |
| | | async function checkReceiveTask(ev: EnumTaskUserSubmitCheckReceiveStatus, taskInfoUserId: string) { |
| | | try { |
| | | let params: API.CheckReceiveTaskCommand = { |
| | | taskInfoUserId: taskInfoUserId, |
| | | date: dayjs(date).format('YYYY-MM-DD'), |
| | | }; |
| | | if (ev === CheckInOrOutEventEnum.CheckIn) { |
| | | if (ev === EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive) { |
| | | params.checkInTime = dayjs().format('YYYY-MM-DD HH:mm:ss'); |
| | | } else if (ev === CheckInOrOutEventEnum.CheckOut) { |
| | | params.checkReceiveStatus = ev; |
| | | } else if (ev === EnumTaskUserSubmitCheckReceiveStatus.Success) { |
| | | params.checkOutTime = dayjs().format('YYYY-MM-DD HH:mm:ss'); |
| | | params.checkReceiveStatus = ev; |
| | | } else if (ev === EnumTaskUserSubmitCheckReceiveStatus.Fail) { |
| | | params.checkReceiveStatus = ev; |
| | | } |
| | | let res = await taskCheckReceiveServices.checkReceiveTask(params); |
| | | if (res) { |
| | |
| | | import Taro from '@tarojs/taro'; |
| | | import { useQuery } from '@tanstack/vue-query'; |
| | | import * as taskCheckReceiveServices from '@12333/services/apiV2/taskCheckReceive'; |
| | | import TaskCheckPersonalView from '../components/TaskCheckPersonalView.vue'; |
| | | import { TaskCheckFileCard } from '@12333/components'; |
| | | import { TaskCheckFileCard, TaskCheckPersonalView } from '@12333/components'; |
| | | import { Colors, EnumTaskUserSubmitCheckReceiveStatus } from '@12333/constants'; |
| | | import { Message, setOSSLink } from '@12333/utils'; |
| | | import dayjs from 'dayjs'; |
| | |
| | | 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 { ProTabs, ProTabPane, TaskCheckHistoryCard } from '@12333/components'; |
| | | import { |
| | | EnumTaskUserSubmitCheckHistoryTypeText, |
| | | EnumTaskUserSubmitCheckHistoryTypeColor, |
| | |
| | | "name": "任务", |
| | | "pathName": "pages/task/task", |
| | | "query": "", |
| | | "scene": null, |
| | | "launchMode": "default" |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "简历详细信息", |
| | |
| | | 'companyDetail/companyDetail', |
| | | 'taskSubmitCheck/taskSubmitCheck', |
| | | 'taskCheckDetail/taskCheckDetail', |
| | | 'taskUserSubmitCheckHistories/taskUserSubmitCheckHistories', |
| | | ], |
| | | }, |
| | | { |
| | |
| | | companyDetail = '/subpackages/task/companyDetail/companyDetail', |
| | | taskSubmitCheck = '/subpackages/task/taskSubmitCheck/taskSubmitCheck', |
| | | taskCheckDetail = '/subpackages/task/taskCheckDetail/taskCheckDetail', |
| | | taskUserSubmitCheckHistories = '/subpackages/task/taskUserSubmitCheckHistories/taskUserSubmitCheckHistories', |
| | | |
| | | // userInfo = '/subpackages/setting/userInfo/userInfo', |
| | | // setting = '/subpackages/setting/setting/setting', |
| | |
| | | :addressName="item.addressName" |
| | | :begin-time="item.beginTime" |
| | | :end-time="item.endTime" |
| | | showActions |
| | | :showActions=" |
| | | item.checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn && |
| | | queryState.checkReceiveStatus === EnumTaskCheckReceiveStatus.Completed |
| | | " |
| | | @click="goSubmitTaskDetail(item)" |
| | | /> |
| | | </template> |
| | |
| | | import { MyTaskCard, ProTabs, ProTabPane, Calendar } from '@12333/components'; |
| | | import Taro from '@tarojs/taro'; |
| | | import { useCheckReceiveTasks, useTaskList } from '@12333/hooks'; |
| | | import { EnumTaskCheckReceiveStatus } from '@12333/constants'; |
| | | import { EnumTaskCheckReceiveStatus, EnumTaskCheckReceiveMethod } from '@12333/constants'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | |
| | | url: `${RouterPath.taskSubmitCheck}?id=${item.id}&date=${queryState.date}`, |
| | | }); |
| | | } |
| | | if ( |
| | | Number(queryState.checkReceiveStatus) === EnumTaskCheckReceiveStatus.WaitCheckReceive || |
| | | Number(queryState.checkReceiveStatus) === EnumTaskCheckReceiveStatus.Completed |
| | | ) { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.taskCheckDetail}?id=${item.id}`, |
| | | }); |
| | | if (item.checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn) { |
| | | if (Number(queryState.checkReceiveStatus) === EnumTaskCheckReceiveStatus.Completed) { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.taskUserSubmitCheckHistories}?id=${item.id}&date=${queryState.date}`, |
| | | }); |
| | | } |
| | | } else { |
| | | if ( |
| | | Number(queryState.checkReceiveStatus) === EnumTaskCheckReceiveStatus.WaitCheckReceive || |
| | | Number(queryState.checkReceiveStatus) === EnumTaskCheckReceiveStatus.Completed |
| | | ) { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.taskCheckDetail}?id=${item.id}`, |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | </script> |
| New file |
| | |
| | | <template> |
| | | <LoadingLayout> |
| | | <ContentView> |
| | | <ChunkTitle :title="title" /> |
| | | </ContentView> |
| | | <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> |
| | | <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 { ProTabs, ProTabPane, TaskCheckHistoryCard } 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> |
| | |
| | | export { default as BindWalletView } from './Card/BindWalletView.vue'; |
| | | export { default as TaskPrice } from './Card/TaskPrice.vue'; |
| | | export { default as TaskDetailWelfareItem } from './Card/TaskDetailWelfareItem.vue'; |
| | | export { default as TaskCheckPersonalView } from './Card/TaskCheckPersonalView.vue'; |
| | | export { default as TaskCheckHistoryCard } from './Card/TaskCheckHistoryCard.vue'; |
| | | export { default as FlexJobTopView } from './Card/FlexJobTopView.vue'; |
| | | export { default as QueryMenuView } from './Menu/QueryMenuView.vue'; |
| | | export { default as QueryMenuItem } from './Menu/QueryMenuItem.vue'; |