8个文件已修改
10个文件已添加
3 文件已重命名
| | |
| | | "query": "", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "", |
| | | "pathName": "subpackages/flexJobManage/flexJobManage/flexJobManage", |
| | | "query": "", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | } |
| | | ] |
| | | } |
| | |
| | | }, |
| | | { |
| | | root: 'subpackages/flexJob', |
| | | pages: ['flexJobDetail/flexJobDetail'], |
| | | pages: ['flexJobDetail/flexJobDetail', 'flexJobDetailFromTask/flexJobDetailFromTask'], |
| | | }, |
| | | { |
| | | root: 'subpackages/flexJobManage', |
| | | pages: ['flexJobManage/flexJobManage', 'flexJobDetailFromManage/flexJobDetailFromManage'], |
| | | }, |
| | | ], |
| | | // preloadRule: { |
New file |
| | |
| | | <template> |
| | | <ContentView style="background-color: transparent" class="job-detail-content"> |
| | | <FlexJobTopView size="small" class="job-detail-content-top" /> |
| | | <div class="job-detail-content-contact-info"> |
| | | <div class="job-detail-content-contact-info-item"> |
| | | <div class="job-detail-content-contact-info-item-label">手机号:</div> |
| | | <div class="job-detail-content-contact-info-item-text"> |
| | | {{ isCollapse ? '13333333333' : '立即联系后可查看' }} |
| | | </div> |
| | | </div> |
| | | <div class="job-detail-content-contact-info-item"> |
| | | <div class="job-detail-content-contact-info-item-label">身份证号:</div> |
| | | <div class="job-detail-content-contact-info-item-text"> |
| | | {{ isCollapse ? hiddenIDNumberForEnd6('330902199909123456') : '立即联系后可查看' }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </ContentView> |
| | | <ProTabs |
| | | v-model="tab" |
| | | name="job-detail-content-tab" |
| | | :showSmile="false" |
| | | class="job-detail-content-tabs" |
| | | isTransparent |
| | | title-gutter="8" |
| | | fullHeight |
| | | > |
| | | <ProTabPane :title="`简历`" pane-key="1"> |
| | | <curriculumView /> |
| | | </ProTabPane> |
| | | <ProTabPane :title="`经历`" pane-key="2"> |
| | | <experienceView /> |
| | | </ProTabPane> |
| | | </ProTabs> |
| | | <PageFooter> |
| | | <slot name="footer"></slot> |
| | | </PageFooter> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { FlexJobTopView, ProTabs, ProTabPane } from '@12333/components'; |
| | | import { hiddenIDNumberForEnd6 } from '@12333/utils'; |
| | | import curriculumView from './components/curriculumView.vue'; |
| | | import experienceView from './components/experienceView.vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'JobDetailContent', |
| | | }); |
| | | |
| | | type Props = { |
| | | isCollapse: boolean; |
| | | }; |
| | | |
| | | const tab = ref('1'); |
| | | const props = withDefaults(defineProps<Props>(), {}); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | |
| | | .job-detail-content-top { |
| | | margin-bottom: 20px; |
| | | } |
| | | |
| | | .job-detail-content-contact-info { |
| | | padding-left: 130px; |
| | | margin-bottom: 78px; |
| | | |
| | | .job-detail-content-contact-info-item { |
| | | display: flex; |
| | | align-items: center; |
| | | font-weight: 400; |
| | | font-size: 24px; |
| | | line-height: 28px; |
| | | margin-bottom: 22px; |
| | | |
| | | &:last-child { |
| | | margin-bottom: 0; |
| | | } |
| | | |
| | | .job-detail-content-contact-info-item-label { |
| | | color: boleGetCssVar('text-color', 'secondary'); |
| | | margin-right: 8px; |
| | | } |
| | | |
| | | .job-detail-content-contact-info-item-text { |
| | | color: boleGetCssVar('text-color', 'primary'); |
| | | flex: 1; |
| | | min-width: 0; |
| | | @include ellipsis; |
| | | } |
| | | } |
| | | } |
| | | </style> |
File was renamed from apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/components/CurriculumViewItem.vue |
| | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | |
| | | .flexJobDetail-page-wrapper { |
| | | .job-detail-content-tabs { |
| | | .curriculum-list-item { |
| | | display: flex; |
| | | margin-bottom: 14px; |
File was renamed from apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/components/curriculumView.vue |
| | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | |
| | | .flexJobDetail-page-wrapper { |
| | | .job-detail-content-tabs { |
| | | .curriculum-position-list { |
| | | width: 100%; |
| | | display: flex; |
File was renamed from apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/components/experienceView.vue |
| | |
| | | <template> |
| | | <ContentScrollView> |
| | | <Cell title="岗位经历"> |
| | | <nut-steps direction="vertical" progress-dot :current="3" class="flexJobDetail-steps"> |
| | | <nut-steps direction="vertical" progress-dot :current="3" class="job-detail-content-steps"> |
| | | <nut-step title="2024.12.24" content="您的订单已经打包完成,商品已发出"></nut-step> |
| | | <nut-step title="2024.12.24" content="您的订单正在配送途中"></nut-step> |
| | | <nut-step title="2024.12.24"> |
| | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | |
| | | .flexJobDetail-page-wrapper { |
| | | .flexJobDetail-steps { |
| | | .job-detail-content-tabs { |
| | | .job-detail-content-steps { |
| | | .nut-step-main { |
| | | margin-bottom: 40px; |
| | | } |
| | |
| | | editRichContent = '/subpackages/editRichContent/editRichContent', |
| | | |
| | | flexJobDetail = '/subpackages/flexJob/flexJobDetail/flexJobDetail', |
| | | flexJobDetailFromTask = '/subpackages/flexJob/flexJobDetailFromTask/flexJobDetailFromTask', |
| | | |
| | | flexJobManage = '/subpackages/flexJobManage/flexJobManage/flexJobManage', |
| | | flexJobDetailFromManage = '/subpackages/flexJobManage/flexJobDetailFromManage/flexJobDetailFromManage', |
| | | |
| | | // userInfo = '/subpackages/setting/userInfo/userInfo', |
| | | // setting = '/subpackages/setting/setting/setting', |
| | |
| | | </CellChunk> |
| | | <CellChunk title="用人"> |
| | | <div class="workbenches-cell-list"> |
| | | <TaskDetailWelfareItem :icon="IconFlexjobManage" text="灵工管理" /> |
| | | <TaskDetailWelfareItem |
| | | :icon="IconFlexjobManage" |
| | | text="灵工管理" |
| | | @click="goPage(RouterPath.flexJobManage)" |
| | | /> |
| | | <TaskDetailWelfareItem |
| | | :icon="IconTaskManage" |
| | | text="任务管理" |
| | |
| | | <template> |
| | | <PageLayoutWithBg class="flexJobDetail-page-wrapper" title="灵工详情" :need-auth="false"> |
| | | <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> |
| | | <ContentView style="background-color: transparent"> |
| | | <FlexJobTopView size="small" class="flexJobDetail-top" /> |
| | | <div class="flexJobDetail-contact-info"> |
| | | <div class="flexJobDetail-contact-info-item"> |
| | | <div class="flexJobDetail-contact-info-item-label">手机号:</div> |
| | | <div class="flexJobDetail-contact-info-item-text"> |
| | | {{ isCollapse ? '13333333333' : '立即联系后可查看' }} |
| | | </div> |
| | | </div> |
| | | <div class="flexJobDetail-contact-info-item"> |
| | | <div class="flexJobDetail-contact-info-item-label">身份证号:</div> |
| | | <div class="flexJobDetail-contact-info-item-text"> |
| | | {{ isCollapse ? hiddenIDNumberForEnd6('330902199909123456') : '立即联系后可查看' }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </ContentView> |
| | | <ProTabs |
| | | v-model="tab" |
| | | name="flexJobDetail-tab" |
| | | :showSmile="false" |
| | | class="flexJobDetail-tabs" |
| | | isTransparent |
| | | title-gutter="8" |
| | | fullHeight |
| | | > |
| | | <ProTabPane :title="`简历`" pane-key="1"> |
| | | <curriculumView /> |
| | | </ProTabPane> |
| | | <ProTabPane :title="`经历`" pane-key="2"> |
| | | <experienceView /> |
| | | </ProTabPane> |
| | | </ProTabs> |
| | | <PageFooter> |
| | | <PageFooterAction |
| | | :icon="IconShare" |
| | | text="分享" |
| | | :isFlex="false" |
| | | openType="share" |
| | | ></PageFooterAction> |
| | | <PageFooterAction |
| | | :icon="IconAttentionActive" |
| | | text="收藏" |
| | | :isFlex="false" |
| | | ></PageFooterAction> |
| | | <PageFooterBtn type="primary" @click="toggle">立即联系</PageFooterBtn> |
| | | </PageFooter> |
| | | <JobDetailContent :isCollapse="isCollapse"> |
| | | <template #footer> |
| | | <PageFooterAction |
| | | :icon="IconShare" |
| | | text="分享" |
| | | :isFlex="false" |
| | | openType="share" |
| | | ></PageFooterAction> |
| | | <PageFooterAction |
| | | :icon="IconAttentionActive" |
| | | text="收藏" |
| | | :isFlex="false" |
| | | ></PageFooterAction> |
| | | <PageFooterBtn type="primary" @click="toggle">立即联系</PageFooterBtn> |
| | | </template> |
| | | </JobDetailContent> |
| | | </LoadingLayout> |
| | | </PageLayoutWithBg> |
| | | </template> |
| | |
| | | import Taro from '@tarojs/taro'; |
| | | import { useQuery } from '@tanstack/vue-query'; |
| | | import * as orderServices from '@12333/services/api/Order'; |
| | | import { FlexJobTopView, ProTabs, ProTabPane } from '@12333/components'; |
| | | import IconShare from '@/assets/flexJob/icon-share.png'; |
| | | import IconAttention from '@/assets/flexJob/icon-attention-lg.png'; |
| | | import IconAttentionActive from '@/assets/flexJob/icon-attention-lg-active.png'; |
| | | import { useToggle } from 'senin-mini/hooks'; |
| | | import curriculumView from './components/curriculumView.vue'; |
| | | import experienceView from './components/experienceView.vue'; |
| | | import { hiddenIDNumberForEnd6 } from '@12333/utils'; |
| | | |
| | | defineOptions({ |
| | | name: 'flexJobDetail', |
| | |
| | | |
| | | const router = Taro.useRouter(); |
| | | const taskId = router.params?.id ?? ''; |
| | | |
| | | const tab = ref('1'); |
| | | |
| | | const { |
| | | isLoading, |
| | |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | |
| | | .flexJobDetail-page-wrapper { |
| | | .flexJobDetail-top { |
| | | margin-bottom: 20px; |
| | | } |
| | | |
| | | .flexJobDetail-contact-info { |
| | | padding-left: 130px; |
| | | margin-bottom: 78px; |
| | | |
| | | .flexJobDetail-contact-info-item { |
| | | display: flex; |
| | | align-items: center; |
| | | font-weight: 400; |
| | | font-size: 24px; |
| | | line-height: 28px; |
| | | margin-bottom: 22px; |
| | | |
| | | &:last-child { |
| | | margin-bottom: 0; |
| | | } |
| | | |
| | | .flexJobDetail-contact-info-item-label { |
| | | color: boleGetCssVar('text-color', 'secondary'); |
| | | margin-right: 8px; |
| | | } |
| | | |
| | | .flexJobDetail-contact-info-item-text { |
| | | color: boleGetCssVar('text-color', 'primary'); |
| | | flex: 1; |
| | | min-width: 0; |
| | | @include ellipsis; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
New file |
| | |
| | | <template> |
| | | <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> |
| | | <JobDetailContent :isCollapse="true"> |
| | | <template #footer> |
| | | <PageFooterBtn type="primary" plain>谢绝</PageFooterBtn> |
| | | <PageFooterBtn type="primary">录用</PageFooterBtn> |
| | | </template> |
| | | </JobDetailContent> |
| | | </LoadingLayout> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import Taro from '@tarojs/taro'; |
| | | import { useQuery } from '@tanstack/vue-query'; |
| | | import * as orderServices from '@12333/services/api/Order'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const router = Taro.useRouter(); |
| | | const taskId = router.params?.id ?? ''; |
| | | |
| | | const { |
| | | isLoading, |
| | | isError, |
| | | data: detail, |
| | | refetch, |
| | | } = useQuery({ |
| | | queryKey: ['orderServices/getOrdeForDetail', taskId], |
| | | queryFn: async () => { |
| | | return await orderServices.getOrdeForDetail( |
| | | { id: taskId }, |
| | | { |
| | | showLoading: false, |
| | | } |
| | | ); |
| | | }, |
| | | placeholderData: () => ({} as API.OrderInfoDto), |
| | | }); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | </style> |
New file |
| | |
| | | export default definePageConfig({ |
| | | disableScroll: true, |
| | | }); |
New file |
| | |
| | | <template> |
| | | <PageLayoutWithBg class="flexJobDetailFromTask-page-wrapper" title="灵工详情"> |
| | | <InnerPage></InnerPage> |
| | | </PageLayoutWithBg> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import InnerPage from './InnerPage.vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'flexJobDetailFromTask', |
| | | }); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | </style> |
New file |
| | |
| | | <template> |
| | | <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> |
| | | <JobDetailContent :isCollapse="true"> |
| | | <template #footer> |
| | | <PageFooterBtn type="primary" plain>解约</PageFooterBtn> |
| | | <PageFooterBtn type="primary">签约</PageFooterBtn> |
| | | </template> |
| | | </JobDetailContent> |
| | | </LoadingLayout> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import Taro from '@tarojs/taro'; |
| | | import { useQuery } from '@tanstack/vue-query'; |
| | | import * as orderServices from '@12333/services/api/Order'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const router = Taro.useRouter(); |
| | | const taskId = router.params?.id ?? ''; |
| | | |
| | | const { |
| | | isLoading, |
| | | isError, |
| | | data: detail, |
| | | refetch, |
| | | } = useQuery({ |
| | | queryKey: ['orderServices/getOrdeForDetail', taskId], |
| | | queryFn: async () => { |
| | | return await orderServices.getOrdeForDetail( |
| | | { id: taskId }, |
| | | { |
| | | showLoading: false, |
| | | } |
| | | ); |
| | | }, |
| | | placeholderData: () => ({} as API.OrderInfoDto), |
| | | }); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | </style> |
New file |
| | |
| | | export default definePageConfig({ |
| | | disableScroll: true, |
| | | }); |
New file |
| | |
| | | <template> |
| | | <PageLayoutWithBg class="flexJobDetailFromManage-page-wrapper" title="灵工详情"> |
| | | <InnerPage></InnerPage> |
| | | </PageLayoutWithBg> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import InnerPage from './InnerPage.vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'flexJobDetailFromManage', |
| | | }); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | </style> |
New file |
| | |
| | | <template> |
| | | <ProTabs |
| | | v-model="queryState.mineHireType" |
| | | name="home-tab" |
| | | :showPaneContent="false" |
| | | class="home-tabs" |
| | | isTransparent |
| | | title-gutter="12" |
| | | title-scroll |
| | | > |
| | | <ProTabPane :title="`已签约`" :pane-key="TaskStatus.All"></ProTabPane> |
| | | <ProTabPane :title="`待签约`" :pane-key="TaskStatus.WaitSign"></ProTabPane> |
| | | <ProTabPane :title="`已解约`" :pane-key="TaskStatus.Effect"></ProTabPane> |
| | | </ProTabs> |
| | | <InfiniteLoading |
| | | scrollViewClassName="common-infinite-scroll-list home-list" |
| | | v-bind="infiniteLoadingProps" |
| | | > |
| | | <template #renderItem="{ item }"> |
| | | <FlexJobCard :show-done-detail="false" :show-footer-left="false" @click="goDetail(item)"> |
| | | <template #footerRight> |
| | | <template v-if="Number(queryState.mineHireType) === TaskStatus.All"> |
| | | <nut-button |
| | | class="flexJobManage-card-plain-button" |
| | | type="default" |
| | | plain |
| | | @click.stop="handleUnContract" |
| | | >解约</nut-button |
| | | > |
| | | <nut-button type="primary" @click.stop="checkContract">查看合约</nut-button> |
| | | </template> |
| | | <nut-button v-else type="primary" @click.stop="goSignContract">签约</nut-button> |
| | | </template> |
| | | </FlexJobCard> |
| | | </template> |
| | | </InfiniteLoading> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { FlexJobCard, ProTabs, ProTabPane } from '@12333/components'; |
| | | import { RouterPath } from '@/constants'; |
| | | import { useInfiniteLoading } from '@12333/hooks'; |
| | | import { OrderInputType } from '@12333/constants'; |
| | | import * as orderServices from '@12333/services/api/Order'; |
| | | import { TaskStatus } from '@/constants/task'; |
| | | import Taro from '@tarojs/taro'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const queryState = reactive({ |
| | | mineHireType: TaskStatus.All, |
| | | }); |
| | | |
| | | const { infiniteLoadingProps } = useInfiniteLoading( |
| | | ({ pageParam }) => { |
| | | let params: API.FrontOrderListInput = { |
| | | pageModel: { |
| | | rows: 20, |
| | | page: pageParam, |
| | | orderInput: [{ property: 'isRecommend', order: OrderInputType.Desc }], |
| | | }, |
| | | }; |
| | | |
| | | return orderServices.getFrontOrderList(params, { |
| | | showLoading: false, |
| | | }); |
| | | }, |
| | | { |
| | | queryKey: ['orderServices/getFrontOrderList'], |
| | | } |
| | | ); |
| | | |
| | | function goDetail(item: API.FrontOrderList) { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.flexJobDetailFromManage}?id=${item.id}`, |
| | | }); |
| | | } |
| | | |
| | | function checkContract() {} |
| | | function handleUnContract() {} |
| | | function goSignContract() {} |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | |
| | | .flexJobManage-page-wrapper { |
| | | .flexJobManage-card-plain-button { |
| | | margin-right: 30px; |
| | | |
| | | &.nut-button--plain { |
| | | border-width: 1px; |
| | | } |
| | | } |
| | | } |
| | | </style> |
New file |
| | |
| | | export default definePageConfig({ |
| | | disableScroll: true, |
| | | }); |
New file |
| | |
| | | <template> |
| | | <PageLayoutWithBg class="flexJobManage-page-wrapper" :title="'灵工管理'"> |
| | | <InnerPage></InnerPage> |
| | | </PageLayoutWithBg> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import InnerPage from './InnerPage.vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'flexJobManage', |
| | | }); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | </style> |
| | |
| | | // const props = withDefaults(defineProps<Props>(), {}); |
| | | const router = Taro.useRouter(); |
| | | |
| | | const taskId = router.params?.id ?? ''; |
| | | const taskId = router.params?.id ?? 'c4cfe028-23e7-0be8-ee56-3a11e3743b9d'; |
| | | |
| | | const { |
| | | isLoading, |
| | |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | .jobApplicationDetail-page-wrapper { |
| | | .taskDetail-time { |
| | | font-size: 24px; |
| | | color: boleGetCssVar('text-color', 'regular'); |
| | | line-height: 36px; |
| | | margin-bottom: 16px; |
| | | } |
| | | |
| | | .task-card-welfare-wrapper { |
| | | display: flex; |
| | | align-items: flex-start; |
| | | padding-bottom: 48px; |
| | | border-bottom: 1px solid #d9d9d9; |
| | | margin-bottom: 12px; |
| | | |
| | | .task-card-welfare-list { |
| | | flex: 1; |
| | | display: flex; |
| | | min-width: 0; |
| | | flex-wrap: wrap; |
| | | min-height: 40px; |
| | | row-gap: 6px; |
| | | column-gap: 18px; |
| | | margin-right: 10px; |
| | | |
| | | .task-card-welfare-list-item { |
| | | font-size: 24px; |
| | | color: #ff7d00; |
| | | line-height: 36px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .taskDetail-address-wrapper { |
| | | padding: 28px 32px 14px; |
| | | background: #f9fbff; |
| | | border-radius: 8px; |
| | | |
| | | .taskDetail-address-title-wrapper { |
| | | display: flex; |
| | | align-items: center; |
| | | margin-bottom: 22px; |
| | | |
| | | .taskDetail-address-title-icon { |
| | | width: 40px; |
| | | height: 40px; |
| | | margin-right: 8px; |
| | | } |
| | | |
| | | .taskDetail-address-title { |
| | | flex: 1; |
| | | min-width: 0; |
| | | @include ellipsis; |
| | | font-size: 28px; |
| | | color: boleGetCssVar('text-color', 'primary'); |
| | | line-height: 42px; |
| | | } |
| | | } |
| | | |
| | | .taskDetail-address-info-wrapper { |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .taskDetail-address-info { |
| | | flex: 1; |
| | | min-width: 0; |
| | | @include ellipsis; |
| | | font-weight: 400; |
| | | font-size: 24px; |
| | | color: boleGetCssVar('text-color', 'regular'); |
| | | line-height: 36px; |
| | | } |
| | | |
| | | .taskDetail-address-info-icon { |
| | | color: boleGetCssVar('text-color', 'secondary'); |
| | | margin-left: 10px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .taskDetail-welfare-list { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | row-gap: 24px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <div class="flexJob-card-footer-text">已录用</div> |
| | | </template> |
| | | <template #footerRight> |
| | | <nut-button type="primary">查看详情</nut-button> |
| | | <nut-button type="primary" @click="goToJobDetail(item.id)">查看详情</nut-button> |
| | | </template> |
| | | </FlexJobCard> |
| | | </template> |
| | |
| | | |
| | | <script setup lang="ts"> |
| | | import { OrderInputType } from '@12333/constants'; |
| | | import { RouterPath } from '@/constants'; |
| | | import { useInfiniteLoading } from '@12333/hooks'; |
| | | import * as orderServices from '@12333/services/api/Order'; |
| | | import { FlexJobCard } from '@12333/components'; |
| | | import Taro from '@tarojs/taro'; |
| | | |
| | | defineOptions({ |
| | | name: 'SignList', |
| | |
| | | queryKey: ['orderServices/getFrontOrderList'], |
| | | } |
| | | ); |
| | | |
| | | function goToJobDetail(id: string) { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.flexJobDetailFromTask}?id=${id}`, |
| | | }); |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | |
| | | '做过:客房服务员、客房服务员、客房客房服务员、客房做过:客房服务员、客房服务员、客房客房服务员、客房' |
| | | }} |
| | | </div> |
| | | <div class="flexJob-card-done-detail"> |
| | | <div class="flexJob-card-done-detail" v-if="showDoneDetail"> |
| | | <div class="flexJob-card-done-detail-item"> |
| | | {{ '在「宁波雷迪森酒店」,做过客房服务员在「宁波雷迪森酒店」,做过客房服务员' }} |
| | | </div> |
| | |
| | | type Props = CommonTaskCardProps & { |
| | | showFooterLeft?: boolean; |
| | | showFooterRight?: boolean; |
| | | showDoneDetail?: boolean; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), { |
| | | showFooterLeft: true, |
| | | showFooterRight: true, |
| | | showDoneDetail: true, |
| | | }); |
| | | </script> |
| | | |