4cb8e3422813bb37a51f095e1b969d5efb15a24c.svn-base 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439
  1. <template>
  2. <div class="add_pblm">
  3. <el-dialog :visible.sync="dialogFormEditorVisible" :close-on-click-modal="false" width="70%" @close="closeDialog">
  4. <h3>问题清单</h3>
  5. <div>
  6. <el-row :gutter="20" type="flex" style="margin-bottom: 10px;">
  7. <el-col :span="22">
  8. <el-form :inline="true" size="mini" class="demo-form-inline">
  9. <!--<el-form-item label="接收单位">-->
  10. <!--<receiver-->
  11. <!--v-model="editorForm.rectOrgName"-->
  12. <!--:maxHeight='300'-->
  13. <!--:maxWidth='250'-->
  14. <!--:rootAddCode="orgId"-->
  15. <!--@provTreeSelectChange="selectJigouCodeSinglecx"-->
  16. <!--@inputClear="inputEmptycx"-->
  17. <!--&gt;</receiver>-->
  18. <!--</el-form-item>-->
  19. <el-form-item label="工程">
  20. <el-input v-model="editorForm.name" clearable placeholder="请输入工程" style="width: 6vw"></el-input>
  21. </el-form-item>
  22. <el-form-item label="问题描述">
  23. <el-input v-model="editorForm.inspPblmDesc" clearable placeholder="请输入问题描述" style="width: 6vw"></el-input>
  24. </el-form-item>
  25. <el-form-item label="严重程度">
  26. <el-select v-model="editorForm.inspPblmCate" clearable placeholder="请选择" style="width: 6vw">
  27. <el-option
  28. v-for="item in supervisionState"
  29. :key="item.value"
  30. :label="item.label"
  31. :value="item.value"
  32. ></el-option>
  33. </el-select>
  34. </el-form-item>
  35. <el-form-item label="整改情况">
  36. <el-select v-model="editorForm.rectConc" clearable placeholder="请选择" style="width: 6vw">
  37. <el-option label="未反馈" value="0"></el-option>
  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-form-item label="审核状态">
  45. <el-select v-model="editorForm.chkState" clearable placeholder="请选择" style="width: 6vw">
  46. <el-option label="未审核" value="0"></el-option>
  47. <el-option label="(市)通过" value="1"></el-option>
  48. <el-option label="(市)驳回" value="2"></el-option>
  49. <el-option label="(省)销号" value="3"></el-option>
  50. <el-option label="(省)待复查" value="4"></el-option>
  51. <el-option label="(省)驳回" value="5"></el-option>
  52. </el-select>
  53. </el-form-item>
  54. <el-form-item label="处置状态">
  55. <el-select v-model="editorForm.jchkState" clearable placeholder="请选择" style="width: 6vw">
  56. <el-option label="未处置" value="2"></el-option>
  57. <el-option label="销号" value="0"></el-option>
  58. <el-option label="待复查" value="1"></el-option>
  59. </el-select>
  60. </el-form-item>
  61. </el-form>
  62. </el-col>
  63. <el-col :span="2" style="text-align: end;">
  64. <el-button @click="search" type="success">查询</el-button>
  65. </el-col>
  66. </el-row>
  67. <div>
  68. <el-table
  69. :data="pblmList"
  70. :height="tableHeight1"
  71. style="width: 100%"
  72. border
  73. tooltip-effect="dark"
  74. @selection-change="handleSelectionChange"
  75. ref="multipleTable">
  76. <!--<el-table-column-->
  77. <!--type="selection"-->
  78. <!--width="55">-->
  79. <!--</el-table-column>-->
  80. <el-table-column
  81. prop="name"
  82. label="工程名称"
  83. min-width="100"
  84. show-overflow-tooltip>
  85. </el-table-column>
  86. <!--<el-table-column-->
  87. <!--prop="satOrgName"-->
  88. <!--label="接收单位"-->
  89. <!--min-width="100"-->
  90. <!--show-overflow-tooltip>-->
  91. <!--</el-table-column>-->
  92. <el-table-column
  93. prop="inspPblmName"
  94. label="问题类别"
  95. min-width="100"
  96. show-overflow-tooltip>
  97. </el-table-column>
  98. <el-table-column
  99. prop="inspPblmDesc"
  100. label="问题描述"
  101. min-width="100"
  102. show-overflow-tooltip>
  103. </el-table-column>
  104. <el-table-column
  105. prop="inspPblmCate"
  106. label="严重程度"
  107. min-width="150">
  108. <template slot-scope="scope">
  109. <p v-if="scope.row.inspPblmCate == 0"><span class="inspPblmCate" style="background: #27C19F;">一般</span></p>
  110. <p v-if="scope.row.inspPblmCate == 1"><span class="inspPblmCate" style="background: #E6A23C;" >较重</span></p>
  111. <p v-if="scope.row.inspPblmCate == 2"><span class="inspPblmCate" style="background: #F56C6C;" >严重</span></p>
  112. <p v-if="scope.row.inspPblmCate == 3"><span class="inspPblmCate" style="background: #795548;">特别严重</span></p>
  113. </template>
  114. </el-table-column>
  115. <el-table-column
  116. prop="crrtTm"
  117. label="整改时限"
  118. min-width="100">
  119. <template slot-scope="scope">
  120. <span v-if="scope.row.crrtTm">{{formatDate(scope.row.crrtTm)}}</span>
  121. </template>
  122. </el-table-column>
  123. <el-table-column
  124. prop="inspPblmTm"
  125. label="上报时间"
  126. min-width="100">
  127. <template slot-scope="scope">
  128. <span v-if="scope.row.inspPblmTm">{{formatDate(scope.row.inspPblmTm)}}</span>
  129. </template>
  130. </el-table-column>
  131. <el-table-column
  132. prop="rectConc"
  133. label="整改状态"
  134. min-width="150">
  135. <template slot-scope="scope">
  136. <span v-if="scope.row.rectConc == '0'">未反馈</span>
  137. <span v-if="scope.row.rectConc == '1'">已整改</span>
  138. <span v-if="scope.row.rectConc == '2'">整改中</span>
  139. <span v-if="scope.row.rectConc == '3'">不具备整改条件</span>
  140. </template>
  141. </el-table-column>
  142. <el-table-column
  143. prop="chkState"
  144. label="审核状态"
  145. min-width="150">
  146. <template slot-scope="scope">
  147. <span v-if="scope.row.chkState == '0'">未审核</span>
  148. <span v-if="scope.row.chkState == '1'">(市)通过</span>
  149. <span v-if="scope.row.chkState == '2'">(市)驳回</span>
  150. <span v-if="scope.row.chkState == '3'">(省)销号</span>
  151. <span v-if="scope.row.chkState == '4'">(省)待复查</span>
  152. <span v-if="scope.row.chkState == '5'">(省)驳回</span>
  153. </template>
  154. </el-table-column>
  155. <el-table-column
  156. prop="chkStateNote"
  157. label="审核备注"
  158. min-width="150"
  159. show-overflow-tooltip>
  160. </el-table-column>
  161. <el-table-column
  162. prop="jchkState"
  163. label="处置状态"
  164. min-width="150">
  165. <template slot-scope="scope">
  166. <span v-if="scope.row.jchkState == '2'">未处置</span>
  167. <span v-if="scope.row.jchkState == '0'">销号</span>
  168. <span v-if="scope.row.jchkState == '1'">待复查</span>
  169. </template>
  170. </el-table-column>
  171. <el-table-column
  172. label="操作"
  173. min-width="150"
  174. fixed="right"
  175. >
  176. <template slot-scope="scope">
  177. <el-button @click="toView(scope.row)" type="text" size="small">查看</el-button>
  178. <el-button @click="zgtbClick(scope.row)" type="text" size="small" v-if="scope.row.chkState == '0' || scope.row.chkState == null || scope.row.chkState == '2'">整改填报</el-button>
  179. <!--<el-button @click="toDelete(scope.row)" type="text" size="small" >删除</el-button>-->
  180. </template>
  181. </el-table-column>
  182. </el-table>
  183. <el-row style="margin-top: 10px;">
  184. <!-- 分页 -->
  185. <el-col :span="20" class="paginationWarpper">
  186. <el-pagination
  187. class="paginationCenter"
  188. background
  189. @size-change="handleSizeChangeEditor"
  190. @current-change="pageIndexChangeEditor"
  191. :current-page.sync="editorForm.pageNum"
  192. :page-sizes="[10, 20, 50, 100]"
  193. :page-size="editorForm.pageSize"
  194. layout="total, sizes, prev, pager, next, jumper"
  195. :total="totalEditor"
  196. ></el-pagination>
  197. </el-col>
  198. <el-col :span="4" style="text-align: end;"></el-col>
  199. </el-row>
  200. </div>
  201. </div>
  202. </el-dialog>
  203. <!-- 详情弹框 -->
  204. <el-dialog
  205. class="outerDialog custom_dialog"
  206. title="问题详情"
  207. width="60%"
  208. :visible.sync="supervisionDetailsVisible"
  209. v-if="supervisionDetailsVisible"
  210. >
  211. <el-tabs v-model="activeName" type="card">
  212. <el-tab-pane label="问题详情" name="first">
  213. <supervisionDetailsXiangQing :problemId="rowPblId" :objType="objType"></supervisionDetailsXiangQing>
  214. </el-tab-pane>
  215. <el-tab-pane label="整改反馈" name="second">
  216. <supervision-details :problemId="rowPblId" :rowId="rowId" :objType="objType"></supervision-details>
  217. </el-tab-pane>
  218. </el-tabs>
  219. <span slot="footer">
  220. <el-button style="margin-top:5px;" @click="supervisionDetailsVisible = false">返回</el-button>
  221. </span>
  222. </el-dialog>
  223. <!--整改填报-->
  224. <pblmEditor v-if="editorDialog" :listId="rowPblId" :rowId="rowId" @dialogClose="dialogClose"></pblmEditor>
  225. </div>
  226. </template>
  227. <script>
  228. import request from '@util/gw_ajax_request'
  229. import {dateFormat} from '@util/gw_date';
  230. import receiver from "./receiver"
  231. import pblmEditor from './pblmEditor'
  232. export default {
  233. name: "addPblm",
  234. props:['RowId','supervisionState','objType','rectId','ifShiJi'],
  235. data (){
  236. return {
  237. dialogFormEditorVisible: true,
  238. formLabelWidth: '120px',
  239. pblmList: [],
  240. pblmListAll: [],
  241. tableHeight1: window.innerHeight * .4,
  242. editorForm:
  243. {
  244. "rectId":"", //通知ID
  245. "isTranc":"", //是否转发 0 不转发 1 转发
  246. "name":"", //工程名
  247. "inspPblmDesc":"", //问题描述
  248. "inspPblmCate":"", //问题严重程度
  249. "satOrgId":"", //转发单位ID
  250. "rectConc":"",//整改状态 (0:未反馈 1:已整改;2:整改中;3:不具备整改条件;4:未整改)
  251. "chkState": "",//审核状态 审核状态 0未审核 1(市)通过 2(市)驳回 3(省)销号 4(省)待复查 5(省)驳回
  252. "jchkState": "",// 监督处处置状态 0 销号 1 待复查
  253. "pageNum": 1,
  254. "pageSize": 20,
  255. },
  256. editorFormAll: {
  257. // "inspPblmType": null,//问题类别
  258. "inspPblmCate": "",//严重程度
  259. ifCasePblm: "",//是否典型
  260. inspPblmName: "",//问题类别名称
  261. objType: "",//类型
  262. pageNum: "",
  263. pageSize: "",
  264. name: "",//工程名称
  265. orgId: ""
  266. },
  267. pageNum: 1,
  268. pageSize: 20,
  269. total: null,
  270. totalEditor: null,
  271. multipleSelection: [],
  272. supervisionDetailsVisible: false,
  273. currentProblemId: null,
  274. qixiandanweiVisible: false,
  275. qixianForm: {
  276. "rectOrgId": "",
  277. "rectOrgName": "",
  278. "crrtTm": ""
  279. },
  280. editorDialog: false,
  281. rowPblId: null,
  282. rowId: null,
  283. activeName: 'first',
  284. }
  285. },
  286. components:{
  287. //详情页
  288. supervisionDetails: resolve => {
  289. require(["./supervisionDetails_zgwt.vue"], resolve);
  290. },
  291. supervisionDetailsXiangQing: resolve => {
  292. require(["./supervisionDetails.vue"], resolve);
  293. },
  294. receiver,
  295. pblmEditor
  296. },
  297. computed: {
  298. persId() {
  299. return localStorage.getItem("userid")
  300. ? localStorage.getItem("userid")
  301. : "1098101939614724096";
  302. },
  303. orgId() {
  304. return localStorage.getItem('currentOrgId') ? localStorage.getItem("currentOrgId") : "";
  305. }
  306. },
  307. mounted(){
  308. this.$nextTick(()=>{
  309. this.getPblmList();
  310. })
  311. },
  312. methods:{
  313. closeDialog(){
  314. this.$emit('closeDialog');
  315. },
  316. //所有问题查看
  317. toView(row){
  318. this.rowId = row.id;
  319. this.rowPblId = row.pblmId;
  320. this.supervisionDetailsVisible = true;
  321. },
  322. //删除问题
  323. toDelete(row){
  324. this.$confirm('确定要删除该问题, 是否继续?', '提示', {
  325. confirmButtonText: '确定',
  326. cancelButtonText: '取消',
  327. type: 'warning'
  328. }).then(() => {
  329. request.post(`/bis/insp/rect/pblm/province/delete/${row.id}`)
  330. .then(res => {
  331. if (res.success) {
  332. this.$message.success("删除成功");
  333. this.getPblmList();
  334. } else {
  335. this.$message.warning(res.message);
  336. }
  337. })
  338. .catch(err => {
  339. console.log(err);
  340. })
  341. }).catch(() => {
  342. this.$message({
  343. type: 'info',
  344. message: '已取消删除'
  345. });
  346. });
  347. },
  348. //获取当前通知下督查对象下问题List
  349. getPblmList() {
  350. this.editorForm.rectId = this.RowId;
  351. request.post(`/bis/insp/rect/pblm/province/getPageInfo`, this.editorForm)
  352. .then(res => {
  353. if (res.success) {
  354. this.$nextTick(() => {
  355. this.pblmList = res.data.list;
  356. this.totalEditor = res.data.total;
  357. })
  358. } else {
  359. this.$message.warning(res.message);
  360. }
  361. })
  362. .catch(err => {
  363. console.log(err);
  364. })
  365. },
  366. handleSizeChangeEditor(pageSize) {
  367. this.editorForm.pageSize = pageSize;
  368. this.getPblmList();
  369. },
  370. pageIndexChangeEditor(val) {
  371. this.editorForm.pageNum = val;
  372. this.getPblmList();
  373. },
  374. formatDate(timestamp) {
  375. return timestamp ? dateFormat(timestamp, 'yyyy-MM-dd') : "";
  376. },
  377. // 选中table数据
  378. handleSelectionChange(val) {
  379. this.multipleSelection = [];
  380. val.forEach((item,index)=>{
  381. this.multipleSelection.push(
  382. Object.assign({},item, {'rectId':this.RowId,'persId': this.persId})
  383. )
  384. })
  385. },
  386. // 新增加问题搜索
  387. search(){
  388. this.getPblmList();
  389. },
  390. // selectJigouCodeSinglecx(params){
  391. // this.$nextTick(()=>{
  392. // this.editorForm.rectOrgId = params.code;
  393. // this.editorForm.rectOrgName = params.name;
  394. // })
  395. // },
  396. // inputEmptycx(val){
  397. // if(!val){
  398. // this.editorForm.rectOrgId = "";
  399. // this.editorForm.rectOrgName = "";
  400. // }
  401. // },
  402. //整改填报
  403. zgtbClick(row){
  404. this.rowId = row.id;
  405. this.rowPblId = row.pblmId;
  406. this.editorDialog = true;
  407. },
  408. //整改填报关闭
  409. dialogClose(){
  410. this.editorDialog = false;
  411. this.getPblmList();
  412. }
  413. }
  414. }
  415. </script>
  416. <style lang="scss" scoped>
  417. .add_pblm {
  418. h3{
  419. margin-bottom: 20px;
  420. font-size: 20px;
  421. }
  422. .inspPblmCate{
  423. padding: 2px 10px;
  424. color: #fff;
  425. -webkit-border-radius: 10px;
  426. -moz-border-radius: 10px;
  427. border-radius: 10px;
  428. }
  429. }
  430. </style>