doctorinquiryDetails.vue 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  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="contentx" >
  7. <div class="desct">
  8. 常用处方
  9. </div>
  10. <el-tabs type="card" v-model="actName" @tab-click="handleClickX">
  11. <el-tab-pane label="全部处方" name="10"></el-tab-pane>
  12. <el-tab-pane label="西药" name="1"></el-tab-pane>
  13. <el-tab-pane label="中药" name="2"></el-tab-pane>
  14. </el-tabs>
  15. <el-table :data="item" border>
  16. <el-table-column label="诊断" align="center" prop="diagnose" />
  17. <el-table-column label="店铺名称" align="center" prop="storeName" />
  18. <el-table-column label="处方类型" align="center" prop="prescribeType" width="100px">
  19. <template slot-scope="scope">
  20. <span v-if="scope.row.prescribeType == 1">西药</span>
  21. <span v-if="scope.row.prescribeType == 2">中药</span>
  22. </template>
  23. </el-table-column>
  24. <el-table-column label="备注" align="center" prop="remark" />
  25. <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100px">
  26. <template slot-scope="scope" >
  27. <el-button
  28. size="mini"
  29. type="text"
  30. @click="handleDetails(scope.row)"
  31. v-hasPermi="['his:doctorPrescribe:remove']"
  32. >查看</el-button>
  33. </template>
  34. </el-table-column>
  35. </el-table>
  36. <pagination
  37. v-show="total>0"
  38. :total="total"
  39. :page.sync="queryParams.pageNum"
  40. :limit.sync="queryParams.pageSize"
  41. @pagination="getDoctorPrescribeList"/>
  42. </div>
  43. <el-dialog title="处方详情" :visible.sync="dialogTableVisible" append-to-body >
  44. <el-table :data="gridData" border>
  45. <el-table-column label="药品图片" align="center" prop="drugImgUrl" >
  46. <template slot-scope="scope">
  47. <el-popover
  48. placement="right"
  49. title=""
  50. trigger="hover">
  51. <img slot="reference" :src="scope.row.drugImgUrl" width="50px">
  52. <img :src="scope.row.drugImgUrl" style="max-width: 150px;">
  53. </el-popover>
  54. </template>
  55. </el-table-column>
  56. <el-table-column label="药品名称" align="center" prop="drugName" width="150px" show-overflow-tooltip/>
  57. <el-table-column label="规格" align="center" prop="drugSpec" />
  58. <el-table-column label="药品数量" align="center" prop="drugNum" />
  59. <el-table-column label="单价" align="center" prop="drugPrice" />
  60. <el-table-column label="类别" align="center" prop="drugType" >
  61. <template slot-scope="scope">
  62. <span v-if="scope.row.drugType == 1">西药</span>
  63. <span v-if="scope.row.drugType == 2">中药</span>
  64. </template>
  65. </el-table-column>
  66. <el-table-column label="使用方法" align="center" prop="usageMethod" />
  67. <el-table-column label="药品频次" align="center" prop="usageFrequencyUnit" />
  68. <el-table-column label="每次⽤药数量" align="center" prop="usagePerUseCount" />
  69. <el-table-column label="每次⽤药单位" align="center" prop="usagePerUseUnit" />
  70. <el-table-column label="天数" align="center" prop="usageDays" />
  71. <el-table-column label="药品数量单位" align="center" prop="saleUnit" />
  72. <el-table-column label="药品说明书" align="center" prop="instructions" />
  73. </el-table>
  74. </el-dialog>
  75. <div class="contentx" >
  76. <div class="desct">
  77. 历史处方
  78. </div>
  79. <el-table :data="inquiryOrderList" border>
  80. <el-table-column label="订单号" align="center" prop="orderSn" width="200px"/>
  81. <el-table-column label="问诊标题" align="center" prop="title" show-overflow-tooltip />
  82. <el-table-column label="病人名称" align="center" prop="patientName" />
  83. <el-table-column label="医生名称" align="center" prop="doctorName" />
  84. <el-table-column label="状态" align="center" prop="status" >
  85. <template slot-scope="scope">
  86. <dict-tag :options="inquiryStatusOptions" :value="scope.row.status" />
  87. </template>
  88. </el-table-column>
  89. <el-table-column label="订单类型" align="center" prop="orderType">
  90. <template slot-scope="scope">
  91. <dict-tag :options="inquiryOrderOptions" :value="scope.row.orderType"/>
  92. </template>
  93. </el-table-column>
  94. <el-table-column label="订单子类型" align="center" prop="inquirySubType">
  95. <template slot-scope="scope">
  96. <dict-tag :options="inquirySubTypeOptions" :value="scope.row.inquirySubType"/>
  97. </template>
  98. </el-table-column>
  99. <el-table-column label="支付类型" align="center" prop="payType" >
  100. <template slot-scope="scope">
  101. <dict-tag :options="inquiryPayOptions" :value="scope.row.payType"/>
  102. </template>
  103. </el-table-column>
  104. <el-table-column label="是否支付" align="center" prop="isPay" >
  105. <template slot-scope="scope">
  106. <dict-tag :options="orOptions" :value="scope.row.isPay"/>
  107. </template>
  108. </el-table-column>
  109. <el-table-column label="订单金额" align="center" prop="money" />
  110. <el-table-column label="支付金额" align="center" prop="payMoney" />
  111. <el-table-column label="优惠金额" align="center" prop="discountMoney" />
  112. <el-table-column label="支付时间" align="center" prop="payTime" width="180"/>
  113. <el-table-column label="审核时间" align="center" prop="auditTime" width="180"/>
  114. <el-table-column label="审核人" align="center" prop="userName" width="180"/>
  115. <el-table-column label="问诊开始时间" align="center" prop="startTime" width="180" />
  116. <el-table-column label="结束时间" align="center" prop="finishTime" width="180" />
  117. <el-table-column label="是否评价" align="center" prop="isPing" >
  118. <template slot-scope="scope">
  119. <dict-tag :options="orOptions" :value="scope.row.isPing"/>
  120. </template>
  121. </el-table-column>
  122. <el-table-column label="评分" align="center" prop="pingStar" width="170px">
  123. <template slot-scope="scope" >
  124. <el-rate v-if="scope.row.pingStar!=null"
  125. v-model="scope.row.pingStar"
  126. disabled
  127. show-score
  128. text-color="#ff9900"
  129. score-template="{value}">
  130. </el-rate>
  131. </template>
  132. </el-table-column>
  133. <el-table-column label="科室名称" align="center" prop="deptName" />
  134. </el-table>
  135. <pagination
  136. v-show="inquiryTotal>0"
  137. :total="inquiryTotal"
  138. :page.sync="inquiryQueryParams.pageNum"
  139. :limit.sync="inquiryQueryParams.pageSize"
  140. @pagination="getinquiryOrderList"
  141. />
  142. </div>
  143. </div>
  144. </template>
  145. <script>
  146. import { listDoctorPrescribe, getDoctorPrescribe} from "@/api/his/doctorPrescribe";
  147. import { listDoctorPrescribeDrug, getDoctorPrescribeDrug, } from "@/api/his/doctorPrescribeDrug";
  148. import { listinquiryOrder, getinquiryOrder, delinquiryOrder, addinquiryOrder, updateinquiryOrder, exportinquiryOrder } from "@/api/his/inquiryOrder";
  149. export default {
  150. name: "storedet",
  151. data() {
  152. return {
  153. actName:"10",
  154. gridData: [],
  155. dialogTableVisible:false,
  156. item:null,
  157. total: 0,
  158. // 问诊订单表格数据
  159. inquiryOrderList: [],
  160. inquiryTotal: 0,
  161. inquiryQueryParams: {
  162. pageNum: 1,
  163. pageSize: 10,
  164. doctorId: null,
  165. },
  166. queryParams: {
  167. pageNum: 1,
  168. pageSize: 10,
  169. doctorId:null,
  170. prescribeType:null,
  171. },
  172. inquiryStatusOptions:[],
  173. inquiryTypeOptions:[],
  174. inquiryPayOptions:[],
  175. inquiryOrderOptions:[],
  176. orOptions:[],
  177. }
  178. },
  179. created() {
  180. this.getDicts("sys_inquiry_status").then(response => {
  181. this.inquiryStatusOptions = response.data;
  182. });
  183. this.getDicts("sys_inquiry_type").then(response => {
  184. this.inquiryTypeOptions = response.data;
  185. });
  186. this.getDicts("sys_inquiry_pay").then(response => {
  187. this.inquiryPayOptions = response.data;
  188. });
  189. this.getDicts("sys_inquiry_order_type").then(response => {
  190. this.inquiryOrderOptions = response.data;
  191. });
  192. this.getDicts("sys_company_or").then(response => {
  193. this.orOptions = response.data;
  194. });
  195. this.getDicts("sys_inquiry_sub_type").then(response => {
  196. this.inquirySubTypeOptions = response.data;
  197. });
  198. },
  199. methods: {
  200. handleClickX(tab, event) {
  201. if(tab.name=="10"){
  202. this.queryParams.prescribeType=null;
  203. }else{
  204. this.queryParams.prescribeType=tab.name;
  205. }
  206. this.getDoctorPrescribeList();
  207. },
  208. handleDetails(row){
  209. this.dialogTableVisible=true;
  210. var fo={
  211. prescribeId:row.prescribeId
  212. }
  213. listDoctorPrescribeDrug(fo).then(response => {
  214. this.gridData = response.rows;
  215. });
  216. },
  217. getDetails(doctorId) {
  218. this.item=null;
  219. this.queryParams.doctorId=doctorId
  220. listDoctorPrescribe(this.queryParams).then(response => {
  221. this.item = response.rows;
  222. this.total=response.total;
  223. });
  224. this.inquiryQueryParams.doctorId=doctorId;
  225. this.getinquiryOrderList();
  226. },
  227. getDoctorPrescribeList(){
  228. listDoctorPrescribe(this.queryParams).then(response => {
  229. this.item = response.rows;
  230. });
  231. },
  232. getinquiryOrderList() {
  233. listinquiryOrder(this.queryParams).then(response => {
  234. this.inquiryOrderList = response.rows;
  235. this.inquiryTotal = response.total;
  236. });
  237. },
  238. }
  239. }
  240. </script>
  241. <style>
  242. .contentx{
  243. height: 100%;
  244. background-color: #fff;
  245. padding: 0px 20px 20px;
  246. margin: 20px;
  247. }
  248. .el-descriptions-item__label.is-bordered-label{
  249. font-weight: normal;
  250. }
  251. .el-descriptions-item__content {
  252. max-width: 150px;
  253. min-width: 100px;
  254. }
  255. .desct{
  256. padding-top: 20px;
  257. padding-bottom: 20px;
  258. color: #524b4a;
  259. font-weight: bold;
  260. }
  261. </style>