// API 基础配置(山峡化工 miniprogram) // 本地联调:改为 http://127.0.0.1:8000/api 或电脑局域网 IP // 生产发版:改为生产网关地址,并执行 npm run release:check-api const DEV_BASE_URL = 'http://127.0.0.1:8000/api' let devBaseUrl = DEV_BASE_URL // 微信小程序真机调试时,localhost 指向手机本机,需使用电脑局域网 IP。 // #ifdef MP-WEIXIN devBaseUrl = 'http://127.0.0.1:8000/api' // #endif export const BASE_URL = devBaseUrl export const API_BASE = BASE_URL console.log('[ENV]', 'hardcoded', BASE_URL, API_BASE) /** 认证相关路径(当前复用 web-admin 公共登录接口) */ export const AUTH_API = { LOGIN_RSA_PUBLIC_KEY: '/web/auth/login-rsa-public-key', LOGIN: '/web/auth/login', LOGOUT: '/web/auth/logout', CURRENT_USER: '/web/auth/current-user', REFRESH_TOKEN: '/web/auth/refresh-token' } /** * 上传接口(multipart,须在 API_ENCRYPT_EXCLUDE_PATHS 中) * 响应字段兼容 data.url / data.fileUrl;P0 复用管理端附件上传。 * 后续可切换为专用 /mini/.../upload/image。 */ export const UPLOAD_API = { IMAGE: '/web/admin/attachment/upload' } /** Tab / 业务页路径(供 store 跳转) */ export const PAGE_PATHS = { login: '/pages/login/login', home: '/pages/home/home', todo: '/pages/todo/todo', workbench: '/pages/workbench/workbench', mine: '/pages/mine/mine', bizPlaceholder: '/pages/common/biz-placeholder', crmClueList: '/pages/crm/clue/list', crmClueDetail: '/pages/crm/clue/detail', crmClueForm: '/pages/crm/clue/form', crmOpportunityList: '/pages/crm/opportunity/list', crmOpportunityDetail: '/pages/crm/opportunity/detail', crmCustomerList: '/pages/crm/customer/list', crmCustomerDetail: '/pages/crm/customer/detail', crmPoolList: '/pages/crm/pool/list', crmQuoteList: '/pages/crm/quote/list', crmQuoteDetail: '/pages/crm/quote/detail', crmContractList: '/pages/crm/contract/list', crmContractDetail: '/pages/crm/contract/detail', crmProductCategoryList: '/pages/crm/product-category/list', crmProductCategoryForm: '/pages/crm/product-category/form', bxTodoList: '/pages/bx/todo/list', bxReimburseList: '/pages/bx/reimburse/list', bxReimburseForm: '/pages/bx/reimburse/form', bxReimburseDetail: '/pages/bx/reimburse/detail', bxAdvanceList: '/pages/bx/advance/list', bxAdvanceForm: '/pages/bx/advance/form', bxAdvanceDetail: '/pages/bx/advance/detail', bxApproveList: '/pages/bx/approve/list', bxMineList: '/pages/bx/mine/list', dbDashboard: '/pages/db/dashboard/index', dbPlansList: '/pages/db/plans/list', dbPlansDetail: '/pages/db/plans/detail', dbWeighingList: '/pages/db/weighing/list', dbWeighingDetail: '/pages/db/weighing/detail', dbInventoryList: '/pages/db/inventory/list', dbInventoryDetail: '/pages/db/inventory/detail', plPlanList: '/pages/pl/plan/list', plPlanDetail: '/pages/pl/plan/detail', plPlanArrange: '/pages/pl/plan/arrange', plArchiveList: '/pages/pl/archive/list', plCertList: '/pages/pl/cert/list', plCertDetail: '/pages/pl/cert/detail', plFreightList: '/pages/pl/freight/list', plFreightDetail: '/pages/pl/freight/detail', plFreightApproval: '/pages/pl/freight/approval' } /** 工作台菜单 code → 页面路径 */ export const WORKBENCH_ROUTE_MAP = { 'crm-product-category': PAGE_PATHS.crmProductCategoryList, 'crm-clue': PAGE_PATHS.crmClueList, 'crm-opportunity': PAGE_PATHS.crmOpportunityList, 'crm-customer': PAGE_PATHS.crmCustomerList, 'crm-customer-pool': PAGE_PATHS.crmPoolList, 'crm-quote': PAGE_PATHS.crmQuoteList, 'crm-contract': PAGE_PATHS.crmContractList, 'bx-todo': PAGE_PATHS.bxTodoList, 'bx-reimburse-apply': PAGE_PATHS.bxReimburseList, 'bx-reimburse-approve': `${PAGE_PATHS.bxApproveList}?type=reimburse`, 'bx-advance-apply': PAGE_PATHS.bxAdvanceList, 'bx-advance-approve': `${PAGE_PATHS.bxApproveList}?type=advance`, 'bx-mine': PAGE_PATHS.bxMineList, 'db-dashboard': PAGE_PATHS.dbDashboard, 'db-plans': PAGE_PATHS.dbPlansList, 'db-weighing': PAGE_PATHS.dbWeighingList, 'db-inventory': PAGE_PATHS.dbInventoryList, 'pl-plan': PAGE_PATHS.plPlanList, 'pl-plan-archive': PAGE_PATHS.plArchiveList, 'pl-plan-cert': PAGE_PATHS.plCertList, 'pl-freight': PAGE_PATHS.plFreightList, 'pl-freight-approval': PAGE_PATHS.plFreightApproval } export const TOKEN_KEY = 'sx_token' export const REFRESH_TOKEN_KEY = 'sx_refresh_token' export const USER_INFO_KEY = 'sx_user_info'