prescribeDetails.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457
  1. <template>
  2. <view class="content">
  3. <view class="cont" v-if="prescribe!=null">
  4. <view class="other-info" >
  5. <view class="title">处方笺</view>
  6. <view class="item">
  7. <view class="left">
  8. <text class="label">医生姓名:</text>
  9. <text class="text">{{prescribe.doctorName}} </text>
  10. </view>
  11. </view>
  12. <view class="item">
  13. <view class="left">
  14. <text class="label">患者姓名:</text>
  15. <text class="text">{{prescribe.userFamilyName}} </text>
  16. </view>
  17. </view>
  18. <view class="item">
  19. <view class="left">
  20. <text class="label">患者年龄:</text>
  21. <text class="text">{{prescribe.userFamilyAge}}岁 </text>
  22. </view>
  23. </view>
  24. <view class="item">
  25. <view class="left">
  26. <text class="label">患者性别:</text>
  27. <text class="text">{{prescribe.userFamilyGender==1?"男":"女"}} </text>
  28. </view>
  29. </view>
  30. </view>
  31. <view class="other-info " >
  32. <view class="item">
  33. <view class="left">
  34. <text class="label">处方单号:</text>
  35. <text class="text">{{prescribe.pid}}</text>
  36. </view>
  37. </view>
  38. <view class="item">
  39. <view class="left">
  40. <text class="label">开方时间:</text>
  41. <text class="text">{{prescribe.createdTime}}</text>
  42. </view>
  43. </view>
  44. <view class="item">
  45. <view class="left">
  46. <text class="label">医生诊断:</text>
  47. <view class="text">{{prescribe.tags}}</view>
  48. </view>
  49. </view>
  50. <view class="item" v-if="prescribe.status==2">
  51. <view class="left">
  52. <text class="label">审核意见:</text>
  53. <text class="text">{{prescribe.reason}}</text>
  54. </view>
  55. </view>
  56. </view>
  57. <view class="drug-cont" >
  58. <view class="title">药品信息</view>
  59. <view class="drug-item" v-for="(item) in drugs">
  60. <view class="drug">
  61. <view class="left">
  62. <image :src="item.image==''?'https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/shop/image/drug.svg':item.image" ></image>
  63. <view class="name-cont">
  64. <view class="name-box">
  65. <!-- <view class="tag" v-if="item.drugType==1">西药</view>
  66. <view class="tag" v-if="item.drugType==2">中药</view> -->
  67. <view class="name">{{item.drugName}}</view>
  68. </view>
  69. <view class="spec">{{item.spec}}</view>
  70. <view class="price">
  71. <view class="left">
  72. <!-- {{item.drugPrice}}元 -->
  73. </view>
  74. <view class="num" v-if="item.drugType==1">X{{item.amount}}</view>
  75. </view>
  76. </view>
  77. </view>
  78. </view>
  79. <!-- v-if="item.drugType==1" -->
  80. <view class="drug-use">
  81. <!-- <view class="name">用药频率:{{item.usageFrequencyUnit}}</view>
  82. <view class="name">单次用量:{{item.usagePerUseCount}}</view> -->
  83. <view class="name">使用说明:{{item.instructions}}</view>
  84. <!-- <view class="name">备注:{{item.remark}} </view> -->
  85. </view>
  86. </view>
  87. </view>
  88. <!-- <view class="other-info" v-if="prescribe.prescribeType==2" >
  89. <view class="title left">用药说明</view>
  90. <view class="item">
  91. <view class="left">
  92. <text class="label">用药数量:</text>
  93. <text class="text"> {{usage.counts}}</text>
  94. </view>
  95. </view>
  96. <view class="item">
  97. <view class="left">
  98. <text class="label">用药频率:</text>
  99. <text class="text"> {{usage.usageFrequencyUnit}}</text>
  100. </view>
  101. </view>
  102. <view class="item">
  103. <view class="left">
  104. <text class="label">单次用量:</text>
  105. <text class="text">{{usage.usagePerUseCount}} </text>
  106. </view>
  107. </view>
  108. <view class="item">
  109. <view class="left">
  110. <text class="label">用药方法:</text>
  111. <text class="text">{{usage.usageMethod}} </text>
  112. </view>
  113. </view>
  114. <view class="item">
  115. <view class="left">
  116. <text class="label">备注:</text>
  117. <text class="text">{{usage.remark}} </text>
  118. </view>
  119. </view>
  120. </view>
  121. <view v-if="prescribe.status==1" class="other-info">
  122. <view class="sign">
  123. 出方医生签名
  124. <image :src="prescribe.doctorSignUrl"></image>
  125. </view>
  126. <view class="sign">
  127. 处方医生签名
  128. <image :src="prescribe.prescribeDoctorSignUrl"></image>
  129. </view>
  130. <view class="sign">
  131. 药师签名
  132. <image :src="prescribe.drugDoctorSignUrl"></image>
  133. </view>
  134. </view> -->
  135. <view class="drug-cont" v-if="prescribe.dstFilePath">
  136. <view class="title">处方单</view>
  137. <image style="width: 100%;" :src="prescribe.dstFilePath" mode="widthFix" @click="showImg"></image>
  138. </view>
  139. <view class="btn-box">
  140. <view class="btn pay" v-if="prescribe.storeOrderId!=null&&prescribe.storeOrderId>0&&prescribe.status==1" @click="navTo('/pages_order/storeOrderDetail?orderId='+prescribe.storeOrderId)">药品订单</view>
  141. </view>
  142. </view>
  143. </view>
  144. </template>
  145. <script >
  146. import {getPrescribeById} from '@/api/prescribe.js'
  147. export default {
  148. data() {
  149. return {
  150. doctor:null,
  151. drugs:[],
  152. prescribe:null,
  153. prescribeId:null,
  154. usage:{}
  155. }
  156. },
  157. onLoad(options) {
  158. if(options.prescribeId!=null){
  159. this.prescribeId=options.prescribeId;
  160. }
  161. else if (options.hasOwnProperty('q') && options.q) {
  162. // 通过下面这步解码,可以拿到url的值
  163. const url = decodeURIComponent(options.q)
  164. // // 对url中携带的参数提取处理
  165. const obj = this.$urlToObj(url)
  166. this.prescribeId=obj.prescribeId;
  167. }
  168. },
  169. onShow() {
  170. this.getPrescribeById();
  171. },
  172. methods: {
  173. showImg(item) {
  174. //预览图片
  175. uni.previewImage({
  176. urls: [this.prescribe.dstFilePath],
  177. current: 0
  178. });
  179. },
  180. navTo(url){
  181. uni.navigateTo({
  182. url: url
  183. })
  184. },
  185. copyOrderSn() {
  186. uni.setClipboardData({
  187. data: this.order.orderSn,
  188. success: function () {
  189. uni.showToast({
  190. title:'复制成功',
  191. icon:'none'
  192. })
  193. }
  194. })
  195. },
  196. getPrescribeById(){
  197. var data={prescribeId:this.prescribeId}
  198. getPrescribeById(this.prescribeId).then(
  199. res => {
  200. if(res.code==200){
  201. this.prescribe=res.data;
  202. this.drugs=res.data.drugRspList;
  203. // this.doctor=res.data.doctor;
  204. this.usage=JSON.parse(this.prescribe.usageJson)
  205. }
  206. },
  207. err => {
  208. }
  209. );
  210. },
  211. navTo(url){
  212. uni.navigateTo({
  213. url: url
  214. })
  215. }
  216. }
  217. }
  218. </script>
  219. <style lang="scss">
  220. page{
  221. background: #f6f6f6;
  222. }
  223. </style>
  224. <style scoped lang="scss">
  225. .content{
  226. position: relative;
  227. .cont{
  228. position: relative;
  229. padding: 0rpx 20rpx 120rpx;
  230. z-index: 999;
  231. width: 100%;
  232. display: flex;
  233. flex-direction: column;
  234. }
  235. .other-info{
  236. margin-top: 20upx;
  237. background-color: #fff;
  238. border-radius: 20upx;
  239. padding: 0 30upx;
  240. .title{
  241. text-align: center;
  242. height: 80upx;
  243. line-height: 80upx;
  244. font-size: 32upx;
  245. color: #000;
  246. font-weight: bold;
  247. }
  248. .left{
  249. text-align: left;
  250. }
  251. .item{
  252. min-height: 80upx;
  253. display: flex;
  254. align-items: center;
  255. justify-content: space-between;
  256. &:last-child{
  257. border-bottom: none;
  258. }
  259. .left{
  260. flex: 1;
  261. display: flex;
  262. align-items: center;
  263. .label{
  264. min-width: 140rpx;
  265. font-size: 28upx;
  266. color: #000;
  267. }
  268. .text{
  269. font-size: 28upx;
  270. color: #1b1b1b;
  271. }
  272. }
  273. }
  274. .sign{
  275. width: 100%;
  276. display: flex;
  277. align-items: center;
  278. justify-content: flex-start;
  279. margin: 15rpx 0rpx;
  280. color: #9B9B9B;
  281. font-size: 24rpx;
  282. image{
  283. margin-left: 20rpx;
  284. width: 240rpx;
  285. height: 100rpx;
  286. }
  287. }
  288. }
  289. .drug-cont{
  290. margin-top: 20upx;
  291. background-color: #fff;
  292. border-radius: 20upx;
  293. padding: 0 30upx 30rpx;
  294. .title{
  295. height: 80upx;
  296. line-height: 80upx;
  297. font-size: 30upx;
  298. color: #000;
  299. font-weight: bold;
  300. border-bottom: 1upx solid #eeeeee;
  301. margin-bottom: 10rpx;
  302. }
  303. .drug-item{
  304. padding: 15rpx;
  305. background-color: #f8f8f8;
  306. display: flex;
  307. flex-direction: column;
  308. align-items: flex-start;
  309. justify-content: flex-start;
  310. margin-bottom: 10rpx;
  311. &:last-child{
  312. margin-bottom: 0rpx;
  313. }
  314. .drug{
  315. width: 100%;
  316. display: flex;
  317. align-items: flex-start;
  318. justify-content: space-between;
  319. .left{
  320. width:100%;
  321. display: flex;
  322. align-items: flex-start;
  323. justify-content: flex-start;
  324. image{
  325. border-radius: 5rpx;
  326. width:100rpx;
  327. height:100rpx;
  328. }
  329. .name-cont{
  330. width: calc(100% - 110rpx);
  331. margin-left: 10rpx;
  332. display: flex;
  333. flex-direction: column;
  334. align-items: flex-start;
  335. justify-content: space-between;
  336. .name-box{
  337. width: 100%;
  338. display: flex;
  339. align-items: flex-start;
  340. justify-content: flex-start;
  341. .tag{
  342. width: 80rpx;
  343. display: flex;
  344. align-items: center;
  345. justify-content: center;
  346. border-radius: 5rpx;
  347. font-size: 24rpx;
  348. border: 1rpx solid #2583EB;
  349. color: #2583EB;
  350. background-color: #f6fefb;
  351. }
  352. .name{
  353. width: calc(100% - 85rpx );
  354. margin-left: 5rpx;
  355. font-size: 30rpx;
  356. color: #111;
  357. }
  358. }
  359. .spec{
  360. font-size: 24rpx;
  361. color: #bfbfbf;
  362. }
  363. .price{
  364. width: 100%;
  365. display: flex;
  366. align-items: center;
  367. justify-content: space-between;
  368. .left{
  369. font-size: 24rpx;
  370. color: red;
  371. }
  372. .num{
  373. font-size: 26rpx;
  374. color: #111;
  375. }
  376. }
  377. }
  378. }
  379. }
  380. .drug-use{
  381. margin: 10rpx 0rpx;
  382. .name{
  383. margin-top: 10rpx;
  384. font-size: 24rpx;
  385. color: #bfbfbf;
  386. }
  387. }
  388. .btns{
  389. width: 100%;
  390. display: flex;
  391. align-items: center;
  392. justify-content: flex-end;
  393. .btn{
  394. margin-left: 10rpx;
  395. border-radius: 30rpx;
  396. border: 1rpx solid #2583EB;
  397. color: #2583EB;
  398. font-size: 26rpx;
  399. padding: 5rpx 15rpx;
  400. }
  401. .red{
  402. border: 1rpx solid red;
  403. color: red;
  404. }
  405. .green{
  406. border: 1rpx solid #2583EB;
  407. color: #2583EB;
  408. }
  409. }
  410. }
  411. }
  412. .btn-box{
  413. height: 100rpx;
  414. z-index: 9999;
  415. width: 100%;
  416. padding: 0rpx 30upx;
  417. position: fixed;
  418. bottom: 0;
  419. left: 0;
  420. box-sizing: border-box;
  421. background-color: #ffffff;
  422. display: flex;
  423. align-items: center;
  424. justify-content: flex-end;
  425. .btn{
  426. padding: 15rpx 30rpx;
  427. margin-left: 10rpx;
  428. text-align: center;
  429. font-size: 28upx;
  430. font-family: PingFang SC;
  431. color: #FFFFFF;
  432. background: #2583EB;
  433. border-radius: 45upx;
  434. }
  435. .red{
  436. border: 1rpx solid #db5053;
  437. background: #db5053;
  438. color: #FFFFFF;
  439. }
  440. }
  441. }
  442. </style>