index.vue 52 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575
  1. <template>
  2. <div style="padding: 10px 15px">
  3. <div class="maintindetail">
  4. <div class="title">
  5. {{ facilitieinfo.name }}检测计划
  6. <div class="btngroup">
  7. <el-button
  8. type="primary"
  9. v-if="detectioninfo.status == 1"
  10. @click="showpf = true"
  11. >派 发</el-button
  12. >
  13. <el-button
  14. type="primary"
  15. v-if="detectioninfo.status == 2"
  16. @click="showzxfk = true"
  17. >执行反馈</el-button
  18. >
  19. <el-button
  20. type="primary"
  21. v-if="detectioninfo.status == 3"
  22. @click="showcgsc = true"
  23. >成果上传</el-button
  24. >
  25. <el-button
  26. type="danger"
  27. @click="
  28. () => {
  29. router.back();
  30. }
  31. "
  32. >返回</el-button
  33. >
  34. </div>
  35. </div>
  36. <div class="card">
  37. <div class="title" style="position: relative">设施信息</div>
  38. <div class="body">
  39. <el-row>
  40. <el-col :span="6">台账序号:{{ facilitieinfo.exId }}</el-col>
  41. <el-col :span="6">所在道路:{{ facilitieinfo.roadName }}</el-col>
  42. <el-col :span="6">性质:{{ facilitieinfo.nature }}</el-col>
  43. <el-col :span="6">运维长度:{{ facilitieinfo.fLength }}</el-col>
  44. <el-col :span="6">设施名称:{{ facilitieinfo.name }}</el-col>
  45. <el-col :span="18"
  46. >设施起止点:{{ facilitieinfo.addrFrom }}-{{
  47. facilitieinfo.addrEnd
  48. }}</el-col
  49. >
  50. </el-row>
  51. </div>
  52. </div>
  53. <div class="card">
  54. <div class="title" style="position: relative">
  55. 检测计划信息
  56. <div
  57. style="
  58. position: absolute;
  59. right: 10px;
  60. top: 0;
  61. color: #333;
  62. font-size: 20px;
  63. "
  64. >
  65. {{
  66. detection_status.filter(
  67. (i) => i.value.toString() === detectioninfo.status.toString()
  68. )[0]?.label ?? "-"
  69. }}
  70. </div>
  71. </div>
  72. <div class="body">
  73. <el-row>
  74. <el-col :span="6"
  75. >检测类型:{{
  76. detection_type.filter(
  77. (i) => i.value === detectioninfo.detectionType + ""
  78. )[0]?.label ?? "-"
  79. }}</el-col
  80. >
  81. <el-col :span="6">年计划:{{ detectioninfo.detectionYear }}</el-col>
  82. <el-col :span="6"
  83. >月计划:{{ detectioninfo.detectionMonth }}</el-col
  84. >
  85. <el-col :span="6">周计划:{{ detectioninfo.detectionWeek }}</el-col>
  86. <el-col :span="12"
  87. >计划作业班组:{{}}{{ alldept
  88. .filter(
  89. (i) =>
  90. (
  91. detectioninfo.detectionDept
  92. ).indexOf(i.deptId) != -1
  93. )
  94. .map((i) => i.deptName)
  95. .join(",")}}</el-col
  96. >
  97. <el-col :span="12"
  98. >计划备注:{{ detectioninfo.detectionDes }}</el-col
  99. >
  100. <el-col :span="24"
  101. >备注:{{ detectioninfo.detectionRemark }}</el-col
  102. >
  103. </el-row>
  104. </div>
  105. </div>
  106. <div class="card" v-if="detectioninfo.status > 1">
  107. <div class="title">派发信息</div>
  108. <div class="body">
  109. <el-row>
  110. <el-col :span="6"
  111. >负责人:{{
  112. allusers.filter(
  113. (i) =>
  114. i.userId.toString() ===
  115. JSON.parse(
  116. detectioninfo.detectionLogs.filter(
  117. (ii) => ii.detectionStatus === 2
  118. )[0].logDes
  119. ).fzr.toString()
  120. )[0]?.nickName ?? "-"
  121. }}</el-col
  122. >
  123. <el-col :span="6"
  124. >联系方式:{{
  125. allusers.filter(
  126. (i) =>
  127. i.userId.toString() ===
  128. JSON.parse(
  129. detectioninfo.detectionLogs.filter(
  130. (ii) => ii.detectionStatus === 2
  131. )[0].logDes
  132. ).fzr.toString()
  133. )[0]?.phonenumber ?? "-"
  134. }}</el-col
  135. >
  136. <el-col :span="6"
  137. >处置班组:{{
  138. alldept
  139. .filter(
  140. (i) =>
  141. (
  142. JSON.parse(
  143. detectioninfo.detectionLogs.filter(
  144. (ii) => ii.detectionStatus === 2
  145. )[0].logDes
  146. ).fzbz ?? []
  147. ).indexOf(i.deptId) != -1
  148. )
  149. .map((i) => i.deptName)
  150. .join(",")
  151. }}</el-col
  152. >
  153. <el-col :span="6"
  154. >派发时间:{{
  155. detectioninfo.detectionLogs.filter(
  156. (ii) => ii.detectionStatus === 2
  157. )[0].createTime
  158. }}</el-col
  159. >
  160. </el-row>
  161. </div>
  162. </div>
  163. <div class="card" v-if="detectioninfo.status > 2">
  164. <div class="title" style="position: relative">执行反馈</div>
  165. <div class="body">
  166. <div class="titleheader" :style="`${'margin-top:0px'}`">
  167. {{ "作业组" }}
  168. </div>
  169. <div>
  170. <el-row>
  171. <el-col :span="6">
  172. 负责人:{{
  173. JSON.parse(
  174. detectioninfo.detectionLogs.filter(
  175. (ii) => ii.detectionStatus === 3
  176. )[0].logDes ?? "{}"
  177. ).gzz.fzr
  178. }}
  179. </el-col>
  180. <el-col :span="6">
  181. 组员:
  182. {{
  183. allusers
  184. .filter(
  185. (i) =>
  186. (
  187. JSON.parse(
  188. detectioninfo.detectionLogs.filter(
  189. (ii) => ii.detectionStatus === 3
  190. )[0].logDes
  191. ).gzz.zy ?? []
  192. ).indexOf(i.userId) != -1
  193. )
  194. .map((i) => i.nickName)
  195. .join(",")
  196. }}
  197. </el-col>
  198. <el-col :span="6">
  199. 人数:
  200. {{
  201. JSON.parse(
  202. detectioninfo.detectionLogs.filter(
  203. (ii) => ii.detectionStatus === 3
  204. )[0].logDes ?? "{}"
  205. ).gzz.rs
  206. }}
  207. </el-col>
  208. <el-col :span="6">
  209. 开始时间:{{
  210. moment(JSON.parse(
  211. detectioninfo.detectionLogs.filter(
  212. (ii) => ii.detectionStatus === 3
  213. )[0].logDes ?? "{}"
  214. ).gzz.starttime).format("YYYY-MM-DD")}}
  215. </el-col>
  216. <el-col :span="6">
  217. 管线起点:{{
  218. JSON.parse(
  219. detectioninfo.detectionLogs.filter(
  220. (ii) => ii.detectionStatus === 3
  221. )[0].logDes ?? "{}"
  222. ).gzz.addrstart
  223. }}
  224. </el-col>
  225. <el-col :span="6">
  226. 管线终点:{{
  227. JSON.parse(
  228. detectioninfo.detectionLogs.filter(
  229. (ii) => ii.detectionStatus === 3
  230. )[0].logDes ?? "{}"
  231. ).gzz.addrend
  232. }}
  233. </el-col>
  234. <el-col :span="6">
  235. 城区:
  236. {{
  237. JSON.parse(
  238. detectioninfo.detectionLogs.filter(
  239. (ii) => ii.detectionStatus === 3
  240. )[0].logDes ?? "{}"
  241. ).gzz.cq
  242. }}
  243. </el-col>
  244. <el-col :span="6">
  245. 结束时间:{{
  246. moment(JSON.parse(
  247. detectioninfo.detectionLogs.filter(
  248. (ii) => ii.detectionStatus === 3
  249. )[0].logDes ?? "{}"
  250. ).gzz.endtime).format("YYYY-MM-DD")
  251. }}
  252. </el-col>
  253. <el-col :span="6">
  254. 作业地址:
  255. {{
  256. JSON.parse(
  257. detectioninfo.detectionLogs.filter(
  258. (ii) => ii.detectionStatus === 3
  259. )[0].logDes ?? "{}"
  260. ).gzz.addr
  261. }}
  262. </el-col>
  263. <el-col :span="6">
  264. 检测设备:{{
  265. JSON.parse(
  266. detectioninfo.detectionLogs.filter(
  267. (ii) => ii.detectionStatus === 3
  268. )[0].logDes ?? "{}"
  269. ).gzz.jcsb
  270. }}
  271. </el-col>
  272. <el-col :span="6">
  273. 车辆:{{
  274. JSON.parse(
  275. detectioninfo.detectionLogs.filter(
  276. (ii) => ii.detectionStatus === 3
  277. )[0].logDes ?? "{}"
  278. ).gzz.cars
  279. }}
  280. </el-col>
  281. <el-col :span="6">
  282. 车牌:{{
  283. JSON.parse(
  284. detectioninfo.detectionLogs.filter(
  285. (ii) => ii.detectionStatus === 3
  286. )[0].logDes ?? "{}"
  287. ).gzz.carnumber
  288. }}
  289. </el-col>
  290. <el-col :span="12"> 作业照片: </el-col>
  291. <el-col :span="12"> 工作照片: </el-col>
  292. <el-col :span="12">
  293. <ImagePreview
  294. v-model:src="
  295. JSON.parse(
  296. detectioninfo.detectionLogs.filter(
  297. (ii) => ii.detectionStatus === 3
  298. )[0].logDes ?? '{}'
  299. ).gzz.zyimages
  300. "
  301. :height="'120px'"
  302. :width="'120px'"
  303. ></ImagePreview>
  304. </el-col>
  305. <el-col :span="12">
  306. <ImagePreview
  307. v-model:src="
  308. JSON.parse(
  309. detectioninfo.detectionLogs.filter(
  310. (ii) => ii.detectionStatus === 3
  311. )[0].logDes ?? '{}'
  312. ).gzz.gzimages
  313. "
  314. :height="'120px'"
  315. :width="'120px'"
  316. ></ImagePreview>
  317. </el-col>
  318. </el-row>
  319. </div>
  320. <div class="titleheader" :style="`${'margin-top:0px'}`">
  321. {{ "工作量" }}
  322. </div>
  323. <div>
  324. <el-row>
  325. <el-col :span="6"
  326. >检查井(座):{{
  327. JSON.parse(
  328. detectioninfo.detectionLogs.filter(
  329. (ii) => ii.detectionStatus === 3
  330. )[0].logDes ?? "{}"
  331. ).gzl.jcj
  332. }}</el-col
  333. >
  334. <el-col :span="6"
  335. >雨水口(座):{{
  336. JSON.parse(
  337. detectioninfo.detectionLogs.filter(
  338. (ii) => ii.detectionStatus === 3
  339. )[0].logDes ?? "{}"
  340. ).gzl.ysk
  341. }}</el-col
  342. >
  343. <el-col :span="6"
  344. >箅子(个):{{
  345. JSON.parse(
  346. detectioninfo.detectionLogs.filter(
  347. (ii) => ii.detectionStatus === 3
  348. )[0].logDes ?? "{}"
  349. ).gzl.bz
  350. }}</el-col
  351. >
  352. <el-col :span="6"
  353. >主管(m):{{
  354. JSON.parse(
  355. detectioninfo.detectionLogs.filter(
  356. (ii) => ii.detectionStatus === 3
  357. )[0].logDes ?? "{}"
  358. ).gzl.zg
  359. }}</el-col
  360. >
  361. <el-col :span="6"
  362. >接户管(m):{{
  363. JSON.parse(
  364. detectioninfo.detectionLogs.filter(
  365. (ii) => ii.detectionStatus === 3
  366. )[0].logDes ?? "{}"
  367. ).gzl.jhg
  368. }}</el-col
  369. >
  370. <el-col :span="6"
  371. >雨水口支管(m):{{
  372. JSON.parse(
  373. detectioninfo.detectionLogs.filter(
  374. (ii) => ii.detectionStatus === 3
  375. )[0].logDes ?? "{}"
  376. ).gzl.yskzg
  377. }}</el-col
  378. >
  379. <el-col :span="6"
  380. >总设施长度(m):{{
  381. JSON.parse(
  382. detectioninfo.detectionLogs.filter(
  383. (ii) => ii.detectionStatus === 3
  384. )[0].logDes ?? "{}"
  385. ).gzl.zsscd
  386. }}</el-col
  387. >
  388. <el-col :span="6"
  389. >管径范围(mm):{{
  390. JSON.parse(
  391. detectioninfo.detectionLogs.filter(
  392. (ii) => ii.detectionStatus === 3
  393. )[0].logDes ?? "{}"
  394. ).gzl.gjfw
  395. }}</el-col
  396. >
  397. <el-col :span="6"
  398. >备注:{{
  399. JSON.parse(
  400. detectioninfo.detectionLogs.filter(
  401. (ii) => ii.detectionStatus === 3
  402. )[0].logDes ?? "{}"
  403. ).gzl.remark
  404. }}</el-col
  405. >
  406. <el-col :span="12"
  407. >未能作业原因:{{
  408. JSON.parse(
  409. detectioninfo.detectionLogs.filter(
  410. (ii) => ii.detectionStatus === 3
  411. )[0].logDes ?? "{}"
  412. ).gzl.wnzyyy
  413. }}</el-col
  414. >
  415. <el-col :span="12"
  416. >备注:{{
  417. JSON.parse(
  418. detectioninfo.detectionLogs.filter(
  419. (ii) => ii.detectionStatus === 3
  420. )[0].logDes ?? "{}"
  421. ).gzl.remark1
  422. }}</el-col
  423. >
  424. <el-col :span="24">现场照片:</el-col>
  425. <el-col :span="24"
  426. ><ImagePreview
  427. v-model:src="
  428. JSON.parse(
  429. detectioninfo.detectionLogs.filter(
  430. (ii) => ii.detectionStatus === 3
  431. )[0].logDes ?? '{}'
  432. ).gzl.images
  433. "
  434. :height="'120px'"
  435. :width="'120px'"
  436. ></ImagePreview
  437. ></el-col>
  438. </el-row>
  439. </div>
  440. </div>
  441. </div>
  442. <div class="card" v-if="detectioninfo.status > 3">
  443. <div class="title" style="position: relative">检测成果</div>
  444. <div class="body">
  445. <div class="titleheader" :style="`${'margin-top:0px'}`">
  446. {{ "报告信息" }}
  447. </div>
  448. <div>
  449. <el-row>
  450. <el-col :span="6">
  451. 报告编号:{{
  452. JSON.parse(
  453. detectioninfo.detectionLogs.filter(
  454. (ii) => ii.detectionStatus === 4
  455. )[0].logDes ?? "{}"
  456. ).bgxx.bgbh
  457. }}
  458. </el-col>
  459. <el-col :span="6">
  460. 城区:{{
  461. JSON.parse(
  462. detectioninfo.detectionLogs.filter(
  463. (ii) => ii.detectionStatus === 4
  464. )[0].logDes ?? "{}"
  465. ).bgxx.cq
  466. }}
  467. </el-col>
  468. <el-col :span="6">
  469. 完成月份:
  470. {{
  471. JSON.parse(
  472. detectioninfo.detectionLogs.filter(
  473. (ii) => ii.detectionStatus === 4
  474. )[0].logDes ?? "{}"
  475. ).bgxx.wcyf
  476. }}
  477. </el-col>
  478. <el-col :span="6">
  479. 备注:{{
  480. JSON.parse(
  481. detectioninfo.detectionLogs.filter(
  482. (ii) => ii.detectionStatus === 4
  483. )[0].logDes ?? "{}"
  484. ).bgxx.bz
  485. }}
  486. </el-col>
  487. <el-col :span="12"> 作业图纸: </el-col>
  488. <el-col :span="12"> 收单方: </el-col>
  489. <el-col :span="12">
  490. <div style="position: relative">
  491. <div
  492. style="position: absolute; top: 0; left: 60px; width: 100%"
  493. >
  494. <div
  495. style="
  496. margin-bottom: 10px;
  497. color: #4f9eee;
  498. display: inline-block;
  499. margin-left: 10px;
  500. "
  501. v-for="i in JSON.parse(
  502. detectioninfo.detectionLogs.filter(
  503. (ii) => ii.detectionStatus === 4
  504. )[0].logDes ?? '{}'
  505. ).bgxx.tz?.split(',') ?? []"
  506. >
  507. <a target="_blank" :href="`${STATICURL + i}`">
  508. {{ i.split("/")[i.split("/").length - 1] }}
  509. </a>
  510. </div>
  511. </div>
  512. </div>
  513. </el-col>
  514. <el-col :span="12">
  515. <div style="position: relative">
  516. <div
  517. style="position: absolute; top: 0; left: 60px; width: 100%"
  518. >
  519. <div
  520. style="
  521. margin-bottom: 10px;
  522. color: #4f9eee;
  523. display: inline-block;
  524. margin-left: 10px;
  525. "
  526. v-for="i in JSON.parse(
  527. detectioninfo.detectionLogs.filter(
  528. (ii) => ii.detectionStatus === 4
  529. )[0].logDes ?? '{}'
  530. ).bgxx.sfd?.split(',') ?? []"
  531. >
  532. <a target="_blank" :href="`${STATICURL + i}`">
  533. {{ i.split("/")[i.split("/").length - 1] }}
  534. </a>
  535. </div>
  536. </div>
  537. </div>
  538. </el-col>
  539. <el-col :span="12"> 作业照片: </el-col>
  540. <el-col :span="12"> 作业视频: </el-col>
  541. <el-col :span="12">
  542. <ImagePreview
  543. v-model:src="
  544. JSON.parse(
  545. detectioninfo.detectionLogs.filter(
  546. (ii) => ii.detectionStatus === 4
  547. )[0].logDes ?? '{}'
  548. ).bgxx.zyzp
  549. "
  550. :height="'120px'"
  551. :width="'120px'"
  552. ></ImagePreview>
  553. </el-col>
  554. <el-col :span="12">
  555. <VideoPreview
  556. v-model:src="
  557. JSON.parse(
  558. detectioninfo.detectionLogs.filter(
  559. (ii) => ii.detectionStatus === 4
  560. )[0].logDes ?? '{}'
  561. ).bgxx.zysp
  562. "
  563. :height="'120px'"
  564. :width="'120px'"
  565. ></VideoPreview>
  566. </el-col>
  567. </el-row>
  568. </div>
  569. <div class="titleheader" :style="`${'margin-top:0px'}`">
  570. {{ "养护信息" }}
  571. </div>
  572. <div>
  573. <el-row>
  574. <el-col :span="24"
  575. >主管建议养护:
  576. {{
  577. JSON.parse(
  578. detectioninfo.detectionLogs.filter(
  579. (ii) => ii.detectionStatus === 4
  580. )[0].logDes ?? "{}"
  581. ).yhxx.zgjyyh
  582. }}
  583. </el-col>
  584. <el-col :span="6"
  585. >涉及检查井座:
  586. {{
  587. JSON.parse(
  588. detectioninfo.detectionLogs.filter(
  589. (ii) => ii.detectionStatus === 4
  590. )[0].logDes ?? "{}"
  591. ).yhxx.sjjcjz
  592. }}
  593. </el-col>
  594. <el-col :span="6"
  595. >养护长度(m):{{
  596. JSON.parse(
  597. detectioninfo.detectionLogs.filter(
  598. (ii) => ii.detectionStatus === 4
  599. )[0].logDes ?? "{}"
  600. ).yhxx.yhcd
  601. }}</el-col
  602. >
  603. <el-col :span="6"
  604. >管径范围:{{
  605. JSON.parse(
  606. detectioninfo.detectionLogs.filter(
  607. (ii) => ii.detectionStatus === 4
  608. )[0].logDes ?? "{}"
  609. ).yhxx.gjfw
  610. }}</el-col>
  611. <el-col :span="24">主管缺陷分布图:</el-col>
  612. <el-col :span="24">
  613. <ImagePreview
  614. v-model:src="
  615. JSON.parse(
  616. detectioninfo.detectionLogs.filter(
  617. (ii) => ii.detectionStatus === 4
  618. )[0].logDes ?? '{}'
  619. ).yhxx.zgqxfbt
  620. "
  621. :height="'120px'"
  622. :width="'120px'"
  623. ></ImagePreview>
  624. </el-col>
  625. <el-col :span="24"
  626. >支管建议养护:
  627. {{
  628. JSON.parse(
  629. detectioninfo.detectionLogs.filter(
  630. (ii) => ii.detectionStatus === 4
  631. )[0].logDes ?? "{}"
  632. ).yhxx.zgjyyh1
  633. }}
  634. </el-col>
  635. <el-col :span="6"
  636. >支管三四级缺陷个数:
  637. {{
  638. JSON.parse(
  639. detectioninfo.detectionLogs.filter(
  640. (ii) => ii.detectionStatus === 4
  641. )[0].logDes ?? "{}"
  642. ).yhxx.zgqxssjs
  643. }}
  644. </el-col>
  645. <el-col :span="12"
  646. >养护备注:{{
  647. JSON.parse(
  648. detectioninfo.detectionLogs.filter(
  649. (ii) => ii.detectionStatus === 4
  650. )[0].logDes ?? "{}"
  651. ).yhxx.remark
  652. }}</el-col
  653. >
  654. <el-col :span="24">支管缺陷分布图:</el-col>
  655. <el-col :span="24">
  656. <ImagePreview
  657. v-model:src="
  658. JSON.parse(
  659. detectioninfo.detectionLogs.filter(
  660. (ii) => ii.detectionStatus === 4
  661. )[0].logDes ?? '{}'
  662. ).yhxx.zgqxfbt1
  663. "
  664. :height="'120px'"
  665. :width="'120px'"
  666. ></ImagePreview>
  667. </el-col>
  668. </el-row>
  669. </div>
  670. </div>
  671. </div>
  672. </div>
  673. <el-dialog v-model="showpf" title="计划派发" draggable>
  674. <div>
  675. <el-form :model="pdobj" label-width="120px">
  676. <el-form-item label="负责班组"
  677. ><el-tree-select
  678. style="width: 100%"
  679. v-model="pdobj.fzbz"
  680. multiple
  681. :data="treedept"
  682. /></el-form-item>
  683. <el-form-item label="负责人">
  684. <el-select
  685. v-model="pdobj.fzr"
  686. placeholder="请选择"
  687. style="width: 100%"
  688. >
  689. <el-option
  690. v-for="item in allusers.filter(
  691. (i) => (pdobj.fzbz ?? []).indexOf(i.deptId) !== -1
  692. )"
  693. :label="item.nickName"
  694. :value="item.userId"
  695. />
  696. </el-select>
  697. </el-form-item>
  698. </el-form>
  699. </div>
  700. <template #footer>
  701. <span class="dialog-footer">
  702. <el-button @click="showpf = false">取消</el-button>
  703. <el-button type="primary" @click="detectiondistributed"
  704. >确定</el-button
  705. >
  706. </span>
  707. </template>
  708. </el-dialog>
  709. <el-dialog v-model="showzxfk" title="计划执行反馈" draggable>
  710. <div>
  711. <el-form :model="zxfkobj" label-width="10px">
  712. <el-form-item label="">
  713. <el-tabs v-model="currenttabname" class="demo-tabs">
  714. <el-tab-pane label="作业组" name="zyz">
  715. <el-row>
  716. <el-col :span="6">
  717. <el-form-item label="负责人" label-width="80px">
  718. <el-input
  719. v-model="zxfkobj.gzz.fzr"
  720. placeholder="请输入负责人"
  721. ></el-input>
  722. </el-form-item>
  723. </el-col>
  724. <el-col :span="6">
  725. <el-form-item label="组员" label-width="80px">
  726. <el-select
  727. v-model="zxfkobj.gzz.zy"
  728. multiple
  729. filterable
  730. allow-create
  731. default-first-option
  732. :reserve-keyword="false"
  733. placeholder="请输入组员"
  734. >
  735. <el-option
  736. v-for="item in allusers"
  737. :key="item.nickName"
  738. :label="item.nickName"
  739. :value="item.userId"
  740. />
  741. </el-select>
  742. </el-form-item>
  743. </el-col>
  744. <el-col :span="6">
  745. <el-form-item label="人数" label-width="80px">
  746. <el-input
  747. v-model="zxfkobj.gzz.rs"
  748. type="number"
  749. placeholder="请输入人数"
  750. ></el-input>
  751. </el-form-item>
  752. </el-col>
  753. <el-col :span="6">
  754. <el-form-item label="城区" label-width="80px">
  755. <el-select
  756. v-model="zxfkobj.gzz.cq"
  757. placeholder="请选择城区"
  758. >
  759. <el-option
  760. v-for="item in sys_area"
  761. :key="item.label"
  762. :label="item.label"
  763. :value="item.label"
  764. />
  765. </el-select>
  766. </el-form-item>
  767. </el-col>
  768. </el-row>
  769. <el-row>
  770. <el-col :span="6">
  771. <el-form-item label="管线起点" label-width="80px">
  772. <el-input
  773. v-model="zxfkobj.gzz.addrstart"
  774. placeholder="请输入地址"
  775. ></el-input>
  776. </el-form-item>
  777. </el-col>
  778. <el-col :span="6">
  779. <el-form-item label="管线终点" label-width="80px">
  780. <el-input
  781. v-model="zxfkobj.gzz.addrend"
  782. placeholder="请输入地址"
  783. ></el-input>
  784. </el-form-item>
  785. </el-col>
  786. <el-col :span="6">
  787. <el-form-item label="开始时间" label-width="80px">
  788. <el-date-picker
  789. v-model="zxfkobj.gzz.starttime"
  790. type="date"
  791. format="YYYY-MM-DD"
  792. placeholder="请选择"
  793. />
  794. </el-form-item>
  795. </el-col>
  796. <el-col :span="6">
  797. <el-form-item label="结束时间" label-width="80px">
  798. <el-date-picker
  799. v-model="zxfkobj.gzz.endtime"
  800. type="date"
  801. format="YYYY-MM-DD"
  802. placeholder="请选择"
  803. />
  804. </el-form-item>
  805. </el-col>
  806. </el-row>
  807. <el-row>
  808. <el-col :span="6">
  809. <el-form-item label="作业地址" label-width="80px">
  810. <el-input
  811. v-model="zxfkobj.gzz.addr"
  812. placeholder="请输入地址"
  813. ></el-input>
  814. </el-form-item>
  815. </el-col>
  816. <el-col :span="6">
  817. <el-form-item label="检测设备" label-width="80px">
  818. <el-input
  819. v-model="zxfkobj.gzz.jcsb"
  820. placeholder="请输入"
  821. ></el-input>
  822. </el-form-item>
  823. </el-col>
  824. <el-col :span="6">
  825. <el-form-item label="车辆" label-width="80px">
  826. <el-input
  827. v-model="zxfkobj.gzz.cars"
  828. type="number"
  829. placeholder="请输入车辆数"
  830. ></el-input>
  831. </el-form-item>
  832. </el-col>
  833. <el-col :span="6">
  834. <el-form-item label="车牌号" label-width="80px">
  835. <el-input
  836. v-model="zxfkobj.gzz.carnumber"
  837. placeholder="请输入车牌号"
  838. ></el-input>
  839. </el-form-item>
  840. </el-col>
  841. </el-row>
  842. <el-row>
  843. <el-col :span="12">
  844. <el-form-item label="作业图片" label-width="80px">
  845. <ImageUpload v-model="zxfkobj.gzz.zyimages"></ImageUpload>
  846. </el-form-item>
  847. </el-col>
  848. <el-col :span="12">
  849. <el-form-item label="工作图片" label-width="80px">
  850. <ImageUpload v-model="zxfkobj.gzz.gzimages"></ImageUpload>
  851. </el-form-item>
  852. </el-col>
  853. </el-row>
  854. </el-tab-pane>
  855. <el-tab-pane label="工作量" name="gzl">
  856. <el-row>
  857. <el-col :span="6">
  858. <el-form-item label="检查井(座)" label-width="80px">
  859. <el-input
  860. v-model="zxfkobj.gzl.jcj"
  861. type="number"
  862. placeholder="请输入数量"
  863. ></el-input>
  864. </el-form-item>
  865. </el-col>
  866. <el-col :span="6">
  867. <el-form-item label="雨水口(座)" label-width="80px">
  868. <el-input
  869. v-model="zxfkobj.gzl.ysk"
  870. type="number"
  871. placeholder="请输入数量"
  872. ></el-input>
  873. </el-form-item>
  874. </el-col>
  875. <el-col :span="6">
  876. <el-form-item label="箅子(个)" label-width="80px">
  877. <el-input
  878. v-model="zxfkobj.gzl.bz"
  879. type="number"
  880. placeholder="请输入数量"
  881. ></el-input>
  882. </el-form-item>
  883. </el-col>
  884. <el-col :span="6">
  885. <el-form-item label="主管(m)" label-width="80px">
  886. <el-input
  887. v-model="zxfkobj.gzl.zg"
  888. type="number"
  889. placeholder="请输入数量"
  890. ></el-input>
  891. </el-form-item>
  892. </el-col> </el-row
  893. ><el-row>
  894. <el-col :span="6">
  895. <el-form-item label="接户管(m)" label-width="80px">
  896. <el-input
  897. v-model="zxfkobj.gzl.jhg"
  898. type="number"
  899. placeholder="请输入数量"
  900. ></el-input>
  901. </el-form-item>
  902. </el-col>
  903. <el-col :span="6">
  904. <el-form-item label="雨水口支管(m)" label-width="120px">
  905. <el-input
  906. v-model="zxfkobj.gzl.yskzg"
  907. type="number"
  908. placeholder="请输入数量"
  909. ></el-input>
  910. </el-form-item>
  911. </el-col>
  912. <el-col :span="6">
  913. <el-form-item label="总设施长度(m)" label-width="120px">
  914. <el-input
  915. v-model="zxfkobj.gzl.zsscd"
  916. type="number"
  917. placeholder="请输入"
  918. ></el-input>
  919. </el-form-item>
  920. </el-col>
  921. <el-col :span="6">
  922. <el-form-item label="管径范围(mm)" label-width="120px">
  923. <el-input
  924. v-model="zxfkobj.gzl.gjfw"
  925. type="number"
  926. placeholder="请输入"
  927. ></el-input>
  928. </el-form-item>
  929. </el-col> </el-row
  930. ><el-row>
  931. <el-col :span="6">
  932. <el-form-item label="备注" label-width="80px">
  933. <el-input
  934. v-model="zxfkobj.gzl.remark"
  935. placeholder="请输入备注"
  936. ></el-input>
  937. </el-form-item>
  938. </el-col> </el-row
  939. ><el-row>
  940. <el-col :span="12">
  941. <el-form-item label="未能作业原因" label-width="100px">
  942. <el-input
  943. v-model="zxfkobj.gzl.wnzyyy"
  944. placeholder="请输入备注"
  945. ></el-input>
  946. </el-form-item>
  947. </el-col>
  948. <el-col :span="12">
  949. <el-form-item label="备注" label-width="80px">
  950. <el-input
  951. v-model="zxfkobj.gzl.remark1"
  952. placeholder="请输入备注"
  953. ></el-input>
  954. </el-form-item>
  955. </el-col>
  956. </el-row>
  957. <el-row>
  958. <el-col :span="24">
  959. <el-form-item label="现场图片" label-width="80px">
  960. <ImageUpload v-model="zxfkobj.gzl.images"></ImageUpload>
  961. </el-form-item>
  962. </el-col>
  963. </el-row>
  964. </el-tab-pane>
  965. </el-tabs>
  966. </el-form-item>
  967. </el-form>
  968. </div>
  969. <template #footer>
  970. <span class="dialog-footer">
  971. <el-button @click="showzxfk = false">取消</el-button>
  972. <el-button type="primary" @click="Feedbackdetection">确定</el-button>
  973. </span>
  974. </template>
  975. </el-dialog>
  976. <el-dialog v-model="showcgsc" width="80%" title="计划成果上传" draggable>
  977. <div>
  978. <el-form :model="cgscobj" label-width="10px">
  979. <el-form-item label="">
  980. <el-tabs v-model="currenttabname1" class="demo-tabs">
  981. <el-tab-pane label="报告信息" name="bgxx">
  982. <el-row>
  983. <el-col :span="6">
  984. <el-form-item label="报告编号" label-width="100px">
  985. <el-input
  986. v-model="cgscobj.bgxx.bgbh"
  987. placeholder="请输入编号"
  988. ></el-input>
  989. </el-form-item>
  990. </el-col>
  991. <el-col :span="6">
  992. <el-form-item label="城区" label-width="80px">
  993. <el-select
  994. v-model="cgscobj.bgxx.cq"
  995. placeholder="请选择城区"
  996. >
  997. <el-option
  998. v-for="item in sys_area"
  999. :key="item.label"
  1000. :label="item.label"
  1001. :value="item.label"
  1002. />
  1003. </el-select>
  1004. </el-form-item>
  1005. </el-col>
  1006. <el-col :span="6">
  1007. <el-form-item label="完成月份" label-width="80px">
  1008. <el-select
  1009. v-model="cgscobj.bgxx.wcyf"
  1010. placeholder="请选择月份"
  1011. >
  1012. <el-option
  1013. v-for="item in getmonth()"
  1014. :key="item"
  1015. :label="item"
  1016. :value="item"
  1017. />
  1018. </el-select>
  1019. </el-form-item>
  1020. </el-col>
  1021. <el-col :span="6">
  1022. <el-form-item label="备注" label-width="80px">
  1023. <el-input
  1024. v-model="cgscobj.bgxx.bz"
  1025. type="number"
  1026. placeholder="请输入备注"
  1027. ></el-input>
  1028. </el-form-item>
  1029. </el-col>
  1030. </el-row>
  1031. <el-row>
  1032. <el-col :span="12">
  1033. <el-form-item label="作业图纸" label-width="80px">
  1034. <FileUpload
  1035. v-model="cgscobj.bgxx.tz"
  1036. :fileSize="100"
  1037. ></FileUpload>
  1038. </el-form-item>
  1039. </el-col>
  1040. <el-col :span="12">
  1041. <el-form-item label="收单方" label-width="80px">
  1042. <FileUpload
  1043. v-model="cgscobj.bgxx.sfd"
  1044. :fileSize="100"
  1045. ></FileUpload>
  1046. </el-form-item>
  1047. </el-col>
  1048. <el-col :span="12">
  1049. <el-form-item label="作业照片" label-width="80px">
  1050. <ImageUpload v-model="cgscobj.bgxx.zyzp"></ImageUpload>
  1051. </el-form-item>
  1052. </el-col>
  1053. <el-col :span="12">
  1054. <el-form-item label="作业视频" label-width="80px">
  1055. <VideoUpload v-model="cgscobj.bgxx.zysp"></VideoUpload>
  1056. </el-form-item>
  1057. </el-col>
  1058. </el-row>
  1059. </el-tab-pane>
  1060. <el-tab-pane label="养护信息" name="yhxx">
  1061. <el-row>
  1062. <el-col :span="6">
  1063. <el-form-item label="主管建议养护" label-width="100px">
  1064. <el-input
  1065. v-model="cgscobj.yhxx.zgjyyh"
  1066. placeholder="请输入"
  1067. ></el-input>
  1068. </el-form-item>
  1069. </el-col>
  1070. <el-col :span="6">
  1071. <el-form-item label="涉及检查井座" label-width="100px">
  1072. <el-input
  1073. v-model="cgscobj.yhxx.sjjcjz"
  1074. placeholder="请输入"
  1075. ></el-input>
  1076. </el-form-item>
  1077. </el-col>
  1078. <el-col :span="6">
  1079. <el-form-item label="养护长度(m)" label-width="100px">
  1080. <el-input
  1081. v-model="cgscobj.yhxx.yhcd"
  1082. type="number"
  1083. placeholder="请输入"
  1084. ></el-input>
  1085. </el-form-item>
  1086. </el-col>
  1087. <el-col :span="6">
  1088. <el-form-item label="管径范围" label-width="80px">
  1089. <el-input
  1090. v-model="cgscobj.yhxx.gjfw"
  1091. placeholder="请输入"
  1092. ></el-input>
  1093. </el-form-item>
  1094. </el-col>
  1095. </el-row>
  1096. <el-row>
  1097. <el-col :span="24">
  1098. <el-form-item label="主管缺陷分布图" label-width="130px">
  1099. <ImageUpload v-model="cgscobj.yhxx.zgqxfbt"></ImageUpload>
  1100. </el-form-item>
  1101. </el-col>
  1102. </el-row>
  1103. <el-row>
  1104. <el-col :span="6">
  1105. <el-form-item label="支管建议养护" label-width="100px">
  1106. <el-input
  1107. v-model="cgscobj.yhxx.zgjyyh1"
  1108. placeholder="请输入"
  1109. ></el-input>
  1110. </el-form-item>
  1111. </el-col>
  1112. <el-col :span="6">
  1113. <el-form-item label="支管三四级缺陷个数" label-width="140px">
  1114. <el-input
  1115. v-model="cgscobj.yhxx.zgqxssjs"
  1116. placeholder="请输入"
  1117. ></el-input>
  1118. </el-form-item>
  1119. </el-col>
  1120. <el-col :span="12">
  1121. <el-form-item label="养护备注" label-width="100px">
  1122. <el-input
  1123. v-model="cgscobj.yhxx.remark"
  1124. placeholder="请输入"
  1125. ></el-input>
  1126. </el-form-item>
  1127. </el-col>
  1128. </el-row>
  1129. <el-row>
  1130. <el-col :span="24">
  1131. <el-form-item label="支管缺陷分布图" label-width="130px">
  1132. <ImageUpload v-model="cgscobj.yhxx.zgqxfbt1"></ImageUpload>
  1133. </el-form-item>
  1134. </el-col>
  1135. </el-row>
  1136. </el-tab-pane>
  1137. <el-tab-pane label="维修信息" name="wxxx">
  1138. <el-row>
  1139. <el-col :span="6">
  1140. <el-form-item label="主管建议维修" label-width="120px">
  1141. <el-input
  1142. v-model="cgscobj.wxxx.zgjywx"
  1143. type="number"
  1144. placeholder="请输入"
  1145. ></el-input>
  1146. </el-form-item>
  1147. </el-col>
  1148. <el-col :span="6">
  1149. <el-form-item label="主管三四级缺陷个数" label-width="140px">
  1150. <el-input
  1151. v-model="cgscobj.wxxx.zgqxssjs"
  1152. type="number"
  1153. placeholder="请输入数量"
  1154. ></el-input>
  1155. </el-form-item>
  1156. </el-col>
  1157. <el-col :span="6">
  1158. <el-form-item label="管径范围" label-width="80px">
  1159. <el-input
  1160. v-model="cgscobj.wxxx.gjfw"
  1161. type="number"
  1162. placeholder="请输入"
  1163. ></el-input>
  1164. </el-form-item>
  1165. </el-col>
  1166. </el-row><el-row>
  1167. <el-col :span="24">
  1168. <el-form-item label="主管结构类缺陷分布图" label-width="160px">
  1169. <ImageUpload v-model="cgscobj.wxxx.zgjglqxfbt"></ImageUpload>
  1170. </el-form-item>
  1171. </el-col>
  1172. </el-row><el-row>
  1173. <el-col :span="6">
  1174. <el-form-item label="支管建议维修" label-width="120px">
  1175. <el-input
  1176. v-model="cgscobj.wxxx.zgjywx1"
  1177. type="number"
  1178. placeholder="请输入"
  1179. ></el-input>
  1180. </el-form-item>
  1181. </el-col>
  1182. <el-col :span="6">
  1183. <el-form-item label="支管三四级缺陷个数" label-width="140px">
  1184. <el-input
  1185. v-model="cgscobj.wxxx.zgqxssjs1"
  1186. type="number"
  1187. placeholder="请输入数量"
  1188. ></el-input>
  1189. </el-form-item>
  1190. </el-col>
  1191. <el-col :span="6">
  1192. <el-form-item label="维修备注" label-width="80px">
  1193. <el-input
  1194. v-model="cgscobj.wxxx.wxbz"
  1195. type="number"
  1196. placeholder="请输入"
  1197. ></el-input>
  1198. </el-form-item>
  1199. </el-col>
  1200. </el-row><el-row>
  1201. <el-col :span="24">
  1202. <el-form-item label="支管结构类缺陷分布图" label-width="160px">
  1203. <ImageUpload v-model="cgscobj.wxxx.zgjglqxfbt1"></ImageUpload>
  1204. </el-form-item>
  1205. </el-col>
  1206. </el-row>
  1207. </el-tab-pane>
  1208. </el-tabs>
  1209. </el-form-item>
  1210. </el-form>
  1211. </div>
  1212. <template #footer>
  1213. <span class="dialog-footer">
  1214. <el-button @click="showcgsc = false">取消</el-button>
  1215. <el-button type="primary" @click="detectionComplete">确定</el-button>
  1216. </span>
  1217. </template>
  1218. </el-dialog>
  1219. </div>
  1220. </template>
  1221. <script lang="ts" setup>
  1222. import { defineComponent, ref, onMounted, watch } from "vue";
  1223. import { useDict } from "@/utils/dict";
  1224. // 图片预览组件
  1225. import ImagePreview from "@/components/ImagePreview";
  1226. import ImageUpload from "@/components/ImageUpload";
  1227. import FileUpload from "@/components/FileUpload";
  1228. import VideoUpload from "@/components/VideoUpload";
  1229. import VideoPreview from "@/components/VideoPreview";
  1230. import { cloneDeep } from "lodash";
  1231. import { listDept, getDept } from "@/api/system/dept";
  1232. import { ElMessage } from "element-plus";
  1233. import router from "../../../router";
  1234. import { useRoute } from "vue-router";
  1235. import { listFacilities, getFacilities } from "@/api/system/facilities";
  1236. import {
  1237. listDetection,
  1238. addDetection,
  1239. getDetection,
  1240. distributedDetection,
  1241. feedbackDetection,
  1242. completeDetection,
  1243. } from "@/api/system/detection";
  1244. import {
  1245. changeUserStatus,
  1246. listUser,
  1247. resetUserPwd,
  1248. delUser,
  1249. getUser,
  1250. updateUser,
  1251. addUser,
  1252. } from "@/api/system/user";
  1253. import { treeselect as deptTreeselect } from "@/api/system/dept";
  1254. import moment from "moment";
  1255. const { detection_status, detection_type, sys_area } = useDict(
  1256. "detection_status",
  1257. "detection_type",
  1258. "sys_area"
  1259. );
  1260. const STATICURL = import.meta.env.VITE_APP_BASE_API;
  1261. const route = useRoute();
  1262. if (!route.params.id || route.params.id == "undefined") {
  1263. router.back();
  1264. }
  1265. const currenttabname = ref("zyz");
  1266. const currenttabname1 = ref("bgxx");
  1267. const showzxfk = ref(false);
  1268. const zxfkobj = ref({
  1269. gzz: {
  1270. fzr: "",
  1271. zy: "",
  1272. rs: 1,
  1273. starttime: "",
  1274. endtime: "",
  1275. addrstart: "",
  1276. addrend: "",
  1277. cq: "",
  1278. addr: "",
  1279. jcsb: "",
  1280. cars: "",
  1281. carnumber: "",
  1282. zyimages: [],
  1283. gzimages: [],
  1284. },
  1285. gzl: {
  1286. jcj: "",
  1287. ysk: "",
  1288. bz: "",
  1289. zg: "",
  1290. jhg: "",
  1291. yskzg: "",
  1292. zsscd: "",
  1293. gjfw: "",
  1294. remark: "",
  1295. wnzyyy: "",
  1296. remark1: "",
  1297. images: [],
  1298. },
  1299. });
  1300. const Feedbackdetection = () => {
  1301. feedbackDetection({
  1302. detectionId: route.params.id,
  1303. logDes: JSON.stringify(zxfkobj.value),
  1304. }).then((res) => {
  1305. showzxfk.value = false;
  1306. ElMessage.success("反馈成功!");
  1307. getDetection(Number(route.params.id)).then((res) => {
  1308. detectioninfo.value = res.data;
  1309. });
  1310. });
  1311. };
  1312. const showcgsc = ref(false);
  1313. const cgscobj = ref({
  1314. bgxx: {
  1315. bgbh: "",
  1316. cq: "",
  1317. rs: 1,
  1318. wcyf: "",
  1319. bz: "",
  1320. tz: [],
  1321. sfd: [],
  1322. zyzp: [],
  1323. zysp: [],
  1324. },
  1325. yhxx: {
  1326. zgjyyh: "",
  1327. sjjcjz: "",
  1328. yhcd: "",
  1329. gjfw: "",
  1330. whldfw: "",
  1331. zgqxfbt: [],
  1332. zgjyyh1: "",
  1333. zgqxssjs: "",
  1334. remark: "",
  1335. zgqxfbt1: [],
  1336. },
  1337. wxxx: {
  1338. zgjglqxfbt: [],
  1339. zgjywx: "",
  1340. zgqxssjs: "",
  1341. gjfw: "",
  1342. zgjywx1: "",
  1343. zgqxssjs1:"",
  1344. wxbz: '',
  1345. zgjglqxfbt1:[],
  1346. }
  1347. });
  1348. const detectionComplete = () => {
  1349. completeDetection({
  1350. detectionId: route.params.id,
  1351. logDes: JSON.stringify(cgscobj.value),
  1352. }).then((res) => {
  1353. showcgsc.value = false;
  1354. ElMessage.success("上传成功!");
  1355. getDetection(Number(route.params.id)).then((res) => {
  1356. detectioninfo.value = res.data;
  1357. });
  1358. });
  1359. };
  1360. const showpf = ref(false);
  1361. const pdobj = ref({ fzbz: [], fzr: "" });
  1362. const detectiondistributed = () => {
  1363. distributedDetection({
  1364. detectionId: route.params.id,
  1365. logDes: JSON.stringify(pdobj.value),
  1366. }).then((res) => {
  1367. showpf.value = false;
  1368. ElMessage.success("派发成功!");
  1369. getDetection(Number(route.params.id)).then((res) => {
  1370. detectioninfo.value = res.data;
  1371. });
  1372. });
  1373. };
  1374. const alldept = ref([]);
  1375. listDept().then((response) => {
  1376. alldept.value = cloneDeep(response.data);
  1377. });
  1378. function setdatakey(dept) {
  1379. if (dept.children) {
  1380. dept.children = dept.children.map((i) => {
  1381. return setdatakey(i);
  1382. });
  1383. }
  1384. dept["value"] = dept.id;
  1385. return dept;
  1386. }
  1387. const treedept = ref([]);
  1388. const allusers = ref([]);
  1389. deptTreeselect().then((res) => {
  1390. treedept.value = [setdatakey(res.data[0])];
  1391. });
  1392. const facilitieinfo = ref({
  1393. addrEnd: "",
  1394. addrFrom: "",
  1395. areaAdDes: "",
  1396. areaDes: "",
  1397. createBy: null,
  1398. createTime: null,
  1399. exId: 1,
  1400. exId1: "",
  1401. ext1: null,
  1402. fLength: "0",
  1403. id: null,
  1404. name: "",
  1405. nature: "",
  1406. params: {},
  1407. remark: null,
  1408. roadName: "",
  1409. searchValue: null,
  1410. updateBy: null,
  1411. updateTime: null,
  1412. });
  1413. const detectioninfo = ref({
  1414. createBy: "",
  1415. createTime: null,
  1416. detectionDept: "204,205",
  1417. detectionDes: "sdfsd",
  1418. detectionLogs: [],
  1419. detectionMonth: "03",
  1420. detectionRemark: "sdfsd",
  1421. detectionType: 1,
  1422. detectionWeek: "11",
  1423. detectionYear: "2020",
  1424. ext1: "",
  1425. ext2: "",
  1426. facilitiesId: 1,
  1427. id: 3,
  1428. params: {},
  1429. remark: null,
  1430. searchValue: null,
  1431. status: 1,
  1432. updateBy: "",
  1433. updateTime: null,
  1434. });
  1435. const getmonth = () => {
  1436. var months = [];
  1437. for (var i = 0; i < 12; i++) {
  1438. if (i < 9) {
  1439. months.push("0" + (1 + i).toString());
  1440. } else {
  1441. months.push((1 + i).toString());
  1442. }
  1443. }
  1444. return months;
  1445. };
  1446. onMounted(async () => {
  1447. await listUser({ pageSize: 1000 }).then((res) => {
  1448. allusers.value = res.rows;
  1449. });
  1450. getDetection(Number(route.params.id)).then((res) => {
  1451. detectioninfo.value = res.data;
  1452. if (Number(detectioninfo.value.status) > 1) {
  1453. try {
  1454. zxfkobj.value.gzz.fzr =
  1455. allusers.value.filter(
  1456. (i) =>
  1457. i.userId.toString() ===
  1458. JSON.parse(
  1459. detectioninfo.value.detectionLogs.filter(
  1460. (ii) => ii.detectionStatus === 2
  1461. )[0].logDes
  1462. ).fzr.toString()
  1463. )[0]?.nickName ?? "-";
  1464. } catch (e) {}
  1465. }
  1466. getFacilities(detectioninfo.value.facilitiesId).then((rep) => {
  1467. facilitieinfo.value = rep.data;
  1468. });
  1469. });
  1470. });
  1471. </script>
  1472. <style lang="scss">
  1473. .demo-tabs {
  1474. width: 100%;
  1475. }
  1476. .el-row {
  1477. margin-bottom: 20px;
  1478. }
  1479. .maintindetail {
  1480. background: #fff;
  1481. padding: 30px 22px;
  1482. border-radius: 8px;
  1483. overflow-y: auto;
  1484. padding-top: 20px;
  1485. position: relative;
  1486. .el-select {
  1487. width: 100%;
  1488. }
  1489. .title {
  1490. color: #2b3551;
  1491. font-size: 16px;
  1492. font-weight: 400;
  1493. .btngroup {
  1494. position: absolute;
  1495. top: 13px;
  1496. right: 20px;
  1497. .el-button {
  1498. margin-left: 25px;
  1499. }
  1500. }
  1501. }
  1502. .card {
  1503. border: 1px solid #e5e9f2;
  1504. border-radius: 8px;
  1505. margin-top: 16px;
  1506. overflow: hidden;
  1507. .title {
  1508. background: rgba(192, 204, 218, 0.2);
  1509. height: 54px;
  1510. line-height: 54px;
  1511. color: #324057;
  1512. font-size: 14px;
  1513. font-weight: Bold;
  1514. padding-left: 22px;
  1515. }
  1516. .body {
  1517. padding: 20px;
  1518. color: #475669;
  1519. font-size: 14px;
  1520. // padding-top: 10px;
  1521. .el-col {
  1522. margin-bottom: 20px;
  1523. }
  1524. .titleheader {
  1525. color: #2c7de3;
  1526. font-weight: Bold;
  1527. margin-bottom: 24px;
  1528. margin-top: 20px;
  1529. }
  1530. }
  1531. }
  1532. }
  1533. </style>