orderSearchMixin.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. /**
  2. * 订单搜索管理mixin
  3. * 负责管理搜索表单、搜索逻辑、重置等功能
  4. */
  5. /**
  6. * 订单查询参数类型定义
  7. * @typedef {Object} OrderQueryParams
  8. * @property {string} [orderCode] - 订单编码
  9. * @property {string} [orgCode] - 组织编码
  10. * @property {string} [orgName] - 组织名称
  11. * @property {string} [customerCode] - 客户编码
  12. * @property {string} [customerName] - 客户名称
  13. * @property {number} [orderType] - 订单类型
  14. * @property {number} [status] - 订单状态
  15. * @property {string} [receiverName] - 收货人姓名
  16. * @property {string} [receiverPhone] - 收货人电话
  17. * @property {string} [createTimeStart] - 创建时间开始
  18. * @property {string} [createTimeEnd] - 创建时间结束
  19. */
  20. export default {
  21. data() {
  22. return {
  23. /**
  24. * 搜索表单数据
  25. * @type {OrderQueryParams}
  26. */
  27. searchForm: {
  28. orderCode: '',
  29. orgCode: '',
  30. orgName: '',
  31. customerCode: '',
  32. customerName: '',
  33. orderType: '',
  34. status: '',
  35. receiverName: '',
  36. receiverPhone: ''
  37. }
  38. }
  39. },
  40. methods: {
  41. /**
  42. * 搜索处理
  43. * @returns {void}
  44. */
  45. handleSearch() {
  46. this.resetPagination()
  47. this.loadTableData()
  48. },
  49. /**
  50. * 重置搜索
  51. * @returns {void}
  52. */
  53. handleResetSearch() {
  54. if (this.$refs.searchForm) {
  55. this.$refs.searchForm.resetFields()
  56. }
  57. this.searchForm = {
  58. orderCode: '',
  59. orgCode: '',
  60. orgName: '',
  61. customerCode: '',
  62. customerName: '',
  63. orderType: '',
  64. status: '',
  65. receiverName: '',
  66. receiverPhone: ''
  67. }
  68. this.resetPagination()
  69. this.loadTableData()
  70. },
  71. /**
  72. * 获取搜索参数
  73. * @returns {OrderQueryParams} 过滤后的搜索参数
  74. */
  75. getSearchParams() {
  76. const params = { ...this.searchForm }
  77. // 移除空值参数
  78. Object.keys(params).forEach(key => {
  79. if (params[key] === '' || params[key] === null || params[key] === undefined) {
  80. delete params[key]
  81. }
  82. })
  83. return params
  84. },
  85. /**
  86. * 设置搜索表单数据
  87. * @param {OrderQueryParams} searchData - 搜索数据
  88. * @returns {void}
  89. */
  90. setSearchForm(searchData) {
  91. this.searchForm = {
  92. ...this.searchForm,
  93. ...searchData
  94. }
  95. },
  96. /**
  97. * 清空搜索表单
  98. * @returns {void}
  99. */
  100. clearSearchForm() {
  101. this.searchForm = {
  102. orderCode: '',
  103. orgCode: '',
  104. orgName: '',
  105. customerCode: '',
  106. customerName: '',
  107. orderType: '',
  108. status: '',
  109. receiverName: '',
  110. receiverPhone: ''
  111. }
  112. }
  113. }
  114. }