index.vue 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <template>
  2. <div class="app-container">
  3. <!-- 搜索区域 -->
  4. <div class="filter-container">
  5. <div class="filter-control">
  6. <span>机构名称:</span>
  7. <el-input v-model="listQuery.clubName" placeholder="机构名称" @keyup.enter.native="getList" />
  8. </div>
  9. <div class="filter-control">
  10. <span>手机号:</span>
  11. <el-input v-model="listQuery.mobile" placeholder="手机号" @keyup.enter.native="handleFilter" />
  12. </div>
  13. <div class="filter-control">
  14. <span>处理状态:</span>
  15. <el-select v-model="listQuery.handleStatus" placeholder="处理状态" clearable @change="getList">
  16. <el-option label="全部" value="" />
  17. <el-option label="已处理" :value="1" />
  18. <el-option label="未处理" :value="0" />
  19. </el-select>
  20. </div>
  21. <div class="filter-control">
  22. <permission-button type="primary" @click="getList">查询</permission-button>
  23. </div>
  24. </div>
  25. <!-- 搜索区域END -->
  26. <!-- 表格区域 -->
  27. <el-table
  28. v-loading="listLoading"
  29. :data="list"
  30. style="width: 100%"
  31. border
  32. fit
  33. highlight-current-row
  34. cell-class-name="table-cell"
  35. header-row-class-name="tableHeader"
  36. >
  37. <el-table-column type="expand" width="50">
  38. <template slot-scope="{ row }">
  39. <el-form label-position="left" class="table-expand" label-width="110px">
  40. <el-form-item label="机构名称:">
  41. <span>{{ row.clubName }}</span>
  42. </el-form-item>
  43. <el-form-item label="手机号:">
  44. <span>{{ row.mobile }}</span>
  45. </el-form-item>
  46. <el-form-item label="提交时间:" width="160px">
  47. <span>{{ row.commitTime | formatTime }}</span>
  48. </el-form-item>
  49. <el-form-item label="处理状态:">
  50. <span v-if="row.handleStatus === 0" class="status warning">未处理</span>
  51. <span v-if="row.handleStatus === 1" class="status success">已处理</span>
  52. </el-form-item>
  53. <el-form-item label="反馈内容:">
  54. <span style="overflow-wrap: anywhere; text-align: justify">{{ row.content }}</span>
  55. </el-form-item>
  56. <el-form-item label="处理结果:">
  57. <span>{{ row.handleResult }}</span>
  58. </el-form-item>
  59. </el-form>
  60. </template>
  61. </el-table-column>
  62. <el-table-column label="序号" :index="indexMethod" type="index" width="80" align="center" />
  63. <el-table-column label="机构名称" prop="clubName" align="center" />
  64. <el-table-column label="手机号" prop="mobile" width="120" align="center" />
  65. <el-table-column label="反馈内容" prop="content" align="center">
  66. <template slot-scope="{ row }">
  67. <span class="content">{{ row.content }}</span>
  68. </template>
  69. </el-table-column>
  70. <el-table-column label="提交时间" width="160px" align="center">
  71. <template slot-scope="{ row }">
  72. <span v-if="row.auditStatus !== 2">{{ row.commitTime | formatTime }}</span>
  73. <span v-else>—</span>
  74. </template>
  75. </el-table-column>
  76. <el-table-column label="处理状态" width="100px" align="center">
  77. <template slot-scope="{ row }">
  78. <span v-if="row.handleStatus === 0" class="status warning">未处理</span>
  79. <span v-if="row.handleStatus === 1" class="status success">已处理</span>
  80. </template>
  81. </el-table-column>
  82. <el-table-column label="处理结果" prop="handleResult" align="center">
  83. <template slot-scope="{ row }">
  84. <span v-if="row.handleStatus === 1" class="content">{{ row.handleResult }}</span>
  85. <span v-else>—</span>
  86. </template>
  87. </el-table-column>
  88. <el-table-column label="处理时间" width="160px" align="center">
  89. <template slot-scope="{ row }">
  90. <span v-if="row.handleStatus === 1">{{ row.handleTime | formatTime }}</span>
  91. <span v-else>—</span>
  92. </template>
  93. </el-table-column>
  94. <el-table-column label="操作" width="120px" align="center">
  95. <template slot-scope="{ row }">
  96. <permission-button
  97. type="primary"
  98. size="mini"
  99. style="margin-right: 12px"
  100. @click="navigationTo(`/feedback/detail?feedbackId=${row.feedbackId}`)"
  101. >处理</permission-button>
  102. </template>
  103. </el-table-column>
  104. </el-table>
  105. <!-- 表格区域END -->
  106. <!-- 页码 -->
  107. <pagination
  108. :total="total"
  109. :page.sync="listQuery.pageNum"
  110. :limit.sync="listQuery.pageSize"
  111. @pagination="getList(listQuery)"
  112. />
  113. </div>
  114. </template>
  115. <script>
  116. import { mapGetters } from 'vuex'
  117. import { getFeedbackList } from '@/api/auth'
  118. export default {
  119. name: 'FeedbackList',
  120. data() {
  121. return {
  122. listLoading: false,
  123. listQuery: {
  124. authUserId: '',
  125. clubName: '',
  126. handleStatus: '',
  127. mobile: '',
  128. pageNum: 1, // 页码
  129. pageSize: 10 // 分页大小
  130. },
  131. total: 0,
  132. list: []
  133. }
  134. },
  135. computed: {
  136. ...mapGetters(['authUserId', 'userIdentity'])
  137. },
  138. created() {
  139. this.getList()
  140. },
  141. activated() {
  142. this.getList()
  143. },
  144. methods: {
  145. // 获取列表数据
  146. getList() {
  147. this.listQuery.authUserId = this.authUserId
  148. console.log(this.listQuery)
  149. getFeedbackList(this.listQuery)
  150. .then((res) => {
  151. console.log(res)
  152. if (res.code !== 0) return
  153. this.list = res.data.list
  154. this.total = res.data.total
  155. })
  156. .catch((err) => {
  157. console.log(err)
  158. })
  159. },
  160. // 初始化预览图片列表
  161. initPreviewList(list) {
  162. list.forEach((item) => this.srcList.push(item.articleCover))
  163. },
  164. indexMethod(index) {
  165. return index + this.listQuery.pageSize * (this.listQuery.pageNum - 1) + 1
  166. }
  167. }
  168. }
  169. </script>
  170. <style lang="scss" scoped>
  171. .content {
  172. display: block;
  173. overflow: hidden !important;
  174. white-space: nowrap;
  175. text-overflow: ellipsis;
  176. }
  177. .el-table .cell {
  178. overflow: visible;
  179. }
  180. .el-badge {
  181. margin: 0 6px;
  182. }
  183. </style>