Procházet zdrojové kódy

微信项目页面和tips页

laiguoran před 4 roky
rodič
revize
d4cdd8f073

+ 50 - 6
app/controller/wechat_controller.js

@@ -76,11 +76,13 @@ module.exports = app => {
                     errorMessage,
                     user,
                 };
-                // ctx.body = renderData;
                 await ctx.render('wechat/bind.ejs', renderData);
             } catch (e) {
-                console.log(e);
-                ctx.body = e;
+                const renderData = {
+                    status: 1,
+                    msg: e,
+                };
+                await ctx.render('wechat/tips.ejs', renderData);
             }
         }
 
@@ -128,7 +130,11 @@ module.exports = app => {
                     },
                 };
                 await app.wechat.api.sendTemplate(ctx.session.wechatToken.openid, templateId, url, '', msgData);
-                ctx.body = '绑定成功';
+                const renderData = {
+                    status: 0,
+                    msg: '绑定成功',
+                };
+                await ctx.render('wechat/tips.ejs', renderData);
             } catch (error) {
                 this.log(error);
                 ctx.session.loginError = error;
@@ -162,10 +168,48 @@ module.exports = app => {
                 }
                 ctx.redirect(ctx.query.url);
             } catch (error) {
-                console.log(error);
-                ctx.body = error;
+                const renderData = {
+                    status: 1,
+                    msg: error,
+                };
+                await ctx.render('wechat/tips.ejs', renderData);
             }
+        }
 
+        async project(ctx) {
+            try {
+                // const user = await app.wechat.oauth.getUser(ctx.session.wechatToken.openid);
+                const openid = ctx.session.wechatToken.openid;
+                // const openid = 'fasdfklahsdklf';
+                const paList = await ctx.service.projectAccount.getAllDataByCondition({ where: { wx_openid: openid } });
+                const pidList = ctx.app._.uniq(ctx.app._.map(paList, 'project_id'));
+                const pList = [];
+                const redirect_url = ctx.protocol + '://' + ctx.host + '/wap/dashboard';
+                for (const p of pidList) {
+                    const pro = await ctx.service.project.getDataById(p);
+                    pList.push(pro);
+                }
+                if (pList.length === 0) {
+                    throw '该微信号未绑定任何项目';
+                }
+                // 获取系统维护信息
+                const maintainData = await ctx.service.maintain.getDataById(1);
+                const renderData = {
+                    maintainData,
+                    maintainConst,
+                    // user,
+                    pList,
+                    redirect_url,
+                };
+                // ctx.body = renderData;
+                await ctx.render('wechat/project.ejs', renderData);
+            } catch (e) {
+                const renderData = {
+                    status: 1,
+                    msg: e,
+                };
+                await ctx.render('wechat/tips.ejs', renderData);
+            }
         }
 
         async oauthTxt(ctx) {

+ 1 - 0
app/router.js

@@ -381,6 +381,7 @@ module.exports = app => {
     app.get('/wx/bind', wechatAuth, 'wechatController.bind');
     app.post('/wx/bindwx', wechatAuth, 'wechatController.bindwx');
     app.get('/wx/url2wap', wechatAuth, 'wechatController.url2wap');
+    app.get('/wx/project', wechatAuth, 'wechatController.project');
     app.get('/wx/test', 'wechatController.testwx');
     app.get('/MP_verify_t3MkWAMqplVxPjmr.txt', 'wechatController.oauthTxt');
 }

+ 69 - 0
app/view/wechat/project.ejs

@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no">
+    <meta http-equiv="x-ua-compatible" content="ie=edge">
+    <title>项目列表-计量支付</title>
+    <link rel="stylesheet" href="/public/css/bootstrap/bootstrap.min.css">
+    <link rel="stylesheet" href="/public/css/wap/main.css">
+    <link rel="stylesheet" href="/public/css/toast.css">
+    <link rel="stylesheet" href="/public/css/font-awesome/font-awesome.min.css">
+    <link rel="shortcut icon" href="/public/images/favicon.ico">
+</head>
+<body>
+<div class="container">
+    <!--顶部-->
+    <nav class="fixed-top bg-dark">
+        <div class="my-2 d-flex justify-content-between">
+            <span class="text-white ml-3">项目列表</span>
+            <div class="mr-3">
+                <!-- <div class="dropdown">
+                  <button class="btn btn-sm btn-light dropdown-toggle" type="button" data-toggle="dropdown">
+                    张三
+                  </button>
+                  <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
+                    <a class="dropdown-item" href="#">退出登录</a>
+                  </div>
+                </div> -->
+            </div>
+        </div>
+    </nav>
+    <% if (maintainData.status === maintainConst.status.ongoing) { %>
+        <form class="card m-3 mt-3">
+            <div class="card-body">
+                <h4 class="text-center mb-3"><i class="fa fa-wrench"></i>系统正在维护</h4>
+                <h4>预计恢复时间<%- (maintainData.duration !== maintainConst.duration.forever ? '为 ' + ctx.helper.dateTran(parseFloat(maintainData.maintain_time) + ctx.helper.timeAdd(maintainData.duration)) : ' 暂未确定') %></h4>
+                <h4>造成不便敬请谅解。</h4>
+            </div>
+        </form>
+    <% } else { %>
+    <!--待审批期列表-->
+    <div class="py-6">
+        <p class="text-muted">您的微信已绑定以下项目:</p>
+        <% for (const p of pList) { %>
+        <div class="card mb-3">
+            <div class="card-header d-flex justify-content-between">
+                <span><%- p.name %></span>
+            </div>
+            <div class="d-flex justify-content-between">
+                <div class=" p-2 px-3">项目编号:<%- p.code %></div>
+                <div class=""><a href="/wx/url2wap?project=<%- p.code %>&url=<%- redirect_url %>" class="btn btn-block btn-link">进入项目</a></div>
+            </div>
+        </div>
+        <% } %>
+    </div>
+    <% } %>
+</div>
+<!-- JS. -->
+<div class="toast" style="text-align: center">
+    <i class="icon fa"></i>
+    <span class="message"></span>
+</div>
+<!-- JS. -->
+<script src="/public/js/jquery/jquery-3.2.1.min.js"></script>
+<script src="/public/js/popper/popper.min.js"></script>
+<script src="/public/js/bootstrap/bootstrap.min.js"></script>
+<script src="/public/js/wap/global.js"></script>
+</body>
+</html>

+ 49 - 0
app/view/wechat/tips.ejs

@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no">
+    <meta http-equiv="x-ua-compatible" content="ie=edge">
+    <title>提醒-计量支付</title>
+    <link rel="stylesheet" href="/public/css/bootstrap/bootstrap.min.css">
+    <link rel="stylesheet" href="/public/css/wap/main.css">
+    <link rel="stylesheet" href="/public/css/toast.css">
+    <link rel="stylesheet" href="/public/css/font-awesome/font-awesome.min.css">
+    <link rel="shortcut icon" href="/public/images/favicon.ico">
+</head>
+<body>
+<div class="container">
+    <!--顶部-->
+    <nav class="fixed-top bg-dark">
+        <div class="my-2 d-flex justify-content-between">
+            <span class="text-white ml-3">纵横云计量</span>
+            <div class="mr-3">
+            </div>
+        </div>
+    </nav>
+    <!--待审批期列表-->
+    <div class="py-6">
+        <div class="card mb-3">
+            <h1 class="text-muted text-center mt-4"><i class="fa fa-exclamation-triangle"></i></h1>
+            <div class="card-body">
+                <% if (status === 1) { %>
+                    <p class="text-danger"><i class="fa fa-remove"></i> <%- msg %></p>
+                <% } else { %>
+                    <p class="text-success"><i class="fa fa-check"></i> <%- msg %></p>
+                <% } %>
+            </div>
+        </div>
+    </div>
+</div>
+<!-- JS. -->
+<div class="toast" style="text-align: center">
+    <i class="icon fa"></i>
+    <span class="message"></span>
+</div>
+<!-- JS. -->
+<script src="/public/js/jquery/jquery-3.2.1.min.js"></script>
+<script src="/public/js/popper/popper.min.js"></script>
+<script src="/public/js/bootstrap/bootstrap.min.js"></script>
+<script src="/public/js/wap/global.js"></script>
+</body>
+</html>