account.vue 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. <template>
  2. <div>
  3. <use-table ref="tbl"></use-table>
  4. <div class="container padding_b_0">
  5. <!-- <div class="dflex_wrap">
  6. <div class="dflex_vertical_c margin_r_40 margin_b_20">
  7. <div class="search_name">用户名称:</div>
  8. <el-input v-model="req.username" placeholder="请输入" @input="loadData" class="search_input">
  9. </el-input>
  10. </div>
  11. <div class="dflex_vertical_c margin_r_40 margin_b_20" v-if="advancedSearch">
  12. <div class="search_name">性别:</div>
  13. <el-select v-model="req.gender" class="search_input" @change="loadData">
  14. <el-option v-for="(item, idx) in genderOptions" :key="idx" :label="item.label"
  15. :value="item.value"></el-option>
  16. </el-select>
  17. </div>
  18. <el-button size="mini" class="search_btn margin_b_20 margin_r_40" @click="loadData">搜索</el-button>
  19. <div class="search_advanced margin_b_20" @click="advancedSearch = !advancedSearch"
  20. v-if="!advancedSearch">高级筛选</div>
  21. <div class="search_common margin_b_20" @click="advancedSearch = !advancedSearch" v-if="advancedSearch">
  22. 常用筛选</div>
  23. </div> -->
  24. </div>
  25. <div class="container use-table">
  26. <div class="dflex_sb margin_b_15">
  27. <div>
  28. <!-- <el-button class="batch_btn padding0" @click="removes">删除</el-button> -->
  29. </div>
  30. <el-button class="add_btn pos_r padding0" icon="iconfont iconxinzeng" @click="toAdd">新增</el-button>
  31. </div>
  32. <el-table :height="tblHeight" :data="tableDatas" @selection-change="selectionChange" highlight-current-row>
  33. <el-table-column type="selection"></el-table-column>
  34. <el-table-column label="用户" align="center">
  35. <template slot-scope="scope">
  36. <div class="dflex_vertical_c">
  37. <el-image style="width:40px;height: 40px;border-radius: 50%;"
  38. :src="scope.row.avatar || '/static/img/default.jpg'"
  39. :preview-src-list="scope.row.imgs" fit="cover"></el-image>
  40. <div class="margin_l_5">{{ scope.row.username }}</div>
  41. </div>
  42. </template>
  43. </el-table-column>
  44. <el-table-column property="user_role_names" label="角色" align="center">
  45. <template slot-scope="scope">
  46. <!-- <el-tag type="info" class="margin_t_5 margin_r_5" size="medium"
  47. v-for="(item, i) in scope.row.role" :key="i">{{ item }}</el-tag> -->
  48. <el-tag type="info" class="margin_t_5 margin_r_5" size="medium"
  49. >管理员</el-tag>
  50. </template>
  51. </el-table-column>
  52. <el-table-column property="phone" label="手机号" align="center"></el-table-column>
  53. <el-table-column property="gender" label="性别" align="center"></el-table-column>
  54. <!-- <el-table-column property="register_ip" label="IP" align="center" width="200"></el-table-column> -->
  55. <el-table-column property="createTime" label="创建时间" align="center" width="200"></el-table-column>
  56. <!-- <el-table-column property="comment" label="备注" align="center"></el-table-column> -->
  57. <!-- <el-table-column label="操作" align="center" fixed="right">
  58. <template slot-scope="scope">
  59. <el-tooltip content="编辑" placement="top" :hide-after="1000" :enterable="false" effect="light">
  60. <el-button type="text" icon="iconfont iconbianji" class="bbb"
  61. @click="toEdit(scope.row._id)"></el-button>
  62. </el-tooltip>
  63. <el-tooltip content="删除" placement="top" :hide-after="1000" :enterable="false" effect="light">
  64. <el-button type="text" icon="iconfont iconshanchu" class="bbb"
  65. @click="remove(scope.row._id)"></el-button>
  66. </el-tooltip>
  67. </template>
  68. </el-table-column> -->
  69. </el-table>
  70. <el-pagination :current-page="req.page" :page-sizes="[10, 20, 30, 50, 100]" :page-size="req.rows"
  71. layout="total, sizes, prev, pager, next, jumper" :total="tableTotal" @size-change="sizeChange"
  72. @current-change="currentChange"></el-pagination>
  73. </div>
  74. </div>
  75. </template>
  76. <script>
  77. const __name = 'uni-id-users';
  78. export default {
  79. data() {
  80. return {
  81. advancedSearch: false,
  82. genderOptions: [
  83. {
  84. value: '1',
  85. label: '男'
  86. },
  87. {
  88. value: '2',
  89. label: '女'
  90. }
  91. ],
  92. req: {
  93. page: 1,
  94. rows: 10,
  95. orderby: 'sort asc',
  96. username: '',
  97. gender: '',
  98. state: ''
  99. },
  100. tblHeight: 0,
  101. tableDatas: [],
  102. tableTotal: 0,
  103. selectDatas: []
  104. };
  105. },
  106. methods: {
  107. loadData() {
  108. //管理员账号
  109. this.$axios.get("/admin/list",
  110. {
  111. params:{
  112. 'curPage':this.req.page,
  113. 'pageSize':this.req.rows,
  114. },
  115. headers:{
  116. 'Mall-Token': uni.getStorageSync("token")
  117. }
  118. }).then(response => {
  119. let res = response
  120. console.log(res)
  121. if (res.success) {
  122. res.data.list.forEach((row, idx) => {
  123. row.imgs = [row.avatar];
  124. row.createTime = new Date(row.createTime).format();
  125. switch (row.gender) {
  126. case '1':
  127. row.gender = '男';
  128. break;
  129. case '2':
  130. row.gender = '女';
  131. break;
  132. }
  133. });
  134. this.tableDatas = res.data.list;
  135. this.tableTotal = res.data.totalCount;
  136. } else {
  137. }
  138. }).catch(res =>{
  139. });
  140. },
  141. toAdd() {
  142. uni.navigateTo({
  143. url: `/pages/system_set/account/account_add_edit?tab=添加账号`,
  144. events: {
  145. refreshData: () => {
  146. this.loadData();
  147. }
  148. }
  149. });
  150. },
  151. toEdit(id) {
  152. uni.navigateTo({
  153. url: `/pages/system_set/account/account_add_edit?id=${id}&tab=编辑账号`,
  154. events: {
  155. refreshData: () => {
  156. this.loadData();
  157. }
  158. }
  159. });
  160. },
  161. remove(id) {
  162. this.$confirm('此操作将永久删除该数据!', '提示', {
  163. confirmButtonText: '确定',
  164. cancelButtonText: '取消',
  165. type: 'warning'
  166. }).then(() => {
  167. this.$db[__name].remove(id).then(res => {
  168. if (res.code == 200) {
  169. this.loadData();
  170. }
  171. });
  172. });
  173. },
  174. selectionChange(datas) {
  175. this.selectDatas = datas;
  176. },
  177. removes() {
  178. if (this.selectDatas.length <= 0) {
  179. this.$message('请勾选需要删除的数据');
  180. return;
  181. }
  182. let ids = this.selectDatas.map(x => x._id);
  183. this.$confirm('此操作将永久删除勾选数据!', '提示', {
  184. confirmButtonText: '确定',
  185. cancelButtonText: '取消',
  186. type: 'warning'
  187. }).then(() => {
  188. this.$db[__name]
  189. .where({
  190. _id: this.$db.$cmd.in(ids)
  191. })
  192. .remove()
  193. .then(res => {
  194. if (res.code == 200) {
  195. this.loadData();
  196. }
  197. });
  198. });
  199. },
  200. sizeChange(size) {
  201. this.req.rows = size;
  202. this.loadData();
  203. },
  204. currentChange(current) {
  205. this.req.page = current;
  206. this.loadData();
  207. }
  208. },
  209. created() {
  210. this.loadData();
  211. },
  212. updated() {
  213. if (!this.tblHeight) {
  214. this.tblHeight = this.$refs.tbl.tblHeight;
  215. }
  216. }
  217. };
  218. </script>
  219. <style></style>