BOM-search.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <!-- 搜索表单 -->
  2. <template>
  3. <el-form
  4. label-width="77px"
  5. class="ele-form-search"
  6. @keyup.enter.native="search"
  7. @submit.native.prevent
  8. >
  9. <el-row :gutter="10">
  10. <el-col v-bind="styleResponsive ? { md: 6 } : { span: 6 }">
  11. <el-form-item label="BOM编码">
  12. <el-input clearable v-model.trim="where.code" placeholder="请输入" />
  13. </el-form-item>
  14. </el-col>
  15. <el-col v-bind="styleResponsive ? { md: 6 } : { span: 6 }">
  16. <el-form-item label="BOM名称">
  17. <el-input clearable v-model.trim="where.name" placeholder="请输入" />
  18. </el-form-item>
  19. </el-col>
  20. <el-col v-bind="styleResponsive ? { md: 6 } : { span: 6 }">
  21. <el-form-item label="产品编码">
  22. <el-input
  23. clearable
  24. v-model.trim="where.categoryCode"
  25. placeholder="请输入"
  26. />
  27. </el-form-item>
  28. </el-col>
  29. <el-col v-bind="styleResponsive ? { md: 6 } : { span: 6 }">
  30. <el-form-item label="产品名称">
  31. <el-input
  32. clearable
  33. v-model.trim="where.categoryName"
  34. placeholder="请输入"
  35. />
  36. </el-form-item>
  37. </el-col>
  38. <el-col v-bind="styleResponsive ? { md: 6 } : { span: 6 }">
  39. <el-form-item label="状态">
  40. <el-select
  41. clearable
  42. v-model.trim="where.status"
  43. placeholder="请选择"
  44. class="w100"
  45. >
  46. <el-option
  47. v-for="item in Object.entries(statusOpt)"
  48. :key="item[0]"
  49. :label="item[1]"
  50. :value="item[0]"
  51. ></el-option>
  52. </el-select>
  53. </el-form-item>
  54. </el-col>
  55. <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
  56. <el-form-item label="组织机构:">
  57. <auth-selection v-model.trim="where.deptIds" style="width: 100%"></auth-selection>
  58. </el-form-item>
  59. </el-col>
  60. <el-col v-bind="styleResponsive ? { md: 12 } : { span: 12 }">
  61. <div class="ele-form-actions">
  62. <el-button
  63. type="primary"
  64. icon="el-icon-search"
  65. class="ele-btn-icon"
  66. @click="search"
  67. >
  68. 查询
  69. </el-button>
  70. <el-button @click="reset" icon="el-icon-refresh" class="ele-btn-icon"
  71. >重置</el-button
  72. >
  73. </div>
  74. </el-col>
  75. </el-row>
  76. </el-form>
  77. </template>
  78. <script>
  79. export default {
  80. props: {
  81. statusOpt: Object,
  82. categoryCode: String
  83. },
  84. data() {
  85. // 默认表单数据
  86. const defaultWhere = {
  87. name: '',
  88. code: '',
  89. categoryCode: this.categoryCode,
  90. categoryName: '',
  91. status: '',
  92. };
  93. return {
  94. defaultWhere,
  95. // 表单数据
  96. where: { ...defaultWhere }
  97. };
  98. },
  99. computed: {
  100. // 是否开启响应式布局
  101. styleResponsive() {
  102. return this.$store.state.theme.styleResponsive;
  103. }
  104. },
  105. methods: {
  106. /* 搜索 */
  107. search() {
  108. this.$emit('search', this.where);
  109. },
  110. /* 重置 */
  111. reset() {
  112. this.where = { ...this.defaultWhere };
  113. this.search();
  114. }
  115. }
  116. };
  117. </script>