dangerDetail.vue 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068
  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" v-for="(item,index) in tabTextTow">
  7. <view :class="{on:curTabTow==index}" class="tabTitle_tow_text">{{item.name}}</view>
  8. <view :class="{on:curTabTow==index}" class="tabTitle_tow_across"></view>
  9. </view>
  10. </view>
  11. </scroll-view>
  12. <scroll-view scroll-y @scrolltolower="scrollGet" class="info-max-box">
  13. <!-- 隐患检查 -->
  14. <view v-if="curTabIndex=='detail'">
  15. <view class="basics">
  16. <view class="basics_li">
  17. <text>学院:</text>
  18. <text>{{infoData.collegeName}}</text>
  19. </view>
  20. <view class="basics_li">
  21. <text>实验室:</text>
  22. <text>{{infoData.subjectName}}-{{infoData.roomNumber}}</text>
  23. </view>
  24. <view class="basics_li">
  25. <text>楼栋:</text>
  26. <text>{{infoData.subjectName}}</text>
  27. </view>
  28. <view class="basics_li">
  29. <text>检查类型:</text>
  30. <text>{{infoData.checkType==1?'校园巡查':(infoData.checkType==2?'实验室自查':'')}}</text>
  31. </view>
  32. <view class="basics_li">
  33. <text>检查范围:</text>
  34. <text>{{infoData.checkRange==1?'全校':(infoData.checkRange==2?'学院':'实验室')}}</text>
  35. </view>
  36. <view class="basics_li" style="border:none;">
  37. <text>检查计划:</text>
  38. <text>{{infoData.title}}</text>
  39. </view>
  40. </view>
  41. <view class="basics">
  42. <view class="basics_li">
  43. <text>检查结果:</text>
  44. <text>{{infoData.checkResult==0?'不符合':(infoData.checkResult==1?'符合':'')}}</text>
  45. </view>
  46. <view class="basics_li">
  47. <text>整改期限:</text>
  48. <text>{{infoData.rectifyDeadline}}</text>
  49. </view>
  50. <view class="basics_li">
  51. <text>整改通知:</text>
  52. <text style="color: #0183FA;">{{infoData.rectifyNotice == 1?'整改告知书':(infoData.rectifyNotice == 2?'整改通知书':'')}}</text>
  53. </view>
  54. <view class="basics_li">
  55. <text>检查者:</text>
  56. <text>{{infoData.checkUser}}</text>
  57. </view>
  58. <view class="basics_li" style="border:none;">
  59. <text>检查时间:</text>
  60. <text>{{infoData.checkTime}}</text>
  61. </view>
  62. </view>
  63. <view class="danger">
  64. <view class="danger_title">不符合项</view>
  65. <view class="grade">
  66. <text>隐患等级:</text>
  67. <text>{{infoData.checkHazardApplyDto.hazardLevel==0?'一般隐患':(infoData.checkHazardApplyDto.hazardLevel==1?'重大隐患':(infoData.checkHazardApplyDto.hazardLevel==2?'管理问题':''))}}</text>
  68. </view>
  69. <view class="project">
  70. <view class="project_t">检查项目:</view>
  71. <view class="project_b">{{infoData.checkHazardApplyDto.hazardCheckProStr}}</view>
  72. <view class="project_b2" v-if="infoData.checkHazardApplyDto.hazardCheckCount>0">此检查项在当前实验室累计出现{{infoData.checkHazardApplyDto.hazardCheckCount}}次隐患</view>
  73. </view>
  74. <view class="project">
  75. <view class="project_t">检查要点:</view>
  76. <view class="project_b">{{infoData.checkHazardApplyDto.hazardCheckPoint}}</view>
  77. </view>
  78. <view class="project">
  79. <view class="project_t">隐患描述:</view>
  80. <view class="project_b">{{infoData.checkHazardApplyDto.hazardDescribe}}</view>
  81. </view>
  82. <view class="picture">
  83. <view class="picture_t">隐患照片</view>
  84. <view class="picture_b" @click="lockImg(infoData.checkHazardApplyDto.uploadDtoList)">
  85. <img :src="baseUrl+imgItem.fileUrl" v-for="(imgItem,index) in infoData.checkHazardApplyDto.uploadDtoList" :key="index" />
  86. </view>
  87. </view>
  88. </view>
  89. </view>
  90. <view v-for="(item,index) in infoData.checkRectifyApplyList" :key="index" v-if="curTabIndex== index">
  91. <!-- 整改结果 -->
  92. <view v-if="item.applyFlag == 1" class="abarbeitung_result danger">
  93. <view class="grade">
  94. <text>整改结果:</text>
  95. <text style="color: #0183FA;">{{item.rectifyResult == 1?'已整改':(item.rectifyResult == 0?'暂无法整改':'')}}</text>
  96. </view>
  97. <view class="project">
  98. <view class="project_t">整改措施:</view>
  99. <view class="project_b">{{item.rectifyMeasure}}</view>
  100. </view>
  101. <view class="picture">
  102. <view class="picture_t">整改照片:</view>
  103. <view class="picture_b" @click="lockImg(item.uploadDtoList)">
  104. <img :src="baseUrl+imgItem.fileUrl" v-for="(imgItem,imgIndex) in item.uploadDtoList" :key="imgIndex">
  105. </view>
  106. </view>
  107. <view class="grade">
  108. <text>整改人:</text>
  109. <text>{{item.createName}}</text>
  110. </view>
  111. <view class="grade" style="border:none;">
  112. <text>整改时间:</text>
  113. <text >{{item.createTime}}</text>
  114. </view>
  115. </view>
  116. <!-- 复核结果 -->
  117. <view v-if="item.applyFlag == 2" class="review_result danger">
  118. <view class="audit">
  119. <text>审核结果:</text>
  120. <img v-if="item.examineResult == 0" src="@/images/Version3.3.3/icon_ywc.png"/>
  121. <img v-if="item.examineResult == 1" src="@/images/Version3.3.3/icon_cg.png"/>
  122. </view>
  123. <view class="project">
  124. <view class="project_t">审核意见:</view>
  125. <view class="project_b">{{item.examineOpinion}}</view>
  126. </view>
  127. <view class="grade">
  128. <text>审核人:</text>
  129. <text>{{item.reviewedName}}</text>
  130. </view>
  131. <view class="grade" style="border:none;">
  132. <text>审核时间:</text>
  133. <text >{{item.reviewedTime}}</text>
  134. </view>
  135. </view>
  136. </view>
  137. <!-- 待整改 -->
  138. <view v-if="rectifyStatus==2 && curTabIndex=='add'">
  139. <view class="await">
  140. <view class="result">
  141. <view class="result_l">整改结果</view>
  142. <view class="result_r">
  143. <view v-for="(item,index) in resultArray" :key="index" @click="tabClick(index)">
  144. <text :class="resultIndex==index?'checked':'result_r_l' "></text>
  145. <text class="result_r_r">{{item}}</text>
  146. </view>
  147. </view>
  148. </view>
  149. <view class="describe">
  150. <view class="describe_l">{{form.rectifyResult==1?'整改措施:':'原因描述:'}}</view>
  151. <textarea class="describe_r" type="text" v-model="form.rectifyMeasure" maxlength="50" placeholder="请输入原因描述" placeholder-style="font-size:28rpx;color:#999;"></textarea>
  152. </view>
  153. <view class="check-for-img-max-box">
  154. <view class="left-title-p">隐患照片(最多上传5张):</view>
  155. <view class="right-img-box">
  156. <view class="img-box" v-for="(imgUrl,imgIndex) in form.uploadDtoList" :key="imgIndex">
  157. <img class="img-data" :src="baseUrl+imgUrl.fileUrl">
  158. <img class="position-img" src="@/pages_manage/images/icon_ssp_closure.png" @click="delImg(imgIndex)">
  159. </view>
  160. <img class="add-button" src="@/pages_manage/images/icon_07.png" @click="selectImage()" v-if="form.uploadDtoList.length<5">
  161. </view>
  162. </view>
  163. </view>
  164. </view>
  165. <!-- 待复核 -->
  166. <view v-if="rectifyStatus==3 && curTabIndex=='check'" class="review">
  167. <view class="describe">
  168. <view class="describe_l">审核意见:</view>
  169. <textarea class="describe_r" type="text" v-model="form.examineOpinion" maxlength="50" placeholder="请输入审核意见" placeholder-style="font-size:28rpx;color:#999;"></textarea>
  170. </view>
  171. <view class="quick">
  172. <view class="quick_l">审核意见快捷输入</view>
  173. <view class="quick_r">
  174. <text @click="quickSelect(index)" :class="item.type?'quick_B':'quick_A'" v-for="(item,index) in quickArray">{{item.name}}</text>
  175. </view>
  176. </view>
  177. </view>
  178. <!-- 暂无法整改 -->
  179. <!-- <view v-if="rectifyStatus==4" class="incapable danger">
  180. <view class="grade">
  181. <text>整改结果:</text>
  182. <text style="color: #0183FA;">暂无法整改</text>
  183. </view>
  184. <view class="project">
  185. <view class="project_t">原因描述:</view>
  186. <view class="project_b">实验室施工</view>
  187. </view>
  188. <view class="picture">
  189. <view class="picture_t">上传照片:</view>
  190. <view class="picture_b">
  191. <img src="@/images/Version3.3.3/icon_xyxc_syszc.png"/>
  192. <img src="@/images/Version3.3.3/icon_xyxc_syszc.png"/>
  193. <img src="@/images/Version3.3.3/icon_xyxc_syszc.png"/>
  194. <img src="@/images/Version3.3.3/icon_xyxc_syszc.png"/>
  195. </view>
  196. </view>
  197. <view class="grade">
  198. <text>整改人:</text>
  199. <text>褚朝朝</text>
  200. </view>
  201. <view class="grade" style="border:none;">
  202. <text>整改时间:</text>
  203. <text >2023-04-0114:00</text>
  204. </view>
  205. </view> -->
  206. </scroll-view>
  207. <view class="bottom_btn" @click="submitForm('rectify')" v-if="rectifyStatus==2 && rectifyGentle">提交</view>
  208. <view class="bottom_btn_tow" v-if="rectifyStatus==3 && applyGentle">
  209. <text @click="submitForm('reject')">驳回</text>
  210. <text @click="submitForm('pass')">通过</text>
  211. </view>
  212. </view>
  213. </template>
  214. <script>
  215. import { config } from '@/api/request/config.js'
  216. import {getHazardById,checkHazardAdd} from '@/api/index.js'
  217. export default {
  218. name: "rectifyList",
  219. components: {
  220. },
  221. data() {
  222. return {
  223. baseUrl:config.base_url,
  224. id:'',
  225. pageType:0,
  226. //列表请求参数
  227. getData:{
  228. pageNum:1,
  229. pageSize:20,
  230. },
  231. tabTextTow:[],
  232. curTabTow:0,
  233. curTabIndex:'detail',//随顶部按钮点击变化索引
  234. resultIndex:0,
  235. resultArray:['已整改','暂无法整改'],
  236. form:{
  237. checkHazardId:'',// 隐患id
  238. rectifyType:'',// 整改类型:1是院校巡查,2是自查
  239. rectifyResult:'1',//1是已整改,0是暂无法整改
  240. rectifyMeasure:'',//整改措施
  241. uploadDtoList:[],
  242. //复核---------------
  243. id:'',
  244. examineResult:'',//审核结果1是通过,0是驳回
  245. examineOpinion:'',
  246. },
  247. quickIndex:0,
  248. quickArray:[{name:'复核驳回',type:false},{name:'驳回在整改',type:false},{name:'请补充材料',type:false},{name:'请补充描述',type:false},{name:'未解决',type:false}],
  249. infoData:{},
  250. item:{},
  251. rectifyStatus:'',//1已完成 2待整改 3待复核 4 暂无法整改
  252. checkType:null,
  253. applyGentle:false,//待复核-有没有审核权限
  254. rectifyGentle:false,//待整改-有没有整改权限
  255. }
  256. },
  257. onLoad(option) {
  258. console.log(option.item)
  259. if(option.item){
  260. this.item=JSON.parse(decodeURIComponent(option.item));
  261. this.id=this.item.id
  262. this.rectifyStatus=this.item.rectifyStatus;
  263. this.getHazardById()
  264. }
  265. },
  266. onShow() {
  267. },
  268. mounted(){
  269. },
  270. methods: {
  271. //整改结果
  272. tabClick(index) {
  273. this.resultIndex = index;
  274. if(index==0){
  275. this.form.resultArray=1
  276. }else if(index==1){
  277. this.form.resultArray=0
  278. }
  279. },
  280. //顶部tab点击
  281. tabClickTow(item,index) {
  282. this.curTabTow = index;
  283. this.pageType=index;
  284. if(item.type=='detail' || item.type=='add' || item.type=='check'){
  285. this.curTabIndex=item.type
  286. }else{
  287. this.curTabIndex=index-1;
  288. }
  289. console.log(this.curTabIndex)
  290. },
  291. //详情
  292. async getHazardById(){
  293. let _this = this;
  294. const {data} = await getHazardById({id:this.id});
  295. if(data.code == 200){
  296. this.infoData=data.data
  297. this.form.checkHazardId=data.data.checkHazardApplyDto.id;
  298. this.form.rectifyType=data.data.checkType;
  299. this.applyGentle=data.data.checkHazardApplyDto.applyGentle
  300. this.rectifyGentle=data.data.checkHazardApplyDto.rectifyGentle
  301. if(data.data.checkRectifyApplyList.length>0){
  302. for(let i=0;i<data.data.checkRectifyApplyList.length;i++){
  303. this.form.id=data.data.checkRectifyApplyList[i].id;
  304. }
  305. }
  306. this.checkType=data.data.checkType;//检查类型 1校院巡查 2实验室自查
  307. if(data.data.checkRectifyApplyList[0]){
  308. this.tabTextTow.push({'type':'detail','name':'隐患检查'})
  309. for(let i=0;i<data.data.checkRectifyApplyList.length;i++){
  310. if(i == 0){
  311. this.tabTextTow.push({'type':'item','name':'隐患整改'})
  312. }else if(i == 1){
  313. this.tabTextTow.push({'type':'item','name':'整改复核'})
  314. }else{
  315. let nameLeft = this.frequencyCalculation(i,data.data.checkRectifyApplyList[i].applyFlag);
  316. let nameRight = data.data.checkRectifyApplyList[i].applyFlag == 1?'整改':'复核';
  317. this.tabTextTow.push({'type':'item','name':nameLeft+nameRight})
  318. }
  319. }
  320. if(this.rectifyStatus==3 && this.applyGentle){
  321. this.tabTextTow.push({'type':'check','name':'整改复核'})
  322. }else if(this.rectifyStatus==2 && this.rectifyGentle){
  323. this.tabTextTow.push({'type':'add','name':'隐患整改'})
  324. }
  325. }else{
  326. if(this.rectifyStatus==2 && this.rectifyGentle){//有整改权限
  327. this.tabTextTow=[{'type':'detail','name':'隐患检查'},{'type':'add','name':'隐患整改'}]
  328. }else{
  329. this.tabTextTow=[{'type':'detail','name':'隐患检查'}]
  330. }
  331. }
  332. }
  333. },
  334. //多次名称匹配
  335. frequencyCalculation(length,type){
  336. console.log(length)
  337. console.log(type)
  338. let textList = [
  339. {value:'二次',key:'2'},{value:'三次',key:'3'},{value:'四次',key:'4'},{value:'五次',key:'5'}, {value:'六次',key:'6'}, {value:'七次',key:'7'},
  340. {value:'八次',key:'8'},{value:'九次',key:'9'},{value:'十次',key:'10'}
  341. ]
  342. let num = type === 2?Math.ceil(length/2):Math.floor(length/2)
  343. if(type == 1){
  344. num++
  345. }
  346. if (num > 10){
  347. return '再次'
  348. } else{
  349. for(let i=0;i<textList.length;i++){
  350. if(num == textList[i].key){
  351. return textList[i].value
  352. console.log(textList[i].value)
  353. }
  354. }
  355. }
  356. },
  357. //滚动事件
  358. scrollGet(){},
  359. handleClick(doType){
  360. let self=this;
  361. if( doType=='subBtn'){//
  362. console.log(11)
  363. }
  364. },
  365. //查看图片
  366. lockImg(list){
  367. console.log(list)
  368. if(!list[0]){
  369. return
  370. }
  371. let urlList=[];
  372. for(let i=0;i<list.length;i++){
  373. urlList.push(this.baseUrl+list[i].fileUrl)
  374. }
  375. console.log(urlList)
  376. wx.previewImage({
  377. urls: urlList, //需要预览的图片http链接列表,多张的时候,url直接写在后面就行了
  378. current: '', // 当前显示图片的http链接,默认是第一个
  379. success: function(res) {},
  380. fail: function(res) {},
  381. complete: function(res) {},
  382. })
  383. },
  384. //快捷选择
  385. quickSelect(index) {
  386. this.quickArray[index].type = !this.quickArray[index].type
  387. this.form.examineOpinion=this.quickArray[index].name
  388. let _this = this;
  389. if (_this.quickArray[index].type == true) {
  390. _this.quickArray.forEach(function(item2) {
  391. if (item2.name == _this.quickArray[index].name) {
  392. item2.type = true
  393. } else {
  394. item2.type = false
  395. }
  396. })
  397. }else{
  398. this.form.examineOpinion='';
  399. }
  400. },
  401. // 图片上传
  402. selectImage(item) {
  403. let self = this;
  404. if(this.form.uploadDtoList.length>4){
  405. uni.showToast({
  406. title: '最多上传5张图片',
  407. icon:"none",
  408. mask:true,
  409. duration: 2000
  410. });
  411. return
  412. }
  413. wx.chooseImage({
  414. count: 1,
  415. sizeType: ["original", "compressed"],
  416. sourceType: ["album", "camera"],
  417. success: function(res) {
  418. let tempFilePaths = res.tempFilePaths[0];
  419. self.uploadImg(tempFilePaths);
  420. }
  421. });
  422. },
  423. async uploadImg(tempFilePaths){
  424. var self = this;
  425. uni.showLoading({
  426. title: '上传中',
  427. mask: true
  428. });
  429. uni.uploadFile({
  430. url: config.base_url+'/base/file/upload', //仅为示例,非真实的接口地址
  431. header:{'Authorization':uni.getStorageSync('token')},
  432. filePath: tempFilePaths,
  433. name: 'file',
  434. formData: {
  435. 'user': 'test'
  436. },
  437. success: (uploadFileRes) => {
  438. let res = JSON.parse(uploadFileRes.data);
  439. if(res.code == 200){
  440. self.form.uploadDtoList.push({'fileUrl':res.data.url,'fileName':res.data.name});
  441. }else{
  442. uni.showToast({
  443. title: res.msg,
  444. icon:"none",
  445. mask:true,
  446. duration: 2000
  447. });
  448. }
  449. },
  450. fail: err => {},
  451. complete: () => {
  452. uni.hideLoading()
  453. }
  454. });
  455. },
  456. //删除图片
  457. delImg(minIndex){
  458. this.form.uploadDtoList.splice(minIndex,1);
  459. this.$forceUpdate();
  460. },
  461. async submitForm(doType){
  462. let _this = this;
  463. let obj={};
  464. if(doType=='rectify'){//整改
  465. obj.checkHazardId=this.form.checkHazardId;
  466. obj.rectifyType=this.form.rectifyType;
  467. obj.rectifyResult=this.form.rectifyResult;
  468. obj.rectifyMeasure=this.form.rectifyMeasure;
  469. obj.uploadDtoList=this.form.uploadDtoList;
  470. }else if(doType=='reject' ){//复核 驳回
  471. obj.id=this.form.id;
  472. obj.examineResult=0;
  473. obj.examineOpinion=this.form.examineOpinion;
  474. }else if(doType=='pass'){//复核 通过
  475. obj.id=this.form.id;
  476. obj.examineResult=1;
  477. obj.examineOpinion=this.form.examineOpinion;
  478. }
  479. const {data} = await checkHazardAdd(obj);
  480. if(data.code == 200){
  481. uni.showToast({
  482. title: '提交成功',
  483. icon:"none",
  484. mask:true,
  485. duration: 2000
  486. });
  487. uni.navigateTo({
  488. url: '/pages/pages_safetyExamine/examineManage/examineList?pageType='+this.checkType
  489. });
  490. }
  491. },
  492. }
  493. }
  494. </script>
  495. <style lang="stylus" scoped>
  496. .examine{
  497. height:100%;
  498. display flex;
  499. // padding: 0 30rpx;
  500. // box-sizing: border-box;
  501. padding-bottom: 120rpx;
  502. box-sizing: border-box;
  503. .info-max-box{
  504. flex: 1;
  505. overflow: scroll;
  506. padding: 120rpx 0rpx 0;
  507. box-sizing: border-box;
  508. }
  509. /* 隐患检查 */
  510. .header{
  511. width:750rpx;
  512. height: 100rpx;
  513. position: fixed;
  514. top: 0rpx;
  515. z-index: 100;
  516. background: #fff;
  517. .tabTitle_tow{
  518. height: 100rpx;
  519. white-space: nowrap;
  520. display: inline-flex;
  521. .tabTitle_tow_li{
  522. position: relative;
  523. width:152rpx;
  524. height: 100rpx;
  525. text-align center;
  526. padding-top: 26rpx;
  527. box-sizing: border-box;
  528. .tabTitle_tow_text{
  529. display: inline-block;
  530. font-size: 30rpx;
  531. font-family: PingFang SC;
  532. font-weight: 500;
  533. color: #333333;
  534. line-height: 46rpx;
  535. position: relative;
  536. &.on{
  537. color:#0183FA;
  538. }
  539. }
  540. .tabTitle_tow_across{
  541. width: 50rpx;
  542. height: 4rpx;
  543. background: #0183FA;
  544. border-radius: 2rpx;
  545. margin-left: 33%;
  546. display none;
  547. &.on{
  548. display block;
  549. }
  550. }
  551. }
  552. }
  553. }
  554. .basics{
  555. width: 690rpx;
  556. background: #FFFFFF;
  557. border-radius: 20rpx;
  558. padding: 30rpx 30rpx 32rpx;
  559. box-sizing: border-box;
  560. margin: 20rpx 30rpx ;
  561. .basics_li{
  562. height: 80rpx;
  563. display: flex;
  564. justify-content: space-between;
  565. border-bottom: 1rpx solid #D8D8D8;
  566. >text:nth-of-type(1){
  567. font-size: 28rpx;
  568. font-family: PingFang SC-Medium, PingFang SC;
  569. font-weight: 400;
  570. color: #666666;
  571. line-height: 80rpx;
  572. width: 140rpx;
  573. }
  574. >text:nth-of-type(2){
  575. flex: 1;
  576. font-size: 28rpx;
  577. font-family: PingFang SC-Medium, PingFang SC;
  578. font-weight: 400;
  579. color: #333333;
  580. line-height: 80rpx;
  581. text-align: right;
  582. white-space: nowrap;
  583. overflow: hidden;
  584. text-overflow: ellipsis;
  585. }
  586. }
  587. }
  588. .attachment{
  589. width: 690rpx;
  590. background: #FFFFFF;
  591. border-radius: 20rpx;
  592. margin: 20rpx 30rpx 0;
  593. padding-bottom: 32rpx;
  594. box-sizing: border-box;
  595. .attachment_t{
  596. border-bottom: 1rpx solid #D8D8D8;
  597. >text:nth-of-type(1){
  598. font-size: 30rpx;
  599. font-family: PingFang SC-Medium, PingFang SC;
  600. font-weight: 400;
  601. color: #333333;
  602. line-height: 110rpx;
  603. margin-left: 28rpx;
  604. }
  605. >text:nth-of-type(2){
  606. font-size: 30rpx;
  607. font-family: PingFang SC-Medium, PingFang SC;
  608. font-weight: 400;
  609. color: #999999;
  610. line-height: 110rpx;
  611. margin-left: 24rpx;
  612. }
  613. }
  614. .attachment_li{
  615. height: 40rpx;
  616. display: flex;
  617. justify-content: flex-start;
  618. align-items: center;
  619. margin-top: 32rpx;
  620. >img{
  621. width: 30rpx;
  622. height: 26rpx;
  623. margin-right: 20rpx;
  624. margin-left: 50rpx;
  625. }
  626. >text{
  627. flex: 1;
  628. font-size: 28rpx;
  629. font-family: PingFang SC-Medium, PingFang SC;
  630. font-weight: 400;
  631. color: #0183FA;
  632. line-height: 40rpx;
  633. white-space: nowrap;
  634. overflow: hidden;
  635. text-overflow: ellipsis;
  636. }
  637. .attachment_li_del{
  638. width: 30rpx;
  639. height: 30rpx;
  640. }
  641. }
  642. }
  643. .danger{
  644. width: 690rpx;
  645. background: #FFFFFF;
  646. border-radius: 20rpx;
  647. padding: 30rpx 30rpx 32rpx;
  648. box-sizing: border-box;
  649. margin: 20rpx 30rpx ;
  650. .danger_title{
  651. font-size: 30rpx;
  652. font-family: PingFang SC-Medium, PingFang SC;
  653. font-weight: 400;
  654. color: #333333;
  655. line-height:80rpx;
  656. border-bottom: 1rpx solid #D8D8D8;
  657. }
  658. .grade{
  659. height: 80rpx;
  660. display: flex;
  661. justify-content: space-between;
  662. border-bottom: 1rpx solid #D8D8D8;
  663. >text:nth-of-type(1){
  664. font-size: 28rpx;
  665. font-family: PingFang SC-Medium, PingFang SC;
  666. font-weight: 400;
  667. color: #666666;
  668. line-height: 80rpx;
  669. width: 140rpx;
  670. }
  671. >text:nth-of-type(2){
  672. flex: 1;
  673. font-size: 28rpx;
  674. font-family: PingFang SC-Medium, PingFang SC;
  675. font-weight: 400;
  676. color: #333333;
  677. line-height: 80rpx;
  678. text-align: right;
  679. }
  680. }
  681. .project{
  682. .project_t{
  683. font-size: 30rpx;
  684. font-family: PingFang SC-Medium, PingFang SC;
  685. font-weight: 400;
  686. color: #333333;
  687. line-height: 80rpx;
  688. }
  689. .project_b{
  690. min-height: 158rpx;
  691. font-size: 28rpx;
  692. font-family: PingFang SC-Medium, PingFang SC;
  693. font-weight: 400;
  694. color: #333333;
  695. line-height: 40rpx;
  696. padding: 20rpx 14rpx;
  697. box-sizing: border-box;
  698. background: #F5F5F5;
  699. border-radius: 20rpx 20rpx 20rpx 20rpx;
  700. }
  701. .project_b2{
  702. font-size: 26rpx;
  703. font-family: PingFang SC-Medium, PingFang SC;
  704. font-weight: 400;
  705. color: #666666;
  706. line-height: 26rpx;
  707. margin-top: 14rpx;
  708. text-align: right;
  709. }
  710. }
  711. .picture{
  712. .picture_t{
  713. font-size: 30rpx;
  714. font-family: PingFang SC-Medium, PingFang SC;
  715. font-weight: 400;
  716. color: #333333;
  717. line-height: 80rpx;
  718. }
  719. .picture_b{
  720. display: flex;
  721. justify-content: flex-start;
  722. flex-wrap: wrap;
  723. >img{
  724. width: 200rpx;
  725. height: 200rpx;
  726. border-radius: 10rpx 10rpx 10rpx 10rpx;
  727. margin-right: 14rpx;
  728. margin-bottom: 10rpx;
  729. }
  730. >img:nth-of-type(3n+3){
  731. margin-right: 0rpx;
  732. }
  733. }
  734. }
  735. }
  736. /* 待整改 */
  737. .await{
  738. width: 690rpx;
  739. background: #FFFFFF;
  740. border-radius: 20rpx;
  741. padding: 30rpx 30rpx 32rpx;
  742. box-sizing: border-box;
  743. margin: 20rpx 30rpx ;
  744. /* 整改结果 */
  745. .result{
  746. display: flex;
  747. justify-content: flex-start;
  748. border-bottom: 1rpx solid #D8D8D8;
  749. .result_l{
  750. width: 146rpx;
  751. text-align: left;
  752. font-size: 30rpx;
  753. font-family: PingFang SC-Medium, PingFang SC;
  754. font-weight: 400;
  755. color: #333333;
  756. line-height: 80rpx;
  757. }
  758. .result_r{
  759. width: 486rpx;
  760. height: 80rpx;
  761. padding-left: 20rpx;
  762. box-sizing: border-box;
  763. display: flex;
  764. justify-content: flex-end;
  765. align-items: center;
  766. >view{
  767. display: flex;
  768. justify-content: flex-start;
  769. align-items: center;
  770. margin-right: 24rpx;
  771. .result_r_l{
  772. display: inline-block;
  773. width: 30rpx;
  774. height: 30rpx;
  775. border-radius: 50%;
  776. border: 1rpx solid #E0E0E0;
  777. margin-right: 14rpx;
  778. }
  779. .result_r_r{
  780. font-size: 30rpx;
  781. font-family: PingFang SC-Medium, PingFang SC;
  782. font-weight: 400;
  783. color: #333333;
  784. line-height: 80rpx;
  785. }
  786. .checked{
  787. display: inline-block;
  788. width: 30rpx;
  789. height: 30rpx;
  790. border-radius: 50%;
  791. border: 1rpx solid #0183FA;
  792. margin-right: 14rpx;
  793. position: relative;
  794. }
  795. .checked::after{
  796. content: '';
  797. position: absolute;
  798. top: 5rpx;
  799. left:5rpx;
  800. width: 20rpx;
  801. height: 20rpx;
  802. border-radius: 50%;
  803. background: #0183FA;
  804. }
  805. }
  806. }
  807. }
  808. /* 原因描述 */
  809. .describe{
  810. .describe_l{
  811. width: 158rpx;
  812. text-align: left;
  813. font-size: 30rpx;
  814. font-family: PingFang SC-Medium, PingFang SC;
  815. font-weight: 400;
  816. color: #333333;
  817. line-height: 80rpx;
  818. }
  819. .describe_r{
  820. width: 630rpx;
  821. height: 158rpx;
  822. border-radius: 20rpx 20rpx 20rpx 20rpx;
  823. opacity: 1;
  824. border: 1rpx solid #E0E0E0;
  825. padding: 20rpx 14rpx;
  826. box-sizing: border-box;
  827. font-size: 30rpx;
  828. font-family: PingFang SC-Medium, PingFang SC;
  829. font-weight: 400;
  830. color: #333333;
  831. line-height: 34rpx;
  832. }
  833. }
  834. /* 上传照片 */
  835. .check-for-img-max-box{
  836. .left-title-p{
  837. width: 100%;
  838. text-align: left;
  839. font-size: 30rpx;
  840. font-family: PingFang SC-Medium, PingFang SC;
  841. font-weight: 400;
  842. color: #333333;
  843. line-height: 80rpx;
  844. }
  845. .right-img-box{
  846. .img-box{
  847. display inline-block;
  848. height:200rpx;
  849. width:200rpx;
  850. position relative
  851. margin:0 14rpx 20rpx 0;
  852. border-radius 10rpx;
  853. overflow hidden;
  854. .img-data{
  855. height:200rpx;
  856. width:200rpx;
  857. }
  858. .position-img{
  859. position absolute
  860. right:0;
  861. top:0;
  862. width:36rpx;
  863. height:36rpx;
  864. }
  865. }
  866. .img-box:nth-of-type(3n+3){
  867. margin-right: 0rpx;
  868. }
  869. .add-button{
  870. margin:0 0rpx 20rpx 0;
  871. border-radius 10rpx;
  872. overflow hidden;
  873. display inline-block
  874. height:200rpx;
  875. width:200rpx;
  876. }
  877. }
  878. }
  879. }
  880. /* 待复核 */
  881. .review{
  882. width: 690rpx;
  883. background: #FFFFFF;
  884. border-radius: 20rpx;
  885. padding: 30rpx 30rpx 32rpx;
  886. box-sizing: border-box;
  887. margin: 20rpx 30rpx ;
  888. /* 审核意见 */
  889. .describe{
  890. .describe_l{
  891. width: 158rpx;
  892. text-align: left;
  893. font-size: 30rpx;
  894. font-family: PingFang SC-Medium, PingFang SC;
  895. font-weight: 400;
  896. color: #666;
  897. line-height: 80rpx;
  898. }
  899. .describe_r{
  900. width: 630rpx;
  901. height: 158rpx;
  902. border-radius: 20rpx 20rpx 20rpx 20rpx;
  903. opacity: 1;
  904. border: 1rpx solid #E0E0E0;
  905. padding: 20rpx 14rpx;
  906. box-sizing: border-box;
  907. font-size: 30rpx;
  908. font-family: PingFang SC-Medium, PingFang SC;
  909. font-weight: 400;
  910. color: #333333;
  911. line-height: 34rpx;
  912. }
  913. }
  914. /* 快捷输入 */
  915. .quick{
  916. .quick_l{
  917. font-size: 30rpx;
  918. font-family: PingFang SC-Medium, PingFang SC;
  919. font-weight: 400;
  920. color: #666666;
  921. line-height: 80rpx;
  922. }
  923. .quick_r{
  924. >text{
  925. display: inline-block;
  926. font-size: 30rpx;
  927. font-family: PingFang SC-Medium, PingFang SC;
  928. font-weight: 400;
  929. line-height: 60rpx;
  930. padding: 0 24rpx;
  931. box-sizing: border-box;
  932. border-radius: 10rpx 10rpx 10rpx 10rpx;
  933. margin-right: 20rpx;
  934. margin-bottom: 30rpx;
  935. }
  936. .quick_A{
  937. color: #666666;
  938. background: #F5F5F5;
  939. }
  940. .quick_B{
  941. color: #0183FA;
  942. background: rgba(1,131,250,0.2);
  943. }
  944. }
  945. }
  946. }
  947. /* 暂无法整改 */
  948. .incapable{
  949. width: 690rpx;
  950. background: #FFFFFF;
  951. border-radius: 20rpx;
  952. padding: 30rpx 30rpx 32rpx;
  953. box-sizing: border-box;
  954. margin: 20rpx 30rpx ;
  955. }
  956. /* 整改结果 */
  957. .abarbeitung_result{
  958. width: 690rpx;
  959. background: #FFFFFF;
  960. border-radius: 20rpx;
  961. padding: 30rpx 30rpx 32rpx;
  962. box-sizing: border-box;
  963. margin: 20rpx 30rpx ;
  964. }
  965. /* 审核结果 */
  966. .review_result{
  967. width: 690rpx;
  968. background: #FFFFFF;
  969. border-radius: 20rpx;
  970. padding: 30rpx 30rpx 32rpx;
  971. box-sizing: border-box;
  972. margin: 20rpx 30rpx ;
  973. .audit{
  974. height: 80rpx;
  975. display: flex;
  976. justify-content: space-between;
  977. border-bottom: 1rpx solid #D8D8D8;
  978. >text:nth-of-type(1){
  979. font-size: 28rpx;
  980. font-family: PingFang SC-Medium, PingFang SC;
  981. font-weight: 400;
  982. color: #666666;
  983. line-height: 80rpx;
  984. width: 140rpx;
  985. }
  986. >img{
  987. width: 80rpx;
  988. height: 70rpx;
  989. }
  990. }
  991. }
  992. .bottom_btn{
  993. position: fixed;
  994. bottom: 26rpx;
  995. left: 30rpx;
  996. font-size: 30rpx;
  997. font-family: PingFang SC-Medium, PingFang SC;
  998. font-weight: 400;
  999. color: #FFFFFF;
  1000. line-height: 90rpx;
  1001. width: 690rpx;
  1002. height: 90rpx;
  1003. background: #0183FA;
  1004. border-radius: 20rpx;
  1005. text-align: center;
  1006. }
  1007. .bottom_btn_tow{
  1008. display: flex;
  1009. justify-content: center;
  1010. position: fixed;
  1011. bottom: 26rpx;
  1012. left: 30rpx;
  1013. width: 690rpx;
  1014. height: 90rpx;
  1015. >text{
  1016. flex: 1;
  1017. display: inline-block;
  1018. font-size: 30rpx;
  1019. font-family: PingFang SC-Medium, PingFang SC;
  1020. font-weight: 400;
  1021. color: #FFFFFF;
  1022. line-height: 90rpx;
  1023. text-align: center
  1024. }
  1025. >text:nth-of-type(1){
  1026. background: #FA8201;
  1027. border-radius: 45rpx 0rpx 0rpx 45rpx;
  1028. }
  1029. >text:nth-of-type(2){
  1030. background: #0183FA;
  1031. border-radius: 0rpx 45rpx 45rpx 0rpx;
  1032. }
  1033. }
  1034. }
  1035. </style>