87 lines
3.5 KiB
PHP
87 lines
3.5 KiB
PHP
<?php $isEdit = $mode !== null; ?>
|
||||
|
|
<div class="page-header">
|
|||
|
|
<div>
|
|||
|
|
<h1><?= $isEdit ? '编辑出行方式' : '新增出行方式' ?></h1>
|
|||
|
|
<?php if ($isEdit): ?>
|
|||
|
|
<p class="muted">ID:<?= (int)$mode['id'] ?></p>
|
|||
|
|
<?php endif; ?>
|
|||
|
|
</div>
|
|||
|
|
<a href="<?= url('travel_modes/index') ?>" class="btn">返回列表</a>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<form method="post" action="<?= url($isEdit ? 'travel_modes/update' : 'travel_modes/store') ?>" class="form">
|
|||
|
|
<input type="hidden" name="_csrf" value="<?= e(csrf_token()) ?>">
|
|||
|
|
<?php if ($isEdit): ?>
|
|||
|
|
<input type="hidden" name="id" value="<?= (int)$mode['id'] ?>">
|
|||
|
|
<?php endif; ?>
|
|||
|
|
|
|||
|
|
<div class="form-row">
|
|||
|
|
<label>交通类型 *</label>
|
|||
|
|
<select name="mode_type" id="mode-type-select" required>
|
|||
|
|
<?php foreach ($modeLabels as $key => $label): ?>
|
|||
|
|
<option value="<?= e($key) ?>" <?= ($mode['mode_type'] ?? '') === $key ? 'selected' : '' ?>>
|
|||
|
|
<?= e($label) ?>
|
|||
|
|
</option>
|
|||
|
|
<?php endforeach; ?>
|
|||
|
|
</select>
|
|||
|
|
<p class="muted" style="font-size:12px; margin-top:6px;">
|
|||
|
|
具体的车次、航班号、座位号在「活动节点」中填写,此处只维护出行方式本身。
|
|||
|
|
</p>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="form-row mode-field" id="field-vehicle_id" style="display:none;">
|
|||
|
|
<label>选择车辆 *</label>
|
|||
|
|
<select name="vehicle_id" id="vehicle-select">
|
|||
|
|
<option value="">— 请选择车辆 —</option>
|
|||
|
|
<?php foreach ($vehicles as $v): ?>
|
|||
|
|
<option value="<?= (int)$v['id'] ?>"
|
|||
|
|
data-vtype="<?= e($v['vehicle_type']) ?>"
|
|||
|
|
<?= (int)($mode['vehicle_id'] ?? 0) === (int)$v['id'] ? 'selected' : '' ?>>
|
|||
|
|
<?= e($v['plate_number'] . ' · ' . $v['model_name'] . ($v['vehicle_type'] === 'rental' ? '(租)' : '')) ?>
|
|||
|
|
</option>
|
|||
|
|
<?php endforeach; ?>
|
|||
|
|
</select>
|
|||
|
|
<p class="muted" style="font-size:12px; margin-top:6px;">
|
|||
|
|
自有车/租车类型只能选择对应车辆。若列表为空,请先维护车辆库。
|
|||
|
|
</p>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="form-row">
|
|||
|
|
<label>备注</label>
|
|||
|
|
<textarea name="notes" rows="3" placeholder="其他补充说明,如常走的路线、使用偏好等"><?= e($mode['notes'] ?? '') ?></textarea>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="form-actions">
|
|||
|
|
<a href="<?= url('travel_modes/index') ?>" class="btn">取消</a>
|
|||
|
|
<button type="submit" class="btn-primary">保存</button>
|
|||
|
|
</div>
|
|||
|
|
</form>
|
|||
|
|
|
|||
|
|
<script>
|
|||
|
|
(function () {
|
|||
|
|
var modeSelect = document.getElementById('mode-type-select');
|
|||
|
|
if (!modeSelect) return;
|
|||
|
|
|
|||
|
|
var vehicleField = document.getElementById('field-vehicle_id');
|
|||
|
|
var vehicleSelect = document.getElementById('vehicle-select');
|
|||
|
|
|
|||
|
|
function refresh() {
|
|||
|
|
var type = modeSelect.value;
|
|||
|
|
var isDrive = (type === 'drive_own' || type === 'drive_rental');
|
|||
|
|
vehicleField.style.display = isDrive ? '' : 'none';
|
|||
|
|
|
|||
|
|
if (vehicleSelect) {
|
|||
|
|
var want = type === 'drive_own' ? 'own' : (type === 'drive_rental' ? 'rental' : null);
|
|||
|
|
Array.prototype.forEach.call(vehicleSelect.options, function (opt) {
|
|||
|
|
if (!opt.value) return;
|
|||
|
|
var vt = opt.getAttribute('data-vtype');
|
|||
|
|
opt.hidden = (want && vt !== want);
|
|||
|
|
if (opt.hidden && opt.selected) opt.selected = false;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
modeSelect.addEventListener('change', refresh);
|
|||
|
|
refresh();
|
|||
|
|
})();
|
|||
|
|
</script>
|