user.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838
  1. <template>
  2. <view class="container">
  3. <view class="user-section">
  4. <view class="bg">
  5. <image class="bg_ware" src="https://moyv.top/wechat/images/bg_wave.gif"></image>
  6. </view>
  7. <view class="user-info-box">
  8. <view class="portrait-box">
  9. <image v-if="userInfo" class="portrait" :src="userInfo.avatarUrl"></image>
  10. <u-avatar v-else class="portrait" text=""></u-avatar>
  11. </view>
  12. <view class="info-box">
  13. <view @click="toLogin" class="username">{{hasLogin? (userInfo.nickname || '点击设置昵称') : '立即登录' }}</view>
  14. </view>
  15. <view class="qr-wrap">
  16. <text class="cuIcon-qrcode" @click="qrClick(userInfo)"></text>
  17. </view>
  18. </view>
  19. </view>
  20. <view
  21. class="cover-container"
  22. >
  23. <!-- :style="[{
  24. transform: coverTransform,
  25. transition: coverTransition
  26. }]"
  27. @touchstart="coverTouchstart"
  28. @touchmove="coverTouchmove"
  29. @touchend="coverTouchend" -->
  30. <!-- <image class="arc" src="/static/arc.png"></image> -->
  31. <!-- 列表 -->
  32. <view class="cu-list menu text-left solid-top">
  33. <view class='cu-item' @click='myAccount'>
  34. <view>
  35. <text class="cuIcon-sponsor icon text-grey"></text>
  36. <text class="text-grey">我的名头</text>
  37. </view>
  38. <view class = 'tip_text cuIcon-right' ></view>
  39. </view>
  40. <view class="cu-item" v-for="(item, index) in gridList" v-if="item.show" :key="index" @click="gridClick(item, index)" hover-class="common-hover" :hover-stay-time="50">
  41. <view>
  42. <text :class="item.icon" class="grid_icon icon text-grey"></text>
  43. <text class="text-grey">{{item.name}}</text>
  44. </view>
  45. <view>
  46. <text v-if='item.num==4&&taskTip' class='badge_user'>{{taskTip}}</text>
  47. <text v-if='item.num==2&&contractTip' class='badge_user'>{{contractTip}}</text>
  48. <text class = 'tip_text cuIcon-right' ></text>
  49. </view>
  50. </view>
  51. <view class='cu-item' @click='scanCode'>
  52. <view>
  53. <text class="cuIcon-scan icon text-grey"></text>
  54. <text class="text-grey">扫一扫</text>
  55. </view>
  56. <view class = 'tip_text cuIcon-right' ></view>
  57. </view>
  58. </view>
  59. <view style='text-align:center;'>
  60. <navigator url="/pages/sale/webview?can_share=false&url=https://liangxin.zthymaoyi.com/userAgreement.html" class="path" hover-class="navigator-hover">《服务协议》</navigator>|<navigator url="/pages/sale/webview?can_share=false&url=https://liangxin.zthymaoyi.com/screctAgreement.html"
  61. class="path" hover-class="navigator-hover">《隐私政策》</navigator>
  62. </view>
  63. </view>
  64. <neil-modal
  65. :show="inputShow"
  66. @close="cancel"
  67. :style="{display:inputStatus}"
  68. title="点击按钮开启客服对话"
  69. showCancel="true"
  70. >
  71. <!-- <input v-model="inputContent" style="margin:20upx;" placeholder="请输入昵称" /> -->
  72. <button open-type='contact' class="margin:20upx;bg-green">
  73. <text class="cuIcon-phone">联系我们</text>
  74. </button>
  75. </neil-modal>
  76. <!-- <view class="cu-bar tabbar bg-white shadow foot">
  77. <view :class="PageCur=='sale'?'action text-pink':'action text-gray'" @click="NavChange" data-cur="sale">
  78. <view><image style='width:21px;height:23px;' :src="PageCur=='sale'?'https://taohaoliang.oss-cn-beijing.aliyuncs.com/tmp/zixun_check.png':'https://taohaoliang.oss-cn-beijing.aliyuncs.com/tmp/zixun.png'"></image></view> 资讯
  79. </view>
  80. <view :class="PageCur=='buy'?'action text-pink':'action text-gray'" @click="NavChange" data-cur="buy">
  81. <view><image style='width:25px;height:25px;' :src="PageCur=='buy'?'https://taohaoliang.oss-cn-beijing.aliyuncs.com/tmp/jiaoyi_check.png':'https://taohaoliang.oss-cn-beijing.aliyuncs.com/tmp/jiaoyi.png'"></image></view>交易
  82. </view>
  83. <view :class="PageCur=='trust'?'action text-pink add-action':'action text-gray add-action'" @click="NavChange"
  84. data-cur="trust">
  85. <button :class="PageCur=='trust'?'cuIcon-group':'cu-btn cuIcon-group bg-white '">
  86. <view v-if="liangxinTip" class="cu-tag badge">{{liangxinTip}}</view>
  87. </button>
  88. 粮信
  89. </view>
  90. <view v-if="showTran" :class="PageCur=='tran'?'action text-pink':'action text-gray'" @click="NavChange" data-cur="tran">
  91. <view><image style='width:25px;height:20px;' :src="PageCur=='tran'?'https://taohaoliang.oss-cn-beijing.aliyuncs.com/tmp/wuliu_check.png':'https://taohaoliang.oss-cn-beijing.aliyuncs.com/tmp/wuliu.png'"></image></view> 物流
  92. </view>
  93. <view :class="PageCur=='my'?'action text-pink':'action text-gray'" @click="NavChange" data-cur="my">
  94. <view>
  95. <view v-if="myTip" class="cu-tag badge">{{myTip}}</view>
  96. <image style='width:21px;height:21px;' :src="PageCur=='my'?'https://taohaoliang.oss-cn-beijing.aliyuncs.com/tmp/wode_check.png':'https://taohaoliang.oss-cn-beijing.aliyuncs.com/tmp/wode.png'"></image>
  97. </view>
  98. 我的
  99. </view>
  100. </view> -->
  101. <!-- <drag-button
  102. :isDock="true"
  103. :existTabBar="true"
  104. text="直播"
  105. location="100"
  106. icon='cuIcon-roundadd'
  107. @btnClick="zhibo"
  108. />
  109. <drag-button
  110. :isDock="true"
  111. :existTabBar="true"
  112. text="观看"
  113. location="40"
  114. icon='cuIcon-roundadd'
  115. @btnClick="look"
  116. /> -->
  117. <u-tabbar v-model="current" :list="listTab" :mid-button="true"></u-tabbar>
  118. </view>
  119. </template>
  120. <script>
  121. import dragButton from "@/components/drag-button/drag-button.vue";
  122. import neilModal from '@/components/neil-modal/neil-modal.vue';
  123. import {
  124. mapState
  125. } from 'vuex';
  126. let startY = 0, moveY = 0, pageAtTop = true;
  127. export default {
  128. components: {
  129. neilModal,
  130. dragButton
  131. },
  132. data(){
  133. return {
  134. inputShow: false,
  135. modalName:'',
  136. mycarStyle:'',
  137. feild: undefined,
  138. inputContent: '',
  139. PageCur: "my",
  140. coverTransform: 'translateY(0px)',
  141. coverTransition: '0s',
  142. moving: false,
  143. footprintList: [],
  144. isVip: false,
  145. userInfoTmp:[],
  146. inputStatus:'none',
  147. carInfo:[],
  148. gridList: [
  149. {
  150. num:0,
  151. name: '货源信息',
  152. icon:'cuIcon-apps',
  153. tips: 0,
  154. url:'/pages/tran/my_tran?TabCur=0',
  155. show:true
  156. },
  157. {
  158. num:1,
  159. name: '承运信息',
  160. icon:'cuIcon-calendar',
  161. tips: 0,
  162. url:'/pages/tran/my_tran?TabCur=1',
  163. show:true
  164. },
  165. {
  166. num:2,
  167. name: '我的合同',
  168. icon:'cuIcon-copy',
  169. tips: 0,
  170. url:'/pageB/contract/contract',
  171. show:true
  172. },
  173. {
  174. num:3,
  175. name: '消息列表',
  176. icon:'cuIcon-news',
  177. tips: 0,
  178. url:'/pages/user/message',
  179. show:true
  180. },
  181. {
  182. num:4,
  183. name: '任务中心',
  184. icon:'cuIcon-copy',
  185. tips: 0,
  186. url:`/pages/user/task`,
  187. show:true
  188. },
  189. {
  190. num:5,
  191. name: '我的车辆',
  192. icon:'cuIcon-deliver',
  193. tips: 0,
  194. url:'',
  195. show:true
  196. },
  197. {
  198. num:6,
  199. name: '联系我们',
  200. icon:'cuIcon-phone',
  201. tips: 0,
  202. url:'/pages/user/contact',
  203. show:true
  204. },
  205. {
  206. num:7,
  207. name: '退出登录',
  208. icon:'cuIcon-exit',
  209. tips: 0,
  210. url:'',
  211. show:true
  212. },
  213. ],
  214. showTran:true,
  215. companyId:1,
  216. listTab: [
  217. {
  218. iconPath: "https://taohaoliang.oss-cn-beijing.aliyuncs.com/tmp/zixun.png",
  219. selectedIconPath: "https://taohaoliang.oss-cn-beijing.aliyuncs.com/tmp/zixun_check.png",
  220. text: '资讯',
  221. count: 0 ,
  222. isDot: true,
  223. customIcon: false,
  224. pagePath:'/pages/sale/information'
  225. },
  226. {
  227. iconPath: "https://taohaoliang.oss-cn-beijing.aliyuncs.com/tmp/jiaoyi.png",
  228. selectedIconPath: "https://taohaoliang.oss-cn-beijing.aliyuncs.com/tmp/jiaoyi_check.png",
  229. text: '交易',
  230. customIcon: false,
  231. pagePath:'/pages/buy/transaction'
  232. },
  233. {
  234. iconPath: "chat",
  235. selectedIconPath: "chat",
  236. text: '粮信',
  237. midButton: true,
  238. customIcon: false,
  239. // pagePath:'/pages/home/home'
  240. },
  241. {
  242. iconPath: "https://taohaoliang.oss-cn-beijing.aliyuncs.com/tmp/wuliu.png",
  243. selectedIconPath: "https://taohaoliang.oss-cn-beijing.aliyuncs.com/tmp/wuliu_check.png",
  244. text: '物流',
  245. customIcon: false,
  246. pagePath:'/pages/tran/tran'
  247. },
  248. {
  249. iconPath: "https://taohaoliang.oss-cn-beijing.aliyuncs.com/tmp/wode.png",
  250. selectedIconPath: "https://taohaoliang.oss-cn-beijing.aliyuncs.com/tmp/wode_check.png",
  251. text: '我的',
  252. count: this.myTip,
  253. isDot: false,
  254. customIcon: false,
  255. pagePath:'/pages/user/user'
  256. },
  257. ],
  258. current: 3
  259. }
  260. },
  261. onShow() {
  262. console.log('myTip',this.myTip)
  263. uni.hideTabBar()
  264. this.loadData()
  265. },
  266. onLoad(){
  267. uni.hideTabBar()
  268. },
  269. // #ifndef MP
  270. onNavigationBarButtonTap(e) {
  271. const index = e.index;
  272. if (index === 0) {
  273. this.navTo('/pages/set/set');
  274. }else if(index === 1){
  275. // #ifdef APP-PLUS
  276. const pages = getCurrentPages();
  277. const page = pages[pages.length - 1];
  278. const currentWebview = page.$getAppWebview();
  279. currentWebview.hideTitleNViewButtonRedDot({
  280. index
  281. });
  282. // #endif
  283. uni.navigateTo({
  284. url: '/pages/notice/notice'
  285. })
  286. }
  287. },
  288. // #endif
  289. computed: {
  290. ...mapState(['hasLogin','userInfo'])
  291. },
  292. methods: {
  293. zhibo() {
  294. uni.navigateTo({
  295. url: `/pageB/video/broadcast`
  296. })
  297. },
  298. look() {
  299. uni.navigateTo({
  300. url: `/pageB/video/look`
  301. })
  302. },
  303. contactUs() {
  304. const that = this
  305. uni.makePhoneCall({
  306. // 手机号
  307. phoneNumber: '18241771147',
  308. // 成功回调
  309. success: (res) => {
  310. },
  311. // 失败回调
  312. fail: (res) => {
  313. }
  314. });
  315. },
  316. NavChange: function(e) {
  317. var preCur = this.PageCur
  318. this.PageCur = e.currentTarget.dataset.cur
  319. uni.setStorageSync('PageCur', this.PageCur);
  320. switch (this.PageCur) {
  321. case "sale":
  322. // uni.navigateTo({
  323. // url: '/pages/sale/information'
  324. // });
  325. uni.switchTab({
  326. url: '/pages/sale/information'
  327. });
  328. break;
  329. case "buy":
  330. uni.switchTab({
  331. url: '/pages/buy/transaction'
  332. });
  333. break;
  334. case "tran":
  335. uni.switchTab({
  336. url: '/pages/tran/tran'
  337. });
  338. break;
  339. case "trust":
  340. uni.setTabBarItem({
  341. index: 0,
  342. pagePath:'pages/home/home'
  343. })
  344. uni.switchTab({
  345. url: '/pages/home/home'
  346. });
  347. break;
  348. case "my":
  349. uni.switchTab({
  350. url: '/pages/user/user'
  351. });
  352. break;
  353. };
  354. },
  355. loadData(){
  356. const that = this
  357. if(uni.getStorageSync("PageCur")){
  358. that.PageCur = uni.getStorageSync("PageCur");
  359. }
  360. that.userInfoTmp = uni.getStorageSync("userInfo")
  361. uni.showLoading({
  362. title: '正在加载'
  363. })
  364. that.$api.request('integral', 'getIndexData', failres => {
  365. that.$api.msg(failres.errmsg)
  366. uni.hideLoading()
  367. }).then(res => {
  368. let data = res.data
  369. uni.setStorageSync("message", data.message);
  370. uni.setStorageSync("task", data.task);
  371. uni.setStorageSync("contract", data.contract);
  372. uni.setStorageSync('showTran', data.showTran);
  373. that.showTran = data.showTran
  374. that.gridList[4].tips = data.task
  375. that.gridList[2].tips = data.contract
  376. that.companyId = data.companyId
  377. uni.hideLoading()
  378. })
  379. },
  380. gridClick (item, index) {
  381. var that = this
  382. if(item.name == "退出登录"){
  383. this.logout()
  384. return;
  385. }
  386. else if(item.name == "联系我们"){
  387. //#ifdef MP
  388. this.inputShow = true
  389. this.inputStatus = 'inline'
  390. this.feild = "nickname"
  391. this.inputContent = ''
  392. //#endif
  393. //#ifdef APP-PLUS
  394. this.contactUs()
  395. //#endif
  396. return;
  397. }
  398. else if(item.name == '我的车辆'){
  399. const that = this
  400. uni.showLoading({
  401. title: '正在加载'
  402. })
  403. that.$api.request('tran', 'getMyCarList', failres => {
  404. that.$api.msg(failres.errmsg)
  405. uni.hideLoading()
  406. }).then(res => {
  407. that.carInfo = res.data
  408. if(that.carInfo.length == 0){
  409. that.$api.msg('暂无车辆信息')
  410. }
  411. else{
  412. var height = that.carInfo.length * 100
  413. var width = 500
  414. that.mycarStyle = "height:"+height+"rpx;width:" + width+"rpx"
  415. that.modalName = 'MycarModal'
  416. }
  417. uni.hideLoading()
  418. })
  419. return;
  420. }
  421. if(item.url){
  422. uni.navigateTo({
  423. url: item.url+`?companyId=${that.companyId}`
  424. })
  425. }
  426. },
  427. toLogin() {
  428. if (!this.hasLogin) {
  429. uni.navigateTo({
  430. url: '/pages/public/login'
  431. })
  432. }
  433. else if(!this.userInfo.nickname){
  434. this.inputShow = true
  435. this.inputStatus = 'inline'
  436. this.feild = "nickname"
  437. this.inputContent = ''
  438. }
  439. },
  440. confirm() {
  441. const that = this
  442. if (!that.inputContent) {
  443. that.$api.msg('输入不能为空')
  444. return
  445. }
  446. let obj = {}
  447. obj[that.feild] = that.inputContent
  448. that.$api.request('user', 'syncUserInfo', obj).then(res => {
  449. that.userInfo.nickname = that.inputContent
  450. that.inputContent = ''
  451. that.$store.commit('login', that.userInfo)
  452. })
  453. },
  454. cancel() {
  455. this.inputShow = false
  456. this.inputStatus = 'none'
  457. this.genderShow = false
  458. },
  459. myAccount(){
  460. uni.navigateTo({
  461. url: `/pageA/pages/contract`
  462. })
  463. },
  464. logout() {
  465. const that = this
  466. uni.showModal({
  467. title: '询问',
  468. content: '您确定要退出吗?',
  469. cancelText: '取消',
  470. confirmText: '确定',
  471. success: (e) => {
  472. if (e.confirm) {
  473. uni.clearStorageSync();
  474. that.$store.commit('logout')
  475. that.$api.logout()
  476. }
  477. }
  478. })
  479. },
  480. /**
  481. * 统一跳转接口,拦截未登录路由
  482. * navigator标签现在默认没有转场动画,所以用view
  483. */
  484. navTo(url){
  485. if(!this.hasLogin){
  486. url = '/pages/public/login';
  487. }
  488. uni.navigateTo({
  489. url
  490. })
  491. },
  492. mycarClick(carNo){
  493. this.modalName = null
  494. uni.navigateTo({
  495. url: `/pageB/car/mycar_detail?carNo=${carNo}`
  496. })
  497. },
  498. qrClick(userInfo){
  499. this.modalName = null
  500. uni.navigateTo({
  501. url: `/pages/user/qr`
  502. })
  503. },
  504. scanCode(){
  505. uni.scanCode({
  506. success: function (res) {
  507. uni.navigateTo({
  508. url: res.result
  509. })
  510. }
  511. })
  512. },
  513. hideModal(e) {
  514. this.modalName = null
  515. },
  516. }
  517. }
  518. </script>
  519. <style lang='scss' scoped>
  520. .cu-tag.badge {
  521. right: 26rpx;
  522. }
  523. .path {
  524. color: #007aff;
  525. display: inline-block;
  526. text-align: center;
  527. }
  528. .icon{
  529. margin-right:10rpx;
  530. }
  531. .portrait-box{
  532. margin-top:20rpx;
  533. }
  534. .qr-wrap{
  535. margin-top:20upx;
  536. color:#fff;
  537. font-size: 32rpx;
  538. }
  539. .cu-list{
  540. /* height: 483rpx;
  541. overflow-y: scroll; */
  542. margin-top: 42rpx;
  543. margin-bottom:80rpx;
  544. }
  545. .badge_user{
  546. color: #fff;
  547. background-color: #dc3545;
  548. display: inline-block;
  549. padding: .25em .4em;
  550. font-size: 75%;
  551. font-weight: 700;
  552. line-height: 1;
  553. text-align: center;
  554. white-space: nowrap;
  555. vertical-align: top;
  556. border-radius: 50%;
  557. transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;
  558. }
  559. @keyframes move_wave {
  560. 0% {
  561. transform: translateX(0) translateZ(0) scaleY(1)
  562. }
  563. 50% {
  564. transform: translateX(-25%) translateZ(0) scaleY(0.55)
  565. }
  566. 100% {
  567. transform: translateX(-50%) translateZ(0) scaleY(1)
  568. }
  569. }
  570. .bg {
  571. position: relative;
  572. height:300rpx;
  573. /* background: linear-gradient(to bottom, #56ccf2, #2f80ed); */
  574. /*background: linear-gradient(to bottom, #0be9fe, #4bb0fe); */
  575. background: linear-gradient(to bottom, #d5f8ff, #56ccf2);
  576. }
  577. .bg_ware {
  578. position: absolute;
  579. left: 0;
  580. bottom: -2rpx;
  581. width: 100%;
  582. mix-blend-mode: screen;
  583. height: 224rpx;
  584. }
  585. %flex-center {
  586. display:flex;
  587. flex-direction: column;
  588. justify-content: center;
  589. align-items: center;
  590. }
  591. %section {
  592. display:flex;
  593. justify-content: space-around;
  594. align-content: center;
  595. background: #fff;
  596. border-radius: 10upx;
  597. }
  598. .grid-item-box {
  599. flex: 1;
  600. /* position: relative;
  601. */
  602. /* #ifndef APP-NVUE */
  603. display: flex;
  604. /* #endif */
  605. flex-direction: column;
  606. align-items: center;
  607. justify-content: center;
  608. padding: 15px 0;
  609. }
  610. .image {
  611. width: 80rpx;
  612. height: 80rpx;
  613. }
  614. .text {
  615. font-size: 26rpx;
  616. margin-top: 10rpx;
  617. }
  618. .user-section{
  619. height: 520upx;
  620. padding: 100upx 30upx 0;
  621. position:relative;
  622. .bg{
  623. position:absolute;
  624. left: 0;
  625. top: 0;
  626. width: 100%;
  627. height: 100%;
  628. filter: blur(1px);
  629. box-shadow: 0px 1px 8px #ccc;
  630. /* background:linear-gradient(#0eb0c9,#126bae); */
  631. /* opacity: .7; */
  632. }
  633. }
  634. .user-info-box{
  635. height: 180upx;
  636. /* display:flex; */
  637. /* align-items:center; */
  638. text-align:center;
  639. position:relative;
  640. z-index: 1;
  641. .portrait{
  642. width: 130upx;
  643. height: 130upx;
  644. border:5upx solid #fff;
  645. border-radius: 50%;
  646. }
  647. .username{
  648. font-size: $font-lg + 3upx;
  649. color: #fff;
  650. margin-top: 20upx;
  651. }
  652. }
  653. .vip-card-box{
  654. display:flex;
  655. flex-direction: column;
  656. color: #f7d680;
  657. height: 240upx;
  658. background: linear-gradient(left, rgba(0,0,0,.7), rgba(0,0,0,.8));
  659. border-radius: 16upx 16upx 0 0;
  660. overflow: hidden;
  661. position: relative;
  662. padding: 20upx 24upx;
  663. .card-bg{
  664. position:absolute;
  665. top: 20upx;
  666. right: 0;
  667. width: 380upx;
  668. height: 260upx;
  669. }
  670. .b-btn{
  671. position: absolute;
  672. right: 20upx;
  673. top: 16upx;
  674. width: 132upx;
  675. height: 40upx;
  676. text-align: center;
  677. line-height: 40upx;
  678. font-size: 22upx;
  679. color: #36343c;
  680. border-radius: 20px;
  681. background: linear-gradient(left, #f9e6af, #ffd465);
  682. z-index: 1;
  683. }
  684. .tit{
  685. font-size: $font-base+2upx;
  686. color: #f7d680;
  687. margin-bottom: 28upx;
  688. .yticon{
  689. color: #f6e5a3;
  690. margin-right: 16upx;
  691. }
  692. }
  693. .e-b{
  694. font-size: $font-sm;
  695. color: #d8cba9;
  696. margin-top: 10upx;
  697. }
  698. }
  699. .cover-container{
  700. padding-bottom: 200upx;
  701. .arc{
  702. position:absolute;
  703. left: 0;
  704. top: -34upx;
  705. width: 100%;
  706. height: 36upx;
  707. }
  708. }
  709. .tj-sction{
  710. @extend %section;
  711. .tj-item{
  712. @extend %flex-center;
  713. flex-direction: column;
  714. height: 140upx;
  715. font-size: $font-sm;
  716. color: #75787d;
  717. }
  718. .num{
  719. font-size: $font-lg;
  720. color: $font-color-dark;
  721. margin-bottom: 8upx;
  722. }
  723. }
  724. .order-section{
  725. @extend %section;
  726. padding: 28upx 0;
  727. margin-top: 20upx;
  728. .order-item{
  729. @extend %flex-center;
  730. width: 120upx;
  731. height: 120upx;
  732. border-radius: 10upx;
  733. font-size: $font-sm;
  734. color: $font-color-dark;
  735. }
  736. .yticon{
  737. font-size: 48upx;
  738. margin-bottom: 18upx;
  739. color: #fa436a;
  740. }
  741. .icon-shouhoutuikuan{
  742. font-size:44upx;
  743. }
  744. }
  745. .history-section{
  746. padding: 30upx 0 0;
  747. margin-top: 20upx;
  748. background: #fff;
  749. border-radius:10upx;
  750. .sec-header{
  751. display:flex;
  752. align-items: center;
  753. font-size: $font-base;
  754. color: $font-color-dark;
  755. line-height: 40upx;
  756. margin-left: 30upx;
  757. .yticon{
  758. font-size: 44upx;
  759. color: #5eba8f;
  760. margin-right: 16upx;
  761. line-height: 40upx;
  762. }
  763. }
  764. .h-list{
  765. white-space: nowrap;
  766. padding: 30upx 30upx 0;
  767. image{
  768. display:inline-block;
  769. width: 160upx;
  770. height: 160upx;
  771. margin-right: 20upx;
  772. border-radius: 10upx;
  773. }
  774. }
  775. }
  776. .grid{
  777. display: flex;
  778. align-items: center;
  779. flex-wrap: wrap;
  780. /* border-top: 2upx solid rgba(172,172,172,.2); */
  781. .grid-item-3{
  782. box-sizing: border-box;
  783. width: calc(100% / 3);
  784. border-bottom: 2upx solid rgba(172,172,172,.2);
  785. border-right: 2upx solid rgba(172,172,172,.2);
  786. text-align: center;
  787. padding: 40upx 0;
  788. position: relative;
  789. /* view{
  790. font-size: $font-sm;
  791. margin-top: 16upx;
  792. color: $font-color-dark;
  793. } */
  794. .grid_icon{
  795. font-size: 48upx;
  796. margin-bottom: 18upx;
  797. color: #fa436a;
  798. }
  799. .tip_text{
  800. display: block;
  801. padding: 4upx 8upx;
  802. text-align: center;
  803. border-radius: 36upx;
  804. font-size: 24upx;
  805. background-color: #fa436a;
  806. color: rgba(255,255,255,1);
  807. position: absolute;
  808. right: 6upx;
  809. top: 6upx;
  810. }
  811. }
  812. .grid-item-3:nth-child(3n + 3),.grid-item-4:nth-child(4n + 4){
  813. border-right: none;
  814. }
  815. }
  816. </style>