球星卡微信小程序
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.

654 lines
15 KiB

4 years ago
  1. <template>
  2. <view class="flex-col page">
  3. <lf-header :spreadOut="true" :diy="true" :boderBottom="true" bgColor="#ffffff">
  4. <view class="header-nav">
  5. <image class="searchIcon" src="@/static/icon/search.png" @click="$url('/pages/ratingQuery/ratingQuery')"></image>
  6. <text class="title">评级中心</text>
  7. </view>
  8. </lf-header>
  9. <view class="flex-col items-center group_3">
  10. <image
  11. src="https://codefun-proj-user-res-1256085488.cos.ap-guangzhou.myqcloud.com/62677e395a7e3f03107ffc5f/62677e4a35a7e10011e93a80/16509497755645259901.png"
  12. class="image_6" />
  13. <view class="flex-col section_2">
  14. <view class="flex-col">
  15. <!-- 用户信息 -->
  16. <view class="flex-col section_3" @click="nextToSettings">
  17. <view class="bottom-group flex-col items-center view_3">
  18. <view class="flex-col items-end image-wrapper">
  19. <image class="avatar" :src="user.avatar" mode="aspectFill" v-if="user.avatar"></image>
  20. <image class="avatar" src="@/static/mrtx.png" mode="aspectFill" v-else></image>
  21. <image
  22. src="https://project-user-resource-1256085488.cos.ap-guangzhou.myqcloud.com/62677e395a7e3f03107ffc5f/62677e4a35a7e10011e93a80/16509497944681815904.png"
  23. class="image_7" />
  24. <view class="flex-col items-center badge" v-if="$isRight(dots.system)">
  25. <text>{{ dots.system > 99 ? '99+' : dots.system }}</text>
  26. </view>
  27. </view>
  28. </view>
  29. <view class="justify-center group_5">
  30. <view class="user-name">{{ user.nick_name || '您未登录,点击登录' }}</view>
  31. <image src="@/static/icon/rightArrow.png" class="image_8" />
  32. </view>
  33. </view>
  34. <!-- 我的订单 -->
  35. <view class="section_4 flex-col">
  36. <view class="justify-between">
  37. <text class="text_4">我的订单</text>
  38. <view class="right-group flex-row" @click="nextToOrder">
  39. <text>全部</text>
  40. <image
  41. src="@/static/icon/rightArrow.png"
  42. class="image_8" />
  43. </view>
  44. </view>
  45. <view class="justify-between equal-division" >
  46. <view class="equal-division-item flex-col" @click="nextToOrder(1)">
  47. <view class="top-group flex-col items-center">
  48. <image
  49. src="https://codefun-proj-user-res-1256085488.cos.ap-guangzhou.myqcloud.com/62677e395a7e3f03107ffc5f/62677e4a35a7e10011e93a80/16509497746086268452.png"
  50. class="image_11" />
  51. <view class="flex-col items-center badge_1" v-if="$isRight(dots.unconfirmed)">
  52. <text>{{ dots.unconfirmed }}</text>
  53. </view>
  54. </view>
  55. <text class="text_7">待确认</text>
  56. </view>
  57. <view class="flex-col items-center equal-division-item_1" @click="nextToOrder(2)">
  58. <view class="top-group flex-col items-center">
  59. <image
  60. src="https://codefun-proj-user-res-1256085488.cos.ap-guangzhou.myqcloud.com/62677e395a7e3f03107ffc5f/62677e4a35a7e10011e93a80/16509497746226999392.png"
  61. class="image_11" />
  62. <view class="flex-col items-center badge_2" v-if="$isRight(dots.rating)">
  63. <text>{{ dots.rating }}</text>
  64. </view>
  65. </view>
  66. <text class="text_7">评级中</text>
  67. </view>
  68. <view class="flex-col items-center equal-division-item_2" @click="nextToOrder(3)">
  69. <view class="top-group flex-col items-center">
  70. <image
  71. src="https://codefun-proj-user-res-1256085488.cos.ap-guangzhou.myqcloud.com/62677e395a7e3f03107ffc5f/62677e4a35a7e10011e93a80/16509497746138565873.png"
  72. class="image_11" />
  73. <view class="flex-col items-center badge_2" v-if="$isRight(dots.paying)">
  74. <text>{{ dots.paying }}</text>
  75. </view>
  76. </view>
  77. <text class="text_11">待付款</text>
  78. </view>
  79. <view class="equal-division-item flex-col" @click="nextToOrder(4)">
  80. <view class="top-group flex-col items-center">
  81. <image
  82. src="https://codefun-proj-user-res-1256085488.cos.ap-guangzhou.myqcloud.com/62677e395a7e3f03107ffc5f/62677e4a35a7e10011e93a80/16509497746181954101.png"
  83. class="image_11" />
  84. <view class="flex-col items-center badge_2" v-if="$isRight(dots.shipping)">
  85. <text>{{ dots.shipping }}</text>
  86. </view>
  87. </view>
  88. <text class="text_7">待收货</text>
  89. </view>
  90. </view>
  91. </view>
  92. <!-- 快速评级 -->
  93. <view class="section_4 flex-col">
  94. <view class="justify-between group_9">
  95. <view class="group_10">
  96. <text class="text_14">快速评级</text>
  97. <text class="text_15">7day</text>
  98. </view>
  99. <view class="right-group flex-row" @click="$url('/pages/fastRating/fastRating')">
  100. <text>查看详情</text>
  101. <image
  102. src="@/static/icon/rightArrow.png"
  103. class="image_8" />
  104. </view>
  105. </view>
  106. <view class="grid">
  107. <view class="flex-col items-center grid-item_1" @click="rateIndex = 0" :class="{'grid-item-active': rateIndex == 0}">
  108. <!-- <image
  109. src="https://codefun-proj-user-res-1256085488.cos.ap-guangzhou.myqcloud.com/62677e395a7e3f03107ffc5f/62677e4a35a7e10011e93a80/16509497754868753243.png"
  110. class="image_17" /> -->
  111. <text class="qxk-iconfont qxk-icon-mulu lf-font-40"></text>
  112. <text class="text_17">全面评级</text>
  113. </view>
  114. <view class="flex-col items-center grid-item_1" @click="rateIndex = 1" :class="{'grid-item-active': rateIndex == 1}">
  115. <text class="qxk-iconfont qxk-icon-xinwen-moren lf-font-40"></text>
  116. <text class="text_9">卡品评级</text>
  117. </view>
  118. <view class="grid-item_2 flex-col items-center" @click="rateIndex = 2" :class="{'grid-item-active': rateIndex == 2}">
  119. <text class="qxk-iconfont qxk-icon-tuwenguanli lf-font-40"></text>
  120. <text class="text_19">签名评级</text>
  121. </view>
  122. <view class="grid-item_2 flex-col items-center" @click="rateIndex = 3" :class="{'grid-item-active': rateIndex == 3}">
  123. <text class="qxk-iconfont qxk-icon-kefujiqirenbeifen lf-font-40"></text>
  124. <text class="text_19">套壳服务</text>
  125. </view>
  126. </view>
  127. <view class="flex-col group_11">
  128. <view class="justify-between group_12">
  129. <view class="flex-row">
  130. <checkbox-group @change="e => isConsentAgreement = !isConsentAgreement">
  131. <checkbox color="#e6a33c" :checked="isConsentAgreement"></checkbox>
  132. </checkbox-group>
  133. <view class="group_14">
  134. <text class="text_22">阅读并同意</text>
  135. <text class="text_23" @click="$url('/packages/article/article?type=grade_agreement')">相关协议</text>
  136. </view>
  137. </view>
  138. <text class="text_24">45/</text>
  139. </view>
  140. <view class="flex-col items-center button" @click="nextToGrading">
  141. <text>下一步</text>
  142. </view>
  143. </view>
  144. </view>
  145. <!-- 已评卡 -->
  146. <view class="flex-col section_8" v-if="$isRight(evaluated_order)">
  147. <view class="justify-between group_15" @click="nextToOrder">
  148. <text>已评卡</text>
  149. <image
  150. src="@/static/icon/rightArrow.png"
  151. class="image_8" />
  152. </view>
  153. <view class="flex-row equal-division_1">
  154. <view class="flex-col items-center equal-division-item_3" @click="$url('/packages/sonpingDetail/sonpingDetail?id='+ item.id)" v-for="(item, index) in evaluated_order" :key="index">
  155. <image :src="item.images" class="image_23" mode="aspectFill" />
  156. <text class="text_27">{{ item.title }}</text>
  157. </view>
  158. </view>
  159. </view>
  160. <!-- 评级标准 -->
  161. <view class="justify-between section_9" @click="$url('/pages/ratingCriteria/ratingCriteria')">
  162. <text>评级标准/卡砖设计</text>
  163. <image
  164. src="@/static/icon/rightArrow.png"
  165. class="image_8" />
  166. </view>
  167. </view>
  168. </view>
  169. </view>
  170. </view>
  171. </template>
  172. <script>
  173. import lfHeader from '@/components/lf-header.vue';
  174. import { my } from '@/service/index.js';
  175. export default {
  176. components: {
  177. lfHeader
  178. },
  179. data() {
  180. return {
  181. isConsentAgreement: false,
  182. rateIndex: 0,
  183. user: {},
  184. dots: {},
  185. evaluated_order: []
  186. };
  187. },
  188. onLoad(){
  189. this.getUserCenterDetail();
  190. },
  191. methods: {
  192. async getUserCenterDetail(){
  193. let res = await my();
  194. this.user = res.data.datas.user;
  195. this.dots = res.data.datas.dots;
  196. this.evaluated_order = res.data.datas.evaluated_order;
  197. },
  198. nextToGrading(){
  199. if(!this.isConsentAgreement) return this.$msg('请先阅读并同意协议');
  200. if(this.$isRight(this.user)){
  201. this.$url('/pages/write/baseInfo');
  202. }else{
  203. this.$url('/pages/login/login');
  204. }
  205. },
  206. nextToOrder(current){
  207. if(this.$isRight(this.user)){
  208. let url = '/pages/order/order';
  209. if(this.$valueType(current) === 'number'){
  210. url += '?current='+ current;
  211. }
  212. this.$url(url);
  213. }else{
  214. this.$url('/pages/login/login');
  215. }
  216. },
  217. nextToSettings(){
  218. if(this.$isRight(this.user)){
  219. this.$url('/pages/settings/settings');
  220. }else{
  221. // this.$url('/pages/login/login', {type: 'redirect'})
  222. this.$url('/pages/login/login');
  223. }
  224. }
  225. }
  226. };
  227. </script>
  228. <style scoped lang="scss">
  229. .header-nav{
  230. text-align: center;
  231. position: relative;
  232. width: 720rpx;
  233. display: flex;
  234. justify-content: center;
  235. .searchIcon{
  236. position: absolute;
  237. left: 0;
  238. top: 6rpx;
  239. width: 38rpx;
  240. height: 36rpx;
  241. z-index: 999999;
  242. }
  243. }
  244. .bottom-group {
  245. position: relative;
  246. }
  247. .section_4 {
  248. margin-top: 30rpx;
  249. padding: 40rpx 32rpx;
  250. background-color: rgb(255, 255, 255);
  251. }
  252. .image_8 {
  253. width: 44rpx;
  254. height: 44rpx;
  255. }
  256. .equal-division-item {
  257. width: 84rpx;
  258. }
  259. .grid-item_2 {
  260. color: rgb(51, 51, 51);
  261. font-size: 28rpx;
  262. font-weight: 500;
  263. line-height: 40rpx;
  264. white-space: nowrap;
  265. padding: 28rpx 0 24rpx;
  266. border-radius: 10rpx;
  267. border: solid 2rpx rgb(195, 195, 195);
  268. }
  269. .top-group {
  270. color: rgb(255, 255, 255);
  271. font-size: 24rpx;
  272. font-weight: 500;
  273. line-height: 26rpx;
  274. white-space: nowrap;
  275. padding-top: 2rpx;
  276. position: relative;
  277. }
  278. .image_11 {
  279. width: 60rpx;
  280. height: 60rpx;
  281. }
  282. .image_17 {
  283. width: 50rpx;
  284. height: 50rpx;
  285. }
  286. .image_23 {
  287. border-radius: 10rpx;
  288. width: 200rpx;
  289. height: 240rpx;
  290. }
  291. .right-group {
  292. color: rgb(153, 153, 153);
  293. font-size: 28rpx;
  294. font-weight: 500;
  295. line-height: 40rpx;
  296. white-space: nowrap;
  297. }
  298. .text_7 {
  299. margin-top: 12rpx;
  300. color: rgb(85, 85, 85);
  301. font-size: 28rpx;
  302. font-weight: 500;
  303. line-height: 40rpx;
  304. white-space: nowrap;
  305. }
  306. .text_9 {
  307. margin-top: 14rpx;
  308. }
  309. .text_19 {
  310. margin-top: 14rpx;
  311. }
  312. .page {
  313. background-color: #f6f6f6;
  314. width: 100%;
  315. overflow-y: auto;
  316. height: 100%;
  317. }
  318. .group_3 {
  319. padding-bottom: 2024rpx;
  320. flex: 1 1 auto;
  321. overflow-y: auto;
  322. position: relative;
  323. }
  324. .image_6 {
  325. width: 100vw;
  326. height: 1vw;
  327. }
  328. .section_2 {
  329. padding-bottom: 14rpx;
  330. background-color: rgb(246, 246, 246);
  331. top: 0;
  332. right: 0;
  333. bottom: 0;
  334. left: 0;
  335. position: absolute;
  336. }
  337. .section_3 {
  338. padding: 40rpx 0 38rpx;
  339. background-color: rgb(255, 255, 255);
  340. }
  341. .section_8 {
  342. margin-top: 30rpx;
  343. padding: 40rpx 0;
  344. background-color: rgb(255, 255, 255);
  345. }
  346. .section_9 {
  347. margin-top: 30rpx;
  348. padding: 40rpx 32rpx 30rpx;
  349. color: rgb(51, 51, 51);
  350. font-size: 32rpx;
  351. font-weight: 700;
  352. line-height: 44rpx;
  353. white-space: nowrap;
  354. background-color: rgb(255, 255, 255);
  355. }
  356. .view_3 {
  357. color: rgb(255, 255, 255);
  358. font-size: 24rpx;
  359. font-weight: 500;
  360. line-height: 34rpx;
  361. white-space: nowrap;
  362. }
  363. .group_5 {
  364. margin-top: 20rpx;
  365. color: rgb(51, 51, 51);
  366. font-size: 34rpx;
  367. font-weight: 600;
  368. line-height: 48rpx;
  369. white-space: nowrap;
  370. }
  371. .equal-division {
  372. margin: 36rpx 28rpx 0;
  373. }
  374. .group_9 {
  375. padding-left: 2rpx;
  376. }
  377. .grid {
  378. margin-top: 40rpx;
  379. height: 340rpx;
  380. display: grid;
  381. grid-template-columns: repeat(2, 1fr);
  382. grid-row-gap: 22rpx;
  383. grid-column-gap: 24rpx;
  384. }
  385. .group_11 {
  386. margin-top: 40rpx;
  387. }
  388. .group_15 {
  389. padding: 0 32rpx;
  390. color: rgb(51, 51, 51);
  391. font-size: 32rpx;
  392. font-weight: 700;
  393. line-height: 44rpx;
  394. white-space: nowrap;
  395. }
  396. .equal-division_1 {
  397. margin-top: 40rpx;
  398. padding: 0 32rpx;
  399. color: rgb(51, 51, 51);
  400. font-size: 28rpx;
  401. font-weight: 500;
  402. line-height: 40rpx;
  403. white-space: nowrap;
  404. }
  405. .image-wrapper {
  406. padding-top: 72rpx;
  407. width: 112rpx;
  408. position: relative;
  409. .avatar{
  410. position: absolute;
  411. top: 0;
  412. left: 0;
  413. width: 100%;
  414. height: 100%;
  415. border-radius: 50%;
  416. }
  417. }
  418. .badge {
  419. background-color: rgb(234, 43, 43);
  420. border-radius: 17rpx;
  421. min-width: 34rpx;
  422. position: absolute;
  423. // right: 284rpx;
  424. left: 78rpx;
  425. top: 0;
  426. }
  427. .text_4 {
  428. color: rgb(51, 51, 51);
  429. font-size: 32rpx;
  430. font-weight: 700;
  431. line-height: 44rpx;
  432. white-space: nowrap;
  433. }
  434. .equal-division-item_1 {
  435. color: rgb(85, 85, 85);
  436. font-size: 28rpx;
  437. font-weight: 500;
  438. line-height: 40rpx;
  439. white-space: nowrap;
  440. }
  441. .equal-division-item_2 {
  442. padding-top: 2rpx;
  443. color: rgb(85, 85, 85);
  444. font-size: 28rpx;
  445. font-weight: 500;
  446. line-height: 40rpx;
  447. white-space: nowrap;
  448. }
  449. .group_10 {
  450. white-space: nowrap;
  451. height: 44rpx;
  452. }
  453. .grid-item {
  454. padding: 22rpx 0 30rpx;
  455. color: rgb(231, 162, 63);
  456. font-size: 28rpx;
  457. font-weight: 500;
  458. line-height: 40rpx;
  459. white-space: nowrap;
  460. border-radius: 10rpx;
  461. border: solid 2rpx rgb(231, 162, 63);
  462. }
  463. .grid-item-active{
  464. color: rgb(231, 162, 63) !important;
  465. border: solid 2rpx rgb(231, 162, 63) !important;
  466. }
  467. .grid-item_1 {
  468. padding: 22rpx 0 30rpx;
  469. color: rgb(51, 51, 51);
  470. font-size: 28rpx;
  471. font-weight: 500;
  472. line-height: 40rpx;
  473. white-space: nowrap;
  474. border-radius: 10rpx;
  475. border: solid 2rpx rgb(195, 195, 195);
  476. }
  477. .group_12 {
  478. padding-bottom: 20rpx;
  479. }
  480. .button {
  481. padding: 26rpx 0;
  482. color: rgb(255, 255, 255);
  483. font-size: 32rpx;
  484. font-weight: 600;
  485. line-height: 44rpx;
  486. white-space: nowrap;
  487. background-color: rgb(231, 162, 63);
  488. border-radius: 10rpx;
  489. }
  490. .equal-division-item_3 {
  491. // flex: 1 1 244rpx;
  492. align-items: flex-start;
  493. margin-right: 42rpx;
  494. &:nth-child(3n){
  495. margin-right: 0rpx;
  496. }
  497. }
  498. .equal-division-item_4 {
  499. flex: 1 1 244rpx;
  500. }
  501. .equal-division-item_5 {
  502. flex: 1 1 244rpx;
  503. }
  504. .image_7 {
  505. margin-right: 12rpx;
  506. border-radius: 50%;
  507. width: 40rpx;
  508. height: 40rpx;
  509. position: relative;
  510. z-index: 99;
  511. }
  512. .text_11 {
  513. margin-top: 12rpx;
  514. }
  515. .text_14 {
  516. color: rgb(51, 51, 51);
  517. font-size: 32rpx;
  518. font-weight: 700;
  519. line-height: 44rpx;
  520. }
  521. .text_15 {
  522. color: rgb(119, 119, 119);
  523. font-size: 24rpx;
  524. font-weight: 500;
  525. line-height: 34rpx;
  526. }
  527. .text_17 {
  528. margin-top: 14rpx;
  529. }
  530. .text_24 {
  531. color: rgb(119, 119, 119);
  532. font-size: 28rpx;
  533. line-height: 40rpx;
  534. white-space: nowrap;
  535. }
  536. .text_27 {
  537. margin-top: 10rpx;
  538. }
  539. .text_28 {
  540. margin-top: 10rpx;
  541. }
  542. .text_29 {
  543. margin-top: 10rpx;
  544. }
  545. .badge_1 {
  546. background-color: rgb(234, 43, 43);
  547. border-radius: 13rpx;
  548. min-width: 26rpx;
  549. position: absolute;
  550. right: 6rpx;
  551. top: 0;
  552. }
  553. .badge_2 {
  554. background-color: rgb(234, 43, 43);
  555. border-radius: 13rpx;
  556. width: 26rpx;
  557. position: absolute;
  558. right: 0;
  559. top: 0;
  560. }
  561. .section_7 {
  562. border-radius: 50%;
  563. width: 40rpx;
  564. height: 40rpx;
  565. border: solid 2rpx rgb(195, 195, 195);
  566. }
  567. .group_14 {
  568. margin-left: 14rpx;
  569. white-space: nowrap;
  570. height: 40rpx;
  571. }
  572. .text_22 {
  573. color: rgb(119, 119, 119);
  574. font-size: 28rpx;
  575. line-height: 40rpx;
  576. }
  577. .text_23 {
  578. color: rgb(209, 161, 28);
  579. font-size: 28rpx;
  580. line-height: 40rpx;
  581. }
  582. .user-name{
  583. max-width: 360rpx;
  584. white-space:nowrap;
  585. overflow:hidden;
  586. text-overflow:ellipsis;
  587. }
  588. /deep/checkbox .wx-checkbox-input {
  589. border-radius: 50% !important;
  590. }
  591. </style>