/** * namespace: Api * * 所有接口相关类型定义 * 在.vue文件使用会报错,需要在 eslint.config.mjs 中配置 globals: { Api: 'readonly' } */ declare namespace Api { /** 基础类型 */ namespace Http { /** 基础响应 */ interface BaseResponse { // 状态码 code: number // 消息 msg: string // 数据 data: T } } type FollowTye = 'school'|'canteen'|'company' type ImgType = 'avatar'|'follow'|'editor'|'canteen' /** 通用类型 */ namespace Common { /** 分页参数 */ interface PaginatingParams { /** 当前页码 */ current: number /** 每页条数 */ size: number /** 总条数 */ total: number } /** 通用搜索参数 */ type PaginatingSearchParams = Pick /** 通用删除参数 */ interface DeleteParams { id: number reason?: string } interface SelectInfo { id: number name: string } interface SelectRelationInfo { id: number name: string, children: selectInfo[] } /** 启用状态 */ type EnableStatus = '1' | '2' } /** 认证类型 */ namespace Auth { /** 登录参数 */ interface LoginParams { username: string password: string } /** 登录响应 */ interface LoginResponse { token: string refreshToken: string } } /** 角色类型 */ namespace Role { /** 列表参数 */ interface RoleListParams { name?: string } interface RoleInfo { id: number name: string descr: string create_date: string auth_ids: number[] show_ids?: number[] } /** 列表返回 */ interface RoleListResponse { current: number size: number total: number records: RoleInfo[] } } /** 用户类型 */ namespace User { /** 用户信息 */ interface UserInfo { id?: number username: string password?: string role_id: number auth_ids?: number[] buttons?: string[] roles?: string[] sex: number role_name?: string status?: 0 | 1 avatar?: string descr?: string email?: string phone?: string } /** 用户列表数据 */ interface UserListData { records: UserListItem[] current: number size: number total: number } /** 用户列表项 */ interface UserListItem { id: number avatar: string create_date: string update_date: string status: '0' | '1' // 1-正常 0-拉黑 username: string sex: '0' | '1' // 1-女 0-男 phone: string role_name: string } } namespace School { interface SchoolInfo { id: number name: string // 名称, province: string // 省, city: string // 市, area: string // 区, address: string // 详细地址, person_num: string // 在校人数, bind_user_id: number // 负责人, is_eleme_in_school: 0 | 1 // 是否有饿了么校内站 0-无 1-有, is_eleme_out_school: 0 | 1 // 是否有饿了么校外站 0-无 1-有, is_meituan_in_school: 0 | 1 // 是否有美团校内站 0-无 1-有, is_meituan_out_school: 0 | 1 // 是否有美团校外站 0-无 1-有, can_go_upstairs: 0 | 1 // 是否能上楼 0-能 1-不能, is_cooperate: 0 | 1 // 是否合作 0-无 1-有, can_ride: 0 | 1 // 是否允许骑电动车 0-能 1-不能, dormitory_distribution: string // 宿舍分布情况, qucan_station_distribution: string // 校门口取餐点离宿舍情况, out_business_description: string // 校外商圈情况, memo: string // 备注, create_date: string // 创建时间 update_date: string // 更新时间 } interface SchoolListData { records: SchoolListItem[] current: number size: number total: number } interface SchoolListItem { id: number name: string // 名称, province: string // 省, city: string // 市, area: string // 区, address: string // 详细地址, person_num: string // 在校人数, bind_user_id: number // 负责人, is_eleme_in_school: 0 | 1 // 是否有饿了么校内站 0-无 1-有, is_eleme_out_school: 0 | 1 // 是否有饿了么校外站 0-无 1-有, is_meituan_in_school: 0 | 1 // 是否有美团校内站 0-无 1-有, is_meituan_out_school: 0 | 1 // 是否有美团校外站 0-无 1-有, can_go_upstairs: 0 | 1 // 是否能上楼 0-能 1-不能, is_cooperate: 0 | 1 // 是否合作 0-无 1-有, can_ride: 0 | 1 // 是否允许骑电动车 0-能 1-不能, dormitory_distribution: string // 宿舍分布情况, qucan_station_distribution: string // 校门口取餐点离宿舍情况, out_business_description: string // 校外商圈情况, memo: string // 备注, } interface SchoolContactItem { id: number name: string // 名称, school_id: number // 学校ID, school_name: string // 学校, phone: string // 手机号, weixin: string // 微信号, position: string // 职位, memo: string // 备注, create_date?: string // 创建时间, update_date?: string // 更新时间, } interface SchoolContactListData { records: SchoolContactItem[] current: number size: number total: number } } namespace Canteen { interface Info { id: number school_id: number // 学校ID school_name: string // 学校 company_name: string name: string // 名称 stall_num: number // 档口数量 is_direct: 0|1 // 是否直营 stall_imgs: string[] // 档口照片 username: string // 食堂经理 phone: string // 手机号 weixin: string // 微信号 memo: string // 备注 last_user_id: number // 最后一次跟进人 last_user_name: string // 最后一次跟进人 last_date: string // 最后一次跟进时间 } interface ListItem { id: number school_id: number // 学校ID school_name: string // 学校 company_id: number company_name: string name: string // 名称 stall_num: number // 档口数量 is_direct: 0|1 // 是否直营 stall_imgs: string[] // 档口照片 username: string // 食堂经理 phone: string // 手机号 weixin: string // 微信号 memo: string // 备注 last_user_id: number // 最后一次跟进人 last_user_name: string // 最后一次跟进人 last_date: string // 最后一次跟进时间 } interface ListData { records: ListItem[] current: number size: number total: number } } namespace Follow { interface FollowInfo { id: number chat_imgs: string[] detail: string create_date: string first_name: string // second_name: string // user_name: string // avatar:string phone: string // 手机号, weixin: string // 微信号, position: string // 职位, } interface FollowListData { records: FollowInfo[] current: number size: number total: number } interface timeLineItem { date: string color: string list: Api.Follow.FollowInfo[] } } }