index.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836
  1. <template>
  2. <view>
  3. <nav-bar :navbarData="navbarData"></nav-bar>
  4. <view :style="`margin-top: ${height * 2 - 20}rpx; height: calc(100vh - ${height * 2 - 2}rpx)`">
  5. <view class="userbg" :style="`background-image:url(${imgDomain}/images/icon/bg_patients_bg.png)`">
  6. <view class="search">
  7. <van-row>
  8. <view class="searchcontent">
  9. <input
  10. type="text"
  11. class="search-input"
  12. placeholder="输入电话,登记号,身份证,姓名,病案号搜索"
  13. placeholder-style="color: #999"
  14. @input="handleInput"
  15. />
  16. </view>
  17. <view class="scan" @tap="scan">
  18. <image :src="`${imgDomain}/images/icon/ydhl_scan.png`" class="custom-icon" />
  19. </view>
  20. </van-row>
  21. </view>
  22. <view class="user" :style="`background-image:url(${imgDomain}/images/icon/bg_user.png)`">
  23. <view class="usericon">
  24. <image class="icon" :src="`${imgDomain}/images/icon/avatar_nurse.png`"></image>
  25. </view>
  26. <view class="userinfo">
  27. <view class="date">{{ dateStr }}</view>
  28. <view class="username">
  29. {{ userData.userName }}
  30. <span class="but-span">
  31. <view class="userout" @tap="userOutFun">退出登录</view>
  32. <view class="changeloc" @tap="changeloc">切换科室</view>
  33. </span>
  34. </view>
  35. </view>
  36. </view>
  37. <progress :percent="percent" activeColor="#D52424" stroke-width="1"></progress>
  38. </view>
  39. <view class="wardtitle">
  40. <text style="padding-left: 3px">在院患者 ({{ userData.locDesc }})</text>
  41. </view>
  42. <view class="patcontent">
  43. <view
  44. class="patlist"
  45. @tap="gotoPatMainPage(item)"
  46. v-for="(item, index) in wardPatList"
  47. :key="index"
  48. >
  49. <van-cell
  50. :icon="item.patSexCode === '1' ? `${imgDomain}/images/icon/gender-male.png` : `${imgDomain}/images/icon/gender-female.png`"
  51. use-label-slot
  52. >
  53. <van-row slot="title" class="topinfo">
  54. <van-col span="4">{{ item.admBedCode }}</van-col>
  55. <van-col span="15">
  56. <view style="overflow: hidden; text-overflow: ellipsis; white-space: nowrap">
  57. {{ item.patName }}
  58. </view>
  59. </van-col>
  60. <van-col span="5">
  61. <view class="paticon">
  62. <view
  63. :style="`width:18px;height:18px;background:url(${imgDomain}/images/mobilenurse/bedicon.png);background-position: ${getposition(iconitem)}`"
  64. v-for="(iconitem, iconindex) in item.admIcon"
  65. :key="iconindex"
  66. ></view>
  67. </view>
  68. </van-col>
  69. </van-row>
  70. <van-row slot="label" class="bottominfo">
  71. <van-col span="19">入院时间: {{ item.admDatetime }}</van-col>
  72. <van-col span="5">
  73. <view v-if="item.nurseLv === '特级'" class="nurse-lv-css-red">{{ item.nurseLv }}</view>
  74. <view v-if="item.nurseLv === '一级'" class="nurse-lv-css-pink">{{ item.nurseLv }}</view>
  75. <view v-if="item.nurseLv === '二级'" class="nurse-lv-css-blue">{{ item.nurseLv }}</view>
  76. <view v-if="item.nurseLv === '三级'" class="nurse-lv-css-greenyellow">{{ item.nurseLv }}</view>
  77. </van-col>
  78. </van-row>
  79. </van-cell>
  80. </view>
  81. </view>
  82. </view>
  83. <van-action-sheet
  84. :show="showchangeLoc"
  85. title="请选择科室"
  86. @close="onClose"
  87. @cancel="onClose"
  88. >
  89. <van-cell
  90. :title="loc.logonGroupDesc"
  91. :label="loc.logonHospDesc"
  92. :value="loc.logonLocDesc"
  93. value-class="locclass"
  94. :class="curLoc === index ? 'locitemcur' : 'locitem'"
  95. label-class="label"
  96. title-class="title"
  97. @tap="changeToLoc(loc, index)"
  98. v-for="(loc, index) in locList"
  99. :key="index"
  100. ></van-cell>
  101. </van-action-sheet>
  102. </view>
  103. </template>
  104. <script setup>
  105. import { ref, onMounted, onUnmounted, computed } from 'vue';
  106. import { httpconfig } from '../../config/httpconfig';
  107. import WXBizDataCrypt from '../../utils/WXBizDataCrypt';
  108. import { onLoad ,onShow } from '@dcloudio/uni-app';
  109. import Util from '../../utils/util.js';
  110. import Common from '../../utils/common.js';
  111. import { $http } from '../../config/https';
  112. import navBar from '@/pages/components/navbar/index';
  113. // 工具函数(替代原wxs模块)
  114. const getspan = (widh) => {
  115. return widh.replace("px", "");
  116. };
  117. const findPat = (patinfo, searchData) => {
  118. if (!searchData) return 1;
  119. const searchStr = searchData.toUpperCase();
  120. return (
  121. patinfo.patName.includes(searchData) ||
  122. patinfo.admBedCode.includes(searchData) ||
  123. patinfo.patID.includes(searchData) ||
  124. patinfo.patNameSpell.includes(searchStr) ||
  125. patinfo.patNo.includes(searchStr) ||
  126. patinfo.patMedicalNo.includes(searchStr) ||
  127. patinfo.admID === searchData
  128. ) ? 1 : 0;
  129. };
  130. const getposition = (iconitem) => {
  131. return `-${(iconitem.position % 10 - 1) * 18}px -${Math.floor(iconitem.position / 10) * 18}px`;
  132. };
  133. // 响应式数据
  134. const height = ref('');
  135. const navbarData = ref({
  136. background: '',
  137. title: '普瑞眼科移动护理',
  138. height: '100',
  139. bottom: true,
  140. isGoBack: false,
  141. cleanPat: 'Y'
  142. });
  143. const userData = ref(uni.getStorageSync('userData') || {});
  144. const patInfo = ref(uni.getStorageSync('patInfo') || {});
  145. const patColums = ref([]);
  146. const templateList = ref([{
  147. icon: `${httpconfig.imgDomain}/images/icon/mine-address.png`,
  148. title: '巡视单',
  149. value: '',
  150. url: ''
  151. }]);
  152. const timer = ref(null);
  153. const dateStr = ref('2020年11月15日 14:25 星期三');
  154. const searchData = ref('');
  155. const countTime = ref(1500);
  156. const searchWaiting = ref(false);
  157. const showchangeLoc = ref(false);
  158. const imgDomain = ref(httpconfig.imgDomain);
  159. const locList = ref([]);
  160. const curLoc = ref(-1);
  161. const wardPatList = ref('');
  162. const percent = ref(0);
  163. const downLineShow = ref(true);
  164. onShow(() => {
  165. try {
  166. const pages = getCurrentPages()
  167. if (pages.length > 0) {
  168. const currentPage = pages[pages.length - 1]
  169. const currentRoute = currentPage.route // 当前页面路由
  170. // 更新全局变量
  171. if (uni.$appGlobal) {
  172. uni.$appGlobal.globalData.value.currentRoute = currentRoute
  173. }
  174. }
  175. } catch (err) {
  176. console.error('更新当前路由失败:', err)
  177. }
  178. })
  179. // 生命周期
  180. onMounted(() => {
  181. // 页面显示时执行
  182. if (!imgDomain.value) {
  183. imgDomain.value = uni.getStorageSync('appUrlAddress');
  184. }
  185. const storedUserData = uni.getStorageSync('userData');
  186. const storedPatInfo = uni.getStorageSync('patInfo');
  187. if (storedUserData) {
  188. userData.value = storedUserData;
  189. patInfo.value = storedPatInfo;
  190. }
  191. getAuthorityApply();
  192. if (patColums.value.length === 0) {
  193. getPatInfoColumns();
  194. }
  195. showTime();
  196. getAppVersion();
  197. });
  198. onUnmounted(() => {
  199. if (timer.value) {
  200. clearInterval(timer.value);
  201. }
  202. });
  203. // 获取应用版本
  204. const getAppVersion = async () => {
  205. const appInfo = uni.getAppBaseInfo();
  206. const appVersion = appInfo.appVersion;
  207. const appVersionMessage = await getAppVersionMessage();
  208. $http.post('urlDeault',this, {
  209. code: '02010011',
  210. data: {
  211. params: [{ propId: '76||377' }]
  212. },
  213. success: (res) => {
  214. if (+res.errorCode === 0) {
  215. const setValue = res.result.rows[0].setValue;
  216. if (setValue > appVersion) {
  217. uni.showModal({
  218. title: `检测到新版本V${setValue}`,
  219. content: appVersionMessage.replace(/\\n/g, '\n'),
  220. confirmText: '开始下载更新',
  221. cancelText: '稍后更新',
  222. complete: (res) => {
  223. if (res.confirm) {
  224. downAppApk(setValue);
  225. }
  226. }
  227. });
  228. }
  229. }
  230. }
  231. });
  232. };
  233. const getAppVersionMessage = () => {
  234. return new Promise((resolve) => {
  235. $http.post('urlDeault',this, {
  236. code: '02010011',
  237. data: {
  238. params: [{ propId: '76||400' }]
  239. },
  240. success: (res) => {
  241. if (+res.errorCode === 0) {
  242. const setMessage = res.result.rows[0].setValue;
  243. resolve(setMessage);
  244. } else {
  245. resolve('是否立即下载更新?');
  246. }
  247. },
  248. fail: () => {
  249. resolve('是否立即下载更新?');
  250. }
  251. });
  252. });
  253. };
  254. const downAppApk = (setValue) => {
  255. const appUrlAddress = uni.getStorageSync('appUrlAddress');
  256. const downloadTask = uni.downloadFile({
  257. url: `${appUrlAddress}/images/apk/ydhl-${setValue}.apk`,
  258. success: (downloadResult) => {
  259. plus.runtime.install(
  260. downloadResult.tempFilePath,
  261. { force: true },
  262. () => {
  263. uni.showToast({ title: '更新成功,重启中', icon: 'none' });
  264. plus.runtime.restart();
  265. }
  266. );
  267. },
  268. fail: (res) => {
  269. uni.showToast({ title: `download apk fail: ${res}`, icon: 'none' });
  270. },
  271. complete: () => {
  272. downloadTask.offProgressUpdate();
  273. }
  274. });
  275. downloadTask.onProgressUpdate((res) => {
  276. percent.value = res.progress;
  277. });
  278. };
  279. const gotoPatMainPage = (patInfoData) => {
  280. Util.getPatInfo(patInfoData.admID, () => {
  281. uni.navigateTo({ url: '../patMainPage/patMainPage' });
  282. });
  283. };
  284. const gotoPage = (e) => {
  285. const flag = e.currentTarget.dataset.flag;
  286. if (flag === 'Pat') {
  287. uni.navigateTo({ url: '../wardPatList/wardPatList' });
  288. } else if (flag === 'template') {
  289. const patInfo = uni.getStorageSync('patInfo');
  290. if (!patInfo) {
  291. uni.showModal({
  292. title: '提示',
  293. content: '无患者信息,请先扫描患者腕带或选择患者!!!',
  294. showCancel: false,
  295. confirmText: '知道了'
  296. });
  297. return;
  298. }
  299. const itemdata = e.currentTarget.dataset.itemdata;
  300. uni.navigateTo({
  301. url: `../nurseRecordList/nurseRecordList?templateID=${itemdata.id}&title=${itemdata.IEMRTemplateDesc}列表`
  302. });
  303. }
  304. };
  305. const scan = () => {
  306. uni.scanCode({
  307. success: (res) => {
  308. const scValue = res.result;
  309. if (scValue.length > 20) {
  310. uni.navigateTo({ url: scValue });
  311. } else {
  312. Util.getPatInfoNew(res.result, () => {
  313. uni.navigateTo({ url: '../patMainPage/patMainPage' });
  314. });
  315. }
  316. }
  317. });
  318. };
  319. const getPatInfo = (admID) => {
  320. $http.post('urlDeault',this, {
  321. code: '03030002',
  322. data: { params: [{ admID }] },
  323. success: (res) => {
  324. if (+res.errorCode === 0) {
  325. patInfo.value = res.result;
  326. uni.setStorage({ key: 'patInfo', data: res.result });
  327. }
  328. }
  329. });
  330. };
  331. const getAuthorityApply = () => {
  332. const storedUserData = uni.getStorageSync('userData');
  333. if (storedUserData) {
  334. userData.value = storedUserData;
  335. getWardPatList();
  336. } else {
  337. gotoAuthority();
  338. }
  339. };
  340. const gotoAuthority = () => {
  341. uni.reLaunch({ url: '../authentication/authentication' });
  342. };
  343. const getPatInfoColumns = () => {
  344. const data = {
  345. params: [{ compontName: 'MobileNursePatInfo', type: 'C', reactCode: [] }]
  346. };
  347. $http.post('urlDeault',this, {
  348. code: '01040073',
  349. data,
  350. success: (res) => {
  351. if (+res.errorCode === 0) {
  352. if (res.result.C) {
  353. patColums.value = res.result.C;
  354. } else {
  355. uni.showToast({ title: '未获取到病人信息维护,请联系信息中心', icon: 'none' });
  356. }
  357. } else {
  358. uni.showToast({ title: res.errorMessage, icon: 'none' });
  359. }
  360. }
  361. });
  362. };
  363. const getTemplateList = () => {
  364. const patInfo = uni.getStorageSync('patInfo');
  365. const userData = uni.getStorageSync('userData');
  366. const data = {
  367. params: [{
  368. hospID: userData.hospID,
  369. admID: patInfo.admInfo ? patInfo.admInfo.admID : '',
  370. useFlag: 'N'
  371. }]
  372. };
  373. $http.post('urlDeault',this, {
  374. code: '10020001',
  375. data,
  376. success: (res) => {
  377. templateList.value = res.result.TemplateList;
  378. }
  379. });
  380. };
  381. const getWardPatList = () => {
  382. const userData = uni.getStorageSync('userData');
  383. uni.showLoading({ title: '数据加载中...' });
  384. $http.post('urlDeault',this, {
  385. code: '04020025',
  386. data: {
  387. params: [{ wardID: userData.locID, patMessage: searchData.value || '' }]
  388. },
  389. success: (res) => {
  390. uni.hideLoading();
  391. if (+res.errorCode === 0) {
  392. wardPatList.value = res.result.patList;
  393. showchangeLoc.value = false;
  394. } else if (['01040053', '01040054', '01040055'].includes(res.errorCode)) {
  395. getWardPatList();
  396. }
  397. }
  398. });
  399. };
  400. const changeloc = () => {
  401. getLocList();
  402. };
  403. const userOutFun = () => {
  404. uni.showModal({
  405. title: '退出登录',
  406. content: '您确定要退出当前登录工号吗?',
  407. success: (res) => {
  408. if (res.confirm) {
  409. uni.removeStorageSync('userData');
  410. gotoAuthority();
  411. }
  412. }
  413. });
  414. };
  415. const onClose = () => {
  416. showchangeLoc.value = false;
  417. };
  418. const showTime = () => {
  419. const showDay = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
  420. timer.value = setInterval(() => {
  421. const time = new Date();
  422. const year = time.getFullYear();
  423. const month = time.getMonth() + 1;
  424. const date = time.getDate();
  425. const day = time.getDay();
  426. const hour = time.getHours().toString().padStart(2, '0');
  427. const minutes = time.getMinutes().toString().padStart(2, '0');
  428. const second = time.getSeconds().toString().padStart(2, '0');
  429. dateStr.value = `${year}年${month}月${date}日 ${hour}:${minutes}:${second} ${showDay[day]}`;
  430. }, 1000);
  431. };
  432. const handleInput = (val) => {
  433. let inputvalue = val.detail.value.replace(/\s+/g, '');
  434. if (inputvalue.length === 10) {
  435. searchData.value = '';
  436. Util.getPatInfoNew(inputvalue, () => {
  437. uni.navigateTo({ url: '../patMainPage/patMainPage' });
  438. });
  439. } else {
  440. searchData.value = inputvalue;
  441. if (!searchWaiting.value) {
  442. searchTimer();
  443. }
  444. }
  445. };
  446. const searchTimer = () => {
  447. searchWaiting.value = true;
  448. const setTimer = setInterval(() => {
  449. countTime.value -= 500;
  450. if (countTime.value <= 0) {
  451. countTime.value = 1500;
  452. searchWaiting.value = false;
  453. clearInterval(setTimer);
  454. getWardPatList();
  455. }
  456. }, 500);
  457. };
  458. const getLocList = () => {
  459. const userData = uni.getStorageSync('userData');
  460. const data = {
  461. params: [{
  462. currentLocFlag: 'Y',
  463. language: 'CN',
  464. userCode: userData.userCode
  465. }]
  466. };
  467. $http.post('urlDeault',this, {
  468. code: '01040043',
  469. data,
  470. success: (res) => {
  471. if (+res.errorCode === 0) {
  472. let currentIndex = -1;
  473. const logonLocAry = res.result.logonLocAry;
  474. logonLocAry.forEach((locInfo, index) => {
  475. if (
  476. locInfo.logonLocID === userData.locID &&
  477. locInfo.logonHospID === userData.hospID &&
  478. locInfo.logonGroupID === userData.groupID
  479. ) {
  480. currentIndex = index;
  481. }
  482. });
  483. locList.value = logonLocAry;
  484. curLoc.value = currentIndex;
  485. showchangeLoc.value = true;
  486. }
  487. }
  488. });
  489. };
  490. const changeToLoc = (loc) => {
  491. const updatedUserData = { ...userData.value };
  492. updatedUserData.locID = loc.logonLocID;
  493. updatedUserData.locDesc = loc.logonLocDesc;
  494. updatedUserData.groupID = loc.logonGroupID;
  495. updatedUserData.groupDesc = loc.logonGroupDesc;
  496. updatedUserData.hospID = loc.logonHospID;
  497. updatedUserData.hospDesc = loc.logonHospDesc;
  498. updatedUserData.hospCode = loc.logonHospCode;
  499. userData.value = updatedUserData;
  500. uni.setStorage({
  501. key: 'userData',
  502. data: updatedUserData,
  503. success: () => {
  504. uni.removeStorage({ key: 'patInfo' });
  505. getWardPatList();
  506. }
  507. });
  508. };
  509. </script>
  510. <style>
  511. /* 保持原样式不变 */
  512. .pat {
  513. font-size: 30rpx;
  514. padding: 0 20rpx;
  515. }
  516. .patInfo {
  517. font-size: 26rpx;
  518. font-weight: 400;
  519. }
  520. .userbg {
  521. width: 100%;
  522. height: 340rpx;
  523. background-size: 100% auto;
  524. background-repeat: no-repeat;
  525. }
  526. .search {
  527. height: 100rpx;
  528. padding: 20rpx 30rpx 0;
  529. }
  530. .searchcontent {
  531. width: calc(100% - 120rpx);
  532. float: left;
  533. }
  534. .search-input {
  535. margin-top: 18rpx;
  536. height: 70rpx;
  537. border-radius: 40rpx;
  538. background-color: #ffffff;
  539. border: #007aff 1px solid;
  540. padding: 0rpx 10rpx;
  541. }
  542. .searchcontent .van-cell__title {
  543. max-width: 0 !important;
  544. min-width: 0 !important;
  545. -webkit-flex: 0;
  546. flex: 0;
  547. }
  548. .scan {
  549. width: 100rpx;
  550. padding-left: 16rpx;
  551. float: left;
  552. color: #fff;
  553. text-align: center;
  554. }
  555. .user {
  556. width: calc(100% - 30rpx);
  557. height: 200rpx;
  558. background-size: 100% auto;
  559. background-repeat: no-repeat;
  560. padding: 0 18rpx 20rpx;
  561. margin-top: -8rpx !important;
  562. }
  563. .usericon {
  564. border-radius: 50%;
  565. margin-left: 12rpx;
  566. background: #e3e4fc;
  567. height: 120rpx;
  568. width: 120rpx;
  569. text-align: center;
  570. line-height: 120rpx;
  571. float: left;
  572. margin: 40rpx 20rpx;
  573. }
  574. .userinfo {
  575. float: left;
  576. width: calc(100% - 190rpx);
  577. height: 120rpx;
  578. margin: 40rpx 0;
  579. line-height: 60rpx;
  580. padding-right: 30rpx;
  581. }
  582. .date {
  583. font-size: 15px;
  584. font-weight: 400;
  585. color: #333333;
  586. }
  587. .icon {
  588. height: 120rpx;
  589. width: 120rpx;
  590. border-radius: 50%;
  591. }
  592. .wardtitle {
  593. width: calc(100% - 56px);
  594. margin: 0 28rpx;
  595. height: 42rpx;
  596. font-size: 15px;
  597. border-left: 8rpx solid #007aff;
  598. font-weight: 400;
  599. color: #333333;
  600. line-height: 42rpx;
  601. margin-bottom: 10rpx;
  602. }
  603. .username {
  604. font-size: 14px;
  605. font-weight: 400;
  606. color: #666666;
  607. display: flex;
  608. justify-content: space-between;
  609. }
  610. .unwrite {
  611. color: red !important;
  612. font-size: 10px !important;
  613. }
  614. .but-span {
  615. display: flex;
  616. flex-direction: row;
  617. }
  618. .changeloc {
  619. width: 140rpx;
  620. height: 50rpx;
  621. background: #007aff;
  622. border-radius: 4px;
  623. font-size: 25rpx;
  624. color: #fff;
  625. line-height: 50rpx;
  626. border-radius: 8rpx;
  627. text-align: center;
  628. }
  629. .userout {
  630. width: 120rpx;
  631. height: 46rpx;
  632. border-radius: 4px;
  633. border: 1px solid;
  634. color: #007aff;
  635. font-size: 25rpx;
  636. line-height: 46rpx;
  637. border-radius: 8rpx;
  638. text-align: center;
  639. margin-right: 20rpx;
  640. }
  641. .write {
  642. color: #809aff !important;
  643. font-size: 10px !important;
  644. }
  645. .patcontent {
  646. overflow: auto;
  647. height: calc(100% - 500rpx);
  648. }
  649. .patlist .van-cell,
  650. .patlist .van-cell__left-icon-wrap {
  651. height: 120rpx !important;
  652. padding: 0 8px !important;
  653. }
  654. .patlist .van-cell__left-icon-wrap {
  655. line-height: 120rpx !important;
  656. }
  657. .patlist .van-icon--image,
  658. .patlist .van-icon__image {
  659. height: 90rpx !important;
  660. width: 90rpx !important;
  661. bottom: 20rpx !important;
  662. }
  663. .patlist .van-col {
  664. white-space: nowrap;
  665. min-height: 1px;
  666. }
  667. .patlist .van-cell__value {
  668. width: 0 !important;
  669. }
  670. .patlist .van-cell__title {
  671. padding-left: 10rpx;
  672. }
  673. .patlist .van-cell__right-icon-wrap {
  674. height: 100%;
  675. }
  676. .topinfo {
  677. font-size: 32rpx;
  678. font-weight: 400;
  679. color: #666666;
  680. height: 45rpx;
  681. line-height: 40rpx;
  682. padding-top: 8px;
  683. }
  684. .topinfo .van-col {
  685. text-align: left;
  686. }
  687. .paticon {
  688. display: flex;
  689. flex-direction: row;
  690. }
  691. .bottominfo {
  692. font-weight: 400;
  693. color: #999999;
  694. height: 40rpx;
  695. line-height: 40rpx;
  696. }
  697. /* 让row下的所有col内容左对齐 */
  698. .bottominfo .van-col {
  699. text-align: left;
  700. }
  701. .nurse-lv-css-red {
  702. background-color: red;
  703. color: #fff;
  704. border-radius: 4rpx;
  705. padding: 0rpx 18rpx;
  706. font-size: 20rpx;
  707. width: 50rpx;
  708. }
  709. .nurse-lv-css-pink {
  710. background-color: pink;
  711. color: #fff;
  712. border-radius: 4rpx;
  713. padding: 0rpx 18rpx;
  714. font-size: 20rpx;
  715. width: 50rpx;
  716. }
  717. .nurse-lv-css-greenyellow {
  718. background-color: rgb(93, 187, 93);
  719. color: #fff;
  720. border-radius: 4rpx;
  721. padding: 0rpx 18rpx;
  722. font-size: 20rpx;
  723. width: 50rpx;
  724. }
  725. .nurse-lv-css-blue {
  726. background-color: #007aff;
  727. color: #fff;
  728. border-radius: 4rpx;
  729. padding: 0rpx 18rpx;
  730. font-size: 20rpx;
  731. width: 50rpx;
  732. }
  733. .custom-icon {
  734. margin-top: 24rpx;
  735. width: 60rpx;
  736. height: 60rpx;
  737. }
  738. .locclass {
  739. font-size: 34rpx;
  740. font-weight: 500;
  741. color: #000 !important;
  742. }
  743. .locitem .van-cell {
  744. background: #fff;
  745. }
  746. .locitemcur .van-cell {
  747. background: #bfe6f8 !important;
  748. }
  749. .label {
  750. font-size: 32rpx !important;
  751. font-weight: 500;
  752. }
  753. .title {
  754. font-size: 34rpx;
  755. font-weight: 500;
  756. color: #000;
  757. }
  758. </style>