codeSearch.vue 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. <template>
  2. <!-- 优惠码 - 搜索弹窗 -->
  3. <div class="codeSearch flex-col">
  4. <van-popup v-model:show="sheetShow" round class="codeSearchPopup">
  5. <div class="content">
  6. <van-form @submit="onSubmit">
  7. <van-field v-model="code" name="code" :label="$t('discountCode.discountCodeNoLabel')"
  8. :placeholder="$t('discountCode.discountCodeNoPlaceholder')" />
  9. <div class="van-cell van-field">
  10. <div class="van-cell__title van-field__label">
  11. <label id="van-field-4-label" for="van-field-4-input">{{ $t('discountCode.creationTime') }}</label>
  12. </div>
  13. <div class="van-cell__value van-field__value">
  14. <div class="van-field__body">
  15. <input type="text" class="van-field__control" :placeholder="$t('discountCode.startTime')"
  16. style="text-align: center; width: 50%;" v-model="createStratDate" @click="createStratDateClick()" />
  17. <span>{{ $t('discountCode.to') }}</span>
  18. <input type="text" class="van-field__control" :placeholder="$t('discountCode.endTime')"
  19. style="text-align: center; width: 50%;" v-model="createEndDate" @click="createEndDateClick()" />
  20. </div>
  21. </div>
  22. </div>
  23. <div class="van-cell van-field">
  24. <div class="van-cell__title van-field__label">
  25. <label id="van-field-4-label" for="van-field-4-input">{{ $t('discountCode.usageTime') }}</label>
  26. </div>
  27. <div class="van-cell__value van-field__value">
  28. <div class="van-field__body">
  29. <input type="text" class="van-field__control" :placeholder="$t('discountCode.startTime')"
  30. style="text-align: center; width: 50%;" v-model="useStratDate" @click="useStratDateClick()" />
  31. <span>{{ $t('discountCode.to') }}</span>
  32. <input type="text" class="van-field__control" :placeholder="$t('discountCode.endTime')"
  33. style="text-align: center; width: 50%;" v-model="useEndDate" @click="useEndDateClick()" />
  34. </div>
  35. </div>
  36. </div>
  37. <!-- 操作 -->
  38. <van-row justify="space-around" style="padding: 1em;">
  39. <van-button span="5" round type="primary" style="height: 2em; padding: 0 2em;" native-type="submit">{{
  40. $t('discountCode.clickQuery') }}
  41. </van-button>
  42. </van-row>
  43. </van-form>
  44. </div>
  45. </van-popup>
  46. <van-popup v-model:show="createStratDateShow" round position="bottom">
  47. <van-datetime-picker v-model="createStratDate" type="datetime" :title="$t('discountCode.selectFullTime')"
  48. @confirm="createStratDateConFirm($event)" @cancel="createStratDateCancel()" :min-date="minDate" />
  49. </van-popup>
  50. <van-popup v-model:show="createEndDateShow" round position="bottom">
  51. <van-datetime-picker v-model="createEndDate" type="datetime" :title="$t('discountCode.selectFullTime')"
  52. @confirm="createEndDateConFirm($event)" @cancel="createEndDateCancel()" :min-date="minDate" />
  53. </van-popup>
  54. <van-popup v-model:show="useStratDateShow" round position="bottom">
  55. <van-datetime-picker v-model="useStratDate" type="datetime" :title="$t('discountCode.selectFullTime')"
  56. @confirm="useStratDateConFirm($event)" @cancel="useStratDateCancel()" :min-date="minDate" />
  57. </van-popup>
  58. <van-popup v-model:show="useEndDateShow" round position="bottom">
  59. <van-datetime-picker v-model="useEndDate" type="datetime" :title="$t('discountCode.selectFullTime')"
  60. @confirm="useEndDateConFirm($event)" @cancel="useEndDateCancel()" :min-date="minDate" />
  61. </van-popup>
  62. </div>
  63. </template>
  64. <script>
  65. import { ref } from 'vue';
  66. import dateUtil from "@/utils/dateUtil";
  67. import { styleUrl } from "@/common/js/utils";
  68. export default {
  69. name: 'codeSearch',
  70. components: {},
  71. setup(prop, context) {
  72. const sheetShow = ref(false);
  73. const minDate = new Date(2018, 1, 1);
  74. const showSearch = () => { sheetShow.value = true; };
  75. const code = ref('');
  76. //加载样式
  77. styleUrl('discountCode');
  78. // 创建开始时间
  79. const createStratDate = ref('');
  80. const createStratDateShow = ref(false);
  81. const createStratDateClick = () => { if (createStratDate.value === '') { createStratDate.value = new Date(); } createStratDateShow.value = true; }
  82. const createStratDateConFirm = (data) => { createStratDate.value = dateUtil.formateDate(data, "yyyy-MM-dd hh:mm:ss"); createStratDateShow.value = false; }
  83. const createStratDateCancel = () => { createStratDate.value = dateUtil.formateDate(new Date(createStratDate.value), "yyyy-MM-dd hh:mm:ss"); createStratDateShow.value = false; }
  84. // 创建结束时间
  85. const createEndDate = ref('');
  86. const createEndDateShow = ref(false);
  87. const createEndDateClick = () => { if (createEndDate.value === '') { createEndDate.value = new Date(); } createEndDateShow.value = true; }
  88. const createEndDateConFirm = (data) => { createEndDate.value = dateUtil.formateDate(data, "yyyy-MM-dd hh:mm:ss"); createEndDateShow.value = false; }
  89. const createEndDateCancel = () => { createEndDate.value = dateUtil.formateDate(new Date(createEndDate.value), "yyyy-MM-dd hh:mm:ss"); createEndDateShow.value = false; }
  90. // 使用起始时间
  91. const useStratDate = ref('');
  92. const useStratDateShow = ref(false);
  93. const useStratDateClick = () => { if (useStratDate.value === '') { useStratDate.value = new Date(); } useStratDateShow.value = true; }
  94. const useStratDateConFirm = (data) => { useStratDate.value = dateUtil.formateDate(data, "yyyy-MM-dd hh:mm:ss"); useStratDateShow.value = false; }
  95. const useStratDateCancel = () => { useStratDate.value = dateUtil.formateDate(new Date(useStratDate.value), "yyyy-MM-dd hh:mm:ss"); useStratDateShow.value = false; }
  96. // 使用结束时间
  97. const useEndDate = ref('');
  98. const useEndDateShow = ref(false);
  99. const useEndDateClick = () => { if (useEndDate.value === '') { useEndDate.value = new Date(); } useEndDateShow.value = true; }
  100. const useEndDateConFirm = (data) => { useEndDate.value = dateUtil.formateDate(data, "yyyy-MM-dd hh:mm:ss"); useEndDateShow.value = false; }
  101. const useEndDateCancel = () => { useEndDate.value = dateUtil.formateDate(new Date(useEndDate.value), "yyyy-MM-dd hh:mm:ss"); useEndDateShow.value = false; }
  102. // 提交搜索表单触发搜索
  103. const onSubmit = () => {
  104. const searchParam = {};
  105. if (code.value !== '') { searchParam.code = code.value; }
  106. if (createStratDate.value !== '') { searchParam.createStratDate = dateUtil.formateDate(new Date(createStratDate.value), "yyyy/MM/dd hh:mm:ss"); }
  107. if (createEndDate.value !== '') { searchParam.createEndDate = dateUtil.formateDate(new Date(createEndDate.value), "yyyy/MM/dd hh:mm:ss"); }
  108. if (useStratDate.value !== '') { searchParam.useStratDate = dateUtil.formateDate(new Date(useStratDate.value), "yyyy/MM/dd hh:mm:ss"); }
  109. if (useEndDate.value !== '') { searchParam.useEndDate = dateUtil.formateDate(new Date(useEndDate.value), "yyyy/MM/dd hh:mm:ss"); }
  110. context.emit('search', searchParam);
  111. sheetShow.value = false;
  112. }
  113. return {
  114. sheetShow,
  115. minDate,
  116. showSearch,
  117. code,
  118. createStratDate,
  119. createStratDateShow,
  120. createStratDateClick,
  121. createStratDateConFirm,
  122. createStratDateCancel,
  123. createEndDate,
  124. createEndDateShow,
  125. createEndDateClick,
  126. createEndDateConFirm,
  127. createEndDateCancel,
  128. useStratDate,
  129. useStratDateShow,
  130. useStratDateClick,
  131. useStratDateConFirm,
  132. useStratDateCancel,
  133. useEndDate,
  134. useEndDateShow,
  135. useEndDateClick,
  136. useEndDateConFirm,
  137. useEndDateCancel,
  138. onSubmit
  139. };
  140. },
  141. };
  142. </script>
  143. <style lang="less" scoped></style>