a3d6eff841d0d54721142a0e350ea898a52dad91.svn-base 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. <template>
  2. <div>
  3. <el-form ref="form" :model="searchObj" label-width="80px">
  4. <el-form-item label="核实状态">
  5. <el-select v-model="searchObj.status" placeholder="核实状态">
  6. <el-option :label="item.label" :value="item.value" v-for="(item,index) in statusList" :key="index"></el-option>
  7. </el-select>
  8. </el-form-item>
  9. </el-form>
  10. <el-table
  11. v-loading="loading"
  12. border
  13. ref="multipleTable"
  14. :data="problemList"
  15. :height="tableHeight"
  16. tooltip-effect="dark"
  17. style="width: 100%">
  18. <el-table-column align="center" type="index" label="序号" min-width="40">
  19. <template slot-scope="scope">
  20. {{ (currentPage - 1) * pageSize + (scope.$index + 1) }}
  21. </template>
  22. </el-table-column>
  23. <el-table-column
  24. header-align="center"
  25. align="center"
  26. min-width="140"
  27. prop="inspPblmName"
  28. label="督查水库问题类别"
  29. show-overflow-tooltip>
  30. </el-table-column>
  31. <el-table-column
  32. header-align="center"
  33. align="center"
  34. min-width="100"
  35. prop="checkPoint"
  36. label="检查项目"
  37. show-overflow-tooltip>
  38. </el-table-column>
  39. <el-table-column
  40. header-align="center"
  41. align="center"
  42. min-width="100"
  43. prop="inspPblmDesc"
  44. label="问题描述"
  45. show-overflow-tooltip>
  46. </el-table-column>
  47. <el-table-column
  48. prop="collTime"
  49. label="上报时间"
  50. :formatter="timestampToTime"
  51. sortable
  52. align="center"
  53. min-width="100"
  54. show-overflow-tooltip>
  55. </el-table-column>
  56. <el-table-column
  57. align="center"
  58. prop
  59. min-width="100"
  60. label="操作"
  61. show-overflow-tooltip
  62. fixed="right">
  63. <template slot-scope="scope">
  64. <el-button type="text" @click="showDetails(scope.row.pblmId)">查看</el-button>
  65. <el-button type="text" @click="showCheckinfo(scope.row.pblmId)" v-if="ownPriv('manage')">核实</el-button>
  66. </template>
  67. </el-table-column>
  68. </el-table>
  69. <!-- 分页 -->
  70. <div class="paginationWarpper">
  71. <el-pagination
  72. class="paginationCenter"
  73. background
  74. @size-change="handleSizeChange"
  75. @current-change="search"
  76. :current-page.sync="currentPage"
  77. :page-sizes="[10, 20, 50, 100]"
  78. :page-size="pageSize"
  79. layout="total, sizes, prev, pager, next, jumper"
  80. :total="total">
  81. </el-pagination>
  82. </div>
  83. <!-- 详情组件-->
  84. <el-dialog
  85. class="custom_dialog"
  86. title="问题详情"
  87. width="60%"
  88. append-to-body
  89. :visible.sync="supervisionDetailsVisible">
  90. <supervision-details ref="xianqing" :problemId="currentProblemId"></supervision-details>
  91. <span slot="footer">
  92. <el-button style="margin-top:5px;" @click="supervisionDetailsVisible = false">返回</el-button>
  93. </span>
  94. </el-dialog>
  95. <check-info @closeDialog="closeDialog" v-if="checkInfoVisible"></check-info>
  96. </div>
  97. </template>
  98. <script>
  99. import {formatDateTimeD} from '@util/gw_date.js'
  100. import request from '@util/gw_ajax_request.js'
  101. export default {
  102. props: ['currentObjectId','currentObjectName','currentObjectRgstrId','activeLabel'],
  103. data(){
  104. return{
  105. tableHeight: window.innerHeight - 250,
  106. searchObj:{
  107. objType: '1',
  108. status: 1
  109. },
  110. statusList: [
  111. {
  112. label: '未整改',
  113. value: 0
  114. },
  115. {
  116. label: '已整改',
  117. value: 1
  118. }
  119. ],
  120. problemList:[],
  121. loading: false,
  122. currentPage: 1,
  123. pageSize: 10,
  124. pageNum: 1,
  125. total: 0,
  126. supervisionDetailsVisible:false,
  127. currentProblemId: '',
  128. problemDeleteVisible: false,
  129. deleteId: '',
  130. editId: '',
  131. changeSupervisionVisible: false,
  132. showAddProblemDialog: false,
  133. rsvrRules: null,
  134. probId: '',
  135. pblmEascaderVisible: false,
  136. checkInfoVisible: false
  137. }
  138. },
  139. components:{
  140. //详情页
  141. supervisionDetails: resolve => {
  142. require(["./problemDetails.vue"], resolve);
  143. },
  144. //核实
  145. checkInfo: resolve => {
  146. require(["./checkInfo.vue"], resolve);
  147. }
  148. },
  149. computed:{
  150. persId() {
  151. return localStorage.getItem("userid") ? localStorage.getItem("userid") : "1098101939614724096";
  152. }
  153. },
  154. created(){
  155. this.findItemByType()
  156. },
  157. mounted(){
  158. this.getProblemList()
  159. },
  160. methods:{
  161. getProblemList(){
  162. let problemForm = {}
  163. problemForm.objId = this.currentObjectId;
  164. problemForm.objType = this.searchObj.objType;
  165. problemForm.pageNum = this.currentPage;
  166. problemForm.pageSize = this.pageSize;
  167. problemForm.presId = this.persId;
  168. this.loading = true;
  169. request.post(`/dc/insp/pblm/list/${this.persId}`, problemForm).then(res => {
  170. if (res.success) {
  171. this.problemList = res.data.list;
  172. this.total = res.data.total;
  173. this.loading = false;
  174. }
  175. }).catch(err=>{
  176. this.$message.error(err)
  177. this.loading = false;
  178. });
  179. },
  180. showDetails(pblmId){
  181. this.currentProblemId = pblmId
  182. this.supervisionDetailsVisible = true
  183. },
  184. showCheckinfo(pblmId){
  185. this.editId = pblmId
  186. this.checkInfoVisible = true
  187. },
  188. search(val){
  189. this.currentPage = val
  190. this.getProblemList()
  191. },
  192. handleSizeChange(){},
  193. timestampToTime(row, column) {
  194. var date = new Date(row.collTime);
  195. var Y = date.getFullYear() + "-";
  196. var M =
  197. (date.getMonth() + 1 < 10
  198. ? "0" + (date.getMonth() + 1)
  199. : "0" + date.getMonth() + 1) + "-";
  200. var D =
  201. (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
  202. var h =
  203. (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":";
  204. var m =
  205. date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
  206. return Y + M + D + h + m;
  207. },
  208. findItemByType(){
  209. const obj ={
  210. tname: "BIS_INSP_BASE_PRES_EXT"
  211. }
  212. request.post("/bis/insp/item/ques/info/findItemByType",obj).then(res =>{
  213. this.rsvrRules = res.data;
  214. })
  215. },
  216. closeDialog(){
  217. this.checkInfoVisible = false
  218. }
  219. },
  220. watch:{
  221. activeLabel(val){
  222. if(val == '问题清单'){
  223. this.getProblemList()
  224. }
  225. }
  226. }
  227. }
  228. </script>
  229. <style lang="scss">
  230. .pblmEascader .el-dialog__body {
  231. height: 15vh;
  232. overflow: auto;
  233. }
  234. </style>