list.vue 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335
  1. <template>
  2. <div id="user">
  3. <el-main>
  4. <div style="margin-bottom: 10px">
  5. <el-button size="medium" icon="el-icon-back" type="text">返回</el-button>
  6. <span style="margin-left: 20px; font-size: 18px">用户列表</span>
  7. </div>
  8. <el-button size="medium" icon="el-icon-search" style="margin-bottom: 15px" @click="search(searchFormData)">
  9. 查询
  10. </el-button>
  11. <el-button size="medium" icon="el-icon-plus" @click="showAdd" style="margin-left: 0">新增</el-button>
  12. <div style="padding: 10px;background-color: white">
  13. <el-form :inline="true" :model="searchFormData" style="background-color: white;">
  14. <el-form-item label="姓名">
  15. <el-input placeholder="姓名" size="mini" v-model="searchFormData.realname"></el-input>
  16. </el-form-item>
  17. <el-form-item label="账号">
  18. <el-input placeholder="账号" size="mini" v-model="searchFormData.account"></el-input>
  19. </el-form-item>
  20. <el-form-item label="手机号">
  21. <el-input placeholder="手机号" size="mini" v-model="searchFormData.phone"></el-input>
  22. </el-form-item>
  23. <el-form-item label="角色">
  24. <el-input placeholder="角色" size="mini" v-model="searchFormData.roleFlag"></el-input>
  25. </el-form-item>
  26. <el-form-item label="运营商编号">
  27. <el-input placeholder="运营商编号" size="mini" v-model="searchFormData.operatorNumber"></el-input>
  28. </el-form-item>
  29. <el-dialog title="用户" :visible.sync="dialogFormVisible">
  30. <el-form label-position="left" :model="formData">
  31. <el-form-item label="姓名">
  32. <el-input v-model="formData.realname"></el-input>
  33. </el-form-item>
  34. <el-form-item label="账号">
  35. <el-input v-model="formData.account"></el-input>
  36. </el-form-item>
  37. <el-form-item label="手机号">
  38. <el-input v-model="formData.phone"></el-input>
  39. </el-form-item>
  40. <el-form-item label="密码">
  41. <el-input v-model="formData.password"></el-input>
  42. </el-form-item>
  43. <el-form-item label="绑定角色">
  44. <el-input v-model="formData.roleFlag"></el-input>
  45. </el-form-item>
  46. <el-form-item label="绑定运营商">
  47. <el-input v-model="formData.operatorNumber"></el-input>
  48. </el-form-item>
  49. </el-form>
  50. <div slot="footer" class="dialog-footer">
  51. <el-button @click="cancel()">取 消</el-button>
  52. <el-button type="primary" @click="addOrEditMehtond()">确 定</el-button>
  53. </div>
  54. </el-dialog>
  55. </el-form>
  56. <el-table :data="tableData">
  57. <el-table-column type="selection"></el-table-column>
  58. <el-table-column prop="realname" label="姓名"></el-table-column>
  59. <el-table-column prop="account" label="账号"></el-table-column>
  60. <el-table-column prop="phone" label="手机号"></el-table-column>
  61. <el-table-column prop="password" label="密码"></el-table-column>
  62. <el-table-column prop="roleFlag" label="角色"></el-table-column>
  63. <el-table-column prop="operatorNumber" label="运营商编号"></el-table-column>
  64. <el-table-column label="操作">
  65. <template slot-scope="scope">
  66. <el-button type="text" size="medium" @click="showEdit(scope.row)">编辑</el-button>
  67. <el-button type="text" size="medium" @click="del(scope.row)" style="color: #c01920">删除</el-button>
  68. </template>
  69. </el-table-column>
  70. </el-table>
  71. <el-pagination
  72. style="margin-top: 15px;text-align: center"
  73. background
  74. layout="prev, pager, next"
  75. :page-size="pager.pageSize"
  76. :current-page="pager.pageIndex"
  77. :total="pager.itemCount"
  78. @current-change="handleCurrentChange"
  79. >
  80. </el-pagination>
  81. </div>
  82. </el-main>
  83. </div>
  84. </template>
  85. <script>
  86. export default {
  87. name: 'user',
  88. data() {
  89. return {
  90. api: {
  91. list: this.$api.user.list,
  92. delete: this.$api.user.delete,
  93. add: this.$api.user.add,
  94. update: this.$api.user.update,
  95. },
  96. addOrEdit: 1,
  97. dialogFormVisible: false,
  98. pager: {
  99. pageSize: 2,
  100. pageIndex: 1,
  101. itemCount: 0,
  102. },
  103. tableData:
  104. [{
  105. realname: '',
  106. account: '',
  107. phone: '',
  108. password: '',
  109. roleFlag: '',
  110. operatorNumber: '',
  111. }],
  112. formData: {
  113. realname: '',
  114. account: '',
  115. phone: '',
  116. password: '',
  117. roleFlag: '',
  118. operatorNumber: '',
  119. },
  120. searchFormData:
  121. {
  122. realname: '',
  123. account: '',
  124. phone: '',
  125. roleFlag: '',
  126. operatorNumber: '',
  127. }
  128. }
  129. },
  130. created: function () {
  131. this.loadData();
  132. },
  133. methods: {
  134. //切换页码
  135. handleCurrentChange(index) {
  136. this.loadData(index)
  137. },
  138. loadData(index) {
  139. const vm = this;
  140. vm.$http.get(vm.api.list, {
  141. params: {
  142. pageSize: 3,
  143. pageIndex: index ? index : 1,
  144. realname: this.searchFormData.realname,
  145. account: this.searchFormData.account,
  146. phone: this.searchFormData.phone,
  147. roleFlag: this.searchFormData.roleFlag,
  148. operatorNumber: this.searchFormData.operatorNumber,
  149. }
  150. })
  151. .then((response) => {
  152. // vm.paper = response.data.data.paper;
  153. //console.log(response.data.data);
  154. vm.pager = response.data.data.pager
  155. vm.tableData = response.data.data.users;
  156. })
  157. },
  158. search() {
  159. //console.log(this.searchFormData)
  160. this.loadData();
  161. },
  162. showAdd() {
  163. this.dialogFormVisible = true;
  164. this.formData.realname = '';
  165. this.formData.account = '';
  166. this.formData.roleFlag = '';
  167. this.formData.operatorNumber = '';
  168. this.formData.phone = '';
  169. this.formData.password = '';
  170. this.addOrEdit = 1
  171. },
  172. showEdit(row) {
  173. console.log(row)
  174. this.dialogFormVisible = true;
  175. this.formData = row
  176. this.addOrEdit = 2
  177. },
  178. addOrEditMehtond() {
  179. const vm = this;
  180. if (this.addOrEdit == 2) {
  181. vm.$http.get(vm.api.update, {
  182. params: {
  183. code: this.formData.code,
  184. realname: this.formData.realname,
  185. account: this.formData.account,
  186. roleFlag: this.formData.roleFlag,
  187. operatorNumber: this.formData.operatorNumber,
  188. phone: this.formData.phone,
  189. password: this.formData.password,
  190. }
  191. })
  192. .then((response) => {
  193. console.log(response)
  194. if (response.data.status == 200) {
  195. this.$message({
  196. type: 'success',
  197. showClose: true,
  198. message: response.data.desc
  199. })
  200. }
  201. this.dialogFormVisible = false;
  202. this.loadData();
  203. })
  204. .catch(() => {
  205. });
  206. }
  207. if (this.addOrEdit == 1) {
  208. vm.$http.get(vm.api.add, {
  209. params: {
  210. realname: this.formData.realname,
  211. account: this.formData.account,
  212. roleFlag: this.formData.roleFlag,
  213. operatorNumber: this.formData.operatorNumber,
  214. phone: this.formData.phone,
  215. password: this.formData.password,
  216. }
  217. })
  218. .then((response) => {
  219. if (response.data.status == 200) {
  220. this.dialogFormVisible = false;
  221. this.$message({
  222. type: 'success',
  223. showClose: true,
  224. message: response.data.desc
  225. })
  226. this.loadData();
  227. }
  228. })
  229. }
  230. },
  231. del(row) {
  232. const vm = this;
  233. this.$confirm('确认删除', '提示', {
  234. type: 'warning'
  235. }).then(() => {
  236. vm.$http.get(vm.api.delete, {
  237. params: {
  238. code: row.code,
  239. }
  240. })
  241. .then((response) => {
  242. console.log(response)
  243. if (response.data.status == 200) {
  244. this.$message({
  245. type: 'success',
  246. showClose: true,
  247. message: response.data.desc
  248. })
  249. }
  250. this.loadData();
  251. })
  252. })
  253. .catch(() => {
  254. this.$message({
  255. type: 'info',
  256. showClose: true,
  257. message: '取消删除'
  258. })
  259. });
  260. },
  261. cancel() {
  262. this.$message({
  263. message: '操作取消',
  264. showClose: true,
  265. type: 'info'
  266. });
  267. this.dialogFormVisible = false;
  268. },
  269. }
  270. }
  271. </script>
  272. <style scoped>
  273. .el-form-item {
  274. margin-right: 10px;
  275. margin-left: 10px;
  276. margin-bottom: 10px;
  277. margin-top: 0px;
  278. }
  279. </style>