Browse Source

Merge branch 'master' of http://192.168.1.41:3000/maixinrong/Calculation

TonyKang 5 years ago
parent
commit
abca1a9fbc
5 changed files with 119 additions and 11 deletions
  1. 3 0
      app/public/js/change_detail.js
  2. 94 8
      app/public/js/change_set.js
  3. 18 0
      app/view/change/info.ejs
  4. 3 3
      config/config.default.js
  5. 1 0
      package.json

+ 3 - 0
app/public/js/change_detail.js

@@ -38,6 +38,9 @@ $(document).ready(() => {
         $('.show_title').hide();
         $('#'+ tab +'_title').show();
         if (tab === 'bills' && $('#bills').hasClass('first-bill-pane')) {
+            if (table) {
+                table.destroy();
+            }
             table = $('.table-list').removeAttr('width').DataTable(billsTable);
             $('#bills').removeClass('first-bill-pane');
         }

+ 94 - 8
app/public/js/change_set.js

@@ -46,7 +46,7 @@ $(document).ready(() => {
     for (const ggd in gclGatherData) {
         gclGatherData[ggd].code = gclGatherData[ggd].b_code;
     }
-    // console.log(gclGatherData);
+    console.log(gclGatherData);
     // 数组去重
     for (const db of gclGatherData) {
         const exist_index = dealBillList.findIndex(function (item) {
@@ -57,6 +57,7 @@ $(document).ready(() => {
         }
     }
     const changeListData = gclGatherData.concat(dealBillList).sort(sortByCode);
+    console.log(changeListData);
     // 先加载台账数据
     let listHtml = '';
     let list_index = 1;
@@ -217,6 +218,7 @@ $(document).ready(() => {
                 $('.title-main').removeClass('bg-warning');
                 $('#back-change-list').val($('#change-list').val());
                 $('#back-change-whitelist').val($('#change-whitelist').val());
+                back_changeInfo = Object.assign({}, changeInfo);
             } else {
                 toastr.error(result.msg);
             }
@@ -227,12 +229,19 @@ $(document).ready(() => {
     $('#cancel_change').on('click', function () {
         $('#show-save-btn').hide();
         $('.title-main').removeClass('bg-warning');
-        $('#change-list').val($('#back-change-list').val());
-        $('#change-whitelist').val($('#back-change-whitelist').val());
-        tableDataRemake(changeListData);
-        // 重新绘制table
-        maketablelist();
-
+        if (!isObjEqual(changeInfo, back_changeInfo)) {
+            changeFormRemake();
+        }
+        if ($('#change-list').val() !== $('#back-change-list').val() ||  $('#change-whitelist').val !== $('#back-change-whitelist').val()) {
+            $('#change-list').val($('#back-change-list').val());
+            $('#change-whitelist').val($('#back-change-whitelist').val());
+            tableDataRemake(changeListData);
+            // 重新绘制table
+            maketablelist();
+            if(!$('#bills').hasClass('first-bill-pane') && !$('a[aria-controls="bills"]').hasClass('active')) {
+                $('#bills').addClass('first-bill-pane');
+            }
+        }
         toastr.success('已还原到上次保存状态');
     });
 
@@ -545,6 +554,32 @@ $(document).ready(() => {
        $('input[name="code"]').val(code);
     });
 
+    // 记录变更信息操作
+    $('body').on('valuechange', '#change_form input[type="text"]', function (e, previous) {
+        changeInfo[$(this).attr('name')] = $(this).val();
+        judgeChange();
+    });
+    $('body').on('valuechange', '#change_form textarea', function (e, previous) {
+        changeInfo[$(this).attr('name')] = $(this).val();
+        judgeChange();
+    });
+    $('body').on('change', '#change_form select', function (e, previous) {
+        changeInfo[$(this).attr('name')] = $(this).val();
+        judgeChange();
+    });
+    $('body').on('click', '#change_form input[type="radio"]', function (e, previous) {
+        changeInfo[$(this).attr('name')] = $(this).val();
+        judgeChange();
+    });
+    $('body').on('click', '#change_form input[type="checkbox"]', function (e, previous) {
+        const typecheck = [];
+        $.each($('#change_form input[name="type[]"]:checked'), function () {
+            typecheck.push($(this).val());
+        });
+        changeInfo.type = typecheck.join(',');
+        judgeChange();
+    });
+
 });
 
 function tableDataRemake(changeListData) {
@@ -554,11 +589,19 @@ function tableDataRemake(changeListData) {
     $('#code-list').html('');
     // 根据已添加的清单显示
     const changeList = $('#change-list').val().split('^_^');
-    console.log(changeList);
     if (changeList.length > 0 && changeList[0]) {
         for (const cl of changeList) {
             const clinfo = cl.split(';');
+            // console.log(clinfo);
             const listinfo = changeListData[clinfo[8] - 1];
+            // const listinfo = changeListData.find(function (item) {
+            //     return item.b_code === clinfo[0] && item.name === clinfo[1] && item.unit_price === parseFloat(clinfo[4])
+            // });
+            // if (listinfo === undefined) {
+            //     toastr.warning('台账清单列表已不存在'+ clinfo[0] +',故删除之');
+            //     continue;
+            // }
+            // console.log(listinfo);
             $('#table-list-select tr[data-index="'+ clinfo[8] +'"]').addClass('table-success');
             let pushbwmx = '0;0';
             if (listinfo.leafXmjs !== undefined) {
@@ -581,6 +624,30 @@ function tableDataRemake(changeListData) {
     }
 }
 
+function changeFormRemake() {
+    changeInfo = Object.assign({}, back_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);
+    $('#change_form input[name="org_name"]').val(changeInfo.org_name);
+    $('#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 select[name="type"]').val(changeInfo.type);
+    $('#change_form select[name="class"]').val(changeInfo.class);
+    $('#change_form select[name="quality"]').val(changeInfo.quality);
+    $('#change_form select[name="company"]').val(changeInfo.company);
+    $('#change_form input[name="charge"][value="'+ changeInfo.charge +'"]').prop('checked', true);
+    $('#change_form input[name="type[]"]').prop('checked', false);
+    const typecheck = changeInfo.type.split(',');
+    for (const type of typecheck) {
+        $('#change_form input[name="type[]"][value="'+ type +'"]').prop('checked', true);
+    }
+}
+
 //判断元素是否在数组中,相当于php的in_array();
 function in_array(arr, obj) {
     let i = arr.length;
@@ -794,6 +861,10 @@ function judgeChange() {
     if ($('#change-whitelist').val() !== $('#back-change-whitelist').val()) {
         change = true;
     }
+    console.log(changeInfo, back_changeInfo);
+    if (!isObjEqual(changeInfo, back_changeInfo)) {
+        change = true;
+    }
     if (change) {
         $('#show-save-btn').show();
         $('.title-main').addClass('bg-warning');
@@ -802,3 +873,18 @@ function judgeChange() {
         $('.title-main').removeClass('bg-warning');
     }
 }
+
+function isObjEqual(o1,o2){
+    var props1 = Object.getOwnPropertyNames(o1);
+    var props2 = Object.getOwnPropertyNames(o2);
+    if (props1.length != props2.length) {
+        return false;
+    }
+    for (var i = 0,max = props1.length; i < max; i++) {
+        var propName = props1[i];
+        if (o1[propName] !== o2[propName]) {
+            return false;
+        }
+    }
+    return true;
+}

+ 18 - 0
app/view/change/info.ejs

@@ -759,6 +759,24 @@
     const ledger = JSON.parse('<%- JSON.stringify(ledger) %>');
     const pos = JSON.parse('<%- JSON.stringify(pos) %>');
     const dealBillList = JSON.parse('<%- JSON.stringify(dealBillList) %>');
+    let back_changeInfo = {
+        code: '<%- change.code %>',
+        name: '<%- change.name %>',
+        peg: '<%- change.peg %>',
+        org_name: '<%- change.org_name %>',
+        org_code: '<%- change.org_code %>',
+        new_name: '<%- change.new_name %>',
+        new_code: '<%- change.new_code %>',
+        content: '<%- change.content %>',
+        basis: '<%- change.basis %>',
+        memo: '<%- change.memo %>',
+        type: '<%- change.type %>',
+        class: '<%- change.class %>',
+        quality: '<%- change.quality %>',
+        company: '<%- change.company %>',
+        charge: '<%- change.charge %>',
+    };
+    let changeInfo = Object.assign({}, back_changeInfo);
 </script>
 <script src="/public/js/decimal.min.js"></script>
 <script src="/public/js/zh_calc.js"></script>

+ 3 - 3
config/config.default.js

@@ -12,9 +12,9 @@ module.exports = appInfo => {
             // 端口号
             port: '3306',
             // 用户名
-            user: 'root',
+            user: 'smartcost',
             // 密码
-            password: 'smartcost',
+            password: 'zongheng_@)!(_jlzf',
             // 数据库名
             database: 'calculation',
         },
@@ -31,7 +31,7 @@ module.exports = appInfo => {
         client: {
             host: '127.0.0.1',
             port: '6379',
-            password: 'test',
+            password: 'zongheng_@)!(_jlzf',
             db: '0',
         },
         agent: true,

+ 1 - 0
package.json

@@ -68,6 +68,7 @@
     "test-local": "set EGG_SERVER_ENV=local&& egg-bin test",
     "test-qa": "set EGG_SERVER_ENV=qa&&egg-bin test",
     "test-auto": "set EGG_SERVER_ENV=autotest&&egg-bin test",
+    "dev-docker": "egg-scripts start --port 7005",
     "cov": "egg-bin cov",
     "lint": "eslint .",
     "ci": "npm run lint && npm run cov",