91f437063c87ec896e4e686bcc2d8941637cdd7f.svn-base 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. <template>
  2. <div>
  3. <el-dialog width="70%" append-to-body :modal="false" :title="title+'问题列表'" :visible.sync="dialogVisible" @close="dialogClose">
  4. <div style="text-align: left;width: 100%;height:100%;">
  5. <el-form ref="form" :inline="true" label-width="84px" style="display: flex;">
  6. <el-form-item label="问题名称">
  7. <el-input v-model="pblmNm" clearable autocomplete="off" style="width: 130px;"></el-input>
  8. </el-form-item>
  9. <el-form-item label="严重程度">
  10. <el-select v-model="pblmPasi" clearable placeholder="请选择" style="width: 130px;">
  11. <el-option
  12. v-for="item in problemType"
  13. :key="item.value"
  14. :label="item.label"
  15. :value="item.value">
  16. </el-option>
  17. </el-select>
  18. </el-form-item>
  19. <div>
  20. <el-button type="primary" @click="getProblemList">查 询</el-button>
  21. </div>
  22. </el-form>
  23. <el-table
  24. :data="tableData"
  25. border
  26. stripe
  27. v-loading='loading'
  28. :height="tableHeight">
  29. <el-table-column
  30. prop="pblmNm"
  31. label="问题名称"
  32. show-overflow-tooltip
  33. min-width="120">
  34. </el-table-column>
  35. <el-table-column
  36. prop="pblmDesc"
  37. label="问题阐述"
  38. show-overflow-tooltip
  39. min-width="180">
  40. </el-table-column>
  41. <el-table-column
  42. prop="pblmReason"
  43. show-overflow-tooltip
  44. min-width="160"
  45. label="主要原因分析">
  46. </el-table-column>
  47. <el-table-column
  48. prop="pblmPasi"
  49. show-overflow-tooltip
  50. min-width="100"
  51. label="严重程度">
  52. <template slot-scope="scope">
  53. <p v-if="scope.row.pblmPasi == 0"><span class="inspPblmCate" style="background: #27C19F;">一般</span></p>
  54. <p v-if="scope.row.pblmPasi == 1"><span class="inspPblmCate" style="background: #E6A23C;" >较重</span></p>
  55. <p v-if="scope.row.pblmPasi == 2"><span class="inspPblmCate" style="background: #F56C6C;" >严重</span></p>
  56. </template>
  57. </el-table-column>
  58. <el-table-column
  59. label="操作"
  60. width="180">
  61. <template slot-scope="scope">
  62. <el-button type="text" size="small" @click="showDetail(scope.row)">查看</el-button>
  63. </template>
  64. </el-table-column>
  65. </el-table>
  66. <el-pagination :pager-count="5" :current-page="pageIndex" background
  67. :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"
  68. :page-sizes="[10, 20, 50, 100]"
  69. @current-change="pageIndexChange" @size-change="handleSizeChange"
  70. ></el-pagination>
  71. </div>
  72. </el-dialog>
  73. <problem-detail-com v-if="showFileVisiual" :problemId="problemId" @dialogClose="dialogClose1"></problem-detail-com>
  74. </div>
  75. </template>
  76. <script>
  77. import request from "@util/gw_ajax_request.js";
  78. import ProblemDetailCom from '../Inspection/dialogCom/ProblemDetails2.vue'
  79. export default {
  80. props: ["proPblmId","title"],
  81. components: {
  82. ProblemDetailCom
  83. },
  84. data(){
  85. return{
  86. pblmNm:"",
  87. pblmPasi:"",
  88. dialogVisible:true,
  89. tableData:[],
  90. loading:false,
  91. tableHeight:500,
  92. pageIndex:1,
  93. pageSize:10,
  94. total:0,
  95. problemType: [
  96. {label: '一般',value: '0'},
  97. {label: '较重',value: '1'},
  98. {label: '严重',value: '2'}
  99. ],
  100. showFileVisiual:false,
  101. problemId:""
  102. }
  103. },
  104. mounted(){
  105. this.getProblemList();
  106. },
  107. methods:{
  108. getProblemList(){
  109. this.loading = true
  110. let paramsObj = {
  111. pblmNm: this.pblmNm,
  112. pblmPasi: this.pblmPasi,
  113. rgstrId:this.proPblmId,
  114. pageNum:this.pageIndex,
  115. pageSize:this.pageSize
  116. }
  117. request.post(`/tac/pblm/info/pageProvincePblm`,paramsObj).then(res=>{
  118. if(res.success){
  119. this.loading = false
  120. this.tableData = res.data.list
  121. this.total = res.data.total
  122. }else{
  123. this.loading = false
  124. this.$message.error(res.message)
  125. }
  126. }).catch(err=>{
  127. this.$message.error(err)
  128. })
  129. },
  130. showDetail(row){
  131. this.showFileVisiual = true;
  132. this.problemId = row.id;
  133. },
  134. pageIndexChange(val){
  135. this.pageIndex = val;
  136. this.getProblemList();
  137. },
  138. handleSizeChange(val){
  139. this.pageSize = val;
  140. this.getProblemList();
  141. },
  142. dialogClose(){
  143. this.$emit('closeDialog')
  144. },
  145. dialogClose1(){
  146. this.showFileVisiual = false;
  147. this.problemId = ""
  148. }
  149. },
  150. watch:{
  151. proPblmId(val){
  152. }
  153. }
  154. }
  155. </script>
  156. <style scoped>
  157. .inspPblmCate{
  158. padding: 10px 10px 10px 10px;
  159. border-radius: 100px;
  160. color: white;
  161. }
  162. .custom_dialog .el-dialog{
  163. width: 55%;
  164. }
  165. .custom_dialog .el-dialog__body {
  166. padding: 30px 20px;
  167. color: #606266;
  168. font-size: 14px;
  169. height: 60vh;
  170. overflow: auto;
  171. }
  172. .left{
  173. }
  174. </style>