60 lines
2.1 KiB
JavaScript
60 lines
2.1 KiB
JavaScript
|
|
// 编辑页:新建/编辑条目(原型:写回本地假数据)
|
|||
|
|
Page({
|
|||
|
|
data: {
|
|||
|
|
id: null,
|
|||
|
|
title: '',
|
|||
|
|
content: '',
|
|||
|
|
tagStr: '',
|
|||
|
|
visibility: 'private',
|
|||
|
|
aiReadable: true
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
onLoad(query) {
|
|||
|
|
if (query.id) {
|
|||
|
|
const n = getApp().globalData.notes.find(x => x.id === query.id)
|
|||
|
|
if (n) {
|
|||
|
|
this.setData({
|
|||
|
|
id: n.id, title: n.title, content: n.content,
|
|||
|
|
tagStr: n.tags.join(','),
|
|||
|
|
visibility: n.visibility, aiReadable: n.aiReadable
|
|||
|
|
})
|
|||
|
|
wx.setNavigationBarTitle({ title: '编辑条目' })
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
onTitle(e) { this.setData({ title: e.detail.value }) },
|
|||
|
|
onContent(e) { this.setData({ content: e.detail.value }) },
|
|||
|
|
onTags(e) { this.setData({ tagStr: e.detail.value }) },
|
|||
|
|
onVis(e) { this.setData({ visibility: e.detail.value ? 'public' : 'private' }) },
|
|||
|
|
onAI(e) { this.setData({ aiReadable: e.detail.value }) },
|
|||
|
|
|
|||
|
|
onSave() {
|
|||
|
|
if (!this.data.title.trim()) {
|
|||
|
|
wx.showToast({ title: '标题不能为空', icon: 'none' })
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
const app = getApp()
|
|||
|
|
const tags = this.data.tagStr.split(/[,,]/).map(t => t.trim()).filter(Boolean)
|
|||
|
|
const now = new Date()
|
|||
|
|
const stamp = `${String(now.getMonth() + 1).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')} ${String(now.getHours()).padStart(2, '0')}:${String(now.getMinutes()).padStart(2, '0')}`
|
|||
|
|
|
|||
|
|
if (this.data.id) {
|
|||
|
|
const n = app.globalData.notes.find(x => x.id === this.data.id)
|
|||
|
|
Object.assign(n, {
|
|||
|
|
title: this.data.title, content: this.data.content, tags,
|
|||
|
|
visibility: this.data.visibility, aiReadable: this.data.aiReadable, updatedAt: stamp
|
|||
|
|
})
|
|||
|
|
} else {
|
|||
|
|
app.globalData.notes.unshift({
|
|||
|
|
id: 'n' + Date.now(),
|
|||
|
|
title: this.data.title, content: this.data.content, tags,
|
|||
|
|
summary: this.data.content.replace(/[#*\-\n]/g, ' ').slice(0, 40),
|
|||
|
|
visibility: this.data.visibility, aiReadable: this.data.aiReadable,
|
|||
|
|
updatedAt: stamp
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
wx.showToast({ title: '已保存(原型)' })
|
|||
|
|
setTimeout(() => wx.navigateBack(), 600)
|
|||
|
|
}
|
|||
|
|
})
|