Elizabeth's proactive approach involves introducing urinal toilet attachment , an ingenious concept that optimizes space and functionality.

recordPrint.vue 9.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374
  1. <template>
  2. <div class="main-contain">
  3. <div class="position">
  4. <bread-crumb :crumbs="crumbs"></bread-crumb>
  5. <template>
  6. <el-button
  7. size="small"
  8. icon="el-icon-printer"
  9. @click="printThisPage"
  10. type="primary"
  11. >打印</el-button
  12. >
  13. </template>
  14. </div>
  15. <div class="app-container" style="min-height:0;">
  16. <el-container class="newContainer">
  17. <div style="width:270px;margin-right:20px;">
  18. <div class="cell clearfix" style="margin-bottom:10px;">
  19. <el-input size="small" v-model.trim="search_input" class="filter-item"/>
  20. <el-button size="small" class="filter-item" type="primary" :model="keyword" @click="searchAction">搜索</el-button>
  21. </div>
  22. <el-table ref="tab" @row-click="changePatient" highlight-current-row :data="patientTableData" height="480" border style="width: 100%">
  23. <el-table-column prop="date" label="患者">
  24. <template slot-scope="scope">
  25. {{scope.row.patients.name?scope.row.patients.name:''}}
  26. </template>
  27. </el-table-column>
  28. <el-table-column prop="name" label="就诊号">
  29. <template slot-scope="scope">
  30. {{ scope.row.his_patient.number ?scope.row.his_patient.number:''}}
  31. </template>
  32. </el-table-column>
  33. </el-table>
  34. </div>
  35. <div class='dialysisPage' style="flex: 1;height: calc(100vh - 178px);overflow-x:auto;::-webkit-scrollbar:height:15px">
  36. <printOne v-bind:childResponse="childResponse" :patient="patient" :hispatient = "hispatient" :history="history"></printOne>
  37. </div>
  38. </el-container>
  39. </div>
  40. </div>
  41. </template>
  42. <script>
  43. import { parseTime } from "@/utils";
  44. import { getDataConfig } from "@/utils/data";
  45. import { jsGetAge, uParseTime } from "@/utils/tools";
  46. import BreadCrumb from "@/xt_pages/components/bread-crumb";
  47. import print from "print-js";
  48. import { getSchedulePatientList } from '@/api/his/his'
  49. import { getPatientCaseHistory } from "@/api/project/project"
  50. import printOne from "./recordTemplate/printOne"
  51. export default {
  52. name: "dialysisPrintOrder",
  53. components: {
  54. BreadCrumb,
  55. printOne
  56. },
  57. data() {
  58. return {
  59. crumbs: [
  60. { path: false, name: "透析管理" },
  61. { path: false, name: "打印单" }
  62. ],
  63. childResponse: {},
  64. patientTableData: [],
  65. search_input:"",
  66. patient:{},
  67. hispatient:{},
  68. educationOptions:[],
  69. history:{},
  70. keyword:""
  71. };
  72. },
  73. methods: {
  74. getAdminUser(id) {
  75. if (id == 0) {
  76. return "";
  77. }
  78. if (id == undefined) {
  79. return "";
  80. }
  81. for (let i = 0; i < this.adminUser.length; i++) {
  82. if (this.adminUser[i].id == id) {
  83. return this.adminUser[i].name;
  84. }
  85. }
  86. },
  87. getTime(value, temp) {
  88. if (value == 0) {
  89. return "";
  90. }
  91. if (value != undefined) {
  92. return uParseTime(value, temp);
  93. }
  94. return "";
  95. },
  96. printThisPage() {
  97. var ptime = Math.round(new Date().getTime() / 1000);
  98. this.print_time = uParseTime(ptime, "{y}-{m}-{d} {h}:{i}");
  99. const style =
  100. '@media print {.printTitle{font-size: 22px;text-align: center;font-weight: bold;}.infoTitle{display: flex;margin-top:10px;padding:0 10px;}.infoTitle div{width: 200px;}.otherInfo{display: flex;margin-top:20px;padding:0 10px;}.otherInfo span{display:inline-block;}.recordTitle{display: flex;margin-top:10px;line-height: 24px;padding:0 10px;border-bottom: 2px solid #000;}.recordTitle div{width: 200px;}}';
  101. printJS({
  102. printable: "prescription-print",
  103. type: "html",
  104. style: style,
  105. scanStyles: false
  106. });
  107. },
  108. //患者列表
  109. getPatientList(){
  110. let params = {
  111. 'record_date':this.$route.query.record,
  112. }
  113. getSchedulePatientList(params).then(response => {
  114. if (response.data.state == 0) {
  115. this.$message.error(response.data.msg)
  116. return false
  117. } else {
  118. this.patientTableData = []
  119. console.log("list0000000",response.data.data.list)
  120. // for (let i = 0; i < response.data.data.list.length; i++) {
  121. // if (response.data.data.list[i].prescription != null && response.data.data.list[i].prescription.length > 0) {
  122. // this.patientTableData.push(response.data.data.list[i])
  123. // }
  124. // }
  125. this.patientTableData = response.data.data.list
  126. }
  127. })
  128. },
  129. changePatient(val){
  130. const params = {
  131. patient_id:val.patient_id
  132. }
  133. console.log("params",params)
  134. getPatientCaseHistory(params).then(response=>{
  135. if(response.data.state == 1){
  136. var patient = response.data.data.patient
  137. console.log("patinet",patient)
  138. this.patient = patient
  139. var history = response.data.data.history
  140. console.log("history",history)
  141. this.history = history
  142. var hispatient = response.data.data.hispatient
  143. console.log("hispatient",hispatient)
  144. this.hispatient = hispatient
  145. }
  146. })
  147. },
  148. searchAction(){
  149. this.getPatientList()
  150. },
  151. },
  152. created() {
  153. this.getPatientList()
  154. },
  155. // computed:{
  156. // filtedSchedules: function() {
  157. // var search_keyword = this.search_keyword
  158. // if (search_keyword.length > 0) {
  159. // var schedules = []
  160. // for (let o_i = 0; o_i < this.zone_schedules.length; o_i++) {
  161. // const scheduleInfo = this.zone_schedules[o_i]
  162. // var originSchedules = scheduleInfo.schedules
  163. // if (originSchedules.length == 0) {
  164. // continue
  165. // }
  166. // var filtedSchedules = []
  167. // for (let s_i = 0; s_i < originSchedules.length; s_i++) {
  168. // const schedule = originSchedules[s_i]
  169. // if (schedule.patient.name.indexOf(search_keyword) != -1) {
  170. // filtedSchedules.push(schedule)
  171. // // break
  172. // }
  173. // }
  174. // if (filtedSchedules.length > 0) {
  175. // schedules.push({ zone_id: scheduleInfo.zone_id, zone_name: scheduleInfo.zone_name, schedules: filtedSchedules })
  176. // }
  177. // }
  178. // return schedules
  179. // }
  180. // }
  181. // },
  182. };
  183. </script>
  184. <style>
  185. .dialysis-print-order {
  186. width: 960px;
  187. margin: 0 auto;
  188. }
  189. .dialysis-print-order .order-yy-name {
  190. margin: auto;
  191. text-align: center;
  192. font-size: 20px;
  193. letter-spacing: 5px;
  194. }
  195. .dialysis-print-order .order-title {
  196. margin: auto;
  197. font-weight: 600;
  198. text-align: center;
  199. font-size: 22px;
  200. padding: 10px;
  201. }
  202. .dialysis-print-order .table-box {
  203. width: 100%;
  204. line-height: 23px;
  205. font-size: 14px;
  206. }
  207. .dialysis-print-order .print-table {
  208. width: 100%;
  209. text-align: center;
  210. border-collapse: collapse;
  211. line-height: 40px;
  212. font-size: 14px;
  213. border-color: #000;
  214. }
  215. .dialysis-print-order .print-table-no {
  216. width: 100%;
  217. text-align: center;
  218. border-collapse: collapse;
  219. font-size: 14px;
  220. }
  221. .dialysis-print-order .under-line {
  222. border-bottom: 1px solid #999;
  223. width: 95%;
  224. text-align: center;
  225. margin-left: 2px;
  226. }
  227. .dialysis-print-order .title-box {
  228. text-align: center;
  229. font-size: 16px;
  230. }
  231. .dialysis-print-order .radio-lebel-box {
  232. font-weight: 400;
  233. cursor: pointer;
  234. }
  235. .dialysis-print-order .radio-no {
  236. opacity: 0;
  237. outline: none;
  238. position: absolute;
  239. margin: 0;
  240. width: 0;
  241. height: 0;
  242. z-index: -1;
  243. }
  244. .dialysis-print-order .radio-inner {
  245. white-space: nowrap;
  246. cursor: pointer;
  247. outline: none;
  248. display: inline-block;
  249. line-height: 1;
  250. position: relative;
  251. vertical-align: middle;
  252. }
  253. .dialysis-print-order .radio-fang {
  254. display: inline-block;
  255. position: relative;
  256. border: 1px solid #000;
  257. box-sizing: border-box;
  258. width: 14px;
  259. height: 14px;
  260. background-color: #fff;
  261. z-index: 1;
  262. transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),
  263. background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46);
  264. }
  265. .dialysis-print-order .is-checked-radio::after {
  266. content: "√";
  267. font-size: 15px;
  268. }
  269. .dialysis-print-order .print-table-no tr td {
  270. padding: 8px 5px;
  271. line-height: 25px;
  272. }
  273. .dialysis-print-order .print-table tr td {
  274. padding: 1px 1px;
  275. /*line-height: 25px;*/
  276. }
  277. .es-img {
  278. height: 30px;
  279. }
  280. .advice-name {
  281. text-align: left;
  282. }
  283. .advice-children {
  284. display: flex;
  285. }
  286. .title-box-pro {
  287. border: 0 #fff;
  288. line-height: 25px;
  289. height: 25px;
  290. text-align: left;
  291. padding-left: 10px !important;
  292. }
  293. .title-box-pro-tr {
  294. border: 0 #fff;
  295. }
  296. .text-align-left {
  297. text-align: left !important;
  298. padding-left: 10px !important;
  299. font-size: 14px !important;
  300. line-height: 25px;
  301. }
  302. .print-table-tr-new td {
  303. line-height: 20px !important;
  304. }
  305. .border-top-solid {
  306. border: solid 1px #000;
  307. }
  308. .print-template-two tr {
  309. line-height: 30px;
  310. }
  311. .table-box1 {
  312. border: 1px solid #000;
  313. width: 100%;
  314. line-height: 30px;
  315. font-size: 14px;
  316. border-collapse: collapse;
  317. }
  318. .table-box1 tr {
  319. border-bottom: 1px solid #000;
  320. }
  321. </style>
  322. <style lang="scss">
  323. .newContainer{
  324. .dialysisPage::-webkit-scrollbar {
  325. height: 15px;
  326. }
  327. .el-date-editor{
  328. .el-input__inner{
  329. padding-right:0px;
  330. }
  331. }
  332. .el-table td, .el-table th{
  333. text-align: center;
  334. }
  335. }
  336. .newContainer::-webkit-scrollbar{
  337. height: 15px !important;
  338. }
  339. </style>