浏览代码

ration repository tuning

TonyKang 8 年之前
父节点
当前提交
cf65679df2

+ 0 - 15
modules/rationLib/models/rationRepository.js

@@ -1,15 +0,0 @@
-/**
- * Created by Tony on 2017/4/19.
- * 定额库分类,如重庆、广东等各个省的建筑定额,未来考虑与公路合并
- */
-var mongoose = require('mongoose');
-var dbm = require("../../../config/db/db_manager");
-var rationLibdb = dbm.getCfgConnection("rationLibs");
-var Schema = mongoose.Schema;
-
-var RationLibSchema = new Schema({
-    "ID" : String,
-    "dispName" : String,
-    "type" : String,
-    "descr" : String
-});

+ 48 - 0
modules/rationRepository/controllers/rationRepositoryController.js

@@ -0,0 +1,48 @@
+/**
+ * Created by Tony on 2017/4/20.
+ */
+var rationRepository = require("../models/rationRepository");
+
+var callback = function(req, res, err, data){
+    if(err){
+        //res.send({success: false, error: err});
+        res.json({success: false, error: err});
+    }
+    else{
+        //res.send({success: true, data: data});
+        res.json({success:true, data: data});
+    }
+};
+
+module.exports = {
+    addRationRepository:function(req,res){
+        var rationObj = JSON.parse(req.body.rationRepObj);
+        rationRepository.addRationRepository(rationObj,function(err,data){
+            if (data) {
+                callback(req, res, err, data);
+            } else {
+                callback(req, res, err, null);
+            }
+        })
+    },
+    getDisPlayRationLibs: function(req, res){
+        rationRepository.getDisplayRationLibs(function(err, data){
+            if (data) {
+                callback(req, res, err, data);
+            } else {
+                callback(req, res, err, null);
+            }
+        });
+    },
+    updateRationRepositoryName: function(req, res) {
+        var orgName = req.body.rationName;
+        var newName = req.body.newName;
+        rationRepository.updateName(orgName, newName, function(err, data){
+            if (data) {
+                callback(req, res, err, data);
+            } else {
+                callback(req, res, err, null);
+            }
+        });
+    }
+}

+ 79 - 0
modules/rationRepository/models/rationRepository.js

@@ -0,0 +1,79 @@
+/**
+ * Created by Tony on 2017/4/19.
+ * 定额库分类,如重庆、广东等各个省的建筑定额,未来考虑与公路合并
+ */
+var mongoose = require('mongoose');
+var dbm = require("../../../config/db/db_manager");
+var stringUtil = require('../../../public/stringUtil');
+var rationLibdb = dbm.getCfgConnection("rationLibMap");
+var Schema = mongoose.Schema;
+var RationLibSchema = new Schema({
+    "dispName" : String,
+    "dbName": String,
+    "appType" : String, //如:"建筑" / "公路"
+    "localeType": String, //如 各个省份 / 部颁
+    "descr" : String,
+    "deleted": Boolean
+});
+
+var rationRepository = rationLibdb.model("rationRepository", RationLibSchema, "rationRepository");
+
+function createNewLibModel(rationLibObj){
+    var rst = {};
+    rst.dispName = rationLibObj.dispName;
+    rst.appType = rationLibObj.appType?rationLibObj.appType:'construct';
+    rst.localeType = rationLibObj.localeType?rationLibObj.localeType:'';
+    rst.descr = rationLibObj.descr;
+    rst.dbName = 'r_r_' + stringUtil.getPinYinFullChars(rationLibObj.dispName);
+    rst.deleted = false;
+    return rst;
+}
+
+rationRepositoryDao = function(){};
+
+rationRepositoryDao.prototype.getRealLibName = function(dispName,callback){
+    rationRepository.find({"dispName": dispName}, function(err,data){
+        if (err) {
+            callback('Error', null);
+        } else {
+            callback(0, data);
+        }
+    });
+};
+
+rationRepositoryDao.prototype.addRationRepository = function( rationLibObj,callback){
+    rationRepository.find({"dispName": rationLibObj.dispName},function(err,data){
+        if(data.length == 0)
+            new rationRepository(createNewLibModel(rationLibObj)).save(function(err) {
+                if (err) callback("Error", null)
+                else
+                    callback(false, "ok");
+            })
+        else
+            callback("定额库重名!",null)
+    })
+};
+
+rationRepositoryDao.prototype.getDisplayRationLibs = function(callback) {
+    rationRepository.find({"deleted": false}, function(err, data){
+        if (err) {
+            callback( 'Error', null);
+        } else {
+            callback( false, data);
+        }
+    });
+};
+
+rationRepositoryDao.prototype.updateName = function(orgName,newName,callback){
+    rationRepository.find({"dispName":newName, "deleted": false}, function(err, data){
+        if (data.length == 0) {
+            rationRepository.update({dispName:orgName},{$set:{dispName:newName}},function(err){
+                if(err) callback("err",false);
+                else callback(false,"ok")
+            })
+        } else
+            callback("不可重名!",false);
+    });
+}
+
+module.exports = new rationRepositoryDao();

+ 14 - 0
modules/rationRepository/routes/rationRepRoutes.js

@@ -0,0 +1,14 @@
+/**
+ * Created by Tony on 2017/4/20.
+ */
+var express = require("express");
+var apiRouter =express.Router();
+var _rootDir = __dirname;
+
+var rationRepositoryController = require("../controllers/rationRepositoryController");
+
+apiRouter.post("/getRationDisplayNames",rationRepositoryController.getDisPlayRationLibs);
+apiRouter.post("/editRationLibs",rationRepositoryController.updateRationRepositoryName);
+apiRouter.post("/addRationRepository",rationRepositoryController.addRationRepository);
+
+module.exports = apiRouter;

文件差异内容过多而无法显示
+ 133 - 0
public/stringUtil.js


+ 21 - 8
server.js

@@ -99,14 +99,27 @@ app.get('/report',  function(req, res) {
 });
 app.use("/report_api", rpt_Router);
 
-//zhangenping add 2017.0.13-----------------------------------------begin
-app.use(express.static(_rootDir+"/web"));
-app.use(express.static(_rootDir+"/lib"));
-var rations_Router = require("./modules/rationLibEditor/routes/rationLibEditor_route");
-app.use("/rationLibEditor",rations_Router);
-//-----------------------------------------------------------------end
-//----------------
-
+//app.use(express.static(_rootDir+"/web"));
+//app.use(express.static(_rootDir+"/lib"));
+//var rations_Router = require("./modules/rationLibEditor/routes/rationLibEditor_route");
+//app.use("/rationLibEditor",rations_Router);
+
+var rationRepository_Router = require("./modules/rationRepository/routes/rationRepRoutes");
+app.get('/rationRepository/main', function(req, res) {
+    res.render('rationLibEditor/main.html',
+        {
+            userAccount: req.session.userAccount,
+            userID: req.session.userID
+        });
+});
+app.get('/rationRepository/ration', function(req, res) {
+    res.render('rationLibEditor/dinge.html',
+        {
+            userAccount: req.session.userAccount,
+            userID: req.session.userID
+        });
+});
+app.use("/rationRepository/api",rationRepository_Router);
 
 app.get("/stdBillsmain", function(req, res){
     res.render("billsLib/html/main.html");

+ 11 - 0
test/unit/public/testPinYin.js

@@ -0,0 +1,11 @@
+/**
+ * Created by Tony on 2017/4/20.
+ */
+var test = require('tape');
+var stringUtil = require('../../../public/stringUtil');
+
+test('测试汉字转拼音', function(t){
+    t.equal(stringUtil.getPinYinFullChars("重庆市建筑工程"), "ZONGHENGKEJI——123");
+    t.equal(stringUtil.getPinYinCamelChars("纵横科技"), "ZHKJ");
+    t.end();
+})

+ 6 - 6
web/rationLibEditor/js/dinge.js

@@ -20,7 +20,7 @@ $(document).ready(function(){
     mkRationItemSpread();
 });
 function initParam(){
-    var rationLibName = getQueryString("rationname");//获取定额库参数
+    var rationLibName = getQueryString("repository");//获取定额库参数
     if(rationLibName)
         getRealLib(rationLibName);
     else{
@@ -31,7 +31,7 @@ function initParam(){
 function getRealLib(LibName){
     $.ajax({
         type:"POST",
-        url:"http://localhost:6060/rationLibEditor/getRealLibName",
+        url:"rationRepository/api/getRealLibName",
         data:{"rationName":LibName},
         async:false,
         dataType:"json",
@@ -48,7 +48,7 @@ function getRealLib(LibName){
 function  getRationTree(){
     $.ajax({
         type:"POST",
-        url:"http://localhost:6060/rationLibEditor/getRationTree",
+        url:"rationRepository/api/getRationTree",
         data:{"rationLibName": params.realLibName},
         dataType:"json",
         cache:false,
@@ -151,7 +151,7 @@ function saveTempTree(){
     var rationTempTree = JSON.stringify(N)
     $.ajax({
         type:"POST",
-        url:"http://localhost:6060/rationLibEditor/saveTempRationTree",
+        url:"rationRepository/api/saveTempRationTree",
         data:{"rationName":rationLibName,"rationTempTree":rationTempTree},
         dataType:"json",
         cache:false,
@@ -199,7 +199,7 @@ function saveNewSection(n){
     var section = JSON.stringify(sec);
     $.ajax({
         type:"POST",
-        url:"http://localhost:6060/rationLibEditor/addSection",
+        url:"rationRepository/api/addSection",
         data:{"rationLibName":params.realLibName,"rationSection":section},
         dataType:"json",
         cache:false,
@@ -225,7 +225,7 @@ function onRemove(e, treeId, treeNode) {
     }
     $.ajax({
         type:"POST",
-        url:"http://localhost:6060/rationLibEditor/deleteSection",
+        url:"rationRepository/api/deleteSection",
         data:{"rationLibName":params.realLibName,"sectionID": treeNode.id},
         dataType:"json",
         cache:false,

+ 27 - 42
web/rationLibEditor/js/mainJ.js

@@ -5,15 +5,15 @@ $(function(){
     getRationLibs();
 })
 
-function addressdirect(){
+function addEvent_Addressdirect(){
     $("tr:gt(0)").each(function() {
         var td, a;
         td = $("td:eq(0)", $(this));
         a = $('a', td);
-        a.attr('href', "/rationLibEditor/rationLib" + "?rationname=" + a.text());
+        a.attr('href', "/rationRepository/ration" + "?repository=" + a.text());
     })
 }
-function deleteLib(){
+function addEvent_DeleteLib(){
     $("tr:gt(0)").each(function() {
         var td0, a1,td2,a2;
         td2 = $("td:eq(2)", $(this));
@@ -28,7 +28,7 @@ function deleteLib(){
     })
 }
 
-function editLib(){
+function addEvent_EditLib(){
     $("tr:gt(0)").each(function() {
         var td0, a1,td2,a2;
         td2 = $("td:eq(2)", $(this));
@@ -46,7 +46,7 @@ $("#deleteLib").click(function(){
     var rationLibName = $("#did").val();
     $.ajax({
         type:"POST",
-        url:"http://localhost:6060/rationLibEditor/deleteRationLibs",
+        url:"api/deleteRationLibs",
         dataType:"json",
         data:{"rationName": rationLibName},
         cache:false,
@@ -64,18 +64,18 @@ $("#deleteLib").click(function(){
 function getRationLibs(){
     $.ajax({
         type:"POST",
-        url:"http://localhost:6060/rationLibEditor/getRationDisplayNames",
+        url:"api/getRationDisplayNames",
         dataType:"json",
         cache:false,
-        timeout:50000,
+        timeout:5000,
         success:function(result){
             $("tbody tr").html("");
             for(var i=0;i<result.data.length;i++){
-                addLibTag(result.data[i].displayName);
+                addLibTag(result.data[i].dispName);
             }
-            addressdirect();
-            deleteLib();
-            editLib();
+            addEvent_Addressdirect();
+            addEvent_DeleteLib();
+            addEvent_EditLib();
         },
         error:function(iqXHR,textStatus,errorThrown){
             alert("error "+textStatus+" "+errorThrown);
@@ -90,21 +90,21 @@ function addLibTag(string){
     var a = $("a",$td0);
     var str = string;
     a.text(str);
-    var date = new Date().format("yyyy-MM-dd");
+    var date = new Date().Format("yyyy-MM-dd");
     $td1.text(date);
     $tr.appendTo("tbody");
 }
 
-function addRation(str) {
+function addRationRepository(rationObj) {
     $.ajax({
         type:"POST",
-        url:"http://localhost:6060/rationLibEditor/addRationLib",
+        url:"api/addRationRepository",
         dataType:"json",
-        data:{"rationDisPlayName": str},
+        data:{"rationRepObj": JSON.stringify(rationObj)},
         cache:false,
-        timeout:50000,
+        timeout:5000,
         success:function(result){
-
+            //
         },
         error:function(iqXHR,textStatus,errorThrown){
             alert("error "+textStatus+" "+errorThrown);
@@ -120,12 +120,16 @@ $("#rationAdd").click(function(){
     var a = $("a",$td0);
     var str = $("#addInput").val();
     a.text(str);
-    var date = new Date().format("yyyy-MM-dd");
+    var date = new Date().Format("yyyy-MM-dd");
     $td1.text(date);
     $tr.appendTo("tbody");
-    addRation(str);
-    addressdirect();
-    deleteLib();
+    var newRationRepObj = {};
+    newRationRepObj.dispName = str;
+    newRationRepObj.appType = "建筑";
+    newRationRepObj.descr = "";
+    addRationRepository(newRationRepObj);
+    addEvent_Addressdirect();
+    addEvent_DeleteLib();
 });
 
 $("#edtOK").click(function(){
@@ -133,7 +137,7 @@ $("#edtOK").click(function(){
     var newStr = $("#inputRation").val();
     $.ajax({
         type:"POST",
-        url:"http://localhost:6060/rationLibEditor/editRationLibs",
+        url:"api/editRationLibs",
         dataType:"json",
         data:{"rationName": str,"newName":newStr},
         cache:false,
@@ -148,24 +152,5 @@ $("#edtOK").click(function(){
     })
 
 });
-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;
-}
+
 autoFlashHeight();

+ 2 - 1
web/rationLibEditor/main.html

@@ -105,7 +105,7 @@
 
     <!--弹出删除-->
     <div class="modal fade" id="del" data-backdrop="static" style="display: none;" aria-hidden="true">
-        <input type="hidden" id="did" value="">
+        <input type="hidden" id="did" value="123">
         <div class="modal-dialog" role="document">
             <div class="modal-content">
                 <div class="modal-header">
@@ -130,6 +130,7 @@
     <script src="/lib/bootstrap/bootstrap.min.js"></script>
     <script src="/lib/global.js"></script>
     <!-- zTree -->
+    <script type="text/javascript" src="/public/dateUtil.js"></script>
   	<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 type="text/javascript" src="/web/rationLibEditor/js/mainJ.js"></script>