Falloutbedprint.vue 13KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. <template>
  2. <div style="border:1px solid gainsboro ;padding:10px">
  3. <div style="position: relative; left: 400px;width: 250px;margin: 20px 0;">
  4. <!-- <el-button type="primary">主要按钮</el-button> -->
  5. <el-button type="primary" style="" @click="bianji">
  6. 编辑
  7. </el-button>
  8. <!-- <el-button type="danger" style="" @click="">
  9. 删除
  10. </el-button> -->
  11. <el-button type="success" style="" @click="printThisPage">
  12. 打印
  13. </el-button>
  14. </div>
  15. <div id="print_content">
  16. <div class="print_page_main_content">
  17. <div class="content">
  18. <h2 style="text-align: center;">人脸识别知情同意书</h2>
  19. <!-- <div style="display: inline-block;border: 1px solid black;width: 20px;height: 20px;"></div> -->
  20. <div style="text-align: right;">
  21. 透析号:{{ patient.dialysis_no }}
  22. </div>
  23. <div style="display: flex;margin: 10px 0;">
  24. <div style="flex:1">姓名:{{ patient.name }}</div>
  25. <div style="flex:1">性别:
  26. <span v-if="patient.gender == 1">男</span>
  27. <span v-if="patient.gender == 2">女</span>
  28. </div>
  29. <div style="flex:1">年龄:{{ getAge(patient) }}</div>
  30. <div style="flex:1">住院(门诊)号:{{ patient.admission_number }}</div>
  31. </div>
  32. <div style="border-bottom: 1px solid gainsboro;">
  33. 诊断:{{ patient.diagnose }}
  34. </div>
  35. <div v-html="content"></div>
  36. <!-- <p style="font-size: 17px;font-weight: bold;">请您仔细阅读以下内容,并自主决定是否使用人脸识别功能:</p>
  37. <p style="display: inline;padding: 0;">一、登录平台时,您已被提示(无论是否以界面弹窗或其他方式)注意仔细阅读本知情同意书。</p>
  38. <div style="display: flex; margin: 10px 0;">
  39. <p style="display: inline;padding: 0;">二、</p>
  40. <p style="display: inline;padding: 0;">
  41. 平台已提供账号密码和人脸识别等多种验证登录方式。<span style="font-weight: bold;">人脸识别不是唯一的身份识别方式或验证登录方式,</span>
  42. 其系为完成身份识别或快捷登录而设置,如您选择使用该功能,则需要提供您本人的人脸识别信息,否则无法实现身份识别或验证登录。
  43. <span style="font-weight: bold;">您可以自主决定是否采用人脸识别进行身份识别或验证登录。</span>
  44. </p>
  45. </div>
  46. <div style="display: flex; margin: 10px 0;">
  47. <p style="display: inline;padding: 0;">三、</p>
  48. <p style="display: inline;padding: 0;">
  49. 您的人脸识别信息将仅用于身份识别、验证登录之目的,不会用于任何其他目的。您的人脸识别信息将由医院负责处理
  50. (含收集、存储、使用、删除等),医院将依法保护您的个人信息安全。
  51. </p>
  52. </div>
  53. <p style="padding: 0;">四、知情同意 </p>
  54. <p style="font-size: 17px;font-weight: bold;">
  55. 您签署知情同意书(包括通过电子方式点击同意),或您直接选择人脸识别进行身份识别或验证登录平台系统的,即表明您已明确同意采用人脸识别进行身份识别或验证登录。
  56. </p>
  57. <p style="padding: 0;">
  58. □本人已仔细阅读了知情同意书,并同意采用人脸识别方式进行身份识别或验证登录,同意医院基于载明目的处理人脸识别信息。
  59. </p>
  60. <p style="padding: 20px;display:flex;justify-content: space-between;align-items: center;">
  61. <span>个人签署(适用于纸质版):______________</span>
  62. </p>
  63. <p style="padding: 20px;display:flex;justify-content: space-between;align-items: center;">
  64. <span>父母或监护人签署:______________</span>
  65. </p>
  66. <p> &nbsp;&nbsp;&nbsp;&nbsp;年&nbsp;&nbsp;&nbsp;&nbsp;月&nbsp;&nbsp;&nbsp;&nbsp;日</p> -->
  67. </div>
  68. </div>
  69. </div>
  70. <!-- 编辑 -->
  71. <el-dialog
  72. title="提示"
  73. :visible.sync="dialogVisible"
  74. width="60%"
  75. >
  76. <div>
  77. <h2 style="text-align: center;">人脸识别知情同意书</h2>
  78. <div style="text-align: right;">
  79. 透析号:{{ patient.dialysis_no }}
  80. </div>
  81. <div style="display: flex;margin: 10px 0;">
  82. <div style="flex:1">姓名:{{ patient.name }}</div>
  83. <div style="flex:1">性别:
  84. <span v-if="patient.gender == 1">男</span>
  85. <span v-if="patient.gender == 2">女</span>
  86. </div>
  87. <div style="flex:1">年龄:
  88. {{ getAge(patient) }}
  89. </div>
  90. <div style="flex:1">住院(门诊)号:
  91. {{ patient.admission_number }}
  92. </div>
  93. </div>
  94. <div style="border-bottom: 1px solid gainsboro;">
  95. 诊断:
  96. {{ patient.diagnose }}
  97. </div>
  98. <keep-alive>
  99. <editor ref="editor"
  100. id="editor"
  101. style="width: 100%"
  102. v-bind:r_content="content">
  103. </editor>
  104. </keep-alive>
  105. </div>
  106. <span slot="footer" class="dialog-footer">
  107. <el-button @click="dialogVisible = false">取 消</el-button>
  108. <el-button type="primary" @click="saveFallOutBedPrint">保 存</el-button>
  109. </span>
  110. </el-dialog>
  111. </div>
  112. </template>
  113. <script>
  114. import print from "print-js";
  115. import Editor from '@/components/Editor'
  116. import { getPatientDetailInformedconsent,saveFallOutBedPrint } from '@/api/patient'
  117. import { jsGetAge, uParseTime } from "@/utils/tools";
  118. const content=`<p style="font-size: 17px;font-weight: bold;padding-left: 2em;">请您仔细阅读以下内容,并自主决定是否使用人脸识别功能:</p>
  119. <p style='position: relative;padding-left: 2em;margin-top: 10px;margin-bottom: 4px '>
  120. <span style='position: absolute;top: 0;left: 0;'>一、</span>登录平台时,您已被提示(无论是否以界面弹窗或其他方式)注意仔细阅读本知情同意书。
  121. </p>
  122. <p style='position: relative;padding-left: 2em;margin-top: 10px;margin-bottom: 4px'>
  123. <span style='position: absolute;top: 0;left: 0;'>二、</span> 平台已提供账号密码和人脸识别等多种验证登录方式。<span style="font-weight: bold;">人脸识别不是唯一的身份识别方式或验证登录方式,</span>其系为完成身份识别或快捷登录而设置,如您选择使用该功能,则需要提供您本人的人脸识别信息,否则无法实现身份识别或验证登录。<span style="font-weight: bold;">您可以自主决定是否采用人脸识别进行身份识别或验证登录。</span>
  124. </p>
  125. <p style='position: relative;padding-left: 2em;margin-top: 10px;margin-bottom: 4px'>
  126. <span style='position: absolute;top: 0;left: 0;'>三、</span>您的人脸识别信息将仅用于身份识别、验证登录之目的,不会用于任何其他目的。您的人脸识别信息将由医院负责处理(含收集、存储、使用、删除等),医院将依法保护您的个人信息安全。
  127. </p>
  128. <p style='position: relative;padding-left: 2em;margin-top: 10px;margin-bottom: 4px'>
  129. <span style='position: absolute;top: 0;left: 0;'>四、</span>知情同意
  130. </p>
  131. <p style="font-size: 17px;font-weight: bold;padding-left: 2em;">您签署知情同意书(包括通过电子方式点击同意),或您直接选择人脸识别进行身份识别或验证登录平台系统的,即表明您已明确同意采用人脸识别进行身份识别或验证登录。</p>
  132. <p style='position: relative;padding-left: 2em;margin-top: 10px;margin-bottom: 4px'><span style='display:inline-block;width:15px;height:15px;border:1px solid black;'></span>本人已仔细阅读了知情同意书,并同意采用人脸识别方式进行身份识别或验证登录,同意医院基于载明目的处理人脸识别信息。</p>
  133. <p style='position: relative;padding-left: 2em;margin-top: 10px;margin-bottom: 4px'>1.您已阅读并理解有关血液透析的相关信息。</p>
  134. <p style='position: relative;padding-left: 2em;margin-top: 10px;margin-bottom: 4px'>2.医生对以上问题已经向您作了充分的解释。</p>
  135. <p style='position: relative;padding-left: 2em;margin-top: 10px;margin-bottom: 4px'>3.您授权并同意医生为患者施行血液透析治疗</p>
  136. <p style="padding:10px 20px;display:flex;justify-content: space-between;align-items: center;">
  137. <span>个人签署(适用于纸质版):______________</span>
  138. </p>
  139. <p style="padding:10px 20px;display:flex;justify-content: space-between;align-items: center;">
  140. <span>父母或监护人签署:______________</span>
  141. </p>
  142. <p style="padding:0 20px;display:flex;justify-content: space-between;align-items: center;">
  143. <span>_______年____月____日</span>
  144. </p>`
  145. export default{
  146. props: {
  147. patient_id: {
  148. type: Number,
  149. },
  150. listPrint:{
  151. type:Object,
  152. }
  153. },
  154. components:{
  155. Editor
  156. },
  157. data(){
  158. return{
  159. patient:{},
  160. content:content,
  161. dialogVisible:false,
  162. }
  163. },
  164. created(){
  165. console.log("list_printwoowowowo",this.listPrint)
  166. if(this.listPrint!=null&& this.listPrint.id >0){
  167. this.content =""
  168. this.content = this.listPrint.content
  169. }
  170. this.getlist()
  171. },
  172. methods:{
  173. getlist(){
  174. getPatientDetailInformedconsent(this.patient_id).then(response=>{
  175. if(response.data.state == 1){
  176. var patient = response.data.data.patients
  177. console.log("patinet",patient)
  178. this.patient =patient
  179. }
  180. })
  181. },
  182. printThisPage(){
  183. const style = '@media print {.content p{font-size: 16px;font-family: 新宋体; padding-left: 20px; margin-bottom: 5px;}}'
  184. printJS({
  185. printable: 'print_content',
  186. type: 'html',
  187. documentTitle: ' ',
  188. style: style,
  189. scanStyles: false
  190. })
  191. },
  192. getAge: function(val) {
  193. if (val.id_card_no == undefined) {
  194. return false
  195. }
  196. var thisLen = val.id_card_no.length
  197. var birth = ''
  198. if (thisLen == 15) {
  199. birth = '19' + val.id_card_no.substr(6, 6)
  200. } else {
  201. birth = val.id_card_no.substr(6, 8)
  202. }
  203. var birthtwo =
  204. birth.substr(0, 4) +
  205. '-' +
  206. birth.substr(4, 2) +
  207. '-' +
  208. birth.substr(6, 2)
  209. var age = jsGetAge(birthtwo, '-')
  210. return age
  211. },
  212. bianji(){
  213. this.dialogVisible =true
  214. },
  215. show(val){
  216. if(val!=null){
  217. console.log("valw233223",val)
  218. if(val.content!=""){
  219. this.content = ""
  220. this.content = val.content
  221. }
  222. }
  223. },
  224. saveFallOutBedPrint(){
  225. var params = {
  226. patient_id:this.patient_id,
  227. content:this.$refs.editor.content,
  228. }
  229. console.log("paramswoowow",params)
  230. saveFallOutBedPrint(params).then(response=>{
  231. if(response.data.state ==1){
  232. var list = response.data.data.list
  233. this.$message.success("保存成功!")
  234. this.dialogVisible = false
  235. this.$emit("getFallOutBedPrintList","");
  236. }
  237. })
  238. }
  239. }
  240. }
  241. </script>
  242. <style lang="scss" scoped>
  243. // .print_page_main_content {
  244. // background-color: white;
  245. // width: 960px;
  246. // padding: 0 0 0 0;
  247. // page-break-after: always;
  248. // }
  249. *{
  250. // margin: 0;
  251. // padding: 0;
  252. border: 0;
  253. }
  254. .content{
  255. p{
  256. font-size: 16px;
  257. font-family: '新宋体';
  258. line-height: 22px;
  259. padding-left: 20px;
  260. margin-bottom: 5px;
  261. text-align: justify;
  262. }
  263. }
  264. input[type="checkbox"]{
  265. box-sizing: border-box;
  266. /* padding: 0; */
  267. -webkit-appearance: checkbox;
  268. }
  269. .check-box{
  270. display: block;
  271. }
  272. .check-box::before{
  273. display: inline-block;
  274. content: '';
  275. width: 15px;
  276. height: 15px;
  277. border: 1px solid black;
  278. }
  279. </style>