血透系统PC前端

patients.vue 25KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710
  1. <template>
  2. <div class="main-contain">
  3. <div class="position">
  4. <bread-crumb :crumbs="crumbs"></bread-crumb>
  5. <el-button :disabled="$store.getters.xt_user.subscibe.state==3?true:false" @click="$router.push({path:'/patients/create'})" class="filter-item" style="float:right;" type="primary" icon="el-icon-circle-plus-outline" size="small">新增</el-button>
  6. </div>
  7. <div class="app-container">
  8. <div class="cell clearfix">
  9. <!-- <label class="title"><span class="name">病人搜索</span> : </label> -->
  10. <el-input style="width: 400px;" v-model="searchKey" class="filter-item" placeholder="病人姓名/透析号" size="small"/>
  11. <el-button class="filter-item" type="primary" icon="el-icon-search" @click="search" size="small" >搜索</el-button>
  12. </div>
  13. <div class="cell clearfix">
  14. <label class="title"><span class="name">日期查询</span> : </label>
  15. <el-date-picker size="small" clearable v-model="listQuery.start_time" prefix-icon="el-icon-date" @change="changeTime" :editable="false" style="width: 196px;" type="date" placeholder="选择日期时间" align="right" format="yyyy-MM-dd" value-format="yyyy-MM-dd" > </el-date-picker>
  16. <span class="">-</span>
  17. <el-date-picker size="small" clearable v-model="listQuery.end_time" prefix-icon="el-icon-date" @change="changeTime" :editable="false" style="width: 196px;" type="date" placeholder="选择日期时间" align="right" format="yyyy-MM-dd" value-format="yyyy-MM-dd"> </el-date-picker>
  18. </div>
  19. <div class="cell clearfix">
  20. <label class="title"><span class="name">排班班次</span> : </label>
  21. <div class="time ">
  22. <ul class="">
  23. <li :class="item.value==schedulType?'active':''" @click='selectSchedulType(item.value)' v-for="item in schedulArr" :key="item.value" >{{item.label}}</li>
  24. </ul>
  25. </div>
  26. </div>
  27. <div class="cell clearfix">
  28. <label class="title"><span class="name">状态</span> : </label>
  29. <div class="time ">
  30. <ul class="">
  31. <li :class="item.value==systemType?'active':''" @click="selectSystemType(item.value)" v-for="item in systemArr" :key="item.value" >{{item.label}}</li>
  32. </ul>
  33. </div>
  34. </div>
  35. <div class="cell clearfix">
  36. <label class="title"><span class="name">转归情况</span> : </label>
  37. <div class="time ">
  38. <ul class="">
  39. <li :class="item.lapseto==lapsetoType?'active':''" @click="selectLapseTo( item.lapseto)" v-for="item in lapsetoArr" :key="item.value" >{{item.label}}</li>
  40. </ul>
  41. </div>
  42. </div>
  43. <div class="cell clearfix">
  44. <label class="title"><span class="name">病人来源</span> : </label>
  45. <div class="time ">
  46. <ul class="">
  47. <li :class="item.source==sourceType?'active':''" @click="selectSource(item.source)" v-for="item in sourceArr" :key="item.value" >{{item.label}}</li>
  48. </ul>
  49. </div>
  50. </div>
  51. <div class="cell clearfix">
  52. <label class="title"><span class="name">其它查询</span> : </label>
  53. <el-select v-model="listQuery.contagion" size="small" clearable placeholder="传染病" @change="changeOtherSearch">
  54. <el-option
  55. v-for="item in contagionList"
  56. :key="item.id"
  57. :label="item.name"
  58. :value="item.id">
  59. </el-option>
  60. </el-select>
  61. <el-select style="margin-left: 10px;" v-model="listQuery.reimbursement_way" size="small" clearable placeholder="付费方式" @change="changeOtherSearch">
  62. <el-option
  63. v-for="item in reimbursement_ways"
  64. :key="item.id"
  65. :label="item.name"
  66. :value="item.id">
  67. </el-option>
  68. </el-select>
  69. <el-select
  70. v-model="listQuery.isscheduling"
  71. collapse-tags
  72. style="margin-left: 10px;"
  73. clearable
  74. placeholder="排班情况" size="small" @change="changeOtherSearch">
  75. <el-option
  76. v-for="item in scheduling"
  77. :key="item.value"
  78. :label="item.label"
  79. :value="item.value">
  80. </el-option>
  81. </el-select>
  82. <el-select
  83. v-model="listQuery.isprescription"
  84. collapse-tags
  85. style="margin-left:10px;"
  86. clearable
  87. placeholder="透析处方" size="small" @change="changeOtherSearch">
  88. <el-option
  89. v-for="item in prescription"
  90. :key="item.value"
  91. :label="item.label"
  92. :value="item.value">
  93. </el-option>
  94. </el-select>
  95. </div>
  96. <el-table
  97. ref="multipleTable" :header-cell-style="{ backgroundColor: 'rgb(245, 247, 250)'}" :data="tableData" border fit highlight-current-row style="width: 100%;margin-top: 10px;" @selection-change="handleSelectionChange">
  98. <el-table-column align="center" label="全选" width="60px" type="selection" ></el-table-column>
  99. <el-table-column type="index" label="序号" width="60px" align="center"></el-table-column>
  100. <el-table-column label="透析号" min-width="80" property="dialysis_no" align="center"></el-table-column>
  101. <el-table-column label="住院号" min-width="80" property="admission_number" align="center"> </el-table-column>
  102. <el-table-column property="name" label="姓名" min-width="80" align="center">
  103. <template slot-scope="scope" >
  104. <router-link :to="'/patients/patient/'+scope.row.id" style="color:#409eff" >{{scope.row.name}}</router-link>
  105. </template>
  106. </el-table-column>
  107. <el-table-column label="性别" min-width="80" align="center">
  108. <template slot-scope="scope" >
  109. <span v-if="scope.row.gender==1">男</span>
  110. <span v-else-if="scope.row.gender==2">女</span>
  111. <span v-else>未知</span>
  112. </template>
  113. </el-table-column>
  114. <el-table-column label="来源" min-width="80" align="center">
  115. <template slot-scope="scope" >
  116. <span v-if="scope.row.source==1">门诊</span>
  117. <span v-else-if="scope.row.source==2">住院</span>
  118. <span v-else>未知</span>
  119. </template>
  120. </el-table-column>
  121. <el-table-column property="total_dialysis" label="透析次数" min-width="94" align="center"> </el-table-column>
  122. <!-- <el-table-column min-width="150" label="二维码" align="center">
  123. <template slot-scope="scope" type="text">
  124. <a style="color:#409eff" v-if="scope.row.binding_state==1" @click="openWechatBindDialog">已绑定</a>
  125. <a style="color:#409eff" v-else @click="openWechatBindDialog">生成</a>
  126. </template>
  127. </el-table-column> -->
  128. <el-table-column label="日期" min-width="144" align="center">
  129. <template slot-scope="scope">
  130. <span>{{scope.row.created_time | parseTime('{y}-{m}-{d}')}}</span>
  131. </template>
  132. </el-table-column>
  133. <el-table-column label="转归" align="center">
  134. <template slot-scope="scope">
  135. <span>{{LapsetoInfo(scope.row)}}</span>
  136. </template>
  137. </el-table-column>
  138. <el-table-column label="操作" align="center" min-width="140">
  139. <template slot-scope="scope">
  140. <el-tooltip class="item" effect="dark" content="转归" placement="top">
  141. <el-button type="primary" icon="el-icon-edit" size="small" @click="OpenSetLapseto(scope.row, scope.$index)"></el-button>
  142. </el-tooltip>
  143. <el-tooltip class="item" effect="dark" content="预览" placement="top">
  144. <el-button type="danger" icon="el-icon-tickets" size="small" @click="OpenView(scope.row.name,scope.row.dialysis_no,scope.row.id)"></el-button>
  145. </el-tooltip>
  146. </template>
  147. </el-table-column>
  148. </el-table>
  149. <!-- <pagi-nation title="分页"></pagi-nation> -->
  150. <el-pagination
  151. @size-change="handleSizeChange"
  152. @current-change="handleCurrentChange"
  153. :current-page="listQuery.pate"
  154. :page-sizes="[10, 20, 50, 100]"
  155. :page-size="10"
  156. background
  157. style="margin-top:20px;"
  158. align="right"
  159. layout="total, sizes, prev, pager, next, jumper"
  160. :total="total">
  161. </el-pagination>
  162. <el-dialog
  163. title="微信绑定"
  164. :visible.sync="bindWechatDialog"
  165. width="30%"
  166. center>
  167. <img :src="wechatbindimg" width="100%" alt="" v-if="wechatbindimg" >
  168. <i class="el-icon-loading" v-else></i>
  169. <span slot="footer" class="dialog-footer">
  170. <el-button type="primary" @click="bindWechatDialog = false">关闭</el-button>
  171. </span>
  172. </el-dialog>
  173. <el-dialog title="转归" :visible.sync="LapsetoDialogVisible">
  174. <el-form :model="lapsetoForm" :rules="lapsetoRules" ref="lapsetoForm" >
  175. <el-form-item label="治疗状态(转归)" prop="lapseto_type" required>
  176. <el-radio-group v-model="lapsetoForm.lapseto_type">
  177. <el-radio v-for="item in lapsetoOptions" :key="item.value" :label="item.value" :value="item.value" >{{item.label}}</el-radio>
  178. </el-radio-group>
  179. </el-form-item>
  180. <el-form-item label="转归时间" prop="lapseto_time" required>
  181. <el-date-picker
  182. v-model="lapsetoForm.lapseto_time"
  183. type="datetime"
  184. format="yyyy-MM-dd HH:mm:ss"
  185. value-format="yyyy-MM-dd HH:mm:ss"
  186. placeholder="选择日期时间"
  187. default-time="12:00:00">
  188. </el-date-picker>
  189. </el-form-item>
  190. </el-form>
  191. <div slot="footer" class="dialog-footer">
  192. <el-button @click="LapsetoDialogVisible = false">取 消</el-button>
  193. <el-button type="primary" @click="EditLapseto()">确 定</el-button>
  194. </div>
  195. </el-dialog>
  196. <el-dialog
  197. title="签到卡"
  198. :visible.sync="centerDialogVisible"
  199. :close-on-click-modal="false"
  200. @opened="ShowQRCode()"
  201. width="30%"
  202. center>
  203. <div align="center" style="margin-bottom:6px;font-size:20px">
  204. <!-- 姓名:<el-input v-model="name" size="small" style="width:200px"></el-input><br> -->
  205. 姓名:<span>{{this.name}}</span>
  206. </div>
  207. <div align="center" style="margin-bottom:10px;font-size:20px">
  208. <!-- 透析号:<el-input v-model="dialysis_no" size="small" style="width:200px"></el-input><br> -->
  209. 透析号:<span>{{this.dialysis_no}}</span>
  210. </div>
  211. <div id="qrcode" align="center">
  212. </div>
  213. <span slot="footer" class="dialog-footer">
  214. <!-- <el-button type="primary" @click="download()">下载</el-button> -->
  215. <el-button type="primary" @click="print()">打印</el-button>
  216. </span>
  217. </el-dialog>
  218. <div hidden="hidden">
  219. <div id="print-card-info">
  220. <div class="order_title" align="center" style="margin-bottom:20px;font-size:35px">
  221. 签到卡
  222. </div>
  223. <div align="center" style="margin-bottom:4px;font-size:25px">
  224. 姓名:<span>&nbsp;&nbsp;{{this.name}}</span><br>
  225. </div>
  226. <div align="center" style="margin-bottom:20px;font-size:25px">
  227. 透析号:<span>&nbsp;&nbsp;{{this.dialysis_no}}</span>
  228. </div>
  229. <div>
  230. <div id="code" align="center"></div>
  231. </div>
  232. </div>
  233. </div>
  234. </div>
  235. </div>
  236. </template>
  237. <script>
  238. import { fetchList, EditLapseto, OpenView, code } from '@/api/patient'
  239. import QRCode from 'qrcodejs2'
  240. import Vue from 'vue'
  241. import print from 'print-js'
  242. import { Base64 } from 'js-base64'
  243. import { uParseTime} from '@/utils/tools'
  244. import { log } from 'util'
  245. import BreadCrumb from "@/xt_pages/components/bread-crumb";
  246. export default {
  247. name: 'Patient',
  248. components:{
  249. BreadCrumb
  250. },
  251. data() {
  252. return {
  253. crumbs: [
  254. { path: false, name: '病人管理' },
  255. { path: '/patients/patients', name: '病人管理' },
  256. ],
  257. lapsetoRules: {
  258. lapseto_type: [
  259. { required: true, message: '请选择治疗状态' }
  260. ],
  261. lapseto_time: [
  262. { required: true, message: '请选择转归时间' }
  263. ]
  264. },
  265. currentIndex: -1,
  266. LapsetoDialogVisible: false,
  267. centerDialogVisible: false,
  268. checkAll: false,
  269. isIndeterminate: true,
  270. wechatbindimg: '',
  271. active: true,
  272. schedulType: 0,
  273. lapsetoForm: {
  274. lapseto_type: 0,
  275. lapseto_time: '',
  276. patient_id: 0
  277. },
  278. schedulArr: [
  279. { value: 0, label: '全部' },
  280. { value: 1, label: '上午' },
  281. { value: 2, label: '下午' },
  282. { value: 3, label: '晚上' }
  283. ],
  284. lapsetoOptions: [{ value: 1, label: '留治' }, { value: 2, label: '转出' }],
  285. systemType: 0,
  286. systemArr: [
  287. { value: 0, label: '全部' },
  288. { value: 1, label: '已绑定' },
  289. { value: 2, label: '未绑定' }
  290. ],
  291. sourceType: 0,
  292. sourceID: 0,
  293. lapsetoType: 0,
  294. sourceArr: [
  295. { value: 0, label: '全部', source: 0, lapseto: 0 },
  296. // { value: 1, label: "转出", source: 0, lapseto: 2 },
  297. // { value: 2, label: "留治", source: 0, lapseto: 1 },
  298. { value: 3, label: '门诊', source: 1, lapseto: 1 },
  299. { value: 4, label: '住院', source: 2, lapseto: 1 }
  300. ],
  301. lapsetoArr: [
  302. { value: 0, label: '全部', source: 0, lapseto: 0 },
  303. { value: 1, label: '转出', source: 0, lapseto: 2 },
  304. { value: 2, label: '留治', source: 0, lapseto: 1 }
  305. // { value: 3, label: "门诊", source: 1, lapseto: 1 },
  306. // { value: 4, label: "住院", source: 2, lapseto: 1 }
  307. ],
  308. scheduling: [
  309. {
  310. value: 1,
  311. label: '已排班'
  312. },
  313. {
  314. value: 2,
  315. label: '未排班'
  316. }
  317. ],
  318. prescription: [
  319. {
  320. value: 1,
  321. label: '有处方'
  322. },
  323. {
  324. value: 2,
  325. label: '无处方'
  326. }
  327. ],
  328. tableData: null,
  329. searchKey: '',
  330. // value2: '',
  331. total: 0,
  332. pageTotal: 0,
  333. pageSelect: 0,
  334. listQuery: {
  335. page: 1,
  336. limit: 10,
  337. schedul_type: 0,
  338. binding_state: 0,
  339. lapseto: 0,
  340. source: 0,
  341. start_time: '',
  342. end_time: '',
  343. keywords: '',
  344. contagion: '',
  345. reimbursement_way: '',
  346. isscheduling: '',
  347. isprescription: ''
  348. },
  349. multipleSelection: [],
  350. bindWechatDialog: false,
  351. contagionList: [],
  352. reimbursement_ways: [],
  353. patient: null,
  354. id: '',
  355. name: '',
  356. dialysis_no: '',
  357. patientPrint: {},
  358. patient_id: '',
  359. gender: '',
  360. idcardno: '',
  361. phone: '',
  362. healthcareno: ''
  363. }
  364. },
  365. created() {
  366. this.getList()
  367. this.contagionList = this.$store.getters.contagions
  368. this.reimbursement_ways = this.$store.getters.reimbursement_ways
  369. const keyword = this.$route.query && this.$route.query.keyword
  370. if (typeof (keyword) === 'string' && keyword.length > 0) {
  371. this.listQuery.keywords = keyword
  372. this.searchKey = keyword
  373. }
  374. },
  375. methods: {
  376. EditLapseto() {
  377. EditLapseto(this.lapsetoForm.patient_id, this.lapsetoForm).then(response => {
  378. if (response.data.state === 1) {
  379. this.$notify({
  380. title: '成功',
  381. message: '转归设置完成',
  382. type: 'success',
  383. duration: 2000
  384. })
  385. this.tableData[this.currentIndex].lapseto = this.lapsetoForm.lapseto_type
  386. this.currentIndex = -1
  387. this.LapsetoDialogVisible = false
  388. } else {
  389. this.$message.error(response.data.msg)
  390. }
  391. })
  392. },
  393. OpenSetLapseto(row, index) {
  394. this.patient = row
  395. this.currentIndex = index
  396. this.lapsetoForm.lapseto_time = ''
  397. this.lapsetoForm.lapseto_type = row.lapseto
  398. this.lapsetoForm.patient_id = row.id
  399. this.LapsetoDialogVisible = true
  400. },
  401. LapsetoInfo(row) {
  402. if (typeof (row.lapseto) === 'undefined' || (row.lapseto !== 1 && row.lapseto !== 2)) {
  403. return '未设置'
  404. } else if (row.lapseto === 1) {
  405. return '留治'
  406. } else {
  407. return '转出'
  408. }
  409. },
  410. openWechatBindDialog() {
  411. this.bindWechatDialog = true
  412. },
  413. handleCheckAllChange(val) {
  414. console.log(val)
  415. console.log(this.checkAll)
  416. console.log(this.isIndeterminate)
  417. },
  418. handleSelectionChange(val) {
  419. this.multipleSelection = val
  420. this.pageSelect = this.multipleSelection.length
  421. },
  422. handleCheckedCitiesChange(value) {
  423. const checkedCount = value.length
  424. this.checkAll = checkedCount === this.cities.length
  425. this.isIndeterminate =
  426. checkedCount > 0 && checkedCount < this.cities.length
  427. },
  428. handleSizeChange(val) {
  429. this.listQuery.limit = val
  430. this.getList()
  431. },
  432. handleCurrentChange(val) {
  433. this.listQuery.page = val
  434. this.getList()
  435. },
  436. changeCategoryId(categoryId) {
  437. this.categoryId = categoryId
  438. },
  439. selectSchedulType(scheduleType) {
  440. // alert(scheduleType);/
  441. this.schedulType = scheduleType
  442. this.listQuery.schedul_type = scheduleType
  443. this.getList()
  444. },
  445. selectSystemType(systemType) {
  446. this.systemType = systemType
  447. this.listQuery.binding_state = systemType
  448. this.getList()
  449. },
  450. selectLapseTo(lapseto) {
  451. this.lapsetoType = lapseto
  452. this.listQuery.lapseto = lapseto
  453. this.getList()
  454. },
  455. selectSource(source) {
  456. this.sourceType = source
  457. this.listQuery.source = source
  458. this.getList()
  459. },
  460. changeTime() {
  461. this.getList()
  462. },
  463. search() {
  464. this.listQuery.keywords = this.searchKey
  465. this.getList()
  466. },
  467. changeOtherSearch() {
  468. this.getList()
  469. },
  470. getList() {
  471. fetchList(this.listQuery).then(response => {
  472. if (response.data.state === 0) {
  473. this.$message.error(response.data.msg)
  474. return false
  475. } else {
  476. this.tableData = response.data.data.patients
  477. this.pageTotal = this.tableData.length
  478. this.total = response.data.data.total
  479. }
  480. })
  481. },
  482. OpenView(name, number, id) {
  483. this.name = name
  484. this.dialysis_no = number
  485. this.centerDialogVisible = true
  486. OpenView(id).then(response => {
  487. if (response.data.state === 0) {
  488. this.$message.error(response.data.msg)
  489. return false
  490. } else {
  491. var patient = response.data.data.patient
  492. this.id = patient.id
  493. this.name = patient.name
  494. this.gender = patient.gender
  495. this.idcardno = patient.id_card_no
  496. this.phone = patient.phone
  497. this.healthcareno = patient.health_care_no
  498. }
  499. })
  500. },
  501. ShowQRCode() {
  502. document.getElementById('qrcode').innerHTML = ''
  503. this.qrcode = this.$QRCode()
  504. },
  505. download() {
  506. alert('aaaa')
  507. },
  508. print() {
  509. var ptime = Math.round(new Date().getTime() / 1000)
  510. this.print_time = uParseTime(ptime, '{y}年{m}月{d}日')
  511. const style = '@media print { .print_main_content { background-color: white; width:960px; margin:0 auto; padding: 0 0 20px 0; } .print_main_content .order_title { text-align: center; font-size: 23px; line-height: 50px; font-weight: 500; } .print_main_content table { width: 100%; border: 1px solid; border-collapse: collapse; padding: 2px; } .print_main_content table tbody tr td { border: 1px solid; text-align: center; padding: 10px 8px; } .td_proj_title { font-size: 18px; line-height: 25px; font-weight: 500; } .td_proj_content { font-size: 18px; line-height: 25px; } .td_align_left { text-align: left; } .print_footnote_panel { font-size: 17px; line-height: 40px; } .print_footnote_panel .proj { display: inline-block; width: 49%; } .print_footnote_panel .proj .proj_title { font-weight: 500;} }'
  512. setTimeout(() => {
  513. printJS({
  514. printable: 'print-card-info',
  515. type: 'html',
  516. style: style,
  517. scanStyles: false
  518. })
  519. }, 1)
  520. var id = this.id
  521. var name = this.name
  522. var gender = this.gender
  523. if (gender === 1) {
  524. gender = '男'
  525. }
  526. if (gender === 2) {
  527. gender = '女'
  528. }
  529. var idcardno = this.idcardno
  530. var phone = this.phone
  531. var healthcareno = this.healthcareno
  532. var dialysisno = this.dialysis_no
  533. // Base64位加密
  534. var aid = this.Base64.encode(id)
  535. var aname = this.Base64.encode(name)
  536. var agender = this.Base64.encode(gender)
  537. var aidcardno = this.Base64.encode(idcardno)
  538. var aphone = this.Base64.encode(phone)
  539. var ahealthcareno = this.Base64.encode(healthcareno)
  540. var adialysisno = this.Base64.encode(dialysisno)
  541. // 调用生成二维码的方法
  542. this.$options.methods.qrcode(aid, aname, agender, aidcardno, aphone, ahealthcareno, adialysisno)
  543. },
  544. qrcode(id, name, gender, idcardno, phone, healthcareno, dialysisno) {
  545. document.getElementById('code').innerHTML = ''
  546. const qrcode = new QRCode('code', {
  547. width: 200,
  548. height: 200,
  549. text: 'user_id:' + id + ',' + 'name:' + name + ',' + 'dialysis_no:' + dialysisno + ',' + 'gender:' + gender + ',' + 'idcard_no:' + idcardno + ',' + 'phone:' + phone + ',' + 'healthcare_no:' + healthcareno
  550. })
  551. }
  552. // components:{
  553. // pagiNation
  554. // }
  555. }
  556. }
  557. Vue.prototype.$QRCode = function() {
  558. var name = this.name
  559. var dialysis_no = this.dialysis_no
  560. var id = this.id
  561. var gender = this.gender
  562. if (gender === 1) {
  563. gender = '男'
  564. }
  565. if (gender === 2) {
  566. gender = '女'
  567. }
  568. var idcardno = this.idcardno
  569. var phone = this.phone
  570. var healthcareno = this.healthcareno
  571. // BASE64加密
  572. var eid = this.Base64.encode(id)
  573. var ename = this.Base64.encode(name)
  574. var egender = this.Base64.encode(gender)
  575. var eidcardno = this.Base64.encode(idcardno)
  576. var ephone = this.Base64.encode(phone)
  577. var ehealthcareno = this.Base64.encode(healthcareno)
  578. var edialysisno = this.Base64.encode(dialysis_no)
  579. console.log('user_id' + eid, 'name:' + ename, 'gender:' + egender, 'idcard_no:' + eidcardno, 'phone:' + ephone, 'healthcare_no:' + ehealthcareno, 'edialysis_no:' + edialysisno)
  580. const salting = 'admin-authority'
  581. new QRCode('qrcode', {
  582. width: 150, // 设置宽度
  583. height: 150, // 设置高度
  584. text: 'user_id:' + eid + ',' + 'name:' + ename + ',' + 'dialysis_no:' + edialysisno + ',' + 'gender:' + egender + ',' + 'idcard_no:' + eidcardno + ',' + 'phone:' + ephone + ',' + 'healthcare_no:' + ehealthcareno
  585. })
  586. }
  587. </script>
  588. <style rel="stylesheet/scss" lang="scss" scoped>
  589. .app-container {
  590. // margin: 20px;
  591. font-size: 15px;
  592. .filter-container {
  593. padding-bottom: 5px;
  594. }
  595. .search-component {
  596. width: 500px;
  597. .searchBox {
  598. width: 300px;
  599. height: 36px;
  600. line-height: 36px;
  601. padding-left: 15px;
  602. border: 1px #dcdfe6 solid;
  603. border-right: none;
  604. outline: none;
  605. float: left;
  606. border-radius: 6px 0 0 6px;
  607. font-size: 14px;
  608. color: #333;
  609. background: #fff;
  610. box-shadow: 3px 3px 4px rgba(135, 135, 135, 0.05);
  611. }
  612. .searchBtn {
  613. background-color: #409eff;
  614. color: #fff;
  615. font-size: 15px;
  616. text-align: center;
  617. height: 36px;
  618. line-height: 36px;
  619. float: left;
  620. outline: none;
  621. width: 70px;
  622. border: none;
  623. border-radius: 0 6px 6px 0;
  624. font-family: "Microsoft Yahei";
  625. cursor: pointer;
  626. }
  627. }
  628. .amount {
  629. font-weight: normal;
  630. padding: 10px 0 0 0;
  631. color: #606266;
  632. font-size: 14px;
  633. span {
  634. color: #ef2525;
  635. font-family: "Arial";
  636. padding: 0 2px;
  637. }
  638. }
  639. .print_main_content {
  640. background-color: white;
  641. width:960px;
  642. margin:0 auto;
  643. padding: 0 0 20px 0;
  644. }
  645. .print_main_content .order_title {
  646. text-align: center;
  647. font-size: 23px;
  648. line-height: 50px;
  649. font-weight: 500px;
  650. }
  651. .print_main_content table {
  652. width: 100%;
  653. border: 1px solid;
  654. border-collapse: collapse;
  655. padding: 2px;
  656. }
  657. .print_main_content table tbody tr td {
  658. border: 1px solid;
  659. text-align: center;
  660. /* font-size: 17px; */
  661. padding: 10px 8px;
  662. }
  663. .td_proj_title {
  664. font-size: 18px;
  665. line-height: 25px;
  666. font-weight: 500;
  667. }
  668. .td_proj_content {
  669. font-size: 18px;
  670. line-height: 25px;
  671. }
  672. .td_align_left {
  673. text-align: left;
  674. }
  675. .print_footnote_panel {
  676. font-size: 17px;
  677. line-height: 40px;
  678. }
  679. .print_footnote_panel .proj {
  680. display: inline-block;
  681. width: 49%;
  682. }
  683. .print_footnote_panel .proj .proj_title {
  684. font-weight: 500;
  685. }
  686. }
  687. </style>