dangerDetail.vue 40 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628
  1. <!-- 安全检查-安全隐患 -->
  2. <template>
  3. <view class="examine">
  4. <scroll-view scroll-x @scrolltolower="scrollGet" class="header">
  5. <view class="tabTitle_tow">
  6. <view class="tabTitle_tow_li" @tap="tabClickTow(item,index)" :key="index"
  7. v-for="(item,index) in tabTextTow">
  8. <view :class="{on:curTabTow==index}" class="tabTitle_tow_text">{{item.name}}</view>
  9. <view :class="{on:curTabTow==index}" class="tabTitle_tow_across"></view>
  10. </view>
  11. </view>
  12. </scroll-view>
  13. <scroll-view scroll-y @scrolltolower="scrollGet" class="info-max-box">
  14. <!-- 隐患检查 -->
  15. <view v-if="curTabIndex=='detail'">
  16. <view class="basics">
  17. <view class="basics_li">
  18. <text>学院:</text>
  19. <text>{{infoData.collegeName}}</text>
  20. </view>
  21. <view class="basics_li">
  22. <text>实验室:</text>
  23. <text>{{infoData.subjectName}}-{{infoData.roomNumber?infoData.roomNumber:''}}</text>
  24. </view>
  25. <view class="basics_li">
  26. <text>楼栋:</text>
  27. <text>{{infoData.buildName?infoData.buildName:'-'}}</text>
  28. </view>
  29. <view class="basics_li">
  30. <text>检查组织:</text>
  31. <text>{{infoData.checkType==1?'校园巡查':(infoData.checkType==2?'实验室自查':'')}}</text>
  32. </view>
  33. <view class="basics_li">
  34. <text>检查范围:</text>
  35. <text>{{infoData.checkRange==1?'全校':(infoData.checkRange==2?'学院':'实验室')}}</text>
  36. </view>
  37. <view class="basics_li" style="border:none;">
  38. <text>计划标题:</text>
  39. <text>{{infoData.title}}</text>
  40. </view>
  41. </view>
  42. <view class="basics">
  43. <view class="basics_li">
  44. <text>检查结果:</text>
  45. <text>{{infoData.checkResult==0?'不符合':(infoData.checkResult==1?'符合':'')}}</text>
  46. </view>
  47. <view class="basics_li">
  48. <text>整改期限:</text>
  49. <text>{{infoData.rectifyDeadline?infoData.rectifyDeadline:''}}</text>
  50. </view>
  51. <view class="basics_li">
  52. <text>整改通知:</text>
  53. <text style="color: #0183FA;"
  54. @click="rectifyInform">{{infoData.rectifyNotice == 1?'整改告知书':(infoData.rectifyNotice == 2?'整改通知书':'')}}</text>
  55. </view>
  56. <view class="basics_li">
  57. <text>检查者:</text>
  58. <text>{{infoData.checkUser}}</text>
  59. </view>
  60. <view class="basics_li" style="border:none;">
  61. <text>检查时间:</text>
  62. <text>{{infoData.checkTime}}</text>
  63. </view>
  64. </view>
  65. <!-- 综合检查 -->
  66. <view v-if="infoData.checkCategory==1" class="danger">
  67. <view class="danger_title">不符合项</view>
  68. <view class="grade">
  69. <text>隐患等级:</text>
  70. <text>{{infoData.checkHazardApplyDto.hazardLevel==2?'一般隐患':(infoData.checkHazardApplyDto.hazardLevel==1?'重大隐患':(infoData.checkHazardApplyDto.hazardLevel==3?'管理问题':''))}}</text>
  71. </view>
  72. <view class="project">
  73. <view class="project_t">检查项目:</view>
  74. <view class="project_b">{{infoData.checkHazardApplyDto.hazardCheckProStr}}</view>
  75. <view class="project_b2" v-if="infoData.checkHazardApplyDto.hazardCheckCount>0">
  76. 此检查项在当前实验室累计出现{{infoData.checkHazardApplyDto.hazardCheckCount}}次隐患</view>
  77. </view>
  78. <view class="project">
  79. <view class="project_t">检查要点:</view>
  80. <view class="project_b">{{infoData.checkHazardApplyDto.hazardCheckPoint}}</view>
  81. </view>
  82. <view class="project">
  83. <view class="project_t">隐患描述:</view>
  84. <view class="project_b">
  85. {{infoData.checkHazardApplyDto.hazardDescribe?infoData.checkHazardApplyDto.hazardDescribe:''}}
  86. </view>
  87. </view>
  88. <view class="picture">
  89. <view class="picture_t">隐患照片</view>
  90. <view class="picture_b" @click="lockImg(infoData.checkHazardApplyDto.uploadDtoList)">
  91. <img :src="baseUrl+imgItem.fileUrl"
  92. v-for="(imgItem,index) in infoData.checkHazardApplyDto.uploadDtoList" :key="index" />
  93. </view>
  94. </view>
  95. </view>
  96. <!-- 专项检查 -->
  97. <view v-if="infoData.checkCategory==2">
  98. <view class="inconformity_tow" @click="inconformityFun2()">
  99. {{infoData.checkHazardApplyDto.hazardName}}<img v-if="inconformityStatus2"
  100. src="@/pages_safetyExamine/images/icon_bfhx_xq.png" /><img v-if="!inconformityStatus2"
  101. src="@/pages_safetyExamine/images/icon_bfhx_sq.png" />
  102. </view>
  103. <view class="danger_border" v-if="!inconformityStatus2">
  104. <view class="ident">检查项目</view>
  105. <view class="danger special_danger">
  106. <view class="grade">
  107. <view class="sort">1</view>
  108. <text>第一项隐患</text>
  109. <viwe :class="infoData.checkHazardApplyDto.checkFlag==0?'noConform':'isConform'">
  110. {{infoData.checkHazardApplyDto.checkFlag==0?'不符合':'符合'}}
  111. </viwe>
  112. </view>
  113. <view class="small_items">{{infoData.checkHazardApplyDto.hazardCheckProStr}}</view>
  114. <view class="frequency" v-if="infoData.checkHazardApplyDto.hazardCheckCount>0">
  115. 此检查项在当前实验室累计出现{{infoData.checkHazardApplyDto.hazardCheckCount}}次隐患</view>
  116. <view class="grading">
  117. <text>隐患等级:</text>
  118. <text>{{infoData.checkHazardApplyDto.hazardLevel==2?'一般隐患':(infoData.checkHazardApplyDto.hazardLevel==1?'重大隐患':(infoData.checkHazardApplyDto.hazardLevel==3?'管理问题':''))}}</text>
  119. </view>
  120. <view class="project">
  121. <view class="project_t">隐患描述:</view>
  122. <view class="project_b">
  123. {{infoData.checkHazardApplyDto.hazardDescribe?infoData.checkHazardApplyDto.hazardDescribe:''}}
  124. </view>
  125. </view>
  126. <view class="picture">
  127. <view class="picture_t">隐患照片</view>
  128. <view class="picture_b" @click="lockImg(infoData.checkHazardApplyDto.uploadDtoList)">
  129. <img :src="baseUrl+imgItem.fileUrl"
  130. v-for="(imgItem,imgIndex) in infoData.checkHazardApplyDto.uploadDtoList" />
  131. </view>
  132. </view>
  133. </view>
  134. </view>
  135. </view>
  136. </view>
  137. <view v-for="(item,index) in infoData.checkRectifyApplyList" :key="index" v-if="curTabIndex== index">
  138. <!-- 整改结果 -->
  139. <view v-if="item.applyFlag == 1" class="abarbeitung_result danger">
  140. <view class="grade">
  141. <text>整改结果:</text>
  142. <text
  143. style="color: #0183FA;">{{item.rectifyResult == 1?'已整改':(item.rectifyResult == 0?'暂无法整改':'')}}</text>
  144. </view>
  145. <view class="project">
  146. <view class="project_t">整改措施:</view>
  147. <view class="project_b">{{item.rectifyMeasure}}</view>
  148. </view>
  149. <view class="picture">
  150. <view class="picture_t">整改照片:</view>
  151. <view class="picture_b" @click="lockImg(item.uploadDtoList)">
  152. <img :src="baseUrl+imgItem.fileUrl" v-for="(imgItem,imgIndex) in item.uploadDtoList"
  153. :key="imgIndex">
  154. </view>
  155. </view>
  156. <view class="grade">
  157. <text>整改人:</text>
  158. <text>{{item.createName}}</text>
  159. </view>
  160. <view class="grade" style="border:none;">
  161. <text>整改时间:</text>
  162. <text>{{item.createTime}}</text>
  163. </view>
  164. </view>
  165. <!-- 复核结果 -->
  166. <view v-if="item.applyFlag == 2" class="review_result danger">
  167. <view class="audit">
  168. <text>审核结果:</text>
  169. <img v-if="item.examineResult == 0" src="@/pages_safetyExamine/images/icon_ywc.png" />
  170. <img v-if="item.examineResult == 1" src="@/pages_safetyExamine/images/icon_cg.png" />
  171. </view>
  172. <view class="project">
  173. <view class="project_t">审核意见:</view>
  174. <view class="project_b">{{item.examineOpinion}}</view>
  175. </view>
  176. <view class="grade">
  177. <text>审核人:</text>
  178. <text>{{item.reviewedName}}</text>
  179. </view>
  180. <view class="grade" style="border:none;">
  181. <text>审核时间:</text>
  182. <text>{{item.reviewedTime}}</text>
  183. </view>
  184. </view>
  185. </view>
  186. <!-- 待整改 -->
  187. <view v-if="rectifyStatus==2 && curTabIndex=='add'">
  188. <view class="await">
  189. <view class="result">
  190. <view class="result_l">整改结果</view>
  191. <view class="result_r">
  192. <view v-for="(item,index) in resultArray" :key="index" @click="tabClick(index)">
  193. <text :class="resultIndex==index?'checked':'result_r_l' "></text>
  194. <text class="result_r_r">{{item}}</text>
  195. </view>
  196. </view>
  197. </view>
  198. <view class="describe">
  199. <view class="describe_l">{{form.rectifyResult==1?'整改措施:':'原因描述:'}}</view>
  200. <textarea class="describe_r" type="text" v-model="form.rectifyMeasure" maxlength="50"
  201. :placeholder="form.rectifyResult==1?'请输入整改描述:':'请输入原因描述:'"
  202. placeholder-style="font-size:28rpx;color:#999;"></textarea>
  203. </view>
  204. <view class="check-for-img-max-box">
  205. <view class="left-title-p">隐患照片(最多上传5张):</view>
  206. <view class="right-img-box">
  207. <view class="img-box" v-for="(imgUrl,imgIndex) in form.uploadDtoList" :key="imgIndex">
  208. <img class="img-data" :src="baseUrl+imgUrl.fileUrl">
  209. <img class="position-img" src="@/pages_safetyExamine/images/icon_ssp_closure.png"
  210. @click="delImg(imgIndex)">
  211. </view>
  212. <img class="add-button" src="@/pages_safetyExamine/images/icon_07.png"
  213. @click="selectImage()" v-if="form.uploadDtoList.length<5">
  214. </view>
  215. </view>
  216. </view>
  217. </view>
  218. <!-- 待复核 -->
  219. <view v-if="rectifyStatus==3 && curTabIndex=='check'" class="review">
  220. <view class="describe">
  221. <view class="describe_l">审核意见:</view>
  222. <textarea class="describe_r" type="text" v-model="form.examineOpinion" maxlength="50"
  223. placeholder="请输入审核意见" placeholder-style="font-size:28rpx;color:#999;"></textarea>
  224. </view>
  225. <view class="quick">
  226. <view class="quick_l">审核意见快捷输入</view>
  227. <view class="quick_r">
  228. <text @click="quickSelect(index)" :class="item.type?'quick_B':'quick_A'"
  229. v-for="(item,index) in quickArray" :key="index">{{item.name}}</text>
  230. </view>
  231. </view>
  232. </view>
  233. </scroll-view>
  234. <view class="bottom_btn" @click="submitForm('rectify')" v-if="rectifyStatus==2 && rectifyGentle">提交</view>
  235. <view class="bottom_btn_tow" v-if="rectifyStatus==3 && applyGentle">
  236. <text @click="submitForm('reject')">驳回</text>
  237. <text @click="submitForm('pass')">通过</text>
  238. </view>
  239. </view>
  240. </template>
  241. <script>
  242. import {
  243. config
  244. } from '@/api/request/config.js'
  245. import {
  246. getHazardById,
  247. checkHazardAdd
  248. } from '@/pages_safetyExamine/api/index.js'
  249. export default {
  250. name: "rectifyList",
  251. components: {
  252. },
  253. data() {
  254. return {
  255. baseUrl: config.base_url,
  256. id: '',
  257. pageType: 0,
  258. //列表请求参数
  259. getData: {
  260. page: 1,
  261. pageSize: 20,
  262. },
  263. tabTextTow: [],
  264. curTabTow: 0,
  265. curTabIndex: 'detail', //随顶部按钮点击变化索引
  266. resultIndex: 0,
  267. resultArray: ['已整改', '暂无法整改'],
  268. form: {
  269. checkHazardId: '', // 隐患id
  270. rectifyType: '', // 整改类型:1是院校巡查,2是自查
  271. rectifyResult: '1', //1是已整改,0是暂无法整改
  272. rectifyMeasure: '', //整改措施
  273. uploadDtoList: [],
  274. //复核---------------
  275. id: '',
  276. examineResult: '', //审核结果1是通过,0是驳回
  277. examineOpinion: '',
  278. },
  279. quickIndex: 0,
  280. quickArray: [{
  281. name: '复核驳回',
  282. type: false
  283. }, {
  284. name: '驳回再整改',
  285. type: false
  286. }, {
  287. name: '请补充材料',
  288. type: false
  289. }, {
  290. name: '请补充描述',
  291. type: false
  292. }, {
  293. name: '未解决',
  294. type: false
  295. }],
  296. infoData: {},
  297. item: {},
  298. rectifyStatus: '', //1已完成 2待整改 3待复核 4 暂无法整改
  299. checkType: null,
  300. applyGentle: false, //待复核-有没有审核权限
  301. rectifyGentle: false, //待整改-有没有整改权限
  302. inconformityStatus2: false,
  303. }
  304. },
  305. onLoad(option) {
  306. if (option.item) {
  307. this.item = JSON.parse(decodeURIComponent(option.item));
  308. this.id = this.item.id
  309. this.rectifyStatus = this.item.rectifyStatus;
  310. this.getHazardById()
  311. }
  312. },
  313. onShow() {
  314. },
  315. mounted() {
  316. },
  317. methods: {
  318. //整改结果
  319. tabClick(index) {
  320. this.resultIndex = index;
  321. if (index == 0) {
  322. this.form.rectifyResult = 1
  323. } else if (index == 1) {
  324. this.form.rectifyResult = 0
  325. }
  326. },
  327. //顶部tab点击
  328. tabClickTow(item, index) {
  329. this.curTabTow = index;
  330. this.pageType = index;
  331. if (item.type == 'detail' || item.type == 'add' || item.type == 'check') {
  332. this.curTabIndex = item.type
  333. } else {
  334. this.curTabIndex = index - 1;
  335. }
  336. },
  337. //专项隐患项收起展开
  338. inconformityFun2() {
  339. this.inconformityStatus2 = !this.inconformityStatus2;
  340. },
  341. //详情
  342. async getHazardById() {
  343. let self = this;
  344. const {
  345. data
  346. } = await getHazardById({
  347. id: this.id
  348. });
  349. if (data.code == 200) {
  350. this.infoData = data.data
  351. this.form.checkHazardId = data.data.checkHazardApplyDto.id;
  352. this.form.rectifyType = data.data.checkType;
  353. if (data.data.checkType == 1) {
  354. uni.setNavigationBarTitle({
  355. title: '校院巡查隐患'
  356. })
  357. } else if (data.data.checkType == 2) {
  358. uni.setNavigationBarTitle({
  359. title: '实验室自查隐患'
  360. })
  361. }
  362. this.applyGentle = data.data.checkHazardApplyDto.applyGentle
  363. this.rectifyGentle = data.data.checkHazardApplyDto.rectifyGentle
  364. if (data.data.checkRectifyApplyList.length > 0) {
  365. for (let i = 0; i < data.data.checkRectifyApplyList.length; i++) {
  366. this.form.id = data.data.checkRectifyApplyList[i].id;
  367. }
  368. }
  369. this.checkType = data.data.checkType; //检查组织 1校院巡查 2实验室自查
  370. if (data.data.checkRectifyApplyList[0]) {
  371. this.tabTextTow.push({
  372. 'type': 'detail',
  373. 'name': '隐患检查'
  374. })
  375. for (let i = 0; i < data.data.checkRectifyApplyList.length; i++) {
  376. if (i == 0) {
  377. this.tabTextTow.push({
  378. 'type': 'item',
  379. 'name': '隐患整改'
  380. })
  381. } else if (i == 1) {
  382. this.tabTextTow.push({
  383. 'type': 'item',
  384. 'name': '整改复核'
  385. })
  386. } else {
  387. let nameLeft = this.frequencyCalculation(i, data.data.checkRectifyApplyList[i]
  388. .applyFlag);
  389. let nameRight = data.data.checkRectifyApplyList[i].applyFlag == 1 ? '整改' : '复核';
  390. this.tabTextTow.push({
  391. 'type': 'item',
  392. 'name': nameLeft + nameRight
  393. })
  394. }
  395. }
  396. if (this.rectifyStatus == 3 && this.applyGentle) {
  397. this.tabTextTow.push({
  398. 'type': 'check',
  399. 'name': '整改复核'
  400. })
  401. } else if (this.rectifyStatus == 2 && this.rectifyGentle) {
  402. this.tabTextTow.push({
  403. 'type': 'add',
  404. 'name': '隐患整改'
  405. })
  406. }
  407. } else {
  408. if (this.rectifyStatus == 2 && this.rectifyGentle) { //有整改权限
  409. this.tabTextTow = [{
  410. 'type': 'detail',
  411. 'name': '隐患检查'
  412. }, {
  413. 'type': 'add',
  414. 'name': '隐患整改'
  415. }]
  416. } else {
  417. this.tabTextTow = [{
  418. 'type': 'detail',
  419. 'name': '隐患检查'
  420. }]
  421. }
  422. }
  423. }
  424. },
  425. //多次名称匹配
  426. frequencyCalculation(length, type) {
  427. let textList = [{
  428. value: '二次',
  429. key: '2'
  430. }, {
  431. value: '三次',
  432. key: '3'
  433. }, {
  434. value: '四次',
  435. key: '4'
  436. }, {
  437. value: '五次',
  438. key: '5'
  439. }, {
  440. value: '六次',
  441. key: '6'
  442. }, {
  443. value: '七次',
  444. key: '7'
  445. },
  446. {
  447. value: '八次',
  448. key: '8'
  449. }, {
  450. value: '九次',
  451. key: '9'
  452. }, {
  453. value: '十次',
  454. key: '10'
  455. }
  456. ]
  457. let num = type === 2 ? Math.ceil(length / 2) : Math.floor(length / 2)
  458. if (type == 1) {
  459. num++
  460. }
  461. if (num > 10) {
  462. return '再次'
  463. } else {
  464. for (let i = 0; i < textList.length; i++) {
  465. if (num == textList[i].key) {
  466. return textList[i].value
  467. }
  468. }
  469. }
  470. },
  471. //滚动事件
  472. scrollGet() {},
  473. handleClick(doType) {
  474. let self = this;
  475. if (doType == 'subBtn') { //
  476. }
  477. },
  478. //查看图片
  479. lockImg(list) {
  480. if (!list[0]) {
  481. return
  482. }
  483. let urlList = [];
  484. for (let i = 0; i < list.length; i++) {
  485. urlList.push(this.baseUrl + list[i].fileUrl)
  486. }
  487. wx.previewImage({
  488. urls: urlList, //需要预览的图片http链接列表,多张的时候,url直接写在后面就行了
  489. current: '', // 当前显示图片的http链接,默认是第一个
  490. success: function(res) {},
  491. fail: function(res) {},
  492. complete: function(res) {},
  493. })
  494. },
  495. //快捷选择
  496. quickSelect(index) {
  497. this.quickArray[index].type = !this.quickArray[index].type
  498. this.form.examineOpinion = this.quickArray[index].name
  499. let self = this;
  500. if (self.quickArray[index].type == true) {
  501. self.quickArray.forEach(function(item2) {
  502. if (item2.name == self.quickArray[index].name) {
  503. item2.type = true
  504. } else {
  505. item2.type = false
  506. }
  507. })
  508. } else {
  509. this.form.examineOpinion = '';
  510. }
  511. },
  512. // 图片上传
  513. selectImage(item) {
  514. let self = this;
  515. if (this.form.uploadDtoList.length > 4) {
  516. uni.showToast({
  517. title: '最多上传5张图片',
  518. icon: "none",
  519. mask: true,
  520. duration: 2000
  521. });
  522. return
  523. }
  524. wx.chooseImage({
  525. count: 1,
  526. sizeType: ["original", "compressed"],
  527. sourceType: ["album", "camera"],
  528. success: function(res) {
  529. let tempFilePaths = res.tempFilePaths[0];
  530. self.uploadImg(tempFilePaths);
  531. }
  532. });
  533. },
  534. async uploadImg(tempFilePaths) {
  535. var self = this;
  536. uni.showLoading({
  537. title: '上传中',
  538. mask: true
  539. });
  540. uni.uploadFile({
  541. url: config.base_url + '/system/file/upload', //仅为示例,非真实的接口地址
  542. header: {
  543. 'Authorization': uni.getStorageSync('token')
  544. },
  545. filePath: tempFilePaths,
  546. name: 'file',
  547. formData: {
  548. 'user': 'test'
  549. },
  550. success: (uploadFileRes) => {
  551. let res = JSON.parse(uploadFileRes.data);
  552. if (res.code == 200) {
  553. self.form.uploadDtoList.push({
  554. 'fileUrl': res.data.url,
  555. 'fileName': res.data.name
  556. });
  557. } else {
  558. uni.showToast({
  559. title: res.msg,
  560. icon: "none",
  561. mask: true,
  562. duration: 2000
  563. });
  564. }
  565. },
  566. fail: err => {},
  567. complete: () => {
  568. uni.hideLoading()
  569. }
  570. });
  571. },
  572. //删除图片
  573. delImg(minIndex) {
  574. this.form.uploadDtoList.splice(minIndex, 1);
  575. this.$forceUpdate();
  576. },
  577. //整改通知
  578. rectifyInform() { //rectifyNotice 整改通知(1整改告知书 2整改通知书)
  579. if (this.infoData.rectifyNotice == 1) { //1整改告知书
  580. this.genReport(this.infoData.id)
  581. } else if (this.infoData.rectifyNotice == 2) { //2整改通知书
  582. this.genNotice(this.infoData.id)
  583. }
  584. },
  585. //整改报告
  586. rectifyReport() {
  587. uni.showLoading({
  588. title: '下载中'
  589. });
  590. wx.downloadFile({
  591. url: config.base_url + '/zd-security/checkRectify/genReport/?id='+this.infoData.id+'&fileUrl='+uni.getStorageSync('fileBrowseEnvironment'),
  592. header: {
  593. Authorization: uni.getStorageSync('token')
  594. },
  595. success: function(res) {
  596. const fileManager = wx.getFileSystemManager()
  597. const filePath = wx.env.USER_DATA_PATH + '/(整改报告).docx'
  598. fileManager.saveFile({
  599. tempFilePath: res.tempFilePath,
  600. filePath,
  601. success: () => {
  602. uni.hideLoading();
  603. wx.openDocument({
  604. filePath: filePath,
  605. showMenu: true,
  606. fileType: 'docx'
  607. })
  608. },
  609. fail: function(res) {
  610. uni.hideLoading();
  611. uni.showToast({
  612. title: '下载失败',
  613. icon: "none",
  614. mask: true,
  615. duration: 2000
  616. });
  617. }
  618. })
  619. },
  620. fail: function(res) {
  621. uni.hideLoading();
  622. uni.showToast({
  623. title: '下载失败',
  624. icon: "none",
  625. mask: true,
  626. duration: 2000
  627. });
  628. }
  629. })
  630. },
  631. //整改通知书
  632. genNotice(id) {
  633. uni.showLoading({
  634. title: '下载中'
  635. });
  636. wx.downloadFile({
  637. url: config.base_url + '/zd-security/checkManage/getRectifyAdviceNote/?checkMangeId='+this.infoData.id+'&fileUrl='+uni.getStorageSync('fileBrowseEnvironment'),
  638. header: {
  639. Authorization: uni.getStorageSync('token')
  640. },
  641. success: function(res) {
  642. const fileManager = wx.getFileSystemManager()
  643. const filePath = wx.env.USER_DATA_PATH + '/(整改通知书).docx'
  644. fileManager.saveFile({
  645. tempFilePath: res.tempFilePath,
  646. filePath,
  647. success: () => {
  648. uni.hideLoading();
  649. wx.openDocument({
  650. filePath: filePath,
  651. showMenu: true,
  652. fileType: 'docx'
  653. })
  654. },
  655. fail: function(res) {
  656. uni.hideLoading();
  657. uni.showToast({
  658. title: '下载失败',
  659. icon: "none",
  660. mask: true,
  661. duration: 2000
  662. });
  663. }
  664. })
  665. },
  666. fail: function(res) {
  667. uni.hideLoading();
  668. uni.showToast({
  669. title: '下载失败',
  670. icon: "none",
  671. mask: true,
  672. duration: 2000
  673. });
  674. }
  675. })
  676. },
  677. //整改告知书
  678. genReport(id) {
  679. uni.showLoading({
  680. title: '下载中'
  681. });
  682. wx.downloadFile({
  683. url: config.base_url + '/zd-security/checkManage/getRectifyNotification/?checkMangeId='+this.infoData.id+'&fileUrl='+uni.getStorageSync('fileBrowseEnvironment'),
  684. header: {
  685. Authorization: uni.getStorageSync('token')
  686. },
  687. success: function(res) {
  688. const fileManager = wx.getFileSystemManager()
  689. const filePath = wx.env.USER_DATA_PATH + '/整改报告.docx'
  690. fileManager.saveFile({
  691. tempFilePath: res.tempFilePath,
  692. filePath,
  693. success: () => {
  694. uni.hideLoading();
  695. wx.openDocument({
  696. filePath: filePath,
  697. showMenu: true,
  698. fileType: 'docx'
  699. })
  700. },
  701. fail: function(res) {
  702. uni.hideLoading();
  703. uni.showToast({
  704. title: '下载失败',
  705. icon: "none",
  706. mask: true,
  707. duration: 2000
  708. });
  709. }
  710. })
  711. },
  712. fail: function(res) {
  713. uni.hideLoading();
  714. uni.showToast({
  715. title: '下载失败',
  716. icon: "none",
  717. mask: true,
  718. duration: 2000
  719. });
  720. }
  721. })
  722. },
  723. async submitForm(doType) {
  724. let self = this;
  725. let obj = {};
  726. if (doType == 'rectify') { //整改
  727. if (!this.form.rectifyMeasure) {
  728. if (this.form.rectifyResult == 1) {
  729. uni.showToast({
  730. title: '请输入整改措施!',
  731. icon: "none",
  732. mask: true,
  733. duration: 2000
  734. });
  735. } else {
  736. uni.showToast({
  737. title: '请输入原因描述!',
  738. icon: "none",
  739. mask: true,
  740. duration: 2000
  741. });
  742. }
  743. return
  744. }
  745. if (this.form.uploadDtoList.length == 0) {
  746. uni.showToast({
  747. title: '请上传照片!',
  748. icon: "none",
  749. mask: true,
  750. duration: 2000
  751. });
  752. return
  753. }
  754. obj.checkHazardId = this.form.checkHazardId;
  755. obj.rectifyType = this.form.rectifyType;
  756. obj.rectifyResult = this.form.rectifyResult;
  757. obj.rectifyMeasure = this.form.rectifyMeasure;
  758. obj.uploadDtoList = this.form.uploadDtoList;
  759. } else if (doType == 'reject') { //复核 驳回
  760. obj.id = this.form.id;
  761. obj.examineResult = 0;
  762. if (!this.form.examineOpinion) {
  763. uni.showToast({
  764. title: '请输入审核意见!',
  765. icon: "none",
  766. mask: true,
  767. duration: 2000
  768. });
  769. return
  770. }
  771. obj.examineOpinion = this.form.examineOpinion;
  772. } else if (doType == 'pass') { //复核 通过
  773. obj.id = this.form.id;
  774. obj.examineResult = 1;
  775. if (!this.form.examineOpinion) {
  776. uni.showToast({
  777. title: '请输入审核意见!',
  778. icon: "none",
  779. mask: true,
  780. duration: 2000
  781. });
  782. return
  783. }
  784. obj.examineOpinion = this.form.examineOpinion;
  785. }
  786. const {
  787. data
  788. } = await checkHazardAdd(obj);
  789. if (data.code == 200) {
  790. uni.redirectTo({
  791. url: '/pages_safetyExamine/views/dangerManage/dangerList?pageType=' + this.checkType
  792. });
  793. uni.showToast({
  794. title: '提交成功',
  795. icon: "none",
  796. mask: true,
  797. duration: 2000
  798. });
  799. }
  800. },
  801. }
  802. }
  803. </script>
  804. <style lang="stylus" scoped>
  805. .examine {
  806. height: 100%;
  807. display flex;
  808. // padding: 0 30rpx;
  809. // box-sizing: border-box;
  810. padding-bottom: 120rpx;
  811. box-sizing: border-box;
  812. .info-max-box {
  813. flex: 1;
  814. overflow: scroll;
  815. padding: 120rpx 0rpx 0;
  816. box-sizing: border-box;
  817. }
  818. /* 隐患检查 */
  819. .header {
  820. width: 750rpx;
  821. height: 100rpx;
  822. position: fixed;
  823. top: 0rpx;
  824. z-index: 100;
  825. background: #fff;
  826. .tabTitle_tow {
  827. height: 100rpx;
  828. white-space: nowrap;
  829. display: inline-flex;
  830. .tabTitle_tow_li {
  831. position: relative;
  832. width: 152rpx;
  833. height: 100rpx;
  834. text-align center;
  835. padding-top: 26rpx;
  836. box-sizing: border-box;
  837. .tabTitle_tow_text {
  838. display: inline-block;
  839. font-size: 30rpx;
  840. font-family: PingFang SC;
  841. font-weight: 500;
  842. color: #333333;
  843. line-height: 46rpx;
  844. position: relative;
  845. &.on {
  846. color: #0183FA;
  847. }
  848. }
  849. .tabTitle_tow_across {
  850. width: 50rpx;
  851. height: 4rpx;
  852. background: #0183FA;
  853. border-radius: 2rpx;
  854. margin-left: 33%;
  855. display none;
  856. &.on {
  857. display block;
  858. }
  859. }
  860. }
  861. }
  862. }
  863. .basics {
  864. width: 690rpx;
  865. background: #FFFFFF;
  866. border-radius: 20rpx;
  867. padding: 30rpx 30rpx 32rpx;
  868. box-sizing: border-box;
  869. margin: 20rpx 30rpx;
  870. .basics_li {
  871. height: 80rpx;
  872. display: flex;
  873. justify-content: space-between;
  874. border-bottom: 1rpx solid #D8D8D8;
  875. >text:nth-of-type(1) {
  876. font-size: 28rpx;
  877. font-family: PingFang SC-Medium, PingFang SC;
  878. font-weight: 400;
  879. color: #666666;
  880. line-height: 80rpx;
  881. width: 140rpx;
  882. }
  883. >text:nth-of-type(2) {
  884. flex: 1;
  885. font-size: 28rpx;
  886. font-family: PingFang SC-Medium, PingFang SC;
  887. font-weight: 400;
  888. color: #333333;
  889. line-height: 80rpx;
  890. text-align: right;
  891. white-space: nowrap;
  892. overflow: hidden;
  893. text-overflow: ellipsis;
  894. }
  895. }
  896. }
  897. .attachment {
  898. width: 690rpx;
  899. background: #FFFFFF;
  900. border-radius: 20rpx;
  901. margin: 20rpx 30rpx 0;
  902. padding-bottom: 32rpx;
  903. box-sizing: border-box;
  904. .attachment_t {
  905. border-bottom: 1rpx solid #D8D8D8;
  906. >text:nth-of-type(1) {
  907. font-size: 30rpx;
  908. font-family: PingFang SC-Medium, PingFang SC;
  909. font-weight: 400;
  910. color: #333333;
  911. line-height: 110rpx;
  912. margin-left: 28rpx;
  913. }
  914. >text:nth-of-type(2) {
  915. font-size: 30rpx;
  916. font-family: PingFang SC-Medium, PingFang SC;
  917. font-weight: 400;
  918. color: #999999;
  919. line-height: 110rpx;
  920. margin-left: 24rpx;
  921. }
  922. }
  923. .attachment_li {
  924. height: 40rpx;
  925. display: flex;
  926. justify-content: flex-start;
  927. align-items: center;
  928. margin-top: 32rpx;
  929. >img {
  930. width: 30rpx;
  931. height: 26rpx;
  932. margin-right: 20rpx;
  933. margin-left: 50rpx;
  934. }
  935. >text {
  936. flex: 1;
  937. font-size: 28rpx;
  938. font-family: PingFang SC-Medium, PingFang SC;
  939. font-weight: 400;
  940. color: #0183FA;
  941. line-height: 40rpx;
  942. white-space: nowrap;
  943. overflow: hidden;
  944. text-overflow: ellipsis;
  945. }
  946. .attachment_li_del {
  947. width: 30rpx;
  948. height: 30rpx;
  949. }
  950. }
  951. }
  952. .danger {
  953. width: 690rpx;
  954. background: #FFFFFF;
  955. border-radius: 20rpx;
  956. padding: 30rpx 30rpx 32rpx;
  957. box-sizing: border-box;
  958. margin: 20rpx 30rpx;
  959. .danger_title {
  960. font-size: 30rpx;
  961. font-family: PingFang SC-Medium, PingFang SC;
  962. font-weight: 400;
  963. color: #333333;
  964. line-height: 80rpx;
  965. border-bottom: 1rpx solid #D8D8D8;
  966. }
  967. .grade {
  968. height: 80rpx;
  969. display: flex;
  970. justify-content: space-between;
  971. border-bottom: 1rpx solid #D8D8D8;
  972. >text:nth-of-type(1) {
  973. font-size: 28rpx;
  974. font-family: PingFang SC-Medium, PingFang SC;
  975. font-weight: 400;
  976. color: #666666;
  977. line-height: 80rpx;
  978. width: 140rpx;
  979. }
  980. >text:nth-of-type(2) {
  981. flex: 1;
  982. font-size: 28rpx;
  983. font-family: PingFang SC-Medium, PingFang SC;
  984. font-weight: 400;
  985. color: #333333;
  986. line-height: 80rpx;
  987. text-align: right;
  988. }
  989. }
  990. .project {
  991. .project_t {
  992. font-size: 30rpx;
  993. font-family: PingFang SC-Medium, PingFang SC;
  994. font-weight: 400;
  995. color: #333333;
  996. line-height: 80rpx;
  997. }
  998. .project_b {
  999. min-height: 158rpx;
  1000. font-size: 28rpx;
  1001. font-family: PingFang SC-Medium, PingFang SC;
  1002. font-weight: 400;
  1003. color: #333333;
  1004. line-height: 40rpx;
  1005. padding: 20rpx 14rpx;
  1006. box-sizing: border-box;
  1007. background: #F5F5F5;
  1008. border-radius: 20rpx 20rpx 20rpx 20rpx;
  1009. }
  1010. .project_b2 {
  1011. font-size: 26rpx;
  1012. font-family: PingFang SC-Medium, PingFang SC;
  1013. font-weight: 400;
  1014. color: #666666;
  1015. line-height: 26rpx;
  1016. margin-top: 14rpx;
  1017. text-align: right;
  1018. }
  1019. }
  1020. .picture {
  1021. .picture_t {
  1022. font-size: 30rpx;
  1023. font-family: PingFang SC-Medium, PingFang SC;
  1024. font-weight: 400;
  1025. color: #333333;
  1026. line-height: 80rpx;
  1027. }
  1028. .picture_b {
  1029. display: flex;
  1030. justify-content: flex-start;
  1031. flex-wrap: wrap;
  1032. >img {
  1033. width: 200rpx;
  1034. height: 200rpx;
  1035. border-radius: 10rpx 10rpx 10rpx 10rpx;
  1036. margin-right: 14rpx;
  1037. margin-bottom: 10rpx;
  1038. }
  1039. >img:nth-of-type(3n+3) {
  1040. margin-right: 0rpx;
  1041. }
  1042. }
  1043. }
  1044. }
  1045. /* 待整改 */
  1046. .await {
  1047. width: 690rpx;
  1048. background: #FFFFFF;
  1049. border-radius: 20rpx;
  1050. padding: 30rpx 30rpx 32rpx;
  1051. box-sizing: border-box;
  1052. margin: 20rpx 30rpx;
  1053. /* 整改结果 */
  1054. .result {
  1055. display: flex;
  1056. justify-content: flex-start;
  1057. border-bottom: 1rpx solid #D8D8D8;
  1058. .result_l {
  1059. width: 146rpx;
  1060. text-align: left;
  1061. font-size: 30rpx;
  1062. font-family: PingFang SC-Medium, PingFang SC;
  1063. font-weight: 400;
  1064. color: #333333;
  1065. line-height: 80rpx;
  1066. }
  1067. .result_r {
  1068. width: 486rpx;
  1069. height: 80rpx;
  1070. padding-left: 20rpx;
  1071. box-sizing: border-box;
  1072. display: flex;
  1073. justify-content: flex-end;
  1074. align-items: center;
  1075. >view {
  1076. display: flex;
  1077. justify-content: flex-start;
  1078. align-items: center;
  1079. margin-right: 24rpx;
  1080. .result_r_l {
  1081. display: inline-block;
  1082. width: 30rpx;
  1083. height: 30rpx;
  1084. border-radius: 50%;
  1085. border: 1rpx solid #E0E0E0;
  1086. margin-right: 14rpx;
  1087. }
  1088. .result_r_r {
  1089. font-size: 30rpx;
  1090. font-family: PingFang SC-Medium, PingFang SC;
  1091. font-weight: 400;
  1092. color: #333333;
  1093. line-height: 80rpx;
  1094. }
  1095. .checked {
  1096. display: inline-block;
  1097. width: 30rpx;
  1098. height: 30rpx;
  1099. border-radius: 50%;
  1100. border: 1rpx solid #0183FA;
  1101. margin-right: 14rpx;
  1102. position: relative;
  1103. }
  1104. .checked::after {
  1105. content: '';
  1106. position: absolute;
  1107. top: 5rpx;
  1108. left: 5rpx;
  1109. width: 20rpx;
  1110. height: 20rpx;
  1111. border-radius: 50%;
  1112. background: #0183FA;
  1113. }
  1114. }
  1115. }
  1116. }
  1117. /* 原因描述 */
  1118. .describe {
  1119. .describe_l {
  1120. width: 158rpx;
  1121. text-align: left;
  1122. font-size: 30rpx;
  1123. font-family: PingFang SC-Medium, PingFang SC;
  1124. font-weight: 400;
  1125. color: #333333;
  1126. line-height: 80rpx;
  1127. }
  1128. .describe_r {
  1129. width: 630rpx;
  1130. height: 158rpx;
  1131. border-radius: 20rpx 20rpx 20rpx 20rpx;
  1132. opacity: 1;
  1133. border: 1rpx solid #E0E0E0;
  1134. padding: 20rpx 14rpx;
  1135. box-sizing: border-box;
  1136. font-size: 30rpx;
  1137. font-family: PingFang SC-Medium, PingFang SC;
  1138. font-weight: 400;
  1139. color: #333333;
  1140. line-height: 34rpx;
  1141. }
  1142. }
  1143. /* 上传照片 */
  1144. .check-for-img-max-box {
  1145. .left-title-p {
  1146. width: 100%;
  1147. text-align: left;
  1148. font-size: 30rpx;
  1149. font-family: PingFang SC-Medium, PingFang SC;
  1150. font-weight: 400;
  1151. color: #333333;
  1152. line-height: 80rpx;
  1153. }
  1154. .right-img-box {
  1155. .img-box {
  1156. display inline-block;
  1157. height: 200rpx;
  1158. width: 200rpx;
  1159. position relative;
  1160. margin: 0 14rpx 20rpx 0;
  1161. border-radius 10rpx;
  1162. overflow hidden;
  1163. .img-data {
  1164. height: 200rpx;
  1165. width: 200rpx;
  1166. }
  1167. .position-img {
  1168. position absolute;
  1169. right: 0;
  1170. top: 0;
  1171. width: 36rpx;
  1172. height: 36rpx;
  1173. }
  1174. }
  1175. .img-box:nth-of-type(3n+3) {
  1176. margin-right: 0rpx;
  1177. }
  1178. .add-button {
  1179. margin: 0 0rpx 20rpx 0;
  1180. border-radius 10rpx;
  1181. overflow hidden;
  1182. display inline-block;
  1183. height: 200rpx;
  1184. width: 200rpx;
  1185. }
  1186. }
  1187. }
  1188. }
  1189. /* 待复核 */
  1190. .review {
  1191. width: 690rpx;
  1192. background: #FFFFFF;
  1193. border-radius: 20rpx;
  1194. padding: 30rpx 30rpx 32rpx;
  1195. box-sizing: border-box;
  1196. margin: 20rpx 30rpx;
  1197. /* 审核意见 */
  1198. .describe {
  1199. .describe_l {
  1200. width: 158rpx;
  1201. text-align: left;
  1202. font-size: 30rpx;
  1203. font-family: PingFang SC-Medium, PingFang SC;
  1204. font-weight: 400;
  1205. color: #666;
  1206. line-height: 80rpx;
  1207. }
  1208. .describe_r {
  1209. width: 630rpx;
  1210. height: 158rpx;
  1211. border-radius: 20rpx 20rpx 20rpx 20rpx;
  1212. opacity: 1;
  1213. border: 1rpx solid #E0E0E0;
  1214. padding: 20rpx 14rpx;
  1215. box-sizing: border-box;
  1216. font-size: 30rpx;
  1217. font-family: PingFang SC-Medium, PingFang SC;
  1218. font-weight: 400;
  1219. color: #333333;
  1220. line-height: 34rpx;
  1221. }
  1222. }
  1223. /* 快捷输入 */
  1224. .quick {
  1225. .quick_l {
  1226. font-size: 30rpx;
  1227. font-family: PingFang SC-Medium, PingFang SC;
  1228. font-weight: 400;
  1229. color: #666666;
  1230. line-height: 80rpx;
  1231. }
  1232. .quick_r {
  1233. >text {
  1234. display: inline-block;
  1235. font-size: 30rpx;
  1236. font-family: PingFang SC-Medium, PingFang SC;
  1237. font-weight: 400;
  1238. line-height: 60rpx;
  1239. padding: 0 24rpx;
  1240. box-sizing: border-box;
  1241. border-radius: 10rpx 10rpx 10rpx 10rpx;
  1242. margin-right: 20rpx;
  1243. margin-bottom: 30rpx;
  1244. }
  1245. .quick_A {
  1246. color: #666666;
  1247. background: #F5F5F5;
  1248. }
  1249. .quick_B {
  1250. color: #0183FA;
  1251. background: rgba(1, 131, 250, 0.2);
  1252. }
  1253. }
  1254. }
  1255. }
  1256. /* 暂无法整改 */
  1257. .incapable {
  1258. width: 690rpx;
  1259. background: #FFFFFF;
  1260. border-radius: 20rpx;
  1261. padding: 30rpx 30rpx 32rpx;
  1262. box-sizing: border-box;
  1263. margin: 20rpx 30rpx;
  1264. }
  1265. /* 整改结果 */
  1266. .abarbeitung_result {
  1267. width: 690rpx;
  1268. background: #FFFFFF;
  1269. border-radius: 20rpx;
  1270. padding: 30rpx 30rpx 32rpx;
  1271. box-sizing: border-box;
  1272. margin: 20rpx 30rpx;
  1273. }
  1274. /* 审核结果 */
  1275. .review_result {
  1276. width: 690rpx;
  1277. background: #FFFFFF;
  1278. border-radius: 20rpx;
  1279. padding: 30rpx 30rpx 32rpx;
  1280. box-sizing: border-box;
  1281. margin: 20rpx 30rpx;
  1282. .audit {
  1283. height: 80rpx;
  1284. display: flex;
  1285. justify-content: space-between;
  1286. border-bottom: 1rpx solid #D8D8D8;
  1287. >text:nth-of-type(1) {
  1288. font-size: 28rpx;
  1289. font-family: PingFang SC-Medium, PingFang SC;
  1290. font-weight: 400;
  1291. color: #666666;
  1292. line-height: 80rpx;
  1293. width: 140rpx;
  1294. }
  1295. >img {
  1296. width: 80rpx;
  1297. height: 70rpx;
  1298. }
  1299. }
  1300. }
  1301. /* 专项检查 */
  1302. .inconformity_tow {
  1303. width: 690rpx;
  1304. height: 100rpx;
  1305. background: #FFFFFF;
  1306. border-radius: 20rpx 20rpx 20rpx 20rpx;
  1307. margin: 20rpx 30rpx;
  1308. font-size: 30rpx;
  1309. font-family: PingFang SC-Medium, PingFang SC;
  1310. font-weight: 400;
  1311. color: #333333;
  1312. line-height: 100rpx;
  1313. text-align: center;
  1314. display: flex;
  1315. justify-content: space-between;
  1316. align-items: center;
  1317. padding: 0 30rpx;
  1318. box-sizing: border-box;
  1319. >img {
  1320. width: 30rpx;
  1321. height: 26rpx;
  1322. margin-left: 20rpx;
  1323. }
  1324. }
  1325. .danger_border {
  1326. border-radius: 20rpx;
  1327. width: 690rpx;
  1328. background: #FFFFFF;
  1329. margin: 0rpx 30rpx 20rpx;
  1330. overflow: hidden;
  1331. }
  1332. .special_danger {
  1333. width: auto;
  1334. background: #FFFFFF;
  1335. padding: 0;
  1336. box-sizing: border-box;
  1337. margin: 0 30rpx;
  1338. border-radius: 0;
  1339. .grade {
  1340. height: 80rpx;
  1341. display: flex;
  1342. justify-content: flex-start;
  1343. border-bottom: 1rpx solid #D8D8D8;
  1344. position: relative;
  1345. background: #F5F5F5;
  1346. border-radius: 20rpx 20rpx 0rpx 0rpx;
  1347. .sort {
  1348. width: 40rpx;
  1349. height: 40rpx;
  1350. background: #0183FA;
  1351. border-radius: 20rpx 0rpx 10rpx 0rpx;
  1352. font-size: 30rpx;
  1353. font-family: PingFang SC-Medium, PingFang SC;
  1354. font-weight: 400;
  1355. color: #FFFFFF;
  1356. line-height: 40rpx;
  1357. text-align: center;
  1358. position: absolute;
  1359. left: 0;
  1360. top: 0;
  1361. }
  1362. .isConform {
  1363. width: 100rpx;
  1364. height: 40rpx;
  1365. font-size: 24rpx;
  1366. font-family: PingFang SC-Medium, PingFang SC;
  1367. font-weight: 400;
  1368. color: #0183FA;
  1369. line-height: 36rpx;
  1370. background: #C4DEF6;
  1371. text-align: center;
  1372. border-radius: 20rpx;
  1373. margin-left: 12rpx;
  1374. margin-top: 20rpx;
  1375. }
  1376. .noConform {
  1377. width: 100rpx;
  1378. height: 40rpx;
  1379. font-size: 24rpx;
  1380. font-family: PingFang SC-Medium, PingFang SC;
  1381. font-weight: 400;
  1382. color: #FF0000;
  1383. line-height: 36rpx;
  1384. background: #F7C4C4;
  1385. text-align: center;
  1386. border-radius: 20rpx;
  1387. margin-left: 12rpx;
  1388. margin-top: 20rpx;
  1389. }
  1390. >text:nth-of-type(1) {
  1391. font-size: 28rpx;
  1392. font-family: PingFang SC-Medium, PingFang SC;
  1393. font-weight: 400;
  1394. color: #666666;
  1395. line-height: 80rpx;
  1396. width: 140rpx;
  1397. margin-left: 66rpx;
  1398. }
  1399. >text:nth-of-type(2) {
  1400. flex: 1;
  1401. font-size: 28rpx;
  1402. font-family: PingFang SC-Medium, PingFang SC;
  1403. font-weight: 400;
  1404. color: #333333;
  1405. line-height: 80rpx;
  1406. text-align: right;
  1407. margin-right: 30rpx;
  1408. }
  1409. }
  1410. .frequency {
  1411. font-size: 26rpx;
  1412. font-family: PingFang SC-Medium, PingFang SC;
  1413. font-weight: 400;
  1414. color: #333;
  1415. line-height: 26rpx;
  1416. margin-top: 14rpx;
  1417. text-align: right;
  1418. margin-bottom: 14rpx;
  1419. }
  1420. .grading {
  1421. height: 80rpx;
  1422. display: flex;
  1423. justify-content: space-between;
  1424. >text:nth-of-type(1) {
  1425. font-size: 28rpx;
  1426. font-family: PingFang SC-Medium, PingFang SC;
  1427. font-weight: 400;
  1428. color: #666666;
  1429. line-height: 80rpx;
  1430. width: 140rpx;
  1431. }
  1432. >text:nth-of-type(2) {
  1433. flex: 1;
  1434. font-size: 28rpx;
  1435. font-family: PingFang SC-Medium, PingFang SC;
  1436. font-weight: 400;
  1437. color: #333333;
  1438. line-height: 80rpx;
  1439. text-align: left;
  1440. background: #F5F5F5;
  1441. border-radius: 10rpx 10rpx 10rpx 10rpx;
  1442. padding-left: 20rpx;
  1443. box-sizing: border-box;
  1444. }
  1445. }
  1446. }
  1447. .small_items {
  1448. min-height: 158rpx;
  1449. font-size: 28rpx;
  1450. font-family: PingFang SC-Medium, PingFang SC;
  1451. font-weight: 400;
  1452. color: #333333;
  1453. line-height: 40rpx;
  1454. padding: 20rpx 14rpx;
  1455. box-sizing: border-box;
  1456. border-radius: 0rpx 0rpx 20rpx 20rpx;
  1457. opacity: 1;
  1458. border: 1rpx solid #E0E0E0;
  1459. border-top: none;
  1460. }
  1461. .ident {
  1462. font-size: 30rpx;
  1463. font-family: PingFang SC-Medium, PingFang SC;
  1464. font-weight: 400;
  1465. color: #666666;
  1466. line-height: 42rpx;
  1467. margin: 34rpx 30rpx;
  1468. }
  1469. .bottom_btn {
  1470. position: fixed;
  1471. bottom: 26rpx;
  1472. left: 30rpx;
  1473. font-size: 30rpx;
  1474. font-family: PingFang SC-Medium, PingFang SC;
  1475. font-weight: 400;
  1476. color: #FFFFFF;
  1477. line-height: 90rpx;
  1478. width: 690rpx;
  1479. height: 90rpx;
  1480. background: #0183FA;
  1481. border-radius: 20rpx;
  1482. text-align: center;
  1483. }
  1484. .bottom_btn_tow {
  1485. display: flex;
  1486. justify-content: center;
  1487. position: fixed;
  1488. bottom: 26rpx;
  1489. left: 30rpx;
  1490. width: 690rpx;
  1491. height: 90rpx;
  1492. >text {
  1493. flex: 1;
  1494. display: inline-block;
  1495. font-size: 30rpx;
  1496. font-family: PingFang SC-Medium, PingFang SC;
  1497. font-weight: 400;
  1498. color: #FFFFFF;
  1499. line-height: 90rpx;
  1500. text-align: center
  1501. }
  1502. >text:nth-of-type(1) {
  1503. background: #FA8201;
  1504. border-radius: 45rpx 0rpx 0rpx 45rpx;
  1505. }
  1506. >text:nth-of-type(2) {
  1507. background: #0183FA;
  1508. border-radius: 0rpx 45rpx 45rpx 0rpx;
  1509. }
  1510. }
  1511. }
  1512. </style>