浏览代码

1.变更令号规则添加合同编号
2.变更详情texterea换行bug修复

laiguoran 5 年之前
父节点
当前提交
30a942712c

+ 3 - 0
app/const/code_rule.js

@@ -22,6 +22,7 @@ ruleString[ruleType.change] = 'change';
 // 中间计量编号规则
 const measure = {
     ruleType: {
+        dealCode: 0,
         tenderName: 1,
         text: 2,
         inDate: 3,
@@ -35,6 +36,7 @@ const measure = {
     },
     connectorString: [],
 };
+measure.ruleString[measure.ruleType.dealCode] = '合同编号';
 measure.ruleString[measure.ruleType.tenderName] = '标段名称';
 measure.ruleString[measure.ruleType.text] = '文本';
 measure.ruleString[measure.ruleType.inDate] = '当前年份';
@@ -45,6 +47,7 @@ measure.connectorString[measure.connectorType.underscore] = '_';
 measure.connectorString[measure.connectorType.nothing] = '无';
 
 measure.defaultRule = [
+    { ruleType: measure.ruleType.dealCode },
     { ruleType: measure.ruleType.tenderName },
     { ruleType: measure.ruleType.text, text: 'WJQR1' },
     { ruleType: measure.ruleType.inDate },

+ 7 - 0
app/controller/change_controller.js

@@ -98,6 +98,9 @@ module.exports = app => {
             const codeRule = tender.c_rule ? JSON.parse(tender.c_rule) : [];
             for (const rule of codeRule) {
                 switch (rule.rule_type) {
+                    case codeRuleConst.measure.ruleType.dealCode:
+                        rule.preview = ctx.tender.info.deal_info.dealCode;
+                        break;
                     case codeRuleConst.measure.ruleType.tenderName:
                         rule.preview = tender.name;
                         break;
@@ -125,6 +128,7 @@ module.exports = app => {
                 filter,
                 status,
                 codeRule,
+                dealCode: ctx.tender.info.deal_info.dealCode,
                 auditConst: audit.flow,
                 changeConst,
                 ruleType: codeRuleConst.ruleType.change,
@@ -174,6 +178,9 @@ module.exports = app => {
                 const code = [];
                 for (const rule of cCodeRule) {
                     switch (rule.rule_type) {
+                        case codeRuleConst.measure.ruleType.dealCode:
+                            code.push(ctx.tender.info.deal_info.dealCode);
+                            break;
                         case codeRuleConst.measure.ruleType.tenderName:
                             code.push(tenderData.name);
                             break;

+ 14 - 0
app/extend/helper.js

@@ -732,6 +732,20 @@ module.exports = {
     },
 
     /**
+     * 替换字符串中的 换行符回车符为换行符<br>
+     * @param str
+     * @returns {*}
+     */
+    replaceRntoBr(str) {
+        // return str
+        //     ? (typeof str === 'string') ? str.replace(/[\r\n]/g, '') : str + ''
+        //     : str;
+        return (str && typeof str === 'string')
+            ? str.replace(/[\r\n]/g, '<br>')
+            : !_.isNil(str) ? str + '' : str;
+    },
+
+    /**
      * 获取 字符串 数组的 mysql 筛选条件
      *
      * @param arr

+ 10 - 2
app/public/js/change.js

@@ -21,7 +21,7 @@ class codeRuleSet {
         this.body = obj;
         // 切换规则组件类型
         $('.rule-change', obj).change(function () {
-            const codeType = this.selectedIndex;
+            const codeType = this.selectedIndex-1;
             if (codeType === ruleConst.ruleType.addNo) {
                 $('#format', obj).show();
                 $('#text', obj).show();
@@ -62,10 +62,18 @@ class codeRuleSet {
 
         // 新增规则组件
         $('#addRule', obj).click(function () {
-            const codeType = $('select', obj)[1].selectedIndex;
+            const codeType = $('select', obj)[1].selectedIndex-1;
             const rule = {rule_type: codeType}, html = [];
             let preview;
             switch (codeType) {
+                case ruleConst.ruleType.dealCode: {
+                    if ($('#dealCode').val() === '') {
+                        toastr.error('当前标段合同编号为空,请选择其他组件。');
+                        return false;
+                    }
+                    preview = $('#dealCode').val();
+                    break;
+                }
                 case ruleConst.ruleType.tenderName: {
                     preview = $('#tenderName').val();
                     break;

+ 9 - 5
app/public/js/change_set.js

@@ -560,7 +560,7 @@ $(document).ready(() => {
         judgeChange();
     });
     $('body').on('valuechange', '#change_form textarea', function (e, previous) {
-        changeInfo[$(this).attr('name')] = $(this).val();
+        changeInfo[$(this).attr('name')] = $(this).val().replace(/[\r\n]/g, '<br><br>');
         judgeChange();
     });
     $('body').on('change', '#change_form select', function (e, previous) {
@@ -626,6 +626,7 @@ function tableDataRemake(changeListData) {
 
 function changeFormRemake() {
     changeInfo = Object.assign({}, back_changeInfo);
+    console.log(changeInfo);
     $('#change_form input[name="code"]').val(changeInfo.code);
     $('#change_form input[name="name"]').val(changeInfo.name);
     $('#change_form input[name="peg"]').val(changeInfo.peg);
@@ -633,9 +634,10 @@ function changeFormRemake() {
     $('#change_form input[name="org_code"]').val(changeInfo.org_code);
     $('#change_form input[name="new_name"]').val(changeInfo.new_name);
     $('#change_form input[name="new_code"]').val(changeInfo.new_code);
-    $('#change_form textarea[name="content"]').val(changeInfo.content);
-    $('#change_form textarea[name="basis"]').val(changeInfo.basis);
-    $('#change_form textarea[name="memo"]').val(changeInfo.memo);
+    $('#change_form textarea[name="content"]').val(changeInfo.content.replace(/<br><br>/g, '\r\n'));
+    $('#change_form textarea[name="basis"]').val(changeInfo.basis.replace(/<br><br>/g, '\r\n'));
+    $('#change_form textarea[name="expr"]').val(changeInfo.expr.replace(/<br><br>/g, '\r\n'));
+    $('#change_form textarea[name="memo"]').val(changeInfo.memo.replace(/<br><br>/g, '\r\n'));
     $('#change_form select[name="type"]').val(changeInfo.type);
     $('#change_form select[name="class"]').val(changeInfo.class);
     $('#change_form select[name="quality"]').val(changeInfo.quality);
@@ -801,7 +803,9 @@ function maketablelist(status){
 
     $('#change-whitelist').val(radionWhiteList.join('^_^'));
 
-    table.destroy();
+    if (table) {
+        table.destroy();
+    }
     $('#list').html(html);
     table = $('#tablelist').removeAttr('width').DataTable({
         columnDefs: [

+ 1 - 0
app/view/change/index.ejs

@@ -25,6 +25,7 @@
     <div class="content-wrap">
         <div class="c-body">
             <input id="tenderName" value="<%= tender.name %>" type="hidden">
+            <input id="dealCode" value="<%= dealCode %>" type="hidden">
             <input id="tenderId" value="<%= tender.id %>" type="hidden">
             <div class="sjs-height-0">
                 <table class="table table-bordered">

+ 4 - 5
app/view/change/info.ejs

@@ -289,8 +289,6 @@
                 <!--保留旧数据回溯-->
                 <input type="hidden" id="back-change-list" value="<%= changeListData %>">
                 <input type="hidden" id="back-change-whitelist" value="<%= changeWhiteListData %>">
-                <!--<input type="hidden" id="change-info" value="">-->
-                <input type="hidden" id="back-change-info" value="<%= JSON.stringify(change) %>">
             </form>
             <% } else { %>
             <div class="row">
@@ -775,9 +773,10 @@
         org_code: '<%- change.org_code %>',
         new_name: '<%- change.new_name %>',
         new_code: '<%- change.new_code %>',
-        content: '<%- change.content %>',
-        basis: '<%- change.basis %>',
-        memo: '<%- change.memo %>',
+        content: '<%- ctx.helper.replaceRntoBr(change.content) %>',
+        basis: '<%- ctx.helper.replaceRntoBr(change.basis) %>',
+        expr: '<%- ctx.helper.replaceRntoBr(change.expr) %>',
+        memo: '<%- ctx.helper.replaceRntoBr(change.memo) %>',
         type: '<%- change.type %>',
         class: '<%- change.class %>',
         quality: '<%- change.quality %>',