5465624a9bcfd27d75dc96a71476e93f7011ed7b.svn-base 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421
  1. <template>
  2. <el-container>
  3. <el-main style="position: relative;">
  4. <div style="font-size: 20px;color: blue;font-weight: bold;position: absolute;top: 0;left: 20px;">
  5. <i class="el-icon-arrow-left" @click="goBackClick" style="cursor: pointer;"></i>
  6. </div>
  7. <el-row :gutter="20" type="flex" justify="start">
  8. <el-col :span="20">
  9. <el-form :inline="true" size="mini" class="demo-form-inline" label-width="100px">
  10. <!-- <el-form-item label="项目">
  11. <el-select
  12. v-model="shenHeForm.name"
  13. clearable
  14. collapse-tags>
  15. <el-option
  16. v-for="item in projetList"
  17. :key="item.id"
  18. :label="item.year"
  19. :value="item.year">
  20. </el-option>
  21. </el-select>
  22. </el-form-item> -->
  23. <el-form-item label="严重程度">
  24. <el-select
  25. v-model="shenHeForm.pblmPasi"
  26. clearable
  27. collapse-tags>
  28. <el-option label="一般" value="0"></el-option>
  29. <el-option label="较重" value="1"></el-option>
  30. <el-option label="严重" value="2"></el-option>
  31. </el-select>
  32. </el-form-item>
  33. <el-form-item label="审核意见">
  34. <el-select
  35. v-model="shenHeForm.state"
  36. clearable
  37. collapse-tags>
  38. <el-option label="未整改" value="1"></el-option>
  39. <el-option label="整改中" value="2"></el-option>
  40. <el-option label="已整改" value="3"></el-option>
  41. <el-option label="不具备整改条件" value="4"></el-option>
  42. </el-select>
  43. </el-form-item>
  44. <el-button type="primary" @click="searchClick">查询</el-button>
  45. </el-form>
  46. </el-col>
  47. <el-col :span="2" :offset=2 style="text-align: end;" v-show="ifShenHeShow">
  48. <el-button type="danger" @click="submitAudit(submitRowId)">提交审核</el-button>
  49. </el-col>
  50. </el-row>
  51. <div class="table">
  52. <el-table
  53. v-loading="loading"
  54. border
  55. ref="multipleTable"
  56. :height="tableHeight"
  57. :data="tableData"
  58. tooltip-effect="dark"
  59. style="width: 100%"
  60. >
  61. <el-table-column align="center" type="index" label="序号" min-width="25">
  62. <template
  63. slot-scope="scope"
  64. >{{ (shenHeForm.pageNum - 1) * shenHeForm.pageSize + (scope.$index + 1) }}</template>
  65. </el-table-column>
  66. <el-table-column
  67. header-align="center"
  68. align="center"
  69. min-width="100"
  70. prop="name"
  71. label="项目"
  72. show-overflow-tooltip
  73. ></el-table-column>
  74. <el-table-column
  75. header-align="center"
  76. align="center"
  77. min-width="120"
  78. prop="pblmNm"
  79. label="问题名称"
  80. show-overflow-tooltip
  81. ></el-table-column>
  82. <el-table-column
  83. header-align="center"
  84. align="center"
  85. min-width="80"
  86. show-overflow-tooltip
  87. prop="pblmPasi"
  88. label="严重性"
  89. >
  90. <template slot-scope="scope">
  91. <span v-if="scope.row.pblmPasi == '0'">一般</span>
  92. <span v-if="scope.row.pblmPasi == '1'">较重</span>
  93. <span v-if="scope.row.pblmPasi == '2'">严重</span>
  94. </template>
  95. </el-table-column>
  96. <el-table-column
  97. header-align="center"
  98. align="center"
  99. min-width="100"
  100. show-overflow-tooltip
  101. label="问题详情"
  102. >
  103. <template slot-scope="scope">
  104. <el-button type="text" size="mini" @click="rowIwew(scope.row)">查看</el-button>
  105. </template>
  106. </el-table-column>
  107. <el-table-column
  108. header-align="center"
  109. align="center"
  110. min-width="100"
  111. label="整改情况"
  112. show-overflow-tooltip
  113. >
  114. <template slot-scope="scope">
  115. <span v-if="scope.row.state">{{scope.row.state == '1' ? '未整改' : scope.row.state == '2' ? '整改中' : scope.row.state == '3' ? '已整改' : scope.row.state == '4' ? '不具备整改条件': ''}}</span>
  116. </template>
  117. </el-table-column>
  118. <el-table-column
  119. header-align="center"
  120. align="center"
  121. min-width="100"
  122. label="整改说明"
  123. show-overflow-tooltip
  124. prop="rectExplain"
  125. ></el-table-column>
  126. <el-table-column
  127. header-align="center"
  128. align="center"
  129. min-width="200"
  130. label="督促整改情况"
  131. show-overflow-tooltip
  132. >
  133. <el-table-column
  134. header-align="center"
  135. align="center"
  136. min-width="100"
  137. prop="rectDept"
  138. label="责任单位"
  139. show-overflow-tooltip
  140. >
  141. </el-table-column>
  142. <el-table-column
  143. header-align="center"
  144. align="center"
  145. min-width="100"
  146. prop="rectBlame"
  147. label="问责方式"
  148. show-overflow-tooltip
  149. >
  150. </el-table-column>
  151. <el-table-column
  152. header-align="center"
  153. align="center"
  154. min-width="100"
  155. prop="rectSps"
  156. label="督促措施"
  157. show-overflow-tooltip
  158. >
  159. </el-table-column>
  160. <el-table-column
  161. header-align="center"
  162. align="center"
  163. min-width="100"
  164. prop="rectCompTm"
  165. label="完成时间"
  166. show-overflow-tooltip
  167. :formatter="formatDate"
  168. >
  169. </el-table-column>
  170. </el-table-column>
  171. <!--<el-table-column-->
  172. <!--header-align="center"-->
  173. <!--align="center"-->
  174. <!--min-width="100"-->
  175. <!--prop=""-->
  176. <!--label="文件"-->
  177. <!--show-overflow-tooltip-->
  178. <!--&gt;-->
  179. <!--</el-table-column>-->
  180. <el-table-column
  181. header-align="center"
  182. align="center"
  183. min-width="100"
  184. label="审核意见"
  185. show-overflow-tooltip>
  186. <template slot-scope="scope">
  187. <span v-if="scope.row.state">{{scope.row.state == '1' ? '未整改' : scope.row.state == '2' ? '整改中' : scope.row.state == '3' ? '已整改' : scope.row.state == '4' ? '不具备整改条件': ''}}</span>
  188. </template>
  189. </el-table-column>
  190. <el-table-column
  191. header-align="center"
  192. align="center"
  193. min-width="100"
  194. prop="note"
  195. label="备注"
  196. show-overflow-tooltip
  197. ></el-table-column>
  198. <!--<el-table-column-->
  199. <!--header-align="center"-->
  200. <!--align="center"-->
  201. <!--min-width="80"-->
  202. <!--prop="roleType"-->
  203. <!--label="整改审核"-->
  204. <!--show-overflow-tooltip-->
  205. <!--&gt;-->
  206. <!--<template slot-scope="scope">{{roleType(scope.row.roleType)}}</template>-->
  207. <!--</el-table-column>-->
  208. <el-table-column align="center" min-width="180" label="操作" fixed="right" v-if="ifCaoZuo">
  209. <template slot-scope="scope">
  210. <span>
  211. <el-button
  212. type="primary"
  213. size="mini"
  214. @click.stop="audit(scope.row)"
  215. >审核</el-button>
  216. </span>
  217. </template>
  218. </el-table-column>
  219. </el-table>
  220. <!--<el-row :gutter="20" type="flex" justify="space-between" align="middle">-->
  221. <!--<el-pagination-->
  222. <!--style="margin-top: 10px;"-->
  223. <!--background-->
  224. <!--:current-page="shenHeForm.pageNum"-->
  225. <!--:page-size="shenHeForm.pageSize"-->
  226. <!--:page-sizes="[10, 20, 30, 40, 50, 100]"-->
  227. <!--layout="sizes, total, prev, pager, next"-->
  228. <!--:total="total"-->
  229. <!--@current-change="pageIndexChange"-->
  230. <!--@size-change="handleSizeChange"-->
  231. <!--&gt;</el-pagination>-->
  232. <!--</el-row>-->
  233. </div>
  234. </el-main>
  235. <el-dialog :visible.sync="shenHeDialogFormVisible" :close-on-click-modal="false" width="43%">
  236. <el-form :model="shenHeDialogForm" ref="shenHeDialogForm" label-width="120px">
  237. <el-form-item label="审核意见">
  238. <el-radio-group v-model="shenHeDialogForm.state">
  239. <el-radio label="1">未整改</el-radio>
  240. <el-radio label="2">整改中</el-radio>
  241. <el-radio label="3">已整改</el-radio>
  242. <el-radio label="4">不具备整改条件</el-radio>
  243. </el-radio-group>
  244. </el-form-item>
  245. <el-form-item label="备注" prop="planCnt">
  246. <el-input type="textarea" rows="6" v-model="shenHeDialogForm.note"
  247. placeholder="请输入备注"></el-input>
  248. </el-form-item>
  249. </el-form>
  250. <div slot="footer" class="dialog-footer">
  251. <el-button @click="shenHeDialogFormVisible = false">取 消</el-button>
  252. <el-button type="primary" @click="addShenHeSave">保 存</el-button>
  253. </div>
  254. </el-dialog>
  255. <!-- 查看问题弹窗 -->
  256. <!-- <el-dialog title="查看问题" width="60%" :visible.sync="dialogDetailVisible" :close-on-click-modal="false" :modal-append-to-body="true" :append-to-body="true" @close="closeDialog"> -->
  257. <problem-detail :problemId="rowPblId" v-if="dialogDetailVisible" @dialogClose="closeDialog"></problem-detail>
  258. <!-- </el-dialog> -->
  259. </el-container>
  260. </template>
  261. <script>
  262. import request from'@util/gw_ajax_request'
  263. import {dateFormat} from '@util/gw_date';
  264. // import problemDetail from './problemDetail_zgfk.vue'
  265. import problemDetail from './dialogCom/problemDetails.vue'
  266. export default {
  267. components: {
  268. problemDetail
  269. },
  270. props:['rectOrgId','ifShenHeShow','submitRowId','ifCaoZuo'],
  271. data(){
  272. return {
  273. shenHeForm: {
  274. name: '',
  275. pblmPasi: '',
  276. "rectOrgId": this.rectOrgId,
  277. state: '',//审核意见
  278. pblmNm: '',
  279. pageNum: 1,
  280. pageSize: 20
  281. },
  282. projetList: [],
  283. tableData: [],
  284. tableHeight: window.innerHeight - 180,
  285. loading: false,
  286. total: null,
  287. shenHeDialogFormVisible: false,
  288. shenHeDialogForm:{
  289. "state": null,
  290. "note": null
  291. },
  292. rowId: null,
  293. rowPblId: null,
  294. dialogDetailVisible: false
  295. }
  296. },
  297. computed: {
  298. persId() {
  299. return localStorage.getItem("userid")
  300. ? localStorage.getItem("userid")
  301. : "1098101939614724096";
  302. }
  303. },
  304. mounted(){
  305. this.$nextTick(()=>{
  306. // this.getYear();
  307. this.getShenHeFormData();
  308. })
  309. },
  310. methods:{
  311. //查询
  312. searchClick(){
  313. this.getShenHeFormData();
  314. },
  315. //提交审核
  316. submitAudit(rowId){
  317. this.$confirm('确定提交审核吗?', '提示', {
  318. confirmButtonText: '确定',
  319. cancelButtonText: '取消',
  320. type: 'warning'
  321. }).then(() => {
  322. let obj ={
  323. "id": rowId,
  324. "chkState": "1"
  325. };
  326. request.post(`/tac/pblm/rect/org/update`,obj)
  327. .then(res => {
  328. if (res.success) {
  329. this.$message.success("提交审核成功");
  330. this.getShenHeFormData();
  331. }else{
  332. this.$message.warning(res.message);
  333. }
  334. })
  335. }).catch(() => {
  336. this.$message({
  337. type: 'info',
  338. message: '已取消提交'
  339. });
  340. });
  341. },
  342. getShenHeFormData(){
  343. this.loading = true;
  344. request.post(`/tac/pblm/rect/pblm/findList`,this.shenHeForm)
  345. .then(res =>{
  346. if(res.success){
  347. this.loading = false;
  348. this.tableData = res.data;
  349. }
  350. })
  351. .catch(error =>{
  352. console.log(error);
  353. })
  354. },
  355. formatDate(row) {
  356. return row.rectCompTm ? dateFormat(row.rectCompTm, 'yyyy-MM-dd') : "";
  357. },
  358. // 分页
  359. pageIndexChange(val) {
  360. this.$nextTick(() => {
  361. this.shenHeForm.pageNum = val;
  362. this.getShenHeFormData();
  363. });
  364. },
  365. handleSizeChange(val) {
  366. this.$nextTick(() => {
  367. this.shenHeForm.pageSize = val;
  368. this.getShenHeFormData();
  369. });
  370. },
  371. //审核
  372. audit(row){
  373. this.shenHeDialogForm.state = row.state;
  374. this.shenHeDialogForm.note = row.note;
  375. this.rowId = row.id;
  376. this.shenHeDialogFormVisible = true;
  377. },
  378. //查看
  379. toView(){
  380. },
  381. goBackClick(){
  382. this.$emit('goBack');
  383. },
  384. //审核保存
  385. addShenHeSave(){
  386. let obj = Object.assign(this.shenHeDialogForm,{'id': this.rowId});
  387. request.post(`/tac/pblm/rect/pblm/update`,obj)
  388. .then(res =>{
  389. if(res.success){
  390. this.shenHeDialogFormVisible = false;
  391. this.getShenHeFormData();
  392. this.$message.success('操作成功');
  393. }else{
  394. this.$message.warning(res.message);
  395. }
  396. })
  397. .catch(err =>{
  398. console.log(err);
  399. })
  400. },
  401. //问题查看
  402. rowIwew(row){
  403. // this.rowPblId = row.id;
  404. this.rowPblId = row.pblmId;
  405. this.dialogDetailVisible = true;
  406. },
  407. closeDialog(){
  408. this.dialogDetailVisible = false;
  409. }
  410. }
  411. }
  412. </script>
  413. <style lang="scss" scope>
  414. </style>