mock平台

interface.js 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. import axios from 'axios';
  2. import qs from 'qs';
  3. // Actions
  4. const INIT_INTERFACE_DATA = 'yapi/interface/INIT_INTERFACE_DATA';
  5. const FETCH_INTERFACE_DATA = 'yapi/interface/FETCH_INTERFACE_DATA';
  6. const FETCH_INTERFACE_LIST_MENU = 'yapi/interface/FETCH_INTERFACE_LIST_MENU';
  7. const DELETE_INTERFACE_DATA = 'yapi/interface/DELETE_INTERFACE_DATA';
  8. const DELETE_INTERFACE_CAT_DATA = 'yapi/interface/DELETE_INTERFACE_CAT_DATA';
  9. const UPDATE_INTERFACE_DATA = 'yapi/interface/UPDATE_INTERFACE_DATA';
  10. const CHANGE_EDIT_STATUS = 'yapi/interface/CHANGE_EDIT_STATUS';
  11. const FETCH_INTERFACE_LIST = 'yapi/interface/FETCH_INTERFACE_LIST';
  12. const SAVE_IMPORT_DATA = 'yapi/interface/SAVE_IMPORT_DATA';
  13. const FETCH_INTERFACE_CAT_LIST = 'yapi/interface/FETCH_INTERFACE_CAT_LIST';
  14. // const SAVE_INTERFACE_PROJECT_ID = 'yapi/interface/SAVE_INTERFACE_PROJECT_ID';
  15. // const GET_INTERFACE_GROUP_LIST = 'yapi/interface/GET_INTERFACE_GROUP_LIST';
  16. // Reducer
  17. const initialState = {
  18. curdata: {},
  19. list: [],
  20. editStatus: false, // 记录编辑页面是否有编辑,
  21. totalTableList: [],
  22. catTableList: [],
  23. count: 0,
  24. totalCount: 0
  25. };
  26. export default (state = initialState, action) => {
  27. switch (action.type) {
  28. case INIT_INTERFACE_DATA:
  29. return initialState;
  30. case UPDATE_INTERFACE_DATA:
  31. return {
  32. ...state,
  33. curdata: Object.assign({}, state.curdata, action.updata)
  34. };
  35. case FETCH_INTERFACE_DATA:
  36. return {
  37. ...state,
  38. curdata: action.payload.data.data
  39. };
  40. case FETCH_INTERFACE_LIST_MENU:
  41. return {
  42. ...state,
  43. list: action.payload.data.data
  44. };
  45. case CHANGE_EDIT_STATUS: {
  46. return {
  47. ...state,
  48. editStatus: action.status
  49. };
  50. }
  51. case FETCH_INTERFACE_LIST: {
  52. return {
  53. ...state,
  54. totalTableList: action.payload.data.data.list,
  55. totalCount: action.payload.data.data.count
  56. };
  57. }
  58. case FETCH_INTERFACE_CAT_LIST: {
  59. return {
  60. ...state,
  61. catTableList: action.payload.data.data.list,
  62. count: action.payload.data.data.count
  63. };
  64. }
  65. default:
  66. return state;
  67. }
  68. };
  69. // 记录编辑页面是否有编辑
  70. export function changeEditStatus(status) {
  71. return {
  72. type: CHANGE_EDIT_STATUS,
  73. status
  74. };
  75. }
  76. export function initInterface() {
  77. return {
  78. type: INIT_INTERFACE_DATA
  79. };
  80. }
  81. export function updateInterfaceData(updata) {
  82. return {
  83. type: UPDATE_INTERFACE_DATA,
  84. updata: updata,
  85. payload: true
  86. };
  87. }
  88. export async function deleteInterfaceData(id) {
  89. let result = await axios.post('/api/interface/del', {id: id});
  90. return {
  91. type: DELETE_INTERFACE_DATA,
  92. payload: result
  93. };
  94. }
  95. export async function saveImportData(data) {
  96. let result = await axios.post('/api/interface/save', data);
  97. return {
  98. type: SAVE_IMPORT_DATA,
  99. payload: result
  100. };
  101. }
  102. export async function deleteInterfaceCatData(id) {
  103. let result = await axios.post('/api/interface/del_cat', {catid: id});
  104. return {
  105. type: DELETE_INTERFACE_CAT_DATA,
  106. payload: result
  107. };
  108. }
  109. // Action Creators
  110. export async function fetchInterfaceData(interfaceId) {
  111. let result = await axios.get('/api/interface/get?id=' + interfaceId);
  112. return {
  113. type: FETCH_INTERFACE_DATA,
  114. payload: result
  115. };
  116. }
  117. export async function fetchInterfaceListMenu(projectId) {
  118. let result = await axios.get('/api/interface/list_menu?project_id=' + projectId);
  119. return {
  120. type: FETCH_INTERFACE_LIST_MENU,
  121. payload: result
  122. };
  123. }
  124. export async function fetchInterfaceList(params) {
  125. let result = await axios.get('/api/interface/list', {
  126. params,
  127. paramsSerializer: params => {
  128. return qs.stringify(params, {indices: false})
  129. }
  130. })
  131. return {
  132. type: FETCH_INTERFACE_LIST,
  133. payload: result
  134. };
  135. }
  136. export async function fetchInterfaceCatList(params) {
  137. let result = axios.get('/api/interface/list_cat', {
  138. params,
  139. paramsSerializer: params => {
  140. return qs.stringify(params, {indices: false})
  141. }
  142. })
  143. return {
  144. type: FETCH_INTERFACE_CAT_LIST,
  145. payload: result
  146. };
  147. }