ba154de53a655e17c3081bec651d4bce6ce7ded8.svn-base 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. <template>
  2. <div style="height:100%;">
  3. <el-card class="box-card" style="height:100%;">
  4. <div class="search_wrapper">
  5. <el-form :inline="true" :model="problemSearch" class="demo-form-inline">
  6. <el-form-item label="问题类别">
  7. <el-select v-model="problemSearch.inspPblmName" clearable style="width: 100px">
  8. <el-option :label="item.pblmType" :value="item.pblmType" v-for="(item,index) in problemType" :key="index"></el-option>
  9. </el-select>
  10. </el-form-item>
  11. <el-form-item label="问题状态">
  12. <el-select v-model="problemSearch.reviConc" clearable style="width: 100px">
  13. <el-option :label="item.name" :value="item.value" v-for="(item,index) in problemStatus" :key="index"></el-option>
  14. </el-select>
  15. </el-form-item>
  16. <el-form-item label="严重程度">
  17. <el-select v-model="problemSearch.inspPblmCate" clearable style="width: 100px">
  18. <el-option :label="item.name" :value="item.value" v-for="(item,index) in severity" :key="index"></el-option>
  19. </el-select>
  20. </el-form-item>
  21. <el-form-item label="发现时间">
  22. <el-date-picker
  23. v-model="findTime"
  24. type="daterange"
  25. value-format="yyyy-MM-dd"
  26. range-separator="至"
  27. start-placeholder="开始日期"
  28. end-placeholder="结束日期">
  29. </el-date-picker>
  30. </el-form-item>
  31. </el-form>
  32. <div>
  33. <el-button type="primary" @click="search">查询</el-button>
  34. <el-button type="primary" @click="toAddProblem" v-if="ownPriv('manage') && showAddBtn">新增问题</el-button>
  35. </div>
  36. </div>
  37. <el-table
  38. :data="tableData"
  39. border
  40. :height="tableHeight"
  41. v-loading="loading"
  42. style="width: 100%">
  43. <el-table-column align="center" type="index" label="序号" min-width="25">
  44. <template slot-scope="scope">{{ (pageIndex - 1) * pageSize + (scope.$index + 1) }}
  45. </template>
  46. </el-table-column>
  47. <el-table-column
  48. header-align="center"
  49. align="center"
  50. min-width="60"
  51. prop="province"
  52. label="省" v-if="isXj"
  53. show-overflow-tooltip
  54. ></el-table-column>
  55. <el-table-column
  56. header-align="center"
  57. align="center"
  58. min-width="60"
  59. prop="city"
  60. :label="ownAdName"
  61. show-overflow-tooltip
  62. ></el-table-column>
  63. <el-table-column
  64. header-align="center"
  65. align="center"
  66. min-width="60"
  67. prop="country"
  68. label="县"
  69. v-if="isXj"
  70. show-overflow-tooltip
  71. ></el-table-column>
  72. <el-table-column
  73. header-align="center"
  74. align="center"
  75. min-width="110"
  76. prop="nm"
  77. label="督查对象名称"
  78. show-overflow-tooltip
  79. ></el-table-column>
  80. <el-table-column
  81. header-align="center"
  82. align="center"
  83. min-width="140"
  84. prop="inspPblmName"
  85. label="督查问题类别"
  86. show-overflow-tooltip
  87. ></el-table-column>
  88. <el-table-column
  89. header-align="center"
  90. align="center"
  91. min-width="100"
  92. prop="checkPoint"
  93. label="检查项目"
  94. show-overflow-tooltip>
  95. </el-table-column>
  96. <el-table-column
  97. header-align="center"
  98. align="center"
  99. min-width="100"
  100. prop="pblmDescBz"
  101. label="问题描述"
  102. show-overflow-tooltip>
  103. </el-table-column>
  104. <el-table-column
  105. header-align="center"
  106. align="center"
  107. min-width="70"
  108. prop="persName"
  109. label="上报人"
  110. ></el-table-column>
  111. <el-table-column
  112. header-align="center"
  113. align="center"
  114. min-width="80"
  115. show-overflow-tooltip
  116. prop="orgNm"
  117. label="所在组"
  118. ></el-table-column>
  119. <el-table-column
  120. prop="collTime"
  121. label="上报时间"
  122. :formatter="timestampToTime"
  123. sortable
  124. align="center"
  125. min-width="110"
  126. show-overflow-tooltip
  127. ></el-table-column>
  128. <el-table-column
  129. header-align="center"
  130. align="center"
  131. min-width="150"
  132. prop="hasVedio"
  133. label="是否包含多媒体文件"
  134. >
  135. <template slot-scope="scope">
  136. <p v-if="scope.row.hasVedio == 1">是</p>
  137. <p v-if="scope.row.hasVedio == 0">否</p>
  138. </template>
  139. </el-table-column>
  140. </el-table>
  141. <el-pagination :pager-count="5" :current-page="pageIndex"
  142. :page-size="pageSize" layout="total, prev, pager, next" :total="total"
  143. @current-change="pageIndexChange" @size-change="handleSizeChange"
  144. ></el-pagination>
  145. </el-card>
  146. </div>
  147. </template>
  148. <script>
  149. import request from '../../../utils/gw_ajax_request.js'
  150. import {findProblemPageInfo} from "@api/duChaAPI.js";
  151. export default {
  152. props: ['unitProblemInfo','currentRow','villType','unitLevel','showAddBtn','canEdit','canReview','tabType'],
  153. data(){
  154. return{
  155. tableHeight: window.innerHeight - 280,
  156. tableData:[],
  157. problemSearch:{
  158. inspPblmName: '',
  159. inspPblmCate: '',
  160. reviConc: '',
  161. regid: '',
  162. regId: '',
  163. pType: '',
  164. pageSize: '10',
  165. pageNum: 1
  166. },
  167. pageIndex: 1,
  168. pageSize: 20,
  169. total: 0,
  170. loading: false,
  171. }
  172. },
  173. computed: {
  174. persId() {
  175. return localStorage.getItem("userid")
  176. ? localStorage.getItem("userid")
  177. : "1098101939614724096";
  178. },
  179. formatDateTime(){
  180. return formatDateTime2
  181. }
  182. },
  183. components: {
  184. },
  185. mounted(){
  186. this.search()
  187. },
  188. methods:{
  189. search() {
  190. this.loading = true;
  191. var _self = this;
  192. findProblemPageInfo(data).then(res => {
  193. _self.loading = false;
  194. if (res.success) {
  195. _self.tableData = res.data.list;
  196. _self.total = res.data.total;
  197. } else {
  198. _self.failInfo();
  199. }
  200. });
  201. },
  202. timestampToTime(row, column) {
  203. var date = new Date(row.collTime);
  204. var Y = date.getFullYear() + "-";
  205. var M =
  206. (date.getMonth() + 1 < 10
  207. ? "0" + (date.getMonth() + 1)
  208. : date.getMonth() + 1) + "-";
  209. var D =
  210. (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
  211. var h =
  212. (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":";
  213. var m =
  214. date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
  215. return Y + M + D;
  216. },
  217. pageIndexChange(val) {
  218. this.pageIndex = val;
  219. this.searchList();
  220. },
  221. handleSizeChange(val) {
  222. this.pageSize = val;
  223. this.searchList();
  224. }
  225. },
  226. watch:{
  227. tabType(val){
  228. if(val){
  229. this.searchList();
  230. }
  231. }
  232. }
  233. }
  234. </script>
  235. <style lang="scss">
  236. .search_wrapper{
  237. display: flex;
  238. justify-content: space-between;
  239. div:last-child{
  240. min-width: 152px !important;
  241. }
  242. }
  243. .slide-line{
  244. width: 96%;
  245. margin-left: 3%;
  246. height: 1px;
  247. margin-bottom: 10px;
  248. border-bottom: dashed 1px #DCDFE6;
  249. }
  250. .detail_dialog .el-dialog__body{
  251. padding: 0 20px 30px;
  252. }
  253. </style>