inspectList.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991
  1. <!-- 检查和自查列表 -->
  2. <template>
  3. <view class="snapshotList">
  4. <scroll-view scroll-y @scrolltolower="scrollGet" class="info-max-box">
  5. <view class="title" @click="planClick()">
  6. <view class="title-l">
  7. <view class="title-l-t">{{optionData.planTitle}}</view>
  8. <view class="title-l-b">
  9. <view v-if="optionData.checkCategory">
  10. {{optionData.checkCategory==1?'校院巡查':(optionData.checkCategory==2?'学院自查':'')}}
  11. </view>
  12. <view v-if="optionData.checkTypeName">{{optionData.checkTypeName}}</view>
  13. <view v-if="optionData.crossCheck==1">交叉互检</view>
  14. </view>
  15. </view>
  16. <img class="title-r" src="@/pages_safetyCheck/images/icon_wd_gd@1x.png">
  17. </view>
  18. <view class="tabTitleTow">
  19. <view :class="tabIndexTow==index?'tab-C':'tab-D'" v-for="(item,index) in tabListTow"
  20. @click="tabClickTow(index)">{{item}}</view>
  21. </view>
  22. <view>
  23. <view class="level">
  24. <view class="level-li"
  25. :style="levelId==item.levelId?'border:1rpx solid '+item.levelColor+';background:'+item.levelColorTow+';':'levelColor-B'"
  26. @click="levelClick(item.levelId)" v-for="(item,index) in levelList">{{item.levelName}}</view>
  27. </view>
  28. <view class="srearch">
  29. <view class="srearch-n" @click="srearchClick()">
  30. <view class="srearch-l">
  31. <img src="@/pages_safetyCheck/images/icon_aqjc_ss.png">
  32. </view>
  33. <input class="srearch-c" type="text" v-model="searchValue"
  34. placeholder="搜索实验室" />
  35. </view>
  36. </view>
  37. </view>
  38. <view class="hidden">
  39. <view class="lab-info" @click="listClick(item)" v-for="(item,index) in dataList">
  40. <img class="lab-info-l" src="@/pages_safetyCheck/images/icon_aqjc_shiyanshi.png">
  41. <view class="lab-info-c">
  42. <view class="lab-info-c-t">
  43. <view class="lab-info-c-t-l">{{item.subName}}</view>
  44. <view class="lab-info-c-t-r"
  45. :style="'border:1rpx solid '+item.classLevelColor+';background:'+item.classLevelColorTow+';'">
  46. <text
  47. :style="'border-right:1rpx solid '+item.classLevelColor+';color:'+item.classLevelColor+';'">{{item.classLevelName?item.classLevelName:''}}</text>
  48. <text :style="'color:'+item.classLevelColor+';'">{{item.classTypeNames?item.classTypeNames:''}}</text>
  49. </view>
  50. </view>
  51. <view class="lab-info-c-b">
  52. <text>{{tabIndexTow==0?(item.roomNum?item.roomNum:'-'):(item.subRoom?item.subRoom:'-')}}房间&{{item.buildName}}</text>
  53. <text>{{item.deptName}}</text>
  54. </view>
  55. </view>
  56. </view>
  57. <view class="get-data-null-p" v-if="getDataType">- 没有更多数据 -</view>
  58. </view>
  59. <img class="saoCode" @click="saoCode()"
  60. src="@/pages_safetyCheck/images/icon_aqjc_saoma.png">
  61. </scroll-view>
  62. </view>
  63. </template>
  64. <script>
  65. import {
  66. config
  67. } from '@/api/request/config.js'
  68. import {
  69. systemDeptDropList,
  70. } from '@/pages/api/index.js'
  71. import {
  72. laboratorySubRelInfoGetRelList,
  73. laboratoryLevelConfigGetWebLevelTitleList,
  74. securityAppCheckManageList,
  75. securityAppCheckDangerGetCheckDangerSubList,
  76. securityAppCheckDangerReviewSubList,
  77. } from '@/pages_safetyCheck/api/index.js'
  78. export default {
  79. name: "snapshotList",
  80. components: {
  81. },
  82. data() {
  83. return {
  84. baseUrl: config.base_url,
  85. pageType: 0,
  86. userType: 1,
  87. tabListTow: ['检查任务', '复查验证', '隐患整改'],
  88. tabIndexTow: 0,
  89. //学院选择
  90. deptData: {
  91. index: null,
  92. list: [],
  93. id: null,
  94. name: null
  95. },
  96. deptIndex: null,
  97. deptList: [],
  98. //弹层实验室数据
  99. popupType: false,
  100. roomList: [],
  101. //级别
  102. levelList: [],
  103. levelId: null,
  104. optionData: null,
  105. //实验室/房间号
  106. searchValue: '',
  107. subId: '',
  108. planSetId: null,
  109. // 查询参数
  110. queryParams: {
  111. page: 1,
  112. pageSize: 20,
  113. },
  114. dataList: [],
  115. total: 0,
  116. getDataType: false,
  117. }
  118. },
  119. onLoad(option) {
  120. let optionData = JSON.parse(decodeURIComponent(option.infoData))
  121. console.log(optionData)
  122. uni.setNavigationBarTitle({
  123. title: optionData.checkPlanSetVoList.checkName
  124. })
  125. this.$set(this, 'tabListTow',
  126. optionData.checkCategory == 1 ? ['检查任务', '复查验证', '隐患整改'] :
  127. (optionData.checkCategory == 2 ? ['自查任务', '复查验证', '隐患整改'] : [])
  128. )
  129. this.$set(this, 'optionData', optionData);
  130. this.$set(this, 'planSetId', optionData.checkPlanSetVoList.planSetId);
  131. },
  132. created() {
  133. this.systemDeptDropList();
  134. this.laboratoryLevelConfigGetWebLevelTitleList();
  135. },
  136. mounted() {
  137. let self = this;
  138. setTimeout(() => {
  139. self.getList();
  140. }, 100);
  141. },
  142. methods: {
  143. //滚动事件
  144. scrollGet() {
  145. let self = this;
  146. if (self.total / self.queryParams.pageSize <= self.queryParams.page) {
  147. this.$set(this, 'getDataType', true);
  148. } else {
  149. this.queryParams.page += 1;
  150. this.$nextTick(() => {
  151. this.getList();
  152. })
  153. }
  154. },
  155. //级别切换
  156. levelClick(id) {
  157. if (this.levelId == id) {
  158. this.$set(this, 'levelId', null);
  159. } else {
  160. this.$set(this, 'levelId', id);
  161. }
  162. this.$set(this, 'getDataType', false);
  163. this.$set(this.queryParams, 'page', 1);
  164. this.getList();
  165. },
  166. //查询类型切换
  167. tabClickTow(index) {
  168. this.$set(this.queryParams, 'page', 1);
  169. this.$set(this, 'deptData', {
  170. index: null,
  171. list: this.deptData.list,
  172. id: null,
  173. name: null
  174. });
  175. this.$set(this, 'searchValue', null);
  176. this.$set(this, 'levelId', null);
  177. this.$set(this, 'getDataType', false);
  178. this.$set(this, 'dataList', []);
  179. this.$set(this, 'total', 0);
  180. this.$set(this, 'tabIndexTow', index);
  181. this.$nextTick(() => {
  182. this.getList();
  183. })
  184. },
  185. //实验室搜索框跳转
  186. srearchClick(){
  187. let infoData = {};
  188. infoData.pageType = this.tabIndexTow;
  189. infoData.laboratoryStatus = this.tabIndexTow;
  190. infoData.planTitle = this.optionData.planTitle;
  191. infoData.checkCategory = this.optionData.checkCategory;
  192. infoData.checkTypeName = this.optionData.checkTypeName;
  193. infoData.crossCheck = this.optionData.crossCheck;
  194. infoData.checkPlanSetVoList = this.optionData.checkPlanSetVoList;
  195. uni.navigateTo({
  196. url: '/pages_safetyCheck/views/snapshotManage/laboratorySearch?form=' + encodeURIComponent(
  197. JSON.stringify(infoData))
  198. });
  199. },
  200. //计划详情
  201. planClick() {
  202. let infoData = {
  203. planId: this.optionData.planId
  204. };
  205. uni.navigateTo({
  206. url: '/pages_safetyCheck/views/planDetail?infoData=' + encodeURIComponent(JSON.stringify(
  207. infoData))
  208. });
  209. },
  210. //实验室列表数据选择
  211. listClick(row) {
  212. let infoData = row;
  213. infoData.pageType = this.tabIndexTow;
  214. infoData.planTitle = this.optionData.planTitle;
  215. infoData.checkCategory = this.optionData.checkCategory;
  216. infoData.checkTypeName = this.optionData.checkTypeName;
  217. infoData.crossCheck = this.optionData.crossCheck;
  218. infoData.checkPlanSetVoList = this.optionData.checkPlanSetVoList;
  219. uni.navigateTo({
  220. url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' + encodeURIComponent(
  221. JSON.stringify(infoData))
  222. });
  223. },
  224. //搜索房间接口
  225. async buildBySub() {
  226. let self = this;
  227. const {
  228. data
  229. } = await laboratorySubRelInfoGetRelList({
  230. 'searchValue': this.form.searchValue,
  231. });
  232. if (data.code == 200) {
  233. if (data.data[0]) {
  234. this.roomList = data.data;
  235. } else {
  236. uni.showToast({
  237. title: '未找到相关实验室',
  238. icon: "none",
  239. mask: true,
  240. duration: 2000
  241. });
  242. }
  243. }
  244. },
  245. /******调用摄像头******/
  246. saoCode() {
  247. let self = this;
  248. uni.scanCode({
  249. onlyFromCamera: true,
  250. success: function(res) {
  251. let list = res.result.split("?")[1].split("&");
  252. let codeData = {};
  253. list.forEach((item) => {
  254. codeData[item.split("=")[0]] = item.split("=")[1];
  255. })
  256. if (codeData.code) {
  257. self.saoList(codeData.subId);
  258. } else {
  259. uni.showToast({
  260. title: '请扫描正确的二维码',
  261. icon: "none",
  262. mask: true,
  263. duration: 2000
  264. });
  265. }
  266. }
  267. });
  268. },
  269. //扫一扫查询数据
  270. async saoList(subId) {
  271. let obj = {
  272. planSetId: this.planSetId,
  273. subId: subId,
  274. }
  275. if (this.tabIndexTow == 0) {
  276. //检查计划
  277. const {
  278. data
  279. } = await securityAppCheckManageList(obj);
  280. if (data.code == 200) {
  281. if (data.data.records[0]) {
  282. //跳转检查项列表页面
  283. let infoData = data.data.records[0];
  284. infoData.pageType = this.tabIndexTow;
  285. infoData.checkPlanSetVoList = this.optionData.checkPlanSetVoList;
  286. uni.navigateTo({
  287. url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' +
  288. encodeURIComponent(
  289. JSON.stringify(infoData))
  290. });
  291. } else {
  292. //未找到数据提示
  293. uni.showToast({
  294. title: '未找到该实验室与本计划批次关联的数据',
  295. icon: "none",
  296. mask: true,
  297. duration: 2000
  298. });
  299. }
  300. }
  301. } else if (this.tabIndexTow == 1) {
  302. //复查计划
  303. obj.planId = this.optionData.planId;
  304. const {
  305. data
  306. } = await securityAppCheckDangerReviewSubList(obj);
  307. if (data.code == 200) {
  308. if (data.data[0] && data.data[0].stayExamineCheckNum != 0) {
  309. //跳转检查项列表页面
  310. let infoData = data.data[0];
  311. infoData.pageType = this.tabIndexTow;
  312. infoData.checkPlanSetVoList = this.optionData.checkPlanSetVoList;
  313. uni.navigateTo({
  314. url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' +
  315. encodeURIComponent(
  316. JSON.stringify(infoData))
  317. });
  318. } else {
  319. //未找到数据提示
  320. uni.showToast({
  321. title: '未找到该实验室与本计划批次关联的数据',
  322. icon: "none",
  323. mask: true,
  324. duration: 2000
  325. });
  326. }
  327. }
  328. } else if (this.tabIndexTow == 2) {
  329. //整改计划
  330. obj.planId = this.optionData.planId;
  331. const {
  332. data
  333. } = await securityAppCheckDangerGetCheckDangerSubList(obj);
  334. if (data.code == 200) {
  335. if (data.data[0]) {
  336. //跳转检查项列表页面
  337. let infoData = data.data[0];
  338. infoData.pageType = this.tabIndexTow;
  339. infoData.checkPlanSetVoList = this.optionData.checkPlanSetVoList;
  340. uni.navigateTo({
  341. url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' +
  342. encodeURIComponent(
  343. JSON.stringify(infoData))
  344. });
  345. } else {
  346. //未找到数据提示
  347. uni.showToast({
  348. title: '未找到该实验室与本计划批次关联的数据',
  349. icon: "none",
  350. mask: true,
  351. duration: 2000
  352. });
  353. }
  354. }
  355. }
  356. },
  357. //学院选择
  358. deptChange(e) {
  359. let self = this;
  360. self.deptData.list.forEach(function(item, index) {
  361. if (index == e.detail.value) {
  362. if (!item.deptId) {
  363. self.$set(self.deptData, 'id', null)
  364. self.$set(self.deptData, 'name', null)
  365. } else {
  366. self.$set(self.deptData, 'id', item.deptId)
  367. self.$set(self.deptData, 'name', item.deptName)
  368. }
  369. }
  370. })
  371. this.$set(this, 'getDataType', false);
  372. this.$set(this.queryParams, 'page', 1);
  373. this.getList();
  374. },
  375. //获取院系
  376. async systemDeptDropList() {
  377. const {
  378. data
  379. } = await systemDeptDropList({
  380. deptName: '',
  381. level: 2,
  382. deptType: 1
  383. });
  384. if (data.code == 200) {
  385. data.data.unshift({
  386. deptid: null,
  387. deptName: '全部'
  388. })
  389. this.$set(this.deptData, 'list', data.data);
  390. }
  391. },
  392. //获取分级
  393. async laboratoryLevelConfigGetWebLevelTitleList() {
  394. let self=this;
  395. const {
  396. data
  397. } = await laboratoryLevelConfigGetWebLevelTitleList({});
  398. if (data.code == 200) {
  399. data.data.forEach(function(item) {
  400. item.levelName = item.levelName.split('/')[0]
  401. if(item.levelColor){
  402. item.levelColorTow = self.hexToRgb(item.levelColor, 0.2)
  403. }
  404. })
  405. this.$set(this, 'levelList', data.data);
  406. }
  407. },
  408. //回车触发
  409. carriageReturnRequest() {
  410. this.$set(this, 'getDataType', false);
  411. this.$set(this.queryParams, 'page', 1);
  412. this.getList();
  413. },
  414. //检查任务
  415. async getList() {
  416. let self = this;
  417. let obj = JSON.parse(JSON.stringify(this.queryParams));
  418. obj.planSetId = this.planSetId;
  419. obj.deptId = this.deptData.id ? this.deptData.id : '';
  420. obj.searchValue = this.searchValue ? this.searchValue : '';
  421. obj.levelId = this.levelId ? this.levelId : '';
  422. if (this.tabIndexTow == 0) {
  423. //检查计划
  424. const {
  425. data
  426. } = await securityAppCheckManageList(obj);
  427. if (data.code == 200) {
  428. data.data.records.forEach(function(item) {
  429. if(item.classLevelColor){
  430. item.classLevelColorTow = self.hexToRgb(item.classLevelColor, 0.2)
  431. }
  432. })
  433. if (self.queryParams.page == 1) {
  434. this.dataList = data.data.records;
  435. this.total = data.data.total;
  436. if (data.data.total / self.queryParams.pageSize <= self.queryParams.page) {
  437. this.$set(this, 'getDataType', true);
  438. }
  439. } else {
  440. this.dataList = [...this.dataList, ...data.data.records]
  441. this.total = data.data.total;
  442. if (data.data.total / self.queryParams.pageSize <= self.queryParams.page) {
  443. this.$set(this, 'getDataType', true);
  444. }
  445. }
  446. }
  447. } else if (this.tabIndexTow == 1) {
  448. //复查计划
  449. obj.planId = this.optionData.planId;
  450. const {
  451. data
  452. } = await securityAppCheckDangerReviewSubList(obj);
  453. if (data.code == 200) {
  454. this.dataList = data.data;
  455. this.$set(this, 'getDataType', true);
  456. // 后台接口暂时不支持分页
  457. // if (self.queryParams.page == 1) {
  458. // this.dataList = data.data.records;
  459. // this.total = data.data.total;
  460. // if (data.data.total / self.queryParams.pageSize <= self.queryParams.page) {
  461. // this.$set(this, 'getDataType', true);
  462. // }
  463. // } else {
  464. // this.dataList = [...this.dataList, ...data.data.records]
  465. // this.total = data.data.total;
  466. // if (data.data.total / self.queryParams.pageSize <= self.queryParams.page) {
  467. // this.$set(this, 'getDataType', true);
  468. // }
  469. // }
  470. }
  471. } else if (this.tabIndexTow == 2) {
  472. //整改计划
  473. obj.planId = this.optionData.planId;
  474. const {
  475. data
  476. } = await securityAppCheckDangerGetCheckDangerSubList(obj);
  477. if (data.code == 200) {
  478. this.dataList = data.data;
  479. this.$set(this, 'getDataType', true);
  480. // 后台接口暂时不支持分页
  481. // if (self.queryParams.page == 1) {
  482. // this.dataList = data.data.records;
  483. // this.total = data.data.total;
  484. // if (data.data.total / self.queryParams.pageSize <= self.queryParams.page) {
  485. // this.$set(this, 'getDataType', true);
  486. // }
  487. // } else {
  488. // this.dataList = [...this.dataList, ...data.data.records]
  489. // this.total = data.data.total;
  490. // if (data.data.total / self.queryParams.pageSize <= self.queryParams.page) {
  491. // this.$set(this, 'getDataType', true);
  492. // }
  493. // }
  494. }
  495. }
  496. },
  497. //十六进制颜色值和RGB格式转换
  498. hexToRgb(hex, opacity = 1) {
  499. // 去除#号
  500. var color = hex.replace("#", "");
  501. // 分割成红、绿、蓝三部分的16进制字符串
  502. var red = parseInt(color.substring(0, 2), 16);
  503. var green = parseInt(color.substring(2, 4), 16);
  504. var blue = parseInt(color.substring(4, 6), 16);
  505. return `RGB(${red}, ${green}, ${blue},${opacity})`;
  506. },
  507. }
  508. }
  509. </script>
  510. <style lang="stylus" scoped>
  511. .snapshotList {
  512. height: 100%;
  513. display flex;
  514. overflow: hidden;
  515. .info-max-box {
  516. padding-top: 20rpx;
  517. }
  518. .title {
  519. width: 690rpx;
  520. margin: 0 30rpx 20rpx;
  521. height: 150rpx;
  522. background: #FFFFFF;
  523. border-radius: 20rpx 20rpx 20rpx 20rpx;
  524. display: flex;
  525. justify-content: space-between;
  526. align-items: center;
  527. padding: 0 30rpx;
  528. box-sizing: border-box;
  529. .title-l {
  530. width: 594rpx;
  531. .title-l-t {
  532. font-size: 30rpx;
  533. color: #333333;
  534. line-height: 42rpx;
  535. text-align: left;
  536. overflow: hidden;
  537. text-overflow: ellipsis;
  538. white-space: nowrap;
  539. }
  540. .title-l-b {
  541. display: flex;
  542. justify-content: flex-start;
  543. margin-top: 16rpx;
  544. >view {
  545. width: 130rpx;
  546. height: 50rpx;
  547. background: rgba(1, 131, 250, 0.2);
  548. border-radius: 6rpx 6rpx 6rpx 6rpx;
  549. font-size: 24rpx;
  550. color: #0183FA;
  551. line-height: 50rpx;
  552. text-align: center;
  553. margin-right: 14rpx;
  554. }
  555. }
  556. }
  557. .title-r {
  558. width: 24rpx;
  559. height: 24rpx;
  560. }
  561. }
  562. .tabTitleTow {
  563. width: 690rpx;
  564. height: 80rpx;
  565. display: flex;
  566. justify-content: center;
  567. margin: 20rpx 0 0 30rpx;
  568. >view:nth-of-type(1) {
  569. width: 230rpx;
  570. height: 80rpx;
  571. border-radius: 50rpx 0rpx 0rpx 50rpx;
  572. }
  573. >view:nth-of-type(2) {
  574. width: 230rpx;
  575. height: 80rpx;
  576. border-radius: 0rpx 0rpx 0rpx 0rpx;
  577. }
  578. >view:nth-of-type(3) {
  579. width: 230rpx;
  580. height: 80rpx;
  581. border-radius: 0rpx 50rpx 50rpx 0rpx;
  582. }
  583. .tab-C {
  584. font-size: 30rpx;
  585. color: #FFFFFF;
  586. line-height: 80rpx;
  587. text-align: center;
  588. background: #0183FA;
  589. }
  590. .tab-D {
  591. font-size: 30rpx;
  592. color: #333333;
  593. line-height: 80rpx;
  594. text-align: center;
  595. background: #FFFFFF;
  596. }
  597. }
  598. .srearch {
  599. width: 750rpx;
  600. height: 100rpx;
  601. background: #FFFFFF;
  602. border-radius: 0rpx 0rpx 0rpx 0rpx;
  603. overflow: hidden;
  604. display: flex;
  605. display: flex;
  606. justify-content: space-between;
  607. align-items: center;
  608. padding: 0 30rpx;
  609. box-sizing: border-box;
  610. .college {
  611. width: 200rpx;
  612. height: 60rpx;
  613. border-radius: 50rpx 50rpx 50rpx 50rpx;
  614. border: 2rpx solid #E0E0E0;
  615. font-size: 24rpx;
  616. color: #333333;
  617. line-height: 60rpx;
  618. text-align: left;
  619. display: flex;
  620. justify-content: space-between;
  621. align-items: center;
  622. padding: 0 26rpx;
  623. box-sizing: border-box;
  624. overflow: hidden;
  625. text-overflow: ellipsis;
  626. white-space: nowrap;
  627. >view {
  628. width: 124rpx;
  629. display: block;
  630. overflow: hidden;
  631. text-overflow: ellipsis;
  632. white-space: nowrap;
  633. }
  634. >img {
  635. display: block;
  636. width: 24rpx;
  637. height: 12rpx;
  638. }
  639. }
  640. .srearch-n {
  641. width: 690rpx;
  642. height: 60rpx;
  643. border-radius: 50rpx 50rpx 50rpx 50rpx;
  644. border: 2rpx solid #E0E0E0;
  645. display: flex;
  646. justify-content: flex-start;
  647. align-items: center;
  648. .srearch-l {
  649. width: 60rpx;
  650. height: 60rpx;
  651. >img {
  652. width: 20rpx;
  653. height: 20rpx;
  654. margin: 20rpx 0 0 26rpx;
  655. }
  656. }
  657. .srearch-c {
  658. flex: 1;
  659. height: 58rpx;
  660. font-size: 24rpx;
  661. color: #999999;
  662. line-height: 30rpx;
  663. text-align: left;
  664. }
  665. .srearch-r {
  666. width: 90rpx;
  667. height: 60rpx;
  668. >img {
  669. width: 30rpx;
  670. height: 30rpx;
  671. margin: 14rpx 22rpx 0 30rpx;
  672. }
  673. }
  674. }
  675. }
  676. .level {
  677. width: 750rpx;
  678. height: 80rpx;
  679. background: #FFFFFF;
  680. display: flex;
  681. justify-content: flex-start;
  682. padding: 30rpx 30rpx 0;
  683. box-sizing: border-box;
  684. margin-top: 20rpx;
  685. .level-li {
  686. width: 100rpx;
  687. height: 50rpx;
  688. background: #F5F5F5;
  689. border-radius: 50rpx 50rpx 50rpx 50rpx;
  690. border: 2rpx solid #E0E0E0;
  691. margin-right: 10rpx;
  692. font-size: 24rpx;
  693. color: #333333;
  694. line-height: 50rpx;
  695. text-align: center;
  696. }
  697. #levelColor-A {
  698. background: rgba(255, 0, 0, 0.2);
  699. color: #FF0000;
  700. border: 1rpx solid #FF0000;
  701. }
  702. #levelColor-B {
  703. background: #F5F5F5;
  704. color: #333333;
  705. border: 2rpx solid #E0E0E0;
  706. }
  707. }
  708. .list {
  709. width: 690rpx;
  710. min-height: 765rpx;
  711. background: #FFFFFF;
  712. border-radius: 20rpx 20rpx 20rpx 20rpx;
  713. margin: 20rpx 0 0 30rpx;
  714. .list-li {
  715. display: flex;
  716. justify-content: space-between;
  717. border-bottom: 1rpx solid #E0E0E0;
  718. padding: 0 22rpx 0 28rpx;
  719. box-sizing: border-box;
  720. >view:nth-of-type(1) {
  721. font-size: 30rpx;
  722. color: #333333;
  723. line-height: 80rpx;
  724. text-align: left;
  725. }
  726. >view:nth-of-type(2) {
  727. font-size: 28rpx;
  728. color: #666666;
  729. line-height: 80rpx;
  730. text-align: left;
  731. display: flex;
  732. justify-content: flex-start;
  733. align-items: center;
  734. >img {
  735. width: 24rpx;
  736. height: 24rpx;
  737. margin-left: 8rpx;
  738. }
  739. }
  740. .project_r {
  741. width: 510rpx;
  742. min-height: 80rpx;
  743. display: flex;
  744. justify-content: flex-end;
  745. align-items: center;
  746. padding-left: 20rpx;
  747. box-sizing: border-box;
  748. color: #666;
  749. }
  750. }
  751. .describe {
  752. width: 636rpx;
  753. height: 120rpx;
  754. border-radius: 10rpx 10rpx 10rpx 10rpx;
  755. border: 2rpx solid #E0E0E0;
  756. margin: 20rpx 0 0 28rpx;
  757. padding: 12rpx 16rpx;
  758. box-sizing: border-box;
  759. }
  760. .check-for-img-max-box {
  761. margin: 20px 28rpx;
  762. .left-title-p {
  763. width: 100%;
  764. text-align: left;
  765. font-size: 30rpx;
  766. font-family: PingFang SC-Medium, PingFang SC;
  767. font-weight: 400;
  768. color: #333333;
  769. line-height: 80rpx;
  770. }
  771. .right-img-box {
  772. .img-box {
  773. display inline-block;
  774. height: 150rpx;
  775. width: 150rpx;
  776. position relative;
  777. margin: 0 14rpx 20rpx 0;
  778. border-radius 10rpx;
  779. overflow hidden;
  780. .img-data {
  781. height: 150rpx;
  782. width: 150rpx;
  783. }
  784. .position-img {
  785. position absolute;
  786. right: 0;
  787. top: 0;
  788. width: 36rpx;
  789. height: 36rpx;
  790. }
  791. }
  792. .img-box:nth-of-type(3n+3) {
  793. margin-right: 0rpx;
  794. }
  795. .add-button {
  796. margin: 0 0rpx 20rpx 0;
  797. border-radius 10rpx;
  798. overflow hidden;
  799. display inline-block;
  800. height: 150rpx;
  801. width: 150rpx;
  802. }
  803. }
  804. }
  805. }
  806. /* 隐患整改 */
  807. .hidden {
  808. box-sizing: border-box;
  809. margin: 20rpx 0;
  810. .hidden-li:nth-child(1) {
  811. border-top: none;
  812. }
  813. .lab-info {
  814. background: #FFFFFF;
  815. display: flex;
  816. justify-content: space-between;
  817. border: 2rpx dashed #D8D8D8;
  818. .lab-info-l {
  819. width: 80rpx;
  820. height: 80rpx;
  821. background: #0183FA;
  822. border-radius: 10rpx 10rpx 10rpx 10rpx;
  823. margin-left: 30rpx;
  824. margin-top: 30rpx;
  825. margin-bottom: 42rpx;
  826. }
  827. .lab-info-c {
  828. margin: 24rpx 30rpx 0 20rpx;
  829. flex: 1;
  830. .lab-info-c-t {
  831. display: flex;
  832. justify-content: space-between;
  833. .lab-info-c-t-l {
  834. font-size: 30rpx;
  835. color: #333333;
  836. line-height: 42rpx;
  837. text-align: left;
  838. overflow: hidden;
  839. text-overflow: ellipsis;
  840. white-space: nowrap;
  841. }
  842. .lab-info-c-t-r {
  843. display: flex;
  844. justify-content: flex-start;
  845. border-radius: 10rpx 10rpx 10rpx 10rpx;
  846. width: 180rpx;
  847. height: 40rpx;
  848. margin-left: 10rpx;
  849. >text {
  850. display: inline-block;
  851. flex: 1;
  852. text-align: center;
  853. font-size: 24rpx;
  854. line-height: 40rpx;
  855. text-align: center;
  856. }
  857. }
  858. }
  859. .lab-info-c-b {
  860. margin-top: 16rpx;
  861. display: flex;
  862. justify-content: space-between;
  863. >text:nth-of-type(1) {
  864. font-size: 30rpx;
  865. color: #666666;
  866. line-height: 30rpx;
  867. text-align: left;
  868. }
  869. >text:nth-of-type(2) {
  870. font-size: 30rpx;
  871. color: #666666;
  872. line-height: 30rpx;
  873. text-align: left;
  874. }
  875. }
  876. }
  877. }
  878. .lab-info:last-of-type {
  879. border: none;
  880. }
  881. .get-data-p {
  882. height: 100rpx;
  883. text-align: center;
  884. .get-data-img {
  885. width: 30rpx;
  886. height: 30rpx;
  887. margin: 0 auto;
  888. margin-top: 15rpx;
  889. }
  890. .get-data-text {
  891. text-align: center;
  892. }
  893. }
  894. .get-data-null-p {
  895. height: 100rpx;
  896. line-height: 100rpx;
  897. text-align: center;
  898. }
  899. }
  900. #color-A {
  901. color: #0183FA;
  902. }
  903. #color-B {
  904. color: #FF8C00;
  905. }
  906. #color-C {
  907. color: #16B531;
  908. }
  909. .saoCode{
  910. position: fixed;
  911. left: 288rpx;
  912. bottom: 20rpx;
  913. width: 130rpx;
  914. height: 130rpx;
  915. }
  916. }
  917. </style>