fix: 新增代理系列授权-建议售价使用套餐
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 4m38s

This commit is contained in:
sexygoat
2026-06-12 10:41:37 +08:00
parent d23e896f97
commit e04a283319
98 changed files with 4279 additions and 6170 deletions

View File

@@ -1,63 +0,0 @@
/**
* 客户账号管理相关类型定义
*/
// 客户账号信息
export interface CustomerAccountItem {
id: number
username: string
phone: string
user_type: number // 3=代理账号, 4=企业账号
user_type_name: string
shop_id: number | null
shop_name: string
enterprise_id: number | null
enterprise_name: string
status: number // 0=禁用, 1=启用
status_name: string
created_at: string
}
// 客户账号分页结果
export interface CustomerAccountPageResult {
items: CustomerAccountItem[]
page: number
size: number
total: number
}
// 查询客户账号列表参数
export interface CustomerAccountQueryParams {
page?: number
page_size?: number
username?: string
phone?: string
user_type?: number | null
shop_id?: number | null
enterprise_id?: number | null
status?: number | null
}
// 新增代理商账号参数
export interface CreateCustomerAccountParams {
username: string
phone: string
password: string
shop_id: number
}
// 编辑账号参数
export interface UpdateCustomerAccountParams {
username?: string
phone?: string
}
// 修改账号密码参数
export interface UpdateCustomerAccountPasswordParams {
password: string
}
// 修改账号状态参数
export interface UpdateCustomerAccountStatusParams {
status: 0 | 1
}

View File

@@ -17,12 +17,6 @@ export * from './permission'
// 账号相关
export * from './account'
// 平台账号相关
export * from './platformAccount'
// 代理账号相关
export * from './shopAccount'
// 店铺相关
export * from './shop'
@@ -56,9 +50,6 @@ export * from './commission'
// 企业客户相关
export * from './enterprise'
// 客户账号相关
export * from './customerAccount'
// 设置相关
export * from './setting'

View File

@@ -1,82 +0,0 @@
/**
* 平台账号相关类型定义 - 匹配后端 API 文档
*/
import { PaginationParams } from './common'
// 平台账号响应实体(匹配后端 ModelAccountResponse - 使用大写字段名)
export interface PlatformAccountResponse {
ID: number // 账号ID
CreatedAt?: string // 创建时间
UpdatedAt?: string // 更新时间
DeletedAt?: string | null // 删除时间
creator?: number // 创建人ID
updater?: number // 更新人ID
username: string // 用户名
phone: string // 手机号
user_type: number // 用户类型 (1:超级管理员, 2:平台用户, 3:代理账号, 4:企业账号)
enterprise_id?: number | null // 关联企业ID
shop_id?: number | null // 关联店铺ID
status: number // 状态 (0:禁用, 1:启用)
}
// 平台账号列表查询参数
export interface PlatformAccountQueryParams extends PaginationParams {
username?: string // 用户名模糊查询
phone?: string // 手机号模糊查询
status?: number | null // 状态 (0:禁用, 1:启用)
page?: number // 页码
page_size?: number // 每页数量
}
// 创建平台账号参数(匹配后端 ModelCreateAccountRequest
export interface CreatePlatformAccountParams {
username: string // 用户名
password: string // 密码
phone: string // 手机号
user_type: number // 用户类型 (1:超级管理员, 2:平台用户, 3:代理账号, 4:企业账号)
enterprise_id?: number | null // 关联企业ID企业账号必填
shop_id?: number | null // 关联店铺ID代理账号必填
}
// 更新平台账号参数(匹配后端 ModelUpdateAccountParams
export interface UpdatePlatformAccountParams {
username?: string | null // 用户名
password?: string | null // 密码
phone?: string | null // 手机号
status?: number | null // 状态 (0:禁用, 1:启用)
}
// 修改密码参数
export interface ChangePlatformAccountPasswordParams {
new_password: string // 新密码
}
// 分配角色参数
export interface AssignRolesParams {
role_ids: number[] // 角色ID列表
}
// 启用/禁用账号参数
export interface UpdateAccountStatusParams {
status: number // 状态 (0:禁用, 1:启用)
}
// 平台账号角色响应
export interface PlatformAccountRoleResponse {
creator?: number // 创建人ID
role_desc?: string // 角色描述
role_name?: string // 角色名称
role_type?: number // 角色类型
status?: number // 状态
updater?: number // 更新人ID
ID?: number // 角色ID
}
// 平台账号列表分页响应(匹配后端 ModelAccountPageResult
export interface PlatformAccountPageResult {
items: PlatformAccountResponse[] | null // 账号列表
page?: number // 当前页码
size?: number // 每页数量
total?: number // 总记录数
}

View File

@@ -1,58 +0,0 @@
/**
* 代理账号相关类型定义 - 匹配后端 API 文档
*/
import { PaginationParams } from './common'
// 代理账号响应实体根据API文档使用小写字段名
export interface ShopAccountResponse {
id: number // 账号ID
created_at: string // 创建时间
updated_at: string // 更新时间
username: string // 用户名
phone: string // 手机号
shop_id: number // 店铺ID
user_type: number // 用户类型 (1:超级管理员, 2:平台用户, 3:代理账号, 4:企业账号)
status: number // 状态 (0:禁用, 1:启用)
}
// 代理账号列表查询参数
export interface ShopAccountQueryParams extends PaginationParams {
username?: string // 用户名模糊查询
phone?: string // 手机号精确查询
shop_id?: number | null // 店铺ID过滤
status?: number | null // 状态 (0:禁用, 1:启用)
page?: number // 页码
page_size?: number // 每页数量
}
// 创建代理账号参数
export interface CreateShopAccountParams {
username: string // 用户名
password: string // 密码
phone: string // 手机号
shop_id: number // 店铺ID
}
// 更新代理账号参数
export interface UpdateShopAccountParams {
username: string // 用户名
}
// 重置密码参数
export interface UpdateShopAccountPasswordParams {
new_password: string // 新密码
}
// 更新状态参数
export interface UpdateShopAccountStatusParams {
status: number // 状态 (0:禁用, 1:启用)
}
// 代理账号列表分页响应
export interface ShopAccountPageResult {
items: ShopAccountResponse[] | null // 账号列表
page?: number // 当前页码
size?: number // 每页数量
total?: number // 总记录数
}

View File

@@ -8,7 +8,7 @@ export {}
declare global {
const EffectScope: typeof import('vue')['EffectScope']
const ElButton: (typeof import('element-plus/es'))['ElButton']
const ElMessageBox: typeof import('element-plus/es')['ElMessageBox']
const ElMessageBox: (typeof import('element-plus/es'))['ElMessageBox']
const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate']
const asyncComputed: typeof import('@vueuse/core')['asyncComputed']
const autoResetRef: typeof import('@vueuse/core')['autoResetRef']

View File

@@ -15,7 +15,6 @@ declare module 'vue' {
ArtBreadcrumb: typeof import('./../components/core/layouts/art-breadcrumb/index.vue')['default']
ArtButtonMore: typeof import('./../components/core/forms/ArtButtonMore.vue')['default']
ArtButtonTable: typeof import('./../components/core/forms/ArtButtonTable.vue')['default']
ArtCardBanner: typeof import('./../components/core/banners/ArtCardBanner.vue')['default']
ArtChatWindow: typeof import('./../components/core/layouts/art-chat-window/index.vue')['default']
ArtCutterImg: typeof import('./../components/core/media/ArtCutterImg.vue')['default']
ArtDataListCard: typeof import('./../components/core/cards/ArtDataListCard.vue')['default']
@@ -84,55 +83,7 @@ declare module 'vue' {
CreateRefundDialog: typeof import('./../components/business/CreateRefundDialog.vue')['default']
CustomerAccountDialog: typeof import('./../components/business/CustomerAccountDialog.vue')['default']
DetailPage: typeof import('./../components/common/DetailPage.vue')['default']
ElAlert: typeof import('element-plus/es')['ElAlert']
ElAvatar: typeof import('element-plus/es')['ElAvatar']
ElButton: typeof import('element-plus/es')['ElButton']
ElCalendar: typeof import('element-plus/es')['ElCalendar']
ElCard: typeof import('element-plus/es')['ElCard']
ElCascader: typeof import('element-plus/es')['ElCascader']
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
ElCol: typeof import('element-plus/es')['ElCol']
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
ElDialog: typeof import('element-plus/es')['ElDialog']
ElDivider: typeof import('element-plus/es')['ElDivider']
ElDrawer: typeof import('element-plus/es')['ElDrawer']
ElDropdown: typeof import('element-plus/es')['ElDropdown']
ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem']
ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu']
ElEmpty: typeof import('element-plus/es')['ElEmpty']
ElForm: typeof import('element-plus/es')['ElForm']
ElFormItem: typeof import('element-plus/es')['ElFormItem']
ElIcon: typeof import('element-plus/es')['ElIcon']
ElInput: typeof import('element-plus/es')['ElInput']
ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
ElMenu: typeof import('element-plus/es')['ElMenu']
ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
ElOption: typeof import('element-plus/es')['ElOption']
ElPagination: typeof import('element-plus/es')['ElPagination']
ElPopover: typeof import('element-plus/es')['ElPopover']
ElProgress: typeof import('element-plus/es')['ElProgress']
ElRadio: typeof import('element-plus/es')['ElRadio']
ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
ElRow: typeof import('element-plus/es')['ElRow']
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
ElSelect: typeof import('element-plus/es')['ElSelect']
ElSubMenu: typeof import('element-plus/es')['ElSubMenu']
ElSwitch: typeof import('element-plus/es')['ElSwitch']
ElTable: typeof import('element-plus/es')['ElTable']
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
ElTabPane: typeof import('element-plus/es')['ElTabPane']
ElTabs: typeof import('element-plus/es')['ElTabs']
ElTag: typeof import('element-plus/es')['ElTag']
ElTimeline: typeof import('element-plus/es')['ElTimeline']
ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem']
ElTooltip: typeof import('element-plus/es')['ElTooltip']
ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect']
ElUpload: typeof import('element-plus/es')['ElUpload']
ElWatermark: typeof import('element-plus/es')['ElWatermark']
HorizontalSubmenu: typeof import('./../components/core/layouts/art-menus/art-horizontal-menu/widget/HorizontalSubmenu.vue')['default']
ImportDialog: typeof import('./../components/business/ImportDialog.vue')['default']
LoginLeftView: typeof import('./../components/core/views/login/LoginLeftView.vue')['default']
@@ -156,7 +107,4 @@ declare module 'vue' {
ThemeSettings: typeof import('./../components/core/layouts/art-settings-panel/widget/ThemeSettings.vue')['default']
UpdateRealnameStatusDialog: typeof import('./../components/business/UpdateRealnameStatusDialog.vue')['default']
}
export interface ComponentCustomProperties {
vLoading: typeof import('element-plus/es')['ElLoadingDirective']
}
}

View File

@@ -27,7 +27,6 @@ export interface MenuLayout {
export interface FestivalConfig {
date: string
name: string
image: string
scrollText: string
isActive?: boolean
}