8f6f4fd01d1585cb736d679241ad4339a2cfc4c7.svn-base 50 KB

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