specimenChecking.vue 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888
  1. <template>
  2. <view class="specimenChecking">
  3. <view class="title">请您确认一下科室标本数量!</view>
  4. <view class="page_item_wrap" v-for="item in list" :key="item.deptId">
  5. <view class="page_item">
  6. <view class="page_item_top">
  7. <template v-if="taskTypeConfig.speExpandTube == 1">
  8. <uni-collapse :border="false">
  9. <uni-collapse-item titleBorder="none" :open="taskTypeConfig.speDefaultExpandTube == 1">
  10. <template v-slot:title>
  11. <view class="page_item_cont_title_coll" @click.stop="gotoDetail(item)">
  12. <view class="page_item_top-inner">
  13. <view class="L_text">{{item.deptName}}</view>
  14. <view class="page_item_top_R">
  15. <view class="L_iocn" style="margin-right: 20rpx;">{{item.speNum}}</view>
  16. </view>
  17. </view>
  18. </view>
  19. </template>
  20. <view class="content">
  21. <view class="list" v-for="x in item.tubeTypeDataList" :key="x.id" @click="viewSpe(item, x.tubeTypeId)">
  22. {{x.tubeTypeName}}:<text class="underline-item">{{x.speNum}}</text>
  23. </view>
  24. </view>
  25. </uni-collapse-item>
  26. </uni-collapse>
  27. </template>
  28. <template v-else>
  29. <view class="page_item_cont_title_coll" @click.stop="gotoDetail(item)">
  30. <view class="page_item_top-inner">
  31. <view class="L_text">{{item.deptName}}</view>
  32. <view class="page_item_top_R">
  33. <view class="L_iocn">{{item.speNum}}</view>
  34. </view>
  35. </view>
  36. </view>
  37. </template>
  38. </view>
  39. <!-- <view class="page_item_cont">
  40. <view class="page_item_cont_T">
  41. <view class="page_item_cont_title">
  42. <view>
  43. 标本数量
  44. </view>
  45. <view class="text_big">{{item[2]}}</view>
  46. </view>
  47. </view>
  48. </view> -->
  49. <!-- <view class="L"></view>
  50. <view class="R"></view> -->
  51. </view>
  52. <!-- <view class="L-l"></view> -->
  53. <!-- <view class="R-l"></view> -->
  54. </view>
  55. <view class="foot_btn2">
  56. <view class="btn2" @click="createOrder">确认数量并建单</view>
  57. <view class="btn2" @click="goto()">返回</view>
  58. </view>
  59. <!-- 修改标本数量弹窗 -->
  60. <changeSpeNum v-if="changeSpeModels.disjunctor" :operate="{ok:'确认数量',check:'详细核对',cancel:'取消'}" :title="changeSpeModels.title" :content="changeSpeModels.content"
  61. :disjunctor="changeSpeModels.disjunctor" @ok="changeSpeOk" @check="changeSpeCheck" @cancel="changeSpeCancel" :num="speNumChange">
  62. </changeSpeNum>
  63. <!-- 弹窗 -->
  64. <showModel :title="models.title" :icon="models.icon" :disjunctor="models.disjunctor" :content="models.content"
  65. @ok="ok" @no="no" @cancel="cancel" @know="know" :operate="models.operate"></showModel>
  66. </view>
  67. </template>
  68. <script>
  69. import showModel from "../../components/showModel/showModel.vue";
  70. import {
  71. get,
  72. post,
  73. webHandle
  74. } from "../../http/http.js";
  75. export default {
  76. components: {
  77. showModel,
  78. },
  79. data() {
  80. return {
  81. hosId: uni.getStorageSync('userData').user.currentHospital.id,
  82. taskTypeConfig: {},
  83. // 弹窗model
  84. models: {
  85. disjunctor: false,
  86. },
  87. list: [],
  88. msg: {}, //页面展示信息
  89. // 修改标本数量弹窗model
  90. changeSpeModels: {
  91. disjunctor: false,
  92. },
  93. speNumChange: 0,
  94. changeSpeObj: {},
  95. };
  96. },
  97. methods: {
  98. // 获取配置
  99. getSpecimenTaskTypeConfig(){
  100. uni.showLoading({
  101. title: "加载中",
  102. mask: true,
  103. });
  104. post("/simple/data/fetchDataList/taskTypeConfig", {
  105. "idx": 0,
  106. "sum": 1,
  107. "taskTypeConfig": {
  108. "taskTypeDTO": {
  109. "hosId": {
  110. "id": this.hosId
  111. },
  112. "associationType": {
  113. "key": "association_types",
  114. "value": "specimen"
  115. }
  116. }
  117. }
  118. }).then((result) => {
  119. uni.hideLoading();
  120. if (result.status == 200) {
  121. if(result.list.length){
  122. this.taskTypeConfig = result.list[0] || {};
  123. }else{
  124. uni.showToast({
  125. icon: "none",
  126. title: "请配置标本配送任务类型!",
  127. });
  128. }
  129. } else {
  130. uni.showToast({
  131. icon: "none",
  132. title: result.msg || "接口获取数据失败!",
  133. });
  134. }
  135. });
  136. },
  137. viewSpe(item, tubeTypeId){
  138. this.speNumChange = item.speNum;
  139. this.changeSpeObj = {
  140. infoDATA: this.msg,
  141. id: item.deptId,
  142. endDepts:this.msg.targetDept,
  143. }
  144. uni.navigateTo({
  145. url: `../../pages/specimenCheckingDetail/specimenCheckingDetail?infoDATA=${encodeURIComponent(JSON.stringify(this.changeSpeObj.infoDATA))}&id=${this.changeSpeObj.id}&endDepts=${this.changeSpeObj.endDepts}&tubeTypeId=${tubeTypeId}`,
  146. });
  147. },
  148. //确认数量并建单-返回
  149. know() {
  150. this.models.disjunctor = false;
  151. },
  152. //确认数量并建单-确定
  153. ok() {
  154. this.models.disjunctor = false;
  155. const speNumNot0Depts = this.list.filter(v => v.speNum !== 0);
  156. const speNumNot0DeptsStr = speNumNot0Depts.map(v => v.deptId).toString();
  157. uni.showLoading({
  158. mask: true,
  159. title: '加载中'
  160. })
  161. post(`/workerOrder/createQuickOrder`, {
  162. id: this.msg.id,
  163. notEmptyEndDeptIds: speNumNot0DeptsStr || undefined,
  164. }).then((res) => {
  165. uni.hideLoading();
  166. if (res.status == 200) {
  167. if (res.type === 'plan-spe-ddd-2') {
  168. //需要扫描标本
  169. uni.navigateTo({
  170. url: `../../pages/scanning_code/scanning_code?type=${res.associationTypeName}&type1=${res.type}&id=${res.id}&deptCode=${res.deptCode}&dept=${res.deptName}&accountObj=undefined&endDepts=${this.msg.targetDept}&deptId=${res.deptId}`,
  171. });
  172. } else {
  173. uni.navigateTo({
  174. url: "../receiptpage/receiptpage",
  175. });
  176. }
  177. } else {
  178. uni.showToast({
  179. icon: "none",
  180. title: res.msg || "接口获取数据失败!",
  181. });
  182. }
  183. });
  184. },
  185. //确认数量并建单-否
  186. no() {
  187. this.models.disjunctor = false;
  188. this.createOrderFun();
  189. },
  190. //确认数量并建单-取消
  191. cancel() {
  192. this.models.disjunctor = false;
  193. },
  194. // 数量核对 start
  195. // 修改标本数量-核对
  196. changeSpeCheck(){
  197. this.changeSpeModels.disjunctor = false;
  198. uni.navigateTo({
  199. url: `../../pages/specimenCheckingDetail/specimenCheckingDetail?infoDATA=${encodeURIComponent(JSON.stringify(this.changeSpeObj.infoDATA))}&id=${this.changeSpeObj.id}&endDepts=${this.changeSpeObj.endDepts}`,
  200. });
  201. },
  202. // 修改标本数量-确认
  203. changeSpeOk(data) {
  204. console.log(data);
  205. const pathUrl = uni.getStorageSync("path");
  206. const {
  207. speNum,
  208. reason,
  209. imageValue
  210. } = data;
  211. this.changeSpeModels.disjunctor = false;
  212. uni.showLoading({
  213. mask: true,
  214. title: "加载中",
  215. });
  216. let postData = {
  217. checkDept: this.changeSpeObj.endDepts, //终点科室
  218. transDeptId: this.changeSpeObj.infoDATA.startDept,
  219. gdId: this.changeSpeObj.infoDATA.uuid,
  220. deptId: this.changeSpeObj.id == "undefined" ?
  221. this.changeSpeObj.infoDATA.startDept : this.changeSpeObj.id,
  222. specimensNum: speNum,
  223. modifyReason: reason,
  224. };
  225. post("/api/updateCheckDeptSpecimensNum", postData).then((res) => {
  226. if (res.status == 200) {
  227. console.log(imageValue);
  228. if (!imageValue.length) {
  229. uni.hideLoading();
  230. if (this.changeSpeObj.t == "big") {
  231. if (this.changeSpeObj.gdState == 4) {
  232. // 待到达
  233. uni.navigateTo({
  234. url: `../../pages/receiptpage/receiptpage`,
  235. });
  236. } else if (this.changeSpeObj.gdState == 5) {
  237. // 待送达
  238. if (res.type1 === "plan-spe-ddd-2") {} else {
  239. let content = `本工单已签到<strong class="red">${
  240. res.scanSet ? res.scanSet.join("、") : ""
  241. }</strong>,剩余需签到科室<strong class="red">${
  242. res.notScanSet ? res.notScanSet.join("、") : ""
  243. }</strong>,您确定完成工单吗?`;
  244. uni.navigateTo({
  245. url: `../scanning/scanning?type=${res.type}&type1=${
  246. res.type1
  247. }&id=${encodeURIComponent(
  248. JSON.stringify([res.gdid])
  249. )}&content=${content}`,
  250. });
  251. }
  252. }
  253. } else if (this.changeSpeObj.t == "small") {
  254. if (this.changeSpeObj.id == "undefined") {
  255. //快捷建单建单进入
  256. uni.navigateTo({
  257. url: `../../pages/receiptpage/receiptpage`,
  258. });
  259. } else {
  260. if (this.changeSpeObj.gdState == 4) {
  261. // 待到达
  262. uni.navigateTo({
  263. url: `../../pages/receiptpage/receiptpage`,
  264. });
  265. } else if (this.changeSpeObj.gdState == 5) {
  266. // 待送达
  267. if (res.type1 === "plan-spe-ddd-2") {} else {
  268. let content = `本工单已签到<strong class="red">${
  269. res.scanSet ? res.scanSet.join("、") : ""
  270. }</strong>,剩余需签到科室<strong class="red">${
  271. res.notScanSet ? res.notScanSet.join("、") : ""
  272. }</strong>,您确定完成工单吗?`;
  273. uni.navigateTo({
  274. url: `../scanning/scanning?type=${res.type}&type1=${
  275. res.type1
  276. }&id=${encodeURIComponent(
  277. JSON.stringify([res.gdid])
  278. )}&content=${content}`,
  279. });
  280. }
  281. }
  282. }
  283. } else {
  284. uni.navigateTo({
  285. url: `../../pages/specimenChecking/specimenChecking?infoDATA=${encodeURIComponent(
  286. JSON.stringify(this.changeSpeObj.infoDATA)
  287. )}`,
  288. });
  289. }
  290. return;
  291. }
  292. let n = 0;
  293. imageValue.forEach((v) => {
  294. // 图片上传 start
  295. console.log("压缩前");
  296. let canvasWidth = v.image.width; //图片原始长宽
  297. let canvasHeight = v.image.height;
  298. let img = new Image();
  299. img.src = v.path;
  300. let canvas = document.createElement("canvas");
  301. let ctx = canvas.getContext("2d");
  302. canvas.width = canvasWidth;
  303. canvas.height = canvasHeight;
  304. ctx.drawImage(img, 0, 0, canvasWidth, canvasHeight);
  305. canvas.toBlob(
  306. (fileSrc) => {
  307. let tp = window.URL.createObjectURL(fileSrc);
  308. console.log("压缩后");
  309. n++;
  310. uni.uploadFile({
  311. url: pathUrl +
  312. "/common/common/uploadAttachment/specimenPhotos/" +
  313. res.deptSpecimensNumId +
  314. "/666",
  315. filePath: tp,
  316. name: "file",
  317. formData: {
  318. filename: v.name,
  319. },
  320. success: (uploadFileRes) => {
  321. console.log(uploadFileRes);
  322. if (--n === 0) {
  323. uni.hideLoading();
  324. uni.showModal({
  325. title: "提示",
  326. content: "修改成功!",
  327. showCancel: false,
  328. success: (result) => {
  329. if (result.confirm) {
  330. console.log("用户点击确定", this.changeSpeObj.t);
  331. if (this.changeSpeObj.t == "big") {
  332. if (this.changeSpeObj.gdState == 4) {
  333. // 待到达
  334. uni.navigateTo({
  335. url: `../../pages/receiptpage/receiptpage`,
  336. });
  337. } else if (this.changeSpeObj.gdState == 5) {
  338. // 待送达
  339. if (res.type1 === "plan-spe-ddd-2") {} else {
  340. let content = `本工单已签到<strong class="red">${
  341. res.scanSet ? res.scanSet.join("、") : ""
  342. }</strong>,剩余需签到科室<strong class="red">${
  343. res.notScanSet ? res.notScanSet.join("、") : ""
  344. }</strong>,您确定完成工单吗?`;
  345. uni.navigateTo({
  346. url: `../scanning/scanning?type=${res.type}&type1=${
  347. res.type1
  348. }&id=${encodeURIComponent(
  349. JSON.stringify([res.gdid])
  350. )}&content=${content}`,
  351. });
  352. }
  353. }
  354. } else if (this.changeSpeObj.t == "small") {
  355. if (this.changeSpeObj.id == "undefined") {
  356. //快捷建单建单进入
  357. uni.navigateTo({
  358. url: `../../pages/receiptpage/receiptpage`,
  359. });
  360. } else {
  361. if (this.changeSpeObj.gdState == 4) {
  362. // 待到达
  363. uni.navigateTo({
  364. url: `../../pages/receiptpage/receiptpage`,
  365. });
  366. } else if (this.changeSpeObj.gdState == 5) {
  367. // 待送达
  368. if (res.type1 === "plan-spe-ddd-2") {} else {
  369. let content = `本工单已签到<strong class="red">${
  370. res.scanSet ? res.scanSet.join("、") : ""
  371. }</strong>,剩余需签到科室<strong class="red">${
  372. res.notScanSet ? res.notScanSet.join("、") : ""
  373. }</strong>,您确定完成工单吗?`;
  374. uni.navigateTo({
  375. url: `../scanning/scanning?type=${res.type}&type1=${
  376. res.type1
  377. }&id=${encodeURIComponent(
  378. JSON.stringify([res.gdid])
  379. )}&content=${content}`,
  380. });
  381. }
  382. }
  383. }
  384. } else {
  385. uni.navigateTo({
  386. url: `../../pages/specimenChecking/specimenChecking?infoDATA=${encodeURIComponent(
  387. JSON.stringify(this.changeSpeObj.infoDATA)
  388. )}`,
  389. });
  390. }
  391. } else if (result.cancel) {
  392. console.log("用户点击取消");
  393. }
  394. },
  395. });
  396. }
  397. },
  398. fail: (err) => {
  399. n--;
  400. console.error(err);
  401. uni.hideLoading();
  402. uni.showToast({
  403. icon: "none",
  404. title: "上传失败",
  405. duration: 2000,
  406. });
  407. },
  408. });
  409. },
  410. "image/jpeg",
  411. 0.3
  412. );
  413. // 图片上传 end
  414. });
  415. } else {
  416. uni.hideLoading();
  417. uni.showToast({
  418. icon: "none",
  419. title: res.msg || "接口获取数据失败!",
  420. });
  421. }
  422. });
  423. },
  424. // 修改标本数量-取消
  425. changeSpeCancel() {
  426. this.changeSpeModels.disjunctor = false;
  427. },
  428. // 修改标本数量弹窗
  429. showChangeSpe() {
  430. this.changeSpeModels = {
  431. title: "修改标本数量",
  432. disjunctor: true,
  433. };
  434. },
  435. // 数量核对 end
  436. // 获取列表
  437. getList() {
  438. uni.showLoading({
  439. mask: true,
  440. title: '加载中'
  441. })
  442. let postData = {
  443. startDept: this.msg.startDept,
  444. targetDept: this.msg.targetDept,
  445. uuid: this.msg.uuid
  446. }; //起点科室id,选择的科室ids
  447. post(`/api/getDeptSpecimensNum`, postData).then((res) => {
  448. uni.hideLoading();
  449. uni.stopPullDownRefresh();
  450. if (res.status == 200) {
  451. this.list = res.data;
  452. } else {
  453. uni.showToast({
  454. icon: "none",
  455. title: res.msg || "接口获取数据失败!",
  456. });
  457. }
  458. });
  459. },
  460. // 跳转到详情页
  461. gotoDetail(item) {
  462. this.speNumChange = item.speNum;
  463. this.changeSpeObj = {
  464. infoDATA: this.msg,
  465. id: item.deptId,
  466. endDepts:this.msg.targetDept,
  467. }
  468. this.showChangeSpe();
  469. },
  470. // 返回
  471. goto() {
  472. uni.navigateTo({
  473. url: `../../pages/receiptpage/receiptpage`,
  474. });
  475. },
  476. // 确认数量并建单-方法
  477. createOrderFun(){
  478. uni.showLoading({
  479. mask: true,
  480. title: '加载中'
  481. })
  482. post(`/workerOrder/createQuickOrder`, {
  483. id: this.msg.id,
  484. }).then((res) => {
  485. console.log(res)
  486. uni.hideLoading();
  487. if (res.status == 200) {
  488. if (res.type === 'plan-spe-ddd-2') {
  489. //需要扫描标本
  490. uni.navigateTo({
  491. url: `../../pages/scanning_code/scanning_code?type=${res.associationTypeName}&type1=${res.type}&id=${res.id}&deptCode=${res.deptCode}&dept=${res.deptName}&accountObj=undefined&endDepts=${this.msg.targetDept}&deptId=${res.deptId}`,
  492. });
  493. } else {
  494. uni.navigateTo({
  495. url: "../receiptpage/receiptpage",
  496. });
  497. }
  498. } else {
  499. uni.showToast({
  500. icon: "none",
  501. title: res.msg || "接口获取数据失败!",
  502. });
  503. }
  504. });
  505. },
  506. // 确认数量并建单
  507. createOrder() {
  508. console.log(this.list);
  509. const speNum0Depts = this.list.filter(v => v.speNum === 0);
  510. const speNumNot0Depts = this.list.filter(v => v.speNum !== 0);
  511. if(!speNumNot0Depts.length){
  512. uni.showModal({
  513. title: '提示',
  514. content: "您所有科室本轮配送均无标本,无法建单!",
  515. showCancel: false,
  516. success: (res) => {
  517. if (res.confirm) {
  518. console.log('用户点击确定');
  519. } else if (res.cancel) {
  520. console.log('用户点击取消');
  521. }
  522. }
  523. });
  524. }else{
  525. if(speNum0Depts.length){
  526. const speNum0DeptsName = speNum0Depts.map(v => v.deptName).toString();
  527. this.models = {
  528. disjunctor: true,
  529. title: "提示",
  530. content: `您有科室本轮配送无标本,是否清除。科室分别为:<span class="red">${speNum0DeptsName}</span>`,
  531. icon: "warn",
  532. operate: {
  533. ok: "是",
  534. no: '否',
  535. cancel: "取消",
  536. },
  537. };
  538. }else{
  539. uni.showModal({
  540. title: '提示',
  541. content: "您确认建单吗?",
  542. success: (res) => {
  543. if (res.confirm) {
  544. console.log('用户点击确定');
  545. this.createOrderFun();
  546. } else if (res.cancel) {
  547. console.log('用户点击取消');
  548. }
  549. }
  550. });
  551. }
  552. }
  553. },
  554. },
  555. onLoad(options) {
  556. console.log(options, "快捷建单");
  557. this.msg = JSON.parse(options.infoDATA);
  558. this.getList();
  559. this.getSpecimenTaskTypeConfig();
  560. // #ifdef APP-PLUS
  561. webHandle("no", "app");
  562. // #endif
  563. // #ifdef H5
  564. webHandle("no", "wx");
  565. // #endif
  566. },
  567. onPullDownRefresh() {
  568. this.getList();
  569. },
  570. };
  571. </script>
  572. <style lang="less" scoped>
  573. /deep/ .uni-collapse-item--border{
  574. border-bottom-color: #fff !important;
  575. }
  576. /deep/ .uni-collapse-item__title-arrow{
  577. margin-right: 0 !important;
  578. }
  579. .specimenChecking {
  580. padding-bottom: 100rpx;
  581. .title {
  582. font-size: 48rpx;
  583. margin-top: 24rpx;
  584. margin-bottom: 24rpx;
  585. text-align: center;
  586. }
  587. .page_item_wrap {
  588. width: 100%;
  589. height: auto;
  590. box-sizing: border-box;
  591. position: relative;
  592. margin-bottom: 16rpx;
  593. .page_item {
  594. margin-top: 16rpx;
  595. margin-bottom: 124rpx;
  596. background: #fff;
  597. border-radius: 8rpx;
  598. margin: 0 20rpx;
  599. border: 2rpx solid #e5e9ed;
  600. position: relative;
  601. overflow: hidden;
  602. padding: 0 16rpx;
  603. .L {
  604. width: 40rpx;
  605. height: 40rpx;
  606. border-radius: 50%;
  607. background: #f9fafb;
  608. position: absolute;
  609. left: -20rpx;
  610. top: 68rpx;
  611. border: 2rpx solid #e5e9ed;
  612. }
  613. .R {
  614. width: 40rpx;
  615. height: 40rpx;
  616. border-radius: 50%;
  617. background: #f9fafb;
  618. position: absolute;
  619. float: right;
  620. right: -20rpx;
  621. top: 68rpx;
  622. border: 2rpx solid #e5e9ed;
  623. }
  624. .starting {
  625. width: 50rpx;
  626. height: 50rpx;
  627. color: #fff;
  628. background: #49b856;
  629. display: inline-block;
  630. border-radius: 50%;
  631. text-align: center;
  632. line-height: 46rpx;
  633. font-size: 32rpx;
  634. margin-right: 6rpx;
  635. }
  636. .End {
  637. width: 50rpx;
  638. height: 50rpx;
  639. color: #fff;
  640. background: #39b199;
  641. display: inline-block;
  642. border-radius: 50%;
  643. text-align: center;
  644. line-height: 46rpx;
  645. font-size: 32rpx;
  646. margin-right: 6rpx;
  647. }
  648. .page_item_top {
  649. // height: 88rpx;
  650. // border-bottom: 2rpx dashed #e5e9ed;
  651. padding: 20rpx 16rpx;
  652. .page_item_cont_title_coll{
  653. display: flex;
  654. justify-content: space-between;
  655. align-items: center;
  656. margin-right: 8rpx;
  657. .page_item_top-inner {
  658. display: flex;
  659. justify-content: space-between;
  660. align-items: center;
  661. height: 100%;
  662. width: 100%;
  663. .page_item_top_L {
  664. .emergencys {
  665. background: #ff3b53 !important;
  666. width: 124rpx !important;
  667. }
  668. .emergency {
  669. background: #ff3b53 !important;
  670. }
  671. .emergency1 {
  672. background: #49b856 !important;
  673. }
  674. .page_item_cont_start {
  675. text-align: center;
  676. height: 44rpx;
  677. width: 104rpx;
  678. line-height: 44rpx;
  679. border-radius: 8rpx;
  680. background: #49b856;
  681. color: #fff;
  682. display: inline-block;
  683. }
  684. .L_time {
  685. color: #6cc076;
  686. font-size: 32rpx;
  687. }
  688. .L_text {
  689. font-size: 32rpx;
  690. font-weight: 700;
  691. }
  692. }
  693. .page_item_top_R {
  694. font-size: 32rpx;
  695. .L_iocn {
  696. color: rgb(7, 134, 60);
  697. font-size: 36rpx;
  698. font-weight: 700;
  699. }
  700. }
  701. }
  702. }
  703. .content{
  704. display: flex;
  705. flex-wrap: wrap;
  706. .list{
  707. font-size: 28rpx;
  708. height: 60rpx;
  709. line-height: 60rpx;
  710. width: 50%;
  711. border-bottom: 1rpx solid #E6E6E6;
  712. }
  713. }
  714. }
  715. .underline-item{
  716. // text-decoration: underline;
  717. // margin-right: 40rpx;
  718. }
  719. .page_item_cont {
  720. min-height: 90rpx;
  721. padding: 0 16rpx;
  722. text-align: left;
  723. position: relative;
  724. .text_big {
  725. font-size: 32rpx;
  726. font-weight: 700;
  727. margin-top: 10rpx;
  728. p {
  729. font-weight: 700;
  730. line-height: 1.5;
  731. }
  732. }
  733. .page_item_cont_T {
  734. padding-top: 28rpx;
  735. font-size: 28rpx;
  736. .page_item_cont_title {
  737. height: 100%;
  738. font-size: 32rpx;
  739. display: flex;
  740. justify-content: space-between;
  741. }
  742. }
  743. .page_item_cont_B {
  744. padding-top: 28rpx;
  745. margin-bottom: 28rpx;
  746. .page_item_cont_title {
  747. font-size: 32rpx;
  748. display: flex;
  749. justify-content: space-between;
  750. }
  751. .page_item_cont_title1 {
  752. height: 60rpx;
  753. line-height: 60rpx;
  754. font-size: 32rpx;
  755. padding-left: 64rpx;
  756. }
  757. }
  758. }
  759. .page_item_foot {
  760. border-top: 2rpx dashed #e5e9ed;
  761. border-bottom: 2rpx dashed #e5e9ed;
  762. padding: 28rpx 16rpx;
  763. text-align: left;
  764. .page_item_foot_text {
  765. font-size: 32rpx;
  766. margin-bottom: 20rpx;
  767. .text1 {
  768. color: rgb(102, 102, 102);
  769. }
  770. .text2 {
  771. float: right;
  772. font-weight: 700;
  773. }
  774. }
  775. }
  776. #infos {
  777. display: none;
  778. }
  779. .page_item_infos {
  780. padding-bottom: 20rpx;
  781. border-bottom: 2rpx dashed #e5e9ed;
  782. .page_item_info2 {
  783. text-align: left;
  784. line-height: 60rpx;
  785. font-size: 32rpx;
  786. padding-left: 16rpx;
  787. .page_item_foot_text {
  788. font-size: 32rpx;
  789. margin-bottom: 20rpx;
  790. .text1 {
  791. color: rgb(102, 102, 102);
  792. }
  793. .text2 {
  794. float: right;
  795. font-weight: 700;
  796. }
  797. }
  798. }
  799. }
  800. }
  801. .L-l {
  802. width: 2rpx;
  803. height: 40rpx;
  804. background: #f9fafb;
  805. position: absolute;
  806. left: 20rpx;
  807. top: 72rpx;
  808. }
  809. .R-l {
  810. width: 2rpx;
  811. height: 40rpx;
  812. background: #f9fafb;
  813. position: absolute;
  814. right: 20rpx;
  815. top: 72rpx;
  816. }
  817. }
  818. .foot_btn2 {
  819. position: fixed;
  820. bottom: 0;
  821. width: 100vw;
  822. padding: 0 20rpx;
  823. box-sizing: border-box;
  824. line-height: 66rpx;
  825. height: 100rpx;
  826. border-top: 2rpx solid #e5e9ed;
  827. background: #f9fafb;
  828. text-align: center;
  829. display: flex;
  830. justify-content: center;
  831. align-items: center;
  832. .btn2 {
  833. height: 66rpx;
  834. flex: 1;
  835. margin: 16rpx 16rpx 0;
  836. background-image: linear-gradient(to right, #72c172, #3bb197);
  837. color: #fff;
  838. border-radius: 8rpx;
  839. font-size: 32rpx;
  840. }
  841. }
  842. }
  843. </style>