safetyExamineWorkbench.vue 47 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810
  1. <!-- 安全检查-工作台 -->
  2. <template>
  3. <view class="examine">
  4. <scroll-view scroll-y @scrolltolower="scrollGet" class="info-max-box">
  5. <view>
  6. <view class="statistics" v-if="pageType==1 || pageType==2">
  7. <view class="statistics_li" v-for="(item,index) in statisticsList" :key="index">
  8. <text>{{item.name}}</text>
  9. <text>{{item.value}}</text>
  10. </view>
  11. </view>
  12. <viwe class="inspect_btn" v-if="pageType==1 || pageType==2">
  13. <view class="inspect_btn_li" @click="handleClick('','patrolPlan')">
  14. <img src="@/images/Version3.3.3/icon_xyxc_xyxc.png"/>
  15. <text>校院巡查</text>
  16. </view>
  17. <text class="line"></text>
  18. <view class="inspect_btn_li" @click="handleClick('','selfPlan')">
  19. <img src="@/images/Version3.3.3/icon_xyxc_syszc.png"/>
  20. <text>实验室自查</text>
  21. </view>
  22. <text class="line"></text>
  23. <view class="inspect_btn_li" @click="handleClick('','dangerPlan')">
  24. <img src="@/images/Version3.3.3/icon_xyxc_aqyh.png"/>
  25. <text>安全隐患</text>
  26. </view>
  27. <text class="line"></text>
  28. <view class="inspect_btn_li" @click="handleClick('','snapshot')">
  29. <img src="@/images/Version3.3.3/icon_aqjc_ssp.png"/>
  30. <text>随手拍</text>
  31. </view>
  32. </viwe>
  33. <!--管理员------------- -->
  34. <view class="tabTitle" v-if="pageType==1">
  35. <view class="tabTitle_li" @tap="tabClick(index)" :key="index" v-for="(item,index) in tabText">
  36. <view :class="{on:curTab==index}" class="tabTitle_text">{{item.name}}<text>{{item.num}}</text></view>
  37. <view :class="{on:curTab==index}" class="tabTitle_across"></view>
  38. </view>
  39. </view>
  40. <view class="list" v-if="pageType==1">
  41. <view class="list_li" v-for="(item,index) in dataList" :key="index" @click="handleClick(item,'edit')">
  42. <view class="list_li_t">
  43. <view class="list_li_t_l">
  44. <img v-if="item.checkRange==1" src="@/images/Version3.3.3/icon_xyxc_qx.png"/>
  45. <img v-if="item.checkRange==2" src="@/images/Version3.3.3/icon_xyxc_xy.png"/>
  46. <img v-if="item.checkRange==3" src="@/images/Version3.3.3/icon_xyxc_sys.png"/>
  47. <text></text>
  48. </view>
  49. <view class="list_li_t_c">{{item.title}}</view>
  50. <view class="list_li_t_r"></view>
  51. </view>
  52. <view class="list_li_m">
  53. <view class="list_li_m_t">计划周期:{{item.cycleStartTime}}至{{item.cycleEndTime}}</view>
  54. <view class="list_li_m_b">
  55. <text class="blue_color" v-if="item.checkStatus==1">未开始</text>
  56. <text class="red_color" v-if="item.checkStatus==2">进行中</text>
  57. <text>{{item.checkType==1?'校院巡查':'实验室自查'}}</text>
  58. </view>
  59. </view>
  60. <view class="list_li_b">
  61. <img src="@/images/Version3.3.3/icon_djcsys.png"/>
  62. <text v-if="item.checkStatus==1">待检查实验室:</text>
  63. <text v-if="item.checkStatus==1">{{item.subjectNum}}间</text>
  64. <text v-if="item.checkStatus==2">检查进度:</text>
  65. <text v-if="item.checkStatus==2">{{item.checkSchedule}}间</text>
  66. </view>
  67. </view>
  68. </view>
  69. <!--检查者------------- -->
  70. <view class="tabTitle_tow" v-if="pageType==2">
  71. <view class="tabTitle_tow_li" @tap="tabClickTow(index)" :key="index" v-for="(item,index) in tabTextTow">
  72. <view :class="{on:curTabTow==index}" class="tabTitle_tow_text">{{item.name}}<text>{{item.num}}</text></view>
  73. <view :class="{on:curTabTow==index}" class="tabTitle_tow_across"></view>
  74. </view>
  75. </view>
  76. <view class="list_tow" v-if="pageType==2">
  77. <view class="list_tow_li" v-for="(item,index) in dataList2" :key="index">
  78. <view class="list_tow_li_t">
  79. <view class="list_tow_li_t_l">
  80. <img v-if="item.checkRange==1" src="@/images/Version3.3.3/icon_xyxc_qx.png"/>
  81. <img v-if="item.checkRange==2" src="@/images/Version3.3.3/icon_xyxc_xy.png"/>
  82. <img v-if="item.checkRange==3" src="@/images/Version3.3.3/icon_xyxc_sys.png"/>
  83. <text></text>
  84. </view>
  85. <view class="list_tow_li_t_c" v-if="curTabTow==0 || curTabTow==1">{{item.subjectName}}-{{item.roomNumber}}</view>
  86. <view class="list_tow_li_t_c" v-if="curTabTow==2 && item.rectifyStatus==3">{{item.subRoom}}</view>
  87. <view class="list_tow_li_t_c2" v-if="(curTabTow==0 || curTabTow==1) && item.isOverdue==1">已逾期</view>
  88. <view class="list_tow_li_t_c2" v-if="curTabTow==2 && item.overdueStatus==3">已逾期</view>
  89. <view class="list_tow_li_t_r"></view>
  90. </view>
  91. <view class="list_tow_li_m">
  92. <view class="list_tow_li_m_t">{{item.title}}</view>
  93. <view class="list_tow_li_m_b">
  94. <text class="blue_color" v-if="item.manageStatus==0">待检查</text>
  95. <text class="red_color" v-if="item.manageStatus==1">检查中</text>
  96. <text class="green_color" v-if="item.manageStatus==2">已检查</text>
  97. <text class="orange_color" v-if="curTabTow==2 && item.rectifyStatus==3">待审核</text>
  98. <text>{{item.checkType==1?'校院巡查':'实验室自查'}}</text>
  99. <text>{{item.collegeName}}</text>
  100. </view>
  101. </view>
  102. <!-- 开始检查 -->
  103. <view v-if="curTabTow==2 && item.rectifyStatus==3" class="list_tow_li_b" @click="handleTowClick(item,'check')">复核</view>
  104. <view v-if="(curTabTow==0 || curTabTow==1) && item.manageStatus==0 && item.notStarted" class="list_tow_li_b" @click="handleTowClick(item,'add')">开始检查</view>
  105. <view v-if="(curTabTow==0 || curTabTow==1) &&item.manageStatus==1" class="list_tow_li_b" @click="handleTowClick(item,'edit')">编辑</view>
  106. <view v-if="(curTabTow==0 || curTabTow==1) &&!item.notStarted" class="list_tow_li_b_tow"><img src="@/images/Version3.3.3/icon_xyxcgl_jhwks.png"/>计划未开始</view>
  107. <view v-if="(curTabTow==0 || curTabTow==1) &&item.manageStatus==2" class="list_tow_li_b_three">
  108. <img src="@/images/Version3.3.3/icon_djcsys.png"/>
  109. <text>整改进度:</text>
  110. <text>{{item.rectifySchedule}}</text>
  111. <text class="report">整改报告</text>
  112. </view>
  113. </view>
  114. </view>
  115. <!-- 整改人----------- -->
  116. <view class="statistics_three" v-if="pageType==3">
  117. <view class="statistics_three_li" v-for="(item,index) in statisticsListThree" :key="index">
  118. <text>{{item.name}}</text>
  119. <text>{{item.value}}</text>
  120. </view>
  121. </view>
  122. <viwe class="inspect_btn_three" v-if="pageType==3">
  123. <view class="inspect_btn_three_li" @click="handleClick('','schoolDanger')">
  124. <img src="@/images/Version3.3.3/icon_xyxc_xyxc.png"/>
  125. <text>校院巡查隐患</text>
  126. </view>
  127. <text class="line"></text>
  128. <view class="inspect_btn_three_li" @click="handleClick('','labDanger')">
  129. <img src="@/images/Version3.3.3/icon_xyxc_syszc.png"/>
  130. <text>实验室自查隐患</text>
  131. </view>
  132. <text class="line"></text>
  133. <view class="inspect_btn_three_li" @click="handleClick('','snapshot')">
  134. <img src="@/images/Version3.3.3/icon_aqjc_ssp.png"/>
  135. <text>随手拍</text>
  136. </view>
  137. </viwe>
  138. <view class="tabTitle_three" v-if="pageType==3">
  139. <view class="tabTitle_three_li" @tap="tabClickThree(index)" :key="index" v-for="(item,index) in tabTextThree">
  140. <view :class="{on:curTabThree==index}" class="tabTitle_three_text">{{item.name}}<text>{{item.num}}</text></view>
  141. <view :class="{on:curTabThree==index}" class="tabTitle_three_across"></view>
  142. </view>
  143. </view>
  144. <view class="list_three" v-if="pageType==3">
  145. <view class="list_three_li" v-for="(item,index) in dataList3" :key="index" @click="handleThreeClick(item,'detail')">
  146. <view class="list_three_li_t">
  147. <view class="list_three_li_t_l">
  148. <img v-if="item.checkRange==1" src="@/images/Version3.3.3/icon_xyxc_qx.png"/>
  149. <img v-if="item.checkRange==2" src="@/images/Version3.3.3/icon_xyxc_xy.png"/>
  150. <img v-if="item.checkRange==3" src="@/images/Version3.3.3/icon_xyxc_sys.png"/>
  151. <text></text>
  152. </view>
  153. <!-- 隐患 -->
  154. <view class="list_three_li_t_c" v-if="curTabThree==0">{{item.subRoom}}</view>
  155. <!-- 随手拍 -->
  156. <view class="list_three_li_t_c" v-if="curTabThree==1">{{item.subName}}</view>
  157. <view class="list_three_li_t_c2" v-if="item.overdueStatus==1">已逾期</view>
  158. <view class="list_three_li_t_r"></view>
  159. </view>
  160. <view class="list_three_li_m">
  161. <!-- 隐患 -->
  162. <view class="list_three_li_m_t" v-if="curTabThree==0">{{item.hazardDescribe}}</view>
  163. <!-- 随手拍 -->
  164. <view class="list_three_li_m_t" v-if="curTabThree==1">{{item.hazardDescribe}}</view>
  165. <view class="list_three_li_m_b">
  166. <!-- 隐患 -->
  167. <text class="green_color" v-if="curTabThree==0 && item.rectifyStatus==1">已完成</text>
  168. <text class="blue_color" v-if="curTabThree==0 && item.rectifyStatus==2">待整改</text>
  169. <text class="orange_color" v-if="curTabThree==0 && curTabThree==0 && item.rectifyStatus==3">待复核</text>
  170. <text class="gray_color" v-if="curTabThree==0 && item.rectifyStatus==4">暂无法整改</text>
  171. <text class="type" v-if="curTabThree==0">{{item.hazardType==1?'校院巡查':'实验室自查'}}</text>
  172. <text class="college" v-if="curTabThree==0">{{item.collegeName}}</text>
  173. <!-- 随手拍 -->
  174. <text class="blue_color" v-if="curTabThree==1 && item.rectifyStatus==0">待整改</text>
  175. <text class="green_color" v-if="curTabThree==1 && item.rectifyStatus==1">已整改</text>
  176. <text class="orange_color" v-if="curTabThree==1 && item.rectifyStatus==2">暂无法整改</text>
  177. <text class="college" v-if="curTabThree==1">{{item.deptName}}</text>
  178. </view>
  179. </view>
  180. <!-- 隐患 -->
  181. <view class="list_three_li_b" v-if="curTabThree==0">
  182. <text >整改期限:{{item.rectifyDeadline}}</text>
  183. </view>
  184. <!-- 随手拍 -->
  185. <view class="list_three_li_b2" v-if="curTabThree==1">
  186. <view class="list_three_li_b_l">
  187. <img src="@/images/Version3.3.3/icon_ssp_ry.png"/>
  188. <text>上报人:{{item.createName}}</text>
  189. </view>
  190. <view class="list_three_li_b_r">{{item.timeFlag}}</view>
  191. </view>
  192. </view>
  193. </view>
  194. </view>
  195. </scroll-view>
  196. <!-- <view class="bottom_btn" v-if="pageType==1" @click="handleClick('','start')">开展检查</view> -->
  197. <img class="scan_btn" @click.stop="saoCode" src="@/images/Version3.3.3/icon_xyxc_sm.png"/>
  198. <!-- 选择学院-->
  199. <view class="shade" v-if="dialogVisible">
  200. <view class="null-box" @click="dialogClose()"></view>
  201. <view class="shade_n">
  202. <view class="shade_n_title"><text>选择该实验室隐患项</text><text @click="hiddenConfirm">确定</text></view>
  203. <view class="shade_n_b">
  204. <view class="shade_n_b_li" v-for="(item,index) in hiddenList" :key="index" @click="hiddenSelete(index)">
  205. <text :class="item.type?'color_B':'color_A'">{{item.hazardDescribe}}</text>
  206. <img v-if="item.type" src="@/images/Version3.3.3/icon_xzwt_xz.png">
  207. </view>
  208. </view>
  209. </view>
  210. </view>
  211. <tab-bar></tab-bar>
  212. </view>
  213. </template>
  214. <script>
  215. import { config } from '@/api/request/config.js'
  216. import { tabBar } from '@/component/tabBar.vue'
  217. import {checkPlanList,getCheckStatusCount,getManageStatusCount,dataStatistics,checkManageList,checkHazardAppList,checkClapList,getCheckPlanBySubId} from '@/api/index.js'
  218. export default {
  219. name: "rectifyList",
  220. components: {
  221. tabBar
  222. },
  223. data() {
  224. return {
  225. pageType:uni.getStorageSync('gentleIdentifier'),//人员类型 3整改人 2检查人 1管理员
  226. //列表请求参数
  227. getData:{
  228. pageNum:1,
  229. pageSize:20,
  230. checkStatus:1,
  231. },
  232. getData2:{
  233. pageNum:1,
  234. pageSize:20,
  235. checkType:'',
  236. manageStatus:0,//管理状态(-1全部 0待检查,1检查中,2已检查)
  237. rectifyStatus:'',
  238. },
  239. getData3:{
  240. pageNum:1,
  241. pageSize:20,
  242. hazardType:'',//1是院校巡查,2是实验室自查
  243. rectifyStatus:'',//1已完成 2待整改 3待复核 4 暂无法整改
  244. },
  245. userType:1,//人员类型 3整改人 2检查人 1管理员
  246. statisticsList:[
  247. {name:'本月已检查',value:'0'},
  248. {name:'本月检查隐患',value:'0'},
  249. {name:'本月已整改',value:'0'},
  250. {name:'本月检查合格率',value:'0%'},
  251. {name:'本月已检查',value:'0'},
  252. {name:'本月复核通过率',value:'0%'},
  253. ],
  254. statisticsListThree:[
  255. {name:'本月已检查',value:'0'},
  256. {name:'本月已整改',value:'0%'},
  257. {name:'本月复核通过率',value:'0%'},
  258. ],
  259. tabText:[{name:'未开始',num:0,},{name:'进行中',num:0}],
  260. curTab:0,
  261. tabTextTow:[{name:'待检查',num:0,},{name:'检查中',num:0,},{name:'待复核',num:0,}],
  262. curTabTow:0,
  263. tabTextThree:[{name:'隐患待整改',num:0,},{name:'随手拍整改',num:0,}],
  264. curTabThree:0,
  265. total:0,
  266. dataList:[],//管理员
  267. total2:0,
  268. dataList2:[],//检查者
  269. total3:0,
  270. dataList3:[],//整改者
  271. currentDate:'',
  272. dangerAllNum:0,
  273. snapshotAllNum:0,
  274. isSubPlan:false,//判断管理员和检查者扫码的实验室是否有检查计划
  275. dialogVisible:false,
  276. hiddenList:[],
  277. }
  278. },
  279. onLoad() {
  280. },
  281. onShow() {
  282. },
  283. beforeCreate() {
  284. },
  285. mounted(){
  286. //获取当前日期
  287. this.currentDate=this.getNowFormatDate()
  288. this.getCheckStatusCount();
  289. this.getManageStatusCount();
  290. this.dataStatistics();
  291. this.checkClapListAllNum();//随手拍待整改总数
  292. if(this.pageType==1){//管理员
  293. this.getList();
  294. }else if(this.pageType==2){//检查者
  295. this.getList2();
  296. }else if(this.pageType==3){//整改者
  297. this.checkHazardAppList();
  298. }
  299. },
  300. methods: {
  301. //滚动事件
  302. scrollGet(){
  303. let self=this;
  304. if(this.pageType==1){//管理员
  305. if(self.total/self.getData.pageSize<=self.getData.pageNum){
  306. console.log('没有更多数据!')
  307. }else{
  308. setTimeout(function(){
  309. self.getData.pageNum += 1;
  310. self.getList();
  311. },1000)
  312. }
  313. }else if(this.pageType==2){//检查者
  314. if(self.total2/self.getData2.pageSize<=self.getData2.pageNum){
  315. console.log('没有更多数据!')
  316. }else{
  317. setTimeout(function(){
  318. self.getData2.pageNum += 1;
  319. if(self.curTabTow==2){//待复核
  320. self.checkHazardAppList()
  321. }else {
  322. self.getList2();
  323. }
  324. },1000)
  325. }
  326. }else if(this.pageType==3){//整改者
  327. if(self.total3/self.getData3.pageSize<=self.getData3.pageNum){
  328. console.log('没有更多数据!')
  329. }else{
  330. setTimeout(function(){
  331. self.getData3.pageNum += 1;
  332. if(self.curTabThree==0){//隐患
  333. self.checkHazardAppList()
  334. }else {//随手拍
  335. self.checkClapList()
  336. }
  337. },1000)
  338. }
  339. }
  340. },
  341. //管理员
  342. tabClick(index) {
  343. this.curTab = index;
  344. this.getData.pageNum=1;
  345. this.dataList=[];
  346. if(index==0){//未开始
  347. this.getData.checkStatus=1
  348. this.getList()
  349. }else if(index==1){//进行中
  350. this.getData.checkStatus=2
  351. this.getList()
  352. }
  353. },
  354. tabClickTow(index) {
  355. this.curTabTow = index;
  356. this.getData2.pageNum=1;
  357. this.dataList2=[];
  358. if(index==0){//未开始
  359. this.getData2.manageStatus=0
  360. this.getList2()
  361. }else if(index==1){//进行中
  362. this.getData2.manageStatus=1
  363. this.getList2()
  364. }else if(index==2){//待复核
  365. this.getData2.rectifyStatus=3
  366. this.checkHazardAppList()
  367. }
  368. },
  369. tabClickThree(index) {//整改者
  370. this.curTabThree = index;
  371. this.getData3.pageNum=1;
  372. this.dataList3=[];
  373. if(index==0){//隐患待整改
  374. this.getData3.rectifyStatus=2
  375. this.checkHazardAppList()
  376. }else if(index==1){//随手拍待整改
  377. this.checkClapList();
  378. }
  379. },
  380. handleClick(row,doType){
  381. let self=this;
  382. if(self.pageType==1 && doType=='patrolPlan'){//校院巡查-计划
  383. uni.navigateTo({
  384. url: '/pages_safetyExamine/patrolPlan/patrolPlanList?pageType=1'
  385. });
  386. }else if(self.pageType==1 && doType=='selfPlan'){//实验室自查-计划
  387. uni.navigateTo({
  388. url: '/pages_safetyExamine/patrolPlan/patrolPlanList?pageType=2'
  389. });
  390. }else if(self.pageType==1 && doType=='dangerPlan'){//安全隐患-计划
  391. uni.navigateTo({
  392. url: '/pages_safetyExamine/dangerManage/dangerManage?pageType=1'
  393. });
  394. }else if(self.pageType==2 && doType=='patrolPlan'){//校院巡查-检查
  395. uni.navigateTo({
  396. url: '/pages_safetyExamine/examineManage/examineList?pageType=1'
  397. });
  398. }else if(self.pageType==2 && doType=='selfPlan'){//实验室自查-检查
  399. uni.navigateTo({
  400. url: '/pages_safetyExamine/examineManage/examineList?pageType=2'
  401. });
  402. }else if(self.pageType==2 && doType=='dangerPlan'){//安全隐患-检查
  403. uni.navigateTo({
  404. url: '/pages_safetyExamine/dangerManage/dangerManage?pageType=2'
  405. });
  406. }else if(self.pageType==3 && doType=='schoolDanger'){//校院巡查隐患
  407. uni.navigateTo({
  408. url: '/pages_safetyExamine/dangerManage/dangerList?pageType=1'
  409. });
  410. }else if(self.pageType==3 && doType=='labDanger'){//实验室自查隐患
  411. uni.navigateTo({
  412. url: '/pages_safetyExamine/dangerManage/dangerList?pageType=2'
  413. });
  414. }else if(doType=='edit'){//编辑
  415. uni.navigateTo({
  416. url: '/pages_safetyExamine/patrolPlan/patrolPlanEdit?pageType='+row.checkType+'&id='+row.id
  417. });
  418. }else if(doType=='snapshot'){//随手拍
  419. uni.navigateTo({
  420. url: '/pages_safetyExamine/snapshotManage/snapshotAdd'
  421. });
  422. }else if(doType=='start'){//开展检查
  423. uni.navigateTo({
  424. url: '/pages_safetyExamine/examineManage/examineAdd'
  425. });
  426. }
  427. },
  428. //检查者
  429. handleTowClick(row,doType){
  430. if(doType=='add'){//开始检查
  431. uni.navigateTo({
  432. url: '/pages_safetyExamine/examineManage/examineAdd?id='+row.id
  433. });
  434. }else if(doType=='edit'){//编辑
  435. uni.navigateTo({
  436. url: '/pages_safetyExamine/examineManage/examineAdd?id='+row.id
  437. });
  438. }else if(doType=='check'){//复核
  439. uni.navigateTo({
  440. url: '/pages_safetyExamine/dangerManage/dangerDetail?item='+encodeURIComponent(JSON.stringify(row))
  441. })
  442. }
  443. },
  444. //整改者
  445. handleThreeClick(row,doType){
  446. if(doType=='detail'){
  447. if(this.curTabThree==0){//隐患待整改详情
  448. uni.navigateTo({
  449. url: '/pages_safetyExamine/dangerManage/dangerDetail?item='+encodeURIComponent(JSON.stringify(row))
  450. })
  451. }else if(this.curTabThree==1){
  452. uni.navigateTo({
  453. url: '/pages_safetyExamine/snapshotManage/snapshotDetail?id='+row.id+'&rectifyStatus='+this.getData3.rectifyStatus
  454. })
  455. }
  456. }
  457. },
  458. /* 扫一扫*/
  459. saoCode(){
  460. let self = this;
  461. uni.scanCode({
  462. onlyFromCamera: true,
  463. success: function (res) {
  464. console.log(res)
  465. if(res.result.indexOf("code") != -1 && res.result.indexOf("-") != -1 && res.result.indexOf("&") != -1){
  466. let subId = "";
  467. let newList = res.result.split("?")[1].split("&")
  468. let list = newList[0].split("=")[1].split("-")
  469. subId = list[0];
  470. if(subId){
  471. if(self.pageType==1 || self.pageType==2){//管理员和检查者
  472. self.getCheckPlanBySubId(subId)
  473. }else if(self.pageType==3){//整改者
  474. let obj={
  475. pageNum:1,
  476. pageSize:100,
  477. subId:subId,
  478. }
  479. self.checkHazardAppList2(obj);
  480. }
  481. }else{
  482. uni.showToast({
  483. title: '请扫描正确的二维码',
  484. icon:"none",
  485. mask:true,
  486. duration: 2000
  487. });
  488. }
  489. }else{
  490. uni.showToast({
  491. title: '请扫描正确的二维码',
  492. icon:"none",
  493. mask:true,
  494. duration: 2000
  495. });
  496. }
  497. }
  498. });
  499. },
  500. //根据实验室id查询该实验室有关计划
  501. async getCheckPlanBySubId(subId){
  502. let _this = this;
  503. let id=subId;
  504. const {data} = await getCheckPlanBySubId({'subId':id});
  505. if(data.code == 200){
  506. if(data.data){
  507. uni.navigateTo({
  508. url: '/pages_safetyExamine/examineManage/examineAdd?subId='+id
  509. });
  510. }else{
  511. let id = uni.setStorageSync('saoCodeId',id);
  512. uni.redirectTo({
  513. url: '/pages_safetyExamine/inforSign'
  514. })
  515. }
  516. }
  517. },
  518. //根据实验室id查询隐患
  519. async checkHazardAppList2(obj){
  520. let self = this;
  521. const {data} = await checkHazardAppList(obj);
  522. if(data.code==200){
  523. if(data.data.records){
  524. data.data.records.forEach(function(item){
  525. item.type=false;
  526. })
  527. this.hiddenList=data.data.records
  528. this.dialogVisible=true;
  529. }else{
  530. let id = uni.setStorageSync('saoCodeId',id);
  531. uni.redirectTo({
  532. url: '/pages_safetyExamine/inforSign'
  533. })
  534. }
  535. }
  536. },
  537. //选择学院弹窗关闭
  538. dialogClose(){
  539. this.dialogVisible=false;
  540. },
  541. //学院选择
  542. hiddenSelete(index){
  543. let _this=this;
  544. this.hiddenList[index].type = !this.hiddenList[index].type
  545. if (_this.hiddenList[index].type == true) {
  546. _this.hiddenList.forEach(function(item2) {
  547. if (item2.id == _this.hiddenList[index].id) {
  548. item2.type = true
  549. } else {
  550. item2.type = false
  551. }
  552. })
  553. }
  554. },
  555. hiddenConfirm(){
  556. let _this=this;
  557. _this.hiddenList.forEach(function(item){
  558. if(item.type==true){
  559. uni.redirectTo({
  560. url: '/pages_safetyExamine/dangerManage/dangerDetail?item='+encodeURIComponent(JSON.stringify(item))
  561. })
  562. }
  563. })
  564. },
  565. //数据统计
  566. async dataStatistics(){
  567. let self = this;
  568. const {data} = await dataStatistics();
  569. if(data.code==200){
  570. if(data.data.userType==1 || data.data.userType==2){//管理员和检查者
  571. this.statisticsList=[
  572. {name:'本月已检查',value:data.data.checkTotal},
  573. {name:'本月检查隐患',value:data.data.hazardTotal},
  574. {name:'本月已整改',value:data.data.rectifyTotal},
  575. {name:'本月检查合格率',value:data.data.qualifyRate},
  576. {name:'本月整改率',value:data.data. rectificationRate},
  577. {name:'本月复核通过率',value:data.data.passRate},
  578. ]
  579. }else if(data.data.userType==3){//整改者
  580. this.statisticsListThree=[
  581. {name:'本月已检查',value:data.data.checkTotal},
  582. {name:'本月已整改',value:data.data.rectifyTotal},
  583. {name:'本月复核通过率',value:data.data.passRate},
  584. ]
  585. }
  586. }
  587. },
  588. //获取当前日期函数
  589. getNowFormatDate() {
  590. let date = new Date(),
  591. year = date.getFullYear(), //获取完整的年份(4位)
  592. month = date.getMonth() + 1, //获取当前月份(0-11,0代表1月)
  593. strDate = date.getDate() // 获取当前日(1-31)
  594. if (month < 10) month = `0${month}` // 如果月份是个位数,在前面补0
  595. if (strDate < 10) strDate = `0${strDate}` // 如果日是个位数,在前面补0
  596. return `${year}-${month}-${strDate}`
  597. },
  598. //是否可以开始检查
  599. compareTime(date1){
  600. if(!date1){
  601. return false
  602. } else {
  603. const oDate1 = new Date(date1);
  604. const oDate2 = new Date(this.currentDate)
  605. if(oDate1.getTime() <= oDate2.getTime()){
  606. return true; //可以开始
  607. } else {
  608. return false; //不能开始
  609. }
  610. }
  611. },
  612. //检查计划各检查状态数据数量
  613. async getCheckStatusCount(){
  614. let self = this;
  615. const {data} = await getCheckStatusCount();
  616. if(data.code==200){
  617. this.tabText[0].num=data.data.noStart;
  618. this.tabText[1].num=data.data.start;
  619. }
  620. },
  621. //检查各检查状态数据数量
  622. async getManageStatusCount(){
  623. let self = this;
  624. const {data} = await getManageStatusCount();
  625. if(data.code==200){
  626. this.tabTextTow[0].num=data.data.noCheck;
  627. this.tabTextTow[1].num=data.data.checking;
  628. this.tabTextTow[2].num=data.data.applyNum;
  629. }
  630. },
  631. //管理员
  632. async getList(){
  633. let self = this;
  634. const {data} = await checkPlanList(this.getData);
  635. if(data.code==200){
  636. this.dataList=[...this.dataList,...data.data.records]
  637. this.total=data.data.total;
  638. }
  639. },
  640. //检查者
  641. async getList2(){
  642. let self = this;
  643. const {data} = await checkManageList(this.getData2);
  644. if(data.code==200){
  645. //判断计划是否开始
  646. data.data.records.forEach(function(item){
  647. item.notStarted=self.compareTime(item.cycleStartTime)
  648. })
  649. this.dataList2=[...this.dataList2,...data.data.records]
  650. this.total2=data.data.total;
  651. }
  652. },
  653. //待复核列表
  654. async checkHazardAppList(){
  655. let self = this;
  656. let obj={};
  657. if(this.pageType==2){//检查者
  658. obj={
  659. pageNum:this.getData2.pageNum,
  660. pageSize:this.getData2.pageSize,
  661. hazardType:'',
  662. rectifyStatus:'3',
  663. };
  664. }else if(this.pageType==3){//整改者
  665. obj={
  666. pageNum:this.getData3.pageNum,
  667. pageSize:this.getData3.pageSize,
  668. hazardType:'',
  669. rectifyStatus:'2',
  670. };
  671. }
  672. const {data} = await checkHazardAppList(obj);
  673. if(data.code==200){
  674. if(self.pageType==2){//检查者
  675. this.dataList2=[...this.dataList2,...data.data.records]
  676. this.total2=data.data.total;
  677. }else if(self.pageType==3){
  678. this.dataList3=[...this.dataList3,...data.data.records]
  679. this.total3=data.data.total;
  680. this.tabTextThree[0].num=data.data.total;
  681. }
  682. }
  683. },
  684. //随手拍待整改
  685. async checkClapList(){
  686. let self = this;
  687. let obj={
  688. pageNum:this.getData3.pageNum,
  689. pageSize:this.getData3.pageSize,
  690. rectifyStatus:0,
  691. };
  692. const {data} = await checkClapList(obj);
  693. if(data.code==200){
  694. this.dataList3=[...this.dataList3,...data.data.records]
  695. this.total3=data.data.total;
  696. }
  697. },
  698. //随手拍待整改总数
  699. async checkClapListAllNum(){
  700. let self = this;
  701. let obj={
  702. pageNum:this.getData3.pageNum,
  703. pageSize:this.getData3.pageSize,
  704. rectifyStatus:0,
  705. };
  706. const {data} = await checkClapList(obj);
  707. if(data.code==200){
  708. this.tabTextThree[1].num=data.data.total;
  709. }
  710. },
  711. }
  712. }
  713. </script>
  714. <style lang="stylus" scoped>
  715. .examine{
  716. height:100%;
  717. display flex;
  718. .info-max-box{
  719. flex: 1;
  720. overflow: scroll;
  721. padding-bottom: 128rpx;
  722. }
  723. .blue_color{
  724. color: #0183FA;
  725. border: 1rpx solid #0183FA;
  726. }
  727. .red_color{
  728. color: #FF4545;
  729. border: 1rpx solid #FF4545;
  730. }
  731. .green_color{
  732. color: #1FA50D;
  733. border: 1rpx solid #1FA50D;
  734. }
  735. .orange_color{
  736. color: #FA8E1B;
  737. border: 1rpx solid #FA8E1B;
  738. }
  739. .gray_color{
  740. color: #A2A2A2;
  741. border: 1rpx solid #A2A2A2;
  742. }
  743. .statistics{
  744. background: #fff;
  745. display: flex;
  746. justify-content: flex-start;
  747. flex-wrap: wrap;
  748. padding: 38rpx 26rpx;
  749. box-sizing: border-box;
  750. .statistics_li{
  751. width: 230rpx;
  752. border-right: 1rpx solid #D8D8D8;
  753. border-bottom: 1rpx solid #D8D8D8;
  754. >text{
  755. display: block;
  756. text-align: center;
  757. }
  758. >text:nth-of-type(1){
  759. font-size: 26rpx;
  760. font-family: PingFang SC-Medium, PingFang SC;
  761. font-weight: 400;
  762. color: #666666;
  763. line-height: 26rpx;
  764. margin-top: 24rpx;
  765. }
  766. >text:nth-of-type(2){
  767. font-size: 34rpx;
  768. font-family: PingFang SC-Heavy, PingFang SC;
  769. font-weight: 400;
  770. color: #1FA50D;
  771. line-height: 34rpx;
  772. margin-top: 28rpx;
  773. }
  774. }
  775. >view:nth-of-type(1){
  776. >text:nth-of-type(1){
  777. margin-top: 4rpx;
  778. }
  779. >text:nth-of-type(2){
  780. margin-bottom: 18rpx;
  781. color: #1FA50D;
  782. }
  783. }
  784. >view:nth-of-type(2){
  785. >text:nth-of-type(1){
  786. margin-top: 4rpx;
  787. }
  788. >text:nth-of-type(2){
  789. margin-bottom: 18rpx;
  790. color: #FA8201;
  791. }
  792. }
  793. >view:nth-of-type(3){
  794. border-right:none;
  795. >text:nth-of-type(1){
  796. margin-top: 4rpx;
  797. }
  798. >text:nth-of-type(2){
  799. margin-bottom: 18rpx;
  800. color: #0183FA;
  801. }
  802. }
  803. >view:nth-of-type(4){
  804. border-bottom:none;
  805. >text:nth-of-type(2){
  806. color: #1FA50D;
  807. }
  808. }
  809. >view:nth-of-type(5){
  810. border-bottom:none;
  811. >text:nth-of-type(2){
  812. color: #FA8201;
  813. }
  814. }
  815. >view:nth-of-type(6){
  816. border-right:none;border-bottom:none;
  817. >text:nth-of-type(2){
  818. color: #0183FA;
  819. }
  820. }
  821. }
  822. .inspect_btn{
  823. height: 150rpx;
  824. background: #fff;
  825. display: flex;
  826. justify-content: space-between;
  827. align-items: center;
  828. margin-top: 20rpx;
  829. padding: 0 30rpx;
  830. box-sizing: border-box;
  831. .inspect_btn_li{
  832. >img{
  833. width: 60rpx;
  834. height: 60rpx;
  835. margin:0 auto;
  836. }
  837. >text{
  838. font-size: 28rpx;
  839. font-family: PingFang SC-Medium, PingFang SC;
  840. font-weight: 400;
  841. color: #333333;
  842. line-height: 28rpx;
  843. margin-top: 14rpx;
  844. }
  845. }
  846. .line{
  847. display: inline-block;
  848. height: 60rpx;
  849. width: 1rpx;
  850. background: #E0E0E0;
  851. }
  852. }
  853. /* 切换按钮 */
  854. .tabTitle{
  855. width:100%;
  856. height: 100rpx;
  857. background: #fff;
  858. display flex;
  859. justify-content: center;
  860. align-items: center;
  861. margin-top: 20rpx;
  862. position: sticky;
  863. top: 0;
  864. z-index: 100;
  865. box-shadow: 0rpx 3rpx 8rpx 0rpx rgba(0,0,0,0.16);
  866. .tabTitle_li{
  867. position: relative;
  868. width:372rpx;
  869. text-align center;
  870. .tabTitle_text{
  871. display: inline-block;
  872. font-size: 30rpx;
  873. font-family: PingFang SC;
  874. font-weight: 500;
  875. color: #333333;
  876. line-height: 46rpx;
  877. position: relative;
  878. >text{
  879. position:absolute;
  880. min-width: 30rpx;
  881. min-height: 30rpx;
  882. border-radius:54%;
  883. background: #E80000;
  884. font-size: 18rpx;
  885. font-family: PingFang SC-Medium, PingFang SC;
  886. font-weight: 400;
  887. color: #FFFFFF;
  888. text-align: center;
  889. line-height: 30rpx;
  890. margin-left: 6rpx;
  891. padding:2rpx;
  892. box-sizing: border-box;
  893. }
  894. &.on{
  895. color:#0183FA;
  896. }
  897. }
  898. .tabTitle_across{
  899. width: 50rpx;
  900. height: 4rpx;
  901. background: #0183FA;
  902. border-radius: 2rpx;
  903. margin-left 162rpx;
  904. display none;
  905. &.on{
  906. display block;
  907. }
  908. }
  909. }
  910. .tabTitle_li:nth-of-type(1)::after{
  911. content: '';
  912. position: absolute;
  913. top: 0rpx;
  914. right: 0rpx;
  915. width: 1rpx;
  916. height: 50rpx;
  917. background: #E0E0E0;
  918. }
  919. }
  920. .list{
  921. padding: 0 30rpx;
  922. box-sizing: border-box;
  923. margin-top: 20rpx;
  924. .list_li{
  925. position: relative;
  926. width: 690rpx;
  927. height: 360rpx;
  928. background: #fff;
  929. border-radius: 10rpx;
  930. overflow: hidden;
  931. margin-bottom: 20rpx;
  932. .list_li_t{
  933. width: 100%;
  934. position: absolute;
  935. left: 0;
  936. top: 0;
  937. .list_li_t_l{
  938. >img{
  939. width: 70rpx;
  940. height: 70rpx;
  941. }
  942. >text{
  943. position: absolute;
  944. left: -15rpx;
  945. top: 76rpx;
  946. display: inline-block;
  947. width: 30rpx;
  948. height: 30rpx;
  949. background: #F5F5F5;
  950. border-radius: 15rpx;
  951. }
  952. }
  953. .list_li_t_c{
  954. width: 630rpx;
  955. height: 110rpx;
  956. position: absolute;
  957. left: 30rpx;
  958. top: 0;
  959. font-size: 30rpx;
  960. font-family: PingFang SC-Medium, PingFang SC;
  961. font-weight: 400;
  962. color: #333333;
  963. line-height: 110rpx;
  964. border-bottom: 1rpx dashed #D8D8D8;
  965. overflow: hidden;
  966. text-overflow:ellipsis;
  967. white-space: nowrap;
  968. }
  969. .list_li_t_r{
  970. position: absolute;
  971. right:-15rpx;
  972. top: 76rpx;
  973. width: 30rpx;
  974. height: 30rpx;
  975. background:#F5F5F5;
  976. border-radius: 15rpx;
  977. }
  978. }
  979. .list_li_m{
  980. position: absolute;
  981. top: 110rpx;
  982. left: 0;
  983. width: 690rpx;
  984. height: 168rpx;
  985. border-bottom: 1rpx solid #E0E0E0;
  986. padding-left: 30rpx;
  987. box-sizing: border-box;
  988. .list_li_m_t{
  989. font-size: 28rpx;
  990. font-family: PingFang SC-Medium, PingFang SC;
  991. font-weight: 400;
  992. color: #666666;
  993. line-height: 40rpx;
  994. margin-top:22rpx;
  995. }
  996. .list_li_m_b{
  997. margin-top:26rpx;
  998. >text:nth-of-type(1){
  999. font-size: 26rpx;
  1000. font-family: PingFang SC-Medium, PingFang SC;
  1001. font-weight: 400;
  1002. line-height: 40rpx;
  1003. border-radius: 6rpx;
  1004. padding: 0 20rpx;
  1005. margin-right: 14rpx;
  1006. }
  1007. >text:nth-of-type(2){
  1008. font-size: 26rpx;
  1009. font-family: PingFang SC-Medium, PingFang SC;
  1010. font-weight: 400;
  1011. color: #0183FA;
  1012. line-height: 40rpx;
  1013. padding: 0 8rpx;
  1014. border-radius: 6rpx;
  1015. background: rgba(1,131,250,0.1);
  1016. }
  1017. }
  1018. }
  1019. .list_li_b{
  1020. height: 80rpx;
  1021. position: absolute;
  1022. top: 278rpx;
  1023. left: 0;
  1024. display: flex;
  1025. justify-content: flex-start;
  1026. align-items: center;
  1027. >img{
  1028. width: 24rpx;
  1029. height: 30rpx;
  1030. margin-right: 26rpx;
  1031. margin-left: 30rpx;
  1032. }
  1033. >text:nth-of-type(1){
  1034. font-size: 28rpx;
  1035. font-family: PingFang SC-Medium, PingFang SC;
  1036. font-weight: 400;
  1037. color: #333333;
  1038. line-height: 28rpx;
  1039. }
  1040. >text:nth-of-type(2){
  1041. font-size: 28rpx;
  1042. font-family: PingFang SC-Medium, PingFang SC;
  1043. font-weight: 400;
  1044. color: #0183FA;
  1045. line-height: 28rpx;
  1046. }
  1047. }
  1048. }
  1049. }
  1050. /* 检查者 */
  1051. .tabTitle_tow{
  1052. width:100%;
  1053. height: 100rpx;
  1054. background: #fff;
  1055. display flex;
  1056. justify-content: flex-start;
  1057. align-items: center;
  1058. margin-top: 20rpx;
  1059. position: sticky;
  1060. top: 0;
  1061. z-index: 100;
  1062. box-shadow: 0rpx 3rpx 8rpx 0rpx rgba(0,0,0,0.16);
  1063. .tabTitle_tow_li{
  1064. position: relative;
  1065. width:162rpx;
  1066. text-align center;
  1067. .tabTitle_tow_text{
  1068. display: inline-block;
  1069. font-size: 30rpx;
  1070. font-family: PingFang SC;
  1071. font-weight: 500;
  1072. color: #333333;
  1073. line-height: 46rpx;
  1074. position: relative;
  1075. >text{
  1076. position:absolute;
  1077. min-width: 30rpx;
  1078. min-height: 30rpx;
  1079. border-radius:54%;
  1080. background: #E80000;
  1081. font-size: 18rpx;
  1082. font-family: PingFang SC-Medium, PingFang SC;
  1083. font-weight: 400;
  1084. color: #FFFFFF;
  1085. text-align: center;
  1086. line-height: 30rpx;
  1087. margin-left: 6rpx;
  1088. padding:2rpx;
  1089. box-sizing: border-box;
  1090. }
  1091. &.on{
  1092. color:#0183FA;
  1093. }
  1094. }
  1095. .tabTitle_tow_across{
  1096. width: 50rpx;
  1097. height: 4rpx;
  1098. background: #0183FA;
  1099. border-radius: 2rpx;
  1100. margin-left 56rpx;
  1101. display none;
  1102. &.on{
  1103. display block;
  1104. }
  1105. }
  1106. }
  1107. }
  1108. .list_tow{
  1109. padding: 0 30rpx;
  1110. box-sizing: border-box;
  1111. margin-top: 20rpx;
  1112. .list_tow_li{
  1113. position: relative;
  1114. width: 690rpx;
  1115. height: 360rpx;
  1116. background: #fff;
  1117. border-radius: 10rpx;
  1118. overflow: hidden;
  1119. margin-bottom: 20rpx;
  1120. .list_tow_li_t{
  1121. width: 100%;
  1122. position: absolute;
  1123. left: 0;
  1124. top: 0;
  1125. .list_tow_li_t_l{
  1126. >img{
  1127. width: 70rpx;
  1128. height: 70rpx;
  1129. }
  1130. >text{
  1131. position: absolute;
  1132. left: -15rpx;
  1133. top: 76rpx;
  1134. display: inline-block;
  1135. width: 30rpx;
  1136. height: 30rpx;
  1137. background: #F5F5F5;
  1138. border-radius: 15rpx;
  1139. }
  1140. }
  1141. .list_tow_li_t_c{
  1142. width: 630rpx;
  1143. height: 110rpx;
  1144. position: absolute;
  1145. left: 30rpx;
  1146. top: 0;
  1147. font-size: 30rpx;
  1148. font-family: PingFang SC-Medium, PingFang SC;
  1149. font-weight: 400;
  1150. color: #333333;
  1151. line-height: 110rpx;
  1152. border-bottom: 1rpx dashed #D8D8D8;
  1153. overflow: hidden;
  1154. text-overflow:ellipsis;
  1155. white-space: nowrap;
  1156. padding-right: 120rpx;
  1157. box-sizing: border-box;
  1158. }
  1159. .list_tow_li_t_c2{
  1160. position: absolute;
  1161. right: 20rpx;
  1162. top: 38rpx;
  1163. width: 120rpx;
  1164. height: 40rpx;
  1165. font-size: 28rpx;
  1166. font-family: PingFang SC-Medium, PingFang SC;
  1167. font-weight: 400;
  1168. color: #FF5757;
  1169. line-height: 40rpx;
  1170. border: 1rpx solid #FF5757;
  1171. border-radius: 6rpx;
  1172. text-align: center;
  1173. }
  1174. .list_tow_li_t_r{
  1175. position: absolute;
  1176. right:-15rpx;
  1177. top: 76rpx;
  1178. width: 30rpx;
  1179. height: 30rpx;
  1180. background:#F5F5F5;
  1181. border-radius: 15rpx;
  1182. }
  1183. }
  1184. .list_tow_li_m{
  1185. position: absolute;
  1186. top: 110rpx;
  1187. left: 0;
  1188. width: 690rpx;
  1189. height: 168rpx;
  1190. padding-left: 30rpx;
  1191. box-sizing: border-box;
  1192. .list_tow_li_m_t{
  1193. font-size: 28rpx;
  1194. font-family: PingFang SC-Medium, PingFang SC;
  1195. font-weight: 400;
  1196. color: #666666;
  1197. line-height: 40rpx;
  1198. margin-top:22rpx;
  1199. overflow: hidden;
  1200. text-overflow:ellipsis;
  1201. white-space: nowrap;
  1202. }
  1203. .list_tow_li_m_b{
  1204. margin-top:26rpx;
  1205. >text:nth-of-type(1){
  1206. font-size: 26rpx;
  1207. font-family: PingFang SC-Medium, PingFang SC;
  1208. font-weight: 400;
  1209. line-height: 40rpx;
  1210. border-radius: 6rpx;
  1211. padding: 0 20rpx;
  1212. margin-right: 14rpx;
  1213. }
  1214. >text:nth-of-type(2){
  1215. font-size: 26rpx;
  1216. font-family: PingFang SC-Medium, PingFang SC;
  1217. font-weight: 400;
  1218. color: #0183FA;
  1219. line-height: 40rpx;
  1220. padding: 0 8rpx;
  1221. border-radius: 6rpx;
  1222. background: rgba(1,131,250,0.1);
  1223. margin-right: 24rpx;
  1224. }
  1225. >text:nth-of-type(3){
  1226. display: inline-block;
  1227. width: 350rpx;
  1228. font-size: 26rpx;
  1229. font-family: PingFang SC-Medium, PingFang SC;
  1230. font-weight: 400;
  1231. color: #333333;
  1232. line-height: 26rpx;
  1233. overflow: hidden;
  1234. text-overflow:ellipsis;
  1235. white-space: nowrap;
  1236. }
  1237. }
  1238. }
  1239. .list_tow_li_b{
  1240. height: 80rpx;
  1241. width: 100%;
  1242. position: absolute;
  1243. top: 278rpx;
  1244. left: 0;
  1245. border-top: 1rpx solid #E0E0E0;
  1246. font-size: 28rpx;
  1247. font-family: PingFang SC-Medium, PingFang SC;
  1248. font-weight: 400;
  1249. color: #0183FA;
  1250. line-height: 80rpx;
  1251. text-align: center;
  1252. }
  1253. .list_tow_li_b_tow{
  1254. height: 80rpx;
  1255. width: 100%;
  1256. position: absolute;
  1257. top: 278rpx;
  1258. left: 0;
  1259. border-top: 1rpx solid #E0E0E0;
  1260. font-size: 28rpx;
  1261. font-family: PingFang SC-Medium, PingFang SC;
  1262. font-weight: 400;
  1263. color: #0183FA;
  1264. line-height: 80rpx;
  1265. display: flex;
  1266. justify-content: center;
  1267. align-items: center;
  1268. >img{
  1269. width: 28rpx;
  1270. height: 30rpx;
  1271. margin-right: 12rpx;
  1272. }
  1273. }
  1274. .list_tow_li_b_three{
  1275. height: 80rpx;
  1276. position: absolute;
  1277. top: 278rpx;
  1278. left: 0;
  1279. display: flex;
  1280. justify-content: flex-start;
  1281. align-items: center;
  1282. width: 100%;
  1283. border-top: 1rpx solid #E0E0E0;
  1284. >img{
  1285. width: 24rpx;
  1286. height: 30rpx;
  1287. margin-right: 26rpx;
  1288. margin-left: 30rpx;
  1289. }
  1290. >text:nth-of-type(1){
  1291. font-size: 28rpx;
  1292. font-family: PingFang SC-Medium, PingFang SC;
  1293. font-weight: 400;
  1294. color: #333333;
  1295. line-height: 28rpx;
  1296. }
  1297. >text:nth-of-type(2){
  1298. flex:1;
  1299. font-size: 28rpx;
  1300. font-family: PingFang SC-Medium, PingFang SC;
  1301. font-weight: 400;
  1302. color: #0183FA;
  1303. line-height: 28rpx;
  1304. white-space: nowrap;
  1305. overflow: hidden;
  1306. text-overflow: ellipsis;
  1307. }
  1308. .report{
  1309. font-size: 28rpx;
  1310. font-family: PingFang SC-Medium, PingFang SC;
  1311. font-weight: 400;
  1312. color: #0183FA;
  1313. line-height: 28rpx;
  1314. margin-right: 40rpx;
  1315. }
  1316. }
  1317. }
  1318. }
  1319. /* 整改人 */
  1320. .statistics_three{
  1321. background: #fff;
  1322. display: flex;
  1323. justify-content: flex-start;
  1324. flex-wrap: wrap;
  1325. padding: 38rpx 30rpx;
  1326. box-sizing: border-box;
  1327. .statistics_three_li{
  1328. width: 230rpx;
  1329. position: relative;
  1330. >text{
  1331. display: block;
  1332. text-align: center;
  1333. }
  1334. >text:nth-of-type(1){
  1335. font-size: 26rpx;
  1336. font-family: PingFang SC-Medium, PingFang SC;
  1337. font-weight: 400;
  1338. color: #666666;
  1339. line-height: 26rpx;
  1340. }
  1341. >text:nth-of-type(2){
  1342. font-size: 34rpx;
  1343. font-family: PingFang SC-Heavy, PingFang SC;
  1344. font-weight: 400;
  1345. color: #1FA50D;
  1346. line-height: 34rpx;
  1347. margin-top: 28rpx;
  1348. }
  1349. }
  1350. .statistics_three_li::after{
  1351. content:'';
  1352. position: absolute;
  1353. top: 20rpx;
  1354. right:0rpx;
  1355. width: 1rpx;
  1356. height: 60rpx;
  1357. background: #D8D8D8;
  1358. }
  1359. .statistics_three_li:nth-of-type(3)::after{
  1360. display: none;
  1361. }
  1362. >view:nth-of-type(1){
  1363. >text:nth-of-type(2){
  1364. color: #1FA50D;
  1365. }
  1366. }
  1367. >view:nth-of-type(2){
  1368. >text:nth-of-type(2){
  1369. color: #FA8201;
  1370. }
  1371. }
  1372. >view:nth-of-type(3){
  1373. >text:nth-of-type(2){
  1374. color: #0183FA;
  1375. }
  1376. }
  1377. }
  1378. .inspect_btn_three{
  1379. height: 150rpx;
  1380. background: #fff;
  1381. display: flex;
  1382. justify-content: space-between;
  1383. align-items: center;
  1384. margin-top: 20rpx;
  1385. padding: 0 74rpx;
  1386. box-sizing: border-box;
  1387. .inspect_btn_three_li{
  1388. >img{
  1389. width: 60rpx;
  1390. height: 60rpx;
  1391. margin:0 auto;
  1392. }
  1393. >text{
  1394. font-size: 28rpx;
  1395. font-family: PingFang SC-Medium, PingFang SC;
  1396. font-weight: 400;
  1397. color: #333333;
  1398. line-height: 28rpx;
  1399. margin-top: 14rpx;
  1400. }
  1401. }
  1402. .line{
  1403. display: inline-block;
  1404. height: 60rpx;
  1405. width: 1rpx;
  1406. background: #E0E0E0;
  1407. }
  1408. }
  1409. /* 切换按钮 */
  1410. .tabTitle_three{
  1411. width:100%;
  1412. height: 100rpx;
  1413. background: #fff;
  1414. display flex;
  1415. justify-content: center;
  1416. align-items: center;
  1417. margin-top: 20rpx;
  1418. position: sticky;
  1419. top: 0;
  1420. z-index: 100;
  1421. box-shadow: 0rpx 3rpx 8rpx 0rpx rgba(0,0,0,0.16);
  1422. .tabTitle_three_li{
  1423. position: relative;
  1424. width:372rpx;
  1425. text-align center;
  1426. .tabTitle_three_text{
  1427. display: inline-block;
  1428. font-size: 30rpx;
  1429. font-family: PingFang SC;
  1430. font-weight: 500;
  1431. color: #333333;
  1432. line-height: 46rpx;
  1433. position: relative;
  1434. >text{
  1435. position:absolute;
  1436. min-width: 30rpx;
  1437. min-height: 30rpx;
  1438. border-radius:54%;
  1439. background: #E80000;
  1440. font-size: 18rpx;
  1441. font-family: PingFang SC-Medium, PingFang SC;
  1442. font-weight: 400;
  1443. color: #FFFFFF;
  1444. text-align: center;
  1445. line-height: 30rpx;
  1446. margin-left: 6rpx;
  1447. padding:2rpx;
  1448. box-sizing: border-box;
  1449. }
  1450. &.on{
  1451. color:#0183FA;
  1452. }
  1453. }
  1454. .tabTitle_three_across{
  1455. width: 50rpx;
  1456. height: 4rpx;
  1457. background: #0183FA;
  1458. border-radius: 2rpx;
  1459. margin-left 162rpx;
  1460. display none;
  1461. &.on{
  1462. display block;
  1463. }
  1464. }
  1465. }
  1466. .tabTitle_three_li:nth-of-type(1)::after{
  1467. content: '';
  1468. position: absolute;
  1469. top: 0rpx;
  1470. right: 0rpx;
  1471. width: 1rpx;
  1472. height: 50rpx;
  1473. background: #E0E0E0;
  1474. }
  1475. }
  1476. .list_three{
  1477. padding: 0 30rpx;
  1478. box-sizing: border-box;
  1479. margin-top: 20rpx;
  1480. .list_three_li{
  1481. position: relative;
  1482. width: 690rpx;
  1483. height: 348rpx;
  1484. background: #fff;
  1485. border-radius: 10rpx;
  1486. overflow: hidden;
  1487. margin-bottom: 20rpx;
  1488. .list_three_li_t{
  1489. width: 100%;
  1490. position: absolute;
  1491. left: 0;
  1492. top: 0;
  1493. .list_three_li_t_l{
  1494. >img{
  1495. width: 70rpx;
  1496. height: 70rpx;
  1497. }
  1498. >text{
  1499. position: absolute;
  1500. left: -15rpx;
  1501. top: 76rpx;
  1502. display: inline-block;
  1503. width: 30rpx;
  1504. height: 30rpx;
  1505. background: #F5F5F5;
  1506. border-radius: 15rpx;
  1507. }
  1508. }
  1509. .list_three_li_t_c{
  1510. width: 630rpx;
  1511. height: 110rpx;
  1512. position: absolute;
  1513. left: 30rpx;
  1514. top: 0;
  1515. font-size: 30rpx;
  1516. font-family: PingFang SC-Medium, PingFang SC;
  1517. font-weight: 400;
  1518. color: #333333;
  1519. line-height: 110rpx;
  1520. border-bottom: 1rpx dashed #D8D8D8;
  1521. overflow: hidden;
  1522. text-overflow:ellipsis;
  1523. white-space: nowrap;
  1524. padding-right: 60rpx;
  1525. box-sizing: border-box;
  1526. }
  1527. .list_three_li_t_c2{
  1528. position: absolute;
  1529. right: 20rpx;
  1530. top: 38rpx;
  1531. width: 120rpx;
  1532. height: 40rpx;
  1533. font-size: 28rpx;
  1534. font-family: PingFang SC-Medium, PingFang SC;
  1535. font-weight: 400;
  1536. color: #FF5757;
  1537. line-height: 40rpx;
  1538. border: 1rpx solid #FF5757;
  1539. border-radius: 6rpx;
  1540. text-align: center;
  1541. }
  1542. .list_three_li_t_r{
  1543. position: absolute;
  1544. right:-15rpx;
  1545. top: 76rpx;
  1546. width: 30rpx;
  1547. height: 30rpx;
  1548. background:#F5F5F5;
  1549. border-radius: 15rpx;
  1550. }
  1551. }
  1552. .list_three_li_m{
  1553. position: absolute;
  1554. top: 110rpx;
  1555. left: 0;
  1556. width: 690rpx;
  1557. height: 158rpx;
  1558. padding-left: 30rpx;
  1559. box-sizing: border-box;
  1560. .list_three_li_m_t{
  1561. font-size: 28rpx;
  1562. font-family: PingFang SC-Medium, PingFang SC;
  1563. font-weight: 400;
  1564. color: #666666;
  1565. line-height: 40rpx;
  1566. margin-top:22rpx;
  1567. overflow: hidden;
  1568. text-overflow:ellipsis;
  1569. white-space: nowrap;
  1570. }
  1571. .list_three_li_m_b{
  1572. margin-top:26rpx;
  1573. >text:nth-of-type(1){
  1574. font-size: 26rpx;
  1575. font-family: PingFang SC-Medium, PingFang SC;
  1576. font-weight: 400;
  1577. line-height: 40rpx;
  1578. border-radius: 6rpx;
  1579. padding: 0 20rpx;
  1580. margin-right: 14rpx;
  1581. }
  1582. .type{
  1583. font-size: 26rpx;
  1584. font-family: PingFang SC-Medium, PingFang SC;
  1585. font-weight: 400;
  1586. color: #0183FA;
  1587. line-height: 40rpx;
  1588. padding: 0 8rpx;
  1589. border-radius: 6rpx;
  1590. background: rgba(1,131,250,0.1);
  1591. margin-right: 24rpx;
  1592. }
  1593. .college{
  1594. display: inline-block;
  1595. width: 280rpx;
  1596. font-size: 26rpx;
  1597. font-family: PingFang SC-Medium, PingFang SC;
  1598. font-weight: 400;
  1599. color: #333333;
  1600. line-height: 26rpx;
  1601. overflow: hidden;
  1602. text-overflow:ellipsis;
  1603. white-space: nowrap;
  1604. }
  1605. }
  1606. }
  1607. .list_three_li_b{
  1608. height: 80rpx;
  1609. width: 100%;
  1610. position: absolute;
  1611. top: 268rpx;
  1612. left: 0;
  1613. padding-left: 30rpx;
  1614. box-sizing: border-box;
  1615. >text:nth-of-type(1){
  1616. font-size: 26rpx;
  1617. font-family: PingFang SC-Medium, PingFang SC;
  1618. font-weight: 400;
  1619. color: #333333;
  1620. line-height: 26rpx;
  1621. }
  1622. }
  1623. .list_three_li_b2{
  1624. height: 76rpx;
  1625. width: 100%;
  1626. position: absolute;
  1627. top: 258rpx;
  1628. left: 0;
  1629. padding:0 30rpx;
  1630. box-sizing: border-box;
  1631. display: flex;
  1632. justify-content: space-between;
  1633. align-items: center;
  1634. .list_three_li_b_l{
  1635. display: flex;
  1636. justify-content: space-between;
  1637. align-items: center;
  1638. >img{
  1639. width: 28rpx;
  1640. height: 30rpx;
  1641. margin-right: 14rpx;
  1642. }
  1643. >text{
  1644. font-size: 28rpx;
  1645. font-family: PingFang SC-Medium, PingFang SC;
  1646. font-weight: 400;
  1647. color: #666666;
  1648. line-height: 76rpx;
  1649. }
  1650. }
  1651. .list_three_li_b_r{
  1652. font-size: 24rpx;
  1653. font-family: PingFang SC-Medium, PingFang SC;
  1654. font-weight: 400;
  1655. color: #999999;
  1656. line-height: 76rpx;
  1657. }
  1658. }
  1659. }
  1660. }
  1661. .bottom_btn{
  1662. position: fixed;
  1663. bottom: 20rpx;
  1664. left: 30rpx;
  1665. font-size: 30rpx;
  1666. font-family: PingFang SC-Medium, PingFang SC;
  1667. font-weight: 400;
  1668. color: #FFFFFF;
  1669. line-height: 90rpx;
  1670. width: 690rpx;
  1671. height: 90rpx;
  1672. background: #0183FA;
  1673. border-radius: 20rpx;
  1674. text-align: center;
  1675. }
  1676. .scan_btn{
  1677. position: fixed;
  1678. bottom: 210rpx;
  1679. right: 0rpx;
  1680. width: 130rpx;
  1681. height: 130rpx;
  1682. }
  1683. /* 根据实验室id查询隐患列表 */
  1684. .shade {
  1685. height: 100%;
  1686. width: 100%;
  1687. position: fixed;
  1688. display: flex;
  1689. flex-direction: column;
  1690. z-index: 100;
  1691. background: rgba(0, 0, 0, 0.2);
  1692. .null-box {
  1693. flex: 1;
  1694. }
  1695. .shade_n {
  1696. position: absolute;
  1697. bottom: 0;
  1698. left: 0;
  1699. width: 750rpx;
  1700. height: 560rpx;
  1701. background: #FFFFFF;
  1702. border-radius: 20rpx 20rpx 0rpx 0rpx;
  1703. .shade_n_title{
  1704. height: 100rpx;
  1705. padding: 0 30rpx;
  1706. box-sizing: border-box;
  1707. display: flex;
  1708. justify-content:space-between;
  1709. border-bottom: 1rpx solid #E0E0E0;
  1710. >text:nth-of-type(1){
  1711. font-size: 30rpx;
  1712. font-family: PingFang SC-Medium, PingFang SC;
  1713. font-weight: 400;
  1714. color: #333333;
  1715. line-height: 100rpx;
  1716. }
  1717. >text:nth-of-type(2){
  1718. font-size: 30rpx;
  1719. font-family: PingFang SC-Medium, PingFang SC;
  1720. font-weight: 400;
  1721. color: #0183FA;
  1722. line-height: 100rpx;
  1723. }
  1724. }
  1725. .shade_n_b{
  1726. height: 460rpx;
  1727. padding: 0 30rpx;
  1728. box-sizing: border-box;
  1729. overflow-y: auto;
  1730. .shade_n_b_li{
  1731. display: flex;
  1732. justify-content:space-between;
  1733. align-items: center;
  1734. height: 80rpx;
  1735. border-bottom: 1rpx solid #E0E0E0;
  1736. >text{
  1737. font-size: 28rpx;
  1738. font-family: PingFang SC-Medium, PingFang SC;
  1739. font-weight: 400;
  1740. line-height: 80rpx;
  1741. overflow: hidden;
  1742. text-overflow:ellipsis;
  1743. white-space: nowrap;
  1744. }
  1745. >img{
  1746. width: 24rpx;
  1747. height: 16rpx;
  1748. margin-right: 14rpx;
  1749. }
  1750. }
  1751. .color_A{
  1752. color: #333333;
  1753. }
  1754. .color_B{
  1755. color: #0183FA;
  1756. }
  1757. }
  1758. }
  1759. }
  1760. }
  1761. </style>