index.html 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <meta http-equiv="Content-Type" content="application/xhtml+xml;charset=UTF-8">
  6. <meta http-equiv="Cache-Control" content="no-cache,no-store,must-revalidate">
  7. <meta http-equiv="pragma" content="no-cache">
  8. <meta http-equiv="expires" content="0">
  9. <meta name="description" content=""/>
  10. <meta name="keywords" content="扫码支付,线上投币,运营数据,物联网"/>
  11. <meta name="format-detection" content="telphone=no,email=no"/>
  12. <meta name="viewport"
  13. content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>
  14. <title>设备管理系统</title>
  15. <link rel="stylesheet" href="https://cdn.washpayer.com/components/lib/mui.min.css"/>
  16. <link rel="stylesheet" href="/components/custom/css/common.css"/>
  17. <link rel="stylesheet" href="css/xyf.common.min.css"/>
  18. <style>
  19. </style>
  20. </head>
  21. <body>
  22. <div id="container" style="padding-bottom: 50px" class="mui-hidden">
  23. <div class="custom-bottom ">
  24. <header class="index-hd ">
  25. <div>
  26. <div class="hd-tab" onclick="toBenefit(1)">
  27. 账户余额(元)<span id="totalBalance">0.00</span>
  28. </div>
  29. <div class="mui-table hd-cell">
  30. <div class="mui-table-cell mui-ellipsis" onclick="toBenefit(2)">
  31. <span>资金余额</span><em id="deviceBalance">0.00元</em>
  32. </div>
  33. <div class="mui-table-cell mui-ellipsis " onclick="toBenefit(3)">
  34. <span>分润余额</span><em id="ledgerBalance">0.00元</em>
  35. </div>
  36. </div>
  37. </div>
  38. </header>
  39. </div>
  40. <div class=" mui-content index-bd">
  41. <div class="menu-block-wear custom-bottom border-top border-bottom">
  42. <div class="menu-block mui-row mui-clearfix">
  43. <a class="mui-col-xs-6 mui-col-sm-6 row-cell" href="javascript:scanQRCodeToReg();"
  44. id="scanCode" key="device_reg">
  45. <div class="mui-row">
  46. <p class="mui-col-xs-3 mui-col-sm-3 mui-text-center">
  47. <i class="iconfont icon-saomiao c-green"></i>
  48. </p>
  49. <p class="mui-col-xs-9 mui-col-sm-9">
  50. 扫一扫<span class="mui-ellipsis">登录、注册设备</span>
  51. </p>
  52. </div>
  53. </a>
  54. <a class="mui-col-xs-6 mui-col-sm-6 row-cell" href="device-mgr.html" key="device_management">
  55. <div class="mui-row">
  56. <p class="mui-col-xs-3 mui-col-sm-3 mui-text-center">
  57. <i class="iconfont icon-device c-blue"></i>
  58. </p>
  59. <p class="mui-col-xs-9 mui-col-sm-9">
  60. 设备管理<span class="mui-ellipsis">共<em id="total">0</em>台,在线<em id="online"
  61. class="c-green">0</em>台</span>
  62. </p>
  63. </div>
  64. </a>
  65. <a class="mui-col-xs-6 mui-col-sm-6 row-cell" href="income.html" key="business_stats">
  66. <div class="mui-row">
  67. <p class="mui-col-xs-3 mui-col-sm-3 mui-text-center">
  68. <i class="iconfont icon-income c-red"></i>
  69. </p>
  70. <p class="mui-col-xs-9 mui-col-sm-9">
  71. 经营统计<span class="mui-ellipsis">经营数据监控</span>
  72. </p>
  73. </div>
  74. </a>
  75. <!--纸巾机等设备-->
  76. <a class="mui-col-xs-6 mui-col-sm-6 row-cell " href="/dealer/index.html#/stock/stockList"
  77. id="stock_management" key="stock_management">
  78. <div class="mui-row">
  79. <p class="mui-col-xs-3 mui-col-sm-3 mui-text-center">
  80. <i class="iconfont icon-stock c-primary-new"></i>
  81. </p>
  82. <p class="mui-col-xs-9 mui-col-sm-9">
  83. 库存管理<span class="mui-ellipsis">设备的商品库存</span>
  84. </p>
  85. </div>
  86. </a>
  87. <a class="mui-col-xs-6 mui-col-sm-6 row-cell " href="/dealer/index.html#/order/list" id="order_query"
  88. key="order_query">
  89. <div class="mui-row">
  90. <p class="mui-col-xs-3 mui-col-sm-3 mui-text-center">
  91. <i class="iconfont icon-check c-lgreen"></i>
  92. </p>
  93. <p class="mui-col-xs-9 mui-col-sm-9">
  94. 订单查询<span class="mui-ellipsis">追溯用户充值</span>
  95. </p>
  96. </div>
  97. </a>
  98. </div>
  99. </div>
  100. <div class="menu-block-wear custom-bottom border-top border-bottom ">
  101. <div class="menu-block mui-row mui-clearfix">
  102. <a class="mui-col-xs-6 mui-col-sm-6 row-cell" href="discount-menu.html" id="payoff_recharge"
  103. key="payoff_recharge">
  104. <div class="mui-row">
  105. <p class="mui-col-xs-3 mui-col-sm-3 mui-text-center">
  106. <i class="iconfont icon-coupons c-orange"></i>
  107. </p>
  108. <p class="mui-col-xs-9 mui-col-sm-9">
  109. 优惠设置<span class="mui-ellipsis">10元=N个币</span>
  110. </p>
  111. </div>
  112. </a>
  113. <a class="mui-col-xs-6 mui-col-sm-6 row-cell " href="/dealer/index.html#/user/list" id="user_management"
  114. key="user_management">
  115. <div class="mui-row">
  116. <p class="mui-col-xs-3 mui-col-sm-3 mui-text-center">
  117. <i class="iconfont icon-member c-lgreen"></i>
  118. </p>
  119. <p class="mui-col-xs-9 mui-col-sm-9">
  120. 用户管理<span class="mui-ellipsis">用户充值、消费记录</span>
  121. </p>
  122. </div>
  123. </a>
  124. <a class="mui-col-xs-6 mui-col-sm-6 row-cell " href="/dealer/index.html#/partner">
  125. <div class="mui-row">
  126. <p class="mui-col-xs-3 mui-col-sm-3 mui-text-center">
  127. <i class="iconfont icon-group_fill c-blue"></i>
  128. </p>
  129. <p class="mui-col-xs-9 mui-col-sm-9">
  130. 合伙人<span class="mui-ellipsis">管理我的合伙人</span>
  131. </p>
  132. </div>
  133. </a>
  134. <a class="mui-col-xs-6 mui-col-sm-6 row-cell " href="card-manage.html" id="card_management"
  135. key="card_management">
  136. <div class="mui-row">
  137. <p class="mui-col-xs-3 mui-col-sm-3 mui-text-center">
  138. <i class="iconfont icon-card c-primary"></i>
  139. </p>
  140. <p class="mui-col-xs-9 mui-col-sm-9">
  141. 实体卡管理<span class="mui-ellipsis">查询充值、消费记录</span>
  142. </p>
  143. </div>
  144. </a>
  145. <a class="mui-col-xs-6 mui-col-sm-6 row-cell " href="/dealer/index.html#/interconnection" id="interconnection"
  146. key="interconnection">
  147. <div class="mui-row">
  148. <p class="mui-col-xs-3 mui-col-sm-3 mui-text-center">
  149. <i class="iconfont icon-drive c-blue"></i>
  150. </p>
  151. <p class="mui-col-xs-9 mui-col-sm-9">
  152. 互联互通<span class="mui-ellipsis">汽车桩互联互通</span>
  153. </p>
  154. </div>
  155. </a>
  156. <a class="mui-col-xs-6 mui-col-sm-6 row-cell" href="user-feedback.html" id="user_feedback"
  157. key="user_feedback">
  158. <div class="mui-row">
  159. <p class="mui-col-xs-3 mui-col-sm-3 mui-text-center">
  160. <i class="iconfont icon-feedback c-green"></i>
  161. </p>
  162. <p class="mui-col-xs-9 mui-col-sm-9">
  163. 用户反馈<span class="mui-ellipsis">金币申请、反馈故障</span>
  164. </p>
  165. <i class="icon-tip-num feedbackIconTip mui-hidden"></i>
  166. </div>
  167. </a>
  168. <a class="mui-col-xs-6 mui-col-sm-6 row-cell" href="/dealer/index.html#/alarm/list"
  169. key="support_alarm" id="support_alarm">
  170. <div class="mui-row">
  171. <p class="mui-col-xs-3 mui-col-sm-3 mui-text-center">
  172. <i class="iconfont icon-gaojing c-red"></i>
  173. </p>
  174. <p class="mui-col-xs-9 mui-col-sm-9">
  175. 告警事件<span class="mui-ellipsis">设备预警、异常管理</span>
  176. </p>
  177. <i class="icon-tip-num unhandledAlarms mui-hidden"></i>
  178. </div>
  179. </a>
  180. <a class="mui-col-xs-6 mui-col-sm-6 row-cell" href="/dealer/index.html#/user/identify"
  181. key="user_identify" id="user_identify">
  182. <div class="mui-row">
  183. <p class="mui-col-xs-3 mui-col-sm-3 mui-text-center">
  184. <i class="iconfont icon-idcard c-blue"></i>
  185. </p>
  186. <p class="mui-col-xs-9 mui-col-sm-9">
  187. 用户审核<span class="mui-ellipsis">用户身份信息审核</span>
  188. </p>
  189. </div>
  190. </a>
  191. <a class="mui-col-xs-6 mui-col-sm-6 row-cell" href="/dealer/index.html#/batteryManager/list"
  192. key="batteryManager" id="batteryManager">
  193. <div class="mui-row">
  194. <p class="mui-col-xs-3 mui-col-sm-3 mui-text-center">
  195. <i class="iconfont icon-battery c-green"></i>
  196. </p>
  197. <p class="mui-col-xs-9 mui-col-sm-9">
  198. 电池管理<span class="mui-ellipsis">远程追踪电池</span>
  199. </p>
  200. </div>
  201. </a>
  202. <a class="mui-col-xs-6 mui-col-sm-6 row-cell" href="/dealer/index.html#/templateManager/category"
  203. key="templateManager" id="templateManager">
  204. <div class="mui-row">
  205. <p class="mui-col-xs-3 mui-col-sm-3 mui-text-center">
  206. <i class="iconfont icon-account c-green"></i>
  207. </p>
  208. <p class="mui-col-xs-9 mui-col-sm-9">
  209. 模板管理<span class="mui-ellipsis">管理各类模板</span>
  210. </p>
  211. </div>
  212. </a>
  213. <a class="mui-col-xs-6 mui-col-sm-6 row-cell" href="/dealer/index.html#/apiManager/apiCenter"
  214. key="apiManager" id="apiManager">
  215. <div class="mui-row">
  216. <p class="mui-col-xs-3 mui-col-sm-3 mui-text-center">
  217. <i class="iconfont icon-jiedian c-blue"></i>
  218. </p>
  219. <p class="mui-col-xs-9 mui-col-sm-9">
  220. API接口管理<span class="mui-ellipsis">系统接口对接</span>
  221. </p>
  222. </div>
  223. </a>
  224. <a class="mui-col-xs-6 mui-col-sm-6 row-cell" href="/dealer/index.html#/disableAd"
  225. key="disableAdManager" id="disableAdManager">
  226. <div class="mui-row">
  227. <p class="mui-col-xs-3 mui-col-sm-3 mui-text-center">
  228. <i class="iconfont icon-mute c-green"></i>
  229. </p>
  230. <p class="mui-col-xs-9 mui-col-sm-9">
  231. 禁用广告<span class="mui-ellipsis">按设备禁用用户广告</span>
  232. </p>
  233. </div>
  234. </a>
  235. </div>
  236. </div>
  237. </div>
  238. <div class="help-card autoheight mui-hidden" id="incomeHelpCard">
  239. <div class="help-bd">
  240. <h4>收益说明</h4>
  241. <h5>1.在线支付收益</h5>
  242. <p>用户通过微信、支付宝线上支付产生的今日收入和今日现金退款的差额。如果用户没有开通商户,可点击【钱包-余额】进行提现。如果用户已经开通商户,收益会次日自动结算到用户开具商户时提供的结算银行卡。收益以用户充值、快速支付为准,用户使用余额消费不再重复计入收益。</p>
  243. <div class="show_offline_coins ">
  244. <h5>2.线下投币</h5>
  245. <p>用户线下使用硬币投币,可以通过经营统计查看详情。您可以到设备的投币箱清点硬币。</p>
  246. </div>
  247. </div>
  248. <div class="help-close">我知道了</div>
  249. </div>
  250. </div>
  251. </body>
  252. <script src="https://cdn.washpayer.com/components/lib/jquery.min.js?v=20190712"></script>
  253. <script src="https://cdn.washpayer.com/components/lib/mui.min.js"></script>
  254. <script src="https://res.wx.qq.com/open/js/jweixin-1.1.0.js"></script>
  255. <script src="/components/custom/js/common.js"></script>
  256. <script src="js/xyf.common.js"></script>
  257. <script src="https://cdn.washpayer.com/npm/clipboard@2.0.4/dist/clipboard.min.js"></script>
  258. <script>
  259. (function () {
  260. //ios返回刷新
  261. var isPageHide = false;
  262. window.addEventListener('pageshow', function () {
  263. if (isPageHide) {
  264. window.location.reload();
  265. }
  266. });
  267. window.addEventListener('pagehide', function () {
  268. isPageHide = true;
  269. });
  270. })();
  271. window.initDealerNav && initDealerNav('home', initHomePage);
  272. //检测是否有公告
  273. window.sendRequest && sendRequest("/common/getNotifications", "GET", {},
  274. function (res) {
  275. if (res.result == 1) {
  276. var obj = res.data;
  277. if (obj.dataList && obj.dataList.length > 0) {
  278. var item0 = obj.dataList[0];
  279. var text = item0.text;//通知信息
  280. var id = item0.id;//通知编号
  281. showNotification(id, text);
  282. }
  283. }
  284. }
  285. );
  286. //检测是否有通知
  287. window.sendRequest && sendRequest("/dealer/todo/list", "GET", {},
  288. function (res) {
  289. if (res.result === 1) {
  290. var obj = res.data;
  291. var list = obj.dataList
  292. if (list && list.length) {
  293. for (var index in list) {
  294. todoMsgDialog(list[index])
  295. }
  296. }
  297. }
  298. }
  299. );
  300. var adWord = getLocalStorage("DEALER_AD_WORD");
  301. if (!adWord) {
  302. window.sendRequest && sendRequest('/ad/user-adword', 'GET', {},
  303. function (res) {
  304. var {payload} = res
  305. // 复制分析连接到 剪切板
  306. var clipboard = new ClipboardJS('body', {
  307. text: function (trigger) {
  308. return payload.content
  309. }
  310. });
  311. // 销毁事件,避免重复
  312. clipboard.on('success', function (e) {
  313. setLocalStorage("DEALER_AD_WORD", true, 1000 * 3600 * 12);//12小时可以领一次
  314. clipboard.destroy();
  315. });
  316. });
  317. }
  318. showTestInfo();//测试系统检测
  319. /**
  320. * @param item {Object}
  321. * @param item.id {string}
  322. * @param item.popOnlyOnce {boolean}
  323. * @param item.force {boolean}
  324. * @param item.content {string}
  325. * @param item.title {string}
  326. * @param item.link {string}
  327. */
  328. function todoMsgDialog(item) {
  329. // 经销商的代办消息的弹窗
  330. // ID 检查
  331. if (!item || !item.id) {
  332. return;
  333. }
  334. // 是否是显示一次还是多次显示 由后端决定
  335. if (item.popOnlyOnce && sessionStorage.getItem("TodoMsgDialog" + item.id)) {
  336. sessionStorage.getItem("TodoMsgDialog" + item.id)
  337. return;
  338. }
  339. // 构建消息BUTTON
  340. // 强制执行的必须去处理
  341. var btnArray = ["去处理", "我知道了"]
  342. mui.confirm(item.content, item.title, btnArray, function (e) {
  343. if(item.popOnlyOnce) {
  344. sessionStorage.setItem("TodoMsgDialog" + item.id, "1");
  345. }
  346. if (e.index === 0) {
  347. // 避免ios的弹窗不关闭
  348. setTimeout(function () {
  349. location.href = item.link
  350. }, 1)
  351. } else {
  352. if (item.force) {
  353. var message = "您的商户尚未完成,请先前往商户界面完成当前商户步骤,才能进行其他操作!"
  354. mui.alert(message, "提示")
  355. return false;
  356. }
  357. }
  358. });
  359. }
  360. function initHomePage() {
  361. //主页需要mask
  362. window.sendRequest && sendRequest({
  363. url: "/dealer/homepageData?random=" + Math.random() * 1000,
  364. type: "GET",
  365. data: null,
  366. mask: "加载主页数据...",
  367. success: function (response) {
  368. if (response.result == 1) {
  369. var info = response.payload;
  370. $("#totalBalance").html(info.totalBalance);
  371. $("#deviceBalance").html(info.deviceBalance + "元");
  372. $("#ledgerBalance").html(info.ledgerBalance + "元");
  373. $("#total").html(info.onlineCount + info.offlineCount);
  374. $("#online").html(info.onlineCount);
  375. //展示用户反馈红点
  376. if (info.feedback) {
  377. $(".feedbackIconTip").removeClass("mui-hidden").text(info.feedback);
  378. }
  379. //展示流量卡充值提醒
  380. if (info.simCardTip) {
  381. $(".simCardIconTip").removeClass("mui-hidden").text(info.simCardTip.expireCount);
  382. todoMsgDialog(info.simCardTip.todoMsg);
  383. }
  384. //未处理的告警数目
  385. if (info.unhandledAlarms) {
  386. if (info.unhandledAlarms > 99) {
  387. info.unhandledAlarms = '99+'
  388. }
  389. $(".unhandledAlarms").removeClass("mui-hidden").text(info.unhandledAlarms);
  390. }
  391. // 合伙人不能看到某些菜单,准确来说只显示:经营统计,设备管理
  392. if (info.isPurePartner) {
  393. $("#scanCode, #order_query,#remote_upper, #payoff_recharge, #yingxiaohuodong, #payoff_activity,#sim_card,#user_feedback,#support_alarm,#user_identify,#zhenguduo").remove()
  394. $("#user_management").remove();
  395. $("#card_management").remove();
  396. $("#stock_management").remove();
  397. }
  398. if (info.inhouseApp != null) {
  399. localStorage.setItem("inhouseApp", info.inhouseApp)
  400. }
  401. } else {
  402. mui.toast(response.description);
  403. }
  404. pagePermission();
  405. }
  406. });
  407. };
  408. // 渲染菜单,并修复多余的底边
  409. function pagePermission(callback) {
  410. getAccountPermission(function (subPayload) {
  411. var homepageData = subPayload.homepageData
  412. var mainMenu = subPayload.mainMenu
  413. for (var key in homepageData) {
  414. if (!homepageData[key]) {
  415. $("[key='" + key + "']").remove()
  416. }
  417. }
  418. for (var key in mainMenu) {
  419. // 如果配置了false,则不显示,否则默认认为是显示的
  420. if (!mainMenu[key]) {
  421. $("[key='" + key + "']").remove()
  422. }
  423. }
  424. // 如果收益种类没有了,则移除这个dom
  425. var hasShowCells = $(".hd-cell .mui-table-cell")
  426. if (hasShowCells.length == 0) {
  427. $(".hd-cell").remove();
  428. } else if (hasShowCells.length == 1) {
  429. // 如果显示的唯一cell是在线支付,则影藏掉,因为和整个收益相等
  430. if ($("[key='today_pay_income']").length === 1) {
  431. $(".hd-cell").remove();
  432. }
  433. }
  434. // 如果该组菜单没有子菜单,则移除掉,避免出现线条,menu-block-wear row-cell这两个class不要乱用
  435. $(".menu-block-wear").each(function () {
  436. var menuList = $(this).find(".row-cell")
  437. if (menuList.length === 0) {
  438. $(this).remove();
  439. }
  440. });
  441. $("#container").removeClass("mui-hidden");//获取数据成功后才展示界面
  442. //渲染菜单
  443. menuPermission();
  444. }
  445. );
  446. }
  447. //help
  448. function help() {
  449. window.event && event.stopPropagation()
  450. $('body').append('<div class="mui-backdrop"></div>');
  451. $('body, .mui-backdrop').on('touchmove', function (e) {
  452. e.preventDefault();
  453. });
  454. $('#incomeHelpCard').removeClass('mui-hidden');
  455. $("#incomeHelpCard .help-close").tap(function () {
  456. $('#incomeHelpCard').addClass('mui-hidden');
  457. $('body').off('touchmove');
  458. $('.mui-backdrop').off('touchmove').remove();
  459. return false;
  460. });
  461. }
  462. //去充值卡的页面,必须先鉴权
  463. function goCardManage() {
  464. location.href = "/dealer/wechat/entry?type=simCard&redirect=" + encodeURIComponent("/app/deviceCard.html");
  465. }
  466. function goJoin() {
  467. location.href = "/dealer/wechat/entry?type=join&redirect=" + encodeURIComponent("/dealer/index.html#/join/main");
  468. }
  469. function toBenefit(top) {
  470. var benefitUrl;
  471. if (top) {
  472. switch (top) {
  473. case 1:
  474. benefitUrl = '/app/wallet/wallet.html'
  475. break;
  476. case 2:
  477. break;
  478. case 3:
  479. benefitUrl = '/dealer/index.html#/benefit'
  480. break;
  481. }
  482. }
  483. if (benefitUrl) {
  484. goPage(benefitUrl);
  485. }
  486. }
  487. </script>
  488. </html>