inspectList.vue 38 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492
  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="imagesUrl('commonality/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 :class="tabIndexTow==index || tabIndexTow==index+1?'tab-C':'tab-D'" v-for="(item,index) in tabListTow"
  22. @click="tabClickTow(index)">{{item}}</view>
  23. </view>
  24. <view>
  25. <view class="dept-max-bix-box">
  26. <div class="dept-check-box">
  27. <picker class="dept-picker" @change="deptChange" :value="deptData.index" :range="deptData.list" range-key="deptName">
  28. <view>
  29. <view class="dept-check-min-box" :class="deptData.name?'check-dept':'no-check-dept'">
  30. {{deptData.name?deptData.name:'选择二级单位'}}
  31. </view>
  32. </view>
  33. </picker>
  34. <view class="triangle"></view>
  35. </div>
  36. <view class="level-r" v-if="tabIndexTow == 0">
  37. <view :class="manageStatus == 0 ?'level-r-B':'level-r-A'" @click="checkFlagChange(0)">未检查</view>
  38. <view :class="manageStatus == 1 ?'level-r-B':'level-r-A'" @click="checkFlagChange(1)">检查中</view>
  39. <view :class="manageStatus == 2 ?'level-r-B':'level-r-A'" @click="checkFlagChange(2)">已检查</view>
  40. </view>
  41. </view>
  42. <view class="level" v-if="tabIndexTow != 1">
  43. <view class="level-li"
  44. :style="levelId==item.levelId?'border:1rpx solid '+item.levelColor+';background:'+item.levelColorTow+';':'levelColor-B'"
  45. @click="levelClick(item.levelId)" v-for="(item,index) in levelList">{{item.levelName}}</view>
  46. </view>
  47. <view class="uni-data-picker-box" v-if="tabIndexTow == 1">
  48. <uni-data-picker
  49. placeholder="请选择楼栋/楼层" v-model="classes"
  50. @change="bindPickerChange" :localdata="dataListTow" ref='picker'>
  51. </uni-data-picker>
  52. </view>
  53. <!-- 搜索 -->
  54. <view class="header">
  55. <view class="search">
  56. <view class="search-r">
  57. <img :src="imagesUrl('commonality/icon_aqjc_ss.png')" @click="searchBtn">
  58. <input type="text" v-model="searchValue" placeholder="实验室名称或房间号" name="search"
  59. @confirm='searchBtn' confirm-type='search' maxlength="50"
  60. style="color:#333"
  61. placeholder-style="color: #999;font-size:24rpx;">
  62. <!-- <view v-if="searchValue" class="left-icons" @click="delSearchValue()">
  63. <uni-icons color="#0183FA" type="clear" size="20"></uni-icons>
  64. </view> -->
  65. </view>
  66. <view class="cancel" @click="cancelBtn()">重置</view>
  67. </view>
  68. </view>
  69. <!-- <view class="srearch">
  70. <view class="srearch-n" @click="srearchClick()">
  71. <view class="srearch-l">
  72. <img :src="imagesUrl('commonality/icon_aqjc_ss.png')">
  73. </view>
  74. <input class="srearch-c" type="text" v-model="searchValue" placeholder="实验室名称或房间号"/>
  75. </view>
  76. </view> -->
  77. </view>
  78. <view class="list">
  79. <view class="list-li" @click="listClick(item)" v-for="(item,index) in dataList">
  80. <view class="list-li-t">
  81. <img class="list-li-t-l" :src="imagesUrl('commonality/icon_aqjc_shiyanshi.png')">
  82. <view class="list-li-t-c">{{item.subName}}</view>
  83. <view class="list-li-t-r"
  84. :style="'border:1rpx solid '+item.classLevelColor+';background:'+item.classLevelColorTow+';'">
  85. <text
  86. :style="'border-right:1rpx solid '+item.classLevelColor+';color:'+item.classLevelColor+';'">{{item.classLevelName?item.classLevelName:''}}</text>
  87. <text
  88. :style="'color:'+item.classLevelColor+';'">{{item.classTypeNames?item.classTypeNames:''}}</text>
  89. </view>
  90. </view>
  91. <view class="list-li-b">
  92. <view class="list-li-b-t">
  93. <img :src="imagesUrl('commonality/icon_sy_zc@1x.png')">
  94. {{tabIndexTow==0?(item.roomNum?item.roomNum:'-'):(item.subRoom?item.subRoom:'-')}}房间&{{item.buildName?item.buildName:''}}
  95. </view>
  96. <view class="list-li-b-b">
  97. <view class="list-li-b-b-l">
  98. <img :src="imagesUrl('commonality/icon_sy_zc@1x.png')">
  99. {{item.deptName}}
  100. </view>
  101. <view :class="item.manageStatus==0?'notFinished':(item.manageStatus==1?'finished-b':(item.manageStatus==2?'finished':''))" v-if="tabIndexTow==0">
  102. {{item.manageStatus==0?'未检查':(item.manageStatus==1?'检查中':(item.manageStatus==2?'已检查':''))}}
  103. </view>
  104. </view>
  105. </view>
  106. </view>
  107. <view class="get-data-null-p" v-if="getDataType">- 没有更多数据 -</view>
  108. </view>
  109. <img v-if="tabIndexTow==0" class="saoCode" @click="saoCode()"
  110. :src="imagesUrl('safetyCheck/icon_aqjc_saoma.png')">
  111. </scroll-view>
  112. <view class="shade-box" v-if="securityCheck">
  113. <view class="null-box" @click="goPage('securityCheck',false)"></view>
  114. <view class="shade_n">
  115. <view class="title">
  116. <view>请选择实验室</view>
  117. </view>
  118. <view class="batch">
  119. <view class="batch-li" @click="batchClickTow(item)" v-for="(item,index) in subjectData">
  120. <view class="batch-li-l">
  121. <text>{{item.planTitle}}-{{item.checkName}}</text>
  122. <text>{{item.subName}}{{item.roomNum?'('+item.roomNum+')':''}}</text>
  123. </view>
  124. <view class="batch-li-r">
  125. <img :src="imagesUrl('commonality/icon_wd_gd@1x.png')">
  126. </view>
  127. </view>
  128. </view>
  129. </view>
  130. </view>
  131. </view>
  132. </template>
  133. <script>
  134. import {
  135. config
  136. } from '@/api/request/config.js'
  137. import {
  138. systemDeptDropList,
  139. } from '@/pages/api/index.js'
  140. import {
  141. laboratorySubRelInfoGetRelList,
  142. laboratoryLevelConfigGetWebLevelTitleList,
  143. securityAppCheckManageList,
  144. securityAppCheckDangerGetCheckDangerSubList,
  145. securityAppCheckDangerReviewSubList,
  146. securityAppCheckSetOptionList,
  147. securityAppCheckDangerBuildAndFloorList,
  148. securityAppCheckPlanScanCode,
  149. } from '@/pages_safetyCheck/api/index.js'
  150. export default {
  151. name: "snapshotList",
  152. data() {
  153. return {
  154. baseUrl: config.base_url,
  155. pageType: 0,
  156. userType: 1,
  157. // tabListTow: ['检查任务', '复查验证', '隐患整改'],
  158. tabListTow: ['检查任务', '隐患整改'],
  159. tabIndexTow: 0,
  160. //学院选择
  161. deptData: {
  162. index: null,
  163. list: [],
  164. id: null,
  165. name: null
  166. },
  167. deptIndex: null,
  168. deptList: [],
  169. //弹层实验室数据
  170. popupType: false,
  171. roomList: [],
  172. //级别
  173. levelList: [],
  174. levelId: null,
  175. optionData: null,
  176. //实验室/房间号
  177. searchValue: '',
  178. subId: '',
  179. planSetId: null,
  180. // 查询参数
  181. queryParams: {
  182. page: 1,
  183. pageSize: 20,
  184. },
  185. dataList: [],
  186. total: 0,
  187. getDataType: false,
  188. manageStatus: null,
  189. securityCheck:false,
  190. subjectData: [],
  191. //楼栋楼层数据
  192. dataListTow: [],
  193. //楼栋楼层绑定数据
  194. classes:[],
  195. //楼栋楼层ID
  196. buildId:'',
  197. floorId:'',
  198. }
  199. },
  200. onLoad(option) {
  201. let optionData = JSON.parse(decodeURIComponent(option.infoData))
  202. uni.setNavigationBarTitle({
  203. title: optionData.checkPlanSetVoList.checkName
  204. })
  205. // this.$set(this, 'tabListTow',
  206. // optionData.checkCategory == 1 ? ['检查任务', '复查验证', '隐患整改'] :
  207. // (optionData.checkCategory == 2 ? ['自查任务', '复查验证', '隐患整改'] : [])
  208. // )
  209. this.$set(this, 'tabListTow',
  210. optionData.checkCategory == 1 ? ['检查任务', '隐患整改'] :
  211. (optionData.checkCategory == 2 ? ['自查任务', '隐患整改'] : [])
  212. )
  213. this.$set(this, 'optionData', optionData);
  214. this.$set(this, 'planSetId', optionData.checkPlanSetVoList.planSetId);
  215. },
  216. created() {
  217. this.systemDeptDropList();
  218. this.laboratoryLevelConfigGetWebLevelTitleList();
  219. },
  220. mounted() {
  221. let self = this;
  222. setTimeout(() => {
  223. self.securityAppCheckDangerBuildAndFloorList();
  224. self.getList();
  225. }, 100);
  226. },
  227. methods: {
  228. //楼栋楼层选择
  229. bindPickerChange: function(e) {
  230. console.log('e',e.detail.value)
  231. let self = this;
  232. if(!e.detail.value[0]){
  233. //清除
  234. this.$set(this,'buildId','');
  235. this.$set(this,'floorId','');
  236. }else{
  237. //选中
  238. this.$set(this,'buildId',e.detail.value[0].value);
  239. this.$set(this,'floorId',e.detail.value[1].value);
  240. }
  241. this.$set(this.queryParams, 'page', 1);
  242. this.getList();
  243. },
  244. //实验室搜索
  245. searchBtn() {
  246. this.$set(this.queryParams, 'page', 1);
  247. this.$set(this, 'dataList', []);
  248. this.$set(this, 'total', 0);
  249. this.$nextTick(() => {
  250. this.getList();
  251. })
  252. },
  253. //滚动事件
  254. scrollGet() {
  255. let self = this;
  256. if (self.total / self.queryParams.pageSize <= self.queryParams.page) {
  257. this.$set(this, 'getDataType', true);
  258. } else {
  259. this.queryParams.page += 1;
  260. this.$nextTick(() => {
  261. this.getList();
  262. })
  263. }
  264. },
  265. //级别切换
  266. levelClick(id) {
  267. if (this.levelId == id) {
  268. this.$set(this, 'levelId', null);
  269. } else {
  270. this.$set(this, 'levelId', id);
  271. }
  272. this.$set(this, 'getDataType', false);
  273. this.$set(this.queryParams, 'page', 1);
  274. this.getList();
  275. },
  276. //符合/不符合
  277. checkFlagChange(type) {
  278. if (this.manageStatus == type) {
  279. this.$set(this, 'manageStatus', null);
  280. } else {
  281. this.$set(this, 'manageStatus', type);
  282. }
  283. this.$set(this.queryParams, 'page', 1);
  284. this.getList()
  285. },
  286. //查询类型切换
  287. tabClickTow(index) {
  288. this.$set(this.queryParams, 'page', 1);
  289. this.$set(this, 'deptData', {
  290. index: null,
  291. list: this.deptData.list,
  292. id: null,
  293. name: null
  294. });
  295. this.$set(this, 'searchValue', '');
  296. this.$set(this, 'levelId', null);
  297. this.$set(this, 'getDataType', false);
  298. this.$set(this, 'dataList', []);
  299. this.$set(this, 'total', 0);
  300. this.$set(this, 'classes', []);
  301. this.$set(this, 'buildId', '');
  302. this.$set(this, 'floorId', '');
  303. // this.$set(this, 'tabIndexTow', index);
  304. this.$set(this, 'tabIndexTow', index==0?0:2);
  305. this.$nextTick(() => {
  306. this.getList();
  307. })
  308. },
  309. //重置按钮
  310. cancelBtn(){
  311. this.$set(this.queryParams, 'page', 1);
  312. this.$set(this, 'deptData', {
  313. index: null,
  314. list: this.deptData.list,
  315. id: null,
  316. name: null
  317. });
  318. this.$set(this, 'searchValue', '');
  319. this.$set(this, 'levelId', null);
  320. this.$set(this, 'getDataType', false);
  321. this.$set(this, 'dataList', []);
  322. this.$set(this, 'total', 0);
  323. this.$set(this, 'classes', []);
  324. this.$set(this, 'buildId', '');
  325. this.$set(this, 'floorId', '');
  326. this.$nextTick(() => {
  327. this.getList();
  328. })
  329. },
  330. //实验室搜索框跳转
  331. srearchClick() {
  332. let infoData = this.optionData;
  333. infoData.pageType = this.tabIndexTow;
  334. infoData.laboratoryStatus = this.tabIndexTow;
  335. infoData.tabIndexTow = this.tabIndexTow;
  336. uni.navigateTo({
  337. url: '/pages_safetyCheck/views/snapshotManage/laboratorySearch?form=' + encodeURIComponent(
  338. JSON.stringify(infoData))
  339. });
  340. },
  341. //计划详情
  342. planClick() {
  343. let infoData = {
  344. planId: this.optionData.planId
  345. };
  346. uni.navigateTo({
  347. url: '/pages_safetyCheck/views/planDetail?infoData=' + encodeURIComponent(JSON.stringify(
  348. infoData))
  349. });
  350. },
  351. //实验室列表数据选择
  352. listClick(row) {
  353. let infoData = row;
  354. infoData.pageType = this.tabIndexTow;
  355. infoData.planTitle = this.optionData.planTitle;
  356. infoData.checkCategory = this.optionData.checkCategory;
  357. infoData.checkTypeName = this.optionData.checkTypeName;
  358. infoData.crossCheck = this.optionData.crossCheck;
  359. infoData.checkPlanSetVoList = this.optionData.checkPlanSetVoList;
  360. uni.navigateTo({
  361. url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' + encodeURIComponent(
  362. JSON.stringify(infoData))
  363. });
  364. },
  365. //搜索房间接口
  366. async buildBySub() {
  367. let self = this;
  368. const {
  369. data
  370. } = await laboratorySubRelInfoGetRelList({
  371. 'searchValue': this.form.searchValue,
  372. });
  373. if (data.code == 200) {
  374. if (data.data[0]) {
  375. this.roomList = data.data;
  376. } else {
  377. uni.showToast({
  378. title: '未找到相关实验室',
  379. icon: "none",
  380. mask: true,
  381. duration: 2000
  382. });
  383. }
  384. }
  385. },
  386. async securityAppCheckDangerBuildAndFloorList(){
  387. let obj = {
  388. planId:this.optionData.planId,
  389. planSetId:this.planSetId,
  390. }
  391. const {
  392. data
  393. } = await securityAppCheckDangerBuildAndFloorList(obj);
  394. if(data.code == 200){
  395. this.$set(this,'dataListTow',data.data);
  396. }
  397. },
  398. //查询检查项
  399. async securityAppCheckSetOptionList(item) {
  400. let self = this;
  401. let upData = item;
  402. let obj = {
  403. page: 1,
  404. pageSize: 20,
  405. checkStatus: '0',
  406. manageId: upData.manageId,
  407. }
  408. const {
  409. data
  410. } = await securityAppCheckSetOptionList(obj);
  411. if (data.code == 200) {
  412. if (data.data.records[0]) {
  413. let infoData = self.optionData;
  414. infoData.pageType = self.tabIndexTow;;
  415. infoData.itemsStatus = 0;
  416. infoData.subName = upData.subName;
  417. infoData.roomNum = upData.roomNum;
  418. infoData.subId = data.data.records[0].subId;
  419. infoData.manageId = data.data.records[0].manageId;
  420. infoData.setOptionId = data.data.records[0].setOptionId;
  421. infoData.hazardCheckPro = data.data.records[0].hazardCheckPro;
  422. uni.navigateTo({
  423. url: '/pages_safetyCheck/views/inspectManage/conductInspections?infoData=' +
  424. encodeURIComponent(
  425. JSON
  426. .stringify(infoData))
  427. });
  428. } else {
  429. self.dialogStatus = 0;
  430. self.dialogVisible = false;
  431. uni.showToast({
  432. title: '该实验室暂无检查项!',
  433. icon: "none",
  434. mask: true,
  435. duration: 2000
  436. });
  437. return
  438. }
  439. }
  440. },
  441. /******调用摄像头******/
  442. /******调用摄像头******/
  443. saoCode() {
  444. let self = this;
  445. uni.scanCode({
  446. onlyFromCamera: true,
  447. success: function(res) {
  448. let list = res.result.split("?")[1].split("&");
  449. let codeData = {};
  450. list.forEach((item) => {
  451. codeData[item.split("=")[0]] = item.split("=")[1];
  452. })
  453. if (codeData.code) {
  454. self.securityAppCheckPlanScanCode(codeData.subId,self.planSetId);
  455. // self.$set(self.subjectData, 'subId', codeData.subId);
  456. // self.$set(self.subjectData, 'planSetId', self.planSetId);
  457. // self.$set(self, "securityCheck", true)
  458. } else {
  459. uni.showToast({
  460. title: '请扫描正确的二维码',
  461. icon: "none",
  462. mask: true,
  463. duration: 2000
  464. });
  465. }
  466. }
  467. });
  468. },
  469. //查询计划
  470. async securityAppCheckPlanScanCode(subId,planSetId) {
  471. let self = this;
  472. let checkCategory = null;
  473. if(uni.getStorageSync('identityData')){
  474. if(uni.getStorageSync('identityData').type=='collegeAdmin'){
  475. checkCategory=2
  476. }else if(uni.getStorageSync('identityData').type=='schoolAdmin'){
  477. checkCategory=1
  478. }
  479. }
  480. let obj = {
  481. subId:subId,
  482. checkCategory:checkCategory,
  483. };
  484. if(planSetId){
  485. obj.planSetId = planSetId;
  486. }
  487. const {
  488. data
  489. } = await securityAppCheckPlanScanCode(obj);
  490. if (data.code == 200) {
  491. if(data.data[0]){
  492. if(data.data[1]){
  493. //多个
  494. self.$set(self,'subjectData',data.data);
  495. self.$set(self,'securityCheck',true);
  496. }else{
  497. //单个
  498. let infoData = data.data[0];
  499. infoData.pageType = 0;
  500. uni.navigateTo({
  501. url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' + encodeURIComponent(
  502. JSON.stringify(infoData))
  503. });
  504. }
  505. }else{
  506. //没有
  507. uni.showToast({
  508. title: '该实验室暂无检查计划!',
  509. icon: "none",
  510. mask: true,
  511. duration: 2000
  512. });
  513. }
  514. }
  515. },
  516. batchClickTow(row) {
  517. let infoData = row;
  518. infoData.pageType = 0;
  519. uni.navigateTo({
  520. url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' + encodeURIComponent(
  521. JSON.stringify(infoData))
  522. });
  523. },
  524. //扫一扫查询数据
  525. async saoList(subId) {
  526. let obj = {
  527. planSetId: this.planSetId,
  528. subId: subId,
  529. }
  530. if (this.tabIndexTow == 0) {
  531. //检查计划
  532. const {
  533. data
  534. } = await securityAppCheckManageList(obj);
  535. if (data.code == 200) {
  536. if (data.data.records[0]) {
  537. this.securityAppCheckSetOptionListTow(data.data.records[0], 0)
  538. //跳转检查项列表页面
  539. /* let infoData = data.data.records[0];
  540. infoData.pageType = this.tabIndexTow;
  541. infoData.checkPlanSetVoList = this.optionData.checkPlanSetVoList;
  542. uni.navigateTo({
  543. url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' +
  544. encodeURIComponent(
  545. JSON.stringify(infoData))
  546. }); */
  547. } else {
  548. //未找到数据提示
  549. uni.showToast({
  550. title: '未找到该实验室与本计划批次关联的数据',
  551. icon: "none",
  552. mask: true,
  553. duration: 2000
  554. });
  555. }
  556. }
  557. } else if (this.tabIndexTow == 1) {
  558. //复查计划
  559. obj.planId = this.optionData.planId;
  560. const {
  561. data
  562. } = await securityAppCheckDangerReviewSubList(obj);
  563. if (data.code == 200) {
  564. if (data.data[0] && data.data[0].stayExamineCheckNum != 0) {
  565. //跳转检查项列表页面
  566. let infoData = data.data[0];
  567. infoData.pageType = this.tabIndexTow;
  568. infoData.checkPlanSetVoList = this.optionData.checkPlanSetVoList;
  569. uni.navigateTo({
  570. url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' +
  571. encodeURIComponent(
  572. JSON.stringify(infoData))
  573. });
  574. } else {
  575. //未找到数据提示
  576. uni.showToast({
  577. title: '未找到该实验室与本计划批次关联的数据',
  578. icon: "none",
  579. mask: true,
  580. duration: 2000
  581. });
  582. }
  583. }
  584. } else if (this.tabIndexTow == 2) {
  585. //整改计划
  586. obj.planId = this.optionData.planId;
  587. obj.userId = uni.getStorageSync('userId');
  588. const {
  589. data
  590. } = await securityAppCheckDangerGetCheckDangerSubList(obj);
  591. if (data.code == 200) {
  592. if (data.data[0]) {
  593. //跳转检查项列表页面
  594. let infoData = data.data[0];
  595. infoData.pageType = this.tabIndexTow;
  596. infoData.checkPlanSetVoList = this.optionData.checkPlanSetVoList;
  597. uni.navigateTo({
  598. url: '/pages_safetyCheck/views/itemsManage/hiddenDangerItems?infoData=' +
  599. encodeURIComponent(
  600. JSON.stringify(infoData))
  601. });
  602. } else {
  603. //未找到数据提示
  604. uni.showToast({
  605. title: '未找到该实验室与本计划批次关联的数据',
  606. icon: "none",
  607. mask: true,
  608. duration: 2000
  609. });
  610. }
  611. }
  612. }
  613. },
  614. async securityAppCheckSetOptionListTow(item, checkStatus) {
  615. let self = this;
  616. let upData = item;
  617. let obj = {
  618. page: 1,
  619. pageSize: 20,
  620. checkStatus: checkStatus,
  621. manageId: upData.manageId,
  622. }
  623. this.inspectRemporaryList = [];
  624. const {
  625. data
  626. } = await securityAppCheckSetOptionList(obj);
  627. if (data.code == 200 && checkStatus == 0) { //先查询待检查数据
  628. if (data.data.records[0]) {
  629. let infoData = self.optionData;
  630. infoData.pageType = 0;
  631. infoData.subName = upData.subName;
  632. infoData.roomNum = upData.roomNum;
  633. infoData.subId = data.data.records[0].subId;
  634. infoData.manageId = data.data.records[0].manageId;
  635. infoData.setOptionId = data.data.records[0].setOptionId;
  636. infoData.hazardCheckPro = data.data.records[0].hazardCheckPro;
  637. infoData.checkCategory = data.data.records[0].checkCategory;
  638. uni.navigateTo({
  639. url: '/pages_safetyCheck/views/inspectManage/conductInspections?infoData=' +
  640. encodeURIComponent(
  641. JSON
  642. .stringify(infoData))
  643. });
  644. } else {
  645. uni.showToast({
  646. title: '该实验室暂无检查工作!',
  647. icon: "none",
  648. mask: true,
  649. duration: 2000
  650. });
  651. }
  652. }
  653. },
  654. //学院选择
  655. deptChange(e) {
  656. let self = this;
  657. self.deptData.list.forEach(function(item, index) {
  658. if (index == e.detail.value) {
  659. if (!item.deptId) {
  660. self.$set(self.deptData, 'id', null)
  661. self.$set(self.deptData, 'name', null)
  662. } else {
  663. self.$set(self.deptData, 'id', item.deptId)
  664. self.$set(self.deptData, 'name', item.deptName)
  665. }
  666. }
  667. })
  668. this.$set(this, 'getDataType', false);
  669. this.$set(this.queryParams, 'page', 1);
  670. this.getList();
  671. },
  672. //获取院系
  673. async systemDeptDropList() {
  674. const {
  675. data
  676. } = await systemDeptDropList({
  677. deptName: '',
  678. level: 2,
  679. deptType: 1
  680. });
  681. if (data.code == 200) {
  682. data.data.unshift({
  683. deptid: null,
  684. deptName: '全部'
  685. })
  686. this.$set(this.deptData, 'list', data.data);
  687. }
  688. },
  689. //获取分级
  690. async laboratoryLevelConfigGetWebLevelTitleList() {
  691. let self = this;
  692. const {
  693. data
  694. } = await laboratoryLevelConfigGetWebLevelTitleList({});
  695. if (data.code == 200) {
  696. data.data.forEach(function(item) {
  697. item.levelName = item.levelName.split('/')[0]
  698. if (item.levelColor) {
  699. item.levelColorTow = self.hexToRgb(item.levelColor, 0.2)
  700. }
  701. })
  702. this.$set(this, 'levelList', data.data);
  703. }
  704. },
  705. //回车触发
  706. carriageReturnRequest() {
  707. this.$set(this, 'getDataType', false);
  708. this.$set(this.queryParams, 'page', 1);
  709. this.getList();
  710. },
  711. //清除输入框内容
  712. delSearchValue() {
  713. if (this.searchValue) {
  714. this.$set(this, 'searchValue', '');
  715. this.$set(this, 'dataList', []);
  716. this.$nextTick(() => {
  717. this.getList();
  718. })
  719. }
  720. },
  721. //检查任务
  722. async getList() {
  723. let self = this;
  724. let obj = JSON.parse(JSON.stringify(this.queryParams));
  725. obj.planSetId = this.planSetId;
  726. obj.deptId = this.deptData.id ? this.deptData.id : '';
  727. obj.searchValue = this.searchValue ? this.searchValue : '';
  728. obj.levelId = this.levelId ? this.levelId : '';
  729. if (this.manageStatus == 0 || this.manageStatus == 1 || this.manageStatus == 2) {
  730. obj.manageStatus = this.manageStatus;
  731. } else {
  732. obj.manageStatus = '';
  733. }
  734. if (this.tabIndexTow == 0) {
  735. //检查计划
  736. const {
  737. data
  738. } = await securityAppCheckManageList(obj);
  739. if (data.code == 200) {
  740. data.data.records.forEach(function(item) {
  741. if (item.classLevelColor) {
  742. item.classLevelColorTow = self.hexToRgb(item.classLevelColor, 0.2)
  743. }
  744. })
  745. if (self.queryParams.page == 1) {
  746. this.dataList = data.data.records;
  747. this.total = data.data.total;
  748. if (data.data.total / self.queryParams.pageSize <= self.queryParams.page) {
  749. this.$set(this, 'getDataType', true);
  750. }
  751. } else {
  752. this.dataList = [...this.dataList, ...data.data.records]
  753. this.total = data.data.total;
  754. if (data.data.total / self.queryParams.pageSize <= self.queryParams.page) {
  755. this.$set(this, 'getDataType', true);
  756. }
  757. }
  758. }
  759. } else if (this.tabIndexTow == 1) {
  760. //复查计划
  761. obj.planId = this.optionData.planId;
  762. obj.buildId = this.buildId;
  763. obj.floorId = this.floorId;
  764. const {
  765. data
  766. } = await securityAppCheckDangerReviewSubList(obj);
  767. if (data.code == 200) {
  768. this.dataList = data.data;
  769. this.$set(this, 'getDataType', true);
  770. // 后台接口暂时不支持分页
  771. // if (self.queryParams.page == 1) {
  772. // this.dataList = data.data.records;
  773. // this.total = data.data.total;
  774. // if (data.data.total / self.queryParams.pageSize <= self.queryParams.page) {
  775. // this.$set(this, 'getDataType', true);
  776. // }
  777. // } else {
  778. // this.dataList = [...this.dataList, ...data.data.records]
  779. // this.total = data.data.total;
  780. // if (data.data.total / self.queryParams.pageSize <= self.queryParams.page) {
  781. // this.$set(this, 'getDataType', true);
  782. // }
  783. // }
  784. }
  785. } else if (this.tabIndexTow == 2) {
  786. //整改计划
  787. obj.planId = this.optionData.planId;
  788. obj.userId = uni.getStorageSync('userId');
  789. const {
  790. data
  791. } = await securityAppCheckDangerGetCheckDangerSubList(obj);
  792. if (data.code == 200) {
  793. this.dataList = data.data;
  794. this.$set(this, 'getDataType', true);
  795. // 后台接口暂时不支持分页
  796. // if (self.queryParams.page == 1) {
  797. // this.dataList = data.data.records;
  798. // this.total = data.data.total;
  799. // if (data.data.total / self.queryParams.pageSize <= self.queryParams.page) {
  800. // this.$set(this, 'getDataType', true);
  801. // }
  802. // } else {
  803. // this.dataList = [...this.dataList, ...data.data.records]
  804. // this.total = data.data.total;
  805. // if (data.data.total / self.queryParams.pageSize <= self.queryParams.page) {
  806. // this.$set(this, 'getDataType', true);
  807. // }
  808. // }
  809. }
  810. }
  811. },
  812. //十六进制颜色值和RGB格式转换
  813. hexToRgb(hex, opacity = 1) {
  814. // 去除#号
  815. var color = hex.replace("#", "");
  816. // 分割成红、绿、蓝三部分的16进制字符串
  817. var red = parseInt(color.substring(0, 2), 16);
  818. var green = parseInt(color.substring(2, 4), 16);
  819. var blue = parseInt(color.substring(4, 6), 16);
  820. return `RGB(${red}, ${green}, ${blue},${opacity})`;
  821. },
  822. }
  823. }
  824. </script>
  825. <style lang="stylus" scoped>
  826. .snapshotList {
  827. height: 100%;
  828. display flex;
  829. overflow: hidden;
  830. .info-max-box {
  831. padding-top: 20rpx;
  832. }
  833. .title {
  834. width: 690rpx;
  835. margin: 0 30rpx 20rpx;
  836. height: 150rpx;
  837. background: #FFFFFF;
  838. border-radius: 20rpx 20rpx 20rpx 20rpx;
  839. display: flex;
  840. justify-content: space-between;
  841. align-items: center;
  842. padding: 0 30rpx;
  843. box-sizing: border-box;
  844. .title-l {
  845. width: 594rpx;
  846. .title-l-t {
  847. font-size: 30rpx;
  848. color: #333333;
  849. line-height: 42rpx;
  850. text-align: left;
  851. overflow: hidden;
  852. text-overflow: ellipsis;
  853. white-space: nowrap;
  854. }
  855. .title-l-b {
  856. display: flex;
  857. justify-content: flex-start;
  858. margin-top: 16rpx;
  859. >view {
  860. width: 130rpx;
  861. height: 50rpx;
  862. background: rgba(1, 131, 250, 0.2);
  863. border-radius: 6rpx 6rpx 6rpx 6rpx;
  864. font-size: 24rpx;
  865. color: #0183FA;
  866. line-height: 50rpx;
  867. text-align: center;
  868. margin-right: 14rpx;
  869. }
  870. }
  871. }
  872. .title-r {
  873. width: 24rpx;
  874. height: 24rpx;
  875. }
  876. }
  877. .tabTitleTow {
  878. width: 690rpx;
  879. height: 80rpx;
  880. display: flex;
  881. justify-content: center;
  882. margin: 20rpx 0 0 30rpx;
  883. // >view:nth-of-type(1) {
  884. // width: 230rpx;
  885. // height: 80rpx;
  886. // border-radius: 50rpx 0rpx 0rpx 50rpx;
  887. // }
  888. // >view:nth-of-type(2) {
  889. // width: 230rpx;
  890. // height: 80rpx;
  891. // border-radius: 0rpx 0rpx 0rpx 0rpx;
  892. // }
  893. >view:nth-of-type(1) {
  894. width: 345rpx;
  895. height: 80rpx;
  896. border-radius: 50rpx 0rpx 0rpx 50rpx;
  897. }
  898. >view:nth-of-type(2) {
  899. width: 345rpx;
  900. height: 80rpx;
  901. border-radius: 0rpx 50rpx 50rpx 0rpx;
  902. }
  903. >view:nth-of-type(3) {
  904. width: 230rpx;
  905. height: 80rpx;
  906. border-radius: 0rpx 50rpx 50rpx 0rpx;
  907. }
  908. .tab-C {
  909. font-size: 30rpx;
  910. color: #FFFFFF;
  911. line-height: 80rpx;
  912. text-align: center;
  913. background: #0183FA;
  914. }
  915. .tab-D {
  916. font-size: 30rpx;
  917. color: #333333;
  918. line-height: 80rpx;
  919. text-align: center;
  920. background: #FFFFFF;
  921. }
  922. }
  923. .header {
  924. width: 100%;
  925. z-index: 100;
  926. background: #fff;
  927. .search {
  928. width: 750rpx;
  929. height: 100rpx;
  930. background: #FFFFFF;
  931. border-radius: 0rpx 0rpx 0rpx 0rpx;
  932. display: flex;
  933. align-items: center;
  934. .search-r {
  935. margin-left:30rpx;
  936. width: 560rpx;
  937. height: 60rpx;
  938. background: #FFFFFF;
  939. border-radius: 50rpx 50rpx 50rpx 50rpx;
  940. border: 1rpx solid #E0E0E0;
  941. font-size: 24rpx;
  942. color: #999999;
  943. line-height: 60rpx;
  944. text-align: left;
  945. display: flex;
  946. justify-content: flex-start;
  947. align-items: center;
  948. padding: 0 20rpx;
  949. box-sizing: border-box;
  950. >img {
  951. width: 30rpx;
  952. height: 30rpx;
  953. margin-right: 20rpx;
  954. }
  955. >input {
  956. width: 500rpx;
  957. }
  958. }
  959. }
  960. .cancel {
  961. width:110rpx;
  962. height:60rpx;
  963. line-height:60rpx;
  964. font-size: 28rpx;
  965. color: #0183FA;
  966. text-align: center;
  967. margin-left: 18rpx;
  968. }
  969. }
  970. // .srearch {
  971. // width: 750rpx;
  972. // height: 100rpx;
  973. // background: #FFFFFF;
  974. // border-radius: 0rpx 0rpx 0rpx 0rpx;
  975. // overflow: hidden;
  976. // display: flex;
  977. // display: flex;
  978. // justify-content: space-between;
  979. // align-items: center;
  980. // padding: 0 30rpx;
  981. // box-sizing: border-box;
  982. // .college {
  983. // width: 200rpx;
  984. // height: 60rpx;
  985. // border-radius: 50rpx 50rpx 50rpx 50rpx;
  986. // border: 2rpx solid #E0E0E0;
  987. // font-size: 24rpx;
  988. // color: #333333;
  989. // line-height: 60rpx;
  990. // text-align: left;
  991. // display: flex;
  992. // justify-content: space-between;
  993. // align-items: center;
  994. // padding: 0 26rpx;
  995. // box-sizing: border-box;
  996. // overflow: hidden;
  997. // text-overflow: ellipsis;
  998. // white-space: nowrap;
  999. // >view {
  1000. // width: 124rpx;
  1001. // display: block;
  1002. // overflow: hidden;
  1003. // text-overflow: ellipsis;
  1004. // white-space: nowrap;
  1005. // }
  1006. // >img {
  1007. // display: block;
  1008. // width: 24rpx;
  1009. // height: 12rpx;
  1010. // }
  1011. // }
  1012. // .srearch-n {
  1013. // width: 690rpx;
  1014. // height: 60rpx;
  1015. // border-radius: 50rpx 50rpx 50rpx 50rpx;
  1016. // border: 2rpx solid #E0E0E0;
  1017. // display: flex;
  1018. // justify-content: flex-start;
  1019. // align-items: center;
  1020. // .srearch-l {
  1021. // width: 60rpx;
  1022. // height: 60rpx;
  1023. // >img {
  1024. // width: 20rpx;
  1025. // height: 20rpx;
  1026. // margin: 20rpx 0 0 26rpx;
  1027. // }
  1028. // }
  1029. // .srearch-c {
  1030. // flex: 1;
  1031. // height: 58rpx;
  1032. // font-size: 24rpx;
  1033. // color: #999999;
  1034. // line-height: 30rpx;
  1035. // text-align: left;
  1036. // }
  1037. // .srearch-r {
  1038. // width: 90rpx;
  1039. // height: 60rpx;
  1040. // >img {
  1041. // width: 30rpx;
  1042. // height: 30rpx;
  1043. // margin: 14rpx 22rpx 0 30rpx;
  1044. // }
  1045. // }
  1046. // }
  1047. // }
  1048. .dept-max-bix-box{
  1049. margin-top: 20rpx;
  1050. width: 750rpx;
  1051. height: 90rpx;
  1052. background: #FFFFFF;
  1053. display: flex;
  1054. .dept-check-box{
  1055. flex:1;
  1056. line-height:60rpx;
  1057. height:60rpx;
  1058. margin:20rpx 20rpx 0 30rpx;
  1059. border:1rpx solid #E0E0E0;
  1060. border-radius: 50rpx;
  1061. display: flex;
  1062. .dept-picker{
  1063. flex:1;
  1064. .dept-check-min-box{
  1065. font-size:24rpx;
  1066. padding:0 30rpx;
  1067. overflow: hidden;
  1068. }
  1069. .check-dept{
  1070. color:#333;
  1071. }
  1072. .no-check-dept{
  1073. color:#999;
  1074. }
  1075. }
  1076. .triangle {
  1077. margin:25rpx 20rpx 0 20rpx;
  1078. width: 0;
  1079. height: 0;
  1080. border-left: 10rpx solid transparent;
  1081. border-right: 10rpx solid transparent;
  1082. border-top: 15rpx solid #999; /* 可以根据需要调整颜色 */
  1083. }
  1084. }
  1085. .level-r {
  1086. display: flex;
  1087. justify-content: flex-start;
  1088. align-items: center;
  1089. margin: 18rpx 20rpx 0 0;
  1090. .level-r-A {
  1091. border-radius: 50rpx 50rpx 50rpx 50rpx;
  1092. border: 1rpx solid #E0E0E0;
  1093. width: 100rpx;
  1094. height: 60rpx;
  1095. background: #E0E0E0;
  1096. font-weight: normal;
  1097. font-size: 24rpx;
  1098. color: #333333;
  1099. line-height: 60rpx;
  1100. text-align: center;
  1101. margin-right: 10rpx;
  1102. }
  1103. .level-r-B {
  1104. border-radius: 50rpx 50rpx 50rpx 50rpx;
  1105. border: 1rpx solid #0183FA;
  1106. width: 100rpx;
  1107. height: 60rpx;
  1108. background: #0183FA;
  1109. font-weight: normal;
  1110. font-size: 24rpx;
  1111. color: #FFFFFF;
  1112. line-height: 60rpx;
  1113. text-align: center;
  1114. margin-right: 10rpx;
  1115. }
  1116. }
  1117. #levelColor-A {
  1118. background: rgba(255, 0, 0, 0.2);
  1119. color: #FF0000;
  1120. border: 1rpx solid #FF0000;
  1121. }
  1122. #levelColor-B {
  1123. background: #F5F5F5;
  1124. color: #333333;
  1125. border: 2rpx solid #E0E0E0;
  1126. }
  1127. }
  1128. .level {
  1129. width: 750rpx;
  1130. height: 70rpx;
  1131. background: #FFFFFF;
  1132. display: flex;
  1133. justify-content: flex-start;
  1134. padding: 15rpx 30rpx 0;
  1135. box-sizing: border-box;
  1136. .level-li {
  1137. width: 100rpx;
  1138. height: 50rpx;
  1139. background: #F5F5F5;
  1140. border-radius: 50rpx 50rpx 50rpx 50rpx;
  1141. border: 2rpx solid #E0E0E0;
  1142. margin-right: 10rpx;
  1143. font-size: 24rpx;
  1144. color: #333333;
  1145. line-height: 50rpx;
  1146. text-align: center;
  1147. }
  1148. }
  1149. .uni-data-picker-box{
  1150. background-color: #fff;
  1151. padding:10rpx 20rpx 0 30rpx;
  1152. /deep/.input-value-border{
  1153. border-radius:50rpx!important;
  1154. padding-right:12rpx!important;
  1155. }
  1156. /deep/.input-value{
  1157. font-size:24rpx!important;
  1158. line-height:60rpx!important;
  1159. }
  1160. /deep/.selected-area{
  1161. padding-left:18rpx!important;
  1162. }
  1163. /deep/.placeholder{
  1164. color:#999!important;
  1165. }
  1166. /deep/.icon-clear{
  1167. line-height:40rpx;
  1168. }
  1169. /deep/.uni-icons{
  1170. font-size:34rpx!important;
  1171. color:#999!important;
  1172. }
  1173. }
  1174. .list {
  1175. width: 750rpx;
  1176. padding: 0 30rpx;
  1177. box-sizing: border-box;
  1178. .list-li {
  1179. width: 690rpx;
  1180. min-height: 240rpx;
  1181. background: #FFFFFF;
  1182. border-radius: 10rpx 10rpx 10rpx 10rpx;
  1183. padding: 0 30rpx;
  1184. box-sizing: border-box;
  1185. margin-top: 20rpx;
  1186. .list-li-t {
  1187. display: flex;
  1188. justify-content: flex-start;
  1189. align-items: center;
  1190. height: 90rpx;
  1191. border-bottom: 2rpx dashed #D8D8D8;
  1192. .list-li-t-l {
  1193. width: 40rpx;
  1194. height: 40rpx;
  1195. margin-right: 16rpx;
  1196. }
  1197. .list-li-t-c {
  1198. width: 264rpx;
  1199. font-size: 30rpx;
  1200. color: #333333;
  1201. line-height: 30rpx;
  1202. text-align: left;
  1203. overflow: hidden;
  1204. text-overflow: ellipsis;
  1205. white-space: nowrap;
  1206. margin-right: 24rpx;
  1207. }
  1208. .list-li-t-r {
  1209. display: flex;
  1210. justify-content: flex-start;
  1211. border-radius: 10rpx 10rpx 10rpx 10rpx;
  1212. width: 200rpx;
  1213. height: 40rpx;
  1214. margin-left: 10rpx;
  1215. >text {
  1216. display: inline-block;
  1217. flex: 1;
  1218. text-align: center;
  1219. font-size: 24rpx;
  1220. line-height: 40rpx;
  1221. text-align: center;
  1222. overflow: hidden;
  1223. text-overflow: ellipsis;
  1224. white-space: nowrap;
  1225. }
  1226. }
  1227. }
  1228. .list-li-b {
  1229. overflow: hidden;
  1230. .list-li-b-t {
  1231. display: flex;
  1232. justify-content: flex-start;
  1233. align-items: center;
  1234. >img {
  1235. width: 28rpx;
  1236. height: 26rpx;
  1237. margin-right: 16rpx;
  1238. }
  1239. font-size: 28rpx;
  1240. color: #666666;
  1241. line-height: 30rpx;
  1242. text-align: left;
  1243. margin-top: 32rpx;
  1244. overflow: hidden;
  1245. text-overflow: ellipsis;
  1246. white-space: nowrap;
  1247. }
  1248. .list-li-b-b {
  1249. display: flex;
  1250. justify-content: space-between;
  1251. align-items: center;
  1252. margin-top: 20rpx;
  1253. .list-li-b-b-l {
  1254. display: flex;
  1255. justify-content: flex-start;
  1256. align-items: center;
  1257. >img {
  1258. width: 28rpx;
  1259. height: 26rpx;
  1260. margin-right: 16rpx;
  1261. }
  1262. font-size: 28rpx;
  1263. color: #666666;
  1264. line-height: 30rpx;
  1265. text-align: left;
  1266. overflow: hidden;
  1267. text-overflow: ellipsis;
  1268. white-space: nowrap;
  1269. }
  1270. .finished {
  1271. width: 110rpx;
  1272. height: 40rpx;
  1273. background: rgba(1, 131, 250, 0.2);
  1274. border-radius: 20rpx 20rpx 20rpx 20rpx;
  1275. font-size: 24rpx;
  1276. color: #0183FA;
  1277. line-height: 40rpx;
  1278. text-align: center;
  1279. }
  1280. .finished-b {
  1281. width: 110rpx;
  1282. height: 40rpx;
  1283. background: rgba(255, 182, 0, 0.2);
  1284. border-radius: 20rpx 20rpx 20rpx 20rpx;
  1285. font-size: 24rpx;
  1286. color: #ffb600;
  1287. line-height: 40rpx;
  1288. text-align: center;
  1289. }
  1290. .notFinished {
  1291. width: 110rpx;
  1292. height: 40rpx;
  1293. background: #E0E0E0;
  1294. border-radius: 20rpx 20rpx 20rpx 20rpx;
  1295. font-size: 24rpx;
  1296. color: #666666;
  1297. line-height: 40rpx;
  1298. text-align: center;
  1299. }
  1300. }
  1301. }
  1302. }
  1303. }
  1304. .get-data-null-p {
  1305. height: 100rpx;
  1306. line-height: 100rpx;
  1307. text-align: center;
  1308. }
  1309. #color-A {
  1310. color: #0183FA;
  1311. }
  1312. #color-B {
  1313. color: #FF8C00;
  1314. }
  1315. #color-C {
  1316. color: #16B531;
  1317. }
  1318. .saoCode {
  1319. position: fixed;
  1320. left: 288rpx;
  1321. bottom: 20rpx;
  1322. width: 160rpx;
  1323. height: 160rpx;
  1324. }
  1325. .shade-box {
  1326. height: 100%;
  1327. width: 100%;
  1328. position: fixed;
  1329. display: flex;
  1330. flex-direction: column;
  1331. z-index: 200;
  1332. background: rgba(0, 0, 0, 0.2);
  1333. top: 0;
  1334. .null-box {
  1335. flex: 1;
  1336. }
  1337. .shade_n {
  1338. position: absolute;
  1339. bottom: 0;
  1340. left: 0;
  1341. width: 750rpx;
  1342. height: 466rpx;
  1343. background: #FFFFFF;
  1344. border-radius: 20rpx 20rpx 0rpx 0rpx;
  1345. overflow-y: auto;
  1346. .title {
  1347. display: flex;
  1348. justify-content: space-between;
  1349. align-items: center;
  1350. padding: 0 50rpx 0 284rpx;
  1351. box-sizing: border-box;
  1352. border-bottom: 1rpx solid #E0E0E0;
  1353. >view {
  1354. font-size: 30rpx;
  1355. color: #3D3D3D;
  1356. line-height: 90rpx;
  1357. text-align: left;
  1358. }
  1359. >img {
  1360. width: 24rpx;
  1361. height: 12rpx;
  1362. }
  1363. }
  1364. .batch {
  1365. padding: 0 30rpx;
  1366. box-sizing: border-box;
  1367. .batch-li {
  1368. display: flex;
  1369. justify-content: space-between;
  1370. align-items: center;
  1371. border-bottom: 1rpx solid #E0E0E0;
  1372. padding: 20rpx 0 16rpx 0rpx;
  1373. box-sizing: border-box;
  1374. .batch-li-l {
  1375. >text:nth-of-type(1) {
  1376. display: block;
  1377. font-size: 30rpx;
  1378. color: #333333;
  1379. line-height: 42rpx;
  1380. text-align: left;
  1381. }
  1382. >text:nth-of-type(2) {
  1383. display: block;
  1384. font-size: 28rpx;
  1385. color: #666666;
  1386. line-height: 39rpx;
  1387. text-align: left;
  1388. margin-top: 6rpx;
  1389. }
  1390. }
  1391. .batch-li-r {
  1392. font-size: 28rpx;
  1393. color: #666666;
  1394. line-height: 39rpx;
  1395. text-align: left;
  1396. display: flex;
  1397. justify-content: flex-start;
  1398. align-items: center;
  1399. >img {
  1400. width: 24rpx;
  1401. height: 24rpx;
  1402. margin-left: 9rpx;
  1403. }
  1404. }
  1405. }
  1406. }
  1407. }
  1408. }
  1409. }
  1410. </style>