Преглед изворни кода

feat: 静态页面:个人中心、我的点赞、我的收藏、我的收益

Moss пре 1 година
родитељ
комит
a41f6b70dd

+ 3 - 1
src/App.vue

@@ -16,5 +16,7 @@
 
 <style lang="scss">
   /*每个页面公共css */
-  @import "uview-ui/index.scss";
+  @import "uview-ui/index.scss";
+
+  @import "styles/iconfont.css";
 </style>

+ 18 - 6
src/pages.json

@@ -3,7 +3,6 @@
     //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
     {
       "path": "pages/login/index",
-      "name": "index",
       "style": {
         "navigationBarBackgroundColor": "#f4f2f2",
         "navigationBarTitleText": ""
@@ -11,7 +10,6 @@
     },
     {
       "path": "pages/login/indexs",
-      "name": "indexs",
       "style": {
         "navigationBarTitleText": "登录",
         "navigationStyle": "custom"
@@ -19,7 +17,6 @@
     },
     {
       "path": "pages/index/index",
-      "name": "home",
       "style": {
         "navigationBarTitleText": "首页"
       }
@@ -27,7 +24,6 @@
 
     {
       "path": "pages/issue/index",
-      "name": "issue",
       "style": {
         "navigationBarTitleText": "发布"
       }
@@ -35,18 +31,34 @@
 
     {
       "path": "pages/message/index",
-      "name": "message",
       "style": {
         "navigationBarTitleText": "消息"
       }
     },
     {
       "path": "pages/mine/index",
-      "name": "mine",
       "style": {
         "navigationStyle": "custom",
         "navigationBarTitleText": "我的"
       }
+    },
+    {
+      "path": "pages/mine/myLike",
+      "style": {
+        "navigationBarTitleText": "我的点赞"
+      }
+    },
+    {
+      "path": "pages/mine/myCollection",
+      "style": {
+        "navigationBarTitleText": "我的收藏"
+      }
+    },
+    {
+      "path": "pages/mine/myEarnings",
+      "style": {
+        "navigationBarTitleText": "我的收益"
+      }
     }
 
   ],

+ 212 - 164
src/pages/mine/index.vue

@@ -1,76 +1,80 @@
 <!-- 我的主页 -->
 <template>
   <view class="container">
-    <custom :bgColor="'bg-linear'" :backColor="'#FFFFFF'" :isBack="false" v-show="isCustom">
-      <text slot="content" style="color: #FFFFFF; font-size: 32rpx; font-weight: 600;">我的</text>
-    </custom>
-
-    <view class="avatar-box">
-      <view class="title">我的</view>
-      <template v-if="userInfo && userInfo.accountBase">
-        <view class="avatar-box-content">
-          <view class="flex avatar-box-content-info">
-            <img src="@/static/common/logo.png" alt="">
-            <view class="avatar-box-content-info-right">
-              <view class="abcir-username">{{userInfo.accountBase.accountName}}({{userInfo.accountBase.accountCode}})</view>
-              <view class="abcir-address">{{userInfo.accountBase.departmentName}}</view>
-              <view class="abcir-job">岗位:{{userInfo.accountBase.roleName}}</view>
-            </view>
-          </view>
+    <u-navbar
+      title="我的"
+      bgColor="#ffffff"
+      titleStyle="color: #333333; font-weight: 500;"
+      placeholder
+      v-show="isCustom"
+      leftIcon="">
+    </u-navbar>
+
+    <view class="bg-container"></view>
+
+    <view class="title-container">我的</view>
+
+    <view class="user-container card">
+      <view class="user">
+        <image src="@/static/common/logo.png" mode="aspectFill"></image>
+        <view class="main">
+          <view class="name">张三</view>
+          <view class="real">实名认证</view>
         </view>
-        <view class="avatar-box-botoom flex">
-          <view class="flex">
-            <img src="@/static/user/icon_1.png" alt="">
-            <view class="text-box">
-              <view class="date">{{userInfo.accountInfoMsg.timeLength || 0}}</view>
-              <view class="text">学习时长</view>
-            </view>
-          </view>
-          <view class="flex">
-            <img src="@/static/user/icon_2.png" alt="">
-            <view class="text-box">
-              <view class="date">{{userInfo.accountInfoMsg.totalAccount || 0}}</view>
-              <view class="text">学习资料</view>
-            </view>
-          </view>
-          <view class="flex">
-            <img src="@/static/user/icon_3.png" alt="">
-            <view class="text-box">
-              <view class="date">{{userInfo.accountInfoMsg.exchangeScore || 0}}</view>
-              <view class="text">可用积分</view>
-            </view>
-          </view>
+      </view>
+      <view class="stats">
+        <view class="item" v-for="(item, index) in userStats" :key="index" @tap="$navPage(item.url)">
+          <view class="num">{{item.num}}</view>
+          <view class="text">{{item.name}}</view>
         </view>
-      </template>
-      <u-skeleton v-else :loading="true" avatar rows="4"></u-skeleton>
+      </view>
     </view>
 
-    <view class="cell">
-      <u-cell-group>
-        <view class="cell-item">
-          <u-cell class="b-border" size="large" isLink :title="pageList[0].title" :url="pageList[0].url">
-          </u-cell>
-          <u-cell size="large" isLink :title="pageList[1].title" :url="pageList[1].url"></u-cell>
-        </view>
-        <view class="cell-item">
-          <u-cell class="b-border" size="large" isLink :title="pageList[2].title" :url="pageList[2].url">
-          </u-cell>
-          <u-cell class="b-border" size="large" isLink :title="pageList[3].title" :url="pageList[3].url">
-          </u-cell>
-          <u-cell class="b-border" size="large" isLink :title="pageList[4].title" :url="pageList[4].url">
-          </u-cell>
-          <u-cell size="large" isLink :title="pageList[5].title" :url="pageList[5].url"></u-cell>
+    <view class="stats-container card">
+      <view class="top">
+        <view class="left">我发布的</view>
+        <view class="right">全部<text class="iconfont icon-jinru"></text></view>
+      </view>
+      <view class="stats">
+        <view class="item" v-for="(item, index) in issueStats" :key="index">
+          <view class="icon">
+            <text class="iconfont" :class="item.icon"></text>
+            <u-badge max="99" :value="item.num" :absolute="true" :offset="[-4, -4]"></u-badge>
+          </view>
+          <view class="text">{{item.name}}</view>
         </view>
-        <view class="cell-item">
-          <u-cell size="large" isLink :title="pageList[6].title" :url="pageList[6].url"></u-cell>
+      </view>
+    </view>
+
+    <view class="stats-container card">
+      <view class="top">
+        <view class="left">我买到的</view>
+        <view class="right">全部<text class="iconfont icon-jinru"></text></view>
+      </view>
+      <view class="stats">
+        <view class="item" v-for="(item, index) in buyStats" :key="index">
+          <view class="icon">
+            <text class="iconfont" :class="item.icon"></text>
+            <u-badge max="99" :value="item.num" :absolute="true" :offset="[-4, -4]"></u-badge>
+          </view>
+          <view class="text">{{item.name}}</view>
         </view>
-        <view class="cell-item">
-          <u-cell class="b-border" size="large" isLink :title="pageList[7].title" :url="pageList[7].url">
-          </u-cell>
-          <u-cell size="large" isLink :title="pageList[8].title" :url="pageList[8].url"></u-cell>
+      </view>
+    </view>
+
+    <view class="menu-container card">
+      <block v-for="(item, index) in pageList" :key="index">
+        <view class="item" v-if="item.url != 'contact'" @tap="$navPage(item.url)">
+          <view class="name">{{item.name}}</view>
+          <text class="iconfont icon-jinru"></text>
         </view>
-      </u-cell-group>
+        <button class="item" v-else open-type="contact" :plain="true">
+        	<view class="name">{{item.name}}</view>
+        	<text class="iconfont icon-jinru"></text>
+        </button>
+      </block>
     </view>
+
   </view>
 </template>
 
@@ -82,16 +86,28 @@ export default {
       isCustom: false, // 是否显示自定义导航
       userInfo: uni.getStorageSync('recycle_mobile_user'),
 
+      userStats: [
+        { name: '我的点赞', num: 0, url: '/pages/mine/myLike' },
+        { name: '我的收藏', num: 0, url: '/pages/mine/myCollection' },
+        { name: '我的收益', num: 0, url: '/pages/mine/myEarnings' },
+      ],
+      issueStats: [
+        { name: '我的发布', icon: 'icon-xiangji', num: 1 },
+        { name: '已卖出', icon: 'icon-xiangji', num: 0 },
+        { name: '已下架', icon: 'icon-xiangji', num: 0 },
+      ],
+      buyStats: [
+        { name: '待付款', icon: 'icon-xiangji', num: 0 },
+        { name: '待发货', icon: 'icon-xiangji', num: 0 },
+        { name: '待收货', icon: 'icon-xiangji', num: 0 },
+      ],
+
       pageList: [
-        { title: '要学', url: '/pages/profile/study/index' },
-        { title: '要考', url: '/pages/profile/examination/index' },
-        { title: '我的课程', url: '/pages/profile/lesson/index' },
-        { title: '我的专题', url: '/pages/profile/special/index' },
-        { title: '其他学习', url: '/pages/profile/other/index' },
-        { title: '我的收藏', url: '/pages/profile/collect/index' },
-        { title: '我的案例', url: '/pages/profile/case/index' },
-        { title: '积分兑换', url: '/pages/profile/shop/index' },
-        { title: '我的证书', url: '/pages/profile/certificate/index' }
+        { name: '我的地址', url: '' },
+        { name: '防骗指南', url: '' },
+        { name: '联系客服', url: 'contact' },
+        { name: '隐私政策', url: '' },
+        { name: '用户协议', url: '' },
       ],
     }
   },
@@ -125,109 +141,141 @@ export default {
     overflow: auto;
 }
 
-.avatar-box {
-    position: relative;
-    height: 352rpx;
-    padding: 0 30rpx;
-    margin-bottom: 70rpx;
-    background: linear-gradient(-45deg, #6da7ff 0%, #7fdaff 100%);
-    .title {
-      font-size: 32rpx;
-      color: #ffffff;
+.card {
+  background: #ffffff;
+  border-radius: 20rpx;
+  position: relative;
+  margin: 0 30rpx;
+}
+
+.bg-container {
+  position: fixed;
+  top: 0;
+  left: 0;
+  width: 750rpx;
+  height: 750rpx;
+  background: linear-gradient(to bottom, $theme-color, #f4f2f2);
+}
+
+.title-container {
+  font-size: 32rpx;
+  color: #ffffff;
+  height: 88rpx;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  font-weight: 600;
+  position: relative;
+}
+
+.user-container {
+  margin-top: 10rpx;
+  padding: 20rpx 20rpx 40rpx;
+  .user {
+    display: flex;
+    align-items: center;
+    image {
+      width: 88rpx;
       height: 88rpx;
-      display: flex;
-      justify-content: center;
-      align-items: center;
-      font-weight: 600;
+      border-radius: 50%;
     }
-    &-content {
-        margin-top: 16rpx;
-        display: flex;
-        flex-direction: column;
-        justify-content: space-between;
-        line-height: 54rpx;
-        color: #f7f7f7;
-        img {
-          width: 120rpx;
-          height: 120rpx;
-          border-radius: 50%;
-        }
-        &-info {
-            &-right {
-                margin-left: 20rpx;
-                color: #ffffff;
-
-                .abcir- {
-                    &username {
-                      font-size: 36rpx;
-                    }
-                    &address {
-                      font-size: 28rpx;
-                      line-height: 28rpx;
-                      margin-top: 16rpx;
-                    }
-                    &job {
-                      font-size: 28rpx;
-                      line-height: 28rpx;
-                      margin-top: 12rpx;
-                    }
-                }
-            }
-        }
+    .main {
+      margin-left: 20rpx;
+      .name {
+        font-size: 32rpx;
+      }
+      .real {
+        margin-top: 12rpx;
+        background: $theme-color;
+        border-radius: 4rpx;
+        font-size: 20rpx;
+        color: #ffffff;
+        padding: 4rpx 8rpx;
+      }
+    }
+  }
+  .stats {
+    display: flex;
+    margin-top: 30rpx;
+    .item {
+      flex: 1;
+      text-align: center;
+      .num {
+        font-size: 36rpx;
+        font-weight: 500;
+      }
+      .text {
+        margin-top: 8rpx;
+        font-size: 24rpx;
+      }
     }
+  }
+}
 
-    &-botoom {
-        height: 140rpx;
-        width: 690rpx;
-        align-items: center;
-        justify-content: space-between;
-        position: absolute;
-        bottom: -70rpx;
-        background: #ffffff;
-        border-radius: 20rpx;
-        padding: 0 30rpx;
-        box-sizing: border-box;
-        &>view {
-          // flex: 1;
-          align-items: center;
-        }
-        img {
-          width: 48rpx;
-          height: 48rpx;
-        }
-        .text-box {
-          margin-left: 16rpx;
-          display: flex;
-          flex-direction: column;
-          justify-content: space-between;
-          min-width: 100rpx;
-          .date {
-            font-size: 32rpx;
-            color: var(--assist-color);
-            font-weight: 600;
-          }
-          .text {
-            color: #333333;
-            font-size: 24rpx;
-            margin-top: 4rpx;
-          }
+.stats-container {
+  padding: 20rpx 20rpx 40rpx;
+  margin-top: 30rpx;
+  .top {
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    .left {
+      font-size: 32rpx;
+      font-weight: 500;
+    }
+    .right {
+      font-size: 24rpx;
+      color: $sec-font;
+      text {
+        font-size: 28rpx;
+      }
+    }
+  }
+  .stats {
+    display: flex;
+    margin-top: 40rpx;
+    .item {
+      flex: 1;
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      .icon {
+        position: relative;
+        .iconfont {
+          font-size: 48rpx;
         }
+      }
+      .text {
+        margin-top: 8rpx;
+        font-size: 24rpx;
+      }
     }
+  }
 }
 
-.cell {
-    margin: 100rpx 30rpx 30rpx 30rpx;
+.menu-container {
+  margin-top: 30rpx;
+  .item {
+  	display: flex;
+  	align-items: center;
+    justify-content: space-between;
+  	height: 100rpx;
+  	padding: 0 30rpx;
+    border: none;
+  	border-bottom: 1px solid #f5f5f5;
 
-    ::v-deep .u-cell-group__wrapper .u-line {
-        border-bottom: 0 !important;
-    }
+  	&:last-child {
+  		border: none;
+  	}
 
-    &-item {
-        margin-bottom: 20rpx;
-        border-radius: 20rpx;
-        background-color: #fff;
-        overflow: hidden;
+  	.name {
+  		font-size: 32rpx;
+  	}
 
-    }
+  	.iconfont {
+  		font-size: 28rpx;
+  		color: $sec-font;
+  	}
+  }
 }
 </style>

+ 155 - 0
src/pages/mine/myCollection.vue

@@ -0,0 +1,155 @@
+<template>
+  <zj-page-layout
+  	:hasFooter="false"
+  	:isScroll="true"
+  	:refresherTriggered="refresherTriggered"
+  	@refresherrefresh="refresherrefresh"
+  	@scrolltolower="scrolltolower">
+    <view class="list-container">
+      <view class="item">
+        <view class="top">
+          <image src="@/static/common/logo.png"></image>
+          <view class="user">
+            <view class="name">张三</view>
+            <view class="time">23小时前发布</view>
+          </view>
+          <view class="price">¥1888.00</view>
+        </view>
+        <view class="title">商品名称</view>
+        <view class="des">商品描述</view>
+        <view class="imgs">
+          <image src="@/static/user/other_speech.png"></image>
+          <image src="@/static/user/other_speech.png"></image>
+          <image src="@/static/user/other_speech.png"></image>
+        </view>
+        <view class="bottom">
+          <view class="location">天河区棠下</view>
+          <view class="right">
+            <u-button text="取消收藏" shape="circle"></u-button>
+          </view>
+        </view>
+      </view>
+    </view>
+  </zj-page-layout>
+</template>
+
+<script>
+  export default {
+    data() {
+      return {
+        imgUrl: this.$imageUrl,
+        dataList: [],
+        pageNum: 1,
+        refresherTriggered: false,
+      }
+    },
+
+    async onLoad() {
+      // await this.getList()
+    },
+
+    methods: {
+      //获取列表数据
+      async getList() {
+        this.$api.post('/xxx/xxxlist', {
+          pageNum: this.pageNum,
+          pageSize: 10,
+        }).then(res => {
+          this.loadStatus = 0;
+          let list = res.data.records;
+          if(list.length < 10){
+          	this.loadStatus = 2;
+          }
+          this.dataList = this.dataList.concat(list);
+        }).catch(() => {
+					this.loadStatus = 2;
+				}).finally(res => {
+					this.refresherTriggered = false;
+				})
+      },
+
+      // 滚动到底部
+      scrolltolower(e) {
+      	if (this.loadStatus === 0) {
+      		this.pageNum++;
+      		this.getList();
+      	}
+      },
+
+      // 触发下拉刷新
+      refresherrefresh(e) {
+      	this.refresherTriggered = true;
+      	this.dataList = [];
+      	this.pageNum = 1;
+      	this.getList();
+      },
+
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+.list-container {
+  .item {
+    margin-top: 30rpx;
+    background: #ffffff;
+    padding: 20rpx 30rpx;
+    .top {
+      display: flex;
+      align-items: center;
+      image {
+        width: 88rpx;
+        height: 88rpx;
+        border-radius: 50%;
+        flex-shrink: 0;
+      }
+      .user {
+        margin-left: 20rpx;
+        flex: 1;
+        .name {
+
+        }
+        .time {
+          color: $sec-font;
+          font-size: 24rpx;
+          margin-top: 8rpx;
+        }
+      }
+      .price {
+        color: $assist-color;
+      }
+    }
+    .title {
+      margin-top: 20rpx;
+    }
+    .des {
+      margin-top: 20rpx;
+    }
+    .imgs {
+      display: flex;
+      flex-wrap: wrap;
+      image {
+        width: 140rpx;
+        height: 140rpx;
+        margin-right: 20rpx;
+        margin-top: 20rpx;
+      }
+    }
+    .bottom {
+      border-top: 1px solid #eaeaea;
+      margin-top: 20rpx;
+      padding-top: 20rpx;
+      display: flex;
+      align-items: center;
+      justify-content: space-between;
+      .location {
+        font-size: 24rpx;
+        color: $sec-font;
+      }
+      .u-button {
+        height: 60rpx;
+      }
+    }
+  }
+}
+</style>

+ 132 - 0
src/pages/mine/myEarnings.vue

@@ -0,0 +1,132 @@
+<template>
+  <zj-page-layout
+  	:hasFooter="false"
+  	:isScroll="true"
+  	:refresherTriggered="refresherTriggered"
+  	@refresherrefresh="refresherrefresh"
+  	@scrolltolower="scrolltolower">
+    <view class="total-container">
+      <view class="num">¥1008.00</view>
+      <view class="text">总收益</view>
+    </view>
+    <view class="list-container">
+      <view class="title">收益明细</view>
+      <view class="item">
+        <view class="left">
+          <view class="top">订单号:S123456789</view>
+          <view class="time">2023-09-11 21:22:33</view>
+        </view>
+        <view class="price">+150.00</view>
+        <text class="iconfont icon-jinru"></text>
+      </view>
+    </view>
+  </zj-page-layout>
+</template>
+
+<script>
+  export default {
+    data() {
+      return {
+        imgUrl: this.$imageUrl,
+        dataList: [],
+        pageNum: 1,
+        refresherTriggered: false,
+      }
+    },
+
+    async onLoad() {
+      // await this.getList()
+    },
+
+    methods: {
+      //获取列表数据
+      async getList() {
+        this.$api.post('/xxx/xxxlist', {
+          pageNum: this.pageNum,
+          pageSize: 10,
+        }).then(res => {
+          this.loadStatus = 0;
+          let list = res.data.records;
+          if(list.length < 10){
+          	this.loadStatus = 2;
+          }
+          this.dataList = this.dataList.concat(list);
+        }).catch(() => {
+					this.loadStatus = 2;
+				}).finally(res => {
+					this.refresherTriggered = false;
+				})
+      },
+
+      // 滚动到底部
+      scrolltolower(e) {
+      	if (this.loadStatus === 0) {
+      		this.pageNum++;
+      		this.getList();
+      	}
+      },
+
+      // 触发下拉刷新
+      refresherrefresh(e) {
+      	this.refresherTriggered = true;
+      	this.dataList = [];
+      	this.pageNum = 1;
+      	this.getList();
+      },
+
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+.total-container {
+  background: #ffffff;
+  margin-top: 30rpx;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  padding: 30rpx 0;
+  .num {
+    font-size: 36rpx;
+    color: $assist-color;
+    font-weight: 500;
+  }
+  .text {
+    font-size: 28rpx;
+    margin-top: 16rpx;
+  }
+}
+.list-container {
+  margin-top: 40rpx;
+  .title {
+    color: $sec-font;
+    font-size: 28rpx;
+    padding-left: 30rpx;
+  }
+  .item {
+    background: #ffffff;
+    display: flex;
+    align-items: center;
+    padding: 20rpx 30rpx;
+    margin-top: 20rpx;
+    .left {
+      flex: 1;
+      .top {
+        font-size: 28rpx;
+      }
+      .time {
+        font-size: 24rpx;
+        color: $sec-font;
+        margin-top: 8rpx;
+      }
+    }
+    .price {
+      color: $assist-color;
+      margin-right: 10rpx;
+    }
+    .iconfont {
+      color: $sec-font;
+    }
+  }
+}
+</style>

+ 155 - 0
src/pages/mine/myLike.vue

@@ -0,0 +1,155 @@
+<template>
+  <zj-page-layout
+  	:hasFooter="false"
+  	:isScroll="true"
+  	:refresherTriggered="refresherTriggered"
+  	@refresherrefresh="refresherrefresh"
+  	@scrolltolower="scrolltolower">
+    <view class="list-container">
+      <view class="item">
+        <view class="top">
+          <image src="@/static/common/logo.png"></image>
+          <view class="user">
+            <view class="name">张三</view>
+            <view class="time">23小时前发布</view>
+          </view>
+          <view class="price">¥1888.00</view>
+        </view>
+        <view class="title">商品名称</view>
+        <view class="des">商品描述</view>
+        <view class="imgs">
+          <image src="@/static/user/other_speech.png"></image>
+          <image src="@/static/user/other_speech.png"></image>
+          <image src="@/static/user/other_speech.png"></image>
+        </view>
+        <view class="bottom">
+          <view class="location">天河区棠下</view>
+          <view class="right">
+            <u-button text="取消点赞" shape="circle"></u-button>
+          </view>
+        </view>
+      </view>
+    </view>
+  </zj-page-layout>
+</template>
+
+<script>
+  export default {
+    data() {
+      return {
+        imgUrl: this.$imageUrl,
+        dataList: [],
+        pageNum: 1,
+        refresherTriggered: false,
+      }
+    },
+
+    async onLoad() {
+      // await this.getList()
+    },
+
+    methods: {
+      //获取列表数据
+      async getList() {
+        this.$api.post('/xxx/xxxlist', {
+          pageNum: this.pageNum,
+          pageSize: 10,
+        }).then(res => {
+          this.loadStatus = 0;
+          let list = res.data.records;
+          if(list.length < 10){
+          	this.loadStatus = 2;
+          }
+          this.dataList = this.dataList.concat(list);
+        }).catch(() => {
+					this.loadStatus = 2;
+				}).finally(res => {
+					this.refresherTriggered = false;
+				})
+      },
+
+      // 滚动到底部
+      scrolltolower(e) {
+      	if (this.loadStatus === 0) {
+      		this.pageNum++;
+      		this.getList();
+      	}
+      },
+
+      // 触发下拉刷新
+      refresherrefresh(e) {
+      	this.refresherTriggered = true;
+      	this.dataList = [];
+      	this.pageNum = 1;
+      	this.getList();
+      },
+
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+.list-container {
+  .item {
+    margin-top: 30rpx;
+    background: #ffffff;
+    padding: 20rpx 30rpx;
+    .top {
+      display: flex;
+      align-items: center;
+      image {
+        width: 88rpx;
+        height: 88rpx;
+        border-radius: 50%;
+        flex-shrink: 0;
+      }
+      .user {
+        margin-left: 20rpx;
+        flex: 1;
+        .name {
+
+        }
+        .time {
+          color: $sec-font;
+          font-size: 24rpx;
+          margin-top: 8rpx;
+        }
+      }
+      .price {
+        color: $assist-color;
+      }
+    }
+    .title {
+      margin-top: 20rpx;
+    }
+    .des {
+      margin-top: 20rpx;
+    }
+    .imgs {
+      display: flex;
+      flex-wrap: wrap;
+      image {
+        width: 140rpx;
+        height: 140rpx;
+        margin-right: 20rpx;
+        margin-top: 20rpx;
+      }
+    }
+    .bottom {
+      border-top: 1px solid #eaeaea;
+      margin-top: 20rpx;
+      padding-top: 20rpx;
+      display: flex;
+      align-items: center;
+      justify-content: space-between;
+      .location {
+        font-size: 24rpx;
+        color: $sec-font;
+      }
+      .u-button {
+        height: 60rpx;
+      }
+    }
+  }
+}
+</style>

+ 3 - 1
src/router/index.js

@@ -34,6 +34,7 @@ router.beforeEach((to, from, next) => {
     '/pages/login/index',
     '/pages/login/indexs',
     '/pages/index/index',
+    '/pages/mine/index',
   ]
   
   // next();
@@ -43,7 +44,8 @@ router.beforeEach((to, from, next) => {
     if (whitePages.indexOf(to.path) >= 0) {
       next();
     } else {
-      next('/pages/login/index');
+      next();
+      // next('/pages/login/index');
     }
   }
 });

+ 5 - 5
src/styles/config.scss

@@ -1,19 +1,19 @@
 // :root {
 //   --theme-color: #6DA7FF;
 //   --assist-color: #E95505;
-  
+
 //   --primary-color: #3c9cff;
 //   --success-color: #5ac725;
 //   --warning-color: #f9ae3d;
 //   --error-color: #f56c6c;
-  
+
 //   --bg-color: #f4f2f2;
 //   --border-color: #f4f2f2;
 // }
 
 // 主题颜色
-$theme-color: #3D8FFD; // 主题色
-$assist-color: #FF6213; // 辅助色
+$theme-color: #01C30B; // 主题色
+$assist-color: #FF3E42; // 辅助色
 $minor-color: #FF577E; // 次辅色
 $success-color: #19be6b; // 成功
 
@@ -34,4 +34,4 @@ $bottom-shadow: 0 2px 5px 0 rgba(0, 0, 0, .3), 0 2px 5px 0 rgba(0, 0, 0, .3); //
 	reg-font: $reg-font;
 	sec-font: $sec-font;
 	bottom-shadow: $bottom-shadow;
-}
+}

+ 24 - 0
src/styles/iconfont.css

@@ -0,0 +1,24 @@
+/* 在线链接服务仅供平台体验和调试使用,平台不承诺服务的稳定性,企业客户需下载字体包自行发布使用并做好备份。 */
+@font-face {
+  font-family: 'iconfont';  /* Project id 4308323 */
+  src: url('https://at.alicdn.com/t/c/font_4308323_1d4707qto5j.woff2?t=1698659322164') format('woff2'),
+       url('https://at.alicdn.com/t/c/font_4308323_1d4707qto5j.woff?t=1698659322164') format('woff'),
+       url('https://at.alicdn.com/t/c/font_4308323_1d4707qto5j.ttf?t=1698659322164') format('truetype');
+}
+
+.iconfont {
+  font-family: "iconfont" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-jinru:before {
+  content: "\e60c";
+}
+
+.icon-xiangji:before {
+  content: "\e663";
+}
+

+ 5 - 2
src/styles/index.scss

@@ -3,12 +3,15 @@
 
 // 定义通用样式
 page {
-    background-color: #f4f2f2;
+  background-color: #f4f2f2;
+}
 
+view {
+  color: $main-font;
 }
 
 .container {
-    overflow: hidden;
+  overflow: hidden;
 }