| | |
| | | "EnumTaskStatus": true, |
| | | "EnumUserGender": true, |
| | | "EnumUserStatus": true, |
| | | "EnumUserType": true |
| | | "EnumUserType": true, |
| | | "useAccessAuthentication": true |
| | | } |
| | | } |
| | |
| | | const toValue: typeof import('vue')['toValue'] |
| | | const triggerRef: typeof import('vue')['triggerRef'] |
| | | const unref: typeof import('vue')['unref'] |
| | | const useAccessAuthentication: typeof import('./src/hooks/access')['useAccessAuthentication'] |
| | | const useAccessLogin: typeof import('./src/hooks/access')['useAccessLogin'] |
| | | const useAttrs: typeof import('vue')['useAttrs'] |
| | | const useAuth: typeof import('./src/hooks/user')['useAuth'] |
| | |
| | | return _fn as T; |
| | | } |
| | | |
| | | export function useAccessReal<T extends (...args: any[]) => any>(fn: T) { |
| | | type UseAccessRealOptions = { |
| | | message?: string; |
| | | }; |
| | | |
| | | export function useAccessReal<T extends (...args: any[]) => any>( |
| | | fn: T, |
| | | options: UseAccessRealOptions = { message: '请前往实名认证' } |
| | | ) { |
| | | const { message } = options; |
| | | console.log('message: ', message); |
| | | const { isCertified } = useUser(); |
| | | |
| | | const _fn = useAccessLogin((...args2) => { |
| | | if (!isCertified.value) { |
| | | Message.confirm({ message: '请前往实名认证' }).then(() => { |
| | | Message.confirm({ message: message }).then(() => { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.authenticationHome}`, |
| | | }); |
| | |
| | | :key="queryState.mineAgreementSignType" |
| | | > |
| | | <template #renderItem="{ item }"> |
| | | <MineAgreementSignCard @click="goDetail"> |
| | | <template #actions> |
| | | <div class="task-card-actions-text" :style="{ color: TaskStatusColor[10] }"> |
| | | {{ TaskStatusText[10] }} |
| | | </div> |
| | | </template> |
| | | </MineAgreementSignCard> |
| | | <MineAgreementSignCard @click="goDetail"> </MineAgreementSignCard> |
| | | </template> |
| | | </InfiniteLoading> |
| | | </template> |
| | |
| | | <script setup lang="ts"> |
| | | import { MineAgreementSignCard, ProTabs, ProTabPane } from '@12333/components'; |
| | | import { useUserStore } from '@/stores/modules/user'; |
| | | import { TaskStatusText, TaskStatusColor, TaskStatus } from '@/constants'; |
| | | import { TaskStatus } from '@/constants'; |
| | | import { useInfiniteLoading } from '@12333/hooks'; |
| | | import { OrderInputType } from '@12333/constants'; |
| | | import * as flexWorkerServices from '@12333/services/api/FlexWorker'; |
| | | import { EnumPagedListOrder } from '@12333/constants'; |
| | | import * as taskServices from '@12333/services/apiV2/task'; |
| | | import Taro from '@tarojs/taro'; |
| | | |
| | | defineOptions({ |
| | |
| | | pageModel: { |
| | | rows: 20, |
| | | page: pageParam, |
| | | orderInput: [ |
| | | queryState.mineAgreementSignType === TaskStatus.All |
| | | ? { property: 'creationTime', order: OrderInputType.Desc } |
| | | : { property: 'lastShelfTime', order: OrderInputType.Desc }, |
| | | ], |
| | | orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], |
| | | }, |
| | | }; |
| | | |
| | | return flexWorkerServices.getFlexTaskByArrange(params, { |
| | | return taskServices.getPersonalHireTaskInfos(params, { |
| | | showLoading: false, |
| | | }); |
| | | }, |
| | | { |
| | | queryKey: ['flexWorkerServices/getFlexTaskByArrange', queryState], |
| | | queryKey: ['taskServices/getPersonalHireTaskInfos', queryState], |
| | | } |
| | | ); |
| | | |
| | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | |
| | | .mineAgreementSign-page-wrapper { |
| | | .task-card-actions-text { |
| | | font-size: 24px; |
| | | line-height: 42px; |
| | | } |
| | | } |
| | | // .mineAgreementSign-page-wrapper { |
| | | // |
| | | // } |
| | | </style> |
| | |
| | | <template> |
| | | <PageLayoutWithBg class="mineAgreementSign-page-wrapper" :title="'协议签约'" developing> |
| | | <PageLayoutWithBg class="mineAgreementSign-page-wrapper" :title="'协议签约'"> |
| | | <InnerPage></InnerPage> |
| | | </PageLayoutWithBg> |
| | | </template> |
| | |
| | | |
| | | const userStore = useUserStore(); |
| | | |
| | | function goToSign() {} |
| | | const goToSign = useAccessReal(() => {}); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | |
| | | </template> |
| | | </InfiniteLoading> |
| | | </ContentScrollView> |
| | | <!-- <div class="taskCheckDetail-tips-wrapper"> |
| | | <div class="taskCheckDetail-tips-wrapper" v-if="!isBindBankCard"> |
| | | <div class="taskCheckDetail-tips-text">您尚未绑定银行卡,暂时无法结算服务费</div> |
| | | <div class="taskCheckDetail-tips-btn">立即绑定银行卡信息</div> |
| | | </div> --> |
| | | <div class="taskCheckDetail-tips-btn" @click="goBindBankCard">立即绑定银行卡信息</div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | |
| | | const id = route.params?.id as string; |
| | | |
| | | const { infiniteLoadingProps } = useCheckReceiveTaskUserSubmits({ id: id }); |
| | | |
| | | const isBindBankCard = computed( |
| | | () => |
| | | infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.enterpriseEmployeeUser |
| | | ?.isBindBankCard |
| | | ); |
| | | |
| | | function goBindBankCard() { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.unboundBankCard}`, |
| | | }); |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | |
| | | margin-bottom: 16px; |
| | | color: boleGetCssVar('text-color', 'primary'); |
| | | } |
| | | |
| | | .taskCheckDetail-tips-wrapper { |
| | | text-align: center; |
| | | font-size: 24px; |
| | | line-height: 32px; |
| | | |
| | | .taskCheckDetail-tips-text { |
| | | color: boleGetCssVar('text-color', 'secondary'); |
| | | } |
| | | |
| | | .taskCheckDetail-tips-btn { |
| | | color: boleGetCssVar('color', 'primary'); |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | :isFlex="false" |
| | | @click="handleCall" |
| | | ></PageFooterAction> |
| | | <PageFooterBtn v-if="from === 'sign'" type="primary" disabled> |
| | | <PageFooterBtn |
| | | v-if="from === 'sign'" |
| | | type="primary" |
| | | :disabled="detail?.applyButton === GetTaskInfoQueryResultApplyButton.WaitHire" |
| | | @click="handleSign" |
| | | > |
| | | {{ GetTaskInfoQueryResultApplyButtonText[detail.applyButton] }} |
| | | </PageFooterBtn> |
| | | <PageFooterBtn |
| | |
| | | GetPersonalHireTaskInfosQueryStatusColor, |
| | | GetTaskInfoQueryResultHireButtonText, |
| | | GetTaskInfoQueryResultHireButton, |
| | | GetTaskInfoQueryResultApplyButton, |
| | | } from '@12333/constants'; |
| | | import { useAccessLogin } from '@/hooks'; |
| | | |
| | |
| | | url: `${RouterPath.taskSubmitCheck}?id=${id}`, |
| | | }); |
| | | } |
| | | function handleSign() { |
| | | // Taro.navigateTo({ |
| | | // url: `${RouterPath}?id=${id}`, |
| | | // }); |
| | | } |
| | | |
| | | function goMap() { |
| | | Taro.openLocation({ |
| | |
| | | format="YYYY年M月" |
| | | :max-date="nowDate" |
| | | /> |
| | | <IconFont name="triangle-down" class="income-detail-time-picker-icon"></IconFont> |
| | | </div> |
| | | </template> |
| | | </IncomeDetailListItem> |
| | |
| | | <script setup lang="ts"> |
| | | import { List, IncomeDetailListItem, ChooseInputWithDatePicker } from '@12333/components'; |
| | | import { useUserStore } from '@/stores/modules/user'; |
| | | import { IconFont } from '@nutui/icons-vue-taro'; |
| | | import Taro from '@tarojs/taro'; |
| | | import dayjs from 'dayjs'; |
| | | |
| | |
| | | |
| | | .incomeDetail-page-wrapper { |
| | | .income-detail-time-picker { |
| | | position: relative; |
| | | |
| | | .nut-input { |
| | | border-bottom: none; |
| | | padding: 0; |
| | | width: 100%; |
| | | |
| | | .input-text { |
| | | font-size: 20px; |
| | |
| | | display: none; |
| | | } |
| | | } |
| | | |
| | | .income-detail-time-picker-icon { |
| | | position: absolute; |
| | | top: 12px; |
| | | left: 220px; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <PageLayout class="incomeDetail-page-wrapper" :title="'收入明细'" developing> |
| | | <PageLayout class="incomeDetail-page-wrapper" :title="'收入明细'"> |
| | | <InnerPage></InnerPage> |
| | | </PageLayout> |
| | | </template> |
| | |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const userStore = useUserStore(); |
| | | const { isCertified } = useUser(); |
| | | |
| | | const isBinding = ref(false); |
| | | |
| | |
| | | url: `${RouterPath.incomeDetail}`, |
| | | }); |
| | | } |
| | | function goBankBind() { |
| | | // Message.confirm({ message: '完成实名认证后才可进行银行卡绑定' }).then(() => { |
| | | // Taro.navigateTo({ |
| | | // url: `${RouterPath.authenticationHome}`, |
| | | // }); |
| | | // }); |
| | | |
| | | const goBankBind = useAccessReal( |
| | | () => { |
| | | Taro.navigateTo({ |
| | | url: `${isBinding.value ? RouterPath.bindBankCard : RouterPath.unboundBankCard}`, |
| | | }); |
| | | } |
| | | }, |
| | | { message: '完成实名认证后才可进行银行卡绑定' } |
| | | ); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | |
| | | <template> |
| | | <PageLayout class="mineWallet-page-wrapper" :title="'我的钱包'" developing> |
| | | <PageLayout class="mineWallet-page-wrapper" :title="'我的钱包'"> |
| | | <InnerPage></InnerPage> |
| | | </PageLayout> |
| | | </template> |
| | |
| | | import { VerificationCodeBusinessType } from '@12333/constants'; |
| | | import * as commonServices from '@12333/services/api/Common'; |
| | | import Taro from '@tarojs/taro'; |
| | | import { useQuery } from '@tanstack/vue-query'; |
| | | import { useQuery, useQueryClient } from '@tanstack/vue-query'; |
| | | |
| | | const userResumeServices = {}; |
| | | |
| | | const queryClient = useQueryClient(); |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.mineCurriculumVitae}`, |
| | | }); |
| | | queryClient.invalidateQueries([ |
| | | 'taskCheckReceiveServices/getCheckReceiveTaskUserSubmits', |
| | | ]); |
| | | }, |
| | | }); |
| | | } |
| | |
| | | <div class="task-card-title">宁波人力无忧人力资源有限公司</div> |
| | | </div> |
| | | <div class="task-card-footer"> |
| | | <div class="task-card-left"> |
| | | <div class="task-card-time">2024.11.20 - 2025.11.19</div> |
| | | <div class="task-card-actions" :style="{ color: '#FF4D4F' }"> |
| | | {{ '待签约' }} |
| | | </div> |
| | | <div class="task-card-actions"> |
| | | <slot name="actions"> |
| | | <nut-button type="primary">报名</nut-button> |
| | | </slot> |
| | | </div> |
| | | <img :src="IconArrow" class="task-card-arrow" /> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { CommonTaskCardProps } from './card'; |
| | | import IconArrow from '@/assets/setting/icon-arrow.png'; |
| | | |
| | | defineOptions({ |
| | | name: 'MineAgreementSignCard', |
| | |
| | | } |
| | | } |
| | | |
| | | .task-card-time { |
| | | font-size: 24px; |
| | | color: boleGetCssVar('text-color', 'secondary'); |
| | | line-height: 36px; |
| | | margin-bottom: 6px; |
| | | } |
| | | |
| | | .task-card-footer { |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .task-card-left { |
| | | flex: 1; |
| | | min-width: 0; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | justify-content: space-between; |
| | | |
| | | .task-card-actions { |
| | | --nut-button-default-font-size: 24px; |
| | | |
| | | .nut-button { |
| | | height: 26px; |
| | | font-size: 24px; |
| | | } |
| | | |
| | | .task-card-arrow { |
| | | width: 24px; |
| | | height: 24px; |
| | | } |
| | | } |
| | | } |