ZBLOG

...

要实现点击“查询”按钮时重新调用接口并获取数据,同时在点击“重置”按钮时清空查询条件,可以按照以下步骤修改你的代码:

  1. 修改 onFinishreset 方法:确保在点击“查询”时能调用相应的API,且在点击“重置”时能清空表单。

  2. 使用 Vue 的 ref 来管理表单状态:你可以使用 ref 来定义和更新表单的状态,以便于控制输入框的值。

下面是改进后的代码示例:

  1. <template>
  2. <div class="HistoricalReminder">
  3. <div>
  4. <a-form
  5. :model="formState"
  6. name="time related controls"
  7. v-bind="formItemLayout"
  8. @finish="onFinish"
  9. @finishFailed="onFinishFailed"
  10. >
  11. <a-row>
  12. <a-col :span="8">
  13. <a-form-item label="日期" name="dateRange">
  14. <a-range-picker
  15. v-bind="rangeConfig"
  16. format="YYYY-MM-DD"
  17. value-format="YYYY-MM-DD"
  18. v-model:value="[formState.dateStart, formState.dateEnd]"
  19. />
  20. </a-form-item>
  21. </a-col>
  22. <a-col :span="8">
  23. <a-form-item label="导入日期" name="importDateRange">
  24. <a-range-picker
  25. v-bind="rangeConfig"
  26. format="YYYY-MM-DD"
  27. value-format="YYYY-MM-DD"
  28. v-model:value="[formState.importStart, formState.importEnd]"
  29. />
  30. </a-form-item>
  31. </a-col>
  32. <a-col :span="8">
  33. <a-form-item style="margin-left: 40px;">
  34. <a-button
  35. class="margin-right-10"
  36. type="primary"
  37. @click.prevent="$refs.form.submit()"
  38. >
  39. 查询
  40. </a-button>
  41. <a-button @click.prevent="reset()">重置</a-button>
  42. </a-form-item>
  43. </a-col>
  44. </a-row>
  45. </a-form>
  46. </div>
  47. <a-table
  48. :columns="columns"
  49. :data-source="data"
  50. :scroll="{ x: 'max-content' }"
  51. :pagination="{ /* pagination config here */ }"
  52. :rowClassName="(record, index) => (index % 2 === 0 ? 'red-row' : '')"
  53. ></a-table>
  54. </div>
  55. </template>
  56. <script setup>
  57. import { ref } from 'vue'
  58. import { CollectionRecord } from '../../utils'
  59. const columns = [
  60. {
  61. title: '借据号',
  62. dataIndex: 'loanInfoCode',
  63. key: 'loanInfoCode',
  64. width: 100,
  65. },
  66. {
  67. title: '合同编号',
  68. dataIndex: 'contractCode',
  69. key: 'contractCode',
  70. width: 150,
  71. },
  72. {
  73. title: '客户姓名',
  74. dataIndex: 'customerName',
  75. key: 'customerName',
  76. width: 150,
  77. },
  78. ]
  79. const data = ref([])
  80. const pageSize = ref(5)
  81. const formState = ref({
  82. dateStart: '',
  83. dateEnd: '',
  84. importStart: '',
  85. importEnd: '',
  86. })
  87. const handlePageSizeChange = (current, size) => {
  88. console.log(`每页条数变化为:${size}`)
  89. }
  90. const onFinish = () => {
  91. const params = {
  92. draw: 1,
  93. length: pageSize.value,
  94. order: [],
  95. searchParams: {
  96. custId: 'A10101', // 示例客户ID,视需要更改
  97. dateStart: formState.value.dateStart,
  98. dateEnd: formState.value.dateEnd,
  99. importStart: formState.value.importStart,
  100. importEnd: formState.value.importEnd,
  101. },
  102. }
  103. CollectionRecord(params)
  104. .then((response) => {
  105. data.value = response.data;
  106. })
  107. .catch((error) => console.error('请求失败:', error));
  108. }
  109. const reset = () => {
  110. // 清空表单状态
  111. formState.value.dateStart = '';
  112. formState.value.dateEnd = '';
  113. formState.value.importStart = '';
  114. formState.value.importEnd = '';
  115. // 清空数据表内容或将其设置为初始状态
  116. data.value = [];
  117. }
  118. </script>
  119. <style scoped>
  120. // 在此处添加样式(如有必要)
  121. </style>

改动说明:

  1. 增加了一个名为 formState 的响应式对象:用来存储日期范围和导入日期的起止时间。

  2. onFinish 方法中使用了这个新的 formState 对象:从中提取出用户输入的时间范围,并作为参数传递给 API 调用。

  3. reset 方法中清空了 formState 中所有字段的值:同时也将数据源数组 data 清空,从而重置表格显示。

这样一来,当你点击“查询”按钮时,会重新请求数据;当你点击“重置”按钮时,所有输入框都将被清空。


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

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?