cc3ad241826ce3b3ecdeafaee79a8c4026c07dcd.svn-base 44 KB

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