xiangqinxiaochengxu/miniprogram/utils/constants.js
2026-06-18 23:06:40 +08:00

63 lines
1.6 KiB
JavaScript

const DEFAULT_API_BASE_URL = 'https://ghxiangqin.com/api/v1'
const API_BASE_URL_KEY = 'api_base_url'
const CUSTOMER_SERVICE_WECHAT_KEY = 'customer_service_wechat'
function getApiBaseUrl() {
return normalizeApiBaseUrl(wx.getStorageSync(API_BASE_URL_KEY) || DEFAULT_API_BASE_URL)
}
function normalizeApiBaseUrl(url) {
let value = String(url || '').trim()
if (!value) {
return DEFAULT_API_BASE_URL
}
if (/^https?:\/\/[^/]/i.test(value)) {
value = value.replace(/^([a-z]+:)\/(?!\/)/i, '$1//')
}
if (/^https?:\/\/[^/]+\/https?:\/\//i.test(value)) {
value = value.replace(/^https?:\/\/[^/]+\//i, '')
}
if (/^\/v1\//i.test(value)) {
value = value.replace(/^\/v1\//i, '/api/v1/')
}
if (/^\/static\//i.test(value)) {
value = `/api/v1${value}`
}
if (/^https?:\/\/[^/]+\/v1\//i.test(value)) {
value = value.replace(/^https?:\/\/[^/]+\/v1\//i, 'https://ghxiangqin.com/api/v1/')
}
if (!/^https?:\/\//i.test(value) && !value.startsWith('/')) {
value = `https://${value}`
}
return value.replace(/\/+$/, '')
}
function setApiBaseUrl(url) {
if (!url) {
return
}
wx.setStorageSync(API_BASE_URL_KEY, url)
}
function getCustomerServiceWechat() {
return wx.getStorageSync(CUSTOMER_SERVICE_WECHAT_KEY) || 'service_wechat_001'
}
function setCustomerServiceWechat(value) {
if (!value) {
return
}
wx.setStorageSync(CUSTOMER_SERVICE_WECHAT_KEY, value)
}
module.exports = {
DEFAULT_API_BASE_URL,
API_BASE_URL_KEY,
CUSTOMER_SERVICE_WECHAT_KEY,
getApiBaseUrl,
normalizeApiBaseUrl,
setApiBaseUrl,
getCustomerServiceWechat,
setCustomerServiceWechat
}