snapshotList.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906
  1. <!-- 随手拍列表 -->
  2. <template>
  3. <view class="snapshotList">
  4. <scroll-view scroll-y @scrolltolower="scrollGet" class="info-max-box">
  5. <view class="tabTitle" v-if="userType==0">
  6. <view :class="tabIndex==index?'tab-A':'tab-B'" v-for="(item,index) in tabList" @click="tabClick(index)">
  7. {{item}}
  8. </view>
  9. </view>
  10. <view class="tabTitleTow" v-if="userType==1">
  11. <view :class="tabIndexTow==index?'tab-C':'tab-D'" v-for="(item,index) in tabListTow"
  12. @click="tabClickTow(index)">{{item}}</view>
  13. </view>
  14. <view v-if="pageType==0">
  15. <view class="srearch">
  16. <view class="srearch-n">
  17. <view class="srearch-l" @click="popupClick(1)">
  18. <img src="@/pages_safetyCheck/images/icon_aqjc_ss.png">
  19. </view>
  20. <input class="srearch-c" type="text" v-model="form.searchValue" placeholder="实验室/房间号" />
  21. <view class="srearch-r" @click="saoCode()">
  22. <img src="@/pages_safetyCheck/images/icon_aqjc_sm.png">
  23. </view>
  24. </view>
  25. </view>
  26. <view class="list">
  27. <view class="list-li">
  28. <view>实验室名称(房间号)</view>
  29. <view></view>
  30. </view>
  31. <view class="list-li">
  32. <view>学院单位名称</view>
  33. <view>化工学院</view>
  34. </view>
  35. <view class="list-li">
  36. <view>检查项目</view>
  37. <uni-data-picker :ellipsis="false" :localdata="checkOptionList[0]"
  38. :map="{text:'name',value:'id'}" popup-title="请选择所属目录" @change="(e)=>onchange('',e,index)"
  39. @nodeclick="onnodeclick()" ref="uniDataPicker" :addType="true" :addIndex="index">
  40. <view class="project_r">{{form.hazardCheckName?form.hazardCheckName:'请选择检查项 >'}}</view>
  41. </uni-data-picker>
  42. </view>
  43. <view class="list-li">
  44. <view>隐患描述</view>
  45. <view></view>
  46. </view>
  47. <textarea class="describe" type="text" v-model="form.rectifyDescribe" maxlength="200"
  48. placeholder="请填写隐患描述" placeholder-style="font-size:24rpx;color:#999;"></textarea>
  49. <view class="check-for-img-max-box">
  50. <view class="left-title-p"></view>
  51. <view class="right-img-box">
  52. <view class="img-box" v-for="(imgUrl,imgIndex) in form.imgDtoList" :key="imgIndex">
  53. <img class="img-data" :src="baseUrl+imgUrl.fileUrl">
  54. <img class="position-img" src="@/pages_safetyCheck/images/icon_ssp_closure.png"
  55. @click="delImg(imgIndex)">
  56. </view>
  57. <img class="add-button" src="@/pages_safetyCheck/images/img_ssp_pz@1x.png"
  58. @click="selectImage()" v-if="form.imgDtoList.length<5">
  59. </view>
  60. </view>
  61. </view>
  62. <view class="subBtn">提交</view>
  63. </view>
  64. <!-- 上报记录 -->
  65. <view class="escalation" v-if="pageType==1">
  66. <view class="escalation-li" v-for="(item,index) in escalationList">
  67. <view class="escalation-li-t">
  68. <view>{{item.subName}}</view>
  69. <view :id="item.status==0?'color-A':(item.status==1?'color-B':(item.status==2?'color-C':''))">
  70. 待整改
  71. <img src="@/pages_safetyCheck/images/icon_wd_gd@1x.png">
  72. </view>
  73. </view>
  74. <view class="escalation-li-b">
  75. <view>上报时间</view>
  76. <view>{{item.time}}</view>
  77. </view>
  78. </view>
  79. </view>
  80. <!-- 隐患整改 -->
  81. <view class="hidden" v-if="pageType==2">
  82. <view class="hidden-li" v-for="(item,index) in hiddenList">
  83. <img class="hidden-li-l" src="@/pages_safetyCheck/images/icon_sys_xz@1x.png">
  84. <view class="hidden-li-c">{{item.subName}}</view>
  85. <view class="hidden-li-r">待检查{{item.num}}项
  86. <img src="@/pages_safetyCheck/images/icon_wd_gd@1x.png">
  87. </view>
  88. </view>
  89. </view>
  90. </scroll-view>
  91. <view class="popup-max-box" v-if="popupType">
  92. <view class="popup-null" @click="popupClick(2)"></view>
  93. <view class="popup-big-box">
  94. <view class="popup-input-box">
  95. <input type="text" maxlength="10" v-model="room" placeholder="请输入关键字">
  96. <view @click="buildBySub">搜索</view>
  97. </view>
  98. <view class="popup-for-max-box">
  99. <view class="popup-for-null" v-if="!roomList[0]">暂无数据</view>
  100. <view class="popup-for-box" v-for="(item,index) in roomList" :key="index">
  101. <view class="name-p">{{item.subName}} ({{item.roomNum?item.roomNum:'-'}})</view>
  102. <view class="button-p" @click="popupClickItem(item)">确定</view>
  103. </view>
  104. </view>
  105. </view>
  106. </view>
  107. </view>
  108. </template>
  109. <script>
  110. import {
  111. config
  112. } from '@/api/request/config.js'
  113. import {} from '@/pages/api/index.js'
  114. import {
  115. laboratorySubRelInfoGetRelList,
  116. checkOptionListNew,
  117. } from '@/pages_safetyCheck/api/index.js'
  118. export default {
  119. name: "snapshotList",
  120. components: {
  121. },
  122. data() {
  123. return {
  124. baseUrl: config.base_url,
  125. pageType: 0,
  126. userType: 1,
  127. tabList: ['随手拍上报', '上报记录'],
  128. tabIndex: 0,
  129. tabListTow: ['随手拍上报', '上报记录', '隐患整改'],
  130. tabIndexTow: 0,
  131. newData: {
  132. },
  133. form: {
  134. rectifyDescribe: '',
  135. imgDtoList: [],
  136. hazardCheckName:'',
  137. },
  138. popupType: false,
  139. roomList: [],
  140. checkOptionList: [],
  141. escalationList:[
  142. {
  143. subName:'实验室名称(房间号)',
  144. status:0,
  145. time:'2024-01-01',
  146. },
  147. {
  148. subName:'实验室名称(房间号)',
  149. status:1,
  150. time:'2024-01-01',
  151. },
  152. {
  153. subName:'实验室名称(房间号)',
  154. status:2,
  155. time:'2024-01-01',
  156. },
  157. ],
  158. hiddenList:[
  159. {
  160. subName:'实验室名称实验室名称实验室名称实验室名称',
  161. num:3,
  162. },
  163. {
  164. subName:'实验室名称实验室名称实验室名称实验室名称',
  165. num:3,
  166. },
  167. {
  168. subName:'实验室名称实验室名称实验室名称实验室名称',
  169. num:3,
  170. },
  171. ],
  172. }
  173. },
  174. onLoad(option) {
  175. },
  176. onShow() {
  177. },
  178. mounted() {
  179. },
  180. methods: {
  181. //滚动事件
  182. scrollGet() {},
  183. tabClick(index) {
  184. this.tabIndex = index;
  185. this.pageType = index;
  186. },
  187. tabClickTow(index) {
  188. this.tabIndexTow = index;
  189. this.pageType = index;
  190. },
  191. /******图片上传******/
  192. selectImage() {
  193. let self = this;
  194. if (this.form.imgDtoList.length > 4) {
  195. uni.showToast({
  196. title: '最多上传5张图片',
  197. icon: "none",
  198. mask: true,
  199. duration: 2000
  200. });
  201. return
  202. }
  203. wx.chooseImage({
  204. count: 1,
  205. sizeType: ["original", "compressed"],
  206. sourceType: ["album", "camera"],
  207. success: function(res) {
  208. let tempFilePaths = res.tempFilePaths[0];
  209. self.uploadImg(tempFilePaths);
  210. }
  211. });
  212. },
  213. async uploadImg(tempFilePaths) {
  214. var self = this;
  215. uni.showLoading({
  216. title: '上传中',
  217. mask: true
  218. });
  219. uni.uploadFile({
  220. url: config.base_url + '/system/file/upload', //仅为示例,非真实的接口地址
  221. header: {
  222. 'Authorization': uni.getStorageSync('token')
  223. },
  224. filePath: tempFilePaths,
  225. name: 'file',
  226. formData: {
  227. 'user': 'test'
  228. },
  229. success: (uploadFileRes) => {
  230. let res = JSON.parse(uploadFileRes.data);
  231. if (res.code == 200) {
  232. this.form.imgDtoList.push({
  233. 'fileUrl': res.data.url,
  234. 'fileName': res.data.name
  235. });
  236. console.log(res.data.url)
  237. } else {
  238. uni.showToast({
  239. title: res.msg,
  240. icon: "none",
  241. mask: true,
  242. duration: 2000
  243. });
  244. }
  245. },
  246. fail: err => {},
  247. complete: () => {
  248. uni.hideLoading()
  249. }
  250. });
  251. },
  252. //删除图片
  253. delImg(minIndex) {
  254. this.form.imgDtoList.splice(minIndex, 1);
  255. this.$forceUpdate();
  256. },
  257. /******搜索房间弹层开关******/
  258. popupClick(type) {
  259. if (type == 1) {
  260. this.room = "";
  261. this.roomList = [];
  262. this.popupType = true;
  263. this.buildBySub();
  264. } else if (type == 2) {
  265. this.popupType = false;
  266. }
  267. },
  268. //搜索房间接口
  269. async buildBySub() {
  270. let self = this;
  271. const {
  272. data
  273. } = await laboratorySubRelInfoGetRelList({
  274. 'searchValue': this.form.searchValue,
  275. });
  276. if (data.code == 200) {
  277. if (data.data[0]) {
  278. this.roomList = data.data;
  279. } else {
  280. uni.showToast({
  281. title: '未找到相关实验室',
  282. icon: "none",
  283. mask: true,
  284. duration: 2000
  285. });
  286. }
  287. }
  288. },
  289. //确认搜索房间
  290. popupClickItem(item) {
  291. console.log(item)
  292. this.$set(this.form, "subId", item.subId)
  293. this.$set(this.form, "subName", item.subName)
  294. this.$set(this.form, "deptId", item.deptId)
  295. for (let i = 0; i < this.collegeList.length; i++) {
  296. if (item.deptId == this.collegeList[i].deptId) {
  297. this.$set(this.form, "deptName", this.collegeList[i].deptName)
  298. }
  299. }
  300. this.popupType = false;
  301. },
  302. /******调用摄像头******/
  303. saoCode() {
  304. let self = this;
  305. uni.scanCode({
  306. onlyFromCamera: true,
  307. success: function(res) {
  308. let list = res.result.split("?")[1].split("&");
  309. let codeData = {};
  310. list.forEach((item) => {
  311. codeData[item.split("=")[0]] = item.split("=")[1];
  312. })
  313. console.log('二维码', codeData)
  314. if (codeData.code) {
  315. self.laboratoryAppletGetSubDetailInfo(codeData.code);
  316. } else {
  317. uni.showToast({
  318. title: '请扫描正确的二维码',
  319. icon: "none",
  320. mask: true,
  321. duration: 2000
  322. });
  323. }
  324. }
  325. });
  326. },
  327. /**************************搜索项***************************/
  328. //获取检查项
  329. async getCheckOptionList() {
  330. const {
  331. data
  332. } = await checkOptionListNew();
  333. if (data.code == 200) {
  334. let list = this.getTreeData(data.data);
  335. console.log(list)
  336. this.checkOptionList.push(JSON.parse(JSON.stringify(list)));
  337. }
  338. },
  339. getTreeData(data) {
  340. for (var i = 0; i < data.length > 0; i++) {
  341. if (data[i].children == null || data[i].children.length <= 0) {
  342. // children若为空数组,则将children设为undefined
  343. data[i].children = undefined;
  344. } else {
  345. if (this.form.checkCategory == 1 && data[i].level == 3) {
  346. if (data[i].children[0]) {
  347. let mainPoint = []
  348. for (let b = 0; b < data[i].children.length; b++) {
  349. mainPoint.push(data[i].children[b].name)
  350. data[i].mainPoint = mainPoint.join(',')
  351. }
  352. } else {
  353. data[i].mainPoint = '';
  354. }
  355. data[i].children = [];
  356. }
  357. // children若不为空数组,则继续 递归调用 本方法
  358. this.getTreeData(data[i].children);
  359. }
  360. }
  361. return data;
  362. },
  363. /**************************搜索项***************************/
  364. //搜索特定检查项
  365. async searchClick(text, index) {
  366. console.log("搜索text", text);
  367. console.log("搜索index", index);
  368. const {
  369. data
  370. } = await checkOptionListNew({
  371. 'searchValue': text
  372. });
  373. if (data.code == 200) {
  374. if (data.data[0]) {
  375. let list = [];
  376. list[0] = this.getTreeData(data.data)
  377. this.$set(this, 'checkOptionList', JSON.parse(JSON.stringify(list)))
  378. console.log(this.checkOptionList)
  379. this.$refs.uniDataPicker[index].show();
  380. } else {
  381. uni.showToast({
  382. title: '未找到相关检查项',
  383. icon: "none",
  384. mask: true,
  385. duration: 2000
  386. });
  387. }
  388. }
  389. },
  390. //重置检查项
  391. async resetClick(index) {
  392. console.log("重置index", index);
  393. const {
  394. data
  395. } = await checkOptionListNew();
  396. if (data.code == 200) {
  397. let list = [];
  398. list[0] = this.getTreeData(data.data);
  399. this.$set(this, 'checkOptionList', JSON.parse(JSON.stringify(list)))
  400. this.$refs.uniDataPicker[index].show();
  401. }
  402. },
  403. //选中固有检查项(新)
  404. onchange(indexAll, e, index) {
  405. let self = this;
  406. //hazardCheckCode:'', //检查项目code序号
  407. //hazardCheckName:'', //检查项目名称
  408. //hazardCheckPro:'', //最后一级的id
  409. if (this.getTreeName(this.checkOptionList[0], e.detail.value[e.detail.value.length - 1].value).level ==
  410. 3) {
  411. let jcxSstkNum = this.getTreeName(this.checkOptionList[0], e.detail.value[e.detail.value.length -
  412. 1].value).code
  413. this.$set(this.form.checkHazardDtoList[index], 'hazardCheckPro', e.detail.value[e.detail.value
  414. .length - 1].value);
  415. this.$set(this.form.checkHazardDtoList[index], 'hazardCheckCode', jcxSstkNum);
  416. this.$set(this.form.checkHazardDtoList[index], 'hazardCheckName', e.detail.value[e.detail.value
  417. .length - 1].text);
  418. this.$set(this.form.checkHazardDtoList[index], 'hazardCheckPoint', this.getTreeName(this
  419. .checkOptionList[0], e.detail.value[e.detail.value.length - 1].value).mainPoint);
  420. } else {
  421. uni.showToast({
  422. title: '暂无数据',
  423. icon: "none",
  424. mask: true,
  425. duration: 2000
  426. });
  427. }
  428. },
  429. }
  430. }
  431. </script>
  432. <style lang="stylus" scoped>
  433. .snapshotList {
  434. height: 100%;
  435. display flex;
  436. .tabTitle {
  437. width: 600rpx;
  438. height: 80rpx;
  439. display: flex;
  440. justify-content: center;
  441. margin: 20rpx 0 0 74rpx;
  442. >view:nth-of-type(1) {
  443. width: 300rpx;
  444. height: 80rpx;
  445. border-radius: 50rpx 0rpx 0rpx 50rpx;
  446. }
  447. >view:nth-of-type(2) {
  448. width: 300rpx;
  449. height: 80rpx;
  450. border-radius: 0rpx 50rpx 50rpx 0rpx;
  451. }
  452. .tab-A {
  453. font-size: 30rpx;
  454. color: #FFFFFF;
  455. line-height: 80rpx;
  456. text-align: center;
  457. background: #0183FA;
  458. }
  459. .tab-B {
  460. font-size: 30rpx;
  461. color: #333333;
  462. line-height: 80rpx;
  463. text-align: center;
  464. background: #FFFFFF;
  465. }
  466. }
  467. .tabTitleTow {
  468. width: 690rpx;
  469. height: 80rpx;
  470. display: flex;
  471. justify-content: center;
  472. margin: 20rpx 0 0 30rpx;
  473. >view:nth-of-type(1) {
  474. width: 230rpx;
  475. height: 80rpx;
  476. border-radius: 50rpx 0rpx 0rpx 50rpx;
  477. }
  478. >view:nth-of-type(2) {
  479. width: 230rpx;
  480. height: 80rpx;
  481. border-radius: 0rpx 0rpx 0rpx 0rpx;
  482. }
  483. >view:nth-of-type(3) {
  484. width: 230rpx;
  485. height: 80rpx;
  486. border-radius: 0rpx 50rpx 50rpx 0rpx;
  487. }
  488. .tab-C {
  489. font-size: 30rpx;
  490. color: #FFFFFF;
  491. line-height: 80rpx;
  492. text-align: center;
  493. background: #0183FA;
  494. }
  495. .tab-D {
  496. font-size: 30rpx;
  497. color: #333333;
  498. line-height: 80rpx;
  499. text-align: center;
  500. background: #FFFFFF;
  501. }
  502. }
  503. .srearch {
  504. width: 750rpx;
  505. height: 100rpx;
  506. background: #FFFFFF;
  507. border-radius: 0rpx 0rpx 0rpx 0rpx;
  508. overflow: hidden;
  509. margin-top: 20rpx;
  510. .srearch-n {
  511. width: 690rpx;
  512. height: 60rpx;
  513. border-radius: 50rpx 50rpx 50rpx 50rpx;
  514. border: 1rpx solid #E0E0E0;
  515. margin: 20rpx 0 0 30rpx;
  516. display: flex;
  517. justify-content: flex-start;
  518. align-items: center;
  519. .srearch-l {
  520. width: 60rpx;
  521. height: 60rpx;
  522. >img {
  523. width: 20rpx;
  524. height: 20rpx;
  525. margin: 20rpx 0 0 26rpx;
  526. }
  527. }
  528. .srearch-c {
  529. flex: 1;
  530. height: 58rpx;
  531. font-size: 24rpx;
  532. color: #999999;
  533. line-height: 30rpx;
  534. text-align: left;
  535. }
  536. .srearch-r {
  537. width: 60rpx;
  538. height: 60rpx;
  539. >img {
  540. width: 30rpx;
  541. height: 30rpx;
  542. margin: 14rpx 22rpx 0 0;
  543. }
  544. }
  545. }
  546. }
  547. .list {
  548. width: 690rpx;
  549. min-height: 765rpx;
  550. background: #FFFFFF;
  551. border-radius: 20rpx 20rpx 20rpx 20rpx;
  552. margin: 20rpx 0 0 30rpx;
  553. .list-li {
  554. display: flex;
  555. justify-content: space-between;
  556. border-bottom: 1rpx solid #E0E0E0;
  557. padding: 0 22rpx 0 28rpx;
  558. box-sizing: border-box;
  559. >view:nth-of-type(1) {
  560. font-size: 30rpx;
  561. color: #333333;
  562. line-height: 80rpx;
  563. text-align: left;
  564. }
  565. >view:nth-of-type(2) {
  566. font-size: 28rpx;
  567. color: #666666;
  568. line-height: 80rpx;
  569. text-align: left;
  570. display: flex;
  571. justify-content: flex-start;
  572. align-items: center;
  573. >img {
  574. width: 24rpx;
  575. height: 24rpx;
  576. margin-left: 8rpx;
  577. }
  578. }
  579. .project_r {
  580. width: 510rpx;
  581. min-height: 80rpx;
  582. display: flex;
  583. justify-content: flex-end;
  584. align-items: center;
  585. padding-left: 20rpx;
  586. box-sizing: border-box;
  587. color: #666;
  588. }
  589. }
  590. .describe {
  591. width: 636rpx;
  592. height: 120rpx;
  593. border-radius: 10rpx 10rpx 10rpx 10rpx;
  594. border: 1rpx solid #E0E0E0;
  595. margin: 20rpx 0 0 28rpx;
  596. padding: 12rpx 16rpx;
  597. box-sizing: border-box;
  598. }
  599. .check-for-img-max-box {
  600. margin: 20px 28rpx;
  601. .left-title-p {
  602. width: 100%;
  603. text-align: left;
  604. font-size: 30rpx;
  605. font-family: PingFang SC-Medium, PingFang SC;
  606. font-weight: 400;
  607. color: #333333;
  608. line-height: 80rpx;
  609. }
  610. .right-img-box {
  611. .img-box {
  612. display inline-block;
  613. height: 150rpx;
  614. width: 150rpx;
  615. position relative;
  616. margin: 0 14rpx 20rpx 0;
  617. border-radius 10rpx;
  618. overflow hidden;
  619. .img-data {
  620. height: 150rpx;
  621. width: 150rpx;
  622. }
  623. .position-img {
  624. position absolute;
  625. right: 0;
  626. top: 0;
  627. width: 36rpx;
  628. height: 36rpx;
  629. }
  630. }
  631. .img-box:nth-of-type(3n+3) {
  632. margin-right: 0rpx;
  633. }
  634. .add-button {
  635. margin: 0 0rpx 20rpx 0;
  636. border-radius 10rpx;
  637. overflow hidden;
  638. display inline-block;
  639. height: 150rpx;
  640. width: 150rpx;
  641. }
  642. }
  643. }
  644. }
  645. /* 实验室弹框 */
  646. .popup-max-box {
  647. z-index: 10;
  648. height: 100%;
  649. width: 100%;
  650. position fixed;
  651. background rgba(0, 0, 0, 0.2);
  652. display flex;
  653. flex-direction column;
  654. .popup-null {
  655. flex: 1;
  656. }
  657. .popup-big-box {
  658. border-top-left-radius: 20rpx;
  659. border-top-right-radius: 20rpx;
  660. background #fff;
  661. .popup-input-box {
  662. padding: 30rpx 20rpx;
  663. display: flex;
  664. input {
  665. flex: 1;
  666. height: 70rpx;
  667. border: 1rpx solid #e0e0e0;
  668. border-radius: 10rpx;
  669. margin-right: 20rpx;
  670. padding: 0 20rpx;
  671. }
  672. view {
  673. background #0183FA;
  674. color: #fff;
  675. border-radius: 10rpx;
  676. width: 140rpx;
  677. line-height: 70rpx;
  678. text-align center;
  679. font-size: 28rpx;
  680. }
  681. }
  682. .popup-for-max-box {
  683. margin: 0 20rpx 30rpx;
  684. height: 600rpx;
  685. overflow-y scroll;
  686. .popup-for-null {
  687. line-height: 100rpx;
  688. text-align center;
  689. color: #999;
  690. }
  691. .popup-for-box {
  692. display: flex;
  693. padding: 10px 0;
  694. .name-p {
  695. flex: 1;
  696. line-height: 60rpx;
  697. }
  698. .button-p {
  699. background #0183FA;
  700. color: #fff;
  701. text-align center;
  702. width: 100rpx;
  703. line-height: 60rpx;
  704. height: 60rpx;
  705. border-radius: 10rpx;
  706. }
  707. }
  708. }
  709. }
  710. }
  711. .subBtn {
  712. width: 690rpx;
  713. height: 100rpx;
  714. background: #0183FA;
  715. border-radius: 50rpx 50rpx 50rpx 50rpx;
  716. font-weight: 400;
  717. font-size: 30rpx;
  718. color: #FFFFFF;
  719. line-height: 100rpx;
  720. text-align: center;
  721. position: fixed;
  722. left: 30rpx;
  723. bottom: 10rpx;
  724. }
  725. /* 上报记录 */
  726. .escalation{
  727. .escalation-li{
  728. width: 690rpx;
  729. height: 162rpx;
  730. background: #FFFFFF;
  731. border-radius: 20rpx 20rpx 20rpx 20rpx;
  732. margin: 20rpx 30rpx;
  733. padding: 0 30rpx;
  734. box-sizing: border-box;
  735. .escalation-li-t{
  736. display: flex;
  737. justify-content: space-between;
  738. align-items: center;
  739. border-bottom: 1rpx solid #E0E0E0;
  740. >view:nth-of-type(1) {
  741. font-weight: 400;
  742. font-size: 30rpx;
  743. color: #333333;
  744. line-height: 80rpx;
  745. text-align: left;
  746. }
  747. >view:nth-of-type(2) {
  748. font-weight: 400;
  749. font-size: 28rpx;
  750. color: #0183FA;
  751. line-height: 80rpx;
  752. text-align: left;
  753. display: flex;
  754. justify-content: flex-start;
  755. align-items: center;
  756. >img{
  757. width: 24rpx;
  758. height: 24rpx;
  759. }
  760. }
  761. }
  762. .escalation-li-b{
  763. display: flex;
  764. justify-content: space-between;
  765. align-items: center;
  766. >view:nth-of-type(1) {
  767. font-weight: 400;
  768. font-size: 30rpx;
  769. color: #333333;
  770. line-height: 80rpx;
  771. text-align: left;
  772. }
  773. >view:nth-of-type(2) {
  774. font-weight: 400;
  775. font-size: 30rpx;
  776. color: #666666;
  777. line-height: 80rpx;
  778. text-align: left;
  779. }
  780. }
  781. }
  782. }
  783. /* 隐患整改 */
  784. .hidden{
  785. width: 690rpx;
  786. border-radius: 20rpx 20rpx 20rpx 20rpx;
  787. background: #FFFFFF;
  788. padding: 0 30rpx;
  789. box-sizing: border-box;
  790. margin: 20rpx 30rpx;
  791. .hidden-li{
  792. height: 80rpx;
  793. border-bottom: 1rpx solid #E0E0E0;
  794. display: flex;
  795. justify-content: flex-start;
  796. align-items: center;
  797. .hidden-li-l{
  798. width: 34rpx;
  799. height: 34rpx;
  800. }
  801. .hidden-li-c{
  802. font-size: 28rpx;
  803. color: #333333;
  804. line-height: 30rpx;
  805. text-align: left;
  806. flex: 1;
  807. overflow: hidden;
  808. text-overflow: ellipsis;
  809. white-space: nowrap;
  810. margin: 0 84rpx 0 12rpx;
  811. }
  812. .hidden-li-r{
  813. font-size: 28rpx;
  814. color: #0183FA;
  815. line-height: 80rpx;
  816. text-align: left;
  817. display: flex;
  818. justify-content: flex-start;
  819. align-items: center;
  820. >img{
  821. width: 24rpx;
  822. height: 24rpx;
  823. }
  824. }
  825. }
  826. .hidden-li:last-of-type{
  827. border: none;
  828. }
  829. }
  830. #color-A{
  831. color: #0183FA;
  832. }
  833. #color-B{
  834. color: #FF8C00;
  835. }
  836. #color-C{
  837. color: #16B531;
  838. }
  839. }
  840. </style>