api.d.ts 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. /**
  2. * namespace: Api
  3. *
  4. * 所有接口相关类型定义
  5. * 在.vue文件使用会报错,需要在 eslint.config.mjs 中配置 globals: { Api: 'readonly' }
  6. */
  7. declare namespace Api {
  8. /** 基础类型 */
  9. namespace Http {
  10. /** 基础响应 */
  11. interface BaseResponse<T = any> {
  12. // 状态码
  13. code: number
  14. // 消息
  15. msg: string
  16. // 数据
  17. data: T
  18. }
  19. }
  20. type FollowTye = 'school'|'canteen'|'company'
  21. type ImgType = 'avatar'|'follow'|'editor'|'canteen'
  22. /** 通用类型 */
  23. namespace Common {
  24. /** 分页参数 */
  25. interface PaginatingParams {
  26. /** 当前页码 */
  27. current: number
  28. /** 每页条数 */
  29. size: number
  30. /** 总条数 */
  31. total: number
  32. }
  33. /** 通用搜索参数 */
  34. type PaginatingSearchParams = Pick<PaginatingParams, 'current' | 'size'>
  35. /** 通用删除参数 */
  36. interface DeleteParams {
  37. id: number
  38. reason?: string
  39. }
  40. interface SelectInfo {
  41. id: number
  42. name: string
  43. }
  44. interface SelectRelationInfo {
  45. id: number
  46. name: string,
  47. children: selectInfo[]
  48. }
  49. /** 启用状态 */
  50. type EnableStatus = '1' | '2'
  51. }
  52. /** 认证类型 */
  53. namespace Auth {
  54. /** 登录参数 */
  55. interface LoginParams {
  56. username: string
  57. password: string
  58. }
  59. /** 登录响应 */
  60. interface LoginResponse {
  61. token: string
  62. refreshToken: string
  63. }
  64. }
  65. /** 角色类型 */
  66. namespace Role {
  67. /** 列表参数 */
  68. interface RoleListParams {
  69. name?: string
  70. }
  71. interface RoleInfo {
  72. id: number
  73. name: string
  74. descr: string
  75. create_date: string
  76. auth_ids: number[]
  77. show_ids?: number[]
  78. }
  79. /** 列表返回 */
  80. interface RoleListResponse {
  81. current: number
  82. size: number
  83. total: number
  84. records: RoleInfo[]
  85. }
  86. }
  87. /** 用户类型 */
  88. namespace User {
  89. /** 用户信息 */
  90. interface UserInfo {
  91. id?: number
  92. username: string
  93. password?: string
  94. role_id: number
  95. auth_ids?: number[]
  96. buttons?: string[]
  97. roles?: string[]
  98. sex: number
  99. role_name?: string
  100. status?: 0 | 1
  101. avatar?: string
  102. descr?: string
  103. email?: string
  104. phone?: string
  105. }
  106. /** 用户列表数据 */
  107. interface UserListData {
  108. records: UserListItem[]
  109. current: number
  110. size: number
  111. total: number
  112. }
  113. /** 用户列表项 */
  114. interface UserListItem {
  115. id: number
  116. avatar: string
  117. create_date: string
  118. update_date: string
  119. status: '0' | '1' // 1-正常 0-拉黑
  120. username: string
  121. sex: '0' | '1' // 1-女 0-男
  122. phone: string
  123. role_name: string
  124. }
  125. }
  126. namespace School {
  127. interface SchoolInfo {
  128. id: number
  129. name: string // 名称,
  130. province: string // 省,
  131. city: string // 市,
  132. area: string // 区,
  133. address: string // 详细地址,
  134. person_num: string // 在校人数,
  135. bind_user_id: number // 负责人,
  136. is_eleme_in_school: 0 | 1 // 是否有饿了么校内站 0-无 1-有,
  137. is_eleme_out_school: 0 | 1 // 是否有饿了么校外站 0-无 1-有,
  138. is_meituan_in_school: 0 | 1 // 是否有美团校内站 0-无 1-有,
  139. is_meituan_out_school: 0 | 1 // 是否有美团校外站 0-无 1-有,
  140. can_go_upstairs: 0 | 1 // 是否能上楼 0-能 1-不能,
  141. is_cooperate: 0 | 1 // 是否合作 0-无 1-有,
  142. can_ride: 0 | 1 // 是否允许骑电动车 0-能 1-不能,
  143. dormitory_distribution: string // 宿舍分布情况,
  144. qucan_station_distribution: string // 校门口取餐点离宿舍情况,
  145. out_business_description: string // 校外商圈情况,
  146. memo: string // 备注,
  147. create_date: string // 创建时间
  148. update_date: string // 更新时间
  149. }
  150. interface SchoolListData {
  151. records: SchoolListItem[]
  152. current: number
  153. size: number
  154. total: number
  155. }
  156. interface SchoolListItem {
  157. id: number
  158. name: string // 名称,
  159. province: string // 省,
  160. city: string // 市,
  161. area: string // 区,
  162. address: string // 详细地址,
  163. person_num: string // 在校人数,
  164. bind_user_id: number // 负责人,
  165. is_eleme_in_school: 0 | 1 // 是否有饿了么校内站 0-无 1-有,
  166. is_eleme_out_school: 0 | 1 // 是否有饿了么校外站 0-无 1-有,
  167. is_meituan_in_school: 0 | 1 // 是否有美团校内站 0-无 1-有,
  168. is_meituan_out_school: 0 | 1 // 是否有美团校外站 0-无 1-有,
  169. can_go_upstairs: 0 | 1 // 是否能上楼 0-能 1-不能,
  170. is_cooperate: 0 | 1 // 是否合作 0-无 1-有,
  171. can_ride: 0 | 1 // 是否允许骑电动车 0-能 1-不能,
  172. dormitory_distribution: string // 宿舍分布情况,
  173. qucan_station_distribution: string // 校门口取餐点离宿舍情况,
  174. out_business_description: string // 校外商圈情况,
  175. memo: string // 备注,
  176. }
  177. interface SchoolContactItem {
  178. id: number
  179. name: string // 名称,
  180. school_id: number // 学校ID,
  181. school_name: string // 学校,
  182. phone: string // 手机号,
  183. weixin: string // 微信号,
  184. position: string // 职位,
  185. memo: string // 备注,
  186. create_date?: string // 创建时间,
  187. update_date?: string // 更新时间,
  188. }
  189. interface SchoolContactListData {
  190. records: SchoolContactItem[]
  191. current: number
  192. size: number
  193. total: number
  194. }
  195. }
  196. namespace Canteen {
  197. interface Info {
  198. id: number
  199. school_id: number // 学校ID
  200. school_name: string // 学校
  201. company_name: string
  202. name: string // 名称
  203. stall_num: number // 档口数量
  204. is_direct: 0|1 // 是否直营
  205. stall_imgs: string[] // 档口照片
  206. username: string // 食堂经理
  207. phone: string // 手机号
  208. weixin: string // 微信号
  209. memo: string // 备注
  210. last_user_id: number // 最后一次跟进人
  211. last_user_name: string // 最后一次跟进人
  212. last_date: string // 最后一次跟进时间
  213. }
  214. interface ListItem {
  215. id: number
  216. school_id: number // 学校ID
  217. school_name: string // 学校
  218. company_id: number
  219. company_name: string
  220. name: string // 名称
  221. stall_num: number // 档口数量
  222. is_direct: 0|1 // 是否直营
  223. stall_imgs: string[] // 档口照片
  224. username: string // 食堂经理
  225. phone: string // 手机号
  226. weixin: string // 微信号
  227. memo: string // 备注
  228. last_user_id: number // 最后一次跟进人
  229. last_user_name: string // 最后一次跟进人
  230. last_date: string // 最后一次跟进时间
  231. }
  232. interface ListData {
  233. records: ListItem[]
  234. current: number
  235. size: number
  236. total: number
  237. }
  238. }
  239. namespace Follow {
  240. interface FollowInfo {
  241. id: number
  242. chat_imgs: string[]
  243. detail: string
  244. create_date: string
  245. first_name: string //
  246. second_name: string //
  247. user_name: string //
  248. avatar:string
  249. phone: string // 手机号,
  250. weixin: string // 微信号,
  251. position: string // 职位,
  252. }
  253. interface FollowListData {
  254. records: FollowInfo[]
  255. current: number
  256. size: number
  257. total: number
  258. }
  259. interface timeLineItem {
  260. date: string
  261. color: string
  262. list: Api.Follow.FollowInfo[]
  263. }
  264. }
  265. }