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