ZBLOG

在你的代码中,使用了 Vue 的响应式特性来管理日期范围选择。根据你的描述,似乎你遇到了一个问题,即选择一个日期范围后另一个日期范围的状态会受到影响。

以下是一些建议和可能的修复:

  1. 避免直接赋值:在 v-model:value 中使用 formState[(date, dateEnd)] 这种语法是不正确的,这样不会得到你想要的属性。你应该明确地指定属性名称。例如:

    1. v-model:value="[formState.date, formState.dateEnd]"
  2. 修改 @change 处理器:确保在日期改变时只更新相关字段。在 @change 的箭头函数中,你已经做得很好,但需要保证它们不会互相干扰。

  3. 简化结构:考虑将这两个范围选择器分开,而不是共享同一个对象。这样可以避免不同范围选择器间的不必要交互。

以下是经过修改后的代码片段:

  1. <template>
  2. <div>
  3. <a-row>
  4. <a-col :span="8">
  5. <a-form-item name="dateRange" label="日期" v-bind="dateRange">
  6. <a-range-picker
  7. v-model:value="[formState.date, formState.dateEnd]"
  8. value-format="YYYY-MM-DD"
  9. @change="(dates) => {
  10. formState.date = dates[0];
  11. formState.dateEnd = dates[1];
  12. }"
  13. />
  14. </a-form-item>
  15. </a-col>
  16. <a-col :span="8">
  17. <a-form-item name="importDateRange" label="导入日期" v-bind="importDateRange">
  18. <a-range-picker
  19. v-model:value="[formState.importDate, formState.importDateEnd]"
  20. value-format="YYYY-MM-DD"
  21. @change="(importDates) => {
  22. formState.importDate = importDates[0];
  23. formState.importDateEnd = importDates[1];
  24. }"
  25. />
  26. </a-form-item>
  27. </a-col>
  28. <a-col :span="8">
  29. <a-form-item style="margin-left: 40px">
  30. <a-button class="margin-right-10" type="primary" @click="queryTable">查询</a-button>
  31. <a-button @click="reset">重置</a-button>
  32. </a-form-item>
  33. </a-col>
  34. </a-row>
  35. </div>
  36. </template>
  37. <script>
  38. import { ref, reactive } from 'vue';
  39. const data = ref([]);
  40. const pageSize = ref(5);
  41. const formState = reactive({
  42. date: '',
  43. dateEnd: '',
  44. importDate: '',
  45. importDateEnd: ''
  46. });
  47. const handlePageSizeChange = (current, size) => {
  48. console.log(`每页条数变化为: ${size}`);
  49. pageSize.value = size;
  50. };
  51. const queryTable = () => {
  52. const params = {
  53. draw: 1,
  54. length: 25,
  55. order: [],
  56. search: { regex: false, value: '' },
  57. params: {
  58. customerId: 'A10101',
  59. date: formState.date,
  60. dateEnd: formState.dateEnd,
  61. importDate: formState.importDate,
  62. importDateEnd: formState.importDateEnd,
  63. start: 0
  64. }
  65. };
  66. CollectionRecord(params).then((response) => {
  67. data.value = response.data;
  68. }).catch((error) => {
  69. console.error(`请求失败: ${error}`);
  70. });
  71. };
  72. const reset = () => {
  73. console.log(formState);
  74. // Resetting all the dates to empty strings.
  75. Object.assign(formState, {
  76. date: '',
  77. dateEnd: '',
  78. importDate: '',
  79. importDateEnd: ''
  80. });
  81. };
  82. </script>

主要修改点:

  • v-model:value 改成了明确指定属性。
  • 保持每个范围选择器的状态完全独立,减少潜在干扰。

如果还有其他具体问题或错误,请告诉我!


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=19279

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?