0b3f75f341bff722006bc21f2f49a94ae9a7a014.svn-base 48 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378
  1. <template>
  2. <el-container class="sddc_sendnotice">
  3. <el-main>
  4. <el-card class="box-card" :style="{'height': cardHeight + 'px','overflow-y':'auto'}">
  5. <el-row :gutter="20" type="flex" justify="start" class="notice_title">
  6. <el-col :span="24">
  7. <el-form :inline="true" size="mini" class="demo-form-inline" label-width="75px">
  8. <el-form-item label="年度">
  9. <el-date-picker
  10. clearable
  11. v-model="search.year"
  12. type="year"
  13. style="width: 140px"
  14. format="yyyy"
  15. value-format="yyyy"
  16. placeholder="选择年">
  17. </el-date-picker>
  18. </el-form-item>
  19. <el-form-item label="行政区划">
  20. <addvSearch
  21. clearable
  22. style="width: 140px"
  23. v-model="adName"
  24. :maxHeight='300'
  25. :maxWidth='250'
  26. :rootAddCode='curAdcode_long'
  27. :level='"3"'
  28. :nameOrCode="'name'"
  29. @addvTreeNodeClick = "addvCodeChange"
  30. ></addvSearch>
  31. </el-form-item>
  32. <el-form-item label="督察类型">
  33. <el-select v-model="search.objType" placeholder="请选择督查类型" style="width: 140px" clearable>
  34. <el-option
  35. v-for="item in dcTypeList"
  36. :key="item.code"
  37. :label="item.inspName"
  38. :value="item.inspType">
  39. </el-option>
  40. </el-select>
  41. </el-form-item>
  42. <el-form-item label="整改状态">
  43. <el-select v-model="search.crtState" style="width: 140px" clearable>
  44. <el-option
  45. v-for="item in crtStateList"
  46. :key="item.value"
  47. :label="item.name"
  48. :value="item.value">
  49. </el-option>
  50. </el-select>
  51. </el-form-item>
  52. <el-form-item label="问题状态">
  53. <el-select v-model="search.pblmState" @change="pblmStateChange" style="width: 140px" clearable>
  54. <el-option
  55. v-for="item in rectificationStatus"
  56. :key="item.value"
  57. :label="item.name"
  58. :value="item.value">
  59. </el-option>
  60. </el-select>
  61. </el-form-item>
  62. <el-form-item label="对象名称">
  63. <el-input
  64. style="width: 140px"
  65. placeholder="请输入对象名称"
  66. v-model="search.objName"
  67. clearable>
  68. </el-input>
  69. </el-form-item>
  70. <el-form-item label="问题类别:">
  71. <el-select v-model="search.pblmNameBz" clearable style="width: 140px" placeholder="请选择">
  72. <el-option
  73. v-for="item in problemList"
  74. :key="item.guid"
  75. :label="item.inspPblmsName"
  76. :value="item.inspPblmsName"
  77. ></el-option>
  78. </el-select>
  79. </el-form-item>
  80. <el-button type="primary" size="mini" @click="searchBtn">查询</el-button>
  81. <p style="display: flex;float:right;padding-bottom: 10px;line-height: 30px;">
  82. <span style="width: 60px;text-align: right;font-size: 14px;color:#606266;" v-if="search.pblmState=='3'">接收县:</span>
  83. <receiver
  84. v-if="search.pblmState=='3'"
  85. :max-height="100"
  86. :max-width="200"
  87. v-model="tranOrgName"
  88. :rootAddCode="orgIdDefault"
  89. @provTreeSelectChange="tranOrgChange1"
  90. @inputClear="tranOrgClear"
  91. ></receiver>
  92. <span style="width: 50px;text-align: right;font-size: 14px;color:#606266;" v-if="search.pblmState=='3' || search.pblmState=='6' || search.pblmState=='8'">备注:</span>
  93. <el-input id="remarkReason" style="width:300px;" v-model="remark" placeholder="请输入下发或驳回备注" v-if="search.pblmState=='3' || search.pblmState=='6' || search.pblmState=='8'"></el-input>
  94. <el-button type="primary" size="mini" @click.stop="batchSend()" v-if="search.pblmState=='3'">批量下发</el-button>
  95. <el-button type="primary" size="mini" @click.stop="batchBack()" v-if="search.pblmState=='6'">批量驳回</el-button>
  96. <el-button type="primary" size="mini" @click.stop="batchReturn()" v-if="search.pblmState=='3' || search.pblmState=='6' || search.pblmState=='8'">批量反馈</el-button>
  97. </p>
  98. </el-form>
  99. </el-col>
  100. </el-row>
  101. <div>
  102. <el-table
  103. border
  104. ref="zgTable"
  105. :height="tableHeight"
  106. :data="tableData"
  107. tooltip-effect="dark"
  108. style="width: 100%"
  109. v-loading="loading" @selection-change="handleSelectionSend"
  110. >
  111. <el-table-column
  112. type="selection"
  113. width="55">
  114. </el-table-column>
  115. <el-table-column
  116. header-align="center"
  117. align="center"
  118. min-width="60"
  119. prop="province"
  120. label="省" v-if="isXj"
  121. show-overflow-tooltip
  122. ></el-table-column>
  123. <el-table-column
  124. header-align="center"
  125. align="center"
  126. min-width="60"
  127. prop="city"
  128. :label="ownAdName"
  129. show-overflow-tooltip
  130. ></el-table-column>
  131. <el-table-column
  132. header-align="center"
  133. align="center"
  134. min-width="60"
  135. prop="country"
  136. label="县"
  137. v-if="isXj"
  138. show-overflow-tooltip
  139. ></el-table-column>
  140. <el-table-column
  141. header-align="center"
  142. align="center"
  143. min-width="60"
  144. prop="pblmNub"
  145. label="印发文号"
  146. show-overflow-tooltip
  147. ></el-table-column>
  148. <el-table-column
  149. header-align="center"
  150. align="center"
  151. min-width="60"
  152. prop="pblmNubName"
  153. label="印发文号文件名"
  154. show-overflow-tooltip
  155. ></el-table-column>
  156. <el-table-column
  157. header-align="center"
  158. align="center"
  159. min-width="60"
  160. prop="dutyName"
  161. label="责任处室"
  162. show-overflow-tooltip
  163. ></el-table-column>
  164. <el-table-column
  165. header-align="center"
  166. align="center"
  167. min-width="60"
  168. prop="objType"
  169. label="督察类型"
  170. :formatter="objTypeDict"
  171. show-overflow-tooltip
  172. ></el-table-column>
  173. <el-table-column
  174. header-align="center"
  175. align="center"
  176. min-width="60"
  177. prop="objName"
  178. label="对象名称"
  179. show-overflow-tooltip
  180. ></el-table-column>
  181. <el-table-column
  182. header-align="center"
  183. align="center"
  184. min-width="60"
  185. prop="pblmNameBz"
  186. label="问题类别"
  187. show-overflow-tooltip
  188. ></el-table-column>
  189. <el-table-column
  190. header-align="center"
  191. align="center"
  192. min-width="60"
  193. prop="checkPointBz"
  194. label="检查项目"
  195. show-overflow-tooltip
  196. ></el-table-column>
  197. <el-table-column
  198. header-align="center"
  199. align="center"
  200. min-width="60"
  201. prop="pblmDescBz"
  202. label="问题描述"
  203. show-overflow-tooltip
  204. ></el-table-column>
  205. <el-table-column
  206. header-align="center"
  207. align="center"
  208. min-width="60"
  209. prop="inspPblmDesc"
  210. label="详细描述"
  211. show-overflow-tooltip
  212. ></el-table-column>
  213. <el-table-column
  214. header-align="center"
  215. align="center"
  216. min-width="60"
  217. prop="inspPblmCate"
  218. label="严重程度"
  219. show-overflow-tooltip
  220. >
  221. <template slot-scope="scope">
  222. <span v-if="scope.row.inspPblmCate=='0'">一般</span>
  223. <span v-if="scope.row.inspPblmCate=='1'">较重</span>
  224. <span v-if="scope.row.inspPblmCate=='2'">严重</span>
  225. <span v-if="scope.row.inspPblmCate=='3'">特别严重</span>
  226. </template>
  227. </el-table-column>
  228. <el-table-column
  229. header-align="center"
  230. align="center"
  231. min-width="60"
  232. prop="pblmTm"
  233. label="上报时间"
  234. :formatter="formatDate"
  235. show-overflow-tooltip
  236. ></el-table-column>
  237. <el-table-column
  238. header-align="center"
  239. align="center"
  240. min-width="60"
  241. prop="pblmCrtm"
  242. label="整改时限"
  243. :formatter="formatDate"
  244. show-overflow-tooltip
  245. ></el-table-column>
  246. <el-table-column
  247. header-align="center"
  248. align="center"
  249. min-width="60"
  250. prop="inspPblmCate"
  251. label="整改建议"
  252. show-overflow-tooltip
  253. ></el-table-column>
  254. <el-table-column
  255. header-align="center"
  256. align="center"
  257. min-width="60"
  258. prop="isRect"
  259. label="是否反馈"
  260. show-overflow-tooltip
  261. >
  262. <template slot-scope="scope">
  263. <span v-if="scope.row.isRect=='0'">否</span>
  264. <span v-if="scope.row.isRect=='1'">是</span>
  265. </template>
  266. </el-table-column>
  267. <el-table-column
  268. header-align="center"
  269. align="center"
  270. min-width="60"
  271. prop="pblmPltm"
  272. label="预计完成时间"
  273. :formatter="formatDate"
  274. show-overflow-tooltip
  275. ></el-table-column>
  276. <el-table-column
  277. header-align="center"
  278. align="center"
  279. min-width="60"
  280. prop="pblmActm"
  281. :formatter="formatDate"
  282. label="实际完成整改日期"
  283. show-overflow-tooltip
  284. ></el-table-column>
  285. <el-table-column
  286. header-align="center"
  287. align="center"
  288. min-width="60"
  289. prop="crtState"
  290. label="问题整改状态"
  291. show-overflow-tooltip
  292. >
  293. <template slot-scope="scope">
  294. <span v-if="scope.row.crtState=='0'">未整改</span>
  295. <span v-if="scope.row.crtState=='1'">整改中</span>
  296. <span v-if="scope.row.crtState=='2'">整改完成</span>
  297. <span v-if="scope.row.crtState=='3'">不具备整改条件</span>
  298. </template>
  299. </el-table-column>
  300. <el-table-column
  301. header-align="center"
  302. align="center"
  303. min-width="60"
  304. prop="crtState"
  305. label="问题整改状态"
  306. show-overflow-tooltip
  307. >
  308. <template slot-scope="scope">
  309. <span>{{formatPblmState(scope.row.pblmState)}}</span>
  310. </template>
  311. </el-table-column>
  312. <el-table-column
  313. header-align="center"
  314. align="center"
  315. min-width="60"
  316. prop="crtInfo"
  317. label="问题整改信息说明"
  318. show-overflow-tooltip
  319. ></el-table-column>
  320. <el-table-column
  321. header-align="center"
  322. align="center"
  323. min-width="60"
  324. prop="crtNote"
  325. label="问题整改备注"
  326. show-overflow-tooltip
  327. ></el-table-column>
  328. <el-table-column
  329. header-align="center"
  330. align="center"
  331. min-width="60"
  332. prop="pblmOut"
  333. label="是否销号"
  334. show-overflow-tooltip
  335. >
  336. <template slot-scope="scope">
  337. <span v-if="scope.row.pblmOut=='0'">否</span>
  338. <span v-if="scope.row.pblmOut=='1'">是</span>
  339. </template>
  340. </el-table-column>
  341. <el-table-column
  342. header-align="center"
  343. align="center"
  344. min-width="60"
  345. prop="recvOrgName"
  346. label="接收单位"
  347. show-overflow-tooltip
  348. ></el-table-column>
  349. <el-table-column
  350. align="center"
  351. min-width="300"
  352. label="操作"
  353. fixed="right"
  354. show-overflow-tooltip
  355. >
  356. <template slot-scope="scope">
  357. <span>
  358. <el-button type="primary" size="mini" @click.stop="editorRow(scope.row)">编辑</el-button>
  359. <el-button type="primary" size="mini" @click.stop="showImgList(scope.row.objName,scope.row.pblmId)">问题图片</el-button>
  360. <el-button type="primary" size="mini" @click.stop="showProvImgList(scope.row.id)">佐证图片</el-button>
  361. </span>
  362. </template>
  363. </el-table-column>
  364. </el-table>
  365. <el-row>
  366. <el-col :span="24">
  367. <el-pagination
  368. background
  369. :pager-count="5"
  370. :current-page="search.pageNum"
  371. :page-size="search.pageSize"
  372. :page-sizes="[10, 20, 30, 40, 50, 100]"
  373. layout="sizes, total, prev, pager, next"
  374. :total="total"
  375. @current-change="handleCurrentChange"
  376. @size-change="handleSizeChange"
  377. ></el-pagination>
  378. </el-col>
  379. </el-row>
  380. </div>
  381. </el-card>
  382. </el-main>
  383. <el-dialog title="编辑整改问题项" :visible.sync="dialogZgPlbmVisible" :close-on-click-modal="false" width="60%" @close="closeZgDialog">
  384. <el-form size="mini" label-width="150px">
  385. <el-row>
  386. <el-col :span="12">
  387. <el-form-item label="请输入印发文号">
  388. <el-input
  389. readonly="readonly"
  390. placeholder="请输入印发文号"
  391. v-model="updateObj.pblmNub"
  392. clearable>
  393. </el-input>
  394. </el-form-item>
  395. </el-col>
  396. <el-col :span="12">
  397. <el-form-item label="请输入印发文号名称">
  398. <el-input
  399. readonly="readonly"
  400. placeholder="请输入印发文号名称"
  401. v-model="updateObj.pblmNubName"
  402. clearable>
  403. </el-input>
  404. </el-form-item>
  405. </el-col>
  406. </el-row>
  407. <el-row>
  408. <el-col :span="12">
  409. <el-form-item label="请输入责任处室">
  410. <el-input
  411. readonly="readonly"
  412. placeholder="请输入责任处室"
  413. v-model="updateObj.dutyName"
  414. clearable>
  415. </el-input>
  416. </el-form-item>
  417. </el-col>
  418. <el-col :span="12">
  419. <el-form-item label="请选择整改时限">
  420. <el-date-picker
  421. disabled
  422. v-model="updateObj.pblmCrtm"
  423. type="date"
  424. format="yyyy-MM-dd"
  425. value-format="yyyy-MM-dd"
  426. placeholder="请选择整改时限">
  427. </el-date-picker>
  428. </el-form-item>
  429. </el-col>
  430. </el-row>
  431. <el-row>
  432. <el-col :span="12">
  433. <el-form-item label="请选择督察类型">
  434. <el-select v-model="updateObj.objType" disabled placeholder="请选择督查类型" clearable>
  435. <el-option
  436. v-for="item in dcTypeList"
  437. :key="item.code"
  438. :label="item.inspName"
  439. :value="item.inspType">
  440. </el-option>
  441. </el-select>
  442. </el-form-item>
  443. </el-col>
  444. <el-col :span="12">
  445. <el-form-item label="请输入督察对象">
  446. <el-input
  447. readonly="readonly"
  448. placeholder="请输入督察对象"
  449. v-model="updateObj.objName"
  450. clearable>
  451. </el-input>
  452. </el-form-item>
  453. </el-col>
  454. </el-row>
  455. <el-row>
  456. <el-col :span="12">
  457. <el-form-item label="问题类别">
  458. <el-input
  459. readonly="readonly"
  460. placeholder="请输入问题类别"
  461. v-model="updateObj.pblmNameBz"
  462. clearable>
  463. </el-input>
  464. </el-form-item>
  465. </el-col>
  466. <el-col :span="12">
  467. <el-form-item label="检查项目">
  468. <el-input
  469. readonly="readonly"
  470. placeholder="请输入检查项目"
  471. v-model="updateObj.checkPointBz"
  472. clearable>
  473. </el-input>
  474. </el-form-item>
  475. </el-col>
  476. </el-row>
  477. <el-row>
  478. <el-col :span="12">
  479. <el-form-item label="问题描述">
  480. <el-input
  481. readonly="readonly"
  482. placeholder="请输入问题描述"
  483. v-model="updateObj.pblmDescBz"
  484. clearable>
  485. </el-input>
  486. </el-form-item>
  487. </el-col>
  488. <el-col :span="12">
  489. <el-form-item label="详细描述">
  490. <el-input
  491. readonly="readonly"
  492. placeholder="请输入详细描述"
  493. v-model="updateObj.inspPblmDesc"
  494. clearable>
  495. </el-input>
  496. </el-form-item>
  497. </el-col>
  498. </el-row>
  499. <el-row>
  500. <el-col :span="12">
  501. <el-form-item label="严重程度">
  502. <el-select v-model="updateObj.inspPblmCate" disabled placeholder="请选择严重程度" clearable>
  503. <el-option
  504. readonly="readonly"
  505. v-for="item in inspPblmCateList"
  506. :label="item.name"
  507. :value="item.value">
  508. </el-option>
  509. </el-select>
  510. </el-form-item>
  511. </el-col>
  512. <el-col :span="12">
  513. <el-form-item label="上报时间">
  514. <el-date-picker
  515. disabled
  516. v-model="updateObj.pblmTm"
  517. type="date"
  518. format="yyyy-MM-dd"
  519. value-format="yyyy-MM-dd"
  520. placeholder="请选择上报时间">
  521. </el-date-picker>
  522. </el-form-item>
  523. </el-col>
  524. </el-row>
  525. <el-row>
  526. <el-col :span="12">
  527. <el-form-item label="整改建议">
  528. <el-input type="textarea" disabled v-model="updateObj.pblmReason" placeholder="请输入整改建议"></el-input>
  529. </el-form-item>
  530. </el-col>
  531. <el-col :span="12">
  532. <el-form-item label="是否反馈">
  533. <el-select v-model="updateObj.isRect" disabled placeholder="请选择是否反馈" clearable>
  534. <el-option
  535. v-for="item in isRectList"
  536. :label="item.name"
  537. :value="item.value">
  538. </el-option>
  539. </el-select>
  540. </el-form-item>
  541. </el-col>
  542. </el-row>
  543. <el-row>
  544. <el-col :span="12">
  545. <el-form-item label="预计完成时间">
  546. <el-date-picker
  547. v-model="updateObj.pblmPltm"
  548. type="date"
  549. format="yyyy-MM-dd"
  550. value-format="yyyy-MM-dd"
  551. placeholder="请选择预计完成时间">
  552. </el-date-picker>
  553. </el-form-item>
  554. </el-col>
  555. <el-col :span="12">
  556. <el-form-item label="实际完成时间">
  557. <el-date-picker
  558. v-model="updateObj.pblmActm"
  559. type="date"
  560. format="yyyy-MM-dd"
  561. value-format="yyyy-MM-dd"
  562. placeholder="实际完成时间">
  563. </el-date-picker>
  564. </el-form-item>
  565. </el-col>
  566. </el-row>
  567. <el-row>
  568. <el-col :span="12">
  569. <el-form-item label="整改状态">
  570. <el-select v-model="updateObj.crtState" placeholder="请选择整改状态" clearable>
  571. <el-option
  572. v-for="item in crtStateList"
  573. :label="item.name"
  574. :value="item.value">
  575. </el-option>
  576. </el-select>
  577. </el-form-item>
  578. </el-col>
  579. <el-col :span="12">
  580. <el-form-item label="整改信息说明">
  581. <el-input type="textarea" v-model="updateObj.crtInfo"></el-input>
  582. </el-form-item>
  583. </el-col>
  584. </el-row>
  585. <el-row>
  586. <el-col :span="12">
  587. <el-form-item label="问题状态">
  588. <el-select v-model="updateObj.pblmState" disabled placeholder="请选择问题状态" clearable>
  589. <el-option
  590. readonly="readonly"
  591. v-for="item in rectificationStatus"
  592. :label="item.name"
  593. :value="item.value">
  594. </el-option>
  595. </el-select>
  596. </el-form-item>
  597. </el-col>
  598. <el-col :span="12">
  599. <el-form-item label="接收单位">
  600. <el-input
  601. readonly="readonly"
  602. placeholder="请输入接收单位"
  603. v-model="updateObj.recvOrgName"
  604. clearable>
  605. </el-input>
  606. </el-form-item>
  607. </el-col>
  608. </el-row>
  609. <el-row>
  610. <el-col :span="12">
  611. <el-form-item label="接收县">
  612. <receiver
  613. :max-height="100"
  614. :max-width="200"
  615. v-model="updateObj.tranOrgName"
  616. :rootAddCode="orgIdDefault"
  617. @provTreeSelectChange="tranOrgChange"
  618. @inputClear="tranOrgClear1"
  619. ></receiver>
  620. </el-form-item>
  621. </el-col>
  622. <el-col :span="12">
  623. <el-form-item label="佐证材料">
  624. <el-button type="primary" size="mini" @click.stop="queryImgs()">查看佐证材料</el-button>
  625. </el-form-item>
  626. </el-col>
  627. </el-row>
  628. <el-row>
  629. <el-col>
  630. <el-table
  631. border
  632. ref="zgTable"
  633. :height="300"
  634. :data="tableDataLog"
  635. tooltip-effect="dark"
  636. style="width: 100%"
  637. >
  638. <el-table-column align="center" type="index" label="序号" min-width="25">
  639. <template slot-scope="scope">{{(scope.$index + 1) }}</template>
  640. </el-table-column>
  641. <el-table-column
  642. header-align="center"
  643. align="center"
  644. prop="orgNm"
  645. label="操作机构名称"
  646. show-overflow-tooltip
  647. ></el-table-column>
  648. <el-table-column
  649. header-align="center"
  650. align="center"
  651. prop="persName"
  652. label="操作人员名称"
  653. show-overflow-tooltip
  654. ></el-table-column>
  655. <el-table-column
  656. header-align="center"
  657. align="center"
  658. prop="stateNote"
  659. label="状态描述"
  660. show-overflow-tooltip
  661. ></el-table-column>
  662. <el-table-column
  663. header-align="center"
  664. align="center"
  665. prop="note"
  666. label="备注或驳回原因"
  667. show-overflow-tooltip
  668. ></el-table-column>
  669. <el-table-column
  670. header-align="center"
  671. align="center"
  672. prop="intm"
  673. :formatter="formatDate"
  674. label="创建时间"
  675. show-overflow-tooltip
  676. ></el-table-column>
  677. </el-table>
  678. </el-col>
  679. </el-row>
  680. <el-row>
  681. <el-col>
  682. <span style="color:red;font-size: 10px;">下方备注显示的是当前最新的下发或被驳回的备注信息,可修改它为当前下发或驳回操作添加备注,各级备注会在上面流程信息表格内查看</span>
  683. </el-col>
  684. </el-row>
  685. <el-row>
  686. <el-col>
  687. <el-input type="textarea" v-model="updateObj.crtNote" placeholder="请输入驳回原因或下发备注"></el-input>
  688. </el-col>
  689. </el-row>
  690. <div style="width: 100%;display: flex;align-items: center;padding-top: 10px;justify-content: center">
  691. <el-button type="primary" @click="submitEdit" style="margin-right: 100px;" v-if="updateObj.pblmState=='3' || updateObj.pblmState=='6' || updateObj.pblmState=='8'">保存基本信息</el-button>
  692. <el-button type="primary" size="mini" v-if="updateObj.pblmState=='3'" @click.stop="submitRow()">下发</el-button>
  693. <el-button type="primary" size="mini" v-if="updateObj.pblmState=='3' || updateObj.pblmState=='6' || updateObj.pblmState=='8'" @click.stop="returnBtn()">反馈</el-button>
  694. <el-button type="primary" size="mini" v-if="updateObj.pblmState=='6'" @click.stop="backBtn()">驳回</el-button>
  695. </div>
  696. </el-form>
  697. </el-dialog>
  698. <add-pic-com v-if="jqmmDialogShow" :dialogTitle="'相关材料'" :jqmmEngId="jqmmEngId" :type="zgType" @jqmmDialogClose="jqmmDialogClose"></add-pic-com>
  699. <!-- 详情弹框 -->
  700. <el-dialog
  701. class="outerDialog custom_dialog"
  702. :title="currentPblmNm"
  703. width="60%"
  704. :visible.sync="PblmDetailsVisible"
  705. >
  706. <pblmsDetailsImgs :problemId="currentProblemId"></pblmsDetailsImgs>
  707. <span slot="footer">
  708. <el-button style="margin-top:5px;" @click="PblmDetailsVisible = false">返回</el-button>
  709. </span>
  710. </el-dialog>
  711. </el-container>
  712. </template>
  713. <script>
  714. import request from '@util/gw_ajax_request'
  715. import addvSearch from "@widget/addvSearch.vue"
  716. import receiver from "./receiver"
  717. import addPicCom from "./addPic.vue"
  718. import {curAdcode_long} from '@util/global_variable.js'
  719. export default {
  720. name: "rectificationNotice",
  721. props: [],
  722. data() {
  723. return {
  724. cardHeight: window.innerHeight - 120,
  725. tableData: [],
  726. tableHeight: window.innerHeight - 270,
  727. loading: false,
  728. pageSize: 20,
  729. pageNum: 1,
  730. total:0,
  731. adName:"",
  732. dialogZgPlbmVisible:false,
  733. search:{
  734. pageSize: 20,
  735. pageNum: 1,
  736. year:"",
  737. objAdCode:"",
  738. objType:"",
  739. objName:"",
  740. crtState:"",
  741. pblmState:"",
  742. pblmNameBz:""
  743. },
  744. updateObj:{
  745. pblmId:"",
  746. pblmNub:"",
  747. pblmNubName:"",
  748. dutyName:"",
  749. objType:"",
  750. objName:"",
  751. pblmNameBz:"",
  752. checkPointBz:"",
  753. pblmDescBz:"",
  754. inspPblmDesc:"",
  755. inspPblmCate:"",
  756. pblmTm:"",
  757. pblmCrtm:"",
  758. pblmPltm:"",
  759. pblmActm:"",
  760. crtState:"",
  761. crtInfo:"",
  762. crtNote:"",
  763. pblmOut:"",
  764. recvOrgName:"",
  765. tranOrgId:"",
  766. tranOrgName:""
  767. },
  768. dcTypeList:[],
  769. inspPblmCateList:[
  770. {
  771. name:"一般",
  772. value:"0"
  773. },
  774. {
  775. name:"较重",
  776. value:"1"
  777. },
  778. {
  779. name:"严重",
  780. value:"2"
  781. },
  782. {
  783. name:"特别严重",
  784. value:"3"
  785. }
  786. ],
  787. isRectList:[
  788. {
  789. name:"否",
  790. value:"0"
  791. },
  792. {
  793. name:"是",
  794. value:"1"
  795. }
  796. ],
  797. pblmOutList:[
  798. {
  799. name:"否",
  800. value:"0"
  801. },
  802. {
  803. name:"是",
  804. value:"1"
  805. }
  806. ],
  807. crtStateList:[
  808. {
  809. name:"未整改",
  810. value:"0"
  811. },
  812. {
  813. name:"整改中",
  814. value:"1"
  815. },
  816. {
  817. name:"整改完成",
  818. value:"2"
  819. },
  820. {
  821. name:"不具备整改条件",
  822. value:"3"
  823. }
  824. ],
  825. rectificationStatus:[
  826. {
  827. name:"业务处室问题未提交",
  828. value:"0"
  829. },
  830. {
  831. name:"业务处室提交问题到监督处",
  832. value:"1"
  833. },
  834. {
  835. name:"监督处驳回业务处室问题",
  836. value:"2"
  837. },
  838. {
  839. name:"监督处下发到地市",
  840. value:"3"
  841. },
  842. {
  843. name:"市级提交反馈",
  844. value:"4"
  845. },
  846. {
  847. name:"市转发县",
  848. value:"5"
  849. },
  850. {
  851. name:"县反馈到市",
  852. value:"6"
  853. },
  854. {
  855. name:"市驳回到县",
  856. value:"7"
  857. },
  858. {
  859. name:"业务处室驳回",
  860. value:"8"
  861. },
  862. {
  863. name:"业务处室审核通过",
  864. value:"9"
  865. },
  866. {
  867. name:"监督处归档-销号",
  868. value:"10"
  869. },
  870. {
  871. name:"监督处归档-待复查",
  872. value:"11"
  873. }
  874. ],
  875. problemList:[],
  876. //弹框选择问题
  877. PblmDetailsVisible:false,
  878. currentProblemId:"",
  879. currentPblmNm:"",
  880. mulSelectCollection:[],
  881. recvOrgName:"",
  882. recvOrgId:"",
  883. tableDataLog:[],
  884. remark:"",
  885. isCurrentStep:false,
  886. mulSelectionSend:[],
  887. jqmmDialogShow:"",
  888. jqmmEngId:"",
  889. zgType:"",
  890. tranOrgName:"",
  891. tranOrgId:"",
  892. orgIdDefault:""
  893. }
  894. },
  895. components: {
  896. addvSearch:addvSearch,
  897. receiver:receiver,
  898. pblmsDetailsImgs: resolve => {
  899. require(["../duChaWenTi/PblmDetailsImgs.vue"], resolve);
  900. },
  901. addPicCom:addPicCom
  902. },
  903. computed: {
  904. curAdcode_long(){
  905. return curAdcode_long
  906. },
  907. orgId() {
  908. return localStorage.getItem('currentOrgId') ? localStorage.getItem("currentOrgId") : "";
  909. }
  910. },
  911. activated() {
  912. },
  913. created(){
  914. this.getTypes();
  915. this.getproblemSmallType();
  916. },
  917. mounted(){
  918. this.getNoticeList();
  919. },
  920. methods: {
  921. queryImgs(){
  922. this.jqmmDialogShow = true;
  923. this.jqmmEngId = this.updateObj.id;
  924. this.zgType = "zgFllow";
  925. },
  926. jqmmDialogClose() {
  927. this.jqmmDialogShow = false;
  928. },
  929. pblmStateChange(){
  930. this.getNoticeList();
  931. this.mulSelectionSend = [];
  932. // this.isCurrentStep = false;
  933. // if(this.search.pblmState=='3' || this.search.pblmState=='6'){
  934. // this.isCurrentStep = true;
  935. // }
  936. },
  937. batchSend(){
  938. if(this.tranOrgName=="" || this.tranOrgName==null || this.tranOrgId==null || this.tranOrgId==""){
  939. this.$message({
  940. message: '请选择接收县!',
  941. type: 'warning'
  942. });
  943. return
  944. }
  945. if(this.mulSelectionSend!=null && this.mulSelectionSend.length>0){
  946. for(var i = 0;i<this.mulSelectionSend.length;i++){
  947. this.mulSelectionSend[i].pblmState = "5";
  948. this.mulSelectionSend[i].tranOrgName = this.tranOrgName;
  949. this.mulSelectionSend[i].tranOrgId = this.tranOrgId;
  950. }
  951. var _self = this;
  952. this.$confirm('确定要下发到县, 是否继续?', '提示', {
  953. confirmButtonText: '确定',
  954. cancelButtonText: '取消',
  955. type: 'warning'
  956. }).then(() => {
  957. request.post(`/bis/insp/pblm/plist/updateList`,_self.mulSelectionSend)
  958. .then(res => {
  959. if (res.success) {
  960. _self.getNoticeList();
  961. _self.mulSelectionSend = [];
  962. _self.search.pblmState = "";
  963. _self.remark = "";
  964. // _self.isCurrentStep = false;
  965. }
  966. })
  967. .catch(err => {
  968. console.log(err);
  969. })
  970. }).catch(() => {
  971. });
  972. }else{
  973. this.$message({
  974. message: '请选择数据!',
  975. type: 'warning'
  976. });
  977. return
  978. }
  979. },
  980. batchReturn(){
  981. if(this.mulSelectionSend!=null && this.mulSelectionSend.length>0){
  982. for(var i = 0;i<this.mulSelectionSend.length;i++){
  983. this.mulSelectionSend[i].pblmState = "4";
  984. }
  985. var _self = this;
  986. this.$confirm('确定要提交反馈到业务处室, 是否继续?', '提示', {
  987. confirmButtonText: '确定',
  988. cancelButtonText: '取消',
  989. type: 'warning'
  990. }).then(() => {
  991. request.post(`/bis/insp/pblm/plist/updateList`,_self.mulSelectionSend)
  992. .then(res => {
  993. if (res.success) {
  994. _self.getNoticeList();
  995. _self.mulSelectionSend = [];
  996. _self.search.pblmState = "";
  997. _self.remark = "";
  998. // _self.isCurrentStep = false;
  999. }
  1000. })
  1001. .catch(err => {
  1002. console.log(err);
  1003. })
  1004. }).catch(() => {
  1005. });
  1006. }else{
  1007. this.$message({
  1008. message: '请选择数据!',
  1009. type: 'warning'
  1010. });
  1011. return
  1012. }
  1013. },
  1014. batchBack(){
  1015. if(this.remark==null || this.remark==""){
  1016. this.$message({
  1017. message: '请输入驳回备注!',
  1018. type: 'warning'
  1019. });
  1020. return
  1021. }
  1022. if(this.mulSelectionSend!=null && this.mulSelectionSend.length>0){
  1023. for(var i = 0;i<this.mulSelectionSend.length;i++){
  1024. this.mulSelectionSend[i].pblmState = "7";
  1025. }
  1026. var _self = this;
  1027. this.$confirm('确定要驳回到县, 是否继续?', '提示', {
  1028. confirmButtonText: '确定',
  1029. cancelButtonText: '取消',
  1030. type: 'warning'
  1031. }).then(() => {
  1032. request.post(`/bis/insp/pblm/plist/updateList`,_self.mulSelectionSend)
  1033. .then(res => {
  1034. if (res.success) {
  1035. _self.getNoticeList();
  1036. _self.mulSelectionSend = [];
  1037. _self.search.pblmState = "";
  1038. _self.remark = "";
  1039. // _self.isCurrentStep = false;
  1040. }
  1041. })
  1042. .catch(err => {
  1043. console.log(err);
  1044. })
  1045. }).catch(() => {
  1046. });
  1047. }else{
  1048. this.$message({
  1049. message: '请选择数据!',
  1050. type: 'warning'
  1051. });
  1052. return
  1053. }
  1054. },
  1055. handleSelectionSend(val){
  1056. this.mulSelectionSend = val;
  1057. },
  1058. showImgList(nm,id){
  1059. this.PblmDetailsVisible = true;
  1060. this.currentPblmNm = nm;
  1061. this.currentProblemId = id;
  1062. },
  1063. showProvImgList(id){
  1064. this.jqmmDialogShow = true;
  1065. this.jqmmEngId = id;
  1066. this.zgType = "zgFllow";
  1067. },
  1068. returnBtn(){
  1069. var _self = this;
  1070. _self.updateObj.pblmState = "4";
  1071. this.$confirm('确定要反馈到业务处室, 是否继续?', '提示', {
  1072. confirmButtonText: '确定',
  1073. cancelButtonText: '取消',
  1074. type: 'warning'
  1075. }).then(() => {
  1076. request.post(`/bis/insp/pblm/plist/`,_self.updateObj)
  1077. .then(res => {
  1078. if (res.success) {
  1079. _self.getNoticeList();
  1080. _self.dialogZgPlbmVisible = false;
  1081. _self.updateObj = {};
  1082. }
  1083. })
  1084. .catch(err => {
  1085. console.log(err);
  1086. })
  1087. }).catch(() => {
  1088. });
  1089. },
  1090. backBtn(){
  1091. var _self = this;
  1092. _self.updateObj.pblmState = "7";
  1093. this.$confirm('确定要驳回到县, 是否继续?', '提示', {
  1094. confirmButtonText: '确定',
  1095. cancelButtonText: '取消',
  1096. type: 'warning'
  1097. }).then(() => {
  1098. request.post(`/bis/insp/pblm/plist/`,_self.updateObj)
  1099. .then(res => {
  1100. if (res.success) {
  1101. _self.getNoticeList();
  1102. _self.dialogZgPlbmVisible = false;
  1103. _self.updateObj = {};
  1104. }
  1105. })
  1106. .catch(err => {
  1107. console.log(err);
  1108. })
  1109. }).catch(() => {
  1110. });
  1111. },
  1112. submitRow(){
  1113. var _self = this;
  1114. if(this.updateObj.tranOrgName=="" || this.updateObj.tranOrgName==null || this.updateObj.tranOrgId==null || this.updateObj.tranOrgId==""){
  1115. this.$message({
  1116. message: '请选择接收县!',
  1117. type: 'warning'
  1118. });
  1119. return
  1120. }
  1121. _self.updateObj.pblmState = "5";
  1122. this.$confirm('确定要下发到县, 是否继续?', '提示', {
  1123. confirmButtonText: '确定',
  1124. cancelButtonText: '取消',
  1125. type: 'warning'
  1126. }).then(() => {
  1127. request.post(`/bis/insp/pblm/plist/`,_self.updateObj)
  1128. .then(res => {
  1129. if (res.success) {
  1130. _self.getNoticeList();
  1131. _self.dialogZgPlbmVisible = false;
  1132. _self.updateObj = {};
  1133. }
  1134. })
  1135. .catch(err => {
  1136. console.log(err);
  1137. })
  1138. }).catch(() => {
  1139. });
  1140. },
  1141. formatDate(row, column){
  1142. var d = row[column.property];
  1143. if(d==null || d==""){
  1144. return "";
  1145. }
  1146. var date = new Date(d);
  1147. return date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate();
  1148. },
  1149. formatDate1(d){
  1150. if(d==null || d==""){
  1151. return "";
  1152. }
  1153. var date = new Date(d);
  1154. return date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate();
  1155. },
  1156. submitEdit(){
  1157. var _self = this;
  1158. this.$confirm('确定要提交修改的数据, 是否继续?', '提示', {
  1159. confirmButtonText: '确定',
  1160. cancelButtonText: '取消',
  1161. type: 'warning'
  1162. }).then(() => {
  1163. request.post(`/bis/insp/pblm/plist/`,_self.updateObj)
  1164. .then(res => {
  1165. if (res.success) {
  1166. _self.getNoticeList();
  1167. _self.dialogZgPlbmVisible = false;
  1168. _self.updateObj = {};
  1169. _self.search = {};
  1170. }
  1171. })
  1172. .catch(err => {
  1173. console.log(err);
  1174. })
  1175. }).catch(() => {
  1176. _self.loading = false;
  1177. });
  1178. },
  1179. editorRow(row){
  1180. var _self = this;
  1181. _self.updateObj = row;
  1182. _self.updateObj.pblmCrtm = this.formatDate1(row.pblmCrtm);
  1183. _self.updateObj.pblmTm = this.formatDate1(row.pblmTm);
  1184. _self.updateObj.pblmPltm = this.formatDate1(row.pblmPltm);
  1185. _self.updateObj.pblmActm = this.formatDate1(row.pblmActm);
  1186. _self.tableDataLog = row.bisInspPblmPlistLogs;
  1187. _self.dialogZgPlbmVisible = true;
  1188. },
  1189. deleteRow(id){
  1190. var _self = this;
  1191. this.$confirm('确定要删除当前数据, 是否继续?', '提示', {
  1192. confirmButtonText: '确定',
  1193. cancelButtonText: '取消',
  1194. type: 'warning'
  1195. }).then(() => {
  1196. request.post(`/bis/insp/pblm/plist/delete/`+id)
  1197. .then(res => {
  1198. if (res.success) {
  1199. _self.getNoticeList();
  1200. }
  1201. })
  1202. .catch(err => {
  1203. console.log(err);
  1204. })
  1205. }).catch(() => {
  1206. });
  1207. },
  1208. formatPblmState(val){
  1209. var name = "";
  1210. for(var i = 0;i<this.rectificationStatus.length;i++){
  1211. if(val==this.rectificationStatus[i].value){
  1212. name = this.rectificationStatus[i].name;
  1213. }
  1214. }
  1215. return name;
  1216. },
  1217. showDetails(nm,id){
  1218. this.PblmDetailsVisible = true;
  1219. this.currentPblmNm = nm;
  1220. this.currentProblemId = id;
  1221. },
  1222. objTypeDict(d){
  1223. var name = "";
  1224. for(var i = 0;i<this.dcTypeList.length;i++){
  1225. if(parseInt(this.dcTypeList[i].inspType)==d.objType){
  1226. name = this.dcTypeList[i].inspName;
  1227. }
  1228. }
  1229. return name;
  1230. },
  1231. //通知List
  1232. getNoticeList() {
  1233. this.loading = true;
  1234. var _self = this;
  1235. request.post(`/bis/insp/pblm/plist/recvGetList`, _self.search)
  1236. .then(res => {
  1237. if (res.success) {
  1238. _self.tableData = res.data.list;
  1239. _self.total = res.data.total;
  1240. _self.loading = false;
  1241. }
  1242. })
  1243. .catch(err => {
  1244. _self.loading = false;
  1245. })
  1246. },
  1247. addvCodeChange(data){
  1248. this.search.objAdCode = data.id;
  1249. },
  1250. tranOrgChange(data){
  1251. this.updateObj.tranOrgId = data.code;
  1252. this.updateObj.tranOrgName = data.name;
  1253. },
  1254. tranOrgChange1(data){
  1255. this.tranOrgId = data.code;
  1256. this.tranOrgName = data.name;
  1257. },
  1258. tranOrgClear1(){
  1259. this.updateObj.tranOrgId = "";
  1260. this.updateObj.tranOrgName = "";
  1261. },
  1262. tranOrgClear(){
  1263. this.tranOrgId = "";
  1264. this.tranOrgName = "";
  1265. },
  1266. searchBtn(){
  1267. this.loading = true;
  1268. this.getNoticeList();
  1269. this.mulSelectionSend = [];
  1270. // this.isCurrentStep = false;
  1271. // if(this.search.pblmState=='3' || this.search.pblmState=='6'){
  1272. // this.isCurrentStep = true;
  1273. // }
  1274. },
  1275. getTypes() {
  1276. var _self = this;
  1277. request.get(`/bis/insp/rel/org/insp/type/getInspTypeByOrgId/${this.orgId}`)
  1278. .then(res => {
  1279. if (res.success) {
  1280. _self.dcTypeList = res.data;
  1281. }
  1282. })
  1283. },
  1284. getproblemSmallType() {
  1285. let result = [];
  1286. request.get('/dc/insp/pblms/getPblmType', {
  1287. params: {
  1288. type: ""
  1289. }
  1290. }).then(res => {
  1291. if (res.success) {
  1292. res.data.forEach((ele) => {
  1293. let haveinspPblmsName = false;
  1294. result.forEach((inspPblm) => {
  1295. if (inspPblm['inspPblmsName'] == ele.inspPblmsName) {
  1296. let havechekPoint = false;
  1297. inspPblm['checkPoints'].forEach((chekPoint) => {
  1298. if (chekPoint['checkPointName'] == ele.checkPoint) {
  1299. havechekPoint = true;
  1300. }
  1301. });
  1302. if (!havechekPoint) {
  1303. let newCheckPoint = {};
  1304. newCheckPoint['checkPointName'] = ele.checkPoint;
  1305. newCheckPoint['sort2'] = ele.sort2;
  1306. newCheckPoint['guid'] = ele.guid;
  1307. inspPblm['checkPoints'].push(newCheckPoint);
  1308. }
  1309. haveinspPblmsName = true;
  1310. }
  1311. });
  1312. if (!haveinspPblmsName) {
  1313. let haveinspPblmsObj = {};
  1314. haveinspPblmsObj['inspPblmsName'] = ele.inspPblmsName;
  1315. haveinspPblmsObj['sort1'] = ele.sort1;
  1316. haveinspPblmsObj['checkPoints'] = [{
  1317. checkPointName: ele.checkPoint,
  1318. sort2: ele.sort2,
  1319. guid: ele.guid
  1320. }];
  1321. result.push(haveinspPblmsObj);
  1322. }
  1323. })
  1324. this.problemList = result;
  1325. }
  1326. })
  1327. },
  1328. handleCurrentChange(val) {
  1329. this.search.pageNum = val;
  1330. this.getNoticeList();
  1331. },
  1332. handleSizeChange(val) {
  1333. this.search.pageSize = val;
  1334. this.getNoticeList();
  1335. },
  1336. closeZgDialog(){
  1337. this.dialogZgPlbmVisible = false;
  1338. }
  1339. },
  1340. watch: {
  1341. }
  1342. }
  1343. </script>
  1344. <style lang="scss">
  1345. .sddc_sendnotice {
  1346. .inspPblmCate {
  1347. padding: 2px 10px;
  1348. color: #fff;
  1349. -webkit-border-radius: 10px;
  1350. -moz-border-radius: 10px;
  1351. border-radius: 10px;
  1352. }
  1353. .notice_title {
  1354. .el-input--mini .el-input__inner, .el-select-dropdown__list {
  1355. width: 8vw;
  1356. }
  1357. }
  1358. .rowClassP {
  1359. span {
  1360. color: #3399ff;
  1361. margin-left: 15px;
  1362. cursor: pointer;
  1363. }
  1364. }
  1365. }
  1366. #remarkReason{
  1367. width: 280px!important;
  1368. }
  1369. </style>