// login.js
import { loginApi } from './api.js';
import config from '../utils/config.js';

export const wxLoginRequest = (loginForm) => {
	return new Promise((resolve, reject) => {
		uni.login({
			success: res => {
				console.log('wx.login 调用成功，返回的 code 是：', res);
				if (res.code) {
					// 发送 code 到开发者服务器
					console.log('准备发送 code 到服务器，code 值为：', res.code);
					// 构建符合后端要求的数据结构
					const requestData = {
						...loginForm,
						xcxCode: res.code,
						// phoneNumber: res.phoneNumber,
					};
					console.log('请求数据：', requestData);
					// 使用API模块和全局配置
					loginApi.wxLogin(requestData)
						.then(response => {
							console.log('服务器返回的数据：', response);
							const data = response.data;
							const Msgcode = response.code;
							if (data && data.openid && data.access_token) {
								// 登录成功，存储 token 到本地
								uni.setStorageSync('token', data.access_token);
								resolve(response);
							} else {
								// 其他登录失败情况，弹出提示框告知用户
								let errorMsg = response.msg || '登录失败';
								console.log('登录失败，错误信息：', errorMsg);
								uni.showToast({
									title: "用户名密码不正确",
									icon: 'none'
								});
								reject(response);
							}
						})
						.catch(err => {
							console.log('请求服务器失败，错误信息：', err);
							uni.showToast({
								title: '请求服务器失败',
								icon: 'none'
							});
							reject(err);
						});
				} else {
					console.log('获取登录凭证失败，错误信息：', res.errMsg);
					uni.showToast({
						title: '获取登录凭证失败',
						icon: 'none'
					});
					reject(res);
				}
			},
			fail: err => {
				console.log('调用 wx.login 失败，错误信息：', err);
				uni.showToast({
					title: '调用 wx.login 失败',
					icon: 'none'
				});
				reject(err);
			}
		});
	});
};