meber.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493
  1. <!DOCTYPE html>
  2. <html class="">
  3. <!--STATUS OK-->
  4. <head>
  5. <meta name="referrer" content="always" />
  6. <meta charset='utf-8' />
  7. <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
  8. <meta http-equiv="x-dns-prefetch-control" content="on">
  9. <meta name="description" content="">
  10. <meta name="format-detection" content="telephone=no" />
  11. <link rel="stylesheet" type="text/css" href="../../../../css/css/vant-ui.css" />
  12. <link rel="stylesheet" type="text/css" href="../../../../css/css/iconfont.css">
  13. <link rel="stylesheet" type="text/css" href="../../../../css/css/main.css" />
  14. <!-- <script src="https://b2bcnfile.sailuntire.com/upload/outerstyle/agentCommon/TBR/js/tbr_role_config.js?v=2" charset="utf-8"></script> -->
  15. <script src="../../js/tbr_role_config.js" charset="utf-8"></script>
  16. <script type="text/javascript" src="../../../../script/js/vue.js"></script>
  17. <script type="text/javascript" src="../../../../script/js/vue-i18n.js"></script>
  18. <script src="../../../../script/js/vant-ui.js"></script>
  19. <script src="../../../../script/js/main.js"></script>
  20. <script type="text/javascript" src="../../js/zh.js"></script>
  21. <script type="text/javascript" src="../../js/en.js"></script>
  22. <style media="screen">
  23. .anniu {
  24. display: flex;
  25. padding: 0 .5rem;
  26. }
  27. .anniu>input {
  28. width: 100%;
  29. height: .86rem;
  30. background: linear-gradient(45deg, #005fa3, #00a0ea);
  31. border-radius: 5rem;
  32. color: #fff;
  33. font-size: .31rem;
  34. margin-top: .5rem;
  35. }
  36. .fanliBar .item h4 {
  37. font-size: 0.38rem;
  38. }
  39. .meberHeader .userTouxiang {
  40. width: 1rem;
  41. }
  42. .meberMenu01 .item {
  43. width: 50%
  44. }
  45. .settlementCenter{
  46. font-size: .26rem;
  47. width: 7.11rem;
  48. margin: .26rem auto;
  49. box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
  50. border-radius: 20px;
  51. padding: .25rem;
  52. }
  53. .settlement-title{
  54. justify-content: space-between;
  55. padding-bottom: .2rem;
  56. border-bottom: 1px solid #F4F4F4;
  57. }
  58. .settlement-title span:nth-of-type(1){
  59. font-size: .3rem;
  60. font-weight: bold;
  61. }
  62. .settlement-content{
  63. padding: .26rem 0;
  64. justify-content: space-around;
  65. }
  66. .settlement-item{
  67. align-items: center;
  68. flex-wrap: wrap;
  69. }
  70. .bluetet{
  71. color: #0095FF;
  72. }
  73. .bigtext{
  74. width: 100%;
  75. text-align: center;
  76. font-size: .3rem;
  77. font-weight: bold;
  78. margin-bottom: 6px
  79. }
  80. </style>
  81. </head>
  82. <body>
  83. <div id="app">
  84. <div class="view flex col">
  85. <div class="page router fx1 mescroll" id="mescroll">
  86. <div class="meberHeader" style="height: 3.95rem">
  87. <div class="flex jlr" style="padding-top: 1rem;">
  88. <div class="userTouxiang flex col a-center jlr">
  89. <!-- <div class="image"></div> -->
  90. <!-- <p>
  91. 联系人:{{ meterInfo.legalPerson }}
  92. </p> -->
  93. </div>
  94. <div class="shopInfo">
  95. <h2 class="flex a-center">{{ meterInfo.name }}
  96. </h2>
  97. <div class="tag">
  98. {{ meterInfo.street }}
  99. </div>
  100. </div>
  101. <div class="userTouxiang flex col a-center jlr"></div>
  102. <!-- <div class="ewm flex j-center">
  103. <div class="sysIcon"></div>
  104. </div> -->
  105. </div>
  106. <div class="meberHeaderBottom flex a-center j-center">
  107. <div class="item flex a-center j-center">
  108. <!-- 联系人:{{ meterInfo.legalPerson }} -->
  109. {{ $t('mine.meber.region') }}:{{ meterInfo.regioName }}
  110. </div>
  111. <div class="item flex a-center j-left" v-on:click="toastBrand(meterInfo.brandList)">
  112. {{ $t('mine.meber.brand') }}:{{meterInfo.brandList | filterBrand}}
  113. </div>
  114. </div>
  115. <!-- <div class="meberHeaderBottom flex a-center j-center">
  116. <div class="item flex a-center j-center">
  117. 签约品牌:
  118. </div>
  119. </div> -->
  120. </div>
  121. <div class="fanliBar flex a-center">
  122. <div class="item flex a-center">
  123. <span>{{ $t('mine.meber.limit') }}:</span>
  124. <div class="flex a-end">
  125. <h4>{{ setCredit }}</h4>
  126. <em>{{ $t('mine.meber.tenThousand') }} RMB</em>
  127. </div>
  128. </div>
  129. <div class="fgx"></div>
  130. <div class="item flex a-center">
  131. <span>{{ $t('mine.meber.integral') }}:</span>
  132. <div class="flex a-end">
  133. <h4>{{roleConfig[subRoleName].pages[2].subEle.myIntegral.isShow ? meterInfo.integration.allIntegration : "***" }}</h4>
  134. <em>{{ $t('common.ge') }}</em>
  135. </div>
  136. </div>
  137. </div>
  138. <div class="settlementCenter">
  139. <div class="settlement-title flex"><span>结算中心</span><span @click="handleSubmit">立即核销</span></div>
  140. <div class="settlement-content flex">
  141. <div class="settlement-item">
  142. <div class="bluetet bigtext">{{rewardData.usablemoney | filtersMoney}}<span>元</span></div>
  143. <div>我的奖励</div>
  144. </div>
  145. <div class="settlement-item">
  146. <div class="bluetet bigtext">{{rewardData.blockmoney | filtersMoney}}<span>元</span></div>
  147. <div>冻结奖励</div>
  148. </div>
  149. <div class="settlement-item">
  150. <div class="bluetet bigtext">{{rewardData.bwrittenoff | filtersMoney}}<span>元</span></div>
  151. <div>待核销</div>
  152. </div>
  153. <div class="settlement-item">
  154. <div class="bluetet bigtext">{{rewardData.writtenoffmoney | filtersMoney}}<span>元</span></div>
  155. <div>已核销</div>
  156. </div>
  157. </div>
  158. </div>
  159. <div class="meberMenu01 flex wrap">
  160. <!-- <div class="item flex col a-center j-center">
  161. <b class="i1"></b>
  162. <h4>返利提交</h4>
  163. </div> -->
  164. <!-- <div class="item flex col a-center j-center">
  165. <b class="i3"></b>
  166. <h4>折款查询</h4>
  167. </div> -->
  168. <div v-if="roleConfig[subRoleName].pages[2].subEle.agent_storage.isShow" class="item flex col a-center j-center" v-on:click="openWin('agent_storage')">
  169. <b class="i4"></b>
  170. <h4>{{ $t('mine.meber.myInventory') }}</h4>
  171. </div>
  172. <div v-if="roleConfig[subRoleName].pages[2].subEle.agentList.isShow" class="item flex col a-center j-center" v-on:click="openWin('agentList')">
  173. <b class="i5"></b>
  174. <h4>{{ $t('mine.meber.myStore') }}</h4>
  175. </div>
  176. <!-- <div class="item flex col a-center j-center">
  177. <b class="i6"></b>
  178. <h4>我的积分</h4>
  179. </div> -->
  180. </div>
  181. <div class="meberList">
  182. <div v-if="roleConfig[subRoleName].pages[2].subEle.orderList.isShow" class="item flex a-center jlr" v-on:click="openWin('orderList')">
  183. <h4>{{ $t('mine.meber.storeOrder') }}</h4>
  184. <div class="flex a-center rightIcons">
  185. <span>{{ $t('mine.meber.view') }}</span>
  186. <i class="iconfont icon-right"></i>
  187. </div>
  188. </div>
  189. <!-- <div class="item flex a-center jlr" v-on:click="openWin('backList')">
  190. <h4>核销记录</h4>
  191. <div class="flex a-center rightIcons">
  192. <span>查看</span>
  193. <i class="iconfont icon-right"></i>
  194. </div>
  195. </div> -->
  196. <div class="item flex a-center jlr" v-on:click="checkVersion">
  197. <h4>{{ $t('mine.meber.checkVersion') }}</h4>
  198. <div class="flex a-center rightIcons" style="color:#f00">
  199. {{ version }}
  200. </div>
  201. </div>
  202. <!-- <div class="item flex a-center jlr" v-on:click="openWin('backMoneyList')">
  203. <h4>返利明细</h4>
  204. <div class="flex a-center rightIcons">
  205. <span>查看</span>
  206. <i class="iconfont icon-right"></i>
  207. </div>
  208. </div> -->
  209. <!-- <div class="item flex a-center jlr" v-on:click="openWin('addressList')">
  210. <h4>收货地址管理</h4>
  211. <div class="flex a-center rightIcons">
  212. <i class="iconfont icon-right"></i>
  213. </div>
  214. </div> -->
  215. <!-- <div class="item flex a-center jlr">
  216. <h4>设置</h4>
  217. <div class="flex a-center rightIcons">
  218. <i class="iconfont icon-right"></i>
  219. </div>
  220. </div> -->
  221. </div>
  222. <div class="anniu">
  223. <input type="button" :value="$t('mine.meber.logOut')" v-on:click="logout()">
  224. </div>
  225. </div>
  226. <!-- <van-tabbar v-model="active" fixed active-color="#0083ca" inactive-color="#808080" ref="footer" class="tabbar_footer">
  227. <van-tabbar-item v-for="(item,index) in icon" :key="index" replace :to="item.path">
  228. <span>{{item.label}}</span>
  229. <template #icon="props">
  230. <img :src="props.active ? item.active : item.inactive" />
  231. </template>
  232. </van-tabbar-item>
  233. </van-tabbar>-->
  234. </div>
  235. </div>
  236. </body>
  237. </html>
  238. <link rel="stylesheet" href="../../../../script/mescroll/mescroll.min.css">
  239. <script type="text/javascript" src="../../../../script/mescroll/mescroll.min.js"></script>
  240. <script type="text/javascript" src="../../../../script/api.js"></script>
  241. <script type="text/javascript" src="../../js/httpRequest_tbr.js"></script>
  242. <script type="text/javascript" src="../../../../script/vue_plugins.js"></script>
  243. <script type="text/javascript">
  244. apiready = function() {
  245. let langType = $api.getStorage('lang') || 'cn'
  246. const i18n = new VueI18n({
  247. locale: langType,//设置语言
  248. messages: {
  249. en: getEn(),
  250. cn: getCn()
  251. }
  252. })
  253. var roleConfig = $role;
  254. new Vue({
  255. el: '#app',
  256. i18n,
  257. data: {
  258. active: 3,
  259. footerHeight: 0,
  260. icon: [{
  261. label: '首页',
  262. path: '/',
  263. active: "../../../../../image/img/images/tabar_home_active.png",
  264. inactive: "../../../../../image/img/images/tabar_home_inactive.png"
  265. }, {
  266. label: '发现',
  267. path: '/discover',
  268. active: '../../../../../image/img/images/faxian.png',
  269. inactive: '../../../../../image/img/images/faxian.png'
  270. }, {
  271. label: '消息',
  272. path: '/information',
  273. active: '../../../../../image/img/images/xiaoxi.png',
  274. inactive: '../../../../../image/img/images/xiaoxi.png'
  275. }, {
  276. label: '我的',
  277. path: '/meber',
  278. active: '../../../../../image/img/images/wode_active.png',
  279. inactive: '../../../../../image/img/images/wode.png'
  280. }],
  281. meterInfo: {
  282. integration: {}
  283. }, // 经销商详情
  284. subRoleName: "superAdmin",
  285. roleConfig: roleConfig,
  286. kunnr: $api.getStorage('kunnr'),
  287. rewardData:{
  288. "blockmoney":0,
  289. "usablemoney":0,
  290. "bwrittenoff":0,
  291. "writtenoffmoney":0
  292. },
  293. unit: "万元"
  294. },
  295. computed: {
  296. version: function() {
  297. return this.getVersion();
  298. },
  299. setCredit: function () {
  300. var isShow = this.roleConfig[this.subRoleName].pages[2].subEle.myMoney.isShow;
  301. var str;
  302. if (isShow) {
  303. if (this.meterInfo.credit && this.meterInfo.credit.showCredit) {
  304. if (langType == 'en') {
  305. return str = parseInt( parseInt (this.meterInfo.credit.showCredit) / 1000 )
  306. } else {
  307. return str = parseInt( parseInt (this.meterInfo.credit.showCredit) / 10000 )
  308. }
  309. } else {
  310. return 0
  311. }
  312. } else {
  313. return str = "***"
  314. }
  315. }
  316. },
  317. methods: {
  318. // 获取经销商信息
  319. getMeberInfo: function(mescroll) {
  320. var url = "getMeberInfoU",
  321. _this = this,
  322. data = {
  323. token: $api.getStorage('token'),
  324. url: 'json',
  325. type: 'body'
  326. };
  327. setTimeout(function() {
  328. if (mescroll) {
  329. mescroll.endSuccess();
  330. }
  331. }, 1000);
  332. this.$post(url, data, function(ret) {
  333. if (ret.code == 0) {
  334. _this.meterInfo = ret.data.data == null ? {
  335. integration: {}
  336. } : ret.data.data;
  337. if (mescroll) {
  338. mescroll.endSuccess();
  339. }
  340. }
  341. })
  342. },
  343. openWin: function(src) {
  344. if($role[this.subRoleName].pages[2].subEle[src].isClick){
  345. this.goWin(src, "../home/"+src+"/"+src + '_win.html', '');
  346. }else{
  347. var index = langType == 'en' ? 1 : 0;
  348. api.toast({
  349. msg: $role[this.subRoleName].pages[2].subEle[src].msg[index]
  350. });
  351. }
  352. },
  353. toastBrand: function(brands) {
  354. var brandss = this.$t('mine.meber.sellBrand');
  355. if (brands) {
  356. for (var i = 0; i < brands.length; i++) {
  357. if(i<brands.length-1){
  358. brandss += brands[i].brand + "|";
  359. }else {
  360. brandss += brands[i].brand;
  361. }
  362. }
  363. }
  364. api.toast({
  365. msg: brandss,
  366. duration: 2000,
  367. location: 'middle'
  368. });
  369. },
  370. handleGetRewardData: function(){
  371. var data = {
  372. "kunnr":this.kunnr,//"0001003778"
  373. url: 'json',
  374. type: 'body'
  375. }, _this = this;
  376. this.$post("settleCenter",data,function(infoRes){
  377. _this.rewardData = infoRes.data.data;
  378. })
  379. },
  380. handleSubmit: function(){
  381. var data = {
  382. "kunnr":this.kunnr,//"0001003778",
  383. url: 'json',
  384. type: 'body'
  385. }, _this = this;
  386. if(this.rewardData.usablemoney>0){
  387. this.showModal("温馨提示","您本次核销金额共【"+this.rewardData.usablemoney+"】元,请您确认是否提交?",["取消","确认"],function(index){
  388. if(index==1){
  389. _this.$post("rebateSubmission",data,function(infoRes){
  390. api.toast({
  391. msg: infoRes.msg,
  392. duration: 2000,
  393. location: 'middle'
  394. });
  395. _this.sendEvent("refushUser");
  396. });
  397. };
  398. })
  399. }else{
  400. api.toast({
  401. msg: "您的奖励为0,无法核销",
  402. duration: 2000,
  403. location: 'middle'
  404. });
  405. }
  406. },
  407. logout: function() {
  408. $api.clearStorage();
  409. this.goWin("login", "../../../login.html", "");
  410. },
  411. // 检查版本更新
  412. checkVersion: function() {
  413. var _this = this;
  414. this.ifHasPrme('storage', function(ret) {
  415. if (ret == true) {
  416. _this.getNewVersionUrlTbr(function() {
  417. });
  418. }
  419. })
  420. },
  421. //切换语言
  422. switchLang() {
  423. i18n.locale = i18n.locale == 'en' ? 'cn' : 'en'
  424. $api.setStorage('lang', i18n.locale)
  425. },
  426. },
  427. filters: {
  428. filterBrand: function(brands) {
  429. var str = '';
  430. if (brands) {
  431. // var brandss = JSON.stringify(brands);
  432. // alertJson(brands);
  433. for (var i = 0; i < brands.length; i++) {
  434. if(i<brands.length-1){
  435. str += brands[i].brand + "|";
  436. }else {
  437. str += brands[i].brand;
  438. }
  439. }
  440. if (str != null && str.length > 11) {
  441. str = str.substring(0, 10) + "...";
  442. }
  443. }
  444. return str;
  445. },
  446. filtersMoney: function(val){
  447. var num;
  448. if(val/10000>1){
  449. num = val/10000 +"万"
  450. }else{
  451. num = val
  452. };
  453. return num;
  454. }
  455. },
  456. mounted: function() {
  457. var _this = this;
  458. this.subRoleName = $api.getStorage('subRoleName');
  459. this.addEvent("refushUser", function() {
  460. _this.kunnr = $api.getStorage('kunnr');
  461. _this.getMeberInfo();
  462. _this.handleGetRewardData();
  463. })
  464. this.getMeberInfo();
  465. this.handleGetRewardData();
  466. this.configDownAndPull("mescroll", function(mescroll) {
  467. _this.getMeberInfo(mescroll);
  468. _this.handleGetRewardData();
  469. }, function() {
  470. }, false);
  471. }
  472. })
  473. }
  474. </script>