safetyExamineWorkbench.vue 47 KB

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