MaiXinRong пре 7 година
родитељ
комит
444463685d

+ 37 - 0
modules/templates/controllers/bills_template_controller.js

@@ -0,0 +1,37 @@
+/**
+ * Created by Mai on 2017/4/17.
+ */
+var BillsTemplateData = require('../models/bills_template');
+
+var callback = function(req, res, err, message, data){
+    res.json({error: err, message: message, data: data});
+};
+
+module.exports = {
+    getBillsTemplate: function(req, res){
+        var data = JSON.parse(req.body.data);
+        BillsTemplateData.getTemplate(data.tempType, function(err, message, templates){
+            if (templates) {
+                callback(req, res, err, message, templates);
+            } else {
+                callback(req, res, err, message, null);
+            }
+        });
+    },
+    updateBillsTemplate: function (req, res) {
+        var data = JSON.parse(req.body.data);
+        BillsTemplateData.updateTemplate(data.user_id, data.tempType, data.updateData, function (err, message, data) {
+            if (err === 0) {
+                callback(req, res, err, message, data);
+            } else {
+                callback(req, res, err, message, null);
+            }
+        });
+    },
+    getNewBillsTemplateID: function (req, res) {
+        var data = JSON.parse(req.body.data);
+        BillsTemplateData.getNewBillsTemplateID(data.count, function (err, message, data) {
+            callback(req, res, err, message, data);
+        });
+    }
+}

+ 87 - 0
modules/templates/models/bills_template.js

@@ -0,0 +1,87 @@
+/**
+ * Created by Mai on 2017/4/14.
+ * 清单模板,新建项目使用
+ */
+var counter = require("../../../public/counter/counter.js");
+
+var mongoose = require('mongoose');
+var dbm = require("../../../config/db/db_manager");
+var templatesDB = dbm.getCfgConnection("templates");
+var Schema = mongoose.Schema;
+var deleteSchema = require('../../../public/models/delete_schema');
+var BillsTemplateSchema = new Schema({
+    ID: Number,
+    ParentID: Number,
+    NextSiblingID: Number,
+    code: String,
+    name: String,
+    unit: String,
+    deleteInfo: deleteSchema,
+    tempType: Number
+});
+var BillsTemplates = templatesDB.model('temp_bills', BillsTemplateSchema);
+
+var BillsTemplateDAO = function(){};
+
+BillsTemplateDAO.prototype.getTemplate = function (type, callback) {
+    if (callback) {
+        BillsTemplates.find({'$or': [{tempType: type, deleteInfo: null}, {tempType: type, 'deleteInfo.deleted': {$in: [null, false]}}]}, '-_id').exec()
+            .then(function (result, err) {
+                if (err) {
+                    callback(1, '找不到模板', null);
+                } else {
+                    callback(0, '', result);
+                }
+            });
+        return null;
+    } else {
+        return BillsTemplates.find({'$or': [{tempType: type, deleteInfo: null}, {tempType: type, 'deleteInfo.deleted': {$in: [null, false]}}]}, '-_id').exec();
+    }
+};
+BillsTemplateDAO.prototype.updateTemplate = function (userID, tempType, datas, callback) {
+    var data, project, updateLength = 0, hasError = false, deleteInfo = null;
+    var updateAll = function (err) {
+        if (!err){
+            updateLength += 1;
+            if (updateLength === datas.length) {
+                callback(0, '', datas);
+            }
+        } else {
+            hasError = true;
+            callback(1, '升级数据出错', null);
+        }
+    };
+    if (datas){
+        for (var i = 0; i < datas.length && !hasError; i++){
+            data = datas[i];
+            if (data.type === 'update') {
+                BillsTemplates.update({tempType: tempType, ID: data.data.ID}, data.data, updateAll)
+            } else if (data.type === 'new') {
+                data.data['tempType'] = tempType;
+                newProject = new BillsTemplates(data.data);
+                newProject.save(updateAll);
+            } else if (data.type === 'delete') {
+                deleteInfo = {};
+                deleteInfo['deleted'] = true;
+                deleteInfo['deleteDateTime'] = new Date();
+                deleteInfo['deleteBy'] = userID;
+                BillsTemplates.update({ID: data.data.ID}, {deleteInfo: deleteInfo}, updateAll);
+            } else {
+                hasError = true;
+                callback(1, '升级数据出错', null)
+            }
+        }
+    }
+};
+BillsTemplateDAO.prototype.getNewBillsTemplateID = function (count, callback) {
+    counter.counterDAO.getIDAfterCount(counter.moduleName.template_bills, count, function (err, result) {
+        var highID = result.value.sequence_value;
+        if (!err) {
+            callback(0, '', {lowID: highID - count + 1, highID: highID});
+        } else {
+            callback(1, '获取主键失败', null);
+        }
+    });
+}
+
+module.exports = new BillsTemplateDAO();

+ 49 - 0
modules/templates/routes/bills_template_router.js

@@ -0,0 +1,49 @@
+/**
+ * Created by Mai on 2017/4/17.
+ */
+
+var express = require('express');
+
+var billsTemplateController = require('./../controllers/bills_template_controller');
+
+
+module.exports = function (app) {
+    app.get('/template/bills', function (req, res) {
+        let checkAdmin = function (userAccount) {
+            return true;
+        }
+        if (checkAdmin(req.session.userAccount)) {
+            res.render('maintain/templates/html/bills.html',
+                {userAccount: req.session.userAccount,
+                    userID: req.session.userID});
+        } else {
+            res.redirect('/pm');
+        }
+    });
+
+    app.use('/template/bills/api', function (req, res, next) {
+        let checkAdmin = function (userAccount) {
+            return true;
+        }
+        if (checkAdmin(req.session.sessionUser)) {
+            next();
+        } else {
+            res.json({error: 1, message: '对不起,您无权限操作清单模板。', data: null});
+        }
+    });
+
+    var billsTemplateRouter = express.Router();
+
+    billsTemplateRouter.post('/getBillsTemplate', billsTemplateController.getBillsTemplate);
+    billsTemplateRouter.post('/updateBillsTemplate', billsTemplateController.updateBillsTemplate);
+    billsTemplateRouter.post('/getNewBillsTemplateID', billsTemplateController.getNewBillsTemplateID);
+    app.use('/template/bills/api', billsTemplateRouter);
+}
+
+
+
+
+
+
+
+

web/maintain/report/css/templates/css/main.css → web/maintain/templates/css/main.css


+ 4 - 4
web/maintain/report/css/templates/html/bills.html

@@ -6,7 +6,7 @@
     <meta http-equiv="x-ua-compatible" content="ie=edge">
     <title>模板清单-Smartcost</title>
     <link rel="stylesheet" href="/lib/bootstrap/css/bootstrap.min.css">
-    <link rel="stylesheet" href="/web/maintain/report/css/templates/css/main.css">
+    <link rel="stylesheet" href="/web/maintain/templates/css/main.css">
     <link rel="stylesheet" href="/lib/font-awesome/font-awesome.min.css">
     <!--SpreadJs-->
     <link rel="stylesheet" href="/lib/spreadjs/sheets/css/gc.spread.sheets.excel2013lightGray.10.0.1.css" type="text/css">
@@ -87,7 +87,7 @@
 <script src="/lib/jquery/jquery.min.js"></script>
 <script src="/lib/tether/tether.min.js"></script>
 <script src="/lib/bootstrap/bootstrap.min.js"></script>
-<script src="/web/maintain/report/css/templates/js/global.js"></script>
+<script src="/web/maintain/templates/js/global.js"></script>
 <!-- SpreadJs -->
 <script type="text/javascript" src="/lib/spreadjs/sheets/gc.spread.sheets.all.10.0.1.min.js"></script>
 <script>GC.Spread.Sheets.LicenseKey = "559432293813965#A0y3iTOzEDOzkjMyMDN9UTNiojIklkI1pjIEJCLi4TPB9mM5AFNTd4cvZ7SaJUVy3CWKtWYXx4VVhjMpp7dYNGdx2ia9sEVlZGOTh7NRlTUwkWR9wEV4gmbjBDZ4ElR8N7cGdHVvEWVBtCOwIGW0ZmeYVWVr3mI0IyUiwCMzETN8kzNzYTM0IicfJye&Qf35VfiEzRwEkI0IyQiwiIwEjL6ByUKBCZhVmcwNlI0IiTis7W0ICZyBlIsIyNyMzM5ADI5ADNwcTMwIjI0ICdyNkIsIibj9SbvNmL4N7bjRnch56ciojIz5GRiwiI8+Y9sWY9QmZ0Jyp96uL9v6L0wap9biY9qiq95q197Wr9g+89iojIh94Wiqi";</script>
@@ -97,8 +97,8 @@
 <script type="text/javascript" src="/public/web/tree_sheet/tree_sheet_controller.js"></script>
 <script type="text/javascript" src="/public/web/tree_sheet/tree_sheet_helper.js"></script>
 <!-- service -->
-<script type="text/javascript" src="/web/maintain/report/css/templates/js/bills.js"></script>
-<script type="text/javascript" src="/web/maintain/report/css/templates/js/tp_bills_setting.js"></script>
+<script type="text/javascript" src="/web/maintain/templates/js/bills.js"></script>
+<script type="text/javascript" src="/web/maintain/templates/js/tp_bills_setting.js"></script>
 <script type="text/javascript" src="/public/web/common_ajax.js"></script>
 <script>
     autoFlashHeight();

+ 1 - 1
web/maintain/report/css/templates/js/bills.js

@@ -2,7 +2,7 @@
  * Created by Mai on 2017/4/17.
  */
 $(document).ready(function () {
-    var tempType = 3;
+    var tempType = 1;
     var FormatUpdateData = function (data) {
         var updateData = {};
         updateData['user_id'] = userID;

web/maintain/report/css/templates/js/global.js → web/maintain/templates/js/global.js


web/maintain/report/css/templates/js/tp_bills_setting.js → web/maintain/templates/js/tp_bills_setting.js