From 4bc9cf48154b5666d4c928f32182bcbb92eca6c5 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 14 二月 2025 17:31:43 +0800
Subject: [PATCH] feat: mine
---
apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/flexJobDetailFromManage.vue | 17 +
apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/flexJobDetailFromManage.config.ts | 3
apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/flexJobManage.vue | 17 +
apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue | 45 ++++
apps/bMiniApp/src/constants/router.ts | 4
apps/bMiniApp/src/pages/workbenches/InnerPage.vue | 6
apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue | 105 +--------
apps/bMiniApp/src/components/JobDetailContent/components/CurriculumViewItem.vue | 2
apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/flexJobDetailFromTask.config.ts | 3
apps/bMiniApp/project.private.config.json | 7
apps/bMiniApp/src/app.config.ts | 6
apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue | 2
apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue | 45 ++++
apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue | 10
apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue | 94 +++++++++
apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/flexJobDetailFromTask.vue | 17 +
apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue | 98 +++++++++
apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/flexJobManage.config.ts | 3
apps/bMiniApp/src/components/JobDetailContent/components/experienceView.vue | 6
packages/components/src/Card/FlexJobCard.vue | 4
apps/bMiniApp/src/subpackages/jobApplicationManage/components/JobDetail.vue | 88 ++++++++
21 files changed, 483 insertions(+), 99 deletions(-)
diff --git a/apps/bMiniApp/project.private.config.json b/apps/bMiniApp/project.private.config.json
index a22a756..ed2ef1f 100644
--- a/apps/bMiniApp/project.private.config.json
+++ b/apps/bMiniApp/project.private.config.json
@@ -70,6 +70,13 @@
"query": "",
"launchMode": "default",
"scene": null
+ },
+ {
+ "name": "",
+ "pathName": "subpackages/flexJobManage/flexJobManage/flexJobManage",
+ "query": "",
+ "launchMode": "default",
+ "scene": null
}
]
}
diff --git a/apps/bMiniApp/src/app.config.ts b/apps/bMiniApp/src/app.config.ts
index fc23e91..8b9b688 100644
--- a/apps/bMiniApp/src/app.config.ts
+++ b/apps/bMiniApp/src/app.config.ts
@@ -97,7 +97,11 @@
},
{
root: 'subpackages/flexJob',
- pages: ['flexJobDetail/flexJobDetail'],
+ pages: ['flexJobDetail/flexJobDetail', 'flexJobDetailFromTask/flexJobDetailFromTask'],
+ },
+ {
+ root: 'subpackages/flexJobManage',
+ pages: ['flexJobManage/flexJobManage', 'flexJobDetailFromManage/flexJobDetailFromManage'],
},
],
// preloadRule: {
diff --git a/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue b/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue
new file mode 100644
index 0000000..6552419
--- /dev/null
+++ b/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue
@@ -0,0 +1,94 @@
+<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>
diff --git a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/components/CurriculumViewItem.vue b/apps/bMiniApp/src/components/JobDetailContent/components/CurriculumViewItem.vue
similarity index 96%
rename from apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/components/CurriculumViewItem.vue
rename to apps/bMiniApp/src/components/JobDetailContent/components/CurriculumViewItem.vue
index 62171b3..4da3a13 100644
--- a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/components/CurriculumViewItem.vue
+++ b/apps/bMiniApp/src/components/JobDetailContent/components/CurriculumViewItem.vue
@@ -28,7 +28,7 @@
<style lang="scss">
@import '@/styles/common.scss';
-.flexJobDetail-page-wrapper {
+.job-detail-content-tabs {
.curriculum-list-item {
display: flex;
margin-bottom: 14px;
diff --git a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/components/curriculumView.vue b/apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue
similarity index 98%
rename from apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/components/curriculumView.vue
rename to apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue
index fb3ea33..b06b8f9 100644
--- a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/components/curriculumView.vue
+++ b/apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue
@@ -95,7 +95,7 @@
<style lang="scss">
@import '@/styles/common.scss';
-.flexJobDetail-page-wrapper {
+.job-detail-content-tabs {
.curriculum-position-list {
width: 100%;
display: flex;
diff --git a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/components/experienceView.vue b/apps/bMiniApp/src/components/JobDetailContent/components/experienceView.vue
similarity index 90%
rename from apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/components/experienceView.vue
rename to apps/bMiniApp/src/components/JobDetailContent/components/experienceView.vue
index 70ff130..6cd3d6e 100644
--- a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/components/experienceView.vue
+++ b/apps/bMiniApp/src/components/JobDetailContent/components/experienceView.vue
@@ -1,7 +1,7 @@
<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="鎮ㄧ殑璁㈠崟姝e湪閰嶉�侀�斾腑"></nut-step>
<nut-step title="2024.12.24">
@@ -24,8 +24,8 @@
<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;
}
diff --git a/apps/bMiniApp/src/constants/router.ts b/apps/bMiniApp/src/constants/router.ts
index 325f06f..6d82c1c 100644
--- a/apps/bMiniApp/src/constants/router.ts
+++ b/apps/bMiniApp/src/constants/router.ts
@@ -11,6 +11,10 @@
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',
diff --git a/apps/bMiniApp/src/pages/workbenches/InnerPage.vue b/apps/bMiniApp/src/pages/workbenches/InnerPage.vue
index 7dc7384..22fe2ec 100644
--- a/apps/bMiniApp/src/pages/workbenches/InnerPage.vue
+++ b/apps/bMiniApp/src/pages/workbenches/InnerPage.vue
@@ -17,7 +17,11 @@
</CellChunk>
<CellChunk title="鐢ㄤ汉">
<div class="workbenches-cell-list">
- <TaskDetailWelfareItem :icon="IconFlexjobManage" text="鐏靛伐绠$悊" />
+ <TaskDetailWelfareItem
+ :icon="IconFlexjobManage"
+ text="鐏靛伐绠$悊"
+ @click="goPage(RouterPath.flexJobManage)"
+ />
<TaskDetailWelfareItem
:icon="IconTaskManage"
text="浠诲姟绠$悊"
diff --git a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue
index 9ba2d43..8930e23 100644
--- a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue
+++ b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue
@@ -1,53 +1,22 @@
<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>
@@ -56,14 +25,10 @@
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',
@@ -71,8 +36,6 @@
const router = Taro.useRouter();
const taskId = router.params?.id ?? '';
-
-const tab = ref('1');
const {
isLoading,
@@ -97,40 +60,4 @@
<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>
diff --git a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue
new file mode 100644
index 0000000..284ae97
--- /dev/null
+++ b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue
@@ -0,0 +1,45 @@
+<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>
diff --git a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/flexJobDetailFromTask.config.ts b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/flexJobDetailFromTask.config.ts
new file mode 100644
index 0000000..305fdb1
--- /dev/null
+++ b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/flexJobDetailFromTask.config.ts
@@ -0,0 +1,3 @@
+export default definePageConfig({
+ disableScroll: true,
+});
diff --git a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/flexJobDetailFromTask.vue b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/flexJobDetailFromTask.vue
new file mode 100644
index 0000000..b93464d
--- /dev/null
+++ b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/flexJobDetailFromTask.vue
@@ -0,0 +1,17 @@
+<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>
diff --git a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue
new file mode 100644
index 0000000..ef5b3e0
--- /dev/null
+++ b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue
@@ -0,0 +1,45 @@
+<template>
+ <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch">
+ <JobDetailContent :isCollapse="true">
+ <template #footer>
+ <PageFooterBtn type="primary" plain>瑙g害</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>
diff --git a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/flexJobDetailFromManage.config.ts b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/flexJobDetailFromManage.config.ts
new file mode 100644
index 0000000..305fdb1
--- /dev/null
+++ b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/flexJobDetailFromManage.config.ts
@@ -0,0 +1,3 @@
+export default definePageConfig({
+ disableScroll: true,
+});
diff --git a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/flexJobDetailFromManage.vue b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/flexJobDetailFromManage.vue
new file mode 100644
index 0000000..6e43ee6
--- /dev/null
+++ b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/flexJobDetailFromManage.vue
@@ -0,0 +1,17 @@
+<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>
diff --git a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue
new file mode 100644
index 0000000..34e4490
--- /dev/null
+++ b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue
@@ -0,0 +1,98 @@
+<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"
+ >瑙g害</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>
diff --git a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/flexJobManage.config.ts b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/flexJobManage.config.ts
new file mode 100644
index 0000000..305fdb1
--- /dev/null
+++ b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/flexJobManage.config.ts
@@ -0,0 +1,3 @@
+export default definePageConfig({
+ disableScroll: true,
+});
diff --git a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/flexJobManage.vue b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/flexJobManage.vue
new file mode 100644
index 0000000..dc618a4
--- /dev/null
+++ b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/flexJobManage.vue
@@ -0,0 +1,17 @@
+<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>
diff --git a/apps/bMiniApp/src/subpackages/jobApplicationManage/components/JobDetail.vue b/apps/bMiniApp/src/subpackages/jobApplicationManage/components/JobDetail.vue
index c2ff4ee..6717cb2 100644
--- a/apps/bMiniApp/src/subpackages/jobApplicationManage/components/JobDetail.vue
+++ b/apps/bMiniApp/src/subpackages/jobApplicationManage/components/JobDetail.vue
@@ -53,7 +53,7 @@
// 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,
@@ -77,4 +77,90 @@
<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>
diff --git a/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue b/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue
index 75f5381..4028bf9 100644
--- a/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue
+++ b/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue
@@ -6,7 +6,7 @@
<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>
@@ -15,9 +15,11 @@
<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',
@@ -45,6 +47,12 @@
queryKey: ['orderServices/getFrontOrderList'],
}
);
+
+function goToJobDetail(id: string) {
+ Taro.navigateTo({
+ url: `${RouterPath.flexJobDetailFromTask}?id=${id}`,
+ });
+}
</script>
<style lang="scss">
diff --git a/packages/components/src/Card/FlexJobCard.vue b/packages/components/src/Card/FlexJobCard.vue
index ed27a18..9764a3c 100644
--- a/packages/components/src/Card/FlexJobCard.vue
+++ b/packages/components/src/Card/FlexJobCard.vue
@@ -6,7 +6,7 @@
'鍋氳繃锛氬鎴挎湇鍔″憳銆佸鎴挎湇鍔″憳銆佸鎴垮鎴挎湇鍔″憳銆佸鎴垮仛杩囷細瀹㈡埧鏈嶅姟鍛樸�佸鎴挎湇鍔″憳銆佸鎴垮鎴挎湇鍔″憳銆佸鎴�'
}}
</div>
- <div class="flexJob-card-done-detail">
+ <div class="flexJob-card-done-detail" v-if="showDoneDetail">
<div class="flexJob-card-done-detail-item">
{{ '鍦ㄣ�屽畞娉㈤浄杩.閰掑簵銆嶏紝鍋氳繃瀹㈡埧鏈嶅姟鍛樺湪銆屽畞娉㈤浄杩.閰掑簵銆嶏紝鍋氳繃瀹㈡埧鏈嶅姟鍛�' }}
</div>
@@ -43,11 +43,13 @@
type Props = CommonTaskCardProps & {
showFooterLeft?: boolean;
showFooterRight?: boolean;
+ showDoneDetail?: boolean;
};
const props = withDefaults(defineProps<Props>(), {
showFooterLeft: true,
showFooterRight: true,
+ showDoneDetail: true,
});
</script>
--
Gitblit v1.9.1