const waitTime = (time = 100) => { return new Promise((resolve) => { setTimeout(() => { resolve(true); }, time); }); }; async function getFakeCaptcha(req, res) { await waitTime(2000); return res.json("captcha-xxx"); } const { ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION } = process.env; /** * 当前用户的权限,如果为空代表没登录 * current user access, if is '', user need login * 如果是 pro 的预览,默认是有权限的 */ let access = ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION === "site" ? "admin" : ""; const getAccess = () => { return access; }; // 代码中会兼容本地 service mock 以及部署站点的静态数据 export default { // 支持值为 Object 和 Array "GET /api/currentUser": (req, res) => { if (!getAccess()) { res.status(401).send({ data: { isLogin: false, }, errorCode: "401", errorMessage: "请先登录!", success: true, }); return; } res.send({ success: true, data: { name: "Serati Ma", avatar: "https://gw.alipayobjects.com/zos/antfincdn/XAosXuNZyF/BiazfanxmamNRoxxVxka.png", userid: "00000001", email: "antdesign@alipay.com", signature: "海纳百川,有容乃大", title: "交互专家", group: "蚂蚁金服-某某某事业群-某某平台部-某某技术部-UED", tags: [ { key: "0", label: "很有想法的", }, { key: "1", label: "专注设计", }, { key: "2", label: "辣~", }, { key: "3", label: "大长腿", }, { key: "4", label: "川妹子", }, { key: "5", label: "海纳百川", }, ], notifyCount: 12, unreadCount: 11, country: "China", access: getAccess(), geographic: { province: { label: "浙江省", key: "330000", }, city: { label: "杭州市", key: "330100", }, }, address: "西湖区工专路 77 号", phone: "0752-268888888", }, }); }, // GET POST 可省略 "GET /api/users": [ { key: "1", name: "John Brown", age: 32, address: "New York No. 1 Lake Park", }, { key: "2", name: "Jim Green", age: 42, address: "London No. 1 Lake Park", }, { key: "3", name: "Joe Black", age: 32, address: "Sidney No. 1 Lake Park", }, ], "POST /api/login/account": async (req, res) => { const { password, username, type } = req.body; await waitTime(2000); if (password === "ant.design" && username === "admin") { res.send({ status: "ok", type, currentAuthority: "admin", }); access = "admin"; return; } if (password === "ant.design" && username === "user") { res.send({ status: "ok", type, currentAuthority: "user", }); access = "user"; return; } if (type === "mobile") { res.send({ status: "ok", type, currentAuthority: "admin", }); access = "admin"; return; } res.send({ status: "error", type, currentAuthority: "guest", }); access = "guest"; }, "POST /api/login/outLogin": (req, res) => { access = ""; res.send({ data: {}, success: true, }); }, "POST /api/register": (req, res) => { res.send({ status: "ok", currentAuthority: "user", success: true, }); }, "GET /api/500": (req, res) => { res.status(500).send({ timestamp: 1513932555104, status: 500, error: "error", message: "error", path: "/base/category/list", }); }, "GET /api/404": (req, res) => { res.status(404).send({ timestamp: 1513932643431, status: 404, error: "Not Found", message: "No message available", path: "/base/category/list/2121212", }); }, "GET /api/403": (req, res) => { res.status(403).send({ timestamp: 1513932555104, status: 403, error: "Forbidden", message: "Forbidden", path: "/base/category/list", }); }, "GET /api/401": (req, res) => { res.status(401).send({ timestamp: 1513932555104, status: 401, error: "Unauthorized", message: "Unauthorized", path: "/base/category/list", }); }, "GET /api/login/captcha": getFakeCaptcha, };