safetyExamineWorkbench.vue 47 KB

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