index.ts 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429
  1. import request from '@/utils/request';
  2. import { AxiosPromise } from 'axios';
  3. import { StudentQuery, StudentVO, StudentForm, XgDeptTreeVO, R, TableDataInfo } from './types';
  4. /**
  5. * 查询部门下拉树结构
  6. * @param deptId 部门ID
  7. */
  8. export const XgDeptTreeSelect = (belongDeptId?: number): AxiosPromise<XgDeptTreeVO[]> => {
  9. // 实际项目中连接后端接口
  10. // return request({
  11. // url: '/system/user/deptTree',
  12. // method: 'get',
  13. // params: {
  14. // belongDeptId
  15. // }
  16. // });
  17. return request({
  18. url: '/xgStudentManagerSource/studentManagerSource/currentUserAuthTree',
  19. method: 'get'
  20. });
  21. // // 模拟数据,直接返回与页面组件期望格式一致的数据
  22. // return Promise.resolve({
  23. // data: mockDeptTree,
  24. // status: 200,
  25. // statusText: 'OK',
  26. // headers: {},
  27. // config: {} as any
  28. // }) as any;
  29. };
  30. // 查询学生列表
  31. export function listStudent(query?: StudentQuery): AxiosPromise<R<TableDataInfo<StudentVO[]>>> {
  32. // 实际使用时连接后端接口
  33. // return request({
  34. // url: '/studentMsg/student/list',
  35. // method: 'get',
  36. // params: query
  37. // });
  38. // 模拟数据
  39. return Promise.resolve({
  40. data: {
  41. code: 200,
  42. msg: 'success',
  43. data: {
  44. total: mockStudentData.length,
  45. rows: mockStudentData
  46. }
  47. }
  48. } as any);
  49. }
  50. // 查询学生详细
  51. export function getStudent(studentId?: string | number): AxiosPromise<R<{
  52. student: StudentVO;
  53. majors: any[];
  54. classes: any[];
  55. }>> {
  56. if (studentId) {
  57. // 实际使用时连接后端接口
  58. // return request({
  59. // url: '/studentMsg/student/' + studentId,
  60. // method: 'get'
  61. // });
  62. // 模拟数据
  63. const student = mockStudentData.find(item => item.studentId === studentId);
  64. return Promise.resolve({
  65. data: {
  66. code: 200,
  67. msg: 'success',
  68. data: {
  69. student: student || {},
  70. majors: mockMajors,
  71. classes: mockClasses
  72. }
  73. }
  74. } as any);
  75. } else {
  76. // 新增时返回初始空对象和选项数据
  77. return Promise.resolve({
  78. data: {
  79. code: 200,
  80. msg: 'success',
  81. data: {
  82. student: {},
  83. majors: mockMajors,
  84. classes: mockClasses
  85. }
  86. }
  87. } as any);
  88. }
  89. }
  90. // 新增学生
  91. export function addStudent(data: StudentForm): AxiosPromise<R<any>> {
  92. // 实际使用时连接后端接口
  93. // return request({
  94. // url: '/studentMsg/student',
  95. // method: 'post',
  96. // data: data
  97. // });
  98. // 模拟数据
  99. return Promise.resolve({
  100. data: {
  101. code: 200,
  102. msg: '添加成功'
  103. }
  104. } as any);
  105. }
  106. // 修改学生
  107. export function updateStudent(data: StudentForm): AxiosPromise<R<any>> {
  108. // 实际使用时连接后端接口
  109. // return request({
  110. // url: '/studentMsg/student',
  111. // method: 'put',
  112. // data: data
  113. // });
  114. // 模拟数据
  115. return Promise.resolve({
  116. data: {
  117. code: 200,
  118. msg: '修改成功'
  119. }
  120. } as any);
  121. }
  122. // 删除学生
  123. export function delStudent(studentId: string | number | Array<string | number>): AxiosPromise<R<any>> {
  124. // 实际使用时连接后端接口
  125. // return request({
  126. // url: '/studentMsg/student/' + studentId,
  127. // method: 'delete'
  128. // });
  129. // 模拟数据
  130. return Promise.resolve({
  131. data: {
  132. code: 200,
  133. msg: '删除成功'
  134. }
  135. } as any);
  136. }
  137. // 查询院系树结构
  138. export function deptTreeSelect(): AxiosPromise<R<any>> {
  139. // 实际使用时连接后端接口
  140. // return request({
  141. // url: '/studentMsg/dept/treeselect',
  142. // method: 'get'
  143. // });
  144. // 模拟数据
  145. return Promise.resolve({
  146. data: {
  147. code: 200,
  148. msg: 'success',
  149. data: mockDeptTree
  150. }
  151. } as any);
  152. }
  153. // 导出学生
  154. export function exportStudent(query?: StudentQuery): AxiosPromise<any> {
  155. // 实际使用时连接后端接口
  156. // return request({
  157. // url: '/studentMsg/student/export',
  158. // method: 'get',
  159. // params: query
  160. // });
  161. // 模拟数据
  162. return Promise.resolve({
  163. data: mockStudentData,
  164. status: 200,
  165. statusText: 'OK',
  166. headers: {},
  167. config: {} as any
  168. }) as any;
  169. }
  170. // 学生状态修改
  171. export function changeStudentStatus(studentId: string | number, status: string): AxiosPromise<R<any>> {
  172. // 实际使用时连接后端接口
  173. // return request({
  174. // url: '/studentMsg/student/changeStatus',
  175. // method: 'put',
  176. // data: {
  177. // studentId,
  178. // status
  179. // }
  180. // });
  181. // 模拟数据
  182. return Promise.resolve({
  183. data: {
  184. code: 200,
  185. msg: '状态修改成功'
  186. }
  187. } as any);
  188. }
  189. // 模拟数据 - 学生列表
  190. const mockStudentData: StudentVO[] = [
  191. {
  192. studentId: 1,
  193. studentNo: '202001001',
  194. studentName: '张三',
  195. nickName: '小张',
  196. sex: '0',
  197. age: 20,
  198. phonenumber: '13800138001',
  199. email: 'zhangsan@example.com',
  200. idCard: '110101200101011234',
  201. deptId: 105,
  202. deptName: '计算机科学与技术系',
  203. majorId: 1,
  204. majorName: '计算机科学与技术',
  205. classId: 101,
  206. className: '计算机2001班',
  207. address: '北京市海淀区',
  208. status: '0',
  209. createTime: '2023-01-01 10:00:00',
  210. remark: ''
  211. },
  212. {
  213. studentId: 2,
  214. studentNo: '202001002',
  215. studentName: '李四',
  216. nickName: '小李',
  217. sex: '0',
  218. age: 21,
  219. phonenumber: '13800138002',
  220. email: 'lisi@example.com',
  221. idCard: '110101200001011235',
  222. deptId: 105,
  223. deptName: '计算机科学与技术系',
  224. majorId: 1,
  225. majorName: '计算机科学与技术',
  226. classId: 101,
  227. className: '计算机2001班',
  228. address: '上海市浦东新区',
  229. status: '0',
  230. createTime: '2023-01-01 10:10:00',
  231. remark: ''
  232. },
  233. {
  234. studentId: 3,
  235. studentNo: '202001003',
  236. studentName: '王五',
  237. nickName: '小王',
  238. sex: '0',
  239. age: 19,
  240. phonenumber: '13800138003',
  241. email: 'wangwu@example.com',
  242. idCard: '110101200201011236',
  243. deptId: 106,
  244. deptName: '软件工程系',
  245. majorId: 2,
  246. majorName: '软件工程',
  247. classId: 201,
  248. className: '软工2001班',
  249. address: '广州市天河区',
  250. status: '0',
  251. createTime: '2023-01-02 09:00:00',
  252. remark: ''
  253. },
  254. {
  255. studentId: 4,
  256. studentNo: '202001004',
  257. studentName: '赵六',
  258. nickName: '小赵',
  259. sex: '1',
  260. age: 20,
  261. phonenumber: '13800138004',
  262. email: 'zhaoliu@example.com',
  263. idCard: '110101200101011237',
  264. deptId: 106,
  265. deptName: '软件工程系',
  266. majorId: 2,
  267. majorName: '软件工程',
  268. classId: 201,
  269. className: '软工2001班',
  270. address: '深圳市南山区',
  271. status: '0',
  272. createTime: '2023-01-02 10:30:00',
  273. remark: ''
  274. },
  275. {
  276. studentId: 5,
  277. studentNo: '202001005',
  278. studentName: '钱七',
  279. nickName: '小钱',
  280. sex: '1',
  281. age: 21,
  282. phonenumber: '13800138005',
  283. email: 'qianqi@example.com',
  284. idCard: '110101200001011238',
  285. deptId: 107,
  286. deptName: '人工智能系',
  287. majorId: 3,
  288. majorName: '人工智能',
  289. classId: 301,
  290. className: '人工智能2001班',
  291. address: '杭州市西湖区',
  292. status: '1', // 停用状态
  293. createTime: '2023-01-03 11:20:00',
  294. remark: '休学中'
  295. }
  296. ];
  297. // 模拟数据 - 院系树
  298. const mockDeptTree = [
  299. {
  300. id: 100,
  301. label: '信息学院',
  302. children: [
  303. {
  304. id: 105,
  305. label: '计算机科学与技术系',
  306. children: []
  307. },
  308. {
  309. id: 106,
  310. label: '软件工程系',
  311. children: []
  312. },
  313. {
  314. id: 107,
  315. label: '人工智能系',
  316. children: []
  317. }
  318. ]
  319. },
  320. {
  321. id: 200,
  322. label: '经济管理学院',
  323. children: [
  324. {
  325. id: 205,
  326. label: '市场营销系',
  327. children: []
  328. },
  329. {
  330. id: 206,
  331. label: '财务管理系',
  332. children: []
  333. }
  334. ]
  335. }
  336. ];
  337. // 模拟数据 - 专业
  338. const mockMajors = [
  339. {
  340. majorId: 1,
  341. majorName: '计算机科学与技术',
  342. deptId: 105
  343. },
  344. {
  345. majorId: 2,
  346. majorName: '软件工程',
  347. deptId: 106
  348. },
  349. {
  350. majorId: 3,
  351. majorName: '人工智能',
  352. deptId: 107
  353. },
  354. {
  355. majorId: 4,
  356. majorName: '市场营销',
  357. deptId: 205
  358. },
  359. {
  360. majorId: 5,
  361. majorName: '财务管理',
  362. deptId: 206
  363. }
  364. ];
  365. // 模拟数据 - 班级
  366. const mockClasses = [
  367. {
  368. classId: 101,
  369. className: '计算机2001班',
  370. majorId: 1
  371. },
  372. {
  373. classId: 102,
  374. className: '计算机2002班',
  375. majorId: 1
  376. },
  377. {
  378. classId: 201,
  379. className: '软工2001班',
  380. majorId: 2
  381. },
  382. {
  383. classId: 202,
  384. className: '软工2002班',
  385. majorId: 2
  386. },
  387. {
  388. classId: 301,
  389. className: '人工智能2001班',
  390. majorId: 3
  391. },
  392. {
  393. classId: 401,
  394. className: '市场营销2001班',
  395. majorId: 4
  396. },
  397. {
  398. classId: 501,
  399. className: '财务管理2001班',
  400. majorId: 5
  401. }
  402. ];
  403. export default { listStudent, getStudent, addStudent, updateStudent, delStudent, deptTreeSelect, exportStudent, changeStudentStatus, XgDeptTreeSelect };