Prechádzať zdrojové kódy

feat: 清单规则编辑器,新增“勘误记录”

vian 1 rok pred
rodič
commit
ddd727f447

+ 1 - 0
modules/all_models/stdBills_bills.js

@@ -32,6 +32,7 @@ const stdBills_bills = new Schema({
     sectionInfo: Schema.Types.Mixed,
     deleted: Boolean,
     kind: Number, // 前台里(重构、微前端)BRType: 1: 大项费用、 8:XMJ 4:清单
+    erratumRecord: String, // 勘误记录
     unitPrice: Number, // 单价
 },
     { versionKey: false }

+ 38 - 1
web/maintain/bills_lib/html/qingdan.html

@@ -95,6 +95,10 @@
                       <a trigger="billsRecharge" class="pull-right mr-3 uploadImgTrigger lock-btn-control" href="javacript:void(0);" data-toggle="modal" data-target="#uploadimg" ><i class="fa fa-image"></i>上传图片</a>
                       <label for="exampleTextarea">补注:</label>
                       <textarea class="form-control" id="exampleTextarea" rows="8"></textarea>
+                      <div>
+                        <label for="erratumRecordText">勘误记录:</label>
+                        <textarea class="form-control lock-btn-control" id="erratumRecordText" rows="8" style="height: calc(100% - 38px);"></textarea>
+                    </div>
                   </div>
                <!-- <div class="row">
                   <div class="col ovf-hidden" style="width:50%; height: 100%; float: left;">
@@ -372,7 +376,14 @@
         theme:"material",
         readOnly: locked
     });
-    codeEditor.setSize('auto','350px');
+    codeEditor.setSize('auto', '350px');
+    const erratumRecordEditor = CodeMirror.fromTextArea(document.getElementById("erratumRecordText"), {
+        mode: "text/html",
+        lineNumbers: true,
+        theme:"material",
+        readOnly: locked
+    });
+    erratumRecordEditor.setSize('auto','350px');
     autoFlashHeight();
     let BillsFixedFlagList = JSON.parse('<%- BillsFixedFlagList %>');
     let userAccount = '<%= userAccount %>';
@@ -546,6 +557,8 @@
         bindBillsRangeChanged(controller, billsSpread.getActiveSheet(), setting);
         //补注内容改变
         rechargeChange(controller);//
+        // 勘误错误改变
+        erratumRecordChange(controller)
         //焦点控制
         switchFcs(controller, controller.sheet, billsSpread, jobsSheet, designsSheet, itemsSheet);
         //jobs
@@ -775,6 +788,26 @@
         });*/
     }
 
+    // 勘误记录
+    function erratumRecordChange(controller){
+        erratumRecordEditor.on('change', async function () {
+            console.log('1111');
+            const node = controller.tree.selected;
+            const erratumRecord = erratumRecordEditor.getValue();
+            if (!node || erratumRecord === node.data.erratumRecord) {
+                return;
+            }
+            try {
+                const updateId = node.getID();
+                await ajaxPost('/stdBillsEditor/updateBills', { billsLibId, updateId, field: 'erratumRecord', data: erratumRecord });
+                node.data.erratumRecord = erratumRecord;
+            } catch(error) {
+                alert(error.message);
+                erratumRecordEditor.setValue(node.data.erratumRecord || '');
+            }
+        });
+    }
+
     function jobOperation(controller, jobsSheet, callback){
         mainAjax.getMaxNumber(billsLibId, 'jobs', function(result){
             if(result.length === 0){
@@ -864,6 +897,8 @@
                 codeEditor.setValue('');
                 //$('#exampleTextarea').val('');
             }
+            const erratumRecord = controller.tree.selected.data.erratumRecord || '';
+            erratumRecordEditor.setValue(erratumRecord);
         }
     }
 
@@ -876,6 +911,8 @@
                 //rechargeArea
                 const recharge = controller.tree.selected.data.recharge || '';
                 codeEditor.setValue(recharge);
+                const erratumRecord = controller.tree.selected.data.erratumRecord || '';
+                erratumRecordEditor.setValue(erratumRecord);
                 //$('#exampleTextarea').val(controller.tree.selected.data.recharge);
                 if(field === 'jobs'){
                     tools.clearData(sheet);