diff --git a/crmeb/app/adminapi/controller/v1/setting/SystemCrud.php b/crmeb/app/adminapi/controller/v1/setting/SystemCrud.php index d25dcebef..358d25612 100644 --- a/crmeb/app/adminapi/controller/v1/setting/SystemCrud.php +++ b/crmeb/app/adminapi/controller/v1/setting/SystemCrud.php @@ -367,6 +367,49 @@ class SystemCrud extends AuthController return app('json')->success(['download_url' => sys_config('site_url') . '/adminapi/download/' . $key]); } + /** + * 获取权限路由 + * @param $tableName + * @return Response + * @author 等风来 + * @email 136327134@qq.com + * @date 2023/4/20 + */ + public function getRouteList($tableName) + { + $info = $this->services->get(['table_name' => $tableName]); + if (!$info) { + return app('json')->fail('crud详情查询失败'); + } + + $routeList = app()->make(SystemMenusServices::class)->getColumn([ + ['id', 'in', $info->menu_ids], + ['auth_type', '=', 2] + ], 'methods,api_url'); + + $column = $this->services->getColumnNamesList($info->table_name); + $key = 'id'; + foreach ($column as $value) { + if ($value['primaryKey']) { + $key = $value['name']; + break; + } + } + + $columns = []; + foreach ((array)$info->field['tableField'] as $item) { + if (isset($item['from_type']) && $item['from_type']) { + $columns[] = [ + 'title' => $item['table_name'], + 'key' => $item['field'], + 'from_type' => $item['from_type'], + ]; + } + } + + return app('json')->success(compact('key', 'routeList', 'columns')); + } + /** * @return string * @author 等风来 diff --git a/crmeb/app/adminapi/route/system.php b/crmeb/app/adminapi/route/system.php index 9be1bfd3b..4ffaf3ac5 100644 --- a/crmeb/app/adminapi/route/system.php +++ b/crmeb/app/adminapi/route/system.php @@ -133,6 +133,7 @@ Route::group('system', function () { 'delete' => '删除路由分类' ], ]); + Route::get('crud/config/:tableName', 'v1.setting.SystemCrud/getRouteList')->option(['real_name' => '获取CRUD配置']); //下载生成的文件 Route::get('crud/download/:id', 'v1.setting.SystemCrud/download')->option(['real_name' => '下载生成的文件']); //获取CRUD列表 diff --git a/crmeb/app/services/system/SystemCrudServices.php b/crmeb/app/services/system/SystemCrudServices.php index cafc3f743..ce16467eb 100644 --- a/crmeb/app/services/system/SystemCrudServices.php +++ b/crmeb/app/services/system/SystemCrudServices.php @@ -283,7 +283,7 @@ class SystemCrudServices extends BaseServices $dataMenu = [ 'pid' => $data['pid'], 'menu_name' => $data['menuName'], - 'menu_path' => '/' . $routeName . '/list', + 'menu_path' => '/' . $routeName , 'auth_type' => 1, 'is_show' => 1, 'is_del' => 0, diff --git a/crmeb/crmeb/services/crud/stubs/view/router/modules/crud.stub b/crmeb/crmeb/services/crud/stubs/view/router/modules/crud.stub index 5a3a5e33a..3df7b57f6 100644 --- a/crmeb/crmeb/services/crud/stubs/view/router/modules/crud.stub +++ b/crmeb/crmeb/services/crud/stubs/view/router/modules/crud.stub @@ -20,14 +20,14 @@ const meta = { const pre = '{%name%}_' export default { - path: `${routePre}/{%route%}`, + path: `${routePre}`, name: 'crud_{%name%}', header: '{%nameHeader%}', meta, component: LayoutMain, children: [ { - path: 'list', + path: '{%route%}', name: `${pre}list`, meta: { auth: ['{%name%}-crud-list-index'], diff --git a/template/admin/src/pages/system/codeGeneration/components/FoundationFor.vue b/template/admin/src/pages/system/codeGeneration/components/FoundationFor.vue index 05cc0f296..c494bf82d 100644 --- a/template/admin/src/pages/system/codeGeneration/components/FoundationFor.vue +++ b/template/admin/src/pages/system/codeGeneration/components/FoundationFor.vue @@ -72,7 +72,7 @@ >