scanning_all.vue 32 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120
  1. <template>
  2. <view class="Scanning_all">
  3. <view class="Scanning">
  4. <view class="Scanning_top" id="Scanning_tops" :animation="animationData">
  5. <view class="Scanning_top_icon">
  6. <text class="cubeic-ok icon_transport transport-duigou"></text>
  7. </view>
  8. <view class="Scanning_top_text">
  9. <view class="text1">签到成功</view>
  10. </view>
  11. <view class="Scanning_cont">
  12. 当前科室关联多个工单,请查看工单信息,
  13. <view>可选择多个工单后,点击 一键送达 完成配送.</view>
  14. </view>
  15. </view>
  16. <view class="title" v-if="workData && workData.length > 0">
  17. <text class="span1">工单信息</text>
  18. <text class="span2" @click="all()">全选</text>
  19. <text class="span3" @click="Dall()">全不选</text>
  20. </view>
  21. <view class="tabs" v-if="workData && workData.length > 0">
  22. <view class="tab">
  23. <view @click="act('drugsBag')" v-if="infoDATA['drugsBag']">
  24. <view id="10" :class="{ acts: tabType == 'drugsBag' }"
  25. >药品({{ infoDATA.drugsBag.length }})</view
  26. >
  27. </view>
  28. <view @click="act('specimen')" v-if="infoDATA['specimen']">
  29. <view id="40" :class="{ acts: tabType == 'specimen' }"
  30. >标本({{ infoDATA.specimen.length }})</view
  31. >
  32. </view>
  33. <view @click="act('specimenPlan')" v-if="infoDATA['specimenPlan']">
  34. <view id="40" :class="{ acts: tabType == 'specimenPlan' }"
  35. >标本轮巡({{ infoDATA.specimenPlan.length }})</view
  36. >
  37. </view>
  38. <view
  39. @click="act('patientTransport')"
  40. v-if="infoDATA['patientTransport']"
  41. >
  42. <view id="20" :class="{ acts: tabType == 'patientTransport' }"
  43. >患者转运({{ infoDATA.patientTransport.length }})</view
  44. >
  45. </view>
  46. <view @click="act('inspect')" v-if="infoDATA['inspect']">
  47. <view id="30" :class="{ acts: tabType == 'inspect' }"
  48. >患者陪检({{ infoDATA.inspect.length }})</view
  49. >
  50. </view>
  51. <view @click="act('jPBag')" v-if="infoDATA['jPBag']">
  52. <view id="40" :class="{ acts: tabType == 'jPBag' }"
  53. >静配({{ infoDATA.jPBag.length }})</view
  54. >
  55. </view>
  56. <view @click="act('other')" v-if="infoDATA['other']">
  57. <view id="40" :class="{ acts: tabType == 'other' }"
  58. >其他({{ infoDATA.other.length }})</view
  59. >
  60. </view>
  61. </view>
  62. </view>
  63. <view
  64. class="page_items"
  65. v-if="!workData"
  66. style="font-size: 18px; margin-top: 15%"
  67. >
  68. <view class="zwsj">
  69. <image
  70. class="zwsj_img"
  71. mode="widthFix"
  72. src="../../static/img/zanwushuju.png"
  73. ></image>
  74. <view class="zwsj_txt">暂无工单</view>
  75. </view>
  76. </view>
  77. <view class="page_items" v-if="workData && workData.length > 0">
  78. <view class="page_item" v-for="(infoDATA, i) of workData" :key="i">
  79. <view class="page_item_top">
  80. <view class="page_item_top_L">
  81. <text
  82. v-show="hasSelect(infoDATA.id)"
  83. class="ac"
  84. @click="ac(infoDATA, i)"
  85. :id="infoDATA.id"
  86. >
  87. <text class="ac-span"></text>
  88. </text>
  89. <text
  90. v-show="!hasSelect(infoDATA.id)"
  91. class="ac1"
  92. @click="ac1(infoDATA, i)"
  93. :id="infoDATA.id + '0'"
  94. ></text>
  95. <text class="L_text">单号:{{ infoDATA.gdcode }}</text>
  96. <view
  97. class="page_item_cont_start emergency1"
  98. v-if="infoDATA.emergencyType.value == 1"
  99. >
  100. <text class="page_item_cont_start_txt">
  101. <text
  102. class="cubeic-star icon_transport transport-shiwujiaoxing"
  103. ></text>
  104. {{ infoDATA.emergencyType.name }}
  105. </text>
  106. </view>
  107. <view
  108. class="page_item_cont_start emergency"
  109. v-if="infoDATA.emergencyType.value == 2"
  110. >
  111. <text class="page_item_cont_start_txt">
  112. <text
  113. class="cubeic-star icon_transport transport-shiwujiaoxing"
  114. ></text>
  115. {{ infoDATA.emergencyType.name }}
  116. </text>
  117. </view>
  118. <view
  119. class="page_item_cont_start emergencys"
  120. v-if="infoDATA.emergencyType.value == 3"
  121. >
  122. <text class="page_item_cont_start_txt">
  123. <text
  124. class="cubeic-star icon_transport transport-shiwujiaoxing"
  125. ></text>
  126. {{ infoDATA.emergencyType.name }}
  127. </text>
  128. </view>
  129. </view>
  130. <view class="page_item_top_R">
  131. <text
  132. class="L_iocn"
  133. v-if="infoDATA.taskType.associationType.value == 'specimen'"
  134. >标本</text
  135. >
  136. <text
  137. class="L_iocn"
  138. v-if="infoDATA.taskType.associationType.value == 'specimenPlan'"
  139. >标本</text
  140. >
  141. <text
  142. class="L_iocn"
  143. v-if="infoDATA.taskType.associationType.value == 'drugsBag'"
  144. >药品</text
  145. >
  146. <text
  147. class="L_iocn"
  148. v-if="infoDATA.taskType.associationType.value == 'jPBag'"
  149. >静配</text
  150. >
  151. <text
  152. class="L_iocn"
  153. v-if="infoDATA.taskType.associationType.value == 'inspect'"
  154. >患者陪检</text
  155. >
  156. <text
  157. class="L_iocn"
  158. v-if="
  159. infoDATA.taskType.associationType.value == 'patientTransport'
  160. "
  161. >患者转运</text
  162. >
  163. <text
  164. class="L_iocn"
  165. v-if="infoDATA.taskType.associationType.value == 'other'"
  166. >其他</text
  167. >
  168. </view>
  169. <view class="L"></view>
  170. <view class="R"></view>
  171. </view>
  172. <view class="page_item_cont">
  173. <view class="page_item_cont_T">
  174. <view class="page_item_cont_title">
  175. <text> <text class="starting">起</text> 点科室 </text>
  176. <text class="text_big">{{ infoDATA.startDept.dept }}</text>
  177. </view>
  178. </view>
  179. <view class="line"></view>
  180. <view class="page_item_cont_B">
  181. <template
  182. v-if="infoDATA.taskType.associationType.value == 'inspect'"
  183. >
  184. <view
  185. class="page_item_cont_title"
  186. v-for="(dept, i) of infoDATA.middleDept"
  187. :key="i"
  188. >
  189. <text> <text class="End">检</text> 查科室 </text>
  190. <text class="text_big">{{ dept.dept }}</text>
  191. <view></view>
  192. </view>
  193. </template>
  194. <template
  195. v-if="infoDATA.taskType.associationType.value != 'inspect'"
  196. >
  197. <view
  198. class="page_item_cont_title"
  199. v-for="(dept, i) of infoDATA.endDepts"
  200. :key="i"
  201. >
  202. <text> <text class="End">终</text> 点科室 </text>
  203. <text class="text_big">{{ dept.dept }}</text>
  204. </view>
  205. </template>
  206. </view>
  207. </view>
  208. <view class="page_item_foot">
  209. <view class="page_item_foot_text">
  210. <text class="text1">状态</text>
  211. <text class="text2" v-if="!(infoDATA.gdState.value == '5'&&infoDATA.taskType.associationType.value == 'inspect')">{{ infoDATA.gdState.name }}</text>
  212. <text class="text2" v-if="infoDATA.gdState.value == '5'&&infoDATA.taskType.associationType.value == 'inspect'">待送回</text>
  213. </view>
  214. <view
  215. class="page_item_foot_text"
  216. v-if="infoDATA.gdState.value == '2'"
  217. >
  218. <text class="text1">预计响应时间</text>
  219. <text class="text2">{{ infoDATA.estimeResponseTime || 0 }}</text>
  220. </view>
  221. <view
  222. class="page_item_foot_text"
  223. v-if="infoDATA.gdState.value == '5'"
  224. >
  225. <text
  226. class="text1"
  227. v-if="!(infoDATA.taskType.associationType.value == 'inspect')"
  228. >预计送达时间</text
  229. >
  230. <text
  231. class="text1"
  232. v-if="infoDATA.taskType.associationType.value == 'inspect'"
  233. >预计送回时间</text
  234. >
  235. <text class="text2">{{ infoDATA.estimeCompleteTime || 0 }}</text>
  236. </view>
  237. <view
  238. class="page_item_foot_text"
  239. v-if="infoDATA.gdState.value == '4'"
  240. >
  241. <text class="text1">预计到达时间</text>
  242. <text class="text2">{{ infoDATA.estimateArriveTime || 0 }}</text>
  243. </view>
  244. <view class="page_item_foot_text">
  245. <text class="text1">创建时间</text>
  246. <text class="text2">{{ infoDATA.startTime }}</text>
  247. </view>
  248. </view>
  249. </view>
  250. </view>
  251. <view class="foot_btn2" v-if="workData && workData.length > 0">
  252. <view class="btn1" @click="allStart()" v-if="flag">一键操作</view>
  253. <view class="btn1" v-if="!flag">一键操作</view>
  254. <view class="btn2" @click="showAlert">知道了</view>
  255. </view>
  256. <view class="foot_btn1" v-if="!workData">
  257. <view class="btn3" @click="showAlert">知道了</view>
  258. </view>
  259. </view>
  260. <!-- 弹窗 -->
  261. <showModel
  262. :title="models.title"
  263. :icon="models.icon"
  264. :disjunctor="models.disjunctor"
  265. :content="models.content"
  266. @know="know"
  267. :operate="models.operate"
  268. ></showModel>
  269. </view>
  270. </template>
  271. <script>
  272. import showModel from "../../components/showModel/showModel.vue";
  273. import { post, SM, webHandle } from "../../http/http.js";
  274. export default {
  275. data() {
  276. return {
  277. // 弹窗model
  278. models: {
  279. disjunctor: false,
  280. },
  281. infoDATA: {},
  282. workData: [],
  283. tabType: "", //当前选中项
  284. userId: {
  285. ids: [],
  286. },
  287. typeData: [],
  288. types: false,
  289. code: "",
  290. flag: true, //一键操作,禁止多次
  291. flagTimer: null,
  292. selectArr: [], //选中项
  293. animationData: {}, //动画
  294. };
  295. },
  296. methods: {
  297. // 知道了
  298. showAlert() {
  299. uni.navigateTo({
  300. url: "../receiptpage/receiptpage",
  301. });
  302. },
  303. //一键操作
  304. allStart() {
  305. clearTimeout(this.flagTimer);
  306. this.flagTimer = setTimeout(() => {
  307. this.flag = false;
  308. let list = [];
  309. let type = "";
  310. if (this.userId.ids.length > 0) {
  311. if (
  312. this.tabType == "drugsBag" ||
  313. this.tabType == "jPBag" ||
  314. this.tabType == "other" ||
  315. this.tabType == "specimen" ||
  316. this.tabType == "specimenPlan"
  317. ) {
  318. type = "orderSign/" + this.code;
  319. list = this.userId.ids;
  320. uni.showLoading({
  321. title: "加载中",
  322. mask: true,
  323. });
  324. post("/workerOrder/" + type, list).then((res) => {
  325. uni.hideLoading();
  326. if (res.status == 200) {
  327. if (
  328. this.tabType == "inspect" ||
  329. this.tabType == "patientTransport"
  330. ) {
  331. if (res.ids) {
  332. for (var i = 0; i < this.userId.ids.length; i++) {
  333. if (this.userId.ids[i] == res.ids[0]) {
  334. this.userId.ids.splice(i, 1);
  335. }
  336. }
  337. }
  338. uni.navigateTo({
  339. url: `../scanning_djInfo/scanning_djInfo?type=${
  340. this.tabType
  341. }&type1=${res.type}&infoData=${res.data}&status=${
  342. res.status
  343. }&msg=${res.msg}&deptCode=${this.code}&dept=${
  344. res.dept
  345. }&ids=${encodeURIComponent(
  346. JSON.stringify(this.userId.ids)
  347. )}&model=${encodeURIComponent(JSON.stringify(res))}`,
  348. });
  349. } else {
  350. uni.navigateTo({
  351. url: `../scanning_djEnd/scanning_djEnd?type=${
  352. this.tabType
  353. }&type1=${res.type}&code=${this.code}&dept=${
  354. res.dept
  355. }&ids=${encodeURIComponent(
  356. JSON.stringify(this.userId.ids)
  357. )}&model=${encodeURIComponent(JSON.stringify(res))}`,
  358. });
  359. }
  360. } else {
  361. this.flag = true;
  362. uni.navigateTo({
  363. url: `../scanning_djEnd/scanning_djEnd?type=${
  364. this.tabType
  365. }&type1=${res.type}&code=${this.code}&dept=${
  366. res.dept
  367. }&ids=${encodeURIComponent(
  368. JSON.stringify(this.userId.ids)
  369. )}&model=${encodeURIComponent(JSON.stringify(res))}`,
  370. });
  371. }
  372. });
  373. } else {
  374. SM().then((ress1) => {
  375. uni.showLoading({
  376. title: "加载中",
  377. mask: true,
  378. });
  379. //检验二维码的有效性
  380. post("/dept/scanning", {
  381. content: ress1,
  382. }).then((result) => {
  383. if (result.state == 200 || result.state == 201) {
  384. let ress = result.code;
  385. if (ress) {
  386. if (this.tabType == "patientTransport") {
  387. type = "handleTrans";
  388. let data = {
  389. ids: this.userId.ids,
  390. deptCode: this.code,
  391. code: ress,
  392. };
  393. list = data;
  394. }
  395. if (this.tabType == "inspect") {
  396. type = "handleIns";
  397. let data = {
  398. ids: this.userId.ids,
  399. deptCode: this.code,
  400. code: ress,
  401. };
  402. list = data;
  403. }
  404. post("/workerOrder/" + type, list).then((res) => {
  405. uni.hideLoading();
  406. if (res.status == 200) {
  407. if (
  408. this.tabType == "inspect" ||
  409. this.tabType == "patientTransport"
  410. ) {
  411. if (res.ids) {
  412. for (var i = 0; i < this.userId.ids.length; i++) {
  413. if (this.userId.ids[i] == res.ids[0]) {
  414. this.userId.ids.splice(i, 1);
  415. }
  416. }
  417. }
  418. uni.navigateTo({
  419. url: `../scanning_djInfo/scanning_djInfo?type=${
  420. this.tabType
  421. }&type1=${res.type}&infoData=${res.data}&status=${
  422. res.status
  423. }&msg=${res.msg}&deptCode=${this.code}&dept=${
  424. res.dept
  425. }&ids=${encodeURIComponent(
  426. JSON.stringify(this.userId.ids)
  427. )}&model=${encodeURIComponent(
  428. JSON.stringify(res)
  429. )}`,
  430. });
  431. } else {
  432. uni.navigateTo({
  433. url: `../scanning_djEnd/scanning_djEnd?type=${
  434. this.tabType
  435. }&type1=${res.type}&dept=${
  436. res.dept
  437. }&ids=${encodeURIComponent(
  438. JSON.stringify(this.userId.ids)
  439. )}&model=${encodeURIComponent(
  440. JSON.stringify(res)
  441. )}&code=${this.code}`,
  442. });
  443. }
  444. } else {
  445. uni.navigateTo({
  446. url: `../scanning_djEnd/scanning_djEnd?type=${
  447. this.tabType
  448. }&type1=${res.type}&dept=${
  449. res.dept
  450. }&ids=${encodeURIComponent(
  451. JSON.stringify(this.userId.ids)
  452. )}&model=${encodeURIComponent(
  453. JSON.stringify(res)
  454. )}&code=${this.code}`,
  455. });
  456. }
  457. });
  458. }
  459. } else {
  460. this.flag = true;
  461. uni.hideLoading();
  462. uni.showToast({
  463. icon: "none",
  464. title: "请求失败!",
  465. });
  466. }
  467. });
  468. });
  469. }
  470. } else {
  471. this.flag = true;
  472. this.models = {
  473. disjunctor: true,
  474. title: "提示",
  475. content: "请选择工单!",
  476. icon: "warn",
  477. operate: {
  478. know: "知道了",
  479. },
  480. };
  481. }
  482. }, 500);
  483. },
  484. typePD(data, list) {
  485. if (list) {
  486. if (data.length >= 2) {
  487. for (var i = 0; i < data.length; i++) {
  488. if (data[i].gdState.value != list.gdState.value) {
  489. this.typeData.splice(i, 1);
  490. this.types = true;
  491. }
  492. }
  493. } else {
  494. this.types = false;
  495. }
  496. } else if (data.length == 1) {
  497. this.types = false;
  498. } else {
  499. this.types = false;
  500. for (var i = 0; i < data.length; i++) {
  501. if (data[0].gdState.value != data[i].gdState.value) {
  502. this.typeData.splice(i, 1);
  503. this.types = true;
  504. }
  505. }
  506. }
  507. },
  508. act(type) {
  509. this.Dall();
  510. this.tabType = type;
  511. this.workData = this.infoDATA[type];
  512. },
  513. // 已选择的项中是否包含该id
  514. hasSelect(id) {
  515. return this.selectArr.includes(id);
  516. },
  517. //选中
  518. ac(data, i) {
  519. // id放入数组
  520. this.selectArr = this.selectArr.filter((item) => item != data.id);
  521. for (var i = 0; i < this.userId.ids.length; i++) {
  522. if (this.userId.ids[i] == data.id) {
  523. this.typeData.splice(i, 1);
  524. this.userId.ids.splice(i, 1);
  525. }
  526. }
  527. },
  528. //未选中
  529. ac1(data, i) {
  530. this.typeData.push(data);
  531. this.types = false;
  532. for (var i = 0; i < this.typeData.length; i++) {
  533. if (this.typeData[0].gdState.value != this.typeData[i].gdState.value) {
  534. this.models = {
  535. disjunctor: true,
  536. title: "提示",
  537. content: "请选择不同状态的工单!",
  538. icon: "warn",
  539. operate: {
  540. know: "知道了",
  541. },
  542. };
  543. this.typeData.splice(i, 1);
  544. this.types = true;
  545. }
  546. }
  547. if (this.types) {
  548. } else {
  549. this.userId.ids.push(data.id);
  550. this.selectArr.push(data.id);
  551. }
  552. },
  553. //全选
  554. all() {
  555. let id = [];
  556. this.typeData = JSON.parse(JSON.stringify(this.workData));
  557. this.typePD(this.workData);
  558. if (this.types) {
  559. this.models = {
  560. disjunctor: true,
  561. title: "提示",
  562. content: "请选择不同状态的工单!",
  563. icon: "warn",
  564. operate: {
  565. know: "知道了",
  566. },
  567. };
  568. this.typeData = [];
  569. } else {
  570. for (var i = 0; i < this.workData.length; i++) {
  571. id.push(this.workData[i].id);
  572. this.selectArr.push(this.workData[i].id);
  573. }
  574. this.userId.ids = id;
  575. }
  576. },
  577. //全不选
  578. Dall() {
  579. this.selectArr = [];
  580. this.typeData = [];
  581. this.userId.ids = [];
  582. },
  583. texiao() {
  584. setTimeout(() => {
  585. this.animation.height(0).opacity(0).step();
  586. this.animationData = this.animation.export();
  587. }, 15000);
  588. },
  589. // 知道了
  590. know() {
  591. this.models.disjunctor = false;
  592. },
  593. },
  594. onLoad(options) {
  595. this.infoDATA = JSON.parse(options.infoDATA); //扫描科室码返回的信息
  596. this.code = options.code; //扫描科室码返回的二维码信息
  597. let arr = [];
  598. for (var key in this.infoDATA) {
  599. arr.push(key);
  600. }
  601. this.workData = this.infoDATA[arr[0]];
  602. this.tabType = arr[0];
  603. // #ifdef APP-PLUS
  604. webHandle("no", "app");
  605. // #endif
  606. // #ifdef H5
  607. webHandle("no", "wx");
  608. // #endif
  609. },
  610. onShow() {
  611. this.flag = true;
  612. // 创建动画
  613. this.animation = uni.createAnimation({
  614. duration: 500,
  615. timingFunction: "ease",
  616. delay: 2000,
  617. });
  618. setTimeout(() => {
  619. this.texiao();
  620. }, 500);
  621. },
  622. onHide() {
  623. this.animationData = {};
  624. },
  625. onUnload() {
  626. // 页面关闭后清空数据
  627. this.animationData = {};
  628. },
  629. };
  630. </script>
  631. <style lang="less">
  632. ::-webkit-scrollbar {
  633. width: 0;
  634. }
  635. ::-webkit-scrollbar-track {
  636. background-color: none;
  637. }
  638. ::-webkit-scrollbar-thumb {
  639. background-color: none;
  640. }
  641. ::-webkit-scrollbar-thumb:hover {
  642. background-color: none;
  643. }
  644. ::-webkit-scrollbar-thumb:active {
  645. background-color: none;
  646. }
  647. .Scanning_all {
  648. .title {
  649. font-size: 36rpx;
  650. margin-top: 20rpx;
  651. margin-bottom: 20rpx;
  652. font-weight: 700;
  653. position: relative;
  654. height: 40rpx;
  655. .span1 {
  656. position: absolute;
  657. left: 0;
  658. font-weight: 700;
  659. }
  660. .span2 {
  661. position: absolute;
  662. right: 20%;
  663. color: rgb(73, 184, 86);
  664. }
  665. .span3 {
  666. position: absolute;
  667. right: 0;
  668. color: rgb(73, 184, 86);
  669. }
  670. }
  671. .tabs {
  672. height: 90rpx;
  673. width: 100%;
  674. overflow-x: auto;
  675. overflow-y: hidden;
  676. position: relative;
  677. background: #fff;
  678. .acts {
  679. background: #ccc;
  680. height: 50rpx !important;
  681. width: 80% !important;
  682. border-radius: 20rpx;
  683. }
  684. .tab {
  685. display: flex;
  686. align-items: center;
  687. flex-wrap: nowrap;
  688. height: 90rpx;
  689. position: absolute;
  690. width: auto;
  691. padding-top: 6rpx;
  692. view {
  693. display: inline-block;
  694. width: 260rpx;
  695. line-height: 48rpx;
  696. font-size: 32rpx;
  697. height: 100%;
  698. text-align: center;
  699. }
  700. }
  701. }
  702. .Scanning {
  703. padding: 0 20rpx;
  704. height: calc(100% - 100rpx);
  705. // seimin
  706. .Scanning_top {
  707. height: 400rpx;
  708. opacity: 1;
  709. .Scanning_top_icon {
  710. width: 140rpx;
  711. height: 140rpx;
  712. margin: 0 auto;
  713. margin-top: 36rpx;
  714. border-radius: 50%;
  715. line-height: 140rpx;
  716. .cubeic-ok {
  717. font-size: 140rpx;
  718. color: #35b34a;
  719. }
  720. }
  721. .Scanning_top_text {
  722. .text1 {
  723. margin-top: 40rpx;
  724. font-size: 48rpx;
  725. text-align: center;
  726. }
  727. }
  728. .Scanning_cont {
  729. font-size: 32rpx;
  730. margin-top: 30rpx;
  731. text-align: center;
  732. .text1 {
  733. margin-top: 24rpx;
  734. color: #ff3b53;
  735. }
  736. }
  737. }
  738. .page_items {
  739. margin-bottom: 110rpx;
  740. .zwsj {
  741. margin-top: 180rpx;
  742. text-align: center;
  743. .zwsj-img {
  744. width: 560rpx;
  745. }
  746. .zwsj_txt {
  747. font-size: 36rpx;
  748. font-weight: 700;
  749. margin-top: 20rpx;
  750. text-align: center;
  751. }
  752. }
  753. .page_item {
  754. margin-top: 16rpx;
  755. min-height: 356rpx;
  756. background: #fff;
  757. border-radius: 8rpx;
  758. overflow: hidden;
  759. padding: 0 16rpx;
  760. border: 2rpx solid #e5e9ed;
  761. .L {
  762. width: 40rpx;
  763. height: 40rpx;
  764. border-radius: 50%;
  765. background: #f9fafb;
  766. position: relative;
  767. left: -50rpx;
  768. top: 66rpx;
  769. }
  770. .R {
  771. width: 40rpx;
  772. height: 40rpx;
  773. border-radius: 50%;
  774. background: #f9fafb;
  775. position: relative;
  776. float: right;
  777. right: -50rpx;
  778. top: 26rpx;
  779. }
  780. .starting {
  781. width: 50rpx;
  782. height: 50rpx;
  783. color: #fff;
  784. background: #49b856;
  785. display: inline-block;
  786. border-radius: 50%;
  787. text-align: center;
  788. line-height: 46rpx;
  789. font-size: 32rpx;
  790. margin-right: 6rpx;
  791. }
  792. .End {
  793. width: 50rpx;
  794. height: 50rpx;
  795. color: #fff;
  796. background: #39b199;
  797. display: inline-block;
  798. border-radius: 50%;
  799. text-align: center;
  800. line-height: 46rpx;
  801. font-size: 32rpx;
  802. margin-right: 6rpx;
  803. }
  804. .page_item_top {
  805. height: 86rpx;
  806. border-bottom: 2rpx dashed #e5e9ed;
  807. padding: 0 16rpx;
  808. .page_item_top_L {
  809. height: 100%;
  810. float: left;
  811. line-height: 88rpx;
  812. display: flex;
  813. align-items: center;
  814. .ac {
  815. width: 32rpx;
  816. height: 32rpx;
  817. border: 2rpx solid #ccc;
  818. display: inline-block;
  819. position: relative;
  820. .ac-span {
  821. position: absolute;
  822. left: 50%;
  823. top: 50%;
  824. width: 24rpx;
  825. height: 24rpx;
  826. background: #39b199;
  827. transform: translate(-50%, -50%);
  828. }
  829. }
  830. .ac1 {
  831. width: 32rpx;
  832. height: 32rpx;
  833. border: 2rpx solid #ccc;
  834. display: inline-block;
  835. position: relative;
  836. }
  837. .emergencys {
  838. background: #ff3b53 !important;
  839. width: 124rpx !important;
  840. }
  841. .emergency {
  842. background: #ff3b53 !important;
  843. }
  844. .emergency1 {
  845. background: #49b856 !important;
  846. }
  847. .page_item_cont_start {
  848. text-align: center;
  849. height: 44rpx;
  850. width: 104rpx;
  851. line-height: 44rpx;
  852. border-radius: 8rpx;
  853. background: #49b856;
  854. color: #fff;
  855. display: inline-block;
  856. .page_item_cont_start_txt {
  857. font-size: 28rpx;
  858. display: flex;
  859. align-items: center;
  860. justify-content: center;
  861. .cubeic-star {
  862. font-size: 28rpx;
  863. }
  864. }
  865. }
  866. .L_time {
  867. color: #6cc076;
  868. font-size: 32rpx;
  869. }
  870. .L_text {
  871. font-size: 32rpx;
  872. display: inline-block;
  873. font-weight: 700;
  874. margin-right: 8rpx;
  875. }
  876. }
  877. .page_item_top_R {
  878. height: 60rpx;
  879. float: right;
  880. padding-top: 20rpx;
  881. font-size: 32rpx;
  882. position: absolute;
  883. right: 50rpx;
  884. .L_iocn {
  885. display: inline-block;
  886. height: 52rpx;
  887. line-height: 48rpx;
  888. color: rgb(7, 134, 60);
  889. font-size: 36rpx;
  890. font-weight: 700;
  891. }
  892. }
  893. }
  894. .page_item_cont {
  895. min-height: 180rpx;
  896. max-height: 424rpx;
  897. padding: 0 16rpx;
  898. text-align: left;
  899. position: relative;
  900. .text_big {
  901. font-size: 32rpx;
  902. position: absolute;
  903. right: 16rpx;
  904. font-weight: 700;
  905. margin-top: 10rpx;
  906. }
  907. .text_big2 {
  908. font-size: 32rpx;
  909. position: absolute;
  910. right: 16rpx;
  911. font-weight: 700;
  912. }
  913. .line {
  914. height: 20rpx;
  915. width: 2rpx;
  916. border-left: 2rpx solid #e5e9ed;
  917. position: absolute;
  918. top: 82rpx;
  919. left: 40rpx;
  920. }
  921. .lines {
  922. height: 40%;
  923. width: 2rpx;
  924. border-left: 2rpx solid #e5e9ed;
  925. position: absolute;
  926. top: 23%;
  927. left: 36rpx;
  928. }
  929. .page_item_cont_T {
  930. padding-top: 28rpx;
  931. font-size: 28rpx;
  932. .page_item_cont_title {
  933. height: 100%;
  934. font-size: 32rpx;
  935. }
  936. }
  937. .page_item_cont_B {
  938. padding-top: 28rpx;
  939. margin-bottom: 28rpx;
  940. .page_item_cont_title {
  941. height: 60rpx;
  942. font-size: 32rpx;
  943. }
  944. .page_item_cont_title1 {
  945. height: 60rpx;
  946. line-height: 60rpx;
  947. font-size: 32rpx;
  948. padding-left: 64rpx;
  949. }
  950. }
  951. }
  952. .page_item_foot {
  953. border-top: 2rpx dashed #e5e9ed;
  954. border-bottom: 2rpx dashed #e5e9ed;
  955. padding: 28rpx 16rpx;
  956. text-align: left;
  957. .page_item_foot_text {
  958. height: 48rpx;
  959. font-size: 32rpx;
  960. line-height: 48rpx;
  961. margin-bottom: 20rpx;
  962. .text1 {
  963. color: rgb(102, 102, 102);
  964. }
  965. .text2 {
  966. float: right;
  967. font-weight: 700;
  968. }
  969. }
  970. }
  971. #infos {
  972. display: none;
  973. }
  974. .page_item_infos {
  975. padding-bottom: 20rpx;
  976. border-bottom: 2rpx dashed #e5e9ed;
  977. .page_item_info2 {
  978. text-align: left;
  979. line-height: 60rpx;
  980. font-size: 32rpx;
  981. padding-left: 16rpx;
  982. .page_item_foot_text {
  983. height: 48rpx;
  984. font-size: 32rpx;
  985. line-height: 48rpx;
  986. margin-bottom: 20rpx;
  987. .text1 {
  988. color: rgb(102, 102, 102);
  989. }
  990. .text2 {
  991. float: right;
  992. font-weight: 700;
  993. }
  994. }
  995. }
  996. }
  997. }
  998. }
  999. .foot_btn2 {
  1000. position: fixed;
  1001. bottom: 0;
  1002. right: 20rpx;
  1003. left: 20rpx;
  1004. line-height: 66rpx;
  1005. height: 100rpx;
  1006. border-top: 2rpx solid #e5e9ed;
  1007. background: #f9fafb;
  1008. .btn1,
  1009. .btn2 {
  1010. height: 66rpx;
  1011. width: 45%;
  1012. background-image: linear-gradient(to right, #72c172, #3bb197);
  1013. color: #fff;
  1014. border-radius: 8rpx;
  1015. font-size: 32rpx;
  1016. margin-top: 16rpx;
  1017. text-align: center;
  1018. }
  1019. .btn1 {
  1020. float: left;
  1021. }
  1022. .btn2 {
  1023. float: right;
  1024. }
  1025. }
  1026. .foot_btn1 {
  1027. position: fixed;
  1028. bottom: 0;
  1029. right: 20rpx;
  1030. left: 20rpx;
  1031. line-height: 66rpx;
  1032. height: 100rpx;
  1033. border-top: 2rpx solid #e5e9ed;
  1034. background: #f9fafb;
  1035. text-align: center;
  1036. .btn3 {
  1037. height: 66rpx;
  1038. width: 100%;
  1039. background-image: linear-gradient(to right, #72c172, #3bb197);
  1040. color: #fff;
  1041. border-radius: 8rpx;
  1042. font-size: 32rpx;
  1043. margin-top: 16rpx;
  1044. }
  1045. }
  1046. }
  1047. }
  1048. </style>