patrolPlanAdd.vue 27 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108
  1. <!-- 安全检查-发起巡查计划 -->
  2. <template>
  3. <view class="examine">
  4. <scroll-view scroll-y @scrolltolower="scrollGet" class="info-max-box">
  5. <view class="basics">
  6. <view class="title">
  7. <view class="title_t">计划标题</view>
  8. <textarea class="title_b" type="text" v-model="form.title" maxlength="200" placeholder="请输入检查计划标题"
  9. placeholder-style="color:#999999;font-size:30rpx;"></textarea>
  10. </view>
  11. <view class="type">
  12. <view class="type_l">检查组织</view>
  13. <input class="type_r" type="text" v-model="form.checkTypeName" placeholder="" disabled
  14. maxlength="20">
  15. </view>
  16. <view class="period">
  17. <view class="period_l">计划周期</view>
  18. <view class="period_r">
  19. <picker mode="date" @change="startChange(form,$event)">
  20. <input class="picker-text" disabled type="text" v-model="form.cycleStartTime"
  21. placeholder="开始时间">
  22. </picker>
  23. <view>至</view>
  24. <picker mode="date" @change="endChange(form,$event)">
  25. <input class="picker-text2" disabled type="text" v-model="form.cycleEndTime"
  26. placeholder="结束时间">
  27. </picker>
  28. </view>
  29. </view>
  30. <view class="tiem_quick">
  31. <view @click="tiemQuick(index)" :class="item.type?'tiem_quick_a':'tiem_quick_b'"
  32. v-for="(item,index) in tiemQuickList" :key="index">{{item.name}}</view>
  33. </view>
  34. <view class="scope">
  35. <view class="scope_l">检查范围</view>
  36. <picker @change="scopeChange" :value="scopeIndex" :range="scopeArray" class="scope_r">
  37. <view class="scope_r_n">
  38. <view>{{form.checkRange?(form.checkRange==1?'全校':(form.checkRange==2?'学院':'实验室')):'选择检查范围'}}
  39. </view>
  40. <img src="@/pages_safetyExamine/images/icon_06.png">
  41. </view>
  42. </picker>
  43. </view>
  44. <view class="scope_btn" v-if="scopeIndex==1 || scopeIndex==2" @click="collegeOrLab()">
  45. {{scopeIndex==1?'选择学院':'选择实验室'}}
  46. </view>
  47. <view class="scope_text" v-if="scopeIndex==0 || scopeIndex==1">
  48. 已选择<text>{{form.collegeNum}}</text>个学院,共<text>{{form.subjectNum}}</text>间实验室</view>
  49. <view class="scope_text" v-if="scopeIndex==2">已选择<text>{{form.subjectNum}}</text>间实验室</view>
  50. <view class="scope">
  51. <view class="scope_l">检查类型</view>
  52. <picker @change="categoryChange" :value="categoryIndex" :range="categoryArray" class="scope_r">
  53. <view class="scope_r_n">
  54. <view>{{form.checkCategory==1?'综合检查':(form.checkCategory==2?'专项检查':'请选择检查类型')}}</view>
  55. <img src="@/pages_safetyExamine/images/icon_06.png">
  56. </view>
  57. </picker>
  58. </view>
  59. <view class="content" v-if="form.checkCategory==2">
  60. <view class="content_l">检查内容</view>
  61. <view class="content_r">
  62. <view class="content_r_l" @click="clickContent()">选择检查内容</view>
  63. <view class="content_r_r">已选择<text>{{form.hazardNum}}</text>种</view>
  64. </view>
  65. </view>
  66. <view class="title">
  67. <view class="title_t">检查要求</view>
  68. <textarea class="title_b" type="text" v-model="form.checkDemand" maxlength="100"
  69. placeholder="请输入检查要求" placeholder-style="color:#999999;font-size:30rpx;"></textarea>
  70. </view>
  71. </view>
  72. <view class="patrol_group" v-if="form.checkType==1">
  73. <view class="patrol">
  74. <view class="patrol_l">巡查组</view>
  75. <view class="patrol_r_n" @click="patrolChange">
  76. <view>{{form.checkGroupName?form.checkGroupName:'请选择巡查组'}}</view>
  77. <img src="@/pages_safetyExamine/images/icon_06.png">
  78. </view>
  79. </view>
  80. <view class="list">
  81. <view class="list_title"><img src="@/pages_safetyExamine/images/icon_jcjh_cy.png">成员</view>
  82. <view class="list_header"><text>工号</text><text>姓名</text></view>
  83. <view class="list_li" v-for="(item,index) in form.checkMemberDtoList" :key="index">
  84. <text>{{item.jobNum}}</text><text>{{item.name}}</text>
  85. </view>
  86. <view class="list_bottom" v-if="form.checkMemberDtoList.length==0">无数据</view>
  87. </view>
  88. </view>
  89. </scroll-view>
  90. <view class="bottom_btn" @click="submitForm()">保存</view>
  91. <!-- 选择学院-->
  92. <view class="shade" v-if="dialogVisible">
  93. <view class="null-box" @click="dialogClose()"></view>
  94. <view class="shade_n">
  95. <view class="shade_n_title"><text>选择学院</text><text @click="collegeConfirm">确定</text></view>
  96. <view class="shade_n_b">
  97. <view class="shade_n_b_li" v-for="(item,index) in collegeList" :key="index"
  98. @click="collegeSelete(index)">
  99. <text :class="item.type?'color_B':'color_A'">{{item.deptName}}</text>
  100. <img v-if="item.type" src="@/pages_safetyExamine/images/icon_xzwt_xz.png">
  101. </view>
  102. </view>
  103. </view>
  104. </view>
  105. </view>
  106. </template>
  107. <script>
  108. import {
  109. config
  110. } from '@/api/request/config.js'
  111. import {
  112. checkPlanAdd,
  113. systemDeptDropList,
  114. getAllSubNum,
  115. isSCollege
  116. } from '@/pages_safetyExamine/api/index.js'
  117. export default {
  118. name: "rectifyList",
  119. components: {
  120. },
  121. data() {
  122. return {
  123. pageType: 0,
  124. //列表请求参数
  125. getData: {
  126. pageNum: 1,
  127. pageSize: 20,
  128. },
  129. form: {
  130. title: '',
  131. checkType: '1', //1校院巡查 2实验室自查
  132. checkTypeName: '校院巡查', //1校院巡查 2实验室自查
  133. cycleStartTime: '',
  134. cycleEndTime: '',
  135. checkRange: '', //检查范围 1全校 2学院 3实验室
  136. checkLevel: '', //巡查组层级
  137. seleteListMember: [], //临时存储选中巡查组
  138. checkMemberDtoList: [], //巡查组成员
  139. collegeIds: '', //学院id组
  140. collegeNum: 0, //学院数量
  141. subIds: '', //实验室id组
  142. subjectNum: 0, //实验室数量
  143. hazardNum: 0, //检查设备数量
  144. checkDemand: '', //检查要求
  145. tiemQuickList: [],
  146. scopeIndex: '', //0 全校 1学院 2实验室
  147. seleteListLab: [],
  148. seleteListDevice: [],
  149. groupDataType: '', //巡查组状态 院级/校级
  150. checkCategory: '', //检查类型 1综合检查 2专项检查
  151. },
  152. tiemQuickList: [{
  153. name: '本月',
  154. type: false
  155. }, {
  156. name: '本季度',
  157. type: false
  158. }, {
  159. name: '全年',
  160. type: false
  161. }],
  162. scopeIndex: 0,
  163. scopeArray: ['全校', '学院', '实验室'],
  164. categoryIndex: 0,
  165. categoryArray: ['综合检查', '专项检查'],
  166. dialogVisible: false,
  167. collegeList: []
  168. }
  169. },
  170. onLoad(option) {
  171. if (option.pageType) {
  172. if (option.pageType == 1) { //校院巡查
  173. this.form.checkType = option.pageType;
  174. this.form.checkTypeName = '校院巡查';
  175. uni.setNavigationBarTitle({
  176. title: '发起巡查计划'
  177. })
  178. } else if (option.pageType == 2) { //实验室自查
  179. this.form.checkType = option.pageType;
  180. this.form.checkTypeName = '实验室自查';
  181. uni.setNavigationBarTitle({
  182. title: '发起自查计划'
  183. })
  184. }
  185. }
  186. },
  187. onShow(form) {
  188. if (form) {
  189. this.form = JSON.parse(decodeURIComponent(form));
  190. this.tiemQuickList = this.form.tiemQuickList //时间快捷
  191. this.scopeIndex = this.form.scopeIndex //检查范围
  192. }
  193. },
  194. mounted() {
  195. this.isSCollege();
  196. },
  197. methods: {
  198. //滚动事件
  199. scrollGet() {},
  200. //顶部tab点击
  201. tabClick(index) {
  202. this.curTab = index;
  203. },
  204. //开始时间选中事件
  205. startChange(form, e) {
  206. if (new Date(e.target.value).getTime() > new Date(form.cycleEndTime).getTime()) {
  207. uni.showToast({
  208. title: '结束时间不能小于开始时间',
  209. icon: "none",
  210. mask: true,
  211. duration: 2000
  212. });
  213. } else {
  214. form.cycleStartTime = e.target.value
  215. this.tiemQuickList.forEach(function(item) {
  216. item.type = false;
  217. })
  218. }
  219. },
  220. //结束时间选中事件
  221. endChange(form, e) {
  222. if (new Date(form.cycleStartTime).getTime() > new Date(e.target.value).getTime()) {
  223. uni.showToast({
  224. title: '结束时间不能小于开始时间',
  225. icon: "none",
  226. mask: true,
  227. duration: 2000
  228. });
  229. } else {
  230. form.cycleEndTime = e.target.value
  231. this.tiemQuickList.forEach(function(item) {
  232. item.type = false;
  233. })
  234. }
  235. },
  236. //检查周期快捷
  237. tiemQuick(index) {
  238. this.tiemQuickList[index].type = !this.tiemQuickList[index].type
  239. let self = this;
  240. if (self.tiemQuickList[index].type == true) {
  241. self.tiemQuickList.forEach(function(item2) {
  242. if (item2.name == self.tiemQuickList[index].name) {
  243. item2.type = true
  244. } else {
  245. item2.type = false
  246. }
  247. })
  248. //快捷本月-本季度-全年
  249. self.timeSlotChange(self.tiemQuickList[index].name)
  250. } else {
  251. console.log('取消选中')
  252. self.form.cycleStartTime = '';
  253. self.form.cycleEndTime = '';
  254. }
  255. },
  256. //查询当前用户是否是院级
  257. async isSCollege() {
  258. let self = this;
  259. const {
  260. data
  261. } = await isSCollege();
  262. if (data.code == 200) {
  263. if (data.data.userFlg) {
  264. // 院级
  265. this.$set(this, 'scopeArray', ['学院', '实验室']);
  266. this.form.groupDataType = 2;
  267. } else {
  268. // 校级
  269. this.$set(this, 'scopeArray', ['全校', '学院', '实验室']);
  270. this.form.groupDataType = 0;
  271. }
  272. }
  273. },
  274. //检查类型
  275. categoryChange(e) {
  276. let self = this;
  277. if (e.target.value == 0) {
  278. this.form.checkCategory = 1
  279. } else if (e.target.value == 1) {
  280. this.form.checkCategory = 2
  281. }
  282. },
  283. //检查内容
  284. clickContent() {
  285. if (!this.form.collegeNum && !this.form.subjectNum) {
  286. uni.showToast({
  287. title: '请先选择检查范围',
  288. icon: "none",
  289. mask: true,
  290. duration: 2000
  291. });
  292. return;
  293. }
  294. this.form.tiemQuickList = this.tiemQuickList //检查周期快捷存储
  295. this.form.scopeIndex = this.scopeIndex //检查范围
  296. uni.navigateTo({
  297. url: '/pages_safetyExamine/views/patrolPlan/patrolPlanAddContent?form=' + encodeURIComponent(
  298. JSON.stringify(this.form)) + '&pageType=1'
  299. });
  300. },
  301. //检查范围
  302. scopeChange(e) {
  303. let self = this;
  304. if (this.scopeArray[e.target.value] == '全校') {
  305. self.scopeIndex = 0;
  306. self.form.checkRange = 1;
  307. } else if (this.scopeArray[e.target.value] == '学院') {
  308. self.scopeIndex = 1;
  309. self.form.checkRange = 2;
  310. } else if (this.scopeArray[e.target.value] == '实验室') {
  311. self.scopeIndex = 2;
  312. self.form.checkRange = 3;
  313. }
  314. if (this.form.subjectNum > 0) {
  315. uni.showModal({
  316. content: '重新选择会删除现有选择的实验室,是否重选?',
  317. cancelColor: "#999",
  318. confirmColor: "#0183FA",
  319. success: function(res) {
  320. if (res.confirm) {
  321. self.form.collegeIds = '';
  322. self.form.collegeNum = 0;
  323. self.form.subIds = '';
  324. self.form.subjectNum = 0;
  325. if (self.scopeIndex == 0) { //全校
  326. self.getAllSubNum();
  327. } else if (self.scopeIndex == 1) { //选择学院
  328. self.conditionCollegeInfo();
  329. } else if (self.scopeIndex == 2) {
  330. console.log('选择实验室')
  331. }
  332. } else if (res.cancel) {
  333. }
  334. }
  335. });
  336. } else {
  337. if (self.scopeIndex == 0) { //全校
  338. self.getAllSubNum();
  339. } else if (self.scopeIndex == 1) { //选择学院
  340. self.conditionCollegeInfo();
  341. } else if (self.scopeIndex == 2) {
  342. console.log('选择实验室')
  343. }
  344. }
  345. },
  346. timeSlotChange(val) {
  347. let self = this;
  348. let cycleStartTime, cycleEndTime;
  349. let now = new Date(); //当前日期
  350. let nowDayOfWeek = now.getDay(); //今天本周的第几天
  351. let nowDay = now.getDate(); //当前日
  352. let nowMonth = now.getMonth(); //当前月
  353. let nowYear = now.getFullYear(); //当前年
  354. let jd = Math.ceil((nowMonth + 1) / 3)
  355. switch (val) {
  356. case "本周":
  357. cycleStartTime = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek)
  358. cycleEndTime = new Date(nowYear, nowMonth, nowDay + 6 - nowDayOfWeek)
  359. break;
  360. case "本月":
  361. cycleStartTime = new Date(nowYear, nowMonth, 1)
  362. cycleEndTime = new Date(nowYear, nowMonth + 1, 0)
  363. break;
  364. case "本季度":
  365. cycleStartTime = new Date(nowYear, (jd - 1) * 3, 1)
  366. cycleEndTime = new Date(nowYear, jd * 3, 0)
  367. break
  368. case "全年":
  369. cycleStartTime = new Date(nowYear, 0, 1)
  370. cycleEndTime = new Date(nowYear, 11, 31)
  371. break
  372. }
  373. self.form.cycleStartTime = self.formatDateTime(cycleStartTime)
  374. self.form.cycleEndTime = self.formatDateTime(cycleEndTime)
  375. },
  376. // 中国标准时间 转换成 年月日
  377. formatDateTime(date) {
  378. var y = date.getFullYear();
  379. var m = date.getMonth() + 1;
  380. m = m < 10 ? ('0' + m) : m;
  381. var d = date.getDate();
  382. d = d < 10 ? ('0' + d) : d;
  383. var h = date.getHours();
  384. var minute = date.getMinutes();
  385. minute = minute < 10 ? ('0' + minute) : minute;
  386. // return y + '-' + m + '-' + d+' '+h+':'+minute;
  387. return y + '-' + m + '-' + d
  388. },
  389. //巡查组
  390. patrolChange() {
  391. this.form.tiemQuickList = this.tiemQuickList //检查周期快捷存储
  392. this.form.scopeIndex = this.scopeIndex //检查范围
  393. uni.navigateTo({
  394. url: '/pages_safetyExamine/views/patrolPlan/patrolPlanAddMember?form=' + encodeURIComponent(
  395. JSON.stringify(this.form)) + '&pageType=1'
  396. });
  397. },
  398. //选择学院或者实验室
  399. collegeOrLab() {
  400. if (this.scopeIndex == 1) { //学院
  401. this.dialogVisible = true;
  402. } else if (this.scopeIndex == 2) { //实验室
  403. this.form.tiemQuickList = this.tiemQuickList //检查周期快捷存储
  404. this.form.scopeIndex = this.scopeIndex //检查范围
  405. uni.navigateTo({
  406. url: '/pages_safetyExamine/views/patrolPlan/patrolPlanAddLab?form=' + encodeURIComponent(
  407. JSON.stringify(this.form)) + '&pageType=1'
  408. });
  409. }
  410. },
  411. //选择学院弹窗关闭
  412. dialogClose() {
  413. this.dialogVisible = false;
  414. },
  415. //选择学院确定
  416. collegeConfirm() {
  417. let self = this;
  418. this.dialogVisible = false;
  419. let list = [];
  420. let collegeIds = [];
  421. let subjectNum = 0;
  422. self.collegeList.forEach(function(item) {
  423. if (item.type == true) {
  424. list.push(item)
  425. collegeIds.push(item.deptId);
  426. subjectNum += item.subNum;
  427. }
  428. })
  429. self.form.collegeIds = collegeIds.join(',');
  430. self.form.subjectNum = subjectNum;
  431. self.form.collegeNum = list.length;
  432. },
  433. //学院选择
  434. collegeSelete(index) {
  435. this.collegeList[index].type = !this.collegeList[index].type
  436. },
  437. //查询学院列表
  438. async conditionCollegeInfo() {
  439. let self = this;
  440. const {
  441. data
  442. } = await systemDeptDropList({
  443. deptName: '',
  444. level: 2,
  445. deptType: 1
  446. });
  447. if (data.code == 200) {
  448. data.data.forEach(function(item) {
  449. item.type = false;
  450. })
  451. self.collegeList = data.data;
  452. }
  453. },
  454. //查询全校学院和实验室数量
  455. async getAllSubNum() {
  456. let self = this;
  457. const {
  458. data
  459. } = await getAllSubNum();
  460. if (data.code == 200) {
  461. this.form.collegeNum = data.data.collegeCount
  462. this.form.subjectNum = data.data.subCount
  463. }
  464. },
  465. handleClick(doType) {
  466. let self = this;
  467. if (doType == 'subBtn') { //
  468. }
  469. },
  470. //巡查计划-添加
  471. async submitForm() {
  472. let self = this;
  473. if (!self.form.title) {
  474. uni.showToast({
  475. title: '请输入计划标题',
  476. icon: "none",
  477. mask: true,
  478. duration: 2000
  479. });
  480. return;
  481. }
  482. if (!self.form.cycleStartTime || !self.form.cycleEndTime) {
  483. uni.showToast({
  484. title: '请选择计划周期',
  485. icon: "none",
  486. mask: true,
  487. duration: 2000
  488. });
  489. return;
  490. }
  491. if (!self.form.checkRange) {
  492. uni.showToast({
  493. title: '请选择检查范围',
  494. icon: "none",
  495. mask: true,
  496. duration: 2000
  497. });
  498. return;
  499. }
  500. if (self.form.checkRange == 2 && self.form.subjectNum == 0) {
  501. uni.showToast({
  502. title: '请选择学院',
  503. icon: "none",
  504. mask: true,
  505. duration: 2000
  506. });
  507. return;
  508. }
  509. if (self.form.checkRange == 3 && self.form.subjectNum == 0) {
  510. uni.showToast({
  511. title: '请选择实验室',
  512. icon: "none",
  513. mask: true,
  514. duration: 2000
  515. });
  516. return;
  517. }
  518. if (self.form.checkType == 1 && self.form.checkMemberDtoList.length <= 0) {
  519. uni.showToast({
  520. title: '请选择巡查组',
  521. icon: "none",
  522. mask: true,
  523. duration: 2000
  524. });
  525. return;
  526. }
  527. console.log(self.form.checkCategory)
  528. console.log(self.form.hazardNum)
  529. if (self.form.checkCategory == 2 && self.form.hazardNum == 0) {
  530. uni.showToast({
  531. title: '请选择检查内容!',
  532. icon: "none",
  533. mask: true,
  534. duration: 2000
  535. });
  536. return;
  537. }
  538. const {
  539. data
  540. } = await checkPlanAdd(self.form);
  541. if (data.code == 200) {
  542. uni.showToast({
  543. title: '提交成功',
  544. icon: "none",
  545. mask: true,
  546. duration: 2000
  547. });
  548. uni.redirectTo({
  549. url: '/pages_safetyExamine/views/patrolPlan/patrolPlanList?pageType=' + this.form.checkType
  550. });
  551. }
  552. },
  553. }
  554. }
  555. </script>
  556. <style lang="stylus" scoped>
  557. .examine {
  558. height: 100%;
  559. display flex;
  560. // padding: 0 30rpx;
  561. // box-sizing: border-box;
  562. padding-bottom: 126rpx;
  563. box-sizing: border-box;
  564. .info-max-box {
  565. flex: 1;
  566. overflow: scroll;
  567. padding: 0 30rpx;
  568. box-sizing: border-box;
  569. }
  570. .basics {
  571. width: 690rpx;
  572. background: #FFFFFF;
  573. border-radius: 20rpx;
  574. margin-top: 20rpx;
  575. padding: 60rpx 26rpx 32rpx;
  576. box-sizing: border-box;
  577. .title {
  578. .title_t {
  579. font-size: 30rpx;
  580. font-family: PingFang SC-Medium, PingFang SC;
  581. font-weight: 400;
  582. color: #333333;
  583. line-height: 42rpx;
  584. margin-bottom: 12rpx;
  585. }
  586. .title_b {
  587. width: 636rpx;
  588. height: 150rpx;
  589. border-radius: 10rpx;
  590. opacity: 1;
  591. border: 1rpx solid #E0E0E0;
  592. padding: 26rpx 23rpx;
  593. box-sizing: border-box;
  594. }
  595. }
  596. .type {
  597. display: flex;
  598. justify-content: flex-start;
  599. align-items: center;
  600. margin-top: 20rpx;
  601. .type_l {
  602. width: 146rpx;
  603. font-size: 30rpx;
  604. font-family: PingFang SC-Medium, PingFang SC;
  605. font-weight: 400;
  606. color: #333333;
  607. line-height: 42rpx;
  608. text-align: left;
  609. }
  610. .type_r {
  611. width: 490rpx;
  612. height: 80rpx;
  613. border-radius: 10rpx;
  614. padding-left: 22rpx;
  615. box-sizing: border-box;
  616. background: #F5F5F5;
  617. }
  618. }
  619. .period {
  620. display: flex;
  621. justify-content: flex-start;
  622. align-items: center;
  623. margin-top: 26rpx;
  624. .period_l {
  625. width: 146rpx;
  626. font-size: 30rpx;
  627. font-family: PingFang SC-Medium, PingFang SC;
  628. font-weight: 400;
  629. color: #333333;
  630. line-height: 42rpx;
  631. text-align: left;
  632. }
  633. .period_r {
  634. width: 490rpx;
  635. height: 80rpx;
  636. border-radius: 10rpx;
  637. border: 1rpx solid #E0E0E0;
  638. display: flex;
  639. justify-content: flex-start;
  640. align-items: center;
  641. .picker-text {
  642. font-size: 30rpx;
  643. font-family: PingFang SC-Medium, PingFang SC;
  644. font-weight: 400;
  645. color: #999999;
  646. line-height: 80rpx;
  647. width: 230rpx;
  648. text-align: center;
  649. }
  650. .picker-text2 {
  651. font-size: 30rpx;
  652. font-family: PingFang SC-Medium, PingFang SC;
  653. font-weight: 400;
  654. color: #999999;
  655. line-height: 80rpx;
  656. width: 230rpx;
  657. text-align: center;
  658. }
  659. }
  660. }
  661. .tiem_quick {
  662. margin-left: 146rpx;
  663. display: flex;
  664. justify-content: flex-start;
  665. margin-top: 20rpx;
  666. >view {
  667. width: 130rpx;
  668. height: 80rpx;
  669. opacity: 1;
  670. border: 1rpx solid #E0E0E0;
  671. font-size: 30rpx;
  672. font-family: PingFang SC-Medium, PingFang SC;
  673. font-weight: 400;
  674. line-height: 80rpx;
  675. text-align: center;
  676. }
  677. >view:nth-of-type(1) {
  678. border-radius: 10rpx 0rpx 0rpx 10rpx;
  679. }
  680. >view:nth-of-type(3) {
  681. border-radius: 0rpx 10rpx 10rpx 0rpx;
  682. }
  683. .tiem_quick_a {
  684. background: #0183FA;
  685. color: #FFFFFF;
  686. }
  687. .tiem_quick_b {
  688. background: #F5F5F5;
  689. color: #333333;
  690. }
  691. }
  692. .scope {
  693. display: flex;
  694. justify-content: flex-start;
  695. align-items: center;
  696. margin-top: 26rpx;
  697. .scope_l {
  698. width: 146rpx;
  699. font-size: 30rpx;
  700. font-family: PingFang SC-Medium, PingFang SC;
  701. font-weight: 400;
  702. color: #333333;
  703. line-height: 42rpx;
  704. text-align: left;
  705. }
  706. .scope_r {
  707. flex: 1;
  708. .scope_r_n {
  709. width: 490rpx;
  710. height: 80rpx;
  711. border-radius: 10rpx;
  712. border: 1rpx solid #E0E0E0;
  713. display: flex;
  714. justify-content: flex-start;
  715. align-items: center;
  716. >view {
  717. flex: 1;
  718. line-height: 80rpx;
  719. margin-left: 20rpx;
  720. color: #999999;
  721. font-size: 28rpx;
  722. }
  723. >img {
  724. width: 14rpx;
  725. height: 8rpx;
  726. margin-right: 30rpx;
  727. }
  728. }
  729. }
  730. }
  731. .content {
  732. display: flex;
  733. justify-content: flex-start;
  734. align-items: center;
  735. margin-top: 26rpx;
  736. .content_l {
  737. width: 146rpx;
  738. font-size: 30rpx;
  739. font-family: PingFang SC-Medium, PingFang SC;
  740. font-weight: 400;
  741. color: #333333;
  742. line-height: 42rpx;
  743. text-align: left;
  744. }
  745. .content_r {
  746. flex: 1;
  747. display: flex;
  748. justify-content: flex-start;
  749. align-items: center;
  750. .content_r_l {
  751. width: 220rpx;
  752. height: 80rpx;
  753. background: #0183FA;
  754. border-radius: 10rpx 10rpx 10rpx 10rpx;
  755. text-align: center;
  756. font-size: 30rpx;
  757. font-family: PingFang SC-Medium, PingFang SC;
  758. font-weight: 400;
  759. color: #FFFFFF;
  760. line-height: 80rpx;
  761. margin-right: 26rpx;
  762. }
  763. .content_r_r {
  764. font-size: 30rpx;
  765. font-family: PingFang SC-Medium, PingFang SC;
  766. font-weight: 400;
  767. color: #333333;
  768. line-height: 42rpx;
  769. >text {
  770. color: #0183FA;
  771. }
  772. }
  773. }
  774. }
  775. .scope_btn {
  776. display: inline-block;
  777. background: #0183FA;
  778. border-radius: 10rpx;
  779. font-size: 30rpx;
  780. font-family: PingFang SC-Medium, PingFang SC;
  781. font-weight: 400;
  782. color: #FFFFFF;
  783. line-height: 80rpx;
  784. text-align: center;
  785. padding: 0 16rpx;
  786. box-sizing: border-box;
  787. margin-top: 40rpx;
  788. margin-left: 146rpx;
  789. }
  790. .scope_text {
  791. margin-left: 146rpx;
  792. font-size: 30rpx;
  793. font-family: PingFang SC-Medium, PingFang SC;
  794. font-weight: 400;
  795. color: #333333;
  796. margin-top: 32rpx;
  797. line-height: 42rpx;
  798. >text {
  799. color: #0183FA;
  800. }
  801. }
  802. }
  803. .patrol_group {
  804. width: 690rpx;
  805. background: #FFFFFF;
  806. border-radius: 20rpx;
  807. margin-top: 20rpx;
  808. padding: 40rpx 30rpx 64rpx;
  809. box-sizing: border-box;
  810. .patrol {
  811. display: flex;
  812. justify-content: flex-start;
  813. align-items: center;
  814. margin-top: 26rpx;
  815. .patrol_l {
  816. width: 146rpx;
  817. font-size: 30rpx;
  818. font-family: PingFang SC-Medium, PingFang SC;
  819. font-weight: 400;
  820. color: #333333;
  821. line-height: 42rpx;
  822. text-align: left;
  823. }
  824. .patrol_r_n {
  825. width: 490rpx;
  826. height: 80rpx;
  827. border-radius: 10rpx;
  828. border: 1rpx solid #E0E0E0;
  829. display: flex;
  830. justify-content: flex-start;
  831. align-items: center;
  832. >view {
  833. flex: 1;
  834. line-height: 80rpx;
  835. margin-left: 20rpx;
  836. color: #999999;
  837. font-size: 28rpx;
  838. }
  839. >img {
  840. width: 14rpx;
  841. height: 8rpx;
  842. margin-right: 30rpx;
  843. }
  844. }
  845. }
  846. .list {
  847. margin-top: 42rpx;
  848. .list_title {
  849. display: flex;
  850. justify-content: flex-start;
  851. align-items: center;
  852. height: 80rpx;
  853. background: #F5F5F5;
  854. border-radius: 10rpx 10rpx 0rpx 0rpx;
  855. font-size: 30rpx;
  856. font-family: PingFang SC-Medium, PingFang SC;
  857. font-weight: 400;
  858. color: #333333;
  859. line-height: 80rpx;
  860. >img {
  861. width: 30rpx;
  862. height: 30rpx;
  863. margin: 0 20rpx;
  864. }
  865. }
  866. .list_header {
  867. display: flex;
  868. justify-content: flex-start;
  869. >text {
  870. flex: 1;
  871. height: 80rpx;
  872. background: #F5F5F5;
  873. font-size: 30rpx;
  874. font-family: PingFang SC-Medium, PingFang SC;
  875. font-weight: 400;
  876. color: #333333;
  877. line-height: 80rpx;
  878. text-align: center;
  879. border: 1rpx solid #E0E0E0;
  880. }
  881. >text:nth-of-type(1) {
  882. border-right: none;
  883. }
  884. }
  885. .list_li {
  886. display: flex;
  887. justify-content: flex-start;
  888. >text {
  889. flex: 1;
  890. height: 80rpx;
  891. font-size: 30rpx;
  892. font-family: PingFang SC-Medium, PingFang SC;
  893. font-weight: 400;
  894. color: #333333;
  895. line-height: 80rpx;
  896. text-align: center;
  897. border: 1rpx solid #E0E0E0;
  898. }
  899. >text:nth-of-type(1) {
  900. border-right: none;
  901. border-top: none;
  902. }
  903. >text:nth-of-type(2) {
  904. border-top: none;
  905. }
  906. }
  907. .list_bottom {
  908. flex: 1;
  909. height: 80rpx;
  910. font-size: 30rpx;
  911. font-family: PingFang SC-Medium, PingFang SC;
  912. font-weight: 400;
  913. color: #999999;
  914. line-height: 80rpx;
  915. text-align: center;
  916. border: 1rpx solid #E0E0E0;
  917. border-top: none;
  918. }
  919. }
  920. }
  921. .bottom_btn {
  922. position: fixed;
  923. bottom: 26rpx;
  924. left: 30rpx;
  925. font-size: 30rpx;
  926. font-family: PingFang SC-Medium, PingFang SC;
  927. font-weight: 400;
  928. color: #FFFFFF;
  929. line-height: 90rpx;
  930. width: 690rpx;
  931. height: 90rpx;
  932. background: #0183FA;
  933. border-radius: 20rpx;
  934. text-align: center;
  935. }
  936. /* 指纹采集 */
  937. .shade {
  938. height: 100%;
  939. width: 100%;
  940. position: fixed;
  941. display: flex;
  942. flex-direction: column;
  943. z-index: 10;
  944. background: rgba(0, 0, 0, 0.2);
  945. .null-box {
  946. flex: 1;
  947. }
  948. .shade_n {
  949. position: absolute;
  950. bottom: 0;
  951. left: 0;
  952. width: 750rpx;
  953. height: 560rpx;
  954. background: #FFFFFF;
  955. border-radius: 20rpx 20rpx 0rpx 0rpx;
  956. .shade_n_title {
  957. height: 100rpx;
  958. padding: 0 30rpx;
  959. box-sizing: border-box;
  960. display: flex;
  961. justify-content: space-between;
  962. border-bottom: 1rpx solid #E0E0E0;
  963. >text:nth-of-type(1) {
  964. font-size: 30rpx;
  965. font-family: PingFang SC-Medium, PingFang SC;
  966. font-weight: 400;
  967. color: #333333;
  968. line-height: 100rpx;
  969. }
  970. >text:nth-of-type(2) {
  971. font-size: 30rpx;
  972. font-family: PingFang SC-Medium, PingFang SC;
  973. font-weight: 400;
  974. color: #0183FA;
  975. line-height: 100rpx;
  976. }
  977. }
  978. .shade_n_b {
  979. height: 460rpx;
  980. padding: 0 30rpx;
  981. box-sizing: border-box;
  982. overflow-y: auto;
  983. .shade_n_b_li {
  984. display: flex;
  985. justify-content: space-between;
  986. align-items: center;
  987. height: 80rpx;
  988. border-bottom: 1rpx solid #E0E0E0;
  989. >text {
  990. font-size: 28rpx;
  991. font-family: PingFang SC-Medium, PingFang SC;
  992. font-weight: 400;
  993. line-height: 80rpx;
  994. overflow: hidden;
  995. text-overflow: ellipsis;
  996. white-space: nowrap;
  997. }
  998. >img {
  999. width: 24rpx;
  1000. height: 16rpx;
  1001. margin-right: 14rpx;
  1002. }
  1003. }
  1004. .color_A {
  1005. color: #333333;
  1006. }
  1007. .color_B {
  1008. color: #0183FA;
  1009. }
  1010. }
  1011. }
  1012. }
  1013. }
  1014. </style>