safetyExamineWorkbench.vue 49 KB

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