建材商城系统20241014
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

373 lines
8.1 KiB

7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
6 months ago
7 months ago
6 months ago
7 months ago
6 months ago
6 months ago
7 months ago
6 months ago
6 months ago
7 months ago
6 months ago
7 months ago
6 months ago
7 months ago
6 months ago
6 months ago
7 months ago
6 months ago
7 months ago
6 months ago
6 months ago
6 months ago
7 months ago
6 months ago
6 months ago
7 months ago
6 months ago
6 months ago
7 months ago
7 months ago
7 months ago
7 months ago
6 months ago
6 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
6 months ago
7 months ago
6 months ago
7 months ago
7 months ago
6 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
6 months ago
7 months ago
7 months ago
7 months ago
  1. <template>
  2. <view class="page">
  3. <!-- <navbar title="个人中心" /> -->
  4. <view class="head">
  5. <view class="headImage">
  6. <image :src="userInfo.headImage || '/static/image/center/headImage.png'" mode="aspectFill"></image>
  7. </view>
  8. <view class="info">
  9. <view v-if="isLogin">
  10. <view style="display: flex;gap: 20rpx;">
  11. <view class="name">
  12. {{userInfo.nickName || '未登录'}}
  13. </view>
  14. <view class="headBtn" @click="$utils.navigateTo('/pages_order/auth/wxUserInfo')">
  15. 修改资料
  16. <uv-icon name="edit-pen-fill" size="26rpx" color="#fff"></uv-icon>
  17. </view>
  18. </view>
  19. <view class="tips">
  20. 手机号<text>{{userInfo.phone || '未绑定'}}</text>
  21. </view>
  22. </view>
  23. <view v-else>
  24. <view class="login-btn" @tap.stop="$utils.toLogin()">
  25. <text>立即登录</text>
  26. </view>
  27. </view>
  28. </view>
  29. </view>
  30. <!-- 酒店 -->
  31. <view class="user">
  32. <view class="line" @click="$utils.navigateTo('/pages_order/mine/purse')">
  33. <view class="item">
  34. <view class="image">
  35. <image src="/static/image/center/1.png" mode=""></image>
  36. </view>
  37. <view class="">
  38. 我的佣金
  39. <p style="color:#DC2828; font-weight: 700;">{{ userInfo.money }}</p>
  40. </view>
  41. </view>
  42. <view class="item" @click="$utils.navigateTo('/pages_order/mine/purse')">
  43. <view class="image">
  44. <image src="/static/image/center/4.png" mode=""></image>
  45. </view>
  46. <view class="">
  47. 我的金额
  48. <p style="color:#DC2828;font-weight: 700">{{ userInfo.price }}</p>
  49. </view>
  50. </view>
  51. </view>
  52. <view class="line">
  53. <view class="image-home">
  54. <uv-swiper
  55. class="uv-swaip"
  56. height="240rpx"
  57. :list="bannerList"
  58. circular
  59. keyName="image"
  60. indicator="true"
  61. bgColor="#ffffff">
  62. </uv-swiper>
  63. </view>
  64. </view>
  65. <view class="line grid">
  66. <view class="title">
  67. 我的服务
  68. </view>
  69. <uv-grid :col="4" :border="false">
  70. <uv-grid-item @click="$utils.navigateTo('/index/order')">
  71. <image class="image" src="/static/image/center/12.png" mode=""></image>
  72. <text class="grid-text">我的订单</text>
  73. </uv-grid-item>
  74. <uv-grid-item @click="$utils.navigateTo('/pages_order/mine/address')">
  75. <image class="image" src="/static/image/center/12.png" mode=""></image>
  76. <text class="grid-text">我的地址</text>
  77. </uv-grid-item>
  78. <uv-grid-item @click="$utils.redirectTo('/pages_order/mine/individualTeam')">
  79. <image class="image" src="/static/image/center/8.png" mode=""></image>
  80. <text class="grid-text">我的团队</text>
  81. </uv-grid-item>
  82. <uv-grid-item @click="$utils.navigateTo('/pages_order/order/firmOrder')">
  83. <image class="image" src="/static/image/center/7.png" mode=""></image>
  84. <text class="grid-text">快捷订单</text>
  85. </uv-grid-item>
  86. <uv-grid-item @click="$utils.navigateTo('/pages_order/mine/promotion')">
  87. <image class="image" src="/static/image/center/9.png" mode=""></image>
  88. <text class="grid-text">邀请好友</text>
  89. </uv-grid-item>
  90. <uv-grid-item @click="$utils.navigateTo('/pages_order/center/systemSet')">
  91. <image class="image" src="/static/image/center/6.png" mode=""></image>
  92. <text class="grid-text">系统设置</text>
  93. </uv-grid-item>
  94. <uv-grid-item @click="$utils.navigateTo('/pages_order/mine/help')">
  95. <image class="image" src="/static/image/center/7.png" mode=""></image>
  96. <text class="grid-text">帮助与反馈</text>
  97. </uv-grid-item>
  98. <uv-grid-item
  99. @click="$utils.navigateTo('/pages_order/mine/about')">
  100. <image class="image" src="/static/image/center/7.png" mode=""></image>
  101. <text class="grid-text">关于本程序</text>
  102. </uv-grid-item>
  103. <uv-grid-item>
  104. <button open-type="contact" class="share">
  105. <image class="image" src="/static/image/center/5.png" mode=""></image>
  106. <text class="grid-text">联系客服</text>
  107. </button>
  108. </uv-grid-item>
  109. </uv-grid>
  110. </view>
  111. </view>
  112. <tabber select="center" />
  113. </view>
  114. </template>
  115. <script>
  116. import tabber from '@/components/base/tabbar.vue'
  117. export default {
  118. components: {
  119. tabber,
  120. },
  121. computed: {
  122. },
  123. data() {
  124. return {
  125. list: [],
  126. isLogin: false, // 登录状态
  127. bannerList : [],
  128. }
  129. },
  130. onShow() {
  131. if(uni.getStorageSync('token')){
  132. this.$store.commit('getUserInfo')
  133. this.isLogin = true;
  134. }
  135. this.getBanner()
  136. },
  137. methods: {
  138. // 获取轮播图
  139. getBanner() {
  140. this.$api('getBanner', res => {
  141. if (res.code == 200) {
  142. this.bannerList = res.result
  143. }
  144. })
  145. },
  146. }
  147. }
  148. </script>
  149. <style scoped lang="scss">
  150. .page {
  151. .warp {
  152. display: flex;
  153. align-items: center;
  154. justify-content: center;
  155. height: 100%;
  156. }
  157. .rect {
  158. width: 600rpx;
  159. height: 300rpx;
  160. background-color: #fff;
  161. border-radius: 20rpx;
  162. overflow: hidden;
  163. .title {
  164. padding: 10rpx 0 0 15rpx;
  165. background-color: #fd5100;
  166. color: #FFF;
  167. text-align: left;
  168. width: 100%;
  169. height: 18%;
  170. font-size: 36rpx;
  171. }
  172. .center {
  173. height: 40%;
  174. display: flex;
  175. justify-content: center;
  176. align-items: center;
  177. font-size: 36rpx;
  178. }
  179. .bottom {
  180. display: flex;
  181. justify-content: center;
  182. gap: 50rpx;
  183. }
  184. }
  185. }
  186. image {
  187. width: 100%;
  188. height: 100%;
  189. }
  190. .head {
  191. display: flex;
  192. background-color: #DC2828;
  193. padding: 0rpx 20rpx;
  194. align-items: center;
  195. position: relative;
  196. height: 300rpx;
  197. padding-top: 60rpx;
  198. .headImage {
  199. width: 120rpx;
  200. height: 120rpx;
  201. background-image: url(/static/image/center/3.png);
  202. background-size: 100% 100%;
  203. overflow: hidden;
  204. border-radius: 50%;
  205. margin-right: 40rpx;
  206. }
  207. .info {
  208. font-size: 28rpx;
  209. .vip {
  210. background-color: #FCCC92;
  211. color: #FA6239;
  212. width: 100rpx;
  213. display: flex;
  214. justify-content: center;
  215. align-items: center;
  216. height: 40rpx;
  217. border-radius: 20rpx;
  218. margin-top: 20rpx;
  219. }
  220. .name {
  221. font-size: 36rpx;
  222. color: #fff;
  223. margin-right: 20rpx;
  224. width: 240rpx;
  225. white-space: nowrap;
  226. overflow: hidden;
  227. text-overflow: ellipsis;
  228. }
  229. .tips {
  230. font-size: 26rpx;
  231. color: #fff;
  232. margin-top: 10rpx;
  233. }
  234. .login-btn {
  235. margin-top: 20rpx;
  236. background-color: #fff;
  237. color: #DC2828;
  238. padding: 10rpx 30rpx;
  239. border-radius: 30rpx;
  240. font-size: 28rpx;
  241. display: inline-block;
  242. width: 160rpx;
  243. text-align: center;
  244. }
  245. }
  246. .headBtn {
  247. color: #FFF;
  248. font-size: 26rpx;
  249. display: flex;
  250. align-items: center;
  251. }
  252. }
  253. .user {
  254. position: relative;
  255. z-index: 9;
  256. margin: 0 30rpx;
  257. margin-top: -60rpx;
  258. .line {
  259. display: flex;
  260. background-color: #fff;
  261. padding: 20rpx 0;
  262. align-content: center;
  263. margin-top: 20rpx;
  264. border-radius: 15rpx;
  265. .item {
  266. flex: 1;
  267. display: flex;
  268. justify-content: center;
  269. align-items: center;
  270. padding: 20rpx 0;
  271. &:nth-child(1) {
  272. border-right: 1px dotted #00000013;
  273. }
  274. .image {
  275. width: 150rpx;
  276. height: 135rpx;
  277. margin-right: 20rpx;
  278. }
  279. }
  280. .image-home{
  281. z-index: 1;
  282. width: 100%;
  283. }
  284. }
  285. .grid {
  286. flex-direction: column;
  287. font-size: 26rpx;
  288. padding: 20rpx;
  289. .title {
  290. margin-bottom: 30rpx;
  291. font-size: 28rpx;
  292. font-weight: 600;
  293. }
  294. .image {
  295. width: 50rpx;
  296. height: 50rpx;
  297. margin: 20rpx 0;
  298. }
  299. text {
  300. text-align: center;
  301. width: 120rpx;
  302. font-size: 24rpx;
  303. }
  304. .share {
  305. background: none;
  306. padding: 0;
  307. margin: 0;
  308. line-height: normal;
  309. border: none;
  310. display: flex;
  311. flex-direction: column;
  312. align-items: center;
  313. justify-content: center;
  314. &::after {
  315. border: none;
  316. }
  317. .image {
  318. width: 50rpx;
  319. height: 50rpx;
  320. margin: 20rpx 0;
  321. }
  322. .grid-text {
  323. text-align: center;
  324. width: 120rpx;
  325. font-size: 24rpx;
  326. }
  327. }
  328. }
  329. }
  330. </style>