浏览代码

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

vian 1 年之前
父节点
当前提交
483e0d08d9
共有 2 个文件被更改,包括 46 次插入7 次删除
  1. 1 0
      modules/all_models/stdBills_bills.js
  2. 45 7
      web/maintain/bills_lib/html/qingdan.html

+ 1 - 0
modules/all_models/stdBills_bills.js

@@ -27,6 +27,7 @@ const stdBills_bills = new Schema({
     quantityIndexUnit: String,//工程量指标单位
     quantityIndexCoe: Number,//单位转换系数
     kind: Number, // 清单类型
+    erratumRecord: String, // 勘误记录
     deleted: Boolean
 },
     { versionKey: false }

+ 45 - 7
web/maintain/bills_lib/html/qingdan.html

@@ -69,12 +69,12 @@
                 </div>
             </div>
             <div class="main-side col-lg-5 p-0">
-              <div class="container-fluid">
-                  <div  style="width:50%; height: 100%; float: left;">
+              <div class="container-fluid" style="overflow: auto; height: 100%">
+                  <div  style="width:50%; height: 330px; float: left;">
                       <h5>工作内容</h5>
                       <div id="spreadJobs" class="ovf-hidden" style="width:97%; height: 300px;"></div>
                   </div>
-                  <div  style="width:50%; height: 100%; float: left;">
+                  <div  style="width:50%; height: 330px; float: left;">
                       <h5>项目特征</h5>
                       <div id="spreadItems" class="ovf-hidden" style="width: 97%; height: 300px;"></div>
                   </div>
@@ -84,10 +84,14 @@
                       <textarea id="exampleTextarea" name="editor" class="form-control" rows="8"></textarea>
                   </div>-->
                   <div class="form-group">
-                      <a class="pull-right" href="javacript:void(0);" data-toggle="modal" data-target="#help" >html怎么写?</a>
-                      <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>
+                    <a class="pull-right" href="javacript:void(0);" data-toggle="modal" data-target="#help" >html怎么写?</a>
+                    <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;">
@@ -366,6 +370,13 @@
         readOnly: locked
     });
     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 %>');
     // 清单类型下拉
@@ -525,6 +536,8 @@
         bindBillsRangeChanged(controller, billsSpread.getActiveSheet(), setting);
         //补注内容改变
         rechargeChange(controller);
+        // 勘误错误改变
+        erratumRecordChange(controller)
         //焦点控制
         switchFcs(controller, controller.sheet, billsSpread, jobsSheet, itemsSheet);
         //jobs
@@ -703,6 +716,27 @@
         });*/
     }
 
+
+    // 勘误记录
+    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){
@@ -769,6 +803,8 @@
                 codeEditor.setValue('');
                 //$('#exampleTextarea').val('');
             }
+            const erratumRecord = controller.tree.selected.data.erratumRecord || '';
+            erratumRecordEditor.setValue(erratumRecord);
         }
     }
 
@@ -781,6 +817,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);