Преглед изворни кода

变更令号规则添加连接符功能

laiguoran пре 6 година
родитељ
комит
ba7cbed85e

+ 15 - 5
app/const/code_rule.js

@@ -28,17 +28,27 @@ const measure = {
         addNo: 4,
     },
     ruleString: [],
+    connectorType: {
+        dash: 1,
+        underscore: 2,
+        nothing: 3,
+    },
+    connectorString: [],
 };
 measure.ruleString[measure.ruleType.tenderName] = '标段名称';
 measure.ruleString[measure.ruleType.text] = '文本';
 measure.ruleString[measure.ruleType.inDate] = '当前年月';
 measure.ruleString[measure.ruleType.addNo] = '自增编号';
 
+measure.connectorString[measure.connectorType.dash] = '-';
+measure.connectorString[measure.connectorType.underscore] = '_';
+measure.connectorString[measure.connectorType.nothing] = '无';
+
 measure.defaultRule = [
-    {ruleType: measure.ruleType.tenderName},
-    {ruleType: measure.ruleType.text, text: 'WJQR1'},
-    {ruleType: measure.ruleType.inDate},
-    {ruleType: measure.ruleType.addNo, format: 3, start: 1},
+    { ruleType: measure.ruleType.tenderName },
+    { ruleType: measure.ruleType.text, text: 'WJQR1' },
+    { ruleType: measure.ruleType.inDate },
+    { ruleType: measure.ruleType.addNo, format: 3, start: 1 },
 ];
 
 module.exports = {
@@ -46,4 +56,4 @@ module.exports = {
     ruleField,
     ruleString,
     measure,
-};
+};

+ 1 - 1
app/controller/change_controller.js

@@ -191,7 +191,7 @@ module.exports = app => {
                         default: break;
                     }
                 }
-                responseData.data = code.join('');
+                responseData.data = code.join(tenderData.c_connector !== null && tenderData.c_connector !== 3 ? codeRuleConst.measure.connectorString[tenderData.c_connector] : '');
             } catch (err) {
                 responseData.err = 1;
                 responseData.msg = err;

+ 2 - 1
app/controller/tender_controller.js

@@ -310,7 +310,7 @@ module.exports = app => {
                     throw '当前未打开标段';
                 }
                 const data = JSON.parse(ctx.request.body.data);
-                if (!data.rule || !codeRuleConst.ruleField[data.rule]) {
+                if (!data.rule || !data.connector || !codeRuleConst.ruleField[data.rule]) {
                     throw '参数错误';
                 }
 
@@ -318,6 +318,7 @@ module.exports = app => {
                     id: tenderId,
                 };
                 updateData[codeRuleConst.ruleField[data.rule]] = data.data;
+                updateData.c_connector = data.connector;
 
                 const result = await ctx.service.tender.db.update(ctx.service.tender.tableName, updateData);
                 if (result.affectedRows !== 1) {

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

@@ -20,7 +20,7 @@ class codeRuleSet {
     constructor (obj) {
         this.body = obj;
         // 切换规则组件类型
-        $('select', obj).change(function () {
+        $('.rule-change', obj).change(function () {
             const codeType = this.selectedIndex;
             if (codeType === ruleConst.ruleType.addNo) {
                 $('#format', obj).show();
@@ -44,9 +44,25 @@ class codeRuleSet {
             const s = '0000000000' + parseInt($('#text>input', obj).val());
             $('#text>input', obj).val(s.substr(s.length - $(this).val()));
         });
+
+        // 修改连接符
+        $('.connector-change', obj).change(function () {
+            const connectorType = this.options[this.selectedIndex].text;
+            const rules = $('span>span', obj), ruleText = [];
+            for (const r of rules) {
+                ruleText.push($.trim(r.innerText));
+            }
+            if (connectorType === '无') {
+                $('#preview', obj).text(ruleText.join(''));
+            } else {
+                $('#preview', obj).text(ruleText.join(connectorType));
+            }
+            connectorRule = this.options[this.selectedIndex].value;
+        });
+
         // 新增规则组件
         $('#addRule', obj).click(function () {
-            const codeType = $('select', obj)[0].selectedIndex;
+            const codeType = $('select', obj)[1].selectedIndex;
             const rule = {rule_type: codeType}, html = [];
             let preview;
             switch (codeType) {
@@ -55,7 +71,7 @@ class codeRuleSet {
                     break;
                 }
                 case ruleConst.ruleType.text: {
-                    rule.text =  $('#text>input', obj).val();
+                    rule.text = $('#text>input', obj).val();
                     preview = rule.text;
                     break;
                 }
@@ -80,7 +96,9 @@ class codeRuleSet {
             html.push('</span>');
             const part = $('#ruleParts', obj).append(html.join(''));
             // 更新规则预览
-            $('#preview', obj).text($('#preview', obj).text() + preview);
+            const connectorType = connectorRule !== '' && parseInt(connectorRule) !== 3 ? ruleConst.connectorString[connectorRule] : '';
+            console.log(connectorRule);
+            $('#preview', obj).text($.trim($('#preview', obj).text()) + connectorType + preview);
 
             $('a', part).bind('click', function () {
                 const index = $('a', obj).index(this);
@@ -88,9 +106,10 @@ class codeRuleSet {
                 $(this).parent().remove();
                 const rules = $('span>span', obj), ruleText = [];
                 for (const r of rules) {
-                    ruleText.push(r.innerText);
+                    ruleText.push($.trim(r.innerText));
                 }
-                $('#preview', obj).text(ruleText.join(''));
+                const connectorType = connectorRule !== '' && parseInt(connectorRule) !== 3 ? ruleConst.connectorString[connectorRule] : '';
+                $('#preview', obj).text(ruleText.join(connectorType));
             });
         });
         // 删除规则组件
@@ -100,10 +119,12 @@ class codeRuleSet {
             $(this).parent().remove();
             const rules = $('span>span', obj), ruleText = [];
             for (const r of rules) {
-                console.log(r.innerText + ':1');
-                ruleText.push(r.innerText);
+                ruleText.push($.trim(r.innerText));
             }
-            $('#preview', obj).text('当前规则:' + ruleText.join(''));
+            // const connectorType = $('.connector-change', obj).val() !== null || $('.connector-change', obj).val() === '3' ? $('.connector-change option:selected', obj).text() : '';
+            const connectorType = connectorRule !== '' && parseInt(connectorRule) !== 3 ? ruleConst.connectorString[connectorRule] : '';
+            console.log(connectorType);
+            $('#preview', obj).text(ruleText.join(connectorType));
         });
     }
 }
@@ -117,7 +138,9 @@ $(document).ready(() => {
         $('#setRule', '#first').bind('click', function () {
             const data = {
                 rule: ruleType,
+                connector: connectorRule,
                 data: JSON.stringify(codeRule),
+
             };
             postData('/tender/rule', data, function () {
                 $('#first').modal('hide');
@@ -134,6 +157,7 @@ $(document).ready(() => {
     $('#setRule', '#setting').bind('click', function () {
         const data = {
             rule: ruleType,
+            connector: connectorRule,
             data: JSON.stringify(codeRule),
         };
         postData('/tender/rule', data, function () {
@@ -180,4 +204,4 @@ $(document).ready(() => {
        window.location.href = url;
     });
 
-});
+});

+ 29 - 10
app/view/change/modal.ejs

@@ -14,7 +14,7 @@
                         <% for (const rule of codeRule) { %>
                         <% preview.push(rule.preview); %>
                         <% } %>
-                        <%- preview.join(''); %>
+                        <%- preview.join(tender.c_connector !== null && tender.c_connector !== '3' ? ruleConst.connectorString[tender.c_connector] : ''); %>
                         <% } %>
                     </span>
                 </h5>
@@ -30,9 +30,18 @@
                     <% } %>
                     <% } %>
                 </h5>
-                <h5>添加新规则组件</h5>
+                <h5 class="my-3">连接符</h5>
                 <div class="form-group">
-                    <select class="form-control">
+                    <select class="form-control connector-change">
+                        <option disabled selected>请选择</option>
+                        <% for (const index in ruleConst.connectorString) { %>
+                            <option value="<%- index %>"><%- ruleConst.connectorString[index] %></option>
+                        <% } %>
+                    </select>
+                </div>
+                <h5 class="my-3">添加新规则组件</h5>
+                <div class="form-group">
+                    <select class="form-control rule-change">
                         <option disabled selected>请选择组件</option>
                         <% for (const index in ruleConst.ruleString) { %>
                         <option value="<%- index %>"><%- ruleConst.ruleString[index] %></option>
@@ -47,7 +56,7 @@
                     <label>起始编号</label>
                     <input class="form-control" value="001" type="text">
                 </div>
-                <button class="btn btn-primary" id="addRule">添加组件</button>
+                <button class="btn btn-outline-primary" id="addRule">添加组件</button>
             </div>
             <div class="modal-footer">
                 <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
@@ -109,14 +118,14 @@
                                     <% for (const rule of codeRule) { %>
                                         <% preview.push(rule.preview); %>
                                     <% } %>
-                                    <%- preview.join(''); %>
+                                    <%- preview.join(tender.c_connector !== null && tender.c_connector !== '3' ? ruleConst.connectorString[tender.c_connector] : ''); %>
                                 <% } %>
                             </span>
                         </h5>
                         <h5 id="ruleParts">
                             <% if (codeRule && codeRule instanceof Array) { %>
                                 <% for (const rule of codeRule) { %>
-                                <span class="badge badge-light" title="<%- ruleConst.ruleString[rule.rule_type]%>">
+                                <span class="badge badge-light" title="<%- ruleConst.ruleString[rule.rule_type] %>">
                                     <span>
                                         <%- rule.preview %>
                                     </span>
@@ -125,9 +134,18 @@
                                 <% } %>
                             <% } %>
                         </h5>
-                        <h5>添加新规则组件</h5>
+                        <h5 class="my-3">连接符</h5>
+                        <div class="form-group">
+                            <select class="form-control connector-change">
+                                <option disabled selected>请选择</option>
+                                <% for (const index in ruleConst.connectorString) { %>
+                                    <option value="<%- index %>" <% if (tender.c_connector !== null && tender.c_connector === parseInt(index)) { %>selected<% } %>><%- ruleConst.connectorString[index] %></option>
+                                <% } %>
+                            </select>
+                        </div>
+                        <h5 class="my-3">添加新规则组件</h5>
                         <div class="form-group">
-                            <select class="form-control">
+                            <select class="form-control rule-change">
                                 <option disabled selected>请选择组件</option>
                                 <% for (const index in ruleConst.ruleString) { %>
                                 <option value="<%- index %>"><%- ruleConst.ruleString[index] %></option>
@@ -142,7 +160,7 @@
                             <label>起始编号</label>
                             <input class="form-control" value="001" type="text">
                         </div>
-                        <button class="btn btn-primary" id="addRule">添加组件</button>
+                        <button class="btn btn-outline-primary" id="addRule">添加组件</button>
                     </div>
                 </div>
             </div>
@@ -157,5 +175,6 @@
     const ruleType = <%- ruleType %>;
     const ruleConst = JSON.parse('<%- JSON.stringify(ruleConst) %>');
     let codeRule = JSON.parse('<%- JSON.stringify(codeRule) %>');
+    let connectorRule = '<%- tender.c_connector %>';
 </script>
-<script src="/public/js/moment/moment.min.js"></script>
+<script src="/public/js/moment/moment.min.js"></script>