血透系统pad前端

DoubleDialog.vue 16KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509
  1. <template>
  2. <div>
  3. <div class="Dialog">
  4. <div class="DialogTit">
  5. <span @click="close()" class="iconfont">&#xe6e9;</span>
  6. <h1 class="name">双人查对</h1>
  7. <span @click="commitInfo" class="success">保存</span>
  8. </div>
  9. <div style="height: 8rem" class="DialogContent choose">
  10. <el-form :inline="true" class="demo-form-inline" :model="doubleReview" label-width="160px">
  11. <el-form-item label="透析物品核查 : ">
  12. <el-radio v-model="doubleReview.dialysis_item_check" label="1">正确</el-radio>
  13. <el-radio v-model="doubleReview.dialysis_item_check" label="2">错误</el-radio>
  14. </el-form-item>
  15. <el-form-item label="差错描述 : " label-width="160px">
  16. <el-input v-model="doubleReview.dialysis_item_desc"></el-input>
  17. </el-form-item>
  18. </el-form>
  19. <el-form :inline="true" class="demo-form-inline" :model="doubleReview" label-width="160px">
  20. <el-form-item label="透析参数核查 : ">
  21. <el-radio v-model="doubleReview.dialysis_parameter_check" label="1">正确</el-radio>
  22. <el-radio v-model="doubleReview.dialysis_parameter_check" label="2">错误</el-radio>
  23. </el-form-item>
  24. <el-form-item label="差错描述 : " label-width="160px">
  25. <el-input v-model="doubleReview.dialysis_parameter_desc"></el-input>
  26. </el-form-item>
  27. </el-form>
  28. <el-form :inline="true" class="demo-form-inline" :model="doubleReview" label-width="160px">
  29. <el-form-item label="血管通路核查 : ">
  30. <!--<el-radio-group v-model="form.appetite">-->
  31. <!--<el-radio label="正确"></el-radio>-->
  32. <!--<el-radio label="整改"></el-radio>-->
  33. <!--</el-radio-group>-->
  34. <el-radio v-model="doubleReview.vascular_access_verification" label="1">正确</el-radio>
  35. <el-radio v-model="doubleReview.vascular_access_verification" label="2">错误</el-radio>
  36. </el-form-item>
  37. <el-form-item label="差错描述 : " label-width="160px">
  38. <el-input v-model="doubleReview.vascular_access_desc"></el-input>
  39. </el-form-item>
  40. </el-form>
  41. <el-form :inline="true" class="demo-form-inline" :model="doubleReview" label-width="160px">
  42. <el-form-item label="管道连接核查 : ">
  43. <!--<el-radio-group v-model="form.condition">-->
  44. <el-radio v-model="doubleReview.pipeline_connection_check" label="1">正确</el-radio>
  45. <el-radio v-model="doubleReview.pipeline_connection_check" label="2">错误</el-radio>
  46. <!--</el-radio-group>-->
  47. </el-form-item>
  48. <el-form-item label="差错描述 : " label-width="160px">
  49. <el-input v-model="doubleReview.pipeline_connection_desc"></el-input>
  50. </el-form-item>
  51. </el-form>
  52. <div class="item">
  53. <h2 class="name">核对时间</h2>
  54. <div class="content">
  55. <span
  56. class="text"
  57. style="width: 160px"
  58. @click="selectCheckTimeAction"
  59. >{{ check_time_str }}</span>
  60. <span class="iconfont">&#xe6f9;</span>
  61. </div>
  62. </div>
  63. <el-form :inline="true" class="demo-form-inline" :model="doubleReview" label-width="160px">
  64. <p
  65. style="margin: 10px 0 10px 13px;"
  66. v-if="doubleReview.creater != 0"
  67. >{{getFirstCheckDesc()}}</p>
  68. <p
  69. style="margin: 10px 0 10px 13px;"
  70. v-if="doubleReview.modifier != 0"
  71. >{{getScondCheckDesc()}}</p>
  72. </el-form>
  73. <!-- <div class="button">
  74. <button @click="commitInfo" class="submitButton">提交</button>
  75. </div>-->
  76. <!--<div class="footer">-->
  77. <!--处方医生:黄梦燕 医生-->
  78. <!--</div>-->
  79. </div>
  80. <!-- <div class="footer">
  81. 处方医生:黄梦燕 护士
  82. </div>-->
  83. </div>
  84. <mt-datetime-picker
  85. ref="start_time_picker"
  86. type="datetime"
  87. @confirm="didSelectCheckTime"
  88. v-model="check_time"
  89. ></mt-datetime-picker>
  90. </div>
  91. </template>
  92. <script>
  93. import { commitDoubleCheck } from "@/api/dialysis";
  94. import { Toast } from "vant";
  95. import { uParseTime } from "@/utils/tools";
  96. import { parseTime } from "@/utils";
  97. export default {
  98. name: "DoubleDialog",
  99. data() {
  100. return {
  101. admin_users: [],
  102. first_check_isShow: false,
  103. second_check_isShow: false,
  104. first_check_desc: "",
  105. second_check_desc: "",
  106. doubleReview: {
  107. dialysis_item_check: "1",
  108. dialysis_parameter_check: "1",
  109. vascular_access_verification: "1",
  110. pipeline_connection_check: "1",
  111. dialysis_item_desc: "",
  112. dialysis_parameter_desc: "",
  113. vascular_access_desc: "",
  114. pipeline_connection_desc: "",
  115. collator: "",
  116. creater: 0,
  117. modifier: 0,
  118. created_time: 0,
  119. updated_time: 0,
  120. check_time: 0,
  121. first_check_time: 0
  122. },
  123. check_time: new Date(),
  124. check_time_str: "",
  125. patient: {
  126. id: 0
  127. },
  128. doctor: "",
  129. record_date: ""
  130. };
  131. },
  132. props: {
  133. record: {
  134. type: Object,
  135. default: () => {
  136. return { id: 0 };
  137. }
  138. },
  139. patient_prop: {
  140. type: Object
  141. },
  142. admin_users_prop: {
  143. type: Array
  144. }
  145. },
  146. created() {
  147. console.log(new Date());
  148. this.admin_users = this.admin_users_prop;
  149. if (this.record.id == "") {
  150. this.doubleReview.dialysis_item_check = "1";
  151. this.doubleReview.dialysis_parameter_check = "1";
  152. this.doubleReview.vascular_access_verification = "1";
  153. this.doubleReview.pipeline_connection_check = "1";
  154. this.doubleReview.dialysis_item_desc = "";
  155. this.doubleReview.dialysis_parameter_desc = "";
  156. this.doubleReview.vascular_access_desc = "";
  157. this.doubleReview.pipeline_connection_desc = "";
  158. } else {
  159. this.doubleReview.dialysis_item_check =
  160. this.record.dialysis_item_check + "";
  161. this.doubleReview.dialysis_parameter_check =
  162. this.record.dialysis_parameter_check + "";
  163. this.doubleReview.vascular_access_verification =
  164. this.record.vascular_access_verification + "";
  165. this.doubleReview.pipeline_connection_check =
  166. this.record.pipeline_connection_check + "";
  167. this.doubleReview.dialysis_item_desc = this.record.dialysis_item_desc;
  168. this.doubleReview.dialysis_parameter_desc = this.record.dialysis_parameter_desc;
  169. this.doubleReview.vascular_access_desc = this.record.vascular_access_desc;
  170. this.doubleReview.pipeline_connection_desc = this.record.pipeline_connection_desc;
  171. this.doubleReview.created_time = this.record.created_time;
  172. this.doubleReview.creater = this.record.creater;
  173. this.doubleReview.updated_time = this.record.updated_time;
  174. this.doubleReview.modifier = this.record.modifier;
  175. this.doubleReview.check_time = this.record.check_time;
  176. this.doubleReview.first_check_time = this.record.first_check_time;
  177. }
  178. var date = this.$route.query && this.$route.query.date;
  179. date *= 1000;
  180. var newDate = new Date(date);
  181. var y = newDate.getFullYear();
  182. var m = newDate.getMonth() + 1;
  183. var d = newDate.getDate();
  184. if (isNaN(y) || isNaN(m) || isNaN(d)) {
  185. newDate = new Date();
  186. y = newDate.getFullYear();
  187. m = newDate.getMonth() + 1;
  188. d = newDate.getDate();
  189. }
  190. this.record_date =
  191. y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d);
  192. // this.patient.id = this.patient_prop.id
  193. },
  194. methods: {
  195. didSelectCheckTime: function(time) {
  196. this.check_time_str = parseTime(time, "{y}-{m}-{d} {h}:{i}" + ":00");
  197. },
  198. selectCheckTimeAction: function() {
  199. this.$refs.start_time_picker.open();
  200. },
  201. checkInf: function() {},
  202. // initData(doubleReview, patient, doctor) {
  203. // //上层传值
  204. // this.patient = patient;
  205. // this.doubleReview = doubleReview;
  206. // this.doctor = doctor;
  207. // },
  208. commitInfo: function() {
  209. Toast.loading({ forbidClick: true, duration: 0 });
  210. let ParamsQuery = this.doubleReview;
  211. // ParamsQuery["patient"] = this.patient.id
  212. ParamsQuery["patient"] = this.$route.query.patient_id;
  213. ParamsQuery["record_date"] = this.record_date;
  214. ParamsQuery["check_time"] = this.check_time_str;
  215. commitDoubleCheck(ParamsQuery).then(response => {
  216. if (response.data.state == 0) {
  217. // this.$toast({message: response.data.msg});
  218. Toast.fail(response.data.msg);
  219. return false;
  220. } else {
  221. Toast.success("提交成功");
  222. this.doubleReview.creater = response.data.data.doubleCheck.creater;
  223. this.doubleReview.check_time =
  224. response.data.data.doubleCheck.check_time;
  225. this.doubleReview.first_check_time =
  226. response.data.data.doubleCheck.first_check_time;
  227. this.doubleReview.modifier = response.data.data.doubleCheck.modifier;
  228. for (const key in response.data.data.doubleCheck) {
  229. this.record[key] = response.data.data.doubleCheck[key];
  230. }
  231. this.$emit("did_update", response.data.data.doubleCheck);
  232. }
  233. });
  234. },
  235. close: function() {
  236. this.$emit("close");
  237. },
  238. getFirstCheckDesc: function() {
  239. if (
  240. this.doubleReview.first_check_time > 0 &&
  241. this.doubleReview.check_time > 0
  242. ) {
  243. if (this.doubleReview.first_check_time < this.doubleReview.check_time) {
  244. let time = uParseTime(
  245. this.doubleReview.first_check_time,
  246. "{y}-{m}-{d} {h}:{i}"
  247. );
  248. if (this.doubleReview.creater <= 0) {
  249. return "";
  250. }
  251. var desc = "";
  252. if (
  253. this.admin_users == null ||
  254. typeof this.admin_users.length == "undefined"
  255. ) {
  256. return "";
  257. }
  258. var leng = this.admin_users.length;
  259. if (leng == 0) {
  260. return "";
  261. }
  262. for (let index = 0; index < leng; index++) {
  263. if (this.admin_users[index].id == this.doubleReview.creater) {
  264. let name = this.admin_users[index].name;
  265. desc = "首次核对人员:" + name + " 首次核对时间:" + time;
  266. break;
  267. }
  268. }
  269. return desc;
  270. } else {
  271. let time = uParseTime(
  272. this.doubleReview.check_time,
  273. "{y}-{m}-{d} {h}:{i}"
  274. );
  275. if (this.doubleReview.modifier <= 0) {
  276. return "";
  277. }
  278. var desc = "";
  279. if (
  280. this.admin_users == null ||
  281. typeof this.admin_users.length == "undefined"
  282. ) {
  283. return "";
  284. }
  285. var leng = this.admin_users.length;
  286. if (leng == 0) {
  287. return "";
  288. }
  289. for (let index = 0; index < leng; index++) {
  290. if (this.admin_users[index].id == this.doubleReview.modifier) {
  291. let name = this.admin_users[index].name;
  292. desc = "首次核对人员:" + name + " 首次核对时间:" + time;
  293. break;
  294. }
  295. }
  296. return desc;
  297. }
  298. } else {
  299. let time = uParseTime(
  300. this.doubleReview.first_check_time,
  301. "{y}-{m}-{d} {h}:{i}"
  302. );
  303. if (this.doubleReview.creater <= 0) {
  304. return "";
  305. }
  306. var desc = "";
  307. if (
  308. this.admin_users == null ||
  309. typeof this.admin_users.length == "undefined"
  310. ) {
  311. return "";
  312. }
  313. var leng = this.admin_users.length;
  314. if (leng == 0) {
  315. return "";
  316. }
  317. for (let index = 0; index < leng; index++) {
  318. if (this.admin_users[index].id == this.doubleReview.creater) {
  319. let name = this.admin_users[index].name;
  320. desc = "首次核对人员:" + name + " 首次核对时间:" + time;
  321. break;
  322. }
  323. }
  324. return desc;
  325. }
  326. },
  327. getScondCheckDesc: function() {
  328. if (
  329. this.doubleReview.first_check_time > 0 &&
  330. this.doubleReview.check_time > 0
  331. ) {
  332. if (this.doubleReview.first_check_time < this.doubleReview.check_time) {
  333. let time = uParseTime(
  334. this.doubleReview.check_time,
  335. "{y}-{m}-{d} {h}:{i}"
  336. );
  337. if (this.doubleReview.modifier <= 0) {
  338. return "";
  339. }
  340. var desc = "";
  341. if (
  342. this.admin_users == null ||
  343. typeof this.admin_users.length == "undefined"
  344. ) {
  345. return desc;
  346. }
  347. var leng = this.admin_users.length;
  348. if (leng == 0) {
  349. return desc;
  350. }
  351. for (let index = 0; index < leng; index++) {
  352. if (this.admin_users[index].id == this.doubleReview.modifier) {
  353. let name = this.admin_users[index].name;
  354. desc = "第二次核对人员:" + name + " 第二次核对时间:" + time;
  355. break;
  356. }
  357. }
  358. return desc;
  359. } else {
  360. let time = uParseTime(
  361. this.doubleReview.first_check_time,
  362. "{y}-{m}-{d} {h}:{i}"
  363. );
  364. if (this.doubleReview.creater <= 0) {
  365. return "";
  366. }
  367. var desc = "";
  368. if (
  369. this.admin_users == null ||
  370. typeof this.admin_users.length == "undefined"
  371. ) {
  372. return desc;
  373. }
  374. var leng = this.admin_users.length;
  375. if (leng == 0) {
  376. return desc;
  377. }
  378. for (let index = 0; index < leng; index++) {
  379. if (this.admin_users[index].id == this.doubleReview.creater) {
  380. let name = this.admin_users[index].name;
  381. desc = "第二次核对人员:" + name + " 第二次核对时间:" + time;
  382. break;
  383. }
  384. }
  385. return desc;
  386. }
  387. } else {
  388. let time = uParseTime(
  389. this.doubleReview.check_time,
  390. "{y}-{m}-{d} {h}:{i}"
  391. );
  392. if (this.doubleReview.modifier <= 0) {
  393. return "";
  394. }
  395. var desc = "";
  396. if (
  397. this.admin_users == null ||
  398. typeof this.admin_users.length == "undefined"
  399. ) {
  400. return desc;
  401. }
  402. var leng = this.admin_users.length;
  403. if (leng == 0) {
  404. return desc;
  405. }
  406. for (let index = 0; index < leng; index++) {
  407. if (this.admin_users[index].id == this.doubleReview.modifier) {
  408. let name = this.admin_users[index].name;
  409. desc = "第二次核对人员:" + name + " 第二次核对时间:" + time;
  410. break;
  411. }
  412. }
  413. return desc;
  414. }
  415. },
  416. getDate: function(val) {
  417. return parseTime(val, "{y}-{m}-{d} {h}:{i}");
  418. }
  419. },
  420. mounted() {
  421. if (this.record.id == 0) {
  422. this.check_time_str = parseTime(
  423. this.check_time,
  424. "{y}-{m}-{d} {h}:{i}" + ":00"
  425. );
  426. } else {
  427. if (this.record.modifier == 0) {
  428. this.check_time_str = parseTime(
  429. this.check_time,
  430. "{y}-{m}-{d} {h}:{i}" + ":00"
  431. );
  432. } else {
  433. this.check_time_str = parseTime(
  434. this.record.check_time,
  435. "{y}-{m}-{d} {h}:{i}" + ":00"
  436. );
  437. }
  438. }
  439. }
  440. };
  441. </script>
  442. <style style="stylesheet/scss" lang="scss" scoped>
  443. .choose {
  444. .demo-form-inline {
  445. border-bottom: 1px #e5e5e5 solid;
  446. .el-form-item {
  447. margin-bottom: 0;
  448. padding: 0.2rem 0.2rem;
  449. margin-right: 0;
  450. }
  451. p {
  452. color: $title-color;
  453. }
  454. }
  455. .button {
  456. text-align: center;
  457. margin-top: 1rem;
  458. .submitButton {
  459. width: 3rem;
  460. height: 0.8rem;
  461. line-height: 0.8rem;
  462. background: $main-color;
  463. color: #fff;
  464. font-size: 0.3rem;
  465. text-align: center;
  466. border-radius: 6px;
  467. }
  468. }
  469. }
  470. </style>
  471. <style lang="scss">
  472. .el-radio__inner {
  473. @media only screen and (min-width: 768px) {
  474. width: 20px;
  475. height: 20px;
  476. }
  477. }
  478. .el-radio__input {
  479. @media only screen and (min-width: 768px) {
  480. margin-top: -6px;
  481. }
  482. }
  483. </style>