index.vue 6.0 KB

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