Selaa lähdekoodia

Merge branch 'master' of http://smartcost.f3322.net:3000/SmartCost/ConstructionCost

Chenshilong 8 vuotta sitten
vanhempi
commit
b6ab2a41bf

+ 4 - 33
modules/bills/controllers/billsControllers.js

@@ -24,41 +24,12 @@ module.exports = {
         });
     },
     createStdBillsLib: function(req, res){
-        var data = {};
-        data.name = req.body.name;
-        data.createDate = req.body.createDate;
-        var billsLibId = 1;
+        var data = JSON.parse(req.body.data);
         var billsLibName = data.name;
         //to do 以服务器时间为准 new Date();
-        var createDate = data.createDate;
-        var newStdBillsLib = new StdBillsLib({billsLibId: billsLibId, billsLibName: billsLibName, createDate: createDate});
-        newStdBillsLib.save(function(err){
-            if(err){
-                res.json({message: "Error"});
-            }
-            else{
-                res.json({success: true, message: "Success"});
-            }
-        });
-        /*  billsDao.createStdBillsLib(data, function(err, message){
-         //callback(req, res, err, message, null);
-
-         });*/
-        //--------
-        /*    var newStdBillsLib = {
-         billsLibId: billsLibId,
-         billsLibName: billsLibName,
-         createDate: createDate
-         }
-         StdBillsLib.create(newStdBillsLib, function(err){
-         if(err){
-         res.json({message: "Error", data: null});
-         }
-         else {
-         res.json({message: "", data: null});
-         }
-         });*/
-        //--------
+         billsDao.createStdBillsLib(data, function(err, message, info){
+            callback(req, res, err, message, info);
+         });
     },
     deleteStdBillsLib: function(req, res){
         var data = JSON.parse(req.body.data);

+ 14 - 8
modules/bills/model/interfaces.js

@@ -24,11 +24,10 @@ billsDao.prototype.getStdBillsLib = function(userId, callback){
 }
 
 billsDao.prototype.createStdBillsLib = function(clibData, callback){
-    //counter.getIDAfterCount("bills", 1, function(err, result){
-       // var billsLibId = result.value.sequence_value;
-        var billsLibId = 1;
+    counter.getIDAfterCount("bills", 1, function(err, result){
+        var billsLibId = result.value.sequence_value;
         var billsLibName = clibData.name;
-        var createDate = clibData.createDate;
+        var createDate = Date.now();
         var newStdBillsLib = {
             billsLibId: billsLibId,
             billsLibName: billsLibName,
@@ -36,13 +35,20 @@ billsDao.prototype.createStdBillsLib = function(clibData, callback){
         }
         StdBillsLib.create(newStdBillsLib, function(err){
             if(err){
-                callback(1, "Error");
+                callback(1, "Error", null);
             }
             else {
-                callback(0, "");
+                StdBillsLib.find({billsLibId: billsLibId}, function(err, data){
+                    if(err){
+                        callback(1, "Error", null)
+                    }
+                    else {
+                        callback(0, "", data);
+                    }
+                });
             }
         });
-    //});
+    });
 }
 
 billsDao.prototype.deleteStdBillsLib = function(billsLibId, callback){
@@ -58,7 +64,7 @@ billsDao.prototype.deleteStdBillsLib = function(billsLibId, callback){
 
 billsDao.prototype.renameStdBillsLib = function(renameData, callback){
     var billsLibId = renameData.id;
-    var renameVal = renameData.data;
+    var renameVal = renameData.value;
     StdBillsLib.update({billsLibId: billsLibId}, {$set:{billsLibName: renameVal}}, function(err){
         if(err){
             callback(1, "Error");

+ 11 - 11
modules/bills/model/schemas.js

@@ -1,11 +1,11 @@
 var mongoose = require('mongoose');
-//헌데방橙淃커蝎
+//占썲데占쏙옙占쏙옙占쏙옙커占쏙옙
 var stdBillsLibSchema =mongoose.Schema({
     billsLibId: Number,
     billsLibName: String,
     createDate: Date
 });
-//
+//占썲
 var billsSchema = mongoose.Schema({
     //serialNo: Number,
     ID: Number,
@@ -16,27 +16,27 @@ var billsSchema = mongoose.Schema({
     unit: String,
     ruleText: String,
     Expression: String,
-    jobs: Array,//헌데묏鱗코휭
-    items: Array,//헌데淃커景瀝
-    recharge:String,//헌데껸
-    billsLibId: Number//杰橄淃커蝎
+    jobs: Array,//占썲데占쏙옙占쏙옙占쏙옙占쏙옙
+    items: Array,//占썲데占쏙옙커占쏙옙占쏙옙
+    recharge:String,//占썲데占쏙옙
+    billsLibId: Number//占쏙옙占쏙옙占쏙옙커占쏙옙
 });
-//묏鱗코휭
+//占쏙옙占쏙옙占쏙옙占쏙옙
 var jobContentSchema = mongoose.Schema({
     id: Number,
     code: String,
     content: String,
-    billsLibId: Number//杰橄淃커蝎
+    billsLibId: Number//占쏙옙占쏙옙占쏙옙커占쏙옙
 });
-//淃커景瀝
+//占쏙옙커占쏙옙占쏙옙
 var itemCharacterSchema = mongoose.Schema({
     id: Number,
     code: String,
     character: String,
     itemValue: Array,
-    billsLibId: Number//杰橄淃커蝎
+    billsLibId: Number//占쏙옙占쏙옙占쏙옙커占쏙옙
 });
-/*//景瀝
+/*//占쏙옙占쏙옙
 var eigenvalueSchema = mongoose.Schema({
     eigenvalId: Number,
     eigenvalContent: String

+ 0 - 11
server.js

@@ -94,17 +94,6 @@ app.get("/stdBillsmain", function(req, res){
     res.render("bills/html/main.html");
 });
 
-//app.get("/stdBillsEditor/bills", function(req, res){
-//    res.render("bills/html/qingdan.html");
-//});
-//
-//app.get("/stdBillsEditor/jobs", function(req, res){
-//    res.render("bills/html/neirong.html");
-//});
-//
-//app.get("/stdBillsEditor/items", function(req, res){
-//    res.render("bills/html/tezheng.html");
-//});
 var billsRouter = require("./modules/bills/routes/billsRoutes");
 app.use("/stdBillsEditor", billsRouter);
 //-----------------

+ 55 - 0
test/unit/others/decimalSchema.js

@@ -0,0 +1,55 @@
+/**
+ * Created by Tony on 2017/3/30.
+ */
+var test = require('tape');
+var mongoose = require('mongoose');
+var dbm = require("../../../config/db/db_manager");
+var smartcostdb = dbm.getLocalConnection("Demo");
+var Schema = mongoose.Schema;
+var DecSchema = new Schema({
+    "id" : Number,
+    "name" : String,
+    "value" : Schema.Types.Decimal128
+});
+
+var DouSchema = new Schema({
+    "id" : Number,
+    "name" : String,
+    "value" : Number
+});
+
+var Dec = smartcostdb.model("dec_tests", DecSchema);
+var Dou = smartcostdb.model("dou_tests", DouSchema);
+
+test('try to save decimal: ', function (t) {
+        new Dec({id: 2, name:"save decimal new model", value: "2.0999"}).save(function(err){
+            console.log("err:" + err);
+            t.equal(err == null, true);
+            t.end();
+        });
+    }
+);
+
+test('test decimal: ', function (t) {
+        Dec.find( {}, function(err, result) {
+            console.log(result);
+            t.equal(result != null, true);
+            t.end();
+        });
+    }
+);
+
+test('test double: ', function (t) {
+        Dou.find( {}, function(err, result) {
+            console.log(result);
+            t.equal(result != null, true);
+            t.end();
+        });
+    }
+);
+
+test('finish', function (t) {
+    mongoose.disconnect();
+    t.pass('closing db connection');
+    t.end();
+});

+ 39 - 8
web/bills/html/main.html

@@ -23,7 +23,7 @@
         <nav class="navbar navbar-toggleable-lg justify-content-between navbar-light p-0">
           <ul class="nav navbar-nav px-1">
                           <li class="nav-item">
-                              <a class="nav-link" href="javacript:void(0);" aria-haspopup="true" aria-expanded="false" data-toggle="modal" data-target="#add">新建清单规则</a>
+                              <a class="nav-link" href="javascript:void(0);" aria-haspopup="true" aria-expanded="false" data-toggle="modal" data-target="#add">新建清单规则</a>
                           </li>
                       </ul>
         </nav>
@@ -62,13 +62,13 @@
                   <form>
                     <div class="form-group">
                       <label>清单规则名称</label>
-                      <input id="cBillsLib" class="form-control" placeholder="输入清单规则名称" type="text">
+                      <input id="createText" class="form-control" placeholder="输入清单规则名称" type="text">
                     </div>
                   </form>
                 </div>
                 <div class="modal-footer">
                     <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                    <a id="createA" class="btn btn-primary">新建</a>
+                    <a id="createA"  href="javascript:void(0);" class="btn btn-primary" data-dismiss="modal">新建</a>
                 </div>
             </div>
         </div>
@@ -87,13 +87,13 @@
                   <form>
                     <div class="form-group">
                       <label>清单规则名称</label>
-                      <input class="form-control" placeholder="输入名称" type="text" value="XXX库">
+                      <input id="renameText" class="form-control" placeholder="输入名称" type="text" value="">
                     </div>
                   </form>
                 </div>
                 <div class="modal-footer">
                     <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                    <a href="" class="btn btn-primary">确定</a>
+                    <a id="renameA" href="javascript: void(0);" class="btn btn-primary" data-dismiss="modal" renameId="">确定</a>
                 </div>
             </div>
         </div>
@@ -114,7 +114,7 @@
                 </div>
                 <div class="modal-footer">
                     <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                    <a href="" class="btn btn-danger">删除</a>
+                    <a id="deleteA" href="javascript:void(0);" class="btn btn-danger" data-dismiss="modal" deleteId="">删除</a>
                 </div>
             </div>
         </div>
@@ -127,23 +127,54 @@
     <!-- zTree -->
     <script type="text/javascript" src="lib/ztree/jquery.ztree.core.js"></script>
     <script type="text/javascript" src="lib/ztree/jquery.ztree.excheck.js"></script>
-    <script src="/web/bills/scripts/billsAjax.js"></script>
+    <script src="web/bills/scripts/billsAjax.js"></script>
+    <script src="web/bills/scripts/dateFormat.js"></script>
 
 </body>
 <script type="text/javascript">
     autoFlashHeight();
+    mainAjax.getStdBillsLib(null);
 </script>
 <script>
     $(document).ready(function(){
+        //main 增删改
         $("#createA").click(function(){
-            var billsLibName = $("#cBillsLib").val();
+            var billsLibName = $("#createText").val();
             if(billsLibName){
                 mainAjax.createStdBillsLib(billsLibName);
+                $("#createText").val("");
             }
             else{
                 alert("请输入清单规则名称!");
             }
         });
+
+       $("#showArea").on("click", "[data-target = '#del']", function(){
+            var deleteId = $(this).parent().parent().attr("id")
+           $("#deleteA").attr("deleteId", deleteId);
+       });
+        $("#deleteA").click(function(){
+            var deleteId = $(this).attr("deleteId");
+            mainAjax.deleteStdBillsLib(deleteId);
+        });
+
+       $("#showArea").on("click", "[data-target = '#edit']", function(){
+           var renameId = $(this).parent().parent().attr("id");
+           $("#renameA").attr("renameId", renameId);
+
+       });
+
+        $("#renameA").click(function(){
+            var newName = $("#renameText").val();
+            var renameId = $(this).attr("renameId");
+            if(newName){
+                mainAjax.renameStdBillsLib(renameId, newName);
+                $("#renameText").val("");
+            }
+            else {
+                alert("请输入名称!");
+            }
+        });
     });
 </script>
 

+ 33 - 15
web/bills/scripts/billsAjax.js

@@ -2,7 +2,7 @@
  * Created by vian on 2017/3/27.
  */
 var mainAjax = {
-    getStdBillsLib: function(){
+    getStdBillsLib: function(userId){
         $.ajax({
             type: "post",
             url: "/stdBillsEditor/getStdBillsLib",
@@ -11,12 +11,18 @@ var mainAjax = {
             success: function(result){
                 if(result.data){
                     for(var i=0; i<result.data.length; i++){
+                        var id = result.data[i].billsLibId;
                         var billsLibName = result.data[i].billsLibName;
                         var createDate = result.data[i].createDate;
+                        var createDateFmt = new Date(createDate).format("yyyy-MM-dd");
                         $("#showArea").append(
-                            "<tr><td><a href='qingdan.html'>"+billsLibName+"</a></td><td>"+createDate+" </td><td><a href='javacript:void(0);' data-toggle='modal' data-target='#edit' title='�༭'>" +
-                            "<i class='fa fa-pencil-square-o'></i></a> <a href='javacript:void(0);' data-toggle='modal' data-target='#del' class='text-danger' title='ɾ��'>" +
+                            "<tr id='tempId'>" +
+                            "<td><a href='web/bills/html/qingdan.html'>"+billsLibName+"</a></td>" +
+                            "<td>"+createDateFmt+" </td>" +
+                            "<td><a href='javascript:void(0);' data-toggle='modal' data-target='#edit' title='编辑'>" +
+                            "<i class='fa fa-pencil-square-o'></i></a> <a href='javascript:void(0);' data-toggle='modal' data-target='#del' class='text-danger' title='删除'>" +
                             "<i class='fa fa-remove'></i></a></td></tr>");
+                        $("#tempId").attr("id", id);
                     }
                 }
 
@@ -27,18 +33,19 @@ var mainAjax = {
         $.ajax({
             type: "POST",
             url: "/stdBillsEditor/createStdBillsLib",
-            //data: {"data": JSON.stringify({"name": billsLibName, "createDate": "no!"}) },
-            data: {"name": billsLibName, "createDate": "no!"},
+            data: {"data": JSON.stringify({"name": billsLibName}) },
             dataType: "json",
-            cache: false,
-            timeout: 50000,
             success: function(result){
-               alert("success!");
-            },
-            error: function(jqXHR, textStatus, errorThrown){
-                alert('error ' + textStatus + " " + errorThrown);
+                var id = result.data[0].billsLibId;
+                var createDate = result.data[0].createDate;
+                var createDateFmt = new Date(createDate).format("yyyy-MM-dd");
+                $("#showArea").append(
+                    "<tr id='tempId'><td><a href='web/bills/html/qingdan.html'>"+billsLibName+"</a></td><td>"+createDateFmt+" </td><td><a href='javascript:void(0);' data-toggle='modal' data-target='#edit' title='编辑'>" +
+                    "<i class='fa fa-pencil-square-o'></i></a> <a href='javascript:void(0);' data-toggle='modal' data-target='#del' class='text-danger' title='删除'>" +
+                    "<i class='fa fa-remove'></i></a></td></tr>"
+                );
+                $("#tempId").attr("id", id);
             }
-
         });
     },
     deleteStdBillsLib: function(billsLibId){
@@ -49,11 +56,22 @@ var mainAjax = {
             dataType: "json",
             success: function(result){
                 if(!result.error){
-                    var jqId = "#"+billsLibId;
-                    $(jqId).remove();
+                    var jqSel = "#"+billsLibId;
+                    $(jqSel).remove();
                 }
             }
         });
+    },
+    renameStdBillsLib: function(billsLibId, newName){
+        $.ajax({
+            type: "post",
+            url: "/stdBillsEditor/renameStdbillsLib",
+            data: {"data": JSON.stringify({"id": billsLibId, "value": newName})},
+            dataType: "json",
+            success: function(result){
+                var jqSel = "#" + billsLibId + " td:first" + " a";
+                $(jqSel).text(newName);
+            }
+        });
     }
-
 }

+ 21 - 0
web/bills/scripts/dateFormat.js

@@ -0,0 +1,21 @@
+/**
+ * Created by vian on 2017/3/30.
+ */
+Date.prototype.format = function(fmt)
+{
+    var o = {
+        "M+" : this.getMonth()+1,                 //月份
+        "d+" : this.getDate(),                    //日
+        "h+" : this.getHours(),                   //小时
+        "m+" : this.getMinutes(),                 //分
+        "s+" : this.getSeconds(),                 //秒
+        "q+" : Math.floor((this.getMonth()+3)/3), //季度
+        "S"  : this.getMilliseconds()             //毫秒
+    };
+    if(/(y+)/.test(fmt))
+        fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
+    for(var k in o)
+        if(new RegExp("("+ k +")").test(fmt))
+            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
+    return fmt;
+}