searchQuotation.vue 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. <!-- 搜索表单 -->
  2. <template>
  3. <el-form
  4. label-width="110px"
  5. class="ele-form-search"
  6. @keyup.enter.native="search"
  7. @submit.native.prevent
  8. >
  9. <el-row :gutter="15">
  10. <el-col v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }">
  11. <el-form-item label="需求来源类型:" prop="sourceCode">
  12. <DictSelection
  13. style="width: 100%"
  14. dictName="需求来源类型"
  15. clearable
  16. v-model="params.sourceId"
  17. @itemChange="chaengSource"
  18. >
  19. </DictSelection>
  20. </el-form-item>
  21. </el-col>
  22. <!-- <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
  23. <el-form-item label="需求部门名称:" prop="requireDeptName">
  24. <el-input
  25. clearable
  26. placeholder="请输入"
  27. v-model.trim="params.requireDeptName"
  28. ></el-input>
  29. </el-form-item>
  30. </el-col> -->
  31. <el-col v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }">
  32. <el-form-item label="需求部门名称:" prop="requireDeptName">
  33. <el-input
  34. clearable
  35. placeholder="请输入"
  36. v-model.trim="params.requireDeptName"
  37. ></el-input>
  38. </el-form-item>
  39. </el-col>
  40. <el-col v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }">
  41. <el-form-item label="完成日期:" prop="finishDateStart">
  42. <el-date-picker
  43. v-model="finishDate"
  44. @change="changeDate"
  45. type="daterange"
  46. style="width: 100%"
  47. value-format="yyyy-MM-dd"
  48. start-placeholder="开始日期"
  49. end-placeholder="结束日期"
  50. >
  51. </el-date-picker>
  52. </el-form-item>
  53. </el-col>
  54. </el-row>
  55. <el-row :gutter="15">
  56. <el-col v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }">
  57. <el-form-item label="创建时间:" prop="createTimeStart">
  58. <el-date-picker
  59. style="width: 100%"
  60. v-model="createTime"
  61. @change="changeCreateTime"
  62. type="datetimerange"
  63. value-format="yyyy-MM-dd HH:mm:ss"
  64. start-placeholder="开始时间"
  65. end-placeholder="结束时间"
  66. :default-time="['00:00:00', '23:59:59']"
  67. >
  68. </el-date-picker>
  69. </el-form-item>
  70. </el-col>
  71. <el-col v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }">
  72. <el-form-item label="采购需求编码:" prop="requirementCode">
  73. <el-input
  74. clearable
  75. placeholder="请输入"
  76. v-model.trim="params.requirementCode"
  77. ></el-input>
  78. </el-form-item>
  79. </el-col>
  80. <el-col v-bind="styleResponsive ? { lg: 4, md: 12 } : { span: 4 }">
  81. <div class="ele-form-actions">
  82. <el-button
  83. type="primary"
  84. icon="el-icon-search"
  85. class="ele-btn-icon"
  86. @click="search"
  87. >
  88. 查询
  89. </el-button>
  90. <el-button @click="reset">重置</el-button>
  91. </div>
  92. </el-col>
  93. </el-row>
  94. </el-form>
  95. </template>
  96. <script>
  97. export default {
  98. data() {
  99. // 默认表单数据
  100. const defaultParams = {
  101. finishDateStart: '',
  102. finishDateEnd: '',
  103. createTimeStart: '',
  104. createTimeEnd: '',
  105. sourceType: '',
  106. requirementCode: '',
  107. sourceId: ''
  108. };
  109. return {
  110. finishDate: [],
  111. createTime: [],
  112. defaultParams,
  113. // 表单数据
  114. params: { ...defaultParams }
  115. };
  116. },
  117. computed: {
  118. // 是否开启响应式布局
  119. styleResponsive() {
  120. return this.$store.state.theme.styleResponsive;
  121. }
  122. },
  123. methods: {
  124. //选择需求来源类型
  125. chaengSource(data) {
  126. this.params.sourceType = data?.dictValue;
  127. },
  128. //选择时间
  129. changeDate(e) {
  130. this.finishDate = e;
  131. },
  132. //选择时间
  133. changeCreateTime(e) {
  134. this.createTime = e;
  135. },
  136. /* 搜索 */
  137. search() {
  138. const [finishDateStart, finishDateEnd] = this.finishDate;
  139. const [createTimeStart, createTimeEnd] = this.createTime;
  140. this.params = Object.assign({}, this.params, {
  141. finishDateStart,
  142. finishDateEnd,
  143. createTimeStart,
  144. createTimeEnd
  145. });
  146. this.$emit('search', {
  147. ...this.params
  148. });
  149. },
  150. /* 重置 */
  151. reset() {
  152. this.finishDate = [];
  153. this.createTime = [];
  154. this.params = { ...this.defaultParams };
  155. this.search();
  156. }
  157. }
  158. };
  159. </script>
  160. <style scoped lang="scss">
  161. </style>