40 lines
1.5 KiB
HTML
40 lines
1.5 KiB
HTML
{% extends "base.html" %}
|
||
{% block body %}
|
||
<h1 class="page">用户与权限</h1>
|
||
<div class="card">
|
||
<h2>新增用户</h2>
|
||
<form method="post">
|
||
<div class="form-grid">
|
||
<div><label>登录名 *</label><input type="text" name="username" required></div>
|
||
<div><label>姓名</label><input type="text" name="name"></div>
|
||
<div><label>角色</label>
|
||
<select name="role">
|
||
{% for k, v in roles.items() %}<option value="{{ k }}">{{ v }}</option>{% endfor %}
|
||
</select>
|
||
</div>
|
||
<div><label>初始密码(默认 123456)</label><input type="text" name="password" placeholder="123456"></div>
|
||
</div>
|
||
<div style="margin-top:12px;"><button class="btn primary">新增</button></div>
|
||
</form>
|
||
</div>
|
||
|
||
<div class="card">
|
||
<h2>用户列表</h2>
|
||
<table class="grid">
|
||
<tr><th>登录名</th><th>姓名</th><th>角色</th><th>状态</th><th>创建时间</th></tr>
|
||
{% for t in rows %}
|
||
<tr>
|
||
<td>{{ t.username }}</td><td>{{ t.name }}</td>
|
||
<td>{{ roles.get(t.role, t.role) }}</td>
|
||
<td>{{ '启用' if t.active else '停用' }}</td>
|
||
<td>{{ t.created_at.strftime('%Y-%m-%d %H:%M') if t.created_at else '-' }}</td>
|
||
</tr>
|
||
{% endfor %}
|
||
</table>
|
||
<div class="hint" style="margin-top:12px;">
|
||
制单员:新建 / 编辑 / 提交;主管审核:审核通过或驳回;经理批准:批准后订单生效并可导出正式 PDF;
|
||
管理员:全部权限,含用户、供应商、物料维护。
|
||
</div>
|
||
</div>
|
||
{% endblock %}
|