prescribeDetails.vue 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. <template>
  2. <div style="background-color: #f0f2f5; padding-bottom: 20px; min-height: 100%; " >
  3. <div style="padding: 20px; background-color: #fff;">
  4. 处方详情
  5. </div>
  6. <div class="content" v-if="item!=null">
  7. <div class="desct">
  8. 基本信息
  9. </div>
  10. <el-descriptions :column="3" border >
  11. <el-descriptions-item label="处方单编号" >
  12. <span v-if="item!=null">
  13. {{item.prescribeCode}}
  14. </span>
  15. </el-descriptions-item>
  16. <el-descriptions-item label="病情描述" >
  17. <span v-if="item!=null">{{item.patientDescs}}</span>
  18. </el-descriptions-item>
  19. <el-descriptions-item label="既往史" >
  20. <span v-if="item!=null">{{item.historyIllness}}</span>
  21. </el-descriptions-item>
  22. <el-descriptions-item label="患者年龄" >
  23. <span v-if="item!=null">{{item.patientAge}}</span>
  24. </el-descriptions-item>
  25. <el-descriptions-item label="患者姓名" >
  26. <span v-if="item!=null">{{item.patientName}}</span>
  27. </el-descriptions-item>
  28. <el-descriptions-item label="体重" >
  29. <span v-if="item!=null">{{item.weight}}</span>
  30. </el-descriptions-item>
  31. <el-descriptions-item label="是否有过敏史" >
  32. <dict-tag :options="orOptions" :value="item.historyAllergic"/>
  33. </el-descriptions-item>
  34. <el-descriptions-item label="过敏史" >
  35. <span v-if="item!=null">{{item.weight}}</span>
  36. </el-descriptions-item>
  37. <el-descriptions-item label="肝功能是否异常" >
  38. <span v-if="item!=null">{{item.liverUnusual}}</span>
  39. </el-descriptions-item>
  40. <el-descriptions-item label="肾功能是否异常" >
  41. <span v-if="item!=null">{{item.renalUnusual}}</span>
  42. </el-descriptions-item>
  43. <el-descriptions-item label="是否是备孕/怀孕/哺乳期" >
  44. <dict-tag :options="orOptions" :value="item.isLactation"/>
  45. </el-descriptions-item>
  46. <el-descriptions-item label="患者电话" >
  47. <span v-if="item!=null">{{item.patientTel}}</span>
  48. </el-descriptions-item>
  49. <el-descriptions-item label="药师名称" >
  50. <span v-if="item!=null">{{item.doctorDrugName}}</span>
  51. </el-descriptions-item>
  52. <el-descriptions-item label="医生名称" >
  53. <span v-if="item!=null">{{item.doctorName}}</span>
  54. </el-descriptions-item>
  55. <el-descriptions-item label="审核时间" >
  56. <span v-if="item!=null">{{item.auditTime}}</span>
  57. </el-descriptions-item>
  58. <el-descriptions-item label="创建时间" >
  59. <span v-if="item!=null">{{item.createTime}}</span>
  60. </el-descriptions-item>
  61. </el-descriptions>
  62. </div>
  63. <div class="content" v-if="item!=null" style="padding-bottom: 70px;">
  64. <div class="desct">
  65. 商品信息
  66. </div>
  67. <el-tooltip class="item" effect="dark" :content="showList ? '显示全部' : '隐藏'" placement="top" style="float: right;">
  68. <el-button size="mini" circle icon="el-icon-search" @click="showListD()" />
  69. </el-tooltip>
  70. <el-table
  71. border
  72. v-if="showProd!=null" :data="showProd"
  73. size="small"
  74. style="width: 100%;margin-top: 20px" >
  75. <el-table-column label="商品图片" width="150" align="center">
  76. <template slot-scope="scope">
  77. <img :src="scope.row.drugImgUrl" style="height: 50px">
  78. </template>
  79. </el-table-column>
  80. <el-table-column prop="drugName" label="药品名称" width="120" align="center"></el-table-column>
  81. <el-table-column prop="drugSpec" label="药品规格" width="120" align="center"></el-table-column>
  82. <el-table-column prop="drugPrice" label="药品单价" width="120" align="center"></el-table-column>
  83. <el-table-column prop="drugNum" label="药品数量" width="120" align="center"></el-table-column>
  84. <el-table-column prop="drugUnit" label="药品单位" width="120" align="center"></el-table-column>
  85. <el-table-column prop="usageMethod" label="使用方法" width="120" align="center"></el-table-column>
  86. <el-table-column prop="usageFrequency_unit" label="药品频次" width="120" align="center"></el-table-column>
  87. <el-table-column prop="usageFrequencyUnit" label="每次用药数量" width="120" align="center"></el-table-column>
  88. <el-table-column label="小计" align="center" width="120">
  89. <template slot-scope="scope" >
  90. ¥{{(scope.row.drugNum*scope.row.drugPrice).toFixed(2)}}
  91. </template>
  92. </el-table-column>
  93. </el-table>
  94. <div style="float: right;margin: 20px" v-if="item.prescribeType==2">
  95. 剂数:<span class="color-danger">{{JSON.parse(item.usageJson).counts}}</span>
  96. </div>
  97. </div>
  98. <div class="content" v-if="item!=null">
  99. <div class="desct">
  100. 服用方法
  101. </div>
  102. <el-descriptions :column="3" border >
  103. <el-descriptions-item label="剂数" ><span v-if="item!=null">{{usageJson.counts }}</span></el-descriptions-item>
  104. <el-descriptions-item label="用药频率" ><span v-if="item!=null">{{usageJson.usageFrequencyUnit }}</span></el-descriptions-item>
  105. <el-descriptions-item label="单次用药" ><span v-if="item!=null">{{usageJson.usagePerUseCount }}</span></el-descriptions-item>
  106. <el-descriptions-item label="用药方法" ><span v-if="item!=null">{{usageJson.usageMethod }}</span></el-descriptions-item>
  107. <el-descriptions-item label="备注" ><span v-if="item!=null">{{usageJson.remark }}</span></el-descriptions-item>
  108. </el-descriptions>
  109. </div>
  110. <div class="content" v-if="item!=null">
  111. <div class="desct">
  112. 处方单
  113. </div>
  114. <div style="text-align: center;">
  115. <el-popover
  116. placement="right"
  117. title=""
  118. <img
  119. slot="reference" :src="item.prescribeImgUrl" width="500px">
  120. </el-popover>
  121. </div>
  122. </div>
  123. </div>
  124. </template>
  125. <script>
  126. import { listPrescribe, getPrescribe, delPrescribe, addPrescribe, updatePrescribe, exportPrescribe,getDrugInfo } from "@/api/store/prescribe";
  127. export default {
  128. name: "orderDe",
  129. props:["data"],
  130. data() {
  131. return {
  132. pjtUrl: process.env.VUE_APP_BASE_API+"/",
  133. money:null,
  134. usageJson:{},
  135. moneyVisible:false,
  136. rules:{},
  137. sendVisible:false,
  138. logs:[],
  139. PayOptions:[],
  140. orOptions:[],
  141. item:null,
  142. prod:[],
  143. showProd:[],
  144. mrules:{
  145. },
  146. form: {
  147. deliveryCode: null,
  148. deliveryName:null,
  149. deliverySn:null,
  150. orderId:null,
  151. }
  152. }
  153. },
  154. created() {
  155. this.getDicts("sys_inquiry_pay").then(response => {
  156. this.PayOptions = response.data;
  157. });
  158. },
  159. methods: {
  160. showListD(){
  161. if(this.showList){
  162. this.showProd=this.prod
  163. }else{
  164. this.showProd=[this.prod[0]]
  165. }
  166. this.showList=this.showList?false:true;
  167. },
  168. moneyCancel(){
  169. this.money=null;
  170. this.moneyVisible=false;
  171. },
  172. getDetails(orderId) {
  173. this.item=null;
  174. getPrescribe(orderId).then(response => {
  175. this.item = response.data;
  176. this.usageJson=JSON.parse(this.item.usageJson)
  177. });
  178. getDrugInfo(orderId).then(response => {
  179. this.prod = response.data;
  180. this.showProd=[this.prod[0]]
  181. });
  182. },
  183. }
  184. }
  185. </script>
  186. <style>
  187. .content{
  188. height: 100%;
  189. background-color: #fff;
  190. padding: 0px 20px;
  191. }
  192. </style>
  193. <style>
  194. .content{
  195. height: 100%;
  196. background-color: #fff;
  197. padding: 0px 20px 20px;
  198. margin: 20px;
  199. }
  200. .el-descriptions-item__label.is-bordered-label{
  201. font-weight: normal;
  202. }
  203. .desct{
  204. padding-top: 20px;
  205. padding-bottom: 20px;
  206. color: #524b4a;
  207. font-weight: bold;
  208. }
  209. </style>
  210. <style scoped>
  211. .order-content{
  212. margin: 10px;
  213. }
  214. .operate-container {
  215. background: #F2F6FC;
  216. height: 60px;
  217. margin: -20px -20px 0;
  218. line-height: 60px;
  219. }
  220. .operate-button-container {
  221. float: right;
  222. margin-right: 20px
  223. }
  224. </style>