doubleCheck.vue 46KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354
  1. <template>
  2. <div class="doubleCheck">
  3. <div>
  4. <van-collapse v-model="activeNames" accordion>
  5. <div>
  6. <van-cell title="透析物品核查">
  7. <template #right-icon>
  8. <van-radio-group v-model="doubleReview.dialysis_item_check" @change="changeRadio">
  9. <van-radio name="1" style="width: 100%;">正确</van-radio>
  10. </van-radio-group>
  11. </template>
  12. </van-cell>
  13. <van-field v-model="doubleReview.dialysis_item_desc" label="差错描述"/>
  14. <van-checkbox-group v-model="result" @change='toCheck'>
  15. <van-checkbox name="a">透析器/灌流器/滤过器:<span v-if="prescription_prop!=null">{{prescription_prop.dialyzer_perfusion_apparatus}}{{prescription_prop.dialysis_dialyszers}}{{prescription_prop.dialysis_irrigation}}<span v-if="prescription_prop.dialysis_strainer!=''">/</span> {{prescription_prop.dialysis_strainer }}</span></van-checkbox>
  16. <van-field v-model="doubleReview.dialyzer_batch_number" label="批号:" v-if="isShow('批号')" />
  17. <van-checkbox name="b">穿刺针:<span v-if="predialysis!=null">{{predialysis.puncture_needle}}</span></van-checkbox>
  18. <van-field v-model="doubleReview.needle_batch_number" label="批号:" v-if="isShow('批号')"/>
  19. <van-checkbox name="c">透析液配方:<span v-if="prescription_prop!=null">{{GetDialysateFormulationById(prescription_prop.dialysate_formulation)}}</span></van-checkbox>
  20. <van-checkbox name="d">钾:<span v-if="prescription_prop!=null">{{prescription_prop.kalium}}</span></van-checkbox>
  21. <van-checkbox name="e">钙:<span v-if="prescription_prop!=null">{{prescription_prop.calcium}}</span></van-checkbox>
  22. </van-checkbox-group>
  23. </div>
  24. <div>
  25. <van-cell title="透析参数核查">
  26. <template #right-icon>
  27. <van-radio-group v-model="doubleReview.dialysis_parameter_check" @change="changeRadioOne">
  28. <van-radio name="1" style="width: 100%;">正确</van-radio>
  29. </van-radio-group>
  30. </template>
  31. </van-cell>
  32. <van-field v-model="doubleReview.dialysis_parameter_desc" label="差错描述"/>
  33. <van-checkbox-group v-model="resultOne" @change='toCheckOne'>
  34. <van-checkbox name="a">透析模式:<span v-if="prescription_prop!=null">{{getMode(prescription_prop.mode_id)}}</span></van-checkbox>
  35. <van-checkbox name="b">透析时长:<span v-if="prescription_prop!=null">{{prescription_prop.dialysis_duration_hour}}小时{{prescription_prop.dialysis_duration_minute}}分</span></van-checkbox>
  36. <van-checkbox name="c">目标超滤量:<span v-if="prescription_prop!=null">{{prescription_prop.target_ultrafiltration?prescription_prop.target_ultrafiltration:""}} </span> <span v-if="org_id==10617">L</span></van-checkbox>
  37. <van-checkbox name="m" v-if="org_id ==10469 || org_id ==10597 || org_id ==10679 || org_id ==10702">处方脱水量:<span v-if="prescription_prop!=null">{{prescription_prop.prescription_water?prescription_prop.prescription_water:""}}</span></van-checkbox>
  38. <van-checkbox name="d">抗凝剂:<span v-if="prescription_prop!=null">{{getAnticoagulant(prescription_prop.anticoagulant)}}</span></van-checkbox>
  39. <van-checkbox name="e">首剂:<span v-if="prescription_prop!=null">{{prescription_prop.anticoagulant_shouji}}</span></van-checkbox>
  40. <van-checkbox name="f">维持:<span v-if="prescription_prop!=null">{{prescription_prop.anticoagulant_weichi}}</span></van-checkbox>
  41. <van-checkbox name="g">总量:<span v-if="prescription_prop!=null">{{prescription_prop.anticoagulant_zongliang}}</span></van-checkbox>
  42. <van-checkbox name="h">置换液:<span v-if="prescription_prop!=null">
  43. <span v-if="prescription_prop.displace_liqui_part==1">前稀释</span>
  44. <span v-if="prescription_prop.displace_liqui_part==2">后稀释</span>
  45. </span>
  46. </van-checkbox>
  47. <van-checkbox name="i">置换量:<span v-if="prescription_prop!=null">{{prescription_prop.replacement_total?prescription_prop.replacement_total:""}}</span></van-checkbox>
  48. <van-checkbox name="j">处方血流量:<span v-if="prescription_prop!=null">{{prescription_prop.blood_flow_volume?prescription_prop.blood_flow_volume:""}}</span></van-checkbox>
  49. <van-checkbox name="k">透析液流量:<span v-if="prescription_prop!=null">{{prescription_prop.dialysate_flow?prescription_prop.dialysate_flow:''}}</span></van-checkbox>
  50. <van-checkbox name="l">置换液总量:<span v-if="prescription_prop!=null">{{prescription_prop.displace_liqui_value?prescription_prop.displace_liqui_value:''}}</span></van-checkbox>
  51. </van-checkbox-group>
  52. </div>
  53. <div>
  54. <van-cell title="血管通路核查">
  55. <template #right-icon>
  56. <van-radio-group v-model="doubleReview.vascular_access_verification" @change="changeRadioTwo">
  57. <van-radio name="1" style="width: 100%;">正确</van-radio>
  58. </van-radio-group>
  59. </template>
  60. </van-cell>
  61. <van-field v-model="doubleReview.vascular_access_desc" label="差错描述"/>
  62. <van-checkbox-group v-model="resultTwo" @change='toCheckTwo'>
  63. <van-checkbox name="a">通路类型:<span v-if="predialysis!=null">{{predialysis.blood_access_part_id}}&nbsp;&nbsp;{{getBloodAccess(predialysis.blood_access_part_opera_id)}}</span></van-checkbox>
  64. <van-checkbox name="b">动静脉接错</van-checkbox>
  65. <van-checkbox name="c">渗血</van-checkbox>
  66. <van-checkbox name="d">压迫</van-checkbox>
  67. <van-checkbox name="e">折叠</van-checkbox>
  68. <van-checkbox name="f">滑脱</van-checkbox>
  69. </van-checkbox-group>
  70. </div>
  71. <div>
  72. <van-cell title="管道连接核查">
  73. <template #right-icon>
  74. <van-radio-group v-model="doubleReview.pipeline_connection_check" @change="changeRadioThree">
  75. <van-radio name="1" style="width: 100%;">正确</van-radio>
  76. </van-radio-group>
  77. </template>
  78. </van-cell>
  79. <van-field v-model="doubleReview.pipeline_connection_desc" label="差错描述"/>
  80. <van-checkbox-group v-model="resultThree" @change='toCheckThree'>
  81. <van-checkbox name="a">泵前补液测管未夹</van-checkbox>
  82. <van-checkbox name="b">肝素管夹未开启</van-checkbox>
  83. <van-checkbox name="c">透析液连接错误</van-checkbox>
  84. <van-checkbox name="d">动静脉壶页面不标准</van-checkbox>
  85. <van-checkbox name="e">静脉管道未夹入保护夹</van-checkbox>
  86. <van-checkbox name="f">压力传感器夹未打开</van-checkbox>
  87. <van-checkbox name="i">接口连接松动</van-checkbox>
  88. <van-checkbox name="j">管路打折</van-checkbox>
  89. <van-checkbox name="k">肝素补液口未双保险夹闭</van-checkbox>
  90. </van-checkbox-group>
  91. </div>
  92. <van-field v-model="first_check_time_str" readonly @click="selectFirstCheckTimeAction" label="第一核对时间" input-align="right"/>
  93. <van-cell title='第一核对人员' v-if="org_id!=10597">
  94. <template #label>
  95. <van-radio-group class="doctorList" v-model="doubleReview.creater">
  96. <van-radio :name="item.id" v-for='(item,index) in admin_map' :key="index" v-if='item.status === 1&& item.user_type ===3'>{{ item.name }}</van-radio>
  97. </van-radio-group>
  98. </template>
  99. </van-cell>
  100. <van-cell title='第一核对人员' v-if="org_id==10597">
  101. <template #label>
  102. <van-radio-group class="doctorList" v-model="doubleReview.creater">
  103. <van-radio :name="item.id" v-for='(item,index) in admin_map' :key="index" v-if='item.status === 1'>{{ item.name }}</van-radio>
  104. </van-radio-group>
  105. </template>
  106. </van-cell>
  107. <van-field v-if="org_id!=10629" v-model="check_time_str" readonly @click="selectSecondCheckTimeAction" label="第二核对时间" input-align="right"/>
  108. <van-cell title='第二核对人员' v-if="org_id!=10597 && org_id!=10629 ">
  109. <template #label>
  110. <van-radio-group class="doctorList" v-model="doubleReview.modifier">
  111. <van-radio :name="item.id" v-for='(item,index) in admin_map' :key="index" v-if='item.status === 1&& item.user_type ===3'>{{ item.name }}</van-radio>
  112. </van-radio-group>
  113. </template>
  114. </van-cell>
  115. <van-cell title='第二核对人员' v-if="org_id==10597">
  116. <template #label>
  117. <van-radio-group class="doctorList" v-model="doubleReview.modifier">
  118. <van-radio :name="item.id" v-for='(item,index) in admin_map' :key="index" v-if='item.status === 1'>{{ item.name }}</van-radio>
  119. </van-radio-group>
  120. </template>
  121. </van-cell>
  122. <div>
  123. <p style="margin: 10px 0 10px 13px;font-size:.875rem" v-if="doubleReview.creater != 0&&doubleReview.id > 0">
  124. {{ getFirstCheckDesc() }}
  125. </p>
  126. <p style="margin: 10px 0 10px 13px;font-size:.875rem" v-if="doubleReview.modifier != 0&&doubleReview.id > 0">
  127. {{ getScondCheckDesc() }}
  128. </p>
  129. </div>
  130. <van-field v-model="doubleReview.employee_number" label="第二核对人员工号" :required="isShow_title('第二核对人员工号')" v-if="isShow('第二核对人员工号')"/>
  131. </van-collapse>
  132. </div>
  133. <div class="preserveBox">
  134. <div @click="commitInfo" v-if="isCommit">保存</div>
  135. <div v-else class="disabled">保存</div>
  136. </div>
  137. <mt-datetime-picker
  138. class="datetimePicker"
  139. ref="first_check_time_picker"
  140. type="datetime"
  141. @confirm="didSelectFirstCheckTime"
  142. v-model="first_check_time"
  143. ></mt-datetime-picker>
  144. <mt-datetime-picker
  145. class="datetimePicker"
  146. ref="second_check_time_picker"
  147. type="datetime"
  148. @confirm="didSelectCheckTime"
  149. v-model="check_time"
  150. ></mt-datetime-picker>
  151. <van-popup
  152. v-model="infor_visibility"
  153. class="advicePopup"
  154. get-container="#today_panel"
  155. >
  156. <infor-sub-menu
  157. :visibility="infor_visibility"
  158. v-on:menu-cancle-three="menuCancleFour"
  159. v-on:menu-comfirm-three="menuComfirmFour"
  160. >
  161. </infor-sub-menu>
  162. </van-popup>
  163. </div>
  164. </template>
  165. <script>
  166. import {commitDoubleCheck, getRoleList} from '@/api/dialysis'
  167. import InforSubMenu from "../dialog/subMenu/InforSubMenu.vue"
  168. import { saveMobileInformation } from '@/api/dialysis'
  169. import {getDataConfig} from '@/utils/data'
  170. import {Toast} from 'vant'
  171. import { Dialog } from "vant";
  172. import {uParseTime} from '@/utils/tools'
  173. import {parseTime} from '@/utils'
  174. export default {
  175. props: {
  176. record: {
  177. type: Object,
  178. default: () => {
  179. return {id: 0}
  180. }
  181. },
  182. admin_map: {
  183. type: Object
  184. },
  185. admins: {
  186. type: Array
  187. },
  188. patient_prop: {
  189. type: Object
  190. },
  191. admin_users_prop: {
  192. type: Array
  193. },
  194. predialysis: {
  195. type: Object
  196. },
  197. prescription_prop: {
  198. type: Object
  199. }
  200. },
  201. components:{
  202. InforSubMenu
  203. },
  204. data () {
  205. return {
  206. activeNames: '1',
  207. creater: this.$store.getters.user.admin.id,
  208. modifier: '',
  209. doubleReview: {
  210. dialysis_item_check: '1',
  211. dialysis_parameter_check: '1',
  212. vascular_access_verification: '1',
  213. pipeline_connection_check: '1',
  214. dialysis_item_desc: '',
  215. dialysis_parameter_desc: '',
  216. vascular_access_desc: '',
  217. pipeline_connection_desc: '',
  218. collator: '',
  219. creater: this.$store.getters.user.admin.id,
  220. modifier: '',
  221. created_time: 0,
  222. updated_time: 0,
  223. check_time: 0,
  224. first_check_time: 0,
  225. employee_number: '',
  226. dialyzer_batch_number:"",
  227. needle_batch_number:"",
  228. },
  229. check_time: new Date(),
  230. first_check_time: new Date(),
  231. check_time_str: '',
  232. first_check_time_str: '',
  233. dialysateFormulationOptions: [],
  234. result: [],
  235. resultOne: [],
  236. resultTwo: [],
  237. resultThree: [],
  238. resultFour: [],
  239. changeDoubleReview: 0,
  240. isCommit: true,
  241. infor_visibility:false,
  242. }
  243. },
  244. computed: {
  245. newDoubleReview () {
  246. return JSON.parse(JSON.stringify(this.doubleReview))
  247. }
  248. },
  249. created () {
  250. this.org_id = this.$store.getters.user.template_info.org_id
  251. if (this.record.id != 0) {
  252. if (this.record.dialysis_item_desc.indexOf('透析器/灌流器') != -1) {
  253. this.result.push('a')
  254. }
  255. if (this.record.dialysis_item_desc.indexOf('穿刺针') != -1) {
  256. this.result.push('b')
  257. }
  258. if (this.record.dialysis_item_desc.indexOf('透析液配方') != -1) {
  259. this.result.push('c')
  260. }
  261. if (this.record.dialysis_item_desc.indexOf('钾') != -1) {
  262. this.result.push('d')
  263. }
  264. if (this.record.dialysis_item_desc.indexOf('钾') != -1) {
  265. this.result.push('e')
  266. }
  267. if (this.record.dialysis_parameter_desc.indexOf('透析模式') != -1) {
  268. this.resultOne.push('a')
  269. }
  270. if (this.record.dialysis_parameter_desc.indexOf('透析时长') != -1) {
  271. this.resultOne.push('b')
  272. }
  273. if (this.record.dialysis_parameter_desc.indexOf('目标超滤量') != -1) {
  274. this.resultOne.push('c')
  275. }
  276. if (this.record.dialysis_parameter_desc.indexOf('抗凝剂') != -1) {
  277. this.resultOne.push('d')
  278. }
  279. if (this.record.dialysis_parameter_desc.indexOf('首剂') != -1) {
  280. this.resultOne.push('e')
  281. }
  282. if (this.record.dialysis_parameter_desc.indexOf('维持') != -1) {
  283. this.resultOne.push('f')
  284. }
  285. if (this.record.dialysis_parameter_desc.indexOf('总量') != -1) {
  286. this.resultOne.push('g')
  287. }
  288. if (this.record.dialysis_parameter_desc.indexOf('置换液') != -1) {
  289. this.resultOne.push('h')
  290. }
  291. if (this.record.dialysis_parameter_desc.indexOf('置换总量') != -1) {
  292. this.resultOne.push('i')
  293. }
  294. if (this.record.dialysis_parameter_desc.indexOf('处方血流量') != -1) {
  295. this.resultOne.push('j')
  296. }
  297. if (this.record.dialysis_parameter_desc.indexOf('透析液流量') != -1) {
  298. this.resultOne.push('k')
  299. }
  300. if (this.record.dialysis_parameter_desc.indexOf('置换液总量') != -1) {
  301. this.resultOne.push('l')
  302. }
  303. if (this.record.vascular_access_desc.indexOf('通路类型') != -1) {
  304. this.resultTwo.push('a')
  305. }
  306. if (this.record.vascular_access_desc.indexOf('动静脉接错') != -1) {
  307. this.resultTwo.push('b')
  308. }
  309. if (this.record.vascular_access_desc.indexOf('渗血') != -1) {
  310. this.resultTwo.push('c')
  311. }
  312. if (this.record.vascular_access_desc.indexOf('压迫') != -1) {
  313. this.resultTwo.push('d')
  314. }
  315. if (this.record.vascular_access_desc.indexOf('折叠') != -1) {
  316. this.resultTwo.push('e')
  317. }
  318. if (this.record.vascular_access_desc.indexOf('滑脱') != -1) {
  319. this.resultTwo.push('f')
  320. }
  321. if (this.record.pipeline_connection_desc.indexOf('泵前补液测管未夹') != -1) {
  322. this.resultThree.push('a')
  323. }
  324. if (this.record.pipeline_connection_desc.indexOf('肝素管夹未开启') != -1) {
  325. this.resultThree.push('b')
  326. }
  327. if (this.record.pipeline_connection_desc.indexOf('透析液连接错误') != -1) {
  328. this.resultThree.push('c')
  329. }
  330. if (this.record.pipeline_connection_desc.indexOf('动静脉壶页面不标准') != -1) {
  331. this.resultThree.push('d')
  332. }
  333. if (this.record.pipeline_connection_desc.indexOf('静脉管道未夹入保护夹') != -1) {
  334. this.resultThree.push('e')
  335. }
  336. if (this.record.pipeline_connection_desc.indexOf('压力传感器夹未打开') != -1) {
  337. this.resultThree.push('f')
  338. }
  339. if (this.record.pipeline_connection_desc.indexOf('接口连接松动') != -1) {
  340. this.resultThree.push('i')
  341. }
  342. if (this.record.pipeline_connection_desc.indexOf('管路打折') != -1) {
  343. this.resultThree.push('j')
  344. }
  345. if (this.record.pipeline_connection_desc.indexOf('肝素补液口未双保险夹闭') != -1) {
  346. this.resultThree.push('k')
  347. }
  348. }
  349. this.admin_users = this.admin_users_prop
  350. if (this.record.id == '') {
  351. this.doubleReview.dialysis_item_check = '1'
  352. this.doubleReview.dialysis_parameter_check = '1'
  353. this.doubleReview.vascular_access_verification = '1'
  354. this.doubleReview.pipeline_connection_check = '1'
  355. this.doubleReview.dialysis_item_desc = ''
  356. this.doubleReview.dialysis_parameter_desc = ''
  357. this.doubleReview.vascular_access_desc = ''
  358. this.doubleReview.pipeline_connection_desc = ''
  359. this.doubleReview.needle_batch_number = ""
  360. this.doubleReview.dialyzer_batch_number = ""
  361. } else {
  362. this.doubleReview.dialysis_item_check =
  363. this.record.dialysis_item_check + ''
  364. this.doubleReview.dialysis_parameter_check =
  365. this.record.dialysis_parameter_check + ''
  366. this.doubleReview.vascular_access_verification =
  367. this.record.vascular_access_verification + ''
  368. this.doubleReview.pipeline_connection_check =
  369. this.record.pipeline_connection_check + ''
  370. this.doubleReview.dialysis_item_desc = this.record.dialysis_item_desc
  371. this.doubleReview.dialysis_parameter_desc = this.record.dialysis_parameter_desc
  372. this.doubleReview.vascular_access_desc = this.record.vascular_access_desc
  373. this.doubleReview.pipeline_connection_desc = this.record.pipeline_connection_desc
  374. this.doubleReview.created_time = this.record.created_time
  375. this.doubleReview.creater = this.record.creater
  376. this.doubleReview.updated_time = this.record.updated_time
  377. this.doubleReview.modifier = this.record.modifier
  378. this.doubleReview.check_time = this.record.check_time
  379. this.doubleReview.first_check_time = this.record.first_check_time
  380. this.doubleReview.employee_number = this.record.employee_number
  381. this.doubleReview.dialyzer_batch_number = this.record.dialyzer_batch_number
  382. this.doubleReview.needle_batch_number = this.record.needle_batch_number
  383. this.doubleReview.id = this.record.id
  384. this.creater = this.record.creater
  385. this.modifier = this.record.modifier
  386. this.first_check_time_str = uParseTime(this.doubleReview.first_check_time, '{y}-{m}-{d} {h}:{i}' + ':00')
  387. if (this.$store.getters.user.admin.id == this.record.creater || this.record.modifier > 0) {
  388. if (this.doubleReview.check_time != 0) {
  389. this.check_time_str = uParseTime(this.doubleReview.check_time, '{y}-{m}-{d} {h}:{i}' + ':00')
  390. }
  391. } else if (this.$store.getters.user.admin.id != this.record.creater && this.record.modifier == 0) {
  392. this.check_time_str = uParseTime(new Date(), '{y}-{m}-{d} {h}:{i}' + ':00')
  393. this.modifier = this.$store.getters.user.admin.id
  394. this.doubleReview.modifier = this.$store.getters.user.admin.id
  395. }
  396. }
  397. var date = this.$route.query && this.$route.query.date
  398. date *= 1000
  399. var newDate = new Date(date)
  400. var y = newDate.getFullYear()
  401. var m = newDate.getMonth() + 1
  402. var d = newDate.getDate()
  403. if (isNaN(y) || isNaN(m) || isNaN(d)) {
  404. newDate = new Date()
  405. y = newDate.getFullYear()
  406. m = newDate.getMonth() + 1
  407. d = newDate.getDate()
  408. }
  409. this.record_date = y + '-' + (m < 10 ? '0' + m : m) + '-' + (d < 10 ? '0' + d : d)
  410. this.dialysateFormulationOptions = getDataConfig('hemodialysis', 'dialysate_formulation')
  411. var obj = []
  412. for (let i = 0; i < this.admin_map.length; i++) {
  413. if (this.admin_map[i].status == 1) {
  414. obj.push(this.admin_map[i])
  415. }
  416. }
  417. },
  418. mounted () {
  419. if (this.record.id == 0) {
  420. this.first_check_time_str = parseTime(this.check_time, '{y}-{m}-{d} {h}:{i}' + ':00')
  421. if (this.record.creater && this.$store.getters.user.admin.id != this.record.creater) {
  422. this.check_time_str = parseTime(this.check_time, '{y}-{m}-{d} {h}:{i}' + ':00')
  423. this.modifier = this.$store.getters.user.admin.id
  424. }
  425. this.doubleReview.check_time = this.check_time_str
  426. this.doubleReview.first_check_time = this.first_check_time_str
  427. }
  428. if(this.org_id == 9671 || this.org_id == 10469){
  429. this.check_time_str = parseTime(this.check_time, '{y}-{m}-{d} {h}:{i}' + ':00')
  430. }
  431. },
  432. methods: {
  433. GetDialysateFormulationById: function (val) {
  434. let name = ''
  435. let dfl = this.dialysateFormulationOptions.length
  436. for (let index = 0; index < dfl; index++) {
  437. if (this.dialysateFormulationOptions[index].id == val) {
  438. name = this.dialysateFormulationOptions[index].name
  439. break
  440. }
  441. }
  442. return name
  443. },
  444. getBloodAccess (id) {
  445. let vascular_access_desc_name = ''
  446. let vascular_access_desc = getDataConfig('hemodialysis', 'vascular_access_desc')
  447. var name = ''
  448. for (let i = 0; i < vascular_access_desc.length; i++) {
  449. if (vascular_access_desc[i].id == id) {
  450. name = vascular_access_desc[i].name
  451. }
  452. }
  453. return name
  454. },
  455. getMode (id) {
  456. var name = ''
  457. if (id == 1) {
  458. name = 'HD'
  459. }
  460. if (id == 2) {
  461. name = 'HDF'
  462. }
  463. if (id == 3) {
  464. name = 'HD+HP'
  465. }
  466. if (id == 4) {
  467. name = 'HP'
  468. }
  469. if (id == 5) {
  470. name = 'HF'
  471. }
  472. if (id == 6) {
  473. name = 'SCUF'
  474. }
  475. if (id == 7) {
  476. name = 'IUF'
  477. }
  478. if (id == 8) {
  479. name = 'HFHD'
  480. }
  481. if (id == 9) {
  482. name = 'HFHD+HP'
  483. }
  484. if (id == 10) {
  485. name = 'PHF'
  486. }
  487. if (id == 11) {
  488. name = 'HFR'
  489. }
  490. if (id == 12) {
  491. name = 'HDF+HP'
  492. }
  493. if (id == 13) {
  494. name = 'CRRT'
  495. }
  496. if (id == 14) {
  497. name = '腹水回输'
  498. }
  499. if (id == 19) {
  500. name = 'IUF+HD'
  501. }
  502. if (id == 20) {
  503. name = 'UF'
  504. }
  505. if (id == 21) {
  506. name = 'HD+'
  507. }
  508. if (id == 22) {
  509. name = '血浆胆红素吸附+HDF'
  510. }
  511. if (id == 23) {
  512. name = '血浆胆红素吸附'
  513. }
  514. if (id == 24) {
  515. name = 'I-HDF'
  516. }
  517. if (id == 25) {
  518. name = 'HD高通'
  519. }
  520. if (id == 26) {
  521. name = 'CVVH'
  522. }
  523. if (id == 27) {
  524. name = 'CVVHD'
  525. }
  526. if (id == 28) {
  527. name = 'CVVHDF'
  528. }
  529. if (id == 29) {
  530. name = 'PE'
  531. }
  532. if (id == 30) {
  533. name = '血浆胆红素吸附+HP'
  534. }
  535. return name
  536. },
  537. getAnticoagulant (id) {
  538. var name = ''
  539. if (id == 1) {
  540. name = '无肝素'
  541. }
  542. if (id == 2) {
  543. name = '普通肝素'
  544. }
  545. if (id == 3) {
  546. name = '低分子肝素'
  547. }
  548. if (id == 4) {
  549. name = '阿加曲班'
  550. }
  551. if (id == 5) {
  552. name = '枸橼酸钠'
  553. }
  554. if (id == 6) {
  555. name = '低分子肝素钙'
  556. }
  557. if (id == 7) {
  558. name = '低分子肝素钠'
  559. }
  560. if (id == 11) {
  561. name = '那屈肝素'
  562. }
  563. return name
  564. },
  565. toCheck (val) {
  566. var arr = []
  567. var str = val.join(';')
  568. if (str.indexOf('a') != -1 && this.prescription_prop.id != 0) {
  569. arr.push('透析器/灌流器/滤过器:' + this.prescription_prop.dialyzer_perfusion_apparatus + "/"+this.prescription_prop.dialysis_strainer)
  570. }
  571. if (str.indexOf('a') != -1 && this.prescription_prop.id == 0) {
  572. arr.push('透析器/灌流器/滤过器:')
  573. }
  574. if (str.indexOf('b') != -1 && this.predialysis != null) {
  575. arr.push('穿刺针:' + (this.predialysis.puncture_needle ? this.predialysis.puncture_needle : ''))
  576. }
  577. if (str.indexOf('b') != -1 && this.predialysis == null) {
  578. arr.push('穿刺针:')
  579. }
  580. if (str.indexOf('c') != -1 && this.GetDialysateFormulationById(this.prescription_prop.dialysate_formulation) != null) {
  581. arr.push('透析液配方:' + this.GetDialysateFormulationById(this.prescription_prop.dialysate_formulation))
  582. }
  583. if (str.indexOf('d') != -1 && this.prescription_prop.id != 0) {
  584. arr.push('钾:' + this.prescription_prop.kalium)
  585. }
  586. if (str.indexOf('d') != -1 && this.prescription_prop.id == 0) {
  587. arr.push('钾:')
  588. }
  589. if (str.indexOf('e') != -1 && this.prescription_prop.id != 0) {
  590. arr.push('钙:' + this.prescription_prop.calcium)
  591. }
  592. if (str.indexOf('e') != -1 && this.prescription_prop.id == 0) {
  593. arr.push('钙:')
  594. }
  595. this.doubleReview.dialysis_item_desc = arr.join(';')
  596. if (val.length == 0) {
  597. this.doubleReview.dialysis_item_check = '1'
  598. } else {
  599. this.doubleReview.dialysis_item_check = 2
  600. }
  601. },
  602. toCheckOne (val) {
  603. var arr = []
  604. var str = val.join(';')
  605. if (str.indexOf('a') != -1 && this.prescription_prop.id != 0) {
  606. arr.push('透析模式:' + this.getMode(this.prescription_prop.mode_id))
  607. }
  608. if (str.indexOf('a') != -1 && this.prescription_prop.id == 0) {
  609. arr.push('透析模式:')
  610. }
  611. if (str.indexOf('b') != -1 && this.prescription_prop.id != 0) {
  612. arr.push('透析时长:' + (this.prescription_prop.dialysis_duration ? this.prescription_prop.dialysis_duration : ''))
  613. }
  614. if (str.indexOf('b') != -1 && this.prescription_prop.id == 0) {
  615. arr.push('透析时长:')
  616. }
  617. if (str.indexOf('c') != -1 && this.prescription_prop.id != 0) {
  618. arr.push('目标超滤量:' + this.prescription_prop.target_ultrafiltration)
  619. }
  620. if (str.indexOf('c') != -1 && this.prescription_prop.id == 0) {
  621. arr.push('目标超滤量:')
  622. }
  623. if (str.indexOf('m') != -1 && this.prescription_prop.id != 0) {
  624. arr.push('处方脱水量:' + this.prescription_prop.prescription_water)
  625. }
  626. if (str.indexOf('m') != -1 && this.prescription_prop.id == 0) {
  627. arr.push('处方脱水量:')
  628. }
  629. if (str.indexOf('d') != -1 && this.prescription_prop.id != 0) {
  630. arr.push('抗凝剂:' + this.getAnticoagulant(this.prescription_prop.anticoagulant))
  631. }
  632. if (str.indexOf('d') != -1 && this.prescription_prop.id == 0) {
  633. arr.push('抗凝剂:')
  634. }
  635. if (str.indexOf('e') != -1 && this.prescription_prop.id != 0) {
  636. arr.push('首剂:' + (this.prescription_prop.anticoagulant_shouji ? this.prescription_prop.anticoagulant_shouji : ''))
  637. }
  638. if (str.indexOf('e') != -1 && this.prescription_prop.id == 0) {
  639. arr.push('首剂:')
  640. }
  641. if (str.indexOf('f') != -1 && this.prescription_prop.id != 0) {
  642. arr.push('维持:' + (this.prescription_prop.anticoagulant_weichi ? this.prescription_prop.anticoagulant_weichi : ''))
  643. }
  644. if (str.indexOf('f') != -1 && this.prescription_prop.id == 0) {
  645. arr.push('维持:')
  646. }
  647. if (str.indexOf('g') != -1 && this.prescription_prop.id != 0) {
  648. arr.push('总量:' + (this.prescription_prop.anticoagulant_zongliang ? this.prescription_prop.anticoagulant_zongliang : ''))
  649. }
  650. if (str.indexOf('g') != -1 && this.prescription_prop.id == 0) {
  651. arr.push('总量:')
  652. }
  653. if (str.indexOf('h') != -1 && this.prescription_prop.id != 0) {
  654. arr.push('置换液:' + (this.prescription_prop.displace_liqui_part ? this.prescription_prop.displace_liqui_part : ''))
  655. }
  656. if (str.indexOf('h') != -1 && this.prescription_prop.id == 0) {
  657. arr.push('置换液:')
  658. }
  659. if (str.indexOf('i') != -1 && this.prescription_prop.id != 0) {
  660. arr.push('置换总量:' + (this.prescription_prop.replacement_total ? this.prescription_prop.replacement_total : ''))
  661. }
  662. if (str.indexOf('i') != -1 && this.prescription_prop.id == 0) {
  663. arr.push('置换总量:')
  664. }
  665. if (str.indexOf('j') != -1 && this.prescription_prop.id != 0) {
  666. arr.push('处方血流量:' + (this.prescription_prop.blood_flow_volume ? this.prescription_prop.blood_flow_volume : ''))
  667. }
  668. if (str.indexOf('j') != -1 && this.prescription_prop.id == 0) {
  669. arr.push('处方血流量:')
  670. }
  671. if (str.indexOf('k') != -1 && this.prescription_prop.id != 0) {
  672. arr.push('透析液流量:' + (this.prescription_prop.dialysate_flow ? this.prescription_prop.dialysate_flow : ''))
  673. }
  674. if (str.indexOf('k') != -1 && this.prescription_prop.id == 0) {
  675. arr.push('透析液流量:')
  676. }
  677. if (str.indexOf('l') != -1 && this.prescription_prop.id != 0) {
  678. arr.push('置换液总量:' + (this.prescription_prop.displace_liqui_value ? this.prescription_prop.displace_liqui_value : ''))
  679. }
  680. if (str.indexOf('l') != -1 && this.prescription_prop.id == 0) {
  681. arr.push('置换液总量:')
  682. }
  683. this.doubleReview.dialysis_parameter_desc = arr.join(';')
  684. if (val.length == 0) {
  685. this.doubleReview.dialysis_parameter_check = '1'
  686. } else {
  687. this.doubleReview.dialysis_parameter_check = 2
  688. }
  689. },
  690. toCheckTwo (val) {
  691. var arr = []
  692. var str = val.join(';')
  693. if (str.indexOf('a') != -1) {
  694. arr.push('通路类型:' + this.getBloodAccess(this.predialysis.blood_access_part_opera_id))
  695. }
  696. if (str.indexOf('b') != -1) {
  697. arr.push('动静脉接错:')
  698. }
  699. if (str.indexOf('c') != -1) {
  700. arr.push('渗血')
  701. }
  702. if (str.indexOf('d') != -1) {
  703. arr.push('压迫')
  704. }
  705. if (str.indexOf('e') != -1) {
  706. arr.push('折叠')
  707. }
  708. if (str.indexOf('f') != -1) {
  709. arr.push('滑脱')
  710. }
  711. this.doubleReview.vascular_access_desc = arr.join(';')
  712. if (val.length == 0) {
  713. this.doubleReview.vascular_access_verification = '1'
  714. } else {
  715. this.doubleReview.vascular_access_verification = 2
  716. }
  717. },
  718. toCheckThree (val) {
  719. var arr = []
  720. var str = val.join(';')
  721. if (str.indexOf('a') != -1) {
  722. arr.push('泵前补液测管未夹:')
  723. }
  724. if (str.indexOf('b') != -1) {
  725. arr.push('肝素管夹未开启')
  726. }
  727. if (str.indexOf('c') != -1) {
  728. arr.push('透析液连接错误')
  729. }
  730. if (str.indexOf('d') != -1) {
  731. arr.push('动静脉壶页面不标准')
  732. }
  733. if (str.indexOf('e') != -1) {
  734. arr.push('静脉管道未夹入保护夹')
  735. }
  736. if (str.indexOf('f') != -1) {
  737. arr.push('压力传感器夹未打开')
  738. }
  739. if (str.indexOf('i') != -1) {
  740. arr.push('接口连接松动')
  741. }
  742. if (str.indexOf('j') != -1) {
  743. arr.push('管路打折')
  744. }
  745. if (str.indexOf('k') != -1) {
  746. arr.push('肝素补液口未双保险夹闭')
  747. }
  748. this.doubleReview.pipeline_connection_desc = arr.join(';')
  749. if (val.length == 0) {
  750. this.doubleReview.pipeline_connection_check = '1'
  751. } else {
  752. this.doubleReview.pipeline_connection_check = 2
  753. }
  754. },
  755. changeRadio (val) {
  756. if (val == 1) {
  757. this.doubleReview.dialysis_item_desc = ''
  758. this.result = []
  759. }
  760. },
  761. changeRadioOne (val) {
  762. if (val == 1) {
  763. this.doubleReview.dialysis_parameter_desc = ''
  764. this.resultOne = []
  765. }
  766. },
  767. changeRadioTwo (val) {
  768. if (val == 1) {
  769. this.doubleReview.vascular_access_desc = ''
  770. this.resultTwo = []
  771. }
  772. },
  773. changeRadioThree (val) {
  774. if (val == 1) {
  775. this.doubleReview.pipeline_connection_desc = ''
  776. this.resultThree = []
  777. }
  778. },
  779. selectFirstCheckTimeAction: function () {
  780. this.$refs.first_check_time_picker.open()
  781. },
  782. selectSecondCheckTimeAction: function () {
  783. this.$refs.second_check_time_picker.open()
  784. },
  785. didSelectFirstCheckTime: function (time) {
  786. this.first_check_time_str = parseTime(time, '{y}-{m}-{d} {h}:{i}' + ':00')
  787. },
  788. didSelectCheckTime: function (time) {
  789. this.check_time_str = parseTime(time, '{y}-{m}-{d} {h}:{i}' + ':00')
  790. },
  791. getFirstCheckDesc: function () {
  792. if (
  793. this.doubleReview.first_check_time > 0 &&
  794. this.doubleReview.check_time > 0
  795. ) {
  796. if (this.doubleReview.first_check_time <= this.doubleReview.check_time) {
  797. let time = uParseTime(
  798. this.doubleReview.first_check_time,
  799. '{y}-{m}-{d} {h}:{i}:{s}'
  800. )
  801. if (this.doubleReview.creater <= 0) {
  802. return ''
  803. }
  804. var desc = ''
  805. if (
  806. this.admin_users == null ||
  807. typeof this.admin_users.length === 'undefined'
  808. ) {
  809. return ''
  810. }
  811. var leng = this.admin_users.length
  812. if (leng == 0) {
  813. return ''
  814. }
  815. for (let index = 0; index < leng; index++) {
  816. if (this.admin_users[index].id == this.doubleReview.creater) {
  817. let name = this.admin_users[index].name
  818. desc = '第一核对人员:' + name + ' 第一核对时间:' + time
  819. break
  820. }
  821. }
  822. return desc
  823. } else {
  824. let time = uParseTime(
  825. this.doubleReview.check_time,
  826. '{y}-{m}-{d} {h}:{i}:{s}'
  827. )
  828. if (this.doubleReview.modifier <= 0) {
  829. return ''
  830. }
  831. var desc = ''
  832. if (
  833. this.admin_users == null ||
  834. typeof this.admin_users.length === 'undefined'
  835. ) {
  836. return ''
  837. }
  838. var leng = this.admin_users.length
  839. if (leng == 0) {
  840. return ''
  841. }
  842. for (let index = 0; index < leng; index++) {
  843. if (this.admin_users[index].id == this.doubleReview.modifier) {
  844. let name = this.admin_users[index].name
  845. desc = '第一核对人员:' + name + ' 第一核对时间:' + time
  846. break
  847. }
  848. }
  849. return desc
  850. }
  851. } else {
  852. let time = uParseTime(
  853. this.doubleReview.first_check_time,
  854. '{y}-{m}-{d} {h}:{i}:{s}'
  855. )
  856. if (this.doubleReview.creater <= 0) {
  857. return ''
  858. }
  859. var desc = ''
  860. if (
  861. this.admin_users == null ||
  862. typeof this.admin_users.length === 'undefined'
  863. ) {
  864. return ''
  865. }
  866. var leng = this.admin_users.length
  867. if (leng == 0) {
  868. return ''
  869. }
  870. for (let index = 0; index < leng; index++) {
  871. if (this.admin_users[index].id == this.doubleReview.creater) {
  872. let name = this.admin_users[index].name
  873. desc = '第一核对人员:' + name + ' 第一核对时间:' + time
  874. break
  875. }
  876. }
  877. return desc
  878. }
  879. },
  880. getScondCheckDesc: function () {
  881. if (this.record.modifier > 0) {
  882. if (
  883. this.doubleReview.first_check_time > 0 &&
  884. this.doubleReview.check_time > 0
  885. ) {
  886. if (this.doubleReview.first_check_time <= this.doubleReview.check_time) {
  887. let time = uParseTime(
  888. this.doubleReview.check_time,
  889. '{y}-{m}-{d} {h}:{i}:{s}'
  890. )
  891. if (this.doubleReview.modifier <= 0) {
  892. return ''
  893. }
  894. var desc = ''
  895. if (
  896. this.admin_users == null ||
  897. typeof this.admin_users.length === 'undefined'
  898. ) {
  899. return desc
  900. }
  901. var leng = this.admin_users.length
  902. if (leng == 0) {
  903. return desc
  904. }
  905. for (let index = 0; index < leng; index++) {
  906. if (this.admin_users[index].id == this.doubleReview.modifier) {
  907. let name = this.admin_users[index].name
  908. desc = '第二核对人员:' + name + ' 第二核对时间:' + time
  909. break
  910. }
  911. }
  912. return desc
  913. } else {
  914. let time = uParseTime(
  915. this.doubleReview.first_check_time,
  916. '{y}-{m}-{d} {h}:{i}:{s}'
  917. )
  918. if (this.doubleReview.creater <= 0) {
  919. return ''
  920. }
  921. var desc = ''
  922. if (
  923. this.admin_users == null ||
  924. typeof this.admin_users.length === 'undefined'
  925. ) {
  926. return desc
  927. }
  928. var leng = this.admin_users.length
  929. if (leng == 0) {
  930. return desc
  931. }
  932. for (let index = 0; index < leng; index++) {
  933. if (this.admin_users[index].id == this.doubleReview.creater) {
  934. let name = this.admin_users[index].name
  935. desc = '第二核对人员:' + name + ' 第二核对时间:' + time
  936. break
  937. }
  938. }
  939. return desc
  940. }
  941. } else {
  942. let time = uParseTime(
  943. this.doubleReview.check_time,
  944. '{y}-{m}-{d} {h}:{i}:{s}'
  945. )
  946. if (this.doubleReview.modifier <= 0) {
  947. return ''
  948. }
  949. var desc = ''
  950. if (
  951. this.admin_users == null ||
  952. typeof this.admin_users.length === 'undefined'
  953. ) {
  954. return desc
  955. }
  956. var leng = this.admin_users.length
  957. if (leng == 0) {
  958. return desc
  959. }
  960. for (let index = 0; index < leng; index++) {
  961. if (this.admin_users[index].id == this.doubleReview.modifier) {
  962. let name = this.admin_users[index].name
  963. desc = '第二核对人员:' + name + ' 第二核对时间:' + time
  964. break
  965. }
  966. }
  967. return desc
  968. }
  969. }
  970. },
  971. getArrEqual(arr1, arr2) {
  972. let newArr = [];
  973. for (let i = 0; i < arr2.length; i++) {
  974. for (let j = 0; j < arr1.length; j++) {
  975. if (arr1[j].module == 8 &&arr1[j].is_show == 1 && arr1[j].filed_name == arr2[i][0]&&arr1[j].is_write == 1) {
  976. newArr.push(arr1[j]);
  977. }
  978. }
  979. }
  980. return newArr;
  981. },
  982. open_tips(info) {
  983. for (let i = 0; i < info.length; i++) {
  984. if (info[i].is_write == 1) {
  985. Toast.fail(`${info[i].filed_name_cn}为必填字段,不能为空`)
  986. }else {
  987. return;
  988. }
  989. }
  990. },
  991. commitInfo: function () {
  992. if (this.isCommit == true) {
  993. // this.isCommit = false
  994. var first_time = new Date(this.first_check_time_str).getTime()
  995. var second_time = new Date(this.check_time_str).getTime()
  996. if(this.org_id!=9671 && this.org_id!=10469){
  997. if (first_time >= second_time) {
  998. Toast.fail('第一次核对时间不能大于或等于第二次核对时间')
  999. this.isCommit = true
  1000. return
  1001. }
  1002. }
  1003. if (this.doubleReview.creater == this.doubleReview.modifier) {
  1004. Toast.fail('第一次核对人和第二次核对人不能是同一个人')
  1005. this.isCommit = true
  1006. return
  1007. }
  1008. this.doubleReview.check_time = this.check_time_str
  1009. this.doubleReview.first_check_time = this.first_check_time_str
  1010. let ParamsQuery = this.doubleReview
  1011. ParamsQuery['mode'] = '1'
  1012. ParamsQuery['patient'] = this.$route.query.patient_id
  1013. ParamsQuery['record_date'] = this.record_date
  1014. ParamsQuery['employee_number'] = this.doubleReview.employee_number
  1015. ParamsQuery['dialyzer_batch_number'] = this.doubleReview.dialyzer_batch_number
  1016. ParamsQuery['needle_batch_number'] = this.doubleReview.needle_batch_number
  1017. if (this.record.id > 0) {
  1018. ParamsQuery['mode'] = '2'
  1019. }
  1020. // 必填弹窗开始
  1021. let result = [];
  1022. let filedList = this.$store.getters.user.fileds;
  1023. let new_arr = Object.entries(ParamsQuery);
  1024. new_arr.forEach((el) => {
  1025. if (el[1] === "" || el[1] == 0 || el[1] == "0") {
  1026. // result.push(el);
  1027. result.unshift(el)
  1028. }
  1029. });
  1030. let warnarr = [];
  1031. warnarr = this.getArrEqual(filedList, result);
  1032. if (warnarr.length > 0) {
  1033. this.open_tips(warnarr);
  1034. // 必填弹窗结束
  1035. } else{
  1036. Toast.loading({forbidClick: true, duration: 0})
  1037. commitDoubleCheck(ParamsQuery).then(response => {
  1038. if (response.data.state == 0) {
  1039. // this.$toast({message: respons51 e.data.msg});
  1040. Toast.fail(response.data.msg)
  1041. if(response.data.code == 600000008){
  1042. this.infor_visibility = true
  1043. }
  1044. this.isCommit = true
  1045. return false
  1046. } else {
  1047. if (response.data.data.msg == 2) {
  1048. Toast.fail('请输入正确工号!')
  1049. this.isCommit = true
  1050. this.doubleReview.first_check_time = response.data.data.doubleCheck.first_check_time
  1051. this.doubleReview.check_time_str = response.data.data.doubleCheck.check_date
  1052. return false
  1053. } else {
  1054. Toast.success('提交成功')
  1055. // this.record = Object.assign({}, response.data.data.doubleCheck);
  1056. this.doubleReview = Object.assign({}, response.data.data.doubleCheck)
  1057. this.doubleReview['dialysis_item_check'] = this.doubleReview['dialysis_item_check'].toString()
  1058. this.doubleReview['dialysis_parameter_check'] = this.doubleReview['dialysis_parameter_check'].toString()
  1059. this.doubleReview['vascular_access_verification'] = this.doubleReview['vascular_access_verification'].toString()
  1060. this.doubleReview['pipeline_connection_check'] = this.doubleReview['pipeline_connection_check'].toString()
  1061. this.$emit('did_update', response.data.data.doubleCheck)
  1062. }
  1063. this.changeDoubleReview = 0
  1064. this.isCommit = true
  1065. }
  1066. }).catch(error => {
  1067. this.changeDoubleReview = 0
  1068. Toast.fail('请求失败')
  1069. this.isCommit = true
  1070. })
  1071. }
  1072. }
  1073. },
  1074. isObjectValueEqual (a, b) {
  1075. // 取对象a和b的属性名
  1076. var aProps = Object.getOwnPropertyNames(a)
  1077. var bProps = Object.getOwnPropertyNames(b)
  1078. // 判断属性名的length是否一致
  1079. if (aProps.length != bProps.length) {
  1080. return false
  1081. }
  1082. // 循环取出属性名,再判断属性值是否一致
  1083. for (var i = 0; i < aProps.length; i++) {
  1084. var propName = aProps[i]
  1085. if (a[propName] !== b[propName]) {
  1086. return false
  1087. }
  1088. }
  1089. return true
  1090. },
  1091. isShow (name) {
  1092. var filedList = this.$store.getters.user.fileds
  1093. for (let i = 0; i < filedList.length; i++) {
  1094. if (filedList[i].module == 8 && filedList[i].filed_name_cn == name && filedList[i].is_show == 1) {
  1095. return true
  1096. }
  1097. }
  1098. return false
  1099. },
  1100. isShow_title (name) {
  1101. var filedList = this.$store.getters.user.fileds
  1102. for (let i = 0; i < filedList.length; i++) {
  1103. if (filedList[i].module == 8 && filedList[i].filed_name_cn == name && filedList[i].is_show == 1&&
  1104. filedList[i].is_write == 1) {
  1105. return true
  1106. }
  1107. }
  1108. return false
  1109. },
  1110. inputFocus: function (event) {
  1111. var input = event.target
  1112. setTimeout(function () {
  1113. input.scrollIntoView()
  1114. }, 0)
  1115. if (input.setSelectionRange) {
  1116. setTimeout(function () {
  1117. input.setSelectionRange(0, input.value.length)
  1118. }, 0)
  1119. } else if (input.createTextRange) {
  1120. var rng = input.createTextRange()
  1121. rng.move('character', input.value.length)
  1122. rng.select()
  1123. }
  1124. },
  1125. changeRole (admin_user_id) {
  1126. this.job_number = ''
  1127. var params = {
  1128. admin_user_id: admin_user_id
  1129. }
  1130. getRoleList(params).then(response => {
  1131. if (response.data.state == 1) {
  1132. var list = response.data.data.list
  1133. this.job_number = list.job_number
  1134. }
  1135. })
  1136. },
  1137. menuComfirmFour:function(start_time,remark){
  1138. var params = {
  1139. patient_id:this.$route.query.patient_id,
  1140. record_date:this.$route.query.date,
  1141. start_time:start_time,
  1142. module:5,
  1143. remark:remark,
  1144. }
  1145. saveMobileInformation(params).then(response=>{
  1146. if(response.data.state == 1){
  1147. this.infor_visibility = false
  1148. Toast.success('申请成功')
  1149. }
  1150. })
  1151. },
  1152. menuCancleFour:function(){
  1153. this.infor_visibility = false
  1154. },
  1155. },
  1156. watch: {
  1157. newDoubleReview: {
  1158. handler (newVal, oldVal) {
  1159. if (!this.isObjectValueEqual(newVal, oldVal)) {
  1160. this.changeDoubleReview++
  1161. }
  1162. },
  1163. deep: true
  1164. }
  1165. }
  1166. }
  1167. </script>
  1168. <style lang="scss" scoped>
  1169. .doubleCheck{
  1170. display: flex;
  1171. flex-direction: column;
  1172. height: 100%;
  1173. >:first-child{
  1174. flex: 1;
  1175. overflow-y: auto;
  1176. }
  1177. .van-checkbox-group{
  1178. padding: 0.625rem 1rem;
  1179. font-size: .875rem;
  1180. }
  1181. .van-cell__label{
  1182. font-size: .875rem;
  1183. }
  1184. .van-checkbox{
  1185. margin-bottom: .625rem;
  1186. }
  1187. .doctorList{
  1188. display: flex;
  1189. flex-wrap: wrap;
  1190. .van-radio{
  1191. width: 50%;
  1192. margin-bottom: .625rem;
  1193. }
  1194. }
  1195. .preserveBox{
  1196. height: 3.125rem;
  1197. display: flex;
  1198. justify-content: space-between;
  1199. padding: 0 1rem;
  1200. align-items: center;
  1201. font-size: 1rem;
  1202. >:first-child{
  1203. text-align: center;
  1204. height: 2.5rem;
  1205. width: 100%;
  1206. line-height: 2.5rem;
  1207. background: #409eff;
  1208. color:#fff;
  1209. border-radius: 4px;
  1210. }
  1211. }
  1212. .disabled{
  1213. background: #D8D8D8 !important;
  1214. }
  1215. }
  1216. </style>
  1217. <style lang="scss" scoped>
  1218. .doubleCheck{
  1219. .datetimePicker{
  1220. z-index: 4010 !important;
  1221. .picker{
  1222. // background: red !important;
  1223. }
  1224. .picker-item{
  1225. font-size: .875rem !important;
  1226. height: 44px;
  1227. line-height: 44px;
  1228. .picker-slot{
  1229. .picker-slot-wrapper{
  1230. .picker-item{
  1231. font-size: 1.125rem !important;
  1232. }
  1233. }
  1234. }
  1235. }
  1236. .mint-datetime-action{
  1237. font-size: .9375rem !important;
  1238. }
  1239. }
  1240. }
  1241. .picker-item {
  1242. font-size: 1.125rem;
  1243. }
  1244. </style>
  1245. <style lang="less" scoped>
  1246. .doubleCheck{
  1247. .datetimePicker{
  1248. z-index: 4010 !important;
  1249. /deep/ .picker{
  1250. // background: red !important;
  1251. }
  1252. .picker-item{
  1253. font-size: .875rem !important;
  1254. height: 44px;
  1255. line-height: 44px;
  1256. .picker-slot{
  1257. .picker-slot-wrapper{
  1258. .picker-item{
  1259. font-size: 1.125rem !important;
  1260. }
  1261. }
  1262. }
  1263. }
  1264. .mint-datetime-action{
  1265. font-size: .9375rem !important;
  1266. }
  1267. }
  1268. }
  1269. .warn_tip{
  1270. color: red;
  1271. }
  1272. </style>