index.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855
  1. <!-- 佣金中心 -->
  2. <template>
  3. <view style="width:100%;height: 100%;">
  4. <view class="commission-wrap" :class="{ blur: !hasAuth }">
  5. <!-- 标题栏 -->
  6. <shopro-navbar back-icon-color="#fff" :background="{}"></shopro-navbar>
  7. <!-- 用户资料 -->
  8. <view class="user-card">
  9. <view class="card-top u-flex u-row-between">
  10. <view class="u-flex">
  11. <view class="head-img-box"><image class="head-img" :src="userInfo.avatar" mode=""></image></view>
  12. <view class="u-flex-col">
  13. <view class="user-name">{{ userInfo.nickname }}</view>
  14. <view class="user-info-box u-flex">
  15. <view class="tag-box u-flex" v-if="commissionLv">
  16. <image v-if="commissionLv.image" class="tag-img" :src="commissionLv.image" mode=""></image>
  17. <text class="tag-title">{{ commissionLv.name }}</text>
  18. <view v-show="showLv" class="u-iconfont uicon-arrow-right" style="color: #fff;font-size: 28rpx;"></view>
  19. </view>
  20. </view>
  21. </view>
  22. </view>
  23. <view class="u-flex-col">
  24. <view class="u-flex-col u-col-center">
  25. <button class="u-reset-button log-btn u-m-b-20" @tap="jump('/pages/app/commission/commission-log')">明细</button>
  26. <button class="u-reset-button look-btn" @tap="showMoney = !showMoney">
  27. <view class="u-iconfont" :class="showMoney ? 'uicon-eye-fill' : 'uicon-eye-off'" style="color: #fff;font-size: 50rpx;"></view>
  28. </button>
  29. </view>
  30. </view>
  31. </view>
  32. <!-- 收益 -->
  33. <view class="card-bottom u-flex" v-if="commissionWallet">
  34. <view class="u-flex-1 ">
  35. <view class="item-title">总收益</view>
  36. <view class="item-detail">{{ showMoney ? commissionWallet.total_income || '0.00' : '***' }}</view>
  37. </view>
  38. <view class="u-flex-1 u-col-center">
  39. <view class="item-title">待入账佣金</view>
  40. <view class="item-detail">{{ showMoney ? commissionWallet.delay_money || '0.00' : '***' }}</view>
  41. </view>
  42. <view class="u-flex-1 u-col-center">
  43. <view class="item-title">我的消费</view>
  44. <view class="item-detail">{{ showMoney ? userInfo.total_consume || '0.00' : '***' }}</view>
  45. </view>
  46. </view>
  47. </view>
  48. <!-- 滚动明细 -->
  49. <view class="commission-log">
  50. <scroll-view scroll-y="true" @scrolltolower="loadMore" class="scroll-box log-scroll">
  51. <view class="log-item-box u-flex u-row-between" v-for="item in commissionLog" :key="item.id" @tap="$u.toast(item.remark)">
  52. <view class="log-item-wrap">
  53. <view class="log-item u-flex u-ellipsis-1 u-col-center">
  54. <view class="u-flex u-col-center ">
  55. <image
  56. class="log-img"
  57. :src="item.oper_type !== 'user' ? logMap[item.oper_type] : item.oper ? item.oper.avatar : logMap['admin']"
  58. mode=""
  59. ></image>
  60. </view>
  61. <view class="log-text u-ellipsis-1">{{ item.remark }}</view>
  62. </view>
  63. </view>
  64. <text class="log-time">{{ $u.timeFrom(item.createtime) }}</text>
  65. </view>
  66. <!-- 更多 -->
  67. <view class="loadmore-wrap" v-if="commissionLog.length"><u-loadmore :status="loadStatus" icon-type="flower" color="#f6f6f6" /></view>
  68. </scroll-view>
  69. </view>
  70. <!-- 功能菜单 -->
  71. <view class="menu-box u-flex">
  72. <view class="menu-item u-flex-col u-col-center" v-for="(menu, index) in menuList" v-if="!menu.isAgentFrom" :key="index" @tap="jump(menu.path)">
  73. <image class="item-img" :src="menu.img" mode=""></image>
  74. <view class="item-title">{{ menu.title }}</view>
  75. </view>
  76. </view>
  77. </view>
  78. <!-- 分享组件 -->
  79. <shopro-share v-model="showShare" posterType="user"></shopro-share>
  80. <!-- 佣金中心权限验证 -->
  81. <u-popup v-if="showAuthModal" class="auth-box" :mask="false" v-model="showAuthModal" mode="center" :mask-close-able="false" close-icon-pos="top-left" border-radius="20">
  82. <view class="notice-box">
  83. <view class="img-wrap"><image class="notice-img" :src="authNotice.img" mode=""></image></view>
  84. <view class="notice-title">{{ authNotice.title }}</view>
  85. <view class="notice-detail">{{ authNotice.detail }}</view>
  86. <button class="u-reset-button notice-btn" @tap="onAuthBtn(authNotice.btnPath)">{{ authNotice.btnText }}</button>
  87. <button class="u-reset-button back-btn" @tap="$Router.back()" v-if="!authNotice.hideBtn">返回</button>
  88. <button class="u-reset-button back-btn" @tap="hasAuth = true" v-else>取消</button>
  89. </view>
  90. </u-popup>
  91. <!-- 成为分销商条件 -->
  92. <u-popup
  93. v-if="showTerm"
  94. class="into-agent-modal"
  95. :bgStyle="{
  96. background: 'none'
  97. }"
  98. v-model="showTerm"
  99. mode="center"
  100. :mask="false"
  101. :mask-close-able="false"
  102. >
  103. <view class="condition-box u-flex u-row-center u-col-center">
  104. <!-- 商品 -->
  105. <view class="goods-condition u-flex-col u-col-center" v-if="showGoodsTerm">
  106. <scroll-view class="card-wrap" scroll-y="true">
  107. <view class="card-box u-flex u-m-x-10 u-m-y-10" v-for="item in goodsTermList" :key="item.id" @tap="jump('/pages/goods/detail', { id: item.id })">
  108. <view class="img-wrap"><image class="goods-img" :src="item.image" mode=""></image></view>
  109. <view class="detail u-fle u-row-between">
  110. <view class="title u-ellipsis-2 u-m-b-10">{{ item.title }}</view>
  111. <view class="sub u-ellipsis-1">{{ item.subtitle }}</view>
  112. </view>
  113. </view>
  114. <view class="hack" style="height: 100rpx;"></view>
  115. </scroll-view>
  116. <view class="btn-box u-flex-col u-col-center u-p-20">
  117. <button class="u-reset-button buy-btn u-m-b-20" @tap="$Router.back()">知道了</button>
  118. <view class="tips">* 购买指定商品即可成为分销商</view>
  119. </view>
  120. </view>
  121. <!-- 金额人数 -->
  122. <view class="goods-condition u-flex u-row-between" v-if="showMoneyTerm">
  123. <scroll-view class="card-wrap" scroll-y="true">
  124. <view class="card-box u-flex u-m-x-10 u-m-y-10" :class="{ 'filter-card': userInfo.total_consume == moneyTermNum }">
  125. <view class="img-wrap"><image class="goods-img" :src="$IMG_URL + '/imgs/user/commission_task_card.png'" mode=""></image></view>
  126. <view class="detail">
  127. <view class="title u-ellipsis-2 u-m-l-10">满足以下消费金额</view>
  128. <!-- 进度条 -->
  129. <view class="u-flex modal-progress ">
  130. <view class="progress-box u-m-l-30 u-flex u-col-bottom">
  131. <view class="cu-progress" style="width:150rpx ;">
  132. <!-- 圆环 -->
  133. <view
  134. class="round-wrap"
  135. v-if="userInfo.total_consume != moneyTermNum"
  136. :style="[{ left: getProgress(userInfo.total_consume, moneyTermNum) + '%' }]"
  137. >
  138. <view class="round-inner"></view>
  139. </view>
  140. <u-line-progress
  141. height="12"
  142. :show-percent="false"
  143. inactive-color="#7430EE"
  144. :percent="getProgress(userInfo.total_consume, moneyTermNum)"
  145. active-color="#C6A6FF"
  146. ></u-line-progress>
  147. <!-- 已完成数 -->
  148. <view
  149. class="progress-num u-m-t-10"
  150. v-if="userInfo.total_consume != moneyTermNum"
  151. :style="[{ left: getProgress(userInfo.total_consume, moneyTermNum) + '%' }]"
  152. >
  153. {{ userInfo.total_consume }}
  154. </view>
  155. </view>
  156. </view>
  157. <view class="progress-tip" v-if="userInfo.total_consume != moneyTermNum">{{ moneyTermNum }}</view>
  158. </view>
  159. </view>
  160. </view>
  161. </scroll-view>
  162. <view class="btn-box u-flex-col u-p-20 u-col-center">
  163. <button class="u-reset-button buy-btn u-m-b-10" @tap="$Router.back()">知道了</button>
  164. <view class="tips">* 满足指定消费金额即可成为分销商</view>
  165. </view>
  166. </view>
  167. </view>
  168. </u-popup>
  169. </view>
  170. </template>
  171. <script>
  172. import { mapMutations, mapActions, mapState, mapGetters } from 'vuex';
  173. import share from '@/shopro/share';
  174. export default {
  175. components: {},
  176. data() {
  177. return {
  178. showShare: false, //是否显示分享海报
  179. showMoney: true, //是否显示金额
  180. hasAuth: true, //是否有权限
  181. commissionLv: null, //分销商等级
  182. commissionWallet: null, //分销商钱包
  183. agentFrom: null, //是否显示我的资料
  184. showLv: true,
  185. commissionLog: [], //动态
  186. loadStatus: 'loadmore', //loadmore-加载前的状态,loading-加载中的状态,nomore-没有更多的状态
  187. currentPage: 1,
  188. lastPage: 1,
  189. logMap: {
  190. system: this.$IMG_URL + '/imgs/commission/commission_base_notice.png',
  191. admin: this.$IMG_URL + '/imgs/commission/commission_base_avatar.png'
  192. },
  193. showTerm: false, //条件弹窗
  194. showGoodsTerm: false, //商品条件
  195. showMoneyTerm: false, //金额条件
  196. goodsTermList: [],
  197. moneyTermNum: 0,
  198. authNotice: {},
  199. menuList: [
  200. //menu
  201. {
  202. img: this.$IMG_URL + '/imgs/commission/commission_icon1.png',
  203. title: '我的团队',
  204. path: '/pages/app/commission/team'
  205. },
  206. {
  207. img: this.$IMG_URL + '/imgs/commission/commission_icon2.png',
  208. title: '佣金明细',
  209. path: '/pages/app/commission/commission-log'
  210. },
  211. {
  212. img: this.$IMG_URL + '/imgs/commission/commission_icon3.png',
  213. title: '分销订单',
  214. path: '/pages/app/commission/order'
  215. },
  216. {
  217. img: this.$IMG_URL + '/imgs/commission/commission_icon4.png',
  218. title: '推广商品',
  219. path: '/pages/app/commission/goods'
  220. },
  221. {
  222. img: this.$IMG_URL + '/imgs/commission/commission_icon5.png',
  223. title: '我的资料',
  224. path: '/pages/app/commission/apply',
  225. isAgentFrom: true
  226. },
  227. {
  228. img: this.$IMG_URL + '/imgs/commission/commission_icon6.png',
  229. title: '分销排行',
  230. path: '/pages/app/commission/rankings'
  231. },
  232. {
  233. img: this.$IMG_URL + '/imgs/commission/commission_icon7.png',
  234. title: '邀请海报',
  235. path: ''
  236. },
  237. {
  238. img: this.$IMG_URL + '/imgs/commission/commission_icon8.png',
  239. title: '分享记录',
  240. path: '/pages/app/commission/share-log'
  241. }
  242. ]
  243. };
  244. },
  245. computed: {
  246. ...mapGetters(['userInfo', 'agentInfo']),
  247. showAuthModal: {
  248. get() {
  249. return !!this.authNotice.title && !this.hasAuth;
  250. },
  251. set(val) {
  252. return val;
  253. }
  254. }
  255. },
  256. onShow() {
  257. this.init();
  258. },
  259. onHide() {
  260. this.commissionLog = [];
  261. this.lastPage = 1;
  262. this.currentPage = 1;
  263. },
  264. onLoad() {},
  265. onPullDownRefresh() {
  266. this.currentPage = 1;
  267. this.lastPage = 1;
  268. this.commissionLog = [];
  269. this.init();
  270. },
  271. methods: {
  272. ...mapActions(['getAgent', 'getUserInfo']),
  273. init() {
  274. return Promise.all([this.getStatus(), this.getUserInfo()]).then(() => {
  275. uni.stopPullDownRefresh();
  276. });
  277. },
  278. // 跳转
  279. jump(path, query) {
  280. if (!path) {
  281. this.showShare = true;
  282. } else {
  283. this.$Router.push({
  284. path: path,
  285. query: query
  286. });
  287. }
  288. },
  289. // 百分比
  290. getProgress(sales, stock) {
  291. let unit = '';
  292. if (stock + sales > 0) {
  293. let num = (sales / stock) * 100;
  294. unit = num.toFixed(2);
  295. } else {
  296. unit = '0';
  297. }
  298. return Number(unit);
  299. },
  300. // 身份认证
  301. getStatus() {
  302. let that = this;
  303. this.getAgent().then(res => {
  304. uni.stopPullDownRefresh();
  305. if (res.code === 1) {
  306. that.authStatus(res.data);
  307. that.commissionWallet = res.data.data;
  308. that.commissionLv = res.data.data?.agent_level;
  309. that.showLv = res.data.upgrade_display;
  310. that.menuList.map(item => {
  311. if (item.title === '我的资料') {
  312. item.isAgentFrom = !res.data.agent_form;
  313. }
  314. });
  315. that.commissionWallet && that.getLog();
  316. }
  317. });
  318. },
  319. // 分销动态
  320. getLog() {
  321. let that = this;
  322. that.loadStatus = 'loading';
  323. this.$http('commission.log', {
  324. page: that.currentPage,
  325. per_page: 5
  326. }).then(res => {
  327. if (res.code === 1) {
  328. that.commissionLog = [...that.commissionLog, ...res.data.data];
  329. that.lastPage = res.data.last_page;
  330. that.loadStatus = that.currentPage < res.data.last_page ? 'loadmore' : 'nomore';
  331. }
  332. });
  333. },
  334. // 加载更多
  335. loadMore() {
  336. if (this.currentPage < this.lastPage) {
  337. this.currentPage += 1;
  338. this.getLog();
  339. }
  340. },
  341. // 状态鉴权
  342. authStatus(data) {
  343. switch (data.status) {
  344. case 'forbidden':
  345. this.hasAuth = false;
  346. this.showTerm = false;
  347. this.authNotice = {
  348. img: this.$IMG_URL + '/imgs/commission/auth_stop.png',
  349. title: '抱歉!你的账户已被禁用',
  350. detail: data.msg,
  351. btnText: '联系客服',
  352. btnPath: '/pages/public/chat/index'
  353. };
  354. break;
  355. case 'pending':
  356. this.hasAuth = false;
  357. this.showTerm = false;
  358. this.authNotice = {
  359. img: this.$IMG_URL + '/imgs/commission/auth_stop.png',
  360. title: '正在审核中!',
  361. detail: data.msg,
  362. btnText: '知道了',
  363. btnPath: ''
  364. };
  365. break;
  366. case 'needinfo':
  367. this.hasAuth = false;
  368. this.authNotice = {
  369. img: this.$IMG_URL + '/imgs/commission/auth_perfect.png',
  370. title: '待完善信息',
  371. detail: data.msg,
  372. btnText: '去完善',
  373. btnPath: '/pages/app/commission/apply'
  374. };
  375. break;
  376. case 'reject':
  377. this.hasAuth = false;
  378. this.showTerm = false;
  379. this.authNotice = {
  380. img: this.$IMG_URL + '/imgs/commission/auth_reject.png',
  381. title: '申请驳回',
  382. detail: data.msg,
  383. btnText: '修改资料',
  384. btnPath: '/pages/app/commission/apply'
  385. };
  386. break;
  387. case 'close':
  388. this.hasAuth = false;
  389. this.showTerm = false;
  390. this.authNotice = {
  391. img: this.$IMG_URL + '/imgs/commission/auth_close.png',
  392. title: '分销中心已关闭',
  393. detail: data.msg,
  394. btnText: '我知道了',
  395. btnPath: ''
  396. };
  397. break;
  398. case 'freeze':
  399. this.hasAuth = false;
  400. this.showTerm = false;
  401. this.authNotice = {
  402. img: this.$IMG_URL + '/imgs/commission/auth_freeze.png',
  403. title: '抱歉!你的账户已被冻结',
  404. detail: data.msg,
  405. btnText: '联系客服',
  406. btnPath: '/pages/public/chat/index',
  407. hideBtn: true
  408. };
  409. break;
  410. case null:
  411. this.hasAuth = false;
  412. this.showTerm = true;
  413. if (data.become_agent) {
  414. if (data.become_agent.type === 'goods') {
  415. this.showGoodsTerm = true;
  416. this.getGoodsTermList(data.become_agent.value);
  417. }
  418. if (data.become_agent.type === 'consume') {
  419. this.showMoneyTerm = true;
  420. this.moneyTermNum = data.become_agent.value;
  421. }
  422. }
  423. break;
  424. default:
  425. this.hasAuth = true;
  426. this.showTerm = false;
  427. }
  428. },
  429. // 成为分销商,商品列表
  430. getGoodsTermList(ids) {
  431. let that = this;
  432. that.$http('goods.lists', {
  433. goods_ids: ids
  434. }).then(res => {
  435. if (res.code === 1) {
  436. that.goodsTermList = res.data.data;
  437. }
  438. });
  439. },
  440. // 权限
  441. onAuthBtn(path) {
  442. path
  443. ? this.$Router.push({
  444. path: path
  445. })
  446. : this.$Router.back();
  447. }
  448. }
  449. };
  450. </script>
  451. <style lang="scss" scoped>
  452. .commission-wrap {
  453. background: url($IMG_URL+'/imgs/commission/commission_bg1.jpg') no-repeat;
  454. background-size: cover;
  455. height: 100%;
  456. width: 100%;
  457. background-position: center center;
  458. transition: all 0.3s ease-in-out 0s;
  459. overflow: hidden;
  460. }
  461. // 进度条
  462. .progress-box {
  463. .progress-tip {
  464. font-size: 24rpx;
  465. font-weight: 500;
  466. color: #c7b2ff;
  467. }
  468. .progress-num {
  469. font-size: 24rpx;
  470. position: absolute;
  471. color: #c7b2ff;
  472. bottom: -30rpx;
  473. white-space: nowrap;
  474. }
  475. .round-wrap {
  476. width: 30rpx;
  477. height: 30rpx;
  478. border: 2rpx solid #5c3cff;
  479. background: linear-gradient(0deg, #a36fff 0%, #846fff 100%);
  480. border-radius: 50%;
  481. position: absolute;
  482. bottom: -6rpx;
  483. transform: translateY(-50%);
  484. left: 0;
  485. margin-left: -15rpx;
  486. .round-inner {
  487. width: 20rpx;
  488. height: 20rpx;
  489. border: 2rpx solid #5c3cff;
  490. background: linear-gradient(0deg, #a36fff 0%, #846fff 100%);
  491. border-radius: 50%;
  492. position: absolute;
  493. top: 50%;
  494. left: 50%;
  495. transform: translate(-50%, -50%);
  496. }
  497. }
  498. }
  499. // 佣金中心权限验证蒙层
  500. .blur {
  501. filter: blur(20rpx);
  502. transition: all 0.3s ease-in-out 0s;
  503. }
  504. .auth-box {
  505. width: 100%;
  506. height: 100%;
  507. background: none;
  508. .notice-box {
  509. display: flex;
  510. flex-direction: column;
  511. justify-content: center;
  512. align-items: center;
  513. background-color: #fff;
  514. width: 612rpx;
  515. min-height: 658rpx;
  516. background: #ffffff;
  517. padding: 30rpx;
  518. border-radius: 20rpx;
  519. .img-wrap {
  520. margin-bottom: 50rpx;
  521. .notice-img {
  522. width: 180rpx;
  523. height: 170rpx;
  524. }
  525. }
  526. .notice-title {
  527. font-size: 35rpx;
  528. font-weight: bold;
  529. color: #46351b;
  530. margin-bottom: 28rpx;
  531. }
  532. .notice-detail {
  533. font-size: 28rpx;
  534. font-weight: 400;
  535. color: #999999;
  536. line-height: 36rpx;
  537. margin-bottom: 50rpx;
  538. }
  539. .notice-btn {
  540. width: 492rpx;
  541. line-height: 70rpx;
  542. background: linear-gradient(-90deg, #a36fff, #5336ff);
  543. box-shadow: 0px 7rpx 11rpx 2rpx rgba(124, 103, 214, 0.34);
  544. border-radius: 35rpx;
  545. font-size: 28rpx;
  546. font-weight: 500;
  547. color: #ffffff;
  548. margin-bottom: 10rpx;
  549. }
  550. .back-btn {
  551. width: 492rpx;
  552. line-height: 70rpx;
  553. font-size: 28rpx;
  554. font-weight: 500;
  555. color: #c5b8fb;
  556. background: none;
  557. }
  558. }
  559. }
  560. // 成为分销商
  561. .into-agent-modal {
  562. .condition-box {
  563. width: 640rpx;
  564. height: 786rpx;
  565. background: url($IMG_URL+'/imgs/commission/into_commission.png') no-repeat;
  566. background-size: 100% 100%;
  567. }
  568. .goods-condition {
  569. width: 484rpx;
  570. height: 580rpx;
  571. padding: 80rpx 0 30rpx;
  572. display: flex;
  573. flex-direction: column;
  574. justify-content: center;
  575. align-items: center;
  576. position: relative;
  577. .card-wrap {
  578. width: 484rpx;
  579. height: 460rpx;
  580. padding: 10rpx;
  581. padding-bottom: 30rpx;
  582. }
  583. .modal-progress {
  584. .progress-tip {
  585. font-size: 24rpx;
  586. }
  587. .progress-box {
  588. margin-right: 10rpx;
  589. .cu-progress {
  590. width: 200rpx;
  591. position: relative;
  592. .round-wrap {
  593. width: 20rpx;
  594. height: 20rpx;
  595. }
  596. .round-inner {
  597. width: 10rpx;
  598. height: 10rpx;
  599. }
  600. }
  601. }
  602. }
  603. .card-box {
  604. background: rgba(#c3b6ff, 0.3);
  605. padding: 10rpx;
  606. border-radius: 10rpx;
  607. .img-wrap {
  608. background: #fff;
  609. width: 110rpx;
  610. height: 110rpx;
  611. border-radius: 10rpx;
  612. margin-right: 20rpx;
  613. .goods-img {
  614. width: 110rpx;
  615. height: 110rpx;
  616. border-radius: 10rpx;
  617. }
  618. }
  619. .detail {
  620. height: 110rpx;
  621. width: 280rpx;
  622. align-items: flex-start;
  623. .title {
  624. font-size: 20rpx;
  625. font-weight: 500;
  626. color: #333333;
  627. line-height: 35rpx;
  628. text-align: left;
  629. }
  630. .sub {
  631. font-size: 16rpx;
  632. font-weight: 500;
  633. color: #9281e2;
  634. text-align: left;
  635. width: 280rpx;
  636. }
  637. }
  638. }
  639. .filter-card {
  640. filter: grayscale(100%);
  641. filter: gray;
  642. }
  643. .btn-box {
  644. background-color: #fff;
  645. width: 100%;
  646. position: absolute;
  647. bottom: 0;
  648. .buy-btn {
  649. width: 390rpx;
  650. line-height: 60rpx;
  651. background: linear-gradient(-90deg, #a36fff, #5336ff);
  652. box-shadow: 0px 7rpx 11rpx 2rpx rgba(124, 103, 214, 0.34);
  653. border-radius: 35rpx;
  654. font-size: 24rpx;
  655. font-weight: 500;
  656. color: #ffffff;
  657. }
  658. .tips {
  659. font-size: 20rpx;
  660. font-weight: 500;
  661. color: #9281e2;
  662. }
  663. }
  664. }
  665. }
  666. // 用户资料卡片
  667. .user-card {
  668. width: 690rpx;
  669. min-height: 350rpx;
  670. border-radius: 14rpx;
  671. margin: 30rpx;
  672. background: url($IMG_URL+'/imgs/commission/commission_card_bg.png') no-repeat;
  673. background-size: 100% 100%;
  674. padding-top: 10rpx;
  675. .card-top {
  676. padding: 40rpx 40rpx 30rpx;
  677. margin-bottom: 30rpx;
  678. border-bottom: 1px solid rgba(#fff, 0.12);
  679. .user-name {
  680. font-size: 26rpx;
  681. font-weight: 500;
  682. color: #ffffff;
  683. line-height: 30rpx;
  684. margin-bottom: 20rpx;
  685. }
  686. .log-btn {
  687. width: 83rpx;
  688. line-height: 41rpx;
  689. border: 1rpx solid rgba(#ffffff, 0.33);
  690. border-radius: 21rpx;
  691. font-size: 22rpx;
  692. font-weight: 400;
  693. color: #ffffff;
  694. }
  695. .look-btn {
  696. color: #fff;
  697. font-size: 40rpx;
  698. }
  699. }
  700. .head-img-box {
  701. margin-right: 26rpx;
  702. width: 76rpx;
  703. height: 76rpx;
  704. border-radius: 50px;
  705. position: relative;
  706. background: #fff;
  707. padding: 10rpx;
  708. background-clip: padding-box;
  709. .head-img {
  710. width: 66rpx;
  711. height: 66rpx;
  712. border-radius: 50%;
  713. position: absolute;
  714. top: 50%;
  715. left: 50%;
  716. transform: translate(-50%, -50%);
  717. }
  718. }
  719. .user-info-box {
  720. .tag-box {
  721. background: rgba(0, 0, 0, 0.2);
  722. border-radius: 21rpx;
  723. line-height: 38rpx;
  724. .tag-img {
  725. width: 36rpx;
  726. height: 36rpx;
  727. border-radius: 50%;
  728. }
  729. .tag-title {
  730. font-size: 20rpx;
  731. padding: 0 10rpx;
  732. font-weight: 500;
  733. color: rgba(255, 255, 255, 1);
  734. line-height: 36rpx;
  735. }
  736. }
  737. }
  738. .card-bottom {
  739. margin: 0 40rpx 40rpx;
  740. .item-title {
  741. font-size: 24rpx;
  742. font-weight: 400;
  743. color: #ffffff;
  744. line-height: 30rpx;
  745. }
  746. .item-detail {
  747. font-size: 40rpx;
  748. font-family: DIN;
  749. font-weight: 500;
  750. color: #fefefe;
  751. line-height: 30rpx;
  752. margin-top: 30rpx;
  753. }
  754. }
  755. }
  756. // 滚动明细
  757. .commission-log {
  758. min-height: 450rpx;
  759. padding: 0 30rpx;
  760. margin-top: 60rpx;
  761. .log-scroll {
  762. height: 380rpx;
  763. .log-item-box {
  764. height: 78rpx;
  765. .log-time {
  766. margin-left: 30rpx;
  767. font-size: 22rpx;
  768. font-weight: 500;
  769. color: #fefefe;
  770. text-align: right;
  771. }
  772. }
  773. .loadmore-wrap {
  774. line-height: 80rpx;
  775. }
  776. .log-item {
  777. height: 48rpx;
  778. background: rgba(#5e49c3, 0.4);
  779. border-radius: 24rpx;
  780. padding-left: 6rpx;
  781. padding-right: 20rpx;
  782. .log-img {
  783. width: 40rpx;
  784. height: 40rpx;
  785. border-radius: 50%;
  786. margin-right: 10rpx;
  787. }
  788. .log-text {
  789. font-size: 22rpx;
  790. font-weight: 500;
  791. color: #fefefe;
  792. max-width: 480rpx;
  793. }
  794. }
  795. }
  796. }
  797. // 功能菜单
  798. .commission-bottom-bg {
  799. position: fixed;
  800. width: 100%;
  801. bottom: 0;
  802. z-index: 6;
  803. }
  804. .menu-box {
  805. flex-wrap: wrap;
  806. margin: 30rpx;
  807. position: fixed;
  808. width: 750rpx;
  809. bottom: 0;
  810. z-index: 10;
  811. .menu-item {
  812. width: (690rpx/4);
  813. margin-bottom: 50rpx;
  814. .item-img {
  815. width: 68rpx;
  816. height: 68rpx;
  817. }
  818. .item-title {
  819. font-size: 24rpx;
  820. font-weight: 600;
  821. color: #fff;
  822. line-height: 30rpx;
  823. margin-top: 16rpx;
  824. }
  825. }
  826. }
  827. </style>