wupengfei
2025-02-12 2aabfd180f384a0e433a20e36bfb248cfb0c7ce3
feat: mine
6个文件已修改
3个文件已添加
307 ■■■■■ 已修改文件
apps/cMiniApp/project.private.config.json 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/app.config.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/components/UserHome/UserHomeTopView.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/constants/router.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/InnerPage.vue 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/MineAgreementSignDetailItem.vue 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/mine/mineCurriculumVitae/InnerPage.vue 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/mine/mineCurriculumVitae/mineCurriculumVitae.config.ts 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/subpackages/mine/mineCurriculumVitae/mineCurriculumVitae.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/project.private.config.json
@@ -21,6 +21,13 @@
                    "query": "",
                    "launchMode": "default",
                    "scene": null
                },
                {
                    "name": "",
                    "pathName": "subpackages/mine/mineCurriculumVitae/mineCurriculumVitae",
                    "query": "",
                    "launchMode": "default",
                    "scene": null
                }
            ]
        }
apps/cMiniApp/src/app.config.ts
@@ -79,6 +79,7 @@
        'mineCollectTask/mineCollectTask',
        'mineAgreementSign/mineAgreementSign',
        'mineAgreementSignDetail/mineAgreementSignDetail',
        'mineCurriculumVitae/mineCurriculumVitae',
        'setting/setting',
      ],
    },
apps/cMiniApp/src/components/UserHome/UserHomeTopView.vue
@@ -1,7 +1,7 @@
<template>
  <div class="mine-page-top-view">
    <slot name="avatar"></slot>
    <div class="setting-wrapper" v-if="showUserHomePageBtn" @click="">
    <div class="setting-wrapper" v-if="showUserHomePageBtn" @click="goMineCurriculumVitae">
      <div class="setting-text">
        我的简历<IconFont name="rect-right" size="16" color="#6D6E6E"></IconFont>
      </div>
@@ -12,6 +12,7 @@
<script setup lang="ts">
import { useUser } from '@/hooks';
import Taro from '@tarojs/taro';
import { RouterPath } from '@/constants';
defineOptions({
  name: 'UserHomeTopView',
@@ -28,6 +29,12 @@
});
const { userDetail } = useUser();
function goMineCurriculumVitae() {
  Taro.navigateTo({
    url: RouterPath.mineCurriculumVitae,
  });
}
</script>
<style lang="scss">
apps/cMiniApp/src/constants/router.ts
@@ -32,5 +32,6 @@
  mineCollectTask = '/subpackages/mine/mineCollectTask/mineCollectTask',
  mineAgreementSign = '/subpackages/mine/mineAgreementSign/mineAgreementSign',
  mineAgreementSignDetail = '/subpackages/mine/mineAgreementSignDetail/mineAgreementSignDetail',
  mineCurriculumVitae = '/subpackages/mine/mineCurriculumVitae/mineCurriculumVitae',
  setting = '/subpackages/mine/setting/setting',
}
apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/InnerPage.vue
@@ -1,11 +1,83 @@
<template>
  <div class="mine-agreement-sign-detail">
    <MineAgreementSignDetailCard title="基本信息">
      <template #content>
        <MineAgreementSignDetailItem label="姓名" detail="姓名"></MineAgreementSignDetailItem>
      </template>
    </MineAgreementSignDetailCard>
  </div>
  <LoadingLayout>
    <ContentScrollView :paddingH="false" style="background-color: transparent">
      <div class="mine-agreement-sign-detail">
        <MineAgreementSignDetailCard title="基本信息">
          <template #content>
            <MineAgreementSignDetailItem
              label="协议编号"
              detail="QY1052511040446686047"
            ></MineAgreementSignDetailItem>
            <MineAgreementSignDetailItem
              label="协议状态"
              detail="生效中/已终止"
            ></MineAgreementSignDetailItem>
            <MineAgreementSignDetailItem
              label="起始时间"
              detail="2024.05.20"
            ></MineAgreementSignDetailItem>
            <MineAgreementSignDetailItem
              label="终止时间"
              detail="2025.05.19"
            ></MineAgreementSignDetailItem>
            <MineAgreementSignDetailItem
              label="协议类型"
              detail="劳动合同"
            ></MineAgreementSignDetailItem>
          </template>
        </MineAgreementSignDetailCard>
        <MineAgreementSignDetailCard title="签约方信息 - 员工">
          <template #content>
            <MineAgreementSignDetailItem
              label="员工姓名"
              detail="阳阳"
            ></MineAgreementSignDetailItem>
            <MineAgreementSignDetailItem
              label="证件类型"
              detail="居民身份证"
            ></MineAgreementSignDetailItem>
            <MineAgreementSignDetailItem
              label="证件号码"
              detail="622429199105261913"
            ></MineAgreementSignDetailItem>
            <MineAgreementSignDetailItem label="岗位" detail="保洁"></MineAgreementSignDetailItem>
            <MineAgreementSignDetailItem
              label="签约时间"
              detail="2024.05.20"
            ></MineAgreementSignDetailItem>
          </template>
        </MineAgreementSignDetailCard>
        <MineAgreementSignDetailCard title="签约方信息 - 公司主体">
          <template #content>
            <MineAgreementSignDetailItem
              label="主体类型"
              detail="公司"
            ></MineAgreementSignDetailItem>
            <MineAgreementSignDetailItem
              label="签约主体"
              detail="宁波人力无忧人力资源"
            ></MineAgreementSignDetailItem>
            <MineAgreementSignDetailItem
              label="签约时间"
              detail="2024.05.20"
            ></MineAgreementSignDetailItem>
          </template>
        </MineAgreementSignDetailCard>
        <MineAgreementSignDetailCard title="签约内容">
          <template #content>
            <MineAgreementSignDetailItem label="协议内容">
              <template #detail>
                <div class="detail-card-btn">查看协议</div>
              </template>
            </MineAgreementSignDetailItem>
          </template>
        </MineAgreementSignDetailCard>
      </div>
    </ContentScrollView>
    <PageFooter>
      <PageFooterBtn type="primary" @click="goToSign">去签约</PageFooterBtn>
    </PageFooter>
  </LoadingLayout>
</template>
<script setup lang="ts">
@@ -20,6 +92,8 @@
const queryState = reactive({});
const userStore = useUserStore();
function goToSign() {}
</script>
<style lang="scss">
@@ -27,5 +101,13 @@
.mine-agreement-sign-detail {
  padding: 20px 28px 0;
  .mine-agreement-sign-detail-card {
    margin-bottom: 24px;
  }
}
.detail-card-btn {
  color: boleGetCssVar('color', 'primary');
}
</style>
apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/MineAgreementSignDetailItem.vue
@@ -1,6 +1,9 @@
<template>
  <div class="mine-agreement-sign-detail-item">
    <div class="mine-agreement-sign-detail-item-lebel">
    <div
      class="mine-agreement-sign-detail-item-lebel"
      :style="{ width: labelWidth, textAlign: textAlign }"
    >
      <slot name="label">
        {{ label }}
      </slot>
@@ -19,21 +22,41 @@
});
type Props = {
  label: string;
  detail: string;
  label?: string;
  detail?: string;
  labelWidth?: any;
  textAlign?: any;
};
const props = withDefaults(defineProps<Props>(), {});
const props = withDefaults(defineProps<Props>(), {
  labelWidth: '50px',
  textAlign: 'left',
});
</script>
<style lang="scss">
@use '@/style/common.scss' as *;
.mine-agreement-sign-detail-item {
  margin-bottom: 24px;
  display: flex;
  align-items: center;
  &:last-child {
    margin-bottom: 0;
  }
  .mine-agreement-sign-detail-item-lebel {
    font-size: 24px;
    line-height: 36px;
    margin-right: 24px;
    color: boleGetCssVar('text-color', 'regular');
  }
  .mine-agreement-sign-detail-item-detail {
    font-size: 24px;
    line-height: 36px;
    color: boleGetCssVar('text-color', 'primary');
    flex: 1;
    min-width: 0;
  }
}
</style>
apps/cMiniApp/src/subpackages/mine/mineCurriculumVitae/InnerPage.vue
New file
@@ -0,0 +1,138 @@
<template>
  <ContentView>
    <nut-noticebar
      text="个人简历已完善50%,完善简历可提升录用率"
      :left-icon="false"
      background="transparent"
      close-mode
    />
    <div class="mine-curriculum-info-wrapper">
      <UserAvatar :size="60" class="mine-curriculum-avatar" />
      <div class="mine-curriculum-info-content">
        <div class="mine-curriculum-info-item">
          <div class="mine-curriculum-info-item-left">
            <div class="mine-curriculum-info-item-name">
              {{ userStore.userDetail?.userName ?? '' }}
            </div>
            <div class="mine-curriculum-info-item-gender">
              <div class="mine-curriculum-info-item-gender-dot">·</div>
              <img :src="IconAuth" class="mine-curriculum-info-item-gender-icon" />
            </div>
          </div>
          <IconFont name="rect-right" size="16" color="#6D6E6E"></IconFont>
        </div>
        <div class="mine-curriculum-info-item">
          <div class="mine-curriculum-info-item-left">
            <img :src="IconAuth" class="mine-curriculum-info-item-phone-icon" />
            <div class="mine-curriculum-info-item-phone">
              {{ userStore.userDetail?.phoneNumber ?? '' }}
            </div>
          </div>
          <div class="mine-curriculum-info-item-detail">
            {{ '26岁 | 非学生 | 本科' }}
          </div>
        </div>
      </div>
    </div>
    <List class="mine-curriculum-intention">
      <div class="mine-curriculum-intention-title">
        <div class="mine-curriculum-intention-title-text">求职意向</div>
        <div class="mine-curriculum-intention-title-edit">
          编辑
          <img :src="IconArrow" class="" />
        </div>
      </div>
    </List>
    <ListItem title="资格证书">
      <template #extra>
        <div class="user-account">编辑</div>
      </template>
    </ListItem>
  </ContentView>
</template>
<script setup lang="ts">
import { useUserStore } from '@/stores/modules/user';
import { useIsLogin } from '@/hooks';
import { List, ListItem } from '@12333/components';
import IconArrow from '@/assets/setting/icon-arrow.png';
import IconAuth from '@/assets/mine/icon-auth.png';
defineOptions({
  name: 'InnerPage',
});
const userStore = useUserStore();
const isLogin = useIsLogin();
</script>
<style lang="scss">
@import '@/styles/common.scss';
.mine-curriculum-info-wrapper {
  padding: 24px 0 50px;
  display: flex;
  .mine-curriculum-avatar {
    margin-right: 24px;
  }
  .mine-curriculum-info-content {
    display: flex;
    flex-direction: column;
    padding: 12px 0;
    justify-content: space-between;
    flex: 1;
    min-width: 0;
    .mine-curriculum-info-item {
      display: flex;
      align-items: center;
      justify-content: space-between;
      .mine-curriculum-info-item-left {
        display: inline-flex;
        align-items: center;
        .mine-curriculum-info-item-name {
          font-size: 32px;
          line-height: 40px;
          color: boleGetCssVar('text-color', 'primary');
        }
        .mine-curriculum-info-item-gender {
          display: inline-flex;
          align-items: center;
          .mine-curriculum-info-item-gender-dot {
            margin: 0 8px;
            line-height: 40px;
          }
          .mine-curriculum-info-item-gender-icon {
            width: 36px;
            height: 36px;
          }
        }
        .mine-curriculum-info-item-phone {
          font-size: 28px;
          line-height: 40px;
          color: boleGetCssVar('text-color', 'primary');
        }
        .mine-curriculum-info-item-phone-icon {
          width: 24px;
          height: 24px;
        }
      }
      .mine-curriculum-info-item-detail {
        font-size: 24px;
        line-height: 40px;
        color: boleGetCssVar('text-color', 'primary');
      }
    }
  }
}
</style>
apps/cMiniApp/src/subpackages/mine/mineCurriculumVitae/mineCurriculumVitae.config.ts
New file
@@ -0,0 +1,3 @@
export default definePageConfig({
  disableScroll: true,
});
apps/cMiniApp/src/subpackages/mine/mineCurriculumVitae/mineCurriculumVitae.vue
New file
@@ -0,0 +1,17 @@
<template>
  <PageLayoutWithBg class="index-page-wrapper" :title="'我的简历'">
    <InnerPage></InnerPage>
  </PageLayoutWithBg>
</template>
<script setup lang="ts">
import InnerPage from './InnerPage.vue';
defineOptions({
  name: 'mineCurriculumVitae',
});
</script>
<style lang="scss">
@import '@/styles/common.scss';
</style>