index.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994
  1. <template>
  2. <view>
  3. <view class="wrap">
  4. <view class='title'>收购业务管理</view>
  5. <view class="cu-list grid" :class="['col-' + gridCol,gridBorder?'':'no-border']">
  6. <view class="cu-item" v-for="(item,index) in gridList" :key="index" @click="gridClick(item, index)"
  7. v-if="index<gridCol*2 && item.show">
  8. <view :class="['cuIcon-' + item.cuIcon,'text-' + item.color]">
  9. <image :src="item.src" class="sign"></image>
  10. </view>
  11. <text>{{item.name}}</text>
  12. </view>
  13. </view>
  14. <!-- 检斤员权限 -->
  15. <!-- isShowAcquisitionInfo -->
  16. <!-- 获取当前用户负责的仓库,如果无仓库隐藏收购信息 -->
  17. <view class="content2" v-if="isShowAcquisitionInfo&&sgId">
  18. <view>收购信息</view>
  19. <view @click="navTo('/pages/erpbusiness/acquisitionInformation?status='+status+'&id='+sgId)">{{status}}>
  20. </view>
  21. </view>
  22. </view>
  23. <!-- <view class="wrap">
  24. <view class='title'>出库管理</view>
  25. <view class="cu-list grid" :class="['col-' + gridCol,gridBorder?'':'no-border']">
  26. <view class="cu-item" v-for="(item,index) in gridList1" :key="index" @click="gridClick(item, index)"
  27. v-if="index<gridCol*2">
  28. <view :class="['cuIcon-' + item.cuIcon,'text-' + item.color]">
  29. <image :src="item.src" class="sign"></image>
  30. </view>
  31. <text>{{item.name}}</text>
  32. </view>
  33. </view>
  34. </view> -->
  35. <u-modal v-model="isShowAlert" :title-style="{fontSize: '18px',fontWeight:'500'}"
  36. :content-style="{fontSize: '14px',fontWeight:'400'}" confirm-color='#22C572' confirm-text='确定' title='温馨提示'
  37. showCancelButton='false' :content="content" @confirm="goOpenService" @cancel="cancelClick"></u-modal>
  38. <u-modal v-model="isShowAlert1" :title-style="{fontSize: '18px',fontWeight:'500'}"
  39. :content-style="{fontSize: '14px',fontWeight:'400'}" confirm-color='#22C572' confirm-text='确定' title='提示'
  40. showCancelButton='false' :content="content1" @confirm="alertBtn1" @cancel="cancelClick1"></u-modal>
  41. </view>
  42. </template>
  43. <script>
  44. import dragButton from "@/components/drag-button/drag-button.vue";
  45. import {
  46. mapState
  47. } from 'vuex';
  48. let startY = 0,
  49. moveY = 0,
  50. pageAtTop = true;
  51. export default {
  52. components: {
  53. dragButton
  54. },
  55. data() {
  56. return {
  57. status: '',
  58. isShowAlert1: false,
  59. content1: '当前登入信息验证失败,是否重新登录?',
  60. isShowAlert: false,
  61. content: '您确定要退出吗?',
  62. a: false,
  63. inputShow: false,
  64. modalName: '',
  65. mycarStyle: '',
  66. feild: undefined,
  67. inputContent: '',
  68. coverTransform: 'translateY(0px)',
  69. coverTransition: '0s',
  70. moving: false,
  71. footprintList: [],
  72. isVip: false,
  73. userInfoTmp: [],
  74. inputStatus: 'none',
  75. carInfo: [],
  76. gridCol: 4,
  77. gridBorder: false,
  78. headUrl: "../../static/img/myimg/YongHu@3x.png",
  79. userphone: "",
  80. username: "请更改昵称",
  81. gridList: [{
  82. num: 0,
  83. name: '邀请用户',
  84. // icon: 'cuIcon-apps',
  85. src: '../../static/img/erp/yaoqingyonghu@3x.png',
  86. tips: 0,
  87. url: '/pages/erpbusiness/QRCode/QRCode',
  88. show: true
  89. },
  90. {
  91. num: 1,
  92. name: '收购质检',
  93. // icon: 'cuIcon-calendar',
  94. src: '../../static/img/erp/shougouzhijian@3x.png',
  95. tips: 0,
  96. url: '/pages/erpbusiness/quality_testing?managementType=1',
  97. show: true
  98. },
  99. {
  100. num: 2,
  101. name: '收购检斤',
  102. // icon: 'cuIcon-copy',
  103. src: '../../static/img/erp/shougoujianjin@3x.png',
  104. tips: 0,
  105. url: '/pages/erpbusiness/acquisitionInspection/acquisitionInspection',
  106. show: true
  107. }
  108. // {
  109. // num: 5,
  110. // name: '设置',
  111. // // icon: 'cuIcon-edit',
  112. // src:'../../static/img/sign/shezhi@2x.png',
  113. // tips: 0,
  114. // url: `/pages/user/setUp`,
  115. // show: true
  116. // }
  117. ],
  118. gridList1: [
  119. // {
  120. // num: 0,
  121. // name: '出库检斤',
  122. // // icon: 'cuIcon-apps',
  123. // src:'../../static/img/erp/chukujianjin@3x.png',
  124. // tips: 0,
  125. // url: '/pages/erpbusiness/acquisitionInspection/warehouseWeighing',
  126. // show: false
  127. // },
  128. {
  129. num: 1,
  130. name: '出库质检',
  131. // icon: 'cuIcon-calendar',
  132. src: '../../static/img/erp/chukuzhijian@3x.png',
  133. tips: 0,
  134. url: '/pages/erpbusiness/quality_testing?managementType=3',
  135. show: true
  136. }
  137. // {
  138. // num: 5,
  139. // name: '设置',
  140. // // icon: 'cuIcon-edit',
  141. // src:'../../static/img/sign/shezhi@2x.png',
  142. // tips: 0,
  143. // url: `/pages/user/setUp`,
  144. // show: true
  145. // }
  146. ],
  147. showTran: true,
  148. companyId: 1,
  149. current: 4,
  150. sgId: ''
  151. }
  152. },
  153. onLoad() {
  154. },
  155. // #ifndef MP
  156. onNavigationBarButtonTap(e) {
  157. const index = e.index;
  158. if (index === 0) {
  159. this.navTo('/pages/set/set');
  160. } else if (index === 1) {
  161. // #ifdef APP-PLUS
  162. const pages = getCurrentPages();
  163. const page = pages[pages.length - 1];
  164. const currentWebview = page.$getAppWebview();
  165. currentWebview.hideTitleNViewButtonRedDot({
  166. index
  167. });
  168. // #endif
  169. uni.navigateTo({
  170. url: '/pages/notice/notice'
  171. })
  172. }
  173. },
  174. // #endif
  175. computed: {
  176. ...mapState(['hasLogin', 'userInfo']),
  177. // 手机号中间4位加*
  178. starUserphone() {
  179. let reg = /^(\d{3})\d{4}(\d{4})$/;
  180. if (this.userphone) {
  181. return this.userphone.replace(reg, "$1****$2");
  182. }
  183. }
  184. },
  185. onShow() {
  186. this.isShow();
  187. uni.hideKeyboard()
  188. uni.showTabBar()
  189. this.loadData()
  190. this.isShowAcquisitionInfo = this.utils.getRoles('acquisitionInfor.view')
  191. this.getStatus()
  192. this.$api.doRequest('get', '/commonUser/api/checkSession').then(res => {
  193. console.log("checkSession", res)
  194. if (res.data.data == "INVALID") {
  195. this.isShowAlert1 = true;
  196. // uni.showModal({
  197. // title: '提示',
  198. // content: '当前登入信息验证失败,是否重新登录?',
  199. // showCancel: true,
  200. // confirmText: '登录',
  201. // success: (e) => {
  202. // if (e.confirm) {
  203. // uni.navigateTo({
  204. // url: '/pages/public/login'
  205. // })
  206. // }
  207. // },
  208. // fail: () => {},
  209. // complete: () => {}
  210. // })
  211. }
  212. })
  213. console.log("hasLogin", this.hasLogin)
  214. if (this.userInfo) {
  215. if (!this.userInfo.avatarUrl) {
  216. this.headUrl = "../../static/img/myimg/YongHu@3x.png"
  217. } else {
  218. this.headUrl = this.userInfo.avatarUrl
  219. }
  220. this.username = this.userInfo.userName
  221. this.userphone = this.userInfo.phone
  222. var that = this
  223. this.$api.doRequest('get', '/notice/query/noticeNumber').then(res => {
  224. console.log("noticeNumber", res)
  225. if (res.data.data) {
  226. let name = 'myTip';
  227. let value = res.data.data.task;
  228. that.$store.commit('$uStore', {
  229. name,
  230. value
  231. });
  232. if (value != 0 && value) {
  233. uni.setTabBarBadge({
  234. index: 4,
  235. text: value + ""
  236. })
  237. }
  238. name = 'taskTip';
  239. value = res.data.data.task;
  240. that.$store.commit('$uStore', {
  241. name,
  242. value
  243. });
  244. // name = 'contractTip';
  245. // value = res.data.data.contractTip;
  246. // that.$store.commit('$uStore', {
  247. // name,
  248. // value
  249. // });
  250. }
  251. })
  252. } else {
  253. this.headUrl = "../../static/img/myimg/YongHu@3x.png"
  254. this.username = "立即登录"
  255. }
  256. console.log("this.userInfo", this.userInfo)
  257. },
  258. methods: {
  259. getStatus() {
  260. let _obj = {
  261. commonId: uni.getStorageSync("userInfo").id,
  262. }
  263. this.$api.doRequest('get', '/acquisitionInfo/getInfo', _obj).then(res => {
  264. if (res.data.code == 200) {
  265. if (res.data.data) {
  266. this.status = res.data.data.status
  267. this.sgId = res.data.data.commonId
  268. } else {
  269. this.status = '已隐藏'
  270. }
  271. }
  272. })
  273. },
  274. alertBtn1() {
  275. uni.navigateTo({
  276. url: '/pages/public/login'
  277. })
  278. },
  279. cancelClick() {
  280. this.isShowAlert = false
  281. },
  282. cancelClick1() {
  283. this.isShowAlert = false
  284. },
  285. goOpenService() {
  286. uni.hideTabBarRedDot({
  287. index: 3
  288. })
  289. uni.clearStorageSync();
  290. this.$store.commit('logout')
  291. this.$api.logout()
  292. uni.navigateTo({
  293. url: `/pages/public/login`
  294. })
  295. },
  296. getRoles: function(role) {
  297. let _roles = uni.getStorageSync('rolesList')
  298. for (let i = 0; i < _roles.length; i++) {
  299. if (_roles[i] == role) {
  300. return true
  301. }
  302. }
  303. return false
  304. },
  305. isShow() {
  306. for (let i = 0; i < this.gridList.length; i++) {
  307. if (i == 1) {
  308. this.gridList[i].show = this.getRoles('acquisitionQuality.view')
  309. } else if (i == 2) {
  310. this.gridList[i].show = this.getRoles('acquisitionWeight.view')
  311. }
  312. }
  313. for (let k = 0; k < this.gridList1.length; k++) {
  314. if (k == 0) {
  315. this.gridList1[k].show = this.getRoles('acquisitionWeightOut.view')
  316. } else if (k == 1) {
  317. this.gridList1[k].show = this.getRoles('acquisitionQualityOut.view')
  318. }
  319. }
  320. },
  321. fankui() {
  322. uni.navigateTo({
  323. url: `/pages/user/fankui`
  324. })
  325. },
  326. zhibo() {
  327. uni.navigateTo({
  328. url: `/pageB/video/broadcast`
  329. })
  330. },
  331. look() {
  332. uni.navigateTo({
  333. url: `/pageB/video/look`
  334. })
  335. },
  336. contactUs() {
  337. const that = this
  338. uni.makePhoneCall({
  339. // 手机号
  340. phoneNumber: '18241771147',
  341. // 成功回调
  342. success: (res) => {},
  343. // 失败回调
  344. fail: (res) => {}
  345. });
  346. },
  347. loadData() {
  348. // const that = this
  349. // if(uni.getStorageSync("PageCur")){
  350. // that.PageCur = uni.getStorageSync("PageCur");
  351. // }
  352. // that.userInfoTmp = uni.getStorageSync("userInfo")
  353. // uni.showLoading({
  354. // title: '正在加载',
  355. // mask:true
  356. // })
  357. // that.$api.request('integral', 'getIndexData', failres => {
  358. // that.$api.msg(failres.errmsg)
  359. // uni.hideLoading()
  360. // }).then(res => {
  361. // let data = res.data
  362. // uni.setStorageSync("message", data.message);
  363. // uni.setStorageSync("task", data.task);
  364. // uni.setStorageSync("contract", data.contract);
  365. // uni.setStorageSync('showTran', data.showTran);
  366. // that.showTran = data.showTran
  367. // that.gridList[4].tips = data.task
  368. // that.gridList[2].tips = data.contract
  369. // that.companyId = data.companyId
  370. // uni.hideLoading()
  371. // })
  372. },
  373. gridClick(item, index) {
  374. var that = this
  375. if (item.name == "退出登录") {
  376. this.logout()
  377. return;
  378. } else if (item.name == "联系我们") {
  379. //#ifdef MP
  380. this.inputShow = true
  381. this.inputStatus = 'inline'
  382. this.feild = "nickname"
  383. this.inputContent = ''
  384. //#endif
  385. //#ifdef APP-PLUS
  386. this.contactUs()
  387. //#endif
  388. return;
  389. } else if (item.name == '我的车辆') {
  390. const that = this
  391. uni.showLoading({
  392. title: '正在加载',
  393. mask: true
  394. })
  395. that.$api.request('tran', 'getMyCarList', failres => {
  396. that.$api.msg(failres.errmsg)
  397. uni.hideLoading()
  398. }).then(res => {
  399. that.carInfo = res.data
  400. if (that.carInfo.length == 0) {
  401. that.$api.msg('暂无车辆信息')
  402. } else {
  403. var height = that.carInfo.length * 100
  404. var width = 500
  405. that.mycarStyle = "height:" + height + "rpx;width:" + width + "rpx"
  406. that.modalName = 'MycarModal'
  407. }
  408. uni.hideLoading()
  409. })
  410. return;
  411. }
  412. if (!this.hasLogin) {
  413. uni.showModal({
  414. title: '提示',
  415. content: '您尚未登录,是否立即登录?',
  416. showCancel: true,
  417. confirmText: '登录',
  418. success: (e) => {
  419. if (e.confirm) {
  420. uni.navigateTo({
  421. url: '/pages/public/login'
  422. })
  423. }
  424. },
  425. fail: () => {},
  426. complete: () => {}
  427. })
  428. } else {
  429. if (item.url) {
  430. uni.navigateTo({
  431. url: item.url
  432. })
  433. }
  434. }
  435. },
  436. setting() {
  437. if (!this.hasLogin) {
  438. uni.showModal({
  439. title: '提示',
  440. content: '您尚未登录,是否立即登录?',
  441. showCancel: true,
  442. confirmText: '登录',
  443. success: (e) => {
  444. if (e.confirm) {
  445. uni.navigateTo({
  446. url: '/pages/public/login'
  447. })
  448. }
  449. },
  450. fail: () => {},
  451. complete: () => {}
  452. })
  453. } else {
  454. uni.navigateTo({
  455. url: '/pages/user/setUp'
  456. })
  457. }
  458. },
  459. toLogin() {
  460. console.log("userInfo", this.userInfo)
  461. if (!this.hasLogin || !this.userInfo || this.username == "立即登录") {
  462. uni.navigateTo({
  463. url: '/pages/public/login_account_number'
  464. })
  465. } else {
  466. uni.navigateTo({
  467. url: '/pages/user/setUp'
  468. })
  469. }
  470. // else if(!this.userInfo.nickname){
  471. // this.inputShow = true
  472. // this.inputStatus = 'inline'
  473. // this.feild = "nickname"
  474. // this.inputContent = ''
  475. // }
  476. },
  477. confirm() {
  478. const that = this
  479. if (!that.inputContent) {
  480. that.$api.msg('输入不能为空')
  481. return
  482. }
  483. let obj = {}
  484. obj[that.feild] = that.inputContent
  485. that.$api.request('user', 'syncUserInfo', obj).then(res => {
  486. that.userInfo.nickname = that.inputContent
  487. that.inputContent = ''
  488. that.$store.commit('login', that.userInfo)
  489. })
  490. },
  491. cancel() {
  492. this.inputShow = false
  493. this.inputStatus = 'none'
  494. this.genderShow = false
  495. },
  496. myAccount() {
  497. uni.navigateTo({
  498. url: `/pageA/pages/contract`
  499. })
  500. },
  501. logout() {
  502. // const that = this
  503. this.isShowAlert = true
  504. // uni.showModal({
  505. // title: '询问',
  506. // content: '您确定要退出吗?',
  507. // cancelText: '取消',
  508. // confirmText: '确定',
  509. // success: (e) => {
  510. // if (e.confirm) {
  511. // uni.hideTabBarRedDot({
  512. // index:3
  513. // })
  514. // uni.clearStorageSync();
  515. // that.$store.commit('logout')
  516. // that.$api.logout()
  517. // uni.navigateTo({
  518. // url: `/pages/public/login`
  519. // })
  520. // }
  521. // }
  522. // })
  523. },
  524. /**
  525. * 统一跳转接口,拦截未登录路由
  526. * navigator标签现在默认没有转场动画,所以用view
  527. */
  528. navTo(url) {
  529. if (!this.hasLogin) {
  530. url = '/pages/public/login';
  531. }
  532. uni.navigateTo({
  533. url
  534. })
  535. },
  536. mycarClick(carNo) {
  537. this.modalName = null
  538. uni.navigateTo({
  539. url: `/pageB/car/mycar_detail?carNo=${carNo}`
  540. })
  541. },
  542. qrClick(userInfo) {
  543. this.modalName = null
  544. uni.navigateTo({
  545. url: `/pages/user/qr`
  546. })
  547. },
  548. scanCode() {
  549. uni.scanCode({
  550. success: function(res) {
  551. uni.navigateTo({
  552. url: res.result
  553. })
  554. }
  555. })
  556. },
  557. hideModal(e) {
  558. this.modalName = null
  559. },
  560. }
  561. }
  562. </script>
  563. <style lang='scss' scoped>
  564. page {
  565. background: #F5F6FA;
  566. }
  567. .container {
  568. padding-top: 85px;
  569. padding-top: 35px;
  570. background-color: #F5F6FA;
  571. position: relative;
  572. width: 100vw;
  573. height: 100vh;
  574. overflow: hidden;
  575. background: url('~@/static/img/login/bg_slices/bg@3x.png');
  576. background-size: 100% 100%;
  577. margin: 0 auto;
  578. }
  579. .cu-tag.badge {
  580. right: 26rpx;
  581. }
  582. .path {
  583. color: #007aff;
  584. display: inline-block;
  585. text-align: center;
  586. }
  587. .icon {
  588. margin-right: 10rpx;
  589. }
  590. .portrait-box {
  591. margin-top: 20rpx;
  592. }
  593. .qr-wrap {
  594. margin-top: 20upx;
  595. color: #fff;
  596. font-size: 32rpx;
  597. }
  598. .cu-list {
  599. /* height: 483rpx;
  600. overflow-y: scroll; */
  601. background: transparent;
  602. }
  603. .cu-list.grid.no-border {
  604. padding: 0;
  605. }
  606. .badge_user {
  607. color: #fff;
  608. background-color: #dc3545;
  609. display: inline-block;
  610. padding: .25em .4em;
  611. font-size: 75%;
  612. font-weight: 700;
  613. line-height: 1;
  614. text-align: center;
  615. white-space: nowrap;
  616. vertical-align: top;
  617. border-radius: 50%;
  618. transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
  619. }
  620. @keyframes move_wave {
  621. 0% {
  622. transform: translateX(0) translateZ(0) scaleY(1)
  623. }
  624. 50% {
  625. transform: translateX(-25%) translateZ(0) scaleY(0.55)
  626. }
  627. 100% {
  628. transform: translateX(-50%) translateZ(0) scaleY(1)
  629. }
  630. }
  631. .bg {
  632. position: relative;
  633. height: 300rpx;
  634. /* background: linear-gradient(to bottom, #56ccf2, #2f80ed); */
  635. /*background: linear-gradient(to bottom, #0be9fe, #4bb0fe); */
  636. background: linear-gradient(to bottom, #d5f8ff, #56ccf2);
  637. }
  638. .bg_ware {
  639. position: absolute;
  640. left: 0;
  641. bottom: -2rpx;
  642. width: 100%;
  643. mix-blend-mode: screen;
  644. height: 224rpx;
  645. }
  646. %flex-center {
  647. display: flex;
  648. flex-direction: column;
  649. justify-content: center;
  650. align-items: center;
  651. }
  652. %section {
  653. display: flex;
  654. justify-content: space-around;
  655. align-content: center;
  656. background: #fff;
  657. border-radius: 10upx;
  658. }
  659. .grid-item-box {
  660. flex: 1;
  661. /* position: relative;
  662. */
  663. /* #ifndef APP-NVUE */
  664. display: flex;
  665. /* #endif */
  666. flex-direction: column;
  667. align-items: center;
  668. justify-content: center;
  669. padding: 15px 0;
  670. }
  671. .image {
  672. width: 80rpx;
  673. height: 80rpx;
  674. }
  675. .text {
  676. font-size: 26rpx;
  677. margin-top: 10rpx;
  678. }
  679. .user-section {
  680. height: 520upx;
  681. padding: 100upx 30upx 0;
  682. position: relative;
  683. .bg {
  684. position: absolute;
  685. left: 0;
  686. top: 0;
  687. width: 100%;
  688. height: 100%;
  689. filter: blur(1px);
  690. box-shadow: 0px 1px 8px #ccc;
  691. /* background:linear-gradient(#0eb0c9,#126bae); */
  692. /* opacity: .7; */
  693. }
  694. }
  695. .user-info-box {
  696. height: 180upx;
  697. /* display:flex; */
  698. /* align-items:center; */
  699. text-align: center;
  700. position: relative;
  701. z-index: 1;
  702. .portrait {
  703. width: 130upx;
  704. height: 130upx;
  705. border: 5upx solid #fff;
  706. border-radius: 50%;
  707. }
  708. .username {
  709. font-size: $font-lg + 3upx;
  710. color: #fff;
  711. margin-top: 20upx;
  712. }
  713. }
  714. .vip-card-box {
  715. display: flex;
  716. flex-direction: column;
  717. color: #f7d680;
  718. height: 240upx;
  719. background: linear-gradient(left, rgba(0, 0, 0, .7), rgba(0, 0, 0, .8));
  720. border-radius: 16upx 16upx 0 0;
  721. overflow: hidden;
  722. position: relative;
  723. padding: 20upx 24upx;
  724. .card-bg {
  725. position: absolute;
  726. top: 20upx;
  727. right: 0;
  728. width: 380upx;
  729. height: 260upx;
  730. }
  731. .b-btn {
  732. position: absolute;
  733. right: 20upx;
  734. top: 16upx;
  735. width: 132upx;
  736. height: 40upx;
  737. text-align: center;
  738. line-height: 40upx;
  739. font-size: 22upx;
  740. color: #36343c;
  741. border-radius: 20px;
  742. background: linear-gradient(left, #f9e6af, #ffd465);
  743. z-index: 1;
  744. }
  745. .tit {
  746. font-size: $font-base+2upx;
  747. color: #f7d680;
  748. margin-bottom: 28upx;
  749. .yticon {
  750. color: #f6e5a3;
  751. margin-right: 16upx;
  752. }
  753. }
  754. .e-b {
  755. font-size: $font-sm;
  756. color: #d8cba9;
  757. margin-top: 10upx;
  758. }
  759. }
  760. .cover-container {
  761. padding: 1px 10px;
  762. padding-bottom: 200upx;
  763. /* background-color: #F5F6FA; */
  764. /* border-radius: 20px; */
  765. margin-top: 60upx;
  766. .arc {
  767. position: absolute;
  768. left: 0;
  769. top: -34upx;
  770. width: 100%;
  771. height: 36upx;
  772. }
  773. }
  774. .tj-sction {
  775. @extend %section;
  776. .tj-item {
  777. @extend %flex-center;
  778. flex-direction: column;
  779. height: 140upx;
  780. font-size: $font-sm;
  781. color: #75787d;
  782. }
  783. .num {
  784. font-size: $font-lg;
  785. color: $font-color-dark;
  786. margin-bottom: 8upx;
  787. }
  788. }
  789. .order-section {
  790. @extend %section;
  791. padding: 28upx 0;
  792. margin-top: 20upx;
  793. .order-item {
  794. @extend %flex-center;
  795. width: 120upx;
  796. height: 120upx;
  797. border-radius: 10upx;
  798. font-size: $font-sm;
  799. color: $font-color-dark;
  800. }
  801. .yticon {
  802. font-size: 48upx;
  803. margin-bottom: 18upx;
  804. color: #fa436a;
  805. }
  806. .icon-shouhoutuikuan {
  807. font-size: 44upx;
  808. }
  809. }
  810. .history-section {
  811. padding: 30upx 0 0;
  812. margin-top: 20upx;
  813. background: #fff;
  814. border-radius: 10upx;
  815. .sec-header {
  816. display: flex;
  817. align-items: center;
  818. font-size: $font-base;
  819. color: $font-color-dark;
  820. line-height: 40upx;
  821. margin-left: 30upx;
  822. .yticon {
  823. font-size: 44upx;
  824. color: #5eba8f;
  825. margin-right: 16upx;
  826. line-height: 40upx;
  827. }
  828. }
  829. .h-list {
  830. white-space: nowrap;
  831. padding: 30upx 30upx 0;
  832. image {
  833. display: inline-block;
  834. width: 160upx;
  835. height: 160upx;
  836. margin-right: 20upx;
  837. border-radius: 10upx;
  838. }
  839. }
  840. }
  841. .grid {
  842. display: flex;
  843. align-items: center;
  844. flex-wrap: wrap;
  845. /* border-top: 2upx solid rgba(172,172,172,.2); */
  846. .grid-item-3 {
  847. box-sizing: border-box;
  848. width: calc(100% / 3);
  849. border-bottom: 2upx solid rgba(172, 172, 172, .2);
  850. border-right: 2upx solid rgba(172, 172, 172, .2);
  851. text-align: center;
  852. padding: 40upx 0;
  853. position: relative;
  854. /* view{
  855. font-size: $font-sm;
  856. margin-top: 16upx;
  857. color: $font-color-dark;
  858. } */
  859. .grid_icon {
  860. font-size: 48upx;
  861. margin-bottom: 18upx;
  862. color: #fa436a;
  863. }
  864. .tip_text {
  865. display: block;
  866. padding: 4upx 8upx;
  867. text-align: center;
  868. border-radius: 36upx;
  869. font-size: 24upx;
  870. background-color: #fa436a;
  871. color: rgba(255, 255, 255, 1);
  872. position: absolute;
  873. right: 6upx;
  874. top: 6upx;
  875. }
  876. }
  877. .grid-item-3:nth-child(3n + 3),
  878. .grid-item-4:nth-child(4n + 4) {
  879. border-right: none;
  880. }
  881. }
  882. .headPortrait {
  883. width: 75px;
  884. height: 75px;
  885. border-radius: 40px;
  886. border: 2px solid #ffffff;
  887. }
  888. .personal {
  889. margin-top: 10px;
  890. margin-left: 20px;
  891. }
  892. .information {
  893. font-size: 15px;
  894. font-weight: 600;
  895. height: 36px;
  896. }
  897. .indexlow {
  898. /* margin-top: 30px; */
  899. border-radius: 10px;
  900. }
  901. .cu-list>.cu-item:after {
  902. border: none;
  903. }
  904. .sign {
  905. width: 40px;
  906. height: 40px;
  907. top: 4px;
  908. margin-right: 6px;
  909. }
  910. .indexUp {
  911. padding: 0 20px;
  912. align-items: center;
  913. }
  914. .wrap {
  915. background: #fff;
  916. margin: 10px;
  917. border-radius: 10px;
  918. padding: 10px;
  919. .title {
  920. font-size: 16px;
  921. }
  922. }
  923. .content2 {
  924. display: flex;
  925. justify-content: space-between;
  926. }
  927. </style>