feat(admin): 账号创建支持单位电话
This commit is contained in:
parent
334aa77622
commit
34bce0f5df
|
|
@ -275,6 +275,7 @@ def admin_create_user():
|
|||
return jsonify({"success": False, "message": "用户名和密码均不能为空"}), 400
|
||||
parent_department_id = (payload.get("parent_department_id") or "").strip() or None
|
||||
service_department_id = (payload.get("service_department_id") or "").strip() or None
|
||||
department_phone = (payload.get("department_phone") or "").strip() or None
|
||||
|
||||
# 如果未显式绑定部门,则为该用户创建一个同名单位,并按父级决定层级
|
||||
created_department: Optional[Dict[str, Any]] = None
|
||||
|
|
@ -285,6 +286,7 @@ def admin_create_user():
|
|||
created_department = create_service_department(
|
||||
name=dept_name,
|
||||
code=dept_code,
|
||||
phone=department_phone,
|
||||
parent_id=parent_department_id,
|
||||
)
|
||||
service_department_id = created_department.get("id")
|
||||
|
|
@ -301,6 +303,7 @@ def admin_create_user():
|
|||
service_department_id=service_department_id,
|
||||
department_role=payload.get("department_role"),
|
||||
parent_department_id=parent_department_id,
|
||||
service_department_phone=department_phone,
|
||||
)
|
||||
return jsonify({"success": True, "data": {"user": user, "department": created_department}})
|
||||
except ValueError as exc:
|
||||
|
|
|
|||
|
|
@ -419,6 +419,7 @@ def create_user(
|
|||
service_department_id: Optional[str] = None,
|
||||
department_role: Optional[str] = None,
|
||||
parent_department_id: Optional[str] = None,
|
||||
service_department_phone: Optional[str] = None,
|
||||
) -> Dict[str, Any]:
|
||||
username_clean = (username or "").strip().lower()
|
||||
if not username_clean or not password:
|
||||
|
|
@ -433,6 +434,7 @@ def create_user(
|
|||
created = lic_repo.create_service_department(
|
||||
name=dept_name,
|
||||
code=dept_code,
|
||||
phone=(service_department_phone or "").strip() or None,
|
||||
parent_id=(parent_department_id or "").strip() or None,
|
||||
)
|
||||
dept_token = created.get("id")
|
||||
|
|
|
|||
|
|
@ -1211,6 +1211,9 @@
|
|||
<label>显示名称
|
||||
<input type="text" name="display_name" placeholder="可选,用于展示">
|
||||
</label>
|
||||
<label>单位电话(可选)
|
||||
<input type="text" name="department_phone" placeholder="用于自动创建的单位联系电话">
|
||||
</label>
|
||||
<label>上级单位(可选,不选则创建顶级市级单位)
|
||||
<select id="userCreateParent" class="form-select">
|
||||
<option value="">不选择上级(顶级单位)</option>
|
||||
|
|
@ -1672,12 +1675,14 @@ function fillUserDrawer(user) {
|
|||
}
|
||||
if (userSummaryBox) {
|
||||
const dept = user.department ? `${user.department.name || ''}${user.department.code ? ' · ' + user.department.code : ''}` : '未绑定';
|
||||
const deptPhone = user.department ? (user.department.phone || '—') : '—';
|
||||
userSummaryBox.innerHTML = `
|
||||
<div class="summary-grid">
|
||||
<div><div class="label">登录账号</div><div class="value">${user.username || '—'}</div></div>
|
||||
<div><div class="label">显示名</div><div class="value">${user.display_name || '—'}</div></div>
|
||||
<div><div class="label">角色</div><div class="value"><span class="pill">${getRoleLabel(user.role)}</span></div></div>
|
||||
<div><div class="label">绑定部门</div><div class="value">${dept}</div></div>
|
||||
<div><div class="label">单位电话</div><div class="value">${deptPhone}</div></div>
|
||||
<div><div class="label">创建时间</div><div class="value">${formatDate(user.created_at)}</div></div>
|
||||
</div>
|
||||
`;
|
||||
|
|
@ -1779,7 +1784,8 @@ if (userCreateForm) {
|
|||
username: form.username.value.trim(),
|
||||
password: form.password.value.trim(),
|
||||
display_name: form.display_name.value.trim(),
|
||||
parent_department_id: parentDepartmentId || null
|
||||
parent_department_id: parentDepartmentId || null,
|
||||
department_phone: (form.department_phone.value || '').trim()
|
||||
};
|
||||
try {
|
||||
const resp = await fetchJSON(`${API_BASE}/admin/users`, {
|
||||
|
|
@ -1793,6 +1799,7 @@ if (userCreateForm) {
|
|||
if (parentSelect) {
|
||||
parentSelect.value = '';
|
||||
}
|
||||
form.department_phone.value = '';
|
||||
switchUserSubtab('user-list-panel');
|
||||
await refreshDepartments();
|
||||
await refreshUsers();
|
||||
|
|
|
|||
Loading…
Reference in New Issue