Browse Source

清单模板相关

MaiXinRong 8 năm trước cách đây
mục cha
commit
9cfb918562

+ 1 - 1
web/scripts/tree_table.js

@@ -593,7 +593,7 @@
  		init: function(obj, setting, arrData){
             var _treeSetting, _tree;
             _treeSetting = _data.clone(_setting);
-            $.extend(true, _treeSetting, setting)
+            $.extend(true, _treeSetting, setting);
  			var _tree = new Tree(obj, _treeSetting);
  			_tree.loadData(arrData);
  			_tree.refreshTreeDom();

+ 50 - 68
web/templates/html/bills.html

@@ -17,80 +17,62 @@
     </script>
 </head>
 <body>
-<div class="header">
-    <!-- <div class="top-msg clearfix">
-        <div class="alert alert-warning mb-0 py-0" role="alert">
-            <button type="button" class="close" data-dismiss="alert" aria-label="Close">
-              <span aria-hidden="true">&times;</span>
-            </button>
-            <strong>注意!</strong> 这是一条消息通知 <a href="#">链接</a>
-        </div>
-    </div> -->
-    <nav class="navbar navbar-toggleable-lg navbar-light bg-faded p-0 justify-content-between">
-        <span class="header-logo px-2">Smartcost</span>
-        <div class="float-lg-right navbar-text pt-0">
-            <div class="dropdown d-inline-block">
-                <button class="btn btn-link btn-sm dropdown-toggle" type="button" data-toggle="dropdown"><%- userAccount %></button>
-                <div class="dropdown-menu dropdown-menu-right">
-                    <a class="dropdown-item" href="/user/info" target="_blank">账号资料</a>
-                    <a class="dropdown-item" href="/user/buy" target="_blank">产品购买</a>
-                    <a class="dropdown-item" href="/user/set" target="_blank">偏好设置</a>
+    <div class="header">
+        <nav class="navbar navbar-toggleable-lg navbar-light bg-faded p-0 justify-content-between">
+            <span class="header-logo px-2">Smartcost</span>
+            <div class="float-lg-right navbar-text pt-0">
+                <div class="dropdown d-inline-block">
+                    <button class="btn btn-link btn-sm dropdown-toggle" type="button" data-toggle="dropdown"><%- userAccount %></button>
+                    <div class="dropdown-menu dropdown-menu-right">
+                        <a class="dropdown-item" href="/user/info" target="_blank">账号资料</a>
+                        <a class="dropdown-item" href="/user/buy" target="_blank">产品购买</a>
+                        <a class="dropdown-item" href="/user/set" target="_blank">偏好设置</a>
+                    </div>
                 </div>
+                    <span class="btn btn-link btn-sm new-msg">
+                        <i class="fa fa-envelope-o" aria-hidden="true"></i>&nbsp;2
+                    </span>
+                    <a class="btn btn-link btn-sm" href="/logout">注销</a>
             </div>
-                <span class="btn btn-link btn-sm new-msg">
-                  <i class="fa fa-envelope-o" aria-hidden="true"></i>&nbsp;2
-                </span>
-            <a class="btn btn-link btn-sm" href="/logout">注销</a>
-        </div>
-    </nav>
-</div>
+        </nav>
+    </div>
 <div class="main">
     <div class="content">
-        <div class="tab-content">
-            <div class="tab-pane active" id="zaojiashu" role="tabpanel">
-                <!--造价书-->
-                <div class="toolsbar px-1 d-flex justify-content-between">
-                    <div class="tools-btn btn-group align-top">
-                        <a href="" class="btn btn-sm"><i class="fa fa-files-o" aria-hidden="true"></i> 复制</a>
-                        <a href="" class="btn btn-sm"><i class="fa fa-scissors" aria-hidden="true"></i> 剪切</a>
-                        <a href="" class="btn btn-sm"><i class="fa fa-clipboard" aria-hidden="true"></i> 粘贴</a>
-                        <a href="javascript:void(0)" class="btn btn-sm" id="insert"><i class="fa fa-sign-in" aria-hidden="true"></i> 插入</a>
-                        <a href="javascript:void(0)" class="btn btn-sm" id="delete"><i class="fa fa-remove" aria-hidden="true"></i> 删除</a>
-                        <a href="javascript:void(0)" class="btn btn-sm" id="upLevel"><i class="fa fa-arrow-left" aria-hidden="true"></i> 升级</a>
-                        <a href="javascript:void(0)" class="btn btn-sm" id="downLevel"><i class="fa fa-arrow-right" aria-hidden="true"></i> 降级</a>
-                        <a href="javascript:void(0)" class="btn btn-sm" id="downMove"><i class="fa fa-arrow-down" aria-hidden="true"></i> 下移</a>
-                        <a href="javascript:void(0)" class="btn btn-sm" id="upMove"><i class="fa fa-arrow-up" aria-hidden="true"></i> 上移</a>
-                    </div>
-                    <div class="side-tabs">
-                        <ul class="nav nav-tabs" role="tablist">
-                            <li class="nav-item">
-                                <a class="nav-link active px-3" data-toggle="tab" href="#qd" role="tab">清单规则</a>
-                            </li>
-                        </ul>
+        <div class="toolsbar px-1 d-flex justify-content-between">
+            <div class="tools-btn btn-group align-top">
+                <a href="" class="btn btn-sm"><i class="fa fa-files-o" aria-hidden="true"></i> 复制</a>
+                <a href="" class="btn btn-sm"><i class="fa fa-scissors" aria-hidden="true"></i> 剪切</a>
+                <a href="" class="btn btn-sm"><i class="fa fa-clipboard" aria-hidden="true"></i> 粘贴</a>
+                <a href="javascript:void(0)" class="btn btn-sm" id="insert"><i class="fa fa-sign-in" aria-hidden="true"></i> 插入</a>
+                <a href="javascript:void(0)" class="btn btn-sm" id="delete"><i class="fa fa-remove" aria-hidden="true"></i> 删除</a>
+                <a href="javascript:void(0)" class="btn btn-sm" id="upLevel"><i class="fa fa-arrow-left" aria-hidden="true"></i> 升级</a>
+                <a href="javascript:void(0)" class="btn btn-sm" id="downLevel"><i class="fa fa-arrow-right" aria-hidden="true"></i> 降级</a>
+                <a href="javascript:void(0)" class="btn btn-sm" id="downMove"><i class="fa fa-arrow-down" aria-hidden="true"></i> 下移</a>
+                <a href="javascript:void(0)" class="btn btn-sm" id="upMove"><i class="fa fa-arrow-up" aria-hidden="true"></i> 上移</a>
+            </div>
+            <div class="side-tabs">
+                <ul class="nav nav-tabs" role="tablist">
+                    <li class="nav-item">
+                        <a class="nav-link active px-3" data-toggle="tab" href="#qd" role="tab">清单规则</a>
+                    </li>
+                </ul>
+            </div>
+        </div>
+        <div class="container-fluid">
+            <div class="row">
+                <div class="main-content col-lg-9 p-0">
+                    <div class="main-data" id="billsSpread" style="height: 600px">
                     </div>
                 </div>
-                <div class="container-fluid">
-                    <div class="row">
-                        <div class="main-content col-lg-9 p-0">
-                            <div class="top-content">
-                                <div class="main-data-top" id="billsSpread"></div>
-                            </div>
-                        </div>
-                        <div class="main-side col-lg-3 p-0">
-                            <div class="tab-content">
-                                <!--清单规则-->
-                                <div class="tab-pane active" id="qd" role="tabpanel">
-                                    <div class="warp-p2">
-                                        <div>
-                                            <select class="form-control form-control-sm" id="exampleSelect1">
-                                                <option>重庆市房屋建筑与装饰工程工程量计算规则(2013)</option>
-                                                <option>2</option>
-                                                <option>3</option>
-                                                <option>4</option>
-                                                <option>5</option>
-                                            </select>
-                                        </div>
-                                    </div>
+                <div class="main-side col-lg-3 p-0">
+                    <div class="tab-content">
+                        <!--清单规则-->
+                        <div class="tab-pane active" id="qd" role="tabpanel">
+                            <div class="warp-p2">
+                                <div>
+                                    <select class="form-control form-control-sm" id="exampleSelect1">
+                                        <option>重庆市房屋建筑与装饰工程工程量计算规则(2013)</option>
+                                    </select>
                                 </div>
                             </div>
                         </div>

+ 49 - 17
web/templates/js/bills.js

@@ -2,6 +2,7 @@
  * Created by Mai on 2017/4/17.
  */
 $(document).ready(function () {
+    var tempType = 3;
     var PostData = function (url, data, successCallback, errorCallback) {
         $.ajax({
             type:"POST",
@@ -31,7 +32,7 @@ $(document).ready(function () {
     var FormatUpdateData = function (data) {
         var updateData = {};
         updateData['user_id'] = userID;
-        updateData['tempType'] = 1;
+        updateData['tempType'] = tempType;
         updateData['updateData'] = data;
         return updateData;
     };
@@ -49,6 +50,15 @@ $(document).ready(function () {
         showButton(tree.selected && tree.selected.canDownMove(), $('#downMove'));
         showButton(tree.selected ? true : false, $('#delete'));
     }
+    var RefreshBillsData = function (datas) {
+        datas.forEach(function (data) {
+            bills.forEach(function (billsData) {
+                if (data.data.ID === billsData.ID) {
+                    $.extend(true, billsData, data.data);
+                }
+            })
+        })
+    }
 
     var bills;
     var tree = idTree.createNew({id: 'ID', pid: 'ParentID', nid: 'NextSiblingID', rootId: -1});
@@ -61,23 +71,10 @@ $(document).ready(function () {
     billsSpread.options.scrollbarMaxAlign = true;
     controller.bind('refreshBaseActn', RefreshBaseActn);
 
-    /*billsSpread.bind(GC.Spread.Sheets.Events.ValueChanged, function (e, info) {
-        var node = controller.tree.findNode(info.sheet.getTag(info.row, info.col));
-        var fieldName = controller.setting.cols[info.col].data.field;
-        var data = {type: 'update', data: node.data};
-        data.data[fieldName] = info.newValue;
-        var updateData = FormatUpdateData([data]);
-        PostData('/template/bills/updateBillsTemplate', updateData, function (data) {
-            node.data[fieldName] = info.newValue;
-        }, function () {
-            TREE_SHEET_HELPER.refreshTreeNodeData(setting, sheet, [node], false);
-        });
-    });*/
-
     billsSpread.bind(GC.Spread.Sheets.Events.EditEnded, function (sender, info) {
         var node = controller.tree.findNode(info.sheet.getTag(info.row, info.col));
         var fieldName = controller.setting.cols[info.col].data.field;
-        var data = {type: 'update', data: node.data};
+        var data = {type: 'update', data: {ID: node.getID()}};
         data.data[fieldName] = info.editingText;
         var updateData = FormatUpdateData([data]);
         PostData('/template/bills/updateBillsTemplate', updateData, function (data) {
@@ -88,7 +85,30 @@ $(document).ready(function () {
         });
     });
 
-    PostData('/template/bills/getBillsTemplate', {tempType: 1}, function (data) {
+    billsSpread.bind(GC.Spread.Sheets.Events.ClipboardPasted, function (e, info) {
+        var node, iRow, iCol, curRow, curCol, datas = [], data, fieldName, updateData;
+        for (iRow = 0; iRow < info.cellRange.rowCount; iRow ++) {
+            curRow = info.cellRange.row + iRow;
+            node = controller.tree.findNode(info.sheet.getTag(curRow, 0));
+            if (node) {
+                data = {type: 'update', data: {ID: node.getID()}};
+                for (iCol = 0; iCol < info.cellRange.colCount; iCol++) {
+                    curCol = info.cellRange.col + iCol;
+                    fieldName = controller.setting.cols[curCol].data.field;
+                    data.data[fieldName] = info.sheet.getText(curRow, curCol);
+                }
+                datas.push(data);
+            }
+        };
+        PostData('/template/bills/updateBillsTemplate', FormatUpdateData(datas), function (data) {
+            RefreshBillsData(data);
+            controller.showTreeData();
+        }, function () {
+            controller.showTreeData();
+        })
+    });
+
+    PostData('/template/bills/getBillsTemplate', {tempType: tempType}, function (data) {
         bills = data;
         tree.loadDatas(bills);
         controller.showTreeData();
@@ -107,6 +127,8 @@ $(document).ready(function () {
         }
         PostData('/template/bills/updateBillsTemplate', updateData, function (data) {
             controller.insert();
+            RefreshBillsData(data);
+            controller.showTreeData();
         });
     });
     $('#delete').click(function () {
@@ -115,6 +137,8 @@ $(document).ready(function () {
             updateData = FormatUpdateData(controller.tree.getDeleteData(selected));
             PostData('/template/bills/updateBillsTemplate', updateData, function (data) {
                 controller.delete();
+                RefreshBillsData(data);
+                controller.showTreeData();
             });
         }
     });
@@ -124,6 +148,8 @@ $(document).ready(function () {
             updateData = FormatUpdateData(selected.getUpLevelData());
             PostData('/template/bills/updateBillsTemplate', updateData, function (data) {
                 controller.upLevel();
+                RefreshBillsData(data);
+                controller.showTreeData();
             });
         }
     });
@@ -133,6 +159,8 @@ $(document).ready(function () {
             updateData = FormatUpdateData(selected.getDownLevelData());
             PostData('/template/bills/updateBillsTemplate', updateData, function (data) {
                 controller.downLevel();
+                RefreshBillsData(data);
+                controller.showTreeData();
             });
         }
     });
@@ -142,6 +170,8 @@ $(document).ready(function () {
             updateData = FormatUpdateData(selected.getUpMoveData());
             PostData('/template/bills/updateBillsTemplate', updateData, function (data) {
                 controller.upMove();
+                RefreshBillsData(data);
+                controller.showTreeData();
             });
         }
     });
@@ -150,7 +180,9 @@ $(document).ready(function () {
         if (selected) {
             updateData = FormatUpdateData(selected.getDownMoveData());
             PostData('/template/bills/updateBillsTemplate', updateData, function (data) {
-              controller.downMove()
+                controller.downMove();
+                RefreshBillsData(data);
+                controller.showTreeData();
             });
         }
     });

+ 87 - 0
web/templates/js/tp_bills_setting.js

@@ -93,5 +93,92 @@ var TEMPLATE_BILLS_SETTING = {
             "hAlign":1,
             "font":"14.6667px Calibri"
         }
+    }, {
+        "width":50,
+        "readOnly":null,
+        "head":{
+            "titleNames":[
+                "ID"
+            ],
+            "spanCols":[
+                1
+            ],
+            "spanRows":[
+                1
+            ],
+            "vAlign":[
+                1
+            ],
+            "hAlign":[
+                1
+            ],
+            "font":[
+                "12px Arial"
+            ]
+        },
+        "data":{
+            "field":"ID",
+            "vAlign":0,
+            "hAlign":1,
+            "font":"14.6667px Calibri"
+        }
+    }, {
+        "width":50,
+        "readOnly":null,
+        "head":{
+            "titleNames":[
+                "ParentID"
+            ],
+            "spanCols":[
+                1
+            ],
+            "spanRows":[
+                1
+            ],
+            "vAlign":[
+                1
+            ],
+            "hAlign":[
+                1
+            ],
+            "font":[
+                "12px Arial"
+            ]
+        },
+        "data":{
+            "field":"ParentID",
+            "vAlign":0,
+            "hAlign":1,
+            "font":"14.6667px Calibri"
+        }
+    }, {
+        "width":50,
+        "readOnly":null,
+        "head":{
+            "titleNames":[
+                "NextSiblingID"
+            ],
+            "spanCols":[
+                1
+            ],
+            "spanRows":[
+                1
+            ],
+            "vAlign":[
+                1
+            ],
+            "hAlign":[
+                1
+            ],
+            "font":[
+                "12px Arial"
+            ]
+        },
+        "data":{
+            "field":"NextSiblingID",
+            "vAlign":0,
+            "hAlign":1,
+            "font":"14.6667px Calibri"
+        }
     }]
 };