wupengfei
2025-02-14 4bc9cf48154b5666d4c928f32182bcbb92eca6c5
feat: mine
8个文件已修改
10个文件已添加
3 文件已重命名
582 ■■■■ 已修改文件
apps/bMiniApp/project.private.config.json 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/app.config.ts 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/components/JobDetailContent/components/CurriculumViewItem.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/components/JobDetailContent/components/experienceView.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/constants/router.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/pages/workbenches/InnerPage.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue 105 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/flexJobDetailFromTask.config.ts 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/flexJobDetailFromTask.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/flexJobDetailFromManage.config.ts 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/flexJobDetailFromManage.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/flexJobManage.config.ts 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/flexJobManage.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/jobApplicationManage/components/JobDetail.vue 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/Card/FlexJobCard.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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
                }
            ]
        }
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: {
apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue
New file
@@ -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>
apps/bMiniApp/src/components/JobDetailContent/components/CurriculumViewItem.vue
File was renamed from apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/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;
apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue
File was renamed from apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/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;
apps/bMiniApp/src/components/JobDetailContent/components/experienceView.vue
File was renamed from apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/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="您的订单正在配送途中"></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;
    }
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',
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="任务管理"
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>
apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue
New file
@@ -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>
apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/flexJobDetailFromTask.config.ts
New file
@@ -0,0 +1,3 @@
export default definePageConfig({
  disableScroll: true,
});
apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/flexJobDetailFromTask.vue
New file
@@ -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>
apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue
New file
@@ -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>
apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/flexJobDetailFromManage.config.ts
New file
@@ -0,0 +1,3 @@
export default definePageConfig({
  disableScroll: true,
});
apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/flexJobDetailFromManage.vue
New file
@@ -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>
apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue
New file
@@ -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"
              >解约</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>
apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/flexJobManage.config.ts
New file
@@ -0,0 +1,3 @@
export default definePageConfig({
  disableScroll: true,
});
apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/flexJobManage.vue
New file
@@ -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>
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>
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">
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>