From fecf9a8163a5563bc87f60405309eb4750a38504 Mon Sep 17 00:00:00 2001
From: chen.llin <1442464845@qq.comm>
Date: 星期三, 24 十二月 2025 18:15:24 +0800
Subject: [PATCH] 出入库订单历史-增加变更业务时间记录展示

---
 src/main/webapp/static/js/orderPakinLog/order.js |  141 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 138 insertions(+), 3 deletions(-)

diff --git a/src/main/webapp/static/js/orderPakinLog/order.js b/src/main/webapp/static/js/orderPakinLog/order.js
index 0bc0366..99a13a3 100644
--- a/src/main/webapp/static/js/orderPakinLog/order.js
+++ b/src/main/webapp/static/js/orderPakinLog/order.js
@@ -1,7 +1,7 @@
 var insTbCount = 0;
 layui.config({
     base: baseUrl + "/static/layui/lay/modules/"
-}).use(['layer', 'form', 'table', 'util', 'admin', 'laydate'], function () {
+}).use(['layer', 'form', 'table', 'util', 'admin', 'laydate', 'element'], function () {
     var $ = layui.jquery;
     var layer = layui.layer;
     var form = layui.form;
@@ -10,6 +10,7 @@
     var admin = layui.admin;
     var layDate = layui.laydate;
     var laytpl = layui.laytpl;
+    var element = layui.element;
 
     // 娓叉煋鎼滅储妯℃澘
     $.ajax({
@@ -50,7 +51,8 @@
             { align: 'center', title: '鏄庣粏', toolbar: '#tbLook', minWidth: 160, width: 160 },
             { field: 'createTime$', title: '鍒涘缓鏃堕棿', minWidth: 200, width: 200 },
             { field: 'settle$', align: 'center', title: '鐘舵��', templet: '#settleTpl', minWidth: 160, width: 160 },
-            { field: 'memo', align: 'center', title: '澶囨敞', hide: true }
+            { field: 'memo', align: 'center', title: '澶囨敞', hide: true },
+            { align: 'center', title: '鎿嶄綔', toolbar: '#operate', width: 180 }
         ]],
         request: {
             pageName: 'curr',
@@ -92,6 +94,25 @@
             var offset = $a.offset();
             var top = offset.top;
             var left = offset.left;
+            var hasChangeLog = data.hasChangeLog || false;
+            var tabContent = '<div class="layui-tab layui-tab-brief" lay-filter="orderDetailTab">' +
+                '<ul class="layui-tab-title">' +
+                '<li class="layui-this">鍗曟嵁鏄庣粏</li>';
+            if (hasChangeLog) {
+                tabContent += '<li>涓氬姟鏃堕棿鍙樻洿璁板綍</li>';
+            }
+            tabContent += '</ul>' +
+                '<div class="layui-tab-content" style="padding: 10px 0;">' +
+                '<div class="layui-tab-item layui-show">' +
+                '<table id="lookSSXMTable" lay-filter="lookSSXMTable"></table>' +
+                '</div>';
+            if (hasChangeLog) {
+                tabContent += '<div class="layui-tab-item">' +
+                    '<table id="changeLogTable" lay-filter="changeLogTable"></table>' +
+                    '</div>';
+            }
+            tabContent += '</div></div>';
+            
             layer.open({
                 type: 1,
                 title: false,
@@ -100,8 +121,9 @@
                 shade: .01,
                 shadeClose: true,
                 fixed: false,
-                content: '<table id="lookSSXMTable" lay-filter="lookSSXMTable"></table>',
+                content: tabContent,
                 success: function (layero) {
+                    // 娓叉煋鍗曟嵁鏄庣粏琛ㄦ牸
                     table.render({
                         elem: '#lookSSXMTable',
                         method: 'POST',
@@ -142,8 +164,54 @@
                         },
                         size: ''
                     });
+                    
+                    // 鏍囩鍒囨崲浜嬩欢
+                    var changeLogTableRendered = false;
+                    element.on('tab(orderDetailTab)', function(elem){
+                        if (hasChangeLog && elem.index === 1 && !changeLogTableRendered) {
+                            // 鍒囨崲鍒板彉鏇磋褰曟爣绛炬椂鎵嶆煡璇紙鍙煡璇竴娆★級
+                            changeLogTableRendered = true;
+                            table.render({
+                                elem: '#changeLogTable',
+                                method: 'POST',
+                                headers: { token: localStorage.getItem('token') },
+                                url: baseUrl + '/orderTimeChangeLog/list/byOrderId/auth',
+                                where: {
+                                    orderId: data.id
+                                },
+                                page: false,
+                                cellMinWidth: 100,
+                                cols: [[
+                                    { type: 'numbers' },
+                                    { field: 'oldOrderTime', title: '鍘熶笟鍔℃椂闂�', width: 180 },
+                                    { field: 'newOrderTime', title: '鏂颁笟鍔℃椂闂�', width: 180 },
+                                    { field: 'memo', title: '澶囨敞', minWidth: 200 },
+                                    { field: 'createByName', title: '鎿嶄綔浜�', width: 120 },
+                                    { field: 'createTime$', title: '鍙樻洿鏃堕棿', width: 180 }
+                                ]],
+                                parseData: function (res) {
+                                    return {
+                                        'code': res.code,
+                                        'msg': res.msg,
+                                        'count': res.data ? res.data.length : 0,
+                                        'data': res.data || []
+                                    }
+                                },
+                                response: {
+                                    statusCode: 200
+                                }
+                            });
+                        }
+                    });
                 }
             });
+        } else if (layEvent === 'editOrderTime') {
+            // 妫�鏌ユ槸鍚﹀凡鏈堢粨
+            if (data.monthlySettleId && data.monthlySettleId > 0) {
+                layer.msg('璇ュ崟鎹凡鏈堢粨锛屼笉鑳戒慨鏀逛笟鍔℃椂闂�', { icon: 2 });
+                return;
+            }
+            showEditOrderTimeDialog(data);
         }
     });
 
@@ -210,6 +278,73 @@
         })
     }
 
+    // 鏄剧ず淇敼涓氬姟鏃堕棿寮圭獥
+    function showEditOrderTimeDialog(data) {
+        admin.open({
+            type: 1,
+            title: '淇敼涓氬姟鏃堕棿',
+            content: $('#editOrderTimeDialog').html(),
+            area: '400px',
+            success: function (layero, dIndex) {
+                // 鍥炴樉鏁版嵁
+                form.val('editOrderTimeForm', {
+                    id: data.id,
+                    orderTime: data.orderTime
+                });
+                // 鍒濆鍖栦笟鍔℃椂闂存棩鏈熼�夋嫨鍣紙鏀寔閫夋嫨鏃跺垎绉掞級
+                layDate.render({
+                    elem: '#orderTimeEdit',
+                    type: 'datetime',
+                    format: 'yyyy-MM-dd HH:mm:ss',
+                    value: data.orderTime || '',
+                    btns: ['clear', 'confirm'],
+                    ready: function(date){
+                        // 纭繚鏃跺垎绉掗�夋嫨鍣ㄦ樉绀�
+                        var layero = this.elem.next();
+                        if(layero.length > 0) {
+                            layero.find('.laydate-time-list').show();
+                        }
+                    }
+                });
+                // 琛ㄥ崟鎻愪氦浜嬩欢
+                form.on('submit(editOrderTimeSubmit)', function (formData) {
+                    // 鍓嶇鏍¢獙锛氭鏌ユ柊鏃ф椂闂存槸鍚︾浉鍚�
+                    var oldOrderTime = data.orderTime;
+                    var newOrderTime = formData.field.orderTime;
+                    if (oldOrderTime && oldOrderTime === newOrderTime) {
+                        layer.msg('鏂颁笟鍔℃椂闂翠笌鍘熶笟鍔℃椂闂寸浉鍚岋紝鏃犻渶淇敼', { icon: 2 });
+                        return false;
+                    }
+                    layer.load(2);
+                    $.ajax({
+                        url: baseUrl + "/order/pakinLog/order/update/orderTime/auth",
+                        headers: { 'token': localStorage.getItem('token') },
+                        data: {
+                            id: formData.field.id,
+                            orderTime: formData.field.orderTime,
+                            memo: formData.field.memo || ''
+                        },
+                        method: 'POST',
+                        success: function (res) {
+                            layer.closeAll('loading');
+                            if (res.code === 200) {
+                                layer.close(dIndex);
+                                insTb.reload({ page: { curr: 1 } });
+                                layer.msg(res.msg, { icon: 1 });
+                            } else if (res.code === 403) {
+                                top.location.href = baseUrl + "/";
+                            } else {
+                                layer.msg(res.msg, { icon: 2 });
+                            }
+                        }
+                    });
+                    return false;
+                });
+            }
+        });
+    }
+
+
     layDate.render({
         elem: '.layui-laydate-range'
         , type: 'datetime'

--
Gitblit v1.9.1