status.vue 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. <template>
  2. <el-container direction="vertical">
  3. <el-header height="40px" style="border-bottom: 1px solid #eee">运营人员管理</el-header>
  4. <div style="margin:10px 0;">
  5. <el-button icon="el-icon-plus" v-show="if_add" style="margin-left:10px;" type="primary" @click="addVisible = true">新增</el-button>
  6. <el-input v-model="searchValue" placeholder="请输入" style="width:200px;margin-left:10px;" />
  7. <el-button style="margin-left:10px;" type="primary" @click="onSearch">搜索</el-button>
  8. <el-button style="margin-left:10px;" type="danger" @click="onReset">重置</el-button>
  9. </div>
  10. <el-table :data="tableData" border style="width: 100%">
  11. <el-table-column align="center" prop="id" label="记录ID"></el-table-column>
  12. <el-table-column align="center" prop="username" label="管理员名称"></el-table-column>
  13. <el-table-column align="center" prop="create_timestamp" label="创建时间"></el-table-column>
  14. <el-table-column align="center" prop="last_login_ip" label="上次登录ip地址"></el-table-column>
  15. <el-table-column align="center" prop="last_login_time" label="上次登录日期"></el-table-column>
  16. <el-table-column align="center" prop="update_timestamp" label="最后修改日期"></el-table-column>
  17. <el-table-column align="center" prop="status_text" label="管理员状态"></el-table-column>
  18. <el-table-column align="center" label="操作">
  19. <template slot-scope="scope">
  20. <el-button size="mini" v-show="scope.row.is_del" type="danger" style="width:80px;margin-left:0;" @click="onDelUser(scope.$index, scope.row)">删除</el-button>
  21. </template>
  22. </el-table-column>
  23. </el-table>
  24. <el-row style="margin-top:10px;" type="flex" justify="end">
  25. <el-pagination background layout="prev, pager, next" :total="total" :page-size="pageSize" :current-page="pageNumber" @current-change="onPageChange"></el-pagination>
  26. </el-row>
  27. <el-dialog title="新增" :visible.sync="addVisible" width="50%" @closed="onCloseAddDialog">
  28. <el-form :model="addForm" :rules="addRules" ref="addForm" label-width="120px" class="demo-ruleForm">
  29. <el-form-item label="管理员名称:" prop="name">
  30. <el-input v-model="addForm.name"></el-input>
  31. </el-form-item>
  32. <el-form-item label="密码:" prop="pwd">
  33. <el-input v-model="addForm.pwd" type="password"></el-input>
  34. </el-form-item>
  35. <el-form-item label="确认密码:" prop="rePwd">
  36. <el-input v-model="addForm.rePwd" type="password"></el-input>
  37. </el-form-item>
  38. <el-form-item label="权限:" prop="chkadm">
  39. <el-radio-group v-model="addForm.chkadm">
  40. <el-radio class="radio" :label="1">超级管理员</el-radio>
  41. <el-radio class="radio" :label="2">普通管理员</el-radio>
  42. </el-radio-group>
  43. </el-form-item>
  44. </el-form>
  45. <span>超级管理员具有增加管理员,删除其它管理员的权限。</span>
  46. <span slot="footer" class="dialog-footer">
  47. <el-button @click="onCloseAddDialog">取 消</el-button>
  48. <el-button type="primary" @click="onAddSubmit('addForm')">立即添加</el-button>
  49. </span>
  50. </el-dialog>
  51. </el-container>
  52. </template>
  53. <script>
  54. import {
  55. userList,
  56. userAdd,
  57. userDel
  58. } from "@/api";
  59. export default {
  60. data() {
  61. return {
  62. editPwdId: "",
  63. tableData: [],
  64. pageSize: 10,
  65. pageNumber: 1,
  66. total: 0,
  67. searchValue: "",
  68. addVisible: false,
  69. addForm: {
  70. name: "",
  71. pwd: "",
  72. rePwd: "",
  73. chkadm: 1
  74. },
  75. addRules: {
  76. name: [{
  77. required: true,
  78. message: "请输入管理员名称",
  79. trigger: "blur",
  80. }, ],
  81. pwd: [{
  82. required: true,
  83. message: "请输入登录密码",
  84. trigger: "blur",
  85. }, ],
  86. rePwd: [{
  87. required: true,
  88. validator: this.validateRePwd,
  89. trigger: "blur",
  90. }, ],
  91. },
  92. };
  93. },
  94. mounted() {
  95. this.getUserList();
  96. },
  97. methods: {
  98. validateRePwd(rule, value, callback) {
  99. if (value === "") {
  100. callback(new Error("请再次输入密码"));
  101. } else if (value !== this.addForm.pwd) {
  102. callback(new Error("两次输入密码不一致!"));
  103. } else {
  104. callback();
  105. }
  106. },
  107. onReset() {
  108. this.searchValue = "";
  109. this.pageNumber = 1;
  110. this.getUserList();
  111. },
  112. getUserList() {
  113. const _self = this;
  114. userList({
  115. pageSize: _self.pageSize,
  116. pageNumber: _self.pageNumber,
  117. searchText: _self.searchValue,
  118. }).then((res) => {
  119. console.log(res);
  120. if (res && res.msg == "ok") {
  121. _self.total = res.data.total;
  122. _self.tableData = [...res.data.rows];
  123. _self.if_add = res.data.if_add;
  124. }
  125. });
  126. },
  127. onPageChange(page) {
  128. if (page == this.pageNumber) {
  129. return;
  130. } else {
  131. this.pageNumber = page;
  132. setTimeout(() => {
  133. this.getActionLogList();
  134. }, 0);
  135. }
  136. },
  137. onSearch() {
  138. this.pageNumber = 1;
  139. this.getUserList();
  140. },
  141. onCloseAddDialog() {
  142. this.addForm = {};
  143. this.addVisible = false;
  144. this.$refs.addForm.resetFields();
  145. },
  146. onAddSubmit(formName) {
  147. const _self = this;
  148. this.$refs[formName].validate((valid) => {
  149. if (valid) {
  150. userAdd({
  151. username: this.addForm.name,
  152. password: this.addForm.pwd,
  153. repassword: this.addForm.rePwd,
  154. rule:this.addForm.chkadm
  155. }).then((res) => {
  156. console.log(res);
  157. if (res && res.msg == "ok") {
  158. this.$message({
  159. message: "新增成功",
  160. type: "success",
  161. center: true,
  162. duration: 1000,
  163. onClose: () => {
  164. _self.onReset();
  165. _self.onCloseAddDialog();
  166. },
  167. });
  168. }
  169. });
  170. } else {
  171. console.log("error submit!!");
  172. return false;
  173. }
  174. });
  175. },
  176. onDelUser(index, row) {
  177. const _self = this;
  178. this.$confirm("确认删除该管理员?", "提示").then(() => {
  179. userDel({
  180. id: row.id,
  181. }).then((res) => {
  182. if (res && res.msg == "ok") {
  183. this.$message({
  184. message: "删除成功",
  185. type: "success",
  186. center: true,
  187. duration: 1000,
  188. onClose: () => {
  189. _self.onReset();
  190. },
  191. });
  192. }
  193. });
  194. });
  195. },
  196. onEditUser(index, row) {
  197. this.editPwdId = row.id;
  198. this.editVisible = true;
  199. }
  200. },
  201. };
  202. </script>
  203. <style scoped>
  204. </style>