血透系统PC前端

doubleCheckDialog.vue 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438
  1. <template>
  2. <el-dialog title="双人核对"
  3. :visible.sync="isVisibility"
  4. :modal-append-to-body="false"
  5. width="854px">
  6. <el-form :inline="true" class="demo-form-inline" :model="doubleReview" label-width="110px">
  7. <el-form-item label="透析物品核查 : ">
  8. <el-radio v-model="doubleReview.dialysis_item_check" label="1">正确</el-radio>
  9. <el-radio v-model="doubleReview.dialysis_item_check" label="2">错误</el-radio>
  10. </el-form-item>
  11. <el-form-item label="差错描述 : " label-width="80px">
  12. <el-input v-model="doubleReview.dialysis_item_desc"></el-input>
  13. </el-form-item>
  14. </el-form>
  15. <el-form :inline="true" class="demo-form-inline" :model="doubleReview" label-width="110px">
  16. <el-form-item label="透析参数核查 : ">
  17. <el-radio v-model="doubleReview.dialysis_parameter_check" label="1">正确</el-radio>
  18. <el-radio v-model="doubleReview.dialysis_parameter_check" label="2">错误</el-radio>
  19. </el-form-item>
  20. <el-form-item label="差错描述 : " label-width="80px">
  21. <el-input v-model="doubleReview.dialysis_parameter_desc"></el-input>
  22. </el-form-item>
  23. </el-form>
  24. <el-form :inline="true" class="demo-form-inline" :model="doubleReview" label-width="110px">
  25. <el-form-item label="血管通路核查 : ">
  26. <el-radio v-model="doubleReview.vascular_access_verification" label="1">正确</el-radio>
  27. <el-radio v-model="doubleReview.vascular_access_verification" label="2">错误</el-radio>
  28. </el-form-item>
  29. <el-form-item label="差错描述 : " label-width="80px">
  30. <el-input v-model="doubleReview.vascular_access_desc"></el-input>
  31. </el-form-item>
  32. </el-form>
  33. <el-form :inline="true" class="demo-form-inline" :model="doubleReview" label-width="110px">
  34. <el-form-item label="管道连接核查 : ">
  35. <el-radio v-model="doubleReview.pipeline_connection_check" label="1">正确</el-radio>
  36. <el-radio v-model="doubleReview.pipeline_connection_check" label="2">错误</el-radio>
  37. </el-form-item>
  38. <el-form-item label="差错描述 : " label-width="80px">
  39. <el-input v-model="doubleReview.pipeline_connection_desc"></el-input>
  40. </el-form-item>
  41. </el-form>
  42. <el-form :inline="true" class="demo-form-inline" :model="doubleReview" label-width="110px">
  43. <el-form-item label="核对时间 : ">
  44. <el-time-picker
  45. v-model="time"
  46. format='HH:mm'
  47. value-format="HH:mm"
  48. placeholder="请输入核对时间">
  49. </el-time-picker>
  50. </el-form-item>
  51. </el-form>
  52. <el-form :inline="true" class="demo-form-inline" :model="doubleReview" label-width="110px">
  53. <p style="margin-left: 13px;margin-top: 10px" v-if="doubleReview.creater != 0">{{getFirstCheckDesc()}}</p>
  54. <p style="margin-left: 13px;margin-top: 10px" v-if="doubleReview.modifier != 0">{{getScondCheckDesc()}}</p>
  55. </el-form>
  56. <div slot="footer" class="dialog-footer">
  57. <el-button @click="handleCancle">取 消</el-button>
  58. <el-button :disabled="this.doubleReview.creater == 0 || this.doubleReview.modifier == 0 ? false : true " type="primary" @click="handleComfirm">保 存</el-button>
  59. </div>
  60. </el-dialog>
  61. </template>
  62. <script>
  63. import { postDoubleCheck } from '@/api/dialysis'
  64. import { uParseTime } from '@/utils/tools'
  65. export default {
  66. name: 'doubleCheckDialog',
  67. data() {
  68. return {
  69. isVisibility: false,
  70. time:'',
  71. isClose: false,
  72. doubleReview: {
  73. dialysis_item_check: '1',
  74. dialysis_parameter_check: '1',
  75. vascular_access_verification: '1',
  76. pipeline_connection_check: '1',
  77. dialysis_item_desc: '',
  78. dialysis_parameter_desc: '',
  79. vascular_access_desc: '',
  80. pipeline_connection_desc: '',
  81. collator: '',
  82. creater: 0,
  83. modifier: 0,
  84. created_time: 0,
  85. updated_time: 0,
  86. check_time: 0,
  87. first_check_time: 0
  88. },
  89. record_date: ''
  90. }
  91. }, methods: {
  92. show() {
  93. this.isVisibility = true
  94. },
  95. hide() {
  96. this.isVisibility = false
  97. },
  98. handleCancle: function() {
  99. this.isVisibility = false
  100. }, handleComfirm: function() {
  101. if (this.patient.id <= 0) {
  102. this.$message.error('没有选择患者')
  103. return
  104. }
  105. let ParamsQuery = this.doubleReview
  106. ParamsQuery['patient'] = this.patient.id
  107. ParamsQuery['record_date'] = this.record_date
  108. ParamsQuery['check_time'] = this.record_date +" "+ this.time
  109. postDoubleCheck(ParamsQuery).then(response => {
  110. if (response.data.state == 0) {
  111. this.$message.error(response.data.msg)
  112. return false
  113. } else {
  114. this.$notify({
  115. title: '成功',
  116. message: '提交成功',
  117. type: 'success',
  118. duration: 2000
  119. })
  120. this.doubleReview.creater = response.data.data.doubleCheck.creater;
  121. this.doubleReview.check_time =
  122. response.data.data.doubleCheck.check_time;
  123. this.doubleReview.first_check_time =
  124. response.data.data.doubleCheck.first_check_time;
  125. this.doubleReview.modifier = response.data.data.doubleCheck.modifier;
  126. let doublecheck_resp = response.data.data.doubleCheck
  127. var doubleCheck = this.double_check
  128. for (var index in doublecheck_resp) {
  129. // doubleCheck[index] = doublecheck_resp[index];
  130. this.$set(doubleCheck, index, doublecheck_resp[index])
  131. }
  132. this.hide()
  133. }
  134. })
  135. },
  136. getFirstCheckDesc: function() {
  137. if (
  138. this.doubleReview.first_check_time > 0 &&
  139. this.doubleReview.check_time > 0
  140. ) {
  141. if (this.doubleReview.first_check_time < this.doubleReview.check_time) {
  142. let time = uParseTime(
  143. this.doubleReview.first_check_time,
  144. "{y}-{m}-{d} {h}:{i}"
  145. );
  146. if (this.doubleReview.creater <= 0) {
  147. return "";
  148. }
  149. var desc = "";
  150. if (
  151. this.admin_users == null ||
  152. typeof this.admin_users.length == "undefined"
  153. ) {
  154. return "";
  155. }
  156. var leng = this.admin_users.length;
  157. if (leng == 0) {
  158. return "";
  159. }
  160. for (let index = 0; index < leng; index++) {
  161. if (this.admin_users[index].id == this.doubleReview.creater) {
  162. let name = this.admin_users[index].name;
  163. desc = "首次核对人员:" + name + " 首次核对时间:" + time;
  164. break;
  165. }
  166. }
  167. return desc;
  168. } else {
  169. let time = uParseTime(
  170. this.doubleReview.check_time,
  171. "{y}-{m}-{d} {h}:{i}"
  172. );
  173. if (this.doubleReview.modifier <= 0) {
  174. return "";
  175. }
  176. var desc = "";
  177. if (
  178. this.admin_users == null ||
  179. typeof this.admin_users.length == "undefined"
  180. ) {
  181. return "";
  182. }
  183. var leng = this.admin_users.length;
  184. if (leng == 0) {
  185. return "";
  186. }
  187. for (let index = 0; index < leng; index++) {
  188. if (this.admin_users[index].id == this.doubleReview.modifier) {
  189. let name = this.admin_users[index].name;
  190. desc = "首次核对人员:" + name + " 首次核对时间:" + time;
  191. break;
  192. }
  193. }
  194. return desc;
  195. }
  196. } else {
  197. let time = uParseTime(
  198. this.doubleReview.first_check_time,
  199. "{y}-{m}-{d} {h}:{i}"
  200. );
  201. if (this.doubleReview.creater <= 0) {
  202. return "";
  203. }
  204. var desc = "";
  205. if (
  206. this.admin_users == null ||
  207. typeof this.admin_users.length == "undefined"
  208. ) {
  209. return "";
  210. }
  211. var leng = this.admin_users.length;
  212. if (leng == 0) {
  213. return "";
  214. }
  215. for (let index = 0; index < leng; index++) {
  216. if (this.admin_users[index].id == this.doubleReview.creater) {
  217. let name = this.admin_users[index].name;
  218. desc = "首次核对人员:" + name + " 首次核对时间:" + time;
  219. break;
  220. }
  221. }
  222. return desc;
  223. }
  224. },
  225. getScondCheckDesc: function() {
  226. if (
  227. this.doubleReview.first_check_time > 0 &&
  228. this.doubleReview.check_time > 0
  229. ) {
  230. if (this.doubleReview.first_check_time < this.doubleReview.check_time) {
  231. let time = uParseTime(
  232. this.doubleReview.check_time,
  233. "{y}-{m}-{d} {h}:{i}"
  234. );
  235. if (this.doubleReview.modifier <= 0) {
  236. return "";
  237. }
  238. var desc = "";
  239. if (
  240. this.admin_users == null ||
  241. typeof this.admin_users.length == "undefined"
  242. ) {
  243. return desc;
  244. }
  245. var leng = this.admin_users.length;
  246. if (leng == 0) {
  247. return desc;
  248. }
  249. for (let index = 0; index < leng; index++) {
  250. if (this.admin_users[index].id == this.doubleReview.modifier) {
  251. let name = this.admin_users[index].name;
  252. desc = "第二次核对人员:" + name + " 第二次核对时间:" + time;
  253. break;
  254. }
  255. }
  256. return desc;
  257. } else {
  258. let time = uParseTime(
  259. this.doubleReview.first_check_time,
  260. "{y}-{m}-{d} {h}:{i}"
  261. );
  262. if (this.doubleReview.creater <= 0) {
  263. return "";
  264. }
  265. var desc = "";
  266. if (
  267. this.admin_users == null ||
  268. typeof this.admin_users.length == "undefined"
  269. ) {
  270. return desc;
  271. }
  272. var leng = this.admin_users.length;
  273. if (leng == 0) {
  274. return desc;
  275. }
  276. for (let index = 0; index < leng; index++) {
  277. if (this.admin_users[index].id == this.doubleReview.creater) {
  278. let name = this.admin_users[index].name;
  279. desc = "第二次核对人员:" + name + " 第二次核对时间:" + time;
  280. break;
  281. }
  282. }
  283. return desc;
  284. }
  285. } else {
  286. let time = uParseTime(
  287. this.doubleReview.check_time,
  288. "{y}-{m}-{d} {h}:{i}"
  289. );
  290. if (this.doubleReview.modifier <= 0) {
  291. return "";
  292. }
  293. var desc = "";
  294. if (
  295. this.admin_users == null ||
  296. typeof this.admin_users.length == "undefined"
  297. ) {
  298. return desc;
  299. }
  300. var leng = this.admin_users.length;
  301. if (leng == 0) {
  302. return desc;
  303. }
  304. for (let index = 0; index < leng; index++) {
  305. if (this.admin_users[index].id == this.doubleReview.modifier) {
  306. let name = this.admin_users[index].name;
  307. desc = "第二次核对人员:" + name + " 第二次核对时间:" + time;
  308. break;
  309. }
  310. }
  311. return desc;
  312. }
  313. },
  314. },
  315. props: {
  316. admin_users: { //系统用户列表
  317. type: Array,
  318. default: () => {
  319. return []
  320. }
  321. },
  322. double_check: { // 双人核对
  323. type: Object,
  324. default: () => {
  325. return { id: 0 }
  326. }
  327. },
  328. patient: { // 患者信息
  329. type: Object,
  330. default: () => {
  331. return { id: 0 }
  332. }
  333. }
  334. },
  335. watch: {
  336. isVisibility(val) {
  337. }, 'double_check.id': function() {
  338. if (this.double_check.id > 0) {
  339. for (var index in this.doubleReview) {
  340. this.doubleReview[index] = this.double_check[index] + ''
  341. }
  342. this.doubleReview.created_time = this.double_check['created_time']
  343. this.doubleReview.creater = this.double_check['creater']
  344. this.doubleReview.updated_time = this.double_check['updated_time']
  345. this.doubleReview.modifier = this.double_check['modifier']
  346. this.doubleReview.dialysis_item_desc = this.double_check['dialysis_item_desc'];
  347. this.doubleReview.dialysis_parameter_desc = this.double_check['dialysis_parameter_desc'];
  348. this.doubleReview.vascular_access_desc = this.double_check['vascular_access_desc'];
  349. this.doubleReview.pipeline_connection_desc = this.double_check['pipeline_connection_desc'];
  350. this.doubleReview.created_time =this.double_check['created_time']
  351. this.doubleReview.creater =this.double_check['creater']
  352. this.doubleReview.updated_time = this.double_check['updated_time']
  353. this.doubleReview.modifier = this.double_check['modifier']
  354. this.doubleReview.check_time = this.double_check['check_time']
  355. this.doubleReview.first_check_time = this.double_check['first_check_time']
  356. } else {
  357. this.dialysis_item_check = '1'
  358. this.dialysis_parameter_check = '1'
  359. this.vascular_access_verification = '1'
  360. this.pipeline_connection_check = '1'
  361. this.doubleReview.dialysis_item_desc = "";
  362. this.doubleReview.dialysis_parameter_desc = "";
  363. this.doubleReview.vascular_access_desc = "";
  364. this.doubleReview.pipeline_connection_desc = "";
  365. }
  366. }
  367. },
  368. created() {
  369. var date = this.$route.query && this.$route.query.date
  370. this.record_date = uParseTime(date, '{y}-{m}-{d}')
  371. var nowDate = new Date()
  372. var nowYear = nowDate.getFullYear()
  373. var nowMonth = nowDate.getMonth() + 1
  374. var nowDay = nowDate.getDate()
  375. var nowHours = nowDate.getHours()
  376. var nowMinutes = nowDate.getMinutes()
  377. var time = (nowHours < 10 ? '0' + nowHours : nowHours) + ':' + (nowMinutes < 10 ? '0' + nowMinutes : nowMinutes)
  378. this.time = time
  379. }
  380. }
  381. </script>
  382. <style scoped>
  383. </style>