patrolPlanEdit.vue 44 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821
  1. <!-- 安全检查-发起巡查计划 -->
  2. <template>
  3. <view class="examine">
  4. <view class="tabTitle">
  5. <view class="tabTitle_li" @tap="tabClick(index)" :key="index" v-for="(item,index) in tabText">
  6. <view :class="{on:curTab==index}" class="tabTitle_text">{{item}}</view>
  7. <view :class="{on:curTab==index}" class="tabTitle_across"></view>
  8. </view>
  9. </view>
  10. <view class="header" v-if="pageType==1">
  11. <view class="line"></view>
  12. <view class="tabTitle_tow">
  13. <view class="tabTitle_tow_li" @tap="tabClickTow(index)" :key="index" v-for="(item,index) in tabTextTow">
  14. <view :class="{on:curTabTow==index}" class="tabTitle_tow_text">{{item}}</view>
  15. <view :class="{on:curTabTow==index}" class="tabTitle_tow_across"></view>
  16. </view>
  17. </view>
  18. <view class="lab_title">
  19. <picker @change="collegeChange" :value="collegeIndex" :range="collegeArray" class="lab_title_l">
  20. <view class="lab_title_l_n">
  21. <view>{{getData.deptName?getData.deptName:'选择学院'}}</view>
  22. <img src="@/pages_safetyExamine/images/icon_06.png">
  23. </view>
  24. </picker>
  25. <view class="lab_title_r">
  26. <input type="text" v-model="getData.searchValue" placeholder="请输入实验室名称" name="search"
  27. @confirm='searchBtn' confirm-type='search' maxlength="50"
  28. placeholder-style="color: #CCCCCC;font-size:26rpx;">
  29. <view v-if="getData.searchValue>0" class="lab_title_r_btn" @click="clearBtn">
  30. <img src="@/pages_safetyExamine/images/clear.png" />
  31. </view>
  32. </view>
  33. </view>
  34. </view>
  35. <scroll-view scroll-y @scrolltolower="scrollGet" class="info-max-box">
  36. <view v-if="pageType==0" style="padding: 0 30rpx;box-sizing: border-box;">
  37. <view class="delay_inspect">
  38. <view class="delay_inspect_l" v-if="form.checkStatus==1">待检查实验室:<text>{{form.subjectNum}}间</text>
  39. </view>
  40. <view class="delay_inspect_r" v-if="form.checkStatus==1">未开始</view>
  41. <view class="delay_inspect_l" v-if="form.checkStatus==2 || form.checkStatus==3">
  42. 检查进度:<text>{{form.checkSchedule}}</text></view>
  43. <view class="delay_inspect_r_tow" v-if="form.checkStatus==2">进行中</view>
  44. <view class="delay_inspect_r_tow" v-if="form.checkStatus==3">已结束</view>
  45. </view>
  46. <view class="basics">
  47. <view class="title">
  48. <view class="title_t">计划标题</view>
  49. <textarea class="title_b" type="text" v-model="form.title" maxlength="200"
  50. placeholder="请输入检查计划标题" placeholder-style="color:#999999;font-size:30rpx;"></textarea>
  51. </view>
  52. <view class="type">
  53. <view class="type_l">检查组织</view>
  54. <input class="type_r" type="text" v-model="form.checkTypeName" placeholder="" disabled
  55. maxlength="20">
  56. </view>
  57. <view class="period">
  58. <view class="period_l">计划周期</view>
  59. <view class="period_r">
  60. <picker mode="date" @change="startChange(form,$event)">
  61. <input class="picker-text" disabled type="text" v-model="form.cycleStartTime"
  62. placeholder="开始时间">
  63. </picker>
  64. <view>至</view>
  65. <picker mode="date" @change="endChange(form,$event)">
  66. <input class="picker-text2" disabled type="text" v-model="form.cycleEndTime"
  67. placeholder="结束时间">
  68. </picker>
  69. </view>
  70. </view>
  71. <view class="tiem_quick">
  72. <view @click="tiemQuick(index)" :class="item.type?'tiem_quick_a':'tiem_quick_b'"
  73. v-for="(item,index) in tiemQuickList" :key="index">{{item.name}}</view>
  74. </view>
  75. <view class="scope">
  76. <view class="scope_l">检查类型</view>
  77. <picker @change="categoryChange" :value="categoryIndex" :range="categoryArray" class="scope_r">
  78. <view class="scope_r_n">
  79. <view>{{form.checkCategory==1?'综合检查':(form.checkCategory==2?'专项检查':'请选择检查类型')}}</view>
  80. <img src="@/pages_safetyExamine/images/icon_06.png">
  81. </view>
  82. </picker>
  83. </view>
  84. <view class="content" v-if="form.checkCategory==2">
  85. <view class="content_l">检查内容</view>
  86. <view class="content_r">
  87. <view class="content_r_l" @click="clickContent()">选择检查内容</view>
  88. <view class="content_r_r">已选择<text>{{form.hazardNum}}</text>种</view>
  89. </view>
  90. </view>
  91. <view class="scope">
  92. <view class="scope_l">检查范围</view>
  93. <picker @change="scopeChange" :value="scopeIndex" :range="scopeArray" class="scope_r">
  94. <view class="scope_r_n">
  95. <view>{{scopeArray[scopeIndex]}}</view>
  96. <img src="@/pages_safetyExamine/images/icon_06.png">
  97. </view>
  98. </picker>
  99. </view>
  100. <view class="scope_btn" v-if="scopeIndex==1 || scopeIndex==2" @click="collegeOrLab()">
  101. {{scopeIndex==1?'选择学院':'选择实验室'}}</view>
  102. <view class="scope_text" v-if="scopeIndex==0 || scopeIndex==1">
  103. 已选择<text>{{form.collegeNum}}</text>个学院,共<text>{{form.subjectNum}}</text>间实验室</view>
  104. <view class="scope_text" v-if="scopeIndex==2">已选择<text>{{form.subjectNum}}</text>间实验室</view>
  105. <view class="title">
  106. <view class="title_t">检查要求</view>
  107. <textarea class="title_b" type="text" v-model="form.checkDemand" maxlength="100"
  108. placeholder="请输入检查要求" placeholder-style="color:#999999;font-size:30rpx;"></textarea>
  109. </view>
  110. </view>
  111. <view class="attachment" v-if="form.uploadDtoList.length>0">
  112. <view class="attachment_t">
  113. <text>材料附件</text>
  114. <text>点击文件标题查看</text>
  115. </view>
  116. <view class="attachment_li" v-for="(item,index) in form.uploadDtoList" :key="index">
  117. <img src="@/pages_safetyExamine/images/icon_djc_wj.png" />
  118. <text @click="attachmentPreview(item)">{{item.fileName}}</text>
  119. <img @click="attachmentDle(item)" class="attachment_li_del"
  120. src="@/pages_safetyExamine/images/icon_fjgk_sc.png" />
  121. </view>
  122. </view>
  123. <view class="patrol_group" v-if="form.checkType==1">
  124. <view class="patrol">
  125. <view class="patrol_l">巡查组</view>
  126. <view class="patrol_r_n" @click="patrolChange">
  127. <view>{{form.checkGroupName?form.checkGroupName:'请选择巡查组'}}</view>
  128. <img src="@/pages_safetyExamine/images/icon_06.png">
  129. </view>
  130. </view>
  131. <view class="list">
  132. <view class="list_title"><img src="@/pages_safetyExamine/images/icon_jcjh_cy.png">成员</view>
  133. <view class="list_header"><text>工号</text><text>姓名</text></view>
  134. <view class="list_li" v-for="(item,index) in form.checkMemberDtoList" :key="index">
  135. <text>{{item.jobNum}}</text><text>{{item.name}}</text></view>
  136. <view class="list_bottom" v-if="form.checkMemberDtoList.length==0">无数据</view>
  137. </view>
  138. </view>
  139. </view>
  140. <view v-if="pageType==1">
  141. <view class="list_three">
  142. <view class="list_three_li" v-for="(item,index) in dataList" :key="index"
  143. @click="handleClick(item,'detail')">
  144. <view class="list_three_li_t">
  145. <view class="list_three_li_t_l">
  146. <img v-if="item.checkRange==1" src="@/pages_safetyExamine/images/icon_xyxc_qx.png" />
  147. <img v-if="item.checkRange==2" src="@/pages_safetyExamine/images/icon_xyxc_xy.png" />
  148. <img v-if="item.checkRange==3" src="@/pages_safetyExamine/images/icon_xyxc_sys.png" />
  149. <text></text>
  150. </view>
  151. <view class="list_three_li_t_c">{{item.subjectName}}{{item.roomNumber?'-'+item.roomNumber:''}}</view>
  152. <view class="list_three_li_t_c2" v-if="item.isOverdue==1">已逾期</view>
  153. <view class="list_three_li_t_r"></view>
  154. </view>
  155. <view class="list_three_li_m">
  156. <view class="list_three_li_m_t">{{item.title}}</view>
  157. <view class="list_three_li_m_b">
  158. <text class="blue_color" v-if="item.manageStatus==0">待检查</text>
  159. <text class="red_color" v-if="item.manageStatus==1">检查中</text>
  160. <text class="green_color" v-if="item.manageStatus==2">已检查</text>
  161. <text>{{item.checkType==1?'校院巡查':'实验室自查'}}-{{item.checkCategory==1?'综合检查':'专项检查'}}</text>
  162. <text>{{item.collegeName}}</text>
  163. </view>
  164. </view>
  165. <view class="list_three_li_b" v-if="item.manageStatus==2">
  166. <img src="@/pages_safetyExamine/images/icon_djcsys.png" />
  167. <text>整改进度:</text>
  168. <text v-if="item.checkResult==0">{{item.rectifySchedule}}</text>
  169. <text v-if="item.checkResult==1">已完成</text>
  170. </view>
  171. </view>
  172. </view>
  173. </view>
  174. </scroll-view>
  175. <view class="bottom_btn" v-if="form.checkStatus==1" @click="submitForm()">保存</view>
  176. <!-- 选择学院-->
  177. <view class="shade" v-if="dialogVisible">
  178. <view class="null-box" @click="dialogClose()"></view>
  179. <view class="shade_n">
  180. <view class="shade_n_title"><text>选择学院</text><text @click="collegeConfirm">确定</text></view>
  181. <view class="shade_n_b">
  182. <view class="shade_n_b_li" v-for="(item,index) in collegeList" :key="index"
  183. @click="collegeSelete(index)">
  184. <text :class="item.type?'color_B':'color_A'">{{item.deptName}}</text>
  185. <img v-if="item.type" src="@/pages_safetyExamine/images/icon_xzwt_xz.png">
  186. </view>
  187. </view>
  188. </view>
  189. </view>
  190. </view>
  191. </template>
  192. <script>
  193. import {
  194. config
  195. } from '@/api/request/config.js'
  196. import {
  197. checkPlanById,
  198. systemDeptDropList,
  199. checkGroupDetail,
  200. getAllSubNum,
  201. checkPlanEdit,
  202. findByCheckPlanId
  203. } from '@/pages_safetyExamine/api/index.js'
  204. export default {
  205. name: "rectifyList",
  206. components: {
  207. },
  208. data() {
  209. return {
  210. id: '',
  211. pageType: 0,
  212. //列表请求参数
  213. getData: {
  214. page: 1,
  215. pageSize: 20,
  216. checkPlanId: '',
  217. deptId: '',
  218. deptName: '',
  219. searchValue: '',
  220. manageStatus: '',
  221. },
  222. inspectState: 0, //检查状态 0 未开始 1进行中
  223. tabText: [],
  224. curTab: 0,
  225. tabTextTow: ['全部', '待检查', '检查中', '已检查'],
  226. curTabTow: 0,
  227. categoryIndex: 0,
  228. categoryArray: ['综合检查', '专项检查'],
  229. form: {
  230. id: '',
  231. title: '',
  232. checkType: '', //1校院巡查 2实验室自查
  233. checkTypeName: '', //1校院巡查 2实验室自查
  234. cycleStartTime: '',
  235. cycleEndTime: '',
  236. checkRange: 0, //检查范围 1全校 2学院 3实验室
  237. checkGroupId: [], //巡查组id
  238. checkLevel: '', //巡查组层级
  239. checkMemberDtoList: [], //巡查组成员
  240. collegeIds: '', //学院id组
  241. collegeNum: 0, //学院数量
  242. subIds: '', //实验室id组
  243. subjectNum: 0, //实验室数量
  244. hazardNum: 0, //检查设备数量
  245. checkStatus: 0, //检查状态
  246. checkSchedule: '', //检查进度
  247. checkDemand: '', //检查要求
  248. tiemQuickList: [],
  249. scopeIndex: '',
  250. seleteListLab: [],
  251. seleteListDevice: [],
  252. seleteListMember: [],
  253. uploadDtoList: [],
  254. checkCategory: '', //检查类型
  255. },
  256. tiemQuickList: [{
  257. name: '本月',
  258. type: false
  259. }, {
  260. name: '本季度',
  261. type: false
  262. }, {
  263. name: '全年',
  264. type: false
  265. }],
  266. scopeIndex: 0,
  267. scopeArray: ['全校', '学院', '实验室'],
  268. dialogVisible: false,
  269. collegeList: [],
  270. collegeIndex: 0,
  271. collegeArray: [],
  272. dataList: [],
  273. }
  274. },
  275. onLoad(option) {
  276. if (option.id) {
  277. this.id = option.id
  278. this.getData.checkPlanId = option.id
  279. this.checkPlanById()
  280. } else {
  281. this.id = this.form.id
  282. this.getData.checkPlanId = this.form.id
  283. }
  284. console.log(this.form.checkType)
  285. },
  286. onShow(form) {
  287. if (form) {
  288. this.form = JSON.parse(decodeURIComponent(form));
  289. this.tiemQuickList = this.form.tiemQuickList //时间快捷
  290. this.scopeIndex = this.form.scopeIndex //检查范围
  291. }
  292. },
  293. mounted() {
  294. this.conditionCollegeInfo();
  295. this.getList();
  296. },
  297. methods: {
  298. //顶部tab点击
  299. tabClick(index) {
  300. this.curTab = index;
  301. this.pageType = index;
  302. },
  303. //顶部tab点击
  304. tabClickTow(index) {
  305. this.curTabTow = index;
  306. if (index == 0) {
  307. this.getData.manageStatus = ''
  308. } else if (index == 1) { //待检查
  309. this.getData.manageStatus = 0;
  310. } else if (index == 2) { //检查中
  311. this.getData.manageStatus = 1;
  312. } else if (index == 3) { //已检查
  313. this.getData.manageStatus = 2;
  314. }
  315. this.getData.page = 1;
  316. this.dataList = [];
  317. this.getList()
  318. },
  319. //删除附件
  320. attachmentDle(item) {
  321. this.form.uploadDtoList.splice(this.form.uploadDtoList.indexOf(item), 1);
  322. },
  323. attachmentPreview(item) {
  324. uni.showLoading({
  325. title: '下载中'
  326. });
  327. wx.downloadFile({
  328. url: config.base_url + item.fileUrl,
  329. header: {
  330. Authorization: uni.getStorageSync('token')
  331. },
  332. success: function(res) {
  333. uni.hideLoading();
  334. const filePath = res.tempFilePath
  335. wx.openDocument({
  336. filePath: filePath,
  337. success: function(res) {
  338. console.log('打开文档成功')
  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. collegeChange(e) {
  355. this.collegeIndex = e.target.value;
  356. this.getData.deptId = this.collegeList[e.target.value].deptId
  357. this.getData.deptName = this.collegeList[e.target.value].deptName
  358. this.dataList = [];
  359. this.getList();
  360. },
  361. //实验室搜索
  362. searchBtn() {
  363. this.dataList = [];
  364. this.getList();
  365. },
  366. //清除
  367. clearBtn() {
  368. this.getData.page = 1;
  369. this.collegeIndex = 0;
  370. this.getData.deptId = '';
  371. this.getData.deptName = '';
  372. this.getData.searchValue = '';
  373. this.dataList = [];
  374. this.getList();
  375. },
  376. //滚动事件
  377. scrollGet() {
  378. let self = this;
  379. if (this.pageType == 1) { //当页面切换到检查管理列表里的时候
  380. if (self.total / self.getData.pageSize <= self.getData.page) {
  381. console.log('没有更多数据!')
  382. } else {
  383. setTimeout(function() {
  384. self.getData.page += 1;
  385. self.getList();
  386. }, 1000)
  387. }
  388. }
  389. },
  390. //开始时间选中事件
  391. startChange(form, e) {
  392. if (new Date(e.target.value).getTime() > new Date(form.cycleEndTime).getTime()) {
  393. uni.showToast({
  394. title: '结束时间不能小于开始时间',
  395. icon: "none",
  396. mask: true,
  397. duration: 2000
  398. });
  399. } else {
  400. form.cycleStartTime = e.target.value
  401. this.tiemQuickList.forEach(function(item) {
  402. item.type = false;
  403. })
  404. }
  405. },
  406. //结束时间选中事件
  407. endChange(form, e) {
  408. if (new Date(form.cycleStartTime).getTime() > new Date(e.target.value).getTime()) {
  409. uni.showToast({
  410. title: '结束时间不能小于开始时间',
  411. icon: "none",
  412. mask: true,
  413. duration: 2000
  414. });
  415. } else {
  416. form.cycleEndTime = e.target.value
  417. this.tiemQuickList.forEach(function(item) {
  418. item.type = false;
  419. })
  420. }
  421. },
  422. //检查周期快捷
  423. tiemQuick(index) {
  424. this.tiemQuickList[index].type = !this.tiemQuickList[index].type
  425. let self = this;
  426. if (self.tiemQuickList[index].type == true) {
  427. self.tiemQuickList.forEach(function(item2) {
  428. if (item2.name == self.tiemQuickList[index].name) {
  429. item2.type = true
  430. } else {
  431. item2.type = false
  432. }
  433. })
  434. //快捷本月-本季度-全年
  435. self.timeSlotChange(self.tiemQuickList[index].name)
  436. } else {
  437. console.log('取消选中')
  438. self.form.cycleStartTime = '';
  439. self.form.cycleEndTime = '';
  440. }
  441. },
  442. //检查类型
  443. categoryChange(e) {
  444. let self = this;
  445. if (e.target.value == 0) {
  446. this.form.checkCategory = 1
  447. } else if (e.target.value == 1) {
  448. this.form.checkCategory = 2
  449. }
  450. },
  451. //检查内容
  452. clickContent() {
  453. this.form.tiemQuickList = this.tiemQuickList //检查周期快捷存储
  454. this.form.scopeIndex = this.scopeIndex //检查范围
  455. uni.redirectTo({
  456. url: '/pages_safetyExamine/patrolPlan/patrolPlanAddContent?form=' + encodeURIComponent(JSON
  457. .stringify(this.form)) + '&pageType=1'
  458. });
  459. },
  460. //检查范围
  461. scopeChange(e) {
  462. let self = this;
  463. uni.showModal({
  464. content: '重新选择会删除现有选择的实验室,是否重选?',
  465. cancelColor: "#999",
  466. confirmColor: "#0183FA",
  467. success: function(res) {
  468. if (res.confirm) {
  469. self.scopeIndex = e.target.value;
  470. self.form.checkRange = Number(e.target.value) + 1; //检查范围
  471. self.form.collegeIds = '';
  472. self.form.collegeNum = 0;
  473. self.form.subIds = '';
  474. self.form.subjectNum = 0;
  475. if (e.target.value == 1) { //选择学院
  476. self.conditionCollegeInfo();
  477. } else if (e.target.value == 0) { //全校
  478. self.getAllSubNum();
  479. }
  480. } else if (res.cancel) {
  481. }
  482. }
  483. });
  484. },
  485. timeSlotChange(val) {
  486. let self = this;
  487. let cycleStartTime, cycleEndTime;
  488. let now = new Date(); //当前日期
  489. let nowDayOfWeek = now.getDay(); //今天本周的第几天
  490. let nowDay = now.getDate(); //当前日
  491. let nowMonth = now.getMonth(); //当前月
  492. let nowYear = now.getFullYear(); //当前年
  493. let jd = Math.ceil((nowMonth + 1) / 3)
  494. switch (val) {
  495. case "本周":
  496. cycleStartTime = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek)
  497. cycleEndTime = new Date(nowYear, nowMonth, nowDay + 6 - nowDayOfWeek)
  498. break;
  499. case "本月":
  500. cycleStartTime = new Date(nowYear, nowMonth, 1)
  501. cycleEndTime = new Date(nowYear, nowMonth + 1, 0)
  502. break;
  503. case "本季度":
  504. cycleStartTime = new Date(nowYear, (jd - 1) * 3, 1)
  505. cycleEndTime = new Date(nowYear, jd * 3, 0)
  506. break
  507. case "全年":
  508. cycleStartTime = new Date(nowYear, 0, 1)
  509. cycleEndTime = new Date(nowYear, 11, 31)
  510. break
  511. }
  512. self.form.cycleStartTime = self.formatDateTime(cycleStartTime)
  513. self.form.cycleEndTime = self.formatDateTime(cycleEndTime)
  514. },
  515. // 中国标准时间 转换成 年月日
  516. formatDateTime(date) {
  517. var y = date.getFullYear();
  518. var m = date.getMonth() + 1;
  519. m = m < 10 ? ('0' + m) : m;
  520. var d = date.getDate();
  521. d = d < 10 ? ('0' + d) : d;
  522. var h = date.getHours();
  523. var minute = date.getMinutes();
  524. minute = minute < 10 ? ('0' + minute) : minute;
  525. // return y + '-' + m + '-' + d+' '+h+':'+minute;
  526. return y + '-' + m + '-' + d
  527. },
  528. //巡查组
  529. patrolChange() {
  530. this.form.tiemQuickList = this.tiemQuickList //检查周期快捷存储
  531. this.form.scopeIndex = this.scopeIndex //检查范围
  532. uni.navigateTo({
  533. url: '/pages_safetyExamine/views/patrolPlan/patrolPlanAddMember?form=' + encodeURIComponent(
  534. JSON.stringify(this.form)) + '&pageType=2'
  535. });
  536. },
  537. //选择学院或者实验室
  538. collegeOrLab() {
  539. console.log(this.scopeIndex)
  540. if (this.scopeIndex == 1) { //学院
  541. this.dialogVisible = true;
  542. } else if (this.scopeIndex == 2) { //实验室
  543. this.form.tiemQuickList = this.tiemQuickList //检查周期快捷存储
  544. this.form.scopeIndex = this.scopeIndex //检查范围
  545. uni.navigateTo({
  546. url: '/pages_safetyExamine/views/patrolPlan/patrolPlanAddLab?form=' + encodeURIComponent(
  547. JSON.stringify(this.form)) + '&pageType=2'
  548. });
  549. }
  550. },
  551. //选择学院弹窗关闭
  552. dialogClose() {
  553. this.dialogVisible = false;
  554. },
  555. //选择学院确定
  556. collegeConfirm() {
  557. let self = this;
  558. this.dialogVisible = false;
  559. let list = [];
  560. let collegeIds = [];
  561. let subjectNum = 0;
  562. self.collegeList.forEach(function(item) {
  563. if (item.type == true) {
  564. list.push(item)
  565. collegeIds.push(item.deptId);
  566. subjectNum += item.subNum;
  567. }
  568. })
  569. self.form.collegeIds = collegeIds.join(',');
  570. self.form.subjectNum = subjectNum;
  571. self.form.collegeNum = list.length;
  572. },
  573. //学院选择
  574. collegeSelete(index) {
  575. this.collegeList[index].type = !this.collegeList[index].type
  576. },
  577. //查询学院列表
  578. async conditionCollegeInfo() {
  579. let self = this;
  580. const {
  581. data
  582. } = await systemDeptDropList({
  583. deptName: '',
  584. level: 2,
  585. deptType: 1
  586. });
  587. if (data.code == 200) {
  588. data.data.forEach(function(item) {
  589. item.type = false;
  590. })
  591. self.collegeList = data.data;
  592. //检查管理
  593. for (let i = 0; i < data.data.length; i++) {
  594. self.collegeArray.push(data.data[i].deptName)
  595. }
  596. }
  597. },
  598. //查询全校学院和实验室数量
  599. async getAllSubNum() {
  600. let self = this;
  601. const {
  602. data
  603. } = await getAllSubNum();
  604. if (data.code == 200) {
  605. this.form.collegeNum = data.data.collegeCount
  606. this.form.subjectNum = data.data.subCount
  607. }
  608. },
  609. //查询详情
  610. async checkPlanById(id) {
  611. console.log('详情')
  612. let self = this;
  613. const {
  614. data
  615. } = await checkPlanById({
  616. id: this.id
  617. });
  618. if (data.code == 200) {
  619. this.form.id = data.data.id;
  620. this.form.title = data.data.title;
  621. this.form.checkType = data.data.checkType;
  622. this.form.checkTypeName = data.data.checkType == 1 ? '校院巡查' : '实验室自查';
  623. this.form.cycleStartTime = data.data.cycleStartTime;
  624. this.form.cycleEndTime = data.data.cycleEndTime;
  625. this.form.checkRange = data.data.checkRange;
  626. this.form.checkGroupId = data.data.checkGroupId;
  627. this.form.collegeIds = data.data.collegeIds;
  628. this.form.collegeNum = data.data.collegeNum;
  629. this.form.subIds = data.data.subIds;
  630. this.form.subjectNum = data.data.subjectNum;
  631. this.form.uploadDtoList = data.data.uploadDtoList;
  632. this.form.checkStatus = data.data.checkStatus;
  633. this.form.checkSchedule = data.data.checkSchedule;
  634. this.form.checkDemand = data.data.checkDemand;
  635. this.form.checkCategory = data.data.checkCategory;
  636. this.form.hazardNum = data.data.hazardNum;
  637. this.form.hazardIds = data.data.hazardIds;
  638. this.scopeIndex = Number(data.data.checkRange) - 1; //检查范围
  639. this.$set(this.form, 'checkMemberDtoList', data.data.checkMemberDtoList)
  640. //this.$set(this.form,'checkGroupName',data.data.groupName)
  641. // if(data.data.checkGroupId){//判断如果有巡查组id
  642. // this.checkGroupDetail(data.data.checkGroupId);
  643. // }
  644. if (this.form.checkType == 1) { //校院巡查
  645. this.tabText = ['检查计划', '检查管理']
  646. uni.setNavigationBarTitle({
  647. title: '计划详情'
  648. });
  649. } else if (this.form.checkType == 2) { //实验室自查
  650. this.tabText = ['自查任务', '检查管理']
  651. uni.setNavigationBarTitle({
  652. title: '任务详情'
  653. });
  654. }
  655. }
  656. },
  657. //根据id查询巡查组员
  658. async checkGroupDetail(id) {
  659. let self = this;
  660. const {
  661. data
  662. } = await checkGroupDetail({
  663. id: id,
  664. selectEnable: '1'
  665. });
  666. if (data.code == 200) {
  667. }
  668. },
  669. handleClick(item, doType) {
  670. let self = this;
  671. if (doType == 'subBtn') {
  672. } else if (doType == 'detail') { //详情
  673. if (item.manageStatus == 1) { //检查中
  674. if (item.isSelfData == 1) {
  675. uni.navigateTo({
  676. url: '/pages_safetyExamine/views/examineManage/examineAdd?id=' + item.id
  677. });
  678. } else {
  679. uni.showToast({
  680. title: '当前用户暂无操作数据权限!',
  681. icon: "none",
  682. mask: true,
  683. duration: 2000
  684. });
  685. }
  686. } else {
  687. uni.navigateTo({
  688. url: '/pages_safetyExamine/views/examineManage/examineDetail?id=' + item.id +
  689. '&manageStatus=' + item.manageStatus + '&isSelfData=' + item.isSelfData +
  690. '&isEndProcess=' + item.isEndProcess
  691. });
  692. }
  693. }
  694. },
  695. //巡查计划-修改
  696. async submitForm() {
  697. let self = this;
  698. const {
  699. data
  700. } = await checkPlanEdit(self.form);
  701. if (data.code == 200) {
  702. uni.showToast({
  703. title: '提交成功',
  704. icon: "none",
  705. mask: true,
  706. duration: 2000
  707. });
  708. uni.redirectTo({
  709. url: '/pages_safetyExamine/patrolPlan/patrolPlanList?pageType=' + this.form.checkType
  710. });
  711. }
  712. },
  713. async getList() {
  714. let self = this;
  715. const {
  716. data
  717. } = await findByCheckPlanId(this.getData);
  718. if (data.code == 200) {
  719. this.total = data.data.total;
  720. this.dataList = [...this.dataList, ...data.data.records]
  721. }
  722. },
  723. }
  724. }
  725. </script>
  726. <style lang="stylus" scoped>
  727. .examine {
  728. height: 100%;
  729. display flex;
  730. // padding: 0 30rpx;
  731. // box-sizing: border-box;
  732. padding-bottom: 126rpx;
  733. box-sizing: border-box;
  734. .blue_color {
  735. color: #0183FA;
  736. border: 1rpx solid #0183FA;
  737. }
  738. .red_color {
  739. color: #FF4545;
  740. border: 1rpx solid #FF4545;
  741. }
  742. .green_color {
  743. color: #1FA50D;
  744. border: 1rpx solid #1FA50D;
  745. }
  746. /* 切换按钮 */
  747. .tabTitle {
  748. width: 100%;
  749. height: 100rpx;
  750. background: #fff;
  751. display flex;
  752. justify-content: center;
  753. align-items: center;
  754. position: fixed;
  755. top: 0;
  756. z-index: 100;
  757. box-shadow: 0rpx 3rpx 8rpx 0rpx rgba(0, 0, 0, 0.16);
  758. .tabTitle_li {
  759. position: relative;
  760. width: 372rpx;
  761. text-align center;
  762. .tabTitle_text {
  763. display: inline-block;
  764. font-size: 30rpx;
  765. font-family: PingFang SC;
  766. font-weight: 500;
  767. color: #333333;
  768. line-height: 46rpx;
  769. position: relative;
  770. >text {
  771. position: absolute;
  772. min-width: 30rpx;
  773. min-height: 30rpx;
  774. border-radius: 54%;
  775. background: #E80000;
  776. font-size: 18rpx;
  777. font-family: PingFang SC-Medium, PingFang SC;
  778. font-weight: 400;
  779. color: #FFFFFF;
  780. text-align: center;
  781. line-height: 30rpx;
  782. margin-left: 6rpx;
  783. padding: 2rpx;
  784. box-sizing: border-box;
  785. }
  786. &.on {
  787. color: #0183FA;
  788. }
  789. }
  790. .tabTitle_across {
  791. width: 50rpx;
  792. height: 4rpx;
  793. background: #0183FA;
  794. border-radius: 2rpx;
  795. margin-left 162rpx;
  796. display none;
  797. &.on {
  798. display block;
  799. }
  800. }
  801. }
  802. .tabTitle_li:nth-of-type(1)::after {
  803. content: '';
  804. position: absolute;
  805. top: 0rpx;
  806. right: 0rpx;
  807. width: 1rpx;
  808. height: 50rpx;
  809. background: #E0E0E0;
  810. }
  811. }
  812. .info-max-box {
  813. flex: 1;
  814. overflow: scroll;
  815. padding: 120rpx 0rpx 0;
  816. box-sizing: border-box;
  817. }
  818. /* 检查计划---------------------------------------------------------------------------------- */
  819. .delay_inspect {
  820. width: 690rpx;
  821. height: 100rpx;
  822. background: #FFFFFF;
  823. border-radius: 20rpx;
  824. display: flex;
  825. justify-content: space-between;
  826. align-items: center;
  827. padding: 0 30rpx;
  828. box-sizing: border-box;
  829. .delay_inspect_l {
  830. font-size: 28rpx;
  831. font-family: PingFang SC-Medium, PingFang SC;
  832. font-weight: 400;
  833. color: #333333;
  834. line-height: 100rpx;
  835. >text {
  836. color: #0183FA;
  837. }
  838. }
  839. .delay_inspect_r {
  840. font-size: 26rpx;
  841. font-family: PingFang SC-Medium, PingFang SC;
  842. font-weight: 400;
  843. color: #0183FA;
  844. line-height: 40rpx;
  845. width: 120rpx;
  846. height: 40rpx;
  847. border-radius: 6rpx;
  848. text-align: center;
  849. border: 1rpx solid #0183FA;
  850. }
  851. .delay_inspect_r_tow {
  852. font-size: 26rpx;
  853. font-family: PingFang SC-Medium, PingFang SC;
  854. font-weight: 400;
  855. color: #FF4545;
  856. line-height: 40rpx;
  857. width: 120rpx;
  858. height: 40rpx;
  859. border-radius: 6rpx;
  860. text-align: center;
  861. border: 1rpx solid rgba(255, 69, 69, 0.898);
  862. }
  863. }
  864. .basics {
  865. width: 690rpx;
  866. background: #FFFFFF;
  867. border-radius: 20rpx;
  868. margin-top: 20rpx;
  869. padding: 60rpx 26rpx 32rpx;
  870. box-sizing: border-box;
  871. .title {
  872. .title_t {
  873. font-size: 30rpx;
  874. font-family: PingFang SC-Medium, PingFang SC;
  875. font-weight: 400;
  876. color: #333333;
  877. line-height: 42rpx;
  878. margin-bottom: 12rpx;
  879. }
  880. .title_b {
  881. width: 636rpx;
  882. height: 150rpx;
  883. border-radius: 10rpx;
  884. opacity: 1;
  885. border: 1rpx solid #E0E0E0;
  886. padding: 26rpx 23rpx;
  887. box-sizing: border-box;
  888. }
  889. }
  890. .type {
  891. display: flex;
  892. justify-content: flex-start;
  893. align-items: center;
  894. margin-top: 20rpx;
  895. .type_l {
  896. width: 146rpx;
  897. font-size: 30rpx;
  898. font-family: PingFang SC-Medium, PingFang SC;
  899. font-weight: 400;
  900. color: #333333;
  901. line-height: 42rpx;
  902. text-align: left;
  903. }
  904. .type_r {
  905. width: 490rpx;
  906. height: 80rpx;
  907. border-radius: 10rpx;
  908. padding-left: 22rpx;
  909. box-sizing: border-box;
  910. background: #F5F5F5;
  911. }
  912. }
  913. .period {
  914. display: flex;
  915. justify-content: flex-start;
  916. align-items: center;
  917. margin-top: 26rpx;
  918. .period_l {
  919. width: 146rpx;
  920. font-size: 30rpx;
  921. font-family: PingFang SC-Medium, PingFang SC;
  922. font-weight: 400;
  923. color: #333333;
  924. line-height: 42rpx;
  925. text-align: left;
  926. }
  927. .period_r {
  928. width: 490rpx;
  929. height: 80rpx;
  930. border-radius: 10rpx;
  931. border: 1rpx solid #E0E0E0;
  932. display: flex;
  933. justify-content: flex-start;
  934. align-items: center;
  935. .picker-text {
  936. font-size: 30rpx;
  937. font-family: PingFang SC-Medium, PingFang SC;
  938. font-weight: 400;
  939. color: #999999;
  940. line-height: 80rpx;
  941. width: 230rpx;
  942. text-align: center;
  943. }
  944. .picker-text2 {
  945. font-size: 30rpx;
  946. font-family: PingFang SC-Medium, PingFang SC;
  947. font-weight: 400;
  948. color: #999999;
  949. line-height: 80rpx;
  950. width: 230rpx;
  951. text-align: center;
  952. }
  953. }
  954. }
  955. .tiem_quick {
  956. margin-left: 146rpx;
  957. display: flex;
  958. justify-content: flex-start;
  959. margin-top: 20rpx;
  960. >view {
  961. width: 130rpx;
  962. height: 80rpx;
  963. opacity: 1;
  964. border: 1rpx solid #E0E0E0;
  965. font-size: 30rpx;
  966. font-family: PingFang SC-Medium, PingFang SC;
  967. font-weight: 400;
  968. line-height: 80rpx;
  969. text-align: center;
  970. }
  971. >view:nth-of-type(1) {
  972. border-radius: 10rpx 0rpx 0rpx 10rpx;
  973. }
  974. >view:nth-of-type(3) {
  975. border-radius: 0rpx 10rpx 10rpx 0rpx;
  976. }
  977. .tiem_quick_a {
  978. background: #0183FA;
  979. color: #FFFFFF;
  980. }
  981. .tiem_quick_b {
  982. background: #F5F5F5;
  983. color: #333333;
  984. }
  985. }
  986. .scope {
  987. display: flex;
  988. justify-content: flex-start;
  989. align-items: center;
  990. margin-top: 26rpx;
  991. .scope_l {
  992. width: 146rpx;
  993. font-size: 30rpx;
  994. font-family: PingFang SC-Medium, PingFang SC;
  995. font-weight: 400;
  996. color: #333333;
  997. line-height: 42rpx;
  998. text-align: left;
  999. }
  1000. .scope_r {
  1001. flex: 1;
  1002. .scope_r_n {
  1003. width: 490rpx;
  1004. height: 80rpx;
  1005. border-radius: 10rpx;
  1006. border: 1rpx solid #E0E0E0;
  1007. display: flex;
  1008. justify-content: flex-start;
  1009. align-items: center;
  1010. >view {
  1011. flex: 1;
  1012. line-height: 80rpx;
  1013. margin-left: 20rpx;
  1014. color: #999999;
  1015. font-size: 28rpx;
  1016. }
  1017. >img {
  1018. width: 14rpx;
  1019. height: 8rpx;
  1020. margin-right: 30rpx;
  1021. }
  1022. }
  1023. }
  1024. }
  1025. .content {
  1026. display: flex;
  1027. justify-content: flex-start;
  1028. align-items: center;
  1029. margin-top: 26rpx;
  1030. .content_l {
  1031. width: 146rpx;
  1032. font-size: 30rpx;
  1033. font-family: PingFang SC-Medium, PingFang SC;
  1034. font-weight: 400;
  1035. color: #333333;
  1036. line-height: 42rpx;
  1037. text-align: left;
  1038. }
  1039. .content_r {
  1040. flex: 1;
  1041. display: flex;
  1042. justify-content: flex-start;
  1043. align-items: center;
  1044. .content_r_l {
  1045. width: 220rpx;
  1046. height: 80rpx;
  1047. background: #0183FA;
  1048. border-radius: 10rpx 10rpx 10rpx 10rpx;
  1049. text-align: center;
  1050. font-size: 30rpx;
  1051. font-family: PingFang SC-Medium, PingFang SC;
  1052. font-weight: 400;
  1053. color: #FFFFFF;
  1054. line-height: 80rpx;
  1055. margin-right: 26rpx;
  1056. }
  1057. .content_r_r {
  1058. font-size: 30rpx;
  1059. font-family: PingFang SC-Medium, PingFang SC;
  1060. font-weight: 400;
  1061. color: #333333;
  1062. line-height: 42rpx;
  1063. >text {
  1064. color: #0183FA;
  1065. }
  1066. }
  1067. }
  1068. }
  1069. .scope_btn {
  1070. display: inline-block;
  1071. background: #0183FA;
  1072. border-radius: 10rpx;
  1073. font-size: 30rpx;
  1074. font-family: PingFang SC-Medium, PingFang SC;
  1075. font-weight: 400;
  1076. color: #FFFFFF;
  1077. line-height: 80rpx;
  1078. text-align: center;
  1079. padding: 0 16rpx;
  1080. box-sizing: border-box;
  1081. margin-top: 40rpx;
  1082. margin-left: 146rpx;
  1083. }
  1084. .scope_text {
  1085. margin-left: 146rpx;
  1086. font-size: 30rpx;
  1087. font-family: PingFang SC-Medium, PingFang SC;
  1088. font-weight: 400;
  1089. color: #333333;
  1090. margin-top: 32rpx;
  1091. line-height: 42rpx;
  1092. >text {
  1093. color: #0183FA;
  1094. }
  1095. }
  1096. }
  1097. .attachment {
  1098. width: 690rpx;
  1099. background: #FFFFFF;
  1100. border-radius: 20rpx;
  1101. margin-top: 20rpx;
  1102. padding-bottom: 32rpx;
  1103. box-sizing: border-box;
  1104. .attachment_t {
  1105. border-bottom: 1rpx solid #D8D8D8;
  1106. >text:nth-of-type(1) {
  1107. font-size: 30rpx;
  1108. font-family: PingFang SC-Medium, PingFang SC;
  1109. font-weight: 400;
  1110. color: #333333;
  1111. line-height: 110rpx;
  1112. margin-left: 28rpx;
  1113. }
  1114. >text:nth-of-type(2) {
  1115. font-size: 30rpx;
  1116. font-family: PingFang SC-Medium, PingFang SC;
  1117. font-weight: 400;
  1118. color: #999999;
  1119. line-height: 110rpx;
  1120. margin-left: 24rpx;
  1121. }
  1122. }
  1123. .attachment_li {
  1124. height: 40rpx;
  1125. display: flex;
  1126. justify-content: flex-start;
  1127. align-items: center;
  1128. margin-top: 32rpx;
  1129. >img {
  1130. width: 30rpx;
  1131. height: 26rpx;
  1132. margin-right: 20rpx;
  1133. margin-left: 50rpx;
  1134. }
  1135. >text {
  1136. flex: 1;
  1137. font-size: 28rpx;
  1138. font-family: PingFang SC-Medium, PingFang SC;
  1139. font-weight: 400;
  1140. color: #0183FA;
  1141. line-height: 40rpx;
  1142. white-space: nowrap;
  1143. overflow: hidden;
  1144. text-overflow: ellipsis;
  1145. }
  1146. .attachment_li_del {
  1147. width: 30rpx;
  1148. height: 30rpx;
  1149. }
  1150. }
  1151. }
  1152. .patrol_group {
  1153. width: 690rpx;
  1154. background: #FFFFFF;
  1155. border-radius: 20rpx;
  1156. margin-top: 20rpx;
  1157. padding: 40rpx 30rpx 64rpx;
  1158. box-sizing: border-box;
  1159. .patrol {
  1160. display: flex;
  1161. justify-content: flex-start;
  1162. align-items: center;
  1163. margin-top: 26rpx;
  1164. .patrol_l {
  1165. width: 146rpx;
  1166. font-size: 30rpx;
  1167. font-family: PingFang SC-Medium, PingFang SC;
  1168. font-weight: 400;
  1169. color: #333333;
  1170. line-height: 42rpx;
  1171. text-align: left;
  1172. }
  1173. .patrol_r_n {
  1174. width: 490rpx;
  1175. height: 80rpx;
  1176. border-radius: 10rpx;
  1177. border: 1rpx solid #E0E0E0;
  1178. display: flex;
  1179. justify-content: flex-start;
  1180. align-items: center;
  1181. >view {
  1182. flex: 1;
  1183. line-height: 80rpx;
  1184. margin-left: 20rpx;
  1185. color: #999999;
  1186. font-size: 28rpx;
  1187. }
  1188. >img {
  1189. width: 14rpx;
  1190. height: 8rpx;
  1191. margin-right: 30rpx;
  1192. }
  1193. }
  1194. }
  1195. .list {
  1196. margin-top: 42rpx;
  1197. .list_title {
  1198. display: flex;
  1199. justify-content: flex-start;
  1200. align-items: center;
  1201. height: 80rpx;
  1202. background: #F5F5F5;
  1203. border-radius: 10rpx 10rpx 0rpx 0rpx;
  1204. font-size: 30rpx;
  1205. font-family: PingFang SC-Medium, PingFang SC;
  1206. font-weight: 400;
  1207. color: #333333;
  1208. line-height: 80rpx;
  1209. >img {
  1210. width: 30rpx;
  1211. height: 30rpx;
  1212. margin: 0 20rpx;
  1213. }
  1214. }
  1215. .list_header {
  1216. display: flex;
  1217. justify-content: flex-start;
  1218. >text {
  1219. flex: 1;
  1220. height: 80rpx;
  1221. background: #F5F5F5;
  1222. font-size: 30rpx;
  1223. font-family: PingFang SC-Medium, PingFang SC;
  1224. font-weight: 400;
  1225. color: #333333;
  1226. line-height: 80rpx;
  1227. text-align: center;
  1228. border: 1rpx solid #E0E0E0;
  1229. }
  1230. >text:nth-of-type(1) {
  1231. border-right: none;
  1232. }
  1233. }
  1234. .list_li {
  1235. display: flex;
  1236. justify-content: flex-start;
  1237. >text {
  1238. flex: 1;
  1239. height: 80rpx;
  1240. font-size: 30rpx;
  1241. font-family: PingFang SC-Medium, PingFang SC;
  1242. font-weight: 400;
  1243. color: #333333;
  1244. line-height: 80rpx;
  1245. text-align: center;
  1246. border: 1rpx solid #E0E0E0;
  1247. }
  1248. >text:nth-of-type(1) {
  1249. border-right: none;
  1250. border-top: none;
  1251. }
  1252. >text:nth-of-type(2) {
  1253. border-top: none;
  1254. }
  1255. }
  1256. .list_bottom {
  1257. flex: 1;
  1258. height: 80rpx;
  1259. font-size: 30rpx;
  1260. font-family: PingFang SC-Medium, PingFang SC;
  1261. font-weight: 400;
  1262. color: #999999;
  1263. line-height: 80rpx;
  1264. text-align: center;
  1265. border: 1rpx solid #E0E0E0;
  1266. border-top: none;
  1267. }
  1268. }
  1269. }
  1270. /* 检查管理----------------------------------------------------------------------------------- */
  1271. /* 切换按钮 */
  1272. .header {
  1273. width: 100%;
  1274. position: fixed;
  1275. top: 100rpx;
  1276. z-index: 100;
  1277. .line {
  1278. width: 100%;
  1279. height: 20rpx;
  1280. background: #F5F5F5;
  1281. }
  1282. .tabTitle_tow {
  1283. width: 100%;
  1284. height: 100rpx;
  1285. background: #fff;
  1286. display flex;
  1287. justify-content: flex-start;
  1288. align-items: center;
  1289. border-bottom: 1rpx solid #E0E0E0;
  1290. .tabTitle_tow_li {
  1291. position: relative;
  1292. width: 146rpx;
  1293. text-align center;
  1294. .tabTitle_tow_text {
  1295. display: inline-block;
  1296. font-size: 30rpx;
  1297. font-family: PingFang SC;
  1298. font-weight: 500;
  1299. color: #333333;
  1300. line-height: 46rpx;
  1301. position: relative;
  1302. &.on {
  1303. color: #0183FA;
  1304. }
  1305. }
  1306. .tabTitle_tow_across {
  1307. width: 50rpx;
  1308. height: 4rpx;
  1309. background: #0183FA;
  1310. border-radius: 2rpx;
  1311. margin-left: 46rpx;
  1312. display none;
  1313. &.on {
  1314. display block;
  1315. }
  1316. }
  1317. }
  1318. }
  1319. .lab_title {
  1320. width: 750rpx;
  1321. height: 100rpx;
  1322. background: #FFFFFF;
  1323. padding: 20rpx 30rpx;
  1324. box-sizing: border-box;
  1325. display: flex;
  1326. justify-content: flex-start;
  1327. .lab_title_l {
  1328. width: 250rpx;
  1329. height: 60rpx;
  1330. margin-right: 20rpx;
  1331. .lab_title_l_n {
  1332. width: 250rpx;
  1333. height: 60rpx;
  1334. border-radius: 10rpx;
  1335. border: 1rpx solid #E0E0E0;
  1336. display: flex;
  1337. justify-content: flex-start;
  1338. align-items: center;
  1339. >view {
  1340. flex: 1;
  1341. line-height: 60rpx;
  1342. margin-left: 20rpx;
  1343. color: #999999;
  1344. font-size: 28rpx;
  1345. white-space: nowrap;
  1346. overflow: hidden;
  1347. text-overflow: ellipsis;
  1348. }
  1349. >img {
  1350. width: 14rpx;
  1351. height: 8rpx;
  1352. margin-right: 30rpx;
  1353. }
  1354. }
  1355. }
  1356. .lab_title_r {
  1357. width: 420rpx;
  1358. height: 60rpx;
  1359. position: relative;
  1360. border-radius: 10rpx;
  1361. border: 1rpx solid #E0E0E0;
  1362. .lab_title_r_btn {
  1363. width: 60rpx;
  1364. height: 60rpx;
  1365. position: absolute;
  1366. top: 0rpx;
  1367. right: 0rpx;
  1368. >img {
  1369. width: 20rpx;
  1370. height: 20rpx;
  1371. position: absolute;
  1372. top: 20rpx;
  1373. left: 24rpx;
  1374. }
  1375. }
  1376. >input {
  1377. width: 274rpx;
  1378. height: 60rpx;
  1379. position: absolute;
  1380. top: 0rpx;
  1381. left: 60rpx;
  1382. }
  1383. .clear {
  1384. width: 60rpx;
  1385. height: 60rpx;
  1386. position: absolute;
  1387. top: 0rpx;
  1388. right: 20rpx;
  1389. font-size: 30rpx;
  1390. font-family: PingFang SC-Medium, PingFang SC;
  1391. font-weight: 400;
  1392. color: #0183FA;
  1393. line-height: 60rpx;
  1394. }
  1395. }
  1396. }
  1397. }
  1398. .list_three {
  1399. padding: 0 30rpx;
  1400. box-sizing: border-box;
  1401. margin-top: 240rpx;
  1402. .list_three_li {
  1403. position: relative;
  1404. width: 690rpx;
  1405. height: auto;
  1406. background: #fff;
  1407. border-radius: 10rpx;
  1408. overflow: hidden;
  1409. margin-bottom: 20rpx;
  1410. .list_three_li_t {
  1411. width: 100%;
  1412. position: absolute;
  1413. left: 0;
  1414. top: 0;
  1415. .list_three_li_t_l {
  1416. >img {
  1417. width: 70rpx;
  1418. height: 70rpx;
  1419. }
  1420. >text {
  1421. position: absolute;
  1422. left: -15rpx;
  1423. top: 76rpx;
  1424. display: inline-block;
  1425. width: 30rpx;
  1426. height: 30rpx;
  1427. background: #F5F5F5;
  1428. border-radius: 15rpx;
  1429. }
  1430. }
  1431. .list_three_li_t_c {
  1432. width: 630rpx;
  1433. height: 110rpx;
  1434. position: absolute;
  1435. left: 30rpx;
  1436. top: 0;
  1437. font-size: 30rpx;
  1438. font-family: PingFang SC-Medium, PingFang SC;
  1439. font-weight: 400;
  1440. color: #333333;
  1441. line-height: 110rpx;
  1442. border-bottom: 1rpx dashed #D8D8D8;
  1443. overflow: hidden;
  1444. text-overflow: ellipsis;
  1445. white-space: nowrap;
  1446. padding-right: 120rpx;
  1447. box-sizing: border-box;
  1448. }
  1449. .list_three_li_t_c2 {
  1450. position: absolute;
  1451. right: 20rpx;
  1452. top: 38rpx;
  1453. width: 120rpx;
  1454. height: 40rpx;
  1455. font-size: 28rpx;
  1456. font-family: PingFang SC-Medium, PingFang SC;
  1457. font-weight: 400;
  1458. color: #FF5757;
  1459. line-height: 40rpx;
  1460. border: 1rpx solid #FF5757;
  1461. border-radius: 6rpx;
  1462. text-align: center;
  1463. }
  1464. .list_three_li_t_r {
  1465. position: absolute;
  1466. right: -15rpx;
  1467. top: 76rpx;
  1468. width: 30rpx;
  1469. height: 30rpx;
  1470. background: #F5F5F5;
  1471. border-radius: 15rpx;
  1472. }
  1473. }
  1474. .list_three_li_m {
  1475. // position: absolute;
  1476. // top: 110rpx;
  1477. // left: 0;
  1478. width: 690rpx;
  1479. height: 158rpx;
  1480. padding-left: 30rpx;
  1481. box-sizing: border-box;
  1482. margin-top: 110rpx;
  1483. overflow: hidden;
  1484. .list_three_li_m_t {
  1485. font-size: 28rpx;
  1486. font-family: PingFang SC-Medium, PingFang SC;
  1487. font-weight: 400;
  1488. color: #666666;
  1489. line-height: 40rpx;
  1490. margin-top: 22rpx;
  1491. }
  1492. .list_three_li_m_b {
  1493. margin-top: 26rpx;
  1494. display: flex;
  1495. justify-content: flex-start;
  1496. >text:nth-of-type(1) {
  1497. font-size: 26rpx;
  1498. font-family: PingFang SC-Medium, PingFang SC;
  1499. font-weight: 400;
  1500. line-height: 40rpx;
  1501. border-radius: 6rpx;
  1502. padding: 0 20rpx;
  1503. margin-right: 14rpx;
  1504. }
  1505. >text:nth-of-type(2) {
  1506. font-size: 26rpx;
  1507. font-family: PingFang SC-Medium, PingFang SC;
  1508. font-weight: 400;
  1509. color: #0183FA;
  1510. line-height: 40rpx;
  1511. padding: 0 8rpx;
  1512. border-radius: 6rpx;
  1513. background: rgba(1, 131, 250, 0.1);
  1514. margin-right: 24rpx;
  1515. }
  1516. >text:nth-of-type(3) {
  1517. display: inline-block;
  1518. width: 200rpx;
  1519. font-size: 26rpx;
  1520. font-family: PingFang SC-Medium, PingFang SC;
  1521. font-weight: 400;
  1522. color: #333333;
  1523. line-height: 26rpx;
  1524. overflow: hidden;
  1525. text-overflow: ellipsis;
  1526. white-space: nowrap;
  1527. }
  1528. }
  1529. }
  1530. .list_three_li_b {
  1531. height: 80rpx;
  1532. width: 100%;
  1533. // position: absolute;
  1534. // top: 278rpx;
  1535. // left: 0;
  1536. display: flex;
  1537. justify-content: flex-start;
  1538. align-items: center;
  1539. border-top: 1rpx solid #E0E0E0;
  1540. >img {
  1541. width: 24rpx;
  1542. height: 30rpx;
  1543. margin-right: 26rpx;
  1544. margin-left: 30rpx;
  1545. }
  1546. >text:nth-of-type(1) {
  1547. font-size: 28rpx;
  1548. font-family: PingFang SC-Medium, PingFang SC;
  1549. font-weight: 400;
  1550. color: #333333;
  1551. line-height: 28rpx;
  1552. }
  1553. >text:nth-of-type(2) {
  1554. flex: 1;
  1555. font-size: 28rpx;
  1556. font-family: PingFang SC-Medium, PingFang SC;
  1557. font-weight: 400;
  1558. color: #0183FA;
  1559. line-height: 28rpx;
  1560. white-space: nowrap;
  1561. overflow: hidden;
  1562. text-overflow: ellipsis;
  1563. }
  1564. }
  1565. }
  1566. }
  1567. .bottom_btn {
  1568. position: fixed;
  1569. bottom: 26rpx;
  1570. left: 30rpx;
  1571. font-size: 30rpx;
  1572. font-family: PingFang SC-Medium, PingFang SC;
  1573. font-weight: 400;
  1574. color: #FFFFFF;
  1575. line-height: 90rpx;
  1576. width: 690rpx;
  1577. height: 90rpx;
  1578. background: #0183FA;
  1579. border-radius: 20rpx;
  1580. text-align: center;
  1581. }
  1582. /* 指纹采集 */
  1583. .shade {
  1584. height: 100%;
  1585. width: 100%;
  1586. position: fixed;
  1587. display: flex;
  1588. flex-direction: column;
  1589. z-index: 10;
  1590. background: rgba(0, 0, 0, 0.2);
  1591. .null-box {
  1592. flex: 1;
  1593. }
  1594. .shade_n {
  1595. position: absolute;
  1596. bottom: 0;
  1597. left: 0;
  1598. width: 750rpx;
  1599. height: 560rpx;
  1600. background: #FFFFFF;
  1601. border-radius: 20rpx 20rpx 0rpx 0rpx;
  1602. .shade_n_title {
  1603. height: 100rpx;
  1604. padding: 0 30rpx;
  1605. box-sizing: border-box;
  1606. display: flex;
  1607. justify-content: space-between;
  1608. border-bottom: 1rpx solid #E0E0E0;
  1609. >text:nth-of-type(1) {
  1610. font-size: 30rpx;
  1611. font-family: PingFang SC-Medium, PingFang SC;
  1612. font-weight: 400;
  1613. color: #333333;
  1614. line-height: 100rpx;
  1615. }
  1616. >text:nth-of-type(2) {
  1617. font-size: 30rpx;
  1618. font-family: PingFang SC-Medium, PingFang SC;
  1619. font-weight: 400;
  1620. color: #0183FA;
  1621. line-height: 100rpx;
  1622. }
  1623. }
  1624. .shade_n_b {
  1625. height: 460rpx;
  1626. padding: 0 30rpx;
  1627. box-sizing: border-box;
  1628. overflow-y: auto;
  1629. .shade_n_b_li {
  1630. display: flex;
  1631. justify-content: space-between;
  1632. align-items: center;
  1633. height: 80rpx;
  1634. border-bottom: 1rpx solid #E0E0E0;
  1635. >text {
  1636. font-size: 28rpx;
  1637. font-family: PingFang SC-Medium, PingFang SC;
  1638. font-weight: 400;
  1639. line-height: 80rpx;
  1640. overflow: hidden;
  1641. text-overflow: ellipsis;
  1642. white-space: nowrap;
  1643. }
  1644. >img {
  1645. width: 24rpx;
  1646. height: 16rpx;
  1647. margin-right: 14rpx;
  1648. }
  1649. }
  1650. .color_A {
  1651. color: #333333;
  1652. }
  1653. .color_B {
  1654. color: #0183FA;
  1655. }
  1656. }
  1657. }
  1658. }
  1659. }
  1660. </style>