user-search.vue 3.8 KB

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