inspectList.vue 39 KB

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