purchaseScreen.vue 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <template>
  2. <view>
  3. <u-popup :show="show" closeOnClickOverlay mode="top" @close="closePopup">
  4. <view class="search_list">
  5. <u-form labelPosition="left" :model="form" labelWidth="180" labelAlign="left" class="baseForm">
  6. <u-form-item label="创建时间:" class="required-form" borderBottom prop="rangeDate">
  7. <uni-datetime-picker v-model="rangeDate" :border="true" :icon="false" type="daterange" />
  8. </u-form-item>
  9. <u-form-item label="订单类型:" class="required-form" borderBottom prop="sourceType">
  10. <zxz-uni-data-select :localdata="requirementSourceType" v-model="form.sourceType" dataValue='value'
  11. dataKey="text" filterable format='{text}'></zxz-uni-data-select>
  12. </u-form-item>
  13. <u-form-item label="订单进度:" class="required-form" borderBottom prop="progress">
  14. <zxz-uni-data-select :localdata="purchaseOrderProgressStatusEnum" v-model="form.progress" dataValue='value'
  15. dataKey="label" filterable format='{label}'></zxz-uni-data-select>
  16. </u-form-item>
  17. <u-form-item label="审核状态:" class="required-form" borderBottom prop="orderStatus">
  18. <zxz-uni-data-select :localdata="reviewStatusEnum" v-model="form.orderStatus" dataValue='value'
  19. dataKey="label" filterable format='{label}'></zxz-uni-data-select>
  20. </u-form-item>
  21. </u-form>
  22. </view>
  23. <view class="operate_box rx-bc">
  24. <u-button size="small" class="u-reset-button" @click="reset">
  25. 重置
  26. </u-button>
  27. <u-button type="success" size="small" class="u-reset-button" @click="submit">
  28. 确定
  29. </u-button>
  30. </view>
  31. </u-popup>
  32. </view>
  33. </template>
  34. <script>
  35. import {
  36. getWarehouseList,
  37. getProduceTreeByPid
  38. } from '@/api/warehouseManagement'
  39. import {
  40. post,
  41. get
  42. } from '@/utils/api.js'
  43. import DictSelection from "@/components/Dict/DictSelection.vue";
  44. import dictMxins from "@/mixins/dictMixins";
  45. import { requirementSourceType, purchaseOrderProgressStatusEnum, reviewStatusEnum } from '@/enum/dict.js'
  46. export default {
  47. mixins: [dictMxins],
  48. components: {
  49. DictSelection
  50. },
  51. props: ['type', 'createTimeStart', 'createTimeEnd', 'sourceType', 'progress', 'orderStatus'],
  52. data() {
  53. return {
  54. show: false,
  55. rangeDate: [],
  56. form: {
  57. createTimeStart: '',
  58. createTimeEnd: '',
  59. sourceType: '',
  60. progress: '',
  61. orderStatus: ''
  62. },
  63. requirementSourceType,
  64. purchaseOrderProgressStatusEnum,
  65. reviewStatusEnum
  66. }
  67. },
  68. created() {
  69. },
  70. methods: {
  71. open() {
  72. this.show = true
  73. for (let key of Object.keys(this.form)) {
  74. this.form[key] = this[key]
  75. }
  76. // if(this.createTimeStart && this.createTimeEnd) {
  77. this.rangeDate = [this.createTimeStart, this.createTimeEnd]
  78. // } else {
  79. // this.setDefaultRangeDate()
  80. // }
  81. },
  82. setDefaultRangeDate() {
  83. const now = new Date()
  84. const year = now.getFullYear()
  85. const month = String(now.getMonth() + 1).padStart(2, '0')
  86. const day = String(now.getDate()).padStart(2, '0')
  87. const today = `${year}-${month}-${day}`
  88. if (this.type === 'year') {
  89. this.rangeDate = [`${year}-01-01`, today]
  90. } else if (this.type === 'month') {
  91. this.rangeDate = [`${year}-${month}-01`, today]
  92. }
  93. },
  94. closePopup() {
  95. this.show = false
  96. },
  97. reset() {
  98. this.form = {
  99. createTimeStart: '',
  100. createTimeEnd: '',
  101. sourceType: '',
  102. progress: '',
  103. orderStatus: ''
  104. }
  105. this.rangeDate = [],
  106. this.$emit('succeed', this.form)
  107. this.closePopup()
  108. },
  109. submit() {
  110. if(this.rangeDate.length) {
  111. this.form.createTimeStart = this.rangeDate[0]
  112. this.form.createTimeEnd = this.rangeDate[1]
  113. }
  114. this.$emit('succeed', this.form)
  115. this.closePopup()
  116. },
  117. }
  118. }
  119. </script>
  120. <style lang="scss" scoped>
  121. .search_list {
  122. min-height: 100rpx;
  123. /deep/ .baseForm {
  124. padding: 0 20rpx;
  125. }
  126. }
  127. .operate_box {
  128. padding: 10rpx 32rpx;
  129. /deep/ .u-button {
  130. width: 40%;
  131. }
  132. }
  133. </style>