5a963ccdf421c7e07ad10479188a5dc02a64e06d.svn-base 56 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354
  1. <template>
  2. <div class="dctb_sh">
  3. <el-container>
  4. <el-aside
  5. width="320px"
  6. style="border-right:2px solid #d5d5ff;float:left"
  7. :style="{'max-height':testHeight+'px','height':testHeight+'px'}"
  8. >
  9. <div
  10. class="tree"
  11. style="height: 100%"
  12. width="100%"
  13. overflow="auto"
  14. display="inline-flex;"
  15. >
  16. <el-tree
  17. :highlight-current="true"
  18. style="height:100%;"
  19. :data="treeData"
  20. node-key="id"
  21. show-checkbox
  22. :expand-on-click-node="false"
  23. @check-change="handleCheckChange"
  24. ref="jigou_tree"
  25. >
  26. <div class="custom-tree-node" slot-scope="{ node, data }">
  27. <span style="float:left;">{{data.name}}</span>
  28. </div>
  29. </el-tree>
  30. </div>
  31. </el-aside>
  32. <el-main id="dxdcListMain" style="padding:5px 20px;">
  33. <div style="line-height: 50px">
  34. <!-- <h3 style="text-align: center;">水毁修复项目暗访情况表 -->
  35. <!-- <el-button type="primary" @click="toAddMember('添加')" style="float: right;margin: 10px 0 10px;"><i class="el-icon-circle-plus"></i> 添加</el-button> -->
  36. <!-- </h3> -->
  37. </div>
  38. <!-- <div>
  39. <el-form :inline="true" class="demo-form-inline" size="mini">
  40. <el-form-item label="行政区">
  41. <el-select v-model="searchObj.locAd" clearable filterable placeholder="请选择">
  42. <el-option
  43. v-for="item in provList"
  44. :key="item.adCode"
  45. :label="item.adName"
  46. :value="item.adCode">
  47. </el-option>
  48. </el-select>
  49. </el-form-item>
  50. <el-form-item label="项目名称">
  51. <el-input style="width:160px;" v-model="searchObj.wtdstNm" clearable placeholder="输入项目名称"></el-input>
  52. </el-form-item>
  53. <el-form-item label="项目进度">
  54. <el-select v-model="searchObj.wkstate" clearable placeholder="请选择" >
  55. <el-option
  56. v-for="item in TrackProgress"
  57. :key="item.value"
  58. :label="item.label"
  59. :value="item.value">
  60. </el-option>
  61. </el-select>
  62. </el-form-item>
  63. <el-form-item label="督查状态">
  64. <el-select v-model="searchObj.state" clearable placeholder="督查状态">
  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-select>
  69. </el-form-item>
  70. <el-form-item>
  71. <el-button type="primary" @click="onSubmit">查询</el-button>
  72. </el-form-item>
  73. </el-form>
  74. </div>-->
  75. <el-row :gutter="10" style="margin: 5px -5px 0px -5px ;">
  76. <el-col :span="24">
  77. <el-form
  78. :inline="true"
  79. size="mini"
  80. class="demo-form-inline"
  81. style="padding-left: 10px;"
  82. >
  83. <el-form-item label="督查状态">
  84. <el-select v-model="searchObj.state" clearable placeholder="督查状态">
  85. <el-option label="未督查" value="0"></el-option>
  86. <el-option label="督查中" value="1"></el-option>
  87. <el-option label="已督查" value="2"></el-option>
  88. </el-select>
  89. </el-form-item>
  90. <!-- <el-form-item label="检查单位">
  91. <el-select
  92. v-model="searchObj.chkComId"
  93. clearable
  94. placeholder="检查单位"
  95. >
  96. <el-option
  97. v-for="item in lyjg1"
  98. :key="item.id"
  99. :label="item.pnm"
  100. :value="item.id"
  101. ></el-option>
  102. </el-select>
  103. </el-form-item> -->
  104. <!-- <el-form-item label="行政区名称"> -->
  105. <!-- <el-input v-model="searchObj.adNm" clearable placeholder="行政区名称" style="width:130px"></el-input> -->
  106. <!-- <addvSearch
  107. style="width:130px"
  108. v-model="searchObj.adNm"
  109. :maxHeight="300"
  110. :maxWidth="250"
  111. :rootAddCode='"000000000000"'
  112. :level='"3"'
  113. :nameOrCode="'name'"
  114. ></addvSearch>
  115. </el-form-item> -->
  116. <el-form-item label="水毁名称">
  117. <el-input
  118. v-model="searchObj.wtdstNm"
  119. clearable
  120. placeholder="请输入水毁名称"
  121. style="width:130px"
  122. ></el-input>
  123. </el-form-item>
  124. <el-form-item label="督查时间">
  125. <div style="display: flex;">
  126. <el-date-picker
  127. v-model="dateRange"
  128. type="daterange"
  129. value-format="yyyy-MM-dd"
  130. style="width:100%"
  131. range-separator="至"
  132. start-placeholder="开始日期"
  133. end-placeholder="结束日期"
  134. ></el-date-picker>
  135. </div>
  136. </el-form-item>
  137. <el-form-item>
  138. <el-button type="primary" @click="onSubmit" icon="el-icon-search">查询</el-button>
  139. </el-form-item>
  140. </el-form>
  141. </el-col>
  142. </el-row>
  143. <el-table
  144. :data="wtdsTrackList"
  145. :height="dxdcMainHeight+'px'"
  146. style="width: 100%"
  147. border
  148. tooltip-effect="dark"
  149. >
  150. <el-table-column align="center" type="index" label="序号" min-width="45">
  151. <template
  152. slot-scope="scope"
  153. >{{ (pageIndex - 1) * pageSize + (scope.$index + 1) }}</template>
  154. </el-table-column>
  155. <el-table-column
  156. align="center"
  157. prop="province"
  158. label="省" v-if="isXj"
  159. show-overflow-tooltip
  160. min-width="120"
  161. ></el-table-column>
  162. <el-table-column
  163. align="center"
  164. prop="city"
  165. :label="ownAdName"
  166. show-overflow-tooltip
  167. min-width="120"
  168. ></el-table-column>
  169. <el-table-column
  170. align="center"
  171. show-overflow-tooltip
  172. prop="county"
  173. label="县(区)"
  174. min-width="120"
  175. ></el-table-column>
  176. <!-- <el-table-column
  177. align="center"
  178. show-overflow-tooltip
  179. prop="chkCom"
  180. label="检查单位"
  181. min-width="120"
  182. ></el-table-column> -->
  183. <!-- <el-table-column
  184. align="center"
  185. show-overflow-tooltip
  186. prop="groupNm"
  187. label="所在组"
  188. min-width="100"
  189. ></el-table-column> -->
  190. <el-table-column
  191. align="center"
  192. sortable
  193. show-overflow-tooltip
  194. prop="intm"
  195. label="暗访日期"
  196. min-width="110"
  197. ></el-table-column>
  198. <el-table-column
  199. prop="wtdstNm"
  200. align="center"
  201. label="项目名称"
  202. show-overflow-tooltip
  203. min-width="200"
  204. ></el-table-column>
  205. <el-table-column prop="state" label="督查状态" align="center" min-width="130">
  206. <template slot-scope="scope">
  207. <span
  208. style="padding: 3px 10px;background:#FBB56D;border-radius:15px;color:rgba(255,255,255,1)"
  209. v-if="scope.row.state == 1"
  210. >督查中</span>
  211. <span
  212. style="padding: 3px 10px;background:#63C25E;border-radius:15px;color:rgba(255,255,255,1)"
  213. v-else-if="scope.row.state == 2"
  214. >已督查</span>
  215. <span
  216. style="padding: 3px 10px;background:#F56C6C;border-radius:15px;color:rgba(255,255,255,1)"
  217. v-else
  218. >未督查</span>
  219. </template>
  220. </el-table-column>
  221. <el-table-column
  222. align="center"
  223. prop="wtdstType"
  224. label="项目类别"
  225. min-width="150"
  226. show-overflow-tooltip
  227. ></el-table-column>
  228. <!-- <el-table-column
  229. prop="engScal"
  230. label="县(市、区)" v-if="isXj"
  231. width="180">
  232. </el-table-column>-->
  233. <el-table-column
  234. align="center"
  235. prop="mangNm"
  236. label="主管单位"
  237. show-overflow-tooltip
  238. min-width="150"
  239. ></el-table-column>
  240. <el-table-column
  241. align="center"
  242. prop="loac"
  243. label="位置"
  244. show-overflow-tooltip
  245. min-width="150"
  246. ></el-table-column>
  247. <el-table-column
  248. align="center"
  249. prop="disContent"
  250. label="水毁情况"
  251. show-overflow-tooltip
  252. min-width="500"
  253. ></el-table-column>
  254. <el-table-column align="center" prop="wkstate" label="项目进度" min-width="90">
  255. <template slot-scope="scope">
  256. <span>{{scope.row.wkstate == '2' ? '待开工' : scope.row.wkstate == '1' ? '正修复' : scope.row.wkstate == '0' ? '已修复' : scope.row.wkstate}}</span>
  257. </template>
  258. </el-table-column>
  259. <el-table-column align="center" prop="planTm" label="计划完成日期" min-width="160"></el-table-column>
  260. <el-table-column align="center" prop="problmNum" label="问题数量" min-width="90"></el-table-column>
  261. <el-table-column
  262. align="center"
  263. prop="adNm"
  264. label="建议措施"
  265. show-overflow-tooltip
  266. min-width="160"
  267. ></el-table-column>
  268. <el-table-column
  269. align="center"
  270. prop="note"
  271. label="备注"
  272. show-overflow-tooltip
  273. min-width="160"
  274. ></el-table-column>
  275. <el-table-column align="center" label="操作" min-width="160" fixed="right">
  276. <template slot-scope="scope">
  277. <el-button
  278. size="mini"
  279. type="success"
  280. plain
  281. @click="sHInfo(scope.row,'dcInfo')"
  282. >查看</el-button>
  283. </template>
  284. </el-table-column>
  285. </el-table>
  286. <el-footer id="dxdcFooter" style="margin-top: 10px">
  287. <el-pagination
  288. background
  289. @current-change="handleCurrentChange"
  290. @size-change="handleSizeChange"
  291. :pager-count="5"
  292. :current-page.sync="pageIndex"
  293. :page-size="pageSize"
  294. :page-sizes="[10, 20, 30, 40, 50, 100]"
  295. layout="sizes, total, prev, pager, next"
  296. :total="total"
  297. ></el-pagination>
  298. </el-footer>
  299. </el-main>
  300. </el-container>
  301. <!-- 添加/编辑人员弹窗 -->
  302. <el-dialog :title="this.editObj.wtdstNm + ' 督查填报'" :visible.sync="dialogFormVisible">
  303. <el-container style="height:660px;">
  304. <el-main style="border:1px solid #d5d5ff;margin-left:5px;padding:0px;">
  305. <p style="font-weight:bolder;background-color:#d5d5ff;padding:3px;">信息填报</p>
  306. <el-form :model="addObj" :label-width="formLabelWidth">
  307. <p style=";margin-top:10px;margin-bottom: 10px">
  308. <i class="el-icon-caret-right"></i>
  309. <span style="width:120px;padding-left: 10px">基本信息</span>
  310. <el-button
  311. type="danger"
  312. plain
  313. style="float: right;margin-right: 20px"
  314. @click="dialogFormVisible2 = true"
  315. >纠错</el-button>
  316. <el-button
  317. type="warning"
  318. style="float: right;margin-right: 10px"
  319. @click="recentAppearance"
  320. >近期面貌</el-button>
  321. <el-button type="warning" style="float: right;" @click="imageClick">影像</el-button>
  322. </p>
  323. <el-form-item label="项目名称" :rules="{required: true}">
  324. <el-input
  325. v-model="editObj.wtdstNm"
  326. autocomplete="off"
  327. disabled
  328. style="width:70%;"
  329. ></el-input>
  330. </el-form-item>
  331. <el-form-item label="项目类别" :rules="{required: true}">
  332. <el-input
  333. v-model="editObj.wtdstType"
  334. autocomplete="off"
  335. disabled
  336. style="width:70%;"
  337. ></el-input>
  338. </el-form-item>
  339. <el-form-item label="所在地点" :rules="{required: true}">
  340. <el-input
  341. v-model="editObj.locNm"
  342. autocomplete="off"
  343. disabled
  344. style="width:70%;"
  345. ></el-input>
  346. </el-form-item>
  347. <p style=";margin-top:10px;margin-bottom: 10px">
  348. <i class="el-icon-caret-right"></i>
  349. <span style="width:120px;padding-left: 10px">调研信息</span>
  350. <span class="hrs"></span>
  351. </p>
  352. <el-form-item label="主管单位" :rules="{required: true}">
  353. <el-input v-model="addObj.mangNm" autocomplete="off" style="width:70%;"></el-input>
  354. </el-form-item>
  355. <el-form-item label="位置" :rules="{required: true}">
  356. <el-input v-model="addObj.loac" autocomplete="off" style="width:70%;"></el-input>
  357. </el-form-item>
  358. <el-form-item label="水毁情况" :rules="{required: true}">
  359. <el-input
  360. v-model="addObj.disContent"
  361. :rows="3"
  362. type="textarea"
  363. autocomplete="off"
  364. style="width:70%;"
  365. :readonly="isReadonly"
  366. ></el-input>
  367. </el-form-item>
  368. <el-form-item label="项目进度" :rules="{required: true}">
  369. <el-select
  370. v-model="addObj.wkstate"
  371. placeholder="请选择"
  372. style="width:70%;"
  373. >
  374. <el-option
  375. v-for="item in TrackProgress"
  376. :key="item.value"
  377. :label="item.label"
  378. :value="item.value"
  379. ></el-option>
  380. </el-select>
  381. </el-form-item>
  382. <el-form-item label="计划完成日期" :rules="{required: true}">
  383. <el-date-picker
  384. v-model="addObj.planTm"
  385. type="date"
  386. placeholder="选择日期"
  387. value-format="yyyy-MM-dd"
  388. style="width:70%;"
  389. ></el-date-picker>
  390. </el-form-item>
  391. <el-form-item label="上报问题">
  392. <!-- <el-tag type="warning" style="cursor:pointer;" ><p @click="dialogFormVisible4 = true;">问题数:{{addObj.problmNum}}</p></el-tag> -->
  393. <i
  394. class="el-icon-circle-plus"
  395. @click="dialogFormVisible3 = true;"
  396. style="color: #ff6100;cursor: pointer;"
  397. ></i>
  398. <!-- <el-input v-model="addObj.problmNum" autocomplete="off" style="width:70%;"></el-input> -->
  399. </el-form-item>
  400. <el-form-item label="建议措施">
  401. <el-input
  402. type="textarea"
  403. :rows="2"
  404. v-model="addObj.adNm"
  405. autocomplete="off"
  406. style="width:70%;"
  407. ></el-input>
  408. </el-form-item>
  409. <el-form-item label="备注">
  410. <el-input
  411. type="textarea"
  412. :rows="2"
  413. v-model="addObj.note"
  414. autocomplete="off"
  415. style="width:70%;"
  416. ></el-input>
  417. </el-form-item>
  418. <!-- <el-form-item label="记录人员">
  419. <el-input v-model="addObj.recPers2" autocomplete="off" style="width:70%;"></el-input>
  420. </el-form-item>-->
  421. </el-form>
  422. </el-main>
  423. </el-container>
  424. <div slot="footer" class="dialog-footer">
  425. <el-button @click="dialogFormVisible = false">取 消</el-button>
  426. <el-button type="primary" @click="addMember">确 定</el-button>
  427. </div>
  428. </el-dialog>
  429. <el-dialog :title="''" :visible.sync="dialogFormVisible2">
  430. <el-container style="height:200px;">
  431. <el-main style="border:1px solid #d5d5ff;margin-left:5px;padding:0px;">
  432. <el-form :model="addObj" :label-width="formLabelWidth">
  433. <p style=";margin-top:10px;margin-bottom: 10px">
  434. <i class="el-icon-caret-right"></i>
  435. <span style="width:120px;padding-left: 10px">基本信息</span>
  436. <span class="hrs"></span>
  437. </p>
  438. <el-form-item label="项目名称" :rules="{required: true}">
  439. <el-input
  440. v-model="editObj.wtdstNm"
  441. autocomplete="off"
  442. style="width:70%;"
  443. ></el-input>
  444. </el-form-item>
  445. <el-form-item label="项目类别" :rules="{required: true}">
  446. <el-input
  447. v-model="editObj.wtdstType"
  448. autocomplete="off"
  449. style="width:70%;"
  450. ></el-input>
  451. </el-form-item>
  452. <el-form-item label="所在地点" :rules="{required: true}">
  453. <el-input v-model="editObj.locNm" autocomplete="off" style="width:70%;"></el-input>
  454. </el-form-item>
  455. </el-form>
  456. </el-main>
  457. </el-container>
  458. <div slot="footer" class="dialog-footer">
  459. <el-button @click="dialogFormVisible2 = false">取 消</el-button>
  460. <el-button type="primary" @click="addBaseinfo">确 定</el-button>
  461. </div>
  462. </el-dialog>
  463. <el-dialog :title="''" :visible.sync="dialogFormVisible3">
  464. <el-container style="height:400px;">
  465. <el-main style="border:1px solid #d5d5ff;margin-left:5px;padding:0px;">
  466. <el-form :model="addObj" :label-width="formLabelWidth">
  467. <p style=";margin-top:10px;margin-bottom: 10px">
  468. <i class="el-icon-caret-right"></i>
  469. <span style="width:120px;padding-left: 10px">新增问题</span>
  470. <span class="hrs"></span>
  471. </p>
  472. <el-form-item label="问题类型" :rules="{required: true}">
  473. <el-select v-model="pblmTypeId" placeholder="请选择">
  474. <el-option
  475. v-for="item in options"
  476. :key="item.guid"
  477. :label="item.inspPblmsName"
  478. :value="item.guid"
  479. ></el-option>
  480. </el-select>
  481. </el-form-item>
  482. <!-- <el-form-item label="严重程度" >
  483. <el-radio v-model="problemForm.inspPblmCate" label="0">一般</el-radio>
  484. <el-radio v-model="problemForm.inspPblmCate" label="1">较重</el-radio>
  485. <el-radio v-model="problemForm.inspPblmCate" label="2">严重</el-radio>
  486. </el-form-item>-->
  487. <el-form-item label="典型问题">
  488. <el-radio v-model="problemForm.ifCasePblm" label="1">是</el-radio>
  489. <el-radio v-model="problemForm.ifCasePblm" label="0">否</el-radio>
  490. </el-form-item>
  491. <el-form-item label="发现问题" :rules="{required: true}">
  492. <el-select v-model="pblmsTypeId" placeholder="请选择">
  493. <el-option
  494. v-for="item in options1"
  495. :key="item.guid"
  496. :label="item.inspPblmsName"
  497. :value="item.guid"
  498. ></el-option>
  499. </el-select>
  500. </el-form-item>
  501. <el-form-item label="问题描述" :rules="{required: false}">
  502. <el-input
  503. type="textarea"
  504. v-model="problemForm.inspPblmDesc"
  505. autocomplete="off"
  506. style="width:70%;"
  507. ></el-input>
  508. </el-form-item>
  509. <el-form-item label="建议措施" :rules="{required: false}">
  510. <el-input
  511. type="textarea"
  512. v-model="problemForm.note"
  513. autocomplete="off"
  514. style="width:70%;"
  515. ></el-input>
  516. </el-form-item>
  517. <el-form-item label="相关文件" :rules="{required: false}">
  518. <upload
  519. ref="uploadFile"
  520. :url="`/pdcApi/file/insert?bizId=`"
  521. @uploadOver="removeNewSupervision"
  522. ></upload>
  523. </el-form-item>
  524. </el-form>
  525. </el-main>
  526. </el-container>
  527. <div slot="footer" class="dialog-footer">
  528. <el-button @click="dialogFormVisible3 = false">取 消</el-button>
  529. <el-button type="primary" @click="addProblem">确 定</el-button>
  530. </div>
  531. </el-dialog>
  532. <el-dialog :title="''" :visible.sync="dialogFormVisible4">
  533. <el-container style="height:400px;">
  534. <el-main style="border:1px solid #d5d5ff;margin-left:5px;padding:0px;">
  535. <el-table
  536. :data="tableData"
  537. style="width: 100%;max-height:92%;overflow:auto;"
  538. height="500"
  539. >
  540. <el-table-column
  541. align="center"
  542. show-overflow-tooltip
  543. prop="index"
  544. label="序号"
  545. min-width="70"
  546. ></el-table-column>
  547. <el-table-column
  548. align="center"
  549. show-overflow-tooltip
  550. prop="persName"
  551. label="问题来源"
  552. min-width="80"
  553. ></el-table-column>
  554. <el-table-column
  555. align="center"
  556. show-overflow-tooltip
  557. prop="sex1"
  558. label="问题类别"
  559. width="80"
  560. ></el-table-column>
  561. <el-table-column
  562. align="center"
  563. show-overflow-tooltip
  564. prop="persCode"
  565. label="发现问题"
  566. ></el-table-column>
  567. <el-table-column
  568. align="center"
  569. show-overflow-tooltip
  570. prop="mobilenumb"
  571. label="问题描述"
  572. min-width="100"
  573. ></el-table-column>
  574. <el-table-column
  575. align="center"
  576. show-overflow-tooltip
  577. prop="orgName"
  578. label="上报人员"
  579. min-width="80"
  580. ></el-table-column>
  581. <el-table-column
  582. align="center"
  583. show-overflow-tooltip
  584. prop="personType"
  585. label="上报时间"
  586. min-width="80"
  587. ></el-table-column>
  588. <el-table-column
  589. align="center"
  590. show-overflow-tooltip
  591. prop="admDuty"
  592. label="建议措施"
  593. min-width="80"
  594. ></el-table-column>
  595. <el-table-column
  596. align="center"
  597. show-overflow-tooltip
  598. prop="admDuty"
  599. label="附件"
  600. min-width="80"
  601. ></el-table-column>
  602. </el-table>
  603. </el-main>
  604. </el-container>
  605. </el-dialog>
  606. <!--近期面貌-->
  607. <theRecentAppearance
  608. v-if="jqmmShow"
  609. @jqmmDialogClose="jqmmDialog"
  610. :jqmmShow="jqmmShow"
  611. :jqmmEngId="editObj.wtdstId"
  612. :dialogTitle="editObj.wtdstNm + '近期面貌'"
  613. ></theRecentAppearance>
  614. <!--影像弹窗-->
  615. <el-dialog
  616. :title="editObj.wtdstNm + '影像'"
  617. :visible.sync="imageShow"
  618. append-to-body
  619. :close-on-click-modal="false"
  620. width="60%"
  621. >
  622. <div style="height: 60vh;">
  623. <mapLocation ref="mapRef" v-if="imageShow" :gdX="centerX" :gdY="centerY"></mapLocation>
  624. </div>
  625. </el-dialog>
  626. <!--水毁工程-->
  627. <WaterloggingProject
  628. ref="shRef"
  629. v-if="shInfoDialog"
  630. :shInfoCon="shInfoContent"
  631. @cancelHandler="shCancelHandler"
  632. ></WaterloggingProject>
  633. </div>
  634. </template>
  635. <script>
  636. import request from "../../../utils/gw_ajax_request.js";
  637. import { formatDateTimeD } from "../../../utils/gw_date.js";
  638. import provTreeList from "../../../widgets/provTreeList.vue";
  639. import theRecentAppearance from "../../duChaDuiXiang/theRecentAppearance";
  640. import mapLocation from "../../../views/duChaTianBao/mapLocation";
  641. import addvSearch from "../../../widgets/addvSearch.vue";
  642. import WaterloggingProject from "../../zongHeXinXiOl/components/popupWindow/sh/main.vue";
  643. export default {
  644. components: {
  645. provTreeList: provTreeList,
  646. theRecentAppearance: theRecentAppearance,
  647. mapLocation: mapLocation,
  648. addvSearch,
  649. WaterloggingProject,
  650. upload: resolve => {
  651. require(["../../../widgets/uploadFile.vue"], resolve);
  652. }
  653. },
  654. props: [],
  655. data() {
  656. return {
  657. testHeight: window.innerHeight - 111,
  658. dateRange: [],
  659. groups: [],
  660. groupId: "",
  661. lyjg1: [],
  662. groupName: "",
  663. sttm: "",
  664. ettm: "",
  665. tableData: [],
  666. formData: "",
  667. fileList: [],
  668. options: [],
  669. value: "",
  670. options1: [],
  671. value1: "",
  672. problemForm: {
  673. objId: "",
  674. objType: "3",
  675. villType: "4",
  676. inspPblmName: "",
  677. inspPblmsName: "",
  678. pblmsTypeId: "",
  679. inspPblmCate: "",
  680. inspPblmDesc: "",
  681. pblmStat: "",
  682. dataStat: "",
  683. nm: "",
  684. recPers: "",
  685. note: "",
  686. gwComFiles: [
  687. {
  688. id: "",
  689. filePath: "",
  690. bizId: ""
  691. }
  692. ]
  693. },
  694. pblmsTypeId: "",
  695. pblmTypeId: "",
  696. smallTypeList: [],
  697. dxdcMainHeight: window.innerHeight - 260,
  698. dxdcAsideHeight: window.innerHeight - 90,
  699. formLabelWidth: "120px",
  700. wtdsTrackList: [],
  701. addObj: {
  702. wtdstNm: "",
  703. wtdstType: "",
  704. locNm: "",
  705. mangNm: "",
  706. disContent: "",
  707. wkstate: "",
  708. planTm: "",
  709. adNm: "",
  710. note: "",
  711. inspPblmDesc: ""
  712. },
  713. editObj: {
  714. wtdstNm: "",
  715. wtdstType: "",
  716. locNm: "",
  717. wtdstId: ""
  718. },
  719. curOperate: "",
  720. isReadonly: false,
  721. TrackProgress: [
  722. {
  723. label: "待开工",
  724. value: "2"
  725. },
  726. {
  727. label: "正修复",
  728. value: "1"
  729. },
  730. {
  731. label: "已修复",
  732. value: "0"
  733. }
  734. ],
  735. searchObj: {
  736. state: "",
  737. wtdstNm: "",
  738. locAd: "",
  739. wkstate: "",
  740. pageNum: "",
  741. persGuid: "",
  742. pageSize: this.pageSize,
  743. chkComId: "",
  744. chkCom: "",
  745. groupNm: "",
  746. groupId: "",
  747. startDate: "",
  748. endDate: ""
  749. },
  750. pageIndex: 1,
  751. pageSize: 20,
  752. total: 1,
  753. loading: false,
  754. dialogFormVisible: false,
  755. dialogFormVisible2: false,
  756. dialogFormVisible3: false,
  757. dialogFormVisible4: false,
  758. provList: [],
  759. objId: "",
  760. objName: "",
  761. objType: "",
  762. pblmStat: "",
  763. pblmId: "",
  764. gwComFiles: [],
  765. trackId: "",
  766. trackFrom: {},
  767. treeData: [],
  768. currentNodeId: "",
  769. jqmmShow: false,
  770. jqmmEngId: "",
  771. xxzName: "",
  772. imageShow: false,
  773. centerX: 0,
  774. centerY: 0,
  775. shInfoDialog: false,
  776. shInfoContent: "",
  777. adCodes: [],
  778. name: ''
  779. };
  780. },
  781. computed: {
  782. persId() {
  783. return localStorage.getItem("userid")
  784. ? localStorage.getItem("userid")
  785. : "1098101939614724096";
  786. }
  787. },
  788. mounted() {
  789. this.getAllGroup();
  790. this.getLeftTreeData();
  791. // this.getTrackList();
  792. this.getprovList("000000000000");
  793. this.getType();
  794. },
  795. activated() {
  796. // this.getTrackList();
  797. this.getLeftTreeData();
  798. },
  799. watch: {
  800. // currentNodeId(n, o) {
  801. // this.getTrackList();
  802. // },
  803. groupName(n, o) {
  804. if (n == "") {
  805. this.groupId = "";
  806. }
  807. },
  808. pblmTypeId() {
  809. request
  810. .get("/dc/insp/pblms/getPblmType", {
  811. params: { type: 3, pguid: this.pblmTypeId }
  812. })
  813. .then(res => {
  814. if (res.success) {
  815. this.options1 = res.data;
  816. }
  817. });
  818. this.options.forEach(ele => {
  819. if (this.pblmTypeId == ele.guid) {
  820. this.problemForm.inspPblmName = ele.inspPblmsName;
  821. }
  822. });
  823. },
  824. pblmsTypeId(newVal, oldVal) {
  825. this.options1.forEach(ele => {
  826. if (this.pblmsTypeId == ele.guid) {
  827. this.problemForm.inspPblmsName = ele.inspPblmsName;
  828. }
  829. });
  830. },
  831. adCodes(val) {
  832. if(val.length){
  833. this.getTrackList();
  834. }
  835. }
  836. },
  837. methods: {
  838. //工程列表
  839. getLeftTreeData() {
  840. var _self = this;
  841. _self.lyjg1 = [];
  842. request
  843. .get(
  844. `/bis/insp/BisInspConfigOrgAd/getAdByPersId/${
  845. this.persId
  846. }/3`
  847. )
  848. .then(res => {
  849. let data = res.data;
  850. data.forEach(ele => {
  851. if(ele.id.length == 6){
  852. _self.lyjg1.push(ele);
  853. }
  854. });
  855. console.log(1, data)
  856. data = _self.getTrees(data);
  857. _self.treeData = data;
  858. });
  859. },
  860. treeNodeClickHandler: function(data, node, tree) {
  861. this.currentNodeId = data.id;
  862. },
  863. //格式化树形数据
  864. getTrees(list) {
  865. //@wxcwater重写方法 适应多个树
  866. let highLevelLength = 99; //预设最大节点id长度,目前最大应该为12,所以设置为99保证正常
  867. let _self = this;
  868. list.forEach((item, index) => {
  869. item["pidLength"] =
  870. item.pid && item.pid != "" ? item.pid.length : 0;
  871. if (highLevelLength > item.pidLength) {
  872. highLevelLength = item.pidLength;
  873. }
  874. });
  875. let heightLevelNode = [];
  876. list.forEach((item, index) => {
  877. if (highLevelLength >= item.pidLength) {
  878. heightLevelNode.push(item);
  879. }
  880. });
  881. list.forEach((item, index) => {
  882. heightLevelNode.forEach(pItem => {
  883. _self.addTreeNode(pItem, item);
  884. });
  885. });
  886. return heightLevelNode;
  887. },
  888. addTreeNode: function(treeNode, leafNode) {
  889. let _self = this;
  890. if (!treeNode.hasOwnProperty("children")) {
  891. treeNode["children"] = [];
  892. }
  893. if (leafNode.pid == treeNode.id) {
  894. treeNode.children.push(leafNode);
  895. return;
  896. }
  897. treeNode.children.forEach(item => {
  898. _self.addTreeNode(item, leafNode);
  899. });
  900. },
  901. handleCheckChange() {
  902. this.adCodes = [];
  903. let nodes = this.$refs.jigou_tree.getCheckedNodes();
  904. nodes.forEach(item => {
  905. this.adCodes.push(item.id);
  906. });
  907. },
  908. //获取所有的组
  909. getAllGroup() {
  910. var _self = this;
  911. request
  912. .get("/dc/user/getGroupByPersidNew", {
  913. params: { persid: this.persId, ptype: "3" }
  914. })
  915. .then(res => {
  916. if (res.success) {
  917. _self.groups = res.data;
  918. }
  919. });
  920. },
  921. querySearchAsync(queryString, cb) {
  922. var restaurants = this.groups;
  923. var results = queryString
  924. ? restaurants.filter(this.createStateFilter(queryString))
  925. : restaurants;
  926. clearTimeout(this.timeout);
  927. this.timeout = setTimeout(() => {
  928. cb(results);
  929. }, 1500 * Math.random());
  930. },
  931. createStateFilter(queryString) {
  932. return state => {
  933. return (
  934. state.pnm
  935. .toLowerCase()
  936. .indexOf(queryString.toLowerCase()) != -1
  937. );
  938. };
  939. },
  940. handleSelect(item) {
  941. console.log(item);
  942. this.groupId = item.id;
  943. },
  944. getType() {
  945. request
  946. .get("/dc/insp/pblms/getPblmType", { params: { type: 3 } })
  947. .then(res => {
  948. if (res.success) {
  949. this.options = res.data;
  950. }
  951. });
  952. },
  953. getTrackList() {
  954. if (
  955. this.dateRange &&
  956. this.dateRange.length > 1 &&
  957. this.dateRange[0] != "" &&
  958. this.dateRange[1] != ""
  959. ) {
  960. this.searchObj.startDate = this.dateRange[0];
  961. this.searchObj.endDate = this.dateRange[1];
  962. } else {
  963. delete this.searchObj["startDate"];
  964. delete this.searchObj["endDate"];
  965. }
  966. this.searchObj.pageSize = this.pageSize; //添加每页条目数
  967. this.searchObj.pageNum = this.pageIndex;
  968. this.searchObj.persGuid = this.persId;
  969. this.searchObj.groupId = this.groupId;
  970. // this.searchObj["nodeId"] = this.currentNodeId;
  971. this.searchObj["adCodes"] = this.adCodes.toString();
  972. let paramsObj = this.searchObj;
  973. request
  974. .post("/dc/insp/bisInspWtdst/queryListWithPblm", paramsObj)
  975. .then(res => {
  976. if (res.success) {
  977. this.wtdsTrackList = res.data.list;
  978. this.total = res.data.total;
  979. this.loading = false;
  980. }
  981. });
  982. },
  983. addProblem() {
  984. this.problemForm.recPers = this.persGuid;
  985. this.problemForm.objId = this.objId;
  986. this.problemForm.nm = this.objName;
  987. this.problemForm.pblmsTypeId = this.pblmsTypeId;
  988. this.problemForm.pblmStat = "0";
  989. this.problemForm["regid"] = this.editObj.wtdstId;
  990. request.post("/dc/insp/pblm", this.problemForm).then(res => {
  991. if (res.success) {
  992. this.dialogFormVisible3 = false;
  993. this.pblmId = res.data.pblmId;
  994. this.gwComFiles = [];
  995. this.pblmStat = res.data.pblmStat;
  996. if (this.$refs.uploadFile.submitUpload(res.data.pblmId)) {
  997. this.removeNewSupervision();
  998. }
  999. this.problemForm = {
  1000. objId: "",
  1001. objType: "3",
  1002. villType: "4",
  1003. inspPblmName: "",
  1004. inspPblmsName: "",
  1005. pblmsTypeId: "",
  1006. inspPblmCate: "",
  1007. inspPblmDesc: "",
  1008. pblmStat: "",
  1009. dataStat: "",
  1010. nm: "",
  1011. recPers: "",
  1012. note: "",
  1013. gwComFiles: [
  1014. {
  1015. id: "",
  1016. filePath: "",
  1017. bizId: ""
  1018. }
  1019. ]
  1020. };
  1021. }
  1022. });
  1023. },
  1024. // 文件上传
  1025. submitUpload() {
  1026. this.$refs.upload.submit();
  1027. },
  1028. updatefilelist(arg) {
  1029. request
  1030. .post("/dc/insp/pblm/update", {
  1031. pblmId: this.pblmId,
  1032. gwComFiles: arg,
  1033. pblmStat: this.pblmStat
  1034. })
  1035. .then(res => {
  1036. this.removeNewSupervision();
  1037. });
  1038. },
  1039. removeNewSupervision(arg) {
  1040. if (arg) {
  1041. console.log(arg);
  1042. var args = this.gwComFiles.concat(arg);
  1043. this.updatefilelist(args);
  1044. }
  1045. this.gwComFiles = [];
  1046. this.$refs.uploadFile.init();
  1047. },
  1048. //分页
  1049. handleCurrentChange(val) {
  1050. this.searchObj.pageNum = val;
  1051. this.getTrackList();
  1052. },
  1053. handleSizeChange(val) {
  1054. this.searchObj.pageSize = val;
  1055. this.pageSize = val;
  1056. this.getTrackList();
  1057. },
  1058. toAddMember(type, row) {
  1059. let _self = this;
  1060. request
  1061. .get("/dc/insp/wtdstTrack/getByObjId", {
  1062. params: { objId: row.objId }
  1063. })
  1064. .then(res => {
  1065. if (res.data && Object.keys(res.data).length) {
  1066. _self.trackId = res.data.trackId;
  1067. this.curOperate = type;
  1068. this.objId = row.objId;
  1069. this.objName = row.objName;
  1070. this.objType = row.objType;
  1071. this.centerX = row.wtdstLgtd;
  1072. this.centerY = row.wtdstLttd;
  1073. let rowObj = {};
  1074. Object.assign(rowObj, res.data);
  1075. this.addObj = rowObj;
  1076. this.addObj["trackId"] = this.trackId;
  1077. this.addObj["wtdstId"] = row.wtdstId;
  1078. if (!this.addObj["disContent"]) {
  1079. this.addObj["disContent"] = row.disContent;
  1080. }
  1081. this.editObj.wtdstNm = row.wtdstNm;
  1082. this.editObj.wtdstType = row.wtdstType;
  1083. this.editObj.locNm = row.locNm;
  1084. this.editObj.wtdstId = row.wtdstId;
  1085. console.log(this.editObj);
  1086. this.isReadonly = false;
  1087. this.dialogFormVisible = true;
  1088. } else {
  1089. request
  1090. .post("/dc/insp/wtdstTrack/insert", {
  1091. objId: row.objId,
  1092. recPersId: this.persGuid,
  1093. wtdstId: row.wtdstId
  1094. })
  1095. .then(res => {
  1096. if (res.data) {
  1097. _self.trackId = res.data.id;
  1098. this.curOperate = type;
  1099. this.objId = row.objId;
  1100. this.objName = row.objName;
  1101. this.objType = row.objType;
  1102. let rowObj = {};
  1103. Object.assign(rowObj, res.data);
  1104. this.addObj["inspPblmDesc"] = "";
  1105. this.addObj["note"] = "";
  1106. this.addObj["trackId"] = this.trackId;
  1107. this.addObj["wtdstId"] = row.wtdstId;
  1108. this.addObj["objId"] = row.objId;
  1109. this.addObj["objName"] = row.objName;
  1110. if (!this.addObj["disContent"]) {
  1111. this.addObj["disContent"] =
  1112. row.disContent;
  1113. }
  1114. this.editObj.wtdstNm = row.wtdstNm;
  1115. this.editObj.wtdstType = row.wtdstType;
  1116. this.editObj.locNm = row.locNm;
  1117. this.editObj.wtdstId = row.wtdstId;
  1118. console.log(this.editObj);
  1119. this.isReadonly = false;
  1120. this.dialogFormVisible = true;
  1121. } else {
  1122. console.log("添加水毁登记表错误");
  1123. }
  1124. });
  1125. }
  1126. });
  1127. },
  1128. submitHandler(rowData) {
  1129. var _self = this;
  1130. if (rowData == "0") {
  1131. this.$message({
  1132. message: "填报未完成,无法提交!",
  1133. type: "warning"
  1134. });
  1135. return;
  1136. }
  1137. this.$confirm("请确认所有信息填报完毕?", "提示", {
  1138. confirmButtonText: "确定",
  1139. cancelButtonText: "取消",
  1140. type: "warning"
  1141. })
  1142. .then(() => {
  1143. let formObj = {
  1144. objId: rowData.objId,
  1145. trackId: rowData.trackId,
  1146. state: "2"
  1147. };
  1148. request
  1149. .post("/dc/insp/wtdstTrack/update", formObj)
  1150. .then(res => {
  1151. if (res.success) {
  1152. _self.getTrackList();
  1153. _self.$message.success("提交成功");
  1154. } else {
  1155. }
  1156. });
  1157. })
  1158. .catch(() => {});
  1159. },
  1160. addMember() {
  1161. // this.addObj.engId = this.engId
  1162. this.addObj.recPersId = this.persGuid;
  1163. this.addObj["state"] = "1";
  1164. // if(!this.addObj.adnm){
  1165. // this.$message.info('请选择行政村')
  1166. // return
  1167. // }
  1168. if (this.curOperate == "添加") {
  1169. request
  1170. .post("/dc/insp/wtdstTrack/insert", this.addObj)
  1171. .then(res => {
  1172. if (res.success) {
  1173. this.getTrackList();
  1174. this.dialogFormVisible = false;
  1175. this.$message.success("添加成功");
  1176. } else {
  1177. this.$message.error(res.message);
  1178. }
  1179. });
  1180. } else if (this.curOperate == "编辑") {
  1181. request
  1182. .post("/dc/insp/wtdstTrack/update", this.addObj)
  1183. .then(res => {
  1184. if (res.success) {
  1185. this.getTrackList();
  1186. this.dialogFormVisible = false;
  1187. this.$message.success("修改成功");
  1188. } else {
  1189. this.$message.error(res.message);
  1190. }
  1191. });
  1192. }
  1193. },
  1194. addBaseinfo() {
  1195. request
  1196. .post("/dc/insp/bisInspWtdst/update", this.editObj)
  1197. .then(res => {
  1198. if (res.success) {
  1199. this.$message.success("修改成功");
  1200. this.dialogFormVisible2 = false;
  1201. this.getTrackList();
  1202. } else {
  1203. this.$message.success(res.message);
  1204. }
  1205. });
  1206. },
  1207. onSubmit() {
  1208. if(this.adCodes.length){
  1209. this.getTrackList();
  1210. }
  1211. },
  1212. deleteMember(row) {
  1213. this.$confirm("确定删除该工程吗?", "提示", {
  1214. confirmButtonText: "确定",
  1215. cancelButtonText: "取消",
  1216. type: "warning"
  1217. })
  1218. .then(() => {
  1219. request
  1220. .post(`/dc/insp/wtdstTrack/${row.trackId}`)
  1221. .then(res => {
  1222. if (res.success) {
  1223. this.getTrackList();
  1224. this.dialogFormVisible = false;
  1225. this.$message({
  1226. type: "success",
  1227. message: "删除成功!"
  1228. });
  1229. }
  1230. });
  1231. })
  1232. .catch(() => {
  1233. this.$message({
  1234. type: "info",
  1235. message: "已取消删除"
  1236. });
  1237. });
  1238. },
  1239. provTreeSelectChangeHandler() {},
  1240. getprovList(adCode) {
  1241. request
  1242. .get("/dc/ad/base/getAdData", { params: { adCode: adCode } })
  1243. .then(res => {
  1244. if (res.success) {
  1245. this.provList = res.data;
  1246. } else {
  1247. this.$message.info(res.message);
  1248. }
  1249. });
  1250. },
  1251. handleRemove() {},
  1252. fileChange() {},
  1253. fileSuccess(item) {
  1254. this.fileUpData.push(item.data);
  1255. console.log("上传成功", item);
  1256. },
  1257. fileUpErr(item) {
  1258. console.log(item + "wenjian");
  1259. if (item.status == 413) {
  1260. this.$message({
  1261. message: "文件大小超出500K!",
  1262. type: "warning"
  1263. });
  1264. }
  1265. },
  1266. // 近期面貌
  1267. recentAppearance() {
  1268. this.jqmmShow = true;
  1269. // this.jqmmShow += 1;
  1270. },
  1271. jqmmDialog() {
  1272. this.jqmmShow = false;
  1273. },
  1274. // 影像
  1275. imageClick() {
  1276. console.log(this.centerX, this.centerY);
  1277. if (!this.centerX && !this.centerY) {
  1278. this.$message.warning("暂无经纬度信息!");
  1279. return false;
  1280. }
  1281. this.imageShow = true;
  1282. },
  1283. shCancelHandler() {
  1284. this.shInfoDialog = false;
  1285. },
  1286. sHInfo(row, info) {
  1287. // this.currentDuchaTpe = true;
  1288. this.shInfoDialog = true;
  1289. this.shInfoContent = row;
  1290. // this.currentDuchaTpe = true;
  1291. // this.showSzDuChaInfo = true;
  1292. // this.currentObjectRgstrId = row.rgstrId;
  1293. // this.currentResCode = row.code;
  1294. // this.currentGroupId = row.groupId;
  1295. // this.currentObjectId = row.objId;
  1296. // this.currentResName = row.nm
  1297. },
  1298. getSHList() {
  1299. let data = {
  1300. // type: "rsvr",
  1301. presId: this.persId,
  1302. pType: "6",
  1303. pageSize: this.pageSize,
  1304. pageNum: this.pageIndex,
  1305. rsName: this.nm,
  1306. state: this.dcType,
  1307. adName: this.adName,
  1308. sttm: this.dateRange && this.dateRange.length > 1 ? this.dateRange[0]: null,
  1309. entm: this.dateRange && this.dateRange.length > 1 ? this.dateRange[1]: null,
  1310. riverId: this.orgName,
  1311. engScal: this.engScale,
  1312. groupId: this.groupId,
  1313. adCodes: this.adCodes.toString()
  1314. };
  1315. request
  1316. .post(this.baseurl + "/att/waga/rgstr/list/page", data)
  1317. .then(res => {
  1318. res.data.list.forEach(item => {
  1319. if (item.intm) {
  1320. item.intm1 = dateFormat(item.intm, "yyyy-MM-dd");
  1321. }
  1322. });
  1323. this.skDataList = res.data.list;
  1324. this.total = res.data.total;
  1325. });
  1326. },
  1327. }
  1328. };
  1329. </script>
  1330. <style>
  1331. .dctb_sh .el-table .warning-row {
  1332. background: oldlace;
  1333. }
  1334. .dctb_sh .el-table .success-row {
  1335. background: #f0f9eb;
  1336. }
  1337. </style>