zhengyiming
2025-02-11 d3f44a4ef648ab4bb971819179d8a9acfb161477
Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp
4个文件已修改
6个文件已添加
9个文件已删除
344 ■■■■■ 已修改文件
apps/cMiniApp/project.private.config.json 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/assets/mine/icon-auth.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/assets/mine/icon-bg.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/assets/mine/icon-card.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/assets/mine/icon-edit.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/assets/mine/icon-id-bg.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/assets/mine/icon-lamp.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/assets/mine/icon-menu-business.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/assets/mine/icon-menu-contact.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/assets/mine/icon-message.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/assets/mine/icon-order-cancel.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/assets/mine/icon-order-hire.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/assets/mine/icon-order-sign.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/assets/mine/icon-unCertified.png 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/components/UserHome/UserHomeTopView.vue 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/pages/mine/index.scss 156 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/cMiniApp/src/pages/mine/index.vue 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project.config.json 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project.private.config.json 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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"
}
apps/cMiniApp/src/assets/mine/icon-auth.png
apps/cMiniApp/src/assets/mine/icon-bg.png
Binary files differ
apps/cMiniApp/src/assets/mine/icon-card.png
Binary files differ
apps/cMiniApp/src/assets/mine/icon-edit.png
Binary files differ
apps/cMiniApp/src/assets/mine/icon-id-bg.png
Binary files differ
apps/cMiniApp/src/assets/mine/icon-lamp.png
Binary files differ
apps/cMiniApp/src/assets/mine/icon-menu-business.png
Binary files differ
apps/cMiniApp/src/assets/mine/icon-menu-contact.png
Binary files differ
apps/cMiniApp/src/assets/mine/icon-message.png
Binary files differ
apps/cMiniApp/src/assets/mine/icon-order-cancel.png
apps/cMiniApp/src/assets/mine/icon-order-hire.png
apps/cMiniApp/src/assets/mine/icon-order-sign.png
apps/cMiniApp/src/assets/mine/icon-unCertified.png
Binary files differ
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 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;
    }
  }
}
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-auth {
        display: inline-flex;
        .user-info-auth-item {
          margin-right: 20px;
          display: inline-flex;
          align-items: center;
      .user-info-unCertified {
        display: inline-flex;
        align-items: center;
        height: 40px;
        background: #fffae0;
        border-radius: 4px;
        padding: 0 8px;
            height: 34px;
        width: fit-content;
        .user-info-unCertified-icon {
          width: 28px;
              width: 20px;
          height: 28px;
              margin-right: 6px;
        }
        .user-info-unCertified-text {
          font-weight: 400;
          font-size: 22px;
          color: #a0541e;
          line-height: 24px;
              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;
    .mine-order-list {
      margin-bottom: 18px;
      padding: 0 24px;
      .mine-order-list-title {
      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;
        justify-content: space-between;
        border-bottom: 2px solid #eeeeee;
        padding: 24px 0;
        .mine-order-list-title-text {
          font-weight: 600;
        font-size: 28px;
        color: #ffffff;
        line-height: 40px;
        flex: 1;
        min-width: 0;
          color: boleGetCssVar('text-color', 'primary');
          line-height: 32px;
      }
      .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-order-list-title-icon {
          width: 32px;
          height: 32px;
      }
    }
    .mine-menu-list {
      .mine-order-list-content {
        padding: 24px 0;
      display: flex;
      gap: 30px;
      margin-bottom: 24px;
        justify-content: space-around;
      .mine-menu-list-item {
        flex: 1;
        min-width: 0;
        .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-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;
        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;
          font-size: 28px;
          color: #333333;
          line-height: 40px;
        justify-content: flex-end;
        font-size: 22px;
        color: boleGetCssVar('text-color', 'regular');
        line-height: 36px;
        .mine-balance-btn-icon {
          width: 32px;
          height: 32px;
        }
      }
    }
    .mine-setting-list {
      border-radius: 8px;
    .mine-list-wrapper {
      border-radius: 12px;
    }
  }
}
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 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="IconUnCertified" class="user-info-unCertified-icon" />
                    <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" />
      <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 class="mine-setting-list">
      </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();
project.config.json
New file
@@ -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
    }
}
project.private.config.json
New file
@@ -0,0 +1,7 @@
{
    "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
    "projectname": "flexJobMiniApp",
    "setting": {
        "compileHotReLoad": true
    }
}