first commit
This commit is contained in:
+150
@@ -0,0 +1,150 @@
|
||||
import request from "@/utils/request";
|
||||
import { verify } from "crypto";
|
||||
|
||||
const AUTH_BASE_URL = "/api/v1/auth";
|
||||
|
||||
class AuthAPI {
|
||||
/** 登录 接口*/
|
||||
static login(data: LoginData) {
|
||||
const formData = new FormData();
|
||||
formData.append("username", data.username);
|
||||
formData.append("password", data.password);
|
||||
formData.append("captchaKey", data.captchaKey);
|
||||
formData.append("captchaCode", data.captchaCode);
|
||||
|
||||
return request<any, LoginResult>({
|
||||
url: `${AUTH_BASE_URL}/login`,
|
||||
method: "post",
|
||||
data: formData,
|
||||
headers: {
|
||||
"Content-Type": "multipart/form-data",
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
/** 注销 接口*/
|
||||
static logout() {
|
||||
return request({
|
||||
url: `${AUTH_BASE_URL}/logout`,
|
||||
method: "delete",
|
||||
});
|
||||
}
|
||||
|
||||
/** 获取验证码 接口*/
|
||||
static getCaptcha() {
|
||||
return request<any, CaptchaResult>({
|
||||
url: `${AUTH_BASE_URL}/captcha`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
static sendCode(data: SendCodeData) {
|
||||
const formData = new FormData();
|
||||
formData.append("contact", data.contact);
|
||||
formData.append("captchaKey", data.captchaKey);
|
||||
formData.append("captchaCode", data.captchaCode);
|
||||
|
||||
return request({
|
||||
url: `${AUTH_BASE_URL}/sendRegCode`,
|
||||
method: "post",
|
||||
data: formData,
|
||||
headers: {
|
||||
"Content-Type": "multipart/form-data",
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
/** 登录 接口*/
|
||||
static register(data: RegisterData) {
|
||||
const formData = new FormData();
|
||||
formData.append("username", data.username);
|
||||
formData.append("password", data.password);
|
||||
formData.append("verifyCode", data.verifyCode);
|
||||
|
||||
return request<any, LoginResult>({
|
||||
url: `${AUTH_BASE_URL}/register`,
|
||||
method: "post",
|
||||
data: formData,
|
||||
headers: {
|
||||
"Content-Type": "multipart/form-data",
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
static autoLogin(username: string, password: string) {
|
||||
const formData = new FormData();
|
||||
formData.append("username", username);
|
||||
formData.append("password", password);
|
||||
|
||||
return request<any, LoginResult>({
|
||||
url: `${AUTH_BASE_URL}/autoLogin`,
|
||||
method: "post",
|
||||
data: formData,
|
||||
headers: {
|
||||
"Content-Type": "multipart/form-data",
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export default AuthAPI;
|
||||
|
||||
/** 登录请求参数 */
|
||||
export interface LoginData {
|
||||
/** 用户名 */
|
||||
username: string;
|
||||
/** 密码 */
|
||||
password: string;
|
||||
/** 验证码缓存key */
|
||||
captchaKey: string;
|
||||
/** 验证码 */
|
||||
captchaCode: string;
|
||||
}
|
||||
|
||||
/** 登录响应 */
|
||||
export interface LoginResult {
|
||||
/** 访问token */
|
||||
accessToken?: string;
|
||||
/** 过期时间(单位:毫秒) */
|
||||
expires?: number;
|
||||
/** 刷新token */
|
||||
refreshToken?: string;
|
||||
/** token 类型 */
|
||||
tokenType?: string;
|
||||
}
|
||||
|
||||
/** 验证码响应 */
|
||||
export interface CaptchaResult {
|
||||
/** 验证码缓存key */
|
||||
captchaKey: string;
|
||||
/** 验证码图片Base64字符串 */
|
||||
captchaBase64: string;
|
||||
}
|
||||
|
||||
export interface CaptchaData {
|
||||
/** 验证码缓存key */
|
||||
captchaKey: string;
|
||||
/** 验证码 */
|
||||
captchaCode: string;
|
||||
}
|
||||
|
||||
export interface SendCodeData {
|
||||
/** 发送验证码账号 */
|
||||
contact: string;
|
||||
/** 验证码缓存key */
|
||||
captchaKey: string;
|
||||
/** 验证码 */
|
||||
captchaCode: string;
|
||||
}
|
||||
|
||||
/** 注册请求参数 */
|
||||
export interface RegisterData {
|
||||
/** 用户名 */
|
||||
username: string;
|
||||
/** 密码 */
|
||||
password: string;
|
||||
/** 重复输入密码 */
|
||||
repeatPassword: string;
|
||||
/** 验证码 */
|
||||
verifyCode: string;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
import request from "@/utils/request";
|
||||
|
||||
const BANK_BASE_URL = "/api/v1/bank";
|
||||
|
||||
class BankAPI {
|
||||
static hotlist() {
|
||||
return request<any, string[]>({
|
||||
url: `${BANK_BASE_URL}/hotList`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
static bankInfo() {
|
||||
return request<any, BankInfo>({
|
||||
url: `${BANK_BASE_URL}/me`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export default BankAPI;
|
||||
|
||||
export interface BankInfo {
|
||||
userId: number;
|
||||
bankName?: string;
|
||||
bankCardNum?: string;
|
||||
bankCardName?: string;
|
||||
}
|
||||
@@ -0,0 +1,191 @@
|
||||
import request from "@/utils/request";
|
||||
|
||||
const GENERATOR_BASE_URL = "/api/v1/codegen";
|
||||
|
||||
class GeneratorAPI {
|
||||
/** 获取数据表分页列表 */
|
||||
static getTablePage(params: TablePageQuery) {
|
||||
return request<any, PageResult<TablePageVO[]>>({
|
||||
url: `${GENERATOR_BASE_URL}/table/page`,
|
||||
method: "get",
|
||||
params: params,
|
||||
});
|
||||
}
|
||||
|
||||
/** 获取代码生成配置 */
|
||||
static getGenConfig(tableName: string) {
|
||||
return request<any, GenConfigForm>({
|
||||
url: `${GENERATOR_BASE_URL}/${tableName}/config`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
/** 获取代码生成配置 */
|
||||
static saveGenConfig(tableName: string, data: GenConfigForm) {
|
||||
return request({
|
||||
url: `${GENERATOR_BASE_URL}/${tableName}/config`,
|
||||
method: "post",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/** 获取代码生成预览数据 */
|
||||
static getPreviewData(tableName: string) {
|
||||
return request<any, GeneratorPreviewVO[]>({
|
||||
url: `${GENERATOR_BASE_URL}/${tableName}/preview`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
/** 重置代码生成配置 */
|
||||
static resetGenConfig(tableName: string) {
|
||||
return request({
|
||||
url: `${GENERATOR_BASE_URL}/${tableName}/config`,
|
||||
method: "delete",
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 下载 ZIP 文件
|
||||
* @param url
|
||||
* @param fileName
|
||||
*/
|
||||
static download(tableName: string) {
|
||||
return request({
|
||||
url: `${GENERATOR_BASE_URL}/${tableName}/download`,
|
||||
method: "get",
|
||||
responseType: "blob",
|
||||
}).then((response) => {
|
||||
const fileName = decodeURI(
|
||||
response.headers["content-disposition"].split(";")[1].split("=")[1]
|
||||
);
|
||||
|
||||
const blob = new Blob([response.data], { type: "application/zip" });
|
||||
const a = document.createElement("a");
|
||||
const url = window.URL.createObjectURL(blob);
|
||||
a.href = url;
|
||||
a.download = fileName;
|
||||
a.click();
|
||||
window.URL.revokeObjectURL(url);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export default GeneratorAPI;
|
||||
|
||||
/** 代码生成预览对象 */
|
||||
export interface GeneratorPreviewVO {
|
||||
/** 文件生成路径 */
|
||||
path: string;
|
||||
/** 文件名称 */
|
||||
fileName: string;
|
||||
/** 文件内容 */
|
||||
content: string;
|
||||
}
|
||||
|
||||
/** 数据表分页查询参数 */
|
||||
export interface TablePageQuery extends PageQuery {
|
||||
/** 关键字(表名) */
|
||||
keywords?: string;
|
||||
}
|
||||
|
||||
/** 数据表分页对象 */
|
||||
export interface TablePageVO {
|
||||
/** 表名称 */
|
||||
tableName: string;
|
||||
|
||||
/** 表描述 */
|
||||
tableComment: string;
|
||||
|
||||
/** 存储引擎 */
|
||||
engine: string;
|
||||
|
||||
/** 字符集排序规则 */
|
||||
tableCollation: string;
|
||||
|
||||
/** 创建时间 */
|
||||
createTime: string;
|
||||
}
|
||||
|
||||
/** 代码生成配置表单 */
|
||||
export interface GenConfigForm {
|
||||
/** 主键 */
|
||||
id?: number;
|
||||
|
||||
/** 表名 */
|
||||
tableName?: string;
|
||||
|
||||
/** 业务名 */
|
||||
businessName?: string;
|
||||
|
||||
/** 模块名 */
|
||||
moduleName?: string;
|
||||
|
||||
/** 包名 */
|
||||
packageName?: string;
|
||||
|
||||
/** 实体名 */
|
||||
entityName?: string;
|
||||
|
||||
/** 作者 */
|
||||
author?: string;
|
||||
|
||||
/** 上级菜单 */
|
||||
parentMenuId?: number;
|
||||
|
||||
/** 后端应用名 */
|
||||
backendAppName?: string;
|
||||
/** 前端应用名 */
|
||||
frontendAppName?: string;
|
||||
|
||||
/** 字段配置列表 */
|
||||
fieldConfigs?: FieldConfig[];
|
||||
}
|
||||
|
||||
/** 字段配置 */
|
||||
export interface FieldConfig {
|
||||
/** 主键 */
|
||||
id?: number;
|
||||
|
||||
/** 列名 */
|
||||
columnName?: string;
|
||||
|
||||
/** 列类型 */
|
||||
columnType?: string;
|
||||
|
||||
/** 字段名 */
|
||||
fieldName?: string;
|
||||
|
||||
/** 字段类型 */
|
||||
fieldType?: string;
|
||||
|
||||
/** 字段描述 */
|
||||
fieldComment?: string;
|
||||
|
||||
/** 是否在列表显示 */
|
||||
isShowInList?: number;
|
||||
|
||||
/** 是否在表单显示 */
|
||||
isShowInForm?: number;
|
||||
|
||||
/** 是否在查询条件显示 */
|
||||
isShowInQuery?: number;
|
||||
|
||||
/** 是否必填 */
|
||||
isRequired?: number;
|
||||
|
||||
/** 表单类型 */
|
||||
formType?: number;
|
||||
|
||||
/** 查询类型 */
|
||||
queryType?: number;
|
||||
|
||||
/** 字段长度 */
|
||||
maxLength?: number;
|
||||
|
||||
/** 字段排序 */
|
||||
fieldSort?: number;
|
||||
|
||||
/** 字典类型 */
|
||||
dictType?: string;
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
import request from "@/utils/request";
|
||||
|
||||
const CONFIG_BASE_URL = "/api/v1/config";
|
||||
|
||||
class ConfigAPI {
|
||||
/** 获取系统配置分页数据 */
|
||||
static getPage(queryParams?: ConfigPageQuery) {
|
||||
return request<any, PageResult<ConfigPageVO[]>>({
|
||||
url: `${CONFIG_BASE_URL}/page`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 获取系统配置表单数据
|
||||
*
|
||||
* @param id ConfigID
|
||||
* @returns Config表单数据
|
||||
*/
|
||||
static getFormData(id: number) {
|
||||
return request<any, ConfigForm>({
|
||||
url: `${CONFIG_BASE_URL}/${id}/form`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
/** 添加系统配置*/
|
||||
static add(data: ConfigForm) {
|
||||
return request({
|
||||
url: `${CONFIG_BASE_URL}`,
|
||||
method: "post",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新系统配置
|
||||
*
|
||||
* @param id ConfigID
|
||||
* @param data Config表单数据
|
||||
*/
|
||||
static update(id: number, data: ConfigForm) {
|
||||
return request({
|
||||
url: `${CONFIG_BASE_URL}/${id}`,
|
||||
method: "put",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除系统配置
|
||||
*
|
||||
* @param ids 系统配置ID
|
||||
*/
|
||||
static deleteById(id: number) {
|
||||
return request({
|
||||
url: `${CONFIG_BASE_URL}/${id}`,
|
||||
method: "delete",
|
||||
});
|
||||
}
|
||||
|
||||
static refreshCache() {
|
||||
return request({
|
||||
url: `${CONFIG_BASE_URL}`,
|
||||
method: "patch",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export default ConfigAPI;
|
||||
|
||||
/** $系统配置分页查询参数 */
|
||||
export interface ConfigPageQuery extends PageQuery {
|
||||
/** 搜索关键字 */
|
||||
keywords?: string;
|
||||
}
|
||||
|
||||
/** 系统配置表单对象 */
|
||||
export interface ConfigForm {
|
||||
/** 主键 */
|
||||
id?: number;
|
||||
/** 配置名称 */
|
||||
configName?: string;
|
||||
/** 配置键 */
|
||||
configKey?: string;
|
||||
/** 配置值 */
|
||||
configValue?: string;
|
||||
/** 描述、备注 */
|
||||
remark?: string;
|
||||
}
|
||||
|
||||
/** 系统配置分页对象 */
|
||||
export interface ConfigPageVO {
|
||||
/** 主键 */
|
||||
id?: number;
|
||||
/** 配置名称 */
|
||||
configName?: string;
|
||||
/** 配置键 */
|
||||
configKey?: string;
|
||||
/** 配置值 */
|
||||
configValue?: string;
|
||||
/** 描述、备注 */
|
||||
remark?: string;
|
||||
}
|
||||
+192
@@ -0,0 +1,192 @@
|
||||
import request from "@/utils/request";
|
||||
|
||||
const DICT_BASE_URL = "/api/v1/dict";
|
||||
|
||||
class DictAPI {
|
||||
/**
|
||||
* 获取字典分页列表
|
||||
*
|
||||
* @param queryParams 查询参数
|
||||
* @returns 字典分页结果
|
||||
*/
|
||||
static getPage(queryParams: DictPageQuery) {
|
||||
return request<any, PageResult<DictPageVO[]>>({
|
||||
url: `${DICT_BASE_URL}/page`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取字典表单数据
|
||||
*
|
||||
* @param id 字典ID
|
||||
* @returns 字典表单数据
|
||||
*/
|
||||
static getFormData(id: number) {
|
||||
return request<any, ResponseData<DictForm>>({
|
||||
url: `${DICT_BASE_URL}/${id}/form`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增字典
|
||||
*
|
||||
* @param data 字典表单数据
|
||||
*/
|
||||
static add(data: DictForm) {
|
||||
return request({
|
||||
url: `${DICT_BASE_URL}`,
|
||||
method: "post",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改字典
|
||||
*
|
||||
* @param id 字典ID
|
||||
* @param data 字典表单数据
|
||||
*/
|
||||
static update(id: number, data: DictForm) {
|
||||
return request({
|
||||
url: `${DICT_BASE_URL}/${id}`,
|
||||
method: "put",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除字典
|
||||
*
|
||||
* @param ids 字典ID,多个以英文逗号(,)分隔
|
||||
*/
|
||||
static deleteByIds(ids: string) {
|
||||
return request({
|
||||
url: `${DICT_BASE_URL}/${ids}`,
|
||||
method: "delete",
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取字典列表
|
||||
*
|
||||
* @returns 字典列表
|
||||
*/
|
||||
static getList() {
|
||||
return request<any, OptionType[]>({
|
||||
url: `${DICT_BASE_URL}/list`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取字典的数据项
|
||||
*
|
||||
* @param typeCode 字典编码
|
||||
* @returns 字典数据项
|
||||
*/
|
||||
static getOptions(code: string) {
|
||||
return request<any, OptionType[]>({
|
||||
url: `${DICT_BASE_URL}/${code}/options`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export default DictAPI;
|
||||
|
||||
/**
|
||||
* 字典查询参数
|
||||
*/
|
||||
export interface DictPageQuery extends PageQuery {
|
||||
/**
|
||||
* 关键字(字典名称/编码)
|
||||
*/
|
||||
keywords?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 字典分页对象
|
||||
*/
|
||||
export interface DictPageVO {
|
||||
/**
|
||||
* 字典ID
|
||||
*/
|
||||
id: number;
|
||||
/**
|
||||
* 字典名称
|
||||
*/
|
||||
name: string;
|
||||
/**
|
||||
* 字典编码
|
||||
*/
|
||||
code: string;
|
||||
/**
|
||||
* 字典状态(1-启用,0-禁用)
|
||||
*/
|
||||
status: number;
|
||||
/**
|
||||
* 字典项列表
|
||||
*/
|
||||
dictItems: DictItem[];
|
||||
}
|
||||
|
||||
/**
|
||||
* 字典项
|
||||
*/
|
||||
export interface DictItem {
|
||||
/**
|
||||
* 字典项ID
|
||||
*/
|
||||
id?: number;
|
||||
/**
|
||||
* 字典项名称
|
||||
*/
|
||||
name?: string;
|
||||
/**
|
||||
* 字典项值
|
||||
*/
|
||||
value?: string;
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
sort?: number;
|
||||
/**
|
||||
* 状态(1-启用,0-禁用)
|
||||
*/
|
||||
status?: number;
|
||||
}
|
||||
|
||||
// TypeScript 类型声明
|
||||
|
||||
/**
|
||||
* 字典
|
||||
*/
|
||||
export interface DictForm {
|
||||
/**
|
||||
* 字典ID
|
||||
*/
|
||||
id?: number;
|
||||
/**
|
||||
* 字典名称
|
||||
*/
|
||||
name?: string;
|
||||
/**
|
||||
* 字典编码
|
||||
*/
|
||||
code?: string;
|
||||
/**
|
||||
* 字典状态(1-启用,0-禁用)
|
||||
*/
|
||||
status?: number;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
remark?: string;
|
||||
/**
|
||||
* 字典数据项列表
|
||||
*/
|
||||
dictItems?: DictItem[];
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
import request from "@/utils/request";
|
||||
|
||||
class FileAPI {
|
||||
/**
|
||||
* 文件上传地址
|
||||
*/
|
||||
static uploadUrl = import.meta.env.VITE_APP_BASE_API + "/api/v1/files";
|
||||
|
||||
/**
|
||||
* 上传文件
|
||||
*
|
||||
* @param file
|
||||
*/
|
||||
static upload(file: File, type: string) {
|
||||
const formData = new FormData();
|
||||
formData.append("file", file);
|
||||
formData.append("type", type);
|
||||
return request<any, FileInfo>({
|
||||
url: "/api/v1/files",
|
||||
method: "post",
|
||||
timeout: 300000,
|
||||
data: formData,
|
||||
headers: {
|
||||
"Content-Type": "multipart/form-data",
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除文件
|
||||
*
|
||||
* @param filePath 文件完整路径
|
||||
*/
|
||||
static deleteByPath(filePath?: string) {
|
||||
return request({
|
||||
url: "/api/v1/files",
|
||||
method: "delete",
|
||||
params: { filePath: filePath },
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 下载文件
|
||||
* @param url
|
||||
* @param fileName
|
||||
*/
|
||||
static downloadFile(url: string, fileName?: string) {
|
||||
return request({
|
||||
url: url,
|
||||
method: "get",
|
||||
responseType: "blob",
|
||||
}).then((res) => {
|
||||
const blob = new Blob([res.data]);
|
||||
const a = document.createElement("a");
|
||||
const url = window.URL.createObjectURL(blob);
|
||||
a.href = url;
|
||||
a.download = fileName || "下载文件";
|
||||
a.click();
|
||||
window.URL.revokeObjectURL(url);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export default FileAPI;
|
||||
|
||||
/**
|
||||
* 文件API类型声明
|
||||
*/
|
||||
export interface FileInfo {
|
||||
/** 文件名 */
|
||||
name: string;
|
||||
/** 文件路径 */
|
||||
url: string;
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
import request from "@/utils/request";
|
||||
import { ColoredType } from "@/enums/SoftwareEnum";
|
||||
|
||||
const HELPER_BASE_URL = "/api/v1/helper";
|
||||
|
||||
class HelpAPI {
|
||||
static listQnA(id: number) {
|
||||
return request<any, HelpQnA[]>({
|
||||
url: `${HELPER_BASE_URL}/listQnA/${id}`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
static getPage(queryParams: QnAPageQuery) {
|
||||
return request<any, PageResult<FullQnA[]>>({
|
||||
url: `${HELPER_BASE_URL}/pageQnA`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
});
|
||||
}
|
||||
|
||||
static setByIds(ids: string, state: number) {
|
||||
return request({
|
||||
url: `${HELPER_BASE_URL}/setQnAByIds/${ids}`,
|
||||
method: "put",
|
||||
params: { state: state },
|
||||
});
|
||||
}
|
||||
|
||||
static saveOrUpdate(data: UpdateQnA) {
|
||||
return request({
|
||||
url: `${HELPER_BASE_URL}/updateQnA`,
|
||||
method: "put",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export default HelpAPI;
|
||||
|
||||
export interface QnAPageQuery extends PageQuery {
|
||||
userId?: number;
|
||||
state?: number;
|
||||
typeIds?: string;
|
||||
}
|
||||
|
||||
/** 问题简要信息 */
|
||||
export interface HelpQnA {
|
||||
/** ID */
|
||||
helpId: number;
|
||||
question: string;
|
||||
answer: string;
|
||||
}
|
||||
|
||||
// export interface QnAType {
|
||||
// color: string;
|
||||
// value: string;
|
||||
// label: string;
|
||||
// }
|
||||
|
||||
/** 问题简要信息 */
|
||||
export interface FullQnA {
|
||||
/** ID */
|
||||
helpId?: number;
|
||||
question?: string;
|
||||
answer?: string;
|
||||
helpTypeId?: string; //提问类型
|
||||
types?: ColoredType[];
|
||||
submitVersinos?: string; //提交问题的软件版本
|
||||
userId?: number; //提问用户
|
||||
userName?: string;
|
||||
nickname?: string;
|
||||
state?: number; //编辑状态
|
||||
editTime?: number; //提交时间
|
||||
answerTime?: number; //处理时间
|
||||
}
|
||||
|
||||
/** 问题简要信息 */
|
||||
export interface UpdateQnA {
|
||||
/** ID */
|
||||
helpId?: number;
|
||||
question?: string;
|
||||
answer?: string;
|
||||
helpTypeId?: string;
|
||||
state?: number;
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
import request from "@/utils/request";
|
||||
|
||||
const INTEGRAL_BASE_URL = "/api/v1/integral";
|
||||
|
||||
class IntegralAPI {
|
||||
static listAdmin(query: IntegralPageQuery) {
|
||||
return request<any, PageResult<IntegralPageAdminVO[]>>({
|
||||
url: `${INTEGRAL_BASE_URL}/pageAdmin`,
|
||||
method: "get",
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
|
||||
static listUser(query: IntegralPageQuery) {
|
||||
return request<any, PageResult<IntegralPageUserVO[]>>({
|
||||
url: `${INTEGRAL_BASE_URL}/pageUser`,
|
||||
method: "get",
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export default IntegralAPI;
|
||||
|
||||
export interface IntegralPageAdminVO {
|
||||
detailsId: number;
|
||||
userId: number;
|
||||
userName: string;
|
||||
nickName?: string;
|
||||
title: string;
|
||||
score: number;
|
||||
balance: number;
|
||||
//类型规则编号(-1:订制音乐服务;-2:退订音乐服务;-3:音乐服务收入;-4:保存音频;-5:保存midi;-6:积分发放;-7:购买VIP;;-8:提现;-9:推荐音乐;-10:风格收入;-11:购买CPJ;-12:出售CPJ;-13:购买金曲票数;-14:领奖;-15:论坛金钱兑换)
|
||||
ruleid: number;
|
||||
ruletype: number;
|
||||
addtime: number;
|
||||
comment: string;
|
||||
}
|
||||
|
||||
export interface IntegralPageUserVO {
|
||||
detailsId: number;
|
||||
title: string;
|
||||
score: number;
|
||||
balance: number;
|
||||
ruleid: number;
|
||||
ruletype: number;
|
||||
addtime: number;
|
||||
comment: string;
|
||||
}
|
||||
|
||||
export interface IntegralPageQuery extends PageQuery {
|
||||
userId?: number;
|
||||
ruletype?: number;
|
||||
/** 添加时间 */
|
||||
addtime?: [number, number];
|
||||
}
|
||||
+122
@@ -0,0 +1,122 @@
|
||||
import request from "@/utils/request";
|
||||
|
||||
const LOG_BASE_URL = "/api/v1/logs";
|
||||
|
||||
class LogAPI {
|
||||
/**
|
||||
* 获取日志分页列表
|
||||
*
|
||||
* @param queryParams 查询参数
|
||||
*/
|
||||
static getPage(queryParams: LogPageQuery) {
|
||||
return request<any, PageResult<LogPageVO[]>>({
|
||||
url: `${LOG_BASE_URL}/page`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取访问趋势
|
||||
*
|
||||
* @param queryParams
|
||||
* @returns
|
||||
*/
|
||||
static getVisitTrend(queryParams: VisitTrendQuery) {
|
||||
return request<any, VisitTrendVO>({
|
||||
url: `${LOG_BASE_URL}/visit-trend`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取访问趋势
|
||||
*
|
||||
* @param queryParams
|
||||
* @returns
|
||||
*/
|
||||
static getVisitStats() {
|
||||
return request<any, VisitStatsVO[]>({
|
||||
url: `${LOG_BASE_URL}/visit-stats`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export default LogAPI;
|
||||
|
||||
/**
|
||||
* 日志分页查询对象
|
||||
*/
|
||||
export interface LogPageQuery extends PageQuery {
|
||||
/** 搜索关键字 */
|
||||
keywords?: string;
|
||||
/** 操作时间 */
|
||||
createTime?: [string, string];
|
||||
}
|
||||
|
||||
/**
|
||||
* 系统日志分页VO
|
||||
*/
|
||||
export interface LogPageVO {
|
||||
/** 主键 */
|
||||
id: number;
|
||||
/** 日志模块 */
|
||||
module: string;
|
||||
/** 日志内容 */
|
||||
content: string;
|
||||
/** 请求路径 */
|
||||
requestUri: string;
|
||||
/** 请求方法 */
|
||||
method: string;
|
||||
/** IP 地址 */
|
||||
ip: string;
|
||||
/** 地区 */
|
||||
region: string;
|
||||
/** 浏览器 */
|
||||
browser: string;
|
||||
/** 终端系统 */
|
||||
os: string;
|
||||
/** 执行时间(毫秒) */
|
||||
executionTime: number;
|
||||
/** 操作人 */
|
||||
operator: string;
|
||||
}
|
||||
|
||||
/** 访问趋势视图对象 */
|
||||
export interface VisitTrendVO {
|
||||
/** 日期列表 */
|
||||
dates: string[];
|
||||
/** 浏览量(PV) */
|
||||
pvList: number[];
|
||||
/** 访客数(UV) */
|
||||
uvList: number[];
|
||||
/** IP数 */
|
||||
ipList: number[];
|
||||
}
|
||||
|
||||
/** 访问趋势查询参数 */
|
||||
export interface VisitTrendQuery {
|
||||
/** 开始日期 */
|
||||
startDate: string;
|
||||
/** 结束日期 */
|
||||
endDate: string;
|
||||
}
|
||||
|
||||
/** 访问统计 */
|
||||
export interface VisitStatsVO {
|
||||
/** 标题 */
|
||||
title: string;
|
||||
/** 类型 */
|
||||
type: "pv" | "uv" | "ip";
|
||||
|
||||
/** 今日访问量 */
|
||||
todayCount: number;
|
||||
/** 总访问量 */
|
||||
totalCount: number;
|
||||
/** 同比增长率(相对于昨天同一时间段的增长率) */
|
||||
growthRate: number;
|
||||
|
||||
totalCountOutput: number;
|
||||
}
|
||||
+209
@@ -0,0 +1,209 @@
|
||||
import request from "@/utils/request";
|
||||
// 菜单基础URL
|
||||
const MENU_BASE_URL = "/api/v1/menus";
|
||||
|
||||
class MenuAPI {
|
||||
/**
|
||||
* 获取当前用户的路由列表
|
||||
* <p/>
|
||||
* 无需传入角色,后端解析token获取角色自行判断是否拥有路由的权限
|
||||
*
|
||||
* @returns 路由列表
|
||||
*/
|
||||
static getRoutes() {
|
||||
return request<any, RouteVO[]>({
|
||||
url: `${MENU_BASE_URL}/routes`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取菜单树形列表
|
||||
*
|
||||
* @param queryParams 查询参数
|
||||
* @returns 菜单树形列表
|
||||
*/
|
||||
static getList(queryParams: MenuQuery) {
|
||||
return request<any, MenuVO[]>({
|
||||
url: `${MENU_BASE_URL}`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取菜单下拉数据源
|
||||
*
|
||||
* @returns 菜单下拉数据源
|
||||
*/
|
||||
static getOptions(onlyParent?: boolean) {
|
||||
return request<any, OptionType[]>({
|
||||
url: `${MENU_BASE_URL}/options`,
|
||||
method: "get",
|
||||
params: { onlyParent: onlyParent },
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取菜单表单数据
|
||||
*
|
||||
* @param id 菜单ID
|
||||
*/
|
||||
static getFormData(id: number) {
|
||||
return request<any, MenuForm>({
|
||||
url: `${MENU_BASE_URL}/${id}/form`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加菜单
|
||||
*
|
||||
* @param data 菜单表单数据
|
||||
* @returns 请求结果
|
||||
*/
|
||||
static add(data: MenuForm) {
|
||||
return request({
|
||||
url: `${MENU_BASE_URL}`,
|
||||
method: "post",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改菜单
|
||||
*
|
||||
* @param id 菜单ID
|
||||
* @param data 菜单表单数据
|
||||
* @returns 请求结果
|
||||
*/
|
||||
static update(id: string, data: MenuForm) {
|
||||
return request({
|
||||
url: `${MENU_BASE_URL}/${id}`,
|
||||
method: "put",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除菜单
|
||||
*
|
||||
* @param id 菜单ID
|
||||
* @returns 请求结果
|
||||
*/
|
||||
static deleteById(id: number) {
|
||||
return request({
|
||||
url: `${MENU_BASE_URL}/${id}`,
|
||||
method: "delete",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export default MenuAPI;
|
||||
|
||||
import { MenuTypeEnum } from "@/enums/MenuTypeEnum";
|
||||
|
||||
/** 菜单查询参数 */
|
||||
export interface MenuQuery {
|
||||
/** 搜索关键字 */
|
||||
keywords?: string;
|
||||
}
|
||||
|
||||
/** 菜单视图对象 */
|
||||
export interface MenuVO {
|
||||
/** 子菜单 */
|
||||
children?: MenuVO[];
|
||||
/** 组件路径 */
|
||||
component?: string;
|
||||
/** ICON */
|
||||
icon?: string;
|
||||
/** 菜单ID */
|
||||
id?: number;
|
||||
/** 菜单名称 */
|
||||
name?: string;
|
||||
/** 父菜单ID */
|
||||
parentId?: number;
|
||||
/** 按钮权限标识 */
|
||||
perm?: string;
|
||||
/** 跳转路径 */
|
||||
redirect?: string;
|
||||
/** 路由名称 */
|
||||
routeName?: string;
|
||||
/** 路由相对路径 */
|
||||
routePath?: string;
|
||||
/** 菜单排序(数字越小排名越靠前) */
|
||||
sort?: number;
|
||||
/** 菜单 */
|
||||
type?: MenuTypeEnum;
|
||||
/** 菜单是否可见(1:显示;0:隐藏) */
|
||||
visible?: number;
|
||||
}
|
||||
|
||||
/** 菜单表单对象 */
|
||||
export interface MenuForm {
|
||||
/** 菜单ID */
|
||||
id?: string;
|
||||
/** 父菜单ID */
|
||||
parentId?: number;
|
||||
/** 菜单名称 */
|
||||
name?: string;
|
||||
/** 菜单是否可见(1-是 0-否) */
|
||||
visible: number;
|
||||
/** ICON */
|
||||
icon?: string;
|
||||
/** 排序 */
|
||||
sort?: number;
|
||||
/** 路由名称 */
|
||||
routeName?: string;
|
||||
/** 路由路径 */
|
||||
routePath?: string;
|
||||
/** 组件路径 */
|
||||
component?: string;
|
||||
/** 跳转路由路径 */
|
||||
redirect?: string;
|
||||
/** 菜单 */
|
||||
type?: MenuTypeEnum;
|
||||
/** 权限标识 */
|
||||
perm?: string;
|
||||
/** 【菜单】是否开启页面缓存 */
|
||||
keepAlive?: number;
|
||||
/** 【目录】只有一个子路由是否始终显示 */
|
||||
alwaysShow?: number;
|
||||
/** 参数 */
|
||||
params?: KeyValue[];
|
||||
}
|
||||
|
||||
interface KeyValue {
|
||||
key: string;
|
||||
value: string;
|
||||
}
|
||||
|
||||
/** RouteVO,路由对象 */
|
||||
export interface RouteVO {
|
||||
/** 子路由列表 */
|
||||
children: RouteVO[];
|
||||
/** 组件路径 */
|
||||
component?: string;
|
||||
/** 路由属性 */
|
||||
meta?: Meta;
|
||||
/** 路由名称 */
|
||||
name?: string;
|
||||
/** 路由路径 */
|
||||
path?: string;
|
||||
/** 跳转链接 */
|
||||
redirect?: string;
|
||||
}
|
||||
|
||||
/** Meta,路由属性 */
|
||||
export interface Meta {
|
||||
/** 【目录】只有一个子路由是否始终显示 */
|
||||
alwaysShow?: boolean;
|
||||
/** 是否隐藏(true-是 false-否) */
|
||||
hidden?: boolean;
|
||||
/** ICON */
|
||||
icon?: string;
|
||||
/** 【菜单】是否开启页面缓存 */
|
||||
keepAlive?: boolean;
|
||||
/** 路由title */
|
||||
title?: string;
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
import request from "@/utils/request";
|
||||
|
||||
const MESSAGE_BASE_URL = "/api/v1/message";
|
||||
|
||||
class MessageAPI {
|
||||
static getPage(queryParams: MessagePageQuery) {
|
||||
return request<any, PageResult<WebMessage[]>>({
|
||||
url: `${MESSAGE_BASE_URL}/page`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
});
|
||||
}
|
||||
static getLatest(userId: number) {
|
||||
return request<any, WebMessage[]>({
|
||||
url: `${MESSAGE_BASE_URL}/${userId}/latest`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
static setByIds(ids: string, state: number) {
|
||||
return request({
|
||||
url: `${MESSAGE_BASE_URL}/${ids}`,
|
||||
method: "put",
|
||||
params: { state: state },
|
||||
});
|
||||
}
|
||||
|
||||
static save(data: WebMessage) {
|
||||
return request({
|
||||
url: `${MESSAGE_BASE_URL}/save`,
|
||||
method: "put",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export default MessageAPI;
|
||||
|
||||
export interface MessagePageQuery extends PageQuery {
|
||||
userId?: number;
|
||||
type: number;
|
||||
}
|
||||
|
||||
export interface WebMessage {
|
||||
msgId?: number;
|
||||
|
||||
userId?: number;
|
||||
|
||||
title?: string;
|
||||
content?: string;
|
||||
|
||||
state?: number;
|
||||
type?: number;
|
||||
|
||||
sendTime?: number;
|
||||
readTime?: number;
|
||||
deleteTime?: number;
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
import request from "@/utils/request";
|
||||
|
||||
const NOTICE_BASE_URL = "/api/v1/notice";
|
||||
|
||||
class NoticeAPI {
|
||||
static getPage(queryParams: NoticePageQuery) {
|
||||
return request<any, PageResult<WebNotice[]>>({
|
||||
url: `${NOTICE_BASE_URL}/page`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
});
|
||||
}
|
||||
|
||||
static save(data: WebNotice) {
|
||||
return request({
|
||||
url: `${NOTICE_BASE_URL}/save`,
|
||||
method: "put",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
static setByIds(ids: string, state: number) {
|
||||
return request({
|
||||
url: `${NOTICE_BASE_URL}/${ids}`,
|
||||
method: "put",
|
||||
params: { state: state },
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export default NoticeAPI;
|
||||
|
||||
export interface NoticePageQuery extends PageQuery {
|
||||
state?: number;
|
||||
}
|
||||
|
||||
export interface WebNotice {
|
||||
noticeId?: number;
|
||||
|
||||
title?: string;
|
||||
content?: string;
|
||||
|
||||
state?: number;
|
||||
noticeType?: number;
|
||||
|
||||
releaseTime?: number;
|
||||
shieldTime?: number;
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
import request from "@/utils/request";
|
||||
|
||||
const ORDER_BASE_URL = "/api/v1/order";
|
||||
|
||||
class OrderAPI {
|
||||
static listPage(query: OrderPageQuery) {
|
||||
return request<any, PageResult<OrderPageVO[]>>({
|
||||
url: `${ORDER_BASE_URL}/page`,
|
||||
method: "get",
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export default OrderAPI;
|
||||
|
||||
export interface OrderPageVO {
|
||||
orderId: number;
|
||||
userId: number;
|
||||
userName: string;
|
||||
nickName?: string;
|
||||
money: number;
|
||||
orderNumber: string;
|
||||
payway: string;
|
||||
state: number;
|
||||
paytime: number;
|
||||
endtime?: number;
|
||||
remark?: string;
|
||||
}
|
||||
|
||||
export interface OrderPageQuery extends PageQuery {
|
||||
userId?: number;
|
||||
state?: number;
|
||||
payway?: string;
|
||||
/** 添加时间 */
|
||||
paytime?: [number, number];
|
||||
}
|
||||
+139
@@ -0,0 +1,139 @@
|
||||
import request from "@/utils/request";
|
||||
|
||||
const ROLE_BASE_URL = "/api/v1/roles";
|
||||
|
||||
class RoleAPI {
|
||||
/** 获取角色分页数据 */
|
||||
static getPage(queryParams?: RolePageQuery) {
|
||||
return request<any, PageResult<RolePageVO[]>>({
|
||||
url: `${ROLE_BASE_URL}/page`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
});
|
||||
}
|
||||
|
||||
/** 获取角色下拉数据源 */
|
||||
static getOptions() {
|
||||
return request<any, OptionType[]>({
|
||||
url: `${ROLE_BASE_URL}/options`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取角色的菜单ID集合
|
||||
*
|
||||
* @param roleId 角色ID
|
||||
* @returns 角色的菜单ID集合
|
||||
*/
|
||||
static getRoleMenuIds(roleId: number) {
|
||||
return request<any, number[]>({
|
||||
url: `${ROLE_BASE_URL}/${roleId}/menuIds`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 分配菜单权限
|
||||
*
|
||||
* @param roleId 角色ID
|
||||
* @param data 菜单ID集合
|
||||
*/
|
||||
static updateRoleMenus(roleId: number, data: number[]) {
|
||||
return request({
|
||||
url: `${ROLE_BASE_URL}/${roleId}/menus`,
|
||||
method: "put",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取角色表单数据
|
||||
*
|
||||
* @param id 角色ID
|
||||
* @returns 角色表单数据
|
||||
*/
|
||||
static getFormData(id: number) {
|
||||
return request<any, RoleForm>({
|
||||
url: `${ROLE_BASE_URL}/${id}/form`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
/** 添加角色 */
|
||||
static add(data: RoleForm) {
|
||||
return request({
|
||||
url: `${ROLE_BASE_URL}`,
|
||||
method: "post",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新角色
|
||||
*
|
||||
* @param id 角色ID
|
||||
* @param data 角色表单数据
|
||||
*/
|
||||
static update(id: number, data: RoleForm) {
|
||||
return request({
|
||||
url: `${ROLE_BASE_URL}/${id}`,
|
||||
method: "put",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除角色,多个以英文逗号(,)分割
|
||||
*
|
||||
* @param ids 角色ID字符串,多个以英文逗号(,)分割
|
||||
*/
|
||||
static deleteByIds(ids: string) {
|
||||
return request({
|
||||
url: `${ROLE_BASE_URL}/${ids}`,
|
||||
method: "delete",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export default RoleAPI;
|
||||
|
||||
/** 角色分页查询参数 */
|
||||
export interface RolePageQuery extends PageQuery {
|
||||
/** 搜索关键字 */
|
||||
keywords?: string;
|
||||
}
|
||||
|
||||
/** 角色分页对象 */
|
||||
export interface RolePageVO {
|
||||
/** 角色编码 */
|
||||
code?: string;
|
||||
/** 角色ID */
|
||||
id?: number;
|
||||
/** 角色名称 */
|
||||
name?: string;
|
||||
/** 排序 */
|
||||
sort?: number;
|
||||
/** 角色状态 */
|
||||
status?: number;
|
||||
/** 创建时间 */
|
||||
createTime?: Date;
|
||||
/** 修改时间 */
|
||||
updateTime?: Date;
|
||||
}
|
||||
|
||||
/** 角色表单对象 */
|
||||
export interface RoleForm {
|
||||
/** 角色ID */
|
||||
id?: number;
|
||||
/** 角色编码 */
|
||||
code: string;
|
||||
/** 数据权限 */
|
||||
dataScope?: number;
|
||||
/** 角色名称 */
|
||||
name: string;
|
||||
/** 排序 */
|
||||
sort?: number;
|
||||
/** 角色状态(1-正常;0-停用) */
|
||||
status?: number;
|
||||
}
|
||||
@@ -0,0 +1,130 @@
|
||||
import request from "@/utils/request";
|
||||
|
||||
const SOFTWARE_BASE_URL = "/api/v1/software";
|
||||
|
||||
class SoftwareAPI {
|
||||
static listSoftware() {
|
||||
return request<any, SoftwareInfo[]>({
|
||||
url: `${SOFTWARE_BASE_URL}/list`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
static listFont() {
|
||||
return request<any, FontInfo[]>({
|
||||
url: `${SOFTWARE_BASE_URL}/listFont`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
static getVersion(id: number, os: number) {
|
||||
return request<any, VersionInfo>({
|
||||
url: `${SOFTWARE_BASE_URL}/lastVersion/${id}/${os}`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
static page(query: VersionPageQuery) {
|
||||
return request<any, PageResult<FullVersion[]>>({
|
||||
url: `${SOFTWARE_BASE_URL}/page`,
|
||||
method: "get",
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
|
||||
static update(data: FullVersion) {
|
||||
return request({
|
||||
url: `${SOFTWARE_BASE_URL}/update`,
|
||||
method: "put",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
static maxVersion(swId: number, innerId: number) {
|
||||
return request<any, VersionNum>({
|
||||
url: `${SOFTWARE_BASE_URL}/maxVersion`,
|
||||
method: "get",
|
||||
params: { softwareId: swId, innerId: innerId },
|
||||
});
|
||||
}
|
||||
|
||||
static swDownload(swId: number, os: number) {
|
||||
return request({
|
||||
url: `${SOFTWARE_BASE_URL}/swDownload`,
|
||||
method: "put",
|
||||
params: { softwareId: swId, os: os },
|
||||
});
|
||||
}
|
||||
|
||||
static setByIds(ids: string, state: number) {
|
||||
return request({
|
||||
url: `${SOFTWARE_BASE_URL}/${ids}`,
|
||||
method: "put",
|
||||
params: { state: state },
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export default SoftwareAPI;
|
||||
|
||||
/** 软件信息 */
|
||||
export interface SoftwareInfo {
|
||||
/** 软件ID */
|
||||
softwareId: number;
|
||||
/** 软件名称 */
|
||||
name: string;
|
||||
/** 适用系统 */
|
||||
os: number;
|
||||
}
|
||||
|
||||
/** 版本信息 */
|
||||
export interface VersionInfo {
|
||||
softwareId: number;
|
||||
os: number;
|
||||
version: string;
|
||||
installPath: string;
|
||||
releaseDate: number;
|
||||
packageSize: number;
|
||||
describe?: string;
|
||||
pictures?: string[];
|
||||
}
|
||||
|
||||
/** 音色库信息 */
|
||||
export interface FontInfo {
|
||||
fontsId: number;
|
||||
name: string;
|
||||
path: string;
|
||||
size: number;
|
||||
describe?: string;
|
||||
}
|
||||
|
||||
export interface VersionPageQuery extends PageQuery {
|
||||
softwareId?: number;
|
||||
innerId?: number;
|
||||
incompatible?: number;
|
||||
}
|
||||
|
||||
export interface FullVersion {
|
||||
versionId?: number;
|
||||
softwareId?: number;
|
||||
innerId?: number;
|
||||
versionMajor?: number;
|
||||
versionMinor?: number;
|
||||
versionModify?: number;
|
||||
versionBuild?: number;
|
||||
incompatible?: number;
|
||||
installSize?: number;
|
||||
installPath?: string;
|
||||
releaseTime?: number;
|
||||
describeText?: string;
|
||||
accessNum?: number;
|
||||
downloadNum?: number;
|
||||
isDeleted?: number;
|
||||
}
|
||||
|
||||
export interface VersionNum {
|
||||
major: number;
|
||||
minor: number;
|
||||
modify: number;
|
||||
build: number;
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
import request from "@/utils/request";
|
||||
|
||||
const STATISTICS_BASE_URL = "/api/v1/statistics";
|
||||
|
||||
class StatisticsAPI {
|
||||
static page(query: StatisticsPageQuery) {
|
||||
return request<any, PageResult<StatisticsBO[]>>({
|
||||
url: `${STATISTICS_BASE_URL}/page`,
|
||||
method: "get",
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export default StatisticsAPI;
|
||||
|
||||
export interface StatisticsBO {
|
||||
statisticsId?: number;
|
||||
statisticsDate?: number; //统计日期
|
||||
login?: string; //登录次数
|
||||
loginUsersum?: string; //登录人数
|
||||
register?: string; //注册人数
|
||||
mofangAccess?: string; //软件使用次数
|
||||
downloadNum?: string; //软件下载次数
|
||||
accompanyUse?: string; //风格使用次数
|
||||
accompanyConsume?: string; //风格消费额
|
||||
recharge?: string; //音符充值
|
||||
consume?: string; //音符消费
|
||||
}
|
||||
|
||||
export interface StatisticsVO {
|
||||
statisticsId?: number;
|
||||
statisticsDate?: number; //统计日期
|
||||
login?: number[]; //登录次数
|
||||
loginUsersum?: number[]; //登录人数
|
||||
register?: number[]; //注册人数
|
||||
mofangAccess?: number[]; //软件使用次数
|
||||
downloadNum?: number[]; //软件下载次数
|
||||
accompanyUse?: number[]; //风格使用次数
|
||||
accompanyConsume?: number[]; //风格消费总额
|
||||
recharge?: number[]; //音符充值
|
||||
consume?: number[]; //音符消费
|
||||
}
|
||||
|
||||
export interface StatisticsPageQuery extends PageQuery {
|
||||
/** 时间范围 */
|
||||
range?: [number, number];
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
import request from "@/utils/request";
|
||||
|
||||
const STYLE_BASE_URL = "/api/v1/style";
|
||||
|
||||
class StyleAPI {
|
||||
static statistic() {
|
||||
return request<any, StyleStatistic>({
|
||||
url: `${STYLE_BASE_URL}/statistic`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
static page(query: StylePageQuery) {
|
||||
return request<any, PageResult<StyleVO[]>>({
|
||||
url: `${STYLE_BASE_URL}/page`,
|
||||
method: "get",
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
|
||||
static update(data: StyleUpdate) {
|
||||
return request({
|
||||
url: `${STYLE_BASE_URL}/update`,
|
||||
method: "put",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export default StyleAPI;
|
||||
|
||||
export interface StyleStatistic {
|
||||
ts0: number;
|
||||
ts1: number;
|
||||
ts2: number;
|
||||
ts3: number;
|
||||
temp: number;
|
||||
}
|
||||
|
||||
export interface StyleVO {
|
||||
accompanyId: number;
|
||||
|
||||
cost: number; //使用价格
|
||||
score: number; //评分
|
||||
state: number; //状态
|
||||
name: string; //风格名称
|
||||
description?: string; //风格描述
|
||||
author: number; //作者ID
|
||||
authorName?: string; //作者昵称
|
||||
timesignature: number; //节拍(0:4/4;1:3/4;2:2/4;3:6/8)
|
||||
tempo: number; //速度
|
||||
changeTime: number; //编辑时间
|
||||
scoreTime: number; //评分时间
|
||||
useCount: number; //使用次数
|
||||
sellCount: number; //购买次数
|
||||
}
|
||||
|
||||
export interface StylePageQuery extends PageQuery {
|
||||
author?: number;
|
||||
ts?: number;
|
||||
state?: number;
|
||||
}
|
||||
|
||||
export interface StyleUpdate {
|
||||
accompanyId?: number;
|
||||
cost?: number; //使用价格
|
||||
state?: number; //状态
|
||||
}
|
||||
+612
@@ -0,0 +1,612 @@
|
||||
import request from "@/utils/request";
|
||||
import { SendCodeData } from "./auth";
|
||||
|
||||
const USER_BASE_URL = "/api/v1/users";
|
||||
|
||||
class UserAPI {
|
||||
/**
|
||||
* 获取当前登录用户信息
|
||||
*
|
||||
* @returns 登录用户昵称、头像信息,包括角色和权限
|
||||
*/
|
||||
static getInfo() {
|
||||
return request<any, UserInfo>({
|
||||
url: `${USER_BASE_URL}/me`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户分页列表
|
||||
*
|
||||
* @param queryParams 查询参数
|
||||
*/
|
||||
static getPage(queryParams: UserPageQuery) {
|
||||
return request<any, PageResult<UserPageVO[]>>({
|
||||
url: `${USER_BASE_URL}/page`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户表单详情
|
||||
*
|
||||
* @param userId 用户ID
|
||||
* @returns 用户表单详情
|
||||
*/
|
||||
static getFormData(userId: number) {
|
||||
return request<any, UserForm>({
|
||||
url: `${USER_BASE_URL}/${userId}/form`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加用户
|
||||
*
|
||||
* @param data 用户表单数据
|
||||
*/
|
||||
static add(data: UserForm) {
|
||||
return request({
|
||||
url: `${USER_BASE_URL}`,
|
||||
method: "post",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户
|
||||
*
|
||||
* @param id 用户ID
|
||||
* @param data 用户表单数据
|
||||
*/
|
||||
static update(id: number, data: UserForm) {
|
||||
return request({
|
||||
url: `${USER_BASE_URL}/${id}`,
|
||||
method: "put",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
// /**
|
||||
// * 修改用户密码
|
||||
// *
|
||||
// * @param id 用户ID
|
||||
// * @param password 新密码
|
||||
// */
|
||||
// static resetPassword(id: number, password: string) {
|
||||
// return request({
|
||||
// url: `${USER_BASE_URL}/${id}/password/reset`,
|
||||
// method: "put",
|
||||
// params: { password: password },
|
||||
// });
|
||||
// }
|
||||
|
||||
/**
|
||||
* 批量删除用户,多个以英文逗号(,)分割
|
||||
*
|
||||
* @param ids 用户ID字符串,多个以英文逗号(,)分割
|
||||
*/
|
||||
static deleteByIds(ids: string) {
|
||||
return request({
|
||||
url: `${USER_BASE_URL}/${ids}`,
|
||||
method: "delete",
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量修改用户状态,多个以英文逗号(,)分割
|
||||
*
|
||||
* @param ids 用户ID字符串,多个以英文逗号(,)分割
|
||||
*/
|
||||
static setStateByIds(ids: string, state: number) {
|
||||
return request({
|
||||
url: `${USER_BASE_URL}/${ids}/${state}`,
|
||||
method: "patch",
|
||||
});
|
||||
}
|
||||
|
||||
/** 下载用户导入模板 */
|
||||
static downloadTemplate() {
|
||||
return request({
|
||||
url: `${USER_BASE_URL}/template`,
|
||||
method: "get",
|
||||
responseType: "arraybuffer",
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出用户
|
||||
*
|
||||
* @param queryParams 查询参数
|
||||
*/
|
||||
static export(queryParams: UserPageQuery) {
|
||||
return request({
|
||||
url: `${USER_BASE_URL}/export`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
responseType: "arraybuffer",
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入用户
|
||||
*
|
||||
* @param deptId 部门ID
|
||||
* @param file 导入文件
|
||||
*/
|
||||
static import(deptId: number, file: File) {
|
||||
const formData = new FormData();
|
||||
formData.append("file", file);
|
||||
return request({
|
||||
url: `${USER_BASE_URL}/import`,
|
||||
method: "post",
|
||||
params: { deptId: deptId },
|
||||
data: formData,
|
||||
headers: {
|
||||
"Content-Type": "multipart/form-data",
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
/** 获取个人中心用户信息 */
|
||||
static getProfile() {
|
||||
return request<any, UserProfileVO>({
|
||||
url: `${USER_BASE_URL}/profile`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
/** 修改个人中心用户信息 */
|
||||
static updateProfile(data: UserProfileForm) {
|
||||
return request({
|
||||
url: `${USER_BASE_URL}/profile`,
|
||||
method: "put",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/** 修改个人中心用户密码 */
|
||||
static changePassword(data: PasswordChangeForm) {
|
||||
return request({
|
||||
url: `${USER_BASE_URL}/password`,
|
||||
method: "put",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送手机/邮箱验证码
|
||||
*
|
||||
* @param contact 联系方式 手机号/邮箱
|
||||
*/
|
||||
static sendBindCode(data: SendCodeData) {
|
||||
const formData = new FormData();
|
||||
formData.append("contact", data.contact);
|
||||
formData.append("captchaKey", data.captchaKey);
|
||||
formData.append("captchaCode", data.captchaCode);
|
||||
|
||||
return request({
|
||||
url: `${USER_BASE_URL}/sendBindCode`,
|
||||
method: "post",
|
||||
data: formData,
|
||||
headers: {
|
||||
"Content-Type": "multipart/form-data",
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
/** 绑定个人中心用户手机 */
|
||||
static bindMobile(data: MobileBindingForm) {
|
||||
return request({
|
||||
url: `${USER_BASE_URL}/mobile`,
|
||||
method: "put",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/** 绑定个人中心用户邮箱 */
|
||||
static bindEmail(data: EmailBindingForm) {
|
||||
return request({
|
||||
url: `${USER_BASE_URL}/email`,
|
||||
method: "put",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/** 获取账户信息 */
|
||||
static getAccountInfo() {
|
||||
return request<any, AccountInfo>({
|
||||
url: `${USER_BASE_URL}/account`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户昵称
|
||||
*
|
||||
* @param id 用户ID
|
||||
* @param nickname 用户昵称
|
||||
*/
|
||||
static updateNickname(id: number, nickname: string) {
|
||||
return request({
|
||||
url: `${USER_BASE_URL}/${id}/nickname`,
|
||||
method: "patch",
|
||||
params: { nickname: nickname },
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户手机
|
||||
*
|
||||
* @param id 用户ID
|
||||
* @param phone 用户手机号
|
||||
*/
|
||||
static updatePhone(id: number, phone: string) {
|
||||
return request({
|
||||
url: `${USER_BASE_URL}/${id}/phone`,
|
||||
method: "patch",
|
||||
params: { phone: phone },
|
||||
});
|
||||
}
|
||||
|
||||
/** 修改个人中心用户密码 */
|
||||
static resetPassword(data: ResetPasswordForm) {
|
||||
return request({
|
||||
url: `${USER_BASE_URL}/resetPassword`,
|
||||
method: "post",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/** 获取用户实名认证信息 */
|
||||
static getRealNameInfo() {
|
||||
return request<any, RealNameInfo>({
|
||||
url: `${USER_BASE_URL}/realname`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
/** 更新用户实名认证信息 */
|
||||
static updateRealNameInfo(data: RealNameInfo) {
|
||||
return request({
|
||||
url: `${USER_BASE_URL}/realname`,
|
||||
method: "put",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
static getRealNamePage(queryParams: PageQuery) {
|
||||
return request<any, PageResult<RealNameInfo[]>>({
|
||||
url: `${USER_BASE_URL}/realname/page`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
});
|
||||
}
|
||||
|
||||
static verifyRealName(userId: number, reason: string) {
|
||||
return request({
|
||||
url: `${USER_BASE_URL}/${userId}/realname`,
|
||||
method: "post",
|
||||
params: { reason: reason },
|
||||
});
|
||||
}
|
||||
|
||||
static beingVIP(vipType: number) {
|
||||
return request<any, number>({
|
||||
url: `${USER_BASE_URL}/vip`,
|
||||
method: "post",
|
||||
params: { vipType: vipType },
|
||||
});
|
||||
}
|
||||
|
||||
static buyNotes(payType: string, amount: string) {
|
||||
return request<any, { order: string; resp: string }>({
|
||||
url: `${USER_BASE_URL}/buyNotes`,
|
||||
method: "post",
|
||||
params: { payType: payType, amount: amount },
|
||||
});
|
||||
}
|
||||
|
||||
static checkOrder(order: string) {
|
||||
return request<any, number>({
|
||||
url: `${USER_BASE_URL}/checkOrder`,
|
||||
method: "get",
|
||||
params: { order: order },
|
||||
});
|
||||
}
|
||||
|
||||
static draw(data: DrawForm) {
|
||||
return request<any, string>({
|
||||
url: `${USER_BASE_URL}/draw`,
|
||||
method: "post",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
static drawPage(queryParams: PageQuery) {
|
||||
return request<any, PageResult<DrawPageVO[]>>({
|
||||
url: `${USER_BASE_URL}/draw/page`,
|
||||
method: "get",
|
||||
params: queryParams,
|
||||
});
|
||||
}
|
||||
|
||||
static verifyDraw(orderId: number, reason: string) {
|
||||
return request<any, number>({
|
||||
url: `${USER_BASE_URL}/draw`,
|
||||
method: "put",
|
||||
params: { orderId: orderId, reason: reason },
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export default UserAPI;
|
||||
|
||||
/** 登录用户信息 */
|
||||
export interface UserInfo {
|
||||
/** 用户ID */
|
||||
userId?: number;
|
||||
|
||||
/** 用户名 */
|
||||
username?: string;
|
||||
|
||||
/** 昵称 */
|
||||
nickname?: string;
|
||||
|
||||
/** 头像URL */
|
||||
avatar?: string;
|
||||
|
||||
/** 角色 */
|
||||
roles: string[];
|
||||
|
||||
/** 权限 */
|
||||
perms: string[];
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户分页查询对象
|
||||
*/
|
||||
export interface UserPageQuery extends PageQuery {
|
||||
/** 搜索关键字 */
|
||||
keywords?: string;
|
||||
|
||||
/** 用户状态 */
|
||||
status?: number;
|
||||
|
||||
/** 部门ID */
|
||||
// deptId?: number;
|
||||
|
||||
/** 注册时间 */
|
||||
regTime?: [number, number];
|
||||
}
|
||||
|
||||
/** 用户分页对象 */
|
||||
export interface UserPageVO {
|
||||
/** 用户头像URL */
|
||||
avatar?: string;
|
||||
/** 创建时间 */
|
||||
regTime?: number;
|
||||
/** 部门名称 */
|
||||
// deptName?: string;
|
||||
/** 用户邮箱 */
|
||||
email?: string;
|
||||
/** 性别 */
|
||||
genderLabel?: string;
|
||||
/** 用户ID */
|
||||
id?: number;
|
||||
/** 手机号 */
|
||||
mobile?: string;
|
||||
/** 用户昵称 */
|
||||
nickname?: string;
|
||||
/** 角色名称,多个使用英文逗号(,)分割 */
|
||||
// roleNames?: string;
|
||||
/** 用户状态(1:启用;0:禁用) */
|
||||
status?: number;
|
||||
/** 用户名 */
|
||||
username?: string;
|
||||
|
||||
name?: string;
|
||||
isName?: number;
|
||||
isPhone?: number;
|
||||
loginTime?: number;
|
||||
loginNum?: number;
|
||||
deleteTime?: number;
|
||||
vipTime?: number;
|
||||
integral?: number;
|
||||
authority?: number;
|
||||
}
|
||||
|
||||
/** 用户表单类型 */
|
||||
export interface UserForm {
|
||||
/** 用户头像 */
|
||||
avatar?: string;
|
||||
/** 部门ID */
|
||||
// deptId?: number;
|
||||
/** 邮箱 */
|
||||
email?: string;
|
||||
/** 性别 */
|
||||
gender?: number;
|
||||
/** 用户ID */
|
||||
id?: number;
|
||||
/** 手机号 */
|
||||
mobile?: string;
|
||||
/** 昵称 */
|
||||
nickname?: string;
|
||||
/** 角色ID集合 */
|
||||
roleIds?: number[];
|
||||
/** 用户状态(1:正常;0:禁用) */
|
||||
status?: number;
|
||||
/** 用户名 */
|
||||
username?: string;
|
||||
}
|
||||
|
||||
/** 个人中心用户信息 */
|
||||
export interface UserProfileVO {
|
||||
/** 用户ID */
|
||||
id?: number;
|
||||
|
||||
/** 用户名 */
|
||||
username?: string;
|
||||
|
||||
/** 昵称 */
|
||||
nickname?: string;
|
||||
|
||||
/** 头像URL */
|
||||
avatar?: string;
|
||||
|
||||
/** 性别 */
|
||||
gender?: number;
|
||||
|
||||
/** 手机号 */
|
||||
mobile?: string;
|
||||
|
||||
/** 邮箱 */
|
||||
email?: string;
|
||||
|
||||
// /** 部门名称 */
|
||||
// deptName?: string;
|
||||
|
||||
/** 角色名称,多个使用英文逗号(,)分割 */
|
||||
roleNames?: string;
|
||||
|
||||
/** 创建时间 */
|
||||
createTime?: Date;
|
||||
}
|
||||
|
||||
/** 个人中心用户信息表单 */
|
||||
export interface UserProfileForm {
|
||||
/** 用户ID */
|
||||
id?: number;
|
||||
|
||||
/** 用户名 */
|
||||
username?: string;
|
||||
|
||||
/** 昵称 */
|
||||
nickname?: string;
|
||||
|
||||
/** 头像URL */
|
||||
avatar?: string;
|
||||
|
||||
/** 性别 */
|
||||
gender?: number;
|
||||
|
||||
/** 手机号 */
|
||||
mobile?: string;
|
||||
|
||||
/** 邮箱 */
|
||||
email?: string;
|
||||
}
|
||||
|
||||
/** 修改密码表单 */
|
||||
export interface PasswordChangeForm {
|
||||
/** 原密码 */
|
||||
oldPassword?: string;
|
||||
/** 新密码 */
|
||||
newPassword?: string;
|
||||
/** 确认新密码 */
|
||||
confirmPassword?: string;
|
||||
}
|
||||
|
||||
/** 重置密码表单 */
|
||||
export interface ResetPasswordForm {
|
||||
/** 用户ID */
|
||||
userId?: number;
|
||||
/** 用户名 */
|
||||
username?: string;
|
||||
/** 手机或邮箱 */
|
||||
contact?: string;
|
||||
/** 验证码 */
|
||||
verifyCode?: string;
|
||||
/** 密码 */
|
||||
password?: string;
|
||||
}
|
||||
|
||||
/** 修改手机表单 */
|
||||
export interface MobileBindingForm {
|
||||
/** 手机号 */
|
||||
mobile?: string;
|
||||
/** 验证码 */
|
||||
code?: string;
|
||||
}
|
||||
|
||||
/** 修改邮箱表单 */
|
||||
export interface EmailBindingForm {
|
||||
/** 邮箱 */
|
||||
email?: string;
|
||||
/** 验证码 */
|
||||
code?: string;
|
||||
}
|
||||
|
||||
/** 账户信息 */
|
||||
export interface AccountInfo {
|
||||
/** 用户ID */
|
||||
userId?: number;
|
||||
/** 账户状态(0:注销;1:锁定;2:已激活;3:未激活;4:在线;5:旧版用户) */
|
||||
state?: number;
|
||||
|
||||
/** 真实名称 */
|
||||
name?: string;
|
||||
/** 是否实名认证(1:是;2:不是;3:正在认证) */
|
||||
isName?: number;
|
||||
|
||||
/** 手机号 */
|
||||
phone?: string;
|
||||
/** 是否手机认证(1:是;2:不是) */
|
||||
isPhone?: number;
|
||||
|
||||
/** 邮箱 */
|
||||
email?: string;
|
||||
/** 邮箱激活时间 */
|
||||
// activateTime?: number;
|
||||
|
||||
/** 唱作音符数 */
|
||||
integral?: number;
|
||||
|
||||
/** VIP过期时间(-1:终身, -2: 已过期, 0: 非会员) */
|
||||
vipTime?: number;
|
||||
/** VIP状态 */
|
||||
// vipState?: number;
|
||||
|
||||
/** 注册时间 */
|
||||
regTime?: number;
|
||||
}
|
||||
|
||||
export interface RealNameInfo {
|
||||
/** 用户ID */
|
||||
userId?: number;
|
||||
|
||||
/** 真实名称 */
|
||||
name?: string;
|
||||
isName?: number;
|
||||
|
||||
identityType?: number; //证件类型
|
||||
identityCard?: string; //证件号
|
||||
identityPic?: string; //证件照片
|
||||
address?: string; //联系地址
|
||||
}
|
||||
|
||||
export interface RealNameInfoPageQuery extends PageQuery {
|
||||
isName?: number;
|
||||
}
|
||||
|
||||
export interface DrawForm {
|
||||
amount: number;
|
||||
cardNum: string;
|
||||
bankName: string;
|
||||
cardName?: string;
|
||||
}
|
||||
|
||||
export interface DrawPageVO {
|
||||
orderId: number;
|
||||
userId: number;
|
||||
userName: string;
|
||||
money: string;
|
||||
bankName: string;
|
||||
cardNum: string;
|
||||
cardName?: string;
|
||||
takeTime: number;
|
||||
makeTime?: number;
|
||||
state: number;
|
||||
}
|
||||
Reference in New Issue
Block a user