Files
2026-08-08 15:53:53 +08:00

89 lines
5.7 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php /** @var array|null $user */ /** @var string $error */ /** @var string $ok */ /** @var array $crmPerms */ /** @var array $psiPerms */ ?>
<div class="page-head">
<div><h1><?php echo $user ? '编辑用户' : '新增用户'; ?></h1></div>
<a class="btn-ghost" href="<?php echo site_url('admin/users'); ?>">← 返回</a>
</div>
<?php if ($error): ?><div class="alert alert-err"><?php echo e($error); ?></div><?php endif; ?>
<?php if ($ok): ?><div class="alert alert-ok"><?php echo $ok; ?></div><?php endif; ?>
<?php
$showCrm = $user ? (($user['crm_role'] ?? 'none') !== 'none') : true;
$showPsi = $user ? (($user['psi_role'] ?? 'none') !== 'none') : true;
$crmPages = ['customers' => '客户管理', 'leads' => '商机线索', 'followups' => '跟进记录'];
$psiPages = ['materials' => '物料管理', 'products' => '成品管理', 'suppliers' => '供应商', 'purchases' => '采购入库', 'sales' => '销售出库', 'stock' => '库存流水'];
?>
<div class="admin-card" style="max-width:640px">
<form method="post" action="<?php echo site_url($user ? 'admin/users/update/' . $user['id'] : 'admin/users/store'); ?>">
<?php echo csrf_field(); ?>
<div class="field">
<label>登录账号</label>
<input name="username" value="<?php echo e($user['username'] ?? ''); ?>" <?php echo $user ? 'readonly' : 'required'; ?>>
<?php if ($user): ?><small class="muted">账号创建后不可修改</small><?php endif; ?>
</div>
<div class="field">
<label>姓名 / 昵称</label>
<input name="name" value="<?php echo e($user['name'] ?? ''); ?>">
</div>
<div class="field">
<label>主角色(后台)</label>
<select name="role">
<option value="super_admin" <?php echo ($user['role'] ?? '') === 'super_admin' ? 'selected' : ''; ?>>超级管理员(全部权限 + 用户管理)</option>
<option value="admin" <?php echo ($user['role'] ?? '') === 'admin' ? 'selected' : ''; ?>>管理员(内容管理)</option>
<option value="user" <?php echo ($user['role'] ?? '') === 'user' ? 'selected' : ''; ?>>用户(受限后台权限)</option>
<option value="none" <?php echo ($user['role'] ?? '') === 'none' ? 'selected' : ''; ?>>无(无后台权限,仅作为 CRM / PSI 子系统账号)</option>
</select>
<small class="muted">「无」用于纯子系统账号:该账号只通过下方 CRM / PSI 角色进入对应系统,不显示任何后台模块,角色分配更清晰。</small>
</div>
<div class="field">
<label>CRM 系统角色</label>
<select name="crm_role">
<option value="none" <?php echo ($user['crm_role'] ?? 'none') === 'none' ? 'selected' : ''; ?>>无(不可进入 CRM</option>
<option value="user" <?php echo ($user['crm_role'] ?? 'none') === 'user' ? 'selected' : ''; ?>>用户(仅查看 CRM</option>
<option value="admin" <?php echo ($user['crm_role'] ?? 'none') === 'admin' ? 'selected' : ''; ?>>管理员(可增删改 CRM</option>
</select>
</div>
<div class="field">
<label>PSI 系统角色</label>
<select name="psi_role">
<option value="none" <?php echo ($user['psi_role'] ?? 'none') === 'none' ? 'selected' : ''; ?>>无(不可进入 PSI</option>
<option value="user" <?php echo ($user['psi_role'] ?? 'none') === 'user' ? 'selected' : ''; ?>>用户(仅查看 PSI</option>
<option value="admin" <?php echo ($user['psi_role'] ?? 'none') === 'admin' ? 'selected' : ''; ?>>管理员(可增删改 PSI</option>
</select>
</div>
<?php if ($showCrm): ?>
<div class="field">
<label>CRM 页面权限(勾选可进入的页面,仪表盘始终可见)</label>
<div class="chk-grid">
<?php foreach ($crmPages as $k => $l): ?>
<label class="chk"><input type="checkbox" name="crm_pages[]" value="<?php echo $k; ?>" <?php echo !empty($crmPerms[$k]) ? 'checked' : ''; ?>> <?php echo $l; ?></label>
<?php endforeach; ?>
</div>
<small class="muted">未勾选的页面将在侧边栏隐藏,且直接访问会被拦截。</small>
</div>
<?php endif; ?>
<?php if ($showPsi): ?>
<div class="field">
<label>PSI 页面权限(勾选可进入的页面,仪表盘始终可见)</label>
<div class="chk-grid">
<?php foreach ($psiPages as $k => $l): ?>
<label class="chk"><input type="checkbox" name="psi_pages[]" value="<?php echo $k; ?>" <?php echo !empty($psiPerms[$k]) ? 'checked' : ''; ?>> <?php echo $l; ?></label>
<?php endforeach; ?>
</div>
<small class="muted">未勾选的页面将在侧边栏隐藏,且直接访问会被拦截。</small>
</div>
<?php endif; ?>
<div class="field">
<label><?php echo $user ? '重置密码(留空则不修改)' : '登录密码'; ?></label>
<input type="password" name="password" <?php echo $user ? '' : 'required'; ?>>
</div>
<div class="field" style="display:flex;align-items:center;gap:8px">
<input type="checkbox" name="status" value="1" id="st" <?php echo ($user['status'] ?? 1) ? 'checked' : ''; ?>>
<label for="st" style="margin:0">启用该账号</label>
</div>
<div class="form-actions">
<button class="btn-primary" type="submit">保存</button>
<a class="btn-ghost" href="<?php echo site_url('admin/users'); ?>">取消</a>
</div>
</form>
</div>