system.fake.ts 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302
  1. import { system } from "#/src/router/extra-info";
  2. import { defineFakeRoute } from "vite-plugin-fake-server/client";
  3. import { resultSuccess } from "./utils";
  4. const systemMenu = [
  5. // 系统管理
  6. {
  7. id: system,
  8. menuType: 0, // 菜单类型(0 代表菜单、1 代表 iframe、2 代表外链、3 代表按钮)
  9. name: "common.menu.system",
  10. },
  11. {
  12. parentId: system,
  13. id: system + 1,
  14. menuType: 0,
  15. name: "common.menu.user",
  16. },
  17. {
  18. parentId: system,
  19. id: system + 2,
  20. menuType: 0,
  21. name: "common.menu.role",
  22. },
  23. {
  24. parentId: system,
  25. id: system + 3,
  26. menuType: 0,
  27. name: "common.menu.menu",
  28. },
  29. {
  30. parentId: system,
  31. id: system + 4,
  32. menuType: 0,
  33. name: "common.menu.dept",
  34. },
  35. {
  36. parentId: system + 4,
  37. id: system + 4 + 1,
  38. menuType: 3,
  39. name: "common.add",
  40. },
  41. {
  42. parentId: system + 4,
  43. id: system + 4 + 2,
  44. menuType: 3,
  45. name: "common.edit",
  46. },
  47. {
  48. parentId: system + 4,
  49. id: system + 4 + 3,
  50. menuType: 3,
  51. name: "common.delete",
  52. },
  53. ];
  54. export default defineFakeRoute([
  55. // 角色管理
  56. {
  57. url: "/role-list",
  58. method: "get",
  59. response: ({ body }) => {
  60. let list = [
  61. {
  62. createTime: 1729752330782, // 时间戳(毫秒ms)
  63. updateTime: 1729752330782,
  64. id: 1,
  65. name: "超级管理员",
  66. code: "admin",
  67. status: 1, // 状态 1 启用 0 停用
  68. remark: "超级管理员拥有最高权限",
  69. },
  70. {
  71. createTime: 1729752330782,
  72. updateTime: 1729752330782,
  73. id: 2,
  74. name: "普通角色",
  75. code: "common",
  76. status: 1,
  77. remark: "普通角色拥有部分权限",
  78. },
  79. ];
  80. // list = Array.from({ length: 10000 }).flatMap(() => list);
  81. list = list.filter(item =>
  82. item.name.includes(body?.name ?? "")
  83. && String(item.status).includes(String(body?.status ?? ""))
  84. && (!body?.code || item.code === body?.code),
  85. );
  86. return resultSuccess({
  87. list,
  88. total: list.length, // 总条目数
  89. pageSize: 10, // 每页显示条目个数
  90. current: 1, // 当前页数
  91. });
  92. },
  93. },
  94. // 角色管理-新增角色
  95. {
  96. url: "/role-item",
  97. method: "post",
  98. response: ({ body }) => {
  99. return resultSuccess(body);
  100. },
  101. },
  102. // 角色管理-修改角色
  103. {
  104. url: "/role-item",
  105. method: "put",
  106. response: ({ body }) => {
  107. return resultSuccess(body);
  108. },
  109. },
  110. // 角色管理-删除角色
  111. {
  112. url: "/role-item",
  113. method: "delete",
  114. response: ({ body }) => {
  115. return resultSuccess(body);
  116. },
  117. },
  118. // 角色管理-权限-菜单权限
  119. {
  120. url: "/role-menu",
  121. method: "get",
  122. response: () => {
  123. return resultSuccess(systemMenu);
  124. },
  125. },
  126. // 角色管理-权限-菜单权限,根据角色 id 查对应菜单
  127. {
  128. url: "/menu-by-role-id",
  129. method: "get",
  130. response: ({ query }) => {
  131. if (query.id === "1") {
  132. return resultSuccess(systemMenu.map(item => item.id));
  133. }
  134. else if (query.id === "2") {
  135. return resultSuccess([]);
  136. }
  137. return resultSuccess([]);
  138. },
  139. },
  140. // 菜单管理
  141. {
  142. url: "/menu-list",
  143. method: "get",
  144. response: () => {
  145. const menuList = [
  146. // 系统管理
  147. {
  148. parentId: "", // 上级菜单 id
  149. id: system, // 菜单 id
  150. menuType: 0, // 菜单类型(0 代表菜单、1 代表 iframe、2 代表外链、3 代表按钮)
  151. name: "common.menu.system", // 菜单名称
  152. path: "/system", // 路由路径
  153. component: "/system", // 组件路径
  154. order: system, // 菜单顺序
  155. icon: "SettingOutlined", // 菜单图标
  156. currentActiveMenu: "", // 激活路径
  157. iframeLink: "", // iframe 链接
  158. keepAlive: true, // 是否缓存页面
  159. externalLink: "", // 外链地址
  160. hideInMenu: false, // 是否在菜单中隐藏
  161. ignoreAccess: false, // 是否忽略权限
  162. status: 1, // 状态(0 停用、1 启用)
  163. createTime: 1737023155965,
  164. updateTime: 1737023164653,
  165. },
  166. {
  167. parentId: system,
  168. id: system + 1,
  169. menuType: 0,
  170. name: "common.menu.user",
  171. path: "/system/user", // 路由路径
  172. component: "/system/user", // 组件路径
  173. order: undefined, // 菜单顺序
  174. icon: "UserOutlined", // 菜单图标
  175. currentActiveMenu: "", // 激活路径
  176. iframeLink: "", // iframe 链接
  177. keepAlive: true, // 是否缓存页面
  178. externalLink: "", // 外链地址
  179. hideInMenu: false, // 是否在菜单中隐藏
  180. ignoreAccess: false, // 是否忽略权限
  181. status: 1, // 状态(0 停用、1 启用)
  182. createTime: 1737023155965,
  183. updateTime: 1737023164653,
  184. },
  185. {
  186. parentId: system,
  187. id: system + 2,
  188. menuType: 0,
  189. name: "common.menu.role",
  190. path: "/system/role", // 路由路径
  191. component: "/system/role", // 组件路径
  192. order: undefined, // 菜单顺序
  193. icon: "TeamOutlined", // 菜单图标
  194. currentActiveMenu: "", // 激活路径
  195. iframeLink: "", // iframe 链接
  196. keepAlive: true, // 是否缓存页面
  197. externalLink: "", // 外链地址
  198. hideInMenu: false, // 是否在菜单中隐藏
  199. ignoreAccess: false, // 是否忽略权限
  200. status: 1, // 状态(0 停用、1 启用)
  201. createTime: 1737023155965,
  202. updateTime: 1737023164653,
  203. },
  204. {
  205. parentId: system,
  206. id: system + 3,
  207. menuType: 0,
  208. name: "common.menu.menu",
  209. path: "/system/menu", // 路由路径
  210. component: "/system/menu", // 组件路径
  211. order: undefined, // 菜单顺序
  212. icon: "MenuOutlined", // 菜单图标
  213. currentActiveMenu: "", // 激活路径
  214. iframeLink: "", // iframe 链接
  215. keepAlive: true, // 是否缓存页面
  216. externalLink: "", // 外链地址
  217. hideInMenu: false, // 是否在菜单中隐藏
  218. ignoreAccess: false, // 是否忽略权限
  219. status: 1, // 状态(0 停用、1 启用)
  220. createTime: 1737023155965,
  221. updateTime: 1737023164653,
  222. },
  223. {
  224. parentId: system,
  225. id: system + 4,
  226. menuType: 0,
  227. name: "common.menu.dept",
  228. path: "/system/dept", // 路由路径
  229. component: "/system/dept", // 组件路径
  230. order: undefined, // 菜单顺序
  231. icon: "ApartmentOutlined", // 菜单图标
  232. currentActiveMenu: "", // 激活路径
  233. iframeLink: "", // iframe 链接
  234. keepAlive: true, // 是否缓存页面
  235. externalLink: "", // 外链地址
  236. hideInMenu: false, // 是否在菜单中隐藏
  237. ignoreAccess: false, // 是否忽略权限
  238. status: 1, // 状态(0 停用、1 启用)
  239. createTime: 1737023155965,
  240. updateTime: 1737023164653,
  241. },
  242. {
  243. parentId: system + 4,
  244. id: system + 4 + 1,
  245. menuType: 3,
  246. name: "common.add",
  247. status: 1, // 状态(0 停用、1 启用)
  248. createTime: 1737023155965,
  249. updateTime: 1737023164653,
  250. },
  251. {
  252. parentId: system + 4,
  253. id: system + 4 + 2,
  254. menuType: 3,
  255. name: "common.edit",
  256. status: 1, // 状态(0 停用、1 启用)
  257. createTime: 1737023155965,
  258. updateTime: 1737023164653,
  259. },
  260. {
  261. parentId: system + 4,
  262. id: system + 4 + 3,
  263. menuType: 3,
  264. name: "common.delete",
  265. status: 1, // 状态(0 停用、1 启用)
  266. createTime: 1737023155965,
  267. updateTime: 1737023164653,
  268. },
  269. ];
  270. return resultSuccess({
  271. list: menuList,
  272. total: menuList.length, // 总条目数
  273. pageSize: 10, // 每页显示条目个数
  274. current: 1, // 当前页数
  275. });
  276. },
  277. },
  278. {
  279. url: "/menu-item",
  280. method: "post",
  281. response: () => {
  282. return resultSuccess({});
  283. },
  284. },
  285. {
  286. url: "/menu-item",
  287. method: "delete",
  288. response: () => {
  289. return resultSuccess({});
  290. },
  291. },
  292. {
  293. url: "/menu-item",
  294. method: "put",
  295. response: () => {
  296. return resultSuccess({});
  297. },
  298. },
  299. ]);