浏览代码

日志相关:1. 记录提交业务数据错误 2. 区分模块记录全部业务提价数据
登录判断:1. 普通get、post重定向到登录页 2. ajax交互返回提示用户未登录

MaiXinRong 6 年之前
父节点
当前提交
a114a42a79

+ 3 - 0
app.js

@@ -16,10 +16,13 @@ const _ = require('lodash');
 const BaseService = require('./app/base/base_service');
 const BaseService = require('./app/base/base_service');
 const BaseController = require('./app/base/base_controller');
 const BaseController = require('./app/base/base_controller');
 
 
+const menu = require('./config/menu');
+
 module.exports = app => {
 module.exports = app => {
     app.uuid = uuid;
     app.uuid = uuid;
     app.moment = moment;
     app.moment = moment;
     app._ = _;
     app._ = _;
+    app.menu = menu;
     // 数据模型基类
     // 数据模型基类
     app.BaseService = BaseService;
     app.BaseService = BaseService;
 
 

+ 26 - 1
app/base/base_controller.js

@@ -23,6 +23,7 @@ class BaseController extends Controller {
         super(ctx);
         super(ctx);
         this.messageType = messageType;
         this.messageType = messageType;
         this.jsValidator = this.app.jsValidator;
         this.jsValidator = this.app.jsValidator;
+        this.menu = this.app.menu;
         // 当前菜单
         // 当前菜单
         ctx.menu = menuList[ctx.controllerName] === undefined ? {} : menuList[ctx.controllerName];
         ctx.menu = menuList[ctx.controllerName] === undefined ? {} : menuList[ctx.controllerName];
         ctx.title = ctx.menu === {} ? '' : ctx.menu.name;
         ctx.title = ctx.menu === {} ? '' : ctx.menu.name;
@@ -70,7 +71,7 @@ class BaseController extends Controller {
             };
             };
             await this.ctx.render('layout/layout.ejs', renderData);
             await this.ctx.render('layout/layout.ejs', renderData);
         } catch(err) {
         } catch(err) {
-            console.log(err);
+            this.log(err);
         }
         }
     }
     }
 
 
@@ -105,6 +106,30 @@ class BaseController extends Controller {
             message,
             message,
         };
         };
     }
     }
+
+    async getCommonRenderData (ctx) {
+        const tenderId = ctx.params.id;
+        const tender = await ctx.service.tender.getTender(tenderId);
+        if (tender.project_id !== ctx.session.sessionProject.id) {
+            this.setMessage('您无权查看该项目', this.messageType.ERROR);
+            throw '您无权查看该项目';
+        }
+
+        return { tender, tenderMenu: this.menu.tenderMenu, preUrl: '/tender/' + tenderId, };
+    }
+
+    log(error) {
+        if (error.stack) {
+            this.ctx.logger.error(error);
+        } else {
+            this.ctx.getLogger('fail').info(JSON.stringify({
+                error: error,
+                project: this.ctx.session.sessionProject,
+                user: this.ctx.session.sessionUser,
+                body: this.ctx.session.body,
+            }));
+        }
+    }
 }
 }
 
 
 module.exports = BaseController;
 module.exports = BaseController;

+ 2 - 2
app/controller/account_controller.js

@@ -32,7 +32,7 @@ module.exports = app => {
                 await this.layout('account/index.ejs', renderData);
                 await this.layout('account/index.ejs', renderData);
             } catch (error) {
             } catch (error) {
                 this.setMessage(error.toString(), this.messageType.ERROR);
                 this.setMessage(error.toString(), this.messageType.ERROR);
-                ctx.redirect(ctx.request.headers.referer);
+                ctx.redirect(ctx.request.header.referer);
             }
             }
         }
         }
 
 
@@ -59,7 +59,7 @@ module.exports = app => {
             } catch (error) {
             } catch (error) {
                 this.setMessage(error.toString(), this.messageType.ERROR);
                 this.setMessage(error.toString(), this.messageType.ERROR);
             }
             }
-            ctx.redirect(ctx.request.headers.referer);
+            ctx.redirect(ctx.request.header.referer);
         }
         }
 
 
         /**
         /**

+ 1 - 2
app/controller/boot_controller.js

@@ -39,9 +39,8 @@ module.exports = app => {
                 ctx.validate(rule);
                 ctx.validate(rule);
 
 
                 const result = await ctx.service.customer.boot(ctx.request.body);
                 const result = await ctx.service.customer.boot(ctx.request.body);
-                console.log(result);
             } catch (error) {
             } catch (error) {
-                console.log(error);
+                this.log(err);
             }
             }
             ctx.body = 'test';
             ctx.body = 'test';
         }
         }

+ 5 - 6
app/controller/change_controller.js

@@ -86,8 +86,7 @@ module.exports = app => {
             try {
             try {
                 await this._filterChanges(ctx, audit.filter.status.uncheck);
                 await this._filterChanges(ctx, audit.filter.status.uncheck);
             } catch (err) {
             } catch (err) {
-                console.log(err);
-                this.logger.err(err);
+                this.log(err);
                 ctx.redirect('/dashboard');
                 ctx.redirect('/dashboard');
             }
             }
         }
         }
@@ -161,7 +160,7 @@ module.exports = app => {
 
 
                 ctx.body = { err: 0, msg: '', data: change };
                 ctx.body = { err: 0, msg: '', data: change };
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 ctx.body = { err: 1, msg: err.toString() };
                 ctx.body = { err: 1, msg: err.toString() };
             }
             }
         }
         }
@@ -201,7 +200,7 @@ module.exports = app => {
                 };
                 };
                 await this.layout('change/info.ejs', renderData);
                 await this.layout('change/info.ejs', renderData);
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 ctx.redirect('/change');
                 ctx.redirect('/change');
             }
             }
         }
         }
@@ -226,7 +225,7 @@ module.exports = app => {
                 await this.layout('change/bills.ejs', renderData, 'change/bills_modal.ejs');
                 await this.layout('change/bills.ejs', renderData, 'change/bills_modal.ejs');
 
 
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 ctx.redirect('/change');
                 ctx.redirect('/change');
             }
             }
         }
         }
@@ -251,7 +250,7 @@ module.exports = app => {
                 await this.layout('change/file.ejs', renderData, 'change/file_modal.ejs');
                 await this.layout('change/file.ejs', renderData, 'change/file_modal.ejs');
 
 
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 ctx.redirect('/change');
                 ctx.redirect('/change');
             }
             }
         }
         }

+ 2 - 2
app/controller/deal_bills_controller.js

@@ -77,7 +77,7 @@ module.exports = app => {
 
 
                 responseData.data =  await this.ctx.service.dealBills.getAllDataByCondition({ where: {tender_id: tenderId} });
                 responseData.data =  await this.ctx.service.dealBills.getAllDataByCondition({ where: {tender_id: tenderId} });
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 // 失败需要消耗掉stream 以防卡死
                 // 失败需要消耗掉stream 以防卡死
                 if (stream) {
                 if (stream) {
                     await sendToWormhole(stream);
                     await sendToWormhole(stream);
@@ -111,7 +111,7 @@ module.exports = app => {
                     }
                     }
                     ctx.body = await fs.readFileSync(fileName);
                     ctx.body = await fs.readFileSync(fileName);
                 } catch(err) {
                 } catch(err) {
-                    console.log(err);
+                    this.log(err);
                 }
                 }
             }
             }
         }
         }

+ 11 - 13
app/controller/ledger_audit_controller.js

@@ -32,7 +32,8 @@ module.exports = app => {
         async index(ctx) {
         async index(ctx) {
             const tenderId = parseInt(ctx.params.id);
             const tenderId = parseInt(ctx.params.id);
             try {
             try {
-                const tender = await ctx.service.tender.getDataById(tenderId);
+                const renderData = await this.getCommonRenderData(ctx);
+                const tender = renderData.tender;
                 if (!tender.ledger_times) {
                 if (!tender.ledger_times) {
                     tender.ledger_times = 1;
                     tender.ledger_times = 1;
                 }
                 }
@@ -47,16 +48,13 @@ module.exports = app => {
                 const content = await ctx.service.ledgerAuditContent.getAllDataByCondition({
                 const content = await ctx.service.ledgerAuditContent.getAllDataByCondition({
                     where: {tender_id: tenderId, times: tender.ledger_times, audit_id: auditors[0].audit_id}
                     where: {tender_id: tenderId, times: tender.ledger_times, audit_id: auditors[0].audit_id}
                 });
                 });
-                const renderData = {
-                    auditConst,
-                    tender,
-                    curAuditor,
-                    auditors,
-                    content,
-                    ledger: JSON.stringify(ledgerData),
-                    ledgerSpreadSetting: JSON.stringify(spreadConst.ledgerSpread),
-                    readOnly: true,
-                };
+                renderData.curAuditor = curAuditor;
+                renderData.auditConst = auditConst;
+                renderData.auditors = auditors;
+                renderData.content = content;
+                renderData.ledger = JSON.stringify(ledgerData);
+                renderData.ledgerSpreadSetting = JSON.stringify(spreadConst.ledgerSpread);
+                renderData.readOnly = true;
                 await this.layout('ledger/audit.ejs', renderData, 'ledger/audit_modal.ejs');
                 await this.layout('ledger/audit.ejs', renderData, 'ledger/audit_modal.ejs');
             } catch(err) {
             } catch(err) {
                 console.log(err);
                 console.log(err);
@@ -205,7 +203,7 @@ module.exports = app => {
             } catch (err) {
             } catch (err) {
                 console.log(err);
                 console.log(err);
                 ctx.session.postError = err.toString();
                 ctx.session.postError = err.toString();
-                ctx.redirect(ctx.request.headers.referer);
+                ctx.redirect(ctx.request.header.referer);
             }
             }
         }
         }
 
 
@@ -238,7 +236,7 @@ module.exports = app => {
                 }
                 }
                 const data = JSON.parse(ctx.request.body.data);
                 const data = JSON.parse(ctx.request.body.data);
 
 
-                const result = await ctx.service.ledgerAuditContent.add(tenderData, curAudit.audit_id, data);
+                await ctx.service.ledgerAuditContent.add(tenderData, curAudit.audit_id, data);
                 responseData.data = await ctx.service.ledgerAuditContent.getAllDataByCondition({
                 responseData.data = await ctx.service.ledgerAuditContent.getAllDataByCondition({
                     where: {tender_id: tenderId, times: tenderData.ledger_times, audit_id: curAudit.audit_id}
                     where: {tender_id: tenderId, times: tenderData.ledger_times, audit_id: curAudit.audit_id}
                 });
                 });

+ 24 - 17
app/controller/ledger_controller.js

@@ -14,6 +14,7 @@ const stdDataAddType = {
 }
 }
 const auditConst = require('../const/audit').flow;
 const auditConst = require('../const/audit').flow;
 const spreadConst = require('../const/spread');
 const spreadConst = require('../const/spread');
+const tenderMenu = require('../../config/menu').tenderMenu;
 
 
 module.exports = app => {
 module.exports = app => {
 
 
@@ -41,35 +42,35 @@ module.exports = app => {
         async explode(ctx) {
         async explode(ctx) {
             try {
             try {
                 const tenderId = ctx.params.id;
                 const tenderId = ctx.params.id;
-                const tenderList = await this.service.tender.getList();
-                const tenderData = await this.service.tender.getDataById(tenderId);
+                const tender = await this.service.tender.getDataById(tenderId);
 
 
-                if (!tenderData.ledger_status) {
-                    tenderData.ledger_status = auditConst.status.uncheck;
+                if (!tender.ledger_status) {
+                    tender.ledger_status = auditConst.status.uncheck;
                 }
                 }
-                if (!tenderData.ledger_times) {
-                    tenderData.ledger_times = 1;
+                if (!tender.ledger_times) {
+                    tender.ledger_times = 1;
                 }
                 }
-                const curAuditor = await ctx.service.ledgerAudit.getCurAuditor(tenderId, tenderData.ledger_times);
-                const times = tenderData.ledger_status === auditConst.status.checkNo ? tenderData.ledger_times - 1 : tenderData.ledger_times;
+                const curAuditor = await ctx.service.ledgerAudit.getCurAuditor(tenderId, tender.ledger_times);
+                const times = tender.ledger_status === auditConst.status.checkNo ? tender.ledger_times - 1 : tender.ledger_times;
                 const auditors = await ctx.service.ledgerAudit.getAuditors(tenderId, times);
                 const auditors = await ctx.service.ledgerAudit.getAuditors(tenderId, times);
                 const content = auditors.length > 0 ? await ctx.service.ledgerAuditContent.getAllDataByCondition({
                 const content = auditors.length > 0 ? await ctx.service.ledgerAuditContent.getAllDataByCondition({
                     where: {tender_id: tenderId, times: times, audit_id: auditors[0].audit_id}
                     where: {tender_id: tenderId, times: times, audit_id: auditors[0].audit_id}
                 }) : null;
                 }) : null;
                 const ledgerData = await ctx.service.ledger.getDataByTenderId(tenderId, 4);
                 const ledgerData = await ctx.service.ledger.getDataByTenderId(tenderId, 4);
                 const renderData = {
                 const renderData = {
-                    tenderData,
+                    tender,
                     auditConst,
                     auditConst,
                     auditors,
                     auditors,
                     curAuditor,
                     curAuditor,
                     content,
                     content,
                     ledger: JSON.stringify(ledgerData),
                     ledger: JSON.stringify(ledgerData),
                     ledgerSpreadSetting: JSON.stringify(spreadConst.ledgerSpread),
                     ledgerSpreadSetting: JSON.stringify(spreadConst.ledgerSpread),
-                    tenderList,
+                    tenderMenu,
+                    preUrl: '/tender/' + tenderId,
                 };
                 };
                 await this.layout('ledger/explode.ejs', renderData, 'ledger/explode_modal.ejs');
                 await this.layout('ledger/explode.ejs', renderData, 'ledger/explode_modal.ejs');
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 await this.layout('/dashboard');
                 await this.layout('/dashboard');
             }
             }
         }
         }
@@ -165,7 +166,7 @@ module.exports = app => {
             } catch (err) {
             } catch (err) {
                 responseData.err = 1;
                 responseData.err = 1;
                 responseData.msg = err;
                 responseData.msg = err;
-                console.log(err);
+                this.log(err);
             }
             }
 
 
             ctx.body = responseData;
             ctx.body = responseData;
@@ -206,6 +207,7 @@ module.exports = app => {
         }
         }
 
 
         async update(ctx) {
         async update(ctx) {
+            console.log(ctx.body);
             const responseData = {
             const responseData = {
                 err: 0,
                 err: 0,
                 msg: '',
                 msg: '',
@@ -398,7 +400,7 @@ module.exports = app => {
                     fields: ['code', 'b_code', 'name'],
                     fields: ['code', 'b_code', 'name'],
                 });
                 });
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 responseData.err = 1;
                 responseData.err = 1;
                 responseData.msg = err;
                 responseData.msg = err;
             }
             }
@@ -428,7 +430,7 @@ module.exports = app => {
                 }
                 }
                 responseData.data = await ctx.service.ledger.locateNode(tenderId, data.id);
                 responseData.data = await ctx.service.ledger.locateNode(tenderId, data.id);
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 responseData.err = 1;
                 responseData.err = 1;
                 responseData.msg = err;
                 responseData.msg = err;
             }
             }
@@ -460,7 +462,7 @@ module.exports = app => {
                 const expandData = await ctx.service.ledger.getPosterityByParentId(tenderId, data.id);
                 const expandData = await ctx.service.ledger.getPosterityByParentId(tenderId, data.id);
                 responseData.data = { expand: expandData };
                 responseData.data = { expand: expandData };
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 responseData.err = 1;
                 responseData.err = 1;
                 responseData.msg = err;
                 responseData.msg = err;
             }
             }
@@ -475,8 +477,13 @@ module.exports = app => {
          * @return {void}
          * @return {void}
          */
          */
         async change(ctx) {
         async change(ctx) {
-            const renderData = {};
-            await this.layout('ledger/change.ejs', renderData, 'ledger/change_modal.ejs');
+            try {
+                const renderData = await this.getCommonRenderData(ctx);
+                await this.layout('ledger/change.ejs', renderData, 'ledger/change_modal.ejs');
+            } catch(err) {
+                this.log(err);
+                ctx.redirect(ctx.request.header.referer);
+            }
         }
         }
 
 
         /**
         /**

+ 6 - 2
app/controller/login_controller.js

@@ -50,9 +50,13 @@ module.exports = app => {
                 const needBoot = await ctx.service.customer.isNeedBoot(ctx.request.body);
                 const needBoot = await ctx.service.customer.isNeedBoot(ctx.request.body);
                 const url = needBoot ? '/boot' : '/dashboard';
                 const url = needBoot ? '/boot' : '/dashboard';
 
 
-                ctx.redirect(url);
+                if (ctx.request.header.referer !== '/' && ctx.request.header.referer !== '/login') {
+                    ctx.redirect(url)
+                } else {
+                    ctx.redirect(ctx.request.header.referer);
+                }
             } catch (error) {
             } catch (error) {
-                console.log(error);
+                this.log(error);
                 ctx.session.loginError = '用户名或密码错误';
                 ctx.session.loginError = '用户名或密码错误';
                 ctx.redirect('/login');
                 ctx.redirect('/login');
             }
             }

+ 10 - 10
app/controller/measure_audit_controller.js

@@ -44,8 +44,8 @@ module.exports = app => {
                 };
                 };
                 await this.layout('measure/list.ejs', renderData);
                 await this.layout('measure/list.ejs', renderData);
             } catch (err) {
             } catch (err) {
-                console.log(err);
-                ctx.redirect(ctx.request.referrer);
+                this.log(err);
+                ctx.redirect(ctx.request.header.referer);
             }
             }
         }
         }
 
 
@@ -82,8 +82,8 @@ module.exports = app => {
                 }
                 }
                 await this.layout('measure/audit.ejs', renderData, 'measure/audit_modal.ejs');
                 await this.layout('measure/audit.ejs', renderData, 'measure/audit_modal.ejs');
             } catch (err) {
             } catch (err) {
-                console.log(err);
-                ctx.redirect(ctx.request.headers.referrer);
+                this.log(err);
+                ctx.redirect(ctx.request.header.referer);
             }
             }
         };
         };
 
 
@@ -124,7 +124,7 @@ module.exports = app => {
 
 
                 responseData.data = await ctx.service.measureAudit.getAuditor(mid, id);
                 responseData.data = await ctx.service.measureAudit.getAuditor(mid, id);
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 responseData.err = 1;
                 responseData.err = 1;
                 responseData.msg = err.toString();
                 responseData.msg = err.toString();
             }
             }
@@ -170,7 +170,7 @@ module.exports = app => {
 
 
                 responseData.data = await ctx.service.measureAudit.getAuditors(mid);
                 responseData.data = await ctx.service.measureAudit.getAuditors(mid);
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 responseData.err = 1;
                 responseData.err = 1;
                 responseData.msg = err.toString();
                 responseData.msg = err.toString();
             }
             }
@@ -215,7 +215,7 @@ module.exports = app => {
                 responseData.data.auditors = await ctx.service.measureAudit.getAuditors(measure.mid, measure.times);
                 responseData.data.auditors = await ctx.service.measureAudit.getAuditors(measure.mid, measure.times);
                 responseData.data.curAuditor = await ctx.service.measureAudit.getCurAuditor(measure.mid, measure.times);
                 responseData.data.curAuditor = await ctx.service.measureAudit.getCurAuditor(measure.mid, measure.times);
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 responseData.err = 1;
                 responseData.err = 1;
                 responseData.msg = err.toString();
                 responseData.msg = err.toString();
                 responseData.data = {};
                 responseData.data = {};
@@ -257,11 +257,11 @@ module.exports = app => {
 
 
                 await ctx.service.measureAudit.check(mid, checkType, ctx.request.body.opinion, measure.times);
                 await ctx.service.measureAudit.check(mid, checkType, ctx.request.body.opinion, measure.times);
 
 
-                ctx.redirect(ctx.request.headers.referer);
+                ctx.redirect(ctx.request.header.referer);
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 ctx.session.postError = err.toString();
                 ctx.session.postError = err.toString();
-                ctx.redirect(ctx.request.headers.referer);
+                ctx.redirect(ctx.request.header.referer);
             }
             }
         }
         }
 
 

+ 9 - 9
app/controller/measure_controller.js

@@ -69,7 +69,7 @@ module.exports = app => {
                 };
                 };
                 await this.layout('measure/wlist.ejs', renderData, 'measure/wlist_modal.ejs');
                 await this.layout('measure/wlist.ejs', renderData, 'measure/wlist_modal.ejs');
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 this.redirect(ctx.menuList.dashboard.url);
                 this.redirect(ctx.menuList.dashboard.url);
             }
             }
         }
         }
@@ -117,7 +117,7 @@ module.exports = app => {
                 };
                 };
                 await this.layout('measure/work.ejs', renderData, 'measure/work_modal.ejs');
                 await this.layout('measure/work.ejs', renderData, 'measure/work_modal.ejs');
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 this.redirect(ctx.menuList.dashboard.url);
                 this.redirect(ctx.menuList.dashboard.url);
             }
             }
         }
         }
@@ -197,7 +197,7 @@ module.exports = app => {
                     tender_id: tenderId, code: data.code,
                     tender_id: tenderId, code: data.code,
                 });
                 });
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 responseData.err = 1;
                 responseData.err = 1;
                 responseData.msg = err.toString();
                 responseData.msg = err.toString();
             }
             }
@@ -219,7 +219,7 @@ module.exports = app => {
                 const data = JSON.parse(ctx.request.body.data);
                 const data = JSON.parse(ctx.request.body.data);
                 responseData.data = await ctx.service.measure.invalid(tenderId, data.code, ctx.session.sessionUser.accountId);
                 responseData.data = await ctx.service.measure.invalid(tenderId, data.code, ctx.session.sessionUser.accountId);
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 responseData.err = 1;
                 responseData.err = 1;
                 responseData.msg = err.toString();
                 responseData.msg = err.toString();
             }
             }
@@ -268,7 +268,7 @@ module.exports = app => {
 
 
                 responseData.data = measure;
                 responseData.data = measure;
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 responseData.err = 1;
                 responseData.err = 1;
                 responseData.msg = err.toString();
                 responseData.msg = err.toString();
             }
             }
@@ -335,7 +335,7 @@ module.exports = app => {
                     throw '查询数据有误';
                     throw '查询数据有误';
                 }
                 }
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 responseData.err = 1;
                 responseData.err = 1;
                 responseData.msg = err.toString();
                 responseData.msg = err.toString();
             }
             }
@@ -374,7 +374,7 @@ module.exports = app => {
                     throw '未知操作';
                     throw '未知操作';
                 }
                 }
             } catch(err) {
             } catch(err) {
-                console.log(err);
+                this.log(err);
                 responseData.err = 1;
                 responseData.err = 1;
                 responseData.msg = err.toString();
                 responseData.msg = err.toString();
             }
             }
@@ -413,7 +413,7 @@ module.exports = app => {
                     throw '未知操作';
                     throw '未知操作';
                 }
                 }
             } catch(err) {
             } catch(err) {
-                console.log(err);
+                this.log(err);
                 responseData.err = 1;
                 responseData.err = 1;
                 responseData.msg = err.toString();
                 responseData.msg = err.toString();
                 responseData.data = {};
                 responseData.data = {};
@@ -441,7 +441,7 @@ module.exports = app => {
 
 
                 responseData.data = await ctx.service.measureBills.updateBills(tenderId, data.mid, data.bid, data.update);
                 responseData.data = await ctx.service.measureBills.updateBills(tenderId, data.mid, data.bid, data.update);
             } catch(err) {
             } catch(err) {
-                console.log(err);
+                this.log(err);
                 responseData.err = 1;
                 responseData.err = 1;
                 responseData.msg = err.toString();
                 responseData.msg = err.toString();
                 responseData.data = {};
                 responseData.data = {};

+ 4 - 4
app/controller/profile_controller.js

@@ -63,11 +63,11 @@ module.exports = app => {
 
 
                 this.setMessage('修改成功', this.messageType.SUCCESS);
                 this.setMessage('修改成功', this.messageType.SUCCESS);
             } catch (error) {
             } catch (error) {
-                console.log(error);
+                this.log(error);
                 this.setMessage(error.toString(), this.messageType.ERROR);
                 this.setMessage(error.toString(), this.messageType.ERROR);
             }
             }
 
 
-            ctx.redirect(ctx.request.headers.referer);
+            ctx.redirect(ctx.request.header.referer);
         }
         }
 
 
         /**
         /**
@@ -100,7 +100,7 @@ module.exports = app => {
                 this.setMessage(error.toString(), this.messageType.ERROR);
                 this.setMessage(error.toString(), this.messageType.ERROR);
             }
             }
 
 
-            ctx.redirect(ctx.request.headers.referer);
+            ctx.redirect(ctx.request.header.referer);
         }
         }
 
 
         /**
         /**
@@ -154,7 +154,7 @@ module.exports = app => {
                 console.log(error);
                 console.log(error);
                 this.setMessage(error.toString(), this.messageType.ERROR);
                 this.setMessage(error.toString(), this.messageType.ERROR);
             }
             }
-            ctx.redirect(ctx.request.headers.referer);
+            ctx.redirect(ctx.request.header.referer);
         }
         }
     }
     }
 
 

+ 2 - 2
app/controller/project_controller.js

@@ -90,7 +90,7 @@ module.exports = app => {
                 this.setMessage(error.toString(), this.messageType.ERROR);
                 this.setMessage(error.toString(), this.messageType.ERROR);
             }
             }
 
 
-            ctx.redirect(ctx.request.headers.referer);
+            ctx.redirect(ctx.request.header.referer);
         }
         }
 
 
         /**
         /**
@@ -113,7 +113,7 @@ module.exports = app => {
             } catch (error) {
             } catch (error) {
                 this.setMessage(error.toString(), this.messageType.ERROR);
                 this.setMessage(error.toString(), this.messageType.ERROR);
             }
             }
-            ctx.redirect(ctx.request.headers.referer);
+            ctx.redirect(ctx.request.header.referer);
         }
         }
 
 
         /**
         /**

+ 6 - 6
app/controller/setting_controller.js

@@ -147,7 +147,7 @@ module.exports = app => {
                 responseData.data = await ctx.service.category.addCategory(projectId, data.name, data.type);
                 responseData.data = await ctx.service.category.addCategory(projectId, data.name, data.type);
                 ctx.body = responseData;
                 ctx.body = responseData;
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 ctx.body = {err: 1, msg: err.toString(), data: null};
                 ctx.body = {err: 1, msg: err.toString(), data: null};
             }
             }
         }
         }
@@ -183,7 +183,7 @@ module.exports = app => {
 
 
                 ctx.body = responseData;
                 ctx.body = responseData;
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 ctx.body = {err: 1, msg: err.toString(), data: null};
                 ctx.body = {err: 1, msg: err.toString(), data: null};
             }
             }
         }
         }
@@ -203,7 +203,7 @@ module.exports = app => {
 
 
                 ctx.body = responseData;
                 ctx.body = responseData;
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 ctx.body = {err: 1, msg: err instanceof string ? err : '提交数据失败', data: null};
                 ctx.body = {err: 1, msg: err instanceof string ? err : '提交数据失败', data: null};
             }
             }
         }
         }
@@ -230,7 +230,7 @@ module.exports = app => {
 
 
                 ctx.body = responseData;
                 ctx.body = responseData;
             } catch(err) {
             } catch(err) {
-                console.log(err);
+                this.log(err);
                 ctx.body = {err: 1, msg: err.toString(), data: null};
                 ctx.body = {err: 1, msg: err.toString(), data: null};
             }
             }
         }
         }
@@ -253,7 +253,7 @@ module.exports = app => {
                 responseData.data = await ctx.service.category.getAllCategory(projectId);
                 responseData.data = await ctx.service.category.getAllCategory(projectId);
                 ctx.body = responseData;
                 ctx.body = responseData;
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 ctx.body = {err: 1, msg: err.toString(), data: null};
                 ctx.body = {err: 1, msg: err.toString(), data: null};
             }
             }
         }
         }
@@ -281,7 +281,7 @@ module.exports = app => {
 
 
                 ctx.redirect('/setting/info');
                 ctx.redirect('/setting/info');
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 ctx.body = {err: 1, msg: err.toString(), data: null};
                 ctx.body = {err: 1, msg: err.toString(), data: null};
             }
             }
         }
         }

+ 11 - 22
app/controller/tender_controller.js

@@ -42,8 +42,8 @@ module.exports = app => {
                     tableColSetting: setting,
                     tableColSetting: setting,
                 };
                 };
                 await this.layout(view, renderData, modal);
                 await this.layout(view, renderData, modal);
-            } catch(error) {
-                console.log(error);
+            } catch(err) {
+                this.log(err);
                 this.ctx.redirect('/dashboard');
                 this.ctx.redirect('/dashboard');
             }
             }
         }
         }
@@ -98,7 +98,7 @@ module.exports = app => {
                 responseData.data = await ctx.service.tender.add(data);
                 responseData.data = await ctx.service.tender.add(data);
                 ctx.body = responseData;
                 ctx.body = responseData;
             } catch (error) {
             } catch (error) {
-                console.log(error);
+                this.log(error);
                 ctx.body = {err: 1, msg: error.toString(), data: null};
                 ctx.body = {err: 1, msg: error.toString(), data: null};
             }
             }
         }
         }
@@ -131,21 +131,10 @@ module.exports = app => {
          */
          */
         async tenderInfo(ctx) {
         async tenderInfo(ctx) {
             try {
             try {
-                const tenderId = ctx.params.id;
-                const tenderData = await ctx.service.tender.getTender(tenderId);
-
-                if (tenderData.project_id !== ctx.session.sessionProject.id) {
-                    this.setMessage('您无权查看该项目', this.messageType.ERROR);
-                    throw '您无权查看该项目';
-                }
-                const renderData = {
-                    tenderData,
-                    tenderMenu,
-                    preUrl: '/tender/' + tenderId,
-                };
+                const renderData = await this.getCommonRenderData(ctx);
                 await this.layout('tender/detail.ejs', renderData);
                 await this.layout('tender/detail.ejs', renderData);
             } catch (error) {
             } catch (error) {
-                console.log(error);
+                this.log(error);
                 this.ctx.redirect('/list');
                 this.ctx.redirect('/list');
 
 
             }
             }
@@ -167,11 +156,11 @@ module.exports = app => {
                     throw '新增标段失败';
                     throw '新增标段失败';
                 }
                 }
             } catch (error) {
             } catch (error) {
-                console.log(error);
+                this.log(error);
                 this.setMessage(error.toString(), this.messageType.ERROR);
                 this.setMessage(error.toString(), this.messageType.ERROR);
             }
             }
 
 
-            ctx.redirect(ctx.request.headers.referer);
+            ctx.redirect(ctx.request.header.referer);
         }
         }
 
 
         /**
         /**
@@ -194,7 +183,7 @@ module.exports = app => {
             } catch (error) {
             } catch (error) {
                 this.setMessage(error.toString(), this.messageType.ERROR);
                 this.setMessage(error.toString(), this.messageType.ERROR);
             }
             }
-            ctx.redirect(ctx.request.headers.referer);
+            ctx.redirect(ctx.request.header.referer);
         }
         }
 
 
         /**
         /**
@@ -225,7 +214,7 @@ module.exports = app => {
             } catch (error) {
             } catch (error) {
                 this.setMessage(error.toString(), this.messageType.ERROR);
                 this.setMessage(error.toString(), this.messageType.ERROR);
             }
             }
-            ctx.redirect(ctx.request.headers.referer);
+            ctx.redirect(ctx.request.header.referer);
         }
         }
 
 
         /**
         /**
@@ -253,7 +242,7 @@ module.exports = app => {
                 this.setMessage(error.toString(), this.messageType.ERROR);
                 this.setMessage(error.toString(), this.messageType.ERROR);
             }
             }
 
 
-            ctx.redirect(ctx.request.headers.referer);
+            ctx.redirect(ctx.request.header.referer);
         }
         }
 
 
         async rule(ctx) {
         async rule(ctx) {
@@ -282,7 +271,7 @@ module.exports = app => {
                     throw '更新规则失败';
                     throw '更新规则失败';
                 }
                 }
             } catch (err) {
             } catch (err) {
-                console.log(err);
+                this.log(err);
                 responseData.err = 1;
                 responseData.err = 1;
                 responseData.msg = err.toString();
                 responseData.msg = err.toString();
             }
             }

+ 35 - 14
app/middleware/auto_logger.js

@@ -10,24 +10,45 @@
 
 
 module.exports = options => {
 module.exports = options => {
     return function* autoLogger(next) {
     return function* autoLogger(next) {
-        // 自动记录log的action
-        const autoLogAction = ['save', 'delete'];
-        if (this.actionName !== undefined && autoLogAction.indexOf(this.actionName) >= 0) {
-            // 操作数据的id
-            const idReg = /\/(\d+)/;
-            const paramInfo = this.request.originalUrl.match(idReg);
-            let targetId = paramInfo[1] !== undefined ? paramInfo[1] : -1;
-            targetId = parseInt(targetId);
-
+        // 记录业务日志
+        function getBussinessLogger(ctx) {
+            if (ctx.url.match(/ledger/)) {
+                return ctx.getLogger('ledger');
+            } else if (ctx.url.match(/stage/)) {
+                return ctx.getLogger('stage');
+            } else {
+                return ctx.getLogger('mixed');
+            }
+        }
+        if (this.session.sessionUser) {
+            const bLogger = getBussinessLogger(this);
             const logData = {
             const logData = {
-                controller: this.controllerName,
-                action: this.actionName,
-                operation: this.currentName === undefined ? '保存数据' : this.currentName,
-                target_id: targetId,
+                method: this.method,
+                user: this.session.sessionUser,
+                project: this.session.sessionProject,
+                data: this.body,
             };
             };
-            yield this.service.log.addLog(logData);
+            bLogger.info(JSON.stringify(logData));
         }
         }
 
 
+        // 自动记录log的action
+        // const autoLogAction = ['save', 'delete'];
+        // if (this.actionName !== undefined && autoLogAction.indexOf(this.actionName) >= 0) {
+        //     // 操作数据的id
+        //     const idReg = /\/(\d+)/;
+        //     const paramInfo = this.request.originalUrl.match(idReg);
+        //     let targetId = paramInfo[1] !== undefined ? paramInfo[1] : -1;
+        //     targetId = parseInt(targetId);
+        //
+        //     const logData = {
+        //         controller: this.controllerName,
+        //         action: this.actionName,
+        //         operation: this.currentName === undefined ? '保存数据' : this.currentName,
+        //         target_id: targetId,
+        //     };
+        //     yield this.service.log.addLog(logData);
+        // }
+
         yield next;
         yield next;
     };
     };
 };
 };

+ 2 - 1
app/middleware/session_auth.js

@@ -30,8 +30,9 @@ module.exports = options => {
             // 同步消息
             // 同步消息
             yield this.service.notify.syncNotifyData();
             yield this.service.notify.syncNotifyData();
         } catch (error) {
         } catch (error) {
+            console.log(error);
             if (this.helper.isAjax(this.request)) {
             if (this.helper.isAjax(this.request)) {
-                this.body.response = {
+                return this.body = {
                     err: 2,
                     err: 2,
                     msg: '登录信息异常,请重新登录',
                     msg: '登录信息异常,请重新登录',
                     data: '',
                     data: '',

+ 0 - 1
app/public/js/category.js

@@ -246,7 +246,6 @@ $(document).ready(() => {
             id: parseInt($(this).attr('cid')),
             id: parseInt($(this).attr('cid')),
             updateValue: valueArr,
             updateValue: valueArr,
         };
         };
-        console.log(data);
         postData('/setting/category/value', data, function (data) {
         postData('/setting/category/value', data, function (data) {
             tenders = data.tenders;
             tenders = data.tenders;
             const category = findCategory(data.category.id);
             const category = findCategory(data.category.id);

+ 0 - 1
app/service/category.js

@@ -105,7 +105,6 @@ module.exports = app => {
                             return c.cid === cid;
                             return c.cid === cid;
                         });
                         });
                     }
                     }
-                    console.log(t.category);
                     await this.transaction.update(this.ctx.service.tender.tableName, {
                     await this.transaction.update(this.ctx.service.tender.tableName, {
                         id: t.id,
                         id: t.id,
                         category: JSON.stringify(t.category),
                         category: JSON.stringify(t.category),

+ 13 - 1
app/view/ledger/audit.ejs

@@ -1,5 +1,6 @@
+<% include ../tender/tender_sub_menu.ejs %>
 <div class="panel-content">
 <div class="panel-content">
-    <div class="panel-title fluid">
+    <div class="panel-title">
         <div class="title-main d-flex justify-content-between">
         <div class="title-main d-flex justify-content-between">
             <div></div>
             <div></div>
             <div>
             <div>
@@ -17,6 +18,17 @@
             <div class="c-body col-12">
             <div class="c-body col-12">
                 <div class="sjs-height-1" id="ledger-spread">
                 <div class="sjs-height-1" id="ledger-spread">
                 </div>
                 </div>
+                <div class="bcontent-wrap">
+                    <div class="bc-bar mb-1">
+                        <ul class="nav nav-tabs">
+                            <li class="nav-item">
+                                <a class="nav-link active" href="javascript:void(0)">部位明细</a>
+                            </li>
+                        </ul>
+                    </div>
+                    <div class="sp-wrap" id="pos-spread">
+                    </div>
+                </div>
             </div>
             </div>
             <!--右栏-->
             <!--右栏-->
             <div class="c-body col-0" style="display: none;">
             <div class="c-body col-0" style="display: none;">

+ 1 - 0
app/view/ledger/change.ejs

@@ -1,3 +1,4 @@
+<% include ../tender/tender_sub_menu.ejs %>
 <div class="panel-content">
 <div class="panel-content">
     <div class="panel-title fluid">
     <div class="panel-title fluid">
         <div class="title-main  d-flex justify-content-between"><!--工具-->
         <div class="title-main  d-flex justify-content-between"><!--工具-->

+ 31 - 31
app/view/ledger/explode.ejs

@@ -1,13 +1,14 @@
+<% include ../tender/tender_sub_menu.ejs %>
 <div class="panel-content">
 <div class="panel-content">
-    <div class="panel-title fluid">
+    <div class="panel-title">
         <div class="title-main  d-flex justify-content-between"><!--工具-->
         <div class="title-main  d-flex justify-content-between"><!--工具-->
             <div>
             <div>
                 <div class="btn-group">
                 <div class="btn-group">
-                    <a href="" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
+                    <a href="javascript:void(0)" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
                        data-original-title="复制"><i class="fa fa-files-o" aria-hidden="true"></i></a>
                        data-original-title="复制"><i class="fa fa-files-o" aria-hidden="true"></i></a>
-                    <a href="" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
+                    <a href="javascript:void(0)" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
                        data-original-title="剪切"><i class="fa fa-scissors" aria-hidden="true"></i></a>
                        data-original-title="剪切"><i class="fa fa-scissors" aria-hidden="true"></i></a>
-                    <a href="" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
+                    <a href="javascript:void(0)" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
                        data-original-title="粘贴"><i class="fa fa-clipboard" aria-hidden="true"></i></a>
                        data-original-title="粘贴"><i class="fa fa-clipboard" aria-hidden="true"></i></a>
                     <a href="javascript:void(0)" id="delete" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
                     <a href="javascript:void(0)" id="delete" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
                        data-original-title="删除"><i class="fa fa-remove" aria-hidden="true"></i></a>
                        data-original-title="删除"><i class="fa fa-remove" aria-hidden="true"></i></a>
@@ -20,39 +21,27 @@
                     <a href="javascript:void(0)" id="up-move" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
                     <a href="javascript:void(0)" id="up-move" class="btn btn-sm" data-toggle="tooltip" data-placement="bottom" title=""
                        data-original-title="上移"><i class="fa fa-arrow-up" aria-hidden="true"></i></a>
                        data-original-title="上移"><i class="fa fa-arrow-up" aria-hidden="true"></i></a>
                 </div>
                 </div>
-                <div class="btn-group">
-                    <div class="form-check-inline">
-                        <label class="form-check-label">
-                            <input type="checkbox" class="form-check-input">
-                            审批过程
-                        </label>
-                    </div>
-                    <div class="form-check-inline">
-                        <label class="form-check-label">
-                            <input type="checkbox" class="form-check-input">
-                            台帐变更
-                        </label>
-                    </div>
-                    <div class="form-check-inline">
-                        <label class="form-check-label">
-                            <input type="checkbox" class="form-check-input">
-                            变更令
-                        </label>
+                <div class="d-inline-block">
+                    <div class="input-group input-group-sm ml-2 mt-1">
+                        <div class="input-group-prepend">
+                            <span class="input-group-text" id="basic-addon1">表达式</span>
+                        </div>
+                        <input type="text" class="form-control m-0">
                     </div>
                     </div>
                 </div>
                 </div>
             </div>
             </div>
             <div>
             <div>
-                <% if (tenderData.ledger_status === auditConst.status.checkNo) { %>
+                <% if (tender.ledger_status === auditConst.status.checkNo) { %>
                     <a href="#sp-list" data-toggle="modal" data-target="#sp-list" class="btn btn-outline-warning btn-sm pull-right text-dark">报审退回</a>
                     <a href="#sp-list" data-toggle="modal" data-target="#sp-list" class="btn btn-outline-warning btn-sm pull-right text-dark">报审退回</a>
-                <% } else if (tenderData.ledger_status === auditConst.status.checking) { %>
+                <% } else if (tender.ledger_status === auditConst.status.checking) { %>
                     <a href="#sp-list" data-toggle="modal" data-target="#sp-list" class="btn btn-outline-warning btn-sm pull-right text-dark">审批中</a>
                     <a href="#sp-list" data-toggle="modal" data-target="#sp-list" class="btn btn-outline-warning btn-sm pull-right text-dark">审批中</a>
-                <% } else if (tenderData.ledger_status === auditConst.status.checked) { %>
+                <% } else if (tender.ledger_status === auditConst.status.checked) { %>
                     <a href="#sp-list" data-toggle="modal" data-target="#sp-list" class="btn btn-outline-secondary btn-sm pull-right">审批完成</a>
                     <a href="#sp-list" data-toggle="modal" data-target="#sp-list" class="btn btn-outline-secondary btn-sm pull-right">审批完成</a>
                 <% } %>
                 <% } %>
-                <% if (ctx.session.sessionUser.accountId === tenderData.user_id) { %>
-                    <% if (tenderData.ledger_status === auditConst.status.uncheck) { %>
+                <% if (ctx.session.sessionUser.accountId === tender.user_id) { %>
+                    <% if (tender.ledger_status === auditConst.status.uncheck) { %>
                         <a href="#sub-sp" data-toggle="modal" data-target="#sub-sp" class="btn btn-primary btn-sm pull-right">上报审批</a>
                         <a href="#sub-sp" data-toggle="modal" data-target="#sub-sp" class="btn btn-primary btn-sm pull-right">上报审批</a>
-                    <% } else if (tenderData.ledger_status === auditConst.status.checkNo) { %>
+                    <% } else if (tender.ledger_status === auditConst.status.checkNo) { %>
                         <a href="#sub-sp" data-toggle="modal" data-target="#sub-sp2" class="btn btn-primary btn-sm pull-right">重新上报</a>
                         <a href="#sub-sp" data-toggle="modal" data-target="#sub-sp2" class="btn btn-primary btn-sm pull-right">重新上报</a>
                     <% } %>
                     <% } %>
                 <% } %>
                 <% } %>
@@ -67,6 +56,17 @@
             <!--左栏-->
             <!--左栏-->
             <div class="c-body col-12">
             <div class="c-body col-12">
                 <div id="ledger-spread" class="sjs-height-1"></div>
                 <div id="ledger-spread" class="sjs-height-1"></div>
+                <div class="bcontent-wrap">
+                    <div class="bc-bar mb-1">
+                        <ul class="nav nav-tabs">
+                            <li class="nav-item">
+                                <a class="nav-link active" href="javascript:void(0)">部位明细</a>
+                            </li>
+                        </ul>
+                    </div>
+                    <div class="sp-wrap" id="pos-spread">
+                    </div>
+                </div>
             </div>
             </div>
             <div class="c-body col-0" style="display: none;">
             <div class="c-body col-0" style="display: none;">
                 <div class="tab-content">
                 <div class="tab-content">
@@ -97,7 +97,7 @@
                         <div id="deal-bills-spread" class="sjs-height-2">
                         <div id="deal-bills-spread" class="sjs-height-2">
                         </div>
                         </div>
                     </div>
                     </div>
-                    <% if (tenderData.ledger_status !== auditConst.status.uncheck) { %>
+                    <% if (tender.ledger_status !== auditConst.status.uncheck) { %>
                     <div id="opinion" class="tab-pane">
                     <div id="opinion" class="tab-pane">
                         <div class="side-bar">
                         <div class="side-bar">
                             <select class="form-control form-control-sm">
                             <select class="form-control form-control-sm">
@@ -143,7 +143,7 @@
                 <li class="nav-item">
                 <li class="nav-item">
                     <a class="nav-link" content="#deal-bills" href="javascript: void(0);">签约清单</a>
                     <a class="nav-link" content="#deal-bills" href="javascript: void(0);">签约清单</a>
                 </li>
                 </li>
-                <% if (tenderData.ledger_status !== auditConst.status.uncheck) { %>
+                <% if (tender.ledger_status !== auditConst.status.uncheck) { %>
                 <li class="nav-item">
                 <li class="nav-item">
                     <a class="nav-link" content="#opinion" href="javascript: void(0);">清单意见</a>
                     <a class="nav-link" content="#opinion" href="javascript: void(0);">清单意见</a>
                 </li>
                 </li>
@@ -157,7 +157,7 @@
     ledger = JSON.parse(ledger);
     ledger = JSON.parse(ledger);
     let ledgerSpreadSetting = '<%- ledgerSpreadSetting %>';
     let ledgerSpreadSetting = '<%- ledgerSpreadSetting %>';
     ledgerSpreadSetting = JSON.parse(ledgerSpreadSetting);
     ledgerSpreadSetting = JSON.parse(ledgerSpreadSetting);
-    ledgerSpreadSetting.readOnly = <%- tenderData.user_id !== ctx.session.sessionUser.accountId || tenderData.ledger_status === auditConst.status.checking || tenderData.ledger_status === auditConst.status.checked %>;
+    ledgerSpreadSetting.readOnly = <%- tender.user_id !== ctx.session.sessionUser.accountId || tender.ledger_status === auditConst.status.checking || tender.ledger_status === auditConst.status.checked %>;
 </script>
 </script>
 <script src="/public/js/spreadjs/sheets/gc.spread.sheets.all.10.0.1.min.js"></script>
 <script src="/public/js/spreadjs/sheets/gc.spread.sheets.all.10.0.1.min.js"></script>
 <script>
 <script>

+ 3 - 3
app/view/ledger/explode_modal.ejs

@@ -59,7 +59,7 @@
         </div>
         </div>
     </div>
     </div>
 </div>
 </div>
-<% if (tenderData.ledger_status === auditConst.status.uncheck) { %>
+<% if (tender.ledger_status === auditConst.status.uncheck) { %>
 <!--上报审批-->
 <!--上报审批-->
 <div class="modal fade" id="sub-sp" data-backdrop="static">
 <div class="modal fade" id="sub-sp" data-backdrop="static">
     <div class="modal-dialog" role="document">
     <div class="modal-dialog" role="document">
@@ -111,7 +111,7 @@
     </div>
     </div>
 </div>
 </div>
 <% } %>
 <% } %>
-<% if (tenderData.ledger_status === auditConst.status.checkNo) { %>
+<% if (tender.ledger_status === auditConst.status.checkNo) { %>
 <!--重新审批-->
 <!--重新审批-->
 <div class="modal fade" id="sub-sp2" data-backdrop="static">
 <div class="modal fade" id="sub-sp2" data-backdrop="static">
     <div class="modal-dialog" role="document">
     <div class="modal-dialog" role="document">
@@ -149,7 +149,7 @@
     </div>
     </div>
 </div>
 </div>
 <% } %>
 <% } %>
-<% if (tenderData.status !== auditConst.status.unCheck) { %>
+<% if (tender.status !== auditConst.status.unCheck) { %>
 <!--审批流程/结果-->
 <!--审批流程/结果-->
 <div class="modal fade" id="sp-list" data-backdrop="static">
 <div class="modal fade" id="sp-list" data-backdrop="static">
     <div class="modal-dialog" role="document">
     <div class="modal-dialog" role="document">

+ 1 - 1
app/view/tender/tender_sub_menu.ejs

@@ -1,7 +1,7 @@
 <div class="panel-sidebar">
 <div class="panel-sidebar">
     <div class="panel-title">
     <div class="panel-title">
         <div class="title-bar">
         <div class="title-bar">
-            <h2><%- tenderData.name %></h2>
+            <h2><%- tender.name %></h2>
         </div>
         </div>
     </div>
     </div>
     <div class="scrollbar-auto">
     <div class="scrollbar-auto">

+ 18 - 1
config/config.default.js

@@ -54,7 +54,7 @@ module.exports = appInfo => {
     config.pageSize = 15;
     config.pageSize = 15;
 
 
     // 中间件
     // 中间件
-    config.middleware = ['urlParse'];
+    config.middleware = ['urlParse', 'autoLogger'];
 
 
     // session配置
     // session配置
     config.session = {
     config.session = {
@@ -113,5 +113,22 @@ module.exports = appInfo => {
         threshold: 1024,
         threshold: 1024,
     };
     };
 
 
+    config.customLogger = {
+        // 操作失败日志
+        fail: {
+            file: path.join(appInfo.root, 'log/fail.log'),
+        },
+        // 以下为业务日志
+        ledger: {
+            file: path.join(appInfo.root, 'log/ledger.log'),
+        },
+        stage: {
+            file: path.join(appInfo.root, 'log/stage.log'),
+        },
+        mixed: {
+            file: path.join(appInfo.root, 'log/mixed.log'),
+        }
+    };
+
     return config;
     return config;
 };
 };

+ 6 - 1
config/config.qa.js

@@ -46,7 +46,7 @@ module.exports = appInfo => {
     // session配置
     // session配置
     config.session = {
     config.session = {
         key: 'ZHC_SESS',
         key: 'ZHC_SESS',
-        maxAge: 8 * 3600 * 1000, // 8小时
+        maxAge: 5*1000, //8 * 3600 * 1000, // 8小时
         httpOnly: true,
         httpOnly: true,
         encrypt: true,
         encrypt: true,
     };
     };
@@ -72,5 +72,10 @@ module.exports = appInfo => {
     // 是否压缩替换前端js
     // 是否压缩替换前端js
     config.min = false;
     config.min = false;
 
 
+    config.logger = {
+        consoleLevel: 'WARN',
+        disableConsoleAfterReady: false,
+    };
+
     return config;
     return config;
 };
 };