examineAdd.vue 27 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072
  1. <!-- 安全检查-开展检查 -->
  2. <template>
  3. <view class="examine">
  4. <scroll-view scroll-y @scrolltolower="scrollGet" class="info-max-box">
  5. <view class="basics">
  6. <view class="basics_li">
  7. <view class="basics_li_l">实验室</view>
  8. <view class="basics_li_r lab_r">
  9. <input class="picker-text" @click="popupClick(1)" type="text" disabled v-model="form.subjectName" placeholder="请选择房间" placeholder-style="font-size: 30rpx;color:#333;">
  10. <view class="img-box" @click.stop="saoCode">
  11. <img src="@/pages_safetyExamine/images/icon_aqjc_sm.png">
  12. </view>
  13. </view>
  14. </view>
  15. <view class="basics_li">
  16. <view class="basics_li_l">学院</view>
  17. <picker @change="collegeChange" :value="collegeIndex" :range="collegeArray" class="scope_r">
  18. <view class="basics_li_r college_r">
  19. <view>{{form.collegeName?form.collegeName:'选择学院'}}</view>
  20. <img src="@/pages_safetyExamine/images/icon_06.png">
  21. </view>
  22. </picker>
  23. </view>
  24. <!-- <view class="basics_li">
  25. <view class="basics_li_l">楼栋</view>
  26. <view class="basics_li_r building_r">
  27. <input class="picker-text" type="text" disabled v-model="form.buildName" placeholder="选择实验室后自动匹配" placeholder-style="font-size: 30rpx;color:#333;">
  28. </view>
  29. </view> -->
  30. <view class="basics_li">
  31. <view class="basics_li_l">楼栋</view>
  32. <picker @change="buildingChange" :value="collegeIndex" :range="buildingArray" class="scope_r">
  33. <view class="basics_li_r college_r">
  34. <view>{{form.buildName?form.buildName:'选择楼栋'}}</view>
  35. <img src="@/pages_safetyExamine/images/icon_06.png">
  36. </view>
  37. </picker>
  38. </view>
  39. <view class="basics_li">
  40. <view class="basics_li_l">计划标题</view>
  41. <picker @change="planChange" :value="planIndex" :range="planArray" class="scope_r">
  42. <view class="basics_li_r college_r">
  43. <view>{{form.title?form.title:'选择计划标题'}}</view>
  44. <img src="@/pages_safetyExamine/images/icon_06.png">
  45. </view>
  46. </picker>
  47. </view>
  48. <view class="basics_li">
  49. <view class="basics_li_l">检查类型</view>
  50. <picker @change="categoryChange" :value="categoryIndex" :disabled="isCustom" :range="categoryArray" class="scope_r">
  51. <view class="basics_li_r college_r">
  52. <view>{{form.checkType?(form.checkType==1?'校院巡查':'实验室自查'):'选择检查类型'}}</view>
  53. <img src="@/pages_safetyExamine/images/icon_06.png">
  54. </view>
  55. </picker>
  56. </view>
  57. <view class="period">
  58. <view class="period_l">检查周期</view>
  59. <view class="period_r">
  60. <picker mode="date" @change="startChange(form,$event)" :disabled="isCustom">
  61. <input class="picker-text" disabled type="text" v-model="form.cycleStartTime" placeholder="开始时间">
  62. </picker>
  63. <view>至</view>
  64. <picker mode="date" @change="endChange(form,$event)" :disabled="isCustom">
  65. <input class="picker-text2" disabled type="text" v-model="form.cycleEndTime" placeholder="结束时间">
  66. </picker>
  67. </view>
  68. </view>
  69. <view class="custom" @click="customFun">{{isCustom?'自定义输入':'选择计划'}}</view>
  70. </view>
  71. <view class="inspect">
  72. <view class="inspect_li">
  73. <view class="inspect_li_l">检查结果</view>
  74. <picker @change="resultChange" :value="resultIndex" :range="resultArray" class="scope_r">
  75. <view class="inspect_li_r college_r">
  76. <view>{{form.checkResult==1?'符合':'不符合'}}</view>
  77. <img src="@/pages_safetyExamine/images/icon_06.png">
  78. </view>
  79. </picker>
  80. </view>
  81. <view class="inspect_li" v-if="form.checkResult==0">
  82. <view class="inspect_li_l">整改日期</view>
  83. <picker mode="date" @change="rectifyDeadline(form,$event)">
  84. <view class="inspect_li_r date_r">
  85. <input disabled class="picker-text" type="text" v-model="form.rectifyDeadline" placeholder="请选择日期" placeholder-style="font-size: 30rpx;color:#333;">
  86. <img src="@/pages_safetyExamine/images/icon_rl.png">
  87. </view>
  88. </picker>
  89. </view>
  90. <view class="inspect_li" v-if="form.checkResult==0">
  91. <view class="inspect_li_l">整改通知</view>
  92. <view class="inform_r">
  93. <view v-for="(item,index) in informArray" :key="index" @click="tabClick(index)"><text :class="informIndex==index?'checked':'inform_r_l' "></text><text class="inform_r_r">{{item}}</text></view>
  94. </view>
  95. </view>
  96. </view>
  97. </scroll-view>
  98. <!-- 房间选择弹出层 -->
  99. <view class="popup-max-box" v-if="popupType">
  100. <view class="popup-null" @click="popupClick(2)"></view>
  101. <view class="popup-big-box">
  102. <view class="popup-input-box">
  103. <input type="text" maxlength="10" v-model="room" placeholder="请输入房间号">
  104. <view @click="buildBySub">搜索</view>
  105. </view>
  106. <view class="popup-for-max-box">
  107. <view class="popup-for-null" v-if="!roomList[0]">暂无数据</view>
  108. <view class="popup-for-box" v-for="(item,index) in roomList" :key="index">
  109. <view class="name-p">{{item.name}}</view>
  110. <view class="button-p" @click="popupClickItem(item)">确定</view>
  111. </view>
  112. </view>
  113. </view>
  114. </view>
  115. <!-- 检查名称弹窗 -->
  116. <uni-popup ref="popup" class="inspect_name" type="bottom">
  117. <view class="popup-content">
  118. <view class="inspect_name_t">
  119. <input type="text" v-model="customTitle" maxlength="20" placeholder="请输入计划标题"/>
  120. </view>
  121. <view class="inspect_name_b">
  122. <text @click="titleCancel()">取消</text>
  123. <text @click="titleConfirm()">确定</text>
  124. </view>
  125. </view>
  126. </uni-popup>
  127. <view class="bottom_btn" @click="handleClick('nextStep')" v-if="form.checkResult==0">下一步</view>
  128. <view class="bottom_btn" @click="submitForm()" v-if="form.checkResult==1">提交</view>
  129. </view>
  130. </template>
  131. <script>
  132. import { config } from '@/api/request/config.js'
  133. import { buildBySub,listDepartments,subjectList,getCheckPlanBySubId,checkManageAdd,findCheckManage,getBuildingList} from '@/api/index.js'
  134. export default {
  135. name: "rectifyList",
  136. components: {
  137. },
  138. data() {
  139. return {
  140. id:'',
  141. pageType:0,
  142. //列表请求参数
  143. getData:{
  144. pageNum:1,
  145. pageSize:20,
  146. },
  147. customTitle:'',
  148. form:{
  149. id:'',
  150. checkPlanId:'',
  151. manageStatus:'',//保存1 提交2
  152. subId:'',//实验室
  153. subjectName:'',
  154. title:'',//计划标题
  155. deptId:'',//学院
  156. collegeName:'',
  157. buildId:'',//楼栋
  158. buildName:'',
  159. roomNumber:'',//房间号
  160. checkType:'',// 检查类型(1校院巡查 2实验室自查)
  161. checkResult:'1',// 检查结果 0不符合 1符合
  162. rectifyDeadline:'',//整改期限
  163. rectifyNotice:'1',//整改通知(1整改告知书 2整改通知书)
  164. cycleStartTime:'',
  165. cycleEndTime:'',
  166. checkHazardDtoList:[
  167. {
  168. voiceRemark:[],//语音备忘存储
  169. hazardLevel:2,//隐患等级
  170. hazardLevelName:'一般隐患',//隐患等级
  171. hazardCheckCode:'', //检查项目code序号
  172. hazardCheckName:'', //检查项目名称
  173. hazardCheckPro:'', //最后一级的id
  174. hazardCheckPoint:'',// 检查要点
  175. hazardDescribe:'', //隐患描述
  176. uploadDtoList:[],//隐患照片
  177. }
  178. ],
  179. },
  180. collegeIndex :0,
  181. collegeArray:[],
  182. categoryIndex :0,
  183. categoryArray:['校院巡查','实验室自查'],
  184. planIndex :0,
  185. planArray:[],
  186. planList:[],
  187. resultIndex :0,
  188. resultArray:['符合','不符合'],
  189. informIndex:0,
  190. informArray:['整改告知书','整改通知书'],
  191. //房间弹层 状态
  192. popupType:false,
  193. //房间搜索字段
  194. room:"",
  195. roomList:[],
  196. item:{},
  197. isCustom:true,
  198. buildingArray:[],
  199. buildingList:[],
  200. //扫一扫进入
  201. laboratoryList:[],
  202. }
  203. },
  204. onLoad(option) {
  205. if(option.id){
  206. this.id=option.id
  207. this.findCheckManage()
  208. }
  209. if(option.form){
  210. this.form=JSON.parse(decodeURIComponent(option.form));
  211. }
  212. //通过实验室id查询计划
  213. if(option.subId){
  214. this.form.subId=option.subId
  215. this.getCheckPlanBySubId(option.subId)
  216. this.getByIdLaboratoryList();
  217. }
  218. },
  219. onShow() {
  220. },
  221. mounted(){
  222. this.listDepartments();
  223. },
  224. methods: {
  225. //滚动事件
  226. scrollGet(){},
  227. handleClick(doType){
  228. let self=this;
  229. if( doType=='nextStep'){//下一步
  230. uni.redirectTo({
  231. url: '/pages_safetyExamine/examineManage/examineAddTow?form='+encodeURIComponent(JSON.stringify(this.form))
  232. });
  233. }
  234. },
  235. customFun(){
  236. let self=this;
  237. self.isCustom=!self.isCustom
  238. if(self.isCustom){//自定义
  239. self.form.title='';
  240. self.form.checkType='';
  241. self.form.cycleStartTime='';
  242. self.form.cycleEndTime='';
  243. }else{//选择计划
  244. self.form.title='';
  245. self.form.checkType='';
  246. self.form.cycleStartTime='';
  247. self.form.cycleEndTime='';
  248. self.$refs.popup.open()
  249. }
  250. },
  251. titleCancel(){
  252. let self=this;
  253. self.$refs.popup.close()
  254. },
  255. titleConfirm(){
  256. let self=this;
  257. this.form.title=this.customTitle;
  258. self.$refs.popup.close()
  259. },
  260. //开始时间选中事件
  261. startChange(form,e){
  262. if(new Date(e.target.value).getTime()>new Date(form.cycleEndTime).getTime()){
  263. uni.showToast({
  264. title: '结束时间不能小于开始时间',
  265. icon:"none",
  266. mask:true,
  267. duration: 2000
  268. });
  269. }else{
  270. form.cycleStartTime=e.target.value
  271. }
  272. console.log(e.target.value)
  273. console.log(form.cycleStartTime)
  274. },
  275. //结束时间选中事件
  276. endChange(form,e){
  277. if(new Date(form.cycleStartTime).getTime()>=new Date(e.target.value).getTime()){
  278. uni.showToast({
  279. title: '结束时间不能小于开始时间',
  280. icon:"none",
  281. mask:true,
  282. duration: 2000
  283. });
  284. }else{
  285. form.cycleEndTime=e.target.value
  286. }
  287. },
  288. //详情
  289. async findCheckManage(){
  290. let _this = this;
  291. const {data} = await findCheckManage({id:this.id});
  292. if(data.code == 200){
  293. this.form.id=data.data.id;
  294. this.form.checkPlanId=data.data.checkPlanId;
  295. this.form.subId=data.data.subId;
  296. this.form.subjectName=data.data.subjectName;
  297. this.form.title=data.data.title;
  298. this.form.deptId=data.data.deptId;
  299. this.form.collegeName=data.data.collegeName;
  300. this.form.buildId=data.data.buildId;
  301. this.form.buildName=data.data.buildName;
  302. this.form.checkType=data.data.checkType;
  303. this.form.roomNumber=data.data.roomNumber;
  304. this.form.checkResult=data.data.checkResult==null?'1':data.data.checkResult;
  305. this.form.rectifyDeadline=data.data.rectifyDeadline;
  306. this.form.rectifyNotice=data.data.rectifyNotice==null?'1':data.data.rectifyNotice;
  307. if(data.data.checkHazardDtoList.length>0){//隐患项
  308. this.form.checkHazardDtoList=data.data.checkHazardDtoList;
  309. //语音备注
  310. for(let i=0;i<this.form.checkHazardDtoList.length;i++){
  311. if(this.form.checkHazardDtoList[i].voiceRemark){
  312. this.form.checkHazardDtoList[i].voiceRemark=JSON.parse(this.form.checkHazardDtoList[i].voiceRemark)
  313. }else{
  314. this.form.checkHazardDtoList[i].voiceRemark=[];
  315. }
  316. }
  317. }else{
  318. this.form.checkHazardDtoList[0].voiceRemark=[];
  319. }
  320. this.form.id=data.data.id;
  321. //根据实验室id查询实验室计划
  322. if(data.data.subId){
  323. this.form.cycleStartTime=data.data.cycleStartTime;
  324. this.form.cycleEndTime=data.data.cycleEndTime;
  325. this.getCheckPlanBySubId(data.data.subId)
  326. }
  327. console.log(this.form)
  328. }
  329. },
  330. //查询学院列表
  331. async listDepartments(){
  332. let _this = this;
  333. const {data} = await listDepartments();
  334. if(data.code == 200){
  335. for(let i=0;i<data.data.length;i++){
  336. _this.collegeArray.push(data.data[i].deptName)
  337. }
  338. _this.collegeList=data.data;
  339. }
  340. },
  341. //根据实验室id查询该实验室有关计划
  342. async getCheckPlanBySubId(subId){
  343. let _this = this;
  344. const {data} = await getCheckPlanBySubId({'subId':subId});
  345. if(data.code == 200){
  346. for(let i=0;i<data.data.length;i++){
  347. _this.planArray.push(data.data[i].title)
  348. }
  349. _this.planList=data.data;
  350. }
  351. },
  352. //根据学院id查询楼栋
  353. async getBuildingList(deptId){
  354. let _this = this;
  355. const {data} = await getBuildingList(deptId);
  356. if(data.code == 200){
  357. console.log(_this.form.buildId)
  358. for(let i=0;i<data.data.length;i++){
  359. _this.buildingArray.push(data.data[i].deptName)
  360. if(_this.form.buildId==data.data[i].deptId){
  361. this.$set(this.form,"buildName",data.data[i].deptName)
  362. }
  363. }
  364. console.log(_this.form.buildName)
  365. _this.buildingList=data.data;
  366. }
  367. },
  368. //楼栋选中
  369. buildingChange(e){
  370. this.form.buildId=this.buildingList[e.target.value].deptId
  371. this.form.buildName=this.buildingList[e.target.value].deptName
  372. },
  373. //学院选中
  374. collegeChange(e){
  375. this.collegeIndex = e.target.value;
  376. this.form.deptId=this.collegeList[e.target.value].deptId
  377. this.form.collegeName=this.collegeList[e.target.value].deptName
  378. console.log()
  379. this.getBuildingList(this.form.deptId)
  380. },
  381. //检查类型
  382. categoryChange(e){
  383. this.categoryIndex = e.target.value;
  384. if(e.target.value==0){
  385. this.form.checkType=1
  386. }else if(e.target.value==1){
  387. this.form.checkType=2
  388. }
  389. },
  390. //计划
  391. planChange(e){
  392. this.planIndex = e.target.value;
  393. this.form.title=this.planList[e.target.value].title
  394. this.form.checkPlanId=this.planList[e.target.value].id
  395. this.form.subId=this.planList[e.target.value].subId;
  396. this.form.subjectName=this.planList[e.target.value].subjectName;
  397. this.form.deptId=this.planList[e.target.value].deptId;
  398. this.form.collegeName=this.planList[e.target.value].collegeName;
  399. this.form.buildId=this.planList[e.target.value].buildId;
  400. this.form.buildName=this.planList[e.target.value].buildName;
  401. this.form.checkType=this.planList[e.target.value].checkType;
  402. this.form.checkResult=this.planList[e.target.value].checkResult==null?'1':data.data.checkResult;
  403. this.form.cycleStartTime=this.planList[e.target.value].cycleStartTime;
  404. this.form.cycleEndTime=this.planList[e.target.value].cycleEndTime;
  405. this.form.cycleEndTime=this.planList[e.target.value].cycleEndTime;
  406. },
  407. resultChange(e){
  408. this.resultIndex = e.target.value;
  409. if(e.target.value==0){
  410. this.form.checkResult=1;
  411. }else if(e.target.value==1){
  412. this.form.checkResult=0;
  413. }
  414. },
  415. //开始时间选中事件
  416. rectifyDeadline(form,e){
  417. form.rectifyDeadline=e.target.value
  418. },
  419. //整改通知
  420. tabClick(index) {
  421. this.informIndex = index;
  422. if(index==0){
  423. this.rectifyNotice='1';
  424. }else if(index==1){
  425. this.rectifyNotice='2';
  426. }
  427. },
  428. //搜索房间弹层开关
  429. popupClick(type){
  430. if(type == 1){
  431. this.room = "";
  432. this.roomList = [];
  433. this.popupType = true;
  434. }else if(type == 2){
  435. this.popupType = false;
  436. }
  437. },
  438. //扫一扫进入通过id查询实验室列表
  439. async getByIdLaboratoryList(){
  440. let self = this;
  441. const {data} = await buildBySub({'name':this.room});
  442. if(data.code==200){
  443. if(data.data[0]){
  444. this.laboratoryList = data.data;
  445. data.data.forEach(function(item){
  446. if(self.form.subId==item.id){
  447. self.form.subjectName=item.name;
  448. self.form.deptId=item.deptId;
  449. self.form.buildId=item.buildId;
  450. self.form.roomNumber=item.room;
  451. }
  452. })
  453. //获取学院名称
  454. for(let i=0;i<this.collegeList.length;i++){
  455. if(this.collegeList[i].deptId==self.form.deptId){
  456. this.$set(this.form,"collegeName",this.collegeList[i].deptName)
  457. }
  458. }
  459. //请求楼栋数据
  460. this.getBuildingList(self.form.deptId)
  461. }
  462. }
  463. },
  464. //搜索房间接口
  465. async buildBySub(){
  466. let self = this;
  467. if(!this.room){
  468. uni.showToast({
  469. title: '请输入要搜索房间号',
  470. icon:"none",
  471. mask:true,
  472. duration: 2000
  473. });
  474. return
  475. }
  476. const {data} = await buildBySub({'name':this.room});
  477. if(data.code==200){
  478. if(data.data[0]){
  479. this.roomList = data.data;
  480. }else{
  481. uni.showToast({
  482. title: '未找到相关房间',
  483. icon:"none",
  484. mask:true,
  485. duration: 2000
  486. });
  487. }
  488. }
  489. },
  490. //确认搜索房间
  491. popupClickItem(item){
  492. this.$set(this.form,"subId",item.id)
  493. this.$set(this.form,"subjectName",item.name)
  494. this.$set(this.form,"deptId",item.deptId)
  495. this.$set(this.form,"buildId",item.buildId)
  496. this.$set(this.form,"roomNumber",item.room)
  497. //获取学院名称
  498. for(let i=0;i<this.collegeList.length;i++){
  499. if(this.collegeList[i].deptId==item.deptId){
  500. this.$set(this.form,"collegeName",this.collegeList[i].deptName)
  501. }
  502. }
  503. //请求楼栋数据
  504. this.getBuildingList(item.deptId)
  505. this.popupType = false;
  506. this.getCheckPlanBySubId(item.id)
  507. },
  508. //调用摄像头
  509. saoCode(){
  510. let self = this;
  511. uni.scanCode({
  512. onlyFromCamera: true,
  513. success: function (res) {
  514. if(res.result.indexOf("code") != -1 && res.result.indexOf("-") != -1 && res.result.indexOf("&") != -1){
  515. let codeRoom = "";
  516. let newList = res.result.split("?")[1].split("&")
  517. let list = newList[0].split("=")[1].split("-")
  518. codeRoom = list[1];
  519. if(codeRoom){
  520. self.roomList = [];
  521. self.room = codeRoom;
  522. self.buildBySub();
  523. self.popupType = true;
  524. }else{
  525. uni.showToast({
  526. title: '请扫描正确的二维码',
  527. icon:"none",
  528. mask:true,
  529. duration: 2000
  530. });
  531. }
  532. }else{
  533. uni.showToast({
  534. title: '请扫描正确的二维码',
  535. icon:"none",
  536. mask:true,
  537. duration: 2000
  538. });
  539. }
  540. }
  541. });
  542. },
  543. //提交
  544. async submitForm(){
  545. let _this = this;
  546. this.form.manageStatus=2;
  547. const {data} = await checkManageAdd(_this.form);
  548. if(data.code == 200){
  549. uni.showToast({
  550. title: '提交成功',
  551. icon:"none",
  552. mask:true,
  553. duration: 2000
  554. });
  555. uni.redirectTo({
  556. url: '/pages_safetyExamine/examineManage/examineList'
  557. });
  558. }
  559. },
  560. }
  561. }
  562. </script>
  563. <style lang="stylus" scoped>
  564. .examine{
  565. height:100%;
  566. display flex;
  567. box-sizing: border-box;
  568. .info-max-box{
  569. flex: 1;
  570. overflow: scroll;
  571. padding: 20rpx 0rpx 128rpx;
  572. box-sizing: border-box;
  573. }
  574. .basics{
  575. margin: 0 30rpx;
  576. width: 690rpx;
  577. height: 740rpx;
  578. background: #FFFFFF;
  579. border-radius: 20rpx;
  580. padding: 30rpx 28rpx 0;
  581. box-sizing: border-box;
  582. .basics_li{
  583. display: flex;
  584. justify-content: flex-start;
  585. margin-bottom: 24rpx;
  586. .basics_li_l{
  587. width: 146rpx;
  588. text-align: left;
  589. font-size: 30rpx;
  590. font-family: PingFang SC-Medium, PingFang SC;
  591. font-weight: 400;
  592. color: #333333;
  593. line-height: 80rpx;
  594. }
  595. .basics_li_r{
  596. width: 486rpx;
  597. height: 80rpx;
  598. border-radius: 10rpx;
  599. opacity: 1;
  600. border: 1rpx solid #E0E0E0;
  601. padding-left: 20rpx;
  602. box-sizing: border-box;
  603. }
  604. /* 学院 */
  605. .college_r{
  606. width: 486rpx;
  607. height: 80rpx;
  608. border-radius: 10rpx;
  609. border: 1rpx solid #E0E0E0;
  610. display: flex;
  611. justify-content: flex-start;
  612. align-items: center;
  613. >view{
  614. flex:1;
  615. line-height:80rpx;
  616. font-size: 30rpx;
  617. font-family: PingFang SC-Medium, PingFang SC;
  618. font-weight: 400;
  619. color: #333333;
  620. line-height: 80rpx;
  621. white-space: nowrap;
  622. overflow: hidden;
  623. text-overflow: ellipsis;
  624. }
  625. >img{
  626. width: 14rpx;
  627. height: 8rpx;
  628. margin-right: 30rpx;
  629. }
  630. }
  631. /* 实验室 */
  632. .lab_r{
  633. width: 486rpx;
  634. height: 80rpx;
  635. display: flex;
  636. justify-content: flex-start;
  637. .picker-text{
  638. width: 438rpx;
  639. height: 80rpx;
  640. }
  641. .img-box{
  642. width: 48rpx;
  643. >img{
  644. width:30rpx;
  645. height:28rpx;
  646. margin:26rpx 18rpx 0 0;
  647. }
  648. }
  649. }
  650. /* 楼栋 */
  651. .building_r{
  652. width: 486rpx;
  653. height: 80rpx;
  654. >input{
  655. height: 80rpx;
  656. font-size: 30rpx;
  657. font-family: PingFang SC-Medium, PingFang SC;
  658. font-weight: 400;
  659. color: #333333;
  660. line-height: 80rpx;
  661. }
  662. }
  663. }
  664. .period{
  665. display: flex;
  666. justify-content: flex-start;
  667. align-items: center;
  668. margin-bottom: 24rpx;
  669. .period_l{
  670. width: 146rpx;
  671. font-size: 30rpx;
  672. font-family: PingFang SC-Medium, PingFang SC;
  673. font-weight: 400;
  674. color: #333333;
  675. line-height: 42rpx;
  676. text-align: left;
  677. }
  678. .period_r{
  679. width: 490rpx;
  680. height: 80rpx;
  681. border-radius: 10rpx;
  682. border: 1rpx solid #E0E0E0;
  683. display: flex;
  684. justify-content: flex-start;
  685. align-items: center;
  686. .picker-text{
  687. font-size: 30rpx;
  688. font-family: PingFang SC-Medium, PingFang SC;
  689. font-weight: 400;
  690. color: #333;
  691. line-height: 80rpx;
  692. width: 230rpx;
  693. text-align: center;
  694. }
  695. .picker-text2{
  696. font-size: 30rpx;
  697. font-family: PingFang SC-Medium, PingFang SC;
  698. font-weight: 400;
  699. color: #333;
  700. line-height: 80rpx;
  701. width: 230rpx;
  702. text-align: center;
  703. }
  704. }
  705. }
  706. .custom{
  707. width: 150rpx;
  708. height: 60rpx;
  709. border-radius: 10rpx 10rpx 10rpx 10rpx;
  710. opacity: 1;
  711. border: 1rpx solid #0183FA;
  712. font-size: 26rpx;
  713. font-family: PingFang SC-Medium, PingFang SC;
  714. font-weight: 400;
  715. color: #0183FA;
  716. line-height: 60rpx;
  717. text-align: center;
  718. float: right;
  719. }
  720. }
  721. .attachment{
  722. width: 690rpx;
  723. background: #FFFFFF;
  724. border-radius: 20rpx;
  725. margin: 20rpx 30rpx 0;
  726. padding-bottom: 32rpx;
  727. box-sizing: border-box;
  728. .attachment_t{
  729. border-bottom: 1rpx solid #D8D8D8;
  730. >text:nth-of-type(1){
  731. font-size: 30rpx;
  732. font-family: PingFang SC-Medium, PingFang SC;
  733. font-weight: 400;
  734. color: #333333;
  735. line-height: 110rpx;
  736. margin-left: 28rpx;
  737. }
  738. >text:nth-of-type(2){
  739. font-size: 30rpx;
  740. font-family: PingFang SC-Medium, PingFang SC;
  741. font-weight: 400;
  742. color: #999999;
  743. line-height: 110rpx;
  744. margin-left: 24rpx;
  745. }
  746. }
  747. .attachment_li{
  748. height: 40rpx;
  749. display: flex;
  750. justify-content: flex-start;
  751. align-items: center;
  752. margin-top: 32rpx;
  753. >img{
  754. width: 30rpx;
  755. height: 26rpx;
  756. margin-right: 20rpx;
  757. margin-left: 50rpx;
  758. }
  759. >text{
  760. flex: 1;
  761. font-size: 28rpx;
  762. font-family: PingFang SC-Medium, PingFang SC;
  763. font-weight: 400;
  764. color: #0183FA;
  765. line-height: 40rpx;
  766. white-space: nowrap;
  767. overflow: hidden;
  768. text-overflow: ellipsis;
  769. }
  770. .attachment_li_del{
  771. width: 30rpx;
  772. height: 30rpx;
  773. }
  774. }
  775. }
  776. .inspect{
  777. margin: 20rpx 30rpx 0;
  778. width: 690rpx;
  779. height: auto;
  780. background: #FFFFFF;
  781. border-radius: 20rpx;
  782. padding: 40rpx 28rpx 20rpx;
  783. box-sizing: border-box;
  784. .inspect_li{
  785. display: flex;
  786. justify-content: flex-start;
  787. margin-bottom: 24rpx;
  788. .inspect_li_l{
  789. width: 146rpx;
  790. text-align: left;
  791. font-size: 30rpx;
  792. font-family: PingFang SC-Medium, PingFang SC;
  793. font-weight: 400;
  794. color: #333333;
  795. line-height: 80rpx;
  796. }
  797. .inspect_li_r{
  798. width: 486rpx;
  799. height: 80rpx;
  800. border-radius: 10rpx;
  801. opacity: 1;
  802. border: 1rpx solid #E0E0E0;
  803. padding-left: 20rpx;
  804. box-sizing: border-box;
  805. }
  806. .college_r{
  807. width: 486rpx;
  808. height: 80rpx;
  809. border-radius: 10rpx;
  810. border: 1rpx solid #E0E0E0;
  811. display: flex;
  812. justify-content: flex-start;
  813. align-items: center;
  814. >view{
  815. flex:1;
  816. line-height:80rpx;
  817. font-size: 30rpx;
  818. font-family: PingFang SC-Medium, PingFang SC;
  819. font-weight: 400;
  820. color: #333333;
  821. line-height: 80rpx;
  822. }
  823. >img{
  824. width: 14rpx;
  825. height: 8rpx;
  826. margin-right: 30rpx;
  827. }
  828. }
  829. /* 整改日期 */
  830. .date_r{
  831. width: 486rpx;
  832. height: 80rpx;
  833. display: flex;
  834. justify-content: flex-start;
  835. .picker-text{
  836. width: 438rpx;
  837. height: 80rpx;
  838. }
  839. >img{
  840. width:30rpx;
  841. height:28rpx;
  842. margin:16rpx 18rpx 0 0;
  843. }
  844. }
  845. /* 整改通知 */
  846. .inform_r{
  847. width: 486rpx;
  848. height: 80rpx;
  849. padding-left: 20rpx;
  850. box-sizing: border-box;
  851. display: flex;
  852. justify-content: flex-start;
  853. align-items: center;
  854. >view{
  855. display: flex;
  856. justify-content: flex-start;
  857. align-items: center;
  858. margin-right: 24rpx;
  859. .inform_r_l{
  860. display: inline-block;
  861. width: 30rpx;
  862. height: 30rpx;
  863. border-radius: 50%;
  864. border: 1rpx solid #E0E0E0;
  865. margin-right: 14rpx;
  866. }
  867. .inform_r_r{
  868. font-size: 30rpx;
  869. font-family: PingFang SC-Medium, PingFang SC;
  870. font-weight: 400;
  871. color: #333333;
  872. line-height: 80rpx;
  873. }
  874. .checked{
  875. display: inline-block;
  876. width: 30rpx;
  877. height: 30rpx;
  878. border-radius: 50%;
  879. border: 1rpx solid #0183FA;
  880. margin-right: 14rpx;
  881. position: relative;
  882. }
  883. .checked::after{
  884. content: '';
  885. position: absolute;
  886. top: 5rpx;
  887. left:5rpx;
  888. width: 20rpx;
  889. height: 20rpx;
  890. border-radius: 50%;
  891. background: #0183FA;
  892. }
  893. }
  894. }
  895. }
  896. }
  897. .popup-max-box{
  898. z-index:10;
  899. height:100%;
  900. width:100%;
  901. position fixed;
  902. background rgba(0,0,0,0.2)
  903. display flex;
  904. flex-direction column
  905. .popup-null{
  906. flex:1;
  907. }
  908. .popup-big-box{
  909. border-top-left-radius:20rpx;
  910. border-top-right-radius:20rpx;
  911. background #fff
  912. .popup-input-box{
  913. padding:30rpx 20rpx;
  914. display:flex;
  915. input{
  916. flex:1;
  917. height:70rpx;
  918. border:1rpx solid #e0e0e0;
  919. border-radius:10rpx;
  920. margin-right:20rpx;
  921. padding:0 20rpx;
  922. }
  923. view{
  924. background #0183FA
  925. color:#fff;
  926. border-radius:10rpx;
  927. width:140rpx;
  928. line-height:70rpx;
  929. text-align center;
  930. font-size:28rpx;
  931. }
  932. }
  933. .popup-for-max-box{
  934. margin:0 20rpx 30rpx;
  935. height:600rpx;
  936. overflow-y scroll;
  937. .popup-for-null{
  938. line-height:100rpx;
  939. text-align center
  940. color:#999;
  941. }
  942. .popup-for-box{
  943. display:flex;
  944. padding:10px 0;
  945. .name-p{
  946. flex:1;
  947. line-height:60rpx;
  948. }
  949. .button-p{
  950. background #0183FA
  951. color:#fff;
  952. text-align center
  953. width:100rpx;
  954. line-height:60rpx;
  955. height:60rpx;
  956. border-radius:10rpx;
  957. }
  958. }
  959. }
  960. }
  961. }
  962. /* 计划标题 */
  963. .inspect_name{
  964. .popup-content{
  965. width: 750rpx;
  966. height: 350rpx;
  967. background: #FFFFFF;
  968. border-radius: 10rpx 10rpx 0px 0px;
  969. padding :0 50rpx;
  970. box-sizing :border-box;
  971. overflow :hidden;
  972. .inspect_name_t{
  973. margin-top:66rpx;
  974. padding: 0 30rpx;
  975. box-sizing: border-box;
  976. >input{
  977. width:100%;
  978. height:80rpx;
  979. border: 2rpx solid #E0E0E0;
  980. color:#A2A2A2;
  981. font-size:28rpx;
  982. line-height 80rpx
  983. border-radius:10rpx;
  984. padding: 0 20rpx;
  985. box-sizing: border-box;
  986. }
  987. }
  988. .inspect_name_b{
  989. margin-top :64rpx;
  990. display: flex;
  991. justify-content: center;
  992. >text:nth-of-type(1){
  993. width: 160rpx;
  994. height: 60rpx;
  995. border-radius: 40rpx;
  996. font-size: 30rpx;
  997. font-family: PingFang SC;
  998. font-weight: 500;
  999. color: #333333;
  1000. line-height: 60rpx;
  1001. text-align :center;
  1002. margin-right: 120rpx;
  1003. border: 2rpx solid #e0e0e0;
  1004. }
  1005. >text:nth-of-type(2){
  1006. width: 160rpx;
  1007. height: 60rpx;
  1008. background: linear-gradient(-35deg, #309CFF, #0183FA);
  1009. border-radius: 40rpx;
  1010. font-size: 30rpx;
  1011. font-family: PingFang SC;
  1012. font-weight: 500;
  1013. color: #FFFFFF;
  1014. line-height: 60rpx;
  1015. text-align :center;
  1016. }
  1017. }
  1018. }
  1019. }
  1020. .bottom_btn{
  1021. position: fixed;
  1022. bottom: 26rpx;
  1023. left: 30rpx;
  1024. font-size: 30rpx;
  1025. font-family: PingFang SC-Medium, PingFang SC;
  1026. font-weight: 400;
  1027. color: #FFFFFF;
  1028. line-height: 90rpx;
  1029. width: 690rpx;
  1030. height: 90rpx;
  1031. background: #0183FA;
  1032. border-radius: 20rpx;
  1033. text-align: center;
  1034. }
  1035. }
  1036. </style>