1 <!DOCTYPE html> 2<html lang="en"> 3<head> 4 <title>Consulta de Prestadores</title> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta charset="ISO-8859-1"> 7 <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"> 8 <link rel="icon" href="Img/favicon ArsYunen.png"/> 9 <link rel="stylesheet" href="//cdn.materialdesignicons.com/2.5.94/css/materialdesignicons.min.css"> 10 <link rel="stylesheet" href="https://unpkg.com/buefy/dist/buefy.min.css"> 11 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.1/css/selectize.min.css "/> 12 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css" integrity="sha512-iBBXm8fW90+nuLcSKlbmrPcLa0OT92xO1BIsZ+ywDWZCvqsWgccV3gFoRBv0z+8dLJgyAHIhR35VZc2oM/gI1w==" crossorigin="anonymous" /> 13 <link rel="stylesheet" href="https://unpkg.com/vue-select@latest/dist/vue-select.css"> 14 15 <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/vue-multiselect.min.css"> 16 17 <style> 18 @font-face { 19 font-family: "Museo"; 20 src: url(https://luxuriant-drawer.surge.sh/fonts/MuseoSansCyrl_0.otf); 21 } 22 23 [v-cloak] { 24 display: none; 25 } 26 27 * { 28 box-sizing: border-box; 29 } 30 31 html { 32 height: 100%; 33 } 34 35 body { 36 background: #F8F9F9; 37 color: #221D1E; 38 font-family: Museo, HelveticaNeue-Light, Helvetica Neue Light, Helvetica Neue, Helvetica, Arial, "Lucida Grande", sans-serif; 39 min-height: 100%; 40 position: relative; 41 } 42 43 .app { 44 height: 100%; 45 display: flex; 46 flex-direction: column; 47 } 48 49 .app__content { 50 padding: 1rem; 51 width: 100%; 52 margin: 0 auto; 53 } 54 55 .field { 56 padding-left: 5px; 57 } 58 59 .field--submit { 60 margin-top: 2px; 61 } 62 63 @media(min-width: 250px) { 64 .header-inner { 65 margin: 0; 66 } 67 } 68 69 @media(max-width: 470px) { 70 table { 71 font-size: 10px; 72 } 73 74 table td { 75 flex-direction: column; 76 } 77 78 .link--normal { 79 text-align: start; 80 } 81 82 .small-class { 83 display: inline-grid; 84 } 85 86 .input { 87 height: 1.8rem; 88 } 89 90 .is-light { 91 width: 104px; 92 margin-left: 5px; 93 } 94 95 .container { 96 display: block; 97 width: 100%; 98 } 99 100 .card { 101 display: block; 102 width: 100%; 103 } 104 105 .header-inner { 106 margin: 0; 107 } 108 109 .navigation { 110 display: none; 111 } 112 113 .col{ 114 width: 100%; 115 } 116 } 117 118 @media(max-width: 624px) { 119 .header { 120 height: 75px; 121 line-height: 75px; 122 } 123 124 .header-inner { 125 display: flex; 126 flex-direction: column; 127 } 128 129 .toolbar li { 130 margin-right: auto; 131 } 132 133 .row { 134 padding-top: 25px; 135 } 136 137 .header-inner 138 .header-tagline { 139 font-size: 10px; 140 } 141 142 .span-direccion-horarios{ 143 display: block; 144 } 145 146 } 147 148 @media(max-width: 768px) { 149 .columna { 150 margin-bottom: 10px; 151 } 152 } 153 154 155 @media(max-width: 1040px) { 156 .field--submit { 157 display: flex; 158 flex-wrap: wrap; 159 } 160 161 .button.is-primary { 162 width: 100%; 163 } 164 165 .boton { 166 margin: 2px 0 6px 0; 167 } 168 169 .dropdown, 170 .dropdown-trigger, 171 .is-light { 172 width: 100%; 173 } 174 175 .is-light { 176 margin: 0; 177 } 178 179 .column{ 180 width: 100%; 181 } 182 183 184 } 185 186 @media(min-width: 1040px) { 187 .header-inner { 188 margin: 0 33px; 189 } 190 191 .trabajo2{ 192 margin-left: 70px; 193 } 194 } 195 196 .v-select { 197 width: 100%; 198 } 199 200 .input { 201 height: 2.1rem; 202 } 203 /* Bulma Reset*/ 204 .input.is-active, 205 .input.is-focused, 206 .input:active, 207 .input:focus, 208 .taginput .is-active.taginput-container.is-focusable, 209 .taginput .is-focused.taginput-container.is-focusable, 210 .taginput .taginput-container.is-focusable:active, 211 .taginput .taginput-container.is-focusable:focus, 212 .textarea.is-active, .textarea.is-focused, 213 .textarea:active, .textarea:focus { 214 border-color: #00AFEC; 215 box-shadow: 0 0 0 0.125em rgba(0, 175, 236, 0.25); 216 } 217 218 .select select.is-active, 219 .select select.is-focused, 220 .select select:active, 221 .select select:focus { 222 border-color: #00AFEC; 223 box-shadow: 0 0 0 0.125em rgba(0, 175, 236, 0.25); 224 } 225 226 .select:not(.is-multiple):not(.is-loading):after { 227 border-color: #00AFEC; 228 } 229 230 .button.is-primary { 231 background-color: #00AFEC; 232 } 233 234 .button.is-primary.is-hovered, 235 .button.is-primary:hover { 236 background-color: #00a8e6; 237 } 238 239 .label { 240 font-size: .8rem; 241 color: #000; 242 } 243 244 .title { 245 color: #009FE3; 246 text-align: center; 247 text-transform: uppercase; 248 font-weight: normal; 249 } 250 251 .text--primary { 252 color: #009FE3; 253 } 254 255 a { 256 color: #009FE3; 257 } 258 259 a.link--normal, 260 .link--normal a { 261 color: #363636; 262 } 263 264 .provider-detail { 265 display: block; 266 margin: 2px; 267 padding: 4px; 268 } 269 270 .content ul { 271 margin: 4px; 272 } 273 274 table td, table td * { 275 vertical-align: top; 276 } 277 278 .b-table .table .chevron-cell { 279 vertical-align: top; 280 } 281 282 .dropdown-content { 283 width: 118px; 284 } 285 286 .vs__dropdown-menu { 287 width: 270px; 288 } 289 290 .vs__clear { 291 display: none; 292 } 293 294 #telefono, #correo, #mapa { 295 color: #009FE3; 296 } 297 298 td[data-label="Nombre"] { 299 width: 50%; 300 } 301 302 td[data-label="Tipo"] { 303 width: 25%; 304 } 305 306 td[data-label="Teléfonos"] { 307 width: 25%; 308 } 309 310 .section-empty { 311 margin-top: 10%; 312 } 313 314 /* Spinner */ 315 .loader, .select.is-loading::after { 316 width: 5em; 317 height: 5em; 318 left: 50%; 319 margin-left: -3em; 320 top: 40%; 321 } 322 323 /* HEADER */ 324 .main-header { 325 position: fixed; 326 top: 0; 327 left: 0; 328 right: 0; 329 z-index: 100; 330 } 331 332 .header { 333 line-height: 44px;
334 background-color: #00afec; 335 } 336 337 .header-inner { 338 display: flex; 339 padding: 0 20px; 340 color: #fff; 341 } 342 343 .header-tagline { 344 color: inherit; 345 font-family: "Museo-Sans",Arial,sans-serif; 346 font-size: 13px; 347 font-weight: 400; 348 margin: 0 15px 0 0; 349 } 350 351 .header-tagline a { 352 color: #fff 353 } 354 355 .header-inner .toolbar { 356 flex: 1; 357 justify-content: flex-end; 358 } 359 360 .header-icon { 361 color: #fff; 362 font-size: 16px; 363 } 364 365 .toolbar { 366 display: flex; 367 align-items: flex-end; 368 padding: 0; 369 margin: 0; 370 } 371 372 .toolbar-item { 373 display: flex; 374 align-self: center; 375 } 376 377 .header-icon:hover { 378 color: #CF3B93 379 } 380 381 .toolbar-item > a { 382 margin: 0 5px; 383 color: #fff; 384 } 385 386 ul { 387 list-style: none; 388 } 389 390 391 /* NAVBAR */ 392 .navbar { 393 height: 80px; 394 background-color: #fff; 395 box-shadow: 0 0 3px 0 rgb(76 76 76 / 14%); 396 display: flex; 397 flex-wrap: wrap; 398 width: 100%; 399 box-sizing: border-box; 400 top: 0; 401 z-index: 100; 402 } 403 404 .navbar-inner { 405 margin: 0 24.5px 0 20px; 406 width: 100%; 407 display: flex; 408 flex-wrap: wrap; 409 flex: 1; 410 justify-content: space-between; 411 } 412 413 .navigation-brand { 414 display: flex; 415 align-items: center; 416 } 417 418 .logo { 419 position: relative; 420 height: 90px; 421 width: 120px; 422 background-position: center; 423 background-position-y: -28px; 424 background-size: cover; 425 } 426 427 .logo img { 428 width: 120px; 429 margin-top: 10px; 430 } 431 432 .logo::after { 433 content: ""; 434 width: 2px; 435 height: 100%; 436 background-color: #fff; 437 } 438 439 a, a:hover { 440 text-decoration: none; 441 } 442 443 .logo, .phone { 444 background-repeat: no-repeat; 445 background-size: contain; 446 } 447 448 .phone img { 449 height: 75px; 450 } 451 452 .navigation { 453 padding: 0; 454 flex-direction: column; 455 flex-wrap: wrap; 456 justify-content: flex-end; 457 background-color: #fff; 458 } 459 460 .navigation-item { 461 position: relative; 462 justify-content: space-evenly; 463 border-style: solid; 464 border-radius: 22px; 465 border-color: #00afec; 466 margin: 10px 2px 2px 12px; 467 border-width: 1px; 468 } 469 470 .navigation-item > a { 471 border-top: none; 472 color: #00afec; 473 font-size: .9375rem; 474 font-weight: 200; 475 line-height: 34px; 476 text-transform: uppercase; 477 text-align: center; 478 white-space: nowrap; 479 -o-border-image: initial; 480 border-image: initial; 481 padding: 0 20px; 482 } 483 484 .navigation-item .active { 485 font-weight: 700; 486 border-width: 1px; 487 border-color: #00afec; 488 } 489 490 .navigation-item .active, .navigation-item:hover { 491 border-radius: 32px; 492 border-width: 2px; 493 cursor: pointer; 494 } 495 496 497 /* MAIN */ 498 .main { 499 flex: 1; 500 padding-bottom: 1rem; 501 position: relative; 502 padding-bottom: 100px; 503 min-height: 100%; 504 } 505 506 .container { 507 margin-top: 150px; 508 padding-right: 15px; 509 padding-left: 15px; 510 margin-right: auto; 511 margin-left: auto; 512 height: 100%; 513 width: 100%; 514 } 515 516 .row { 517 display: flex; 518 flex-wrap: wrap; 519 width: 100%; 520 } 521 522 .col { 523 flex-basis: 0; 524 flex-grow: 1; 525 } 526 527 .card { 528 position: relative; 529 display: flex; 530 flex-direction: column; 531 min-width: 0; 532 word-wrap: break-word; 533 background-color: #fff; 534 background-clip: border-box; 535 border: 1px solid rgba(0,0,0,.125); 536 border-radius: .125rem; 537 width: 100%; 538 } 539 540 .card-body { 541 flex: 1 1 auto; 542 padding: 1.25rem; 543 } 544 545 .card-title { 546 margin-bottom: 1.5rem; 547 text-align: center; 548 font-weight: 400; 549 color: #5a6466; 550 font-size: 20px; 551 padding-top: 15px; 552 } 553 554 .form { 555 width: 100%; 556 margin-right: 40px; 557 } 558 559 .filtros span { 560 color: #000; 561 font-size: 16px; 562 font-weight: 300; 563 text-align: center; 564 } 565 566 .column { 567 padding: 0; 568 } 569 570 .columna { 571 height: fit-content; 572 } 573 574 .borde { 575 padding: 2px 6px 4px 6px; 576 } 577 578 .input, .vs__dropdown-toggle, .multiselect__tags { 579 border: 0; 580 background-image: linear-gradient(#00afec,#00afec),linear-gradient(#bfc8ca,#bfc8ca); 581 background-size: 0 2px,100% 1px; 582 background-repeat: no-repeat; 583 background-position: center bottom,center calc(100% - 1px); 584 background-color: transparent; 585 transition: background 0 ease-out; 586 box-shadow: none; 587 } 588 589 .input:focus, .multiselect__tags:focus { 590 box-shadow: none; 591 outline: none; 592 background-image: linear-gradient(#00A8E6,#00A8E6),linear-gradient(#00A8E6,#00A8E6); 593 } 594 595 .vs__dropdown-menu { 596 border-top: 1.4px solid #00A8E6; 597 } 598 599 .multiselect--above .multiselect__content-wrapper { 600 bottom: 0; 601 } 602 603 .multiselect__content-wrapper { 604 position: relative; 605 /*width: 280px;*/ 606 } 607 608 .multiselect__tag { 609 background: #00AFEC; 610 } 611 612 .multiselect__option:hover, .multiselect__option--highlight, .multiselect__option--selected.multiselect__option--highlight, 613 .multiselect__tag-icon:hover { 614 background: #00AFEC; 615 color: #fff; 616 } 617 618 .multiselect__element { 619 background: #fff; 620 } 621 622 .column-category, .column-zona, .column-especialidad { 623 width: 100%; 624 } 625 626 .trabajo2{ 627 display: block; 628 } 629 630 .span-direccion-horarios{ 631 display: flex; 632 } 633 634 /*FOOTER*/ 635 .foot { 636 width: 100%; 637 display: flex; 638 align-items: center; 639 background: #00afec; 640 color: #fff; 641 font-size: 11px; 642 font-weight: 600; 643 letter-spacing: 1px; 644 padding-left: 53px; 645 height: 44px;
646 position: absolute; 647 bottom: 0; 648 clear: both; 649 } 650 651 652 body::-webkit-scrollbar { 653 width: 8px; 654 height: 8px; 655 } 656 657 body::-webkit-scrollbar-thumb { 658 background: #ccc; 659 border-radius: 4px; 660 } 661 662 body::-webkit-scrollbar-thumb:hover { 663 background: #b3b3b3; 664 box-shadow: 0 0 2px 1px rgba(0,0,0,0.2); 665 } 666 667 body::-webkit-scrollbar-thumb:active { 668 background: #999999; 669 } 670 671 body::-webkit-scrollbar-track { 672 background: #e1e1e1; 673 border-radius: 4px; 674 } 675 </style> 676</head> 677 678<body> 679 <div id="app" class="app" v-cloak> 680 <header class="main-header"> 681 <div class="header"> 682 <div class="header-inner"> 683 <span class="header-tagline"> 684 <a href="https://goo.gl/maps/QpfDzhEVtmCn4dfG6" target="_blank"> 685 <i class="fas fa-map-marker-alt"></i> 686 Av. A. Lincoln No. 849, Ens. Piantini, Santo Domingo, Rep. Dom. 687 </a> 688 </span> 689 <ul class="toolbar"> 690 <li class="toolbar-item"> 691 <a href="https://www.facebook.com/ARSYunenRD/" target="_blank"> 692 <i class="header-icon fab fa-facebook-square"></i> 693 </a> 694 </li> 695 <li class="toolbar-item"> 696 <a href="https://www.instagram.com/arsyunenrd/" target="_blank"> 697 <i class="header-icon fab fa-instagram-square"></i> 698 </a> 699 </li> 700 <li class="toolbar-item"> 701 <a href="https://www.linkedin.com/company/ars-yun%C3%A9n/posts/?feedView=all" target="_blank"> 702 <i class="header-icon fab fa-linkedin"></i> 703 </a> 704 </li> 705 <li class="toolbar-item"> 706 <a href="mailto:[email protected]" target="_blank"> 707 <i class="header-icon fas fa-envelope"></i> 708 </a> 709 </li> 710 </ul> 711 </div> 712 </div> 713 <nav class="navbar"> 714 <div class="navbar-inner"> 715 <div class="navigation-brand"> 716 <a href="http://www.arsyunen.com"> 717 <div class="logo"> 718 <img src="Img/logo yunen grande.png" class="logo-yunen" alt=""> 719 </div> 720 </a> 721 <a href="tel:809-334-3030"> 722 <div class="phone"> 723 <img src="Img/phone.jpg" alt=""> 724 </div> 725 </a> 726 <ul class="navigation"> 727 <li class="navigation-item active"> 728 <a href="http://www.arsyunen.com">home</a> 729 </li> 730 </ul> 731 </div> 732 </div> 733 </nav> 734 </header> 735 <main class="main"> 736 <div class="container"> 737 <div class="row"> 738 <div class="col"> 739 <h3 class="card-title">Buscador de Prestadores de Servicio de Salud</h3> 740 </div> 741 </div> 742 <div class="row app__content"> 743 <div class="col columns"> 744 <div class="card column mr-4 is-3 columna" > 745 <div class="card-body"> 746 <form @submit.prevent="searchHealthProviders" class="form column is-12"> 747 <div class="columns borde"> 748 <div class="field column column-category"> 749 <label class="label">CategorÃa</label> 750 <div class="control is-expanded"> 751 <div class="is-fullwidth"> 752 <vue-multiselect @input
752="chooseCategory" v-model="selectedCategory" :options="categories" :custom-label="labelName" label="label" track-by="label" :multiple="true" :searchable="true" :close-on-select="false" :clear-on-select="false" :show-labels="false" placeholder="Todas"></vue-multiselect> 753 754 755 </div> 756 </div> 757 </div> 758 </div> 759 <div class="columns borde" v-if="showClinicDoctors"> 760 <div class="field column"> 761 <label class="checkbox"> 762 <input type="checkbox" v-model="includeDoctors"> 763 Incluir medicos 764 </label> 765 </div> 766 </div> 767 <div class="columns borde"> 768 <div class="field column column-especialidad" v-if="showMedicalSpecialty"> 769 <label class="label">Especialidad</label> 770 <div class="control is-expanded"> 771 <div class="is-fullwidth"> 772 <vue-multiselect v-model="selectedMedicalSpecialty" :options="medicalSpecialties" :custom-label="labelName" label="label" track-by="label" :multiple="true" :searchable="true" :close-on-select="false" :clear-on-select="false" :show-labels="false" placeholder="Todas"></vue-multiselect> 773 774 775 </div> 776 </div> 777 </div> 778 </div> 779 <div class="columns borde"> 780 <div class="field column field--full-width" v-if="showMedicalSpecialty"> 781 <label class="label">Centro</label> 782 <div class="control"> 783 <input class="input" type="text" placeholder="Centro Donde Trabaja" v-model="searchCentroTrabaja" > 784 </div> 785 </div> 786 </div> 787 <div class="columns borde"> 788 <div class="field column column-zona"> 789 <label class="label">Zona</label> 790 <div class="control is-expanded"> 791 <div class="is-fullwidth"> 792 793 <vue-multiselect v-model="selectedZone" :options="zones" :custom-label="labelName" label="label" track-by="label" :multiple="true" :searchable="true" :close-on-select="false" :clear-on-select="false" :show-labels="false" placeholder="Todas"></vue-multiselect> 794 795 </div> 796 </div> 797 </div> 798 </div> 799 <div class="columns borde"> 800 <div class="field column"> 801 <label class="label">Plan</label> 802 <div class="control is-expanded"> 803 <div class="is-fullwidth"> 804 805 <vue-multiselect v-model="selectedPlanClase" :options="planesClases" :custom-label="labelName" label="label" track-by="label" :multiple="false" :searchable="true" :close-on-select="true" :show-labels="false" placeholder="Todas"></vue-multiselect> 806 </div> 807 </div> 808 </div> 809 </div> 810 <div class="columns borde"> 811 <div class="field column" v-if="showInternalOptions"> 812 <label class="label">Premium</label> 813 <div class="control is-expanded"> 814 <div class="is-fullwidth"> 815 816 <vue-multiselect v-model="selectedPremium" :options="premiums" :custom-label="labelName" label="label" track-by="label" :multiple="false" :searchable="true" :close-on-select="true" :show-labels="false" placeholder="Todas"></vue-multiselect> 817 </div> 818 </div> 819 </div> 820 </div> 821 <div class="columns borde"> 822 <div class="field column field--full-width"> 823 <label class="label">Nombre</label> 824 <div class="control"> 825 <input class="input" type="text" placeholder="Nombre del prestador" v-model="search" > 826 </div> 827 </div> 828 </div> 829 <div class="columns borde"> 830 <div class="field column field--full-width"> 831 <label class="label">Dirección</label> 832 <div class="control"> 833 <input class="input" type="text" placeholder="Calle, municipio o provincia" v-model="direccion" > 834 </div> 835 </div> 836 </div> 837 838 <div class="field columns field--full-width field--submit"> 839 <div class="control column pr-0 pl-0 boton"> 840 <button type="submit" :class="{'button': true, 'is-loading': loading, 'is-primary':true, 'disabled':disabled}">Consultar</button> 841 </div> 842 <div class="control column"> 843 <div :class="{'dropdown': true, 'is-active': isActive}" @click="showItems($event)"> 844 <div class="dropdown-trigger"> 845 <button class="button is-light field-submit" aria-haspopup="true" aria-controls="dropdown-menu">
846 <span>Exportar</span> 847 <span class="icon is-small"> 848 <i class="fas fa-angle-down" aria-hidden="true"></i> 849 </span> 850 </button> 851 </div> 852 <div class="dropdown-menu" id="dropdown-menu" role="menu"> 853 <div class="dropdown-content"> 854 855 <button @click="exportEXCEL" :class="{'button': true, 'is-loading': loadingReport, 'is-outlined': true, 'dropdown-item': true}" title="Exportar a EXCEL">EXCEL</button> 856 <button @click="exportTarjeta" :class="{'button': true, 'is-loading': loadingReport, 'is-outlined': true, 'dropdown-item': true}" title="Exportar a EXCEL">TARJETAS</button> 857 </div> 858 </div> 859 </div> 860 </div> 861 </div> 862 863 </form> 864 </div> 865 </div> 866 867 868 <div class="card column is-9"> 869 <div class="card-body columns"> 870 <div class="loader" v-if="loading"> 871 <div class="is-loading"></div> 872 </div> 873 <div class="providers-list column" v-if="!loading"> 874 <b-table 875 ref="table" 876 :data="healthProviders" 877 :loading="loading" 878 detailed 879 detail-key="Codigo" 880 :paginated="healthProviders.length > 0" 881 :per-page="10" 882 :pagination-simple="true" 883 :current-page.sync="currentPage" id="tabla"> 884 885 <template slot-scope="props">
886 <b-table-column sortable field="Nombre" label="Nombre"> 887 <a class="link--normal" @click="showDetail(props.row)">{{ props.row.Nombre }}</a> 888 </b-table-column> 889 <b-table-column v-if="props.row" sortable field="TipoDescripcion" label="Tipo" 890 class="is-capitalized"> 891 <span class="link--normal">{{ props.row.TipoDescripcion }}</span> 892 893 </b-table-column> 894 895 <b-table-column v-if="props.row" field="Telefono1" label="Teléfonos"> 896 <a style="display: block" v-if="props.row.Telefono1 && props.row.Telefono1.length > 6" 897 :href="'tel:+' + props.row.Telefono1" 898 class=" link--normal" id="telefono"> 899 {{ props.row.Telefono1 }} 900 </a> 901 902 </b-table-column> 903 </template> 904 <template slot="detail" slot-scope="props"> 905 <provider-detail :key="props.row.Codigo" :provider="props.row" /> 906 </template> 907 <template slot="empty"> 908 <section class="section"> 909 <div class="content has-text-grey has-text-centered section-empty"> 910 <p> 911 No se han encontrado prestadores <br> 912 <span>Reconfigure los filtros e intente nuevamente</span> 913 </p> 914 </div> 915 </section> 916 </template> 917 </b-table> 918 </div> 919 </div> 920 </div> 921 </div> 922 </div> 923 </div> 924 </main> 925 926 <footer class="foot"> 927 <span class="footer-copyright">Copyright All Rights Reserved © {{ footerYear }}</span> 928 </footer> 929 930 931 <div id="contenido" style="display:none"> 932 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 933 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 934 <div style="margin-top:20px"> 935 <h3 style="text-align:center;">PRESTADORES DE SERVICIO SEGUROS YUNEN</h3> 936 <ul style="padding:0; list-style:none; --auto-grid-min-size: 16rem; display: grid; grid-template-columns: repeat(auto-fill, minmax(var(--auto-grid-min-size), 1fr)); grid-gap: 1rem;"> 937 <li v-for="(data, index) of healthProviders" :key="index" style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2); padding: 8px; background-color: #f1f1f1;"> 938 <p> 939 <span style="font-size: 12px; font-weight: bold">{{ data.Nombre }}</span> 940 </p> 941 <p> 942 <span style="font-weight:bold; font-size:14px;">Tipo:</span> 943 <span style="font-size: 12px;">{{ data.TipoDescripcion }}</span> 944 </p> 945 <p>
946 <span style="font-weight:bold; font-size:14px;">Telefonos:</span> 947 <span style="font-size: 12px;"> 948 <a :href="'tel:+' + data.Telefono1"> {{ data.Telefono1 }} </a> 949 <a :href="'tel:+' + data.Telefono2" v-if="data.Telefono2?.length > 6"> / {{ data.Telefono2 }} </a> 950 </span> 951 </p> 952 <p> 953 <span style="font-weight:bold; font-size:14px;">Direccion:</span> 954 <span style="font-size: 12px;">{{ data.Direccion?.toUpperCase() }}, {{ data.Municipio?.Descripcion?.toUpperCase() }}</span> 955 </p> 956 <p v-if="showInternalOptions && data.Correo != '' "> 957 <span style="font-weight:bold; font-size:14px;">Correo:</span> 958 <span style="font-size: 12px;">{{ data.Correo?.toUpperCase() }}</span> 959 </p> 960 <p v-if="showInternalOptions"> 961 <span style="font-weight:bold; font-size:14px;">{{ data.Premium == 1 ? "PREMIUM" : "" }}</span> 962 </p> 963 </li> 964 </ul> 965 </div> 966 </div> 967 </div> 968 969
969<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
969 970 971
971<script src="https://unpkg.com/[email protected]/dist/buefy.min.js"></script>
971 972
972<script src="https://unpkg.com/[email protected]/dist/components/table" ></script>
972 973
973<script src="https://unpkg.com/[email protected]/dist/components/toast"></script>
973 974 975 <!--
975<script src="https://unpkg.com/buefy/dist/buefy.min.js"></script>
975 976
976<script src="https://unpkg.com/buefy/dist/components/table"></script>
976 977
977<script src="https://unpkg.com/buefy/dist/components/toast"></script>
977--> 978
978<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
978 979 980
980<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
980 981
981<script src="https://unpkg.com/vue-simple-search-dropdown@latest/dist/vue-simple-search-dropdown.min.js"></script>
981 982
982<script src="https://unpkg.com/vue-select@latest"></script>
982 983
983<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.14.1/xlsx.full.min.js"></script>
983 984
984<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.0.272/jspdf.min.js"></script>
984 985
985<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf-autotable/2.0.16/jspdf.plugin.autotable.js"></script>
985 986
986<script src="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.6/js/standalone/selectize.min.js"></script>
986 987
987<script src="http://cdn.jsdelivr.net/g/filesaver.js"></script>
987 988 989
989<script src="https://unpkg.com/[email protected]"></script>
989 990 991
991<script type="text/x-template" id="provider-detail-template"> 992 <div class="provider-details"> 993 <article class="media"> 994 <div class="media-content"> 995 <div class="content"> 996 <h5> 997 {{ provider.Nombre }} 998 <small style="font-size:65%" 999 class="has-text-grey is-capitalized">{{ provider.TipoDescripcion }}</small> 1000 </h5> 1001 <div> 1002 <div> 1003 <span class="provider-detail is-capitalized span-direccion-horarios"> 1004 <small> 1005 <strong>Direccion:</strong> 1006 {{ provider.Direccion }}, {{ provider.Municipio?.Descripcion }}, {{ provider.Provincia?.Descripcion }} 1007 1008 </small> 1009 <small v-if="provider.Horario != '' && provider.Horario?.length > 5"> 1010 <small><strong>Horarios:</strong> {{ provider.Horario }}</small> 1011 </small> 1012 </span> 1013 <span class="provider-detail is-capitalized" v-if="provider.CentroTrabaja != null"><small><strong>Trabaja en:</strong> {{ provider.CentroTrabaja?.Nombre }} <a :href="'tel:+' + provider.CentroTrabaja.Telefono1" class="link--normal" id="telefono"> {{ provider.CentroTrabaja?.Telefono1 }} </a> </small> 1014 <small class="trabajo2" v-if="provider.CentroTrabaja2?.Nombre?.length > 2"> 1015 <span>y {{ provider.CentroTrabaja2?.Nombre }} <a :href="'tel:+' + provider.CentroTrabaja2.Telefono1" class="link--normal" id="telefono"> {{ provider.CentroTrabaja2?.Telefono1 }} </a></span> 1016 </small> 1017 </span> 1018 1019 1020 <span class="provider-detail is-capitalized" v-if="provider.Correo != '' && showOptions"><small><strong>Correo:</strong> <span><a :href="'mailto:'+provider.Correo" class="link--normal" id="correo">{{ provider.Correo?.toUpperCase() }}</a></span> </small></span> 1021 <span class="provider-detail is-capitalized"> 1022 <small><strong>Telefonos:</strong> 1023 <span> <a :href="'tel:+' + provider.Telefono1" class="link--normal" id="telefono"> {{ provider.Telefono1 }} </a> </span> 1024 <span v-if="provider.Telefono2 != null && provider.Telefono2?.length > 6"> <span> / </span> <a :href="'tel:+' + provider.Telefono2" class="link--normal" id="telefono"> {{ provider.Telefono2 }} </a> </span> 1025 </small> 1026 </span> 1027 <span class="provider-detail is-capitalized" v-if="provider.UbicacionMapa != '' "><small><a :href="provider.UbicacionMapa" class="link--normal" id="mapa" target="_blank">Ver Mapa</a> </small></span> 1028 1029 <span class="provider-detail is-capitalized"><small>{{ provider.Premium == 1 ? "PREMIUM" : "" }} </small></span> 1030 <div class="provider-detail" v-if="isDoctor && clinics.length > 0"> 1031 <small><strong>Trabaja en</strong></small> 1032 <ul style="margin: .5rem 2.5rem;"> 1033 <li v-for="(clinic, clinicIndex) in clinics" :key="clinicIndex" class="is-capitalized"> 1034 <small> {{ clinic.Nombre?.toLowerCase() }} <small>{{ clinic.Municipio?.Descripcion }}</small></small> 1035 </li> 1036 </ul> 1037 </div> 1038 <div class="provider-detail" v-if="provider.Medicos != null && provider.Medicos.length > 0"> 1039 <small><strong>Doctores</strong></small> 1040 1041 <div class="control"> 1042 <input class="input" type="text" placeholder="Buscar doctores" v-model="searchDoctorsInput"> 1043 </div> 1044 <ul style="max-height: 140px;
1044overflow-y: scroll;"> 1045 <li v-for="(doctor, doctorIndex) of filteredDoctors" :key="doctorIndex"> 1046 1047 <a class="link--normal" > {{ doctor.Tipo }}</a> 1048 <div > 1049 1050 <ul style="margin-left: 20px; list-style-type: none"> 1051 <li v-for="( doctor, doctorIndex ) in doctor.Datos" :key="doctorIndex" class="is-capitalized"> 1052 <small class="small-class"> {{ doctor.Nombre?.toLowerCase() }} <small> <a v-if=" doctor.Telefono1 && doctor.Telefono1.length > 6 " :href="'tel:+' + doctor.Telefono1" class="link--normal" id="telefono"> {{ doctor?.Telefono1 }} </a> </small> </small> 1053 </li> 1054 </ul> 1055 </div> 1056 </li> 1057 </ul> 1058 </div> 1059 </div> 1060 </div> 1061 </div> 1062 </div> 1063 </article> 1064 </div> 1065 </script>
1065 1066 1067
1067<script> 1068 1069 const CATEGORY_DOCTOR_ID = 99; 1070 const CATEGORY_MEDICAL_CENTER_ID = 4; 1071 const ENDPOINT = 'ConsultaPSSServicio.aspx?request='; 1072 1073 axios.interceptors.response.use(function (response) { 1074 if (response.data && response.data.error) { 1075 return Promise.reject(response.data.error); 1076 } 1077 return response; 1078 }, function (error) { 1079 return Promise.reject(error); 1080 }); 1081 1082 Vue.component('provider-detail', { 1083 template: '#provider-detail-template', 1084 props: { 1085 provider: { 1086 type: Object, 1087 required: true, 1088 }, 1089 }, 1090 data() { 1091 return { 1092 clinics: [], 1093 doctors: [], 1094 loaded: false, 1095 searchDoctorsInput: '', 1096 showDoctorDetails: "", 1097 doctorsGroupBySpecialty: [], 1098 closeDoctorsDetail: false, 1099 doctorsData: [], 1100 showOptions: false, 1101 }; 1102 }, 1103 created() { 1104 this.searchInformation(); 1105 this.getDoctorsGroupBySpecialty(); 1106 this.getAsignDoctors(); 1107 this.showOptions = app.showInternalOptions; 1108 }, 1109 computed: { 1110 isDoctor() { 1111 return (this.provider.CODIGO || 0) == CATEGORY_DOCTOR_ID; 1112 }, 1113 isClinic() { 1114 return (this.provider.CODIGO || 0) == CATEGORY_MEDICAL_CENTER_ID; 1115 }, 1116 filteredDoctors() { 1117 let data = this.doctorsData.filter(currentDoctor => currentDoctor.Tipo.toLowerCase().includes(this.searchDoctorsInput.toLowerCase()) 1118 || currentDoctor.Datos.some(x => x.Nombre.toLowerCase().includes(this.searchDoctorsInput.toLowerCase())) 1119 ); 1120 1121 let datosOf = []; 1122 if (data.length < this.doctorsData.length) { 1123 data.forEach((item, index) => { 1124 item.Datos.forEach((ejemplo, indexItem) => { 1125 if (ejemplo.Nombre.toLowerCase().includes(this.searchDoctorsInput.toLowerCase())) { 1126 datosOf.push({ Tipo: item.Tipo, Datos: [item.Datos[indexItem]] }); 1127 } 1128 }); 1129 }); 1130 } 1131 else { 1132 datosOf = data; 1133 } 1134 return datosOf.length == 0 ? data : datosOf; 1135 }, 1136 }, 1137 methods: { 1138 searchInformation() { 1139 if (!this.loaded) { 1140 if (this.isDoctor) { 1141 this.searchClinics(); 1142 } 1143 1144 if (this.isClinic) { 1145 this.searchDoctors(); 1146 } 1147 } 1148 }, 1149 searchClinics() { 1150 if (this.isDoctor) { 1151 axios.get(ENDPOINT + 'clinicas&doctor=' + this.provider.Codigo) 1152 .then((result) => { 1153 this.clinics = result.data; 1154 this.loaded = true; 1155 }) 1156 .catch((error) => { 1157 this.$toast.open({ 1158 type: 'is-danger', 1159 message: error, 1160 position: 'is-top-right', 1161 }); 1162 }); 1163 } 1164 }, 1165 searchDoctors() { 1166 if (this.isClinic) { 1167 axios.get(ENDPOINT + 'doctores¢ro=' + this.provider.Codigo) 1168 .then((result) => { 1169 this.doctors = result.data; 1170 this.loaded = true; 1171 }) 1172 .catch((error) => { 1173 this.$toast.open({ 1174 type: 'is-danger', 1175 message: error, 1176 position: 'is-top-right', 1177 }); 1178 }); 1179 } 1180 }, 1181 getDoctorsGroupBySpecialty() { 1182 this.doctorsGroupBySpecialty = this.provider.Medicos?.reduce((r, a) => { 1183 r[a.TipoDescripcion] = [...r[a.TipoDescripcion] || [], a]; 1184 return r; 1185 }, {}); 1186 }, 1187 getAsignDoctors() { 1188 if (this.doctorsGroupBySpecialty != undefined) { 1189 Object.entries(this.doctorsGroupBySpecialty).forEac
1189h((item) => { 1190 this.doctorsData.push({ "Tipo": item[0], "Datos": item[1] }); 1191 }); 1192 } 1193 1194 }, 1195 showSpecialtyDoctors(key) { 1196 this.showDoctorDetails = key; 1197 this.closeDoctorsDetail = !this.closeDoctorsDetail; 1198 } 1199 }, 1200 }); 1201 1202 Vue.component('v-select', VueSelect.VueSelect); 1203 Vue.component('vue-multiselect', window.VueMultiselect.default) 1204 var app = new Vue({ 1205 el: '#app', 1206 data: { 1207 categories: [], 1208 selectedCategory: null, 1209 zones: [], 1210 premiums: [], 1211 selectedPremium: null, 1212 showInternalOptions: false, 1213 selectedZone: null, 1214 showMedicalSpecialty: false, 1215 showClinicDoctors: false, 1216 medicalSpecialties: [], 1217 selectedMedicalSpecialty: { CODIGO: 0, DESCRIPCION: 'Todas' }, 1218 planesClases: [], 1219 selectedPlanClase: null, 1220 healthProviders: [], 1221 errors: [], 1222 loading: false, 1223 disabled: false, 1224 loaded: false, 1225 search: '', 1226 searchCentroTrabaja: '', 1227 includeDoctors: "", 1228 includeDoctorsRequest: "", 1229 currentPage: 1, 1230 selectedReport: null, 1231 optionsReport: [], 1232 isActive: false, 1233 direccion: '', 1234 loadingReport: false, 1235 footerYear: new Date().getFullYear(), 1236 }, 1237 created() { 1238 this.getCategories(); 1239 this.getZones(); 1240 this.getPlanesClases(); 1241 this.getPremiums(); 1242 this.getOptionsReport(); 1243 this.evaluateQueryStringParams(); 1244 }, 1245 methods: { 1246 getCategories() { 1247 axios.get(ENDPOINT + 'categorias') 1248 .then((result) => { 1249 result.data.forEach(item => this.categories.push({ co: item.CODIGO, label: item.DESCRIPCION })); 1250 //this.categories.unshift({ co: 0, label: 'Todas' }); 1251 //this.selectedCategory = this.categories[0]; 1252 }) 1253 .catch((error) => { 1254 this.categories.unshift({ co: 0, label: 'Todas' }); 1255 this.selectedCategory = this.categories[0]; 1256 alert(this.showErrors("Categorias", error)); 1257 this.$toast.open({ 1258 type: 'is-danger', 1259 message: error, 1260 position: 'is-top-right', 1261 }); 1262 }); 1263 }, 1264 getZones() { 1265 axios.get(ENDPOINT + 'zonas') 1266 .then((result) => { 1267 result.data.forEach(item => this.zones.push({ co: item.CODIGO, label: item.DESCRIPCION })); 1268 //this.zones.unshift({ co: 0, label: 'Todas' }); 1269 //this.selectedZone = this.zones[0]; 1270 }) 1271 .catch((error) => { 1272 this.zones.unshift({ co: 0, label: 'Todas' }); 1273 this.selectedZone = this.zones[0]; 1274 alert(this.showErrors("Zonas", error)); 1275 this.$toast.open({ 1276 type: 'is-danger', 1277 message: error, 1278 position: 'is-top-right', 1279 }); 1280 }); 1281 }, 1282 getPlanesClases() { 1283 axios.get(ENDPOINT + 'planesClases') 1284 .then((result) => { 1285 result.data.forEach(item => this.planesClases.push({ co: item.Id, label: item.Descripcion })); 1286 //this.planesClases.unshift({ co: 0, label: 'Todas' }); 1287 //this.selectedPlanClase = this.planesClases[0]; 1288 }) 1289 .catch((error) => { 1290 this.planesClases.unshift({ Id: 0, Descripcion: 'Todas' }); 1291 this.selectedPlanClase = this.planesClases[0]; 1292 alert(this.showErrors("Planes", error)); 1293 this.$toast.open({ 1294 type: 'is-danger', 1295 message: error, 1296 position: 'is-top-right', 1297 }); 1298 }); 1299 }, 1300 getMedicalSpecialties() { 1301 axios.get(ENDPOINT + 'especialidades') 1302 .then((result) => { 1303 result.data.forEach(item => this.medicalSpecialties.push({ co: item.CODIGO, label: item.DESCRIPCION })); 1304 this.selectedMedicalSpecialty = null; 1305 //this.medicalSpecialties.unshift({ co: 0, label: 'Todas' }); 1306 //this.selectedMedicalSpecialty = this.medicalSpecialties[0]; 1307 }) 1308 .catch((error) => { 1309 this.medicalSpecialties.unshift({ co: 0, label: 'Todas' }); 1310 this.selectedMedicalSpecialty = this.medicalSpecialties[0]; 1311 alert(this.showErrors("Especialidades", error)); 1312 1313 this.errors.push(error); 1314 this.$toast.open({ 1315 type: 'is-danger', 1316 message: error, 1317 position: 'is-top-right', 1318 }); 1319 }); 1320 }, 1321 chooseCategory() { 1322 //if (this.selectedCategory.co == CATEGORY_DOCTOR_ID) { 1323 // this.searchCentroTrabaja = ""; 1324 // this.showMedicalSpecialty = true; 1325 // this.showClinicDoctors = false; 1326 // this.includeDoctors = false; 1327 // this.getMedicalSpecialties(); 1328 //} 1329 //else if (this.selectedCategory.co == CATEGORY_MEDICAL_CENT
1329ER_ID) { 1330 // this.showClinicDoctors = true; 1331 // this.showMedicalSpecialty = false; 1332 // this.selectedMedicalSpecialty = { co: 0, label: 'Todas' }; 1333 //} 1334 //else { 1335 // this.showMedicalSpecialty = false; 1336 // this.showClinicDoctors = false; 1337 // this.selectedMedicalSpecialty = { co: 0, label: 'Todas' }; 1338 // this.includeDoctors = false; 1339 //} 1340 1341 1342 if (this.selectedCategory.some(x => x.co == CATEGORY_DOCTOR_ID)) { 1343 this.searchCentroTrabaja = ""; 1344 this.showMedicalSpecialty = true; 1345 this.getMedicalSpecialties(); 1346 } 1347 else { 1348 this.showMedicalSpecialty = false; 1349 this.selectedMedicalSpecialty = { co: 0, label: 'Todas' }; 1350 } 1351 1352 if (this.selectedCategory.some(x => x.co == CATEGORY_MEDICAL_CENTER_ID)) { 1353 this.showClinicDoctors = true; 1354 } 1355 else { 1356 this.showClinicDoctors = false; 1357 } 1358 1359 }, 1360 getPremiums() { 1361 this.premiums = [ 1362/* { co: null, label: 'Todas' },*/ 1363 { co: 1, label: 'SI' }, 1364 { co: 0, label: 'NO' } 1365 ] 1366 //this.selectedPremium = this.premiums[0]; 1367 }, 1368 getOptionsReport() { 1369 this.optionsReport = [ 1370 { CODIGO: null, DESCRIPCION: 'Reporte' }, 1371 { CODIGO: 0, DESCRIPCION: 'PDF' }, 1372 { CODIGO: 1, DESCRIPCION: 'EXCEL' } 1373 ] 1374 }, 1375 searchHealthProviders() { 1376 this.loaded = true; 1377 this.loading = true; 1378 this.disabled = true; 1379 this.healthProviders = []; 1380 this.includeDoctorsRequest = this.includeDoctors ? "1" : "0"; 1381 1382 let categoriesSelected = this.selectedCategory != null ? Array.prototype.map.call(this.selectedCategory, x => x.co).toString() : "0"; 1383 let zonesSelected = this.selectedZone != null ? Array.prototype.map.call(this.selectedZone, x => x.co).toString() : "0"; 1384 let premiumSelected = this.selectedPremium != null ? this.selectedPremium.co : ""; 1385 let specialtiesSelected = this.selectedMedicalSpecialty != null ? Array.prototype.map.call(this.selectedMedicalSpecialty, x => x.co).toString() : "0"; 1386 let planClaseSelected = this.selectedPlanClase != null ? this.selectedPlanClase.co : "0"; 1387 1388 axios.get(ENDPOINT + 'prestadores&zona=' + zonesSelected + '&categoria=' + categoriesSelected + '&nombre=' + this.search + '&subcategoria=' + specialtiesSelected + '&planClase=' + planClaseSelected + '&premium=' + premiumSelected + '&trabajaen=' + this.searchCentroTrabaja + '&incluyemedicosacentros=' + this.includeDoctorsRequest + '&direccion=' + this.direccion) 1389 .then((result) => { 1390 //console.log(result); 1391 this.currentPage = 1; 1392 this.healthProviders = result.data; 1393 this.loading = false; 1394 this.disabled = false; 1395 }) 1396 .catch((error) => { 1397 this.loading = false; 1398 this.disabled = false; 1399 this.healthProviders = []; 1400 alert(error); 1401 console.log(error); 1402 this.$toast.open({ 1403 type: 'is-danger', 1404 message: error, 1405 position: 'is-top-right', 1406 }); 1407 }); 1408 }, 1409 showDetail(row) { 1410 this.$refs.table.toggleDetails(row); 1411 }, 1412 getFilteredData() { 1413 let filteredData = []; 1414 this.healthProviders.map(item => { 1415 let data = { 1416 NOMBRE: item.Nombre ?? "", 1417 TIPO: item.TipoDescripcion ?? "", 1418 MUNICIPIO: item.Municipio != null ? item.Municipio.Descripcion : "", 1419 PROVINCIA: item.Provincia?.Descripcion ?? "", 1420 DIRECCION: item.Direccion?.toUpperCase() ?? "", 1421 TELEFONO: item.Telefono1 ?? "", 1422 TELEFONO_2: item.Telefono2?.length > 6 ? item.Telefono2 : "", 1423 UBICACION: item.UbicacionMapa ?? "", 1424 HORARIOS: item.Horario ?? "" 1425 } 1426 1427 if (item.CentroTrabaja != null) { 1428 data.TRABAJA_EN = item.CentroTrabaja.Nombre?.toUpperCase(); 1429 data.TELEFONO_TRABAJO = item.CentroTrabaja.Telefono1; 1430 } 1431 1432 if (item.CentroTrabaja2 != null) { 1433 data.CENTRO_TRABAJO2 = item.CentroTrabaja2.Nombre?.toUpperCase(); 1434 data.TELEFONO_TRABAJO2 = item.CentroTrabaja2.Telefono1; 1435 } 1436 1437 1438 if (this.evaluateQueryStringParams()) { 1439 data.CORREO = item.Correo?.toUpperCase() ?? ""; 1440 data.PREMIUM = item.Premium == true ? "SI" : "NO"; 1441 } 1442 1443 filteredData.push(data); 1444 }); 1445 return filteredData; 1446 }, 1447 exportPDF() { 1448 this.loadingReport = true; 1449 let document; 1450 document = new jsPDF('p', 'pt', 'a5'); 1451 document.text("PRESTADORES DE SERVICIO", 95, 25); 1452 var pageWidth = 595; 1453 var pageHeight = 842; 1454 var pageMargin = 70; 1455 1456 pageWidth -= pageMargin * 2; 1457 pageHeight -= pageMargin * 2; 1458 1459 var cellPadding = 10; 1460 var cellWidth = 185; 1461 var cellHeight = 70; 1462 var lineHeight = 14; 1463 1464 var startX = pageMargin; 1465 var startY = pageMargin; 1466 1467 document.setFontSize(8); 1468 1469 var page = 1; 1470 1471 function createCard(item) { 1472 var requiredWidth = startX + cellWidth + (cellPadding * 2); 1473 var requiredHeight = startY + cellHeight + (cellPadding * 2); 1474 1475 if (requiredWidth <= pageWidth) { 1476 textWriter(item, startX + cellPadding, startY + cellPadding); 1477 startX = requiredWidth; 1478 // startY += cellHeight + cellPadding; 1479 } else { 1480 if (requiredHeight > pageHeight) { 1481 document.addPage(); 1482 page++; 1483 document.setPage(page); 1484 startY = pageMargin; 1485 } else { 1486 startY = requiredHeight; 1487 } 1488 1489 startX = pageMargin; 1490 textWriter(item, startX + cellPadding, startY + cellPadding); 1491 startX = startX + cellWidth + (cellPadding * 2); 1492 } 1493 } 1494 1495 function textWriter(item, xAxis, yAxis) { 1496 xAxis -= 33; 1497 document.setFillColor(238, 238, 238); 1498 1499 document.rect(xAxis - 13, yAxis - lineHeight, 353, 74.5, 'F'); 1500 1501 let pageWidth = document.internal.pageSize.width || document.internal.pageSize.getWidth(); 1502 let ParaWidth = 353 * 0.85; 1503 let LeftMargin = (pageWidth - ParaWidth) / 2; 1504 let nombre = document.splitTextToSize(item.NOMBRE, ParaWidth); 1505 let direccion = document.splitTextToSize(item.MUNICIPIO + ', ' + item.DIRECCION, ParaWidth); 1506 1507 1508 //data 1509 document.setFontType('bold'); 1510 document.text(xAxis - 8, yAxis, "Prestador: "); 1511 document.setFontType('normal'); 1512 document.text((LeftMargin + xAxis) - 22, yAxis, nombre); 1513 1514 document.setFontType('bold'); 1515 document.text(xAxis - 8, yAxis + (lineHeight * 1.2), "Tipo: "); 1516 document.setFontType('normal'); 1517 document.text(xAxis + 16, yAxis + (lineHeight * 1.2), item.TIPO); 1518 1519 document.setFontType('bold'); 1520 document.text(xAxis - 8, yAxis + (lineHeight * 2), "Telefono: "); 1521 document.setFontType('normal'); 1522 document.text(xAxis + 32, yAxis + (lineHeight * 2), item.TELEFONO); 1523 1524 document.setFontType('bold'); 1525 document.text(xAxis - 8, yAxis + (lineHeight * 3), "Direccion: "); 1526 document.setFontType('normal'); 1527 document.text((LeftMargin + xAxis) - 25, (yAxis + lineHeight * 3), direccion); 1528 1529 document.setFontType('bold'); 1530 document.text(xAxis - 8, yAxis + (lineHeight * 4), item.PREMIUM == "SI" ? "ES PREMIUM" : ""); 1531 } 1532 1533 for (var i = 0; i < this.getFilteredData().length; i++) { 1534 createCard(this.getFilteredData()[i]); 1535 } 1536 1537 document.save('ProveedoresPss.pdf'); 1538 this.loadingReport = false; 1539 }, 1540 exportEXCEL() { 1541 this.loadingReport = true; 1542 let datos = this.getFilteredData(); 1543 datos.forEach(u => { delete u.UBICACION; }); 1544 let data = XLSX.utils.json_to_sheet(datos); 1545 1546 let headers = [ 1547 { wch: 30 }, 1548 { wch: 30 }, 1549 { wch: 30 }, 1550 { wch: 30 }, 1551 { wch: 30 }, 1552 { wch: 15 }, 1553 { wch: 15 }, 1554 { wch: 30 }, 1555 { wch: 10 }, 1556 { wch: 10 }, 1557 { wch: 30 }, 1558 { wch: 10 }, 1559 ]; 1560 1561 data['!cols'] = headers; 1562 let workbook = XLSX.utils.book_new(); 1563 1564 let fileName = "ProveedoresPss"; 1565 XLSX.utils.book_append_sheet(workbook, data, fileName); 1566 XLSX.writeFile(workbook, `${fileName}.xlsx`); 1567 this.loadingReport = false; 1568 }, 1569 exportTarjeta() { 1570 this.loading = true; 1571 1572 let docType = window.document.implementation.createDocumentType('html', '', ''); 1573 let dom = window.document.implementation.createDocument('', 'html', docType); 1574 let head = document.createElement('head'); 1575 head.innerHTML = ` 1576 <meta charset="UTF-8"> 1577 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 1578 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 1579 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css" integrity="sha512-iBBXm8fW90+nuLcSKlbmrPcLa0OT92xO1BIsZ+ywDWZCvqsWgccV3gFoRBv0z+8dLJgyAHIhR35VZc2oM/gI1w==" crossorigin="anonymous" /> 1580 `; 1581 let body = document.createElement('body'); 1582 const style = document.createElement('style'); 1583 1584 style.innerHTML = ` 1585 body { 1586 background: #F8F9F9; 1587 font-family: Museo, HelveticaNeue-Light, Helvetica Neue Light, Helvetica Neue, Helvetica, Arial, "Lucida Grande", sans-serif 1588 } 1589 1590 table { 1591 min-width: 100%; 1592 border-collapse: collapse; 1593 } 1594 1595 .card { 1596 display: block; 1597 background-color: #fff; 1598 border: 1px solid rgba(0, 0, 0, .125); 1599 border-radius: .125rem; 1600 } 1601 .card-title{ 1602 margin-top: 150px; 1603 } 1604 1605 tr { 1606 1607 flex: 1 1 auto; 1608 padding: 1.25rem; 1609 } 1610 1611 tbody tr { 1612 border-bottom: 1px solid #DBDBDB; 1613 } 1614 1615 thead tr { 1616 border-bottom: 2px solid #DBDBDB; 1617 } 1618 1619 thead tr th:hover { 1620 border-bottom: 2px solid #5A6466; 1621 } 1622 1623 a { 1624 text-decoration: none 1625 } 1626 1627 /* HEADER */ 1628 .main-header { 1629 position: fixed; 1630 top: 0; 1631 left: 0; 1632 right: 0; 1633 z-index: 100; 1634 } 1635 1636 .header { 1637 line-height: 44px;
1638 background-color: #00afec; 1639 } 1640 1641 .header-inner { 1642 display: flex; 1643 padding: 0 20px; 1644 color: #fff; 1645 margin: 0 33px; 1646 } 1647 1648 .header-tagline { 1649 color: inherit; 1650 font-family: "Museo-Sans",Arial,sans-serif; 1651 font-size: 13px; 1652 font-weight: 400; 1653 margin: 0 15px 0 0; 1654 } 1655 1656 .header-tagline a{ 1657 color: #fff 1658 } 1659 1660 .header-inner .toolbar { 1661 flex: 1; 1662 justify-content: flex-end; 1663 } 1664 1665 .header-icon { 1666 color: #fff; 1667 font-size: 16px; 1668 } 1669 1670 .toolbar { 1671 display: flex; 1672 align-items: flex-end; 1673 padding: 0; 1674 margin: 0; 1675 } 1676 1677 .toolbar-item { 1678 display: flex; 1679 align-self: center; 1680 } 1681 1682 .header-icon:hover{ 1683 color: #CF3B93 1684 } 1685 1686 .item-toolbar { 1687 margin: 0 5px; 1688 color: #fff; 1689 } 1690 1691 ul { 1692 list-style: none; 1693 } 1694 1695 1696 /* NAVBAR */ 1697 .navbar { 1698 height: 80px; 1699 background-color: #fff; 1700 box-shadow: 0 0 3px 0 rgb(76 76 76 / 14%); 1701 display: flex; 1702 flex-wrap: wrap; 1703 width: 100%; 1704 box-sizing: border-box; 1705 top: 0; 1706 z-index: 100; 1707 } 1708 1709 .navbar-inner { 1710 margin: 0 24.5px 0 20px; 1711 width: 100%; 1712 display: flex; 1713 flex-wrap: wrap; 1714 flex: 1; 1715 justify-content: space-between; 1716 } 1717 1718 .navigation-brand { 1719 display: flex; 1720 align-items: center; 1721 } 1722 1723 .logo { 1724 position: relative; 1725 height: 90px; 1726 width: 120px; 1727 background-position: center; 1728 background-position-y: -28px; 1729 background-size: cover; 1730 } 1731 1732 .logo img { 1733 width: 120px; 1734 margin-top: 10px; 1735 } 1736 1737 .logo::after { 1738 content: ""; 1739 width: 2px; 1740 height: 100%; 1741 background-color: #fff; 1742 } 1743 1744 a, a:hover { 1745 text-decoration: none; 1746 } 1747 1748 .logo, .phone { 1749 background-repeat: no-repeat; 1750 background-size: contain; 1751 } 1752 1753 .phone img { 1754 height: 70px; 1755 } 1756 1757 .navigation { 1758 padding: 0; 1759 flex-direction: column; 1760 flex-wrap: wrap; 1761 justify-content: flex-end; 1762 background-color: #fff; 1763 } 1764 1765 .navigation-item { 1766 position: relative; 1767 justify-content: space-evenly; 1768 border-style: solid; 1769 border-radius: 22px; 1770 border-color: #00afec; 1771 margin: 10px 2px 2px 12px; 1772 border-width: 1px; 1773 } 1774 1775 .enlace-navigation { 1776 border-top: none; 1777 color: #00afec; 1778 font-size: .9375rem; 1779 font-weight: 200; 1780 line-height: 34px; 1781 text-transform: uppercase; 1782 text-align: center; 1783 white-space: nowrap; 1784 -o-border-image: initial; 1785 border-image: initial; 1786 padding: 0 20px; 1787 } 1788 1789 .navigation-item .active { 1790 font-weight: 700; 1791 border-width: 1px; 1792 border-color: #00afec; 1793 } 1794 1795 .navigation-item .active, .navigation-item:hover { 1796 border-radius: 32px; 1797 border-width: 2px; 1798 cursor: pointer; 1799 } 1800 1801 .card-title { 1802 margin-bottom: 1.5rem; 1803 text-align: center; 1804 font-weight: 400; 1805 color: #5a6466; 1806 font-size: 20px; 1807 padding-top: 15px; 1808 margin-left: 35px; 1809 margin-right: 35px; 1810 padding-left: 10px; 1811 padding-right: 10px; 1812 } 1813 1814 1815 th { 1816 color: #000; 1817 font-weight: bold; 1818 padding: 18px; 1819 } 1820 1821 td, 1822 th { 1823 padding: 12px; 1824 text-align: left; 1825 } 1826 1827 .tdNombre a, 1828 .tdNombre a:visited { 1829 color: #000; 1830 } 1831 1832 .icon { 1833 text-align: right; 1834 } 1835 1836 #telefono, 1837 #correo, 1838 #ubicacion { 1839 color: #009FE3; 1840 } 1841 1842 .direccion, 1843 .correo, 1844 .premium, 1845 .telefono2, 1846 .ubicacion, 1847 .trabajo, 1848 .telefonoTrabajo, 1849 .trabajo2, 1850 .telefonoTrabajo2, 1851 .horarios{ 1852 display: none; 1853 } 1854 .detail { 1855 box-shadow: inset 0 1px 3px #dbdbdb; 1856 background: #fafafa; 1857 } 1858 1859 .detail-container { 1860 margin: 16px; 1861 line-height: 2.5; 1862 } 1863 1864 h5 { 1865 font-size: 14px; 1866 margin-bottom: .8888em; 1867 color: #363636; 1868 font-weight: 600; 1869 line-height: 1.125; 1870 } 1871 1872 .small-header { 1873 font-size: 65%; 1874 color: #7a7a7a; 1875 } 1876 1877 h3{ 1878 margin-top: 8px; 1879 text-align: center; 1880 font-weight: 400; 1881 color: #5a6466; 1882 font-size: 20px; 1883 } 1884 1885 .table-filter { 1886 border: 0; 1887 background-image: linear-gradient(#00afec, #00afec), linear-gradient(#bfc8ca, #bfc8ca); 1888 background-size: 0 2px, 100% 1px; 1889 background-repeat: no-repeat; 1890 background-position: center bottom, center calc(100% - 1px); 1891 background-color: transparent; 1892 transition: background 0 ease-out; 1893 box-shadow: none; 1894 width: 100%; 1895 margin-bottom: 8px; 1896 padding: 10px; 1897 } 1898 1899 .table-filter:focus { 1900 box-shadow: none; 1901 outline: none; 1902 background-image: linear-gradient(#00A8E6, #00A8E6), linear-gradient(#00A8E6, #00A8E6); 1903 } 1904 1905 .currentTrabajo2{ 1906 display: block; 1907 margin-left: 70px; 1908 line-height: 1; 1909 } 1910 1911 .small-horario-direccion{ 1912 padding-left: 12px; 1913 } 1914 1915 @media only screen and (max-width: 760px) and (max-width: 1024px) { 1916 1917 table, 1918 thead, 1919 tbody, 1920 th, 1921 td, 1922 tr { 1923 display: block; 1924 } 1925 1926 thead tr { 1927 position: absolute; 1928 top: -9999px; 1929 left: -9999px; 1930 } 1931 1932 tr { 1933 overflow-wrap: break-word; 1934 box-shadow: 0 2px 3px rgb(10 10 10 / 10%), 0 0 0 1px rgb(10 10 10 / 10%); 1935 max-width: 100%; 1936 position: relative; 1937 display: block; 1938 margin-bottom: 1rem; 1939 } 1940 1941 td { 1942 border: none; 1943 border-bottom: 1px solid #eee; 1944 position: relative; 1945 color: #363636; 1946 1947 } 1948 1949 td:before { 1950 display: block; 1951 font-weight: 600; 1952 } 1953 1954 td.icon { 1955 padding: 0; 1956 height: 25px; 1957 } 1958 1959 td:nth-of-type(1):before { 1960 content: ""; 1961 } 1962 1963 td:nth-of-type(2):before { 1964 content: "Nombre:"; 1965 font-weight: bold; 1966 } 1967 1968 td:nth-of-type(3):before { 1969 content: "Tipo:"; 1970 font-weight: bold; 1971 } 1972 1973 td:nth-of-type(4):before { 1974 content: "Telefonos:"; 1975 font-weight: bold; 1976 } 1977 1978 td:nth-of-type(5):before { 1979 content: "Direccion:"; 1980 font-weight: bold; 1981 } 1982 1983 td:nth-of-type(6):before { 1984 content: "Correo:"; 1985 font-weight: bold; 1986 } 1987 1988 td:nth-of-type(7):before { 1989 content: ""; 1990 font-weight: bold; 1991 } 1992 1993 td:nth-of-type(8):before { 1994 content: "Ubicacion:"; 1995 font-weight: bold; 1996 } 1997 1998 .detail { 1999 margin-top: -14px; 2000 } 2001 2002 .detalle { 2003 padding: 0; 2004 } 2005 2006 .provider-detail { 2007 display: block; 2008 margin: 2; 2009 padding: 4; 2010 } 2011 2012 .header { 2013 height: 75px; 2014 line-height: 44px;
2015 } 2016 2017 .header-inner { 2018 display: flex; 2019 flex-direction: column; 2020 margin: 0; 2021 } 2022 2023 .header-inner 2024 .header-tagline { 2025 font-size: 10px; 2026 } 2027 2028 .navigation{ 2029 display: none; 2030 } 2031 2032 .toolbar li{ 2033 margin-right: auto; 2034 } 2035 2036 .card-title{ 2037 margin-left:0; 2038 margin-right:0; 2039 } 2040 2041 table{ 2042 font-size: 10px; 2043 } 2044 2045 .provider-detail-telefono{ 2046 margin-right: -10px; 2047 } 2048 2049 .currentTrabajo2{ 2050 margin: 0; 2051 } 2052 2053 } 2054 `; 2055 let header = document.createElement('header'); 2056 header.classList.add('main-header'); 2057 header.innerHTML = 2058 ` 2059 <div class="header"> 2060 <div class="header-inner"> 2061 <span class="header-tagline"> 2062 <a href="https://goo.gl/maps/QpfDzhEVtmCn4dfG6" target="_blank"> 2063 <i class="fas fa-map-marker-alt"></i> 2064 Av. A. Lincoln No. 849, Ens. Piantini, Santo Domingo, Rep. Dom. 2065 </a> 2066 </span> 2067 <ul class="toolbar"> 2068 <li class="toolbar-item"> 2069 <a href="https://www.facebook.com/ARSYunenRD/" class="item-toolbar" target="_blank"> 2070 <i class="header-icon fab fa-facebook-square"></i> 2071 </a> 2072 </li> 2073 <li class="toolbar-item"> 2074 <a href="https://www.instagram.com/arsyunenrd/" class="item-toolbar" target="_blank"> 2075 <i class="header-icon fab fa-instagram-square"></i> 2076 </a> 2077 </li> 2078 <li class="toolbar-item"> 2079 <a href="https://www.linkedin.com/company/ars-yun%C3%A9n/posts/?feedView=all" class="item-toolbar" target="_blank"> 2080 <i class="header-icon fab fa-linkedin"></i> 2081 </a> 2082 </li> 2083 <li class="toolbar-item"> 2084 <a href="mailto:[email protected]" class="item-toolbar" target="_blank"> 2085 <i class="header-icon fas fa-envelope"></i> 2086 </a> 2087 </li> 2088 </ul> 2089 </div> 2090 </div> 2091 <nav class="navbar"> 2092 <div class="navbar-inner"> 2093 <div class="navigation-brand"> 2094 <a href="http://www.arsyunen.com"> 2095 <div class="logo"> 2096 <img src="https://servicios.arsyunen.com/Img/logo%20yu
2096nen%20grande.png" class="logo-yunen" alt=""> 2097 </div> 2098 </a> 2099 <a href="tel:809-334-3030"> 2100 <div class="phone"> 2101 <img src="https://servicios.arsyunen.com/Img/phone.jpg" alt=""> 2102 </div> 2103 </a> 2104 <ul class="navigation"> 2105 <li class="navigation-item active"> 2106 <a href="http://www.arsyunen.com" class="enlace-navigation">home</a> 2107 </li> 2108 </ul> 2109 </div> 2110 </div> 2111 </nav> 2112 `; 2113 2114 let divPrincipal = document.createElement('div'); 2115 let headerText = document.createElement('h3'); 2116 headerText.innerText = "Prestadores de Servicio de Salud"; 2117 divPrincipal.appendChild(headerText); 2118 divPrincipal.classList.add('card-title'); 2119 2120 let inputSearch = document.createElement('input'); 2121 inputSearch.type = 'text'; 2122 inputSearch.id = "buscar"; 2123 inputSearch.classList.add('table-filter'); 2124 inputSearch.setAttribute('data-table', 'tabla'); 2125 inputSearch.setAttribute('placeholder', 'Buscar...'); 2126 2127 divPrincipal.appendChild(inputSearch); 2128 let divCard = document.createElement('div'); 2129 divCard.classList.add('card'); 2130 2131 divPrincipal.appendChild(divCard); 2132 let tabla = document.createElement('table'); 2133 tabla.classList.add('tabla'); 2134 let thead = document.createElement('thead'); 2135 thead.innerHTML = 2136 ` 2137 <tr> 2138 <th></th> 2139 <th>Nombre</th> 2140 <th>Tipo</th> 2141 <th>Telefonos</th> 2142 </tr> 2143 `; 2144 2145 let tbody = document.createElement('tbody'); 2146 let divDoctores = document.createElement('div'); 2147 let ul = document.createElement('ul'); 2148 2149 2150 2151 for (let i = 0; i < this.getFilteredData().length; i++) { 2152 this.healthProviders.forEach((item, index) => { 2153 if (item.Medicos != null) { 2154 } 2155 2156 }); 2157 2158 tbody.innerHTML += 2159 ` 2160 <tr id=${i}> 2161 <td class="icon"><a href="#"><span class="iconify" data-icon="mdi-chevron-right" data-inline="false"></a></td> 2162 <td class="enlace"> <span class="tdNombre"> <a href="#"> ${this.getFilteredData()[i].NOMBRE}</a> </span></td> 2163 <td>${this.getFilteredData()[i].TIPO}</td> 2164 <td><a id="telefono" href="tel:${this.getFilteredData()[i].TELEFONO}">${this.getFilteredData()[i].TELEFONO}</a></td> 2165 <td class="telefono2"><a id="telefono" href="tel:${this.getFilteredData()[i].TELEFONO_2}">${this.getFilteredData()[i].TELEFONO_2}</a></td> 2166 <td class="direccion">${this.getFilteredData()[i].DIRECCION}, ${this.getFilteredData()[i].MUNICIPIO}, ${this.getFilteredData()[i].PROVINCIA}</td> 2167 <td class="correo">${this.getFilteredData()[i].CORREO}</td> 2168 <td class="premium">${this.getFilteredData()[i].PREMIUM}</td> 2169 <td class="ubicacion">${this.getFilteredData()[i].UBICACION}</td> 2170 <td class="trabajo">${this.getFilteredData()[i].TRABAJA_EN}</td> 2171 <td class="telefonoTrabajo">${this.getFilteredData()[i].TELEFONO_TRABAJO}</td> 2172 <td class="trabajo2">${this.getFilteredData()[i].CENTRO_TRABAJO2}</td> 2173 <td class="telefonoTrabajo2">${this.getFilteredData()[i].TELEFONO_TRABAJO2}</td> 2174 <td class="horarios">${this.getFilteredData()[i].HORARIOS}</td> 2175 </tr> 2176 ` 2177 } 2178 2179 divDoctores.appendChild(ul); 2180 divPrincipal.appendChild(divDoctores); 2181 2182 let script = document.createElement('script'); 2183 script.setAttribute('src', "https://code.iconify.design/1/1.0.7/iconify.min.js"); 2184 2185 let script2 = document.createElement('script'); 2186 2187 script2.textContent = 2188 ` 2189 let evento = document.addEventListener('click', function MostrarDetalles(e) { 2190 2191 let elementoLink = e.target.parentElement.parentElement.parentElement;
2192 let elementosClases = document.getElementsByClassName(elementoLink.id); 2193 if (elementoLink.children[0].classList.contains('icon') || elementoLink.children[1].classList.contains('enlace')) { 2194 e.preventDefault(); 2195 let elemento = e.target.parentElement.parentElement.parentElement; 2196 let idElemento = elemento.id; 2197 let element = document.getElementById(idElemento); 2198 2199 let trOpen = document.getElementsByClassName('is-open'); 2200 if (idElemento != '' || idElemento != null) { 2201 if (trOpen[0]?.id == idElemento) { 2202 trOpen[0].remove(); 2203 trOpen[1].remove(); 2204 } 2205 2206 if(trOpen[1]?.id == idElemento){ 2207 trOpen[1].remove(); 2208 trOpen[2].remove(); 2209 } 2210 2211 if(trOpen[2]?.id == idElemento){ 2212 trOpen[2].remove(); 2213 trOpen[3].remove(); 2214 } 2215 2216 if(trOpen[3]?.id == idElemento){ 2217 trOpen[3].remove(); 2218 trOpen[4].remove(); 2219 } 2220 2221 if(trOpen[4]?.id == idElemento){ 2222 trOpen[4].remove(); 2223 trOpen[5].remove(); 2224 } 2225 2226 if(trOpen[5]?.id == idElemento){ 2227 trOpen[5].remove(); 2228 trOpen[6].remove(); 2229 } 2230 2231 if(trOpen[6]?.id == idElemento){ 2232 trOpen[6].remove(); 2233 trOpen[7].remove(); 2234 } 2235 2236 if(trOpen[7]?.id == idElemento){ 2237 trOpen[7].remove(); 2238 trOpen[8].remove(); 2239 } 2240 2241 if(trOpen[9]?.id == idElemento){ 2242 trOpen[9].remove(); 2243 trOpen[10].remove(); 2244 } 2245 2246 if(trOpen[10]?.id == idElemento){ 2247 trOpen[10].remove(); 2248 trOpen[11].remove(); 2249 } 2250 2251 2252 if(trOpen[11]?.id == idElemento){ 2253 trOpen[11].remove(); 2254 trOpen[12].remove(); 2255 } 2256 2257 if(trOpen[12]?.id == idElemento){ 2258 trOpen[12].remove(); 2259 trOpen[13].remove(); 2260 } 2261 2262 if(trOpen[14]?.id == idElemento){ 2263 trOpen[14].remove(); 2264 trOpen[15].remove(); 2265 } 2266 2267 if(trOpen[15]?.id == idElemento){ 2268 trOpen[15].remove(); 2269 trOpen[16].remove(); 2270 } 2271 2272 if(trOpen[16]?.id == idElemento){ 2273 trOpen[16].remove(); 2274 trOpen[17].remove(); 2275 } 2276 2277 if(trOpen[17]?.id == idElemento){ 2278 trOpen[17].remove(); 2279 trOpen[18].remove(); 2280 } 2281 if(trOpen[18]?.id == idElemento){ 2282 trOpen[18].remove(); 2283 trOpen[19].remove(); 2284 } 2285 if(trOpen[20]?.id == idElemento){ 2286 trOpen[20].remove(); 2287 trOpen[21].remove(); 2288 } 2289
2290 ShowDetails(idElemento); 2291 } 2292 } 2293 2294 }); 2295 function ShowDetails(elem) { 2296 2297 let elementoHtml = document.getElementById(elem); 2298 let currentNombre = elementoHtml.children[1].textContent; 2299 let currentTipo = elementoHtml.children[2].textContent; 2300 let currentTelefono1 = elementoHtml.children[3].textContent; 2301 let currentTelefono2 = elementoHtml.children[4].textContent; 2302 let currentDireccion = elementoHtml.children[5].textContent; 2303 let currentCorreo = elementoHtml.children[6].textContent; 2304 let currentPremium = elementoHtml.children[7].textContent; 2305 let currentLocation = elementoHtml.children[8].textContent; 2306 let currentTrabajo = elementoHtml.children[9].textContent; 2307 let currentTelefonoTrabajo = elementoHtml.children[10].textContent; 2308 let currentTrabajo2 = elementoHtml.children[11].textContent; 2309 let currentTelefonoTrabajo2 = elementoHtml.children[12].textContent; 2310 let currentHorarios = elementoHtml.children[13].textContent; 2311 2312 let trDetails = document.createElement('tr'); 2313 trDetails.classList.add('detail', 'is-open'); 2314 trDetails.id = elem; 2315 trDetails.classList.add(elem); 2316 let td = document.createElement('td'); 2317 td.setAttribute('colspan', 4); 2318 td.classList.add('detalle'); 2319 let divDetailContainer = document.createElement('div'); 2320 divDetailContainer.classList.add('detail-container'); 2321 let divProviderDetails = document.createElement('div'); 2322 divProviderDetails.classList.add('provider-details'); 2323 2324 let media = document.createElement('article'); 2325 media.classList.add('media'); 2326 2327 let divMediaContent = document.createElement('div'); 2328 divMediaContent.classList.add('media-content'); 2329 2330 let divContent = document.createElement('div'); 2331 divContent.classList.add('content'); 2332 2333 let divContentPadre = document.createElement('div'); 2334 let divContentHijo = document.createElement('div'); 2335 2336 let h5 = document.createElement('h5'); 2337 h5.textContent = currentNombre; 2338 let smallH5 = document.createElement('small'); 2339 smallH5.textContent = currentTipo; 2340 smallH5.classList.add('small-header'); 2341 h5.appendChild(smallH5); 2342 divContentHijo.appendChild(h5); 2343 2344 2345 if(currentHorarios != ''){ 2346 if(currentHorarios != 'undefined'){ 2347 let spanPadre = document.createElement('span'); 2348 spanPadre.style.display = 'flex'; 2349 spanPadre.classList.add('provider-detail', 'is-capitalized'); 2350 let small = document.createElement('small'); 2351 small.style.lineHeight = "1.5"; 2352 let strong = document.createElement('strong'); 2353 strong.textContent = "Direccion: "; 2354 let contenido = document.createElement('span'); 2355 contenido.textContent = currentDireccion; 2356 small.appendChild(strong); 2357 small.appendChild(contenido); 2358 2359 let smallHorario = document.createElement('small'); 2360 smallHorario.classList.add('small-horario-direccion'); 2361 smallHorario.style.lineHeight = "1.5" 2362 let strongHorario = document.createElement('strong'); 2363 strongHorario.textContent = "Horarios: " 2364 let contenidoHorario = document.createElement('span'); 2365 contenidoHorario.textContent = currentHorarios; 2366 smallHorario.appendChild(strongHorario); 2367 smallHorario.appendChild(contenidoHorario); 2368 2369 2370 spanPadre.appendChild(small); 2371 spanPadre.appendChild(smallHorario); 2372 divContentHijo.appendChild(spanPadre); 2373 } 2374 } 2375 else{ 2376 divContentHijo.appendChild(CreateElement('Direccion: ', currentDireccion)) 2377 } 2378 2379 if(currentTrabajo != ''){ 2380 if(currentTrabajo != 'undefined'){ 2381 let spanPadre = document.createElement('span'); 2382 spanPadre.style.display = 'block'; 2383 spanPadre.classList.add('provider-detail', 'is-capitalized'); 2384 let small = document.createElement('small'); 2385 2386 let strong = document.createElement('strong'); 2387 strong.textContent = "Trabaja En: "; 2388 let contenido = document.createElement('span'); 2389 2390 let spanTrabajo1 = document.createElement('span'); 2391 spanTrabajo1.textContent = currentTrabajo; 2392 let telefonoTrabajo1 = document.createElement('a'); 2393 telefonoTrabajo1.href = 'tel:'+currentTelefonoTrabajo; 2394 telefonoTrabajo1.textContent = currentTelefonoTrabajo; 2395 telefonoTrabajo1.id = "telefono"; 2396 2397 spanTrabajo1.appendChild(telefonoTrabajo1); 2398 let spanTrabajo2 = document.createElement('span'); 2399 if(currentTrabajo2 != 'undefined'){ 2400 spanTrabajo2.classList.add('currentTrabajo2'); 2401 spanTrabajo2.textContent = 'y ' + currentTrabajo2; 2402 let telefonoTrabajo2 = document.createElement('a'); 2403 telefonoTrabajo2.href = 'tel:'+currentTelefonoTrabajo2; 2404 telefonoTrabajo2.textContent = currentTelefonoTrabajo2; 2405 telefonoTrabajo2.id = "telefono"; 2406 spanTrabajo2.appendChild(telefonoTrabajo2); 2407 } 2408 2409 contenido.appendChild(spanTrabajo1); 2410 contenido.appendChild(spanTrabajo2); 2411 2412 small.appendChild(strong); 2413 small.appendChild(contenido) 2414 spanPadre.appendChild(small); 2415 divContentHijo.appendChild(spanPadre); 2416 } 2417 2418 } 2419 2420 divContentHijo.appendChild(CreateLink('Telefonos: ', currentTelefono1, 'phone')); 2421 2422 if (currentTelefono2 != undefined || currentTelefono2 != '' || currentTelefono2 != '(') { 2423 if (currentTelefono2?.length != 0) { 2424 if (currentTelefono2?.length != 1) { 2425 divContentHijo.appendChild(CreateLink(' / ', currentTelefono2, 'ph
2425one')); 2426 } 2427 } 2428 } 2429 2430 if (currentCorreo != 'undefined') { 2431 divContentHijo.appendChild(CreateLink('Correo: ', currentCorreo, 'mail')); 2432 divContentHijo.appendChild(CreateElement(currentPremium == "SI" ? "PREMIUM" : ""), ''); 2433 } 2434 2435 if(currentLocation != ''){ 2436 divContentHijo.appendChild(CreateLink('', currentLocation, '')); 2437 } 2438 2439 divContentPadre.appendChild(divContentHijo); 2440 2441 divContent.appendChild(divContentPadre); 2442 2443 divMediaContent.appendChild(divContent); 2444 media.appendChild(divMediaContent); 2445 divProviderDetails.appendChild(media); 2446 divDetailContainer.appendChild(divProviderDetails); 2447 td.appendChild(divDetailContainer); 2448 trDetails.appendChild(td); 2449 elementoHtml.after(trDetails); 2450 } 2451 2452 function CreateElement(header, value) { 2453 let spanPadre = document.createElement('span'); 2454 spanPadre.style.display = 'block'; 2455 spanPadre.classList.add('provider-detail', 'is-capitalized'); 2456 let small = document.createElement('small'); 2457 let strong = document.createElement('strong'); 2458 strong.textContent = header; 2459 let contenido = document.createElement('span'); 2460 contenido.textContent = value; 2461 small.appendChild(strong); 2462 small.appendChild(contenido) 2463 spanPadre.appendChild(small); 2464 2465 return spanPadre; 2466 } 2467 2468 function CreateLink(header, value, type) { 2469 let spanPadre = document.createElement('span'); 2470 spanPadre.style.display = 'block'; 2471 spanPadre.classList.add('provider-detail', 'is-capitalized'); 2472 let small = document.createElement('small'); 2473 let strong = document.createElement('strong'); 2474 strong.textContent = header; 2475 2476 let contenido = document.createElement('span'); 2477 let link = document.createElement('a'); 2478 if (type == 'mail') { 2479 link.href = "mailto:" + value; 2480 link.textContent = value; 2481 link.id = 'correo'; 2482 2483 } else if (type == 'phone') { 2484 link.href = "tel:" + value; 2485 link.textContent = value; 2486 link.id = "telefono"; 2487 spanPadre.style.display = 'inline'; 2488 spanPadre.classList.add('provider-detail-telefono'); 2489 } 2490 else { 2491 link.href = value; 2492 link.target = '_blank'; 2493 link.textContent = "Ver Mapa"; 2494 link.id = "ubicacion" 2495 } 2496 2497 contenido.appendChild(link); 2498 small.appendChild(strong); 2499 small.appendChild(contenido) 2500 spanPadre.appendChild(small); 2501 return spanPadre 2502 } 2503 2504 (function () { 2505 //'use strict'; 2506 var TableFilter = (function () { 2507 var Arr = Array.prototype; 2508 var input; 2509 2510 function onInputEvent(e) { 2511 input = e.target; 2512 var table1 = document.getElementsByClassName(input.getAttribute('data-table'));
2513 Arr.forEach.call(table1, function (table) { 2514 Arr.forEach.call(table.tBodies, function (tbody) { 2515 Arr.forEach.call(tbody.rows, filter); 2516 }); 2517 }); 2518 } 2519 2520 function filter(row) { 2521 var text = row.textContent.toLowerCase(); 2522 var val = input.value.toLowerCase(); 2523 row.style.display = text.indexOf(val) === -1 ? 'none' : ''; 2524 } 2525 2526 return { 2527 init: function () { 2528 var inputs = document.getElementsByClassName('table-filter'); 2529 Arr.forEach.call(inputs, function (input) { 2530 input.oninput = onInputEvent; 2531 }); 2532 } 2533 }; 2534 2535 })(); 2536 2537 TableFilter.init(); 2538 })(); 2539 2540 `; 2541 2542 2543 2544 tabla.appendChild(thead); 2545 tabla.appendChild(tbody); 2546 2547 divCard.appendChild(tabla); 2548 head.appendChild(style); 2549 body.appendChild(header); 2550 body.appendChild(divPrincipal); 2551 dom.documentElement.appendChild(head); 2552 dom.documentElement.appendChild(body); 2553 body.appendChild(script); 2554 body.appendChild(script2); 2555 2556 let a = window.document.body.appendChild(window.document.createElement('a')); 2557 a.download = "ProveedoresPss.html"; 2558 a.href = a.href = "data:text/html," + window.encodeURIComponent(dom.documentElement.innerHTML); 2559 a.click(); 2560 this.loading = false; 2561 }, 2562 showItems(event) { 2563 event.preventDefault(); 2564 this.isActive = !this.isActive; 2565 }, 2566 evaluateQueryStringParams() { 2567 const params = new URL(window.location.href).searchParams; 2568 let result = params.get("consultainterna") == 1; 2569 this.showInternalOptions = result; 2570 return result; 2571 }, 2572 showErrors(source, errorMessage) { 2573 return `SOURCE: ${source} MESSAGE: ${errorMessage}`; 2574 }, 2575 labelName({ label, co }) { 2576 return `${label}` 2577 } 2578 } 2579 }); 2580 </script>
2580 2581</body> 2582</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.