后端

sign.vue 5.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. <template>
  2. <div class="mod-config">
  3. <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
  4. <el-form-item>
  5. <el-button @click="exportList()">导出名单</el-button>
  6. </el-form-item>
  7. <el-form-item>
  8. <el-input v-model="dataForm.key" placeholder="请输入参数人员/负责人" clearable></el-input>
  9. </el-form-item>
  10. <el-form-item>
  11. <el-button @click="getDataList()">查询</el-button>
  12. </el-form-item>
  13. </el-form>
  14. <el-table
  15. :data="dataList"
  16. border
  17. v-loading="dataListLoading"
  18. @selection-change="selectionChangeHandle"
  19. style="width: 100%;"
  20. >
  21. <el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
  22. <el-table-column prop="id" header-align="center" align="center" label="id"></el-table-column>
  23. <el-table-column prop="truename" header-align="center" align="center" label="姓名"></el-table-column>
  24. <el-table-column prop="organization" header-align="center" align="center" label="所属机构"></el-table-column>
  25. <el-table-column prop="position" header-align="center" align="center" label="职位"></el-table-column>
  26. <el-table-column prop="phone" header-align="center" align="center" label="联系电话"></el-table-column>
  27. <el-table-column prop="typeAttenders" header-align="center" align="center" label="用户参会类型"></el-table-column>
  28. <el-table-column prop="isPay" header-align="center" align="center" label="是否已缴费">
  29. <template slot-scope="scope">
  30. <span v-if="scope.row.isPay === 1"></span>
  31. <span v-else></span>
  32. </template>
  33. </el-table-column>
  34. <el-table-column prop="status" header-align="center" align="center" label="签到状态">
  35. <template slot-scope="scope">
  36. <span v-if="scope.row.status === 1">已签到</span>
  37. <span v-else></span>
  38. </template>
  39. </el-table-column>
  40. <el-table-column prop="badge" header-align="center" align="center" label="胸卡"></el-table-column>
  41. <el-table-column prop="servername" header-align="center" align="center" label="负责人"></el-table-column>
  42. <el-table-column prop="lastTime" header-align="center" align="center" label="最后签到时间"></el-table-column>
  43. <el-table-column fixed="right" header-align="center" align="center" width="100" label="操作">
  44. <template slot-scope="scope">
  45. <el-button type="text" size="small" @click="deleteHandle(scope.row.id)">删除</el-button>
  46. </template>
  47. </el-table-column>
  48. </el-table>
  49. <el-pagination
  50. @size-change="sizeChangeHandle"
  51. @current-change="currentChangeHandle"
  52. :current-page="pageIndex"
  53. :page-sizes="[10, 20, 50, 100]"
  54. :page-size="pageSize"
  55. :total="totalPage"
  56. layout="total, sizes, prev, pager, next, jumper"
  57. ></el-pagination>
  58. </div>
  59. </template>
  60. <script>
  61. export default {
  62. data() {
  63. return {
  64. dataForm: {
  65. key: ""
  66. },
  67. dataList: [],
  68. pageIndex: 1,
  69. pageSize: 10,
  70. totalPage: 0,
  71. dataListLoading: false,
  72. dataListSelections: [],
  73. meetingId: 0
  74. };
  75. },
  76. created() {
  77. this.meetingId = this.$route.params.id;
  78. },
  79. activated() {
  80. this.getDataList();
  81. },
  82. methods: {
  83. // 导出数据表
  84. exportList() {
  85. window.open(
  86. this.$http.adornUrl(
  87. `/admin/signinfo/downloadxls?token=${this.$cookie.get(
  88. "token"
  89. )}&meetingId=${this.meetingId}`
  90. )
  91. );
  92. },
  93. // 获取数据列表
  94. getDataList() {
  95. this.dataListLoading = true;
  96. this.$http({
  97. url: this.$http.adornUrl("/admin/signinfo/list"),
  98. method: "get",
  99. params: this.$http.adornParams({
  100. meetingId: this.meetingId,
  101. page: this.pageIndex,
  102. limit: this.pageSize,
  103. key: this.dataForm.key
  104. })
  105. }).then(({ data }) => {
  106. if (data && data.code === 0) {
  107. this.dataList = data.page.list;
  108. this.totalPage = data.page.totalCount;
  109. } else {
  110. this.dataList = [];
  111. this.totalPage = 0;
  112. }
  113. this.dataListLoading = false;
  114. });
  115. },
  116. // 每页数
  117. sizeChangeHandle(val) {
  118. this.pageSize = val;
  119. this.pageIndex = 1;
  120. this.getDataList();
  121. },
  122. // 当前页
  123. currentChangeHandle(val) {
  124. this.pageIndex = val;
  125. this.getDataList();
  126. },
  127. // 多选
  128. selectionChangeHandle(val) {
  129. this.dataListSelections = val;
  130. },
  131. // 删除
  132. deleteHandle(id) {
  133. var ids = id
  134. ? [id]
  135. : this.dataListSelections.map(item => {
  136. return item.id;
  137. });
  138. this.$confirm(
  139. `确定对[id=${ids.join(",")}]进行[${id ? "删除" : "批量删除"}]操作?`,
  140. "提示",
  141. {
  142. confirmButtonText: "确定",
  143. cancelButtonText: "取消",
  144. type: "warning"
  145. }
  146. ).then(() => {
  147. this.$http({
  148. url: this.$http.adornUrl("/admin/signinfo/delete"),
  149. method: "post",
  150. data: this.$http.adornData(ids, false)
  151. }).then(({ data }) => {
  152. if (data && data.code === 0) {
  153. this.$message({
  154. message: "操作成功",
  155. type: "success",
  156. duration: 1500,
  157. onClose: () => {
  158. this.getDataList();
  159. }
  160. });
  161. } else {
  162. this.$message.error(data.msg);
  163. }
  164. });
  165. });
  166. }
  167. }
  168. };
  169. </script>