From 2aabfd180f384a0e433a20e36bfb248cfb0c7ce3 Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期三, 12 二月 2025 13:33:40 +0800 Subject: [PATCH] feat: mine --- apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/InnerPage.vue | 96 ++++++++++++++- apps/cMiniApp/src/components/UserHome/UserHomeTopView.vue | 9 + apps/cMiniApp/src/constants/router.ts | 1 apps/cMiniApp/src/app.config.ts | 1 apps/cMiniApp/project.private.config.json | 7 + apps/cMiniApp/src/subpackages/mine/mineCurriculumVitae/InnerPage.vue | 138 +++++++++++++++++++++++ apps/cMiniApp/src/subpackages/mine/mineCurriculumVitae/mineCurriculumVitae.config.ts | 3 apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/MineAgreementSignDetailItem.vue | 35 ++++- apps/cMiniApp/src/subpackages/mine/mineCurriculumVitae/mineCurriculumVitae.vue | 17 ++ 9 files changed, 293 insertions(+), 14 deletions(-) diff --git a/apps/cMiniApp/project.private.config.json b/apps/cMiniApp/project.private.config.json index dbee23d..e74c848 100644 --- a/apps/cMiniApp/project.private.config.json +++ b/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 } ] } diff --git a/apps/cMiniApp/src/app.config.ts b/apps/cMiniApp/src/app.config.ts index 74b8cf2..72d0941 100644 --- a/apps/cMiniApp/src/app.config.ts +++ b/apps/cMiniApp/src/app.config.ts @@ -79,6 +79,7 @@ 'mineCollectTask/mineCollectTask', 'mineAgreementSign/mineAgreementSign', 'mineAgreementSignDetail/mineAgreementSignDetail', + 'mineCurriculumVitae/mineCurriculumVitae', 'setting/setting', ], }, diff --git a/apps/cMiniApp/src/components/UserHome/UserHomeTopView.vue b/apps/cMiniApp/src/components/UserHome/UserHomeTopView.vue index 5a1bc44..ad26953 100644 --- a/apps/cMiniApp/src/components/UserHome/UserHomeTopView.vue +++ b/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"> diff --git a/apps/cMiniApp/src/constants/router.ts b/apps/cMiniApp/src/constants/router.ts index ae46868..98d8b95 100644 --- a/apps/cMiniApp/src/constants/router.ts +++ b/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', } diff --git a/apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/InnerPage.vue b/apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/InnerPage.vue index e89b959..3c75eca 100644 --- a/apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/InnerPage.vue +++ b/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> diff --git a/apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/MineAgreementSignDetailItem.vue b/apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/MineAgreementSignDetailItem.vue index e6a8e5b..10c927c 100644 --- a/apps/cMiniApp/src/subpackages/mine/mineAgreementSignDetail/MineAgreementSignDetailItem.vue +++ b/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> diff --git a/apps/cMiniApp/src/subpackages/mine/mineCurriculumVitae/InnerPage.vue b/apps/cMiniApp/src/subpackages/mine/mineCurriculumVitae/InnerPage.vue new file mode 100644 index 0000000..61d5f17 --- /dev/null +++ b/apps/cMiniApp/src/subpackages/mine/mineCurriculumVitae/InnerPage.vue @@ -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> diff --git a/apps/cMiniApp/src/subpackages/mine/mineCurriculumVitae/mineCurriculumVitae.config.ts b/apps/cMiniApp/src/subpackages/mine/mineCurriculumVitae/mineCurriculumVitae.config.ts new file mode 100644 index 0000000..305fdb1 --- /dev/null +++ b/apps/cMiniApp/src/subpackages/mine/mineCurriculumVitae/mineCurriculumVitae.config.ts @@ -0,0 +1,3 @@ +export default definePageConfig({ + disableScroll: true, +}); diff --git a/apps/cMiniApp/src/subpackages/mine/mineCurriculumVitae/mineCurriculumVitae.vue b/apps/cMiniApp/src/subpackages/mine/mineCurriculumVitae/mineCurriculumVitae.vue new file mode 100644 index 0000000..76e97ee --- /dev/null +++ b/apps/cMiniApp/src/subpackages/mine/mineCurriculumVitae/mineCurriculumVitae.vue @@ -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> -- Gitblit v1.9.1