Index.vue 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. <template>
  2. <div class="hello">
  3. <el-form :inline="true" class="demo-form-inline">
  4. <el-form-item label="">
  5. <el-input v-model="username" placeholder="用户名"></el-input>
  6. </el-form-item>
  7. <!-- <el-form-item label="活动区域">
  8. <el-select v-model="formInline.region" placeholder="活动区域">
  9. <el-option label="区域一" value="shanghai"></el-option>
  10. <el-option label="区域二" value="beijing"></el-option>
  11. </el-select>
  12. </el-form-item> -->
  13. <el-form-item>
  14. <el-button @click="onSubmit">{{$t('search')}}</el-button>
  15. </el-form-item>
  16. </el-form>
  17. <el-button type="primary" @click="dialogAddVisible = true" >{{$t('add_user')}}</el-button>
  18. <el-table
  19. :data="itemList"
  20. style="width: 100%">
  21. <el-table-column
  22. prop="username"
  23. :label="$t('username')"
  24. width="200">
  25. </el-table-column>
  26. <el-table-column
  27. prop="name"
  28. :label="$t('name')"
  29. >
  30. </el-table-column>
  31. <el-table-column
  32. prop="groupid"
  33. :label="$t('userrole')"
  34. :formatter="formatGroup"
  35. width="150">
  36. </el-table-column>
  37. <el-table-column
  38. prop="reg_time"
  39. :label="$t('reg_time')"
  40. width="160">
  41. </el-table-column>
  42. <el-table-column
  43. prop="last_login_time"
  44. :label="$t('last_login_time')"
  45. width="160">
  46. </el-table-column>
  47. <el-table-column
  48. prop="item_domain"
  49. :label="$t('operation')">
  50. <template slot-scope="scope">
  51. <el-button @click="click_password(scope.row)" type="text" size="small">{{$t('modify_password')}}</el-button>
  52. <el-button @click="delete_user(scope.row)" v-if="scope.row.groupid != 1" type="text" size="small">{{$t('delete')}}</el-button>
  53. </template>
  54. </el-table-column>
  55. </el-table>
  56. <div class="block">
  57. <span class="demonstration"></span>
  58. <el-pagination
  59. @current-change="handleCurrentChange"
  60. :page-size="count"
  61. layout="total, prev, pager, next"
  62. :total="total">
  63. </el-pagination>
  64. </div>
  65. <el-dialog :visible.sync="dialogVisible" :modal="false" width="300px">
  66. <el-form >
  67. <el-form-item label="" >
  68. <el-input type="password" :placeholder="$t('new_password')" v-model="Form.new_password"></el-input>
  69. </el-form-item>
  70. </el-form>
  71. <div slot="footer" class="dialog-footer">
  72. <el-button @click="dialogVisible = false">{{$t('cancel')}}</el-button>
  73. <el-button type="primary" @click="change_password" >{{$t('confirm')}}</el-button>
  74. </div>
  75. </el-dialog>
  76. <el-dialog :visible.sync="dialogAddVisible" :modal="false" width="300px">
  77. <el-form >
  78. <el-form-item label="" >
  79. <el-input type="text" :placeholder="$t('username')" v-model="addForm.username"></el-input>
  80. </el-form-item>
  81. <el-form-item label="" >
  82. <el-input type="password" :placeholder="$t('password')" v-model="addForm.password"></el-input>
  83. </el-form-item>
  84. </el-form>
  85. <div slot="footer" class="dialog-footer">
  86. <el-button @click="dialogAddVisible = false">{{$t('cancel')}}</el-button>
  87. <el-button type="primary" @click="add_user" >{{$t('confirm')}}</el-button>
  88. </div>
  89. </el-dialog>
  90. </div>
  91. </template>
  92. <style scoped>
  93. </style>
  94. <script>
  95. export default {
  96. data() {
  97. return {
  98. itemList:[],
  99. username:'',
  100. page:1 ,
  101. count: 7 ,
  102. total:0,
  103. Form:{
  104. new_password:''
  105. },
  106. addForm:{
  107. username:'',
  108. password:'',
  109. },
  110. dialogVisible:false,
  111. dialogAddVisible:false,
  112. password_uid:''
  113. };
  114. },
  115. methods:{
  116. get_user_list(){
  117. var that = this ;
  118. var url = DocConfig.server+'/api/adminUser/getList';
  119. var params = new URLSearchParams();
  120. params.append('username', this.username);
  121. params.append('page', this.page);
  122. params.append('count', this.count);
  123. that.axios.post(url, params)
  124. .then(function (response) {
  125. if (response.data.error_code === 0 ) {
  126. //that.$message.success("加载成功");
  127. var json = response.data.data ;
  128. that.itemList = json.users ;
  129. that.total = json.total;
  130. }else{
  131. that.$alert(response.data.error_message);
  132. }
  133. });
  134. },
  135. formatGroup(row, column){
  136. if (row ) {
  137. if (row.groupid == 1 ) {
  138. return this.$t("administrator");
  139. }
  140. else if (row.groupid == 2 ) {
  141. return this.$t("ordinary_users");
  142. }
  143. else{
  144. return "";
  145. }
  146. };
  147. },
  148. //跳转到项目
  149. jump_to_item(row){
  150. let url = '#/'+row.item_id;
  151. window.open(url);
  152. },
  153. handleCurrentChange(currentPage){
  154. this.page = currentPage ;
  155. this.get_user_list();
  156. },
  157. onSubmit(){
  158. this.page = 1 ;
  159. this.get_user_list();
  160. },
  161. delete_user(row){
  162. var that = this ;
  163. var url = DocConfig.server+'/api/adminUser/deleteUser';
  164. this.$confirm(that.$t('confirm_delete'), ' ', {
  165. confirmButtonText: that.$t('confirm'),
  166. cancelButtonText: that.$t('cancel'),
  167. type: 'warning'
  168. }).then(() => {
  169. var params = new URLSearchParams();
  170. params.append('uid', row.uid);
  171. that.axios.post(url, params)
  172. .then(function (response) {
  173. if (response.data.error_code === 0 ) {
  174. that.$message.success("success");
  175. that.get_user_list();
  176. that.username = '';
  177. }else{
  178. that.$alert(response.data.error_message);
  179. }
  180. });
  181. })
  182. },
  183. click_password(row){
  184. this.dialogVisible = true ;
  185. this.password_uid = row.uid
  186. },
  187. change_password(){
  188. var that = this ;
  189. var url = DocConfig.server+'/api/adminUser/changePassword';
  190. var params = new URLSearchParams();
  191. params.append('uid', that.password_uid);
  192. params.append('new_password', this.Form.new_password);
  193. that.axios.post(url, params)
  194. .then(function (response) {
  195. if (response.data.error_code === 0 ) {
  196. that.dialogVisible = false;
  197. that.Form.new_password = '';
  198. that.$message.success(that.$t("success"));
  199. }else{
  200. that.$alert(response.data.error_message);
  201. }
  202. })
  203. .catch(function (error) {
  204. console.log(error);
  205. });
  206. },
  207. add_user(){
  208. var that = this ;
  209. var url = DocConfig.server+'/api/adminUser/addUser';
  210. var params = new URLSearchParams();
  211. params.append('username', that.addForm.username);
  212. params.append('password', this.addForm.password);
  213. that.axios.post(url, params)
  214. .then(function (response) {
  215. if (response.data.error_code === 0 ) {
  216. that.dialogAddVisible = false;
  217. that.addForm.password = '';
  218. that.addForm.username = '';
  219. that.$message.success(that.$t("success"));
  220. that.get_user_list();
  221. }else{
  222. that.$alert(response.data.error_message);
  223. }
  224. })
  225. .catch(function (error) {
  226. console.log(error);
  227. });
  228. }
  229. },
  230. mounted () {
  231. this.get_user_list();
  232. },
  233. beforeDestroy(){
  234. this.$message.closeAll();
  235. /*去掉添加的背景色*/
  236. document.body.removeAttribute("class","grey-bg");
  237. }
  238. }
  239. </script>