소스 검색

feat(extension): 添加获取扩展Vue文件的路由和控制器方法- 在admin.php中新增获取扩展Vue文件的路由规则
- 在ExtensionController中实现vue方法读取并返回Vue文件内容
- 支持通过扩展ID获取对应的.vue文件资源
- 文件存在时返回文件内容,不存在时返回404状态码- 设置响应头Content-Type为text/plain;charset=utf-8

runphp 5 달 전
부모
커밋
c728ebf8d1
2개의 변경된 파일15개의 추가작업 그리고 0개의 파일을 삭제
  1. 2 0
      route/admin.php
  2. 13 0
      src/Controller/ExtensionController.php

+ 2 - 0
route/admin.php

@@ -4,6 +4,8 @@ declare(strict_types=1);
 use SixShop\System\Controller\{ExtensionConfigController, ExtensionController};
 use think\facade\Route;
 
+Route::get('extension/:id.vue', [ExtensionController::class, 'vue'])
+    ->option(['name' => 'system:extension:vue', 'description' => '获取扩展的Vue文件']);
 Route::group('extension', function () {
     Route::get('normal', [ExtensionController::class, 'normal'])->option(['name' => 'system:extension:normal', 'description' => '获取普通扩展列表']);
     Route::resource('', ExtensionController::class, function () {

+ 13 - 0
src/Controller/ExtensionController.php

@@ -117,4 +117,17 @@ class ExtensionController
 
         return Helper::success_response($options);
     }
+
+    public function vue(string $id, ExtensionManager $extensionManager): Response
+    {
+        $filePath = Helper::extension_path($id) . 'resource/admin/' . $id . '.vue';
+        if (file_exists($filePath)) {
+            return response(file_get_contents($filePath))
+                ->header(['Content-Type' => 'text/plain;charset=utf-8']);
+        } else {
+            // 文件不存在时返回404
+            return response('文件不存在:' . $filePath, 404)
+                ->header(['Content-Type' => 'text/plain;charset=utf-8']);
+        }
+    }
 }