fix: 修复筛选功能搜索报错 - Assignment to constant variable

问题:使用 v-model 绑定 reactive 对象时,Vue 尝试重新赋值整个对象导致报错

解决方案:
- 将所有 TaskFilters 组件的 v-model 改为 :model-value 和 @update:model-value
- 在事件处理函数中使用 Object.assign 来更新 reactive 对象的属性,而不是重新赋值整个对象
- 修复了 filters、reviewFilters、inProgressFilters、completedFilters、publishedFilters、draftsFilters 的绑定方式
This commit is contained in:
Your Name 2026-01-22 15:26:46 +08:00
parent 9b5449cf75
commit dce3b8ec58

View File

@ -71,7 +71,8 @@
<a-tab-pane key="available" tab="可接任务">
<!-- 搜索和筛选栏(使用公共组件) -->
<TaskFilters
v-model="filters"
:model-value="filters"
@update:model-value="(value) => Object.assign(filters, value)"
:stats-text="`共 ${total} 个任务`"
:sort-options="availableSortOptions"
:status-options="availableStatusOptions"
@ -331,7 +332,8 @@
</template>
<!-- 搜索和筛选栏(使用公共组件) -->
<TaskFilters
v-model="reviewFilters"
:model-value="reviewFilters"
@update:model-value="(value) => Object.assign(reviewFilters, value)"
:stats-text="`共 ${reviewTotal} 个待审核任务`"
:sort-options="reviewSortOptions"
:status-options="reviewStatusOptions"
@ -630,7 +632,8 @@
</template>
<!-- 搜索和筛选栏(使用公共组件) -->
<TaskFilters
v-model="inProgressFilters"
:model-value="inProgressFilters"
@update:model-value="(value) => Object.assign(inProgressFilters, value)"
:stats-text="`共 ${inProgressTotal} 个进行中任务`"
:sort-options="inProgressSortOptions"
:status-options="inProgressStatusOptions"
@ -955,7 +958,8 @@
</template>
<!-- 搜索和筛选栏(使用公共组件) -->
<TaskFilters
v-model="completedFilters"
:model-value="completedFilters"
@update:model-value="(value) => Object.assign(completedFilters, value)"
:stats-text="`共 ${completedTotal} 个已完成任务`"
:sort-options="completedSortOptions"
:show-status="false"
@ -1302,7 +1306,8 @@
</template>
<!-- 搜索和筛选栏(使用公共组件) -->
<TaskFilters
v-model="publishedFilters"
:model-value="publishedFilters"
@update:model-value="(value) => Object.assign(publishedFilters, value)"
:stats-text="`共 ${publishedTotal} 个任务`"
:sort-options="publishedSortOptions"
:status-options="publishedStatusOptions"
@ -1669,7 +1674,8 @@
</template>
<!-- 搜索和筛选栏(使用公共组件) -->
<TaskFilters
v-model="draftsFilters"
:model-value="draftsFilters"
@update:model-value="(value) => Object.assign(draftsFilters, value)"
search-placeholder="搜索草稿任务..."
:stats-text="`共 ${draftsTotal} 个草稿`"
:sort-options="draftsSortOptions"