index.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. <template>
  2. <view class="">
  3. <<<<<<< HEAD
  4. <view class="">
  5. <view class="status_bar">
  6. </view>
  7. =======
  8. <view class="status_bar"></view>
  9. <view class="" style="position: relative;top: 44px;">
  10. >>>>>>> 1c31f0ba3e58f06f275858f2857f9f7f3e3fafc8
  11. <view style="position: fixed;z-index: 100;">
  12. <uni-nav-bar left-icon="back" left-text="返回" right-icon="plus" title="用户管理" @clickRight="clickRight" @clickLeft="clickLeft"></uni-nav-bar>
  13. </view>
  14. <view class="uinput-box">
  15. <view class="uinputs">
  16. <u-input v-model="argument.username" :type="type" :border="border" placeholder="请输入用户名称" input-align="center"
  17. :clearable="border" :custom-style="uinputstyle" @input="searchinput" />
  18. <u-icon name="search" class="search" size="30" @click="search"></u-icon>
  19. </view>
  20. </view>
  21. <view class="userlists">
  22. <view class="userlist-li" v-for="(item,index) in userlists" :kex="index" @click="userOperation(userlists[index])">
  23. <image src="../../../static/image/fourMoodBase/touxiang.png" mode=""></image>
  24. <p class="userlist-li-city">{{item.username}}</p>
  25. <p class="userlist-li-eamil">{{item.mobile}}</p>
  26. </view>
  27. </view>
  28. </view>
  29. </view>
  30. </template>
  31. <script>
  32. import {
  33. Debounce,
  34. Throttle
  35. } from "../../../util/anitthro.js"
  36. export default {
  37. data() {
  38. return {
  39. value: '',
  40. type: 'text',
  41. border: false,
  42. uinputstyle: {
  43. "margin": "16rpx 0",
  44. 'background': "#f3f3f3",
  45. "border-radius": "25px"
  46. },
  47. userlists: [],
  48. argument: {
  49. page: 1,
  50. page_size: 10,
  51. username: ''
  52. }
  53. }
  54. },
  55. methods: {
  56. async getState(argument) {
  57. const res = await this.$myRequest({
  58. url: '/api/api_gateway?method=user.login.users_info',
  59. data: {
  60. page: argument.page,
  61. page_size: argument.page_size,
  62. username: argument.username
  63. }
  64. })
  65. this.userlists = this.userlists.concat(res.data)
  66. },
  67. clickRight() { //跳转增加用户页面
  68. uni.navigateTo({
  69. url: './addusers',
  70. })
  71. },
  72. clickLeft(){
  73. uni.switchTab({
  74. url:"../../index/index"
  75. })
  76. },
  77. userOperation(item) { //跳转用户信息页面
  78. item = JSON.stringify(item)
  79. uni.navigateTo({
  80. url: './useroperation?item=' + item,
  81. })
  82. },
  83. search() { //搜索用户
  84. this.userlists = []
  85. this.getState(this.argument)
  86. },
  87. searchinput() {
  88. this.argument.page=1
  89. Debounce(() => {
  90. this.userlists = []
  91. this.getState(this.argument)
  92. }, 1000)()
  93. }
  94. }, //user.login.users_info
  95. onLoad() {
  96. this.getState(this.argument)
  97. },
  98. onReachBottom() {
  99. this.argument.page++
  100. this.getState(this.argument)
  101. },
  102. onPullDownRefresh() {
  103. this.getState(this.argument)
  104. setTimeout(function() {
  105. uni.stopPullDownRefresh(); //停止下拉刷新动画
  106. }, 1000);
  107. }
  108. }
  109. </script>
  110. 1
  111. <style lang="scss">
  112. /deep/.uni-icons{
  113. font-size: 40rpx !important;
  114. }
  115. .uinput-box {
  116. position: fixed;
  117. top: 88px;
  118. z-index: 100;
  119. background-color: white;
  120. width: 100%;
  121. display: flex;
  122. justify-content: center;
  123. align-items: center;
  124. .uinputs {
  125. width: 95%;
  126. position: relative;
  127. .search {
  128. position: absolute;
  129. top: 40rpx;
  130. left: 200rpx;
  131. }
  132. }
  133. }
  134. .userlists {
  135. width: 100%;
  136. position: relative;
  137. top: 180rpx;
  138. .userlist-li {
  139. width: 46%;
  140. height: 270rpx;
  141. margin: 20rpx 0 0 20rpx;
  142. float: left;
  143. box-shadow: 0 0 10rpx #bcb9ca;
  144. text-align: center;
  145. image {
  146. width: 80rpx;
  147. height: 80rpx;
  148. margin: 40rpx 0 20rpx;
  149. }
  150. }
  151. }
  152. </style>