diff --git a/crmeb/app/adminapi/controller/v1/setting/SystemCrud.php b/crmeb/app/adminapi/controller/v1/setting/SystemCrud.php index 510149e6f..2a8210f2a 100644 --- a/crmeb/app/adminapi/controller/v1/setting/SystemCrud.php +++ b/crmeb/app/adminapi/controller/v1/setting/SystemCrud.php @@ -78,6 +78,7 @@ class SystemCrud extends AuthController $columnField[] = [ 'field' => $item['field'], 'name' => $item['table_name'], + 'type' => $item['from_type'], ]; } if ($item['from_type']) { @@ -145,7 +146,7 @@ class SystemCrud extends AuthController foreach ($field as $item) { $tableField[] = [ 'field' => $item['name'], - 'file_type' => $item['type'], + 'field_type' => $item['type'], 'primaryKey' => (bool)$item['primaryKey'], 'default' => $item['default'], 'limit' => $item['limit'], @@ -191,8 +192,9 @@ class SystemCrud extends AuthController } $softDelete = false; + foreach ((array)$info->field['tableField'] as $item) { - if ($item['addSoftDelete']) { + if ($item['field_type'] === 'addSoftDelete') { $softDelete = true; break; } diff --git a/crmeb/app/services/system/SystemCrudServices.php b/crmeb/app/services/system/SystemCrudServices.php index fa3d5fa63..b43a2d01a 100644 --- a/crmeb/app/services/system/SystemCrudServices.php +++ b/crmeb/app/services/system/SystemCrudServices.php @@ -159,7 +159,7 @@ class SystemCrudServices extends BaseServices $tableInfo = Db::query($sql, [config('database.connections.mysql.database'), $this->getTableName($tableName)]); - return $tableInfo; + return $tableInfo[0] ?? []; } /** @@ -233,6 +233,10 @@ class SystemCrudServices extends BaseServices $tableField = $this->valueReplace($data['tableField']); $filePath = $this->valueReplace($data['filePath']); + if ($this->dao->value(['table_name' => $tableName])) { + throw new ValidateException('此表已经生成请在列表中查看'); + } + $data['softDelete'] = false; //创建数据库 if ($tableField && !$data['isTable']) { @@ -299,6 +303,7 @@ class SystemCrudServices extends BaseServices 'name' => $data['menuName'] . '列表接口', 'app_name' => 'adminapi', 'cate_id' => $cateId, + 'unique_auth' => '', 'add_time' => date('Y-m-d H:i:s') ], [ @@ -307,6 +312,7 @@ class SystemCrudServices extends BaseServices 'name' => $data['menuName'] . '获取创建表单接口', 'app_name' => 'adminapi', 'cate_id' => $cateId, + 'unique_auth' => Str::snake($tableName) . '-add', 'add_time' => date('Y-m-d H:i:s') ], [ @@ -315,6 +321,7 @@ class SystemCrudServices extends BaseServices 'name' => $data['menuName'] . '保存数据接口', 'app_name' => 'adminapi', 'cate_id' => $cateId, + 'unique_auth' => '', 'add_time' => date('Y-m-d H:i:s') ], [ @@ -323,6 +330,7 @@ class SystemCrudServices extends BaseServices 'name' => $data['menuName'] . '获取修改表单接口', 'app_name' => 'adminapi', 'cate_id' => $cateId, + 'unique_auth' => '', 'add_time' => date('Y-m-d H:i:s') ], [ @@ -331,6 +339,7 @@ class SystemCrudServices extends BaseServices 'name' => $data['menuName'] . '修改数据接口', 'app_name' => 'adminapi', 'cate_id' => $cateId, + 'unique_auth' => '', 'add_time' => date('Y-m-d H:i:s') ], [ @@ -339,6 +348,7 @@ class SystemCrudServices extends BaseServices 'name' => $data['menuName'] . '删除数据接口', 'app_name' => 'adminapi', 'cate_id' => $cateId, + 'unique_auth' => '', 'add_time' => date('Y-m-d H:i:s') ], ]; @@ -350,6 +360,7 @@ class SystemCrudServices extends BaseServices 'pid' => $menuInfo->id, 'methods' => $item['method'], 'api_url' => $item['path'], + 'unique_auth' => $item['unique_auth'], 'name' => $item['name'], 'is_del' => 0, ]; diff --git a/crmeb/crmeb/services/crud/Service.php b/crmeb/crmeb/services/crud/Service.php index 9e7987ab1..3fa20828e 100644 --- a/crmeb/crmeb/services/crud/Service.php +++ b/crmeb/crmeb/services/crud/Service.php @@ -150,7 +150,7 @@ class Service extends Make { $requiredText = $required ? '->required()' : ''; $content = << '$field']), \$info[\'$field\'] ?? '')->icon('$icon')->width('$width')->height('$height')->modal(['footer-hide' => true])$requiredText +\$rule[] = FormBuilder::frameImage('$field', '$name', url(config('app.admin_prefix', 'admin') . '/widget.images/index', ['fodder' => '$field']), \$info['$field'] ?? '')->icon('$icon')->width('$width')->height('$height')->modal(['footer-hide' => true])$requiredText CONTENT; return $content; } @@ -172,7 +172,7 @@ CONTENT; { $requiredText = $required ? '->required()' : ''; $content = << '$field', 'type' => 'many', 'maxLength' => $maxLength]), \$info[\'$field\'] ?? [])->maxLength($maxLength)->icon('$icon')->width('$width')->height('$height')->modal(['footer-hide' => true])$requiredText +\$rule[] = FormBuilder::frameImages('$field', '$name', url(config('app.admin_prefix', 'admin') . '/widget.images/index', ['fodder' => '$field', 'type' => 'many', 'maxLength' => $maxLength]), \$info['$field'] ?? [])->maxLength($maxLength)->icon('$icon')->width('$width')->height('$height')->modal(['footer-hide' => true])$requiredText CONTENT; return $content; } diff --git a/crmeb/crmeb/services/crud/ViewPages.php b/crmeb/crmeb/services/crud/ViewPages.php index 0c7bd4699..08088b3c3 100644 --- a/crmeb/crmeb/services/crud/ViewPages.php +++ b/crmeb/crmeb/services/crud/ViewPages.php @@ -72,7 +72,20 @@ class ViewPages extends Make $route = $options['route'] ?? ''; $columnStr = []; + $contentVue = []; foreach ($field as $key => $item) { + if (isset($item['type'])) { + switch ($item['type']) { + case 'frameImageOne': + $templateContent = file_get_contents($this->getStub('image')); + $contentVue[] = str_replace(['{%field%}'], [$item['field']], $templateContent); + break; + case 'frameImages': + $templateContent = file_get_contents($this->getStub('images')); + $contentVue[] = str_replace(['{%field%}'], [$item['field']], $templateContent); + break; + } + } $columnStr[] = ($key == 0 ? $this->tab(2) : '') . "{\n" . $this->tab(3) . "title:\"{$item['name']}\"," . $this->tab(2) . "\n" . $this->tab(3) . "key:\"{$item['field']}\"\n" . $this->tab(2) . "}\n"; } $this->value['route'] = $route; @@ -81,6 +94,7 @@ class ViewPages extends Make $this->value['pathApiJs'] = $options['pathApiJs'] ?? ''; $this->value['nameStudly'] = Str::studly($name); $this->value['nameCamel'] = Str::camel($name); + $this->value['content-table-vue'] = $contentVue ? implode("\n", $contentVue) : ''; return parent::handle($name, $options); } @@ -106,10 +120,16 @@ class ViewPages extends Make * @email 136327134@qq.com * @date 2023/4/1 */ - protected function getStub(string $type = '') + protected function getStub(string $type = 'index') { - return __DIR__ . DS . 'stubs' . DS . 'view' . - DS . 'pages' . DS . 'crud' . - DS . 'index.stub'; + $pagesPath = __DIR__ . DS . 'stubs' . DS . 'view' . DS . 'pages' . DS . 'crud' . DS; + + $stubs = [ + 'index' => $pagesPath . 'index.stub', + 'image' => $pagesPath . 'image.stub', + 'images' => $pagesPath . 'images.stub', + ]; + + return $type ? $stubs[$type] : $stubs['index']; } } diff --git a/crmeb/crmeb/services/crud/stubs/view/pages/crud/image.stub b/crmeb/crmeb/services/crud/stubs/view/pages/crud/image.stub new file mode 100644 index 000000000..e9bc61f0b --- /dev/null +++ b/crmeb/crmeb/services/crud/stubs/view/pages/crud/image.stub @@ -0,0 +1,5 @@ + diff --git a/crmeb/crmeb/services/crud/stubs/view/pages/crud/images.stub b/crmeb/crmeb/services/crud/stubs/view/pages/crud/images.stub new file mode 100644 index 000000000..f5d00c7aa --- /dev/null +++ b/crmeb/crmeb/services/crud/stubs/view/pages/crud/images.stub @@ -0,0 +1,5 @@ + diff --git a/crmeb/crmeb/services/crud/stubs/view/pages/crud/index.stub b/crmeb/crmeb/services/crud/stubs/view/pages/crud/index.stub index 1859033c8..f11b09c97 100644 --- a/crmeb/crmeb/services/crud/stubs/view/pages/crud/index.stub +++ b/crmeb/crmeb/services/crud/stubs/view/pages/crud/index.stub @@ -3,7 +3,7 @@ - + - +{%content-table-vue%} -