c716603cbb62fd2d4c0ad2eeb7fa9f87a3c85316.svn-base 57 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261
  1. <template>
  2. <el-container class="rectify_reform">
  3. <el-main>
  4. <el-card class="box-card" :style="{'height': cardHeight + 'px','overflow-y':'auto'}">
  5. <!--20191226bytanghy-->
  6. <el-row :gutter="20" type="flex" justify="start" class="notice_title">
  7. <el-col :span="16">
  8. <el-form :inline="true" size="mini" class="demo-form-inline" label-width="80px">
  9. <el-form-item label="年度">
  10. <el-select
  11. v-model="addForm.year"
  12. clearable
  13. collapse-tags>
  14. <el-option
  15. v-for="item in yearList"
  16. :key="item.id"
  17. :label="item.year"
  18. :value="item.year">
  19. </el-option>
  20. </el-select>
  21. </el-form-item>
  22. <el-form-item label="接收单位">
  23. <!--<el-select v-model="addForm.rectOrgId" placeholder="请选择接收单位" ref="selectProvince" @change="select_handler_province">-->
  24. <!--<el-option-->
  25. <!--v-for="item in pidList"-->
  26. <!--:key="item.orgId"-->
  27. <!--:label="item.orgNm"-->
  28. <!--:value="item.orgId">-->
  29. <!--</el-option>-->
  30. <!--</el-select>-->
  31. <!--<el-form-item label="行政区名称">-->
  32. <addvSearch
  33. v-model="addForm.rectOrgId"
  34. :maxHeight='300'
  35. :maxWidth='250'
  36. :rootAddCode='curAdcode_long'
  37. :level='"3"'
  38. :nameOrCode="'name'"
  39. ></addvSearch>
  40. <!--</el-form-item>-->
  41. </el-form-item>
  42. <el-form-item label="督查类型">
  43. <el-select
  44. v-model="addForm.sndType "
  45. clearable
  46. collapse-tags>
  47. <el-option
  48. v-for="item in typesList"
  49. :key="item.code"
  50. :label="item.name"
  51. :value="item.code">
  52. </el-option>
  53. </el-select>
  54. </el-form-item>
  55. <el-form-item label="状态">
  56. <el-select
  57. v-model="addForm.state"
  58. clearable
  59. collapse-tags>
  60. <el-option label="已下发" value="1"></el-option>
  61. <el-option label="未下发" value="0"></el-option>
  62. <el-option label="已反馈" value="2"></el-option>
  63. <el-option label="审核通过" value="3"></el-option>
  64. <el-option label="驳回" value="4"></el-option>
  65. </el-select>
  66. </el-form-item>
  67. </el-form>
  68. </el-col>
  69. <el-col :span="8" style="text-align: end;">
  70. <el-button type="primary" @click="searchNotice">查询</el-button>
  71. </el-col>
  72. </el-row>
  73. <div>
  74. <el-table
  75. border
  76. ref="multipleTable"
  77. :height="tableHeight"
  78. :data="tableData"
  79. tooltip-effect="dark"
  80. style="width: 100%"
  81. v-loading="loading"
  82. >
  83. <el-table-column align="center" type="index" label="序号" min-width="25">
  84. <template slot-scope="scope">{{ (pageNum - 1) * pageSize + (scope.$index + 1) }}</template>
  85. </el-table-column>
  86. <el-table-column
  87. header-align="center"
  88. align="center"
  89. min-width="150"
  90. prop="sndTitle"
  91. label="通知标题"
  92. show-overflow-tooltip
  93. ></el-table-column>
  94. <el-table-column
  95. header-align="center"
  96. align="center"
  97. min-width="150"
  98. prop="sndType"
  99. label="督查类型"
  100. show-overflow-tooltip
  101. >
  102. <template slot-scope="scope">
  103. {{typesListFy(scope.row.sndType)}}
  104. </template>
  105. </el-table-column>
  106. <el-table-column
  107. header-align="center"
  108. align="center"
  109. min-width="200"
  110. prop="sndNub"
  111. label="文号"
  112. show-overflow-tooltip
  113. ></el-table-column>
  114. <el-table-column
  115. header-align="center"
  116. align="center"
  117. min-width="100"
  118. prop="rectOrgName"
  119. label="接收地区"
  120. show-overflow-tooltip
  121. ></el-table-column>
  122. <el-table-column
  123. header-align="center"
  124. align="center"
  125. min-width="100"
  126. prop="crrtTm"
  127. label="整改截止时间"
  128. show-overflow-tooltip
  129. >
  130. <template slot-scope="scope">
  131. <span>{{formatDate(scope.row.crrtTm)}}</span>
  132. </template>
  133. </el-table-column>
  134. <el-table-column
  135. header-align="center"
  136. align="center"
  137. min-width="100"
  138. prop="note"
  139. label="备注"
  140. show-overflow-tooltip
  141. ></el-table-column>
  142. <el-table-column
  143. header-align="center"
  144. align="center"
  145. min-width="160"
  146. prop="fileName"
  147. label="附件"
  148. show-overflow-tooltip
  149. >
  150. <template slot-scope="scope">
  151. <el-button type="text" size="mini" @click="previewAttachment(scope.row)">{{scope.row.fileName}}</el-button>
  152. </template>
  153. </el-table-column>
  154. <el-table-column
  155. header-align="center"
  156. align="center"
  157. min-width="100"
  158. prop="pjctSize"
  159. label="工程"
  160. ></el-table-column>
  161. <el-table-column
  162. header-align="center"
  163. align="center"
  164. min-width="100"
  165. prop="pblmSize"
  166. label="问题数"
  167. ></el-table-column>
  168. <el-table-column
  169. header-align="center"
  170. align="center"
  171. min-width="100"
  172. prop="state"
  173. label="状态"
  174. show-overflow-tooltip
  175. >
  176. <template slot-scope="scope">
  177. <p class="state_style">
  178. <span v-if="scope.row.state == 0" @click="stateClick(scope.row)">未下发</span>
  179. <span v-if="scope.row.state == 1" @click="stateClick(scope.row)">已下发</span>
  180. <span v-if="scope.row.state == 2" @click="stateClick(scope.row)">已反馈</span>
  181. <span v-if="scope.row.state == 3" @click="stateClick(scope.row)">审核通过</span>
  182. <span v-if="scope.row.state == 4" @click="stateClick(scope.row)">驳回</span>
  183. </p>
  184. </template>
  185. </el-table-column>
  186. <el-table-column
  187. align="center"
  188. min-width="300"
  189. label="操作"
  190. fixed="right"
  191. >
  192. <template slot-scope="scope">
  193. <span v-if="scope.row.state == '2'">
  194. <el-button type="primary" size="mini" @click.stop="lookOver(scope.row)">查看</el-button>
  195. <el-button type="success" size="mini" @click.stop="passRow(scope.row)">通过</el-button>
  196. <el-button type="warning" size="mini" @click.stop="rejectRow(scope.row)">驳回</el-button>
  197. </span>
  198. <span v-else>
  199. <el-button type="primary" size="mini" @click.stop="lookOver(scope.row)">查看</el-button>
  200. </span>
  201. </template>
  202. </el-table-column>
  203. </el-table>
  204. <!--<el-pagination-->
  205. <!--style="margin: 10px auto"-->
  206. <!--background-->
  207. <!--:pager-count="5"-->
  208. <!--:current-page="pageNum"-->
  209. <!--:page-size="pageSize"-->
  210. <!--:page-sizes="[10, 20, 30, 40, 50, 100]"-->
  211. <!--layout="sizes, total, prev, pager, next"-->
  212. <!--:total="tableData.length"-->
  213. <!--@current-change="handleCurrentChange"-->
  214. <!--@size-change="handleSizeChange"-->
  215. <!--&gt;</el-pagination>-->
  216. </div>
  217. </el-card>
  218. <el-dialog :title="titleText + '整改通知'" :visible.sync="dialogFormEditorVisible" :close-on-click-modal="false" width="55%" @close="closeDialog">
  219. <el-form :model="tongZhiForm" ref="tongZhiForm" :label-width="formLabelWidth">
  220. <el-row :gutter="20" type="flex" justify="start">
  221. <el-col :span="12">
  222. <el-form-item label="督查类型">
  223. <el-select v-model="tongZhiForm.sndType" placeholder="请选择督查类型"
  224. :disabled="zgButton" clearable>
  225. <el-option
  226. v-for="item in typesList"
  227. :key="item.code"
  228. :label="item.name"
  229. :value="item.code">
  230. </el-option>
  231. </el-select>
  232. </el-form-item>
  233. </el-col>
  234. </el-row>
  235. <el-row :gutter="20" type="flex" justify="start">
  236. <el-col :span="12">
  237. <el-form-item label="通知标题">
  238. <el-input v-model="tongZhiForm.sndTitle" placeholder="请输入通知标题"
  239. :disabled="zgButton"></el-input>
  240. </el-form-item>
  241. </el-col>
  242. <el-col :span="12">
  243. <el-form-item label="整改截止时间" prop="planYr">
  244. <el-date-picker
  245. v-model="tongZhiForm.crrtTm"
  246. type="date"
  247. value-format="yyyy-MM-dd"
  248. placeholder="选择整改截止时间" :disabled="zgButton">
  249. </el-date-picker>
  250. </el-form-item>
  251. </el-col>
  252. </el-row>
  253. <el-row :gutter="20" type="flex" justify="start">
  254. <el-col :span="12">
  255. <el-form-item label="文号">
  256. <el-input v-model="tongZhiForm.sndNub" placeholder="请输入文号"
  257. :disabled="zgButton"></el-input>
  258. </el-form-item>
  259. </el-col>
  260. <el-col :span="12">
  261. <el-form-item label="接收单位">
  262. <el-select
  263. v-model="tongZhiForm.rectOrgId" placeholder="请选择接收单位"
  264. :disabled="zgButton">
  265. <el-option
  266. v-for="item in pidList"
  267. :key="item.orgId"
  268. :label="item.orgNm"
  269. :value="item.orgId">
  270. </el-option>
  271. </el-select>
  272. </el-form-item>
  273. </el-col>
  274. </el-row>
  275. <el-form-item label="备注">
  276. <el-input type="textarea" rows="6" v-model="tongZhiForm.note" clearable
  277. placeholder="请输入备注" :disabled="zgButton"></el-input>
  278. </el-form-item>
  279. <el-form-item label="附件">
  280. <div v-show="ifFileList">
  281. <upload
  282. ref="uploadFile"
  283. :url="`/pdcApi/file/insert?bizId=`"
  284. accept=".doc,.docx,.pdf"
  285. @uploadOver="removeNewSupervision"
  286. ></upload>
  287. </div>
  288. <div v-show="!ifFileList">
  289. <el-table
  290. :data="fileListPiCi"
  291. style="width: 100%">
  292. <el-table-column
  293. prop="name"
  294. label="附件名称"
  295. min-width="200">
  296. </el-table-column>
  297. <el-table-column
  298. label="操作"
  299. min-width="150">
  300. <template slot-scope="scope">
  301. <el-button @click="deleteFiles(scope.row)" type="text" size="small" :disabled="zgButton">删除
  302. </el-button>
  303. <el-button type="text" size="small" @click="toPreview(scope.row)">预览</el-button>
  304. </template>
  305. </el-table-column>
  306. </el-table>
  307. </div>
  308. </el-form-item>
  309. </el-form>
  310. <div style="text-align: end;">
  311. <el-button type="primary" @click="tongZhiSave('tongZhiForm')" :disabled="zgButton">保 存</el-button>
  312. </div>
  313. <div v-if="titleText =='查看'">
  314. <el-divider></el-divider>
  315. <el-row :gutter="20" type="flex" style="margin-bottom: 10px;">
  316. <el-col :span="20">
  317. <el-form :inline="true" size="mini" class="demo-form-inline">
  318. <el-form-item label="工程">
  319. <el-input v-model="editorForm.name" clearable placeholder="请输入工程" style="width: 8vw"></el-input>
  320. </el-form-item>
  321. <el-form-item label="问题类别">
  322. <el-input v-model="editorForm.inspPblmName" clearable placeholder="请输入问题类别" style="width: 8vw"></el-input>
  323. </el-form-item>
  324. <el-form-item label="严重程度">
  325. <el-select v-model="editorForm.inspPblmCate" clearable placeholder="请选择">
  326. <el-option
  327. v-for="item in supervisionState"
  328. :key="item.value"
  329. :label="item.label"
  330. :value="item.value"
  331. ></el-option>
  332. </el-select>
  333. </el-form-item>
  334. <!--<el-form-item label="是否典型">-->
  335. <!--<el-select v-model="editorForm.state" clearable style="width: 8vw">-->
  336. <!--<el-option label="未下发" value="0"></el-option>-->
  337. <!--<el-option label="已下发" value="1"></el-option>-->
  338. <!--<el-option label="已反馈" value="2"></el-option>-->
  339. <!--</el-select>-->
  340. <!--</el-form-item>-->
  341. </el-form>
  342. </el-col>
  343. <el-col :span="2" :offset=2 style="text-align: end;">
  344. <el-button @click="searchClick" type="success">查询</el-button>
  345. </el-col>
  346. </el-row>
  347. <div>
  348. <el-table
  349. :data="PblmList"
  350. :height="tableHeight1"
  351. style="width: 100%"
  352. border
  353. tooltip-effect="dark">
  354. <el-table-column
  355. prop="name"
  356. label="工程名称"
  357. min-width="50"
  358. show-overflow-tooltip>
  359. </el-table-column>
  360. <el-table-column
  361. prop="inspPblmName"
  362. label="问题类别"
  363. min-width="50"
  364. show-overflow-tooltip>
  365. </el-table-column>
  366. <el-table-column
  367. prop="inspPblmDesc"
  368. label="问题描述"
  369. min-width="50"
  370. show-overflow-tooltip>
  371. </el-table-column>
  372. <el-table-column
  373. label="严重程度"
  374. min-width="50">
  375. <template slot-scope="scope">
  376. <p v-if="scope.row.inspPblmCate == 0"><span class="inspPblmCate" style="background: #27C19F;">一般</span></p>
  377. <p v-if="scope.row.inspPblmCate == 1"><span class="inspPblmCate" style="background: #E6A23C;" >较重</span></p>
  378. <p v-if="scope.row.inspPblmCate == 2"><span class="inspPblmCate" style="background: #F56C6C;" >严重</span></p>
  379. <p v-if="scope.row.inspPblmCate == 3"><span class="inspPblmCate" style="background: #795548;">特别严重</span></p>
  380. </template>
  381. </el-table-column>
  382. <!--<el-table-column-->
  383. <!--label="是否典型"-->
  384. <!--min-width="50"-->
  385. <!--show-overflow-tooltip>-->
  386. <!--<template slot-scope="scope">-->
  387. <!--<p v-if="scope.row.ifCasePblm == 1">是</p>-->
  388. <!--<p v-if="scope.row.ifCasePblm == 0">否</p>-->
  389. <!--</template>-->
  390. <!--</el-table-column>-->
  391. <el-table-column
  392. prop="inspPblmTm"
  393. label="上报时间"
  394. min-width="50"
  395. show-overflow-tooltip>
  396. <template slot-scope="scope">
  397. <span v-if="scope.row.inspPblmTm">{{formatDate(scope.row.inspPblmTm)}}</span>
  398. </template>
  399. </el-table-column>
  400. <el-table-column
  401. prop="rectConc"
  402. label="整改情况"
  403. min-width="50"
  404. show-overflow-tooltip>
  405. <template slot-scope="scope">
  406. <span v-if="scope.row.rectConc == '1'">未整改</span>
  407. <span v-if="scope.row.rectConc == '2'">整改中</span>
  408. <span v-if="scope.row.rectConc == '3'">已整改</span>
  409. <span v-if="scope.row.rectConc == '4'">不具备整改条件</span>
  410. </template>
  411. </el-table-column>
  412. <el-table-column
  413. prop="chkState"
  414. label="审核状态"
  415. min-width="50"
  416. show-overflow-tooltip>
  417. <template slot-scope="scope">
  418. <span v-if="scope.row.chkState == '0'">未审核</span>
  419. <span v-if="scope.row.chkState == '1'">销号</span>
  420. <span v-if="scope.row.chkState == '2'">待复查</span>
  421. <span v-if="scope.row.chkState == '3'">驳回</span>
  422. </template>
  423. </el-table-column>
  424. <el-table-column
  425. label="操作"
  426. min-width="100">
  427. <template slot-scope="scope">
  428. <el-button type="text" size="small" @click="toViewRow(scope.row)">查看</el-button>
  429. <el-button type="text" size="small" @click="toCheckRow(scope.row)">审核</el-button>
  430. </template>
  431. </el-table-column>
  432. </el-table>
  433. </div>
  434. </div>
  435. </el-dialog>
  436. <!--一省一单上传文件-->
  437. <!--<el-dialog title="文件上传" :visible.sync="dialogFormVisible" :close-on-click-modal="false" width="40%">-->
  438. <!--<upload-->
  439. <!--ref="uploadFileRow"-->
  440. <!--:url="`/pdcApi/file/insert?bizId=`"-->
  441. <!--accept=".doc,.docx,.pdf"-->
  442. <!--@uploadOver="removeNewSupervision"-->
  443. <!--&gt;</upload>-->
  444. <!--<div slot="footer" class="dialog-footer">-->
  445. <!--<el-button @click="dialogFormVisible = false">取 消</el-button>-->
  446. <!--<el-button type="primary" @click="addFileSave">保 存</el-button>-->
  447. <!--</div>-->
  448. <!--</el-dialog>-->
  449. </el-main>
  450. <addPblm v-if="addPblmDialog" @closeDialog="closeDialogAddPblm" :RowId="RowId" :supervisionState="supervisionState" :objType="objType" :rectId="rectId"></addPblm>
  451. <!-- 详情弹框 -->
  452. <el-dialog
  453. class="outerDialog custom_dialog"
  454. title="问题详情"
  455. width="60%"
  456. :visible.sync="supervisionDetailsVisible"
  457. v-if="supervisionDetailsVisible"
  458. >
  459. <el-tabs v-model="activeName" type="card">
  460. <el-tab-pane label="问题详情" name="first">
  461. <supervisionDetailsXiangQing :problemId="rowPblId" :objType="objType"></supervisionDetailsXiangQing>
  462. </el-tab-pane>
  463. <el-tab-pane label="整改反馈" name="second">
  464. <supervision-details :listId="rowPblId" :rowId="rowId" :objType="objType"></supervision-details>
  465. </el-tab-pane>
  466. </el-tabs>
  467. <span slot="footer">
  468. <el-button style="margin-top:5px;" @click="supervisionDetailsVisible = false">返回</el-button>
  469. </span>
  470. </el-dialog>
  471. <!--审核弹窗-->
  472. <el-dialog
  473. title="整改审核"
  474. width="35%"
  475. :visible.sync="checkVisible"
  476. :close-on-click-modal="false">
  477. <el-form size="mini" label-width="120px" :model="checkForm">
  478. <el-form-item label="整改审核:">
  479. <el-select
  480. v-model="checkForm.chkState"
  481. clearable
  482. collapse-tags>
  483. <el-option label="未审核" value="0"></el-option>
  484. <el-option label="销号" value="1"></el-option>
  485. <el-option label="待复查" value="2"></el-option>
  486. <el-option label="驳回" value="3"></el-option>
  487. </el-select>
  488. </el-form-item>
  489. <el-form-item label="备注描述:">
  490. <el-input v-model="checkForm.note" type="textarea" :rows="5" autocomplete="off"></el-input>
  491. </el-form-item>
  492. </el-form>
  493. <span slot="footer">
  494. <el-button style="margin-top:5px;" @click="checkVisible = false">取消</el-button>
  495. <el-button type="primary" style="margin-top:5px;" @click="checkConfirm('checkForm')">确定</el-button>
  496. </span>
  497. </el-dialog>
  498. <!--通知状态步骤条-->
  499. <el-dialog
  500. title="通知状态"
  501. width="30%"
  502. :visible.sync="stateVisible"
  503. :close-on-click-modal="false">
  504. <steps :stateLogList="stateLogList"></steps>
  505. <span slot="footer">
  506. <el-button style="margin-top:5px;" @click="stateVisible = false">返回</el-button>
  507. </span>
  508. </el-dialog>
  509. </el-container>
  510. </template>
  511. <script>
  512. import request from '@util/gw_ajax_request'
  513. import {dateFormat} from '@util/gw_date';
  514. import {hostUrl} from '@util/global_variable.js'
  515. import addPblm from './addPblm'
  516. import steps from './steps'
  517. import addvSearch from "@widget/addvSearch.vue"
  518. export default {
  519. name: "rectificationNotice",
  520. props: [],
  521. data() {
  522. return {
  523. cardHeight: window.innerHeight - 120,
  524. currentPage: 1,
  525. tableData: [],
  526. tableHeight: window.innerHeight - 300,
  527. tableHeight1: window.innerHeight * .2,
  528. loading: false,
  529. pageSize: 20,
  530. pageNum: 1,
  531. dialogFaTitle: "",
  532. formLabelWidth: '120px',
  533. tongZhiForm:{
  534. "sndType": "",//发文类型 '1','小型水库', '2','人饮工程', '3','水毁工程', '4','工程建设', '5','地下水', '7','运行管理', '6','水闸', '9','特定飞检', '10','其他填报', '11','淤地坝', '12','取水口','13','重要水源地', '14','分水及管控', '15','节水管理与评价', '16','用水单位抽查'
  535. "sndTitle": "", //通知标题
  536. "sndNub": "", //通知文号
  537. "rectOrgId": "", //接收单位ID
  538. "rectOrgName": "", //接收单位名称
  539. "crrtTm": "", //整改截止时间
  540. "note": "", //备注
  541. "persId": "" //插入人ID
  542. },
  543. curStatus: '编辑',
  544. zgButton: false,
  545. zgfkDialog: false,
  546. ifMinistriesAgencies: false,
  547. groupId: '',
  548. addvcd: '',
  549. treeDataLists: [],
  550. defaultExpanded: [],
  551. defaultProps: {
  552. children: 'children',
  553. label: 'pnm'
  554. },
  555. distributeState: false, //false 未下发 true 已下发
  556. dialogFormVisible: false, //上传文件弹窗
  557. dialogFormEditorVisible: false,
  558. gwComFileList: [],
  559. yiShengyiDanList: [],
  560. PblmList:[],
  561. year: '',
  562. province: '',
  563. addForm: {
  564. "state":"",// 状态 0 未下发 1 已下发 2 已反馈 3审核通过 4 驳回 ,
  565. "sndOrgId":localStorage.getItem('currentOrgId'),// 单位 非必须
  566. "year":"",//年度
  567. "sndType": "",
  568. "rectOrgId": ""
  569. },
  570. editorForm: {
  571. "rectId":null,
  572. "name": null,
  573. "inspPblmName": null,//问题类别
  574. "inspPblmCate": null,//严重程度
  575. },
  576. yearList: [],
  577. pidList: [],
  578. sfType: [
  579. {
  580. label: '是',
  581. value: "1"
  582. },
  583. {
  584. label: '否',
  585. value: "2"
  586. }
  587. ],
  588. titleText: '新建',
  589. header: {
  590. 'persId': localStorage.getItem('userid'),
  591. 'accessToken': localStorage.getItem('accessToken')
  592. },
  593. fileList: [],
  594. provincesList: [],
  595. url: null,
  596. yiShengyiDanRowId: null,
  597. yearBatchSelect: false,
  598. ifFileList: true,
  599. fileListPiCi:[],
  600. PcData: null,
  601. typesList: [],
  602. tongZhiRowId: null,
  603. supervisionState: [
  604. {
  605. value: "0",
  606. label: "一般"
  607. },
  608. {
  609. value: "1",
  610. label: "较重"
  611. },
  612. {
  613. value: "2",
  614. label: "严重"
  615. },
  616. {
  617. value: "3",
  618. label: "特别严重"
  619. }
  620. ],
  621. supervision: [
  622. {
  623. value: "1",
  624. label: "是"
  625. },
  626. {
  627. value: "0",
  628. label: "否"
  629. }
  630. ],
  631. addPblmDialog: false,
  632. RowId: null,
  633. rectId: null,
  634. objType: null,
  635. supervisionDetailsVisible: false,
  636. currentProblemId: null,
  637. checkVisible: false,
  638. checkForm: {
  639. "id": "",
  640. "chkState": "",//审核状态 0 未审核 1 销号 2 待复查 3 驳回
  641. "note": ""
  642. },
  643. rowPblId: null,
  644. activeName: 'first',
  645. rowId: null,
  646. stateVisible: false,
  647. stateLogList: []
  648. }
  649. },
  650. components: {
  651. upload: resolve => {
  652. require(["@widget/uploadFile.vue"], resolve);
  653. },
  654. addPblm,
  655. //详情页
  656. supervisionDetails: resolve => {
  657. require(["./supervisionDetails_zgwt.vue"], resolve);
  658. },
  659. supervisionDetailsXiangQing: resolve => {
  660. require(["./supervisionDetails.vue"], resolve);
  661. },
  662. steps,
  663. addvSearch
  664. },
  665. computed: {
  666. persId() {
  667. return localStorage.getItem("userid")
  668. ? localStorage.getItem("userid")
  669. : "1098101939614724096";
  670. }
  671. },
  672. mounted() {
  673. this.$nextTick(() => {
  674. this.getYear();
  675. this.getByPid();
  676. this.getTypes();
  677. this.getNoticeList();
  678. })
  679. },
  680. methods: {
  681. getYear(){
  682. request.get(`/tac/pblm/rect/getYear/${this.persId}`)
  683. .then(res =>{
  684. if(res.success){
  685. this.yearList = res.data;
  686. }
  687. })
  688. .catch(err =>{
  689. console.log(err);
  690. })
  691. },
  692. getByPid(){
  693. request.get(`/dc/bis/insp/org/getByPid?pid=13`)
  694. .then(res =>{
  695. if(res.success){
  696. this.pidList = res.data;
  697. }
  698. })
  699. .catch(err =>{
  700. console.log(err);
  701. })
  702. },
  703. getTypes(){
  704. request.post(`/att/insp/type/getTypes`,{})
  705. .then(res =>{
  706. if(res.success){
  707. this.typesList = res.data;
  708. }
  709. })
  710. },
  711. //-----------------------------------
  712. formatDate(timestamp) {
  713. return timestamp ? dateFormat(timestamp, 'yyyy-MM-dd') : "";
  714. },
  715. changeYear(item) {
  716. let _self = this;
  717. request.get(`tac/pblm/rect/getBatchByYearPersId/${_self.persId}/${item}`)
  718. .then(res =>{
  719. _self.pcList = res.data;
  720. })
  721. .catch(err =>{
  722. console.log(err);
  723. })
  724. if (item == "" || item == undefined) {
  725. _self.pcList = null;
  726. _self.addForm.batch = "";
  727. }
  728. },
  729. lookOver(row) {
  730. this.titleText = "查看";
  731. this.ifFileList = false;
  732. this.RowId = row.id;
  733. this.objType = row.sndType;
  734. this.getPblmList();
  735. request.get(`/bis/insp/rect/${row.id}`)
  736. .then(res => {
  737. if (res.success) {
  738. this.tongZhiForm = res.data;
  739. this.tongZhiForm.crrtTm = dateFormat(res.data.crrtTm, "yyyy-MM-dd");
  740. this.dialogFormEditorVisible = true;
  741. if(res.data.fileName && res.data.filePath && res.data.id){
  742. this.ifFileList = false;
  743. this.fileListPiCi = [];
  744. this.fileListPiCi.push(
  745. Object.assign({},
  746. {'name':res.data.fileName},
  747. {'url':res.data.filePath},
  748. {'id':res.data.id},
  749. {'fileId':res.data.fileId}
  750. )
  751. );
  752. }
  753. this.zgButton = true;
  754. } else {
  755. this.$message.warning(res.message);
  756. }
  757. })
  758. .catch(err => {
  759. console.log(err);
  760. })
  761. },
  762. //通过
  763. passRow(row){
  764. let obj = {
  765. "id": row.id,//id
  766. "persId": this.persId,
  767. "state":"3"// 状态 0 未下发 1 已下发 2 已反馈 3审核通过 4驳回 ,
  768. };
  769. this.$confirm('(有问题整改未审核/被驳回)确定审核通过吗?', '提示', {
  770. confirmButtonText: '确定',
  771. cancelButtonText: '取消',
  772. type: 'warning'
  773. }).then(() => {
  774. request.post(`/bis/insp/rect/update`,obj)
  775. .then(res => {
  776. if (res.success) {
  777. this.$message.success("审核成功");
  778. this.getNoticeList();
  779. } else {
  780. this.$message.warning(res.message);
  781. }
  782. })
  783. .catch(err => {
  784. console.log(err);
  785. })
  786. }).catch(() => {
  787. this.$message({
  788. type: 'info',
  789. message: '已取消通过'
  790. });
  791. });
  792. },
  793. //驳回
  794. rejectRow(row){
  795. let obj = {
  796. "id": row.id,//id
  797. "persId": this.persId,
  798. "state":"4"// 状态 0 未下发 1 已下发 2 已反馈 3审核通过 4驳回 ,
  799. };
  800. this.$confirm('(问题已全部审核通过)确定驳回吗?, 是否继续?', '提示', {
  801. confirmButtonText: '确定',
  802. cancelButtonText: '取消',
  803. type: 'warning'
  804. }).then(() => {
  805. request.post(`/bis/insp/rect/update`,obj)
  806. .then(res => {
  807. if (res.success) {
  808. this.$message.success("驳回成功");
  809. this.getNoticeList();
  810. } else {
  811. this.$message.warning(res.message);
  812. }
  813. })
  814. .catch(err => {
  815. console.log(err);
  816. })
  817. }).catch(() => {
  818. this.$message({
  819. type: 'info',
  820. message: '已取消驳回',
  821. duration: 1000
  822. });
  823. });
  824. },
  825. uploadAfter(data){
  826. let obj = {
  827. "id": this.tongZhiRowId,//数据ID
  828. "fileId": data.id,//附件ID
  829. "fileName": data.fileName,//附件名称
  830. "filePath": data.filePath
  831. }
  832. request.post(`/bis/insp/rect/update`,obj)
  833. .then(res =>{
  834. if(res.success){
  835. this.dialogFormVisible = false;
  836. this.$message.success('上传成功');
  837. this.getNoticeList();
  838. }
  839. })
  840. .catch(err =>{
  841. })
  842. },
  843. //获取当前督查对象下问题List
  844. getPblmList() {
  845. let obj = {
  846. "rectId": this.RowId,//通知ID 必须
  847. "name": this.editorForm.name,//工程名称 非必传
  848. "inspPblmName": this.editorForm.inspPblmName,
  849. "inspPblmCate": this.editorForm.inspPblmCate
  850. }
  851. request.post(`/bis/insp/rect/pblm/findList`, obj)
  852. .then(res => {
  853. if (res.success) {
  854. this.$nextTick(() => {
  855. this.PblmList = res.data;
  856. this.provincesList = res.data;
  857. })
  858. } else {
  859. this.$message.warning(res.message);
  860. }
  861. })
  862. .catch(err => {
  863. console.log(err);
  864. })
  865. },
  866. addZgTz() {
  867. this.titleText = '新建';
  868. this.zgButton = false;
  869. this.yearBatchSelect = false;
  870. this.dialogFormEditorVisible = true;
  871. this.fileListPiCi = [];
  872. this.ifFileList = true;
  873. for (let obj in this.editorForm) {
  874. this.editorForm[obj] = '';
  875. }
  876. for (let obj in this.tongZhiForm) {
  877. this.tongZhiForm[obj] = '';
  878. }
  879. },
  880. editorRow(row) {
  881. this.PcData = row;
  882. this.titleText = '编辑';
  883. this.zgButton = false;
  884. this.fileListPiCi = [];
  885. this.ifFileList = true;
  886. request.get(`/bis/insp/rect/${row.id}`)
  887. .then(res => {
  888. if (res.success) {
  889. this.$nextTick(()=>{
  890. this.tongZhiForm = res.data;
  891. this.tongZhiForm.crrtTm = dateFormat(res.data.crrtTm, "yyyy-MM-dd");
  892. this.dialogFormEditorVisible = true;
  893. if(res.data.fileName && res.data.filePath && res.data.id){
  894. this.ifFileList = false;
  895. this.fileListPiCi.push(
  896. Object.assign({},
  897. {'name':res.data.fileName},
  898. {'url':res.data.filePath},
  899. {'id':res.data.id},
  900. {'fileId':res.data.fileId}
  901. )
  902. );
  903. }
  904. })
  905. } else {
  906. this.$message.warning(res.message);
  907. }
  908. })
  909. .catch(err => {
  910. console.log(err);
  911. })
  912. },
  913. //添加问题
  914. addPblmRow(row){
  915. this.RowId = row.id;
  916. this.rectId = row.rectOrgId;
  917. this.objType = row.sndType;
  918. this.addPblmDialog = true;
  919. },
  920. deleteRow(row) {
  921. this.$confirm('确定要删除该数据, 是否继续?', '提示', {
  922. confirmButtonText: '确定',
  923. cancelButtonText: '取消',
  924. type: 'warning'
  925. }).then(() => {
  926. request.post(`/bis/insp/rect/delete/${row.id}`)
  927. .then(res => {
  928. if (res.success) {
  929. this.$message.success("删除成功");
  930. this.getNoticeList();
  931. } else {
  932. this.$message.warning(res.message);
  933. }
  934. })
  935. .catch(err => {
  936. console.log(err);
  937. })
  938. }).catch(() => {
  939. this.$message({
  940. type: 'info',
  941. message: '已取消删除'
  942. });
  943. });
  944. },
  945. xiaFaClick(row) {
  946. this.$confirm('下发后通知内容无法更改?', '提示', {
  947. confirmButtonText: '确定',
  948. cancelButtonText: '取消',
  949. type: 'warning'
  950. }).then(() => {
  951. let obj = {
  952. "id": row.id,
  953. "persId": this.persId,
  954. "state": "1"
  955. }
  956. request.post(`/bis/insp/rect/update`, obj)
  957. .then(res => {
  958. if (res.success) {
  959. this.$message.success("下发成功");
  960. this.getNoticeList();
  961. } else {
  962. this.$message.warning(res.message);
  963. }
  964. })
  965. }).catch(() => {
  966. this.$message({
  967. type: 'info',
  968. message: '已取消下发'
  969. });
  970. });
  971. },
  972. //通知List
  973. getNoticeList() {
  974. this.loading = true;
  975. let obj = this.addForm;
  976. request.post(`/bis/insp/rect/province/findList`, obj)
  977. .then(res => {
  978. if (res.success) {
  979. this.loading = false;
  980. this.tableData = res.data;
  981. }
  982. })
  983. .catch(err => {
  984. console.log(err);
  985. })
  986. },
  987. // 通知保存
  988. tongZhiSave(formName) {
  989. if (this.titleText == '新建') {
  990. this.$refs[formName].validate((valid) => {
  991. if (valid) {
  992. let obj = this.tongZhiForm;
  993. obj.persId = localStorage.getItem("userid");
  994. request.post('/bis/insp/rect/add', obj).then((res) => {
  995. if (res.success) {
  996. this.tongZhiRowId = res.data.id;
  997. this.$nextTick(function () {
  998. if (this.$refs.uploadFile.submitUpload(res.data.id)) {
  999. this.removeNewSupervision();
  1000. this.$message.success('新建通知成功');
  1001. }
  1002. })
  1003. } else {
  1004. this.$message.warning(res.message);
  1005. }
  1006. })
  1007. } else {
  1008. console.log('error submit!!');
  1009. return false;
  1010. }
  1011. });
  1012. } else if (this.titleText == '编辑') {
  1013. this.$refs[formName].validate((valid) => {
  1014. if (valid) {
  1015. let obj = this.tongZhiForm;
  1016. obj.persId = localStorage.getItem("userid");
  1017. request.post('/bis/insp/rect/update', obj).then((res) => {
  1018. if (res.success) {
  1019. this.tongZhiRowId = res.data.id;
  1020. this.$nextTick(() => {
  1021. if (this.$refs.uploadFile.submitUpload(res.data.id)) {
  1022. this.removeNewSupervision();
  1023. this.$message.success('编辑通知成功');
  1024. }
  1025. })
  1026. } else {
  1027. this.$message.warning(res.message);
  1028. }
  1029. })
  1030. } else {
  1031. console.log('error submit!!');
  1032. return false;
  1033. }
  1034. });
  1035. }
  1036. },
  1037. searchClick() {
  1038. this.$nextTick(() => {
  1039. this.getPblmList();
  1040. })
  1041. },
  1042. // dialog通知弹窗关闭
  1043. closeDialog(){
  1044. this.getNoticeList();
  1045. },
  1046. removeNewSupervision(arg) {
  1047. if(arg){
  1048. console.log(arg);
  1049. let data = arg[arg.length - 1];
  1050. this.uploadAfter(data);
  1051. }
  1052. },
  1053. // 文件预览
  1054. rowPreview(row){
  1055. window.open(`${hostUrl}${row.filePath}`, "_blank");
  1056. },
  1057. //批次预览
  1058. toPreview(row) {
  1059. window.open(`${hostUrl}${row.url}`, "_blank");
  1060. },
  1061. //删除批次附件
  1062. deleteFiles(row) {
  1063. this.$confirm('确定删除该附件吗?', '提示', {
  1064. confirmButtonText: '确定',
  1065. cancelButtonText: '取消',
  1066. type: 'warning'
  1067. }).then(() => {
  1068. request.post(`/bis/insp/rect/setFileNull/${row.fileId}`).then(res => {
  1069. if (res.success) {
  1070. this.fileListPiCi = [];
  1071. this.ifFileList = true;
  1072. this.$message.success('附件删除成功');
  1073. }
  1074. })
  1075. }).catch(() => {
  1076. })
  1077. },
  1078. //删除下发附件
  1079. deleteFile(rowId){
  1080. request.post(`/tac/pblm/rect/org/setFileNull/${rowId}`)
  1081. .then(res =>{
  1082. if(res.success){
  1083. this.$message({
  1084. type: 'success',
  1085. message: '删除成功'
  1086. })
  1087. this.getYiShengYiDanList();
  1088. }else{
  1089. this.$message.warning(res.message);
  1090. }
  1091. })
  1092. },
  1093. //文件删除
  1094. rowDelete(row){
  1095. return this.$confirm(`确定移除 ${row.fileName}?`).then(() => {
  1096. if(row.fileId){
  1097. request.post(`/file/${row.fileId}`).then((res) => {
  1098. if (res.success) {
  1099. this.deleteFile(row.id);
  1100. } else {
  1101. this.$alert("删除失败!", '提示', {
  1102. confirmButtonText: '确定',
  1103. type: 'warning'
  1104. })
  1105. }
  1106. })
  1107. }else{
  1108. this.$message.warning('fileId不能为空');
  1109. }
  1110. }).catch(() => {
  1111. this.$message({
  1112. type: 'info',
  1113. message: '已取消删除'
  1114. });
  1115. });
  1116. }
  1117. ,
  1118. //通知查询
  1119. searchNotice(){
  1120. this.getNoticeList();
  1121. },
  1122. select_handler_province() {
  1123. this.$nextTick(() => {
  1124. this.tongZhiForm.rectOrgName = this.$refs.selectProvince.selectedLabel;
  1125. });
  1126. },
  1127. typesListFy(row){
  1128. if(row){
  1129. this.typesList.forEach(ele => {
  1130. if (ele.code == row) {
  1131. row = ele.name;
  1132. }
  1133. });
  1134. return row;
  1135. }else{
  1136. return '';
  1137. }
  1138. },
  1139. // 通知表格里附件预览
  1140. previewAttachment(row){
  1141. window.open(`${hostUrl}${row.filePath}`, "_blank");
  1142. },
  1143. closeDialogAddPblm(){
  1144. this.addPblmDialog = false;
  1145. },
  1146. //问题查看
  1147. toViewRow(row){
  1148. this.rowId = row.id;
  1149. this.rowPblId = row.pblmId;
  1150. this.supervisionDetailsVisible = true;
  1151. },
  1152. // 审核
  1153. toCheckRow(row){
  1154. request.get(`/bis/insp/rect/pblm/${row.id}`)
  1155. .then(res =>{
  1156. if(res.success){
  1157. this.checkForm.id = res.data.id;
  1158. this.checkForm.chkState = res.data.chkState;
  1159. this.checkForm.note = res.data.note;
  1160. this.checkVisible = true;
  1161. }else{
  1162. this.$message.warning(res.message);
  1163. }
  1164. })
  1165. .catch(err =>{
  1166. console.log(err);
  1167. })
  1168. },
  1169. // 审核确定
  1170. checkConfirm(){
  1171. request.post(`/bis/insp/rect/pblm/update`,this.checkForm)
  1172. .then(res =>{
  1173. if(res.success){
  1174. this.checkVisible = false;
  1175. this.$message.success("保存成功");
  1176. this.getPblmList();
  1177. }else{
  1178. this.$message.warning(res.message);
  1179. }
  1180. })
  1181. },
  1182. stateClick(row){
  1183. if(row.bisInspRectLogList.length){
  1184. this.stateVisible = true;
  1185. this.stateLogList = row.bisInspRectLogList;
  1186. }else{
  1187. this.$message.warning('暂无通知状态信息');
  1188. }
  1189. }
  1190. },
  1191. watch: {
  1192. // 'addForm': {
  1193. // deep: true,
  1194. // handler: function () {
  1195. // this.getNoticeList();
  1196. // }
  1197. // }
  1198. }
  1199. }
  1200. </script>
  1201. <style lang="scss">
  1202. .rectify_reform{
  1203. .inspPblmCate{
  1204. padding: 2px 10px;
  1205. color: #fff;
  1206. -webkit-border-radius: 10px;
  1207. -moz-border-radius: 10px;
  1208. border-radius: 10px;
  1209. }
  1210. .notice_title{
  1211. .el-input--mini .el-input__inner,.el-select-dropdown__list{
  1212. width: 8vw;
  1213. }
  1214. }
  1215. .rowClassP{
  1216. span {
  1217. color: #3399ff;
  1218. margin-left: 15px;
  1219. cursor: pointer;
  1220. }
  1221. span:first-child{
  1222. cursor: default;
  1223. margin-left: 0;
  1224. color: rgb(51, 51, 51);
  1225. }
  1226. span:last-child{
  1227. color: red;
  1228. }
  1229. }
  1230. .state_style{
  1231. span{
  1232. color: blue;
  1233. cursor: pointer;
  1234. &:hover{
  1235. border-bottom: 1px solid blue;
  1236. }
  1237. }
  1238. }
  1239. }
  1240. </style>