|
@@ -22,6 +22,7 @@ export class CreateRequestPage {
|
|
|
};
|
|
|
|
|
|
showTopics = false; // 控制下拉框显示
|
|
|
+ hasDraft= false;
|
|
|
|
|
|
toggleTopics() {
|
|
|
this.showTopics = !this.showTopics;
|
|
@@ -43,7 +44,30 @@ export class CreateRequestPage {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- constructor(private router: Router) {}
|
|
|
+ constructor(private router: Router) {
|
|
|
+ this.loadDraft();
|
|
|
+ }
|
|
|
+
|
|
|
+ async loadDraft() {
|
|
|
+ try {
|
|
|
+ const query = new CloudQuery("Drafts");
|
|
|
+ const drafts = await query.find();
|
|
|
+ if (drafts.length > 0) {
|
|
|
+ const latestDraft = drafts[0];
|
|
|
+ this.request = {
|
|
|
+ title: latestDraft.get('title') || '',
|
|
|
+ description: latestDraft.get('description') || '',
|
|
|
+ type: latestDraft.get('type') || 'normal',
|
|
|
+ points: latestDraft.get('points') || 10,
|
|
|
+ images: latestDraft.get('images') || [],
|
|
|
+ topic: latestDraft.get('topic') || ''
|
|
|
+ };
|
|
|
+ this.hasDraft = true;
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('加载草稿失败:', error);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
async submitRequest() {
|
|
|
try {
|
|
@@ -75,6 +99,10 @@ export class CreateRequestPage {
|
|
|
|
|
|
async saveDraft() {
|
|
|
try {
|
|
|
+ // 先清空所有草稿
|
|
|
+ await this.clearAllDrafts();
|
|
|
+
|
|
|
+ // 保存当前数据为新草稿
|
|
|
const obj = new CloudObject("Drafts");
|
|
|
obj.set({
|
|
|
title: this.request.title,
|
|
@@ -102,29 +130,28 @@ export class CreateRequestPage {
|
|
|
status: 'pending',
|
|
|
topic: this.request.topic,
|
|
|
images: this.request.images,
|
|
|
- time: new Date() // 添加发布时间字段
|
|
|
+ time: new Date()
|
|
|
});
|
|
|
await obj.save();
|
|
|
|
|
|
- // 发布成功后删除草稿
|
|
|
- await this.deleteDraft();
|
|
|
- this.router.navigate(['/tabs/tab2']); // 修改为正确的路由路径
|
|
|
+ // 发布成功后删除所有草稿
|
|
|
+ await this.clearAllDrafts();
|
|
|
+ this.router.navigate(['/tabs/tab2']);
|
|
|
} catch (error) {
|
|
|
console.error('发布到待领取失败:', error);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- deleteDraft = async () => {
|
|
|
+ async clearAllDrafts() {
|
|
|
try {
|
|
|
const query = new CloudQuery("Drafts");
|
|
|
- query.equalTo("status", "pending"); // 可以根据需要添加查询条件
|
|
|
const drafts = await query.find();
|
|
|
|
|
|
- if (drafts.length > 0) {
|
|
|
- await drafts[0].destroy();
|
|
|
+ for (const draft of drafts) {
|
|
|
+ await draft.destroy();
|
|
|
}
|
|
|
} catch (error) {
|
|
|
- console.error('删除草稿失败:', error);
|
|
|
+ console.error('清空草稿失败:', error);
|
|
|
}
|
|
|
}
|
|
|
}
|