"use strict"; const common_vendor = require("../common/vendor.js"); const BASE_URL = "http://192.168.123.111:3000/api"; const mockPrices = [ { category: "001", name: "纸类", unit: "kg", price: 1.2 }, { category: "002", name: "金属", unit: "kg", price: 2.5 }, { category: "003", name: "易拉罐", unit: "piece", price: 0.1 }, { category: "004", name: "塑料", unit: "kg", price: 3 }, { category: "005", name: "织物", unit: "kg", price: 0.8 }, { category: "006", name: "塑料瓶", unit: "piece", price: 0.05 } ]; const mockUsers = [ { id: "1", name: "管理员", phone: "13800138000", role: "admin", createTime: "2024-01-01" }, { id: "2", name: "回收员小王", phone: "18698102228", role: "collector", createTime: "2024-01-15" } ]; const request = async (url, options = {}) => { return new Promise((resolve, reject) => { common_vendor.index.request({ url: BASE_URL + url, method: options.method || "GET", data: options.data, header: { "Content-Type": "application/json", ...options.header }, success: (res) => { if (res.statusCode === 200) { resolve(res.data); } else { reject(new Error("请求失败")); } }, fail: (err) => { console.error("API request failed, using mock data:", err); reject(err); } }); }); }; const priceApi = { async getPrices() { try { return await request("/prices"); } catch { return { date: (/* @__PURE__ */ new Date()).toISOString().split("T")[0], prices: mockPrices }; } }, async addPrice(item) { try { const result = await request("/prices", { method: "POST", data: item }); return result.success; } catch { const cached = common_vendor.index.getStorageSync("api_prices") || { date: (/* @__PURE__ */ new Date()).toISOString().split("T")[0], prices: mockPrices }; cached.prices.push(item); common_vendor.index.setStorageSync("api_prices", cached); return true; } }, async updatePrice(item, originalCategory) { try { const category = originalCategory || item.category; const result = await request(`/prices/${category}`, { method: "PUT", data: item }); return result.success; } catch { const cached = common_vendor.index.getStorageSync("api_prices") || { date: (/* @__PURE__ */ new Date()).toISOString().split("T")[0], prices: mockPrices }; const searchCategory = originalCategory || item.category; const index = cached.prices.findIndex((p) => p.category === searchCategory); if (index > -1) { cached.prices[index] = item; common_vendor.index.setStorageSync("api_prices", cached); } return true; } }, async deletePrice(category) { try { const result = await request(`/prices/${category}`, { method: "DELETE" }); return result.success; } catch { const cached = common_vendor.index.getStorageSync("api_prices") || { date: (/* @__PURE__ */ new Date()).toISOString().split("T")[0], prices: mockPrices }; cached.prices = cached.prices.filter((p) => p.category !== category); common_vendor.index.setStorageSync("api_prices", cached); return true; } } }; const orderApi = { async getOrders() { try { const result = await request("/orders"); return result.data || []; } catch { const cached = common_vendor.index.getStorageSync("api_orders"); return cached || []; } }, async addOrder(order) { try { const result = await request("/orders", { method: "POST", data: order }); return result.order || null; } catch { const cached = common_vendor.index.getStorageSync("api_orders") || []; const newOrder = { ...order, id: Date.now().toString(), createTime: (/* @__PURE__ */ new Date()).toISOString() }; cached.unshift(newOrder); common_vendor.index.setStorageSync("api_orders", cached); return newOrder; } }, async updateOrder(order) { try { const result = await request(`/orders/${order.id}`, { method: "PUT", data: order }); return result.success; } catch { const cached = common_vendor.index.getStorageSync("api_orders") || []; const index = cached.findIndex((o) => o.id === order.id); if (index > -1) { cached[index] = order; common_vendor.index.setStorageSync("api_orders", cached); } return true; } }, async deleteOrder(id) { try { const result = await request(`/orders/${id}`, { method: "DELETE" }); return result.success; } catch { const cached = common_vendor.index.getStorageSync("api_orders") || []; const filtered = cached.filter((o) => o.id !== id); common_vendor.index.setStorageSync("api_orders", filtered); return true; } } }; const userApi = { async getUsers() { try { const result = await request("/users"); return result.data || []; } catch { const cached = common_vendor.index.getStorageSync("api_users"); return cached || mockUsers; } }, async addUser(user) { try { const result = await request("/users", { method: "POST", data: user }); return result.success; } catch { const cached = common_vendor.index.getStorageSync("api_users") || mockUsers; const newUser = { ...user, id: Date.now().toString(), createTime: (/* @__PURE__ */ new Date()).toISOString().split("T")[0] }; cached.push(newUser); common_vendor.index.setStorageSync("api_users", cached); return true; } }, async updateUser(user) { try { const result = await request(`/users/${user.id}`, { method: "PUT", data: user }); return result.success; } catch { const cached = common_vendor.index.getStorageSync("api_users") || mockUsers; const index = cached.findIndex((u) => u.id === user.id); if (index > -1) { cached[index] = user; common_vendor.index.setStorageSync("api_users", cached); } return true; } }, async deleteUser(id) { try { const result = await request(`/users/${id}`, { method: "DELETE" }); return result.success; } catch { const cached = common_vendor.index.getStorageSync("api_users") || mockUsers; const filtered = cached.filter((u) => u.id !== id); common_vendor.index.setStorageSync("api_users", filtered); return true; } } }; const regionApi = { async getCities() { var _a; try { const result = await request("/regions/cities"); return ((_a = result.data) == null ? void 0 : _a.map((c) => c.name)) || []; } catch { return ["天津市", "北京市", "上海市", "广州市"]; } }, async getDistricts(city) { var _a; try { const result = await request("/regions/districts"); return ((_a = result.data) == null ? void 0 : _a.filter((d) => d.cityName === city).map((d) => d.name)) || []; } catch { const districtMap = { "天津市": ["高新区", "西青区", "保税区"], "北京市": ["东城区", "西城区", "朝阳区", "海淀区", "丰台区"], "上海市": ["黄浦区", "徐汇区", "浦东新区", "静安区", "长宁区"], "广州市": ["天河区", "海珠区", "越秀区", "白云区", "荔湾区"] }; return districtMap[city] || []; } }, async getStations(city, district) { var _a, _b; try { const result = await request("/regions/stations"); return ((_a = result.data) == null ? void 0 : _a.filter((s) => s.cityName === city && s.districtName === district).map((s) => s.name)) || []; } catch { const stationMap = { "天津市": { "高新区": ["金融街融汇景苑", "金辉江山铭筑"], "西青区": ["华兴里", "华兴南里"], "保税区": ["意境兰庭"] }, "北京市": { "东城区": ["景山街道", "交道口街道", "东四街道", "朝阳门街道", "建国门街道"], "西城区": ["西长安街街道", "新街口街道", "月坛街道", "展览路街道", "德胜街道"], "朝阳区": ["朝外街道", "劲松街道", "呼家楼街道", "三里屯街道", "团结湖街道"], "海淀区": ["海淀街道", "中关村街道", "学院路街道", "西三旗街道", "清河街道"] }, "上海市": { "黄浦区": ["南京东路街道", "外滩街道", "瑞金二路街道", "淮海中路街道", "豫园街道"], "徐汇区": ["天平路街道", "湖南路街道", "斜土路街道", "枫林路街道", "长桥街道"], "浦东新区": ["陆家嘴街道", "潍坊新村街道", "塘桥街道", "南码头路街道", "周家渡街道"] }, "广州市": { "天河区": ["五山街道", "员村街道", "车陂街道", "沙河街道", "石牌街道"], "海珠区": ["赤岗街道", "新港街道", "昌岗街道", "江南中街道", "滨江街道"], "越秀区": ["洪桥街道", "北京街道", "六榕街道", "流花街道", "光塔街道"] } }; return ((_b = stationMap[city]) == null ? void 0 : _b[district]) || []; } }, async getSiteUsers(stationName) { var _a; try { const result = await request("/regions/site-users"); return ((_a = result.data) == null ? void 0 : _a.filter((u) => u.stationName === stationName).map((u) => u.name)) || []; } catch { return []; } }, async getCommunities(city, district) { var _a; try { const result = await request(`/regions/communities?city=${encodeURIComponent(city)}&district=${encodeURIComponent(district)}`); return result.data || []; } catch { const communityMap = { "天津市": { "高新区": ["金融街融汇景苑", "金辉江山铭筑"], "西青区": ["华兴里", "华兴南里"], "保税区": ["意境兰庭"] }, "北京市": { "东城区": ["景山街道", "交道口街道", "东四街道", "朝阳门街道", "建国门街道"], "西城区": ["西长安街街道", "新街口街道", "月坛街道", "展览路街道", "德胜街道"], "朝阳区": ["朝外街道", "劲松街道", "呼家楼街道", "三里屯街道", "团结湖街道"], "海淀区": ["海淀街道", "中关村街道", "学院路街道", "西三旗街道", "清河街道"] }, "上海市": { "黄浦区": ["南京东路街道", "外滩街道", "瑞金二路街道", "淮海中路街道", "豫园街道"], "徐汇区": ["天平路街道", "湖南路街道", "斜土路街道", "枫林路街道", "长桥街道"], "浦东新区": ["陆家嘴街道", "潍坊新村街道", "塘桥街道", "南码头路街道", "周家渡街道"] }, "广州市": { "天河区": ["五山街道", "员村街道", "车陂街道", "沙河街道", "石牌街道"], "海珠区": ["赤岗街道", "新港街道", "昌岗街道", "江南中街道", "滨江街道"], "越秀区": ["洪桥街道", "北京街道", "六榕街道", "流花街道", "光塔街道"] } }; return ((_a = communityMap[city]) == null ? void 0 : _a[district]) || []; } }, async addRegion(city, district, community) { try { const result = await request("/regions", { method: "POST", data: { city, district, community } }); return result.success; } catch { return true; } } }; exports.orderApi = orderApi; exports.priceApi = priceApi; exports.regionApi = regionApi; exports.userApi = userApi;