diff --git a/app/model/LocationAr.php b/app/model/LocationAr.php index d760766..ba2ca2c 100644 --- a/app/model/LocationAr.php +++ b/app/model/LocationAr.php @@ -27,6 +27,9 @@ class LocationAr extends Model */ public $timestamps = false; + //批量赋值黑名单 + protected $guarded = ['created_at', 'updated_at']; + /** * Get the vehicles for the location. */ diff --git a/app/model/LocationEn.php b/app/model/LocationEn.php index 92d9fe7..1ae9c96 100644 --- a/app/model/LocationEn.php +++ b/app/model/LocationEn.php @@ -27,6 +27,9 @@ class LocationEn extends Model */ public $timestamps = false; + //批量赋值黑名单 + protected $guarded = ['created_at', 'updated_at']; + /** * Get the vehicles for the location. */ diff --git a/app/model/LocationRu.php b/app/model/LocationRu.php index 37dc73c..163c911 100644 --- a/app/model/LocationRu.php +++ b/app/model/LocationRu.php @@ -27,6 +27,9 @@ class LocationRu extends Model */ public $timestamps = false; + //批量赋值黑名单 + protected $guarded = ['created_at', 'updated_at']; + /** * Get the vehicles for the location. */ diff --git a/app/model/VehicleAr.php b/app/model/VehicleAr.php index 54a0b8a..99ae55b 100644 --- a/app/model/VehicleAr.php +++ b/app/model/VehicleAr.php @@ -27,6 +27,9 @@ class VehicleAr extends Model */ public $timestamps = false; + //批量赋值黑名单 + protected $guarded = ['created_at', 'updated_at']; + /** * Get the location that owns the vehicle. */ diff --git a/app/model/VehicleEn.php b/app/model/VehicleEn.php index be56ed8..a0e8042 100644 --- a/app/model/VehicleEn.php +++ b/app/model/VehicleEn.php @@ -27,6 +27,9 @@ class VehicleEn extends Model */ public $timestamps = false; + //批量赋值黑名单 + protected $guarded = ['created_at', 'updated_at']; + /** * Get the location that owns the vehicle. */ diff --git a/app/model/VehicleRu.php b/app/model/VehicleRu.php index b041f7d..7de38e3 100644 --- a/app/model/VehicleRu.php +++ b/app/model/VehicleRu.php @@ -27,6 +27,9 @@ class VehicleRu extends Model */ public $timestamps = false; + //批量赋值黑名单 + protected $guarded = ['created_at', 'updated_at']; + /** * Get the location that owns the vehicle. */ diff --git a/app/service/TranslatorService.php b/app/service/TranslatorService.php new file mode 100644 index 0000000..adb36f0 --- /dev/null +++ b/app/service/TranslatorService.php @@ -0,0 +1,42 @@ +'cn', 'en'=>'en','ru'=>'ru','ar'=>'ar']; + + public function __construct() { + $this->xunfei = new Xunfei(); + } + + public function vehicle($vehicle, string $targetLang = 'en') { + $fields = ['brand', 'model', 'purchase_location', 'procedure_location', 'fbo_destination']; + foreach ($vehicle as $k => $var) { + if (in_array($k, $fields)) { + $rst_dst = $this->xunfei->fanyi($var, 'cn', $targetLang); + if ($rst_dst) { + $vehicle[$k] = $rst_dst["trans_result"]["dst"]; + } + } + } + return $vehicle; + } + + public function location($location, string $targetLang = 'en') { + $fields = ['name']; + foreach ($location as $k => $var) { + if (in_array($k, $fields)) { + $rst_dst = $this->xunfei->fanyi($var, 'cn', $targetLang); + if ($rst_dst) { + $location[$k] = $rst_dst["trans_result"]["dst"]; + } + } + } + return $location; + } +} \ No newline at end of file diff --git a/plugin/admin/app/controller/LocationController.php b/plugin/admin/app/controller/LocationController.php index fcab2f1..8445225 100644 --- a/plugin/admin/app/controller/LocationController.php +++ b/plugin/admin/app/controller/LocationController.php @@ -62,9 +62,6 @@ class LocationController extends Crud */ public function insert(Request $request): Response { - if ($request->method() === 'POST') { - return parent::insert($request); - } // 获取当前语言 $lang = session('lang', 'zh-cn'); @@ -74,6 +71,48 @@ class LocationController extends Crud // 合并翻译 $translations = array_merge($location_translations, $common_translations); + + // 如果是 POST 请求,处理数据保存和翻译 + if ($request->method() === 'POST') { + // 获取表单数据 + $data = $request->all(); + Log::info('location',$data); + + // 保存主表数据 + $location = new Location(); + $location->fill($data); + $location->save(); + + // 处理多语言翻译 + $languages = ['en', 'ar', 'ru']; + $translationModels = [ + 'en' => \app\model\LocationEn::class, + 'ar' => \app\model\LocationAr::class, + 'ru' => \app\model\LocationRu::class + ]; + + // 创建翻译服务实例 + $translatorService = new \app\service\TranslatorService(); + + foreach ($languages as $lang) { + $translationModel = $translationModels[$lang]; + $translation = new $translationModel(); + + // 复制主表数据 + $translation->fill($data); + $translation->id = $location->id; + + // 使用翻译服务处理需要翻译的字段 + $translatedData = $translatorService->location($data, $lang); + + // 更新翻译后的字段 + $translation->name = $translatedData['name'] ?? $data['name']; +// $translation->description = $translatedData['description'] ?? $data['description']; + + Log::info('location:'.$lang.':translatedData',$translatedData); + $translation->save(); + } + } return view('location/insert', [ 'lang' => $lang, diff --git a/plugin/admin/app/controller/VehicleController.php b/plugin/admin/app/controller/VehicleController.php index c2c7587..bc0dfe2 100644 --- a/plugin/admin/app/controller/VehicleController.php +++ b/plugin/admin/app/controller/VehicleController.php @@ -158,6 +158,54 @@ class VehicleController extends Crud $translations = array_merge($required_translations, $translations); } + // 如果是 POST 请求,处理数据保存和翻译 + if ($request->method() === 'POST') { + // 获取表单数据 + $data = $request->all(); + $data['shipping_cycle'] = !empty($data['shipping_cycle'])?$data['shipping_cycle']:0; + + + // 保存主表数据 + $vehicle = new Vehicle(); + $vehicle->fill($data); + $vehicle->save(); + + Log::info('$request',$data); + // 处理多语言翻译 + $languages = ['en', 'ar', 'ru']; + $translationModels = [ + 'en' => VehicleEn::class, + 'ar' => VehicleAr::class, + 'ru' => VehicleRu::class + ]; + + // 创建翻译服务实例 + $translatorService = new \app\service\TranslatorService(); + + foreach ($languages as $lang) { + $translationModel = $translationModels[$lang]; + $translation = new $translationModel(); + + // 复制主表数据 + $translation->fill($data); + $translation->id = $vehicle->id; + + // 使用翻译服务处理需要翻译的字段 + $translatedData = $translatorService->vehicle($data, $lang); + Log::info($lang.':'.$vehicle->id,$translatedData); + + // 更新翻译后的字段 + $translation->brand = $translatedData['brand'] ?? $data['brand']; + $translation->model = $translatedData['model'] ?? $data['model']; + $translation->status = $translatedData['status'] ?? $data['status']; + $translation->purchase_location = $translatedData['purchase_location'] ?? $data['purchase_location']; + $translation->procedure_location = $translatedData['procedure_location'] ?? $data['procedure_location']; +// $translation->fbo_destination = $translatedData['fbo_destination'] ?? $data['fbo_destination']; + + $translation->save(); + } + } + return view('vehicle/insert', [ 'lang' => $lang, 'translations' => $translations diff --git a/plugin/admin/app/model/Location.php b/plugin/admin/app/model/Location.php index e2be3a2..7629225 100644 --- a/plugin/admin/app/model/Location.php +++ b/plugin/admin/app/model/Location.php @@ -30,7 +30,8 @@ class Location extends Base * @var string */ protected $primaryKey = 'id'; - - + + //批量赋值黑名单 + protected $guarded = ['created_at', 'updated_at']; } diff --git a/plugin/admin/app/model/Vehicle.php b/plugin/admin/app/model/Vehicle.php index da2a56b..3cbbf55 100644 --- a/plugin/admin/app/model/Vehicle.php +++ b/plugin/admin/app/model/Vehicle.php @@ -39,6 +39,9 @@ class Vehicle extends Base * @var string */ protected $primaryKey = 'id'; + + //批量赋值黑名单 + protected $guarded = ['created_at', 'updated_at']; diff --git a/plugin/admin/app/view/location/insert.html b/plugin/admin/app/view/location/insert.html index b2d998b..02b09b0 100644 --- a/plugin/admin/app/view/location/insert.html +++ b/plugin/admin/app/view/location/insert.html @@ -66,23 +66,43 @@ let $ = layui.jquery; let popup = layui.popup; - form.on('submit(save)', function(data) { - $.ajax({ + // form.on('submit(save)', function(data) { + // console.log('submit'); + // $.ajax({ + // url: '/app/admin/location/insert', + // data: JSON.stringify(data.field), + // dataType: 'json', + // contentType: 'application/json', + // type: 'post', + // success: function(result) { + // console.log('操作成功',result); + // if (result.code) { + // popup.failure(result.msg); + // } else { + // popup.success("", function() { + // parent.layer.close(parent.layer.getFrameIndex(window.name)); + // }); + // } + // } + // }) + // return false; + // }); + layui.form.on("submit(save)", function (data) { + layui.$.ajax({ url: '/app/admin/location/insert', - data: JSON.stringify(data.field), - dataType: 'json', - contentType: 'application/json', - type: 'post', - success: function(result) { - if (result.code) { - popup.failure(result.msg); - } else { - popup.success("", function() { - parent.layer.close(parent.layer.getFrameIndex(window.name)); - }); + type: "POST", + dateType: "json", + data: data.field, + success: function (res) { + if (res.code) { + return layui.popup.failure(res.msg); } + return layui.popup.success("操作成功", function () { + parent.refreshTable(); + parent.layer.close(parent.layer.getFrameIndex(window.name)); + }); } - }) + }); return false; }); }) diff --git a/plugin/admin/app/view/vehicle/insert.html b/plugin/admin/app/view/vehicle/insert.html index b0a16a2..cfd0a62 100644 --- a/plugin/admin/app/view/vehicle/insert.html +++ b/plugin/admin/app/view/vehicle/insert.html @@ -76,18 +76,18 @@
- +
-
- +
-