From 78445345654fa79c1ddb57b854f7cd41ee89b5d9 Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期二, 11 二月 2025 14:28:14 +0800 Subject: [PATCH] feat: mine --- /dev/null | 0 apps/cMiniApp/src/assets/mine/icon-order-cancel.png | 0 apps/cMiniApp/src/assets/mine/icon-order-hire.png | 0 apps/cMiniApp/src/assets/mine/icon-auth.png | 0 apps/cMiniApp/src/assets/mine/icon-order-sign.png | 0 apps/cMiniApp/src/pages/mine/index.scss | 188 +++++++++++++------------- apps/cMiniApp/src/components/UserHome/UserHomeTopView.vue | 57 +------ project.private.config.json | 7 + project.config.json | 29 ++++ apps/cMiniApp/project.private.config.json | 17 ++ apps/cMiniApp/src/pages/mine/index.vue | 88 +++++++++--- 11 files changed, 220 insertions(+), 166 deletions(-) diff --git a/apps/cMiniApp/project.private.config.json b/apps/cMiniApp/project.private.config.json index fcbf67b..3cfa160 100644 --- a/apps/cMiniApp/project.private.config.json +++ b/apps/cMiniApp/project.private.config.json @@ -3,9 +3,20 @@ "projectname": "cMiniApp", "setting": { "compileHotReLoad": true, - "bigPackageSizeSupport": true, - "skylineRenderEnable": false + "bigPackageSizeSupport": true }, - "condition": {}, + "condition": { + "miniprogram": { + "list": [ + { + "name": "", + "pathName": "pages/mine/index", + "query": "", + "launchMode": "default", + "scene": null + } + ] + } + }, "libVersion": "3.7.3" } \ No newline at end of file diff --git a/apps/cMiniApp/src/assets/mine/icon-auth.png b/apps/cMiniApp/src/assets/mine/icon-auth.png new file mode 100644 index 0000000..e9a316a --- /dev/null +++ b/apps/cMiniApp/src/assets/mine/icon-auth.png Binary files differ diff --git a/apps/cMiniApp/src/assets/mine/icon-bg.png b/apps/cMiniApp/src/assets/mine/icon-bg.png deleted file mode 100644 index f38e82d..0000000 --- a/apps/cMiniApp/src/assets/mine/icon-bg.png +++ /dev/null Binary files differ diff --git a/apps/cMiniApp/src/assets/mine/icon-card.png b/apps/cMiniApp/src/assets/mine/icon-card.png deleted file mode 100644 index 457dad9..0000000 --- a/apps/cMiniApp/src/assets/mine/icon-card.png +++ /dev/null Binary files differ diff --git a/apps/cMiniApp/src/assets/mine/icon-edit.png b/apps/cMiniApp/src/assets/mine/icon-edit.png deleted file mode 100644 index c360f1a..0000000 --- a/apps/cMiniApp/src/assets/mine/icon-edit.png +++ /dev/null Binary files differ diff --git a/apps/cMiniApp/src/assets/mine/icon-id-bg.png b/apps/cMiniApp/src/assets/mine/icon-id-bg.png deleted file mode 100644 index d6228e7..0000000 --- a/apps/cMiniApp/src/assets/mine/icon-id-bg.png +++ /dev/null Binary files differ diff --git a/apps/cMiniApp/src/assets/mine/icon-lamp.png b/apps/cMiniApp/src/assets/mine/icon-lamp.png deleted file mode 100644 index 48dd588..0000000 --- a/apps/cMiniApp/src/assets/mine/icon-lamp.png +++ /dev/null Binary files differ diff --git a/apps/cMiniApp/src/assets/mine/icon-menu-business.png b/apps/cMiniApp/src/assets/mine/icon-menu-business.png deleted file mode 100644 index 8e262d3..0000000 --- a/apps/cMiniApp/src/assets/mine/icon-menu-business.png +++ /dev/null Binary files differ diff --git a/apps/cMiniApp/src/assets/mine/icon-menu-contact.png b/apps/cMiniApp/src/assets/mine/icon-menu-contact.png deleted file mode 100644 index 8ec8b4b..0000000 --- a/apps/cMiniApp/src/assets/mine/icon-menu-contact.png +++ /dev/null Binary files differ diff --git a/apps/cMiniApp/src/assets/mine/icon-message.png b/apps/cMiniApp/src/assets/mine/icon-message.png deleted file mode 100644 index db74126..0000000 --- a/apps/cMiniApp/src/assets/mine/icon-message.png +++ /dev/null Binary files differ diff --git a/apps/cMiniApp/src/assets/mine/icon-order-cancel.png b/apps/cMiniApp/src/assets/mine/icon-order-cancel.png new file mode 100644 index 0000000..5cf4432 --- /dev/null +++ b/apps/cMiniApp/src/assets/mine/icon-order-cancel.png Binary files differ diff --git a/apps/cMiniApp/src/assets/mine/icon-order-hire.png b/apps/cMiniApp/src/assets/mine/icon-order-hire.png new file mode 100644 index 0000000..e39d2b8 --- /dev/null +++ b/apps/cMiniApp/src/assets/mine/icon-order-hire.png Binary files differ diff --git a/apps/cMiniApp/src/assets/mine/icon-order-sign.png b/apps/cMiniApp/src/assets/mine/icon-order-sign.png new file mode 100644 index 0000000..a241ab8 --- /dev/null +++ b/apps/cMiniApp/src/assets/mine/icon-order-sign.png Binary files differ diff --git a/apps/cMiniApp/src/assets/mine/icon-unCertified.png b/apps/cMiniApp/src/assets/mine/icon-unCertified.png deleted file mode 100644 index be5fb96..0000000 --- a/apps/cMiniApp/src/assets/mine/icon-unCertified.png +++ /dev/null Binary files differ diff --git a/apps/cMiniApp/src/components/UserHome/UserHomeTopView.vue b/apps/cMiniApp/src/components/UserHome/UserHomeTopView.vue index 951cf66..497463f 100644 --- a/apps/cMiniApp/src/components/UserHome/UserHomeTopView.vue +++ b/apps/cMiniApp/src/components/UserHome/UserHomeTopView.vue @@ -1,32 +1,17 @@ <template> <div class="mine-page-top-view"> <slot name="avatar"></slot> - <div class="setting-wrapper" v-if="showUserHomePageBtn" @click="goUserHomePage"> - <div class="setting-text">鎴戠殑涓婚〉</div> + <div class="setting-wrapper" v-if="showUserHomePageBtn" @click=""> + <div class="setting-text"> + 鎴戠殑绠�鍘�<IconFont name="rect-right" size="16" color="#6D6E6E"></IconFont> + </div> </div> - </div> - <div class="mine-page-operation-wrapper" v-if="showOperation"> - <div class="mine-page-operation-item" @click="goEditProfile"> - <img class="mine-page-operation-item-icon" :src="IconEdit" /> - <div class="mine-page-operation-item-text">缂栬緫璧勬枡</div> - <img class="mine-page-operation-item-arrow" :src="IconArrow" /> - </div> - <button class="mine-page-operation-item share" open-type="share"> - <!-- <div class="mine-page-operation-item-inner"> --> - <img class="mine-page-operation-item-icon" :src="IconCard" /> - <div class="mine-page-operation-item-text">鍙戦�佸悕鐗�</div> - <img class="mine-page-operation-item-arrow" :src="IconArrow" /> - <!-- </div> --> - </button> </div> </template> <script setup lang="ts"> -import { useUser, useIsLogin } from '@/hooks'; +import { useUser } from '@/hooks'; import Taro from '@tarojs/taro'; -import IconEdit from '@/assets/mine/icon-edit.png'; -import IconCard from '@/assets/mine/icon-card.png'; -import IconArrow from '@/assets/mine/icon-arrow.png'; defineOptions({ name: 'UserHomeTopView', @@ -43,18 +28,6 @@ }); const { userDetail } = useUser(); - -function goUserHomePage() { - Taro.navigateTo({ - url: `${RouterPath.userHomePage}?userId=${userDetail.value?.userId}`, - }); -} - -function goEditProfile() { - Taro.navigateTo({ - url: RouterPath.userInfo, - }); -} </script> <style lang="scss"> @@ -66,28 +39,18 @@ margin-bottom: 20px; .setting-wrapper { - height: 56px; - background: rgba(#000, $alpha: 0.15); - border-radius: 200px 0px 0px 200px; align-self: center; display: flex; align-items: center; margin-right: calc(boleGetCssVar('size', 'body-padding-h') * -1); - padding-left: 24px; - padding-right: 16px; - - .setting-icon { - width: 32px; - height: 32px; - margin-right: 4px; - margin-left: 32px; - } .setting-text { font-weight: 400; - font-size: 24px; - color: #ffffff; - line-height: 34px; + font-size: 28px; + display: flex; + align-items: center; + color: boleGetCssVar('text-color', 'primary'); + padding-right: 20px; } } } diff --git a/apps/cMiniApp/src/pages/mine/index.scss b/apps/cMiniApp/src/pages/mine/index.scss index 40efdae..864ebed 100644 --- a/apps/cMiniApp/src/pages/mine/index.scss +++ b/apps/cMiniApp/src/pages/mine/index.scss @@ -17,7 +17,7 @@ display: flex; .mine-avatar { - margin-right: 24px; + margin-right: 22px; } .user-info { @@ -25,43 +25,46 @@ min-width: 0; display: flex; flex-direction: column; - padding: 12px 0; + padding: 10px 0; justify-content: space-between; .user-info-item { font-weight: 600; - font-size: 32px; - color: #ffffff; + font-size: 34px; + color: boleGetCssVar('text-color', 'primary'); line-height: 44px; @include ellipsis; } - - .user-info-item2 { - font-weight: 400; - font-size: 24px; - color: #ffffff; - line-height: 34px; - } - - .user-info-unCertified { + .user-info-auth { display: inline-flex; - align-items: center; - height: 40px; - background: #fffae0; - border-radius: 4px; - padding: 0 8px; - width: fit-content; + .user-info-auth-item { + margin-right: 20px; + display: inline-flex; + align-items: center; - .user-info-unCertified-icon { - width: 28px; - height: 28px; - } + .user-info-unCertified { + display: inline-flex; + align-items: center; + height: 34px; + width: fit-content; - .user-info-unCertified-text { - font-weight: 400; - font-size: 22px; - color: #a0541e; - line-height: 24px; + .user-info-unCertified-icon { + width: 20px; + height: 28px; + margin-right: 6px; + } + + .user-info-unCertified-text { + font-weight: 400; + font-size: 28px; + color: boleGetCssVar('text-color', 'secondary'); + } + .user-info-unCertified-btn { + font-weight: 400; + font-size: 28px; + color: boleGetCssVar('color', 'primary'); + } + } } } } @@ -75,77 +78,78 @@ .mine-content-scroll-view { padding-top: 26px; + background-color: transparent; - .mine-id-menu-wrapper { - height: 124px; - background: url('https://renliyuan.oss-cn-hangzhou.aliyuncs.com/12333/matchMakingMini/assets/mine/icon-id-bg.png') - no-repeat; - background-size: cover; - display: flex; - align-items: center; - padding: 0 boleGetCssVar('size', 'body-padding-h'); - margin-bottom: 24px; - - .mine-id-menu-icon { - width: 24px; - height: 36px; - margin-right: 16px; - } - - .mine-id-menu-text { - font-weight: 400; - font-size: 28px; - color: #ffffff; - line-height: 40px; - flex: 1; - min-width: 0; - } - - .mine-id-menu-btn { - width: 152px; - height: 52px; - background: #ffffff; - border-radius: 26px; - font-weight: bold; - font-size: 24px; - color: #444444; - line-height: 52px; - text-align: center; - } - } - - .mine-menu-list { - display: flex; - gap: 30px; - margin-bottom: 24px; - - .mine-menu-list-item { - flex: 1; - min-width: 0; + .mine-order-list { + margin-bottom: 18px; + padding: 0 24px; + .mine-order-list-title { display: flex; align-items: center; - height: 152px; - background: #ffffff; - border-radius: 8px; - padding-left: 48px; - - .mine-menu-list-item-icon { - width: 72px; - height: 72px; - margin-right: 24px; - } - - .mine-menu-list-item-text { - font-weight: 400; + justify-content: space-between; + border-bottom: 2px solid #eeeeee; + padding: 24px 0; + .mine-order-list-title-text { + font-weight: 600; font-size: 28px; - color: #333333; - line-height: 40px; + color: boleGetCssVar('text-color', 'primary'); + line-height: 32px; + } + .mine-order-list-title-icon { + width: 32px; + height: 32px; + } + } + .mine-order-list-content { + padding: 24px 0; + display: flex; + justify-content: space-around; + + .mine-order-list-item { + display: inline-flex; + flex-direction: column; + align-items: center; + .mine-order-list-icon { + width: 64px; + height: 64px; + } + .mine-order-list-text { + font-size: 28px; + color: boleGetCssVar('text-color', 'primary'); + } } } } - - .mine-setting-list { - border-radius: 8px; + .mine-balance { + margin-bottom: 18px; + padding: 24px; + padding-left: 34px; + .mine-balance-title { + font-size: 30px; + line-height: 42px; + color: boleGetCssVar('text-color', 'primary'); + margin-bottom: 16px; + } + .mine-balance-money { + font-size: 48px; + line-height: 68px; + color: boleGetCssVar('text-color', 'primary'); + } + .mine-balance-btn { + display: flex; + align-items: center; + justify-content: flex-end; + font-size: 22px; + color: boleGetCssVar('text-color', 'regular'); + line-height: 36px; + .mine-balance-btn-icon { + width: 32px; + height: 32px; + } + } + } + .mine-list-wrapper { + border-radius: 12px; } } } diff --git a/apps/cMiniApp/src/pages/mine/index.vue b/apps/cMiniApp/src/pages/mine/index.vue index 6c2bc79..c014122 100644 --- a/apps/cMiniApp/src/pages/mine/index.vue +++ b/apps/cMiniApp/src/pages/mine/index.vue @@ -1,5 +1,5 @@ <template> - <PageLayout class="mine-page-wrapper" :need-auth="false"> + <PageLayoutWithBg class="mine-page-wrapper" :need-auth="false"> <template #navigationBar> <TransparentNavigationBar title="涓汉涓績" @@ -14,15 +14,30 @@ <UserHomeTopView :showUserHomePageBtn="isLogin" :showOperation="isLogin"> <template #avatar> <div class="mine-avatar-wrapper" @click="goLogin"> - <UserAvatar :size="60" class="mine-avatar" /> + <UserAvatar :size="52" class="mine-avatar" /> <div class="user-info" v-if="isLogin"> <div class="user-info-item">{{ userDetail?.userName ?? '' }}</div> - <div class="user-info-item2" v-if="isCertified"> - {{ userDetail?.customerName ?? '' }} - </div> - <div class="user-info-unCertified" v-else @click.stop="goAuthentication"> - <img :src="IconUnCertified" class="user-info-unCertified-icon" /> - <div class="user-info-unCertified-text">鏈璇�</div> + <div class="user-info-auth"> + <div class="user-info-auth-item"> + <div class="user-info-unCertified" v-if="isCertified"> + <div class="user-info-unCertified-text">鏈疄鍚�</div> + <div class="user-info-unCertified-btn">绔嬪嵆瀹炲悕</div> + </div> + <div class="user-info-unCertified" v-else @click.stop="goAuthentication"> + <img :src="IconAuth" class="user-info-unCertified-icon" /> + <div class="user-info-unCertified-text">宸插疄鍚�</div> + </div> + </div> + <div class="user-info-auth-item"> + <div class="user-info-unCertified" v-if="!isCertified"> + <div class="user-info-unCertified-text">鏈璇�</div> + <div class="user-info-unCertified-btn">绔嬪嵆璁よ瘉</div> + </div> + <div class="user-info-unCertified" v-else @click.stop="goAuthentication"> + <img :src="IconAuth" class="user-info-unCertified-icon" /> + <div class="user-info-unCertified-text">宸茶璇�</div> + </div> + </div> </div> </div> <div class="mine-go-login" v-else>鍘荤櫥褰�</div> @@ -31,34 +46,59 @@ </UserHomeTopView> </ContentView> <ContentScrollView v-if="isLogin" class="mine-content-scroll-view"> - <div class="mine-id-menu-wrapper"> - <img :src="IconLamp" class="mine-id-menu-icon" /> - </div> - <List class="mine-setting-list"> + <List class="mine-list-wrapper mine-balance"> + <div class="mine-balance-title">鎴戠殑浣欓</div> + <div class="mine-balance-money">锟{ toThousand(100) }}</div> + <div class="mine-balance-btn"> + 杩涘叆鎴戠殑閽卞寘 + <img :src="IconArrow" class="mine-balance-btn-icon" /> + </div> + </List> + <List class="mine-list-wrapper mine-order-list"> + <div class="mine-order-list-title"> + <div class="mine-order-list-title-text">鎴戠殑璁㈠崟</div> + <img :src="IconArrow" class="mine-order-list-title-icon" /> + </div> + <div class="mine-order-list-content"> + <nut-badge class="mine-order-list-item" :value="8"> + <img :src="IconOrderSign" class="mine-order-list-icon" /> + <div class="mine-order-list-text">鎴戠殑鎶ュ悕</div> + </nut-badge> + <nut-badge class="mine-order-list-item" :value="8"> + <img :src="IconOrderHire" class="mine-order-list-icon" /> + <div class="mine-order-list-text">宸插綍鐢�</div> + </nut-badge> + <nut-badge class="mine-order-list-item" :value="8"> + <img :src="IconOrderCancel" class="mine-order-list-icon" /> + <div class="mine-order-list-text">宸插彇娑�</div> + </nut-badge> + </div> + </List> + <List class="mine-list-wrapper mine-setting-list"> + <ListItem :icon="IconSetting" title="鎴戞敹钘忕殑浠诲姟" @click="goSetting"></ListItem> + <ListItem :icon="IconSetting" title="鍗忚绛剧害" @click="goSetting"></ListItem> <ListItem :icon="IconSetting" title="璁剧疆" @click="goSetting"></ListItem> + <ListItem :icon="IconSetting" title="鎴戣鎷涗汉/鐢ㄤ汉" @click="goSetting"></ListItem> </List> </ContentScrollView> - </PageLayout> + </PageLayoutWithBg> </template> <script setup lang="ts"> -import { - PageLayout, - TransparentNavigationBar, - ContentScrollView, - UserHomeTopView, -} from '@/components'; -import IconUnCertified from '@/assets/mine/icon-unCertified.png'; -import IconLamp from '@/assets/mine/icon-lamp.png'; -import IconMenuBusiness from '@/assets/mine/icon-menu-business.png'; -import IconMenuContact from '@/assets/mine/icon-menu-contact.png'; +import { TransparentNavigationBar, ContentScrollView, UserHomeTopView } from '@/components'; +import IconArrow from '@/assets/setting/icon-arrow.png'; import IconSetting from '@/assets/mine/icon-setting.png'; -import IconMessage from '@/assets/mine/icon-message.png'; +import IconOrderSign from '@/assets/mine/icon-order-sign.png'; +import IconOrderHire from '@/assets/mine/icon-order-hire.png'; +import IconOrderCancel from '@/assets/mine/icon-order-cancel.png'; +import IconAuth from '@/assets/mine/icon-auth.png'; import { useUser, useIsLogin, useGoLogin } from '@/hooks'; import Taro from '@tarojs/taro'; import { RouterPath, OssAssets } from '@/constants'; import { List, ListItem } from '@12333/components'; import { useSystemStore } from '@/stores/modules/system'; +import PageLayoutWithBg from '@/components/Layout/PageLayoutWithBg.vue'; +import { toThousand } from '@12333/utils'; const { userDetail, isCertified } = useUser(); const isLogin = useIsLogin(); diff --git a/project.config.json b/project.config.json new file mode 100644 index 0000000..9edf403 --- /dev/null +++ b/project.config.json @@ -0,0 +1,29 @@ +{ + "appid": "wx88251c84f5cd886b", + "compileType": "miniprogram", + "libVersion": "3.7.7", + "packOptions": { + "ignore": [], + "include": [] + }, + "setting": { + "coverView": true, + "es6": true, + "postcss": true, + "minified": true, + "enhance": true, + "showShadowRootInWxmlPanel": true, + "packNpmRelationList": [], + "babelSetting": { + "ignore": [], + "disablePlugins": [], + "outputPath": "" + }, + "condition": false + }, + "condition": {}, + "editorSetting": { + "tabIndent": "insertSpaces", + "tabSize": 4 + } +} \ No newline at end of file diff --git a/project.private.config.json b/project.private.config.json new file mode 100644 index 0000000..cb665a8 --- /dev/null +++ b/project.private.config.json @@ -0,0 +1,7 @@ +{ + "description": "椤圭洰绉佹湁閰嶇疆鏂囦欢銆傛鏂囦欢涓殑鍐呭灏嗚鐩� project.config.json 涓殑鐩稿悓瀛楁銆傞」鐩殑鏀瑰姩浼樺厛鍚屾鍒版鏂囦欢涓�傝瑙佹枃妗o細https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", + "projectname": "flexJobMiniApp", + "setting": { + "compileHotReLoad": true + } +} \ No newline at end of file -- Gitblit v1.9.1