UserManagement.vue 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. <template>
  2. <div>
  3. <el-form :model="form" inline>
  4. <!-- <el-form-item v-if="$store.state.user.orgId === null" label="机构">
  5. <OrgSelect v-model="form.orgId"></OrgSelect>
  6. </el-form-item> -->
  7. <el-form-item label="角色">
  8. <RoleSelect v-model="form.roleCode"></RoleSelect>
  9. </el-form-item>
  10. <el-form-item label="登录名">
  11. <el-input v-model.trim="form.loginName"></el-input>
  12. </el-form-item>
  13. <el-form-item label="姓名">
  14. <el-input v-model.trim="form.name"></el-input>
  15. </el-form-item>
  16. <el-form-item label="状态">
  17. <StateSelect v-model="form.enableState"></StateSelect>
  18. </el-form-item>
  19. <el-button @click="searchForm">查询</el-button>
  20. <el-button @click="add">新增</el-button>
  21. <!-- <el-button>导入</el-button> -->
  22. </el-form>
  23. <el-table :data="tableData" stripe style="width: 100%;">
  24. <el-table-column type="selection" width="42" />
  25. <el-table-column width="100" label="ID">
  26. <span slot-scope="scope">{{ scope.row.id }}</span>
  27. </el-table-column>
  28. <el-table-column
  29. width="200"
  30. v-if="$store.state.user.orgId === null"
  31. label="机构名称"
  32. >
  33. <span slot-scope="scope">{{ scope.row.orgName }}</span>
  34. </el-table-column>
  35. <el-table-column width="100" label="姓名">
  36. <span slot-scope="scope">{{ scope.row.name }}</span>
  37. </el-table-column>
  38. <el-table-column label="登录名">
  39. <span slot-scope="scope">{{ scope.row.loginName }}</span>
  40. </el-table-column>
  41. <el-table-column width="100" label="角色">
  42. <span slot-scope="scope">{{ scope.row.roleNameStr }}</span>
  43. </el-table-column>
  44. <el-table-column width="120" label="状态">
  45. <span slot-scope="scope">{{
  46. scope.row.enable | zeroOneEnableDisableFilter
  47. }}</span>
  48. </el-table-column>
  49. <el-table-column width="120" label="更新人">
  50. <span slot-scope="scope">{{ scope.row.updateName }}</span>
  51. </el-table-column>
  52. <el-table-column width="100" label="更新时间">
  53. <span slot-scope="scope">{{
  54. scope.row.updateTime | datetimeFilter
  55. }}</span>
  56. </el-table-column>
  57. <el-table-column :context="_self" label="操作" width="250">
  58. <div slot-scope="scope">
  59. <el-button size="mini" type="primary" plain @click="edit(scope.row)">
  60. 编辑
  61. </el-button>
  62. <el-popconfirm
  63. title="确定将此用户密码重置为 123456 吗?"
  64. @onConfirm="resetUserPassword(scope.row)"
  65. >
  66. <el-button slot="reference" size="mini" type="primary" plain>
  67. 重置密码
  68. </el-button>
  69. </el-popconfirm>
  70. <el-button
  71. size="mini"
  72. type="primary"
  73. plain
  74. @click="toggleEnableUser(scope.row)"
  75. >
  76. {{ scope.row.enable ? "禁用" : "启用" }}
  77. </el-button>
  78. </div>
  79. </el-table-column>
  80. </el-table>
  81. <div class="page float-right">
  82. <el-pagination
  83. @current-change="handleCurrentChange"
  84. :current-page="currentPage"
  85. :page-size="pageSize"
  86. :page-sizes="[10, 20, 50, 100, 200, 300]"
  87. @size-change="handleSizeChange"
  88. layout="total, sizes, prev, pager, next, jumper"
  89. :total="total"
  90. />
  91. </div>
  92. <UserManagementDialog
  93. ref="theDialog"
  94. :user="selectedUser"
  95. @reload="searchForm"
  96. />
  97. </div>
  98. </template>
  99. <script>
  100. import RoleSelect from "@/components/RoleSelect.vue";
  101. import StateSelect from "@/components/StateSelect";
  102. // import OrgSelect from "@/components/OrgSelect";
  103. import {
  104. searchUsers,
  105. toggleEnableUser,
  106. resetUserPassword,
  107. } from "../../../api/system-user";
  108. import UserManagementDialog from "./UserManagementDialog";
  109. export default {
  110. name: "UserManagement",
  111. components: {
  112. RoleSelect,
  113. StateSelect,
  114. // OrgSelect,
  115. UserManagementDialog,
  116. },
  117. data() {
  118. return {
  119. form: {
  120. orgId: "",
  121. roleCode: "",
  122. loginName: "",
  123. name: "",
  124. enableState: null,
  125. },
  126. tableData: [],
  127. currentPage: 1,
  128. pageSize: 10,
  129. total: 10,
  130. selectedUser: {},
  131. };
  132. },
  133. async created() {},
  134. methods: {
  135. async searchForm() {
  136. const res = await searchUsers({
  137. orgId: this.form.orgId,
  138. role: this.form.roleCode,
  139. enable: this.form.enableState,
  140. loginName: this.form.loginName,
  141. name: this.form.name,
  142. pageNumber: this.currentPage,
  143. pageSize: this.pageSize,
  144. });
  145. this.tableData = res.data.data.records.records;
  146. this.total = res.data.data.records.total;
  147. },
  148. handleCurrentChange(val) {
  149. this.currentPage = val;
  150. this.searchForm();
  151. },
  152. handleSizeChange(val) {
  153. this.pageSize = val;
  154. this.currentPage = 1;
  155. this.searchForm();
  156. },
  157. add() {
  158. this.selectedUser = {};
  159. this.$refs.theDialog.openDialog();
  160. },
  161. edit(user) {
  162. this.selectedUser = user;
  163. this.$refs.theDialog.openDialog();
  164. },
  165. async toggleEnableUser(user) {
  166. await toggleEnableUser({
  167. id: user.id,
  168. enable: user.enable === 0 ? 1 : 0,
  169. });
  170. this.searchForm();
  171. },
  172. async resetUserPassword(user) {
  173. await resetUserPassword({
  174. id: user.id,
  175. password: "123456",
  176. });
  177. this.$notify({ type: "success", title: "重置成功" });
  178. },
  179. },
  180. };
  181. </script>
  182. <style></style>