Selaa lähdekoodia

台账修订、计量台账,右键合并起讫桩号

MaiXinRong 5 vuotta sitten
vanhempi
commit
08380a6508

+ 4 - 0
app/public/js/ledger.js

@@ -1539,6 +1539,10 @@ $(document).ready(function() {
                 },
                 'merge-peg': {
                     name: '合并起讫桩号',
+                    disabled: function (key, opt) {
+                        const node = SpreadJsObj.getSelectObject(ledgerSpread.getActiveSheet());
+                        return _.isNil(node) || _.isNil(node.b_code) || node.b_code === '';
+                    },
                     callback: function (key, opt) {
                         mergePeg.show();
                     }

+ 28 - 0
app/public/js/revise.js

@@ -1192,6 +1192,22 @@ $(document).ready(() => {
                 $('#pos-expr').val('').attr('readOnly', true);
             }
         },
+        addPegs: function (pegs) {
+            if (!pegs || pegs.length <= 0) return;
+            const node = SpreadJsObj.getSelectObject(billsSheet);
+            if (!node) return;
+
+            const sheet = posSpread.getActiveSheet();
+            const sortData = sheet.zh_data || [];
+            let order = sortData.length > 0 ? sortData[sortData.length - 1].porder + 1 : 1;
+            pegs.forEach(function (p) {p.porder = ++order; p.lid = node.id});
+
+            postData(window.location.pathname + '/update', {postType: 'pos', posPostType: 'paste', postData: pegs}, function (result) {
+                pos.updateDatas(result.pos);
+                posSpreadObj.loadCurPosData();
+                billsTreeSpreadObj.refreshOperationValid(billsSheet);
+            });
+        }
     };
     posSpreadObj.loadCurPosData();
     SpreadJsObj.resetTopAndSelect(posSheet);
@@ -1240,6 +1256,8 @@ $(document).ready(() => {
         posSpread.bind(spreadNS.Events.ClipboardPasting, posSpreadObj.clipboardPasting);
         posSpread.bind(spreadNS.Events.ClipboardPasted, posSpreadObj.clipboardPasted);
         SpreadJsObj.addDeleteBind(posSpread, posSpreadObj.deletePress);
+
+        const mergePeg = NewMergePeg({ callback: posSpreadObj.addPegs });
         $.contextMenu({
             selector: '#pos-spread',
             build: function ($trigger, e) {
@@ -1261,6 +1279,16 @@ $(document).ready(() => {
                     callback: function (key, opt) {
                         posSpreadObj.deletePos(posSheet);
                     }
+                },
+                'merge-peg': {
+                    name: '合并起讫桩号',
+                    disabled: function (key, opt) {
+                        const node = SpreadJsObj.getSelectObject(billsSheet);
+                        return _.isNil(node) || _.isNil(node.b_code) || node.b_code === '';
+                    },
+                    callback: function (key, opt) {
+                        mergePeg.show();
+                    }
                 }
             }
 

+ 4 - 3
app/public/js/shares/merge_peg.js

@@ -1,6 +1,7 @@
 'use strict';
 
 /**
+ * 配合/view/shares/merge_peg_modal.ejs
  * 依赖jQuery, lodash, spreadjs,请放在spreadjs_zh.js之后
  *
  * @author Mai
@@ -32,8 +33,8 @@ const NewMergePeg = function (setting) {
     sheet.setColumnWidth(0, 30, spreadNS.SheetArea.rowHeader);
     const spreadObj = {
         mergePeg(row) {
-            const withPos = $('#mp-with-pos')[0].checked
-            const sprChar = '~', withSprChar = $('#mp-with-spr-char')[0].checked;
+            const withPos = $('#mp-with-pos')[0].checked;
+            const withSprChar = $('#mp-with-spr-char')[0].checked, sprChar = $('#mp-spr-char').val();
             const mergeRow = function (row) {
                 const startPeg = _.trim(sheet.getText(row, spCol));
                 const endPeg = _.trim(sheet.getText(row, epCol));
@@ -134,7 +135,7 @@ const NewMergePeg = function (setting) {
         spreadObj.mergePeg();
     });
     // 选择连接符
-    $('select', '#merge-peg').change(() => {spreadObj.mergePeg()});
+    $('#mp-spr-char').change(() => {spreadObj.mergePeg()});
     // 初始化窗口
     $('#merge-peg').on('show.bs.modal', function () {
         sheet.clear(0, 0, sheet.getRowCount(), sheet.getColumnCount(),

+ 30 - 8
app/public/js/stage.js

@@ -972,7 +972,7 @@ $(document).ready(() => {
         loadExprToInput(sheet) {
             const sel = sheet.getSelections()[0];
             const col = sheet.zh_setting.cols[sel.col], cell = sheet.getCell(sel.row, sel.col);
-            if (col.type === 'Number') {
+            if (col && col.type === 'Number') {
                 const data = SpreadJsObj.getSelectObject(sheet);
                 if (data) {
                     $('#pos-expr').val(data[col.field]).attr('field', col.field).attr('org', data[col.field])
@@ -1293,6 +1293,23 @@ $(document).ready(() => {
         },
         selectionChanged: function (e, info) {
             stagePosSpreadObj.loadExprToInput(info.sheet);
+        },
+        addPegs: function (pegs) {
+            if (!pegs || pegs.length <= 0) return;
+            const node = SpreadJsObj.getSelectObject(slSpread.getActiveSheet());
+            if (!node) return;
+
+            const sheet = spSpread.getActiveSheet();
+            const sortData = sheet.zh_data || [];
+            let order = sortData.length > 0 ? sortData[sortData.length - 1].porder + 1 : 1;
+            pegs.forEach(function (p) {p.porder = ++order; p.lid = node.id});
+
+            postData(window.location.pathname + '/update', {pos: {updateType: 'add', updateData: pegs} }, function (result) {
+                if (result.pos) {
+                    stagePos.updateDatas(result.pos.pos);
+                }
+                stagePosSpreadObj.loadCurPosData();
+            });
         }
     };
     // 加载上下窗口resizer
@@ -1367,6 +1384,7 @@ $(document).ready(() => {
         });
     }
     if (!checkTzMeasureType()) {
+        const mergePeg = NewMergePeg({ callback: stagePosSpreadObj.addPegs});
         $.contextMenu({
             selector: '#stage-pos',
             build: function ($trigger, e) {
@@ -1406,17 +1424,21 @@ $(document).ready(() => {
                     callback: function (key, opt) {
                         stagePosSpreadObj.deletePos(spSpread.getActiveSheet());
                     }
+                },
+                'merge-peg': {
+                    name: '合并起讫桩号',
+                    disabled: function (key, opt) {
+                        const node = SpreadJsObj.getSelectObject(slSpread.getActiveSheet());
+                        return _.isNil(node) || _.isNil(node.b_code) || node.b_code === '';
+                    },
+                    callback: function (key, opt) {
+                        mergePeg.show();
+                    }
                 }
             }
         })
     } else {
-        $.contextMenu({
-            selector: '#stage-pos',
-            build: function ($trigger, e) {
-                const target = SpreadJsObj.safeRightClickSelection($trigger, e, spSpread);
-                return target.hitTestType === spreadNS.SheetArea.viewport || target.hitTestType === spreadNS.SheetArea.rowHeader;
-            }
-        })
+        SpreadJsObj.forbiddenSpreadContextMenu('#stage-pos', spSpread);
     }
     $.subMenu({
         menu: '#sub-menu', miniMenu: '#sub-mini-menu', miniMenuList: '#mini-menu-list',

+ 1 - 0
app/view/revise/info_modal.ejs

@@ -476,6 +476,7 @@
     </div>
 </div>
 <% } %>
+<% include ../shares/merge_peg_modal.ejs %>
 <script>
     <% if (ctx.session.sessionUser.accountId === revise.uid && (revise.status === audit.status.uncheck || revise.status === audit.status.checkNo)) { %>
     const accountList = JSON.parse('<%- JSON.stringify(accountList) %>');

+ 4 - 4
app/view/shares/merge_peg_modal.ejs

@@ -6,7 +6,7 @@
                 <h5 class="modal-title">合并起讫桩号</h5>
             </div>
             <div class="modal-body">
-                <div class="mb-2">
+                <div class="mb-2" style="height: 25px; line-height: 25px">
                     <div class="d-inline-block mr-3">
                         <div class="form-check">
                             <input class="form-check-input" type="checkbox" value="" id="mp-with-pos">
@@ -15,7 +15,7 @@
                             </label>
                         </div>
                     </div>
-                    <div class="d-inline-block">
+                    <div class="d-inline-block ">
                         <div class="form-check">
                             <input class="form-check-input" type="checkbox" value="" id="mp-with-spr-char">
                             <label class="form-check-label" for="defaultCheck3">
@@ -23,8 +23,8 @@
                             </label>
                         </div>
                     </div>
-                    <div class="d-inline-block" style="display: none;" id="mp-spr-char" style="display: none">
-                        <select class="form-control form-control-sm m-0">
+                    <div class="d-inline-block" >
+                        <select class="form-control form-control-sm m-0" style="display: none;" id="mp-spr-char">
                             <option value="~">~(半角)</option>
                             <option value="-">-(半角)</option>
                             <option value="~">~(全角)</option>

+ 1 - 0
app/view/stage/modal.ejs

@@ -382,3 +382,4 @@
     </div>
 </div>
 <% include ./audit_modal.ejs %>
+<% include ../shares/merge_peg_modal.ejs %>

+ 2 - 0
config/web.js

@@ -204,6 +204,7 @@ const JsFiles = {
                     "/public/js/div_resizer.js",
                     "/public/js/spreadjs_rela/spreadjs_zh.js",
                     "/public/js/ledger_search.js",
+                    "/public/js/shares/merge_peg.js",
                     "/public/js/zh_calc.js",
                     "/public/js/path_tree.js",
                     "/public/js/std_lib.js",
@@ -241,6 +242,7 @@ const JsFiles = {
                     "/public/js/div_resizer.js",
                     "/public/js/msg_box.js",
                     "/public/js/spreadjs_rela/spreadjs_zh.js",
+                    "/public/js/shares/merge_peg.js",
                     "/public/js/zh_calc.js",
                     "/public/js/path_tree.js",
                     "/public/js/stage_im.js",