feat: 實作後台導航選單系統與狀態持久化

- 新增 14 個模組的路由與控制器佔位符
- 實作可展開式側邊欄選單 (Sidebar Menu)
- 優化選單樣式與主題適配
- 實作選單展開狀態持久化 (LocalStorage)
- 修復子選單縮排與顏色問題
This commit is contained in:
2025-12-16 23:21:11 +08:00
parent 6edece8648
commit aa708e9ac7
16 changed files with 1088 additions and 61 deletions

View File

@@ -0,0 +1,45 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class AnalysisController extends Controller
{
// 零錢庫存分析
public function changeStock()
{
return view('admin.placeholder', [
'title' => '零錢庫存分析',
'description' => '機台零錢數量監測與分析',
]);
}
// 機台報表分析
public function machineReports()
{
return view('admin.placeholder', [
'title' => '機台報表分析',
'description' => '機台運營數據分析報表',
]);
}
// 商品報表分析
public function productReports()
{
return view('admin.placeholder', [
'title' => '商品報表分析',
'description' => '商品銷售數據分析',
]);
}
// 互動問卷分析
public function surveyAnalysis()
{
return view('admin.placeholder', [
'title' => '互動問卷分析',
'description' => '問卷結果統計與分析',
]);
}
}

View File

@@ -41,4 +41,49 @@ class AppConfigController extends Controller
return redirect()->back()->with('success', '設定已更新');
}
// UI元素設定
public function uiElements()
{
return view('admin.placeholder', [
'title' => 'UI元素設定',
'description' => 'APP版面配置設定',
]);
}
// 小幫手設定
public function helper()
{
return view('admin.placeholder', [
'title' => '小幫手設定',
'description' => 'APP內建輔助功能設定',
]);
}
// 問卷設定
public function questionnaire()
{
return view('admin.placeholder', [
'title' => '問卷設定',
'description' => '互動問卷建立與管理',
]);
}
// 互動遊戲設定
public function games()
{
return view('admin.placeholder', [
'title' => '互動遊戲設定',
'description' => 'APP互動遊戲配置',
]);
}
// 計時器
public function timer()
{
return view('admin.placeholder', [
'title' => '計時器',
'description' => '時間相關功能設定',
]);
}
}

View File

@@ -0,0 +1,36 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class AuditController extends Controller
{
// 採購單稽核
public function purchases()
{
return view('admin.placeholder', [
'title' => '採購單稽核',
'description' => '採購單審核流程',
]);
}
// 調撥單稽核
public function transfers()
{
return view('admin.placeholder', [
'title' => '調撥單稽核',
'description' => '調撥單審核流程',
]);
}
// 補貨單稽核
public function replenishments()
{
return view('admin.placeholder', [
'title' => '補貨單稽核',
'description' => '補貨單審核流程',
]);
}
}

View File

@@ -0,0 +1,81 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class DataConfigController extends Controller
{
// 商品管理
public function products()
{
return view('admin.placeholder', [
'title' => '商品管理',
'description' => '商品資料維護',
]);
}
// 廣告管理
public function advertisements()
{
return view('admin.placeholder', [
'title' => '廣告管理',
'description' => '機台廣告影片管理',
]);
}
// 管理者可賣商品
public function adminProducts()
{
return view('admin.placeholder', [
'title' => '管理者可賣商品',
'description' => '管理者商品銷售權限',
]);
}
// 帳號管理
public function accounts()
{
return view('admin.placeholder', [
'title' => '帳號管理',
'description' => '主帳號管理',
]);
}
// 子帳號管理
public function subAccounts()
{
return view('admin.placeholder', [
'title' => '子帳號管理',
'description' => '子帳號建立與管理',
]);
}
// 子帳號角色管理
public function subAccountRoles()
{
return view('admin.placeholder', [
'title' => '子帳號角色管理',
'description' => '子帳號權限角色設定',
]);
}
// 點數設定
public function points()
{
return view('admin.placeholder', [
'title' => '點數設定',
'description' => '客戶點數系統設定',
]);
}
// 識別證管理
public function badges()
{
return view('admin.placeholder', [
'title' => '識別證管理',
'description' => '識別證資料管理(安霸系統使用)',
]);
}
}

View File

@@ -0,0 +1,63 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class LineController extends Controller
{
// Line會員管理
public function members()
{
return view('admin.placeholder', [
'title' => 'Line會員管理',
'description' => 'Line會員資料管理',
]);
}
// Line機台管理
public function machines()
{
return view('admin.placeholder', [
'title' => 'Line機台管理',
'description' => 'Line綁定機台管理',
]);
}
// Line商品管理
public function products()
{
return view('admin.placeholder', [
'title' => 'Line商品管理',
'description' => 'Line商城商品設定',
]);
}
// Line生活圈
public function officialAccount()
{
return view('admin.placeholder', [
'title' => 'Line生活圈',
'description' => 'Line官方帳號整合',
]);
}
// Line商城訂單
public function orders()
{
return view('admin.placeholder', [
'title' => 'Line商城訂單',
'description' => 'Line商城訂單管理',
]);
}
// Line優惠券
public function coupons()
{
return view('admin.placeholder', [
'title' => 'Line優惠券',
'description' => 'Line優惠券發放與管理',
]);
}
}

View File

@@ -89,4 +89,55 @@ class MachineController extends Controller
return redirect()->route('admin.machines.index')
->with('success', '機台已刪除');
}
// 機台日誌
public function logs()
{
return view('admin.placeholder', [
'title' => '機台日誌',
'description' => '機台操作歷史紀錄回溯',
'features' => [
'操作時間戳記',
'事件類型分類',
'操作人員記錄',
'詳細描述查詢',
]
]);
}
// 機台權限
public function permissions()
{
return view('admin.placeholder', [
'title' => '機台權限',
'description' => '機台存取權限控管',
]);
}
// 機台稼動率
public function utilization()
{
return view('admin.placeholder', [
'title' => '機台稼動率',
'description' => '機台運行效率分析',
]);
}
// 效期管理
public function expiry()
{
return view('admin.placeholder', [
'title' => '效期管理',
'description' => '商品效期與貨道出貨控制',
]);
}
// 維修管理單
public function maintenance()
{
return view('admin.placeholder', [
'title' => '維修管理單',
'description' => '機台維修工單系統',
]);
}
}

View File

@@ -0,0 +1,117 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class PermissionController extends Controller
{
// APP功能管理
public function appFeatures()
{
return view('admin.placeholder', [
'title' => 'APP功能管理',
'description' => 'APP功能權限設定',
]);
}
// 資料設定權限
public function dataConfig()
{
return view('admin.placeholder', [
'title' => '資料設定權限',
'description' => '資料設定功能權限',
]);
}
// 銷售管理權限
public function sales()
{
return view('admin.placeholder', [
'title' => '銷售管理權限',
'description' => '銷售管理功能權限',
]);
}
// 機台管理權限
public function machines()
{
return view('admin.placeholder', [
'title' => '機台管理權限',
'description' => '機台管理功能權限',
]);
}
// 倉庫管理權限
public function warehouses()
{
return view('admin.placeholder', [
'title' => '倉庫管理權限',
'description' => '倉庫管理功能權限',
]);
}
// 分析管理權限
public function analysis()
{
return view('admin.placeholder', [
'title' => '分析管理權限',
'description' => '分析管理功能權限',
]);
}
// 稽核管理權限
public function audit()
{
return view('admin.placeholder', [
'title' => '稽核管理權限',
'description' => '稽核管理功能權限',
]);
}
// 遠端管理權限
public function remote()
{
return view('admin.placeholder', [
'title' => '遠端管理權限',
'description' => '遠端管理功能權限',
]);
}
// Line管理權限
public function line()
{
return view('admin.placeholder', [
'title' => 'Line管理權限',
'description' => 'Line管理功能權限',
]);
}
// 權限角色設定
public function roles()
{
return view('admin.placeholder', [
'title' => '權限角色設定',
'description' => '角色權限組合設定',
]);
}
// 其他功能管理
public function others()
{
return view('admin.placeholder', [
'title' => '其他功能管理',
'description' => '其他特殊功能權限',
]);
}
// AI智能預測
public function aiPrediction()
{
return view('admin.placeholder', [
'title' => 'AI智能預測',
'description' => 'AI功能權限設定',
]);
}
}

View File

@@ -0,0 +1,72 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class RemoteController extends Controller
{
// 機台庫存
public function stock()
{
return view('admin.placeholder', [
'title' => '遠端修改機台庫存',
'description' => '遠端修改機台庫存數量',
]);
}
// 機台重啟
public function restart()
{
return view('admin.placeholder', [
'title' => '遠端重啟機台',
'description' => '遠端重啟機台系統',
]);
}
// 卡機重啟
public function restartCardReader()
{
return view('admin.placeholder', [
'title' => '遠端重啟刷卡機',
'description' => '遠端重啟刷卡機設備',
]);
}
// 遠端結帳
public function checkout()
{
return view('admin.placeholder', [
'title' => '遠端結帳',
'description' => '遠端執行結帳流程',
]);
}
// 遠端鎖定頁
public function lock()
{
return view('admin.placeholder', [
'title' => '遠端鎖定頁',
'description' => '遠端鎖定機台頁面',
]);
}
// 遠端找零
public function change()
{
return view('admin.placeholder', [
'title' => '遠端找零',
'description' => '遠端執行找零功能',
]);
}
// 遠端出貨
public function dispense()
{
return view('admin.placeholder', [
'title' => '遠端出貨',
'description' => '遠端控制商品出貨',
]);
}
}

View File

@@ -0,0 +1,72 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class ReservationController extends Controller
{
// Line會員管理
public function members()
{
return view('admin.placeholder', [
'title' => '預約系統會員管理',
'description' => '預約系統會員資料管理',
]);
}
// Line店家管理
public function stores()
{
return view('admin.placeholder', [
'title' => '店家管理',
'description' => '店家資訊設定',
]);
}
// Line時段組合
public function timeSlots()
{
return view('admin.placeholder', [
'title' => '時段組合',
'description' => '預約時段設定',
]);
}
// Line場地管理
public function venues()
{
return view('admin.placeholder', [
'title' => '場地管理',
'description' => '場地資源管理',
]);
}
// Line優惠券管理
public function coupons()
{
return view('admin.placeholder', [
'title' => '優惠券管理',
'description' => '預約優惠券管理',
]);
}
// Line預約管理
public function reservations()
{
return view('admin.placeholder', [
'title' => '預約管理',
'description' => '預約單管理',
]);
}
// Line訂單管理
public function orders()
{
return view('admin.placeholder', [
'title' => '訂單管理',
'description' => '預約訂單處理',
]);
}
}

View File

@@ -0,0 +1,69 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class SalesController extends Controller
{
// 銷售&金流紀錄
public function index()
{
return view('admin.placeholder', [
'title' => '銷售&金流紀錄',
'description' => '銷售交易與金流明細查詢',
'features' => [
'銷售記錄查詢',
'金流對帳',
'發票管理',
'退款處理',
]
]);
}
// 取貨碼設定
public function pickupCodes()
{
return view('admin.placeholder', [
'title' => '取貨碼設定',
'description' => '取貨驗證碼管理',
]);
}
// 購買單
public function orders()
{
return view('admin.placeholder', [
'title' => '購買單',
'description' => '購買訂單管理',
]);
}
// 促銷時段設定
public function promotions()
{
return view('admin.placeholder', [
'title' => '促銷時段設定',
'description' => '促銷活動時間設定',
]);
}
// 通行碼設定
public function passCodes()
{
return view('admin.placeholder', [
'title' => '通行碼設定',
'description' => '特殊通行碼權限管理',
]);
}
// 來店禮設定
public function storeGifts()
{
return view('admin.placeholder', [
'title' => '來店禮設定',
'description' => '來店優惠活動設定',
]);
}
}

View File

@@ -0,0 +1,36 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class SpecialPermissionController extends Controller
{
// 庫存清空
public function clearStock()
{
return view('admin.placeholder', [
'title' => '庫存清空',
'description' => '特殊權限庫存清空功能',
]);
}
// APK版本管理
public function apkVersions()
{
return view('admin.placeholder', [
'title' => 'APK版本管理',
'description' => 'APP版本控制與更新',
]);
}
// Discord通知設定
public function discordNotifications()
{
return view('admin.placeholder', [
'title' => 'Discord通知設定',
'description' => 'Discord通知整合設定',
]);
}
}

View File

@@ -0,0 +1,139 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class WarehouseController extends Controller
{
// 倉庫列表(全部)
public function index()
{
return view('admin.placeholder', [
'title' => '倉庫列表(全部)',
'description' => '顯示所有倉庫的資訊與庫存狀態',
'features' => [
'查看所有倉庫列表',
'即時庫存數量顯示',
'倉庫狀態監控',
'快速搜尋與篩選',
]
]);
}
// 倉庫列表(個人)
public function personal()
{
return view('admin.placeholder', [
'title' => '倉庫列表(個人)',
'description' => '顯示個人負責的倉庫資訊',
'features' => [
'查看個人負責倉庫',
'個人庫存管理',
'權限範圍內的操作',
]
]);
}
// 庫存管理單
public function stockManagement()
{
return view('admin.placeholder', [
'title' => '庫存管理單',
'description' => '倉庫庫存異動管理',
'features' => [
'庫存盤點',
'庫存調整',
'異動記錄查詢',
]
]);
}
// 調撥單
public function transfers()
{
return view('admin.placeholder', [
'title' => '調撥單',
'description' => '倉庫間商品調撥作業',
'features' => [
'建立調撥單',
'調撥單審核',
'調撥歷史記錄',
]
]);
}
// 採購單
public function purchases()
{
return view('admin.placeholder', [
'title' => '採購單',
'description' => '商品採購申請與管理',
'features' => [
'建立採購申請',
'採購單追蹤',
'供應商管理',
]
]);
}
// 機台補貨單
public function replenishments()
{
return view('admin.placeholder', [
'title' => '機台補貨單',
'description' => '機台補貨工單建立與管理',
'features' => [
'建立補貨單',
'補貨排程',
'補貨人員指派',
]
]);
}
// 機台補貨紀錄
public function replenishmentRecords()
{
return view('admin.placeholder', [
'title' => '機台補貨紀錄',
'description' => '個別機台的補貨歷史記錄',
]);
}
// 機台補貨紀錄(總)
public function replenishmentRecordsAll()
{
return view('admin.placeholder', [
'title' => '機台補貨紀錄(總)',
'description' => '所有機台的補貨總覽',
]);
}
// 機台庫存
public function machineStock()
{
return view('admin.placeholder', [
'title' => '機台庫存',
'description' => '各機台即時庫存查詢',
]);
}
// 人員庫存
public function staffStock()
{
return view('admin.placeholder', [
'title' => '人員庫存',
'description' => '補貨人員持有庫存',
]);
}
// 回庫單
public function returns()
{
return view('admin.placeholder', [
'title' => '回庫單',
'description' => '商品退回倉庫管理',
]);
}
}