trainingPerson-list.vue 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <template>
  2. <el-dialog
  3. :visible.sync="showDialog"
  4. :title="title"
  5. :modal-append-to-body="false"
  6. style="text-align: left;"
  7. @close="closeDialog"
  8. :close-on-click-modal="false"
  9. width="900px"
  10. >
  11. <div class="user-panel" v-loading="loading">
  12. <el-form ref="queryForm" :model="queryModel" inline class="demo-form-inline">
  13. <el-form-item label="姓名" prop="name">
  14. <el-input type="text" size="mini" v-model="queryModel.name"></el-input>
  15. </el-form-item>
  16. <el-form-item label="联系电话" prop="phone">
  17. <el-input type="text" size="mini" v-model="queryModel.phone"></el-input>
  18. </el-form-item>
  19. <el-form-item>
  20. <el-button
  21. type="primary"
  22. size="mini"
  23. icon="ios-search"
  24. @click="changePage(1)"
  25. :loading="loading"
  26. >查询</el-button>&nbsp;
  27. <el-button
  28. type="info"
  29. size="mini"
  30. style="margin-left: 8px"
  31. @click="handleReset('queryForm')"
  32. >重置</el-button>&nbsp;
  33. </el-form-item>
  34. </el-form>
  35. <el-divider></el-divider>
  36. <el-table
  37. :data="tableData"
  38. style="min-height:400px;"
  39. v-loading="loading"
  40. stripe
  41. @sort-change="sortChange"
  42. @selection-change="handleSelectionChange"
  43. >
  44. <!-- <el-table-column type="selection" width="55"></el-table-column> -->
  45. <el-table-column prop="workPersonName" label="姓名"></el-table-column>
  46. <el-table-column prop="phone" label="联系电话"></el-table-column>
  47. <el-table-column prop="gender" label="性别">
  48. <template slot-scope="{row}">
  49. <span v-if="row.gender=='0'">男</span>
  50. <span v-else-if="row.gender=='1'">女</span>
  51. </template>
  52. </el-table-column>
  53. <el-table-column prop="age" label="年龄"></el-table-column>
  54. <el-table-column prop="createTime" label="报名时间"></el-table-column>
  55. <!-- <el-table-column label="操作" width="250">
  56. <template slot-scope="{row}">
  57. <el-button size="mini" type="danger" @click="handleDelete(row)">删除</el-button>
  58. </template>
  59. </el-table-column> -->
  60. </el-table>
  61. <el-pagination
  62. style="text-align: center;"
  63. :current-page.sync="pageIndex"
  64. :total="totalElements"
  65. :page-sizes="pageSizeList"
  66. @current-change="changePage"
  67. @size-change="pageSizeChange"
  68. layout="total, sizes, prev, pager, next, jumper"
  69. ></el-pagination>
  70. </div>
  71. <span slot="footer" class="dialog-footer">
  72. <el-button @click="closeDialog">取 消</el-button>
  73. </span>
  74. </el-dialog>
  75. </template>
  76. <script>
  77. import trainingPersonApi from "@/api/base/trainingPerson";
  78. export default {
  79. props: ["businessKey", "title"],
  80. data() {
  81. return {
  82. submitting: false,
  83. queryModel: {
  84. name:"",
  85. phone:"",
  86. },
  87. showDialog: true,
  88. loading: false,
  89. tableData: [],
  90. pageIndex: 1,
  91. pageSize: 10,
  92. totalPages: 0,
  93. totalElements: 0,
  94. field: "",
  95. direction: "",
  96. pageSizeList: [10, 20, 30],
  97. multipleSelection: [],
  98. };
  99. },
  100. created() {
  101. },
  102. methods: {
  103. closeDialog() {
  104. this.$emit("close", false);
  105. },
  106. changePage(pageIndex) {
  107. var self = this;
  108. console.log(pageIndex);
  109. self.pageIndex = pageIndex;
  110. var formData = new FormData();
  111. formData.append("pageIndex", self.pageIndex);
  112. formData.append("pageSize", self.pageSize);
  113. formData.append("trainingId", self.businessKey);
  114. formData.append("name", self.queryModel.name);
  115. formData.append("phone", self.queryModel.phone);
  116. self.loading = true;
  117. trainingPersonApi.pageList(formData).then(function(response) {
  118. self.loading = false;
  119. var jsonData = response.data;
  120. if(jsonData.result){
  121. var pageInfo = jsonData.data;
  122. self.tableData = pageInfo.data;
  123. self.totalPages = pageInfo.totalPages;
  124. self.totalElements = pageInfo.recordsTotal;
  125. }
  126. else {
  127. self.$message({
  128. message: jsonData.message + "",
  129. type: "warning"
  130. });
  131. }
  132. }).catch((error)=>{
  133. self.loading = false;
  134. });
  135. },
  136. handleReset(name) {
  137. this.$refs[name].resetFields();
  138. },
  139. pageSizeChange(pageSize) {
  140. this.pageSize = pageSize;
  141. },
  142. sortChange(data) {
  143. this.field = data.column.field;
  144. this.direction = data.order == "ascending" ? "asc" : "desc";
  145. this.changePage(this.pageIndex);
  146. },
  147. handleSelectionChange(val) {
  148. this.multipleSelection = val;
  149. },
  150. },
  151. async mounted() {
  152. var self = this;
  153. self.changePage(1);
  154. },
  155. components: {
  156. },
  157. };
  158. </script>
  159. <style scoped>
  160. .user-panel {
  161. margin: 10px auto;
  162. }
  163. </style>