clouldSuggestion.vue 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. <template>
  2. <div class='m-container'>
  3. <h2>
  4. <div class="squrt"></div>团练宝反馈
  5. </h2>
  6. <div class="m-core">
  7. <save-form
  8. :inline="true"
  9. class="searchForm"
  10. save-key="clouldSuggestion"
  11. @submit="search"
  12. @reset="onReSet"
  13. :model.sync="searchForm"
  14. ref="searchForm"
  15. >
  16. <!-- 状态 指导老师 活动方案-->
  17. <el-form-item prop="search">
  18. <el-input
  19. v-model.trim="searchForm.search"
  20. clearable
  21. placeholder="姓名、编号、手机号"
  22. ></el-input>
  23. </el-form-item>
  24. <el-form-item prop="clientType">
  25. <el-select clearable v-model="searchForm.clientType" placeholder="请选择客户端">
  26. <el-option
  27. v-for="(item, index) in clientList"
  28. :key="index"
  29. :value="item.value"
  30. :label="item.label"
  31. ></el-option>
  32. </el-select>
  33. </el-form-item>
  34. <!-- statusList -->
  35. <el-form-item prop="timer">
  36. <el-date-picker
  37. v-model.trim="searchForm.timer"
  38. style="width: 400px"
  39. type="daterange"
  40. :picker-options="{
  41. firstDayOfWeek: 1,
  42. }"
  43. value-format="yyyy-MM-dd"
  44. range-separator="至"
  45. start-placeholder="开始日期"
  46. end-placeholder="结束日期"
  47. ></el-date-picker>
  48. </el-form-item>
  49. <el-form-item>
  50. <el-button native-type="submit" type="danger">搜索</el-button>
  51. <el-button native-type="reset" type="primary">重置</el-button>
  52. </el-form-item>
  53. </save-form>
  54. <div class="tableWrap">
  55. <el-table
  56. :data="dataList"
  57. :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
  58. >
  59. <el-table-column
  60. align="center"
  61. label="用户编号"
  62. prop="userId"
  63. ></el-table-column>
  64. <el-table-column
  65. align="center"
  66. label="用户姓名"
  67. prop="username"
  68. ></el-table-column>
  69. <el-table-column align="center" prop="mobileNo" label="邮箱或手机号">
  70. </el-table-column>
  71. <!-- <el-table-column align="center" prop="name" label="标题"> -->
  72. <!-- </el-table-column> -->
  73. <el-table-column align="center" label="内容" prop="content" width="400">
  74. <template slot-scope="scope">
  75. <tooltip :content="scope.row.content" />
  76. <!-- <el-popover placement="top-start"
  77. width="300"
  78. trigger="hover"
  79. :content="scope.row.content">
  80. <span slot="reference">{{ scope.row.content }}</span>
  81. </el-popover> -->
  82. <!-- <div :title="scope.row.content">{{ scope.row.content }}</div> -->
  83. </template>
  84. </el-table-column>
  85. <el-table-column align="center" label="客户端" prop="clientType">
  86. <template slot-scope="scope">
  87. <div>
  88. {{ scope.row.clientType | clientTypeFilter }}
  89. </div>
  90. </template>
  91. </el-table-column>
  92. <el-table-column align="center" label="反馈时间" prop="createTime">
  93. <template slot-scope="scope">
  94. {{ scope.row.createTime | dateForMinFormat }}
  95. </template>
  96. </el-table-column>
  97. <el-table-column align="center" prop="url" label="反馈图片">
  98. <template slot-scope="scope">
  99. <el-image
  100. v-if="scope.row.url"
  101. style="width: 60px; height: 60px"
  102. fit="cover"
  103. :src="scope.row.url.split(',')[0]"
  104. :previewSrcList="scope.row.url.split(',')"
  105. >
  106. </el-image>
  107. </template>
  108. </el-table-column>
  109. <!-- <el-table-column align="center" prop="createTime" label="反馈时间">
  110. </el-table-column> -->
  111. </el-table>
  112. <pagination
  113. sync
  114. :total.sync="pageInfo.total"
  115. save-key="clouldSuggestion"
  116. :page.sync="pageInfo.page"
  117. :limit.sync="pageInfo.limit"
  118. :page-sizes="pageInfo.page_size"
  119. @pagination="getList"
  120. />
  121. </div>
  122. </div>
  123. </div>
  124. </template>
  125. <script>
  126. import pagination from "@/components/Pagination/index";
  127. import { sysSuggestionList } from "@/api/appTenant";
  128. import Tooltip from "@/components/Tooltip/index";
  129. import { clientList } from "@/utils/searchArray";
  130. import { getTimes } from "@/utils";
  131. export default {
  132. components: { pagination, Tooltip },
  133. name: "chargesList",
  134. data() {
  135. return {
  136. id: null,
  137. dataList: [],
  138. clientList,
  139. searchForm: {
  140. search: "",
  141. timer: [],
  142. clientType: "",
  143. },
  144. pageInfo: {
  145. // 分页规则
  146. limit: 10, // 限制显示条数
  147. page: 1, // 当前页
  148. total: 0, // 总条数
  149. page_size: [10, 20, 40, 50], // 选择限制显示条数
  150. },
  151. };
  152. },
  153. activated() {
  154. this.getList();
  155. },
  156. mounted() {
  157. this.getList();
  158. },
  159. methods: {
  160. getList() {
  161. let { timer, ...rest } = this.searchForm;
  162. let params = {
  163. rows: this.pageInfo.limit,
  164. page: this.pageInfo.page,
  165. type: "SMART_PRACTICE",
  166. ...getTimes(timer, ["startTime", "endTime"]),
  167. ...rest,
  168. };
  169. sysSuggestionList(params).then((res) => {
  170. if (res.code == 200) {
  171. this.dataList = res.data.rows;
  172. this.pageInfo.total = res.data.total;
  173. }
  174. });
  175. },
  176. onReSet() {
  177. this.$refs["searchForm"].resetFields();
  178. this.search();
  179. },
  180. search() {
  181. this.pageInfo.page = 1;
  182. this.getList();
  183. },
  184. },
  185. };
  186. </script>
  187. <style lang="scss" scoped>
  188. /deep/.el-table .cell {
  189. display: -webkit-box;
  190. overflow: hidden;
  191. text-overflow: ellipsis;
  192. -webkit-line-clamp: 3;
  193. -webkit-box-orient: vertical;
  194. }
  195. /deep/.el-date-editor.el-input {
  196. width: 100% !important;
  197. }
  198. /deep/.el-select {
  199. width: 98% !important;
  200. }
  201. /deep/.el-table {
  202. display: inline-block;
  203. }
  204. </style>