diff --git a/app/controller/VehicleController.php b/app/controller/VehicleController.php index 2a227d7..70fdf53 100644 --- a/app/controller/VehicleController.php +++ b/app/controller/VehicleController.php @@ -14,6 +14,7 @@ use app\model\LocationAr; use app\service\OssService; // use plugin\admin\app\model\Location; +use app\service\TranslatorService; use util\Util; use support\Request; use support\Cache; @@ -40,25 +41,28 @@ class VehicleController { $lang = $request->post('lang', 'zh'); + // 接收请求参数(Webman自动注入) + $page = $request->post('page', 1); // 默认第1页 + $pageSize = $request->post('pageSize', 30); // 默认每页30条 switch ($lang) { case 'zh': - $vehicles = Vehicle::with('location')->with('finalLocation')->get(); + $vehicles = Vehicle::with('location')->with('finalLocation') ->offset(($page-1)*$pageSize) ->limit($pageSize)->get(); $hz = new Location(); break; case 'en': - $vehicles = VehicleEn::with('location')->with('finalLocation')->get(); + $vehicles = VehicleEn::with('location')->with('finalLocation')->offset(($page-1)*$pageSize) ->limit($pageSize)->get(); $hz = new LocationEn(); break; case 'ru': - $vehicles = VehicleRu::with('location')->with('finalLocation')->get(); + $vehicles = VehicleRu::with('location')->with('finalLocation')->offset(($page-1)*$pageSize) ->limit($pageSize)->get(); $hz = new LocationRu(); break; case 'ar': - $vehicles = VehicleAr::with('location')->with('finalLocation')->get(); + $vehicles = VehicleAr::with('location')->with('finalLocation')->offset(($page-1)*$pageSize) ->limit($pageSize)->get(); $hz = new LocationAr(); break; } @@ -116,8 +120,8 @@ class VehicleController } unset($vehicle); // =================================== new ===================================== end - - $result = ['list' => $vehicles,'count'=>count($vehicles)]; + $count = Vehicle::count(); + $result = ['list' => $vehicles,'count'=>$count]; return Util::success($result); } diff --git a/plugin/admin/public/component/pear/module/tab.js b/plugin/admin/public/component/pear/module/tab.js index 4284f45..479f16c 100644 --- a/plugin/admin/public/component/pear/module/tab.js +++ b/plugin/admin/public/component/pear/module/tab.js @@ -402,15 +402,32 @@ layui.define(['jquery', 'element'], function(exports) { if (!removeTab.hasClass("layui-this")) { removeTab.remove(); var tabContent = $(".layui-tab[lay-filter='" + elem + "']").find("iframe[id='" + id + "']") - .parent(); + .parent(); tabContent.remove(); - tabData = JSON.parse(sessionStorage.getItem(elem + "-pear-tab-data")); - tabDataCurrent = sessionStorage.getItem(elem + "-pear-tab-data-current"); - tabData = tabData.filter(function(item) { - return item.id != id; - }) - sessionStorage.setItem(elem + "-pear-tab-data", JSON.stringify(tabData)); + // 添加数据验证 + var storedData = sessionStorage.getItem(elem + "-pear-tab-data"); + if (!storedData) { + console.warn('Tab data not found in sessionStorage'); + return false; + } + + try { + tabData = JSON.parse(storedData); + tabDataCurrent = sessionStorage.getItem(elem + "-pear-tab-data-current"); + if (Array.isArray(tabData)) { + tabData = tabData.filter(function(item) { + return item.id != id; + }); + sessionStorage.setItem(elem + "-pear-tab-data", JSON.stringify(tabData)); + } else { + console.warn('Tab data is not an array'); + return false; + } + } catch (e) { + console.error('Error parsing tab data:', e); + return false; + } return false; } @@ -425,14 +442,35 @@ layui.define(['jquery', 'element'], function(exports) { currId = prevNode.attr("lay-id"); $("#" + elem + " [id='" + currId + "']").parent().addClass("layui-show"); } - callback(currId); - tabData = JSON.parse(sessionStorage.getItem(elem + "-pear-tab-data")); - tabDataCurrent = sessionStorage.getItem(elem + "-pear-tab-data-current"); - tabData = tabData.filter(function(item) { - return item.id != id; - }) - sessionStorage.setItem(elem + "-pear-tab-data", JSON.stringify(tabData)); - sessionStorage.setItem(elem + "-pear-tab-data-current", currId); + + if (typeof callback === 'function') { + callback(currId); + } + + // 添加数据验证 + var storedData = sessionStorage.getItem(elem + "-pear-tab-data"); + if (!storedData) { + console.warn('Tab data not found in sessionStorage'); + return false; + } + + try { + tabData = JSON.parse(storedData); + tabDataCurrent = sessionStorage.getItem(elem + "-pear-tab-data-current"); + if (Array.isArray(tabData)) { + tabData = tabData.filter(function(item) { + return item.id != id; + }); + sessionStorage.setItem(elem + "-pear-tab-data", JSON.stringify(tabData)); + sessionStorage.setItem(elem + "-pear-tab-data-current", currId); + } else { + console.warn('Tab data is not an array'); + return false; + } + } catch (e) { + console.error('Error parsing tab data:', e); + return false; + } removeTab.remove(); // 删除 content