Files
KCGL/inventory-web/src/api/auth.ts
yueli 4f5965db02 feat: JWT多租户数据权限隔离 & 主管系统管理权限 & 含税单价补齐
## 多租户公司数据隔离
- 新增 get_current_company_filter() 工具函数 (decorators.py)
  SUPER_ADMIN: 可传company_name参数过滤或传ALL看全量
  其他角色: 强制隔离到JWT中的company_name
- 重构 base_service.py / buy_service.py: 用集中式函数替换内联公司过滤
- SysRolePermission 表新增 company_name 字段,支持同角色不同公司权限
- get_user_permissions() 新增 company_name 参数,查公司定制+全局模板权限
- permission.py API 新增 @permission_required 拦截 + 公司过滤
- 19个API/service文件传递 company_name 到权限查询

## 主管系统管理权限
- delete_user() 允许SUPERVISOR删除同公司用户 (原仅SUPER_ADMIN)
- get_all_users() 新增 company_name 参数过滤
- 用户列表/权限分配 API 应用 get_current_company_filter()
- 前端 UserCreate.vue: 超管可见公司下拉框,主管隐藏部门字段

## 前端多租户适配
- material/list.vue / buy.vue: 公司下拉框仅超管可见,默认ALL
- UserCreate.vue: 新增搜索栏公司筛选,部门字段按角色显隐
- auth.ts: getUserList() 支持 params 参数

## Bug修复: 含税单价字段补齐
- buy.vue: 表格列/高级筛选/排序/权限映射新增 post_tax_unit_price
- buy_service.py: allowed_fields/sort_field_map 新增 post_tax_unit_price
2026-07-13 15:12:22 +08:00

96 lines
2.1 KiB
TypeScript
Raw 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.

import request from '@/utils/request'
// 登录
export function login(data: any) {
return request({
url: '/v1/auth/login',
method: 'post',
data
})
}
// 创建用户 (管理员专用)
export function createUser(data: any) {
return request({
url: '/v1/auth/user/create',
method: 'post',
data
})
}
// [新增] 更新用户
export function updateUser(id: number, data: any) {
return request({
url: `/v1/auth/user/${id}`,
method: 'put',
data
})
}
// 获取当前登录用户信息
export function getUserInfo() {
return request({
url: '/v1/auth/me',
method: 'get'
})
}
// 获取所有用户列表(支持公司过滤参数)
export function getUserList(params?: any) {
return request({
url: '/v1/auth/users',
method: 'get',
params
})
}
// 删除用户
export function deleteUser(id: number) {
return request({
url: `/v1/auth/user/${id}`,
method: 'delete'
})
}
// 【新增】获取当前登录用户的个人资料(只含姓名/账号/部门,严格脱敏)
export function getMyProfile() {
return request({
url: '/v1/auth/me',
method: 'get'
})
}
// 【新增】自我修改密码无需旧密码JWT 已证明身份)
export function changeMyPassword(data: { new_password: string; confirm_password: string }) {
return request({
url: '/v1/auth/me/password',
method: 'put',
data
})
}
// 【新增】自我更新邮箱(与密码修改完全隔离)
export function updateMyEmail(data: { email: string }) {
return request({
url: '/v1/auth/me/email',
method: 'put',
data
})
}
// 【新增】批量创建用户
export function batchCreateUser(data: any[]) {
return request({
url: '/v1/auth/user/batch',
method: 'post',
data
})
}
// ★ 获取可指定审批人列表SUPERVISOR / SUPER_ADMIN 且 status=active
export function getApproversList() {
return request({
url: '/v1/auth/users/approvers',
method: 'get'
})
}