015cc3ad36b74ee4769d4df82e7dd1933053a921.svn-base 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311
  1. <template>
  2. <div>
  3. <el-dialog width="65%" :title="'督查已填报问题列表'" :modal='true' :append-to-body= 'true' :before-close="closeProblemList" :visible.sync="proListFlag">
  4. <div :style="{'height': tableHeight1 + 'px'}">
  5. <el-button @click="addProblem" type="primary" style="float: right;margin-bottom: 10px">添加问题</el-button>
  6. <el-table
  7. v-loading="loading"
  8. border
  9. ref="multipleTable"
  10. :data="problemList"
  11. :height="tableHeight"
  12. tooltip-effect="dark"
  13. style="width: 100%">
  14. <el-table-column align="center" type="index" label="序号" min-width="80">
  15. <template slot-scope="scope">
  16. {{ (currentPage - 1) * pageSize + (scope.$index + 1) }}
  17. </template>
  18. </el-table-column>
  19. <el-table-column
  20. header-align="center"
  21. align="center"
  22. min-width="120"
  23. prop="newVillName"
  24. label="取水口名称"
  25. show-overflow-tooltip
  26. v-if="rowData">
  27. </el-table-column>
  28. <el-table-column
  29. header-align="center"
  30. align="center"
  31. min-width="120"
  32. prop="inspPblmName"
  33. label="问题类别"
  34. show-overflow-tooltip>
  35. </el-table-column>
  36. <el-table-column
  37. header-align="center"
  38. align="center"
  39. min-width="100"
  40. prop="checkPoint"
  41. label="检查项目"
  42. show-overflow-tooltip>
  43. </el-table-column>
  44. <el-table-column
  45. header-align="center"
  46. align="center"
  47. min-width="100"
  48. prop="pblmDesc"
  49. label="问题描述"
  50. show-overflow-tooltip>
  51. </el-table-column>
  52. <!-- <el-table-column
  53. header-align="center"
  54. align="center"
  55. prop="inspPblmCate"
  56. label="严重程度"
  57. min-width="90">
  58. <template slot-scope="scope">
  59. {{scope.row.inspPblmCate | inspPblmCate}}
  60. </template>
  61. </el-table-column> -->
  62. <el-table-column
  63. header-align="center"
  64. align="center"
  65. min-width="100"
  66. prop="ifCasePblm"
  67. label="是否典型"
  68. show-overflow-tooltip>
  69. <template slot-scope="scope">
  70. <span>{{scope.row.ifCasePblm == '1' ? '是' : scope.row.ifCasePblm == '0' ? '否' : ''}}</span>
  71. </template>
  72. </el-table-column>
  73. <el-table-column
  74. align="center"
  75. prop
  76. min-width="100"
  77. label="操作"
  78. show-overflow-tooltip>
  79. <template slot-scope="scope">
  80. <el-button icon="el-icon-view" title="查看详情"type="text" @click="showDetails(scope.row.pblmId)"></el-button>
  81. <el-button icon="el-icon-edit" type="text" title="修改问题" @click="changeSup(scope.row.pblmId)" v-if="ownPriv('manage')"></el-button>
  82. <el-button icon="el-icon-delete" type="text" v-if="ownPriv('manage')" title="删除问题" @click="removeSuperviseOne(scope.row.pblmId)"
  83. ></el-button>
  84. </template>
  85. </el-table-column>
  86. </el-table>
  87. <!-- 分页 -->
  88. <!-- <div class="paginationWarpper">
  89. <el-pagination
  90. class="paginationCenter"
  91. background
  92. @size-change="handleSizeChange"
  93. @current-change="search"
  94. :current-page.sync="currentPage"
  95. :page-sizes="[10, 20, 50, 100]"
  96. :page-size="pageSize"
  97. layout="total, sizes, prev, pager, next, jumper"
  98. :total="total">
  99. </el-pagination>
  100. </div> -->
  101. <!-- 详情组件-->
  102. <el-dialog
  103. class="custom_dialog"
  104. title="问题详情"
  105. width="60%"
  106. append-to-body
  107. :visible.sync="supervisionDetailsVisible">
  108. <supervision-details ref="xianqing" :problemId="currentProblemId"></supervision-details>
  109. <span slot="footer">
  110. <el-button style="margin-top:5px;" @click="supervisionDetailsVisible = false">返回</el-button>
  111. </span>
  112. </el-dialog>
  113. <!-- 删除组件 -->
  114. <el-dialog class="deleteDialog" title="问题删除描述" append-to-body :visible.sync="problemDeleteVisible">
  115. <Problem-delete
  116. ref="deleteMiaoShu"
  117. :deleteProblemId="deleteId"
  118. @deleteSuccess="deleteSuccess"
  119. ></Problem-delete>
  120. <span slot="footer">
  121. <el-button @click="problemDeleteVisible = false">返回</el-button>
  122. </span>
  123. </el-dialog>
  124. <!-- 修改组件 -->
  125. <problem-edit :editId="editId" @closeEditDialog="closeEditDialog" v-if="changeSupervisionVisible"></problem-edit>
  126. <!-- 添加问题组件 -->
  127. <problem-dialog
  128. v-if="showAddProblemDialog"
  129. :objId="currentObjectId"
  130. :regId="currentObjectRgstrId"
  131. :objName="currentObjectName"
  132. fenlei="qushuikou"
  133. :problData="problData"
  134. :currentObjectRgstrId="currentObjectRgstrId"
  135. @closeDialog="closePlDialog"
  136. :rowData="rowData">
  137. </problem-dialog>
  138. </div>
  139. </el-dialog>
  140. </div>
  141. </template>
  142. <script>
  143. import problemDialog from "../duChaTianBao/shuiziyuanguanli/addProblemDialog.vue";
  144. import request from '@util/gw_ajax_request.js'
  145. import {dateFormat} from "@util/gw_date";
  146. export default {
  147. props: ['currentObjectId','currentObjectName','currentObjectRgstrId','activeLabel','showProblemList','problData','rowData'],
  148. data(){
  149. return{
  150. tableHeight: window.innerHeight * .45,
  151. tableHeight1: window.innerHeight * .55,
  152. problemList:[],
  153. loading: false,
  154. currentPage: 1,
  155. pageSize: 10,
  156. pageNum: 1,
  157. total: 0,
  158. supervisionDetailsVisible:false,
  159. currentProblemId: '',
  160. problemDeleteVisible: false,
  161. deleteId: '',
  162. editId: '',
  163. changeSupervisionVisible: false,
  164. showAddProblemDialog: false,
  165. rsvrRules: null,
  166. probId: '',
  167. proListFlag:""
  168. }
  169. },
  170. components:{
  171. //详情页
  172. supervisionDetails: resolve => {
  173. require(["../duChaTianBao/shuiziyuanguanli/problemDetail.vue"], resolve);
  174. },
  175. // 删除描述页
  176. ProblemDelete: resolve => {
  177. require(["../duChaWenTi/problemDelete.vue"], resolve);
  178. },
  179. // 修改问题
  180. problemEdit: resolve => {
  181. require(["../duChaTianBao/shuiziyuanguanli/problemModify.vue"], resolve);
  182. },
  183. problemDialog
  184. },
  185. computed:{
  186. persId() {
  187. return localStorage.getItem("userid") ? localStorage.getItem("userid") : "1098101939614724096";
  188. }
  189. },
  190. created(){
  191. // this.findItemByType()
  192. },
  193. mounted(){
  194. this.getProblemList()
  195. },
  196. methods:{
  197. getProblemList(){
  198. let problemForm = {}
  199. problemForm.regid = this.currentObjectRgstrId;
  200. problemForm.pageNum = this.currentPage;
  201. problemForm.pageSize = this.pageSize;
  202. problemForm.presId = this.persId;
  203. problemForm.objId = this.currentObjectId;
  204. problemForm['objType'] = '32';
  205. this.loading = true;
  206. let quesId = this.problData;
  207. request.get(`/dc/insp/pblm/getPblmList/${quesId}/${problemForm.objType}/${problemForm.objId}`).then(res => {
  208. if (res.success) {
  209. res.data.forEach((item)=>{
  210. if(item.fdTm){
  211. item.findTime = typeof(item.fdTm) == 'string' ? item.fdTm : dateFormat(item.fdTm,'yyyy-MM-dd')
  212. }
  213. })
  214. this.problemList = res.data;
  215. // this.total = res.data.total;
  216. this.loading = false;
  217. }
  218. }).catch(err=>{
  219. this.$message.error(err)
  220. this.loading = false;
  221. });
  222. },
  223. showDetails(pblmId){
  224. this.currentProblemId = pblmId
  225. this.supervisionDetailsVisible = true
  226. },
  227. changeSup(pblmId){
  228. this.editId = pblmId
  229. this.changeSupervisionVisible = true
  230. },
  231. removeSuperviseOne(pblmId){
  232. this.deleteId = pblmId
  233. this.problemDeleteVisible = true
  234. },
  235. deleteSuccess() {
  236. this.problemDeleteVisible = false;
  237. this.getProblemList();
  238. },
  239. search(val){
  240. this.currentPage = val
  241. this.getProblemList()
  242. },
  243. handleSizeChange(){},
  244. timestampToTime(row, column) {
  245. var date = new Date(row);
  246. var Y = date.getFullYear() + "-";
  247. var M =
  248. (date.getMonth() + 1 < 10
  249. ? "0" + (date.getMonth() + 1)
  250. : date.getMonth() + 1) + "-";
  251. var D =
  252. (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
  253. var h =
  254. (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":";
  255. var m =
  256. date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
  257. return Y + M + D + h + m;
  258. },
  259. closeEditDialog(){
  260. this.getProblemList()
  261. this.changeSupervisionVisible = false
  262. },
  263. addProblem(item){
  264. // let rest = this.rsvrRules;
  265. // this.probId = rest[0].id;
  266. this.showAddProblemDialog = true;
  267. },
  268. closePlDialog(val) {
  269. this.showAddProblemDialog = false;
  270. this.getProblemList()
  271. },
  272. //add by lch 关闭问题列表
  273. closeProblemList(){
  274. if (this.showProblemList){
  275. this.proListFlag = false;
  276. this.$emit('dialogFormVisible',this.proListFlag)
  277. }
  278. }
  279. },
  280. watch:{
  281. activeLabel(val){
  282. if(val == '问题清单'){
  283. this.getProblemList()
  284. }
  285. }
  286. },
  287. filters:{
  288. inspPblmCate(val){
  289. if(!val || val == ''){
  290. return ''
  291. }
  292. if(val == '0'){
  293. return '一般'
  294. }else if(val == '1'){
  295. return '较重'
  296. }else if(val == '2'){
  297. return '严重'
  298. }else{
  299. return val
  300. }
  301. },
  302. }
  303. }
  304. </script>
  305. <style scoped>
  306. </style>