多语言

This commit is contained in:
2025-05-06 17:16:37 +08:00
parent 07d628140e
commit 5ef4d9d754
32 changed files with 1596 additions and 920 deletions
+118 -188
View File
@@ -1,254 +1,184 @@
<!DOCTYPE html>
<html lang="zh-cn">
<html lang="<?= $lang ?>">
<head>
<meta charset="UTF-8">
<title>新增页面</title>
<meta charset="utf-8">
<title><?= $translations['add'] ?? '新增' ?></title>
<link rel="stylesheet" href="/app/admin/component/pear/css/pear.css" />
<link rel="stylesheet" href="/app/admin/component/jsoneditor/css/jsoneditor.css" />
<link rel="stylesheet" href="/app/admin/admin/css/reset.css" />
</head>
<body>
<form class="layui-form" action="">
<body class="pear-container">
<form class="layui-form" action="javascript:void(0);">
<div class="mainBox">
<div class="main-container mr-5">
<div class="layui-form-item">
<label class="layui-form-label required">车架号(17位国际标准)</label>
<label class="layui-form-label"><?= $translations['name'] ?? '名称' ?></label>
<div class="layui-input-block">
<input type="text" name="vin" value="" required lay-verify="required" class="layui-input">
<input type="text" name="name" lay-verify="required" placeholder="<?= $translations['name_placeholder'] ?? '请输入名称' ?>" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">分类</label>
<!-- <div class="layui-input-block">-->
<!-- <input type="text" name="classify" value="" class="layui-input">-->
<!-- </div>-->
<label class="layui-form-label"><?= $translations['name_en'] ?? '英文名称' ?></label>
<div class="layui-input-block">
<select name="classify" lay-filter="category" id="classify" required>
<option value="">请选择分类</option>
<option value="1">自主</option>
<option value="2">代理</option>
<input type="text" name="name_en" placeholder="<?= $translations['name_en_placeholder'] ?? '请输入英文名称' ?>" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><?= $translations['vin'] ?? 'VIN' ?></label>
<div class="layui-input-block">
<input type="text" name="vin" lay-verify="required" placeholder="<?= $translations['vin_placeholder'] ?? '请输入VIN' ?>" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><?= $translations['status'] ?? '状态' ?></label>
<div class="layui-input-block">
<select name="status" lay-verify="required">
<option value=""><?= $translations['status_placeholder'] ?? '请选择状态' ?></option>
<option value="1"><?= $translations['status_1'] ?? '正常' ?></option>
<option value="0"><?= $translations['status_0'] ?? '禁用' ?></option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">车辆品牌</label>
<label class="layui-form-label"><?= $translations['location'] ?? '当前位置' ?></label>
<div class="layui-input-block">
<input type="text" name="brand" value="" required lay-verify="required" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">车辆型号</label>
<div class="layui-input-block">
<input type="text" name="model" value="" required lay-verify="required" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">车辆状态</label>
<!-- <div class="layui-input-block">-->
<!-- <input type="text" name="status" value="" class="layui-input">-->
<!-- </div>-->
<div class="layui-input-block">
<select name="status" lay-filter="category" required lay-verify="required" id="status" required>
<option value="">请选择分类</option>
<option value="1">待发车</option>
<option value="2">在途(发往fbo港口)</option>
<option value="3">抵达发货港口</option>
<option value="4">在途(发往目的地仓库)</option>
<option value="5">抵达仓库</option>
<option value="6">售出</option>
<select name="location_id" lay-verify="required">
<option value=""><?= $translations['location_placeholder'] ?? '请选择当前位置' ?></option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">买车地点</label>
<label class="layui-form-label"><?= $translations['final_location'] ?? '最终位置' ?></label>
<div class="layui-input-block">
<input type="text" name="purchase_location" value="" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">手续办理地</label>
<div class="layui-input-block">
<input type="text" name="procedure_location" value="" class="layui-input">
</div>
</div>
<!-- <div class="layui-form-item">-->
<!-- <label class="layui-form-label">FBO最终目的地</label>-->
<!-- <div class="layui-input-block">-->
<!-- <input type="text" name="fbo_destination" value="" class="layui-input">-->
<!-- </div>-->
<!-- </div>-->
<!-- -->
<!-- <div class="layui-form-item">-->
<!-- <label class="layui-form-label">fbo目的地id</label>-->
<!-- <div class="layui-input-block">-->
<!-- <input type="number" name="fbo_locations_id" value="" class="layui-input">-->
<!-- </div>-->
<!-- </div>-->
<div class="layui-form-item">
<label class="layui-form-label">fbo目的地</label>
<div class="layui-input-block">
<select name="fbo_locations_id" lay-filter="category" id="fbo_locations_id" required>
<option value="">请选择分类</option>
<select name="final_location_id">
<option value=""><?= $translations['final_location_placeholder'] ?? '请选择最终位置' ?></option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">车辆所在地</label>
<!-- <div class="layui-input-block">-->
<!-- <input type="number" name="locations_id" value="" class="layui-input">-->
<!-- </div>-->
<label class="layui-form-label"><?= $translations['fbo_location'] ?? 'FBO位置' ?></label>
<div class="layui-input-block">
<select name="locations_id" lay-filter="category" id="locations_id" required>
<option value="">请选择分类</option>
<select name="fbo_location_id">
<option value=""><?= $translations['fbo_location_placeholder'] ?? '请选择FBO位置' ?></option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">最终目的地</label>
<!-- <div class="layui-input-block">-->
<!-- <input type="number" name="final_locations_id" value="" class="layui-input">-->
<!-- </div>-->
<label class="layui-form-label"><?= $translations['img_url'] ?? '图片' ?></label>
<div class="layui-input-block">
<select name="final_locations_id" lay-filter="category" required lay-verify="required" id="final_locations_id" required>
<option value="">请选择分类</option>
</select>
<div class="layui-upload">
<button type="button" class="layui-btn" id="img_url">
<i class="layui-icon layui-icon-upload"></i><?= $translations['upload_image'] ?? '上传图片' ?>
</button>
<div class="layui-upload-list">
<img class="layui-upload-img" id="preview_img" style="max-width: 100px;">
<input type="hidden" name="img_url" id="img_url_input">
</div>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">FBO发车时间</label>
<div class="layui-input-block">
<input type="text" name="departure_time" id="departure_time" value="" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">FBO到达时间</label>
<div class="layui-input-block">
<input type="text" name="arrival_time" id="arrival_time" value="" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">运输周期(天)</label>
<div class="layui-input-block">
<input type="number" name="shipping_cycle" value="" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">图片</label>
<!-- <div class="layui-input-block">-->
<!-- <input type="text" name="img_url" value="" required lay-verify="required" class="layui-input">-->
<!-- </div>-->
<div class="layui-input-block">
<img class="img-3" src=""/>
<input type="text" style="display:none" name="img_url" value="" />
<button type="button" class="pear-btn pear-btn-primary pear-btn-sm" id="img_url" permission="app.admin.upload.avatar">
<i class="layui-icon layui-icon-upload"></i>上传图片
<button class="pear-btn pear-btn-primary" lay-submit lay-filter="save">
<i class="layui-icon layui-icon-ok"></i>
<?= $translations['submit'] ?? '提交' ?>
</button>
<button type="reset" class="pear-btn">
<i class="layui-icon layui-icon-refresh"></i>
<?= $translations['reset'] ?? '重置' ?>
</button>
</div>
</div>
</div>
</div>
<div class="bottom">
<div class="button-container">
<button type="submit" class="pear-btn pear-btn-primary pear-btn-md" lay-submit=""
lay-filter="save">
提交
</button>
<button type="reset" class="pear-btn pear-btn-md">
重置
</button>
</div>
</div>
</form>
<script src="/app/admin/component/layui/layui.js?v=2.8.12"></script>
<script src="/app/admin/component/pear/pear.js"></script>
<script src="/app/admin/component/jsoneditor/jsoneditor.js"></script>
<script src="/app/admin/admin/js/permission.js"></script>
<script src="/app/admin/admin/js/common.js"></script>
<script>
layui.use(['form', 'jquery', 'layer'], function(){
const form = layui.form;
const $ = layui.jquery;
const layer = layui.layer;
function loadOptions() {
// 相关常量
const INSERT_API = "/app/admin/vehicle/insert";
const LOCATION_API = "/app/admin/location/select";
// 翻译文本
const translations = <?= json_encode($translations) ?>;
layui.use(['form', 'common', 'popup', 'upload'], function() {
let form = layui.form;
let $ = layui.$;
let common = layui.common;
let upload = layui.upload;
// 图片上传
upload.render({
elem: '#img_url',
url: '/app/admin/upload/uploadImage',
accept: 'images',
acceptMime: 'image/jpeg,image/png',
done: function(res) {
if (res.code !== 0) {
return layui.popup.failure(res.msg);
}
$('#img_url_input').val(res.data.path);
$('#preview_img').attr('src', res.data.image_url);
layui.popup.success(translations.operation_success);
}
});
// 加载位置数据
function loadLocations(select, selectedId = '') {
$.ajax({
url: '/app/admin/location/getAll',
type: 'GET',
url: LOCATION_API,
dataType: 'json',
type: 'get',
success: function(res) {
// 统一先检查状态码
if (res.code !== 0) {
layer.msg(res.msg || '加载失败');
return;
if (res.code) {
return layui.popup.failure(res.msg);
}
const select = $('#fbo_locations_id');
const locations_id = $('#locations_id');
const final_locations_id = $('#final_locations_id');
select.empty().append('<option value="">请选择分类</option>');
locations_id.empty().append('<option value="">请选择分类</option>');
$.each(res.data, function(index, item){
select.append(`<option value="${item.id}">${item.name}</option>`);
locations_id.append(`<option value="${item.id}">${item.name}</option>`);
final_locations_id.append(`<option value="${item.id}">${item.name}</option>`);
let html = '<option value="">' + translations.location_placeholder + '</option>';
res.data.forEach(function(item) {
html += '<option value="' + item.id + '"' + (item.id == selectedId ? ' selected' : '') + '>' + item.name + '</option>';
});
select.html(html);
form.render('select');
},
error: function(xhr) {
layer.msg('请求失败: ' + xhr.status);
}
});
}
loadOptions();
// 加载所有位置下拉框
loadLocations($('select[name="location_id"]'));
loadLocations($('select[name="final_location_id"]'));
loadLocations($('select[name="fbo_location_id"]'));
// 表单提交
form.on('submit(save)', function(data) {
let loading = layer.load();
$.ajax({
url: INSERT_API,
data: data.field,
dataType: 'json',
type: 'post',
success: function(res) {
layer.close(loading);
if (res.code) {
return layui.popup.failure(res.msg);
}
layui.popup.success(translations.operation_success, function() {
parent.layer.close(parent.layer.getFrameIndex(window.name));
parent.layui.table.reload("data-table");
});
}
});
return false;
});
});
</script>
<script>
// 图片上传
layui.use(["upload", "layer"], function() {
let input = layui.$("#img_url").prev();
input.prev().attr("src", input.val());
layui.upload.render({
elem: "#img_url",
url: "/app/admin/upload/uploadImage",
acceptMime: "image/gif,image/jpeg,image/jpg,image/png",
field: "__file__",
done: function (res) {
if (res.code > 0) return layui.layer.msg(res.msg);
this.item.prev().val(res.data.path).prev().attr("src", res.data.image_url);
}
});
});
</script>
<script>
// 相关接口
const INSERT_API = "/app/admin/vehicle/insert";