b76d481f0049c9fed08d78404e3de822945f12b1.svn-base 47 KB

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