This commit is contained in:
2026-07-10 16:14:31 +08:00
commit 637b0bd144
158 changed files with 33269 additions and 0 deletions
+103
View File
@@ -0,0 +1,103 @@
import { backgroundTemplates, updateTaskBackground } from "../../../utils/request"
type Category = {
id: string
name: string
}
type BgTemplate = {
id: number
name: string
scene: string
category: string
coverUrl?: string
imageUrl?: string
videoUrl?: string
isRecommend?: number
}
function filterTemplates(category: string, templates: BgTemplate[]) {
if (category === 'all') return templates
return templates.filter((item) => item.category === category)
}
Page({
data: {
taskId: '',
categories: [] as Category[],
activeCategory: 'all',
selectedTemplate: 0,
allTemplates: [] as BgTemplate[],
templates: [] as BgTemplate[],
loading: false,
},
onLoad(options: any) {
this.setData({ taskId: options.taskId || options.taskid || '' })
this.loadBackgroundTemplates()
},
loadBackgroundTemplates() {
this.setData({ loading: true })
backgroundTemplates().then((res: any) => {
const categories = res && !res.code && res.data ? (res.data.categories || []) : []
const templates = res && !res.code && res.data ? (res.data.templates || []) : []
const selectedTemplate = templates.length ? Number(templates[0].id) : 0
this.setData({
categories,
allTemplates: templates,
templates: filterTemplates(this.data.activeCategory, templates),
selectedTemplate,
loading: false,
})
}).catch(() => {
this.setData({ loading: false })
wx.showModal({ title: '温馨提示', content: '背景模板加载失败,请稍后再试', showCancel: false })
})
},
handleBack() {
wx.navigateBack({
fail: () => wx.navigateTo({ url: '/pages/aiPackage/record/index' }),
})
},
handleCategorySelect(e: WechatMiniprogram.TouchEvent) {
const activeCategory = e.currentTarget.dataset.id
if (!activeCategory) return
const templates = filterTemplates(activeCategory, this.data.allTemplates)
this.setData({ activeCategory, templates })
},
handleTemplateSelect(e: WechatMiniprogram.TouchEvent) {
const selectedTemplate = Number(e.currentTarget.dataset.id || 0)
if (selectedTemplate <= 0) return
this.setData({ selectedTemplate })
},
handleConfirm() {
if (!this.data.taskId) {
wx.showModal({ title: '温馨提示', content: '创作记录不存在', showCancel: false })
return
}
if (this.data.selectedTemplate <= 0) {
wx.showModal({ title: '温馨提示', content: '请选择背景模板', showCancel: false })
return
}
wx.showLoading({ mask: true, title: '保存背景中' })
updateTaskBackground(this.data.taskId, this.data.selectedTemplate).then((res: any) => {
wx.hideLoading()
if (!res.code) {
wx.redirectTo({ url: '/pages/aiPackage/gen/index?taskId=' + encodeURIComponent(this.data.taskId) })
} else {
wx.showModal({ title: '温馨提示', content: res.message || '背景保存失败', showCancel: false })
}
}).catch(() => {
wx.hideLoading()
wx.showModal({ title: '温馨提示', content: '网络异常,请稍后再试', showCancel: false })
})
},
})