details.vue 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. <template>
  2. <div class="app-container">
  3. <el-form :model="form" ref="form" inline v-loading="loading">
  4. <h3>基础信息</h3>
  5. <el-form-item label="订单号:" prop="name">{{form.orderNo}}</el-form-item>
  6. <br>
  7. <el-form-item label="下单人姓名:" prop="name">{{form.userName}}</el-form-item>
  8. <el-form-item label="下单人手机号:" prop="name">{{form.userMobile}}</el-form-item>
  9. <el-form-item label="下单时间:" prop="name">{{ parseTime(form.createTime, '{y}-{m}-{d} {h}:{i}') }}</el-form-item>
  10. <el-form-item label="订单状态:" prop="name">
  11. {{dealStatus(form.status)}}
  12. </el-form-item>
  13. <h3>服务信息</h3>
  14. <el-form-item label="下单医院:" prop="name">{{form.hospitalVo.name}}</el-form-item>
  15. <el-form-item label="所在科室:" prop="name">{{form.hospitalDepartmentName}}</el-form-item>
  16. <el-form-item label="医院地址:" prop="name">{{form.hospitalVo.address}}</el-form-item>
  17. <el-form-item label="期望时间:" prop="name">{{parseTime(form.expectedTime, '{y}-{m}-{d} {h}:{i}')||'-'}}</el-form-item>
  18. <el-form-item label="服务名称:" prop="name">{{form.serviceName}}</el-form-item>
  19. <el-form-item label="房床号:" prop="name">{{form.roomNumber}}</el-form-item>
  20. <el-form-item label="下单数量:" prop="name">{{form.orderNum}}{{dealServiceUnitList(form.serviceUnit)}}</el-form-item>
  21. <el-form-item label="销售价格:" prop="name">{{form.sellingPrice}}</el-form-item>
  22. <el-form-item label="应付金额:" prop="name">{{form.totalPrice}}</el-form-item>
  23. <el-form-item label="特殊需求:" prop="name">{{form.remarks||'-'}}</el-form-item>
  24. <div class="w20">
  25. <h3>就诊人信息</h3>
  26. <el-form-item label="就诊人姓名:" prop="name">{{ form.patientVo.name}}</el-form-item>
  27. <el-form-item label="电话:" prop="name">{{form.patientVo.mobile}}</el-form-item>
  28. <el-form-item label="性别:" prop="name">{{dealGender(form.patientVo.gender)}}</el-form-item>
  29. <el-form-item label="年龄:" prop="name">{{form.patientVo.age}}</el-form-item>
  30. <el-form-item label="关系:" prop="name">
  31. <div v-for="(v,i) in dict.type.patient_relationship" :key="i" v-if="v.value==form.patientVo.relationship">{{v.label}}</div>
  32. </el-form-item>
  33. </div>
  34. <div class="w20" v-if="form.status==2||form.status==3||form.status==4||form.status==5">
  35. <h3>护工信息信息</h3>
  36. <el-form-item label="护工姓名:" prop="name">{{ form.orderWorkerChangeRecord.workerName}}</el-form-item>
  37. <el-form-item label="电话:" prop="name">{{ form.orderWorkerChangeRecord.workerPhoneNumber}}</el-form-item>
  38. <el-form-item label="性别:" prop="name">{{ form.orderWorkerChangeRecord.sex==1?'男':form.orderWorkerChangeRecord.sex==2?'女':'--'}}</el-form-item>
  39. <el-form-item label="分单时间:" prop="name">{{parseTime(form.orderWorkerChangeRecord.createTime, '{y}-{m}-{d} {h}:{i}')}}</el-form-item>
  40. <el-form-item label="操作老师:" prop="name">{{ form.orderWorkerChangeRecord.operatingTeacherName}}</el-form-item>
  41. <el-form-item label="开始时间:" prop="name">{{ parseTime(form.orderWorkerChangeRecord.workerStartTime,'{y}-{m}-{d} {h}:{i}')||'--'}}</el-form-item>
  42. <el-form-item label="结束时间:" prop="name">{{ parseTime(form.orderWorkerChangeRecord.workerEndTime,'{y}-{m}-{d} {h}:{i}')||'--'}}</el-form-item>
  43. </div>
  44. <div class="w50" v-if="form.status==6">
  45. <h3>取消信息</h3>
  46. <el-form-item label="取消原因:" prop="name">{{ form.cancellationReason}}</el-form-item>
  47. <el-form-item label="取消时间:" prop="name">{{ form.cancellationTime}}</el-form-item>
  48. </div>
  49. <div v-if="form.status==5">
  50. <h3>评价信息</h3>
  51. <el-form-item label="服务态度" prop="name"> <el-rate disabled v-model="form.orderReviews.serviceAttitude"></el-rate></el-form-item>
  52. <el-form-item label="着装仪态" prop="name"> <el-rate disabled v-model="form.orderReviews.dressAppearance"></el-rate></el-form-item>
  53. <el-form-item label="沟通能力" prop="name"> <el-rate disabled v-model="form.orderReviews.communicationAbility"></el-rate></el-form-item>
  54. <br>
  55. <el-form-item class="w100" label="文字评价" prop="name"> <el-rate disabled v-model="form.orderReviews.content"></el-rate></el-form-item>
  56. <el-form-item class="w100" label="评价时间" prop="name">{{ parseTime(form.orderReviews.createTime,'{y}-{m}-{d} {h}:{i}')||'--'}}</el-form-item>
  57. </div>
  58. <div class="w50" v-if="form.hasRefund">
  59. <h3>退款信息</h3>
  60. <el-table :data="form.refundList">
  61. <el-table-column type="index" width="55" label="序号" align="center">
  62. <template slot-scope="scope">
  63. <div>
  64. {{ scope.$index + 1 }}
  65. </div>
  66. </template>
  67. </el-table-column>
  68. <el-table-column label="退款订单号" align="center" prop="orderRefundNo" />
  69. <el-table-column label="服务名称" align="center" prop="serviceName" />
  70. <el-table-column label="销售价格" align="center" prop="sellingPrice" />
  71. <el-table-column label="购买数" align="center" prop="orderNum" />
  72. <el-table-column label="实付金额" align="center" prop="payPrice" />
  73. <el-table-column label="退款数" align="center" prop="refundQuantity" />
  74. <el-table-column label="应退金额" align="center" prop="totalPrice" />
  75. <el-table-column label="实退金额" align="center" prop="actualRefundAmount" />
  76. <el-table-column label="申请时间" align="center" prop="createTime">
  77. <template slot-scope="scope">
  78. <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}') }}</span>
  79. </template>
  80. </el-table-column>
  81. <el-table-column label="状态" align="center" prop="refundStatus">
  82. <template slot-scope="{row}">
  83. <div v-for="(v,i) in refundStatusList" :key="i" :type="v.tag" v-if="row.refundStatus==v.code">{{v.value}}</div>
  84. </template>
  85. </el-table-column>
  86. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  87. <template slot-scope="scope">
  88. <el-button size="mini" type="text">查看</el-button>
  89. </template>
  90. </el-table-column>
  91. </el-table>
  92. </div>
  93. </el-form>
  94. <div class="form-footer">
  95. <el-button @click="back">返回</el-button>
  96. </div>
  97. </div>
  98. </template>
  99. <script>
  100. import { orderInfo, orderEnum, orderRefundEnum } from '@/api/hospitalOrder.js'
  101. import { serviceProductEnum } from '@/api/service.js'
  102. export default {
  103. dicts: ['patient_relationship'],
  104. data () {
  105. return {
  106. form: {
  107. hospitalVo: {},
  108. patientVo: {}
  109. },
  110. couponList: [],
  111. gameRecord: {},
  112. statusList: [],
  113. genderList: [
  114. { label: '0', value: '未知' },
  115. { label: '1', value: '男' },
  116. { label: '2', value: '女' }
  117. ],
  118. serviceUnitList: [],
  119. refundStatusList: [],
  120. loading: false
  121. }
  122. },
  123. created () {
  124. this.init()
  125. },
  126. methods: {
  127. init () {
  128. this.getDetails();
  129. this.getOrderEnum();
  130. this.getServiceUnitList();
  131. this.getOrderRefundEnum()
  132. },
  133. // 获取服务单位列表
  134. getServiceUnitList () {
  135. serviceProductEnum().then(res => {
  136. this.serviceUnitList = res.data.serviceUnit
  137. })
  138. },
  139. dealStatus (status) {
  140. for (let i = 0; i < this.statusList.length; i++) {
  141. if (this.statusList[i].code == status) {
  142. return this.statusList[i].value
  143. }
  144. }
  145. },
  146. dealGender (gender) {
  147. for (let i = 0; i < this.genderList.length; i++) {
  148. if (this.genderList[i].label == gender) {
  149. return this.genderList[i].value
  150. }
  151. }
  152. },
  153. dealServiceUnitList (val) {
  154. for (let i = 0; i < this.serviceUnitList.length; i++) {
  155. if (this.serviceUnitList[i].code == val) {
  156. return this.serviceUnitList[i].value
  157. }
  158. }
  159. },
  160. back () {
  161. this.$router.go(-1)
  162. },
  163. getOrderEnum () {
  164. orderEnum().then(res => {
  165. this.statusList = res.data.orderStatus;
  166. })
  167. },
  168. getOrderRefundEnum () {
  169. orderRefundEnum().then(res => {
  170. this.refundStatusList = res.data.refundStatus;
  171. })
  172. },
  173. getDetails () {
  174. this.loading = true
  175. orderInfo(this.$route.query.id).then(res => {
  176. this.form = res.data
  177. }).finally(() => {
  178. this.loading = false
  179. })
  180. },
  181. }
  182. }
  183. </script>
  184. <style lang='scss' scoped>
  185. h3 {
  186. font-weight: 700;
  187. }
  188. .el-form--inline .el-form-item {
  189. width: 24%;
  190. }
  191. .active {
  192. color: rgb(64, 158, 255);
  193. cursor: pointer;
  194. }
  195. .form-footer {
  196. margin-top: 20px;
  197. text-align: center;
  198. }
  199. ::v-deep .el-form-item__content {
  200. width: calc(100% - 120px);
  201. }
  202. .w20 {
  203. .el-form-item {
  204. width: calc(20% - 10px);
  205. }
  206. }
  207. .el-rate {
  208. height: 36px;
  209. line-height: 46px;
  210. }
  211. .w100 {
  212. width: 100% !important;
  213. }
  214. </style>