Children_history.vue 22KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659
  1. <!-- 小儿跌倒历史评分 -->
  2. <template>
  3. <div class="patient-container">
  4. <div class="patient-app-containers advice-container app-container">
  5. <div style="display: flex;margin-bottom: 20px;">
  6. <div style="width: 50%;">
  7. <el-button type="text" icon="el-icon-arrow-left" style="font-size: 18px;" @click="fanhui">返回</el-button>
  8. <div class="history">历史评分</div>
  9. </div>
  10. <div style="margin-left: 30%;">
  11. <el-button type="primary" @click="open_pingfen">打印评分</el-button>
  12. <el-button type="primary" @click="open_mingxi">打印明细</el-button>
  13. </div>
  14. </div>
  15. <!-- 小儿跌倒 -->
  16. <div>
  17. <el-table
  18. ref="multipleTable"
  19. :data="tableData"
  20. border
  21. tooltip-effect="dark"
  22. :header-cell-style="{
  23. background:'#4579c5',
  24. color:'#fff'
  25. }"
  26. style="width: 100%"
  27. @selection-change="handleSelectionChange">
  28. <el-table-column
  29. type="selection"
  30. width="55"
  31. align="center">
  32. </el-table-column>
  33. <el-table-column
  34. prop = 'time'
  35. label="评估日期"
  36. width="180"
  37. align="center">
  38. <!-- <template slot-scope="scope">{{ scope.row.date }}</template> -->
  39. </el-table-column>
  40. <el-table-column
  41. prop="mark"
  42. label="分数"
  43. width=""
  44. align="center">
  45. </el-table-column>
  46. <el-table-column
  47. prop="evaluate"
  48. label="评估护士"
  49. width=""
  50. align="center">
  51. </el-table-column>
  52. <el-table-column
  53. prop="address"
  54. label="操作"
  55. width="180"
  56. align="center"
  57. show-overflow-tooltip>
  58. <template slot-scope="scope">
  59. <el-button type="primary" icon="el-icon-edit-outline" @click="open_editor(scope.row)"></el-button>
  60. <el-button type="primary" icon="el-icon-delete" @click="deletes(scope.row)"></el-button>
  61. </template>
  62. </el-table-column>
  63. </el-table>
  64. </div>
  65. </div>
  66. <!-- 打印评分 -->
  67. <el-dialog
  68. title="提示"
  69. :visible.sync="dialogVisible"
  70. width="67%"
  71. >
  72. <div>
  73. <div style="overflow: hidden;">
  74. <el-button type="primary" @click="print_pingfen(1)" style="float:right">打印</el-button>
  75. </div>
  76. <div id="pingfeng" >
  77. <div class="diedao_content" style="">
  78. <div style="width:100%;margin-top: 20px;">
  79. <div style="text-align: center;"><h1>血液透析中心跌倒评估记录</h1></div>
  80. <div style="margin-top: 20px;font-size: 16px;">
  81. <span>患者姓名:</span>
  82. <span>透析号:</span>
  83. <span>打印时间:</span>
  84. </div>
  85. <table class="tables" border="1" style="border-collapse:collapse;text-align:center;width:100%;font-size:16px">
  86. <tr>
  87. <td style="width:180px">评估日期</td>
  88. <td style="width:100px">分数</td>
  89. <td style="width:150px">评估护士</td>
  90. </tr>
  91. <tr v-for="item in multipleSelection" >
  92. <td>{{item.time}}</td>
  93. <td>{{item.mark}}</td>
  94. <!-- <td>{{item.measures}}</td> -->
  95. <td>{{item.evaluate}}</td>
  96. </tr>
  97. </table>
  98. </div>
  99. </div>
  100. </div>
  101. </div>
  102. <span slot="footer" class="dialog-footer">
  103. <el-button @click="dialogVisible = false">取 消</el-button>
  104. <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
  105. </span>
  106. </el-dialog>
  107. <!-- 打印明细 -->
  108. <el-dialog
  109. title="提示"
  110. :visible.sync="mingxi_dialogVisible"
  111. width="67%"
  112. >
  113. <div>
  114. <div style="overflow: hidden;">
  115. <el-button type="primary" @click="print_pingfen(2)" style="float:right">打印</el-button>
  116. </div>
  117. <div id="mingxi" >
  118. <div class="diedao_content" style="">
  119. <div style="width:100%;margin-top: 20px;">
  120. <div style="text-align: center;"><h1>血液透析中心跌倒评估记录</h1></div>
  121. <div style="margin-top: 20px;font-size: 16px;">
  122. <span>患者姓名:</span>
  123. <span>透析号:</span>
  124. <span>评估日期:</span>
  125. <span>评估护士:</span>
  126. <span>总分:</span>
  127. </div>
  128. <table class="tables" id="table" border="1" style="width: 100%;border-collapse: collapse;">
  129. <thead>
  130. <tr>
  131. <th style="width:10%;">项目</th>
  132. <th style="width: 22.4%;">4分</th>
  133. <th style="width: 22.4%;">3分</th>
  134. <th style="width: 22.4%;">2分</th>
  135. <th style="width: 22.4%;">1分</th>
  136. </tr>
  137. </thead>
  138. <tbody>
  139. <tr class="bg_color">
  140. <td class="start">年龄</td>
  141. <td v-for="(item,index) in age" :key="index">
  142. <div class="jiange">
  143. <label><input name="ball" type="checkbox" :value="item.value" @click="ageChange($event,item.value)"/>&nbsp;{{item.lable}}</label>
  144. </div>
  145. </td>
  146. </tr>
  147. <tr>
  148. <td style="border-right: none;">
  149. <div class="bing">性别</div>
  150. </td>
  151. <td style=""></td>
  152. <td v-for="(item,index) in sex" :key="index">
  153. <div class="jiange">
  154. <label><input name="ball" type="checkbox" :value="item.value" @click="sexChange($event,item.value)"/>&nbsp;{{item.lable}}</label>
  155. </div>
  156. </td>
  157. </tr>
  158. <tr class="bg_color">
  159. <td class="start">诊断</td>
  160. <td v-for="(item,index) in diagnosis" :key="index">
  161. <div class="jiange">
  162. <label><input name="ball" type="checkbox" :value="item.value" @click="diagnosischange($event,item.value)"/>&nbsp;{{item.lable}}</label>
  163. </div>
  164. </td>
  165. </tr>
  166. <tr>
  167. <td style="border-right: none;">
  168. <div class="bing">认知障碍</div>
  169. </td>
  170. <td style=""></td>
  171. <td v-for="(item,index) in cognize" :key="index">
  172. <div class="jiange">
  173. <label><input name="ball" type="checkbox" :value="item.value" @click="cognizeChange($event,item.value)"/>&nbsp;{{item.lable}}</label>
  174. </div>
  175. </td>
  176. </tr>
  177. <tr class="bg_color">
  178. <td class="start">环境因素</td>
  179. <td v-for="(item,index) in environment" :key="index">
  180. <div class="jiange">
  181. <label><input name="ball" type="checkbox" :value="item.value" @click="environChange($event,item.value)"/>&nbsp;{{item.lable}}</label>
  182. </div>
  183. </td>
  184. </tr>
  185. <tr>
  186. <td style="border-right: none;">
  187. <div class="bing">药物使用</div>
  188. </td>
  189. <td style=""></td>
  190. <td v-for="(item,index) in medicine" :key="index">
  191. <div class="jiange">
  192. <label><input name="ball" type="checkbox" :value="item.value" @click="medicineChange($event,item.value)"/>&nbsp;{{item.lable}}</label>
  193. </div>
  194. </td>
  195. </tr>
  196. </tbody>
  197. </table>
  198. </div>
  199. <div style="font-size: 16px;">打印时间:{{this.getTime(this.dayintime)}}</div>
  200. </div>
  201. </div>
  202. </div>
  203. </el-dialog>
  204. <!-- 编辑 -->
  205. <el-dialog
  206. title="提示"
  207. :visible.sync="editor_dialogVisible"
  208. width="67%"
  209. >
  210. <table class="table" id="table" border="1" style="width: 100%;">
  211. <thead>
  212. <tr>
  213. <th style="width:10%;">项目</th>
  214. <th style="width: 22.4%;">4分</th>
  215. <th style="width: 22.4%;">3分</th>
  216. <th style="width: 22.4%;">2分</th>
  217. <th style="width: 22.4%;">1分</th>
  218. </tr>
  219. </thead>
  220. <tbody>
  221. <tr class="bg_color">
  222. <td class="start">年龄</td>
  223. <td v-for="(item,index) in age" :key="index">
  224. <div class="jiange">
  225. <label><input name="ball" class="checked1" type="checkbox" :value="item.value" v-model="item.check" @click="ageChange($event,item)"/>&nbsp;{{item.lable}}</label>
  226. </div>
  227. </td>
  228. </tr>
  229. <tr>
  230. <td style="border-right: none;">
  231. <div class="bing">性别</div>
  232. </td>
  233. <td colspan="2" style="border-left: none;"></td>
  234. <td v-for="(item,index) in sex" :key="index">
  235. <div class="jiange">
  236. <label><input name="ball" class="checked2" type="checkbox" :value="item.value" v-model="item.check" @click="sexChange($event,item)"/>&nbsp;{{item.lable}}</label>
  237. </div>
  238. </td>
  239. </tr>
  240. <tr class="bg_color">
  241. <td class="start">诊断</td>
  242. <td v-for="(item,index) in diagnosis" :key="index">
  243. <div class="jiange">
  244. <label><input name="ball" class="checked3" type="checkbox" :value="item.value" v-model="item.check" @click="diagnosischange($event,item)"/>&nbsp;{{item.lable}}</label>
  245. </div>
  246. </td>
  247. </tr>
  248. <tr>
  249. <td style="border-right: none;">
  250. <div class="bing">认知障碍</div>
  251. </td>
  252. <td style="border-left: none;"></td>
  253. <td v-for="(item,index) in cognize" :key="index">
  254. <div class="jiange">
  255. <label><input name="ball" class="checked4" type="checkbox" :value="item.value" v-model="item.check" @click="cognizeChange($event,item)"/>&nbsp;{{item.lable}}</label>
  256. </div>
  257. </td>
  258. </tr>
  259. <tr class="bg_color">
  260. <td class="start">环境因素</td>
  261. <td v-for="(item,index) in environment" :key="index">
  262. <div class="jiange">
  263. <label><input name="ball" class="checked5" type="checkbox" :value="item.value" v-model="item.check" @click="environChange($event,item)"/>&nbsp;{{item.lable}}</label>
  264. </div>
  265. </td>
  266. </tr>
  267. <tr>
  268. <td style="border-right: none;">
  269. <div class="bing">药物使用</div>
  270. </td>
  271. <td style="border-left: none;"></td>
  272. <td v-for="(item,index) in medicine" :key="index">
  273. <div class="jiange">
  274. <label><input name="ball" class="checked6" type="checkbox" :value="item.value" v-model="item.check" @click="medicineChange($event,item)"/>&nbsp;{{item.lable}}</label>
  275. </div>
  276. </td>
  277. </tr>
  278. <tr class="bg_color">
  279. <td colspan="5" style="height: 30px;"></td>
  280. </tr>
  281. <tr>
  282. <td colspan="5">
  283. <div class="content_top" >
  284. <div style="flex: 0.8;">
  285. <span>总分:</span>
  286. <el-input v-model="pedia_Totalpoints" style="width: 100px;"></el-input>分
  287. </div>
  288. <div style="flex: 1;">
  289. <span>评估日期:</span>
  290. <el-date-picker
  291. v-model="date"
  292. type="date"
  293. placeholder="选择日期"
  294. value-format="yyyy-MM-dd"
  295. :clearable="false"
  296. style="width: 150px;">
  297. </el-date-picker>
  298. </div>
  299. <div style="flex: 1.2;">
  300. <span>评估人:</span>
  301. <el-select v-model="tumble" placeholder="请选择" >
  302. <el-option
  303. v-for="item in tumble_options"
  304. :key="item.value"
  305. :label="item.label"
  306. :value="item.value"
  307. style="width:150px;">
  308. </el-option>
  309. </el-select>
  310. </div>
  311. <div style="flex: 1;">
  312. <el-button type="primary" @click="children">确认</el-button>
  313. </div>
  314. </div>
  315. </td>
  316. </tr>
  317. </tbody>
  318. </table>
  319. </el-dialog>
  320. <!--删除 -->
  321. <el-dialog
  322. title="提示"
  323. :visible.sync="delete_centerDialogVisible"
  324. width="20%"
  325. center>
  326. <span>是否删除该记录</span>
  327. <span slot="footer" class="dialog-footer">
  328. <el-button @click="delete_centerDialogVisible=false">取 消</el-button>
  329. <el-button type="primary" @click="delete_childer">确 定</el-button>
  330. </span>
  331. </el-dialog>
  332. </div>
  333. </template>
  334. <script>
  335. import print from 'print-js'
  336. import { uParseTime } from '@/utils/tools'
  337. export default{
  338. data(){
  339. return{
  340. tableData:[{id:1,time:'2023-9-27',mark:'15',evaluate:'千亦雪'},{id:2,time:'2023-9-27',mark:'14',evaluate:'千任雪'}],
  341. multipleSelection:[],
  342. dialogVisible:false,
  343. mingxi_dialogVisible:false,
  344. editor_dialogVisible:false,
  345. delete_centerDialogVisible:false,
  346. row:'',
  347. value1:'',
  348. value:'',
  349. options:[],
  350. input:'',
  351. agevalue:null,
  352. sexvalue:null,
  353. diagnosis_val:null,
  354. cognize_val:null,
  355. environment_val:null,
  356. medicine_val:null,
  357. age:[{value:4,lable:'>1岁~≤3岁',id:1,check:0},{value:3,lable:'>3岁~≤7岁',id:2,check:0},{value:2,lable:'>7岁~≤13岁',id:3,check:0},{value:1,lable:'>13岁',id:4,check:0}],
  358. sex:[{value:2,lable:'男',check:0},{value:1,lable:'女',check:0}],
  359. diagnosis:[{value:4,lable:'神经系统疾病:骨骼、关节系统疾病;眼科疾病',id:1,check:0},
  360. {value:3,lable:'氧合功能改变(呼吸系统疾病、心血管系统疾病、脱水、贫血、晕厥、头晕等);电解质紊乱',id:2,check:0},
  361. {value:2,lable:'心理/行为疾病',id:3,check:0},
  362. {value:1,lable:'其他疾病;疾病导致不能活动或移动',id:4,check:0,}
  363. ],
  364. cognize:[{value:3,lable:'没有意识到不能自我行动',id:1,check:0,},{value:2,lable:'忘记有行动的限制',id:2,check:0},
  365. {value:1,lable:'能自我辨识方位;昏迷、无反应',id:3,check:0}],
  366. environment:[{value:4,lable:'住院期间有跌倒坠床史:患儿移动或活动时需要使用辅助工具(拐杖、助行器、转运床、轮椅等);婴幼儿放置在无护栏的成人床',id:1,check:0},
  367. {value:3,lable:'近1个月有跌倒坠床史:婴幼儿放置在有护栏的成人床',id:2,check:0},
  368. {value:2,lable:'近3个月有跌倒坠床史:婴幼儿放置在有护栏的婴儿床',id:3,check:0},
  369. {value:1,lable:'>3个月有跌倒坠床史/无跌倒坠床史',id:4,check:0}],
  370. medicine:[{value:3,lable:'联合用药:镇静剂、安眠药、巴比妥类药、吩噻嗪类药、抗抑郁药、利尿药、降压药、强心剂、麻醉药、化疗药、散瞳剂',id:1,check:0},
  371. {value:2,lable:'以上其中一种药物',id:2,check:0},
  372. {value:1,lable:'其他药物/没有',id:3,check:0}],
  373. checked:'',
  374. checkList:[],
  375. text:'',
  376. tumble_options:[],
  377. tumble:'',//评估人
  378. date:this.getTime(new Date()),//评估日期
  379. patient_id:0,
  380. patient:'',
  381. touxihao:0,//透析号
  382. dayintime:new Date()//打印时间
  383. }
  384. },
  385. methods:{
  386. fanhui(){
  387. window.history.go(-1);
  388. },
  389. handleSelectionChange(val) {
  390. this.multipleSelection = val;
  391. },
  392. open_pingfen(){
  393. if(this.multipleSelection.length==0){
  394. this.$message('至少选择一条数据')
  395. }else{
  396. this.dialogVisible=true
  397. }
  398. },
  399. open_mingxi(){
  400. if(this.multipleSelection.length==0){
  401. this.$message('至少选择一条数据')
  402. }else{
  403. this.mingxi_dialogVisible=true
  404. }
  405. },
  406. open_editor(row){
  407. this.editor_dialogVisible =true
  408. },
  409. deletes(row){
  410. this.row=row.id
  411. this.delete_centerDialogVisible = true
  412. },
  413. delete_childer(){
  414. for(let i=0;i<this.tableData.length;i++){
  415. if(this.row==this.tableData[i].id){
  416. this.tableData.splice(i,1)
  417. }
  418. }
  419. this.delete_centerDialogVisible=false
  420. },
  421. print_pingfen(id){
  422. this.dialogVisible=false
  423. this.mingxi_dialogVisible=false
  424. const style= '@media print {.diedao_content{background-color: white; width:960px; margin:0 auto; padding: 0 0 20px 0;} .table tr td{padding:5px}}'
  425. if(id==1){
  426. printJS({
  427. printable: 'pingfeng',
  428. type: 'html',
  429. style: style,
  430. scanStyles: false
  431. })
  432. }else if(id==2){
  433. printJS({
  434. printable: 'mingxi',
  435. type: 'html',
  436. style: style,
  437. scanStyles: false
  438. })
  439. }
  440. },
  441. ageChange(e,item){
  442. for(let i in this.age){
  443. if(this.age[i].value ==item.value){
  444. if(this.age[i].check==0){
  445. this.age[i].check = 1
  446. this.agevalue = item.value
  447. }else{
  448. this.age[i].check = 0
  449. this.agevalue = 0
  450. }
  451. }else{
  452. this.age[i].check =0
  453. }
  454. }
  455. console.log(this.age);
  456. },
  457. sexChange(e,item){
  458. for(let i in this.sex){
  459. if(this.sex[i].value ==item.value){
  460. if(this.sex[i].check==0){
  461. this.sex[i].check = 1
  462. this.sexvalue = item.value
  463. }else{
  464. this.sex[i].check = 0
  465. this.sexvalue = 0
  466. }
  467. }else{
  468. this.sex[i].check = 0
  469. }
  470. }
  471. console.log(this.sex);
  472. },
  473. diagnosischange(e,item){
  474. for(let i in this.diagnosis){
  475. if(this.diagnosis[i].value ==item.value){
  476. if(this.diagnosis[i].check==0){
  477. this.diagnosis[i].check = 1
  478. this.diagnosis_val = item.value
  479. }else{
  480. this.diagnosis[i].check = 0
  481. this.diagnosis_val = 0
  482. }
  483. }else{
  484. this.diagnosis[i].check = 0
  485. }
  486. }
  487. console.log(this.diagnosis);
  488. },
  489. cognizeChange(e,item){
  490. for(let i in this.cognize){
  491. if(this.cognize[i].value ==item.value){
  492. if(this.cognize[i].check==0){
  493. this.cognize[i].check = 1
  494. this.cognize_val = item.value
  495. }else{
  496. this.cognize[i].check = 0
  497. this.cognize_val = 0
  498. }
  499. }else{
  500. this.cognize[i].check = 0
  501. }
  502. }
  503. },
  504. environChange(e,item){
  505. for(let i in this.environment){
  506. if(this.environment[i].value ==item.value){
  507. if(this.environment[i].check==0){
  508. this.environment[i].check = 1
  509. this.environment_val = item.value
  510. }else{
  511. this.medicine[i].check = 0
  512. this.environment_val = 0
  513. }
  514. }else{
  515. this.environment[i].check = 0
  516. }
  517. }
  518. },
  519. medicineChange(e,item){
  520. for(let i in this.medicine){
  521. if(this.medicine[i].value ==item.value){
  522. console.log('eeeee',this.medicine[i].check);
  523. if(this.medicine[i].check==0){
  524. this.medicine[i].check = 1
  525. this.medicine_val = item.value
  526. }else{
  527. this.medicine[i].check = 0
  528. this.medicine_val = 0
  529. }
  530. }else{
  531. this.medicine[i].check = 0
  532. }
  533. }
  534. },
  535. children(){
  536. var params = {
  537. age:this.age,
  538. sex:this.sex,
  539. diagnosis:this.diagnosis,
  540. cognize:this.cognize,
  541. environment:this.environment,
  542. medicine:this.medicine,
  543. pedia_Totalpoints:this.pedia_Totalpoints,
  544. tumble_options:this.tumble_options,
  545. tumble:this.tumble,
  546. date:this.date,
  547. patient_id:this.patient_id,
  548. patient:this.patient,
  549. }
  550. console.log("childrenparams----",params)
  551. },
  552. getTime(val) {
  553. if(val < 0){
  554. return ""
  555. }
  556. if(val == ""){
  557. return ""
  558. }else {
  559. return uParseTime(val, '{y}-{m}-{d}')
  560. }
  561. },
  562. },
  563. computed:{
  564. pedia_Totalpoints(){
  565. return this.agevalue + this.sexvalue + this.diagnosis_val +this.cognize_val + this.environment_val + this.medicine_val
  566. },
  567. }
  568. }
  569. </script>
  570. <style lang="scss" scoped>
  571. .patient-app-containers {
  572. margin-left: 10px;
  573. margin-right: 10px;
  574. background: #fff;
  575. }
  576. .history{
  577. display: inline-block;
  578. border-left:2px solid gray ;
  579. padding: 0 10px;
  580. margin-left:10px;
  581. color: gray;
  582. font-size: 18px;
  583. }
  584. .tables tr td{
  585. padding:5px;
  586. font-size:16px;
  587. }
  588. .content_top{
  589. display: flex;
  590. justify-content: space-between;
  591. }
  592. .table{
  593. border: 1px solid #DCDFE6;
  594. border-collapse:collapse;
  595. border-spacing: 0;
  596. thead th{
  597. background: #0077ff9f;
  598. color: white;
  599. text-align: center;
  600. height: 40px;
  601. }
  602. tbody td{
  603. height: 40px;
  604. padding: 5px;
  605. vertical-align: top;
  606. }
  607. .start{
  608. text-align: center;
  609. }
  610. .bing{
  611. // width: 150px;
  612. text-align: center;
  613. }
  614. .bg_color{
  615. background: rgb(243, 240, 240);
  616. }
  617. .bottoms{
  618. display: inline-block;
  619. margin-left: 10px;
  620. margin-top: 5px;
  621. }
  622. .jiange{
  623. margin-left: 20px;
  624. color: black;
  625. }
  626. // input{
  627. // -webkit-appearance: checkbox;
  628. // }
  629. }
  630. input{
  631. -webkit-appearance: checkbox;
  632. }
  633. </style>