ai-c/pages/settings/settings.js
2026-02-02 18:21:32 +08:00

73 lines
2.1 KiB
JavaScript

const { login } = require('../../utils_new/auth');
const config = require('../../config/index');
Page({
data: {
baseUrl: 'https://ai-c.maimanji.com',
statusBarHeight: 20,
navBarHeight: 44,
totalNavHeight: 64
},
onLoad() {
const sys = wx.getSystemInfoSync();
const menu = wx.getMenuButtonBoundingClientRect();
const statusBarHeight = sys.statusBarHeight || 20;
const navBarHeight = menu.height + (menu.top - statusBarHeight) * 2;
this.setData({
statusBarHeight,
navBarHeight,
totalNavHeight: statusBarHeight + navBarHeight
});
this.load();
},
onShow() {
const defaultBaseUrl = String(config.API_BASE_URL || '').replace(/\/api$/, '') || 'https://ai-c.maimanji.com';
const baseUrl = wx.getStorageSync('baseUrl') || defaultBaseUrl;
this.setData({ baseUrl });
},
onBack() {
wx.navigateBack({ delta: 1 });
},
onBaseUrl(e) {
this.setData({ baseUrl: e.detail.value });
},
setOnline() {
this.setData({ baseUrl: 'https://ai-c.maimanji.com' });
},
setLocalhost() {
this.setData({ baseUrl: 'http://localhost:3000' });
},
save() {
const baseUrl = (this.data.baseUrl || '').trim().replace(/\/$/, '');
if (!baseUrl.startsWith('http')) {
wx.showToast({ title: '请输入正确的URL', icon: 'none' });
return;
}
wx.setStorageSync('baseUrl', baseUrl);
const app = getApp();
if (app?.globalData) app.globalData.baseUrl = baseUrl;
wx.showToast({ title: '已保存', icon: 'success' });
},
logout() {
wx.removeStorageSync('token');
const app = getApp();
if (app?.globalData) app.globalData.token = '';
wx.showToast({ title: '已退出', icon: 'success' });
},
async syncProfile() {
try {
const userInfo = await new Promise((resolve, reject) => {
wx.getUserProfile({
desc: '用于完善个人信息',
success: (res) => resolve(res.userInfo),
fail: reject
});
});
await login(userInfo);
wx.showToast({ title: '已同步', icon: 'success' });
} catch (e) {
wx.showToast({ title: '取消或失败', icon: 'none' });
}
}
});