self-management.vue 117 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655
  1. <template>
  2. <el-row class="contentBox">
  3. <transition name="el-fade-in-linear">
  4. <el-col class="leftBox" v-show="stroes.$state.leftBtn">
  5. <div class="leftTop">
  6. <h4>
  7. 企业自主情况
  8. <el-tooltip placement="right">
  9. <template #content>
  10. <br />
  11. 数据说明
  12. <br />
  13. <br />历史火灾指数30分:一级火灾-25,二级火灾-15,
  14. <br />
  15. 其他-8(每一起减一次,最小等于0)
  16. <br />设施状况指数10分:每出现1项减1分,每1起减1次,最小等于0 <br />事件事故指数25分:每出现1项减2分,每1起减1次,最小等于0
  17. <br />场所行业风险15分:每1起减1次,最小等于0 <br />消防隐患指数10分:三合一、电动车;每1起减1次,最小等于0 <br />物联隐患指数10分:物联网隐患处置率,<br />
  18. 高风险:0-60分,较高风险:60-70分,一般风险:70-80分,低风险:80-100分<br />
  19. </template>
  20. <img src="@/assets/img/why.png" alt="hah" class="why" />
  21. </el-tooltip>
  22. </h4>
  23. <div class="leftTopContent">
  24. <div class="contentOne" v-if="radar == 1">
  25. <radar-chart
  26. v-if="enterpriseAutonomyList.complaintList.length > 0"
  27. :dataMap="enterpriseAutonomyList.complaintList"
  28. ref="radarChart"
  29. @echartsClick="radarToPie"
  30. ></radar-chart>
  31. </div>
  32. <div class="contentOneH" v-if="radar == 2">
  33. <div @click="goBack(1)" class="return">
  34. <div class="returnText">返回</div>
  35. </div>
  36. <pie1 :dataMap="checkPieData" @echartsClick="PieToTable"></pie1>
  37. </div>
  38. <div class="contentOneH" v-if="radar == 3">
  39. <div @click="goBack(2)" class="return" style="top: 0.7rem">
  40. <div class="returnText">返回</div>
  41. </div>
  42. <p>
  43. {{ checkTable.name }}:<span>{{ checkTable.total }}</span
  44. >分
  45. </p>
  46. <el-table :data="checkTable.data" class="transparentTableRow" height="100%" :cell-class-name="tableRowClassName">
  47. <el-table-column align="left" label="名称" prop="name"></el-table-column>
  48. <el-table-column align="left" label="评分" width="50" prop="value"></el-table-column>
  49. <el-table-column align="left" label="评分标准" prop="describe"></el-table-column>
  50. </el-table>
  51. </div>
  52. <div class="contentTwo" v-if="radar == 1">
  53. <el-row style="height: 100%; color: #ffffff">
  54. <el-col style="display: flex" :span="12" v-for="(score, index) in enterpriseAutonomyList.scoreList" :key="index">
  55. <el-row :class="['dj', djActive[index] ? 'djActive' : '']" @click="djActiveClick(index)">
  56. <img style="width: 0.5rem; height: 0.5rem; padding: 0 0.125rem; margin: auto 0" :src="require('@/assets/img/self-management/' + (index + 1) + '.png')" />
  57. <el-row>
  58. <el-col :span="24">
  59. <span
  60. :style="{
  61. color: index == 0 ? '#fe0505' : index == 1 ? '#ff5a00' : index == 2 ? '#ffd800' : '#0084ff',
  62. fontWeight: 600,
  63. fontSize: '0.225rem',
  64. }"
  65. >
  66. {{ score.value }}
  67. {{ score.mark }}
  68. </span>
  69. </el-col>
  70. <el-col :span="24">
  71. <span style="font-size: 0.175rem">
  72. {{ score.name == "综合风险率" ? "合格率" : score.name }}
  73. </span>
  74. </el-col>
  75. </el-row>
  76. </el-row>
  77. </el-col>
  78. </el-row>
  79. </div>
  80. </div>
  81. </div>
  82. <div class="leftCenter">
  83. <div style="display: flex">
  84. <h4>
  85. 企业自主巡检情况
  86. <el-tooltip placement="right">
  87. <template #content>
  88. <br />
  89. 数据说明
  90. <br />
  91. <br />巡检计划:时间段内共创建巡检计划数 <br />巡检率:时间段内已巡检点位数/应巡检点位数 <br />巡检数:时间段内应巡检点位数 <br />漏检数:时间段内超时未巡检点位数
  92. <br />
  93. <br />
  94. </template>
  95. <img src="@/assets/img/why.png" alt="hah" class="why" />
  96. </el-tooltip>
  97. </h4>
  98. <div style="display: flex; border-bottom: 0.0125rem solid rgba(115, 251, 253, 0.5)">
  99. <el-button size="mini" @click="searchTabs('企业自主巡检情况', 'data1')" :class="{ btnClick: tabsArea === 'data1' }"> 今日 </el-button>
  100. <el-button size="mini" @click="searchTabs('企业自主巡检情况', 'data2')" :class="{ btnClick: tabsArea === 'data2' }"> 近七日 </el-button>
  101. <el-button size="mini" @click="searchTabs('企业自主巡检情况', 'data3')" :class="{ btnClick: tabsArea === 'data3' }"> 近一月 </el-button>
  102. </div>
  103. </div>
  104. <el-row class="leftCenterContent">
  105. <el-col class="contentOne" :span="12" v-for="(score, index) in patrolInspectionList" :key="index">
  106. <el-row style="padding-left: 10%; flex-flow: nowrap" @click="unitInspection(index)">
  107. <img style="width: 1.2875rem; height: 1.175rem; padding: 0 0.125rem; margin: auto 0" :src="require('@/assets/img/self-management/' + (index + 5) + '.png')" alt="" />
  108. <div style="line-height: 0.5rem; margin: auto 0">
  109. <span
  110. :style="{
  111. color: 'rgba(115, 251, 253, 1)',
  112. fontWeight: 600,
  113. fontSize: '0.225rem',
  114. display: 'block',
  115. }"
  116. >
  117. <CountTo :startVal='0' :endVal=' score? score.value:0' :duration='5000'> {{ score.value || 0 }}</CountTo>
  118. </span>
  119. <span style="font-size: 0.175rem; color: #ffffff">
  120. {{ score.name }}
  121. </span>
  122. </div>
  123. </el-row>
  124. </el-col>
  125. </el-row>
  126. </div>
  127. <div class="leftBot">
  128. <h4 v-if="!stroes.$state.streetTown">各街镇单位情况</h4>
  129. <el-row class="leftBotContent" v-if="!stroes.$state.streetTown">
  130. <category-enterprise
  131. ref="categoryEnterprise"
  132. v-if="streetCompanyList.xData.length > 0"
  133. :dataMap="streetCompanyList.dataMap"
  134. :xData="streetCompanyList.xData"
  135. ></category-enterprise>
  136. </el-row>
  137. <h4 v-if="stroes.$state.streetTown">单位情况</h4>
  138. <el-row class="leftBotContent" v-if="stroes.$state.streetTown">
  139. <el-col class="contentOne" :span="12" v-for="(score, index) in streetDynamicData1" :key="index">
  140. <el-row style="width: 100%; flex-flow: nowrap; border: 1px solid rgba(48, 207, 255, 0.6); margin: auto 0; box-shadow: inset 0 0 0.07rem 0.04rem rgb(115 251 253 / 40%)">
  141. <img style="width: 0.7375rem; height: 0.7375rem; padding: 0 0.125rem; margin: auto 0" :src="require('@/assets/img/self-management/' + (index + 10) + '.png')" alt="" />
  142. <div style="margin: auto 0; padding: 0.1875rem 0">
  143. <span
  144. :style="{
  145. color: index == 0 ? '#FF0709' : index == 1 ? '#F48354' : index == 2 ? '#1A88F9' : '#2BB03B',
  146. fontWeight: 600,
  147. fontSize: '0.3rem',
  148. display: 'block',
  149. }"
  150. >
  151. {{ score.value }} {{ score.mark }}
  152. </span>
  153. <span style="font-size: 0.175rem; color: #ffffff"> {{ score.name }}</span>
  154. </div>
  155. </el-row>
  156. </el-col>
  157. </el-row>
  158. </div>
  159. </el-col>
  160. </transition>
  161. <transition name="el-fade-in-linear">
  162. <el-col class="centerBox" style="width: 100%">
  163. <div :class="stroes.$state.leftBtn ? 'leftBtn btnW' : 'leftBtn0 btnW'" @click="stroes.leftBtnClick()">
  164. <img src="@/assets/img/svg/left.svg" alt="" class="img" />
  165. </div>
  166. <el-col class="centerContent" id="mapF"></el-col>
  167. <div :class="stroes.$state.rightBtn ? 'rightBtn btnW' : 'rightBtn0 btnW'" @click="stroes.rightBtnClick()">
  168. <img src="@/assets/img/svg/left.svg" alt="" class="img" />
  169. </div>
  170. <div class="mapTips_type">
  171. <img src="@/assets/img/svg/danweitop.svg" alt="" class="img" />
  172. <div class="content">
  173. <p>街镇筛选</p>
  174. <el-select class="mtb-12" v-model="stroes.$state.streetTown" placeholder="请选择街镇" @change="checkStreetTown">
  175. <el-option v-for="item in stroes.$state.streetTownList" :key="item.value" :label="item.label" :value="item.value"> </el-option>
  176. </el-select>
  177. <p>类型筛选</p>
  178. <!-- <el-checkbox-group v-model="checkedData" size="medium">
  179. <el-checkbox v-for="(item, index) in checkedList" :label="item.value" :key="index" @change="checkboxChange(item.value)">{{ item.label }}</el-checkbox>
  180. </el-checkbox-group> -->
  181. <div class="selectType">
  182. <div
  183. :class="
  184. checkedArray.checkedData[0] == 0
  185. ? ''
  186. : checkedArray.checkedData[0] == 1
  187. ? 'checkTypeSelect'
  188. : checkedArray.checkedData[0] == 2
  189. ? 'checkTypeSelect'
  190. : checkedArray.checkedData[0] == 3
  191. ? 'checkTypeSelect'
  192. : checkedArray.checkedData[0] == 9
  193. ? 'checkTypeSelect'
  194. : checkedArray.checkedData[0] == 10
  195. ? 'checkTypeSelect'
  196. : ' '
  197. "
  198. >
  199. <img
  200. :src="
  201. checkedSelectValue == '0'
  202. ? stores.sadianIcon.bwg
  203. : checkedSelectValue == '1'
  204. ? stores.sadianIcon.zddw
  205. : checkedSelectValue == '2'
  206. ? stores.sadianIcon.ybdw
  207. : checkedSelectValue == '3'
  208. ? stores.sadianIcon.jxcs
  209. : checkedSelectValue == '9'
  210. ? stores.sadianIcon.qtdw
  211. : checkedSelectValue == '10'
  212. ? stores.sadianIcon.dxzht
  213. : stores.sadianIcon.bwg
  214. "
  215. alt=""
  216. />
  217. <span>{{ checkedSelectLabel }}</span>
  218. <el-select
  219. v-model="checkedSelectValue"
  220. placeholder="单位信息"
  221. class="selectTypeIcon"
  222. style="display: inline-block; width: 100%; position: absolute; right: 0"
  223. @change="selectArray"
  224. >
  225. <el-option v-for="item in checkedSelectArray" :key="item.value" :label="item.label" :value="item.value"> </el-option>
  226. </el-select>
  227. </div>
  228. <!-- <div
  229. @click="checkboxChange(0)"
  230. :class="
  231. checkedArray.checkedData[0] == 0
  232. ? 'checkTypeSelect'
  233. : ''
  234. "
  235. >
  236. <img :src="stores.sadianIcon.zddw" alt="" />
  237. <span>重点单位</span>
  238. </div>
  239. <div
  240. @click="checkboxChange(1)"
  241. :class="
  242. checkedArray.checkedData[0] == 1
  243. ? 'checkTypeSelect'
  244. : ''
  245. "
  246. >
  247. <img :src="stores.sadianIcon.ybdw" alt="" />
  248. <span>一般单位</span>
  249. </div>
  250. <div
  251. @click="checkboxChange(2)"
  252. :class="
  253. checkedArray.checkedData[0] == 2
  254. ? 'checkTypeSelect'
  255. : ''
  256. "
  257. >
  258. <img :src="stores.sadianIcon.jxcs" alt="" />
  259. <span>九小场所</span>
  260. </div>
  261. <div
  262. @click="checkboxChange(3)"
  263. :class="
  264. checkedArray.checkedData[0] == 3
  265. ? 'checkTypeSelect'
  266. : ''
  267. "
  268. >
  269. <img :src="stores.sadianIcon.qtdw" alt="" />
  270. <span>其他单位</span>
  271. </div> -->
  272. <div @click="checkboxChange(6)" :class="checkedArray.checkedData[0] == 6 ? 'checkTypeSelect' : ''">
  273. <img :src="stores.sadianIcon.gcggjz" alt="" />
  274. <span>高层公共建筑</span>
  275. </div>
  276. <!-- <div
  277. @click="checkboxChange(10)"
  278. :class="
  279. checkedArray.checkedData[0] == 10
  280. ? 'checkTypeSelect'
  281. : ''
  282. "
  283. >
  284. <img :src="stores.sadianIcon.dxzht" alt="" />
  285. <span>大型综合体</span>
  286. </div> -->
  287. <div @click="checkboxChange(11)" :class="checkedArray.checkedData[0] == 11 ? 'checkTypeSelect' : ''">
  288. <img :src="stores.sadianIcon.lhtj" alt="" />
  289. <span>龙湖天街(试点)</span>
  290. </div>
  291. <!-- <div
  292. @click="checkboxChange(12)"
  293. :class="
  294. checkedArray.checkedData[0] == 12
  295. ? 'checkTypeSelect'
  296. : ''
  297. "
  298. >
  299. <img :src="stores.sadianIcon.xx" alt="" />
  300. <span>中小学校</span>
  301. </div> -->
  302. <div
  303. :class="
  304. checkedArray.checkedData[0] == 10000
  305. ? 'checkTypeSelect'
  306. : checkedArray.checkedData[0] == 19
  307. ? 'checkTypeSelect'
  308. : checkedArray.checkedData[0] == 20
  309. ? 'checkTypeSelect'
  310. : checkedArray.checkedData[0] == 21
  311. ? 'checkTypeSelect'
  312. : ' '
  313. "
  314. >
  315. <img
  316. :src="
  317. checkedSelectValue3 == '10000'
  318. ? stores.sadianIcon.xx
  319. : checkedSelectValue3 == '19'
  320. ? stores.sadianIcon.zs
  321. : checkedSelectValue3 == '20'
  322. ? stores.sadianIcon.yey
  323. : checkedSelectValue3 == '21'
  324. ? stores.sadianIcon.qtxx
  325. : ''
  326. "
  327. alt=""
  328. />
  329. <span>{{ checkedSelectLabel3 }}</span>
  330. <el-select
  331. v-model="checkedSelectValue3"
  332. placeholder="学校"
  333. class="selectTypeIcon"
  334. style="display: inline-block; width: 100%; position: absolute; right: 0"
  335. @change="selectArray3"
  336. >
  337. <el-option v-for="item in checkedSelectArray3" :key="item.value" :label="item.label" :value="item.value"> </el-option>
  338. </el-select>
  339. </div>
  340. <div @click="checkboxChange(13)" :class="checkedArray.checkedData[0] == 13 ? 'checkTypeSelect' : ''">
  341. <img :src="stores.sadianIcon.bwg" alt="" />
  342. <span>博物馆</span>
  343. </div>
  344. <div @click="checkboxChange(14)" :class="checkedArray.checkedData[0] == 14 ? 'checkTypeSelect' : ''">
  345. <img :src="stores.sadianIcon.tyg" alt="" />
  346. <span>体验馆</span>
  347. </div>
  348. <div
  349. :class="
  350. checkedArray.checkedData[0] == 999 ? '' : checkedArray.checkedData[0] == 1000 ? 'checkTypeSelect' : checkedArray.checkedData[0] == 1001 ? 'checkTypeSelect' : ' '
  351. "
  352. >
  353. <img
  354. :src="
  355. checkedSelectValue2 == '999'
  356. ? stores.sadianIcon.bwg
  357. : checkedSelectValue2 == '1000'
  358. ? stores.sadianIcon.ck
  359. : checkedSelectValue2 == '1001'
  360. ? stores.sadianIcon.cf
  361. : ''
  362. "
  363. alt=""
  364. />
  365. <span>{{ checkedSelectLabel2 }}</span>
  366. <el-select
  367. v-model="checkedSelectValue2"
  368. placeholder="工业"
  369. class="selectTypeIcon"
  370. style="display: inline-block; width: 100%; position: absolute; right: 0"
  371. @change="selectArray2"
  372. >
  373. <el-option v-for="item in checkedSelectArray2" :key="item.value" :label="item.label" :value="item.value"> </el-option>
  374. </el-select>
  375. </div>
  376. </div>
  377. </div>
  378. </div>
  379. </el-col>
  380. </transition>
  381. <transition name="el-fade-in-linear">
  382. <el-col class="rightBox" v-show="stroes.$state.rightBtn">
  383. <div class="rightTop" :span="24">
  384. <h4>物联网设备情况</h4>
  385. <div class="topContent">
  386. <div style="text-align: right; display: flex">
  387. <span style="margin: 0 auto"></span>
  388. <span style="font-size: 0.175rem; line-height: 0.375rem; color: #ffffff">累计接入设备数: </span>
  389. <span style="font-size: 0.25rem; color: #73fbfd; font-weight: 600">{{ diskData.total }}</span>
  390. <!-- <span style="font-size: 0.25rem; color: #73fbfd; font-weight: 600">{{ iotDeviceList2.dataValue }}</span> -->
  391. </div>
  392. <div style="height: calc(100% - 0.375rem)">
  393. <disk v-if="diskData.data.length > 0" ref="disk" :dataMap="diskData.data" @echartsClick="diskSd"></disk>
  394. </div>
  395. </div>
  396. </div>
  397. <div class="rightCenter">
  398. <div style="display: flex">
  399. <h4>物联网处置情况</h4>
  400. <!-- <div
  401. style="
  402. display: flex;
  403. border-bottom: 0.0125rem solid
  404. rgba(115, 251, 253, 0.5);
  405. "
  406. >
  407. <el-button
  408. size="mini"
  409. @click="searchTabs('物联网处置情况', 'data1')"
  410. :class="{ btnClick: tabsArea2 === 'data1' }"
  411. >
  412. 今日
  413. </el-button>
  414. <el-button
  415. size="mini"
  416. @click="searchTabs('物联网处置情况', 'data2')"
  417. :class="{ btnClick: tabsArea2 === 'data2' }"
  418. >
  419. 近七日
  420. </el-button>
  421. <el-button
  422. size="mini"
  423. @click="searchTabs('物联网处置情况', 'data3')"
  424. :class="{ btnClick: tabsArea2 === 'data3' }"
  425. >
  426. 近一月
  427. </el-button>
  428. </div> -->
  429. </div>
  430. <el-row class="rightCenterContent">
  431. <el-col :span="8">
  432. <div>
  433. <div style="height: 1.5rem">
  434. <gauge ref="gauge1" :dataNumber="iotDisposalList[0].value" :dataMark="iotDisposalList[0].mark" color="#F68E6A"></gauge>
  435. </div>
  436. <div style="text-align: center">
  437. {{ iotDisposalList[0].name }}
  438. </div>
  439. </div>
  440. </el-col>
  441. <el-col :span="8">
  442. <div>
  443. <div style="height: 1.5rem">
  444. <gauge ref="gauge2" :dataNumber="iotDisposalList[1].value" :dataMark="iotDisposalList[1].mark" color="#14E1EA"></gauge>
  445. </div>
  446. <div style="text-align: center">
  447. {{ iotDisposalList[1].name }}
  448. </div>
  449. </div>
  450. </el-col>
  451. <el-col :span="8">
  452. <div>
  453. <div style="height: 1.5rem">
  454. <gauge ref="gauge3" :dataNumber="iotDisposalList[2].value" :dataMark="iotDisposalList[2].mark" color="#F8ED41"></gauge>
  455. </div>
  456. <div style="text-align: center">
  457. {{ iotDisposalList[2].name }}
  458. </div>
  459. </div>
  460. </el-col>
  461. </el-row>
  462. </div>
  463. <div class="rightBot">
  464. <h4 v-if="!stroes.$state.streetTown">各街镇物联动态</h4>
  465. <div class="rightBotContent" v-if="!stroes.$state.streetTown">
  466. <el-table ref="table" height="100%" :data="streetDynamicData" class="transparentTableRow" style="width: 100%" @mouseenter="autoScroll(true)"
  467. @mouseleave="autoScroll()">
  468. <el-table-column v-for="item in streetDynamicHeaderData" :key="item.prop" :prop="item.prop" align="center" :label="item.name">
  469. <template #default="scope">
  470. <el-tooltip placement="left" trigger="click">
  471. <template #content>
  472. <div class="tableTooltip">
  473. <div class="tableTitle" ref="ff">
  474. <div>物联动态详情</div>
  475. </div>
  476. <img src="~@a/img/icon/close.png" alt="" class="close" @click="closeIsTooltip" />
  477. <el-row class="tableContent">
  478. <el-col :span="24">
  479. 街镇:
  480. <span>{{ scope.row.streetTown ? scope.row.streetTown : "--" }}</span>
  481. </el-col>
  482. <el-col :span="24">
  483. 设备总数:<span>{{ scope.row.deviceCount ? scope.row.deviceCount : "--" }}</span>
  484. </el-col>
  485. <el-col :span="24">
  486. 在线数:<span> {{ scope.row.onLineCount ? scope.row.onLineCount : "--" }}</span>
  487. </el-col>
  488. <el-col :span="24">
  489. 在线率:<span>{{ scope.row.onLineRate ? scope.row.onLineRate : "--" }}</span>
  490. </el-col>
  491. <el-col :span="24">
  492. 处置率:<span>{{ scope.row.processedRate ? scope.row.processedRate : "--" }}</span>
  493. </el-col>
  494. </el-row>
  495. </div>
  496. </template>
  497. <template>
  498. <div class="name-wrapper">
  499. {{ scope.row[item.prop] }}
  500. </div>
  501. </template>
  502. </el-tooltip>
  503. </template>
  504. </el-table-column>
  505. </el-table>
  506. </div>
  507. <div style="display: flex" v-if="stroes.$state.streetTown">
  508. <h4>历史案件</h4>
  509. <div style="display: flex; border-bottom: 0.0125rem solid rgba(115, 251, 253, 0.5)">
  510. <el-button size="mini" @click="searchTabs('历史案件', 10)" :class="{ btnClick: tabsArea1 === 10 }"> 近10条 </el-button>
  511. <el-button size="mini" @click="searchTabs('历史案件', 50)" :class="{ btnClick: tabsArea1 === 50 }"> 近50条 </el-button>
  512. </div>
  513. </div>
  514. <div class="rightBoContent1" v-if="stroes.$state.streetTown">
  515. <el-row>
  516. <div v-for="(j, index) in gj" :key="index">
  517. <img src="@/assets/img/self-management/9.png" alt="" />
  518. <div>
  519. <div style="font-size: 0.1875rem; color: #73fbfd; font-weight: 600">
  520. {{ j.value }}
  521. </div>
  522. <div style="font-size: 0.175rem">
  523. {{ j.name }}
  524. </div>
  525. </div>
  526. </div>
  527. </el-row>
  528. <el-table :data="tableData2" class="transparentTableRow" v-fit-columns :empty-text="dataNo" ref="reportTable1" @mouseenter="autoScroll(true)"
  529. @mouseleave="autoScroll()" >
  530. <el-table-column v-for="item in headerData2" :key="item.prop" :prop="item.prop" align="center" :label="item.name">
  531. <template #default="scope">
  532. <el-tooltip placement="left">
  533. <template #content>
  534. <div class="tableTooltip">
  535. <div class="tableTitle" ref="ff">
  536. <div>案件详情</div>
  537. </div>
  538. <!-- <img src="~@a/img/icon/close.png" alt="" class="close" @click="closeIsTooltip" /> -->
  539. <el-row class="tableContent">
  540. <el-col :span="20">案件编号:{{ scope.row.id ? scope.row.id : "--" }}</el-col>
  541. <el-col :span="24">报警时间:{{ scope.row.createTime ? scope.row.createTime : "--" }}</el-col>
  542. <el-col :span="24">案件类型:{{ scope.row.caseType ? scope.row.caseType : "--" }}</el-col>
  543. <el-col :span="24">发生地址:{{ scope.row.address ? scope.row.address : "--" }}</el-col>
  544. <el-col :span="24">所属街道:{{ scope.row.street ? scope.row.street : "--" }}</el-col>
  545. <el-col :span="12">案件描述:{{ scope.row.caseDescribe ? scope.row.caseDescribe : "--" }}</el-col>
  546. <el-col :span="24">责任部门:{{ scope.row.dutyGroup ? scope.row.dutyGroup : "--" }}</el-col>
  547. <el-col :span="24">处置时间:{{ scope.row.endTime ? scope.row.endTime : "--" }}</el-col>
  548. <el-col :span="24">处理人:{{ scope.row.disposePerson ? scope.row.disposePerson : "--" }}</el-col>
  549. <el-col :span="24">责任人:{{ scope.row.chargePerson ? scope.row.chargePerson : "--" }}</el-col>
  550. <el-col :span="24"
  551. >状态:{{
  552. scope.row.caseFlag == "0"
  553. ? "立案"
  554. : scope.row.caseFlag == "1"
  555. ? "派遣"
  556. : scope.row.caseFlag == "2"
  557. ? "处理"
  558. : scope.row.caseFlag == "3"
  559. ? "结案"
  560. : "--"
  561. }}</el-col
  562. >
  563. </el-row>
  564. </div>
  565. </template>
  566. <template>
  567. <div class="name-wrapper">
  568. {{ scope.row[item.prop] }}
  569. </div>
  570. </template>
  571. </el-tooltip>
  572. </template>
  573. </el-table-column>
  574. </el-table>
  575. </div>
  576. <!-- <h4>企业经营情况</h4>
  577. <div class="rightBotContent" v-if="erpData.length > 0">
  578. <el-row v-for="er in erpData" :key="er">
  579. <el-row class="title">单位:{{ er.companyName }}</el-row>
  580. <el-row class="data">
  581. <el-col :span="8"> 法人:{{ er.delegateName }} </el-col>
  582. <el-col :span="8">
  583. 注册资金:{{ er.registeredCapital }}万
  584. </el-col>
  585. <el-col :span="8">
  586. 成立时间:{{ er.foundTime ? er.foundTime : "暂无" }}
  587. </el-col>
  588. <el-col :span="24">信用代码:{{ er.organization }}</el-col>
  589. <el-col :span="8">经营状态:{{ er.businessStatus }}</el-col>
  590. <el-col :span="8">实缴资本:{{ er.paidCapital }}万</el-col>
  591. <el-col :span="8">
  592. 单位类型:{{
  593. er.companyType == 1
  594. ? "重点单位"
  595. : er.companyType == 2
  596. ? "一般单位"
  597. : er.companyType == 3
  598. ? "九小场所"
  599. : er.companyType == 9
  600. ? "其它单位"
  601. : "暂无"
  602. }}
  603. </el-col>
  604. <el-col :span="12">联系电话:{{ er.linkPhone }}</el-col>
  605. <el-col :span="12">
  606. 参保人数:{{
  607. er.employeeNum ? er.employeeNum + "人" : "暂无"
  608. }}
  609. </el-col>
  610. <el-col :span="24">登记机关:{{ er.registrar }}</el-col>
  611. <el-col :span="24">单位地址:{{ er.address }}</el-col>
  612. </el-row>
  613. <el-row class="title">建筑情况</el-row>
  614. <el-row class="data">
  615. <el-col :span="8">
  616. 建筑面积:{{ er.buildArea ? er.buildArea + "㎡" : "暂无" }}
  617. </el-col>
  618. <el-col :span="8">
  619. 竣工年份:{{ er.completedTime ? er.completedTime : "暂无" }}
  620. </el-col>
  621. <el-col :span="8">使用性质:{{ er.companyNature }}</el-col>
  622. <el-col :span="8">耐火等级:{{ er.fireRating }}</el-col>
  623. <el-col :span="8">
  624. 建筑高度:{{
  625. er.buildingHeight ? er.buildingHeight + "m" : "暂无"
  626. }}
  627. </el-col>
  628. <el-col :span="8">建筑结构:{{ er.buildingStructure }}</el-col>
  629. <el-col :span="12">安全管理人:{{ er.fireManageName }}</el-col>
  630. <el-col :span="12">安全责任人:{{ er.fireDutyName }}</el-col>
  631. </el-row>
  632. </el-row>
  633. </div> -->
  634. </div>
  635. </el-col>
  636. </transition>
  637. <transition name="el-fade-in-linear">
  638. <div class="tableTooltipwt" v-if="tk">
  639. <img src="~@a/img/icon/close.png" alt="" class="close" @click="closeTk" />
  640. <el-col class="mk">
  641. <el-row>
  642. <el-col>
  643. <span class="color2">单位名称:</span>
  644. <span class="color1">{{ tkData.companyName }}</span>
  645. </el-col>
  646. <el-col>
  647. <span class="color2">单位类型:</span>
  648. <span class="color1">重点单位</span>
  649. </el-col>
  650. <el-col>
  651. <span class="color2">联系电话:</span>
  652. <span class="color1">{{ tkData.linkPhone }}</span>
  653. </el-col>
  654. <el-col style="border-bottom: 1px solid #fff; padding-bottom: 10px">
  655. <span class="color2">地址:</span>
  656. <span class="color1">{{ tkData.address }}</span>
  657. </el-col>
  658. <el-col style="margin-top: 6px">
  659. <span class="color1" style="margin-left: 0">企业消防综合评估</span>
  660. <span class="color1" style="float: right"
  661. >综合得分:{{
  662. tkData.fireRisk + tkData.buildIntegrity + tkData.lawEnforce + tkData.selfManage + tkData.facilityStatus
  663. ? (tkData.fireRisk + tkData.buildIntegrity + tkData.lawEnforce + tkData.selfManage + tkData.facilityStatus).toFixed(2)
  664. : 0
  665. }}
  666. 分</span
  667. >
  668. </el-col>
  669. <table border="0" cellspacing="0" cellpadding="0">
  670. <thead>
  671. <tr>
  672. <th>指数</th>
  673. <th>建筑整体指数</th>
  674. <th>火灾风险指数</th>
  675. <th>监督执法指数</th>
  676. <th>自主管理指数</th>
  677. <th>设施状况指数</th>
  678. </tr>
  679. </thead>
  680. <tbody>
  681. <tr>
  682. <td>得分</td>
  683. <td>{{ tkData.fireRisk }}</td>
  684. <td>{{ tkData.buildIntegrity }}</td>
  685. <td>{{ tkData.lawEnforce }}</td>
  686. <td>{{ tkData.selfManage }}</td>
  687. <td>{{ tkData.facilityStatus }}</td>
  688. </tr>
  689. </tbody>
  690. </table>
  691. <el-col style="margin-top: 6px" v-if="tkData.reformPart">
  692. <span class="color1" style="margin-left: 0">消防整改情况</span>
  693. </el-col>
  694. <el-col v-if="tkData.reformPart">
  695. <span class="color1" style="margin-left: 0">编号:{{ tkData.reformCode }}</span>
  696. <span class="color1" style="float: right">整改期限:{{ tkData.limitTime ? tkData.limitTime.split("T")[0] + " " + tkData.limitTime.split("T")[1] : "" }}</span>
  697. </el-col>
  698. <table border="0" cellspacing="0" cellpadding="0" v-if="tkData.reformPart">
  699. <thead>
  700. <tr>
  701. <th>序号</th>
  702. <th>整改项</th>
  703. <th>原因</th>
  704. </tr>
  705. </thead>
  706. <tbody>
  707. <tr v-for="(item, index) in tkData.reformPart.data" :key="index">
  708. <td>{{ index + 1 }}</td>
  709. <td>{{ item.item }}</td>
  710. <td>{{ item.reason }}</td>
  711. </tr>
  712. </tbody>
  713. </table>
  714. <div style="margin-top: 40px" v-if="tkData.reformStatus != 0">
  715. <el-steps
  716. :active="tkData.reformStatus == 1 ? 1 : tkData.reformStatus == 2 || tkData.reformStatus == 3 ? 1 : tkData.reformStatus == 4 || tkData.reformStatus == 5 ? 2 : 0"
  717. align-center
  718. >
  719. <el-step title="已接收" :description="tkData.receivedTime.replace('T', ' ')"></el-step>
  720. <el-step
  721. :title="tkData.reformStatus == 2 ? '整改中' : tkData.reformStatus == 3 || tkData.reformStatus == 4 || tkData.reformStatus == 5 ? '整改完成' : '整改中'"
  722. :description="tkData.reformTime.replace('T', ' ')"
  723. ></el-step>
  724. <el-step
  725. :title="
  726. tkData.reformStatus == 1 || tkData.reformStatus == 2 || tkData.reformStatus == 3
  727. ? '待审核'
  728. : tkData.reformStatus == 4
  729. ? '审核不通过'
  730. : tkData.reformStatus == 5
  731. ? '审核通过'
  732. : ''
  733. "
  734. :description="tkData.reviewTime.replace('T', ' ')"
  735. ></el-step>
  736. </el-steps>
  737. </div>
  738. <div style="margin: 10px auto" v-if="tkData.companyName == '上海虹桥国际特商物流港'">
  739. <el-button type="primary" size="small" style="background: none; border-radius: 4px; border: 1px solid #73fbfd; height: 30px; padding: 0 6px !important; margin: 10px 0 0"
  740. ><a href="http://file.usky.cn/statics/202303/20232D91E7B3D14C346BC9F009FA0B76FA5BF.pdf" target="_blank" style="color: #fff; text-decoration: none"
  741. >&nbsp;&nbsp;查看报告&nbsp;&nbsp;</a
  742. ></el-button
  743. >
  744. </div>
  745. </el-row>
  746. </el-col>
  747. </div>
  748. </transition>
  749. </el-row>
  750. </template>
  751. <script>
  752. import linstener from "@c/mixins/linstener";
  753. import categoryEnterprise from "@c/category-enterprise/index";
  754. import categoryEnterprise2 from "@c/category-enterprise/index2";
  755. import disk from "@c/disk/index";
  756. import seTable from "@c/se-table";
  757. import shebei1 from "@c/shebei";
  758. import radarChart from "@c/radar";
  759. import gauge from "@c/gauge";
  760. import pie1 from "@c/pie";
  761. import CountTo from '@/components/count-to/index.js'
  762. import map from "@c/mixins/map-data1";
  763. // import map from "@c/mixins/map-gaode-public";
  764. export default {
  765. components: {
  766. categoryEnterprise,
  767. categoryEnterprise2,
  768. seTable,
  769. shebei1,
  770. radarChart,
  771. gauge,
  772. pie1,
  773. disk,
  774. CountTo
  775. },
  776. mixins: [linstener, map],
  777. data() {
  778. return {
  779. dataNo:" ",//table无数据提示
  780. diskData: {
  781. total:0,
  782. data:[],
  783. data2:[
  784. {
  785. name: "消防给水及消火栓系统",
  786. value: 1083,
  787. lineCount: 895,
  788. lineRate: 0.826,
  789. },
  790. {
  791. name: "防烟排烟系统",
  792. value: 4110,
  793. lineCount: 261,
  794. lineRate: 0.064,
  795. },
  796. {
  797. name: "火灾报警系统",
  798. value: 9403,
  799. lineCount: 226,
  800. lineRate: 0.024,
  801. },
  802. {
  803. name: "自动喷水灭火系统",
  804. value: 6737,
  805. lineCount: 6411,
  806. lineRate: 0.952,
  807. },
  808. ]
  809. }, //各街镇物联动态-数据存储
  810. djActive: [false, false, false, false], //评分等级选中状态
  811. zddwId: undefined,
  812. stores: this.$useStore(),
  813. tk: false,
  814. tkData: {},
  815. radar: 1, //雷达图显示
  816. pieData: [
  817. [
  818. {
  819. name: "建筑结构",
  820. value: 1.5,
  821. total: 2,
  822. children: [
  823. {
  824. name: "建筑耐火等级",
  825. value: 1.5,
  826. describe: `钢混:3
  827. 有防火涂料的钢结构和砖混:2
  828. 未涂防火涂料或失效的钢结构和木:1`,
  829. },
  830. ],
  831. },
  832. {
  833. name: "建筑体量",
  834. value: 3,
  835. total: 3,
  836. children: [
  837. {
  838. name: "单层、多层、高层、超高层",
  839. value: 3,
  840. describe: `单、多层:3
  841. 高层:2
  842. 超高层:1`,
  843. },
  844. // {
  845. // name: "地下空间",
  846. // value: 0,
  847. // describe: `地下空间大于10000平:扣0.5
  848. // 地下空间大于20000平米:扣1`,
  849. // },
  850. ],
  851. },
  852. {
  853. name: "使用性质",
  854. value: 3,
  855. total: 4,
  856. children: [
  857. {
  858. name: "工业、商业、办公",
  859. value: 3,
  860. describe: `普通办公:3
  861. 商业:2
  862. 工业:1
  863. 主业为生产、存储甲乙类危险品:0`,
  864. },
  865. ],
  866. },
  867. {
  868. name: "建筑使用年限",
  869. value: 1,
  870. total: 1,
  871. children: [
  872. {
  873. name: "使用20年以内、20年及以上",
  874. value: 1,
  875. describe: `20年以内:1
  876. 20年及以上:0`,
  877. },
  878. ],
  879. },
  880. ],
  881. [
  882. {
  883. name: "火灾报警系统",
  884. value: 1.8,
  885. total: 8,
  886. children: [
  887. { name: "实时在线率", value: -0.1, describe: "每发现一次底于95%:扣0.1" },
  888. { name: "实时故障率", value: -0.1, describe: "每发现一次高于5%:扣0.1" },
  889. { name: "年度平均在线率", value: 1.5, describe: "大于90%:1.5" },
  890. { name: "年度平均故障率", value: "-", describe: "低于5%:1.5" },
  891. {
  892. name: "平均修复周期",
  893. value: 0.5,
  894. describe: `每次故障能在一周内修复的:2
  895. 在一个月内修复的:0.5
  896. 超出一个月未修复的:每发现一次扣0.2`,
  897. },
  898. ],
  899. },
  900. {
  901. name: "消防水系统",
  902. value: 3.3,
  903. total: 10,
  904. children: [
  905. { name: "实时在线率", value: -0.1, describe: "每发现一次底于95%:扣0.1" },
  906. { name: "实时故障率", value: -0.1, describe: "每发现一次高于5%:扣0.1" },
  907. { name: "年度平均在线率", value: 1.5, describe: "大于90%:1.5" },
  908. { name: "年度平均故障率", value: 1.5, describe: "低于5%:1.5" },
  909. {
  910. name: "平均修复周期",
  911. value: 0.5,
  912. describe: `每次故障能在一周内修复的:2
  913. 在一个月内修复的:0.5
  914. 超出一个月未修复的:每发现一次扣0.2`,
  915. },
  916. ],
  917. },
  918. // {
  919. // name: "防排烟系统",
  920. // value: 1,
  921. // total: 3,
  922. // children: [
  923. // { name: "实时在线率", value: 0.2, describe: "每发现一次底于95%:扣0.1" },
  924. // { name: "实时故障率", value: 0.2, describe: "每发现一次高于5%:扣0.1" },
  925. // {
  926. // name: "年度平均在线率",
  927. // value: 0.2,
  928. // describe: "大于90%:1.5",
  929. // },
  930. // {
  931. // name: "年度平均故障率",
  932. // value: 0.2,
  933. // describe: "低于5%:1.5",
  934. // },
  935. // { name: "平均修复周期", value: 0.2, describe: `每次故障能在一周内修复的:2
  936. // 在一个月内修复的:0.5
  937. // 超出一个月未修复的:每发现一次扣0.2` },
  938. // ],
  939. // },
  940. {
  941. name: "维保单位履职情况",
  942. value: 4,
  943. total: 4,
  944. children: [
  945. {
  946. name: "是否有维保单位",
  947. value: 1,
  948. describe: `和系统内同步符合的:2
  949. 不符合:0`,
  950. },
  951. {
  952. name: "月度检查报告",
  953. value: 1,
  954. describe: `最近年度内月度检查同步系统的:1
  955. 没漏一份扣0.2`,
  956. },
  957. { name: "年度检测报告", value: 1, describe: `最近年度出具并同步系统的:2` },
  958. { name: "年度评估报告", value: 1, describe: `最近年度出具并同步系统的:2` },
  959. ],
  960. },
  961. // {
  962. // name: "燃气、电气系统监测",
  963. // value: 1,
  964. // total: 2,
  965. // children: [
  966. // { name: "", value: 1, describe: "安装后正常运行状态,保持在正常率90%以上,每套系统可加1.5分" },
  967. // ],
  968. // },
  969. ],
  970. [
  971. {
  972. name: "组织制度情况",
  973. value: 4,
  974. total: 6,
  975. children: [
  976. {
  977. name: "消防安全制度制定",
  978. value: 0,
  979. describe: `有:1
  980. 无:0`,
  981. },
  982. {
  983. name: "灭火和应急疏散预案",
  984. value: 0,
  985. describe: `有:1
  986. 无:0`,
  987. },
  988. {
  989. name: "员工消防安全培训",
  990. value: 1,
  991. describe: `有:1
  992. 有、但不符合规定:0.5
  993. 无:0`,
  994. },
  995. {
  996. name: "消防安全管理人",
  997. value: 1,
  998. describe: `确定:1
  999. 未确定:0`,
  1000. },
  1001. {
  1002. name: "消防档案",
  1003. value: 1,
  1004. describe: `有:1
  1005. 有、但不符合规定:0.5
  1006. 无:0`,
  1007. },
  1008. {
  1009. name: "消防重点部位",
  1010. value: 1,
  1011. describe: `确定:1
  1012. 未确定:0`,
  1013. },
  1014. ],
  1015. },
  1016. {
  1017. name: "日常值班、巡检情况",
  1018. value: 9,
  1019. total: 10,
  1020. children: [
  1021. {
  1022. name: "消控室持证数量",
  1023. value: 1,
  1024. describe: `四级、中级证6张及以上:2
  1025. 2-4张:1
  1026. 1张及一下:0`,
  1027. },
  1028. {
  1029. name: "消控室值班人员数量和实际持证情况",
  1030. value: 2,
  1031. describe: `当年度内双随机及其他检查发现实际情况相符的:2
  1032. 不符的:0`,
  1033. },
  1034. {
  1035. name: "消防联动控制设备运行情况",
  1036. value: 2,
  1037. describe: `正常:2
  1038. 不正常:0`,
  1039. },
  1040. {
  1041. name: "防火检查、巡查",
  1042. value: 2,
  1043. describe: `有记录:2
  1044. 有、但不符合要求:1
  1045. 无记录:0`,
  1046. },
  1047. {
  1048. name: "消防设施、器材、消防安全标志定期组织维修保养",
  1049. value: 2,
  1050. total: 2,
  1051. describe: `有记录:2
  1052. 无记录:0`,
  1053. },
  1054. ],
  1055. },
  1056. {
  1057. name: "预案、培训落实情况",
  1058. value: 3,
  1059. total: 4,
  1060. children: [
  1061. {
  1062. name: "应急演练情况",
  1063. value: 2,
  1064. describe: `应急演练训练记录有记录:2
  1065. 有,但记录不详细的:1
  1066. 无记录:0`,
  1067. },
  1068. {
  1069. name: "宣传、培训记录情况",
  1070. value: 1,
  1071. describe: `宣传培训记录详实的:2
  1072. 有、但记录不详细的:1
  1073. 记录不全的:0`,
  1074. },
  1075. ],
  1076. },
  1077. {
  1078. name: "微站实体化运行情况",
  1079. value: 4,
  1080. total: 6,
  1081. children: [
  1082. {
  1083. name: "微站制度和人员落实",
  1084. value: 0,
  1085. describe: `确定灭火和组织疏散任务人员的:2
  1086. 未确定的:0`,
  1087. },
  1088. {
  1089. name: "和对讲抽查情况",
  1090. value: "-",
  1091. describe: `季度抽查统计
  1092. 每发现一次抽查未接通的:扣1`,
  1093. },
  1094. {
  1095. name: "日常训练情况",
  1096. value: 4,
  1097. describe: `日常训练记录详实并实地抽查5分钟到位的:4
  1098. 记录详实但实地抽查超时的:2
  1099. 均不符合的:0`,
  1100. },
  1101. ],
  1102. },
  1103. ],
  1104. [
  1105. {
  1106. name: "双随机检查情况",
  1107. value: -2,
  1108. total: "-",
  1109. children: [{ name: "近2年内检查情况", value: 1, describe: `监督检查发现隐患平均数1-3扣2分,4-6扣5分,7+扣10分` }],
  1110. },
  1111. {
  1112. name: "处罚情况",
  1113. value: "-",
  1114. total: 5,
  1115. children: [{ name: "近3年内处罚情况", value: 2, describe: `3年内处罚一次扣5分,处罚2次扣10分,处罚3次扣20分,处罚4次及以上扣25` }],
  1116. },
  1117. {
  1118. name: "举报投诉",
  1119. value: -0.5,
  1120. total: "-",
  1121. children: [{ name: "近2年内投诉情况", value: 2, describe: `每有一次属实的举报投诉:扣0.5,最多扣2分` }],
  1122. },
  1123. {
  1124. name: "重大隐患挂牌情况",
  1125. value: 25,
  1126. total: "-",
  1127. children: [{ name: "重大隐患挂牌情况", value: 25, describe: `当年被列为重大火灾隐患的扣25分` }],
  1128. },
  1129. ],
  1130. [
  1131. {
  1132. name: "当年度火灾情况",
  1133. value: 14,
  1134. total: 14,
  1135. children: [
  1136. { name: "一般火灾", value: 14, describe: "每发生一起扣5分" },
  1137. // { name: "较大及以上火灾", value: 3, describe: "每发生一起扣10分" },
  1138. // {
  1139. // name: "如果发生社会面影响很大且具有典型意义火灾",
  1140. // value: 0,
  1141. // describe:`总分上多扣10分`
  1142. // },
  1143. ],
  1144. },
  1145. // {
  1146. // name: "上年度火灾情况",
  1147. // value: 6,
  1148. // total: 7,
  1149. // children: [{ name: "", value: 6, describe: "上年度发生火灾的基准分降为8" }],
  1150. // },
  1151. ],
  1152. ], //二级饼图数据
  1153. checkPieData: {
  1154. value: [],
  1155. name: null,
  1156. id: null,
  1157. }, //选择饼图数据
  1158. //三级饼图数据
  1159. checkTable: {
  1160. data: [],
  1161. name: null,
  1162. id: null,
  1163. total: 0,
  1164. },
  1165. enterpriseAutonomyList: {
  1166. complaintList: [],
  1167. scoreList: [], //综合评分数据
  1168. titleList: [], //折线图title数据
  1169. valueList: [], //折线图value数据
  1170. }, //企业自主情况-数据存储
  1171. tabsArea: "data1", //企业自主巡检情况-(今日、近七日、近一月)切换
  1172. patrolInspectionList: [
  1173. {
  1174. name: "今日巡检情况", //名称
  1175. value: 0, //值
  1176. mark: "", //标识符
  1177. },
  1178. {
  1179. name: "巡检率", //名称
  1180. value: 0, //值
  1181. mark: "%", //标识符
  1182. },
  1183. {
  1184. name: "合格数", //名称
  1185. value: 0, //值
  1186. mark: "", //标识符
  1187. },
  1188. {
  1189. name: "漏检数", //名称
  1190. value: 0, //值
  1191. mark: "", //标识符
  1192. },
  1193. ], //企业自主巡检情况-数据存储
  1194. streetCompanyList: {
  1195. xTims: null,
  1196. xData: [],
  1197. dataMap: [[], [], []],
  1198. }, //各街镇单位情况-数据存储
  1199. tabsArea1: 10, //历史案件-(近10条、近50条)切换
  1200. gj: [
  1201. {
  1202. name: "水系统检测设备",
  1203. value: 0,
  1204. },
  1205. {
  1206. name: "上线率",
  1207. value: 0,
  1208. },
  1209. {
  1210. name: "接单率",
  1211. value: 0,
  1212. },
  1213. {
  1214. name: "处置率",
  1215. value: 0,
  1216. },
  1217. ], //历史案件-数据存储
  1218. tableData2: [], //历史案件-数据存储
  1219. headerData2: [
  1220. { prop: "id", name: "案件编号" },
  1221. { prop: "createTime", name: "案发时间" },
  1222. { prop: "caseType", name: "案件类型" },
  1223. { prop: "address", name: "案发地址" },
  1224. { prop: "dutyGroup", name: "责任部门" },
  1225. { prop: "caseFlag", name: "状态" },
  1226. ], //历史案件-table表格prop头部定义
  1227. erpData: [], //企业经营情况-数据存储
  1228. streetDynamicData1: [], //单位情况-数据存储
  1229. streetDynamicData: [
  1230. {
  1231. "onLineRate": "15.6%",
  1232. "onLineCount": 14,
  1233. "deviceCount": 90,
  1234. "streetTown": "华漕镇",
  1235. "processedRate": "90%"
  1236. },
  1237. {
  1238. "onLineRate": "78.8%",
  1239. "onLineCount": 67,
  1240. "deviceCount": 85,
  1241. "streetTown": "新虹街道",
  1242. "processedRate": "98%"
  1243. },
  1244. {
  1245. "onLineRate": "17.8%",
  1246. "onLineCount": 292,
  1247. "deviceCount": 1641,
  1248. "streetTown": "七宝镇",
  1249. "processedRate": "90%"
  1250. },
  1251. {
  1252. "onLineRate": "37.4%",
  1253. "onLineCount": 474,
  1254. "deviceCount": 1266,
  1255. "streetTown": "虹桥镇",
  1256. "processedRate": "90%"
  1257. },
  1258. {
  1259. "onLineRate": "34.3%",
  1260. "onLineCount": 82,
  1261. "deviceCount":239,
  1262. "streetTown": "古美路街道",
  1263. "processedRate": "99%"
  1264. },
  1265. {
  1266. "onLineRate": "15.7%",
  1267. "onLineCount":336,
  1268. "deviceCount":2144,
  1269. "streetTown": "莘庄镇",
  1270. "processedRate": "98%"
  1271. },
  1272. {
  1273. "onLineRate": "39.1%",
  1274. "onLineCount": 358,
  1275. "deviceCount": 916,
  1276. "streetTown": "梅陇镇",
  1277. "processedRate": "95%"
  1278. },
  1279. {
  1280. "onLineRate": "16.1%",
  1281. "onLineCount": 293,
  1282. "deviceCount": 1823,
  1283. "streetTown": "颛桥镇",
  1284. "processedRate": "97%"
  1285. },
  1286. {
  1287. "onLineRate": "19.8%",
  1288. "onLineCount": 133,
  1289. "deviceCount": 673,
  1290. "streetTown": "马桥镇",
  1291. "processedRate": "96%"
  1292. },
  1293. {
  1294. "onLineRate": "49.6%",
  1295. "onLineCount": 64,
  1296. "deviceCount": 129,
  1297. "streetTown": "江川路街道",
  1298. "processedRate": "98%"
  1299. },
  1300. {
  1301. "onLineRate": "16.0%",
  1302. "onLineCount": 512,
  1303. "deviceCount": 3205,
  1304. "streetTown": "吴泾镇",
  1305. "processedRate": "95%"
  1306. },
  1307. {
  1308. "onLineRate": "97.1%",
  1309. "onLineCount": 4652,
  1310. "deviceCount": 4791,
  1311. "streetTown": "浦锦街道",
  1312. "processedRate": "96%"
  1313. },
  1314. {
  1315. "onLineRate": "15.9%",
  1316. "onLineCount": 342,
  1317. "deviceCount": 2157,
  1318. "streetTown": "浦江镇",
  1319. "processedRate": "95%"
  1320. },
  1321. {
  1322. "onLineRate": "8.0%",
  1323. "onLineCount": 174,
  1324. "deviceCount": 2174,
  1325. "streetTown": "莘庄工业区",
  1326. "processedRate": "94%"
  1327. }
  1328. ],//各街镇物联动态-数据存储
  1329. streetDynamicHeaderData: [
  1330. { prop: "streetTown", name: "街镇" },
  1331. { prop: "deviceCount", name: "设备总数" },
  1332. { prop: "onLineCount", name: "在线数" },
  1333. { prop: "onLineRate", name: "在线率" },
  1334. { prop: "processedRate", name: "处置率" },
  1335. ], //各街镇物联动态-table表格prop头部定义
  1336. tabsArea2: "data1", //物联网处置情况-(今日、近七日、近一月)切换
  1337. iotDisposalList: [
  1338. {
  1339. name: "隐患告警数", //名称
  1340. value: 0, //值
  1341. mark: "", //标识符
  1342. },
  1343. {
  1344. name: "隐患告警处置数", //名称
  1345. value: 0, //值
  1346. mark: "", //标识符
  1347. },
  1348. {
  1349. name: "处置率", //名称
  1350. value: 0, //值
  1351. mark: "%", //标识符
  1352. },
  1353. ], //物联网处置情况-数据存储
  1354. //类型筛选数据集
  1355. checkedArray: {
  1356. checkedData: [0],
  1357. checkedList: [
  1358. { value: 0, label: "单位信息" },
  1359. { value: 1, label: "工业" },
  1360. // { value: 1, label: "重点单位" },
  1361. // { value: 2, label: "一般单位" },
  1362. // { value: 3, label: "九小场所" },
  1363. // { value: 9, label: "其他单位" },
  1364. // { value: 10, label: "大型综合体" },
  1365. { value: 11, label: "龙湖天街(试点)" },
  1366. // { value: 12, label: "中小学校" },
  1367. { value: 13, label: "博物馆" },
  1368. { value: 14, label: "体验馆" },
  1369. ],
  1370. },
  1371. checkedSelectValue: "1",
  1372. checkedSelectLabel: "重点单位",
  1373. checkedSelectArray: [
  1374. { value: 0, label: "单位信息" },
  1375. { value: 1, label: "重点单位" },
  1376. { value: 2, label: "一般单位" },
  1377. { value: 3, label: "九小场所" },
  1378. { value: 9, label: "其他单位" },
  1379. { value: 10, label: "大型综合体" },
  1380. ],
  1381. checkedSelectValue2: "999",
  1382. checkedSelectLabel2: "工业",
  1383. checkedSelectArray2: [
  1384. { value: 999, label: "工业" },
  1385. { value: 1000, label: "厂房" },
  1386. { value: 1001, label: "仓库" },
  1387. ],
  1388. checkedSelectValue3: "10000",
  1389. checkedSelectLabel3: "学校",
  1390. checkedSelectArray3: [
  1391. { value: 10000, label: "学校" },
  1392. { value: 19, label: "中小学" },
  1393. { value: 20, label: "幼儿园" },
  1394. { value: 21, label: "其他学校" },
  1395. ],
  1396. };
  1397. },
  1398. computed: {
  1399. isFollow() {
  1400. return this.stores.$state.zddwId;
  1401. },
  1402. },
  1403. watch: {
  1404. isFollow(id) {
  1405. this.zddwSd(id);
  1406. },
  1407. },
  1408. created() {
  1409. this.getData();
  1410. setTimeout(()=>{
  1411. this.autoScroll()
  1412. },2000)
  1413. },
  1414. mounted() {
  1415. this.initMap();
  1416. window.addEventListener(
  1417. "resize",
  1418. () =>
  1419. this.resizeTimeActions([
  1420. this.$refs.gauge1,
  1421. this.$refs.gauge2,
  1422. this.$refs.gauge3,
  1423. this.$refs.categoryEnterprise,
  1424. this.$refs.categoryEnterprise2,
  1425. this.$refs.category,
  1426. this.$refs.radarChart,
  1427. this.$refs.wordCloud,
  1428. ]),
  1429. true
  1430. );
  1431. },
  1432. methods: {
  1433. beforeDestroy() {
  1434. this.autoScroll(true)
  1435. },
  1436. /**
  1437. * 评分等级切换
  1438. * @param {*} id
  1439. */
  1440. djActiveClick(id) {
  1441. var status = this.djActive[id];
  1442. this.djActive = [false, false, false, false];
  1443. this.djActive[id] = !status;
  1444. let type = "重点单位";
  1445. let arr = [];
  1446. if (this.djActive[id]) {
  1447. this.$axios
  1448. .get(
  1449. this.$api.selfManagement.riskGradeScatter +
  1450. "?" +
  1451. this.$qs.stringify({
  1452. streetTown: this.stroes.$state.streetTown,
  1453. riskGrade: id + 1,
  1454. })
  1455. )
  1456. .then((res) => {
  1457. if (res.data.length > 0) {
  1458. //点分布
  1459. let data = res.data;
  1460. for (let i = 0; i < data.length; i++) {
  1461. arr[i] = data[i];
  1462. arr[i].gisX = data[i].longitude;
  1463. arr[i].gisY = data[i].latitude;
  1464. arr[i].companyId = data[i].companyId;
  1465. arr[i].type = type;
  1466. }
  1467. setTimeout(() => {
  1468. this.addMarker(arr.splice(0, 500), "self-management", id == 0 ? "高风险" : id ==1 ? "较高风险" : id == 2 ? "一般风险" : id == 3 ? "低风险" : "");
  1469. }, 500);
  1470. } else {
  1471. this.addMarker([], "self-management", type);
  1472. }
  1473. });
  1474. } else {
  1475. this.addMarker([], "self-management", "");
  1476. }
  1477. },
  1478. closeTk() {
  1479. this.tk = false;
  1480. },
  1481. closeIsTooltip() {
  1482. let y = document.getElementsByClassName("el-popper");
  1483. for (let i = 0; i < y.length; i++) {
  1484. y[i].style.display = "none";
  1485. y[i].ariaHidden = true;
  1486. }
  1487. },
  1488. async getData() {
  1489. this.sadianSelect(1); //撒点
  1490. this.enterpriseAutonomyApi(); //企业自主情况接口请求
  1491. this.patrolInspectionApi(); //企业自主巡检情况接口请求
  1492. this.streetCompanyApi(); //各街镇单位情况接口请求
  1493. // this.erpDataApi(); //企业经营情况接口请求
  1494. this.caseListApi(); //历史案件接口请求d
  1495. this.deviceTypeListApi(); //物联网设备情况接口请求
  1496. // this.streetDynamicApi(); //各街镇物联动态接口请求
  1497. this.iotDisposalApi(); //物联网处置情况接口请求
  1498. },
  1499. autoScroll(stop) {
  1500. // 拿到表格中承载数据的div元素
  1501. const divData = this.$refs.reportTable.$refs.bodyWrapper
  1502. // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素)
  1503. if (stop) {
  1504. //再通过事件监听,监听到 组件销毁 后,再执行关闭计时器。
  1505. window.clearInterval(this.scrolltimer)
  1506. } else {
  1507. this.scrolltimer = window.setInterval(() => {
  1508. // 元素自增距离顶部1像素
  1509. divData.scrollTop += 1
  1510. // 判断元素是否滚动到底部(可视高度+距离顶部=整个高度)
  1511. if (divData.clientHeight + divData.scrollTop == divData.scrollHeight) {
  1512. // 重置table距离顶部距离
  1513. divData.scrollTop = 0
  1514. // 重置table距离顶部距离。值=(滚动到底部时,距离顶部的大小) - 整个高度/2
  1515. // divData.scrollTop = divData.scrollTop - divData.scrollHeight / 2
  1516. }
  1517. }, 150) // 滚动速度
  1518. }
  1519. },
  1520. /**
  1521. * 撒点测绘院、高德
  1522. */
  1523. sadianSelect(id) {
  1524. if (this.stroes.$state.mapBool == 1) {
  1525. this.mapCluster(id);
  1526. } else {
  1527. this.sadian(id);
  1528. }
  1529. },
  1530. /**
  1531. * @点击街镇事件
  1532. */
  1533. async getStreetTownClick() {
  1534. // clearInterval(this.streetCompanyList.xTims);
  1535. this.sadianSelect(this.checkedArray.checkedData[0]); //撒点
  1536. // this.selectArray(1)
  1537. this.enterpriseAutonomyApi(); //企业自主情况接口请求
  1538. this.patrolInspectionApi(); //企业自主巡检情况接口请求
  1539. this.caseListApi(); //历史案件接口请求
  1540. this.deviceTypeListApi(); //物联网设备情况接口请求
  1541. this.iotDisposalApi(); //物联网处置情况接口请求
  1542. this.streetCompanyApi1(); //单位情况接口请求
  1543. },
  1544. /**
  1545. * @历史案件
  1546. * @企业自主巡检情况
  1547. * @物联网处置情况
  1548. * @tabs切换
  1549. * @param {传入值Bool} type
  1550. * @param {传入值Sting} val
  1551. */
  1552. searchTabs(type, val) {
  1553. if (type === "历史案件") {
  1554. if (val === this.tabsArea1) return;
  1555. this.tabsArea1 = val;
  1556. this.caseListApi(); //历史案件接口请求
  1557. } else if (type === "企业自主巡检情况") {
  1558. if (val === this.tabsArea) return;
  1559. this.tabsArea = val;
  1560. this.patrolInspectionApi(); //企业自主巡检情况接口请求
  1561. } else if (type === "物联网处置情况") {
  1562. if (val === this.tabsArea2) return;
  1563. this.tabsArea2 = val;
  1564. this.iotDisposalApi(); //企业自主巡检情况接口请求
  1565. }
  1566. },
  1567. /**
  1568. * @撒点类型事件
  1569. */
  1570. checkboxChange(value) {
  1571. // console.log(this.checkedArray.checkedData[0])
  1572. this.checkedArray.checkedData[0] = value;
  1573. this.sadianSelect(this.checkedArray.checkedData[0]);
  1574. },
  1575. /**
  1576. * @企业自主情况
  1577. * @api接口请求
  1578. */
  1579. async enterpriseAutonomyApi() {
  1580. let res = await this.$axios.get(
  1581. this.$api.selfManagement.enterpriseAutonomy +
  1582. "?" +
  1583. this.$qs.stringify({
  1584. moduleType: "enterpriseAutonomy",
  1585. dataType: "data1",
  1586. // streetTown: this.stroes.$state.streetTown, //街镇
  1587. streetTown: "", //街镇
  1588. })
  1589. );
  1590. if (res.data.length > 0) {
  1591. // this.enterpriseAutonomyList.complaintList = res.data;
  1592. this.enterpriseAutonomyList.complaintList = [
  1593. // { name: "平面布局得分", value: 13.91, mark: "分" },
  1594. { name: "建筑整体指数", value: 8.5, mark: "分" },
  1595. { name: "设施状况指数", value: 9.1, mark: "分" },
  1596. { name: "自主管理指数", value: 20, mark: "分" },
  1597. { name: "监督执法指数", value: 25, mark: "分" },
  1598. { name: "火灾风险指数", value: 14, mark: "分" },
  1599. ];
  1600. }
  1601. let res1 = await this.$axios.get(this.$api.selfManagement.resultStatistic);
  1602. if (res1.data.length > 0) {
  1603. let data = res1.data[0];
  1604. this.enterpriseAutonomyList.scoreList = [
  1605. { name: "高风险数", value: data.highRisk, mark: "家" },
  1606. { name: "较高风险数", value: data.mildHighRisk, mark: "家" },
  1607. { name: "一般风险数", value: data.normalRisk, mark: "家" },
  1608. { name: "低风险数", value: data.lowRisk, mark: "家" },
  1609. ];
  1610. }
  1611. },
  1612. /**
  1613. * @重点单位撒点详情
  1614. * @api接口请求
  1615. */
  1616. async zddwSd(id) {
  1617. let res = await this.$axios.get(
  1618. this.$api.selfManagement.scatterData +
  1619. "?" +
  1620. this.$qs.stringify({
  1621. companyId: id,
  1622. })
  1623. );
  1624. if (res.data) {
  1625. this.tkData = res.data[0];
  1626. this.tk = true;
  1627. }
  1628. },
  1629. /**
  1630. * @雷达图切换饼图
  1631. *
  1632. */
  1633. async radarToPie(id) {
  1634. if (this.enterpriseAutonomyList.complaintList[id]) {
  1635. this.checkPieData.value = this.pieData[id];
  1636. this.checkPieData.name = this.enterpriseAutonomyList.complaintList[id].name;
  1637. this.checkPieData.id = id;
  1638. this.radar = 2;
  1639. }
  1640. },
  1641. /**
  1642. * @饼图切换table
  1643. *
  1644. */
  1645. async PieToTable(pId, cId) {
  1646. for (let i = 0; i < this.pieData[pId].length; i++) {
  1647. if (i == cId) {
  1648. this.checkTable.data = this.pieData[pId][i].children;
  1649. this.checkTable.name = this.pieData[pId][i].name;
  1650. this.checkTable.total = this.pieData[pId][i].value;
  1651. if (this.checkTable.data[0].name) {
  1652. this.radar = 3;
  1653. } else {
  1654. this.$notify({
  1655. title: "三级指数不存在",
  1656. message: "",
  1657. position: "top-left",
  1658. offset: 100,
  1659. });
  1660. // alert("三级指数不存在")
  1661. }
  1662. }
  1663. }
  1664. },
  1665. /**
  1666. * @图形切换
  1667. *
  1668. */
  1669. async goBack(id) {
  1670. if (id == 1) {
  1671. this.radar = 1;
  1672. } else {
  1673. this.radar = 2;
  1674. }
  1675. },
  1676. /**
  1677. * @企业自主巡检情况
  1678. * @api请求
  1679. */
  1680. async patrolInspectionApi() {
  1681. let res = await this.$axios.get(
  1682. this.$api.selfManagement.enterpriseAutonomy +
  1683. "?" +
  1684. this.$qs.stringify({
  1685. moduleType: "patrolInspection",
  1686. dataType: this.tabsArea,
  1687. // streetTown: this.stroes.$state.streetTown, //街镇搁置(1125监理关闭后期放开)
  1688. })
  1689. );
  1690. if (res.data.length > 0) {
  1691. if (this.tabsArea == "data1") {
  1692. this.patrolInspectionList[0].value = res.data[0].value;
  1693. this.patrolInspectionList[0].name = res.data[0].name;
  1694. this.patrolInspectionList[1].value = res.data[1].value;
  1695. this.patrolInspectionList[1].name = res.data[1].name;
  1696. this.patrolInspectionList[2].value = res.data[2].value;
  1697. this.patrolInspectionList[2].name = res.data[2].name;
  1698. this.patrolInspectionList[3].value = res.data[3].value;
  1699. this.patrolInspectionList[3].name = res.data[3].name;
  1700. }
  1701. if (this.tabsArea == "data2") {
  1702. this.patrolInspectionList[0].value = res.data[0].value;
  1703. this.patrolInspectionList[0].name = res.data[0].name;
  1704. this.patrolInspectionList[1].value = res.data[1].value;
  1705. this.patrolInspectionList[1].name = res.data[1].name;
  1706. this.patrolInspectionList[2].value = res.data[2].value;
  1707. this.patrolInspectionList[2].name = res.data[2].name;
  1708. this.patrolInspectionList[3].value = res.data[3].value;
  1709. this.patrolInspectionList[3].name = res.data[3].name;
  1710. }
  1711. if (this.tabsArea == "data3") {
  1712. this.patrolInspectionList[0].value = res.data[0].value;
  1713. this.patrolInspectionList[0].name = res.data[0].name;
  1714. this.patrolInspectionList[1].value = res.data[1].value;
  1715. this.patrolInspectionList[1].name = res.data[1].name;
  1716. this.patrolInspectionList[2].value = res.data[2].value;
  1717. this.patrolInspectionList[2].name = res.data[2].name;
  1718. this.patrolInspectionList[3].value = res.data[3].value;
  1719. this.patrolInspectionList[3].name = res.data[3].name;
  1720. }
  1721. }
  1722. },
  1723. /**
  1724. * @各街镇单位情况
  1725. * @api请求
  1726. */
  1727. async streetCompanyApi() {
  1728. this.streetCompanyList.xTims = null;
  1729. this.streetCompanyList.xData = [];
  1730. this.streetCompanyList.dataMap = [[], [], []];
  1731. let res = await this.$axios.get(
  1732. this.$api.selfManagement.enterpriseAutonomy +
  1733. "?" +
  1734. this.$qs.stringify({
  1735. moduleType: "streetCompany",
  1736. dataType: "data",
  1737. })
  1738. );
  1739. if (res.data.length > 0) {
  1740. res.data.forEach((el) => {
  1741. this.streetCompanyList.xData.push(el.name);
  1742. this.streetCompanyList.dataMap[0].push(el.other);
  1743. this.streetCompanyList.dataMap[1].push(el.general);
  1744. this.streetCompanyList.dataMap[2].push(el.stress);
  1745. });
  1746. // this.streetCompanyList.xTims = setInterval(() => {
  1747. this.streetCompanyList.xData.push(this.streetCompanyList.xData.shift());
  1748. this.streetCompanyList.dataMap[0].push(this.streetCompanyList.dataMap[0].shift());
  1749. this.streetCompanyList.dataMap[1].push(this.streetCompanyList.dataMap[1].shift());
  1750. this.streetCompanyList.dataMap[2].push(this.streetCompanyList.dataMap[2].shift());
  1751. // }, 5000);
  1752. }
  1753. },
  1754. /**
  1755. * @单位情况
  1756. * @api请求
  1757. */
  1758. async streetCompanyApi1() {
  1759. let res = await this.$axios.get(
  1760. this.$api.selfManagement.enterpriseAutonomy +
  1761. "?" +
  1762. this.$qs.stringify({
  1763. moduleType: "streetCompany",
  1764. dataType: "data",
  1765. streetTown: this.stroes.$state.streetTown, //街镇
  1766. })
  1767. );
  1768. if (res.status === "SUCCESS") {
  1769. this.streetDynamicData1 = [
  1770. {
  1771. name: "重点单位",
  1772. value: res.data[0].stress,
  1773. mark: "",
  1774. },
  1775. {
  1776. name: "一般单位",
  1777. value: res.data[0].general,
  1778. mark: "",
  1779. },
  1780. {
  1781. name: "其它单位",
  1782. value: res.data[0].other,
  1783. mark: "",
  1784. },
  1785. {
  1786. name: "街镇评分",
  1787. value: res.data[0].streetTownScore,
  1788. mark: "分",
  1789. },
  1790. ];
  1791. }
  1792. },
  1793. /**
  1794. * @物联网设备情况
  1795. * @api请求
  1796. */
  1797. async deviceTypeListApi() {
  1798. let res = await this.$axios.get(
  1799. this.$api.selfManagement.deviceTypeList
  1800. );
  1801. if(res){
  1802. this.diskData.total = res.data.deviceCount;
  1803. this.diskData.data = res.data.typeList;
  1804. this.diskData.data = res.data.typeList.map(item=>{
  1805. return {
  1806. name: item.deviceTypeName,
  1807. value: item.deviceCount,
  1808. lineCount: item.lineCount,
  1809. lineRate: item.lineRate.toFixed(2),
  1810. deviceTypeCode:item.deviceTypeCode
  1811. }
  1812. })
  1813. }
  1814. },
  1815. /**
  1816. * @物联网处置情况 吉
  1817. * @api请求
  1818. */
  1819. async iotDisposalApi() {
  1820. var startDate = "";
  1821. var endDate = "";
  1822. if (this.tabsArea2 === "data1") {
  1823. startDate = this.getDays().startTime;
  1824. endDate = this.getDays().endTime;
  1825. } else if (this.tabsArea2 === "data2") {
  1826. startDate = this.getDays().startTime;
  1827. endDate = this.getDays().endTime;
  1828. } else if (this.tabsArea2 === "data3") {
  1829. startDate = this.getMonth().startTime;
  1830. endDate = this.getMonth().endTime;
  1831. }
  1832. let res = await this.$axios.get(
  1833. this.$api.selfManagement.iotDisposal +
  1834. "?" +
  1835. this.$qs.stringify({
  1836. streetTown: this.stroes.$state.streetTown, //街镇
  1837. startDate: startDate, //开始时间
  1838. endDate: endDate, //结束时间
  1839. })
  1840. );
  1841. if (res.status === "SUCCESS") {
  1842. if (this.tabsArea2 == "data1") {
  1843. this.iotDisposalList[0].value = 9004;
  1844. this.iotDisposalList[1].value = 8701;
  1845. this.iotDisposalList[2].value = parseInt("96.63%".split("%")[0]);
  1846. } else {
  1847. this.iotDisposalList[0].value = res.data.alarmCount;
  1848. this.iotDisposalList[1].value = res.data.alarmProcessedCount;
  1849. this.iotDisposalList[2].value = parseInt(res.data.alarmProcessedRate.split("%")[0]);
  1850. }
  1851. }
  1852. },
  1853. /**
  1854. * @各街镇物联动态
  1855. * @api请求
  1856. */
  1857. async streetDynamicApi() {
  1858. let res = await this.$axios.get(this.$api.selfManagement.streetDynamic + "?" + this.$qs.stringify({}));
  1859. if (res.data.length > 0) {
  1860. this.streetDynamicData = res.data;
  1861. }
  1862. },
  1863. /**
  1864. * @历史案件
  1865. * @api请求
  1866. */
  1867. async caseListApi() {
  1868. let res = await this.$axios.get(
  1869. this.$api.selfManagement.caseList +
  1870. "?" +
  1871. this.$qs.stringify({
  1872. id: undefined, //案件编号
  1873. deviceType: undefined, //设备类型
  1874. companyName: undefined, //单位名称
  1875. streetTown: this.stroes.$state.streetTown, //街镇
  1876. pageNum: 1, //当前页
  1877. pageSize: this.tabsArea1, //每页条数
  1878. })
  1879. );
  1880. if (res.data.records.length > 0) {
  1881. this.tableData2 = res.data.records;
  1882. this.tableData2.forEach((val) => {
  1883. val.createTime = val.createTime ? val.createTime.replace("T", " ") : "--";
  1884. val.endTime = val.endTime ? val.endTime.replace("T", " ") : "--";
  1885. });
  1886. } else {
  1887. this.tableData2 = [];
  1888. }
  1889. let res1 = await this.$axios.get(
  1890. this.$api.selfManagement.caseStatistics +
  1891. "?" +
  1892. this.$qs.stringify({
  1893. streetTown: this.stroes.$state.streetTown, //街镇
  1894. companyId: undefined, //单位ID
  1895. })
  1896. );
  1897. if (res1.status === "SUCCESS") {
  1898. this.gj[0].value = res1.data.deviceCount; //水系统检测设备
  1899. this.gj[1].value = res1.data.onLineDeviceRatio; //上线率
  1900. this.gj[2].value = res1.data.handleCaseRatio; //接单率
  1901. this.gj[3].value = res1.data.closureCaseRatio; //处置率
  1902. }
  1903. },
  1904. /**
  1905. * @企业经营情况
  1906. * @api请求
  1907. */
  1908. async erpDataApi() {
  1909. let res = await this.$axios.get(
  1910. this.$api.selfManagement.erpData +
  1911. "?" +
  1912. this.$qs.stringify({
  1913. companyId: undefined,
  1914. })
  1915. );
  1916. if (res.data.length > 0) {
  1917. this.erpData = res.data;
  1918. }
  1919. },
  1920. /**
  1921. * @高德地图聚合撒点
  1922. */
  1923. async mapCluster(id) {
  1924. // if(id == 0 || ){
  1925. // console.log(this.stroes.$state.streetTown)
  1926. await this.$axios
  1927. .get(
  1928. this.$api.selfManagement.mapList +
  1929. "?" +
  1930. this.$qs.stringify({
  1931. streetTown: this.stroes.$state.streetTown,
  1932. companyType: this.checkedArray.checkedList[id].value,
  1933. })
  1934. )
  1935. .then((res) => {
  1936. if (res.data.length > 0) {
  1937. //点分布
  1938. let data = res.data;
  1939. let arr = [];
  1940. for (let i = 0; i < data.length; i++) {
  1941. arr[i] = {
  1942. id: data[i].id ? data[i].id : null,
  1943. type: data[i].companyTypeName ? data[i].companyTypeName : null,
  1944. address: data[i].address ? data[i].address : null,
  1945. companyName: data[i].companyName ? data[i].companyName : null,
  1946. streetTown: data[i].streetTown ? data[i].streetTown : null,
  1947. gisX: data[i].longitude,
  1948. gisY: data[i].latitude,
  1949. companyId: data[i].companyId,
  1950. linkPhone: data[i].linkPhone ? data[i].linkPhone : null,
  1951. };
  1952. }
  1953. setTimeout(() => {
  1954. let type = null;
  1955. for (let i = 0; i < this.checkedArray.checkedList.length; i++) {
  1956. if (this.checkedArray.checkedList[i].value == this.checkedArray.checkedData[0]) {
  1957. type = this.checkedArray.checkedList[i].label;
  1958. }
  1959. }
  1960. this.initMarkers(arr.splice(0, 500), "self-management", this.checkedArray.checkedList[id].label);
  1961. }, 500);
  1962. } else {
  1963. this.initMarkers([], "self-management", this.checkedArray.checkedList[id].label);
  1964. }
  1965. });
  1966. // }else{
  1967. // console.log(id,this.checkedArray)
  1968. // this.addMarker([], "self-management", this.checkedArray.checkedList[id].label);
  1969. // }
  1970. },
  1971. /**
  1972. * @高德地图撒点
  1973. */
  1974. async mapList() {
  1975. let res = await this.$axios.get(
  1976. this.$api.selfManagement.mapList +
  1977. "?" +
  1978. this.$qs.stringify({
  1979. streetTown: this.stroes.$state.streetTown,
  1980. companyType: this.checkedArray.checkedData[0],
  1981. })
  1982. );
  1983. if (res.data.length > 0) {
  1984. this.addMarker(res.data, "企业自主管理", this.checkedArray.checkedData[0]);
  1985. } else {
  1986. this.addMarker([], "企业自主管理", this.checkedArray.checkedData[0]);
  1987. }
  1988. },
  1989. /**
  1990. * 单位信息选择
  1991. * @param {*} id
  1992. */
  1993. selectArray(id) {
  1994. let data = this.checkedSelectArray.filter((val) => {
  1995. if (val.value == id) {
  1996. return val.label;
  1997. }
  1998. });
  1999. this.checkedSelectLabel = data[0].label;
  2000. this.checkboxChange(id);
  2001. },
  2002. /**
  2003. * 工业选择
  2004. * @param {*} id
  2005. */
  2006. selectArray2(id) {
  2007. let data = this.checkedSelectArray2.filter((val) => {
  2008. if (val.value == id) {
  2009. return val.label;
  2010. }
  2011. });
  2012. this.checkedSelectLabel2 = data[0].label;
  2013. this.checkboxChange(id);
  2014. },
  2015. /**
  2016. * 学校选择
  2017. * @param {*} id
  2018. */
  2019. selectArray3(id) {
  2020. let data = this.checkedSelectArray3.filter((val) => {
  2021. if (val.value == id) {
  2022. return val.label;
  2023. }
  2024. });
  2025. this.checkedSelectLabel3 = data[0].label;
  2026. this.checkboxChange(id);
  2027. },
  2028. /**
  2029. * 撒点街镇选择
  2030. */
  2031. checkStreetTown(value) {
  2032. let data = undefined;
  2033. for (let i = 0; i < this.stroes.$state.mhjz.length; i++) {
  2034. if (this.stroes.$state.streetTown == this.stroes.$state.mhjz[i].streetTown) {
  2035. data = this.stroes.$state.mhjz[i];
  2036. break;
  2037. }
  2038. }
  2039. if (!this.stroes.$state.streetTown) {
  2040. data = this.stroes.$state.mhjz[0];
  2041. }
  2042. if (this.stroes.$state.mapBool == 2) {
  2043. this.streetTownSwitch(data);
  2044. }
  2045. this.getStreetTownClick();
  2046. this.sadianSelect(this.checkedArray.checkedData[0]);
  2047. },
  2048. /**
  2049. * 撒点
  2050. * code 物联网code
  2051. */
  2052. async sadian(id,code) {
  2053. let arr = [];
  2054. let typeAll = this.checkedSelectArray;
  2055. let type = null;
  2056. for (let i = 0; i < typeAll.length; i++) {
  2057. if (id == typeAll[i].value) {
  2058. type = typeAll[i].label;
  2059. }
  2060. }
  2061. if (id == 0) {
  2062. this.addMarker([], "self-management");
  2063. }
  2064. if (id == 1 || id == 2 || id == 3 || id == 9) {
  2065. await this.$axios
  2066. .get(
  2067. this.$api.selfManagement.mapList +
  2068. "?" +
  2069. this.$qs.stringify({
  2070. streetTown: this.stroes.$state.streetTown,
  2071. companyType: id,
  2072. })
  2073. )
  2074. .then((res) => {
  2075. if (res.data.length > 0) {
  2076. //点分布
  2077. let data = res.data;
  2078. for (let i = 0; i < data.length; i++) {
  2079. arr[i] = {
  2080. id: data[i].id ? data[i].id : null,
  2081. type: data[i].companyTypeName ? data[i].companyTypeName : null,
  2082. address: data[i].address ? data[i].address : null,
  2083. companyName: data[i].companyName ? data[i].companyName : null,
  2084. streetTown: data[i].streetTown ? data[i].streetTown : null,
  2085. gisX: data[i].longitude,
  2086. gisY: data[i].latitude,
  2087. companyId: data[i].companyId,
  2088. linkPhone: data[i].linkPhone ? data[i].linkPhone : null,
  2089. };
  2090. }
  2091. setTimeout(() => {
  2092. this.addMarker(arr.splice(0, 500), "self-management", type);
  2093. }, 500);
  2094. } else {
  2095. this.addMarker([], "self-management", type);
  2096. }
  2097. });
  2098. } else if (id == 6) {
  2099. this.$axios
  2100. .get(
  2101. this.$api.fireSite.demHighRiseList +
  2102. "?" +
  2103. this.$qs.stringify({
  2104. id: 0,
  2105. })
  2106. )
  2107. .then((res2) => {
  2108. for (let i = 0; i < res2.data.length; i++) {
  2109. res2.data[i].stationType = 112;
  2110. arr.push(res2.data[i]);
  2111. }
  2112. this.addMarker(arr, "rescue-station", "高层建筑");
  2113. });
  2114. } else if (id == 10) {
  2115. this.$axios
  2116. .post(this.$api.water.baseGgpFacilityList, {
  2117. facilityType: [2, 3],
  2118. })
  2119. .then((res) => {
  2120. // 2 五万
  2121. // 3 三至五万
  2122. for (let i = 0; i < res.data.length; i++) {
  2123. arr[i] = {};
  2124. arr[i].address = res.data[i].address;
  2125. arr[i].facilityName = res.data[i].facilityName;
  2126. arr[i].extendData = res.data[i].extendData;
  2127. arr[i].latitude = res.data[i].latitude;
  2128. arr[i].longitude = res.data[i].longitude;
  2129. arr[i].type = "大型综合体";
  2130. if (res.data[i].id == 48) {
  2131. //龙湖天街试点
  2132. arr[i].facilityType = "lhtj";
  2133. } else {
  2134. arr[i].facilityType = res.data[i].facilityType;
  2135. }
  2136. }
  2137. this.addMarker(arr, "self-management", "大型综合体");
  2138. });
  2139. } else if (id == 11) {
  2140. this.$axios
  2141. .post(this.$api.water.baseGgpFacilityList, {
  2142. facilityType: [2, 3],
  2143. })
  2144. .then((res) => {
  2145. // 2 五万
  2146. // 3 三至五万
  2147. for (let i = 0; i < res.data.length; i++) {
  2148. arr[i] = {};
  2149. if (res.data[i].id == 48) {
  2150. //龙湖天街试点
  2151. arr[i].facilityType = "lhtj";
  2152. arr[i].address = res.data[i].address;
  2153. arr[i].facilityName = res.data[i].facilityName;
  2154. arr[i].extendData = res.data[i].extendData;
  2155. arr[i].latitude = res.data[i].latitude;
  2156. arr[i].longitude = res.data[i].longitude;
  2157. arr[i].type = "大型综合体";
  2158. }
  2159. }
  2160. this.addMarker(arr, "self-management", "大型综合体");
  2161. });
  2162. } else if (id == 1001) {
  2163. let res = await this.$axios.get(
  2164. this.$api.city.storeScatterer +
  2165. "?" +
  2166. this.$qs.stringify({
  2167. streetTown: this.stroes.$state.streetTown,
  2168. })
  2169. );
  2170. if (res?.data.length > 0) {
  2171. this.addMarker(res.data, "fire-signs", "仓库");
  2172. } else {
  2173. this.addMarker([], "fire-signs", "");
  2174. }
  2175. } else if (id == 19 || id == 20 || id == 21) {
  2176. //学校
  2177. let typeAll3 = this.checkedSelectArray3;
  2178. let type3 = null;
  2179. for (let i = 0; i < typeAll3.length; i++) {
  2180. if (id == typeAll3[i].value) {
  2181. type3 = typeAll3[i].label;
  2182. }
  2183. }
  2184. this.$axios
  2185. .post(this.$api.water.baseGgpFacilityList, {
  2186. facilityType: [id],
  2187. })
  2188. .then((res) => {
  2189. for (let i = 0; i < res.data.length; i++) {
  2190. arr[i] = res.data[i];
  2191. arr[i].type = type3;
  2192. }
  2193. this.addMarker(arr, "self-management", type3);
  2194. });
  2195. } else if (id == 22) {
  2196. this.$axios
  2197. .post(this.$api.water.baseGgpFacilityList, {
  2198. facilityType: [id],
  2199. })
  2200. .then((res) => {
  2201. this.addMarker(res.data, "self-management", "单位巡检");
  2202. });
  2203. }else if(id == 123){
  2204. this.$axios.get(
  2205. this.$api.selfManagement.deviceTypeScatter +
  2206. "?" +
  2207. this.$qs.stringify({
  2208. deviceTypeCode: code,
  2209. })
  2210. ).then(res=>{
  2211. this.addMarker(res.data, "self-management", "物联网设备");
  2212. })
  2213. } else {
  2214. this.addMarker([], "self-management", "");
  2215. }
  2216. },
  2217. /**
  2218. * 物联网撒点
  2219. */
  2220. diskSd(id){
  2221. this.sadian(123,id)
  2222. },
  2223. /**
  2224. * d单位巡检事件
  2225. */
  2226. unitInspection(id){
  2227. if(id == 0){
  2228. this.sadian(22)
  2229. }
  2230. }
  2231. },
  2232. };
  2233. </script>
  2234. <style lang="scss" scoped>
  2235. @import "@/assets/scss/color.scss";
  2236. .contentBox {
  2237. .leftBox {
  2238. .leftTop {
  2239. height: 44%;
  2240. max-height: 44%;
  2241. overflow: hidden;
  2242. .leftTopContent {
  2243. height: calc(100% - 0.4375rem);
  2244. .contentOne {
  2245. margin-top: 0.1rem;
  2246. height: 60%;
  2247. }
  2248. .contentOneH {
  2249. height: 100%;
  2250. .return {
  2251. cursor: pointer;
  2252. width: 10%;
  2253. margin-left: 90%;
  2254. height: 0.5rem;
  2255. position: absolute;
  2256. right: 0.25rem;
  2257. z-index: 10;
  2258. .returnText {
  2259. width: 0.5rem;
  2260. text-align: center;
  2261. height: 0.3rem;
  2262. line-height: 0.3rem;
  2263. box-shadow: inset 0 0 0.05rem 0.05rem #1b4f90;
  2264. background: rgba(19, 42, 90, 0.2) !important;
  2265. color: #fff;
  2266. float: right;
  2267. margin-top: 0.1rem;
  2268. }
  2269. }
  2270. p {
  2271. color: #fff;
  2272. font-size: 0.2rem;
  2273. margin: 0.4rem 0 0.05rem;
  2274. span {
  2275. font-weight: 700;
  2276. }
  2277. }
  2278. }
  2279. .contentTwo {
  2280. height: 40%;
  2281. .dj {
  2282. font-size: 15px;
  2283. margin: auto 0;
  2284. flex-flow: nowrap;
  2285. width: 99%;
  2286. padding: 6px 0 6px 20%;
  2287. cursor: pointer;
  2288. }
  2289. .djActive {
  2290. background: rgba(255, 255, 255, 0.1);
  2291. }
  2292. }
  2293. }
  2294. }
  2295. .leftCenter {
  2296. height: calc(28% - 00.125rem);
  2297. max-height: calc(28% - 00.125rem);
  2298. padding-top: 0.125rem;
  2299. overflow: hidden;
  2300. .leftCenterContent {
  2301. // height: 2.6875rem;
  2302. height: calc(100% - 0.4375rem);
  2303. padding: 0.125rem;
  2304. .contentOne {
  2305. margin: auto;
  2306. }
  2307. }
  2308. }
  2309. .leftBot {
  2310. height: calc(28% - 00.125rem);
  2311. max-height: calc(28% - 00.125rem);
  2312. padding-top: 0.125rem;
  2313. width: 100%;
  2314. .leftBotContent {
  2315. width: 100%;
  2316. // height: 3.1875rem;
  2317. height: calc(100% - 0.4375rem);
  2318. .contentOne {
  2319. display: flex;
  2320. padding: 0px 0.375rem;
  2321. }
  2322. }
  2323. }
  2324. }
  2325. .rightBox {
  2326. .rightTop {
  2327. height: 35%;
  2328. max-height: 35%;
  2329. overflow: hidden;
  2330. width: 100%;
  2331. .topContent {
  2332. height: calc(100% - 0.6875rem);
  2333. margin: 0.125rem;
  2334. }
  2335. }
  2336. .rightCenter {
  2337. height: calc(30% - 0.125rem);
  2338. max-height: calc(30% - 0.125rem);
  2339. overflow: hidden;
  2340. padding-top: 0.125rem;
  2341. color: #fff;
  2342. font-size: 0.2rem;
  2343. .rightCenterContent {
  2344. height: calc(100% - 0.4375rem);
  2345. padding: 0.125rem 0;
  2346. > .el-col {
  2347. display: flex;
  2348. > div {
  2349. margin: auto 0;
  2350. width: 100%;
  2351. }
  2352. }
  2353. }
  2354. }
  2355. .rightBot {
  2356. height: calc(35% - 0.125rem);
  2357. max-height: calc(35% - 0.125rem);
  2358. overflow: hidden;
  2359. padding-top: 0.125rem;
  2360. color: #fff;
  2361. font-size: 0.2rem;
  2362. .rightBotContent {
  2363. width: 100%;
  2364. height: calc(100% - 0.5625rem);
  2365. margin-top: 0.125rem;
  2366. overflow: auto;
  2367. & > .el-row {
  2368. overflow: hidden;
  2369. width: 100%;
  2370. height: auto;
  2371. & > .title {
  2372. width: 100%;
  2373. height: 0.4375rem;
  2374. line-height: 0.4375rem;
  2375. padding: 0 0.125rem;
  2376. background: rgba(115, 251, 253, 0.6) !important;
  2377. margin-bottom: 0.025rem;
  2378. }
  2379. & > .data {
  2380. width: 100%;
  2381. padding: 0 0.125rem;
  2382. background: rgba(115, 251, 253, 0.4) !important;
  2383. margin-bottom: 0.025rem;
  2384. white-space: initial;
  2385. .el-col {
  2386. line-height: 0.35rem;
  2387. }
  2388. }
  2389. }
  2390. &::-webkit-scrollbar {
  2391. display: none;
  2392. }
  2393. }
  2394. .rightBoContent1 {
  2395. height: calc(100% - 0.6875rem);
  2396. padding: 0.125rem 0;
  2397. > .el-row {
  2398. margin-bottom: 0.125rem;
  2399. > div {
  2400. display: flex;
  2401. > img {
  2402. margin: auto 0.125rem auto 0px;
  2403. width: 0.4375rem;
  2404. height: 0.4375rem;
  2405. }
  2406. }
  2407. > div:first-child {
  2408. // margin-right: auto;
  2409. }
  2410. > div:nth-child(2) {
  2411. margin: auto;
  2412. }
  2413. > div:nth-child(3) {
  2414. margin: auto;
  2415. }
  2416. > div:last-child {
  2417. // margin-left: auto;
  2418. }
  2419. }
  2420. }
  2421. }
  2422. }
  2423. }
  2424. .tableTooltipwt {
  2425. width: 6rem;
  2426. background: transparent;
  2427. border-radius: 0.05rem;
  2428. box-shadow: inset 0 0 1px 0.0125rem rgba(115, 251, 253, 1);
  2429. background: rgba(0, 29, 49, 0.5);
  2430. font-size: 0.2rem;
  2431. padding: 0.1875rem;
  2432. position: fixed;
  2433. top: 140px;
  2434. right: 600px;
  2435. z-index: 10000;
  2436. .close {
  2437. width: 20px;
  2438. height: 20px;
  2439. position: absolute;
  2440. right: 10px;
  2441. top: 10px;
  2442. z-index: 10000;
  2443. display: block;
  2444. }
  2445. .tableContent {
  2446. p {
  2447. @include color_primary($color-primary1);
  2448. }
  2449. .el-col {
  2450. margin-top: 0.05rem;
  2451. line-height: 0.3rem;
  2452. text-overflow: ellipsis !important;
  2453. white-space: normal !important;
  2454. }
  2455. .mk {
  2456. margin-top: 0px;
  2457. }
  2458. }
  2459. }
  2460. .color1 {
  2461. @include color_primary($color-primary3);
  2462. margin-left: 10px;
  2463. }
  2464. .color2 {
  2465. @include color_primary($color-primary1);
  2466. }
  2467. table {
  2468. width: 100%;
  2469. text-align: center;
  2470. color: #fff;
  2471. border: 1px solid #fff;
  2472. font-size: 12px;
  2473. }
  2474. table thead tr th {
  2475. padding: 5px 0px;
  2476. font-weight: 400;
  2477. border: 1px solid #fff;
  2478. }
  2479. table tbody tr td {
  2480. padding: 5px 0px;
  2481. }
  2482. table tbody tr:nth-child(2n) td {
  2483. // background-color: lightblue;
  2484. }
  2485. td {
  2486. border: 0.5px solid #fff;
  2487. }
  2488. </style>
  2489. <style>
  2490. .el-step__description.is-finish {
  2491. color: #73fbfd !important;
  2492. margin-top: 30px;
  2493. }
  2494. .el-step__title.is-finish {
  2495. color: #73fbfd !important;
  2496. margin-top: -60px;
  2497. }
  2498. .is-finish .is-text {
  2499. border: 1px solid #73fbfd;
  2500. background: #7a6a6a;
  2501. }
  2502. .is-finish .el-step__icon-inner {
  2503. color: #73fbfd !important;
  2504. }
  2505. .is-process .is-text {
  2506. border: 1px solid #73fbfd;
  2507. background: #7a6a6a;
  2508. }
  2509. .is-process .el-step__icon-inner {
  2510. color: #73fbfd !important;
  2511. }
  2512. .is-wait .is-text {
  2513. border: 1px solid #fff;
  2514. background: #7a6a6a !important;
  2515. }
  2516. .is-wait .el-step__icon-inner {
  2517. color: #fff !important;
  2518. }
  2519. .el-step__description .is-wait {
  2520. color: #fff;
  2521. }
  2522. .el-step__title.is-process {
  2523. color: #73fbfd !important;
  2524. margin-top: -60px;
  2525. }
  2526. .el-step__title.is-wait {
  2527. color: #fff !important;
  2528. margin-top: -60px;
  2529. }
  2530. .el-step__description.is-process {
  2531. color: #73fbfd !important;
  2532. margin-top: 30px;
  2533. }
  2534. .el-step__description.is-wait {
  2535. color: #fff !important;
  2536. margin-top: 30px;
  2537. }
  2538. .el-step.is-center .el-step__description {
  2539. padding: 0;
  2540. }
  2541. .el-steps--horizontal {
  2542. width: 500px;
  2543. }
  2544. .el-step__icon {
  2545. /* background: transparent; */
  2546. }
  2547. .is-finish .el-step__line {
  2548. background: #73fbfd;
  2549. }
  2550. </style>