index.vue 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. <template>
  2. <div style='display: flex; flex-direction: column;flex-grow: 1; flex-shrink: 1;'>
  3. <table-page-template>
  4. <div slot='form' class='condition'>
  5. <el-input
  6. v-model.trim='searchValue'
  7. class='margin-right'
  8. style='width: 300px; margin-right: 10px;'
  9. placeholder='姓名、联系电话、登录名、备注'
  10. @change='searchChange'
  11. ></el-input>
  12. <!-- <el-button @click='refresh' style="margin-left: 10px;">&nbsp;&nbsp;&nbsp;刷新&nbsp;&nbsp;&nbsp;</el-button> -->
  13. <el-button @click='addUser'>添加</el-button>
  14. <!-- <el-button type='danger' @click='someDel'>批量删除</el-button> -->
  15. </div>
  16. <el-table
  17. height="600"
  18. slot='table'
  19. :data='tableData'
  20. border
  21. tooltip-effect='dark'
  22. style='width: 100%;'
  23. v-loading='loading'
  24. @selection-change='handleSelectionChange'
  25. >
  26. <!-- <el-table-column type='selection' width='55' align='center'></el-table-column> -->
  27. <el-table-column prop='UserName' label='姓名' width='100' header-align='center' align='center'></el-table-column>
  28. <el-table-column prop='Phone' label='联系电话/登录名' width='120' header-align='center' align='center'></el-table-column>
  29. <el-table-column prop='Note' label='备注' header-align='center'></el-table-column>
  30. <el-table-column label='操作' width='150' header-align='center' class="btn">
  31. <template slot-scope='scope'>
  32. <el-button type='primary' plain size='mini' @click='editUser(scope.row)'>编辑</el-button>
  33. <el-button type='danger' plain size='mini' @click='del(scope.row)'>删除</el-button>
  34. </template>
  35. </el-table-column>
  36. </el-table>
  37. <base-pagination :currentPages='pageNum' :total='total' @pageChanged='pageChanged' slot='pagination'></base-pagination>
  38. </table-page-template>
  39. <saga-edit ref='edit' @refresh='refresh'></saga-edit>
  40. </div>
  41. </template>
  42. <script>
  43. import { mapGetters, mapActions } from 'vuex'
  44. import {
  45. getUser, //获取扫楼用户
  46. delUser //删除用户
  47. } from '@/api/scan/request'
  48. //component
  49. import SagaEdit from './Edit'
  50. export default {
  51. name: 'floor-user',
  52. data() {
  53. return {
  54. searchValue: '',
  55. loading: false,
  56. tableData: [],
  57. checkedArr: [],
  58. pageNum: 1,
  59. pageSize: 10,
  60. total: 0
  61. }
  62. },
  63. components: {
  64. SagaEdit
  65. },
  66. computed: {
  67. ...mapGetters('peojMess', ['projectId', 'userId'])
  68. },
  69. methods: {
  70. pageChanged(page, size) {
  71. this.pageNum = page
  72. this.pageSize = size
  73. this.getUserList()
  74. },
  75. refresh() {
  76. this.getUserList()
  77. },
  78. searchChange() {
  79. this.pageNum = 1
  80. this.getUserList()
  81. },
  82. addUser() {
  83. this.$refs['edit'].show()
  84. },
  85. editUser(row) {
  86. this.$refs['edit'].show(row)
  87. },
  88. del(row) {
  89. var UserList = [row.UserId]
  90. this.delUser(UserList)
  91. },
  92. handleSelectionChange(arr) {
  93. this.checkedArr = arr.map(ele => ele.UserId)
  94. },
  95. someDel() {
  96. if (this.checkedArr.length < 1) {
  97. this.$message({
  98. message: '请至少选择一条用户',
  99. type: 'warning'
  100. })
  101. } else {
  102. this.delUser(this.checkedArr)
  103. }
  104. },
  105. delUser(UserList) {
  106. this.$confirm('此操作将永久删除用户, 是否继续?', '提示', {
  107. confirmButtonText: '确定',
  108. cancelButtonText: '取消',
  109. type: 'warning'
  110. })
  111. .then(() => {
  112. let param = {
  113. ProjId: this.projectId,
  114. UserId: this.userId,
  115. UserList: UserList
  116. }
  117. delUser(param).then(result => {
  118. if (result.data.Result == 'success') {
  119. this.$message({
  120. message: '删除成功',
  121. type: 'success'
  122. })
  123. this.refresh()
  124. }
  125. })
  126. })
  127. .catch(() => {
  128. this.$message({
  129. type: 'info',
  130. message: '已取消'
  131. })
  132. })
  133. },
  134. getUserList() {
  135. this.loading = true
  136. let param = {
  137. filter: this.searchValue,
  138. pageNum: this.pageNum,
  139. pageSize: this.pageSize,
  140. ProjId: this.projectId,
  141. UserId: this.userId
  142. }
  143. getUser(param).then(result => {
  144. this.loading = false
  145. this.tableData = result.data.UserList
  146. this.total = result.data.Count
  147. })
  148. },
  149. init() {
  150. this.getUserList()
  151. }
  152. },
  153. created() {
  154. this.init()
  155. }
  156. }
  157. </script>
  158. <style scoped lang='less'>
  159. .condition {
  160. margin: 10px;
  161. display: flex;
  162. justify-content: space-between;
  163. }
  164. </style>