rtumanage.vue 59 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954
  1. <!--
  2. * @Title:
  3. * @Description: 管理工作台
  4. * @Author: swp
  5. * @Date: 2022-08-24 10:49:21
  6. * @LastEditors:
  7. * @LastEditTime: 2022-08-24 10:49:21
  8. -->
  9. <template>
  10. <view class="container">
  11. <uni-nav-bar :fixed="true" backgroundColor="#3F9EFF" statusBar="false" height="75px">
  12. <view style="width:100%;display: flex;flex-direction: row;justify-content: center;align-items: center;">
  13. <text style="color: #ffffff; font-size: 1rem;font-family: Microsoft YaHei;">{{title}}</text>
  14. </view>
  15. </uni-nav-bar>
  16. <view v-if="subSystem == 1">
  17. <uni-section title="查询" type="line">
  18. <view class="search-block">
  19. <view class="adcd-adnm">
  20. <uni-data-picker placeholder="请选择地区" popup-title="请选择所在地区" :localdata="regionTree"
  21. v-model="selectedTreeNode" @change="onTreeChange" @nodeclick="onTreeNodeClick"
  22. @popupopened="onTreePopupOpened" @popupclosed="onTreePopupClosed" :clear-icon="false">
  23. </uni-data-picker>
  24. </view>
  25. <view class="rtu-code">
  26. <uni-easyinput :styles="inputStyles" @input="searchRtuCodeValClear" prefixIcon="search"
  27. v-model="searchRtuCodeVal" placeholder="请输入测站编码">
  28. </uni-easyinput>
  29. </view>
  30. <view class="rtu-name">
  31. <uni-easyinput :styles="inputStyles" @input="searchRtuNameValClear" prefixIcon="search"
  32. v-model="searchRtuNameVal" placeholder="请输入测站名称">
  33. </uni-easyinput>
  34. </view>
  35. <view class="submit-btn">
  36. <button type="default" @click="search">查 询</button>
  37. </view>
  38. </view>
  39. </uni-section>
  40. <view class="count-info-line">
  41. <view class="rtuCount">
  42. <span class="name">测站数量: </span>
  43. <span v-if="countInfo.rtuCount" class="count">{{ countInfo.rtuCount }}</span>
  44. </view>
  45. <view class="warnRtuCount">
  46. <span class="name">异常测站数量: </span>
  47. <span v-if="countInfo.warningRtuCount" class="count">{{
  48. countInfo.warningRtuCount }}</span>
  49. </view>
  50. </view>
  51. <view style="padding-left: 0px;padding-right: 0px;">
  52. <uni-collapse v-model="value">
  53. <uni-collapse-item title="异常类别筛选条件" :show-animation="true">
  54. <view class="select-checkbox">
  55. <uni-data-checkbox v-model="warnKindOption" :localdata="warnKindItems"
  56. @change="warnKindOptionChange">
  57. </uni-data-checkbox>
  58. </view>
  59. </uni-collapse-item>
  60. </uni-collapse>
  61. </view>
  62. <uni-list>
  63. <uni-list-item v-for="item in list" :key="item.id">
  64. <template v-slot:body>
  65. <view class="list-item-block">
  66. <uni-row>
  67. <uni-col :span="20">
  68. <view class="items-line">
  69. <image v-if="item.runStatusId==1" class="item-title-run-status-icon"
  70. mode="widthFix" src="/static/images/icon_warning.png">
  71. </image>
  72. <image v-else class="item-title-run-status-icon" mode="widthFix"
  73. src="/static/images/icon_ok.png">
  74. </image>
  75. <text class="item-title-rtu-name">{{item.rtuName}}</text>
  76. <text class="item-title-rtu-code">[{{item.rtuCode}}]</text>
  77. </view>
  78. </uni-col>
  79. <uni-col :span="4">
  80. <view class="items-line" style="padding-top: 5px;"
  81. @click="onRtuDetailClick(item.rtuCode)">
  82. <text
  83. style="text-decoration-line: underline;font-size: 0.6rem;color:gray;">测站信息</text>
  84. </view>
  85. </uni-col>
  86. </uni-row>
  87. <view class="items-line">
  88. <uni-icons class="input-uni-icon" type="calendar" size="18" color="lightblue" />
  89. <text class="item-up-time-text">最后上线时间:</text>
  90. <text class="item-up-time-text">{{item.lastUpTime}}</text>
  91. </view>
  92. <view v-if="item.runStatusId==1" class="items-line">
  93. <uni-icons class="input-uni-icon" type="bars" size="18" color="lightblue" />
  94. <text class="item-up-time-text">异常类型:</text>
  95. <text class="item-up-time-text">{{item.warnKindInfo}}</text>
  96. </view>
  97. <view class="items-line">
  98. <uni-icons class="input-uni-icon" type="location" size="18" color="lightblue" />
  99. <text class="item-adcd-adnm-text">{{item.areaName}}</text>
  100. </view>
  101. <view class="item-button-group">
  102. <view class="item-button" @click="onLocationClick(item)">
  103. <view class="items-line">
  104. <uni-icons class="input-uni-icon" type="location" size="18" color="coral" />
  105. <text class="button-text">导航</text>
  106. </view>
  107. </view>
  108. <view class="item-button" @click="onWarningPageClick(item.rtuCode)">
  109. <view class="items-line">
  110. <uni-icons class="input-uni-icon" type="gear" size="18" color="coral" />
  111. <text class="button-text">异常信息</text>
  112. </view>
  113. </view>
  114. <view class="item-button" @click="onCheckOrderPageClick(item.rtuCode)">
  115. <view class="items-line">
  116. <uni-icons class="input-uni-icon" type="gear" size="18" color="coral" />
  117. <text class="button-text">维修任务</text>
  118. </view>
  119. </view>
  120. <view class="item-button" @click="onInspectionReportClick(item.rtuCode)">
  121. <view class="items-line">
  122. <uni-icons class="input-uni-icon" type="reload" size="18" color="coral" />
  123. <text class="button-text">设备巡检</text>
  124. </view>
  125. </view>
  126. <view class="item-button" @click="onSiteRealDataClick(item)">
  127. <view class="items-line">
  128. <uni-icons class="input-uni-icon" type="info" size="18" color="coral" />
  129. <text class="button-text">实时数据</text>
  130. </view>
  131. </view>
  132. <view v-if="permission.admin || permission.orgAdmin" class="item-button"
  133. @click="onManuallyOrderClick(item.rtuCode)">
  134. <view class="items-line">
  135. <uni-icons class="input-uni-icon" type="email" size="18" color="coral" />
  136. <text class="button-text">人工派单</text>
  137. </view>
  138. </view>
  139. </view>
  140. </view>
  141. </template>
  142. </uni-list-item>
  143. </uni-list>
  144. <uni-group>
  145. <view class="pagination-block">
  146. <uni-pagination show-icon :page-size="pageSize" :current="pageCurrent" :total="total"
  147. @change="pageChange" />
  148. </view>
  149. </uni-group>
  150. </view>
  151. <!-- 应急系统 -->
  152. <view v-else-if="subSystem == 2">
  153. <view style="width: 100%;">
  154. <map id="myMap" ref="myMap" :style="mapStyles" :latitude="latitude" :longitude="longitude"
  155. :markers="markets" :polygons="polygons" :scale="scale" :polyline="polylines">
  156. <cover-view style="line-height: normal;width: 100%;">
  157. <cover-view style="width:50px;height:50px;position: absolute;top: 20px;right: 10px;">
  158. <cover-view v-if="mapScreenMin" style="width:50px;height:50px;background-color: orange;">
  159. <cover-image style="width: 50px;height: 50px;" src="/static/images/icon_quanping.png"
  160. @click="onMapScreenMax"></cover-image>
  161. </cover-view>
  162. <cover-view v-if="mapScreenMax" style="width:50px;height:50px;background-color: orange;">
  163. <cover-image style="width: 50px;height: 50px;" src="/static/images/icon_feiquanping.png"
  164. @click="onMapScreenMin"></cover-image>
  165. </cover-view>
  166. </cover-view>
  167. </cover-view>
  168. </map>
  169. <view :style="popViewStyles">
  170. <view :style="searchViewStyles">
  171. <uni-section title="实时监测数据" titleFontSize="1rem" type="circle">
  172. <template v-slot:right>
  173. <view v-if="contentViewStatus==0" class="view-flex-inline" style="margin-right: 10px;"
  174. @click="onYjRainDataRefreshClick">
  175. <uni-icons class="input-uni-icon" type="refresh" size="18" color="skyblue" />
  176. <view style="color: gray;font-size: 0.9rem;margin-left: 5px;margin-right: 5px;">
  177. 刷新</view>
  178. </view>
  179. <view v-else-if="contentViewStatus==1" class="view-flex-inline"
  180. style="margin-right: 10px;" @click="onYjWarnBackClick">
  181. <uni-icons class="input-uni-icon" type="close" size="18" color="skyblue" />
  182. <view style="color: gray;font-size: 0.9rem;margin-left: 5px;margin-right: 5px;">
  183. 关闭预警</view>
  184. </view>
  185. <view v-else-if="contentViewStatus==2" class="view-flex-inline"
  186. style="margin-right: 10px;" @click="onYjDangerAreaBackClick">
  187. <uni-icons class="input-uni-icon" type="close" size="18" color="skyblue" />
  188. <view style="color: gray;font-size: 0.9rem;margin-left: 5px;margin-right: 5px;">
  189. 关闭危险区</view>
  190. </view>
  191. </template>
  192. </uni-section>
  193. </view>
  194. <scroll-view scroll-y="true" :style="popScrollViewStyles">
  195. <view v-if="contentViewStatus==0">
  196. <view class="search-block">
  197. <uni-collapse @change="searchAreaStatus"
  198. style="padding-left: 10px;padding-right: 10px;">
  199. <uni-collapse-item :show-animation="true">
  200. <template v-slot:title>
  201. <view class="view-flex-block-center" style="height: 40px;width: 100%;">
  202. <view class="view-flex-inline-center">
  203. <text v-if="showSearch"
  204. style="color: orange;font-size: 0.8rem;">点击收起</text>
  205. <text v-else
  206. style="color: orange;font-size: 0.8rem;">点击展开录入查询</text>
  207. </view>
  208. </view>
  209. </template>
  210. </uni-collapse-item>
  211. </uni-collapse>
  212. <view v-if="showSearch">
  213. <view style="padding-left: 10px;padding-right: 10px;">
  214. <uni-data-select v-model="cityRegionValue" :localdata="cityRegionData"
  215. @change="cityRegionChange" placeholder="请选择盟市"></uni-data-select>
  216. </view>
  217. <view style="margin-top: 10px;padding-left: 10px;padding-right: 10px;">
  218. <uni-data-select v-model="districtRegionValue" :localdata="districtRegionData"
  219. @change="districtRegionChange" placeholder="请选择区旗县"></uni-data-select>
  220. </view>
  221. <view style="margin-top: 10px;padding-left: 10px;padding-right: 10px;">
  222. <uni-data-select v-model="townRegionValue" :localdata="townRegionData"
  223. @change="townRegionChange" placeholder="请选择乡镇"></uni-data-select>
  224. </view>
  225. <view style="margin-top: 10px;padding-left: 10px;padding-right: 10px;">
  226. <uni-data-select v-model="countryRegionValue" :localdata="countryRegionData"
  227. @change="countryRegionChange" placeholder="请选择村"></uni-data-select>
  228. </view>
  229. <view class="rtu-code">
  230. <uni-easyinput :styles="inputStyles" @input="yjSearchRtuCodeValClear"
  231. prefixIcon="search" v-model="searchRtuCodeVal" placeholder="请输入测站编码">
  232. </uni-easyinput>
  233. </view>
  234. <view class="rtu-name">
  235. <uni-easyinput :styles="inputStyles" @input="yjSearchRtuNameValClear"
  236. prefixIcon="search" v-model="searchRtuNameVal" placeholder="请输入测站名称">
  237. </uni-easyinput>
  238. </view>
  239. <view class="submit-btn">
  240. <button type="default" @click="onSearch">查询</button>
  241. </view>
  242. </view>
  243. <uni-group>
  244. <radio-group @change="onYjRainCountTypeRadioChange" class="view-flex-rs">
  245. <label style="margin-right: 5px;margin-bottom: 5px;;width:100px;"
  246. class="view-flex-inline" v-for="(item, index) in yjRainCountType.items"
  247. :key="item.id">
  248. <view>
  249. <radio :value="item.id" :checked="index === yjRainCountType.value" />
  250. </view>
  251. <view style="font-size: 0.7rem;">{{item.dictValue}}</view>
  252. </label>
  253. </radio-group>
  254. </uni-group>
  255. </view>
  256. <uni-list style="min-height: 40px;">
  257. <uni-list-item v-for="item in list" :key="item.id">
  258. <template v-slot:body>
  259. <view class="list-item-block">
  260. <view class="line" @click="onYjRainDataRtuClick(item)">
  261. <view class="title text-ellipsis text-underline "
  262. style="color: royalblue;">
  263. {{item.rtuName}}/{{item.rtuCode}}
  264. </view>
  265. </view>
  266. <view class="line">
  267. <text class="title" style="color: black;">上报时间:</text>
  268. <text class="text"
  269. style="color: gray;margin-left: 5px;">{{item.tm}}</text>
  270. </view>
  271. <view class="line">
  272. <text class="title" style="color: black;">累计雨量(mm):</text>
  273. <text class="text"
  274. style="color: gray;margin-left: 5px;">{{item.drp}}</text>
  275. </view>
  276. <view v-if="item.isWarn ==1">
  277. <view class="line">
  278. <text class="title" style="color: black;">预警信息:</text>
  279. <view class="text text-underline" style="color: coral;"
  280. @click="onYjWarnClick(item)">{{item.warnName}}</view>
  281. </view>
  282. </view>
  283. <view v-else>
  284. <view class="line">
  285. <text class="title" style="color: black;">预警信息:</text>
  286. <text class="text" style="color: coral;">暂无预警</text>
  287. </view>
  288. </view>
  289. <view v-if="item.isLinkDanger==1">
  290. <view class="line">
  291. <text class="title" style="color: black;">危险区信息:</text>
  292. <view v-for="da in item.dangerAreaList" :key="da.id"
  293. class="text text-underline" style="color: coral;"
  294. @click="onYjDangerAreaDataClick(da)">{{da.dangerAreaName}}
  295. </view>
  296. </view>
  297. </view>
  298. <view v-else>
  299. <view class="line">
  300. <text class="title" style="color: black;">危险区信息:</text>
  301. <view class="text" style="color: coral;">暂无数据</view>
  302. </view>
  303. </view>
  304. </view>
  305. </template>
  306. </uni-list-item>
  307. </uni-list>
  308. <uni-group>
  309. <view class="pagination-block" style="margin-top: 5px;">
  310. <uni-pagination :page-size="pageSize" :current="pageCurrent" :total="total"
  311. @change="yjPageChange" prevText="前一页" nextText="后一页" />
  312. </view>
  313. </uni-group>
  314. </view>
  315. <view v-else-if="contentViewStatus==1">
  316. <view style="padding-left: 10px;padding-right: 10px;padding-top: 10px;">
  317. <view v-if="warnData.warnResponseStatus==1">
  318. <view class="point">
  319. <view class="dot">
  320. 4
  321. </view>
  322. <view class="time-title">响应反馈【{{warnData.replyTm}}】</view>
  323. </view>
  324. <view class="time-info">
  325. <view class="time-line">
  326. <uni-list style="width: 100%;">
  327. <uni-list-item v-for="(r,index) in warnData.warnResponseInfoList"
  328. :key="index" direction="column">
  329. <template v-slot:body>
  330. <view class="list-item-block">
  331. <view class="line">
  332. <view class="text">责任人:<span
  333. style="color: deepskyblue;"></span></view>
  334. </view>
  335. <view class="line">
  336. <view class="text">责任人类型:<span
  337. style="color: deepskyblue;"></span></view>
  338. </view>
  339. <view class="line">
  340. <view class="text">反馈情况:<span
  341. style="color: deepskyblue;">{{r.repltStatus}}</span>
  342. </view>
  343. </view>
  344. <view class="line">
  345. <view class="text">反馈时间:<span
  346. style="color: deepskyblue;">{{r.replyTm}}</span>
  347. </view>
  348. </view>
  349. <!-- <view>反馈内容:<span style="color: skyblue;"></span></view> -->
  350. <view class="line">
  351. <view class="text">是否收到预警短信:<span
  352. style="color: deepskyblue;">{{r.isReceive}}</span>
  353. </view>
  354. </view>
  355. <view class="line">
  356. <view class="text">是否发生沟道山洪:<span
  357. style="color: deepskyblue;">{{r.isFloodBoot}}</span>
  358. </view>
  359. </view>
  360. <view class="line">
  361. <view class="text">山洪是否出沟:<span
  362. style="color: deepskyblue;">{{r.isFloodOut}}</span>
  363. </view>
  364. </view>
  365. <view class="line">
  366. <view class="text">降雨是否持续:<span
  367. style="color: deepskyblue;">{{r.isRainContu}}</span>
  368. </view>
  369. </view>
  370. <view class="line">
  371. <view class="text">是否人员转移:<span
  372. style="color: deepskyblue;">{{r.isTrans}}</span>
  373. </view>
  374. </view>
  375. <view class="line">
  376. <view class="text">有无人员伤亡:<span
  377. style="color: deepskyblue;">{{r.isDeady}}</span>
  378. </view>
  379. </view>
  380. </view>
  381. </template>
  382. </uni-list-item>
  383. </uni-list>
  384. </view>
  385. </view>
  386. </view>
  387. <view v-if="warnData.ousideWarnStatus==1">
  388. <view class="point">
  389. <view class="dot">
  390. 3
  391. </view>
  392. <view class="time-title">外部预警【{{warnData.extTime}}】</view>
  393. </view>
  394. <view class="time-info">
  395. <view class="time-line">
  396. <uni-list style="width: 100%;">
  397. <uni-list-item v-for="(out,index) in warnData.outsideWarnInfoList"
  398. :key="index" direction="column">
  399. <template v-slot:body>
  400. <view class="list-item-block">
  401. <view class="line">
  402. <view class="text ">发布单位:<span
  403. style="color: deepskyblue;">{{out.deptName}}</span>
  404. </view>
  405. </view>
  406. <view class="line">
  407. <view class="text ">发布人:<span
  408. style="color: deepskyblue;">{{out.senderName}}</span>
  409. </view>
  410. </view>
  411. <view class="line">
  412. <view class="text">发布内容:<span
  413. style="color: deepskyblue;">{{out.messageInfo}}</span>
  414. </view>
  415. </view>
  416. </view>
  417. </template>
  418. </uni-list-item>
  419. </uni-list>
  420. </view>
  421. </view>
  422. </view>
  423. <view>
  424. <view class="point">
  425. <view class="dot">
  426. 2
  427. </view>
  428. <view class="time-title">内部预警【{{warnData.warnTime}}】</view>
  429. </view>
  430. <view class="time-info">
  431. <view class="time-line">
  432. <uni-list style="width: 100%;">
  433. <uni-list-item direction="column">
  434. <template v-slot:body>
  435. <view class="list-item-block">
  436. <view class="line">
  437. <view class="text">发布单位:<span
  438. style="color: deepskyblue;">系统自动</span></view>
  439. </view>
  440. </view>
  441. </template>
  442. </uni-list-item>
  443. <uni-list-item direction="column">
  444. <template v-slot:body>
  445. <view class="list-item-block">
  446. <view class="line">
  447. <view class="text">预警名称:<span
  448. style="color: deepskyblue;">{{warnData.warnName}}</span>
  449. </view>
  450. </view>
  451. </view>
  452. </template>
  453. </uni-list-item>
  454. <uni-list-item v-for="(inside,index) in warnData.insideWarnInfoList"
  455. :key="index" direction="column">
  456. <template v-slot:body>
  457. <view class="list-item-block">
  458. <view class="line">
  459. <view class="text ">类型:<span
  460. style="color: deepskyblue;">{{inside.sendObjectName}}</span>
  461. </view>
  462. </view>
  463. <view class="line">
  464. <view class="text ">接收人:<span
  465. style="color: deepskyblue;">{{inside.userName}}</span>
  466. </view>
  467. </view>
  468. <view class="line">
  469. <view class="text">所在单位:<span
  470. style="color: deepskyblue;">{{inside.deptName}}</span>
  471. </view>
  472. </view>
  473. <view class="line">
  474. <view class="text">职务:<span
  475. style="color: deepskyblue;">{{inside.posiTion}}</span>
  476. </view>
  477. </view>
  478. <view class="line">
  479. <view class="text">电话:<span
  480. style="color: deepskyblue;">{{inside.userTel}}</span>
  481. </view>
  482. </view>
  483. <view class="line">
  484. <view class="text">短信内容:<span
  485. style="color: deepskyblue;">{{inside.messageInfo}}</span>
  486. </view>
  487. </view>
  488. <view class="line">
  489. <view class="text">发送时间:<span
  490. style="color: deepskyblue;">{{inside.sendTime}}</span>
  491. </view>
  492. </view>
  493. <view class="line">
  494. <view class="text">发送单位:<span
  495. style="color: deepskyblue;"></span></view>
  496. </view>
  497. <view class="line">
  498. <view class="text">发送人:<span
  499. style="color: deepskyblue;">{{inside.senderName}}</span>
  500. </view>
  501. </view>
  502. <view class="line">
  503. <view v-if="inside.sendStatus ==0" class="text">
  504. 发送状态:<span style="color: deepskyblue;">失败</span>
  505. </view>
  506. <view v-else-if="inside.sendStatus ==1" class="text">
  507. 发送状态:<span style="color: deepskyblue;">成功</span>
  508. </view>
  509. </view>
  510. </view>
  511. </template>
  512. </uni-list-item>
  513. </uni-list>
  514. </view>
  515. </view>
  516. </view>
  517. <view>
  518. <view class="point">
  519. <view class="dot">
  520. 1
  521. </view>
  522. <view class="time-title">产生预警【{{warnData.warnTime}}】</view>
  523. </view>
  524. <view class="time-info">
  525. <view class="time-line">
  526. <uni-list style="width: 100%;">
  527. <uni-list-item direction="column">
  528. <template v-slot:body>
  529. <view class="list-item-block">
  530. <view class="line">
  531. <view class="text"><span
  532. style="color: deepskyblue;">{{warnData.warnInfo}}</span>
  533. </view>
  534. </view>
  535. </view>
  536. </template>
  537. </uni-list-item>
  538. </uni-list>
  539. </view>
  540. </view>
  541. </view>
  542. </view>
  543. </view>
  544. <view v-else-if="contentViewStatus==2">
  545. <view class="view-flex-inline" style="color: gray;margin-left: 10px;font-size: 0.9rem;">
  546. 图层选择: </view>
  547. <view class="view-flex-inline" style="margin-top: 0px;padding-left: 10px;">
  548. <uni-data-checkbox :multiple="true" mode="button" v-model="mapCheck"
  549. :localdata="mapItems" @change="mapChange"></uni-data-checkbox>
  550. </view>
  551. <view class="list-item-block" style="color: gray;padding-left: 10px;">
  552. <view class="line">
  553. <text class="title" style="color: gray;">危险区:</text>
  554. </view>
  555. <view class="line">
  556. <view class="view-flex-block-center view-border"
  557. style="border-radius: 5px;;margin-top: 2px;" @click="moveToYjDangerArea()">
  558. <view class="view-btn-text text-under-line"
  559. style="color: deepskyblue;font-size: 0.7rem;padding-left: 10px;padding-right: 10px;padding-bottom: 2px;">
  560. {{dangerAreaData.dangerAreaName}}
  561. </view>
  562. </view>
  563. </view>
  564. </view>
  565. <view class="list-item-block" style="color: gray;padding-left: 10px;margin-top: 5px;">
  566. <view class="line">
  567. <text class="title" style="color: gray;">关联站点:</text>
  568. </view>
  569. <view class="line">
  570. <view v-for="rtu in dangerAreaData.rtus" :key="rtu.id"
  571. class="view-flex-block-center view-border"
  572. style="border-radius: 5px; padding-right: 10px;margin-top: 2px;"
  573. @click="moveToYjDangerAreaLinkRtu(rtu)">
  574. <view class="view-btn-text text-under-line"
  575. style="color: deepskyblue;font-size: 0.7rem;padding-left: 10px;padding-right: 10px;padding-bottom: 2px;">
  576. {{rtu.stName}}
  577. </view>
  578. </view>
  579. </view>
  580. </view>
  581. <view class="list-item-block" style="color: gray;padding-left: 10px;margin-top: 5px;">
  582. <view class="line">
  583. <text class="title" style="color: gray;">关联转移路线:</text>
  584. </view>
  585. <view class="line">
  586. <view v-for="leaveline in dangerAreaData.leaveLines" :key="leaveline.id"
  587. class="view-flex-block-center view-border"
  588. style="border-radius: 5px; padding-right: 10px;margin-top: 2px;"
  589. @click="moveToYjDangerAreaLinkLine(leaveline)">
  590. <view class="view-btn-text text-under-line"
  591. style="color: deepskyblue;font-size: 0.7rem;padding-left: 10px;padding-right: 10px;padding-bottom: 2px;">
  592. {{leaveline.leaveLineName}}
  593. </view>
  594. </view>
  595. </view>
  596. </view>
  597. <view class="list-item-block" style="color: gray;padding-left: 10px;">
  598. <view class="line">
  599. <text class="title" style="color: gray;">关联家庭户:</text>
  600. </view>
  601. <view class="line">
  602. <view v-if="dangerAreaData.familyCount>0" class="view-flex-block-center view-border"
  603. style="border-radius: 5px;;margin-top: 2px;"
  604. @click="moveToYjDangerAreaFamily()">
  605. <view class="view-btn-text text-under-line"
  606. style="color: deepskyblue;font-size: 0.7rem;padding-left: 10px;padding-right: 10px;padding-bottom: 2px;">
  607. 共有{{dangerAreaData.familyCount}}户
  608. </view>
  609. </view>
  610. <view v-else>
  611. <view class="text" style="color: deepskyblue;font-size: 0.7rem;">暂无关联家庭户</view>
  612. </view>
  613. </view>
  614. </view>
  615. </view>
  616. <view v-else></view>
  617. </scroll-view>
  618. </view>
  619. </view>
  620. </view>
  621. </view>
  622. </template>
  623. <script>
  624. import {
  625. gcoord
  626. } from '@/static/js/gcoord.global.prod.js'
  627. import
  628. navBtns
  629. from "@/api/home.js";
  630. import {
  631. role
  632. } from "@/api/role.js";
  633. import http from '@/http/api.js';
  634. export default {
  635. name: 'rtuManageView',
  636. components: {},
  637. data() {
  638. return {
  639. title: '管理工作台',
  640. permission: {
  641. 'admin': false,
  642. 'orgAdmin': false,
  643. 'companyAdmin': false,
  644. 'companyServciePerson': false,
  645. 'yjServicePerson': false,
  646. },
  647. subSystem: 0,
  648. pageSize: 10,
  649. pageCurrent: 1,
  650. total: 0,
  651. list: [],
  652. searchRtuNameVal: '',
  653. searchRtuCodeVal: '',
  654. query: {},
  655. inputStyles: {
  656. color: '#808080',
  657. borderColor: '#d3d3d3'
  658. },
  659. //以下为运维系统参数
  660. currentRole: '',
  661. regionTree: [],
  662. regionCode: '',
  663. selectedTreeNode: '',
  664. countInfo: {},
  665. loading: false,
  666. value: [],
  667. warnKindItems: [{
  668. 'value': 0,
  669. 'text': '全部'
  670. }, {
  671. 'value': 1,
  672. 'text': '离线'
  673. }, {
  674. 'value': 2,
  675. 'text': '时钟异常'
  676. }, {
  677. 'value': 3,
  678. 'text': '雨量漏报'
  679. }, {
  680. 'value': 4,
  681. 'text': '水位漏报'
  682. }, {
  683. 'value': 5,
  684. 'text': '5分钟上报延时'
  685. }, {
  686. 'value': 6,
  687. 'text': '雨量小时上报延时'
  688. }, {
  689. 'value': 7,
  690. 'text': '水位小时上报延时'
  691. }, {
  692. 'value': 8,
  693. 'text': '雨量疑似异常值'
  694. }],
  695. warnKindOption: 0,
  696. //以下为应急参数
  697. mapScreenMax: false,
  698. mapScreenMin: true,
  699. showSearch: false,
  700. contentViewStatus: 0,
  701. cityRegionValue: '',
  702. cityRegionData: [],
  703. districtRegionValue: '',
  704. districtRegionData: [],
  705. townRegionValue: '',
  706. townRegionData: [],
  707. countryRegionValue: '',
  708. countryRegionData: [],
  709. latitude: 40.848119,
  710. longitude: 111.755426,
  711. zoom: true,
  712. scale: 13,
  713. markets: [],
  714. polygons: [],
  715. polylines: [],
  716. includepoints: [],
  717. mapStyles: {
  718. width: '100%',
  719. height: '200px'
  720. },
  721. popViewStyles: {
  722. width: '100%',
  723. height: '500px'
  724. },
  725. popScrollViewStyles: {
  726. width: '100%',
  727. height: '100px'
  728. },
  729. searchViewStyles: {
  730. width: '100%',
  731. height: '40px'
  732. },
  733. mapHeight: 200,
  734. popViewHeight: 500,
  735. //应急雨量参数
  736. yjRainCountType: {
  737. items: [{
  738. 'id': '0',
  739. 'dictValue': '默认'
  740. }, {
  741. 'id': '1',
  742. 'dictValue': '近1小时'
  743. }, {
  744. 'id': '2',
  745. 'dictValue': '近3小时'
  746. }, {
  747. 'id': '3',
  748. 'dictValue': '近6小时'
  749. }, {
  750. 'id': '4',
  751. 'dictValue': '近12小时'
  752. }, {
  753. 'id': '5',
  754. 'dictValue': '近24小时'
  755. }],
  756. value: 0,
  757. },
  758. mapContext: null,
  759. mapCheck: [0, 1, 2, 3],
  760. mapItems: [{
  761. text: '危险区',
  762. value: 0
  763. },
  764. {
  765. text: '转移路线',
  766. value: 1
  767. },
  768. {
  769. text: '站点',
  770. value: 2
  771. },
  772. {
  773. text: '家庭户',
  774. value: 3
  775. }
  776. ],
  777. isShowDangerArea: true,
  778. isShowLine: true,
  779. isShowSite: true,
  780. isShowFamily: true,
  781. warnData: {},
  782. dangerAreaData: {},
  783. }
  784. },
  785. computed: {
  786. toLocation(l) {
  787. return new Number(l).toFixed(6);
  788. }
  789. },
  790. onInit(option) {
  791. console.log("onInit" + JSON.stringify(uni.getWindowInfo()))
  792. },
  793. onLoad(option) {
  794. let subSystemSelectInfo = uni.getStorageSync("SubSystemSelectInfo");
  795. this.subSystem = subSystemSelectInfo.subSystem;
  796. if (this.$u.func.checkLogin()) {
  797. if (this.userInfo.role_name === role.admin) {
  798. this.permission.admin = true;
  799. this.currentRole = role.admin;
  800. } else if (this.userInfo.role_name === role.orgAdmin) {
  801. this.permission.orgAdmin = true;
  802. this.currentRole = role.orgAdmin;
  803. } else if (this.userInfo.role_name === role.companyAdmin) {
  804. this.permission.companyAdmin = true;
  805. this.currentRole = role.companyAdmin;
  806. } else if (this.userInfo.role_name === role.companyServciePerson) {
  807. this.permission.companyServciePerson = true;
  808. this.currentRole = role.companyServciePerson;
  809. } else if (this.userInfo.role_name === role.yjServicePerson) {
  810. this.permission.yjServicePerson = true;
  811. this.currentRole = role.yjServicePerson;
  812. }
  813. if (this.subSystem == 1) {
  814. this.title = "管理工作台";
  815. this.getRegionTree();
  816. } else if (this.subSystem == 2) {
  817. this.title = "实时监测预警";
  818. this.getCityRegion({});
  819. this.$nextTick(() => {
  820. this.getYjPage({});
  821. })
  822. }
  823. } else {
  824. this.$u.func.logout();
  825. }
  826. },
  827. onShow() {
  828. if (this.$u.func.checkLogin()) {
  829. if (this.subSystem == 1) {
  830. this.title = "管理工作台";
  831. } else if (this.subSystem == 2) {
  832. this.title = "实时监测预警";
  833. }
  834. if (this.userInfo.role_name !== this.currentRole) {
  835. this.permission.admin = false;
  836. this.permission.orgAdmin = false;
  837. this.permission.companyAdmin = false;
  838. this.permission.companyServciePerson = false;
  839. this.permission.yjServicePerson = false;
  840. if (this.userInfo.role_name === role.admin) {
  841. this.permission.admin = true;
  842. this.currentRole = role.admin;
  843. } else if (this.userInfo.role_name === role.orgAdmin) {
  844. this.permission.orgAdmin = true;
  845. this.currentRole = role.orgAdmin;
  846. } else if (this.userInfo.role_name === role.companyAdmin) {
  847. this.permission.companyAdmin = true;
  848. this.currentRole = role.companyAdmin;
  849. } else if (this.userInfo.role_name === role.companyServciePerson) {
  850. this.permission.companyServciePerson = true;
  851. this.currentRole = role.companyServciePerson;
  852. } else if (this.userInfo.role_name === role.yjServicePerson) {
  853. this.permission.yjServicePerson = true;
  854. this.currentRole = role.yjServicePerson;
  855. }
  856. if (this.subSystem == 1) {
  857. this.getRegionTree();
  858. } else if (this.subSystem == 2) {
  859. }
  860. }
  861. } else {
  862. this.$u.func.logout();
  863. }
  864. },
  865. onReady() {
  866. //console.log("onReady" + JSON.stringify(uni.getWindowInfo()))
  867. //this.mapStyles.height = (uni.getWindowInfo().windowHeight - 75 - 20) + "px";
  868. if (this.subSystem == 2) {
  869. //console.log("onReady" + JSON.stringify(uni.getWindowInfo()))
  870. this.mapHeight = 200;
  871. //uni.getWindowInfo().windowHeight - 50 - 500;
  872. this.mapStyles.height = this.mapHeight + "px";
  873. this.popViewHeight = uni.getWindowInfo().windowHeight - 50 - 200;
  874. this.popScrollViewStyles.height = (this.popViewHeight - 40) + "px";
  875. this.mapContext = uni.createMapContext('myMap', this);
  876. }
  877. },
  878. methods: {
  879. // 分页触发
  880. pageChange(e) {
  881. this.pageCurrent = e.current;
  882. this.getPage()
  883. },
  884. //行政区划选择
  885. onTreeNodeClick(node) {
  886. console.log(JSON.stringify(node))
  887. },
  888. onTreePopupOpened(e) {
  889. console.log(JSON.stringify(e))
  890. },
  891. onTreePopupClosed(e) {
  892. console.log(JSON.stringify(e))
  893. },
  894. onTreeChange(e) {
  895. console.log(JSON.stringify(e))
  896. let nodes = e.detail.value;
  897. if (nodes.length > 0) {
  898. let node = nodes[nodes.length - 1];
  899. this.regionCode = node.value;
  900. this.query = {};
  901. this.query['adCode'] = this.regionCode;
  902. this.searchRtuNameVal = '';
  903. this.searchRtuCodeVal = '';
  904. this.pageCurrent = 1;
  905. this.getPage();
  906. this.getCountInfo(this.regionCode);
  907. } else {
  908. this.regionCode = '';
  909. this.query = {};
  910. this.searchRtuNameVal = '';
  911. this.searchRtuCodeVal = '';
  912. this.pageCurrent = 1;
  913. this.getPage();
  914. this.getCountInfo(this.regionCode);
  915. }
  916. },
  917. //录入查询
  918. search() {
  919. this.pageCurrent = 1;
  920. // console.log(JSON.stringify(res))
  921. let params = {};
  922. if (this.searchRtuCodeVal.length > 0) {
  923. params['rtuCode'] = this.searchRtuCodeVal;
  924. }
  925. if (this.searchRtuNameVal.length > 0) {
  926. params['rtuName'] = this.searchRtuNameVal;
  927. }
  928. this.getPage(params);
  929. },
  930. searchRtuNameValClear(e) {
  931. if (e == null || e.length == 0) {
  932. this.searchRtuNameVal = '';
  933. let params = {};
  934. if (this.searchRtuCodeVal.length > 0) {
  935. params['rtuCode'] = this.searchRtuCodeVal;
  936. }
  937. this.getPage(params);
  938. }
  939. },
  940. searchRtuCodeValClear(e) {
  941. if (e == null || e.length == 0) {
  942. this.searchRtuCodeVal = '';
  943. let params = {};
  944. if (this.searchRtuNameVal.length > 0) {
  945. params['rtuName'] = this.searchRtuNameVal;
  946. }
  947. this.getPage(params);
  948. }
  949. },
  950. onBackPress() {
  951. // #ifdef APP-PLUS
  952. plus.key.hideSoftKeybord();
  953. // #endif
  954. },
  955. onRtuDetailClick(rtuCode) {
  956. uni.navigateTo({
  957. url: '/pages/rtu-manage/rtudetail?rtuCode=' + rtuCode
  958. })
  959. },
  960. onWarningPageClick(rtuCode) {
  961. uni.navigateTo({
  962. url: '/pages/warning/rtuwarninglist?rtuCode=' + rtuCode
  963. })
  964. },
  965. onLocationClick(item) {
  966. let lat = item.lat;
  967. let lng = item.lng;
  968. let name = item.rtuName;
  969. let add = item.locationDesc;
  970. uni.openLocation({
  971. latitude: Number(lat),
  972. longitude: Number(lng),
  973. name: name,
  974. address: "",
  975. success() {}
  976. })
  977. },
  978. onCheckOrderPageClick(rtuCode) {
  979. uni.navigateTo({
  980. url: '/pages/check-order/rtu/rtucheckorderlist?rtuCode=' + rtuCode
  981. })
  982. },
  983. onInspectionReportClick(rtuCode) {
  984. console.log("onInspectionReportClick")
  985. uni.navigateTo({
  986. url: '/pages/equipment-inspection/rtuinspectionreportview?rtuCode=' + rtuCode
  987. })
  988. },
  989. onSiteRealDataClick(item) {
  990. uni.navigateTo({
  991. url: '/pages/rtu-manage/rturealdatadetail?rtuCode=' + item.rtuCode + '&isRain=' + item.isRain +
  992. '&isRiver=' + item.isRiver + '&isRes=' + item.isRes + '&isGround=' + item.isGround,
  993. })
  994. },
  995. onManuallyOrderClick(rtuCode) {
  996. uni.navigateTo({
  997. url: '/pages/check-order/manuallyaddcheckorder?rtuCode=' + rtuCode
  998. })
  999. },
  1000. warnKindOptionChange: function(evt) {
  1001. let params = {};
  1002. this.getPage(params);
  1003. },
  1004. getSiteData(val) {
  1005. let htmltext = '';
  1006. if (val.isRain === 1) {
  1007. htmltext = htmltext + "降水:";
  1008. if (val.drp) {
  1009. htmltext = htmltext + val.drp;
  1010. } else {
  1011. htmltext = htmltext + "--";
  1012. }
  1013. }
  1014. if (val.isRiver == 1) {
  1015. if (htmltext.length > 0) {
  1016. htmltext = htmltext + ' / ';
  1017. }
  1018. htmltext = htmltext + '水位:';
  1019. if (val.rz) {
  1020. htmltext = htmltext + val.rz;
  1021. } else {
  1022. htmltext = htmltext + "--";
  1023. }
  1024. } else if (val.isRes == 1) {
  1025. if (htmltext.length > 0) {
  1026. htmltext = htmltext + ' / ';
  1027. }
  1028. htmltext = htmltext + '水位:';
  1029. if (val.z) {
  1030. htmltext = htmltext + val.z;
  1031. } else {
  1032. htmltext = htmltext + "--";
  1033. }
  1034. }
  1035. if (val.isGround == 1) {
  1036. if (htmltext.length > 0) {
  1037. htmltext = htmltext + ' / ';
  1038. }
  1039. htmltext = htmltext + '墒情含水层:';
  1040. if (val.ground) {
  1041. htmltext = htmltext + val.ground;
  1042. } else {
  1043. htmltext = htmltext + "--";
  1044. }
  1045. }
  1046. return htmltext;
  1047. },
  1048. getRegionTree() {
  1049. var that = this;
  1050. http.request({
  1051. url: '/galaxy-business/baseinfo/region/tree',
  1052. method: 'GET',
  1053. }).then(res => {
  1054. if (res.data != null) {
  1055. that.regionTree = res.data;
  1056. that.regionCode = that.regionTree[0].id;
  1057. that.selectedTreeNode = that.regionTree[0].id;
  1058. that.query = {};
  1059. that.query['adCode'] = that.regionCode;
  1060. that.getPage();
  1061. that.getCountInfo(that.regionCode);
  1062. }
  1063. }).catch(err => {
  1064. console.log(err)
  1065. })
  1066. },
  1067. getCountInfo(adCode) {
  1068. let that = this;
  1069. http.request({
  1070. url: '/galaxy-business/rtu/manage/count',
  1071. method: 'GET',
  1072. data: {
  1073. adCode
  1074. }
  1075. }).then(res => {
  1076. that.countInfo = res.data;
  1077. })
  1078. },
  1079. getPage(params = {}) {
  1080. this.loading = true
  1081. if (this.warnKindOption == 0) {} else {
  1082. params['warnKind'] = this.warnKindOption;
  1083. }
  1084. const current = this.pageCurrent;
  1085. const size = this.pageSize;
  1086. let postData = Object.assign(params, this.query);
  1087. var that = this;
  1088. http.request({
  1089. url: '/galaxy-business/rtu/manage/page',
  1090. method: 'GET',
  1091. params: {
  1092. current,
  1093. size,
  1094. },
  1095. data: postData,
  1096. }).then(res => {
  1097. // console.log(JSON.stringify(res.data))
  1098. if (res.data.records != null) {
  1099. that.list = res.data.records;
  1100. }
  1101. that.total = res.data.total;
  1102. this.loading = false
  1103. }).catch(err => {
  1104. console.log(err)
  1105. this.loading = false
  1106. })
  1107. },
  1108. //以下为应急系统业务功能
  1109. onMapScreenMax() {
  1110. console.log("max")
  1111. this.mapScreenMax = true;
  1112. this.mapScreenMin = false;
  1113. this.mapHeight = uni.getWindowInfo().windowHeight - 50 - 200;
  1114. this.mapStyles.height = this.mapHeight + "px";
  1115. this.popViewHeight = 200;
  1116. this.popScrollViewStyles.height = (this.popViewHeight - 40) + "px";
  1117. },
  1118. onMapScreenMin() {
  1119. console.log("min")
  1120. this.mapScreenMax = false;
  1121. this.mapScreenMin = true;
  1122. this.mapHeight = 200;
  1123. this.mapStyles.height = this.mapHeight + "px";
  1124. this.popViewHeight = uni.getWindowInfo().windowHeight - 50 - 200;
  1125. this.popScrollViewStyles.height = (this.popViewHeight - 40) + "px";
  1126. },
  1127. searchAreaStatus(e) {
  1128. console.log(JSON.stringify(e))
  1129. if (e.length > 0 && e[0] == '0') {
  1130. this.showSearch = true;
  1131. } else {
  1132. this.showSearch = false;
  1133. }
  1134. },
  1135. onYjRainDataRefreshClick() {
  1136. this.pageCurrent = 1;
  1137. this.query = {};
  1138. this.searchRtuNameVal = '';
  1139. this.searchRtuCodeVal = '';
  1140. this.getYjPage({});
  1141. },
  1142. onYjWarnBackClick() {
  1143. this.contentViewStatus = 0;
  1144. },
  1145. onYjDangerAreaBackClick() {
  1146. this.contentViewStatus = 0;
  1147. },
  1148. //定位到测站
  1149. onYjRainDataRtuClick(item) {
  1150. this.isShowSite = true;
  1151. this.mapCheck = [2];
  1152. this.$nextTick(() => {
  1153. this.markets = [];
  1154. let marker = {};
  1155. let c = gcoord.transform(
  1156. [item.lng, item.lat],
  1157. gcoord.WGS84,
  1158. gcoord.GCJ02
  1159. );
  1160. marker['id'] = item.id;
  1161. marker['latitude'] = c[1];
  1162. marker['longitude'] = c[0];
  1163. let label = {};
  1164. label['content'] = item.rtuName + "(" + item.drp + "mm)";
  1165. label['color'] = '#ff0000';
  1166. label['bgColor'] = '#ffffff';
  1167. label['anchorY'] = -40;
  1168. marker['label'] = label;
  1169. marker['iconPath'] = "/static/images/icon_warning.png";
  1170. this.markets.push(marker)
  1171. this.mapContext.moveToLocation({
  1172. longitude: c[0],
  1173. latitude: c[1],
  1174. success: (res) => {
  1175. }
  1176. });
  1177. })
  1178. },
  1179. //打开预警信息子页面
  1180. onYjWarnClick(item) {
  1181. let that = this;
  1182. this.contentViewStatus = 1;
  1183. this.$nextTick(() => {
  1184. this.getWarnInfoDetail(item.warnId);
  1185. })
  1186. },
  1187. //打开危险区信息子页面
  1188. onYjDangerAreaDataClick(item) {
  1189. let that = this;
  1190. this.dangerAreaData.dangerAreaName = item.dangerAreaName;
  1191. this.isShowDangerArea = true;
  1192. this.isShowLine = true;
  1193. this.isShowSite = true;
  1194. this.isShowFamily = true;
  1195. this.mapCheck = [0, 1, 2, 3];
  1196. this.markets = [];
  1197. this.polygons = [];
  1198. this.polylines = [];
  1199. this.contentViewStatus = 2;
  1200. this.$nextTick(() => {
  1201. let postData = {};
  1202. postData['dangerAreaPid'] = item.dangerAreaPid;
  1203. http.request({
  1204. url: '/galaxy-business/map/dangerarea/detail',
  1205. method: 'GET',
  1206. data: postData
  1207. }).then(res => {
  1208. if (res.data != null) {
  1209. //console.log(JSON.stringify(res.data))
  1210. that.dangerAreaData = res.data;
  1211. let centerPointLng = res.data.centerPointLng;
  1212. let centerPointLat = res.data.centerPointLat;
  1213. let dangerStatus = res.data.dangerStatus;
  1214. if (that.isShowDangerArea) {
  1215. let dangerAreaPoints = res.data.points;
  1216. let p = {};
  1217. let ps = dangerAreaPoints.map(item => {
  1218. let l = gcoord.transform(
  1219. [item.pointLng, item.pointLat],
  1220. gcoord.WGS84,
  1221. gcoord.GCJ02
  1222. );
  1223. return {
  1224. latitude: l[1],
  1225. longitude: l[0],
  1226. }
  1227. })
  1228. p['points'] = ps;
  1229. let dashArray = [];
  1230. dashArray.push(4);
  1231. dashArray.push(10);
  1232. p['dashArray'] = dashArray;
  1233. if (dangerStatus == '1') {
  1234. p['strokeColor'] = '#FF0000';
  1235. p['fillColor'] = '#F72C5B7D';
  1236. } else {
  1237. p['strokeColor'] = '#FC8452';
  1238. p['fillColor'] = '#FAC8587D';
  1239. }
  1240. that.polygons.push(p);
  1241. }
  1242. if (that.isShowLine) {
  1243. if (that.dangerAreaData.leaveLines != undefined && that.dangerAreaData
  1244. .leaveLines != null && that
  1245. .dangerAreaData.leaveLines.length > 0) {
  1246. let line = that.dangerAreaData.leaveLines[0];
  1247. that.getYjDangerAreaLineDetail(line);
  1248. }
  1249. }
  1250. let rtus = [];
  1251. if (that.isShowSite) {
  1252. rtus = that.dangerAreaData.rtus.map(item => {
  1253. let rtu = {};
  1254. rtu['iconPath'] = '/static/images/icon_warning.png';
  1255. rtu['id'] = parseInt(item.id);
  1256. let r = gcoord.transform(
  1257. [item.stLong, item.stLat],
  1258. gcoord.WGS84,
  1259. gcoord.GCJ02
  1260. );
  1261. rtu['latitude'] = r[1];
  1262. rtu['longitude'] = r[0];
  1263. rtu['width'] = 20;
  1264. rtu['height'] = 20;
  1265. let label = {};
  1266. label['content'] = item.stName;
  1267. label['color'] = '#000000';
  1268. label['bgColor'] = '#ffffff';
  1269. label['anchorY'] = -40;
  1270. label['borderWidth'] = 1;
  1271. label['borderColor'] = '#ff0000';
  1272. label['padding'] = 4;
  1273. rtu['label'] = label;
  1274. return rtu;
  1275. });
  1276. }
  1277. let familys = [];
  1278. if (that.isShowFamily) {
  1279. familys = that.dangerAreaData.familyPoints.map(item => {
  1280. let rtu = {};
  1281. rtu['iconPath'] = '/static/images/home.png';
  1282. rtu['id'] = parseInt(item.id);
  1283. let r = gcoord.transform(
  1284. [item.longitude, item.latitude],
  1285. gcoord.WGS84,
  1286. gcoord.GCJ02
  1287. );
  1288. rtu['latitude'] = r[1];
  1289. rtu['longitude'] = r[0];
  1290. rtu['width'] = 20;
  1291. rtu['height'] = 20;
  1292. let label = {};
  1293. label['content'] = item.personName;
  1294. label['color'] = '#000000';
  1295. label['bgColor'] = '#ffffff';
  1296. label['anchorY'] = -40;
  1297. label['borderWidth'] = 1;
  1298. label['borderColor'] = '#ff0000';
  1299. label['padding'] = 4;
  1300. rtu['label'] = label;
  1301. return rtu;
  1302. });
  1303. }
  1304. let markets = rtus.concat(familys)
  1305. that.markets = markets;
  1306. let c = gcoord.transform(
  1307. [centerPointLng, centerPointLat],
  1308. gcoord.WGS84,
  1309. gcoord.GCJ02
  1310. );
  1311. that.latitude = c[1];
  1312. that.longitude = c[0];
  1313. }
  1314. }).catch(err => {
  1315. console.log(err)
  1316. })
  1317. })
  1318. },
  1319. moveToYjDangerArea() {
  1320. if (this.isShowDangerArea) {
  1321. this.$nextTick(() => {
  1322. let c = gcoord.transform(
  1323. [this.dangerAreaData.centerPointLng, this.dangerAreaData.centerPointLat],
  1324. gcoord.WGS84,
  1325. gcoord.GCJ02
  1326. );
  1327. this.latitude = c[1];
  1328. this.longitude = c[0];
  1329. this.mapContext.moveToLocation({
  1330. longitude: this.longitude,
  1331. latitude: this.latitude,
  1332. success: (res) => {
  1333. }
  1334. });
  1335. })
  1336. }
  1337. },
  1338. moveToYjDangerAreaLinkRtu(rtu) {
  1339. if (this.isShowSite) {
  1340. this.$nextTick(() => {
  1341. let c = gcoord.transform(
  1342. [rtu.stLong, rtu.stLat],
  1343. gcoord.WGS84,
  1344. gcoord.GCJ02
  1345. );
  1346. let lat = c[1];
  1347. let long = c[0];
  1348. this.mapContext.moveToLocation({
  1349. longitude: long,
  1350. latitude: lat,
  1351. success: (res) => {
  1352. }
  1353. });
  1354. })
  1355. }
  1356. },
  1357. moveToYjDangerAreaLinkLine(line) {
  1358. //console.log(JSON.stringify(line))
  1359. //let that = this;
  1360. if (this.isShowLine) {
  1361. this.$nextTick(() => {
  1362. let c = gcoord.transform(
  1363. [line.centerPointLng, line.centerPointLat],
  1364. gcoord.WGS84,
  1365. gcoord.GCJ02
  1366. );
  1367. let lat = c[1];
  1368. let long = c[0];
  1369. this.mapContext.moveToLocation({
  1370. longitude: long,
  1371. latitude: lat,
  1372. success: (res) => {
  1373. }
  1374. });
  1375. this.getYjDangerAreaLineDetail(line);
  1376. })
  1377. }
  1378. },
  1379. moveToYjDangerAreaFamily() {
  1380. if (this.isShowFamily) {
  1381. this.$nextTick(() => {
  1382. if (this.dangerAreaData.familyPoints != undefined && this.dangerAreaData.familyPoints !=
  1383. null && this
  1384. .dangerAreaData.familyPoints.length > 0) {
  1385. let f = this.dangerAreaData.familyPoints[0];
  1386. let c = gcoord.transform(
  1387. [f.longitude, f.latitude],
  1388. gcoord.WGS84,
  1389. gcoord.GCJ02
  1390. );
  1391. this.mapContext.moveToLocation({
  1392. longitude: c[0],
  1393. latitude: c[1],
  1394. success: (res) => {
  1395. }
  1396. });
  1397. }
  1398. })
  1399. }
  1400. },
  1401. mapChange(e) {
  1402. let selectDangerArea = false;
  1403. let selectLine = false;
  1404. let selectSite = false;
  1405. let selectFamily = false;
  1406. for (let i = 0; i < this.mapCheck.length; i++) {
  1407. let value = this.mapCheck[i];
  1408. if (value == 0) {
  1409. selectDangerArea = true;
  1410. } else if (value == 1) {
  1411. selectLine = true;
  1412. } else if (value == 2) {
  1413. selectSite = true;
  1414. } else if (value == 3) {
  1415. selectFamily = true;
  1416. }
  1417. }
  1418. if (selectDangerArea) {
  1419. if (!this.isShowDangerArea) {
  1420. let p = {};
  1421. let ps = this.dangerAreaData.points.map(item => {
  1422. let l = gcoord.transform(
  1423. [item.pointLng, item.pointLat],
  1424. gcoord.WGS84,
  1425. gcoord.GCJ02
  1426. );
  1427. return {
  1428. latitude: l[1],
  1429. longitude: l[0],
  1430. }
  1431. })
  1432. p['points'] = ps;
  1433. let dashArray = [];
  1434. dashArray.push(4);
  1435. dashArray.push(10);
  1436. p['dashArray'] = dashArray;
  1437. if (this.dangerStatus == '1') {
  1438. p['strokeColor'] = '#FF0000';
  1439. p['fillColor'] = '#F72C5B7D';
  1440. } else {
  1441. p['strokeColor'] = '#FC8452';
  1442. p['fillColor'] = '#FAC8587D';
  1443. }
  1444. this.polygons.push(p);
  1445. this.isShowDangerArea = true;
  1446. }
  1447. } else {
  1448. this.polygons = [];
  1449. this.isShowDangerArea = false;
  1450. }
  1451. if (selectLine) {
  1452. if (!this.isShowLine) {
  1453. if (this.dangerAreaData.leaveLines != undefined && this.dangerAreaData.leaveLines != null && this
  1454. .dangerAreaData.leaveLines.length > 0) {
  1455. let line = this.dangerAreaData.leaveLines[0];
  1456. this.getYjDangerAreaLineDetail(line);
  1457. }
  1458. this.isShowLine = true;
  1459. }
  1460. } else {
  1461. this.polylines = [];
  1462. this.isShowLine = false;
  1463. }
  1464. let rtus = [];
  1465. if (selectSite) {
  1466. rtus = this.dangerAreaData.rtus.map(item => {
  1467. let rtu = {};
  1468. rtu['iconPath'] = '/static/images/icon_warning.png';
  1469. rtu['id'] = parseInt(item.id);
  1470. let r = gcoord.transform(
  1471. [item.stLong, item.stLat],
  1472. gcoord.WGS84,
  1473. gcoord.GCJ02
  1474. );
  1475. rtu['latitude'] = r[1];
  1476. rtu['longitude'] = r[0];
  1477. rtu['width'] = 20;
  1478. rtu['height'] = 20;
  1479. let label = {};
  1480. label['content'] = item.stName;
  1481. label['color'] = '#000000';
  1482. label['bgColor'] = '#ffffff';
  1483. label['anchorY'] = -40;
  1484. label['borderWidth'] = 1;
  1485. label['borderColor'] = '#ff0000';
  1486. label['padding'] = 4;
  1487. rtu['label'] = label;
  1488. return rtu;
  1489. });
  1490. this.isShowSite = true;
  1491. } else {
  1492. this.isShowSite = false;
  1493. }
  1494. let familys = [];
  1495. if (selectFamily) {
  1496. console.log(JSON.stringify(this.dangerAreaData.familyPoints))
  1497. familys = this.dangerAreaData.familyPoints.map(item => {
  1498. let rtu = {};
  1499. rtu['iconPath'] = '/static/images/home.png';
  1500. rtu['id'] = parseInt(item.id);
  1501. let r = gcoord.transform(
  1502. [item.longitude, item.latitude],
  1503. gcoord.WGS84,
  1504. gcoord.GCJ02
  1505. );
  1506. rtu['latitude'] = r[1];
  1507. rtu['longitude'] = r[0];
  1508. rtu['width'] = 20;
  1509. rtu['height'] = 20;
  1510. let label = {};
  1511. label['content'] = item.personName;
  1512. label['color'] = '#000000';
  1513. label['bgColor'] = '#ffffff';
  1514. label['anchorY'] = -40;
  1515. label['borderWidth'] = 1;
  1516. label['borderColor'] = '#ff0000';
  1517. label['padding'] = 4;
  1518. rtu['label'] = label;
  1519. return rtu;
  1520. });
  1521. this.isShowFamily = true;
  1522. } else {
  1523. this.isShowFamily = false;
  1524. }
  1525. let markets = rtus.concat(familys)
  1526. this.markets = markets;
  1527. },
  1528. cityRegionChange(e) {
  1529. this.cityRegionValue = e;
  1530. this.districtRegionData = [];
  1531. this.districtRegionValue = '';
  1532. this.townRegionData = [];
  1533. this.townRegionValue = '';
  1534. this.countryRegionData = [];
  1535. this.countryRegionValue = '';
  1536. let p = {
  1537. 'parentCode': this.cityRegionValue
  1538. }
  1539. this.getDistrictRegion(p);
  1540. this.query['adCode'] = this.cityRegionValue;
  1541. },
  1542. districtRegionChange(e) {
  1543. if (e == undefined || e == null || e == '') {
  1544. this.districtRegionValue = '';
  1545. this.townRegionData = [];
  1546. this.townRegionValue = '';
  1547. this.countryRegionData = [];
  1548. this.countryRegionValue = '';
  1549. this.query['adCode'] = this.cityRegionValue;
  1550. } else {
  1551. this.districtRegionValue = e;
  1552. this.townRegionData = [];
  1553. this.townRegionValue = '';
  1554. this.countryRegionData = [];
  1555. this.countryRegionValue = '';
  1556. let p = {
  1557. 'parentCode': this.districtRegionValue
  1558. }
  1559. this.getTownRegion(p);
  1560. this.query['adCode'] = this.districtRegionValue;
  1561. }
  1562. },
  1563. townRegionChange(e) {
  1564. if (e == undefined || e == null || e == '') {
  1565. this.townRegionValue = '';
  1566. this.countryRegionData = [];
  1567. this.countryRegionValue = '';
  1568. this.query['adCode'] = this.districtRegionValue;
  1569. } else {
  1570. this.townRegionValue = e;
  1571. this.countryRegionData = [];
  1572. this.countryRegionValue = '';
  1573. let p = {
  1574. 'parentCode': this.townRegionValue
  1575. }
  1576. this.getCountryRegion(p);
  1577. this.query['adCode'] = this.townRegionValue;
  1578. }
  1579. },
  1580. countryRegionChange(e) {
  1581. if (e == undefined || e == null || e == '') {
  1582. this.countryRegionValue = '';
  1583. this.query['adCode'] = this.townRegionValue;
  1584. } else {
  1585. this.countryRegionValue = e;
  1586. this.query['adCode'] = this.countryRegionValue;
  1587. }
  1588. },
  1589. getCityRegion(params = {}) {
  1590. let that = this;
  1591. http.request({
  1592. url: '/galaxy-business/baseinfo/region/whole/yj/list',
  1593. method: 'GET',
  1594. data: params,
  1595. }).then(res => {
  1596. //console.log(JSON.stringify(res.data))
  1597. that.cityRegionData = res.data.map(item => {
  1598. return {
  1599. value: item.adcd,
  1600. text: item.adnm,
  1601. }
  1602. })
  1603. }).catch(err => {
  1604. console.log(err)
  1605. })
  1606. },
  1607. getDistrictRegion(params = {}) {
  1608. let that = this;
  1609. http.request({
  1610. url: '/galaxy-business/baseinfo/region/whole/yj/list',
  1611. method: 'GET',
  1612. data: params,
  1613. }).then(res => {
  1614. that.districtRegionData = res.data.map(item => {
  1615. return {
  1616. value: item.adcd,
  1617. text: item.adnm,
  1618. }
  1619. })
  1620. }).catch(err => {
  1621. console.log(err)
  1622. })
  1623. },
  1624. getTownRegion(params = {}) {
  1625. let that = this;
  1626. http.request({
  1627. url: '/galaxy-business/baseinfo/region/whole/yj/list',
  1628. method: 'GET',
  1629. data: params,
  1630. }).then(res => {
  1631. that.townRegionData = res.data.map(item => {
  1632. return {
  1633. value: item.adcd,
  1634. text: item.adnm,
  1635. }
  1636. })
  1637. }).catch(err => {
  1638. console.log(err)
  1639. })
  1640. },
  1641. getCountryRegion(params = {}) {
  1642. let that = this;
  1643. http.request({
  1644. url: '/galaxy-business/baseinfo/region/whole/yj/list',
  1645. method: 'GET',
  1646. data: params,
  1647. }).then(res => {
  1648. that.countryRegionData = res.data.map(item => {
  1649. return {
  1650. value: item.adcd,
  1651. text: item.adnm,
  1652. }
  1653. })
  1654. }).catch(err => {
  1655. console.log(err)
  1656. })
  1657. },
  1658. getWarnInfoDetail(warnId) {
  1659. let that = this;
  1660. http.request({
  1661. url: '/galaxy-business/yj/warn/detail/all?warnId=' + warnId,
  1662. method: 'GET'
  1663. }).then(res => {
  1664. if (res && res.success) {
  1665. that.warnData = res.data;
  1666. }
  1667. }).catch(err => {
  1668. console.log(JOSN.stringify(err))
  1669. })
  1670. },
  1671. // openRainDataView() {
  1672. // let that = this;
  1673. // this.mapStyles.height = "200px";
  1674. // this.yjWarnInfoCoverView = false;
  1675. // this.yjDangerAreaCoverView = false;
  1676. // if (this.yjPreCoverView != 1) {
  1677. // this.yjMapMarkers = [];
  1678. // this.polygons = [];
  1679. // this.polylines = [];
  1680. // }
  1681. // this.yjPreCoverView = 1;
  1682. // this.yjRainDataCoverView = true;
  1683. // this.$nextTick(() => {
  1684. // let p = {};
  1685. // that.getYjRainDataPage(p);
  1686. // })
  1687. // },
  1688. // openWarnInfoView() {
  1689. // let that = this;
  1690. // this.mapStyles.height = "200px";
  1691. // this.yjRainDataCoverView = false;
  1692. // this.yjDangerAreaCoverView = false;
  1693. // if (this.yjPreCoverView != 2) {
  1694. // this.yjMapMarkers = [];
  1695. // this.polygons = [];
  1696. // this.polylines = [];
  1697. // }
  1698. // this.yjPreCoverView = 2;
  1699. // this.yjWarnInfoCoverView = true;
  1700. // this.$nextTick(() => {
  1701. // let p = {};
  1702. // that.getYjWarnDataPage(p);
  1703. // })
  1704. // },
  1705. // openDangerAreaView() {
  1706. // let that = this;
  1707. // this.mapStyles.height = "200px";
  1708. // this.yjRainDataCoverView = false;
  1709. // this.yjWarnInfoCoverView = false;
  1710. // if (this.yjPreCoverView != 3) {
  1711. // this.yjMapMarkers = [];
  1712. // this.polygons = [];
  1713. // this.polylines = [];
  1714. // }
  1715. // this.yjPreCoverView = 3;
  1716. // this.yjDangerAreaCoverView = true;
  1717. // this.$nextTick(() => {
  1718. // let p = {};
  1719. // that.getYjDangerAreaDataPage(p);
  1720. // })
  1721. // },
  1722. // yjPopMenuClose() {
  1723. // this.mapStyles.height = this.mapHeight + "px";
  1724. // this.yjRainDataCoverView = false;
  1725. // this.yjWarnInfoCoverView = false;
  1726. // this.yjDangerAreaCoverView = false;
  1727. // },
  1728. //雨量数据业务
  1729. yjPageChange(e) {
  1730. this.pageCurrent = e.current;
  1731. let params = {};
  1732. if (this.searchRtuCodeVal.length > 0) {
  1733. params['rtuCode'] = this.searchRtuCodeVal;
  1734. }
  1735. if (this.searchRtuNameVal.length > 0) {
  1736. params['rtuName'] = this.searchRtuNameVal;
  1737. }
  1738. this.getYjPage(params)
  1739. },
  1740. onSearch() {
  1741. this.pageCurrent = 1;
  1742. this.tableData = [];
  1743. let params = {};
  1744. if (this.searchRtuCodeVal.length > 0) {
  1745. params['rtuCode'] = this.searchRtuCodeVal;
  1746. }
  1747. if (this.searchRtuNameVal.length > 0) {
  1748. params['rtuName'] = this.searchRtuNameVal;
  1749. }
  1750. this.getYjPage(params);
  1751. // this.$nextTick(() => {
  1752. // this.showSearch = false;
  1753. // })
  1754. },
  1755. getYjPage(params = {}) {
  1756. const current = this.pageCurrent;
  1757. const size = this.pageSize;
  1758. const isSubmit = '0';
  1759. if (this.yjRainCountType.value == 1) {
  1760. params['rainCountType'] = 1;
  1761. } else if (this.yjRainCountType.value == 2) {
  1762. params['rainCountType'] = 3;
  1763. } else if (this.yjRainCountType.value == 3) {
  1764. params['rainCountType'] = 6;
  1765. } else if (this.yjRainCountType.value == 4) {
  1766. params['rainCountType'] = 12;
  1767. } else if (this.yjRainCountType.value == 5) {
  1768. params['rainCountType'] = 24;
  1769. } else {
  1770. params['rainCountType'] = 0;
  1771. }
  1772. let postData = Object.assign(params, this.query);
  1773. //console.log(JSON.stringify(postData))
  1774. var that = this;
  1775. http.request({
  1776. url: '/galaxy-business/yj/rain/page',
  1777. method: 'GET',
  1778. params: {
  1779. current,
  1780. size,
  1781. isSubmit
  1782. },
  1783. data: postData,
  1784. }).then(res => {
  1785. console.log(JSON.stringify(res))
  1786. if (res.data.records != null) {
  1787. that.list = res.data.records;
  1788. }
  1789. that.total = res.data.total;
  1790. if (that.listTotal == 0) {
  1791. that.pageCurrent = 1;
  1792. }
  1793. }).catch(err => {
  1794. console.log(err)
  1795. })
  1796. },
  1797. onYjRainCountTypeRadioChange: function(evt) {
  1798. for (let i = 0; i < this.yjRainCountType.items.length; i++) {
  1799. if (this.yjRainCountType.items[i].id === evt.detail.value) {
  1800. this.yjRainCountType.value = i;
  1801. break;
  1802. }
  1803. }
  1804. this.getYjPage({});
  1805. },
  1806. yjSearchRtuNameValClear(e) {
  1807. if (e == null || e.length == 0) {
  1808. this.searchRtuNameVal = '';
  1809. }
  1810. },
  1811. yjSearchRtuCodeValClear(e) {
  1812. if (e == null || e.length == 0) {
  1813. this.searchRtuCodeVal = '';
  1814. }
  1815. },
  1816. getYjDangerAreaLineDetail(line) {
  1817. let that = this;
  1818. let postData = {};
  1819. postData['id'] = line.id;
  1820. http.request({
  1821. url: '/galaxy-business/map/leaveline/detail',
  1822. method: 'GET',
  1823. data: postData
  1824. }).then(res => {
  1825. if (res.data != null) {
  1826. that.polylines = [];
  1827. let p = {};
  1828. let ps = res.data.points.map(item => {
  1829. let l = gcoord.transform(
  1830. [item.pointLng, item.pointLat],
  1831. gcoord.WGS84,
  1832. gcoord.GCJ02
  1833. );
  1834. return {
  1835. latitude: l[1],
  1836. longitude: l[0],
  1837. }
  1838. })
  1839. p['points'] = ps;
  1840. if (that.dangerAreaData.dangerStatus == '1') {
  1841. p['color'] = '#FAC858FF';
  1842. } else {
  1843. p['color'] = '#F72C5BFF';
  1844. }
  1845. p['width'] = 4;
  1846. that.polylines.push(p);
  1847. }
  1848. }).catch(err => {
  1849. console.log(err)
  1850. })
  1851. },
  1852. }
  1853. }
  1854. </script>
  1855. <style lang="scss" scoped>
  1856. $nav-height: 75px;
  1857. .tag {
  1858. display: flex;
  1859. flex-direction: row;
  1860. justify-content: flex-start;
  1861. align-items: center;
  1862. margin-bottom: 10px;
  1863. padding-left: 10px;
  1864. flex-wrap: wrap;
  1865. view {
  1866. margin: 5px;
  1867. }
  1868. }
  1869. .select-checkbox {
  1870. margin-top: 0px;
  1871. margin-bottom: 5px;
  1872. padding-left: 15px;
  1873. }
  1874. .count-info-line {
  1875. padding-top: 5px;
  1876. padding-bottom: 5px;
  1877. padding-left: 10px;
  1878. padding-right: 10px;
  1879. display: flex;
  1880. flex-direction: row;
  1881. align-items: center;
  1882. }
  1883. .count-info-line .rtuCount {
  1884. display: flex;
  1885. flex-direction: row;
  1886. align-items: center;
  1887. .name {
  1888. color: dimgray;
  1889. font-size: 0.7rem;
  1890. }
  1891. .count {
  1892. margin-left: 5px;
  1893. color: dodgerblue;
  1894. font-size: 0.7rem;
  1895. }
  1896. }
  1897. .count-info-line .warnRtuCount {
  1898. margin-left: 10px;
  1899. display: flex;
  1900. flex-direction: row;
  1901. align-items: center;
  1902. .name {
  1903. color: dimgray;
  1904. font-size: 0.7rem;
  1905. }
  1906. .count {
  1907. margin-left: 5px;
  1908. color: red;
  1909. font-size: 0.7rem;
  1910. }
  1911. }
  1912. .scroll-view {
  1913. /* #ifndef APP-NVUE */
  1914. width: 100%;
  1915. height: 100%;
  1916. /* #endif */
  1917. flex: 1
  1918. }
  1919. // 处理抽屉内容滚动
  1920. .scroll-view-box {
  1921. flex: 1;
  1922. position: absolute;
  1923. top: 0;
  1924. right: 0;
  1925. bottom: 0;
  1926. left: 0;
  1927. }
  1928. </style>