finish_dialog.vue 7.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. <template>
  2. <div>
  3. <el-dialog title="透析下机" :visible.sync="visible" width="854px" :modal-append-to-body="false">
  4. <div class="txsj">
  5. </div>
  6. <el-form :model="form" label-width="80px">
  7. <el-form-item label="下机护士">
  8. <el-select v-model="form.nurse_id" :disabled="!(dialysis_order.id != 0)">
  9. <el-option v-for="(admin, index) in admins" :key="index" :value="admin.id" :label="admin.name"></el-option>
  10. </el-select>
  11. </el-form-item>
  12. <el-form-item label="下机时间 :" style="width:275px">
  13. <el-date-picker
  14. type="datetime"
  15. format="yyyy-MM-dd HH:mm"
  16. value-format="yyyy-MM-dd HH:mm"
  17. placeholder="选择时间"
  18. v-model="end_time"
  19. style="width:100%;"
  20. ></el-date-picker>
  21. </el-form-item>
  22. <el-form-item>
  23. <el-button v-if="(dialysis_order.id != 0 && dialysis_order.stage == 1)" @click="submit" :loading="loading"
  24. type="primary">执行下机
  25. </el-button>
  26. <!--<el-button v-else-if="(dialysis_order.id != 0 && dialysis_order.stage == 2)" :disabled="true" type="info">-->
  27. <!--已下机-->
  28. <!--</el-button>-->
  29. <!--<el-button v-else :disabled="true" type="info">未上机</el-button>-->
  30. <el-button
  31. v-if="dialysis_order.stage == 2 && (isPremission || this.$store.getters.xt_user.user.id == this.creator)"
  32. type="primary" @click="modifyFinish">修改下机
  33. </el-button>
  34. </el-form-item>
  35. </el-form>
  36. </el-dialog>
  37. </div>
  38. </template>
  39. <script>
  40. import { finishDialysis,PostModifyFinishDialysis } from '@/api/dialysis_record'
  41. import { parseTime } from '@/utils'
  42. export default {
  43. name: 'FinishDialog',
  44. data() {
  45. return {
  46. visible: false,
  47. loading: false,
  48. creator: 0,
  49. patient_id: 0,
  50. schedule_date: 0,
  51. isPremission:false,
  52. end_time: '',
  53. form: {
  54. nurse_id: 0
  55. }
  56. }
  57. },
  58. props: {
  59. prescription: { // 透析处方
  60. type: Object,
  61. },
  62. dialysis_order: {
  63. type: Object
  64. },
  65. schedule: {
  66. type: Object
  67. },
  68. admins: {
  69. type: Array
  70. }, special_premission: {
  71. type: Array,
  72. },
  73. },
  74. created() {
  75. },
  76. watch: {
  77. 'dialysis_order.id': function() {
  78. if (this.dialysis_order.id == 0) {
  79. this.form.nurse_id = 0
  80. } else if (this.dialysis_order.stage == 1) {
  81. this.form.nurse_id = this.$store.getters.xt_user.user.id
  82. } else {
  83. this.form.nurse_id = this.dialysis_order.finish_nurse
  84. }
  85. }
  86. },
  87. methods: {
  88. show: function() {
  89. this.visible = true
  90. var nowDate = new Date()
  91. var nowYear = nowDate.getFullYear()
  92. var nowMonth = nowDate.getMonth() + 1
  93. var nowDay = nowDate.getDate()
  94. var nowHours = nowDate.getHours()
  95. var nowMinutes = nowDate.getMinutes()
  96. var time =
  97. nowYear +
  98. '-' +
  99. (nowMonth < 10 ? '0' + nowMonth : nowMonth) +
  100. '-' +
  101. (nowDay < 10 ? '0' + nowDay : nowDay) + ' ' + (nowHours < 10 ? '0' + nowHours : nowHours) + ':' + (nowMinutes < 10 ? '0' + nowMinutes : nowMinutes)
  102. this.patient_id = this.$route.query.patient_id
  103. this.schedule_date = this.$route.query.date
  104. if (this.dialysis_order.id == 0) {
  105. this.form.nurse_id = 0
  106. } else if (this.dialysis_order.stage == 1) {
  107. this.form.nurse_id = this.$store.getters.xt_user.user.id
  108. } else {
  109. this.form.nurse_id = this.dialysis_order.finish_nurse
  110. }
  111. if (this.dialysis_order.finish_creator > 0) {
  112. for (let i = 0; i < this.special_premission.length; i++) {
  113. if (this.$store.getters.xt_user.user.id == this.special_premission[i].admin_user_id) {
  114. this.isPremission = true
  115. }
  116. }
  117. }
  118. if (this.dialysis_order.finish_creator > 0) {
  119. this.creator = this.dialysis_order.finish_creator
  120. }
  121. if (this.dialysis_order.id == "") {
  122. //没有上下机记录
  123. this.end_time = this.dialysis_order.finish_creator == 0 ? time : this.getTime(this.dialysis_order.end_time, '{y}-{m}-{d} {h}:{i}')
  124. } else {
  125. if (this.dialysis_order.start_time > 0) {
  126. if (this.prescription.id != "") {
  127. let endTime = 0;
  128. endTime =
  129. this.dialysis_order.start_time +
  130. this.prescription.dialysis_duration_hour * 3600 +
  131. this.prescription.dialysis_duration_minute * 60;
  132. this.end_time = parseTime(endTime, "{y}-{m}-{d} {h}:{i}");
  133. } else {
  134. this.end_time =
  135. parseTime(Date.parse(new Date()) / 1000, "{y}-{m}-{d} {h}:{i}")
  136. }
  137. if (this.dialysis_order.end_time > 0) {
  138. this.end_time =
  139. parseTime(this.dialysis_order.end_time, "{y}-{m}-{d} {h}:{i}");
  140. }
  141. } else {
  142. this.end_time = this.dialysis_order.finish_creator == 0 ? time : this.getTime(this.dialysis_order.end_time, '{y}-{m}-{d} {h}:{i}')
  143. }
  144. }
  145. },
  146. hide: function() {
  147. this.visible = false
  148. },modifyFinish:function(){
  149. let ParamsQuery = {};
  150. ParamsQuery["id"] = this.dialysis_order.id;
  151. ParamsQuery["nurse"] = this.form.nurse_id;
  152. ParamsQuery["end_time"] = this.end_time;
  153. ParamsQuery["mode"] = "2"
  154. if(this.dialysis_order.finish_creator != this.$store.getters.xt_user.user.id){
  155. ParamsQuery["mode"] = "3"
  156. }
  157. PostModifyFinishDialysis(ParamsQuery).then(response => {
  158. if (response.data.state == 0) {
  159. this.$message.error(response.data.msg)
  160. return false;
  161. } else {
  162. this.$message.success("修改成功")
  163. var record = this.dialysis_order;
  164. for (const key in response.data.data.dialysis_order) {
  165. this.$set(record, key, response.data.data.dialysis_order[key]);
  166. }
  167. console.log(response.data.data.after)
  168. this.$emit('assessmentAfterDislysis', response.data.data.after)
  169. }
  170. });
  171. },
  172. submit: function() {
  173. this.loading = true
  174. let mode = "1"
  175. finishDialysis(this.patient_id, parseTime(this.schedule_date, '{y}-{m}-{d}'), this.end_time, this.form.nurse_id,mode).then(rs => {
  176. this.loading = false
  177. var resp = rs.data
  178. if (resp.state == 1) {
  179. var dialysis_order = resp.data.dialysis_order
  180. var this_order = this.dialysis_order
  181. for (const key in dialysis_order) {
  182. this.$set(this_order, key, dialysis_order[key])
  183. }
  184. this.hide()
  185. this.$emit('assessmentAfterDislysis', resp.data.assessmentAfterDislysis)
  186. } else {
  187. this.$message.error(resp.msg)
  188. }
  189. })
  190. }, getTime(value, temp) {
  191. if (value != undefined) {
  192. return parseTime(value, temp)
  193. }
  194. return ''
  195. }
  196. }
  197. }
  198. </script>
  199. <style scoped>
  200. .txsj {
  201. text-align: center;
  202. margin-bottom: 20px;
  203. }
  204. </style>