130 lines
5.9 KiB
PHP
130 lines
5.9 KiB
PHP
<?php
|
|||
|
|
/**
|
||
|
|
* 车辆管理(v24 第 16 批 用户第 8 条)。
|
||
|
|
*
|
||
|
|
* 用户原话:「注意,我们在财务中,已经把车辆添加进去了,所以这里不用重复添加
|
||
|
|
* 那里面的车辆,直接读取就可以,但是可以添加其他的车辆,
|
||
|
|
* 比如租的车,借别人的车。」
|
||
|
|
*
|
||
|
|
* 所以这一页有两块:
|
||
|
|
* ① **财务里已登记的车**(只读)—— 只列出来,不给改不给删(那是财务的数据);
|
||
|
|
* ② **出行用的车**(本表)—— 自家 / 租的 / 借的,可增删改。
|
||
|
|
*
|
||
|
|
* @param array $ledger Vehicle::fromLedger() 的结果(只读)
|
||
|
|
* @param array $mine Vehicle::all() 的结果
|
||
|
|
*/
|
||
|
|
$canWrite = \App\Auth::canWrite();
|
||
|
|
$ledger = $ledger ?? [];
|
||
|
|
$mine = $mine ?? [];
|
||
|
|
$back = url('trips');
|
||
|
|
?>
|
||
|
|
<div class="page-head">
|
||
|
|
<h1>车辆管理</h1>
|
||
|
|
<span class="sub">出行时能挑的车:自家的、租的、借别人的</span>
|
||
|
|
<div class="actions">
|
||
|
|
<a class="btn btn-ghost" href="<?= e($back) ?>">返回旅程</a>
|
||
|
|
<?php $trSetCurrent = 'vehicles'; require __DIR__ . '/_settings_menu.php'; ?>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<?php /* ---- ① 来自财务的车(只读引用)---- */ ?>
|
||
|
|
<div class="card card-pad">
|
||
|
|
<h2 class="cinema-h2">
|
||
|
|
财务里已登记的车
|
||
|
|
<span class="hint">只读 —— 要改请到财务模块</span>
|
||
|
|
</h2>
|
||
|
|
<?php if (!$ledger): ?>
|
||
|
|
<p class="empty-hint">
|
||
|
|
财务里还没有登记车子。到「财务 → 记一笔」里把车子作为一项资产记下来,
|
||
|
|
这里就会自动出现(<b>不必在这里重复添加</b>)。
|
||
|
|
</p>
|
||
|
|
<?php else: ?>
|
||
|
|
<ul class="veh-list">
|
||
|
|
<?php foreach ($ledger as $v): ?>
|
||
|
|
<li class="veh-row veh-ro">
|
||
|
|
<span class="veh-ico">🚗</span>
|
||
|
|
<span class="veh-name"><?= e((string)$v['name']) ?></span>
|
||
|
|
<span class="veh-tag">来自财务</span>
|
||
|
|
</li>
|
||
|
|
<?php endforeach; ?>
|
||
|
|
</ul>
|
||
|
|
<p class="small muted">
|
||
|
|
这些是财务里的**资产记录**(有一台车值多少钱),不一定有车牌与车型。
|
||
|
|
出行要选车时它们也会出现在下拉里,标着「来自财务」。
|
||
|
|
</p>
|
||
|
|
<?php endif; ?>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<?php /* ---- ② 出行用的车(本表)---- */ ?>
|
||
|
|
<div class="card card-pad">
|
||
|
|
<h2 class="cinema-h2">
|
||
|
|
出行用的车
|
||
|
|
<span class="hint">自家车可以录一台方便选;租的车、借的车录在这里</span>
|
||
|
|
</h2>
|
||
|
|
|
||
|
|
<?php if ($mine): ?>
|
||
|
|
<ul class="veh-list">
|
||
|
|
<?php foreach ($mine as $v): ?>
|
||
|
|
<li class="veh-row">
|
||
|
|
<span class="veh-ico"><?= ($v['vtype'] ?? 'own') === 'rental' ? '🔑' : (($v['vtype'] ?? 'own') === 'borrowed' ? '🤝' : '🚗') ?></span>
|
||
|
|
<?php if ($canWrite): ?>
|
||
|
|
<form class="inline-form veh-form" method="post" action="<?= e(url('trips/vehicles_save')) ?>">
|
||
|
|
<?= csrf_field() ?>
|
||
|
|
<input type="hidden" name="id" value="<?= (int)$v['id'] ?>">
|
||
|
|
<input class="input" name="plate" value="<?= e((string)$v['plate']) ?>"
|
||
|
|
placeholder="车牌" aria-label="车牌">
|
||
|
|
<input class="input" name="name" value="<?= e((string)$v['name']) ?>"
|
||
|
|
placeholder="车型名" required aria-label="车型名">
|
||
|
|
<select class="select" name="vtype" aria-label="来源">
|
||
|
|
<?php foreach (\App\Vehicle::TYPES as $vk => $vv): ?>
|
||
|
|
<option value="<?= e($vk) ?>"<?= (string)$v['vtype'] === $vk ? ' selected' : '' ?>>
|
||
|
|
<?= e($vv) ?>
|
||
|
|
</option>
|
||
|
|
<?php endforeach; ?>
|
||
|
|
</select>
|
||
|
|
<input class="input" name="vendor" value="<?= e((string)($v['vendor'] ?? '')) ?>"
|
||
|
|
placeholder="租车公司 / 车主" aria-label="租车公司或车主">
|
||
|
|
<label class="veh-def">
|
||
|
|
<input type="checkbox" name="is_default" value="1"<?= (int)$v['is_default'] === 1 ? ' checked' : '' ?>>
|
||
|
|
<span>默认</span>
|
||
|
|
</label>
|
||
|
|
<button class="btn btn-sm" type="submit">保存</button>
|
||
|
|
</form>
|
||
|
|
<form class="inline-form" method="post" action="<?= e(url('trips/vehicles_del')) ?>">
|
||
|
|
<?= csrf_field() ?>
|
||
|
|
<input type="hidden" name="id" value="<?= (int)$v['id'] ?>">
|
||
|
|
<button class="btn btn-ghost btn-sm" type="submit"
|
||
|
|
onclick="return confirm('删掉这辆车?')">删</button>
|
||
|
|
</form>
|
||
|
|
<?php else: ?>
|
||
|
|
<span class="veh-name"><?= e(\App\Vehicle::label($v)) ?></span>
|
||
|
|
<span class="veh-tag"><?= e(\App\Vehicle::TYPES[(string)$v['vtype']] ?? '') ?></span>
|
||
|
|
<?php endif; ?>
|
||
|
|
</li>
|
||
|
|
<?php endforeach; ?>
|
||
|
|
</ul>
|
||
|
|
<?php else: ?>
|
||
|
|
<p class="empty-hint">还没有。自家车录一台,出行时能直接挑。</p>
|
||
|
|
<?php endif; ?>
|
||
|
|
|
||
|
|
<?php if ($canWrite): ?>
|
||
|
|
<h3 class="set-sub">加一辆车</h3>
|
||
|
|
<form class="inline-form veh-form veh-add" method="post" action="<?= e(url('trips/vehicles_save')) ?>">
|
||
|
|
<?= csrf_field() ?>
|
||
|
|
<input class="input" name="plate" placeholder="车牌(借的车可不填)" aria-label="车牌">
|
||
|
|
<input class="input" name="name" placeholder="车型名,如「大众朗逸」" required aria-label="车型名">
|
||
|
|
<select class="select" name="vtype" aria-label="来源">
|
||
|
|
<?php foreach (\App\Vehicle::TYPES as $vk => $vv): ?>
|
||
|
|
<option value="<?= e($vk) ?>"><?= e($vv) ?></option>
|
||
|
|
<?php endforeach; ?>
|
||
|
|
</select>
|
||
|
|
<input class="input" name="vendor" placeholder="租车公司 / 车主" aria-label="租车公司或车主">
|
||
|
|
<input class="input" name="order_no" placeholder="租车订单号" aria-label="租车订单号">
|
||
|
|
<label class="veh-def">
|
||
|
|
<input type="checkbox" name="is_default" value="1">
|
||
|
|
<span>设为默认</span>
|
||
|
|
</label>
|
||
|
|
<button class="btn btn-sm" type="submit">加进车辆库</button>
|
||
|
|
</form>
|
||
|
|
<?php endif; ?>
|
||
|
|
</div>
|