| | |
| | | pages: [ |
| | | 'mineSign/mineSign', |
| | | 'mineHire/mineHire', |
| | | 'mineHired/mineHired', |
| | | 'mineCancel/mineCancel', |
| | | 'mineCollectTask/mineCollectTask', |
| | | 'mineAgreementSign/mineAgreementSign', |
| | |
| | | |
| | | mineSign = '/subpackages/mine/mineSign/mineSign', |
| | | mineHire = '/subpackages/mine/mineHire/mineHire', |
| | | mineHired = '/subpackages/mine/mineHired/mineHired', |
| | | mineCancel = '/subpackages/mine/mineCancel/mineCancel', |
| | | mineCollectTask = '/subpackages/mine/mineCollectTask/mineCollectTask', |
| | | mineAgreementSign = '/subpackages/mine/mineAgreementSign/mineAgreementSign', |
| | |
| | | @click="goMineSign" |
| | | > |
| | | <img :src="IconOrderSign" class="mine-order-list-icon" /> |
| | | <div class="mine-order-list-text">我的报名</div> |
| | | <div class="mine-order-list-text">已报名</div> |
| | | </nut-badge> |
| | | <nut-badge |
| | | class="mine-order-list-item" |
| | | top="8" |
| | | :value="userDetail?.inProcessTaskCount ?? 0" |
| | | @click="goMineHire" |
| | | > |
| | | <img :src="IconOrderHire" class="mine-order-list-icon" /> |
| | | <div class="mine-order-list-text">任务中</div> |
| | | </nut-badge> |
| | | <nut-badge |
| | | class="mine-order-list-item" |
| | | top="8" |
| | | :value="userDetail?.hirePassTaskCount ?? 0" |
| | | @click="goMineHired" |
| | | > |
| | | <img :src="IconOrderHire" class="mine-order-list-icon" /> |
| | | <div class="mine-order-list-text">已录用</div> |
| | | </nut-badge> |
| | | <!-- <nut-badge |
| | | class="mine-order-list-item" |
| | | top="8" |
| | | :value="userDetail?.hirePassTaskCount ?? 0" |
| | |
| | | > |
| | | <img :src="IconOrderCancel" class="mine-order-list-icon" /> |
| | | <div class="mine-order-list-text">已取消</div> |
| | | </nut-badge> |
| | | </nut-badge> --> |
| | | </div> |
| | | </List> |
| | | <List class="mine-list-wrapper mine-setting-list"> |
| | |
| | | function goMineCancel() { |
| | | goPage(RouterPath.mineCancel); |
| | | } |
| | | function goMineHired() { |
| | | goPage(RouterPath.mineHired); |
| | | } |
| | | function goMineCollectTask() { |
| | | goPage(RouterPath.mineCollectTask); |
| | | } |
| | |
| | | <template> |
| | | <ProTabs |
| | | <!-- <ProTabs |
| | | v-model="queryState.status" |
| | | name="home-tab" |
| | | :showPaneContent="false" |
| | |
| | | :title="`已完成`" |
| | | :pane-key="GetPersonalHireTaskInfosQueryStatus.Completed" |
| | | ></ProTabPane> |
| | | </ProTabs> |
| | | </ProTabs> --> |
| | | <InfiniteLoading |
| | | scrollViewClassName="common-infinite-scroll-list home-list" |
| | | v-bind="infiniteLoadingProps" |
| | |
| | | GetPersonalHireTaskInfosQueryStatus, |
| | | GetPersonalHireTaskInfosQueryStatusText, |
| | | GetPersonalHireTaskInfosQueryStatusColor, |
| | | EnumTaskUserArrangeStatus, |
| | | } from '@12333/constants'; |
| | | import * as taskServices from '@12333/services/apiV2/task'; |
| | | import Taro from '@tarojs/taro'; |
| | |
| | | page: pageParam, |
| | | orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], |
| | | }, |
| | | arrangeStatus: EnumTaskUserArrangeStatus.Complete, |
| | | }; |
| | | if (Number(queryState.status)) { |
| | | params.status = queryState.status; |
| | | } |
| | | // if (Number(queryState.status)) { |
| | | // params.status = queryState.status; |
| | | // } |
| | | return taskServices.getPersonalHireTaskInfos(params, { |
| | | showLoading: false, |
| | | }); |
| | |
| | | <template> |
| | | <PageLayoutWithBg class="mineHire-page-wrapper" :title="'已安排'"> |
| | | <PageLayoutWithBg class="mineHire-page-wrapper" :title="'任务中'"> |
| | | <InnerPage></InnerPage> |
| | | </PageLayoutWithBg> |
| | | </template> |
| New file |
| | |
| | | <template> |
| | | <!-- <ProTabs |
| | | v-model="queryState.status" |
| | | name="home-tab" |
| | | :showPaneContent="false" |
| | | class="home-tabs" |
| | | isTransparent |
| | | title-gutter="12" |
| | | title-scroll |
| | | > |
| | | <ProTabPane :title="`全部`" :pane-key="0"></ProTabPane> |
| | | <ProTabPane :title="`待开始`" :pane-key="GetPersonalHireTaskInfosQueryStatus.Wait"></ProTabPane> |
| | | <ProTabPane |
| | | :title="`进行中`" |
| | | :pane-key="GetPersonalHireTaskInfosQueryStatus.InProcess" |
| | | ></ProTabPane> |
| | | <ProTabPane |
| | | :title="`已完成`" |
| | | :pane-key="GetPersonalHireTaskInfosQueryStatus.Completed" |
| | | ></ProTabPane> |
| | | </ProTabs> --> |
| | | <InfiniteLoading |
| | | scrollViewClassName="common-infinite-scroll-list home-list" |
| | | v-bind="infiniteLoadingProps" |
| | | :key="queryState.status" |
| | | > |
| | | <template #renderItem="{ item }"> |
| | | <TaskCard |
| | | :name="item.name" |
| | | :begin-time="item.beginTime" |
| | | :end-time="item.endTime" |
| | | :billing-method="item.billingMethod" |
| | | :benefits="item.benefits" |
| | | :service-fee="item.serviceFee" |
| | | :settlement-cycle="item.settlementCycle" |
| | | :address-name="item.addressName" |
| | | @click="goTaskDetail(item)" |
| | | > |
| | | <template #actions> |
| | | <div |
| | | class="task-card-actions-text" |
| | | :style="{ color: GetPersonalHireTaskInfosQueryStatusColor[item.status] }" |
| | | > |
| | | {{ GetPersonalHireTaskInfosQueryStatusText[item.status] }} |
| | | </div> |
| | | </template> |
| | | </TaskCard> |
| | | </template> |
| | | </InfiniteLoading> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { TaskCard, ProTabs, ProTabPane } from '@12333/components'; |
| | | import { useInfiniteLoading } from '@12333/hooks'; |
| | | import { |
| | | EnumPagedListOrder, |
| | | GetPersonalHireTaskInfosQueryStatus, |
| | | GetPersonalHireTaskInfosQueryStatusText, |
| | | GetPersonalHireTaskInfosQueryStatusColor, |
| | | EnumTaskUserHireStatus, |
| | | } from '@12333/constants'; |
| | | import * as taskServices from '@12333/services/apiV2/task'; |
| | | import Taro from '@tarojs/taro'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const queryState = reactive({ |
| | | status: 0 as any as GetPersonalHireTaskInfosQueryStatus, |
| | | }); |
| | | |
| | | const { infiniteLoadingProps } = useInfiniteLoading( |
| | | ({ pageParam }) => { |
| | | let params: API.GetPersonalHireTaskInfosQuery = { |
| | | pageModel: { |
| | | rows: 20, |
| | | page: pageParam, |
| | | orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], |
| | | }, |
| | | hireStatus: EnumTaskUserHireStatus.Pass, |
| | | }; |
| | | // if (Number(queryState.status)) { |
| | | // params.status = queryState.status; |
| | | // } |
| | | return taskServices.getPersonalHireTaskInfos(params, { |
| | | showLoading: false, |
| | | }); |
| | | }, |
| | | { |
| | | queryKey: ['taskServices/getPersonalHireTaskInfos', queryState], |
| | | } |
| | | ); |
| | | |
| | | function goTaskDetail(item: API.GetPersonalHireTaskInfosQueryResultItem) { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.taskDetail}?id=${item.id}`, |
| | | }); |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | |
| | | .mineHired-page-wrapper { |
| | | .task-card-actions-text { |
| | | font-size: 24px; |
| | | line-height: 42px; |
| | | } |
| | | } |
| | | </style> |
| New file |
| | |
| | | export default definePageConfig({ |
| | | disableScroll: true, |
| | | }); |
| New file |
| | |
| | | <template> |
| | | <PageLayoutWithBg class="mineHired-page-wrapper" :title="'已录用'"> |
| | | <InnerPage></InnerPage> |
| | | </PageLayoutWithBg> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import InnerPage from './InnerPage.vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'mineHired', |
| | | }); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | </style> |
| | |
| | | import { EnumUserBankCardAccess } from '@12333/constants'; |
| | | import { BindWalletView } from '@12333/components'; |
| | | import { usePersonalUserBankCard } from '../hooks'; |
| | | import { goBack } from '@/utils'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const switchTab = useSwitchTab(); |
| | | |
| | | const { updateUserInfo } = useUser(); |
| | | |
| | | const { detail } = usePersonalUserBankCard({ |
| | | access: EnumUserBankCardAccess.AliPay, |
| | |
| | | if (res) { |
| | | Message.success('解绑成功', { |
| | | onClosed() { |
| | | switchTab({ |
| | | url: RouterPath.mine, |
| | | }); |
| | | updateUserInfo(); |
| | | goBack(); |
| | | }, |
| | | }); |
| | | } |
| | |
| | | <template> |
| | | <BindWalletView |
| | | :type="EnumUserBankCardAccess.AliPay" |
| | | :type="EnumUserBankCardAccess.Bank" |
| | | :detail="detail" |
| | | @Unbind="handleUnbind" |
| | | ></BindWalletView> |
| | |
| | | import { EnumUserBankCardAccess } from '@12333/constants'; |
| | | import { BindWalletView } from '@12333/components'; |
| | | import { usePersonalUserBankCard } from '../hooks'; |
| | | import { goBack } from '@/utils'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const switchTab = useSwitchTab(); |
| | | const { updateUserInfo } = useUser(); |
| | | |
| | | const { detail } = usePersonalUserBankCard({ |
| | | access: EnumUserBankCardAccess.Bank, |
| | |
| | | if (res) { |
| | | Message.success('解绑成功', { |
| | | onClosed() { |
| | | switchTab({ |
| | | url: RouterPath.mine, |
| | | }); |
| | | updateUserInfo(); |
| | | goBack(); |
| | | }, |
| | | }); |
| | | } |
| | |
| | | }); |
| | | } |
| | | |
| | | /** 校验合同模板业务编号是否存在 POST /api/user/electronSign/checkExistContractTemplateCode */ |
| | | export async function checkExistContractTemplateCode( |
| | | body: API.CheckExistContractTemplateCodeCommand, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<boolean>('/api/user/electronSign/checkExistContractTemplateCode', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** 电子签回传 POST /api/user/electronSign/electronSignCallback */ |
| | | export async function electronSignCallback( |
| | | body: API.ElectronSignCallbackCommand, |
| | |
| | | accesses?: EnumElectronSignAccess[]; |
| | | } |
| | | |
| | | interface CheckExistContractTemplateCodeCommand { |
| | | /** 模板Id(编辑时传入) */ |
| | | id?: string; |
| | | /** 业务编号 */ |
| | | code: string; |
| | | } |
| | | |
| | | type CheckHealthQuery = Record<string, any>; |
| | | |
| | | interface CheckOperatorTokenCommand { |
| | |
| | | } |
| | | |
| | | interface GetPersonalHireTaskInfosQuery { |
| | | hireStatus?: EnumTaskUserHireStatus; |
| | | arrangeStatus?: EnumTaskUserArrangeStatus; |
| | | status?: GetPersonalHireTaskInfosQueryStatus; |
| | | pageModel?: PagedListQueryPageModel; |
| | | } |
| | |
| | | identity?: string; |
| | | /** 手机号 */ |
| | | contactPhoneNumber?: string; |
| | | /** 累计工时 */ |
| | | totalWorkHours?: number; |
| | | /** 所属银行 */ |
| | | bank?: string; |
| | | /** 所属支行 */ |
| | | bankBranch?: string; |
| | | /** 收款账户 */ |
| | | receiveAccount?: string; |
| | | /** 累计工时 */ |
| | | totalWorkHours?: number; |
| | | /** 结算金额 */ |
| | | settlementAmount?: number; |
| | | /** 实发金额 */ |