| | |
| | | <template> |
| | | <ProTabs |
| | | v-model="queryState.mineAgreementSignType" |
| | | v-model="queryState.userSignContractStatus" |
| | | name="home-tab" |
| | | :showPaneContent="false" |
| | | class="home-tabs" |
| | |
| | | title-gutter="12" |
| | | title-scroll |
| | | > |
| | | <ProTabPane :title="`全部`" :pane-key="MineAgreementSignType.All"></ProTabPane> |
| | | <ProTabPane :title="`待签约`" :pane-key="MineAgreementSignType.WaitSign"></ProTabPane> |
| | | <ProTabPane :title="`生效中`" :pane-key="MineAgreementSignType.Effect"></ProTabPane> |
| | | <ProTabPane :title="`已终止`" :pane-key="MineAgreementSignType.Terminated"></ProTabPane> |
| | | <ProTabPane :title="`全部`" :pane-key="0"></ProTabPane> |
| | | <ProTabPane :title="`待签约`" :pane-key="EnumTaskUserSignContractStatus.Wait"></ProTabPane> |
| | | <ProTabPane :title="`生效中`" :pane-key="EnumTaskUserSignContractStatus.Effect"></ProTabPane> |
| | | <ProTabPane :title="`已终止`" :pane-key="EnumTaskUserSignContractStatus.Stop"></ProTabPane> |
| | | </ProTabs> |
| | | <InfiniteLoading |
| | | scrollViewClassName="common-infinite-scroll-list home-list" |
| | | v-bind="infiniteLoadingProps" |
| | | :key="queryState.mineAgreementSignType" |
| | | :key="queryState.userSignContractStatus" |
| | | > |
| | | <template #renderItem="{ item }"> |
| | | <MineAgreementSignCard @click="goDetail"> |
| | | <template #actions> |
| | | <div class="task-card-actions-text" :style="{ color: MineAgreementSignTypeColor[10] }"> |
| | | {{ MineAgreementSignTypeText[10] }} |
| | | </div> |
| | | </template> |
| | | <MineAgreementSignCard |
| | | :enterpriseName="item.enterpriseName" |
| | | :userSignContractStatus="item.userSignContractStatus" |
| | | @click="goDetail(item)" |
| | | > |
| | | </MineAgreementSignCard> |
| | | </template> |
| | | </InfiniteLoading> |
| | |
| | | <script setup lang="ts"> |
| | | import { MineAgreementSignCard, ProTabs, ProTabPane } from '@12333/components'; |
| | | import { useUserStore } from '@/stores/modules/user'; |
| | | import { |
| | | MineAgreementSignType, |
| | | MineAgreementSignTypeColor, |
| | | MineAgreementSignTypeText, |
| | | } from './constants'; |
| | | import { useInfiniteLoading } from '@12333/hooks'; |
| | | import { OrderInputType } from '@12333/constants'; |
| | | import * as orderServices from '@12333/services/api/Order'; |
| | | import { EnumPagedListOrder, EnumTaskUserSignContractStatus } from '@12333/constants'; |
| | | import * as enterpriseEmployeeServices from '@12333/services/apiV2/enterpriseEmployee'; |
| | | import Taro from '@tarojs/taro'; |
| | | |
| | | defineOptions({ |
| | |
| | | }); |
| | | |
| | | const queryState = reactive({ |
| | | mineAgreementSignType: MineAgreementSignType.All, |
| | | userSignContractStatus: 0 as any as EnumTaskUserSignContractStatus, |
| | | }); |
| | | |
| | | const userStore = useUserStore(); |
| | | |
| | | const { infiniteLoadingProps } = useInfiniteLoading( |
| | | ({ pageParam }) => { |
| | | let params: API.FrontOrderListInput = { |
| | | let params: API.GetPersonalUserElectronSignsQuery = { |
| | | pageModel: { |
| | | rows: 20, |
| | | page: pageParam, |
| | | orderInput: [ |
| | | queryState.mineAgreementSignType === MineAgreementSignType.All |
| | | ? { property: 'isRecommend', order: OrderInputType.Desc } |
| | | : { property: 'lastShelfTime', order: OrderInputType.Desc }, |
| | | ], |
| | | orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], |
| | | }, |
| | | userSignContractStatus: queryState.userSignContractStatus, |
| | | }; |
| | | |
| | | return orderServices.getFrontOrderList(params, { |
| | | return enterpriseEmployeeServices.getPersonalUserElectronSigns(params, { |
| | | showLoading: false, |
| | | }); |
| | | }, |
| | | { |
| | | queryKey: ['orderServices/getFrontOrderList', queryState], |
| | | queryKey: ['enterpriseEmployeeServices/getPersonalUserElectronSigns', queryState], |
| | | } |
| | | ); |
| | | |
| | | function goDetail() { |
| | | function goDetail(row: API.GetPersonalUserElectronSignsQueryResultItem) { |
| | | Taro.navigateTo({ |
| | | url: RouterPath.mineAgreementSignDetail, |
| | | url: `${RouterPath.mineAgreementSignDetail}?id=${row.id}`, |
| | | }); |
| | | } |
| | | </script> |
| | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | |
| | | .task-card-actions-text { |
| | | font-size: 24px; |
| | | line-height: 42px; |
| | | } |
| | | // .mineAgreementSign-page-wrapper { |
| | | // |
| | | // } |
| | | </style> |