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

registerDialog.vue 34KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003
  1. <template>
  2. <el-dialog width="854px" class="registerDialog" :title="titles" :visible.sync="visibility"
  3. :close-on-click-modal="isClose"
  4. :close-on-press-escape="isClose">
  5. <el-form :model="form" :rules="rules" ref="formValue" label-width="100px">
  6. <el-form-item label="患者姓名:" prop="name" :validate-event="is_Name">
  7. <el-autocomplete
  8. class="checkSearch"
  9. popper-class="my-autocomplete"
  10. v-model="form.name"
  11. :fetch-suggestions="querySearchAsync"
  12. :trigger-on-focus="false"
  13. placeholder="请输入病人名字"
  14. @select="handleSelect"
  15. style="width:160px;"
  16. >
  17. <i class="el-icon-search el-input__icon" slot="suffix"></i>
  18. <template slot-scope="{ item }">
  19. <div class="name">{{ item.name }}</div>
  20. </template>
  21. </el-autocomplete>
  22. </el-form-item>
  23. <el-form-item label="性别:" prop="gender" :validate-event="is_Name">
  24. <el-select v-model="form.gender" placeholder="请选择" style="width:100%;">
  25. <el-option
  26. v-for="item in sex"
  27. :key="item.value"
  28. :label="item.label"
  29. :value="item.value">
  30. </el-option>
  31. </el-select>
  32. </el-form-item>
  33. <el-form-item label="年龄:" prop="age" :validate-event="is_Name">
  34. <el-input v-model="form.age"></el-input>
  35. </el-form-item>
  36. <el-form-item label="出生日期:" prop="birthday" :validate-event="is_Name">
  37. <el-date-picker v-model="form.birthday" type="date" format="yyyy-MM-dd"
  38. value-format="yyyy-MM-dd" placeholder="选择日期" style="width:100%;"></el-date-picker>
  39. </el-form-item>
  40. <el-form-item label="手机号码:" prop="phone">
  41. <el-input v-model="form.phone"></el-input>
  42. </el-form-item>
  43. <!--<el-form-item label="医疗类别:">-->
  44. <!--<el-select v-model="form.medical_care" placeholder="请选择" style="width:100%;">-->
  45. <!--<el-option-->
  46. <!--v-for="(item,index) in medical_care"-->
  47. <!--:key="index"-->
  48. <!--:label="item.label"-->
  49. <!--:value="item.value">-->
  50. <!--</el-option>-->
  51. <!--</el-select>-->
  52. <!--</el-form-item>-->
  53. <el-form-item label="证件类型:" prop="certificates" :validate-event="is_Name">
  54. <el-select v-model="form.certificates" placeholder="请选择" style="width:100%;">
  55. <el-option
  56. v-for="item in certificates"
  57. :key="item.value"
  58. :label="item.label"
  59. :value="item.value">
  60. </el-option>
  61. </el-select>
  62. </el-form-item>
  63. <el-form-item label="证件号码:" prop="id_card" :validate-event="is_Name">
  64. <el-input v-model="form.id_card"></el-input>
  65. </el-form-item>
  66. <el-form-item label="参保地:">
  67. <el-select v-model="form.insuplc_admdvs" placeholder="请选择" style="width:100%;">
  68. <el-option
  69. v-for="item in InsuplcAdmdvs"
  70. :key="item.value"
  71. :label="item.label"
  72. :value="item.value">
  73. </el-option>
  74. </el-select>
  75. </el-form-item>
  76. <el-form-item label="结算类型:">
  77. <el-select v-model="form.settlement_value" placeholder="请选择" style="width:100%;">
  78. <el-option
  79. v-for="item in settlement"
  80. :key="item.value"
  81. :label="item.label"
  82. :value="item.value">
  83. </el-option>
  84. </el-select>
  85. </el-form-item>
  86. <el-form-item label="社保类型:">
  87. <el-select v-model="form.social_type" placeholder="请选择" style="width:100%;">
  88. <el-option
  89. v-for="item in medicalCare"
  90. :key="item.value"
  91. :label="item.label"
  92. :value="item.value">
  93. </el-option>
  94. </el-select>
  95. </el-form-item>
  96. <el-form-item label="读卡类型:" prop="id_card_type" :validate-event="is_Name">
  97. <el-select v-model="form.id_card_type" placeholder="请选择">
  98. <el-option
  99. v-for="item in IDCardTypes"
  100. :key="item.value"
  101. :label="item.label"
  102. :value="item.value">
  103. </el-option>
  104. </el-select>
  105. </el-form-item>
  106. <el-form-item class="specialFormItem" label="医保卡号:">
  107. <div style="display:flex;">
  108. <el-input v-model="form.medical_insurance_card"></el-input>
  109. <el-button style="margin-left:10px;" type="primary" @click="reading">读卡</el-button>
  110. </div>
  111. </el-form-item>
  112. <el-form-item label="挂号类型:" :validate-event="is_Name" >
  113. <el-select v-model="form.register" placeholder="请选择" style="width:100%;">
  114. <el-option
  115. v-for="item in register"
  116. :key="item.value"
  117. :label="item.label"
  118. :value="item.value">
  119. </el-option>
  120. </el-select>
  121. </el-form-item>
  122. <el-form-item label="救助人群类型:" :validate-event="is_Name">
  123. <el-select v-model="form.mdtrt_type" placeholder="请选择" style="width:100%;">
  124. <el-option
  125. v-for="item in mdtrt"
  126. :key="item.value"
  127. :label="item.label"
  128. :value="item.value">
  129. </el-option>
  130. </el-select>
  131. </el-form-item>
  132. <el-form-item label="挂号费:">
  133. <el-input v-model="form.registration_fee"></el-input>
  134. </el-form-item>
  135. <el-form-item label="诊疗费:">
  136. <el-input v-model="form.medical_expenses"></el-input>
  137. </el-form-item>
  138. <el-form-item label="医生:" prop="doctor">
  139. <el-select v-model="form.doctor" placeholder="请选择">
  140. <el-option
  141. v-for="(item,index) in doctors"
  142. :key="index"
  143. :label="item.user_name"
  144. :value="item.admin_user_id">
  145. </el-option>
  146. </el-select>
  147. </el-form-item>
  148. <el-form-item label="医师编码:">
  149. <el-input v-model="form.doctor_number"></el-input>
  150. </el-form-item>
  151. <el-form-item label="科室:" prop="department">
  152. <el-select v-model="form.department" placeholder="请选择">
  153. <el-option
  154. v-for="(item,index) in departments"
  155. :key="index"
  156. :label="item.name"
  157. :value="item.id">
  158. </el-option>
  159. </el-select>
  160. </el-form-item>
  161. <!-- <el-button style="margin-left:10px;" type="primary" @click="check11" >查普通门诊待遇</el-button>-->
  162. <!-- <el-button style="margin-left:10px;" type="primary" @click="check14" >查门诊大病待遇</el-button>-->
  163. </el-form>
  164. <span slot="footer" class="dialog-footer">
  165. <el-button @click="cancel('formValue')">取 消</el-button>
  166. <el-button type="primary" @click="confirm('formValue')">挂 号</el-button>
  167. </span>
  168. </el-dialog>
  169. </template>
  170. <script>
  171. import { jsGetAge, uParseTime } from '@/utils/tools'
  172. import axios from 'axios'
  173. import { PostSearch } from '@/api/patient'
  174. import { getDictionaryDataConfig } from '@/utils/data'
  175. import cryptoJs from 'crypto-js'
  176. export default {
  177. name: 'registerDialog',
  178. data() {
  179. return {
  180. ws:null,
  181. registers: [
  182. { value: 11, label: '普通门诊' },
  183. { value: 1102, label: '新冠门诊' },
  184. // { value: 12, label: '门诊挂号' },
  185. // { value: 13, label: '急诊' },
  186. { value: 14, label: '门诊特殊病' },
  187. // { value: 15, label: '门诊统筹' },
  188. // { value: 16, label: '门诊慢性病' },
  189. // { value: 21, label: '普通住院' }
  190. ],
  191. medical_care: [
  192. { value: 11, label: '普通门诊' },
  193. { value: 12, label: '家庭通道' },
  194. { value: 13, label: '门诊大病' },
  195. { value: 14, label: '重疾特药' },
  196. { value: 15, label: '门诊慢病' },
  197. { value: 16, label: '门诊特检' },
  198. { value: 17, label: '健康体检' },
  199. { value: 18, label: '预防接种' },
  200. { value: 19, label: '门诊输血' },
  201. { value: 91, label: '新冠肺炎门诊' }
  202. ],
  203. form: {
  204. id: '',
  205. insuplc_admdvs:'',
  206. settlement_value: 1,
  207. medical_insurance_card: '',
  208. name: '',
  209. gender: '',
  210. certificates: 1,
  211. p_type: '',
  212. sick_type: '',
  213. diagnosis: '',
  214. medical_care: '',
  215. birthday: '',
  216. age: '',
  217. id_card: '',
  218. register: '',
  219. mdtrt_type:'',
  220. doctor: '',
  221. id_card_type: 1,
  222. department: '',
  223. registration_fee: '',
  224. medical_expenses: '',
  225. cost: '',
  226. phone: '',
  227. social_type: ''
  228. },
  229. IDCardTypes: [{
  230. value: 1,
  231. label: '社保卡'
  232. }, {
  233. value: 2,
  234. label: '身份证'
  235. }, {
  236. value: 3,
  237. label: '电子社保卡'
  238. }, {
  239. value: 4,
  240. label: '电子凭证'
  241. }],
  242. settlement: [
  243. { value: 1, label: '医保' },
  244. { value: 2, label: '自费' },
  245. { value: 3, label: '公费' },
  246. { value: 4, label: '农保' },
  247. { value: 5, label: '会员' },
  248. { value: 6, label: '职工' },
  249. { value: 7, label: '合同' },
  250. {value: 8, label: '医保自费'},
  251. ],
  252. InsuplcAdmdvs:[
  253. ],
  254. sex: [{
  255. value: 1,
  256. label: '男'
  257. }, {
  258. value: 2,
  259. label: '女'
  260. }],
  261. certificates: [{
  262. value: 1,
  263. label: '内地身份证'
  264. }, {
  265. value: 2,
  266. label: '社保卡'
  267. }, {
  268. value: 3,
  269. label: '护照'
  270. }, {
  271. value: 4,
  272. label: '军官证'
  273. }, {
  274. value: 5,
  275. label: '台胞证'
  276. }, {
  277. value: 6,
  278. label: '港澳地区身份证'
  279. }],
  280. medicalCare: [{
  281. value: 390,
  282. label: '城乡居民基本医疗保险'
  283. }, {
  284. value: 310,
  285. label: '职工基本医疗保险'
  286. }],mdtrt: [{
  287. value: "1",
  288. label: '新冠肺炎确诊患者'
  289. }, {
  290. value: "2",
  291. label: '其他国家突发公共事件'
  292. }, {
  293. value: "3",
  294. label: '新冠肺炎疑似患者'
  295. }, {
  296. value: "4",
  297. label: '无症状感染者'
  298. }
  299. ],
  300. register: [{
  301. value: 1,
  302. label: '普通'
  303. }, {
  304. value: 2,
  305. label: '主治'
  306. }, {
  307. value: 3,
  308. label: '主任'
  309. }, {
  310. value: 4,
  311. label: '免收诊金'
  312. }, {
  313. value: 5,
  314. label: '专家'
  315. }],
  316. rules: {
  317. name: [{ required: true, message: '患者姓名不能为空', trigger: 'blur' }],
  318. gender: [{ required: true, message: '患者性别不能为空', trigger: 'change' }],
  319. id_card: [{ required: true, message: '证件号码不能为空', trigger: 'blur' }],
  320. doctor: [{ required: true, message: '请选择医生', trigger: 'blur' }],
  321. department: [{ required: true, message: '请填写科室', trigger: 'blur' }],
  322. age: [{ required: true, message: '患者年龄不能为空', trigger: 'blur' }],
  323. birthday: [{ required: true, message: '患者出生日期不能为空', trigger: 'blur' }],
  324. certificates: [{ required: true, message: '证件类型不能为空', trigger: 'change' }],
  325. id_card_type: [{ required: true, message: '读卡类型不能为空', trigger: 'change' }],
  326. p_type: [{ required: true, message: '处方类型不能为空', trigger: 'change' }],
  327. // sick_type: [{ required: true, message: '大病类别不能为空', trigger: 'change' }],
  328. // diagnosis: [{ required: true, message: '诊断不能为空', trigger: 'change' }]
  329. },
  330. visibility: false,
  331. labelPosition: 'right',
  332. isClose: false,
  333. resetForm: {
  334. settlement_value: '',
  335. medical_insurance_card: '',
  336. name: '',
  337. gender: '',
  338. certificates: '',
  339. id_card_type: '',
  340. medical_care: '',
  341. birthday: '',
  342. age: '',
  343. id_card: '',
  344. register: '',
  345. doctor: '',
  346. department: '',
  347. registration_fee: '',
  348. medical_expenses: '',
  349. cost: '',
  350. phone: '',
  351. social_type: '',
  352. doctor_number:"",
  353. }
  354. }
  355. },
  356. props: {
  357. departments: {
  358. type: Array
  359. },
  360. doctors: {
  361. type: Array
  362. },
  363. titles: {
  364. type: String,
  365. default: ''
  366. },
  367. formValue: {
  368. type: Object
  369. },
  370. type: {
  371. type: Number,
  372. default: 1
  373. },
  374. isCreated: {
  375. type: Number,
  376. default: 1
  377. },
  378. sick: Array,
  379. diagnoses: Array
  380. },
  381. methods: {
  382. check11(){
  383. if(this.form.social_type == 0 || this.form.social_type == ''){
  384. this.$message.error("社保类型不能为空")
  385. return
  386. }
  387. var that = this
  388. let params={
  389. id_card_no: this.form.id_card_no,
  390. admin_user_id:this.$store.getters.xt_user.user.id,
  391. med_type: 11,
  392. insutype: this.form.social_type
  393. }
  394. axios.get('http://127.0.0.1:9532/api/treatment/check', {
  395. params: params,
  396. headers: {
  397. 'Permission': 5
  398. }
  399. })
  400. .then(function(response) {
  401. if (response.data.state == 0) {
  402. that.$message.error(response.data.msg)
  403. that.loadingone = false
  404. return false
  405. } else {
  406. that.loadingone = false
  407. if (response.data.data.failed_code == -10) {
  408. // that.$message.error(response.data.data.msg)
  409. that.$confirm(response.data.data.msg, '医保错误信息', {
  410. confirmButtonText: '确 定',
  411. type: 'warning'
  412. }).then(() => {
  413. }).catch(() => {
  414. })
  415. } else {
  416. var result_desc = '';
  417. result_desc = response.data.data.msg
  418. that.$alert(result_desc, '结果', {
  419. confirmButtonText: '确定',
  420. callback: action => {
  421. this.dialogFormVisible = false
  422. }
  423. });
  424. }
  425. }
  426. })
  427. .catch(function(error) {
  428. })
  429. },
  430. check14(){
  431. if(this.form.social_type == 0 || this.form.social_type == ''){
  432. this.$message.error("社保类型不能为空")
  433. return
  434. }
  435. var that = this
  436. let params={
  437. id_card_no: this.form.id_card_no,
  438. admin_user_id:this.$store.getters.xt_user.user.id,
  439. med_type: "14",
  440. insutype: this.form.social_type
  441. }
  442. axios.get('http://127.0.0.1:9532/api/treatment/check', {
  443. params: params,
  444. headers: {
  445. 'Permission': 5
  446. }
  447. })
  448. .then(function(response) {
  449. if (response.data.state == 0) {
  450. that.$message.error(response.data.msg)
  451. that.loadingone = false
  452. return false
  453. } else {
  454. that.loadingone = false
  455. if (response.data.data.failed_code == -10) {
  456. // that.$message.error(response.data.data.msg)
  457. that.$confirm(response.data.data.msg, '医保错误信息', {
  458. confirmButtonText: '确 定',
  459. type: 'warning'
  460. }).then(() => {
  461. }).catch(() => {
  462. })
  463. } else {
  464. var result_desc = '';
  465. result_desc = response.data.data.msg
  466. that.$alert(result_desc, '结果', {
  467. confirmButtonText: '确定',
  468. callback: action => {
  469. this.dialogFormVisible = false
  470. }
  471. });
  472. }
  473. }
  474. })
  475. .catch(function(error) {
  476. })
  477. },
  478. changeDoctor() {
  479. for (let i = 0; i < this.doctors.length; i++) {
  480. if (this.doctors[i].admin_user_id == this.form.doctor) {
  481. this.form.doctor_number = this.doctors[i].doctor_number
  482. this.form.department = this.doctors[i].department_id
  483. if (this.form.department == 0) {
  484. this.form.department = ''
  485. }
  486. }
  487. }
  488. },
  489. handleSelect(val) {
  490. this.form.id = val.id
  491. this.form.name = val.name
  492. this.form.gender = val.gender
  493. this.form.birthday = uParseTime(val.birthday, '{y}-{m}-{d}')
  494. this.form.phone = val.phone
  495. this.form.id_card = val.id_card_no
  496. var thisLen = this.form.id_card.length
  497. var birth = ''
  498. if (thisLen == 15) {
  499. birth = '19' + this.form.id_card.substr(6, 6)
  500. } else {
  501. birth = this.form.id_card.substr(6, 8)
  502. }
  503. var births =
  504. birth.substr(0, 4) +
  505. '-' +
  506. birth.substr(4, 2) +
  507. '-' +
  508. birth.substr(6, 2)
  509. this.form.age = jsGetAge(births, '-')
  510. this.InsuplcAdmdvs = []
  511. var that = this
  512. let params={
  513. id_card_no: this.form.id_card,
  514. admin_user_id:this.$store.getters.xt_user.user.id,
  515. }
  516. axios.get('http://127.0.0.1:9532/zh/api/patient/info', {
  517. params: params,
  518. headers: {
  519. 'Permission': 5
  520. }
  521. })
  522. .then(function(response) {
  523. if (response.data.state == 0) {
  524. that.$message.error(response.data.msg)
  525. that.loadingone = false
  526. return false
  527. } else {
  528. that.loadingone = false
  529. if (response.data.data.failed_code == -10) {
  530. // that.$message.error(response.data.data.msg)
  531. that.$confirm(response.data.data.msg, '医保错误信息', {
  532. confirmButtonText: '确 定',
  533. type: 'warning'
  534. }).then(() => {
  535. }).catch(() => {
  536. })
  537. } else {
  538. for(let i =0; i < response.data.data.info.output.insuinfo.length; i++){
  539. that.InsuplcAdmdvs.push({
  540. value:response.data.data.info.output.insuinfo[i].insuplc_admdvs,
  541. label:response.data.data.info.output.insuinfo[i].insuplc_admdvs,
  542. })
  543. }
  544. that.form.social_type = parseInt(response.data.data.insutype)
  545. }
  546. }
  547. })
  548. .catch(function(error) {
  549. })
  550. },
  551. querySearchAsync(keyword, cb) {
  552. let key = ''
  553. if (keyword != undefined) {
  554. key = keyword
  555. }
  556. let searchArray = []
  557. PostSearch(key).then(response => {
  558. if (response.data.state == 1) {
  559. searchArray = response.data.data.patient
  560. cb(searchArray)
  561. } else {
  562. cb([])
  563. }
  564. })
  565. },
  566. reading() {
  567. var that = this
  568. if (this.form.id_card_type.length == 0 || this.form.id_card_type == 0) {
  569. this.$message.error('请先选择读卡类型')
  570. return
  571. }
  572. let params = {
  573. 'id_card_type': this.form.id_card_type,
  574. 'admin_user_id': this.$store.getters.xt_user.user.id,
  575. 'certificates':this.form.certificates,
  576. }
  577. if ((this.$store.getters.xt_user.org_id == 10387 && this.form.id_card_type == 4) || (this.$store.getters.xt_user.org_id == 4 && this.form.id_card_type == 4)) {
  578. try {
  579. //检测当前浏览器是否支持websocket模式
  580. window.WebSocket = window.WebSocket || window.MozWebSocket;
  581. if (!window.WebSocket){
  582. alert("WebSocket not supported by this browser");
  583. return;
  584. }
  585. this.ws = new WebSocket("ws://127.0.0.1:8899");//连接服务器
  586. var that = this
  587. this.ws.onopen = function(event){
  588. if (that.$store.getters.xt_user.org_id == 10387){
  589. that.ws.send("{\"url\":\"http://10.93.33.243:20001/localcfc/api/hsecfc/localQrCodeQuery\",\"indata\":{\"data\":{\"businessType\":\"01101\",\"deviceType\":\"\",\"officeId\":\"32760\",\"officeName\":\"肾内科\",\"operatorId\":\"admin\",\"operatorName\":\"罗佳菊\",\"orgId\":\"H43082200408\"},\"orgId\":\"H43082200408\",\"transType\":\"ec.query\"}}");
  590. }else if(that.$store.getters.xt_user.org_id == 10318){
  591. that.ws.send("{\"url\":\"http://igb.hsa.gdgov.cn/prd_nation_eccode/prd_eccode/localcfc/api/hsecfc/localQrCodeQuery\",\"indata\":{\"data\":{\"businessType\":\"01101\",\"deviceType\":\"\",\"officeId\":\"32760\",\"officeName\":\"肾内科\",\"operatorId\":\"admin\",\"operatorName\":\"邹刘阳\",\"orgId\":\"H44011701749\"},\"orgId\":\"H44011701749\",\"transType\":\"ec.query\"}}");
  592. }else if(that.$store.getters.xt_user.org_id == 4){
  593. that.ws.send("{\"url\":\"http://igb.hsa.gdgov.cn/prd_nation_eccode/prd_eccode/localcfc/api/hsecfc/localQrCodeQuery\",\"indata\":{\"data\":{\"businessType\":\"01101\",\"deviceType\":\"\",\"officeId\":\"32760\",\"officeName\":\"肾内科\",\"operatorId\":\"admin\",\"operatorName\":\"邹刘阳\",\"orgId\":\"H44011701749\"},\"orgId\":\"H44011701749\",\"transType\":\"ec.query\"}}");
  594. }
  595. };
  596. this.ws.onmessage = function(event){
  597. // alert("接收到服务器发送的数据:\r\n"+event.data);
  598. var newParams = JSON.parse(event.data)
  599. console.log(newParams)
  600. console.log(newParams.data)
  601. console.log(newParams.data)
  602. console.log(newParams.data.ecToken)
  603. console.log(newParams.data.idNo)
  604. console.log(newParams.data.userName)
  605. console.log(newParams.data.insuOrg)
  606. newParams['ecToken'] = newParams.data.ecToken
  607. newParams['idNo'] = newParams.data.idNo
  608. newParams['userName'] = newParams.data.userName
  609. newParams['insuOrg'] = newParams.data.insuOrg
  610. newParams['id_card_type'] = that.form.id_card_type
  611. newParams['admin_user_id'] = that.$store.getters.xt_user.user.id
  612. newParams['certificates'] = that.form.certificates
  613. axios.get('http://127.0.0.1:9532/api/readcard', {
  614. params: newParams
  615. })
  616. .then(function(response) {
  617. if (response.data.state == 0) {
  618. that.$message.error(response.data.msg)
  619. return false
  620. } else {
  621. if (response.data.data.failed_code == -10) {
  622. that.$confirm(response.data.data.msg, '医保错误信息', {
  623. confirmButtonText: '确 定',
  624. type: 'warning'
  625. }).then(() => {
  626. }).catch(() => {
  627. })
  628. } else {
  629. var patient = response.data.data.patient
  630. if (that.form.id_card_type == 1) {
  631. that.form.id = patient.id
  632. that.form.name = patient.name
  633. that.form.gender = patient.gender
  634. that.form.age = patient.age
  635. that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
  636. that.form.phone = patient.phone
  637. that.form.id_card = patient.id_card_no
  638. that.form.medical_insurance_card = response.data.data.number
  639. that.form.social_type = parseInt(response.data.data.insutype)
  640. } else if (that.form.id_card_type == 2) {
  641. that.form.id = patient.id
  642. that.form.name = patient.name
  643. that.form.gender = patient.gender
  644. that.form.age = patient.age
  645. that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
  646. that.form.phone = patient.phone
  647. that.form.id_card = patient.id_card_no
  648. } else {
  649. that.form.id = patient.id
  650. that.form.name = patient.name
  651. that.form.gender = patient.gender
  652. that.form.age = patient.age
  653. that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
  654. that.form.phone = patient.phone
  655. that.form.id_card = patient.id_card_no
  656. that.form.social_type = parseInt(response.data.data.insutype)
  657. }
  658. that.$message({ message: '读卡成功', type: 'success' })
  659. }
  660. }
  661. })
  662. .catch(function(error) {
  663. })
  664. };
  665. this.ws.onclose = function(event){
  666. // alert("已经与服务器断开连接\r\n当前连接状态:"+this.readyState);
  667. };
  668. this.ws.onerror = function(event){
  669. // if (this.flag!=1)
  670. // alert("WebSocket接收异常!");
  671. };
  672. } catch (ex) {
  673. alert(ex.message);
  674. }
  675. }else{
  676. axios.get('http://127.0.0.1:9532/api/readcard', {
  677. params: params
  678. })
  679. .then(function(response) {
  680. if (response.data.state == 0) {
  681. that.$message.error(response.data.msg)
  682. return false
  683. } else {
  684. if (response.data.data.failed_code == -10) {
  685. // that.$message.error(response.data.data.msg)
  686. that.$confirm(response.data.data.msg, '医保错误信息', {
  687. confirmButtonText: '确 定',
  688. type: 'warning'
  689. }).then(() => {
  690. }).catch(() => {
  691. })
  692. }else {
  693. var patient = response.data.data.patient
  694. if (that.form.id_card_type == 1) {
  695. that.form.id = patient.id
  696. that.form.name = patient.name
  697. that.form.gender = patient.gender
  698. that.form.age = patient.age
  699. that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
  700. that.form.phone = patient.phone
  701. that.form.id_card = patient.id_card_no
  702. that.form.medical_insurance_card = response.data.data.number
  703. that.form.social_type = parseInt(response.data.data.insutype)
  704. } else if (that.form.id_card_type == 2) {
  705. that.form.id = patient.id
  706. that.form.name = patient.name
  707. that.form.gender = patient.gender
  708. that.form.age = patient.age
  709. that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
  710. that.form.phone = patient.phone
  711. that.form.id_card = patient.id_card_no
  712. } else {
  713. that.form.id = patient.id
  714. that.form.name = patient.name
  715. that.form.gender = patient.gender
  716. that.form.age = patient.age
  717. that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
  718. that.form.phone = patient.phone
  719. that.form.id_card = patient.id_card_no
  720. that.form.social_type = parseInt(response.data.data.insutype)
  721. }
  722. that.$message({ message: '读卡成功', type: 'success' })
  723. }
  724. }
  725. })
  726. .catch(function(error) {
  727. })
  728. }
  729. },
  730. // reading() {
  731. // var that = this
  732. // if (this.form.id_card_type.length == 0 || this.form.id_card_type == 0) {
  733. // this.$message.error('请先选择读卡类型')
  734. // return
  735. // }
  736. // let params = {
  737. // 'id_card_type': this.form.id_card_type,
  738. // 'admin_user_id': this.$store.getters.xt_user.user.id,
  739. // 'certificates':this.form.certificates,
  740. // }
  741. // axios.defaults.retry = 0
  742. //
  743. // if(this.$store.getters.xt_user.org_id == 10387){
  744. //
  745. // // 创建WebSocket实例并指定服务器地址
  746. // this.socket = new WebSocket("ws://localhost:8899");
  747. //
  748. // // 监听WebSocket事件
  749. // this.socket.onopen = () => {
  750. // console.log("WebSocket连接已建立");
  751. // };
  752. //
  753. // this.socket.onmessage = (event) => {
  754. // console.log("收到消息:", event.data);
  755. // };
  756. //
  757. // this.socket.onclose = () => {
  758. // console.log("WebSocket连接已关闭");
  759. // };
  760. // }
  761. //
  762. //
  763. // axios.get('http://127.0.0.1:9532/api/readcard', {
  764. // params: params
  765. // })
  766. // .then(function(response) {
  767. // if (response.data.state == 0) {
  768. // that.$message.error(response.data.msg)
  769. // return false
  770. // } else {
  771. // var patient = response.data.data.patient
  772. //
  773. // if (that.form.id_card_type == 1) {
  774. // that.form.id = patient.id
  775. // that.form.name = patient.name
  776. // that.form.gender = patient.gender
  777. // that.form.age = patient.age
  778. // that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
  779. // that.form.phone = patient.phone
  780. // that.form.id_card = patient.id_card_no
  781. // that.form.medical_insurance_card = response.data.data.number
  782. // that.form.social_type = parseInt(response.data.data.insutype)
  783. //
  784. //
  785. // } else if (that.form.id_card_type == 2) {
  786. // that.form.id = patient.id
  787. // that.form.name = patient.name
  788. // that.form.gender = patient.gender
  789. // that.form.age = patient.age
  790. // that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
  791. // that.form.phone = patient.phone
  792. // that.form.id_card = patient.id_card_no
  793. // } else {
  794. // that.form.id = patient.id
  795. // that.form.name = patient.name
  796. // that.form.gender = patient.gender
  797. // that.form.age = patient.age
  798. // that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
  799. // that.form.phone = patient.phone
  800. // that.form.id_card = patient.id_card_no
  801. // that.form.social_type = parseInt(response.data.data.insutype)
  802. //
  803. // }
  804. // that.$message({ message: '读卡成功', type: 'success' })
  805. // }
  806. // })
  807. // .catch(function(error) {
  808. //
  809. // })
  810. // },
  811. getDictionaryDataConfig(module, filed_name) {
  812. return getDictionaryDataConfig(module, filed_name)
  813. },
  814. show: function(doctors,departments) {
  815. this.visibility = true
  816. // this.form = Object.assign({}, this.resetForm)
  817. this.form.id = 0
  818. this.form.settlement_value = 1
  819. this.form.medical_insurance_card = ''
  820. this.form.name = ''
  821. this.form.gender = ''
  822. this.form.mdtrt_type=''
  823. this.form.medical_care = ''
  824. this.form.birthda = ''
  825. this.form.age = ''
  826. this.form.id_card = ''
  827. this.form.register = ''
  828. this.form.doctor = ''
  829. this.form.department = ''
  830. this.form.registration_fee = ''
  831. this.form.medical_expenses = ''
  832. this.form.cost = ''
  833. this.form.phone = ''
  834. this.form.social_type = ''
  835. this.form.insuplc_admdvs =''
  836. this.form.p_type = 14
  837. this.form.sick_type = this.sick[0].id
  838. this.form.diagnosis = this.diagnoses[0].id
  839. this.form.id_card_type = 2
  840. this.form.certificates = 1
  841. if (this.$store.getters.xt_user.org_id == 10188 || this.$store.getters.xt_user.org_id == 10217 || this.$store.getters.xt_user.org_id == 10191){
  842. this.form.id_card_type = 1
  843. }
  844. if (departments.length > 0) {
  845. this.form.department = departments[0].id
  846. }
  847. console.log("11231231231223233432423dddd312")
  848. if (doctors.length > 0) {
  849. if(this.$store.getters.xt_user.org_id == 10318 || this.$store.getters.xt_user.org_id == 0){
  850. console.log("~~~~~~~")
  851. this.form.doctor = 3127
  852. }else{
  853. console.log("-----------")
  854. this.form.doctor = doctors[0].admin_user_id
  855. }
  856. }else{
  857. console.log("~~~~~~~")
  858. this.form.doctor = 3127
  859. }
  860. // this.form.name = patientInfo.name
  861. // this.form.gender = patientInfo.gender
  862. // this.form.age = patientInfo.age
  863. // this.form.birthday = patientInfo.birthday
  864. // this.form.phone = patientInfo.phone
  865. // this.form.birthday = patientInfo.birthday
  866. // this.form.id_card = patientInfo.id_card_no
  867. // this.form.social_type = patientInfo.health_care_type
  868. // if( this.form.social_type == 0){
  869. // this.form.social_type = ""
  870. // }
  871. },
  872. hide: function () {
  873. this.visibility = false
  874. this.$refs['formValue'].resetFields()
  875. }, cancel: function(formName) {
  876. this.$emit('cancel', this.getValue())
  877. this.$refs['formValue'].resetFields()
  878. },
  879. confirm: function(formName) {
  880. this.$refs['formValue'].validate((valid) => {
  881. if (valid) {
  882. let value = {}
  883. value = this.getValue()
  884. this.$emit('confirm', value)
  885. }
  886. })
  887. },
  888. getValue: function() {
  889. let form = {}
  890. form = this.form
  891. return form
  892. }
  893. }
  894. }
  895. </script>
  896. <style lang="scss" scoped>
  897. .registerDialog {
  898. .el-form {
  899. display: flex;
  900. flex-wrap: wrap;
  901. }
  902. .el-form-item {
  903. width: 50%;
  904. }
  905. }
  906. </style>