Pārlūkot izejas kodu

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

MaiXinRong 8 gadi atpakaļ
vecāks
revīzija
300704d933
36 mainītis faili ar 1079 papildinājumiem un 1165 dzēšanām
  1. 7 7
      lib/global.js
  2. 0 0
      modules/feeRateLibs/models/feeRateLibs_db.js
  3. 2 2
      modules/fees/controllers/fees_controller.js
  4. 0 0
      modules/feeRates/models/feeRates_db.js
  5. 19 0
      modules/feeRates/routes/feeRates_router.js
  6. 0 19
      modules/fees/routes/fees_router.js
  7. 83 0
      modules/rationRepository/controllers/coeListController.js
  8. 9 0
      modules/rationRepository/controllers/rationRepositoryController.js
  9. 2 2
      modules/rationRepository/controllers/repositoryGljController.js
  10. 8 0
      modules/rationRepository/models/coeList.js
  11. 6 12
      modules/rationRepository/models/gljRepository.js
  12. 12 2
      modules/rationRepository/models/repositoryMap.js
  13. 4 0
      modules/rationRepository/routes/rationRepRoutes.js
  14. 28 0
      public/debug.js
  15. 0 0
      public/web/QueryParam.js
  16. 0 0
      public/web/dateUtil.js
  17. 68 0
      public/web/sheet.js
  18. 0 0
      public/web/storageUtil.js
  19. 5 5
      server.js
  20. 34 33
      web/css/main.css
  21. 1 1
      web/fees/feeRate.html
  22. 4 4
      web/fees/feeRate.js
  23. 0 928
      web/rationLibEditor/dinge.html
  24. 0 92
      web/rationLibEditor/js/coeList.js
  25. 566 0
      web/rationRepository/dinge.html
  26. 9 6
      web/rationLibEditor/fuzhu.html
  27. 16 16
      web/rationLibEditor/gongliao.html
  28. 2 1
      web/rationLibEditor/js/chapterTree.js
  29. 137 0
      web/rationRepository/js/coeList.js
  30. 16 11
      web/rationLibEditor/js/mainJ.js
  31. 11 7
      web/rationLibEditor/js/ration.js
  32. 0 0
      web/rationRepository/js/rationGLJ.js
  33. 26 14
      web/rationLibEditor/js/repositoryGLJ.js
  34. 1 1
      web/rationLibEditor/js/sheetCommon.js
  35. 0 0
      web/rationRepository/js/zTreeCommon.js
  36. 3 2
      web/rationLibEditor/main.html

+ 7 - 7
lib/global.js

@@ -1,16 +1,16 @@
 /*全局自适应高度*/
 function autoFlashHeight(){
     var headerHeight = $(".header").height();
-    var toolsbarHeight = $(".toolsbar").height();
     var bottomContentHeight = $(".bottom-content").height();
-    var sidebarToolsBarHeight = $(".sidebar-tools-bar").height();
-    $(".main-data-side-f").height($(window).height()-headerHeight-toolsbarHeight-2);
-    $(".main-data-side-s").height($(window).height()-headerHeight-toolsbarHeight-sidebarToolsBarHeight-202);
-    $(".main-data-top").height($(window).height()-headerHeight-toolsbarHeight-bottomContentHeight-1);
-    $(".main-data-full").height($(window).height()-headerHeight-toolsbarHeight-1);
+    var toolsBar = $(".tools-bar").height();
+    $(".content").height($(window).height()-headerHeight);
+    $(".main-side").height($(window).height()-headerHeight-2);
+    $(".fluid-content").height($(window).height()-headerHeight-1);
     $(".side-content").height($(window).height()-headerHeight );
-    $(".poj-list").height($(window).height()-headerHeight-toolsbarHeight);
+    $(".poj-list").height($(window).height()-headerHeight);
     $(".form-list").height($(window).height()-headerHeight-50 );
+    $(".main-data-top").height($(window).height()-headerHeight-toolsBar-bottomContentHeight-2);
+    $(".main-data").height($(window).height()-headerHeight);
 };
 $(window).resize(autoFlashHeight);
 /*全局自适应高度结束*/

modules/feeLibs/models/feeLibs_db.js → modules/feeRateLibs/models/feeRateLibs_db.js


+ 2 - 2
modules/fees/controllers/fees_controller.js

@@ -2,8 +2,8 @@
  * Created by CSL on 2017-03-23.
  */
 
-var stdFeeRateLibs = require('../../feeLibs/models/feeLibs_db');
-var projectFeeRateFile = require('../models/fees_db');
+var stdFeeRateLibs = require('../../feeRateLibs/models/feeRateLibs_db');
+var projectFeeRateFile = require('../models/feeRates_db');
 
 module.exports = {
     libNames: function (req, res) {

modules/fees/models/fees_db.js → modules/feeRates/models/feeRates_db.js


+ 19 - 0
modules/feeRates/routes/feeRates_router.js

@@ -0,0 +1,19 @@
+/**
+ * Created by CSL on 2017-03-22.
+ */
+
+var express = require('express');
+var frRouter = express.Router();
+var frController = require('../controllers/feeRates_controller');
+
+frRouter.get('/', function(req, res) {
+    res.render('feeRate/feeRate', {});
+});
+
+frRouter.post('/getLibNames', frController.libNames);
+frRouter.post('/getLibFeeRates', frController.libFeeRates);
+frRouter.post('/getProjectFeeRates', frController.projectFeeRates);
+frRouter.post('/updateProjectFeeRate', frController.projectFeeUpdateRate);
+
+
+module.exports = frRouter;

+ 0 - 19
modules/fees/routes/fees_router.js

@@ -1,19 +0,0 @@
-/**
- * Created by CSL on 2017-03-22.
- */
-
-var express = require('express');
-var feesRouter = express.Router();
-var feesController = require('../controllers/fees_controller');
-
-feesRouter.get('/', function(req, res) {
-    res.render('fees/feeRate', {});
-});
-
-feesRouter.post('/getLibNames', feesController.libNames);
-feesRouter.post('/getLibFeeRates', feesController.libFeeRates);
-feesRouter.post('/getProjectFeeRates', feesController.projectFeeRates);
-feesRouter.post('/updateProjectFeeRate', feesController.projectFeeUpdateRate);
-
-
-module.exports = feesRouter;

+ 83 - 0
modules/rationRepository/controllers/coeListController.js

@@ -0,0 +1,83 @@
+/**
+ * Created by CSL on 2017/5/19.
+ */
+var coeList = require("../models/coeList");
+
+var callback = function(req,res,err,message, data){
+    res.json({error: err, message: message, data: data});
+}
+
+module.exports ={
+    getCoeList: function(req,res){
+        coeList.getCoesByLibID(req.body.libID, function(err,data){
+            callback(req, res, err, 'Get coes', data);
+        });
+    },
+    createNewGljTypeNode: function(req, res) {
+        var repId = req.body.repositoryId;
+        var lastNodeId = req.body.lastNodeId;
+        var nodeData = JSON.parse(req.body.rawNodeData);
+        gljRepository.createNewNode(repId, lastNodeId, nodeData, function(err, msg, data){
+            callback(req,res,err,msg, data)
+        });
+    },
+    updateGljNodes: function(req, res) {
+        var nodes = JSON.parse(req.body.nodes);
+        gljRepository.updateNodes(nodes, function(err,results){
+            callback(req,res, err, results)
+        });
+    },
+    deleteGljNodes: function(req, res) {
+        var nodes = JSON.parse(req.body.nodes);
+        var preNodeId = req.body.preNodeId;
+        var preNodeNextId = req.body.preNodeNextId;
+        gljRepository.removeNodes(nodes, preNodeId, preNodeNextId, function(err,results){
+            callback(req,res, err, results)
+        });
+    },
+    getGljItems: function(req, res) {
+        var repId = req.body.repositoryId,
+            gljType = req.body.type,
+            gljCode = req.body.code;
+        if (gljCode) {
+            gljRepository.getGljItem(repId, gljCode, function(err, data){
+                callback(req,res,err,'Get Items', data)
+            });
+        } else if (gljType) {
+            gljRepository.getGljItemByType(repId, gljType, function(err, data){
+                callback(req,res,err,'Get Types', data)
+            });
+        } else {
+            gljRepository.getGljItemsByRep(repId, function(err, data){
+                callback(req,res,err,'Get Items',data)
+            });
+        }
+    },
+    getGljItemsByIds: function(req, res) {
+        var gljIds = JSON.parse(req.body.gljIds);
+        gljRepository.getGljItems(gljIds, function(err, data){
+            callback(req,res,err,'Get Items',data)
+        });
+    },
+    getGljItemsByCodes: function(req, res) {
+        var gljCodes = JSON.parse(req.body.gljCodes),
+            repId = req.body.repId;
+        gljRepository.getGljItemsByCode(repId, gljCodes, function(err, data){
+            callback(req,res,err,'Get Items',data)
+        });
+    },
+    mixUpdateGljItems: function(req, res){
+        var repId = req.body.repositoryId,
+            updateItems = JSON.parse(req.body.updateItems),
+            addItems = JSON.parse(req.body.addItems),
+            removeIds = JSON.parse(req.body.removeIds);
+        gljRepository.mixUpdateGljItems(repId, updateItems, addItems, removeIds, function(err, message, rst){
+            if (err) {
+                callback(req, res, err, message, null);
+            } else {
+                callback(req, res, err, message, rst);
+            }
+        });
+    }
+
+}

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

@@ -37,6 +37,15 @@ module.exports = {
             }
         })
     },
+    getLibIDByName:function(req,res){
+        rationRepository.getLibIDByName(req.body.libName, function(err,data){
+            if (data) {
+                callback(req, res, err, "has ID", data);
+            } else {
+                callback(req, res, err, "no ID", null);
+            }
+        })
+    },
     deleteRationLib:function(req,res){
         var rationName = req.body.rationName;
         rationRepository.deleteRationLib(rationName,function(err,data){

+ 2 - 2
modules/rationRepository/controllers/repositoryGljController.js

@@ -8,8 +8,8 @@ var callback = function(req,res,err,message, data){
 }
 module.exports ={
     getGljTree: function(req,res){
-        var libName = req.body.rationLibName;
-        gljRepository.getGljTypes(libName,function(err,data){
+        var rationLibId = req.body.rationLibId;
+        gljRepository.getGljTypes(rationLibId,function(err,data){
             callback(req,res,err, 'Get Tree', data)
         });
     },

+ 8 - 0
modules/rationRepository/models/coeList.js

@@ -42,4 +42,12 @@ coeListDAO.prototype.getCoe = function (data, callback) {
         })
 };
 
+coeListDAO.prototype.getCoesByLibID = function (libID, callback) {
+    coeListModel.find({ "libID": libID },
+        function (err, doc) {
+            if (err) callback("获取定额库系数表错误", null)
+            else callback(null, doc);
+        })
+};
+
 module.exports = new coeListDAO();

+ 6 - 12
modules/rationRepository/models/gljRepository.js

@@ -36,18 +36,12 @@ var repositoryMap = require('./repositoryMap');
 var counter = require('../../../public/counter/counter');
 
 var gljItemDAO = function(){};
-gljItemDAO.prototype.getGljTypes = function(repositoryName, callback){
-    repositoryMap.getRealLibName(repositoryName, function(err, rst){
-        if (err || rst.length == 0) {
-            callback("获取定额库错误!",false)
-        } else {
-            gljTypeModel.find({"repositoryId": rst[0].ID, "$or": [{"isDeleted": null}, {"isDeleted": false} ]},function(err,data){
-                if(data.length) callback(false,data);
-                else  if(err) callback("获取工料机类型错误!",false)
-                else callback(false,false);
-            })
-        }
-    });
+gljItemDAO.prototype.getGljTypes = function(rationLibId, callback){
+    gljTypeModel.find({"repositoryId": rationLibId, "$or": [{"isDeleted": null}, {"isDeleted": false} ]},function(err,data){
+        if(data.length) callback(false,data);
+        else  if(err) callback("获取工料机类型错误!",false)
+        else callback(false,false);
+    })
 };
 
 gljItemDAO.prototype.getGljItemsByRep = function(repositoryId,callback){

+ 12 - 2
modules/rationRepository/models/repositoryMap.js

@@ -46,6 +46,16 @@ rationRepositoryDao.prototype.getRealLibName = function(dispName,callback){
     }
 };
 
+rationRepositoryDao.prototype.getLibIDByName = function(dispName, callback){
+    rationRepository.findOne({"dispName": dispName}, function(err,data){
+        if (err) {
+            callback('Error', null);
+        } else {
+            callback(false, data.ID);
+        }
+    });
+};
+
 rationRepositoryDao.prototype.getRepositoryById = function(repId,callback){
     if (callback) {
         rationRepository.find({"ID": repId}, function(err,data){
@@ -65,10 +75,10 @@ rationRepositoryDao.prototype.addRationRepository = function( rationLibObj,callb
     counter.counterDAO.getIDAfterCount(counter.moduleName.rationMap, 1, function(err, result){
         var rMap = createNewLibModel(rationLibObj);
         rMap.ID = result.value.sequence_value;
-        new rationRepository(rMap).save(function(err) {
+        new rationRepository(rMap).save(function(err, result) {
             if (err) callback("Error", null)
             else
-                callback(false, "ok");
+                callback(false, result);
         });
     });
 };

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

@@ -9,12 +9,14 @@ var rationRepositoryController = require("../controllers/rationRepositoryControl
 var rationChapterTreeController = require("../controllers/rationChapterTreeController");
 var rationController = require("../controllers/rationController");
 var repositoryGljController = require("../controllers/repositoryGljController");
+var coeListController = require("../controllers/coeListController");
 
 apiRouter.post("/getRationDisplayNames",rationRepositoryController.getDisPlayRationLibs);
 apiRouter.post("/editRationLibs",rationRepositoryController.updateRationRepositoryName);
 apiRouter.post("/addRationRepository",rationRepositoryController.addRationRepository);
 apiRouter.post("/deleteRationLibs",rationRepositoryController.deleteRationLib);
 apiRouter.post("/getRealLibName",rationRepositoryController.getRealLibName);
+apiRouter.post("/getLibIDByName",rationRepositoryController.getLibIDByName);
 
 apiRouter.post("/getRationTree",rationChapterTreeController.getRationChapterTree);
 apiRouter.post("/createNewNode",rationChapterTreeController.createNewNode);
@@ -33,5 +35,7 @@ apiRouter.post("/mixUpdateGljItems",repositoryGljController.mixUpdateGljItems);
 apiRouter.post("/getGljItemsByIds",repositoryGljController.getGljItemsByIds);
 apiRouter.post("/getGljItemsByCodes",repositoryGljController.getGljItemsByCodes);
 
+apiRouter.post("/getCoeList",coeListController.getCoeList);
+
 
 module.exports = apiRouter;

+ 28 - 0
public/debug.js

@@ -0,0 +1,28 @@
+/**
+ * Created by CSL on 2017-05-19.
+ * 用于展示未知对象的内容。如:debug.m(GC.Spread.Sheets.Events);
+ */
+
+debug = {
+    m: function (obj) {
+        alert(this.objStr(obj));
+    },
+
+    d: function (obj) {
+        alert(JSON.stringify(obj));
+    },
+
+    objStr: function (obj) {
+        var str = "";
+        var spr = "";
+        for (var x in obj) {
+            if (obj.hasOwnProperty(x)) {
+                if (str == '') {
+                    spr = ''
+                } else { spr = ', ' } ;
+                str += spr + x + ':' + obj[x];
+            }
+        }
+        return str;
+    }
+}

public/QueryParam.js → public/web/QueryParam.js


public/dateUtil.js → public/web/dateUtil.js


+ 68 - 0
public/web/sheet.js

@@ -0,0 +1,68 @@
+/**
+ * Created by CSL on 2017-05-19.
+ * 通用的SpreadSheet创建显示接口,应用数据源绑定列、脏数据等。
+ * var colDef = [{name: "coeType", displayName: "类型", size: 100, hAlign: "center"},..,{} ];
+ * var datas = [{},..,{}];
+ */
+
+sheetObj = {
+    spread: null,
+
+    create: function (container, colDef, datas){
+        var me = this;
+        me.spread = new GC.Spread.Sheets.Workbook(container, {sheetCount:1});
+        me.spread.suspendPaint();
+
+        me.spread.options.tabStripVisible = false;
+        me.spread.options.showHorizontalScrollbar = false;
+
+        var sheet = me.spread.getSheet(0);
+        var sheetArea = GC.Spread.Sheets.SheetArea;
+        sheet.setRowCount(20, sheetArea.viewport);
+        sheet.setRowHeight(0, 30, sheetArea.colHeader);
+        sheet.autoGenerateColumns = false;
+        sheet.setDataSource(datas);
+        sheet.bindColumns(colDef);
+        me.setColAlign(colDef);
+        me.setRowHeight(datas, 25);
+
+        me.spread.resumePaint();
+        return me.spread;
+    },
+
+    setColAlign: function(colDef){
+        var me = this;
+        var sheet = me.spread.getSheet(0);
+
+        for (var col = 0; col < colDef.length; col++) {
+            var ha = colDef[col].hAlign;
+            var va = colDef[col].vAlign;
+            var area = sheet.getRange(-1, col, -1, GC.Spread.Sheets.SheetArea.viewport);
+
+            if (ha === "right") {
+                area.hAlign(GC.Spread.Sheets.HorizontalAlign.right);
+            } else if (ha === "center") {
+                area.hAlign(GC.Spread.Sheets.HorizontalAlign.center);
+            } else {
+                area.hAlign(GC.Spread.Sheets.HorizontalAlign.left);
+            };
+
+            if (va === "top") {
+                area.vAlign(GC.Spread.Sheets.VerticalAlign.top);
+            } else if (va === "bottom") {
+                area.vAlign(GC.Spread.Sheets.VerticalAlign.bottom);
+            } else {
+                area.vAlign(GC.Spread.Sheets.VerticalAlign.center);
+            };
+        };
+
+    },
+
+    setRowHeight: function(datas, hValue){
+        var me = this;
+        var sheet = me.spread.getSheet(0);
+        for (var row = 0; row < datas.length; row++) {
+            sheet.setRowHeight(row, hValue, GC.Spread.Sheets.SheetArea.viewport);
+        }
+    }
+};

public/storageUtil.js → public/web/storageUtil.js


+ 5 - 5
server.js

@@ -52,7 +52,7 @@ app.use(function (req, res, next) {
 });
 
 app.use('/', require('./modules/users/routes/users_route'));
-app.use('/fees', require('./modules/fees/routes/fees_router'));
+app.use('/feeRates', require('./modules/feeRates/routes/feeRates_router'));
 
 app.get('/template/bills', function (req, res) {
     var checkAdmin = function (userAccount) {
@@ -132,21 +132,21 @@ app.use("/report_api", rpt_Router);
 
 var rationRepository_Router = require("./modules/rationRepository/routes/rationRepRoutes");
 app.get('/rationRepository/main', function(req, res) {
-    res.render('rationLibEditor/main.html',
+    res.render('rationRepository/main.html',
         {
             userAccount: req.session.userAccount,
             userID: req.session.userID
         });
 });
 app.get('/rationRepository/ration', function(req, res) {
-    res.render('rationLibEditor/dinge.html',
+    res.render('rationRepository/dinge.html',
         {
             userAccount: req.session.userAccount,
             userID: req.session.userID
         });
 });
 app.get('/rationRepository/lmm', function(req, res) {
-    res.render('rationLibEditor/gongliao.html',
+    res.render('rationRepository/gongliao.html',
         {
             userAccount: req.session.userAccount,
             userID: req.session.userID
@@ -154,7 +154,7 @@ app.get('/rationRepository/lmm', function(req, res) {
 });
 
 app.get('/rationRepository/coeList', function(req, res) {
-    res.render('rationLibEditor/fuzhu.html',
+    res.render('rationRepository/fuzhu.html',
         {
             userAccount: req.session.userAccount,
             userID: req.session.userID

+ 34 - 33
web/css/main.css

@@ -1,8 +1,7 @@
 /*building SAAS 0.1*/
 /*bootstrap 初始化*/
 body {
-    font-size: 0.9rem;
-    overflow: hidden;
+    font-size: 0.9rem
 }
 .dropdown-menu {
     font-size: 0.9rem
@@ -27,12 +26,12 @@ body {
   width:100%;
   z-index: 999
 }
-.in-1{padding-left:0px!important}
-.in-2{padding-left:21px!important}
-.in-3{padding-left:42px!important}
-.in-4{padding-left:63px!important}
-.in-5{padding-left:84px!important}
-.in-6{padding-left:105px!important}
+.in-1{padding-left:0rem!important}
+.in-2{padding-left:1rem!important}
+.in-3{padding-left:1.5rem!important}
+.in-4{padding-left:2rem!important}
+.in-5{padding-left:2.5rem!important}
+.in-6{padding-left:3rem!important}
 .main {
     position: relative;
     background: #f7f7f9;
@@ -63,12 +62,7 @@ body {
     background: #fff;
     color: #333
 }
-.main-nav .nav-tabs{
-  border-bottom: none
-}
 .content {
-    border-left: 1px solid #ccc;
-    margin-left: 29px;
     background: #fff
 }
 .tools-btn {
@@ -79,22 +73,29 @@ body {
     background: #f7f7f9;
 }
 .main-side {
-    border-top: 1px solid #ccc;
-    border-left: 1px solid #ccc;
-    overflow-y: hidden;
+    border-right: 1px solid #ccc;
+    overflow-y: auto;
 }
-.sidebar-bottom,.sidebar-bottom .col-lg-6,.sidebar-bottom .col-lg-12 {
-  height:200px
+.main-side .tab-bar {
+    padding:5px 10px;
+    height:38px;
+    position:fixed;
+}
+.main-side .tab-content {
+    margin-top: 38px
 }
 .top-content, .fluid-content {
-    overflow: auto;
+    overflow: hidden;
     border-bottom: 1px solid #ccc;
 }
-.bottom-content .nav {
+.warp-p2 {
+    padding: 2px
+}
+.bottom-content .nav,.top-content .nav {
     background: #f7f7f9;
     padding:0 0 0 2px
 }
-.bottom-content .nav-tabs .nav-link, .side-tabs .nav-tabs .nav-link {
+.bottom-content .nav-tabs .nav-link, .side-tabs .nav-tabs .nav-link,.top-content .nav-tabs .nav-link {
     border-radius: 0;
     padding: 0.2em 0.5em
 }
@@ -211,13 +212,14 @@ body {
         transform: translateX(10px);
     }
 }
+.bottom-content {
+    height: 370px;
+    overflow: hidden;
+}
 .bottom-content .tab-content .main-data-bottom{
-    height: 200px;
+    height: 340px;
     overflow: auto;
 }
-.bottom-content .tab-content .ovf-hidden{
-    overflow: hidden;
-}
 .form-signin {
     max-width: 500px;
     margin: 150px auto;
@@ -226,13 +228,9 @@ body {
     overflow: auto;
 }
 .poj-list span.poj-icon {
-  padding-right:7px;
+  padding-right:10px;
   color:#ccc
 }
-.poj-list a.tree-open,.poj-list a.tree-close{
-  width:15px;
-  display: inline-block;
-}
 .print-toolsbar{
   padding:5px
 }
@@ -268,7 +266,10 @@ body {
   width:inherit;
   height: inherit;
 }
-.modal-fixed-height {
-  height: 400px;
-  overflow-y: auto;
+.codeList{
+    max-height: 200px;
+    overflow:auto;
+}
+.main-data-top,.main-data-bottom,.main-data{
+  overflow: auto;
 }

+ 1 - 1
web/fees/feeRate.html

@@ -117,7 +117,7 @@
     <script src="/lib/tether/tether.min.js"></script>
     <script src="/lib/bootstrap/bootstrap.min.js"></script>
     <script src="/lib/global.js"></script>
-    <script src="/web/fees/feeRate.js"></script>
+    <script src="/web/feeRate/feeRate.js"></script>
 </body>
 <script type="text/javascript">
     autoFlashHeight();

+ 4 - 4
web/fees/feeRate.js

@@ -24,7 +24,7 @@ $(document).ready(function () {
 function loadProjectFeeRates(fileID) {
     $.ajax({
         type: "POST",
-        url: '/fees/getProjectFeeRates',
+        url: '/feeRates/getProjectFeeRates',
         data: {"fileID": fileID},
         success: function (result) {
             if (result.data) {
@@ -43,7 +43,7 @@ function loadStdFeeRateLibNames(region) {
 
     $.ajax({
         type: "POST",
-        url: '/fees/getLibNames',
+        url: '/feeRates/getLibNames',
         data: {"region": region},
         success: function (result) {
             if (result.data) {
@@ -63,7 +63,7 @@ function loadStdFeeRateLibNames(region) {
 function loadLibFeeRates(libID) {
     $.ajax({
         type: "POST",
-        url: '/fees/getLibFeeRates',
+        url: '/feeRates/getLibFeeRates',
         data: {"libID": libID},
         success: function (result) {
             if (result.data) {
@@ -153,7 +153,7 @@ function createSpreadView(canEdit) {
         update: function(params) {
             $.ajax({
                 type: 'POST',
-                url: '/fees/updateProjectFeeRate',
+                url: '/feeRates/updateProjectFeeRate',
                 data: {"fileID": feeRateFileID, "rateID": params.dataItem.ID, "rateValue": params.dataItem.rate},
                 success: function(data) {
                     var iCode = data.data;

+ 0 - 928
web/rationLibEditor/dinge.html

@@ -1,928 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-
-<head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <meta http-equiv="x-ua-compatible" content="ie=edge">
-    <title>定额库编辑器</title>
-    <link rel="stylesheet" href="/web/css/bootstrap/bootstrap.min.css">
-   <!-- <link rel="stylesheet" href="/lib/css/bootstrap/themes.css">-->
-    <link rel="stylesheet" href="/web/css/main.css">
-    <link rel="stylesheet" href="/web/css/font-awesome/font-awesome.min.css">
-    <!--zTree-->
-  	<link rel="stylesheet" href="/web/css/ztree/zTreeStyle.css" type="text/css">
-    <link rel="stylesheet" href="/web/css/spreadjs/gc.spread.sheets.10.0.1.css" type="text/css">
-
-</head>
-
-<body>
-    <div class="header">
-        <nav class="navbar navbar-toggleable-lg navbar-light bg-faded p-0 ">
-            <span class="header-logo px-2">Smartcost</span>
-            <div id="rationname" class="navbar-text"><a href="main">定额库</a><i class="fa fa-angle-right fa-fw"></i>XXX定额库</div>
-        </nav>
-        <nav class="navbar navbar-toggleable-lg justify-content-between navbar-light p-0">
-              <ul class="nav nav-tabs" role="tablist">
-                  <li class="nav-item">
-                      <a class="nav-link active px-3" id ="dinge" >定额</a>
-                  </li>
-                  <li class="nav-item">
-                      <a class="nav-link px-3" id="gongliao" href="#">工料机</a>
-                  </li>
-                  <li class="nav-item">
-                      <a class="nav-link px-3" id="fuzhu" href="#">附注条件</a>
-                  </li>
-                  <li class="nav-item">
-                      <a class="nav-link px-3" href="#maz">安装增加费</a>
-                  </li>
-              </ul>
-        </nav>
-    </div>
-    <div class="main">
-        <div class="content">
-            <div class="container-fluid">
-                <div class="row">
-                  <div class="main-side col-lg-3 p-0">
-                      <div class="tab-bar">
-                          <!--
-                          <a href="#" class="btn btn-secondary btn-sm">创建默认章节树</a>
-                          -->
-                          <a onclick="zTreeOprObj.addRootNode()" class="btn btn-secondary btn-sm">增加根节点</a>
-                      </div>
-                    <div class="tab-content">
-                      <ul id="rationChapterTree" class="ztree"></ul>
-                    </div>
-                  </div>
-                  <div class="main-content col-lg-9 p-0">
-                        <div class="top-content">
-                          <ul class="nav nav-tabs" role="tablist">
-                              <li class="nav-item">
-                                  <a class="nav-link active" data-toggle="tab" href="#tde" role="tab">定额</a>
-                              </li>
-                              <li class="nav-item">
-                                  <a class="nav-link" data-toggle="tab" href="#tsm" role="tab">说明</a>
-                              </li>
-                              <li class="nav-item">
-                                  <a class="nav-link" data-toggle="tab" href="#tjs" role="tab">计算规则</a>
-                              </li>
-                              <li class="nav-item">
-                                  <a class="nav-link" data-toggle="tab" href="#tgz" role="tab">工作内容</a>
-                              </li>
-                          </ul>
-                          <!-- Tab panes -->
-                          <div class="tab-content">
-                              <div class="tab-pane active" id="tde" role="tabpanel">
-                                 <div id="rationItemsSheet" class="warp-p2" style='width:100%; height:400px;'></div>
-                              </div>
-                              <div class="tab-pane" id="tsm" role="tabpanel">
-                                  <div class="warp-p2">
-                                    <div class="m-2"><a href="javacript:void(0);" data-toggle="modal" data-target="#editTsm" title="编辑">编辑说明</a></div>
-                                    <div class="main-content">
-                                      <h5>说明</h5><p>一、一般说明</p><p>1.土壤及岩石分类,详见土壤及岩石分类表。</p><p>2.....</p>
-                                    </div>
-                                  </div>
-                              </div>
-                              <div class="tab-pane" id="tjs" role="tabpanel">
-                                  <div class="warp-p2">
-                                    <div class="m-2"><a href="javacript:void(0);" data-toggle="modal" data-target="#editTjs" title="编辑">编辑计算规则</a></div>
-                                    <div class="main-content">
-                                      <h5>计算规则</h5>
-                                      <p>土壤、岩石体积,均按挖掘前的天然密度体积以立方米计算。.....</p>
-                                    </div>
-                                  </div>
-                              </div>
-                              <div class="tab-pane" id="tgz" role="tabpanel">
-                                <div class="warp-p2">
-                                  <p class="m-2">适合本项所有定额</p>
-                                  <table class="table table-sm table-bordered m-0">
-                                    <thead>
-                                      <tr>
-                                        <th>工作内容</th>
-                                        <th>操作</th>
-                                      </tr>
-                                    </thead>
-                                    <tbody>
-                                      <tr rowspan="4">
-                                        <td>1.挖土、修理边底。</td>
-                                        <td><a href="javacript:void(0);" data-toggle="modal" data-target="#editNewgznr" 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="删除"><i class="fa fa-remove"></i></a></td>
-                                      </tr>
-                                    </tbody>
-                                  </table>
-                                  <p class="m-2">适合本项部分定额</p>
-                                  <table class="table table-sm table-bordered m-0">
-                                    <thead>
-                                      <tr>
-                                        <th>编码</th>
-                                        <th>工作内容</th>
-                                        <th>操作</th>
-                                      </tr>
-                                    </thead>
-                                    <tbody>
-                                      <tr rowspan="4">
-                                        <td><p class="m-0">AA0017</p><p class="m-0">AA0018</p><p class="m-0">AA0019</p><p class="m-0">AA0020</p></td>
-                                        <td>1.挖土、修理边底。</td>
-                                        <td><a href="javacript:void(0);" data-toggle="modal" data-target="#editNewgznr" 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="删除"><i class="fa fa-remove"></i></a></td>
-                                      </tr>
-                                    </tbody>
-                                  </table>
-                                  <div class="m-2"><a href="javacript:void(0);" data-toggle="modal" data-target="#addNewgznr" class="btn btn-primary btn-sm">新增工作内容</a></div>
-                                </div>
-                              </div>
-                          </div>
-                        </div>
-                        <div class="bottom-content">
-                            <ul class="nav nav-tabs" role="tablist">
-                                <li class="nav-item">
-                                    <a class="nav-link active" data-toggle="tab" href="#bglj" role="tab">工料机</a>
-                                </li>
-                                <li class="nav-item">
-                                    <a class="nav-link" data-toggle="tab" href="#bfzd" role="tab">辅助定额调整</a>
-                                </li>
-                                <li class="nav-item">
-                                    <a class="nav-link" data-toggle="tab" href="#bfzt" role="tab">附注条件调整</a>
-                                </li>
-                                <li class="nav-item">
-                                    <a class="nav-link" data-toggle="tab" href="#baz" role="tab">安装增加费</a>
-                                </li>
-                            </ul>
-                            <!-- Tab panes -->
-                            <div class="tab-content">
-                                <div class="tab-pane active" id="bglj" role="tabpanel">
-                                   <div id="rationGLJSheet" class="warp-p2">
-                                       <!--       <table class="table table-sm table-bordered m-0" id="rationGLJTbody">
-                                               <thead><tr><th width="30"></th><th width="120">编码</th><th>名称</th><th>单位</th><th>基价单位</th><th>定额消耗</th><th>类型</th><th width="90">操作</th></tr></thead>
-                                               <tbody>
-
-                                               </tbody>
-                                             </table>
-                                           <div class="m-2"><a href="javacript:void(0);" data-toggle="modal" data-target="#addBglj" id="mkaddglj"  class="btn btn-primary btn-sm">添加</a></div>
-                                          -->
-                                   </div>
-
-                                </div>
-                                <div class="tab-pane" id="bfzd" role="tabpanel">
-                                    <div class="warp-p2">
-                                      <table class="table table-sm table-bordered m-0">
-                                          <thead><tr><th width="30"></th><th width="120">调整名称</th><th>序号</th><th>参数最大值</th><th>辅助定额号</th><th>参数名称</th><th>标准值</th><th>步距</th><th>精度</th><th>进位方式</th><th width="90">操作</th></tr></thead>
-                                          <tbody>
-                                            <tr>
-                                              <td>1</td><td>运距m</td><td>0</td><td></td><td>AA0012</td><td>运距m</td>
-                                              <td>20</td><td>20</td><td>0</td><td>四舍五入</td><td><a href="javacript:void(0);" data-toggle="modal" data-target="#editBfzd" 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="删除"><i class="fa fa-remove"></i></a></td>
-                                            </tr>
-                                          </tbody>
-                                        </table>
-                                        <div class="m-2"><a href="javacript:void(0);" data-toggle="modal" data-target="#addBfzd" class="btn btn-primary btn-sm">添加</a></div>
-                                    </div>
-                                </div>
-                                <div class="tab-pane " id="bfzt" role="tabpanel">
-                                    <div class="warp-p2">
-                                        <table class="table table-sm table-bordered m-0">
-                                          <thead><tr><th width="30"></th><th width="40">编号</th><th width="120">本分项全部适用</th><th>调整顺序</th><th>名称</th><th>内容</th><th width="90">操作</th></tr></thead>
-                                          <tbody>
-                                            <tr>
-                                              <td>1</td><td>1</td><td><i class="fa fa-check"></i></td><td>2</td><td>挖湿土时</td><td>人工x1.18</td><td><a href="javacript:void(0);" data-toggle="modal" data-target="#editFztj" 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="删除"><i class="fa fa-remove"></i></a></td>
-                                            </tr>
-                                          </tbody>
-                                        </table>
-                                        <div class="m-2"><a href="javacript:void(0);" data-toggle="modal" data-target="#addFztj" class="btn btn-primary btn-sm">添加</a></div>
-                                    </div>
-                                </div>
-                                <div class="tab-pane" id="baz" role="tabpanel">
-                                    <div class="warp-p2">
-                                        安装增加费
-                                    </div>
-                                </div>
-                            </div>
-                        </div>
-                  </div>
-                </div>
-            </div>
-        </div>
-    </div>
-    <!--弹出添加-->
-    <div class="modal fade" id="add" data-backdrop="static" style="display: none;" aria-hidden="true">
-        <div class="modal-dialog" role="document">
-            <div class="modal-content">
-                <div class="modal-header">
-                  <h5 class="modal-title">添加定额</h5>
-                  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
-                    <span aria-hidden="true">×</span>
-                  </button>
-                </div>
-                <div class="modal-body">
-                  <form>
-                    <div class="form-group">
-                      <label>编码</label>
-                      <input class="form-control" id="code" placeholder="输入编码" type="text">
-                    </div>
-                    <div class="form-group">
-                      <label>名称</label>
-                      <input class="form-control" id="name" placeholder="输入名称" type="text">
-                    </div>
-                    <div class="form-group">
-                      <label>单位</label>
-                      <select class="form-control" id = "danwei"><option>选择单位</option><option>m3</option></select>
-                    </div>
-                    <div class="form-group">
-                      <label>基价</label>
-                      <input class="form-control" id="jijia" placeholder="输入基价" type="number" value=0 disabled = true>
-                    </div>
-                    <div class="form-group">
-                      <label>显示名称(以%s表示参数)</label>
-                      <input class="form-control" id ="xsname" placeholder="输入显示名称" type="text">
-                    </div>
-                    <div class="form-group">
-                      <label>默认取费专业</label>
-                      <input class="form-control" id="qfzy" placeholder="输入取费专业" type="text">
-                    </div>
-                  </form>
-                </div>
-                <div class="modal-footer">
-                    <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                    <button type="button" class="btn btn-secondary" id="rationAdd" data-dismiss="modal">添加</button>
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="modal fade" id="addBglj" data-backdrop="static" style="display: none;" aria-hidden="true">
-        <input type="hidden" id="gljparam" value="">
-        <div class="modal-dialog" role="document">
-            <div class="modal-content">
-                <div class="modal-header">
-                  <h5 class="modal-title">添加工料机</h5>
-                  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
-                    <span aria-hidden="true">×</span>
-                  </button>
-                </div>
-                <div class="modal-body">
-                  <form>
-                    <div class="form-group">
-                      <label>编码</label>
-                      <input class="form-control" placeholder="输入编码" id="bt-inputCode" type="text">
-                    </div>
-                    <div class="form-group">
-                      <label>名称</label>
-                      <input class="form-control" placeholder="输入名称" id ="gljName" type="text">
-                    </div>
-                    <div class="form-group">
-                      <label>单位</label>
-                      <select class="form-control" id="gljdw"><option>选择单位</option><option>工日</option></select>
-                    </div>
-                    <div class="form-group">
-                      <label>基价单价</label>
-                      <input class="form-control" placeholder="输入基价单价" id="gljdj" type="number">
-                    </div>
-                    <div class="form-group">
-                      <label>定额消耗</label>
-                      <input class="form-control" placeholder="输入定额消耗" id="gljxh" type="number">
-                    </div>
-                    <div class="form-group">
-                      <label>类型</label>
-                      <input class="form-control" placeholder="输入类型" id="gljlx" type="text">
-                    </div>
-                  </form>
-                </div>
-                <div class="modal-footer">
-                    <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                    <button type="button" class="btn btn-secondary" id="bt-glj" data-dismiss="modal">添加</button>
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="modal fade" id="addBfzd" data-backdrop="static" style="display: none;" aria-hidden="true">
-        <div class="modal-dialog" role="document">
-            <div class="modal-content">
-                <div class="modal-header">
-                  <h5 class="modal-title">添加辅助定额调整</h5>
-                  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
-                    <span aria-hidden="true">×</span>
-                  </button>
-                </div>
-                <div class="modal-body">
-                  <form>
-                    <div class="form-group">
-                      <label>调整名称</label>
-                      <input class="form-control" placeholder="输入调整名称" type="text">
-                    </div>
-                    <div class="form-group">
-                      <label>序号</label>
-                      <input class="form-control" placeholder="输入序号" type="number">
-                    </div>
-                    <div class="form-group">
-                      <label>参数最大值</label>
-                      <input class="form-control" placeholder="输入参数最大值" type="number">
-                    </div>
-                    <div class="form-group">
-                      <label>辅助定额号</label>
-                      <input class="form-control" placeholder="输入辅助定额号" type="text">
-                    </div>
-                    <div class="form-group">
-                      <label>参数名称</label>
-                      <input class="form-control" placeholder="输入参数名称" type="text">
-                    </div>
-                    <div class="form-group">
-                      <label>标准值</label>
-                      <input class="form-control" placeholder="输入标准值" type="number">
-                    </div>
-                    <div class="form-group">
-                      <label>步距</label>
-                      <input class="form-control" placeholder="输入步距" type="number">
-                    </div>
-                    <div class="form-group">
-                      <label>精度</label>
-                      <input class="form-control" placeholder="输入类型" type="number" value="0">
-                    </div>
-                    <div class="form-group">
-                      <label>进位方式</label>
-                      <select class="form-control"><option>选择进位方式</option><option>四舍五入</option><option>向上取整</option></select>
-                    </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>
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="modal fade" id="editFztj" data-backdrop="static" style="display: none;" aria-hidden="true">
-        <div class="modal-dialog" role="document">
-            <div class="modal-content">
-                <div class="modal-header">
-                  <h5 class="modal-title">编辑附注条件</h5>
-                  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
-                    <span aria-hidden="true">×</span>
-                  </button>
-                </div>
-                <div class="modal-body">
-                  <form>
-                    <div class="form-group">
-                      <label>本分项是否全部适用</label>
-                      <select class="form-control" id="exampleSelect1"><option>是</option><option>否</option></select>
-                    </div>
-                    <div class="form-group">
-                      <label>调整顺序</label>
-                      <select class="form-control" id="exampleSelect1"><option>2</option></select>
-                    </div>
-                    <div class="form-group">
-                      <label>名称</label>
-                      <input class="form-control" placeholder="输入编码" type="text" value="AA0017">
-                    </div>
-                    <div class="form-group">
-                      <label>内容</label>
-                      <select class="form-control" id="exampleSelect1"><option>人工×1.18</option></select>
-                    </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>
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="modal fade" id="addFztj" data-backdrop="static" style="display: none;" aria-hidden="true">
-        <div class="modal-dialog" role="document">
-            <div class="modal-content">
-                <div class="modal-header">
-                  <h5 class="modal-title">编辑附注条件</h5>
-                  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
-                    <span aria-hidden="true">×</span>
-                  </button>
-                </div>
-                <div class="modal-body">
-                  <form>
-                    <div class="form-group">
-                      <label>本分项是否全部适用</label>
-                      <select class="form-control" id="exampleSelect1"><option>是</option><option>否</option></select>
-                    </div>
-                    <div class="form-group">
-                      <label>调整顺序</label>
-                      <select class="form-control" id="exampleSelect1"><option>2</option></select>
-                    </div>
-                    <div class="form-group">
-                      <label>名称</label>
-                      <input class="form-control" placeholder="输入名称" type="text">
-                    </div>
-                    <div class="form-group">
-                      <label>内容</label>
-                      <select class="form-control" id="exampleSelect1"><option>人工×1.18</option></select>
-                    </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>
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="modal fade" id="addNewgznr" data-backdrop="static" style="display: none;" aria-hidden="true">
-        <div class="modal-dialog" role="document">
-            <div class="modal-content">
-                <div class="modal-header">
-                  <h5 class="modal-title">添加工作内容</h5>
-                  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
-                    <span aria-hidden="true">×</span>
-                  </button>
-                </div>
-                <div class="modal-body">
-                  <form>
-                    <div class="form-group">
-                      <label>选择</label>
-                      <select class="form-control" id="exampleSelect1"><option>适合本项所有定额</option><option>适合本项部分定额</option></select>
-                    </div>
-                    <div class="form-group">
-                      <label>内容</label>
-                      <textarea class="form-control" id="" rows="5"></textarea>
-                    </div>
-                  </form>
-                  <form>
-                    <div class="form-group">
-                      <label>选择</label>
-                      <select class="form-control" id="exampleSelect1"><option>适合本项部分定额</option><option>适合本项所有定额</option></select>
-                    </div>
-                    <div class="form-group">
-                      <label>编码</label>
-                      <div class="form-control">
-                        <div class="row code">
-                          <div class="col">
-                            <label class="form-check-label">
-                              <input class="form-check-input" type="checkbox" id="inlineCheckbox1" value="option1" checked> AA0017
-                            </label>
-                          </div>
-                          <div class="col">
-                            <label class="form-check-label">
-                              <input class="form-check-input" type="checkbox" id="inlineCheckbox1" value="option1" checked> AA0018
-                            </label>
-                          </div>
-                          <div class="col">
-                            <label class="form-check-label">
-                              <input class="form-check-input" type="checkbox" id="inlineCheckbox1" value="option1" checked> AA0019
-                            </label>
-                          </div>
-                          <div class="w-100"></div>
-                          <div class="col">
-                            <label class="form-check-label">
-                              <input class="form-check-input" type="checkbox" id="inlineCheckbox1" value="option1"> AA0020
-                            </label>
-                          </div>
-                          <div class="col">
-                            <label class="form-check-label">
-                              <input class="form-check-input" type="checkbox" id="inlineCheckbox1" value="option1"> AA0021
-                            </label>
-                          </div>
-                          <div class="col">
-                            <label class="form-check-label">
-                              <input class="form-check-input" type="checkbox" id="inlineCheckbox1" value="option1"> AA0022
-                            </label>
-                          </div>
-                        </div>
-                      </div>
-                    </div>
-
-                    <div class="form-group">
-                      <label>内容</label>
-                      <textarea class="form-control" id="" rows="5"></textarea>
-                    </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>
-                </div>
-            </div>
-        </div>
-    </div>
-    <!--弹出编辑-->
-    <div class="modal fade" id="edit" data-backdrop="static" style="display: none;" aria-hidden="true">
-        <div class="modal-dialog" role="document">
-            <div class="modal-content">
-                <div class="modal-header">
-                  <h5 class="modal-title">编辑定额</h5>
-                  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
-                    <span aria-hidden="true">×</span>
-                  </button>
-                </div>
-                <div class="modal-body">
-                  <form>
-                    <div class="form-group">
-                      <label>编码</label>
-                      <input class="form-control" id="ERcode"  placeholder="输入编码" type="text" value="AA0001">
-                    </div>
-                    <div class="form-group">
-                      <label>名称</label>
-                      <input class="form-control" id="ERname" placeholder="输入名称" type="text" value="人工挖土方">
-                    </div>
-                    <div class="form-group">
-                      <label>单位</label>
-                      <select class="form-control" id = "ERdanwei"><option>m3</option></select>
-                    </div>
-                    <div class="form-group">
-                      <label>基价</label>
-                      <input class="form-control" placeholder="输入基价" type="number" value="0" id="ERjijia" disabled = true>
-                    </div>
-                    <div class="form-group">
-                      <label>显示名称(以%s表示参数)</label>
-                      <input class="form-control" placeholder="输入显示名称" type="text" value="人工挖土方" id="ERxsmc">
-                    </div>
-                    <div class="form-group">
-                      <label>默认取费专业</label>
-                      <input class="form-control" placeholder="输入取费专业" type="text" value="1" id ="ERqfzy">
-                    </div>
-                  </form>
-                </div>
-                <div class="modal-footer">
-                    <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                    <button type="button" class="btn btn-secondary" id="Rbianji" data-dismiss="modal">确定</button>
-
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="modal fade" id="editBglj" data-backdrop="static" style="display: none;" aria-hidden="true">
-        <div class="modal-dialog" role="document">
-            <div class="modal-content">
-                <div class="modal-header">
-                  <h5 class="modal-title">编辑工料机</h5>
-                  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
-                    <span aria-hidden="true">×</span>
-                  </button>
-                </div>
-                <div class="modal-body">
-                  <form>
-                    <div class="form-group">
-                      <label>编码</label>
-                      <input class="form-control" placeholder="输入编码" type="text" value="00010201" id="ERGCode">
-                    </div>
-                    <div class="form-group">
-                      <label>名称</label>
-                      <input class="form-control" placeholder="输入名称" type="text" value="土石方综合工日" id="ERGname">
-                    </div>
-                    <div class="form-group">
-                      <label>单位</label>
-                      <select class="form-control"  id="ERGdanwei"><option>工日</option></select>
-                    </div>
-                    <div class="form-group">
-                      <label>基价单价</label>
-                      <input class="form-control" placeholder="输入基价单价" type="number" value="22.00" id="ERGjijia">
-                    </div>
-                    <div class="form-group">
-                      <label>定额消耗</label>
-                      <input class="form-control" placeholder="输入定额消耗" type="number" value="38.220" id="ERGxh">
-                    </div>
-                    <div class="form-group">
-                      <label>类型</label>
-                      <input class="form-control" placeholder="输入类型" type="text" value="人工" id="ERGleixing">
-                    </div>
-                  </form>
-                </div>
-                <div class="modal-footer">
-                    <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                    <button type="button" class="btn btn-secondary" data-dismiss="modal" id="RGbianji">确定</button>
-
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="modal fade" id="editBfzd" data-backdrop="static" style="display: none;" aria-hidden="true">
-        <div class="modal-dialog" role="document">
-            <div class="modal-content">
-                <div class="modal-header">
-                  <h5 class="modal-title">编辑辅助定额调整</h5>
-                  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
-                    <span aria-hidden="true">×</span>
-                  </button>
-                </div>
-                <div class="modal-body">
-                  <form>
-                    <div class="form-group">
-                      <label>调整名称</label>
-                      <input class="form-control" placeholder="输入调整名称" type="text" value="运距m">
-                    </div>
-                    <div class="form-group">
-                      <label>序号</label>
-                      <input class="form-control" placeholder="输入序号" type="number" value="0">
-                    </div>
-                    <div class="form-group">
-                      <label>参数最大值</label>
-                      <input class="form-control" placeholder="输入参数最大值" type="number">
-                    </div>
-                    <div class="form-group">
-                      <label>辅助定额号</label>
-                      <input class="form-control" placeholder="输入辅助定额号" type="text" value="AA0012">
-                    </div>
-                    <div class="form-group">
-                      <label>参数名称</label>
-                      <input class="form-control" placeholder="输入参数名称" type="text" value="运距m">
-                    </div>
-                    <div class="form-group">
-                      <label>标准值</label>
-                      <input class="form-control" placeholder="输入标准值" type="number" value="20">
-                    </div>
-                    <div class="form-group">
-                      <label>步距</label>
-                      <input class="form-control" placeholder="输入步距" type="number" value="20">
-                    </div>
-                    <div class="form-group">
-                      <label>精度</label>
-                      <input class="form-control" placeholder="输入类型" type="number" value="0">
-                    </div>
-                    <div class="form-group">
-                      <label>进位方式</label>
-                      <select class="form-control"><option>四舍五入</option></select>
-                    </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>
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="modal fade" id="editTsm" data-backdrop="static" style="display: none;" aria-hidden="true">
-        <div class="modal-dialog" role="document">
-            <div class="modal-content">
-                <div class="modal-header">
-                  <h5 class="modal-title">编辑说明</h5>
-                  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
-                    <span aria-hidden="true">×</span>
-                  </button>
-                </div>
-                <div class="modal-body">
-                  <form>
-                    <div class="form-group">
-                      <label>内容</label>
-                      <textarea class="form-control" id="" rows="5"></textarea>
-                    </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>
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="modal fade" id="editTjs" data-backdrop="static" style="display: none;" aria-hidden="true">
-        <div class="modal-dialog" role="document">
-            <div class="modal-content">
-                <div class="modal-header">
-                  <h5 class="modal-title">编辑计算规则</h5>
-                  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
-                    <span aria-hidden="true">×</span>
-                  </button>
-                </div>
-                <div class="modal-body">
-                  <form>
-                    <div class="form-group">
-                      <label>内容</label>
-                      <textarea class="form-control" id="" rows="5"></textarea>
-                    </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>
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="modal fade" id="editFde" data-backdrop="static" style="display: none;" aria-hidden="true">
-        <div class="modal-dialog" role="document">
-            <div class="modal-content">
-                <div class="modal-header">
-                  <h5 class="modal-title">编辑本项部分定额</h5>
-                  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
-                    <span aria-hidden="true">×</span>
-                  </button>
-                </div>
-                <div class="modal-body">
-                  <form>
-                    <div class="form-group">
-                      <label>选择</label>
-                      <select class="form-control" id="exampleSelect1"><option>是</option><option>否</option></select>
-                    </div>
-                    <div class="form-group">
-                      <label>编码</label>
-                      <input class="form-control" placeholder="输入编码" type="text" value="AA0017">
-                    </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>
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="modal fade" id="editFztj" data-backdrop="static" style="display: none;" aria-hidden="true">
-        <div class="modal-dialog" role="document">
-            <div class="modal-content">
-                <div class="modal-header">
-                  <h5 class="modal-title">编辑附注条件</h5>
-                  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
-                    <span aria-hidden="true">×</span>
-                  </button>
-                </div>
-                <div class="modal-body">
-                  <form>
-                    <div class="form-group">
-                      <label>本分项是否全部适用</label>
-                      <select class="form-control" id="exampleSelect1"><option>是</option><option>否</option></select>
-                    </div>
-                    <div class="form-group">
-                      <label>调整顺序</label>
-                      <select class="form-control" id="exampleSelect1"><option>2</option></select>
-                    </div>
-                    <div class="form-group">
-                      <label>名称</label>
-                      <input class="form-control" placeholder="输入名称" type="text" value="AA0017">
-                    </div>
-                    <div class="form-group">
-                      <label>内容</label>
-                      <select class="form-control" id="exampleSelect1"><option>人工×1.18</option></select>
-                    </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>
-                </div>
-            </div>
-        </div>
-    </div>
-    <div class="modal fade" id="editNewgznr" data-backdrop="static" style="display: none;" aria-hidden="true">
-        <div class="modal-dialog" role="document">
-            <div class="modal-content">
-                <div class="modal-header">
-                  <h5 class="modal-title">添加工作内容</h5>
-                  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
-                    <span aria-hidden="true">×</span>
-                  </button>
-                </div>
-                <div class="modal-body">
-                  <form>
-                    <div class="form-group">
-                      <label>选择</label>
-                      <select class="form-control" id="exampleSelect1"><option>适合本项所有定额</option><option>适合本项部分定额</option></select>
-                    </div>
-                    <div class="form-group">
-                      <label>内容</label>
-                      <textarea class="form-control" id="" rows="5"></textarea>
-                    </div>
-                  </form>
-                  <form>
-                    <div class="form-group">
-                      <label>选择</label>
-                      <select class="form-control" id="exampleSelect1"><option>适合本项部分定额</option><option>适合本项所有定额</option></select>
-                    </div>
-                    <div class="form-group">
-                      <label>编码</label>
-                      <div class="form-control">
-                        <div class="row code">
-                          <div class="col">
-                            <label class="form-check-label">
-                              <input class="form-check-input" type="checkbox" id="inlineCheckbox1" value="option1" checked> AA0017
-                            </label>
-                          </div>
-                          <div class="col">
-                            <label class="form-check-label">
-                              <input class="form-check-input" type="checkbox" id="inlineCheckbox1" value="option1" checked> AA0018
-                            </label>
-                          </div>
-                          <div class="col">
-                            <label class="form-check-label">
-                              <input class="form-check-input" type="checkbox" id="inlineCheckbox1" value="option1" checked> AA0019
-                            </label>
-                          </div>
-                          <div class="w-100"></div>
-                          <div class="col">
-                            <label class="form-check-label">
-                              <input class="form-check-input" type="checkbox" id="inlineCheckbox1" value="option1"> AA0020
-                            </label>
-                          </div>
-                          <div class="col">
-                            <label class="form-check-label">
-                              <input class="form-check-input" type="checkbox" id="inlineCheckbox1" value="option1"> AA0021
-                            </label>
-                          </div>
-                          <div class="col">
-                            <label class="form-check-label">
-                              <input class="form-check-input" type="checkbox" id="inlineCheckbox1" value="option1"> AA0022
-                            </label>
-                          </div>
-                        </div>
-                      </div>
-                    </div>
-
-                    <div class="form-group">
-                      <label>内容</label>
-                      <textarea class="form-control" id="" rows="5"></textarea>
-                    </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>
-                </div>
-            </div>
-        </div>
-    </div>
-
-    <!--弹出删除-->
-    <div class="modal fade" id="del" data-backdrop="static" style="display: none;" aria-hidden="true">
-        <input type="hidden" id="delType" value="">
-        <input type="hidden" id="delParam" value="">
-        <div class="modal-dialog" role="document">
-            <div class="modal-content">
-                <div class="modal-header">
-                  <h5 class="modal-title">删除确认</h5>
-                  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
-                    <span aria-hidden="true">×</span>
-                  </button>
-                </div>
-                <div class="modal-body">
-                    <h5 class="text-danger">删除后无法恢复,确认是否删除?</h5>
-                </div>
-                <div class="modal-footer">
-                    <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                    <button type="button" class="btn btn-secondary" id="shanchu" data-dismiss="modal">删除</button>
-                </div>
-            </div>
-        </div>
-    </div>
-    <!-- JS. -->
-    <script 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>
-    <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="/lib/global.js"></script>
-    <!-- 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 type="text/javascript" src="/lib/ztree/jquery.ztree.exedit.js"></script>
-    <script type="text/javascript" src="/web/rationLibEditor/js/chapterTree.js"></script>
-    <script type="text/javascript" src="/web/rationLibEditor/js/zTreeCommon.js"></script>
-    <script type="text/javascript" src="/web/rationLibEditor/js/sheetCommon.js"></script>
-    <script type="text/javascript" src="/web/rationLibEditor/js/ration.js"></script>
-    <script type="text/javascript" src="/web/rationLibEditor/js/rationGLJ.js"></script>
-    <script type="text/javascript" src="/public/web/treeDataHelper.js"></script>
-    <script type="text/javascript" src="/public/QueryParam.js"></script>
-    <script type="text/javascript" src="/public/storageUtil.js"></script>
-    <script type="text/javascript">
-        var setting = {
-            view: {
-                addHoverDom: zTreeOprObj.addHoverDom,
-                removeHoverDom: zTreeOprObj.removeHoverDom,
-                expandSpeed: "",
-                selectedMulti: false
-            },
-            edit: {
-                enable: true,
-                editNameSelectAll: true,
-                showRemoveBtn: true,
-                showRenameBtn: true,
-                removeTitle: "删除节点",
-                renameTitle: "更改名称"
-            },
-            data: {
-                keep: {
-                    parent:true,
-                    leaf:true
-                },
-                key: {
-                    children: "items"
-                },
-                simpleData: {
-                    enable: true,
-                    idKey: "ID",
-                    pIdKey: "ParentID",
-                    rootPId: -1
-                }
-            },
-            callback:{
-                onClick: zTreeOprObj.onClick,
-                beforeRename: zTreeOprObj.beforeRename,
-                beforeRemove: zTreeOprObj.onBeforeRemove,
-                onRemove: zTreeOprObj.onRemove,
-                onRename: zTreeOprObj.onRename
-            }
-        };
-  	</script>
-</body>
-<script type="text/javascript">
-    autoFlashHeight();
-    $(document).ready(function(){
-        pageOprObj.initPage();
-        rationOprObj.buildSheet($("#rationItemsSheet")[0]);
-        rationGLJOprObj.buildSheet($("#rationGLJSheet")[0]);
-        sheetCommonObj.shieldAllCells(rationOprObj.workBook.getSheet(0), rationOprObj.setting);
-        sheetCommonObj.shieldAllCells(rationGLJOprObj.workBook.getSheet(0), rationGLJOprObj.setting);
-    });
-</script>
-
-</html>

+ 0 - 92
web/rationLibEditor/js/coeList.js

@@ -1,92 +0,0 @@
-/**
- * Created by CSL on 2017-05-18.
- */
-
-$("#drirect-dinge").click(function(){
-    $(this).attr('href', "/rationRepository/ration" + "?repository=" + getQueryString("repository"))
-});
-
-$("#gongliao").click(function(){
-    $(this).attr('href', "/rationRepository/lmm" + "?repository=" + getQueryString("repository"))
-});
-
-pObj = {
-    spread: null,
-
-    createSheet: function (container, colDef, datas){
-        var me = this;
-        me.spread = new GC.Spread.Sheets.Workbook(container, {sheetCount:1});
-        me.spread.suspendPaint();
-
-        me.spread.options.tabStripVisible = false;
-        me.spread.options.showHorizontalScrollbar = false;
-
-        var sheet = me.spread.getSheet(0);
-        var sheetArea = GC.Spread.Sheets.SheetArea;
-        sheet.setRowHeight(0, 30, sheetArea.colHeader);
-        sheet.autoGenerateColumns = false;
-        sheet.setDataSource(datas);
-        sheet.bindColumns(colDef);
-        sheet.getRange(-1, 2, -1, 1).hAlign(GC.Spread.Sheets.HorizontalAlign.center);
-
-        me.spread.resumePaint();
-    }
-};
-
-
-var colDefMain = [
-    {name: "ID", displayName: "编号", size: 100},
-    {name: "name", displayName: "名称", size: 200},
-    {name: "content", displayName: "内容", size: 250}
-];
-
-var colDefContent = [
-    {name: "coeType", displayName: "类型", size: 100},
-    {name: "gljID", displayName: "工料机ID", size: 100},
-    {name: "operator", displayName: "操作符", size: 60},
-    {name: "amount", displayName: "数量", size: 80}
-];
-
-pObj.createSheet($('#mainSpread')[0], colDefMain, createDatas(50));
-pObj.createSheet($('#contentSpread')[0], colDefContent, createContents(10));
-
-
-function createDatas(counts){
-    var datas = [];
-    var names = ['洞内排水量15m3/h以内', '二级以上松土', '三四级石方', '灌注桩,水平泵送混凝土距离100m', '用于拆除工程'];
-    for (var i = 0; i < counts; i++) {
-        var data = new Object();
-        data.ID = i;
-        data.name = names[i % names.length] + i;
-        data.content = '附注条件' + data.name + '之内容部分';
-        datas.push(data);
-    };
-    return datas;
-}
-
-function createContents(counts){
-    var datas = [];
-    var types = ['人工类', '材料类', '机械类','单GLJ','全部'];
-    var operators = ['+', '-', '*', '/', '='];
-    for (var i = 0; i < counts; i++) {
-        var data = new Object();
-        data.coeType = types[i % types.length];
-        data.gljID = (data.coeType == '单GLJ') ? Math.floor(Math.random() * 1000) : 0;
-        data.operator = operators[i % operators.length];
-        data.amount = Math.floor(Math.random() * 1000) / 100;
-        datas.push(data);
-    };
-    return datas;
-}
-
-function testObj2(obj) {
-    var str = "";
-    var spr = "";
-    for (var x in obj) {
-        if (obj.hasOwnProperty(x)) {
-            if(str == ''){ spr = '' } else { spr = ', '};
-            str += spr + x + ':' + obj[x];
-        }
-    }
-    return str;
-};

+ 566 - 0
web/rationRepository/dinge.html

@@ -0,0 +1,566 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+    <meta http-equiv="x-ua-compatible" content="ie=edge">
+    <title>定额库编辑器</title>
+    <link rel="stylesheet" href="/web/css/bootstrap/bootstrap.min.css">
+   <!-- <link rel="stylesheet" href="/lib/css/bootstrap/themes.css">-->
+    <link rel="stylesheet" href="/web/css/main.css">
+    <link rel="stylesheet" href="/web/css/font-awesome/font-awesome.min.css">
+    <!--zTree-->
+  	<link rel="stylesheet" href="/web/css/ztree/zTreeStyle.css" type="text/css">
+    <link rel="stylesheet" href="/web/css/spreadjs/gc.spread.sheets.10.0.1.css" type="text/css">
+
+</head>
+
+<body>
+    <div class="header">
+        <nav class="navbar navbar-toggleable-lg navbar-light bg-faded p-0 ">
+            <span class="header-logo px-2">Smartcost</span>
+            <div id="rationname" class="navbar-text"><a href="main">定额库</a><i class="fa fa-angle-right fa-fw"></i>XXX定额库</div>
+        </nav>
+        <nav class="navbar navbar-toggleable-lg justify-content-between navbar-light p-0">
+              <ul class="nav nav-tabs" role="tablist">
+                  <li class="nav-item">
+                      <a class="nav-link active px-3" id ="dinge" >定额</a>
+                  </li>
+                  <li class="nav-item">
+                      <a class="nav-link px-3" id="gongliao" href="#">工料机</a>
+                  </li>
+                  <li class="nav-item">
+                      <a class="nav-link px-3" id="fuzhu" href="#">附注条件</a>
+                  </li>
+                  <li class="nav-item">
+                      <a class="nav-link px-3" href="#maz">安装增加费</a>
+                  </li>
+              </ul>
+        </nav>
+    </div>
+    <div class="main">
+        <div class="content">
+            <div class="container-fluid">
+                <div class="row">
+                  <div class="main-side col-lg-3 p-0">
+                      <div class="tab-bar">
+                          <a onclick="zTreeOprObj.addRootNode()" class="btn btn-secondary btn-sm">增加根节点</a>
+                      </div>
+                    <div class="tab-content">
+                      <ul id="rationChapterTree" class="ztree"></ul>
+                    </div>
+                  </div>
+                  <div class="main-content col-lg-9 p-0">
+                      <!-- 右标签 -->
+                      <ul class="nav nav-tabs tools-bar" role="tablist">
+                          <li class="nav-item">
+                              <a class="nav-link active" data-toggle="tab" href="#tde" role="tab">定额</a>
+                          </li>
+                          <li class="nav-item">
+                              <a class="nav-link" data-toggle="tab" href="#tsm" role="tab">说明</a>
+                          </li>
+                          <li class="nav-item">
+                              <a class="nav-link" data-toggle="tab" href="#tjs" role="tab">计算规则</a>
+                          </li>
+                          <li class="nav-item">
+                              <a class="nav-link" data-toggle="tab" href="#tgz" role="tab">工作内容</a>
+                          </li>
+                      </ul>
+                      <div class="tab-content">
+                          <!--定额-->
+                          <div class="tab-pane active" id="tde" role="tabpanel">
+                              <!--定额top-->
+                              <div id="rationItemsSheet" class="main-data-top"></div>
+                              <!--定额bottom-->
+                              <div class="bottom-content">
+                                  <!-- 标签 -->
+                                  <ul class="nav nav-tabs" role="tablist">
+                                      <li class="nav-item">
+                                          <a class="nav-link" data-toggle="tab" href="#bglj" role="tab">工料机</a>
+                                      </li>
+                                      <li class="nav-item">
+                                          <a class="nav-link" data-toggle="tab" href="#bfzd" role="tab">辅助定额调整</a>
+                                      </li>
+                                      <li class="nav-item">
+                                          <a class="nav-link active" data-toggle="tab" href="#bfzt" role="tab">附注条件调整</a>
+                                      </li>
+                                      <li class="nav-item">
+                                          <a class="nav-link" data-toggle="tab" href="#baz" role="tab">安装增加费</a>
+                                      </li>
+                                  </ul>
+                                  <!-- 内容 -->
+                                  <div class="tab-content">
+                                      <!--工料机-->
+                                      <div class="tab-pane active" id="bglj" role="tabpanel">
+                                          <div id="rationGLJSheet" class="main-data-bottom"></div>
+                                      </div>
+                                      <!--辅助定额调整-->
+                                      <div class="tab-pane" id="bfzd" role="tabpanel">
+                                          <div class="main-data-bottom">
+                                              <table class="table table-sm table-bordered m-0">
+                                                  <thead><tr><th width="30"></th><th width="120">调整名称</th><th>序号</th><th>参数最大值</th><th>辅助定额号</th><th>参数名称</th><th>标准值</th><th>步距</th><th>精度</th><th>进位方式</th></tr></thead>
+                                                  <tbody>
+                                                  <tr>
+                                                      <td>1</td><td>运距m</td><td>0</td><td></td><td>AA0012</td><td>运距m</td>
+                                                      <td>20</td><td>20</td><td>0</td><td>四舍五入</td>
+                                                  </tr>
+                                                  <tr>
+                                                      <td>2</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
+                                                  </tr>
+                                                  <tr>
+                                                      <td>3</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
+                                                  </tr>
+                                                  <tr>
+                                                      <td>4</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
+                                                  </tr>
+                                                  </tbody>
+                                              </table>
+                                          </div>
+                                      </div>
+                                      <!--附注条件调整-->
+                                      <div class="tab-pane active" id="bfzt" role="tabpanel">
+                                          <div class="main-data-bottom">
+                                              <table class="table table-sm table-bordered m-0">
+                                                  <thead><tr><th width="30"></th><th width="40">编号</th><th width="120">本分项全部适用</th><th>调整顺序</th><th>名称</th><th>内容</th></tr></thead>
+                                                  <tbody>
+                                                  <tr>
+                                                      <td>1</td><td>1</td><td><label class="form-check-label"><input type="checkbox" class="form-check-input" checked></label></td><td>2</td><td>挖湿土时</td><td>人工x1.18</td>
+                                                  </tr>
+                                                  <tr>
+                                                      <td>2</td><td></td><td></td><td></td><td></td><td></td>
+                                                  </tr>
+                                                  <tr>
+                                                      <td>3</td><td></td><td></td><td></td><td></td><td></td>
+                                                  </tr>
+                                                  <tr>
+                                                      <td>4</td><td></td><td></td><td></td><td></td><td></td>
+                                                  </tr>
+                                                  </tbody>
+                                              </table>
+                                          </div>
+                                      </div>
+                                      <!--安装增加费-->
+                                      <div class="tab-pane" id="baz" role="tabpanel">
+                                          <div class="main-data-bottom">
+                                              安装增加费
+                                          </div>
+                                      </div>
+
+                                  </div>
+                              </div>
+                          </div>
+                          <!--说明-->
+                          <div class="tab-pane" id="tsm" role="tabpanel">
+                              <div class="main-data">
+                                  <div class="m-2"><a href="javacript:void(0);" data-toggle="modal" data-target="#editTsm" title="编辑">编辑说明</a></div>
+                                  <div class="main-content m-2">
+                                      <h5>说明</h5><p>一、一般说明</p><p>1.土壤及岩石分类,详见土壤及岩石分类表。</p><p>2.....</p>
+                                  </div>
+                              </div>
+                          </div>
+                          <!--计算规则-->
+                          <div class="tab-pane" id="tjs" role="tabpanel">
+                              <div class="main-data">
+                                  <div class="m-2"><a href="javacript:void(0);" data-toggle="modal" data-target="#editTjs" title="编辑">编辑计算规则</a></div>
+                                  <div class="main-content m-2">
+                                      <h5>计算规则</h5>
+                                      <p>土壤、岩石体积,均按挖掘前的天然密度体积以立方米计算。.....</p>
+                                  </div>
+                              </div>
+                          </div>
+                          <!--工作内容-->
+                          <div class="tab-pane" id="tgz" role="tabpanel">
+                              <div class="main-data">
+                                  <div class="form-check m-2"><label class="form-check-label"><input type="radio" class="form-check-input" name="optionsRadios" value="option1" checked=""> 适合本项所有定额</label>&nbsp;&nbsp;<label class="form-check-label"><input type="radio" class="form-check-input" name="optionsRadios" value="option1"> 适合本项部分定额</label></div>
+                                  <!-- <p class="m-2">适合本项所有定额</p> -->
+                                  <table class="table table-sm table-bordered m-0">
+                                      <tr>
+                                          <td>1.挖土、修理边底。2.挖淤泥、流沙、修理边底。</td>
+                                      </tr>
+                                  </table>
+                                  <div class="form-check m-2"><label class="form-check-label"><input type="radio" class="form-check-input" name="optionsRadios2" value="option1"> 适合本项所有定额</label>&nbsp;&nbsp;<label class="form-check-label"><input type="radio" class="form-check-input" name="optionsRadios2" value="option1" checked=""> 适合本项部分定额</label></div>
+                                  <table class="table table-sm table-bordered m-0">
+                                      <thead>
+                                      <tr>
+                                          <th></th>
+                                          <th>编码</th>
+                                          <th>工作内容</th>
+                                      </tr>
+                                      </thead>
+                                      <tbody>
+                                      <tr>
+                                          <td>1</td>
+                                          <td><a href data-toggle="modal" data-target="#editBianmaQ" class="m-0">编辑编码</a><p class="m-0">AA0017</p><p class="m-0">AA0018</p><p class="m-0">AA0019</p><p class="m-0">AA0020</p><p class="m-0">AA0021</p><p class="m-0">AA0022</p></td>
+                                          <td><p class="m-0">1.松填土:5m内的就地取土,铺平。</p><p class="m-0">2.夯填土方(石渣):5m内的就地取土(石渣)、铺平、夯实、洒水等。</p></td>
+                                      </tr>
+                              <tr>
+                                  <td>2</td>
+                                  <td><a href data-toggle="modal" data-target="#editBianma" class="m-0">点击勾选编码</a></td>
+                                  <td></td>
+                              </tr>
+                              <tr>
+                                  <td>3</td>
+                                  <td></td>
+                                  <td></td>
+                              </tr>
+                              <tr>
+                                  <td>4</td>
+                                  <td></td>
+                                  <td></td>
+                              </tr>
+                              </tbody>
+                              </table>
+                              <div class="form-check m-2"><label class="form-check-label"><input type="radio" class="form-check-input" name="optionsRadios1" value="option1"> 适合本项所有定额</label>&nbsp;&nbsp;<label class="form-check-label"><input type="radio" class="form-check-input" name="optionsRadios1" value="option1" checked=""> 适合本项部分定额</label></div>
+                              <table class="table table-sm table-bordered m-0">
+                                  <thead>
+                                  <tr>
+                                      <th></th>
+                                      <th>编码</th>
+                                      <th>工作内容</th>
+                                  </tr>
+                                  </thead>
+                                  <tbody>
+                                  <tr>
+                                      <td>1</td>
+                                      <td><a href data-toggle="modal" data-target="#editBianma" class="m-0">编辑编码</a><p class="m-0">AA0017</p><p class="m-0">AA0018</p><p class="m-0">AA0019</p></td>
+                                      <td><p class="m-0">1.松填土:5m内的就地取土,铺平。</p><p class="m-0">2.夯填土方(石渣):5m内的就地取土(石渣)、铺平、夯实、洒水等。</p></td>
+                                  </tr>
+                                  <tr>
+                                      <td>2</td>
+                                      <td><a href data-toggle="modal" data-target="#editBianma" class="m-0">编辑编码</a><p class="m-0">AA0020</p><p class="m-0">AA0021</p><p class="m-0">AA0022</p></td>
+                                      <td><p class="m-0">1.松填土:5m内的就地取土,铺平。</p><p class="m-0">2.夯填土方(石渣):5m内的就地取土(石渣)、铺平、夯实、洒水等。</p></td>
+                                  </tr>
+                                  <tr>
+                                      <td>3</td>
+                                      <td><a href data-toggle="modal" data-target="#editBianma" class="m-0">点击勾选编码</a></td>
+                                      <td></td>
+                                  </tr>
+                                  <tr>
+                                      <td>4</td>
+                                      <td></td>
+                                      <td></td>
+                                  </tr>
+                                  <tr>
+                                      <td>5</td>
+                                      <td></td>
+                                      <td></td>
+                                  </tr>
+                                  </tbody>
+                              </table>
+                          </div>
+                      </div>
+                  </div>
+                </div>
+            </div>
+        </div>
+    </div>
+        <!--弹出添加-->
+        <div class="modal fade" id="addNewgznr" data-backdrop="static" style="display: none;" aria-hidden="true">
+            <div class="modal-dialog" role="document">
+                <div class="modal-content">
+                    <div class="modal-header">
+                        <h5 class="modal-title">添加工作内容</h5>
+                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                            <span aria-hidden="true">×</span>
+                        </button>
+                    </div>
+                    <div class="modal-body">
+                        <form>
+                            <div class="form-group">
+                                <label>内容</label>
+                                <textarea class="form-control" rows="5"></textarea>
+                            </div>
+                        </form>
+                        <form>
+                            <div class="form-group">
+                                <label>编码</label>
+                                <div class="form-control">
+                                    <div class="row code">
+                                        <div class="col">
+                                            <label class="form-check-label">
+                                                <input class="form-check-input" type="checkbox" value="option1" checked> AA0017
+                                            </label>
+                                        </div>
+                                        <div class="col">
+                                            <label class="form-check-label">
+                                                <input class="form-check-input" type="checkbox" value="option1" checked> AA0018
+                                            </label>
+                                        </div>
+                                        <div class="col">
+                                            <label class="form-check-label">
+                                                <input class="form-check-input" type="checkbox" value="option1" checked> AA0019
+                                            </label>
+                                        </div>
+                                        <div class="w-100"></div>
+                                        <div class="col">
+                                            <label class="form-check-label">
+                                                <input class="form-check-input" type="checkbox" value="option1"> AA0020
+                                            </label>
+                                        </div>
+                                        <div class="col">
+                                            <label class="form-check-label">
+                                                <input class="form-check-input" type="checkbox" value="option1"> AA0021
+                                            </label>
+                                        </div>
+                                        <div class="col">
+                                            <label class="form-check-label">
+                                                <input class="form-check-input" type="checkbox" value="option1"> AA0022
+                                            </label>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+
+                            <div class="form-group">
+                                <label>内容</label>
+                                <textarea class="form-control" rows="5"></textarea>
+                            </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>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <!--弹出编辑-->
+        <div class="modal fade" id="editTsm" data-backdrop="static" style="display: none;" aria-hidden="true">
+            <div class="modal-dialog" role="document">
+                <div class="modal-content">
+                    <div class="modal-header">
+                        <h5 class="modal-title">编辑说明</h5>
+                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                            <span aria-hidden="true">×</span>
+                        </button>
+                    </div>
+                    <div class="modal-body">
+                        <form>
+                            <div class="form-group">
+                                <label>内容</label>
+                                <textarea class="form-control" rows="5"></textarea>
+                            </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>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="modal fade" id="editTjs" data-backdrop="static" style="display: none;" aria-hidden="true">
+            <div class="modal-dialog" role="document">
+                <div class="modal-content">
+                    <div class="modal-header">
+                        <h5 class="modal-title">编辑计算规则</h5>
+                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                            <span aria-hidden="true">×</span>
+                        </button>
+                    </div>
+                    <div class="modal-body">
+                        <form>
+                            <div class="form-group">
+                                <label>内容</label>
+                                <textarea class="form-control" rows="5"></textarea>
+                            </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>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="modal fade" id="editBianmaQ" data-backdrop="static" style="display: none;" aria-hidden="true">
+            <div class="modal-dialog" role="document">
+                <div class="modal-content">
+                    <div class="modal-header">
+                        <h5 class="modal-title">修改编码</h5>
+                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                            <span aria-hidden="true">×</span>
+                        </button>
+                    </div>
+                    <div class="modal-body">
+                        <form>
+                            <div class="form-group">
+                                <label>编码</label>
+                                <div class="form-control">
+                                    <div class="row code">
+                                        <div class="col">
+                                            <label class="form-check-label">
+                                                <input class="form-check-input" type="checkbox" value="option1" checked> AA0017
+                                            </label>
+                                        </div>
+                                        <div class="col">
+                                            <label class="form-check-label">
+                                                <input class="form-check-input" type="checkbox" value="option1" checked> AA0018
+                                            </label>
+                                        </div>
+                                        <div class="col">
+                                            <label class="form-check-label">
+                                                <input class="form-check-input" type="checkbox" value="option1" checked> AA0019
+                                            </label>
+                                        </div>
+                                        <div class="w-100"></div>
+                                        <div class="col">
+                                            <label class="form-check-label">
+                                                <input class="form-check-input" type="checkbox" value="option1" checked> AA0020
+                                            </label>
+                                        </div>
+                                        <div class="col">
+                                            <label class="form-check-label">
+                                                <input class="form-check-input" type="checkbox" value="option1" checked> AA0021
+                                            </label>
+                                        </div>
+                                        <div class="col">
+                                            <label class="form-check-label">
+                                                <input class="form-check-input" type="checkbox" value="option1" checked> AA0022
+                                            </label>
+                                        </div>
+                                    </div>
+                                </div>
+                            </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>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="modal fade" id="editBianma" data-backdrop="static" style="display: none;" aria-hidden="true">
+            <div class="modal-dialog" role="document">
+                <div class="modal-content">
+                    <div class="modal-header">
+                        <h5 class="modal-title">修改编码</h5>
+                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                            <span aria-hidden="true">×</span>
+                        </button>
+                    </div>
+                    <div class="modal-body">
+                        <form>
+                            <div class="form-group">
+                                <label>编码</label>
+                                <div class="form-control">
+                                    <div class="row code">
+                                        <div class="col">
+                                            <label class="form-check-label">
+                                                <input class="form-check-input" type="checkbox" value="option1" checked> AA0017
+                                            </label>
+                                        </div>
+                                        <div class="col">
+                                            <label class="form-check-label">
+                                                <input class="form-check-input" type="checkbox" value="option1" checked> AA0018
+                                            </label>
+                                        </div>
+                                        <div class="col">
+                                            <label class="form-check-label">
+                                                <input class="form-check-input" type="checkbox" value="option1" checked> AA0019
+                                            </label>
+                                        </div>
+                                        <div class="w-100"></div>
+                                        <div class="col">
+                                            <label class="form-check-label">
+                                                <input class="form-check-input" type="checkbox" value="option1" disabled> AA0020
+                                            </label>
+                                        </div>
+                                        <div class="col">
+                                            <label class="form-check-label">
+                                                <input class="form-check-input" type="checkbox" value="option1" disabled> AA0021
+                                            </label>
+                                        </div>
+                                        <div class="col">
+                                            <label class="form-check-label">
+                                                <input class="form-check-input" type="checkbox" value="option1" disabled> AA0022
+                                            </label>
+                                        </div>
+                                    </div>
+                                </div>
+                            </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>
+                    </div>
+                </div>
+            </div>
+        </div>
+
+        <!-- JS. -->
+        <script 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>
+        <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="/lib/global.js"></script>
+        <!-- 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 type="text/javascript" src="/lib/ztree/jquery.ztree.exedit.js"></script>
+        <script type="text/javascript" src="/web/rationRepository/js/chapterTree.js"></script>
+        <script type="text/javascript" src="/web/rationRepository/js/zTreeCommon.js"></script>
+        <script type="text/javascript" src="/web/rationRepository/js/sheetCommon.js"></script>
+        <script type="text/javascript" src="/web/rationRepository/js/ration.js"></script>
+        <script type="text/javascript" src="/web/rationRepository/js/rationGLJ.js"></script>
+        <script type="text/javascript" src="/public/web/treeDataHelper.js"></script>
+        <script type="text/javascript" src="/public/web/QueryParam.js"></script>
+        <script type="text/javascript" src="/public/web/storageUtil.js"></script>
+        <script type="text/javascript">
+            var setting = {
+                view: {
+                    addHoverDom: zTreeOprObj.addHoverDom,
+                    removeHoverDom: zTreeOprObj.removeHoverDom,
+                    expandSpeed: "",
+                    selectedMulti: false
+                },
+                edit: {
+                    enable: true,
+                    editNameSelectAll: true,
+                    showRemoveBtn: true,
+                    showRenameBtn: true,
+                    removeTitle: "删除节点",
+                    renameTitle: "更改名称"
+                },
+                data: {
+                    keep: {
+                        parent:true,
+                        leaf:true
+                    },
+                    key: {
+                        children: "items"
+                    },
+                    simpleData: {
+                        enable: true,
+                        idKey: "ID",
+                        pIdKey: "ParentID",
+                        rootPId: -1
+                    }
+                },
+                callback:{
+                    onClick: zTreeOprObj.onClick,
+                    beforeRename: zTreeOprObj.beforeRename,
+                    beforeRemove: zTreeOprObj.onBeforeRemove,
+                    onRemove: zTreeOprObj.onRemove,
+                    onRename: zTreeOprObj.onRename
+                }
+            };
+            $(document).ready(function(){
+                pageOprObj.initPage();
+                rationOprObj.buildSheet($("#rationItemsSheet")[0]);
+                rationGLJOprObj.buildSheet($("#rationGLJSheet")[0]);
+                sheetCommonObj.shieldAllCells(rationOprObj.workBook.getSheet(0), rationOprObj.setting);
+                sheetCommonObj.shieldAllCells(rationGLJOprObj.workBook.getSheet(0), rationGLJOprObj.setting);
+            });
+        </script>
+    </div>
+</body>
+<script type="text/javascript">
+    autoFlashHeight();
+</script>
+
+</html>

+ 9 - 6
web/rationLibEditor/fuzhu.html

@@ -18,7 +18,7 @@
     <div class="header">
         <nav class="navbar navbar-toggleable-lg navbar-light bg-faded p-0 ">
             <span class="header-logo px-2">Smartcost</span>
-            <div class="navbar-text"><a href="main.html">定额库</a><i class="fa fa-angle-right fa-fw"></i>XXX定额库</div>
+            <div class="navbar-text" id="rationname"><a href="main">定额库</a><i class="fa fa-angle-right fa-fw"></i>XXX定额库</div>
         </nav>
         <nav class="navbar navbar-toggleable-lg justify-content-between navbar-light p-0">
               <ul class="nav nav-tabs" role="tablist">
@@ -100,7 +100,7 @@
                     </div>
                   </div>
                   <div class="main-content col-lg-5 p-0">
-                      <div id="contentSpread" style="height: 400px;">
+                      <div id="contentSpread" style="height: 400px; margin-left:4px;margin-right:4px;" />
                     <!--<div class="m-2">
                       <p><div class="form-check"><label class="form-check-label"><input type="radio" class="form-check-input" name="optionsRadios" id="optionsRadios1" value="option1" checked> 工料机整体调整</label>&nbsp;&nbsp;<label class="form-check-label"><input type="radio" class="form-check-input" name="optionsRadios" id="optionsRadios1" value="option1"> 单个工料机调整</label></div></p>
                     </div>
@@ -192,10 +192,13 @@
     <script type="text/javascript" src="/lib/ztree/jquery.ztree.excheck.js"></script>
     <script type="text/javascript" src="/lib/ztree/jquery.ztree.exedit.js"></script>
     <script type="text/javascript" src="/public/web/treeDataHelper.js"></script>
-    <script type="text/javascript" src="/public/QueryParam.js"></script>
-    <script type="text/javascript" src="/web/rationLibEditor/js/coeList.js"></script>
-    <!--<script type="text/javascript" src="/web/rationLibEditor/js/zTreeCommon.js"></script>-->
-    <!--<script type="text/javascript" src="/web/rationLibEditor/js/sheetCommon.js"></script>-->
+    <script type="text/javascript" src="/public/web/QueryParam.js"></script>
+    <script src="/public/web/sheet.js"></script>
+    <script src="/public/debug.js"></script>
+    <script type="text/javascript" src="/public/web/storageUtil.js"></script>
+    <script type="text/javascript" src="/web/rationRepository/js/coeList.js"></script>
+    <!--<script type="text/javascript" src="/web/rationRepository/js/zTreeCommon.js"></script>-->
+    <!--<script type="text/javascript" src="/web/rationRepository/js/sheetCommon.js"></script>-->
     <SCRIPT type="text/javascript">
   		<!--
   		var setting = {

+ 16 - 16
web/rationLibEditor/gongliao.html

@@ -23,7 +23,7 @@
         <nav class="navbar navbar-toggleable-lg justify-content-between navbar-light p-0">
               <ul class="nav nav-tabs" role="tablist">
                   <li class="nav-item">
-                      <a class="nav-link px-3" id="drirect-dinge" href="/rationLibEditor/ration">定额</a>
+                      <a class="nav-link px-3" id="drirect-dinge" href="/rationRepository/ration">定额</a>
                   </li>
                   <li class="nav-item">
                       <a class="nav-link active px-3">工料机</a>
@@ -40,14 +40,13 @@
     <div class="main">
         <div class="content">
             <div class="container-fluid">
-                <div class="row" style="height: 660px">
-                  <div class="main-side col-lg-3 p-0">
-                    <div class="tab-content">
-                      <ul id="repositoryTree" class="ztree"></ul>
+                <div class="row">
+                    <div class="main-side col-lg-3 p-0">
+                        <ul id="repositoryTree" class="ztree"></ul>
+                    </div>
+                    <div class="main-content col-lg-9 p-0">
+                        <div id="GLJListSheet" class="main-data"></div>
                     </div>
-                  </div>
-                  <div id="GLJListSheet" class="main-content col-lg-9 p-0">
-                  </div>
                 </div>
             </div>
         </div>
@@ -180,10 +179,11 @@
   	<script type="text/javascript" src="/lib/ztree/jquery.ztree.excheck.js"></script>
     <script type="text/javascript" src="/lib/ztree/jquery.ztree.exedit.js"></script>
     <script type="text/javascript" src="/public/web/treeDataHelper.js"></script>
-    <script type="text/javascript" src="/public/QueryParam.js"></script>
-    <script type="text/javascript" src="/web/rationLibEditor/js/repositoryGLJ.js"></script>
-    <script type="text/javascript" src="/web/rationLibEditor/js/zTreeCommon.js"></script>
-    <script type="text/javascript" src="/web/rationLibEditor/js/sheetCommon.js"></script>
+    <script type="text/javascript" src="/public/web/QueryParam.js"></script>
+    <script type="text/javascript" src="/web/rationRepository/js/repositoryGLJ.js"></script>
+    <script type="text/javascript" src="/web/rationRepository/js/zTreeCommon.js"></script>
+    <script type="text/javascript" src="/web/rationRepository/js/sheetCommon.js"></script>
+    <script type="text/javascript" src="/public/web/storageUtil.js"></script>
     <script type="text/javascript">
         var gljSetting = {
             view: {
@@ -224,14 +224,14 @@
                 onClick: gljTypeTreeOprObj.onClick
             }
         };
+        $(document).ready(function(){
+            pageOprObj.initPage($("#GLJListSheet")[0]);
+            //repositoryGljObj.buildSheet($("#GLJListSheet")[0]);
+        });
   	</script>
 </body>
 <script type="text/javascript">
     autoFlashHeight();
-    $(document).ready(function(){
-        pageOprObj.initPage($("#GLJListSheet")[0]);
-        //repositoryGljObj.buildSheet($("#GLJListSheet")[0]);
-    });
 </script>
 
 </html>

+ 2 - 1
web/rationLibEditor/js/chapterTree.js

@@ -5,7 +5,8 @@
 var pageOprObj = {
     rationLibName : null,
     initPage : function() {
-        var me = this, rationLibName = getQueryString("repository");//获取定额库参数
+        var me = this, rationLibId = getQueryString("repository"),//获取定额库参数
+            rationLibName = storageUtil.getSessionCache("RationGrp","repositoryID_" + rationLibId);
         if (rationLibName) {
             var html = $("#rationname")[0].outerHTML;
             html = html.replace("XXX定额库", rationLibName);

+ 137 - 0
web/rationRepository/js/coeList.js

@@ -0,0 +1,137 @@
+/**
+ * Created by CSL on 2017-05-18.
+ */
+
+var pageObj = {
+    initPage: function (){
+        $("#drirect-dinge").click(function(){
+            $(this).attr('href', "/rationRepository/ration" + "?repository=" + getQueryString("repository"))
+        });
+
+        $("#gongliao").click(function(){
+            $(this).attr('href', "/rationRepository/lmm" + "?repository=" + getQueryString("repository"))
+        });
+
+        var libID = getQueryString("repository");
+        var libName = storageUtil.getSessionCache("RationGrp","repositoryID_" + libID);
+        if (libName) {
+            var html = $("#rationname")[0].outerHTML;
+            html = html.replace("XXX定额库", libName);
+            $("#rationname")[0].outerHTML = html;
+        };
+
+        coeList.show();
+    }
+};
+
+var coeList = {
+    mainSpread: null,
+    detailSpread: null,
+    datas: [],
+
+    colDefMain: [
+        {name: "ID", displayName: "编号", size: 100},
+        {name: "name", displayName: "名称", size: 280},
+        {name: "content", displayName: "内容", size: 250}
+    ],
+    colDefContent: [
+        {name: "coeType", displayName: "类型", size: 100, hAlign: "center"},
+        {name: "gljID", displayName: "工料机ID", size: 100, hAlign: "center",formatter: "00000000"},
+        {name: "operator", displayName: "操作符", size: 60, hAlign: "center"},
+        {name: "amount", displayName: "数量", size: 80, hAlign: "right"}
+    ],
+
+    show: function (){
+        var me = this;
+        me.getDatas();
+        me.mainSpread = sheetObj.create($('#mainSpread')[0], me.colDefMain, me.datas);
+        me.detailSpread = sheetObj.create($('#contentSpread')[0], me.colDefContent, me.datas[0].coes);
+
+        var coeType = new GC.Spread.Sheets.CellTypes.ComboBox();
+        coeType.items(["单个","全部","人工类","材料类","机械类"]);
+        me.detailSpread.getSheet(0).getRange(-1, 0, -1, 1).cellType(coeType);
+
+        var operType = new GC.Spread.Sheets.CellTypes.ComboBox();
+        operType.items(["+","-","*","/","="]);
+        me.detailSpread.getSheet(0).getRange(-1, 2, -1, 1).cellType(operType);
+
+        me.detailSpread.options.showVerticalScrollbar = false;
+
+        me.mainSpread.getSheet(0).bind(GC.Spread.Sheets.Events.EnterCell, me.onMainEnterCell);
+        me.detailSpread.getSheet(0).bind(GC.Spread.Sheets.Events.CellChanged, me.onDetailCellChanged);
+    },
+
+    getDatas: function () {
+        var me = this;
+        var libID = getQueryString("repository");
+
+        $.ajax({
+            type:"POST",
+            url:"/rationRepository/api/getCoeList",
+            data:{"libID": libID},
+            dataType:"json",
+            cache:false,
+            async: false,
+            timeout:20000,
+            success: function (result) {
+                if (result.data) {
+                    me.datas = result.data;
+                };
+            },
+            error: function (result) {
+                alert('内部程序错误!');
+            }
+        })
+    },
+
+    getLibID: function(libName){
+        var me = this;
+        $.ajax({
+            type:"POST",
+            url:"/rationRepository/api/getLibIDByName",
+            data:{"libName": libName},
+            dataType:"json",
+            cache:false,
+            async: false,
+            timeout:20000,
+            success: function (result) {
+                if (result.data) {
+                    me.libID = result.data;
+                }
+            },
+            error: function (result) {
+                alert('内部程序错误!');
+            }
+        })
+    },
+
+    onMainEnterCell: function(sender, args) {
+        var me = coeList;
+        var row = args.sheet.getActiveRowIndex();
+        me.detailSpread.suspendPaint();
+        me.detailSpread.getSheet(0).setDataSource(me.datas[row].coes);
+        me.detailSpread.resumePaint();
+    },
+
+    onDetailCellChanged:  function(sender, args) {
+        //alert('onDetailCellChanged');
+        var me = coeList;
+        var row = args.sheet.getActiveRowIndex();
+        var curType = args.sheet.getValue(row,0);
+        if (!(curType == '单个')){
+            me.detailSpread.suspendEvent();
+            args.sheet.setValue(row, 1, null);
+            me.detailSpread.resumeEvent();
+            //args.sheet.getCell(row, 1).backColor("red");
+        }
+        else{
+            //args.sheet.getCell(row, 1).backColor("Blue");
+        };
+    }
+};
+
+pageObj.initPage();
+
+
+
+

+ 16 - 11
web/rationLibEditor/js/mainJ.js

@@ -7,10 +7,10 @@ $(function(){
 
 function addEvent_Addressdirect(){
     $("tr:gt(0)").each(function() {
-        var td, a;
+        var td, a, tdId = $("td:eq(3)",$(this));
         td = $("td:eq(0)", $(this));
         a = $('a', td);
-        a.attr('href', "/rationRepository/ration" + "?repository=" + a.text());
+        a.attr('href', "/rationRepository/ration" + "?repository=" + tdId.text());
     })
 }
 function addEvent_DeleteLib(){
@@ -71,7 +71,8 @@ function getRationLibs(){
         success:function(result){
             $("tbody tr").html("");
             for(var i=0;i<result.data.length;i++){
-                addLibTag(result.data[i].dispName);
+                addLibTag(result.data[i].dispName, result.data[i].ID);
+                storageUtil.setSessionCache("RationGrp","repositoryID_" + result.data[i].ID, result.data[i].dispName);
             }
             addEvent_Addressdirect();
             addEvent_DeleteLib();
@@ -83,19 +84,21 @@ function getRationLibs(){
     })
 }
 
-function addLibTag(string){
-    var $tr = $('<tr><td><a href="#"></a></td><td></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="删除"><i class="fa fa-remove"></i></a></td></tr>')
+function addLibTag(string, ID){
+    var $tr = $('<tr><td><a href="#"></a></td><td></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="删除"><i class="fa fa-remove"></i></a></td><td style="display:none"></td></tr>')
     var $td0 = $("td:eq(0)",$tr);
     var $td1 = $("td:eq(1)",$tr);
+    var $tdId = $("td:eq(3)",$tr);
     var a = $("a",$td0);
     var str = string;
     a.text(str);
+    $tdId.text(ID);
     var date = new Date().Format("yyyy-MM-dd");
     $td1.text(date);
     $tr.appendTo("tbody");
 }
 
-function addRationRepository(rationObj) {
+function addRationRepository(rationObj, $tdId) {
     $.ajax({
         type:"POST",
         url:"api/addRationRepository",
@@ -104,7 +107,10 @@ function addRationRepository(rationObj) {
         cache:false,
         timeout:5000,
         success:function(result){
-            //
+            $tdId.text(result.data.ID);
+            storageUtil.setSessionCache("RationGrp","repositoryID_" + result.data.ID, result.data.dispName);
+            addEvent_Addressdirect();
+            addEvent_DeleteLib();
         },
         error:function(iqXHR,textStatus,errorThrown){
             alert("error "+textStatus+" "+errorThrown);
@@ -114,9 +120,10 @@ function addRationRepository(rationObj) {
 }
 
 $("#rationAdd").click(function(){
-    var $tr = $('<tr><td><a href="#"></a></td><td></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="删除"><i class="fa fa-remove"></i></a></td></tr>')
+    var $tr = $('<tr><td><a href="#"></a></td><td></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="删除"><i class="fa fa-remove"></i></a></td><td style="display:none"></td></tr>')
     var $td0 = $("td:eq(0)",$tr);
     var $td1 = $("td:eq(1)",$tr);
+    var $tdId = $("td:eq(3)",$tr);
     var a = $("a",$td0);
     var str = $("#addInput").val();
     a.text(str);
@@ -127,9 +134,7 @@ $("#rationAdd").click(function(){
     newRationRepObj.dispName = str;
     newRationRepObj.appType = "建筑";
     newRationRepObj.descr = "";
-    addRationRepository(newRationRepObj);
-    addEvent_Addressdirect();
-    addEvent_DeleteLib();
+    addRationRepository(newRationRepObj, $tdId);
 });
 
 $("#edtOK").click(function(){

+ 11 - 7
web/rationLibEditor/js/ration.js

@@ -34,10 +34,10 @@ var rationOprObj = {
         }
     },
     buildSheet: function(container) {
-        var me = this;
+        var me = rationOprObj;
         me.workBook = sheetCommonObj.buildSheet(container, me.setting, 30);
-        me.workBook.bind(GC.Spread.Sheets.Events.ClipboardPasting, me.onClipboardPasting);
-        me.workBook.bind(GC.Spread.Sheets.Events.ClipboardPasted, me.onClipboardPasted);
+        me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.ClipboardPasting, me.onClipboardPasting);
+        me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.ClipboardPasted, me.onClipboardPasted);
         me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.EditStarting, me.onCellEditStart);
         me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.EditEnded, me.onCellEditEnd);
         me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.RangeChanged, me.onRangeChanged);
@@ -49,8 +49,8 @@ var rationOprObj = {
             sheetCommonObj.cleanSheet(sheet, setting, -1);
             sheetCommonObj.shieldAllCells(sheet);
         } else {
-            sheetCommonObj.cleanSheet(rationGLJOprObj.workBook.getSheet(0), rationGLJOprObj.setting, -1);
-            sheetCommonObj.shieldAllCells(rationGLJOprObj.workBook.getSheet(0));
+            sheetCommonObj.cleanSheet(sheet, setting, -1);
+            sheetCommonObj.shieldAllCells(sheet);
             var cacheSection = me.getCache();
             if (cacheSection && args.row < cacheSection.length) {
                 rationGLJOprObj.getGljItems(cacheSection[args.row]);
@@ -155,10 +155,14 @@ var rationOprObj = {
             rObj["ID"] = me.currentEditingRation["ID"];
             updateArr.push(rObj);
         } else {
-            addArr.push(rObj);
+            if (!sheetCommonObj.chkIfEmpty(rObj, me.setting)) {
+                addArr.push(rObj);
+            }
         }
         me.currentEditingRation = null;
-        me.mixUpdateRequest(updateArr, addArr, []);
+        if (updateArr.length > 0 || addArr.length > 0) {
+            me.mixUpdateRequest(updateArr, addArr, []);
+        }
     },
     onClipboardPasting: function(sender, args) {
         var me = rationOprObj;

web/rationLibEditor/js/rationGLJ.js → web/rationRepository/js/rationGLJ.js


+ 26 - 14
web/rationLibEditor/js/repositoryGLJ.js

@@ -13,17 +13,18 @@ $("#fuzhu").click(function(){
 var pageOprObj = {
     rationLibName : null,
     initPage : function(container) {
-        var me = this, rationLibName = getQueryString("repository");//获取定额库参数
+        var me = this, rationLibId = getQueryString("repository"),//获取定额库参数
+            rationLibName = storageUtil.getSessionCache("RationGrp","repositoryID_" + rationLibId);
         if (rationLibName) {
             var html = $("#rationname")[0].outerHTML;
             html = html.replace("XXX定额库", rationLibName);
             $("#rationname")[0].outerHTML = html;
             me.rationLibName = rationLibName;
-            repositoryGljObj.getGljTree(rationLibName, function(repId){
-                repositoryGljObj.buildSheet(container);
-                repositoryGljObj.getGljItems(repId);
-                sheetCommonObj.shieldAllCells(repositoryGljObj.workBook.getSheet(0), repositoryGljObj.setting);
-            });
+            repositoryGljObj.currentRepositoryId = parseInt(rationLibId);
+            repositoryGljObj.getGljTree(rationLibId);
+            repositoryGljObj.buildSheet(container);
+            repositoryGljObj.getGljItems(rationLibId);
+            sheetCommonObj.shieldAllCells(repositoryGljObj.workBook.getSheet(0), repositoryGljObj.setting);
         }
     }
 }
@@ -52,12 +53,12 @@ repositoryGljObj = {
             ]
         }
     },
-    getGljTree: function(rationLibName, callback) {
+    getGljTree: function(rationLibId) {
         var me = this;
         $.ajax({
             type:"POST",
             url:"api/getGljTree",
-            data:{"rationLibName": rationLibName},
+            data:{"rationLibId": rationLibId},
             dataType:"json",
             cache:false,
             timeout:20000,
@@ -66,11 +67,8 @@ repositoryGljObj = {
                     zTreeHelper.createTree(result.data, gljSetting, "repositoryTree", me);
                     if (result.data && result.data.length > 0) {
                         me.gljCurTypeId = result.data[0].ID;
-                        if (callback) {
-                            var repId = -1;
-                            repId = result.data[0].repositoryId;
-                            callback(repId);
-                        }
+                    } else {
+                        gljTypeTreeOprObj.addRootNode();
                     }
                 }
             },
@@ -81,7 +79,6 @@ repositoryGljObj = {
     },
     getGljItems: function(repId) {
         var me = this;
-        me.currentRepositoryId = repId;
         $.ajax({
             type:"POST",
             url:"api/getGljItems",
@@ -397,6 +394,21 @@ var gljTypeTreeOprObj = {
             })
         }
     },
+    addRootNode: function() {
+        var me = repositoryGljObj, rawNode = {ParentID: -1, NextSiblingID: -1, Name: "所有"}, lastNodeId = -1;
+        if (me.treeObj) {
+            var rootNodes = me.treeObj.getNodes();
+            if (rootNodes.length == 0) {
+                gljTypeTreeOprObj.addNewNode(rawNode, lastNodeId, function(err, rst){
+                    if (!(err)) {
+                        var newNodes = [], isSilent = false;
+                        newNodes.push({ repositoryId: rst.data.repositoryId, ID: rst.data.ID, ParentID: rst.data.ParentID, NextSiblingID:-1, Name:"所有",isParent:false, items:[]});
+                        me.treeObj.addNodes(null, -1, newNodes, isSilent);
+                    }
+                });
+            }
+        }
+    },
     addNewNode : function(rawNode, lastNodeId, callback){
         $.ajax({
             type:"POST",

+ 1 - 1
web/rationLibEditor/js/sheetCommon.js

@@ -37,7 +37,7 @@ var sheetCommonObj = {
         sheet.suspendEvent();
         sheet.clear(-1, 0, -1, setting.header.length, GC.Spread.Sheets.SheetArea.viewport, GC.Spread.Sheets.StorageType.data);
         if (rowCount > 0) sheet.setRowCount(rowCount);
-        sheet.clearSelection();
+        //sheet.clearSelection();
         sheet.resumeEvent();
         sheet.resumePaint();
     },

web/rationLibEditor/js/zTreeCommon.js → web/rationRepository/js/zTreeCommon.js


+ 3 - 2
web/rationLibEditor/main.html

@@ -130,10 +130,11 @@
     <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="/public/web/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>
+    <script type="text/javascript" src="/web/rationRepository/js/mainJ.js"></script>
+    <script type="text/javascript" src="/public/web/storageUtil.js"></script>
 </body>
 <script type="text/javascript">