examineList.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980
  1. <!-- 安全检查-校院巡查管理 -->
  2. <template>
  3. <view class="examine">
  4. <view class="header">
  5. <view class="tabTitle_tow">
  6. <view class="tabTitle_tow_li" @tap="tabClickTow(index)" :key="index" v-for="(item,index) in tabTextTow">
  7. <view :class="{on:curTabTow==index}" class="tabTitle_tow_text">{{item}}</view>
  8. <view :class="{on:curTabTow==index}" class="tabTitle_tow_across"></view>
  9. </view>
  10. </view>
  11. <view class="lab_title">
  12. <picker @change="collegeChange" :value="collegeIndex" :range="collegeArray" class="lab_title_l">
  13. <view class="lab_title_l_n">
  14. <view>{{getData.deptName?getData.deptName:'选择学院'}}</view>
  15. <img src="@/pages_safetyExamine/images/icon_06.png">
  16. </view>
  17. </picker>
  18. <view class="lab_title_r">
  19. <input type="text" v-model="getData.searchValue" placeholder="请输入实验室名称" name="search"
  20. @confirm='searchBtn' confirm-type='search' maxlength="50"
  21. placeholder-style="color: #CCCCCC;font-size:26rpx;">
  22. <view v-if="getData.searchValue>0" class="lab_title_r_btn" @click="clearBtn">
  23. <img src="@/pages_safetyExamine/images/clear.png" />
  24. </view>
  25. </view>
  26. </view>
  27. </view>
  28. <scroll-view scroll-y @scrolltolower="scrollGet" class="info-max-box">
  29. <view class="list_three">
  30. <view class="list_three_li" v-for="(item,index) in dataList" :key="index">
  31. <view class="list_three_li_t">
  32. <view class="list_three_li_t_l">
  33. <img v-if="item.checkRange==1" src="@/pages_safetyExamine/images/icon_xyxc_qx.png" />
  34. <img v-if="item.checkRange==2" src="@/pages_safetyExamine/images/icon_xyxc_xy.png" />
  35. <img v-if="item.checkRange==3" src="@/pages_safetyExamine/images/icon_xyxc_sys.png" />
  36. <text></text>
  37. </view>
  38. <view class="list_three_li_t_c">{{item.subjectName}}-{{item.roomNumber?item.roomNumber:''}}</view>
  39. <view class="list_three_li_t_c2" v-if="item.isOverdue==1">已逾期</view>
  40. <view class="list_three_li_t_r"></view>
  41. </view>
  42. <view class="list_three_li_m">
  43. <view class="list_three_li_m_t">{{item.title}}</view>
  44. <view class="list_three_li_m_b">
  45. <text class="blue_color" v-if="item.manageStatus==0">待检查</text>
  46. <text class="red_color" v-if="item.manageStatus==1">检查中</text>
  47. <text class="green_color" v-if="item.manageStatus==2">已检查</text>
  48. <text>{{item.checkType==1?'校院巡查':'实验室自查'}}-{{item.checkCategory==1?'综合检查':'专项检查'}}</text>
  49. <text>{{item.collegeName}}</text>
  50. </view>
  51. </view>
  52. <!-- 开始检查 -->
  53. <view v-if="buttonHide && item.isSelfData==1">
  54. <view v-if="item.manageStatus==0 && item.notStarted" class="list_three_li_b"
  55. @click="handleClick(item,'add')">开始检查</view>
  56. <view v-if="item.manageStatus==1 && item.notStarted" class="list_three_li_b"
  57. @click="handleClick(item,'edit')">编辑</view>
  58. <view v-if="!item.notStarted" class="list_three_li_b_tow"><img
  59. src="@/pages_safetyExamine/images/icon_xyxcgl_jhwks.png" />计划未开始</view>
  60. <view v-if="item.manageStatus==2 && item.notStarted" class="list_three_li_b_three">
  61. <img src="@/pages_safetyExamine/images/icon_djcsys.png" />
  62. <text>整改进度:</text>
  63. <text v-if="item.checkResult==0"
  64. @click="handleClick(item,'detail')">{{item.rectifySchedule}}</text>
  65. <text v-if="item.checkResult==1" @click="handleClick(item,'detail')">已完成</text>
  66. <text v-if="item.isEndProcess==1" class="report"
  67. @click="handleClick(item,'download')">整改报告</text>
  68. </view>
  69. </view>
  70. </view>
  71. </view>
  72. <img class="null-img" v-if="!dataList[0]" src="@/pages_safetyExamine/images/null-data-1.png">
  73. </scroll-view>
  74. <view class="bottom_btn" @click="handleClick('','startInspect')">开始检查</view>
  75. </view>
  76. </template>
  77. <script>
  78. import {
  79. config
  80. } from '@/api/request/config.js'
  81. import {
  82. checkManageList,
  83. systemDeptDropList
  84. } from '@/pages_safetyExamine/api/index.js'
  85. export default {
  86. name: "rectifyList",
  87. components: {
  88. },
  89. data() {
  90. return {
  91. pageType: 0,
  92. //列表请求参数
  93. getData: {
  94. page: 1,
  95. pageSize: 20,
  96. isSelf: 0, //是否本人查询
  97. checkType: '', //检查组织(0全部1校院巡查2实验室自查)
  98. manageStatus: -1, //管理状态(-1全部 0待检查,1检查中,2已检查)
  99. searchValue: '',
  100. },
  101. tabTextTow: ['全部', '待检查', '检查中', '已检查'],
  102. curTabTow: 0,
  103. form: {
  104. name: '',
  105. type: '校院巡查',
  106. startTime: '',
  107. endTime: '',
  108. inspectScope: [],
  109. tiemQuickList: [],
  110. scopeIndex: '',
  111. seleteListLab: [],
  112. patrolIndex: '',
  113. seleteListMember: [],
  114. },
  115. collegeList: [],
  116. collegeIndex: 0,
  117. collegeArray: [],
  118. dataList: [],
  119. currentDate: '',
  120. myApplyGentle: '', //自查身份 校院巡查管理 里操作按钮隐藏
  121. applyGentle: '', //检查组身份 实验室自查管理 里操作按钮隐藏
  122. buttonHide: false, //判断按钮显示隐藏
  123. }
  124. },
  125. onLoad(option) {
  126. this.myApplyGentle = uni.getStorageSync('gentleIdentifierData').myApplyGentle
  127. this.applyGentle = uni.getStorageSync('gentleIdentifierData').applyGentle
  128. if (option.pageType == 1) {
  129. this.getData.checkType = option.pageType
  130. uni.setNavigationBarTitle({
  131. title: '校院巡查管理'
  132. })
  133. if (this.myApplyGentle && !this.applyGentle) {
  134. this.buttonHide = false
  135. }
  136. if (!this.myApplyGentle && !this.applyGentle) {
  137. this.buttonHide = false
  138. } else {
  139. this.buttonHide = true;
  140. }
  141. } else if (option.pageType == 2) {
  142. this.getData.checkType = option.pageType
  143. uni.setNavigationBarTitle({
  144. title: '实验室自查管理'
  145. })
  146. if (!this.myApplyGentle && this.applyGentle) {
  147. this.buttonHide = false
  148. }
  149. if (!this.myApplyGentle && !this.applyGentle) {
  150. this.buttonHide = false
  151. } else {
  152. this.buttonHide = true;
  153. }
  154. }
  155. },
  156. onShow() {
  157. },
  158. mounted() {
  159. //获取当前日期
  160. this.currentDate = this.getNowFormatDate()
  161. this.dataList = [];
  162. this.getList();
  163. this.systemDeptDropList();
  164. },
  165. methods: {
  166. //顶部tab点击
  167. tabClickTow(index) {
  168. this.curTabTow = index;
  169. this.getData.page = 1;
  170. this.dataList = [];
  171. if (index == 0) {
  172. this.getData.manageStatus = -1;
  173. } else if (index == 1) {
  174. this.getData.manageStatus = 0;
  175. } else if (index == 2) {
  176. this.getData.manageStatus = 1;
  177. } else if (index == 3) {
  178. this.getData.manageStatus = 2;
  179. }
  180. this.getList()
  181. },
  182. //选择学院
  183. collegeChange(e) {
  184. this.collegeIndex = e.target.value;
  185. this.getData.deptId = this.collegeList[e.target.value].deptId
  186. this.getData.deptName = this.collegeList[e.target.value].deptName
  187. this.dataList = [];
  188. this.getList();
  189. },
  190. //实验室搜索
  191. searchBtn() {
  192. this.dataList = [];
  193. this.getList();
  194. },
  195. //清除
  196. clearBtn() {
  197. this.getData.page = 1;
  198. this.collegeIndex = 0;
  199. this.getData.deptId = '';
  200. this.getData.deptName = '';
  201. this.getData.searchValue = '';
  202. this.dataList = [];
  203. this.getList();
  204. },
  205. //滚动事件
  206. scrollGet() {
  207. let self = this;
  208. if (self.total / self.getData.pageSize <= self.getData.page) {
  209. console.log('没有更多数据!')
  210. } else {
  211. setTimeout(function() {
  212. self.getData.page += 1;
  213. self.getList();
  214. }, 1000)
  215. }
  216. },
  217. //查询学院列表
  218. async systemDeptDropList() {
  219. let self=this;
  220. const {
  221. data
  222. } = await systemDeptDropList({
  223. deptName: '',
  224. level: 2,
  225. deptType: 1
  226. });
  227. if (data.code == 200) {
  228. data.data.forEach(function(item) {
  229. item.type = false;
  230. })
  231. self.collegeList = data.data;
  232. //检查管理
  233. for (let i = 0; i < data.data.length; i++) {
  234. self.collegeArray.push(data.data[i].deptName)
  235. }
  236. }
  237. },
  238. handleClick(row, doType) {
  239. let self = this;
  240. if (doType == 'add') { //开始检查
  241. uni.navigateTo({
  242. url: '/pages_safetyExamine/views/examineManage/examineAdd?id=' + row.id
  243. });
  244. } else if (doType == 'edit') {
  245. uni.navigateTo({
  246. url: '/pages_safetyExamine/views/examineManage/examineAdd?id=' + row.id
  247. });
  248. } else if (doType == 'detail') {
  249. uni.navigateTo({
  250. url: '/pages_safetyExamine/views/examineManage/examineDetail?id=' + row.id +
  251. '&manageStatus=' + row.manageStatus
  252. });
  253. } else if (doType == 'startInspect') { //开始检查
  254. uni.navigateTo({
  255. url: '/pages_safetyExamine/views/examineManage/examineAdd'
  256. });
  257. } else if (doType == 'download') { //整改报告下载rectifyNotice 整改通知(1整改告知书 2整改通知书)
  258. this.rectifyReport(row)
  259. }
  260. },
  261. //整改报告
  262. rectifyReport(row) {
  263. uni.showLoading({
  264. title: '下载中'
  265. });
  266. wx.downloadFile({
  267. url: config.base_url + '/zd-security/checkRectify/genReport/?id='+row.id+'&fileUrl='+uni.getStorageSync('fileBrowseEnvironment'),
  268. header: {
  269. Authorization: uni.getStorageSync('token')
  270. },
  271. success: function(res) {
  272. const fileManager = wx.getFileSystemManager()
  273. const filePath = wx.env.USER_DATA_PATH + '/(整改报告).docx'
  274. fileManager.saveFile({
  275. tempFilePath: res.tempFilePath,
  276. filePath,
  277. success: () => {
  278. uni.hideLoading();
  279. wx.openDocument({
  280. filePath: filePath,
  281. showMenu: true,
  282. fileType: 'docx'
  283. })
  284. },
  285. fail: function(res) {
  286. uni.hideLoading();
  287. uni.showToast({
  288. title: '下载失败',
  289. icon: "none",
  290. mask: true,
  291. duration: 2000
  292. });
  293. }
  294. })
  295. },
  296. fail: function(res) {
  297. uni.hideLoading();
  298. uni.showToast({
  299. title: '下载失败',
  300. icon: "none",
  301. mask: true,
  302. duration: 2000
  303. });
  304. }
  305. })
  306. },
  307. //整改通知书
  308. genNotice(row) {
  309. uni.showLoading({
  310. title: '下载中'
  311. });
  312. wx.downloadFile({
  313. url: config.base_url + '/zd-security/checkManage/getRectifyAdviceNote/?checkMangeId='+row.id+'&fileUrl='+uni.getStorageSync('fileBrowseEnvironment'),
  314. header: {
  315. Authorization: uni.getStorageSync('token')
  316. },
  317. success: function(res) {
  318. const fileManager = wx.getFileSystemManager()
  319. const filePath = wx.env.USER_DATA_PATH + '/(整改通知书).docx'
  320. fileManager.saveFile({
  321. tempFilePath: res.tempFilePath,
  322. filePath,
  323. success: () => {
  324. uni.hideLoading();
  325. wx.openDocument({
  326. filePath: filePath,
  327. showMenu: true,
  328. fileType: 'docx'
  329. })
  330. },
  331. fail: function(res) {
  332. uni.hideLoading();
  333. uni.showToast({
  334. title: '下载失败',
  335. icon: "none",
  336. mask: true,
  337. duration: 2000
  338. });
  339. }
  340. })
  341. },
  342. fail: function(res) {
  343. uni.hideLoading();
  344. uni.showToast({
  345. title: '下载失败',
  346. icon: "none",
  347. mask: true,
  348. duration: 2000
  349. });
  350. }
  351. })
  352. },
  353. //整改告知书
  354. genReport(row) {
  355. uni.showLoading({
  356. title: '下载中'
  357. });
  358. wx.downloadFile({
  359. url: config.base_url + '/zd-security/checkManage/getRectifyNotification/?checkMangeId='+row.id+'&fileUrl='+uni.getStorageSync('fileBrowseEnvironment'),
  360. header: {
  361. Authorization: uni.getStorageSync('token')
  362. },
  363. success: function(res) {
  364. const fileManager = wx.getFileSystemManager()
  365. const filePath = wx.env.USER_DATA_PATH + '/整改报告.docx'
  366. fileManager.saveFile({
  367. tempFilePath: res.tempFilePath,
  368. filePath,
  369. success: () => {
  370. uni.hideLoading();
  371. wx.openDocument({
  372. filePath: filePath,
  373. showMenu: true,
  374. fileType: 'docx'
  375. })
  376. },
  377. fail: function(res) {
  378. uni.hideLoading();
  379. uni.showToast({
  380. title: '下载失败',
  381. icon: "none",
  382. mask: true,
  383. duration: 2000
  384. });
  385. }
  386. })
  387. },
  388. fail: function(res) {
  389. uni.hideLoading();
  390. uni.showToast({
  391. title: '下载失败',
  392. icon: "none",
  393. mask: true,
  394. duration: 2000
  395. });
  396. }
  397. })
  398. },
  399. //获取当前日期函数
  400. getNowFormatDate() {
  401. let date = new Date(),
  402. year = date.getFullYear(), //获取完整的年份(4位)
  403. month = date.getMonth() + 1, //获取当前月份(0-11,0代表1月)
  404. strDate = date.getDate() // 获取当前日(1-31)
  405. if (month < 10) month = `0${month}` // 如果月份是个位数,在前面补0
  406. if (strDate < 10) strDate = `0${strDate}` // 如果日是个位数,在前面补0
  407. return `${year}-${month}-${strDate}`
  408. },
  409. //是否可以开始检查
  410. compareTime(date1) {
  411. if (!date1) {
  412. return false
  413. } else {
  414. const oDate1 = new Date(date1);
  415. const oDate2 = new Date(this.currentDate)
  416. if (oDate1.getTime() <= oDate2.getTime()) {
  417. return true; //可以开始
  418. } else {
  419. return false; //不能开始
  420. }
  421. }
  422. },
  423. async getList() {
  424. let self = this;
  425. const {
  426. data
  427. } = await checkManageList(this.getData);
  428. if (data.code == 200) {
  429. //判断计划是否开始
  430. data.data.records.forEach(function(item) {
  431. item.notStarted = self.compareTime(item.cycleStartTime)
  432. })
  433. this.dataList = [...this.dataList, ...data.data.records]
  434. this.total = data.data.total;
  435. }
  436. },
  437. }
  438. }
  439. </script>
  440. <style lang="stylus" scoped>
  441. .examine {
  442. height: 100%;
  443. display flex;
  444. // padding: 0 30rpx;
  445. // box-sizing: border-box;
  446. padding-bottom: 126rpx;
  447. box-sizing: border-box;
  448. .blue_color {
  449. color: #0183FA;
  450. border: 1rpx solid #0183FA;
  451. }
  452. .red_color {
  453. color: #FF4545;
  454. border: 1rpx solid #FF4545;
  455. }
  456. .green_color {
  457. color: #1FA50D;
  458. border: 1rpx solid #1FA50D;
  459. }
  460. .null-img {
  461. display block;
  462. width: 276rpx;
  463. height: 321rpx;
  464. margin: 100rpx 0 0 274rpx;
  465. }
  466. .info-max-box {
  467. flex: 1;
  468. overflow: scroll;
  469. padding: 220rpx 0rpx 0;
  470. box-sizing: border-box;
  471. }
  472. /* 切换按钮 */
  473. .header {
  474. width: 100%;
  475. position: fixed;
  476. top: 0rpx;
  477. z-index: 100;
  478. .tabTitle_tow {
  479. width: 100%;
  480. height: 100rpx;
  481. background: #fff;
  482. display flex;
  483. justify-content: flex-start;
  484. align-items: center;
  485. border-bottom: 1rpx solid #E0E0E0;
  486. .tabTitle_tow_li {
  487. position: relative;
  488. width: 146rpx;
  489. text-align center;
  490. .tabTitle_tow_text {
  491. display: inline-block;
  492. font-size: 30rpx;
  493. font-family: PingFang SC;
  494. font-weight: 500;
  495. color: #333333;
  496. line-height: 46rpx;
  497. position: relative;
  498. &.on {
  499. color: #0183FA;
  500. }
  501. }
  502. .tabTitle_tow_across {
  503. width: 50rpx;
  504. height: 4rpx;
  505. background: #0183FA;
  506. border-radius: 2rpx;
  507. margin-left: 46rpx;
  508. display none;
  509. &.on {
  510. display block;
  511. }
  512. }
  513. }
  514. }
  515. .lab_title {
  516. width: 750rpx;
  517. height: 100rpx;
  518. background: #FFFFFF;
  519. padding: 20rpx 30rpx;
  520. box-sizing: border-box;
  521. display: flex;
  522. justify-content: flex-start;
  523. .lab_title_l {
  524. width: 250rpx;
  525. height: 60rpx;
  526. margin-right: 20rpx;
  527. .lab_title_l_n {
  528. width: 250rpx;
  529. height: 60rpx;
  530. border-radius: 10rpx;
  531. border: 1rpx solid #E0E0E0;
  532. display: flex;
  533. justify-content: flex-start;
  534. align-items: center;
  535. >view {
  536. flex: 1;
  537. line-height: 60rpx;
  538. margin-left: 20rpx;
  539. color: #999999;
  540. font-size: 28rpx;
  541. white-space: nowrap;
  542. overflow: hidden;
  543. text-overflow: ellipsis;
  544. }
  545. >img {
  546. width: 14rpx;
  547. height: 8rpx;
  548. margin-right: 30rpx;
  549. }
  550. }
  551. }
  552. .lab_title_r {
  553. width: 420rpx;
  554. height: 60rpx;
  555. position: relative;
  556. border-radius: 10rpx;
  557. border: 1rpx solid #E0E0E0;
  558. .lab_title_r_btn {
  559. width: 60rpx;
  560. height: 60rpx;
  561. position: absolute;
  562. top: 0rpx;
  563. right: 0rpx;
  564. z-index: 100;
  565. >img {
  566. width: 20rpx;
  567. height: 20rpx;
  568. position: absolute;
  569. top: 20rpx;
  570. left: 24rpx;
  571. }
  572. }
  573. >input {
  574. width: 274rpx;
  575. height: 60rpx;
  576. position: absolute;
  577. top: 0rpx;
  578. left: 60rpx;
  579. }
  580. .clear {
  581. width: 60rpx;
  582. height: 60rpx;
  583. position: absolute;
  584. top: 0rpx;
  585. right: 20rpx;
  586. font-size: 30rpx;
  587. font-family: PingFang SC-Medium, PingFang SC;
  588. font-weight: 400;
  589. color: #0183FA;
  590. line-height: 60rpx;
  591. }
  592. }
  593. }
  594. }
  595. .list_three {
  596. padding: 0 30rpx;
  597. box-sizing: border-box;
  598. .list_three_li {
  599. position: relative;
  600. width: 690rpx;
  601. /* height: 360rpx; */
  602. height: auto;
  603. background: #fff;
  604. border-radius: 10rpx;
  605. overflow: hidden;
  606. margin-bottom: 20rpx;
  607. .list_three_li_t {
  608. width: 100%;
  609. height: 110rpx;
  610. position: relative;
  611. left: 0;
  612. top: 0;
  613. .list_three_li_t_l {
  614. >img {
  615. width: 70rpx;
  616. height: 70rpx;
  617. }
  618. >text {
  619. position: absolute;
  620. left: -15rpx;
  621. top: 76rpx;
  622. display: inline-block;
  623. width: 30rpx;
  624. height: 30rpx;
  625. background: #F5F5F5;
  626. border-radius: 15rpx;
  627. }
  628. }
  629. .list_three_li_t_c {
  630. width: 630rpx;
  631. height: 110rpx;
  632. position: absolute;
  633. left: 30rpx;
  634. top: 0;
  635. font-size: 30rpx;
  636. font-family: PingFang SC-Medium, PingFang SC;
  637. font-weight: 400;
  638. color: #333333;
  639. line-height: 110rpx;
  640. border-bottom: 1rpx dashed #D8D8D8;
  641. overflow: hidden;
  642. text-overflow: ellipsis;
  643. white-space: nowrap;
  644. padding-right: 120rpx;
  645. box-sizing: border-box;
  646. }
  647. .list_three_li_t_c2 {
  648. position: absolute;
  649. right: 20rpx;
  650. top: 38rpx;
  651. width: 120rpx;
  652. height: 40rpx;
  653. font-size: 28rpx;
  654. font-family: PingFang SC-Medium, PingFang SC;
  655. font-weight: 400;
  656. color: #FF5757;
  657. line-height: 40rpx;
  658. border: 1rpx solid #FF5757;
  659. border-radius: 6rpx;
  660. text-align: center;
  661. }
  662. .list_three_li_t_r {
  663. position: absolute;
  664. right: -15rpx;
  665. top: 76rpx;
  666. width: 30rpx;
  667. height: 30rpx;
  668. background: #F5F5F5;
  669. border-radius: 15rpx;
  670. }
  671. }
  672. .list_three_li_m {
  673. // position: absolute;
  674. // top: 110rpx;
  675. // left: 0;
  676. width: 690rpx;
  677. height: 158rpx;
  678. padding-left: 30rpx;
  679. box-sizing: border-box;
  680. .list_three_li_m_t {
  681. font-size: 28rpx;
  682. font-family: PingFang SC-Medium, PingFang SC;
  683. font-weight: 400;
  684. color: #666666;
  685. line-height: 40rpx;
  686. margin-top: 22rpx;
  687. }
  688. .list_three_li_m_b {
  689. margin-top: 26rpx;
  690. >text:nth-of-type(1) {
  691. font-size: 26rpx;
  692. font-family: PingFang SC-Medium, PingFang SC;
  693. font-weight: 400;
  694. line-height: 40rpx;
  695. border-radius: 6rpx;
  696. padding: 0 20rpx;
  697. margin-right: 14rpx;
  698. }
  699. >text:nth-of-type(2) {
  700. font-size: 26rpx;
  701. font-family: PingFang SC-Medium, PingFang SC;
  702. font-weight: 400;
  703. color: #0183FA;
  704. line-height: 40rpx;
  705. padding: 0 8rpx;
  706. border-radius: 6rpx;
  707. background: rgba(1, 131, 250, 0.1);
  708. margin-right: 24rpx;
  709. }
  710. >text:nth-of-type(3) {
  711. display: inline-block;
  712. width: 220rpx;
  713. font-size: 26rpx;
  714. font-family: PingFang SC-Medium, PingFang SC;
  715. font-weight: 400;
  716. color: #333333;
  717. line-height: 26rpx;
  718. overflow: hidden;
  719. text-overflow: ellipsis;
  720. white-space: nowrap;
  721. }
  722. }
  723. }
  724. .list_three_li_b {
  725. height: 80rpx;
  726. width: 100%;
  727. // position: absolute;
  728. // top: 278rpx;
  729. // left: 0;
  730. border-top: 1rpx solid #E0E0E0;
  731. font-size: 28rpx;
  732. font-family: PingFang SC-Medium, PingFang SC;
  733. font-weight: 400;
  734. color: #0183FA;
  735. line-height: 80rpx;
  736. text-align: center;
  737. }
  738. .list_three_li_b_tow {
  739. height: 80rpx;
  740. width: 100%;
  741. // position: absolute;
  742. // top: 278rpx;
  743. // left: 0;
  744. border-top: 1rpx solid #E0E0E0;
  745. font-size: 28rpx;
  746. font-family: PingFang SC-Medium, PingFang SC;
  747. font-weight: 400;
  748. color: #0183FA;
  749. line-height: 80rpx;
  750. display: flex;
  751. justify-content: center;
  752. align-items: center;
  753. >img {
  754. width: 28rpx;
  755. height: 30rpx;
  756. margin-right: 12rpx;
  757. }
  758. }
  759. .list_three_li_b_three {
  760. height: 80rpx;
  761. // position: absolute;
  762. // top: 278rpx;
  763. // left: 0;
  764. display: flex;
  765. justify-content: flex-start;
  766. align-items: center;
  767. width: 100%;
  768. border-top: 1rpx solid #E0E0E0;
  769. >img {
  770. width: 24rpx;
  771. height: 30rpx;
  772. margin-right: 26rpx;
  773. margin-left: 30rpx;
  774. }
  775. >text:nth-of-type(1) {
  776. font-size: 28rpx;
  777. font-family: PingFang SC-Medium, PingFang SC;
  778. font-weight: 400;
  779. color: #333333;
  780. line-height: 28rpx;
  781. }
  782. >text:nth-of-type(2) {
  783. flex: 1;
  784. font-size: 28rpx;
  785. font-family: PingFang SC-Medium, PingFang SC;
  786. font-weight: 400;
  787. color: #0183FA;
  788. line-height: 28rpx;
  789. white-space: nowrap;
  790. overflow: hidden;
  791. text-overflow: ellipsis;
  792. }
  793. .report {
  794. font-size: 28rpx;
  795. font-family: PingFang SC-Medium, PingFang SC;
  796. font-weight: 400;
  797. color: #0183FA;
  798. line-height: 28rpx;
  799. margin-right: 40rpx;
  800. }
  801. }
  802. }
  803. }
  804. .bottom_btn {
  805. position: fixed;
  806. bottom: 26rpx;
  807. left: 30rpx;
  808. font-size: 30rpx;
  809. font-family: PingFang SC-Medium, PingFang SC;
  810. font-weight: 400;
  811. color: #FFFFFF;
  812. line-height: 90rpx;
  813. width: 690rpx;
  814. height: 90rpx;
  815. background: #0183FA;
  816. border-radius: 20rpx;
  817. text-align: center;
  818. }
  819. /* 指纹采集 */
  820. .shade {
  821. height: 100%;
  822. width: 100%;
  823. position: fixed;
  824. display: flex;
  825. flex-direction: column;
  826. z-index: 10;
  827. background: rgba(0, 0, 0, 0.2);
  828. .null-box {
  829. flex: 1;
  830. }
  831. .shade_n {
  832. position: absolute;
  833. bottom: 0;
  834. left: 0;
  835. width: 750rpx;
  836. height: 560rpx;
  837. background: #FFFFFF;
  838. border-radius: 20rpx 20rpx 0rpx 0rpx;
  839. .shade_n_title {
  840. height: 100rpx;
  841. padding: 0 30rpx;
  842. box-sizing: border-box;
  843. display: flex;
  844. justify-content: space-between;
  845. border-bottom: 1rpx solid #E0E0E0;
  846. >text:nth-of-type(1) {
  847. font-size: 30rpx;
  848. font-family: PingFang SC-Medium, PingFang SC;
  849. font-weight: 400;
  850. color: #333333;
  851. line-height: 100rpx;
  852. }
  853. >text:nth-of-type(2) {
  854. font-size: 30rpx;
  855. font-family: PingFang SC-Medium, PingFang SC;
  856. font-weight: 400;
  857. color: #0183FA;
  858. line-height: 100rpx;
  859. }
  860. }
  861. .shade_n_b {
  862. height: 460rpx;
  863. padding: 0 30rpx;
  864. box-sizing: border-box;
  865. overflow-y: auto;
  866. .shade_n_b_li {
  867. display: flex;
  868. justify-content: space-between;
  869. align-items: center;
  870. height: 80rpx;
  871. border-bottom: 1rpx solid #E0E0E0;
  872. >text {
  873. font-size: 28rpx;
  874. font-family: PingFang SC-Medium, PingFang SC;
  875. font-weight: 400;
  876. line-height: 80rpx;
  877. overflow: hidden;
  878. text-overflow: ellipsis;
  879. white-space: nowrap;
  880. }
  881. >img {
  882. width: 24rpx;
  883. height: 16rpx;
  884. margin-right: 14rpx;
  885. }
  886. }
  887. .color_A {
  888. color: #333333;
  889. }
  890. .color_B {
  891. color: #0183FA;
  892. }
  893. }
  894. }
  895. }
  896. }
  897. </style>