ソースを参照

附属工程量、设计量明细只读控制

MaiXinRong 2 週間 前
コミット
9eea818b16
1 ファイル変更126 行追加119 行削除
  1. 126 119
      app/public/js/ledger.js

+ 126 - 119
app/public/js/ledger.js

@@ -145,6 +145,7 @@ $(document).ready(function() {
             headerFont: '12px 微软雅黑',
             font: '12px 微软雅黑',
             frozenLineColor: '#93b5e4',
+            readOnly: readOnly,
         };
         const refresh = function() {
             if (spread) spread.refresh();
@@ -167,6 +168,7 @@ $(document).ready(function() {
                     specCol.maxDrop = 10;
                 }
                 template.spread_cache.forceLoadEmpty = true;
+                template.spread_cache.readOnly = readOnly;
                 SpreadJsObj.initSheet(sheet, template.spread_cache);
             } else {
                 SpreadJsObj.initSheet(sheet, emptySetting);
@@ -392,69 +394,71 @@ $(document).ready(function() {
                 });
             },
         };
-        SpreadJsObj.addDeleteBind(spread, ctrlObj.deletePress);
-        spread.bind(spreadNS.Events.EditStarting, ctrlObj.editStarting);
-        spread.bind(spreadNS.Events.EditEnded, ctrlObj.editEnded);
-        spread.bind(spreadNS.Events.ClipboardPasting, ctrlObj.clipboardPasting);
-        $.contextMenu({
-            selector: '#pos-detail-spread',
-            build: function ($trigger, e) {
-                const target = SpreadJsObj.safeRightClickSelection($trigger, e, spread);
-                return target.hitTestType === GC.Spread.Sheets.SheetArea.viewport || target.hitTestType === GC.Spread.Sheets.SheetArea.rowHeader;
-            },
-            items: {
-                'insert': {
-                    name: '插入',
-                    icon: 'fa-plus',
-                    disabled: function (key, opt) {
-                        const pos = SpreadJsObj.getSelectObject(posSheet);
-                        return !pos;
-                    },
-                    callback: function (key, opt) {
-                        ctrlObj.baseOpr('insert');
-                    }
+        if (!readOnly) {
+            SpreadJsObj.addDeleteBind(spread, ctrlObj.deletePress);
+            spread.bind(spreadNS.Events.EditStarting, ctrlObj.editStarting);
+            spread.bind(spreadNS.Events.EditEnded, ctrlObj.editEnded);
+            spread.bind(spreadNS.Events.ClipboardPasting, ctrlObj.clipboardPasting);
+            $.contextMenu({
+                selector: '#pos-detail-spread',
+                build: function ($trigger, e) {
+                    const target = SpreadJsObj.safeRightClickSelection($trigger, e, spread);
+                    return target.hitTestType === GC.Spread.Sheets.SheetArea.viewport || target.hitTestType === GC.Spread.Sheets.SheetArea.rowHeader;
                 },
-                'delete': {
-                    name: '删除',
-                    icon: 'fa-remove',
-                    disabled: function (key, opt) {
-                        const detailData = SpreadJsObj.getSelectObject(sheet);
-                        return !detailData;
+                items: {
+                    'insert': {
+                        name: '插入',
+                        icon: 'fa-plus',
+                        disabled: function (key, opt) {
+                            const pos = SpreadJsObj.getSelectObject(posSheet);
+                            return !pos;
+                        },
+                        callback: function (key, opt) {
+                            ctrlObj.baseOpr('insert');
+                        }
                     },
-                    callback: function (key, opt) {
-                        ctrlObj.baseOpr('delete');
-                    }
-                },
-                'down-move': {
-                    name: '下移',
-                    icon: 'fa-arrow-down',
-                    disabled: function(key, opt) {
-                        const sel = sheet.getSelections()[0];
-                        const row = sel ? sel.row : -1;
-                        const first = sheet.zh_data[row];
-                        const next = sheet.zh_data[sel.row + sel.rowCount];
-                        return !first || !next;
+                    'delete': {
+                        name: '删除',
+                        icon: 'fa-remove',
+                        disabled: function (key, opt) {
+                            const detailData = SpreadJsObj.getSelectObject(sheet);
+                            return !detailData;
+                        },
+                        callback: function (key, opt) {
+                            ctrlObj.baseOpr('delete');
+                        }
                     },
-                    callback: function(key, opt) {
-                        ctrlObj.baseOpr('down-move');
-                    }
-                },
-                'up-move': {
-                    name: '上移',
-                    icon: 'fa-arrow-up',
-                    disabled: function(key, opt) {
-                        const sel = sheet.getSelections()[0];
-                        const row = sel ? sel.row : -1;
-                        const first = sheet.zh_data[row];
-                        const preNode = sheet.zh_data[row - 1];
-                        return !first || !preNode;
+                    'down-move': {
+                        name: '下移',
+                        icon: 'fa-arrow-down',
+                        disabled: function(key, opt) {
+                            const sel = sheet.getSelections()[0];
+                            const row = sel ? sel.row : -1;
+                            const first = sheet.zh_data[row];
+                            const next = sheet.zh_data[sel.row + sel.rowCount];
+                            return !first || !next;
+                        },
+                        callback: function(key, opt) {
+                            ctrlObj.baseOpr('down-move');
+                        }
                     },
-                    callback: function(key, opt) {
-                        ctrlObj.baseOpr('up-move');
-                    }
-                },
-            }
-        });
+                    'up-move': {
+                        name: '上移',
+                        icon: 'fa-arrow-up',
+                        disabled: function(key, opt) {
+                            const sel = sheet.getSelections()[0];
+                            const row = sel ? sel.row : -1;
+                            const first = sheet.zh_data[row];
+                            const preNode = sheet.zh_data[row - 1];
+                            return !first || !preNode;
+                        },
+                        callback: function(key, opt) {
+                            ctrlObj.baseOpr('up-move');
+                        }
+                    },
+                }
+            });
+        }
 
         return { detail, spread, sheet, refresh, loadCurDetailData, reloadCurDetailData }
     })();
@@ -3012,6 +3016,7 @@ $(document).ready(function() {
         defaultRowHeight: 21,
         headerFont: '12px 微软雅黑',
         font: '12px 微软雅黑',
+        readOnly: readOnly,
     };
     SpreadJsObj.initSheet(ancGclSheet, ancGclSpreadSetting);
     const ancGclObj = {
@@ -3308,70 +3313,72 @@ $(document).ready(function() {
             });
         },
     };
-    SpreadJsObj.addDeleteBind(ancGclSpread, ancGclObj.deletePress);
-    ancGclSpread.bind(spreadNS.Events.EditStarting, ancGclObj.editStarting);
-    ancGclSpread.bind(spreadNS.Events.EditEnded, ancGclObj.editEnded);
-    ancGclSpread.bind(spreadNS.Events.ClipboardPasting, ancGclObj.clipboardPasting);
-    ancGclSpread.bind(spreadNS.Events.ButtonClicked, ancGclObj.buttonClicked);
-    $.contextMenu({
-        selector: '#anc-gcl-spread',
-        build: function ($trigger, e) {
-            const target = SpreadJsObj.safeRightClickSelection($trigger, e, ancGclSpread);
-            return target.hitTestType === GC.Spread.Sheets.SheetArea.viewport || target.hitTestType === GC.Spread.Sheets.SheetArea.rowHeader;
-        },
-        items: {
-            'insert': {
-                name: '插入',
-                icon: 'fa-plus',
-                disabled: function (key, opt) {
-                    const node = SpreadJsObj.getSelectObject(ledgerSheet);
-                    return !node || !node.b_code || (node.children && node.children.length > 0);
-                },
-                callback: function (key, opt) {
-                    ancGclObj.baseOpr('insert');
-                }
+    if (!readOnly) {
+        SpreadJsObj.addDeleteBind(ancGclSpread, ancGclObj.deletePress);
+        ancGclSpread.bind(spreadNS.Events.EditStarting, ancGclObj.editStarting);
+        ancGclSpread.bind(spreadNS.Events.EditEnded, ancGclObj.editEnded);
+        ancGclSpread.bind(spreadNS.Events.ClipboardPasting, ancGclObj.clipboardPasting);
+        ancGclSpread.bind(spreadNS.Events.ButtonClicked, ancGclObj.buttonClicked);
+        $.contextMenu({
+            selector: '#anc-gcl-spread',
+            build: function ($trigger, e) {
+                const target = SpreadJsObj.safeRightClickSelection($trigger, e, ancGclSpread);
+                return target.hitTestType === GC.Spread.Sheets.SheetArea.viewport || target.hitTestType === GC.Spread.Sheets.SheetArea.rowHeader;
             },
-            'delete': {
-                name: '删除',
-                icon: 'fa-remove',
-                disabled: function (key, opt) {
-                    const gclData = SpreadJsObj.getSelectObject(ancGclSheet);
-                    return !gclData;
+            items: {
+                'insert': {
+                    name: '插入',
+                    icon: 'fa-plus',
+                    disabled: function (key, opt) {
+                        const node = SpreadJsObj.getSelectObject(ledgerSheet);
+                        return !node || !node.b_code || (node.children && node.children.length > 0);
+                    },
+                    callback: function (key, opt) {
+                        ancGclObj.baseOpr('insert');
+                    }
                 },
-                callback: function (key, opt) {
-                    ancGclObj.baseOpr('delete');
-                }
-            },
-            'down-move': {
-                name: '下移',
-                icon: 'fa-arrow-down',
-                disabled: function(key, opt) {
-                    const sel = ancGclSheet.getSelections()[0];
-                    const row = sel ? sel.row : -1;
-                    const first = ancGclSheet.zh_data[row];
-                    const next = ancGclSheet.zh_data[sel.row + sel.rowCount];
-                    return !first || !next;
+                'delete': {
+                    name: '删除',
+                    icon: 'fa-remove',
+                    disabled: function (key, opt) {
+                        const gclData = SpreadJsObj.getSelectObject(ancGclSheet);
+                        return !gclData;
+                    },
+                    callback: function (key, opt) {
+                        ancGclObj.baseOpr('delete');
+                    }
                 },
-                callback: function(key, opt) {
-                    ancGclObj.baseOpr('down-move');
-                }
-            },
-            'up-move': {
-                name: '上移',
-                icon: 'fa-arrow-up',
-                disabled: function(key, opt) {
-                    const sel = ancGclSheet.getSelections()[0];
-                    const row = sel ? sel.row : -1;
-                    const first = ancGclSheet.zh_data[row];
-                    const preNode = ancGclSheet.zh_data[row - 1];
-                    return !first || !preNode;
+                'down-move': {
+                    name: '下移',
+                    icon: 'fa-arrow-down',
+                    disabled: function(key, opt) {
+                        const sel = ancGclSheet.getSelections()[0];
+                        const row = sel ? sel.row : -1;
+                        const first = ancGclSheet.zh_data[row];
+                        const next = ancGclSheet.zh_data[sel.row + sel.rowCount];
+                        return !first || !next;
+                    },
+                    callback: function(key, opt) {
+                        ancGclObj.baseOpr('down-move');
+                    }
                 },
-                callback: function(key, opt) {
-                    ancGclObj.baseOpr('up-move');
-                }
-            },
-        }
-    });
+                'up-move': {
+                    name: '上移',
+                    icon: 'fa-arrow-up',
+                    disabled: function(key, opt) {
+                        const sel = ancGclSheet.getSelections()[0];
+                        const row = sel ? sel.row : -1;
+                        const first = ancGclSheet.zh_data[row];
+                        const preNode = ancGclSheet.zh_data[row - 1];
+                        return !first || !preNode;
+                    },
+                    callback: function(key, opt) {
+                        ancGclObj.baseOpr('up-move');
+                    }
+                },
+            }
+        });
+    }
     $('#filter-anc-gcl').change(function() {
         if (this.checked) {
             const condition = {};