Преглед изворни кода

Merge branch 'v5.0.0dev' of https://gitee.com/ZhongBangKeJi/CRMEB into v5.0.0dev

# Conflicts:
#	template/uni-app/pages/goods/cashier/index.vue
From-wh пре 2 година
родитељ
комит
f0392ae7fd

+ 2 - 2
crmeb/app/adminapi/controller/v1/order/StoreOrder.php

@@ -762,8 +762,8 @@ class StoreOrder extends AuthController
      */
     public function order_dump($order_id, StoreOrderDeliveryServices $storeOrderDeliveryServices)
     {
-        return app('json')->success($storeOrderDeliveryServices->orderDump($order_id));
-
+        $storeOrderDeliveryServices->orderDump($order_id);
+        return app('json')->success(400121);
     }
 
 }

+ 13 - 13
crmeb/app/adminapi/controller/v1/setting/SystemCrud.php

@@ -101,7 +101,7 @@ class SystemCrud extends AuthController
                 $name = $item['table_name'] ?: $item['comment'];
                 $option = $item['options'] ?? [];
                 if (!$name) {
-                    return app('json')->fail(500056, [], ['field' => $item['field']]);
+                    return app('json')->fail(500048, [], ['field' => $item['field']]);
                 }
                 if (!$option && in_array($item['from_type'], ['radio', 'select'])) {
                     return app('json')->fail('表单类型为radio或select时,options字段不能为空');
@@ -116,20 +116,20 @@ class SystemCrud extends AuthController
             }
         }
         if (!$fromField) {
-            return app('json')->fail(500054);
+            return app('json')->fail(500046);
         }
         if (!$columnField) {
-            return app('json')->fail(500055);
+            return app('json')->fail(500047);
         }
         $data['fromField'] = $fromField;
         $data['columnField'] = $columnField;
         if (!$data['tableName']) {
-            return app('json')->fail(500045);
+            return app('json')->fail(500042);
         }
 
         $this->services->createCrud($id, $data);
 
-        return app('json')->success(500046);
+        return app('json')->success(500043);
     }
 
     /**
@@ -146,11 +146,11 @@ class SystemCrud extends AuthController
         ], true);
 
         if (!$tableName) {
-            return app('json')->fail(500045);
+            return app('json')->fail(500042);
         }
 
         if (in_array($tableName, SystemCrudServices::NOT_CRUD_TABANAME)) {
-            return app('json')->fail(500044);
+            return app('json')->fail(500041);
         }
 
         $routeName = 'crud/' . Str::snake($tableName);
@@ -207,7 +207,7 @@ class SystemCrud extends AuthController
 
         $info = $this->services->get($id);
         if (!$info) {
-            return app('json')->fail(500043);
+            return app('json')->fail(100026);
         }
 
         $routeName = 'crud/' . Str::snake($info->table_name);
@@ -360,7 +360,7 @@ class SystemCrud extends AuthController
         if (config('filesystem.password') != $pwd) {
             return app('json')->fail('文件管理密码错误');
         }
-        
+
         if (empty($filepath) || !$id) {
             return app('json')->fail(410087);
         }
@@ -434,7 +434,7 @@ class SystemCrud extends AuthController
 
         $info = $this->services->get($id);
         if (!$info) {
-            return app('json')->fail(500042);
+            return app('json')->fail(100026);
         }
 
         $services->transaction(function () use ($services, $info) {
@@ -456,7 +456,7 @@ class SystemCrud extends AuthController
                     unlink($item);
                 }
             } catch (\Throwable $e) {
-                return app('json')->success(500041, [], ['message' => $e->getMessage()]);
+                return app('json')->success(500040, [], ['message' => $e->getMessage()]);
             }
         }
 
@@ -480,7 +480,7 @@ class SystemCrud extends AuthController
 
         $info = $this->services->get($id);
         if (!$info) {
-            return app('json')->fail(500039);
+            return app('json')->fail(100026);
         }
         $zipPath = app()->getRootPath() . 'backup' . DS . Str::camel($info->table_name);
         $zipName = app()->getRootPath() . 'backup' . DS . Str::camel($info->table_name) . '.zip';
@@ -526,7 +526,7 @@ class SystemCrud extends AuthController
         ], $makePath, $zipPath);
 
         if (!extension_loaded('zip')) {
-            return app('json')->fail(500040);
+            return app('json')->fail(500039);
         }
 
         $fileService = new FileService();

+ 10 - 6
crmeb/app/services/system/SystemCrudServices.php

@@ -172,10 +172,10 @@ class SystemCrudServices extends BaseServices
 //                    'value' => 'dateTimeRange',
 //                    'label' => '日期时间区间选择',
 //                ],
-                [
-                    'value' => 'checkbox',
-                    'label' => '多选框',
-                ],
+//                [
+//                    'value' => 'checkbox',
+//                    'label' => '多选框',
+//                ],
                 [
                     'value' => 'radio',
                     'label' => '单选框',
@@ -209,7 +209,7 @@ class SystemCrudServices extends BaseServices
     {
 
         if (!in_array($type, $this->getTabelRule()['types'])) {
-            throw new AdminException(500047);
+            throw new AdminException(500044);
         }
 
         return $this->getTabelRule()['rule'][$type] ?? $type;
@@ -497,7 +497,7 @@ class SystemCrudServices extends BaseServices
 
         //检测是否为系统表
         if (in_array($tableName, self::NOT_CRUD_TABANAME)) {
-            throw new AdminException(500044);
+            throw new AdminException(500041);
         }
 
         $data['softDelete'] = false;
@@ -811,6 +811,10 @@ class SystemCrudServices extends BaseServices
                 if (in_array($fieldType, ['text', 'longtext', 'tinytext'])) {
                     unset($option['limit']);
                 }
+                //判断字段类型
+                if ($fieldType == 'boolean' && isset($option['default']) && $option['default'] === '') {
+                    unset($option['default']);
+                }
                 $table->addColumn($item['field'], $this->changeTabelRule($item['field_type']), $option);
             }
         }

+ 6 - 0
crmeb/crmeb/services/crud/Make.php

@@ -81,6 +81,12 @@ abstract class Make
      */
     protected $value = [];
 
+    /**
+     * 数据库获取器后缀
+     * @var string
+     */
+    protected $attrPrefix = '_label';
+
     /**
      * 后台前端模板根路径
      * @var string

+ 75 - 2
crmeb/crmeb/services/crud/Model.php

@@ -14,6 +14,8 @@
 namespace crmeb\services\crud;
 
 
+use think\helper\Str;
+
 /**
  * Class Model
  * @author 等风来
@@ -57,9 +59,73 @@ class Model extends Make
             $this->value['content-php'] = $this->tab() . "use SoftDelete;\n";
         }
         $this->value['modelName'] = $options['modelName'] ?? $name;
+        $field = $options['fromField'] ?? [];
+
+        $attrFnContent = [];
+        foreach ($field as $item) {
+            if (in_array($item['type'], ['radio', 'select']) && !empty($item['option'])) {
+                $attrFnContent[] = $this->getAttrFnContent($item['field'], $item['name'], $item['option']);
+            }
+        }
+        if ($attrFnContent) {
+            $this->value['attr-php'] = "\n" . implode("\n", $attrFnContent);
+        }
+
         return parent::handle($name, $options);
     }
 
+    /**
+     *
+     * @param string $key
+     * @param array $options
+     * @return array|false|string|string[]
+     * @author 等风来
+     * @email 136327134@qq.com
+     * @date 2023/5/11
+     */
+    protected function getAttrFnContent(string $key, string $comment, array $options)
+    {
+        $attrFnStub = file_get_contents($this->getStub('attr'));
+        $var = ['{%field%}', '{%date%}', '{%name%}', '{%content-php%}'];
+        $value = [
+            Str::studly($key . $this->attrPrefix),
+            date('Y-m-d'),
+            $comment,
+            $this->getSwithAndSelectPhpContent($options)
+        ];
+
+        return str_replace($var, $value, $attrFnStub);
+    }
+
+    /**
+     * 获取开关和下拉框获取器内容
+     * @param array $options
+     * @return string
+     * @author 等风来
+     * @email 136327134@qq.com
+     * @date 2023/5/11
+     */
+    protected function getSwithAndSelectPhpContent(array $options)
+    {
+        if (!$options) {
+            return '';
+        }
+        $case = [];
+        foreach ($options as $option) {
+            $case[] = $this->tab(3) . "case " . $option['value'] . ":\n" . $this->tab(4) . "\$attr = '$option[label]';\n" . $this->tab(4) . "break;";
+        }
+        $caseContent = implode("\n", $case);
+        $tab2 = $this->tab(2);
+        $content = <<<CONTENT
+{$tab2}\$attr = '';
+{$tab2}switch ((int)\$value){
+{$caseContent}
+{$tab2}}
+{$tab2}return \$attr;
+CONTENT;
+        return $content;
+    }
+
     /**
      * @param string $path
      * @param string $name
@@ -83,8 +149,15 @@ class Model extends Make
      * @email 136327134@qq.com
      * @date 2023/3/13
      */
-    protected function getStub(string $type = '')
+    protected function getStub(string $type = 'model')
     {
-        return __DIR__ . DS . 'stubs' . DS . 'model' . DS . 'crudModel.stub';
+        $routePath = __DIR__ . DS . 'stubs' . DS . 'model' . DS;
+
+        $stubs = [
+            'model' => $routePath . 'crudModel.stub',
+            'attr' => $routePath . 'getattr.stub',
+        ];
+
+        return $type ? $stubs[$type] : $stubs['model'];
     }
 }

+ 1 - 1
crmeb/crmeb/services/crud/Route.php

@@ -49,7 +49,7 @@ class Route extends Make
         $routePath = $options['routePath'] ?? '';
         $menus = $options['menus'] ?? '';
         if (!$route) {
-            throw new CrudException(500053);
+            throw new CrudException(500045);
         }
         if (!$action) {
             $action = ['index', 'create', 'save', 'edit', 'update', 'delete'];

+ 15 - 4
crmeb/crmeb/services/crud/Service.php

@@ -59,12 +59,20 @@ class Service extends Make
             $contentAction .= $stub . "\n";
         }
 
-        //生成form表单
-        if (in_array('save', $action) || in_array('update', $action)) {
-            $var = ['{%key%}', '{%date%}', '{%route%}', '{%form-php%}', '{%modelName%}'];
+        if ($field) {
+            //生成form表单
+            $var = ['{%key%}', '{%date%}', '{%route%}', '{%form-php%}', '{%modelName%}', '{%field%}'];
             $value = [$options['key'] ?? 'id', $this->value['date'], Str::snake($options['route'] ?? $name)];
             $from = [];
+            $select = [];
             foreach ($field as $item) {
+                //处理查询字段
+                if (in_array($item['type'], ['radio', 'select', 'checkbox'])) {
+                    $select[] = $item['field'] . ' as ' . $item['field'] . $this->attrPrefix;
+                } else {
+                    $select[] = $item['field'];
+                }
+                //处理表单信息
                 switch ($item['type']) {
                     case 'frameImageOne':
                         $from[] = $this->tab(2) . $this->getframeImageOnePhpContent($item['field'], $item['name']) . ';';
@@ -95,7 +103,10 @@ class Service extends Make
                 $value[] = '';
             }
             $value[] = $options['modelName'] ?? $options['menus'] ?? $name;
-
+            if (!empty($options['key'])) {
+                array_push($select, $options['key']);
+            }
+            $value[] = implode(',', $select);
             if ($value && $var) {
                 $contentAction = str_replace($var, $value, $contentAction);
             }

+ 1 - 1
crmeb/crmeb/services/crud/ViewApi.php

@@ -75,7 +75,7 @@ class ViewApi extends Make
         }
         $route = $options['route'] ?? '';
         if (!$route) {
-            throw new CrudException(500053);
+            throw new CrudException(500045);
         }
 
         $contentJs = '';

+ 5 - 2
crmeb/crmeb/services/crud/ViewPages.php

@@ -75,6 +75,7 @@ class ViewPages extends Make
         $contentVue = [];
         foreach ($field as $key => $item) {
             $keyName = 'key';
+            $fieldValue = $item['field'];
             if (isset($item['type'])) {
                 switch ($item['type']) {
                     case 'frameImageOne':
@@ -88,9 +89,11 @@ class ViewPages extends Make
                         $contentVue[] = str_replace(['{%field%}'], [$item['field']], $templateContent);
                         break;
                 }
+                if (in_array($item['type'], ['radio', 'select', 'checkbox'])) {
+                    $fieldValue = $fieldValue . $this->attrPrefix;
+                }
             }
-
-            $columnStr[] = ($key == 0 ? $this->tab(2) : '') . "{\n" . $this->tab(3) . "title:\"{$item['name']}\"," . $this->tab(2) . "\n" . $this->tab(3) . "$keyName:\"{$item['field']}\"\n" . $this->tab(2) . "}\n";
+            $columnStr[] = ($key == 0 ? $this->tab(2) : '') . "{\n" . $this->tab(3) . "title:\"{$item['name']}\"," . $this->tab(2) . "\n" . $this->tab(3) . "$keyName:\"{$fieldValue}\"\n" . $this->tab(2) . "}\n";
         }
         $this->value['auth'] = Str::snake($name);
         $this->value['componentName'] = $this->value['auth'];

+ 1 - 1
crmeb/crmeb/services/crud/ViewRouter.php

@@ -75,7 +75,7 @@ class ViewRouter extends Make
         $route = $options['route'] ?? Str::snake($name);
         $pagePath = $options['pagePath'] ?? Str::camel($name);
         if (!$route) {
-            throw new CrudException(500053);
+            throw new CrudException(500045);
         }
 
         $this->value['menus'] = $menus;

+ 1 - 1
crmeb/crmeb/services/crud/stubs/controller/delete.stub

@@ -10,7 +10,7 @@
             return app('json')->fail(100100);
         }
 
-        if ($this->service->destroy($id)) {
+        if ($this->service->destroy((int)$id)) {
             return app('json')->success(100002);
         } else {
             return app('json')->success(100008);

+ 1 - 1
crmeb/crmeb/services/crud/stubs/controller/edit.stub

@@ -6,5 +6,5 @@
      */
     public function edit($id)
     {
-        return app('json')->success($this->service->getCrudForm($id));
+        return app('json')->success($this->service->getCrudForm((int)$id));
     }

+ 1 - 1
crmeb/crmeb/services/crud/stubs/model/crudModel.stub

@@ -41,5 +41,5 @@ class {%nameCamel%} extends BaseModel
      * @var string
      */
     protected $pk = '{%key%}';
-
+{%attr-php%}
 }

+ 6 - 0
crmeb/crmeb/services/crud/stubs/model/getattr.stub

@@ -1,3 +1,9 @@
+    /**
+     * {%name%}获取器
+     * @date {%date%}
+     * @param string $value
+     * @return string
+     */
     public function get{%field%}Attr($value)
     {
 {%content-php%}

+ 1 - 1
crmeb/crmeb/services/crud/stubs/service/crudListIndex.stub

@@ -7,7 +7,7 @@
     public function getCrudListIndex(array $where = [])
     {
         [$page, $limit] = $this->getPageValue();
-        $model = $this->dao->selectModel($where, '*', 0, 0, '{%key%} desc');
+        $model = $this->dao->selectModel($where, '{%field%}', 0, 0, '{%key%} desc');
 
         return ['count' => $model->count(), 'list' => $model->page($page ?: 1, $limit ?: 10)->select()->toArray()];
     }

+ 231 - 1
crmeb/public/install/crmeb.sql

@@ -26534,7 +26534,237 @@ INSERT INTO `eb_lang_code` (`id`, `type_id`, `code`, `remarks`, `lang_explain`,
 (24997, 7, '500030', '名称长度需在6-17个字符之间', '이름 길이는 6-17자 사이여야 합니다.', 1),
 (24998, 8, '500030', '名称长度需在6-17个字符之间', 'Нэрийн урт нь 6-17 тэмдэгтийн хооронд байх ёстой', 1),
 (24999, 9, '500030', '名称长度需在6-17个字符之间', 'ชื่อต้องมีความยาวระหว่าง 6-17 ตัวอักษร', 1),
-(25000, 10, '500030', '名称长度需在6-17个字符之间', 'Độ dài tên phải từ 6-17 ký tự.', 1);
+(25000, 10, '500030', '名称长度需在6-17个字符之间', 'Độ dài tên phải từ 6-17 ký tự.', 1),
+(25001, 1, '500031', '接口名不能为空', '接口名不能为空', 1),
+(25002, 2, '500031', '接口名不能为空', 'Interface name cannot be empty', 1),
+(25003, 3, '500031', '接口名不能为空', '接口名不能爲空', 1),
+(25004, 4, '500031', '接口名不能为空', 'Le nom de linterface ne peut pas être vide', 1),
+(25005, 5, '500031', '接口名不能为空', 'Il nome dellinterfaccia non può essere vuoto', 1),
+(25006, 6, '500031', '接口名不能为空', 'インターフェイス名を空にすることはできません', 1),
+(25007, 7, '500031', '接口名不能为空', '인터페이스 이름은 비워 둘 수 없습니다', 1),
+(25008, 8, '500031', '接口名不能为空', 'Интерфэйсийн нэр хоосон байж чадахгүй', 1),
+(25009, 9, '500031', '接口名不能为空', 'ชื่ออินเทอร์เฟซต้องไม่ว่างเปล่า', 1),
+(25010, 10, '500031', '接口名不能为空', 'Tên giao diện không thể trống', 1),
+(25011, 1, '500032', '接口地址不能为空', '接口地址不能为空', 1),
+(25012, 2, '500032', '接口地址不能为空', 'Interface address cannot be empty', 1),
+(25013, 3, '500032', '接口地址不能为空', '接口地址不能爲空', 1),
+(25014, 4, '500032', '接口地址不能为空', 'Ladresse de linterface ne peut pas être vide', 1),
+(25015, 5, '500032', '接口地址不能为空', 'Lindirizzo dellinterfaccia non può essere vuoto', 1),
+(25016, 6, '500032', '接口地址不能为空', 'インターフェイスアドレスを空にすることはできません', 1),
+(25017, 7, '500032', '接口地址不能为空', '인터페이스 주소는 비워 둘 수 없습니다', 1),
+(25018, 8, '500032', '接口地址不能为空', 'Интерфэйс хаяг хоосон байж болохгүй', 1),
+(25019, 9, '500032', '接口地址不能为空', 'ที่อยู่อินเทอร์เฟซไม่สามารถว่างได้', 1),
+(25020, 10, '500032', '接口地址不能为空', 'Địa chỉ giao diện không thể trống', 1),
+(25021, 1, '500033', '请求方式不能为空', '请求方式不能为空', 1),
+(25022, 2, '500033', '请求方式不能为空', 'Request method cannot be empty', 1),
+(25023, 3, '500033', '请求方式不能为空', '請求方式不能爲空', 1),
+(25024, 4, '500033', '请求方式不能为空', 'La méthode de requête ne peut pas être vide', 1),
+(25025, 5, '500033', '请求方式不能为空', 'Il metodo di richiesta non può essere vuoto', 1),
+(25026, 6, '500033', '请求方式不能为空', '要求方法は空ではありません', 1),
+(25027, 7, '500033', '请求方式不能为空', '요청 방법은 비워 둘 수 없습니다', 1),
+(25028, 8, '500033', '请求方式不能为空', 'Хүсэлтийн арга нь хоосон байж чадахгүй', 1),
+(25029, 9, '500033', '请求方式不能为空', 'วิธีการร้องขอไม่สามารถว่างเปล่าได้', 1),
+(25030, 10, '500033', '请求方式不能为空', 'Phương thức yêu cầu không thể trống', 1),
+(25031, 1, '500034', '模块分类不能为空', '模块分类不能为空', 1),
+(25032, 2, '500034', '模块分类不能为空', 'Module category cannot be empty', 1),
+(25033, 3, '500034', '模块分类不能为空', '模塊分類不能爲空', 1),
+(25034, 4, '500034', '模块分类不能为空', 'La catégorie de module ne peut pas être vide', 1),
+(25035, 5, '500034', '模块分类不能为空', 'La categoria del modulo non può essere vuota', 1),
+(25036, 6, '500034', '模块分类不能为空', 'モジュールの分類は空にできません', 1),
+(25037, 7, '500034', '模块分类不能为空', '모듈 카테고리를 비울 수 없습니다', 1),
+(25038, 8, '500034', '模块分类不能为空', 'Модулийн ангилал хоосон байж болохгүй', 1),
+(25039, 9, '500034', '模块分类不能为空', 'การจำแนกประเภทโมดูลต้องไม่ว่างเปล่า', 1),
+(25040, 10, '500034', '模块分类不能为空', 'Phân loại mô-đun không thể trống', 1),
+(25041, 1, '500035', '接口不存在', '接口不存在', 1),
+(25042, 2, '500035', '接口不存在', 'Interface does not exist', 1),
+(25043, 3, '500035', '接口不存在', '接口不存在', 1),
+(25044, 4, '500035', '接口不存在', 'Linterface nexiste pas', 1),
+(25045, 5, '500035', '接口不存在', 'Linterfaccia non esiste', 1),
+(25046, 6, '500035', '接口不存在', 'インターフェイスが存在しません', 1),
+(25047, 7, '500035', '接口不存在', '인터페이스가 존재하지 않습니다', 1),
+(25048, 8, '500035', '接口不存在', 'Интерфэйс байхгүй', 1),
+(25049, 9, '500035', '接口不存在', 'ไม่มีอินเทอร์เฟซ', 1),
+(25050, 10, '500035', '接口不存在', 'Giao diện không tồn tại', 1),
+(25051, 1, '500036', '接口信息不存在', '接口信息不存在', 1),
+(25052, 2, '500036', '接口信息不存在', 'Interface information does not exist', 1),
+(25053, 3, '500036', '接口信息不存在', '接口信息不存在', 1),
+(25054, 4, '500036', '接口信息不存在', 'Les informations dinterface nexistent pas', 1),
+(25055, 5, '500036', '接口信息不存在', 'Le informazioni sullinterfaccia non esistono', 1),
+(25056, 6, '500036', '接口信息不存在', 'インターフェイス情報は存在しません', 1),
+(25057, 7, '500036', '接口信息不存在', '인터페이스 정보가 존재하지 않습니다', 1),
+(25058, 8, '500036', '接口信息不存在', 'Интерфэйсийн мэдээлэл байхгүй', 1),
+(25059, 9, '500036', '接口信息不存在', 'ไม่มีข้อมูลอินเทอร์เฟซ', 1),
+(25060, 10, '500036', '接口信息不存在', 'Thông tin giao diện không tồn tại', 1),
+(25061, 1, '500037', '接口分类名称不能为空', '接口分类名称不能为空', 1),
+(25062, 2, '500037', '接口分类名称不能为空', 'Interface category name cannot be empty', 1),
+(25063, 3, '500037', '接口分类名称不能为空', '接口分類名稱不能爲空', 1),
+(25064, 4, '500037', '接口分类名称不能为空', 'Le nom de la catégorie dinterface ne peut pas être vide', 1),
+(25065, 5, '500037', '接口分类名称不能为空', 'Il nome della categoria di interfaccia non può essere vuoto', 1),
+(25066, 6, '500037', '接口分类名称不能为空', 'インターフェイス分類名を空にすることはできません', 1),
+(25067, 7, '500037', '接口分类名称不能为空', '인터페이스 카테고리 이름은 비워 둘 수 없습니다', 1),
+(25068, 8, '500037', '接口分类名称不能为空', 'Интерфэйсийн категорийн нэр хоосон байж чадахгүй', 1),
+(25069, 9, '500037', '接口分类名称不能为空', 'ชื่อการจัดประเภทอินเทอร์เฟซต้องไม่ว่างเปล่า', 1),
+(25070, 10, '500037', '接口分类名称不能为空', 'Tên phân loại giao diện không thể trống', 1),
+(25071, 1, '500038', '该分类下有接口,无法删除', '该分类下有接口,无法删除', 1),
+(25072, 2, '500038', '该分类下有接口,无法删除', 'There is an interface under this category and cannot be deleted.', 1),
+(25073, 3, '500038', '该分类下有接口,无法删除', '該分類下有接口,無法刪除', 1),
+(25074, 4, '500038', '该分类下有接口,无法删除', 'Il existe une interface sous cette catégorie et ne peut pas être supprimée.', 1),
+(25075, 5, '500038', '该分类下有接口,无法删除', 'Cè uninterfaccia in questa categoria e non può essere eliminata.', 1),
+(25076, 6, '500038', '该分类下有接口,无法删除', 'この分類の下にインタフェースがあり、削除できません', 1),
+(25077, 7, '500038', '该分类下有接口,无法删除', '이 범주 아래에 인터페이스가 있으므로 삭제할 수 없습니다.', 1),
+(25078, 8, '500038', '该分类下有接口,无法删除', 'Энэ ангиллын дор интерфэйс байдаг тул устгах боломжгүй юм.', 1),
+(25079, 9, '500038', '该分类下有接口,无法删除', 'มีอินเทอร์เฟซภายใต้หมวดหมู่นี้และไม่สามารถลบได้', 1),
+(25080, 10, '500038', '该分类下有接口,无法删除', 'Có giao diện dưới phân loại này, không thể xóa được.', 1),
+(25081, 1, '500039', 'zip扩展未安装', 'zip扩展未安装', 1),
+(25082, 2, '500039', 'zip扩展未安装', 'Zip extension not installed', 1),
+(25083, 3, '500039', 'zip扩展未安装', 'zip擴展未安裝', 1),
+(25084, 4, '500039', 'zip扩展未安装', 'Extension zippée non installée', 1),
+(25085, 5, '500039', 'zip扩展未安装', 'Estensione zip non installata', 1),
+(25086, 6, '500039', 'zip扩展未安装', 'zip拡張機能がインストールされていません', 1),
+(25087, 7, '500039', 'zip扩展未安装', 'Zip 확장이 설치되지 않았습니다.', 1),
+(25088, 8, '500039', 'zip扩展未安装', 'Зип өргөтгөл суулгаагүй', 1),
+(25089, 9, '500039', 'zip扩展未安装', 'ไม่ได้ติดตั้งส่วนขยายซิป', 1),
+(25090, 10, '500039', 'zip扩展未安装', 'Phần mở rộng zip chưa được cài đặt', 1),
+(25091, 1, '500040', '删除文件失败,失败原因{:message}', '删除文件失败,失败原因{:message}', 1),
+(25092, 2, '500040', '删除文件失败,失败原因{:message}', 'Failed to delete file, reason for failure {:message}', 1),
+(25093, 3, '500040', '删除文件失败,失败原因{:message}', '刪除文件失敗,失敗原因{:message}', 1),
+(25094, 4, '500040', '删除文件失败,失败原因{:message}', 'Impossible de supprimer le fichier, raison de léchec { :message}', 1),
+(25095, 5, '500040', '删除文件失败,失败原因{:message}', 'Impossibile eliminare il file, motivo del fallimento {:message}', 1),
+(25096, 6, '500040', '删除文件失败,失败原因{:message}', 'ファイルの削除に失敗しました。失敗した理由{:message}', 1),
+(25097, 7, '500040', '删除文件失败,失败原因{:message}', '파일 삭제 실패, 실패 이유{:message}', 1),
+(25098, 8, '500040', '删除文件失败,失败原因{:message}', 'Файл устгаж чадаагүй, бүтэлгүйтлийн шалтгаан {:message}', 1),
+(25099, 9, '500040', '删除文件失败,失败原因{:message}', 'ล้มเหลวในการลบแฟ้ม เนื่องจากไม่สามารถลบแฟ้ม {:message}ได้', 1),
+(25100, 10, '500040', '删除文件失败,失败原因{:message}', 'Xóa tập tin không thành công, lý do không thành công {:message}', 1),
+(25101, 1, '500041', '系统数据表,无法生成', '系统数据表,无法生成', 1),
+(25102, 2, '500041', '系统数据表,无法生成', 'System data , cannot be generated', 1),
+(25103, 3, '500041', '系统数据表,无法生成', '系統數據表,無法生成', 1),
+(25104, 4, '500041', '系统数据表,无法生成', ' de données système, ne peut pas être générée', 1),
+(25105, 5, '500041', '系统数据表,无法生成', 'Impossibile generare la tabella dei dati di sistema', 1),
+(25106, 6, '500041', '系统数据表,无法生成', 'システムデータシートを生成できません', 1),
+(25107, 7, '500041', '系统数据表,无法生成', '시스템 데이터 테이블, 생성할 수 없음', 1),
+(25108, 8, '500041', '系统数据表,无法生成', 'Системийн өгөгдлийн хүснэгтийг үүсгэх боломжгүй', 1),
+(25109, 9, '500041', '系统数据表,无法生成', 'แผ่นข้อมูลระบบ ไม่สามารถสร้างได้', 1),
+(25110, 10, '500041', '系统数据表,无法生成', 'Bảng dữ liệu hệ thống, không thể tạo', 1),
+(25111, 1, '500042', '表名不能为空', '表名不能为空', 1),
+(25112, 2, '500042', '表名不能为空', ' name cannot be empty', 1),
+(25113, 3, '500042', '表名不能为空', '表名不能爲空', 1),
+(25114, 4, '500042', '表名不能为空', 'Le nom de la  ne peut pas être vide', 1),
+(25115, 5, '500042', '表名不能为空', 'Il nome della tabella non può essere vuoto', 1),
+(25116, 6, '500042', '表名不能为空', 'テーブル名は空にできません', 1),
+(25117, 7, '500042', '表名不能为空', '테이블 이름은 비울 수 없습니다', 1),
+(25118, 8, '500042', '表名不能为空', 'Хүснэгтийн нэр хоосон байж болохгүй', 1),
+(25119, 9, '500042', '表名不能为空', 'ชื่อตารางต้องไม่ว่างเปล่า', 1),
+(25120, 10, '500042', '表名不能为空', 'Tên bảng không thể trống', 1),
+(25121, 1, '500043', '功能创建成功', '功能创建成功', 1),
+(25122, 2, '500043', '功能创建成功', 'Function created successfully', 1),
+(25123, 3, '500043', '功能创建成功', '功能創建成功', 1),
+(25124, 4, '500043', '功能创建成功', 'Fonction créée avec succès', 1),
+(25125, 5, '500043', '功能创建成功', 'Funzione creata con successo', 1),
+(25126, 6, '500043', '功能创建成功', '機能の作成に成功', 1),
+(25127, 7, '500043', '功能创建成功', '기능이 성공적으로 생성되었습니다.', 1),
+(25128, 8, '500043', '功能创建成功', 'Функц амжилттай үүсгэсэн', 1),
+(25129, 9, '500043', '功能创建成功', 'สร้างฟังก์ชันสำเร็จแล้ว', 1),
+(25130, 10, '500043', '功能创建成功', 'Chức năng tạo thành công', 1),
+(25131, 1, '500044', '字段类型不存在', '字段类型不存在', 1),
+(25132, 2, '500044', '字段类型不存在', 'Field type does not exist', 1),
+(25133, 3, '500044', '字段类型不存在', '字段類型不存在', 1),
+(25134, 4, '500044', '字段类型不存在', 'Le type de champ nexiste pas', 1),
+(25135, 5, '500044', '字段类型不存在', 'Il tipo di campo non esiste', 1),
+(25136, 6, '500044', '字段类型不存在', 'フィールドタイプは存在しません', 1),
+(25137, 7, '500044', '字段类型不存在', '필드 유형이 없습니다', 1),
+(25138, 8, '500044', '字段类型不存在', 'Талбайн төрөл байхгүй', 1),
+(25139, 9, '500044', '字段类型不存在', 'ไม่มีประเภทฟิลด์อยู่', 1),
+(25140, 10, '500044', '字段类型不存在', 'Loại trường không tồn tại', 1),
+(25141, 1, '500045', '不存在的资源路由类型', '不存在的资源路由类型', 1),
+(25142, 2, '500045', '不存在的资源路由类型', 'Resource routing type that does not exist', 1),
+(25143, 3, '500045', '不存在的资源路由类型', '不存在的資源路由類型', 1),
+(25144, 4, '500045', '不存在的资源路由类型', 'Type de routage de ressource qui nexiste pas', 1),
+(25145, 5, '500045', '不存在的资源路由类型', 'Tipo di routing delle risorse che non esiste', 1),
+(25146, 6, '500045', '不存在的资源路由类型', '存在しないリソースルーティングタイプ', 1),
+(25147, 7, '500045', '不存在的资源路由类型', '존재하지 않는 리소스 라우팅 유형', 1),
+(25148, 8, '500045', '不存在的资源路由类型', 'Байхгүй байгаа нөөцийн чиглүүлэлтийн төрөл', 1),
+(25149, 9, '500045', '不存在的资源路由类型', 'ชนิดของการกำหนดเส้นทางทรัพยากรที่ไม่มีอยู่', 1),
+(25150, 10, '500045', '不存在的资源路由类型', 'Loại định tuyến tài nguyên không tồn tại', 1),
+(25151, 1, '500046', '表单数据生成失败', '表单数据生成失败', 1),
+(25152, 2, '500046', '表单数据生成失败', 'Form data generation failed', 1),
+(25153, 3, '500046', '表单数据生成失败', '表單數據生成失敗', 1),
+(25154, 4, '500046', '表单数据生成失败', 'Échec de la génération des données du formulaire', 1),
+(25155, 5, '500046', '表单数据生成失败', 'Generazione dei dati del modulo non riuscita', 1),
+(25156, 6, '500046', '表单数据生成失败', 'フォームデータの生成に失敗しました', 1),
+(25157, 7, '500046', '表单数据生成失败', '양식 데이터 생성 실패', 1),
+(25158, 8, '500046', '表单数据生成失败', 'Маягт өгөгдөл үүсгэх бүтэлгүйтсэн', 1),
+(25159, 9, '500046', '表单数据生成失败', 'การสร้างข้อมูลแบบฟอร์มล้มเหลว', 1),
+(25160, 10, '500046', '表单数据生成失败', 'Tạo dữ liệu biểu mẫu không thành công', 1),
+(25161, 1, '500047', '列表展示数据生成失败', '列表展示数据生成失败', 1),
+(25162, 2, '500047', '列表展示数据生成失败', 'List display data generation failed', 1),
+(25163, 3, '500047', '列表展示数据生成失败', '列表展示數據生成失敗', 1),
+(25164, 4, '500047', '列表展示数据生成失败', 'Échec de la génération des données daffichage de la liste', 1),
+(25165, 5, '500047', '列表展示数据生成失败', 'Generazione dati visualizzazione elenco non riuscita', 1),
+(25166, 6, '500047', '列表展示数据生成失败', 'リスト表示データの生成に失敗しました', 1),
+(25167, 7, '500047', '列表展示数据生成失败', '목록 표시 데이터 생성 실패', 1),
+(25168, 8, '500047', '列表展示数据生成失败', 'Жагсаалтыг харуулах өгөгдөл үүсгэх бүтэлгүйтсэн', 1),
+(25169, 9, '500047', '列表展示数据生成失败', 'ล้มเหลวในการสร้างข้อมูลการแสดงรายการ', 1),
+(25170, 10, '500047', '列表展示数据生成失败', 'Danh sách hiển thị dữ liệu tạo không thành công', 1),
+(25171, 1, '500048', '列表名称不能为空', '列表名称不能为空', 1),
+(25172, 2, '500048', '列表名称不能为空', 'List name cannot be empty', 1),
+(25173, 3, '500048', '列表名称不能为空', '列表名稱不能爲空', 1),
+(25174, 4, '500048', '列表名称不能为空', 'Le nom de la liste ne peut pas être vide', 1),
+(25175, 5, '500048', '列表名称不能为空', 'Il nome dellelenco non può essere vuoto', 1),
+(25176, 6, '500048', '列表名称不能为空', 'リスト名を空にすることはできません', 1),
+(25177, 7, '500048', '列表名称不能为空', '목록 이름은 비워 둘 수 없습니다', 1),
+(25178, 8, '500048', '列表名称不能为空', 'Жагсаалтын нэр хоосон байж болохгүй', 1),
+(25179, 9, '500048', '列表名称不能为空', 'ชื่อรายการต้องไม่ว่างเปล่า', 1),
+(25180, 10, '500048', '列表名称不能为空', 'Tên danh sách không thể trống', 1),
+(25181, 1, '支付剩余时间', '支付剩余时间', '支付剩余时间', 0),
+(25182, 2, '支付剩余时间', '支付剩余时间', 'Pay remaining time', 0),
+(25183, 3, '支付剩余时间', '支付剩余时间', '支付剩餘時間', 0),
+(25184, 4, '支付剩余时间', '支付剩余时间', 'Rémunération du temps restant', 0),
+(25185, 5, '支付剩余时间', '支付剩余时间', 'Paga il tempo rimanente', 0),
+(25186, 6, '支付剩余时间', '支付剩余时间', '残り時間を支払う', 0),
+(25187, 7, '支付剩余时间', '支付剩余时间', '남은 시간 지불', 0),
+(25188, 8, '支付剩余时间', '支付剩余时间', 'Үлдсэн хугацааг төлөх', 0),
+(25189, 9, '支付剩余时间', '支付剩余时间', 'จ่ายเวลาที่เหลือ', 0),
+(25190, 10, '支付剩余时间', '支付剩余时间', 'Thanh toán thời gian còn lại', 0),
+(25191, 1, '确认支付', '确认支付', '确认支付', 0),
+(25192, 2, '确认支付', '确认支付', 'Confirm payment', 0),
+(25193, 3, '确认支付', '确认支付', '確認支付', 0),
+(25194, 4, '确认支付', '确认支付', 'Confirmer le paiement', 0),
+(25195, 5, '确认支付', '确认支付', 'Conferma il pagamento', 0),
+(25196, 6, '确认支付', '确认支付', '支払いの確認', 0),
+(25197, 7, '确认支付', '确认支付', '결제 확인', 0),
+(25198, 8, '确认支付', '确认支付', 'Төлбөрийг баталгаажуулах', 0),
+(25199, 9, '确认支付', '确认支付', 'ยืนยันการชำระเงิน', 0),
+(25200, 10, '确认支付', '确认支付', 'Xác nhận thanh toán', 0),
+(25201, 1, '暂不支付', '暂不支付', '暂不支付', 0),
+(25202, 2, '暂不支付', '暂不支付', 'No payment for the time being.', 0),
+(25203, 3, '暂不支付', '暂不支付', '暫不支付', 0),
+(25204, 4, '暂不支付', '暂不支付', 'Aucun paiement pour le moment.', 0),
+(25205, 5, '暂不支付', '暂不支付', 'Nessun pagamento per il momento.', 0),
+(25206, 6, '暂不支付', '暂不支付', '未払い', 0),
+(25207, 7, '暂不支付', '暂不支付', '당분간 지불이 없습니다.', 0),
+(25208, 8, '暂不支付', '暂不支付', 'Одоогийн байдлаар төлбөргүй.', 0),
+(25209, 9, '暂不支付', '暂不支付', 'ยังไม่ชำระเงินในขณะนี้', 0),
+(25210, 10, '暂不支付', '暂不支付', 'Tạm thời không thanh toán', 0),
+(25211, 1, '用户等级优惠', '用户等级优惠', '用户等级优惠', 0),
+(25212, 2, '用户等级优惠', '用户等级优惠', 'User Level Offer', 0),
+(25213, 3, '用户等级优惠', '用户等级优惠', '用戶等級優惠', 0),
+(25214, 4, '用户等级优惠', '用户等级优惠', 'Offre de niveau utilisateur', 0),
+(25215, 5, '用户等级优惠', '用户等级优惠', 'Offerta a livello utente', 0),
+(25216, 6, '用户等级优惠', '用户等级优惠', 'ユーザーレベル割引', 0),
+(25217, 7, '用户等级优惠', '用户等级优惠', '사용자 수준 제안', 0),
+(25218, 8, '用户等级优惠', '用户等级优惠', 'Хэрэглэгчийн түвшний санал', 0),
+(25219, 9, '用户等级优惠', '用户等级优惠', 'ส่วนลดระดับผู้ใช้', 0),
+(25220, 10, '用户等级优惠', '用户等级优惠', 'Ưu đãi cấp người dùng', 0),
+(25221, 1, '提交订单', '提交订单', '提交订单', 0),
+(25222, 2, '提交订单', '提交订单', 'Submit', 0),
+(25223, 3, '提交订单', '提交订单', '提交訂單', 0),
+(25224, 4, '提交订单', '提交订单', 'Soumettre', 0),
+(25225, 5, '提交订单', '提交订单', 'Invia', 0),
+(25226, 6, '提交订单', '提交订单', '注文を送信する', 0),
+(25227, 7, '提交订单', '提交订单', '주문 제출', 0),
+(25228, 8, '提交订单', '提交订单', 'Захиалга ирүүлэх', 0),
+(25229, 9, '提交订单', '提交订单', 'ส่งคำสั่งซื้อ', 0),
+(25230, 10, '提交订单', '提交订单', 'Gửi đơn hàng', 0);
 
 -- --------------------------------------------------------