建材商城系统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.

375 lines
8.1 KiB

11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 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=""></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">
  33. <view class="item" style="">
  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;">{{commission}}</p>
  40. </view>
  41. </view>
  42. <view class="item">
  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">{{balance}}</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/auth/')">
  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. commission: 0, // 佣金
  127. balance: 0, // 余额
  128. isLogin: false, // 登录状态
  129. bannerList : [],
  130. }
  131. },
  132. onShow() {
  133. if(uni.getStorageSync('token')){
  134. this.$store.commit('getUserInfo')
  135. this.isLogin = true;
  136. }
  137. this.getBanner()
  138. },
  139. methods: {
  140. // 获取轮播图
  141. getBanner() {
  142. this.$api('getBanner', res => {
  143. if (res.code == 200) {
  144. this.bannerList = res.result
  145. }
  146. })
  147. },
  148. }
  149. }
  150. </script>
  151. <style scoped lang="scss">
  152. .page {
  153. .warp {
  154. display: flex;
  155. align-items: center;
  156. justify-content: center;
  157. height: 100%;
  158. }
  159. .rect {
  160. width: 600rpx;
  161. height: 300rpx;
  162. background-color: #fff;
  163. border-radius: 20rpx;
  164. overflow: hidden;
  165. .title {
  166. padding: 10rpx 0 0 15rpx;
  167. background-color: #fd5100;
  168. color: #FFF;
  169. text-align: left;
  170. width: 100%;
  171. height: 18%;
  172. font-size: 36rpx;
  173. }
  174. .center {
  175. height: 40%;
  176. display: flex;
  177. justify-content: center;
  178. align-items: center;
  179. font-size: 36rpx;
  180. }
  181. .bottom {
  182. display: flex;
  183. justify-content: center;
  184. gap: 50rpx;
  185. }
  186. }
  187. }
  188. image {
  189. width: 100%;
  190. height: 100%;
  191. }
  192. .head {
  193. display: flex;
  194. background-color: #DC2828;
  195. padding: 0rpx 20rpx;
  196. align-items: center;
  197. position: relative;
  198. height: 300rpx;
  199. padding-top: 60rpx;
  200. .headImage {
  201. width: 120rpx;
  202. height: 120rpx;
  203. background-image: url(/static/image/center/3.png);
  204. background-size: 100% 100%;
  205. overflow: hidden;
  206. border-radius: 50%;
  207. margin-right: 40rpx;
  208. }
  209. .info {
  210. font-size: 28rpx;
  211. .vip {
  212. background-color: #FCCC92;
  213. color: #FA6239;
  214. width: 100rpx;
  215. display: flex;
  216. justify-content: center;
  217. align-items: center;
  218. height: 40rpx;
  219. border-radius: 20rpx;
  220. margin-top: 20rpx;
  221. }
  222. .name {
  223. font-size: 36rpx;
  224. color: #fff;
  225. margin-right: 20rpx;
  226. width: 240rpx;
  227. white-space: nowrap;
  228. overflow: hidden;
  229. text-overflow: ellipsis;
  230. }
  231. .tips {
  232. font-size: 26rpx;
  233. color: #fff;
  234. margin-top: 10rpx;
  235. }
  236. .login-btn {
  237. margin-top: 20rpx;
  238. background-color: #fff;
  239. color: #DC2828;
  240. padding: 10rpx 30rpx;
  241. border-radius: 30rpx;
  242. font-size: 28rpx;
  243. display: inline-block;
  244. width: 160rpx;
  245. text-align: center;
  246. }
  247. }
  248. .headBtn {
  249. color: #FFF;
  250. font-size: 26rpx;
  251. display: flex;
  252. align-items: center;
  253. }
  254. }
  255. .user {
  256. position: relative;
  257. z-index: 9;
  258. margin: 0 30rpx;
  259. margin-top: -60rpx;
  260. .line {
  261. display: flex;
  262. background-color: #fff;
  263. padding: 20rpx 0;
  264. align-content: center;
  265. margin-top: 20rpx;
  266. border-radius: 15rpx;
  267. .item {
  268. flex: 1;
  269. display: flex;
  270. justify-content: center;
  271. align-items: center;
  272. padding: 20rpx 0;
  273. &:nth-child(1) {
  274. border-right: 1px dotted #00000013;
  275. }
  276. .image {
  277. width: 150rpx;
  278. height: 135rpx;
  279. margin-right: 20rpx;
  280. }
  281. }
  282. .image-home{
  283. z-index: 1;
  284. width: 100%;
  285. }
  286. }
  287. .grid {
  288. flex-direction: column;
  289. font-size: 26rpx;
  290. padding: 20rpx;
  291. .title {
  292. margin-bottom: 30rpx;
  293. font-size: 28rpx;
  294. font-weight: 600;
  295. }
  296. .image {
  297. width: 50rpx;
  298. height: 50rpx;
  299. margin: 20rpx 0;
  300. }
  301. text {
  302. text-align: center;
  303. width: 120rpx;
  304. font-size: 24rpx;
  305. }
  306. .share {
  307. background: none;
  308. padding: 0;
  309. margin: 0;
  310. line-height: normal;
  311. border: none;
  312. display: flex;
  313. flex-direction: column;
  314. align-items: center;
  315. justify-content: center;
  316. &::after {
  317. border: none;
  318. }
  319. .image {
  320. width: 50rpx;
  321. height: 50rpx;
  322. margin: 20rpx 0;
  323. }
  324. .grid-text {
  325. text-align: center;
  326. width: 120rpx;
  327. font-size: 24rpx;
  328. }
  329. }
  330. }
  331. }
  332. </style>