feat: 完成见素起名小程序核心功能
- 实现 AI 起名功能(Kimi API 接入) - 添加用户收藏功能(MySQL 数据库) - 实现海报生成与分享 - 添加音效和触觉反馈 - 配置生产环境部署(WAR 包 + Nginx) - 支持多种起名模式(经典、诗词、自然、现代) - 实现分批加载优化体验
This commit is contained in:
@@ -1,25 +1,98 @@
|
||||
Page({
|
||||
data: {
|
||||
keyword: ''
|
||||
keyword: '',
|
||||
surname: '',
|
||||
activeMode: 'baby',
|
||||
isGenerating: false,
|
||||
modes: [
|
||||
{ key: 'baby', label: '宝宝' },
|
||||
{ key: 'persona', label: '人设' },
|
||||
{ key: 'classic', label: '拾遗' }
|
||||
]
|
||||
},
|
||||
|
||||
onLoad() {
|
||||
// 页面加载时检查是否需要重置状态
|
||||
},
|
||||
|
||||
onShow() {
|
||||
// 每次显示页面时重置生成状态
|
||||
this.setData({
|
||||
isGenerating: false
|
||||
});
|
||||
},
|
||||
|
||||
// 选择模式
|
||||
selectMode(e) {
|
||||
const mode = e.currentTarget.dataset.mode;
|
||||
this.setData({
|
||||
activeMode: mode
|
||||
});
|
||||
},
|
||||
|
||||
// 姓氏输入
|
||||
onSurnameInput(e) {
|
||||
this.setData({
|
||||
surname: e.detail.value
|
||||
});
|
||||
},
|
||||
|
||||
// 关键词输入
|
||||
onInput(e) {
|
||||
this.setData({
|
||||
keyword: e.detail.value
|
||||
});
|
||||
},
|
||||
|
||||
startNaming() {
|
||||
if (!this.data.keyword.trim()) {
|
||||
// 开始生成(带水墨动画)
|
||||
startGenerate() {
|
||||
const { keyword, surname, activeMode } = this.data;
|
||||
|
||||
// 非空校验
|
||||
if (!keyword.trim()) {
|
||||
const placeholderMap = {
|
||||
'baby': '请输入期待',
|
||||
'persona': '请输入人设',
|
||||
'classic': '请输入关键词'
|
||||
};
|
||||
wx.showToast({
|
||||
title: '请输入一抹期待',
|
||||
title: placeholderMap[activeMode] || '请输入内容',
|
||||
icon: 'none'
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
// 宝宝模式需要姓氏
|
||||
if (activeMode === 'baby' && !surname.trim()) {
|
||||
wx.showToast({
|
||||
title: '请输入姓氏',
|
||||
icon: 'none'
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
wx.navigateTo({
|
||||
url: `/pages/index/index?keyword=${encodeURIComponent(this.data.keyword)}`
|
||||
// 触发水墨动画
|
||||
this.setData({
|
||||
isGenerating: true
|
||||
});
|
||||
|
||||
// 播放水滴声
|
||||
getApp().playAudio('inkDrop');
|
||||
|
||||
// 触觉反馈
|
||||
wx.vibrateShort({ type: 'light' });
|
||||
|
||||
// 延迟 1000ms 后跳转,确保仪式感完整
|
||||
setTimeout(() => {
|
||||
// 构建跳转 URL
|
||||
let url = `/pages/index/index?keyword=${encodeURIComponent(keyword)}&mode=${activeMode}`;
|
||||
if (activeMode === 'baby' && surname) {
|
||||
url += `&surname=${encodeURIComponent(surname)}`;
|
||||
}
|
||||
|
||||
wx.navigateTo({
|
||||
url: url
|
||||
});
|
||||
}, 1000);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user