Selaa lähdekoodia

定额下查找录入附注条件。

Chenshilong 8 vuotta sitten
vanhempi
commit
4cbab02186

+ 13 - 5
web/maintain/ration_repository/dinge.html

@@ -83,16 +83,19 @@
                                           <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>
+                                          <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>
+                                      <li class="nav-item">
+                                          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<button>本分项全部适用</button>
+                                      </li>
                                   </ul>
                                   <!-- 内容 -->
                                   <div class="tab-content">
                                       <!--工料机-->
-                                      <div class="tab-pane active" id="bglj" role="tabpanel">
+                                      <div class="tab-pane" id="bglj" role="tabpanel">
                                           <div id="rationGLJSheet" class="main-data-bottom"></div>
                                       </div>
                                       <!--辅助定额调整-->
@@ -119,8 +122,10 @@
                                           </div>
                                       </div>
                                       <!--附注条件调整-->
-                                      <div class="tab-pane" id="bfzt" role="tabpanel">
-                                          <div class="main-data-bottom">
+
+                                      <div class="tab-pane active" id="bfzt" role="tabpanel">
+                                          <div id="rationCoeSpread" class="main-data-bottom"></div>
+                                          <!--<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>
@@ -138,7 +143,7 @@
                                                   </tr>
                                                   </tbody>
                                               </table>
-                                          </div>
+                                          </div>-->
                                       </div>
                                       <!--安装增加费-->
                                       <div class="tab-pane" id="baz" role="tabpanel">
@@ -507,6 +512,8 @@
         <script type="text/javascript" src="/public/web/sheet/sheet_common.js"></script>
         <script type="text/javascript" src="/web/maintain/ration_repository/js/ration.js"></script>
         <script type="text/javascript" src="/web/maintain/ration_repository/js/ration_glj.js"></script>
+        <script type="text/javascript" src="/public/web/sheet_creater.js"></script>
+        <script type="text/javascript" src="/web/maintain/ration_repository/js/ration_coe.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>
@@ -555,6 +562,7 @@
                 rationGLJOprObj.buildSheet($("#rationGLJSheet")[0]);
                 sheetCommonObj.shieldAllCells(rationOprObj.workBook.getSheet(0), rationOprObj.setting);
                 sheetCommonObj.shieldAllCells(rationGLJOprObj.workBook.getSheet(0), rationGLJOprObj.setting);
+                rationCoeObj.show();
             });
         </script>
     </div>

+ 135 - 0
web/maintain/ration_repository/js/ration_coe.js

@@ -0,0 +1,135 @@
+/**
+ * Created by CSL on 2017-06-08.
+ */
+var rationCoeObj = {
+    spread: null,
+    datas: [],
+    libID: Number,
+    tempID: -999999,       // 本地新增一条数据给的默认ID,用作标记,服务端返回新ID后替换该ID
+
+    colDef: [
+        {name: "ID", displayName: "ID", size: 70, hAlign: "center"},
+        {name: "name", displayName: "名称", size: 400, readOnly: true},
+        {name: "content", displayName: "内容", size: 500, readOnly: true}
+    ],
+
+    show: function (){
+        var me = this;
+        me.libID = getQueryString("repository");
+        me.getDatas();
+        me.spread = sheetObj.create($('#rationCoeSpread')[0], me.colDef, me.datas);
+        me.spread.getSheet(0).bind(GC.Spread.Sheets.Events.CellChanged, me.onMainCellChanged);
+        me.spread.getSheet(0).bind(GC.Spread.Sheets.Events.RangeChanged, me.onMainRangeChanged);
+    },
+
+    getDatas: function () {
+        var me = this;
+
+        $.ajax({
+            type:"POST",
+            url:"/rationRepository/api/getCoeList",
+            data:{"libID": me.libID},
+            dataType:"json",
+            cache:false,
+            async: false,
+            timeout:20000,
+            success: function (result) {
+                if (result.data) {
+                    me.datas = result.data;
+                };
+            },
+            error: function (result) {
+                alert('内部程序错误!');
+            }
+        })
+    },
+
+    onMainCellChanged: function(sender, args) {
+        if (args.propertyName !== "value"){return;};
+        var me = rationCoeObj;
+        var row = args.sheet.getActiveRowIndex();
+        var obj = me.datas[row];
+
+        if (obj.ID == undefined){           // 空行录入,即新增
+            obj.libID = me.libID;
+            obj.ID = me.tempID;
+            if (obj.name == undefined){obj.name = '';};     // 生成属性,令属性存储顺序一致
+            if (obj.content == undefined){obj.content = '';};
+            obj.coes = [{coeType:"全部", operator:"*", amount: "0"}];
+            me.datas[row] = obj;
+
+            me.save([obj],[],[]);
+
+            var sheet = me.spread.getSheet(0);
+            me.showNullRow(sheet);
+        }
+        else{ // 正常修改
+            me.save([],[],[obj]);
+        };
+    },
+
+    onMainRangeChanged: function(sender, args) {
+        if (args.action == GC.Spread.Sheets.RangeChangedAction.clear) {
+            if (!confirm('确定要删除本条附注条件吗?')){ args.cancel = true; return; }
+            var me = rationCoeObj;
+            var obj = me.datas[args.row];
+            me.save([],[obj],[]);
+            args.sheet.deleteRows(args.row, 1);
+        };
+    },
+
+    showNullRow: function(sheet){
+        var datas = sheet.getDataSource();
+        var lastData = datas[datas.length - 1];
+        if (!$.isEmptyObject(lastData)){
+            sheet.addRows(sheet.getRowCount(), 1);
+        };
+    },
+
+    save: function(addArr, deleteArr, updateArr) {
+        var me = rationCoeObj;
+
+        //var addArrTemp = [];
+        //var deleteArrTemp = [];
+        var updateArrTemp = [];
+
+        // 空行会产生空对象数据,清理空对象会给sheet的空行效果带来奇怪的干扰,这里要中转一下。
+        if (updateArr.length > 0){
+            $.extend(true, updateArrTemp, updateArr);
+            //debug.d('011: ', updateArrTemp);
+            //debug.d('012: ', updateArr);
+            deleteEmptyObject(updateArrTemp[0].coes);
+            //debug.d('013: ', updateArrTemp);
+            //debug.d('014: ', updateArr);
+            //return;
+        };
+
+        $.ajax({
+            type:"POST",
+            url:"api/saveCoeList",
+            data: {"data": JSON.stringify({"addArr": addArr, "deleteArr": deleteArr, "updateArr": updateArrTemp})},
+            dataType:"json",
+            cache:false,
+            timeout:5000,
+            success:function(result){
+                if (result.error) {
+                    alert(result.message);
+                } else {
+                    // 成功。更新从后台返回的新ID。
+                    if (addArr.length > 0){
+                        for (var i = 0; i < me.datas.length; i++) {
+                            if (me.datas[i].ID == me.tempID){
+                                me.datas[i].ID = result.data;
+                                me.spread.getSheet(0).repaint();
+                                break;
+                            }
+                        }
+                    };
+                }
+            },
+            error:function(err){
+                alert("内部程序错误!");
+            }
+        })
+    }
+};