user-search.vue 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  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. :autoComplete="false"
  9. >
  10. <el-row :gutter="15">
  11. <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
  12. <el-form-item label="用户账号:">
  13. <el-input
  14. clearable
  15. v-model.trim="where.loginName"
  16. placeholder="请输入"
  17. />
  18. </el-form-item>
  19. </el-col>
  20. <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
  21. <el-form-item label="工号:">
  22. <el-input
  23. clearable
  24. v-model.trim="where.jobNumber"
  25. placeholder="请输入"
  26. />
  27. </el-form-item>
  28. </el-col>
  29. <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
  30. <el-form-item label="姓名:">
  31. <el-input
  32. clearable
  33. v-model.trim="where.name"
  34. placeholder="请输入"
  35. />
  36. </el-form-item>
  37. </el-col>
  38. <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
  39. <el-form-item label="手机号:">
  40. <el-input
  41. clearable
  42. v-model.trim="where.phone"
  43. placeholder="请输入"
  44. />
  45. </el-form-item>
  46. </el-col>
  47. <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
  48. <el-form-item label="角色:">
  49. <el-select
  50. v-model="where.roleIds"
  51. filterable
  52. multiple
  53. clearable
  54. style="width: 100%"
  55. >
  56. <el-option
  57. v-for="item in roleList"
  58. :value="item.id"
  59. :label="item.name"
  60. :key="item.id"
  61. ></el-option>
  62. </el-select>
  63. </el-form-item>
  64. </el-col>
  65. <!-- <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
  66. <el-form-item label="用户名:">
  67. <el-input clearable v-model.trim="where.nickname" placeholder="请输入" />
  68. </el-form-item>
  69. </el-col>
  70. <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
  71. <el-form-item label="性别:">
  72. <el-select
  73. clearable
  74. v-model.trim="where.sex"
  75. placeholder="请选择"
  76. class="ele-fluid"
  77. >
  78. <el-option label="男" :value="1" />
  79. <el-option label="女" :value="2" />
  80. </el-select>
  81. </el-form-item>
  82. </el-col> -->
  83. <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
  84. <div class="ele-form-actions">
  85. <el-button
  86. type="primary"
  87. icon="el-icon-search"
  88. class="ele-btn-icon"
  89. @click="search"
  90. >
  91. 查询
  92. </el-button>
  93. <el-button @click="reset">重置</el-button>
  94. </div>
  95. </el-col>
  96. </el-row>
  97. </el-form>
  98. </template>
  99. <script>
  100. import { getRolesListAPI } from '@/api/system/role';
  101. export default {
  102. data() {
  103. // 默认表单数据
  104. const defaultWhere = {
  105. loginName: '',
  106. roleIds: [],
  107. jobNumber:'',
  108. name:'',
  109. phone:""
  110. // nickname: '',
  111. // sex: undefined
  112. };
  113. return {
  114. // 表单数据
  115. where: { ...defaultWhere },
  116. roleList: []
  117. };
  118. },
  119. computed: {
  120. // 是否开启响应式布局
  121. styleResponsive() {
  122. return this.$store.state.theme.styleResponsive;
  123. }
  124. },
  125. created() {
  126. this.getRolesList();
  127. },
  128. methods: {
  129. async getRolesList() {
  130. this.roleList = await getRolesListAPI();
  131. },
  132. /* 搜索 */
  133. search() {
  134. this.$emit('search', this.where);
  135. },
  136. /* 重置 */
  137. reset() {
  138. this.where = { ...this.defaultWhere };
  139. this.search();
  140. }
  141. }
  142. };
  143. </script>