diff --git a/src/api/permission/type/permission.ts b/src/api/permission/type/permission.ts index ae92e3e..b62e743 100644 --- a/src/api/permission/type/permission.ts +++ b/src/api/permission/type/permission.ts @@ -8,7 +8,10 @@ export interface AuthPermissions { updateTime?: string status?: boolean } - +export interface PermissionsIdName { + id: number + permissionName: string +} export type AddAuthPermissionResponseData = boolean export type ChangeAuthPermissionsResponseData = boolean export type DeleteAuthPermissionsResponseData = boolean diff --git a/src/api/register/index.ts b/src/api/register/index.ts index f70549f..4d5936e 100644 --- a/src/api/register/index.ts +++ b/src/api/register/index.ts @@ -3,24 +3,40 @@ import { Md5 } from "ts-md5" import { request } from "@/utils/service" import * as AxiosType from "axios/index" import * as Requests from "@/api/types/requests" - +import { getAuthByRoleId } from "@/api/register/types/register" +import { useUserStore } from "@/store/modules/user" +const user = useUserStore() export function registerApi(data: Register.IRegisterRequestData) { const md5er = new Md5() md5er.appendStr(data.password) data.password = md5er.end(false) as string - const requestData = new URLSearchParams() - requestData.append("username", data.username) - requestData.append("password", data.password) - requestData.append("relName", data.relName) - requestData.append("email", data.email) - requestData.append("roleId", data.roleId.toString()) + if (data.roleId != 5) { + const requestData = new URLSearchParams() + requestData.append("username", data.username) + requestData.append("password", data.password) + requestData.append("relName", data.relName) + requestData.append("email", data.email) + requestData.append("roleId", data.roleId.toString()) + requestData.append("auth", getAuthByRoleId(data.roleId)) + return request>>({ + url: "/api/auth/register", + method: "post", + headers: { + "Content-Type": "application/x-www-form-urlencoded" + }, + data: requestData, + withCredentials: true + }) + } + data.auth = getAuthByRoleId(data.roleId) + data.createId = Number.parseInt(user.token) return request>>({ - url: "/api/auth/register", + url: "/account/addStoreAdmin", method: "post", headers: { - "Content-Type": "application/x-www-form-urlencoded" + "Content-Type": "application/json" }, - data: requestData, + data: data, withCredentials: true }) } diff --git a/src/api/register/types/register.ts b/src/api/register/types/register.ts index 0e4acce..d0e1b7c 100644 --- a/src/api/register/types/register.ts +++ b/src/api/register/types/register.ts @@ -4,6 +4,20 @@ export interface IRegisterRequestData { relName: string password: string roleId: number + auth?: "系统管理员" | "租户管理员" | "商户管理员" | "商户" + countdown?: number + createId?: number +} +export const getAuthByRoleId = (roleId: number): "系统管理员" | "租户管理员" | "商户管理员" | "商户" => { + switch (roleId) { + case 1: + return "系统管理员" + case 3: + return "租户管理员" + case 4: + return "商户管理员" + default: + return "商户" + } } - export type IRegisterResponseData = string diff --git a/src/api/rolePermissions/index.ts b/src/api/rolePermissions/index.ts new file mode 100644 index 0000000..b22c3a6 --- /dev/null +++ b/src/api/rolePermissions/index.ts @@ -0,0 +1,55 @@ +import { AxiosResponseData, IPageResponseData, pageSize } from "@/api/types/requests" +import { request } from "@/utils/service" +import { AuthRolesPermissions } from "@/api/rolePermissions/types/RolePermissions" +type ApiType = AuthRolesPermissions +const apiName = "authRolesPermission" +const upperName = "AuthRolesPermissions" +export function addRolePermissions(data: ApiType) { + return request>({ + url: "/" + apiName + "/add" + upperName, + method: "POST", + data: data, + withCredentials: true + }) +} +export function changePermissions(newData: ApiType) { + return request>({ + url: "/" + apiName + "/change" + upperName, + method: "POST", + data: newData, + withCredentials: true + }) +} +export function deletePermissions(roleId: number, permissionId: number) { + return request>({ + url: "/" + apiName + "/del" + upperName, + method: "GET", + params: { + roleId: roleId, + permissionId: permissionId + }, + withCredentials: true + }) +} +export function get(page: number) { + return request>>({ + url: "/" + apiName + "/get" + upperName, + method: "GET", + params: { + page: page, + num: pageSize + }, + withCredentials: true + }) +} +export function status(id: number, status: boolean) { + return request>({ + url: "/" + apiName + "/change" + upperName + "Stats", + method: "GET", + params: { + authPermissionId: id, + status: status + }, + withCredentials: true + }) +} diff --git a/src/api/rolePermissions/types/RolePermissions.ts b/src/api/rolePermissions/types/RolePermissions.ts new file mode 100644 index 0000000..460ae3b --- /dev/null +++ b/src/api/rolePermissions/types/RolePermissions.ts @@ -0,0 +1,7 @@ +export interface AuthRolesPermissions { + roleId: number + permissionId: number + createId?: number + createTime?: string + updateTime?: string +} diff --git a/src/api/roles/index.ts b/src/api/roles/index.ts new file mode 100644 index 0000000..980243c --- /dev/null +++ b/src/api/roles/index.ts @@ -0,0 +1,72 @@ +import { AxiosResponseData, IPageResponseData, pageSize } from "@/api/types/requests" +import { request } from "@/utils/service" +import { AuthRoles, RolePermission } from "@/api/roles/types/Roles" +import { PermissionsIdName } from "@/api/permission/type/permission" +type ApiType = AuthRoles +const apiName = "authRoles" +const upperName = "AuthRoles" +export function add(data: ApiType) { + return request>({ + url: "/" + apiName + "/add" + upperName, + method: "POST", + data: data, + withCredentials: true + }) +} +export function change(newData: ApiType) { + return request>({ + url: "/" + apiName + "/change" + upperName, + method: "POST", + data: newData, + withCredentials: true + }) +} +export function delete_(id: number) { + return request>({ + url: "/" + apiName + "/del" + upperName, + method: "GET", + params: { + id: id + }, + withCredentials: true + }) +} +export function get(page: number) { + return request>>({ + url: "/" + apiName + "/get" + upperName, + method: "GET", + params: { + page: page, + num: pageSize + }, + withCredentials: true + }) +} +export function status(id: number, status: boolean) { + return request>({ + url: "/" + apiName + "/change" + upperName + "Stats", + method: "GET", + params: { + authPermissionId: id, + status: status + }, + withCredentials: true + }) +} +export function getAuthPermissionId(roleId: number) { + return request>({ + url: "/" + apiName + "/getAuthPermissionId", + method: "GET", + params: { + roleId: roleId + }, + withCredentials: true + }) +} +export function getAllPermissions() { + return request>({ + url: "/authPermissions/getAuthPermissionsId", + method: "GET", + withCredentials: true + }) +} diff --git a/src/api/roles/types/Roles.ts b/src/api/roles/types/Roles.ts new file mode 100644 index 0000000..92978d4 --- /dev/null +++ b/src/api/roles/types/Roles.ts @@ -0,0 +1,17 @@ +export interface AuthRoles { + id?: number + roleName: string + description: string + createId?: number + createTime?: string + updateTime?: string + permissions?: RolePermission[] + status: boolean +} +export interface RolePermission { + name: string + id: number + description?: string + status?: boolean + code?: string +} diff --git a/src/api/users/index.ts b/src/api/users/index.ts index 63536f8..1e024e9 100644 --- a/src/api/users/index.ts +++ b/src/api/users/index.ts @@ -10,6 +10,7 @@ import { IGetAllUserResponseData } from "@/api/users/types/users" import { AxiosResponseData } from "@/api/types/requests" +import { getAuthByRoleId } from "@/api/register/types/register" export function getAllUsersApi(page: number) { return request>>({ @@ -33,6 +34,7 @@ export function delUserApi(userId: number) { }) } export function exChangeUserDataApi(newUser: IExChangeAccountRequestsData) { + newUser.auth = getAuthByRoleId(newUser.roleId) return request>>({ url: "/account/changeAccount", method: "post", @@ -58,3 +60,47 @@ export function getUserInfoApi() { withCredentials: true }) } +export function getRemainderTime(userId: number) { + return request>({ + url: "/verify/getRemainderTime", + method: "get", + params: { + id: userId + }, + withCredentials: true + }) +} +export function verify(userId: number, name: string, phone: string) { + return request>({ + url: "/verify/verify", + method: "get", + params: { + id: userId, + name: name, + phone: phone + }, + withCredentials: true + }) +} +export function getVerifyMessage(userId: number) { + return request>({ + url: "/verify/getVerifyMessage", + method: "get", + params: { + createId: userId + }, + withCredentials: true + }) +} +export function confirmVerify(createdId: number, storeId: number, status: boolean) { + return request>({ + url: "/verify/confirmVerify", + method: "get", + params: { + createId: createdId, + storeId: storeId, + status: status + }, + withCredentials: true + }) +} diff --git a/src/api/users/types/users.ts b/src/api/users/types/users.ts index 8418240..367ad1c 100644 --- a/src/api/users/types/users.ts +++ b/src/api/users/types/users.ts @@ -6,6 +6,7 @@ export interface IExChangeAccountRequestsData { email: string relName: string roleId: number + auth?: string } export type IDelUserResponseData = string @@ -21,5 +22,6 @@ export interface IPermission { export interface IAccountInfo { id: string info: IPermission[] + roleId: string roleName: string } diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue index a223006..64a938d 100644 --- a/src/layout/components/AppMain.vue +++ b/src/layout/components/AppMain.vue @@ -1,19 +1,74 @@