Commit 6ccf3f6a by 莫晓莉

头部模板

parent b1223e4c
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1611649705171" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6268" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M501.746542 436.897884C501.79459 436.823176 501.864135 436.757331 501.91092 436.681356 501.72631 435.800052 501.57584 435.030176 501.508824 434.481893 501.592278 435.283424 501.678261 436.090022 501.746542 436.897884L501.746542 436.897884ZM673.119276 624.28533C673.125598 624.28533 673.125598 624.277733 673.125598 624.273934 673.102838 624.262538 673.024441 624.262538 673.008003 624.237213 673.033293 624.262538 673.093987 624.262538 673.119276 624.28533L673.119276 624.28533ZM677.508196 624.83488C676.447319 624.663937 674.063823 624.974166 673.12054 624.28533 672.538892 626.296124 673.416423 627.054603 677.508196 624.83488L677.508196 624.83488ZM510.581283 65.959706C264.148021 65.959706 64.383234 266.007046 64.383234 512.786337 64.383234 759.560562 264.148021 959.616766 510.581283 959.616766 757.005692 959.616766 956.778067 759.561828 956.778067 512.786337 956.778067 266.007046 757.005692 65.959706 510.581283 65.959706L510.581283 65.959706ZM795.585453 240.506186C780.210955 240.97343 769.508615 241.002553 757.157427 249.538294 752.180536 252.983741 748.801914 257.546013 742.485966 259.320019 736.822475 260.91675 730.710104 259.517552 725.092134 261.425781 704.819141 268.315407 708.030854 311.799444 681.317996 305.231444 668.770818 302.148143 659.927226 287.298916 653.611277 277.60203 648.048944 269.071353 637.918136 262.01585 644.760099 251.338892 641.639425 252.140423 638.311382 251.227462 635.237495 251.812466 639.517671 242.403017 653.869226 243.224809 656.256515 238.41562 662.203243 226.362256 639.884363 225.10361 633.564621 223.432171 641.182957 215.301627 645.038278 226.167254 652.557986 224.322339 659.783078 222.540736 648.744393 213.010994 644.411109 211.941018 642.854566 211.554815 617.411219 218.982594 632.138317 205.784547 613.957996 194.179434 595.786525 182.578119 577.60241 170.964141 574.542431 183.876017 601.799004 191.213893 610.702026 195.763502 609.319978 201.09565 601.037803 208.858984 594.696565 206.586079 588.723284 204.441063 591.148507 194.530182 582.129156 195.525449 575.689291 210.519028 595.744798 206.136562 597.608603 215.324419 599.725299 225.793713 590.026936 221.356798 586.296796 221.175726 585.407886 221.130141 578.455917 213.923954 578.080374 219.378928 577.630227 225.857025 589.168372 223.330871 589.98268 229.873546 576.542798 230.418031 569.679341 225.559458 558.738018 218.279829 545.968296 209.793472 539.415894 210.558282 523.770803 210.558282 528.449284 208.633593 534.895471 207.206538 538.896204 204.106776 541.081181 202.413809 549.657973 194.066738 550.223184 192.202829 552.647142 184.162189 550.091681 184.772517 542.408857 179.501149 535.579541 174.822383 527.297366 166.423396 519.021514 164.768416 489.040042 158.77529 509.774561 191.876138 487.015651 196.440943 487.405102 196.461202 487.826165 196.47893 488.161246 196.47893L486.857594 196.47893C486.915759 196.475131 486.962544 196.453605 487.015651 196.440943 481.750464 196.252272 471.882663 194.969568 468.490133 197.755302 466.095257 199.712914 465.894209 207.578813 463.217359 210.426593 458.452896 215.513089 451.350457 216.528616 445.665471 220.195654 440.117047 223.779121 427.882188 232.970777 424.62369 239.207021 412.61264 262.185526 451.685537 269.318271 466.499882 276.035687 473.192638 279.070871 492.752479 283.226679 496.395371 288.297981 501.281222 295.107834 492.18474 301.493495 502.386355 306.281159 505.644854 307.805715 512.364163 308.117211 515.171251 304.957936 519.732137 299.810659 513.317561 298.649514 512.225073 292.704505 510.109641 281.260205 513.595742 285.807282 519.343949 281.555239 531.057853 272.89414 528.420202 272.363584 524.205775 258.562805 522.2484 252.139157 514.865253 234.206629 521.35949 229.46455 529.827539 223.277689 547.889002 232.817561 554.381974 233.615294 561.938352 234.542183 566.22991 245.027938 570.348236 249.316703 573.08325 252.164481 577.975424 258.206992 582.753796 257.55361 590.339256 256.512759 587.165476 249.872582 591.564513 246.809542 603.366927 238.611887 606.476221 249.747225 611.179989 260.883828 615.604315 271.344259 619.792187 275.226559 627.667207 281.936378 631.325273 285.060199 647.354758 296.206933 645.842471 303.077565 644.816998 307.705682 626.506438 314.725731 621.609207 316.27941 603.710858 321.955976 570.134543 306.98519 566.528321 335.409804 573.472703 332.820338 593.226005 316.66055 599.149973 324.320052 601.850847 327.794621 597.006723 332.855793 598.147261 336.306304 601.527147 346.652772 609.495737 343.047779 617.85125 341.376339 617.282245 341.732154 616.698068 342.042383 616.081014 342.318423 627.49777 336.443058 626.311713 337.667515 631.550345 328.137773 633.261152 325.024082 635.805234 317.488673 638.215283 315.260085 646.513896 307.615779 647.792259 312.87955 652.93353 318.777707 654.280174 320.332653 666.990466 338.660249 662.466249 337.746022 647.680987 334.776683 633.48496 335.174283 621.223549 343.270638 614.159043 347.94434 607.476404 354.248962 599.038701 357.352523 597.016839 358.092008 582.040643 359.512732 583.81088 356.956189 586.395424 353.227104 595.289594 350.759197 598.799719 346.733812 589.072274 342.722356 580.959536 351.579723 573.31591 356.758655 565.204437 360.601701 563.319136 367.762303 556.412687 374.0416 553.398229 376.779217 547.696805 377.245194 544.736718 380.847654 541.865142 384.34375 541.508566 389.84051 538.787461 393.159332 536.879399 395.482887 531.985962 394.07989 529.993182 397.58105 527.397258 402.157251 532.369092 406.404229 531.279132 409.700259 529.282559 415.689586 517.90753 420.771018 513.532518 425.083841 514.116696 424.521629 514.697081 423.941689 515.268614 423.35542 510.884752 427.962009 505.337591 431.349209 501.91345 436.68009 503.485166 444.20537 508.440562 462.153093 507.058513 466.283576 502.498892 479.869094 493.642655 458.893784 490.05034 453.475532 477.709268 434.854168 453.043561 447.315262 436.193446 448.860078 414.644617 450.83415 393.537084 478.840905 406.830292 501.573759 413.210727 512.476107 423.944678 516.69776 436.256668 514.174139 447.215692 511.927824 450.505802 496.575899 460.823747 496.296059 479.786766 495.789562 461.242282 514.903495 459.601021 521.918478 458.083675 528.416835 461.965549 529.017034 468.644396 530.627695 473.577032 531.809099 480.561877 528.514336 484.838261 531.334258 487.531548 533.115862 487.40131 542.864664 491.107424 539.790227 483.814053 545.844133 485.517272 560.199526 492.995254 565.387321 501.28628 571.147459 511.047866 565.814045 519.728344 568.024905 536.116934 572.212369 528.293756 566.773857 542.685773 558.073504 552.39931 552.210801 553.992522 559.177668 560.630907 559.205525 565.148801 559.223252 568.019112 552.69957 575.574226 554.597668 581.732117 556.152614 584.164926 560.91242 591.517728 562.00772 594.532186 562.452171 597.644008 560.8719 600.519376 561.189728 614.117317 562.702887 624.528832 571.40324 635.245081 579.271672 644.076029 585.74597 649.925394 584.434143 660.24081 587.387021 667.776957 589.538367 681.682159 600.45971 680.970272 610.048965 680.842562 611.764724 674.254756 620.387836 673.129391 624.271402 675.057684 625.608554 688.469749 622.607559 692.394615 622.325187 691.104871 623.828217 681.971719 630.254399 681.971719 626.841875 681.971719 628.591821 688.434345 632.182886 690.008589 633.298445 694.771789 617.809766 702.596231 627.776362 712.013885 631.613076 720.020408 634.878716 729.875564 635.053458 738.415688 637.090843 745.664803 638.819264 761.651297 643.720889 767.022698 649.653236 773.489116 656.793578 769.019271 668.394893 764.234577 675.49978 757.975528 684.811728 748.538908 688.393928 744.634273 699.350725 741.549005 708.034617 743.865485 716.808413 742.102836 726.435655 739.71934 739.467824 737.80875 734.899221 729.427948 742.851224 722.376087 749.548382 729.310353 748.384705 719.709353 752.653209 710.065362 756.944505 701.573288 755.668133 694.896969 766.264051 695.163769 765.598007 695.381256 764.929431 695.56713 764.232997 692.749926 768.181142 691.341324 776.266101 690.006061 778.918879 686.640084 785.688212 681.997008 789.957983 676.672391 795.595295 674.632828 797.754238 655.87465 823.417177 654.791013 821.354468 653.397585 818.673833 638.607264 824.047766 637.902963 820.223714 638.490935 823.437438 637.762609 822.359865 641.435848 824.212378 638.034467 845.302915 629.126387 848.449528 608.444975 848.662257 610.224063 858.798529 600.950555 856.776339 596.641296 862.226248 594.121238 865.408316 592.918743 874.356853 591.172531 878.478472 590.081308 881.066672 582.007768 891.438465 582.007768 893.493577 581.998917 895.38661 584.723816 898.15968 587.27422 900.820057 572.693799 903.70709 557.827612 905.721682 542.728764 906.948671 545.554819 903.382932 546.235096 900.248981 537.232183 899.819725 539.640968 893.264387 545.298136 889.525172 547.69554 883.174966 548.832285 880.179035 547.891531 878.995098 548.85378 876.02576 552.147684 865.779325 550.71885 869.645163 548.861367 861.685562 544.51038 843.03001 550.409059 837.928318 555.487107 820.847972 560.700452 803.295316 560.214901 780.542202 563.555589 761.634668 565.13995 752.587364 567.735874 733.760869 564.597499 725.208666 561.062085 715.576359 545.510564 707.990299 538.387893 701.513468 528.303871 692.312949 522.943851 682.371678 515.455753 670.999553 511.654804 665.224221 507.322784 659.556519 504.35764 653.277222 498.015137 639.849985 504.361432 647.841242 505.428632 639.917096 506.451576 632.25886 504.518225 625.41482 507.554179 617.377977 510.912569 608.492752 519.295901 602.955474 522.049881 593.995541 524.528212 586.019478 522.64291 575.99337 514.460628 573.332994 509.901006 571.842626 504.869743 575.276676 500.287361 574.523262 493.899339 573.486209 486.666661 568.709942 481.653101 564.890954 474.654347 559.551209 472.030605 550.873648 464.577912 545.809945 458.337831 541.590823 453.899596 544.115712 447.224543 542.141639 440.263723 540.087794 435.965844 531.487474 430.350402 528.794176 421.92408 524.757395 417.176055 530.552987 408.28062 529.381712 400.715391 528.390244 389.177247 519.99379 382.108948 516.821851 367.735898 510.379209 358.983347 503.267991 353.235138 488.660616 348.313882 476.133677 341.138105 470.289968 332.689023 459.857395 324.127404 449.285536 321.446761 440.277486 308.250917 437.460096 306.701961 437.123275 311.480333 448.557446 311.97347 449.474205 316.68862 458.217611 323.769563 466.203803 329.464664 474.344477 337.844203 486.335795 334.27212 488.585908 325.748434 476.990924 316.000757 463.725766 304.690215 450.536583 296.23481 436.488888 293.038269 431.179532 293.65153 427.746749 288.380021 422.705837 283.285535 417.835867 276.619332 415.462928 271.489442 410.831014 253.032205 394.209046 249.676343 372.019411 251.78166 348.324213 252.464465 340.600133 255.251322 334.422135 254.022273 326.998154 253.008181 320.832819 249.37414 315.736193 244.833484 311.19418 243.37051 308.860495 239.697271 303.11302 239.484843 302.747076 235.294442 295.77641 232.034679 288.922239 225.378593 283.205154 221.559941 279.91039 211.678233 272.210369 202.374379 265.760128 244.174704 213.552946 298.871197 172.179734 361.617205 146.49147 362.115399 149.650746 363.470894 152.80369 365.501608 155.822412 370.66058 163.484446 375.576778 162.877916 385.64689 164.998873 384.568312 176.704019 370.905884 176.796454 361.657667 175.527679 350.618983 174.009454 339.004971 170.337352 329.441904 180.025374 334.724794 183.206175 349.220496 195.591294 347.294732 182.650294 357.869363 182.119739 368.09121 181.804444 378.436974 183.070687 382.581854 183.579716 396.470618 188.247087 400.234899 186.118533 401.814202 185.224566 403.49719 177.420712 405.170063 175.019917 402.220091 175.036377 399.058956 173.54601 396.121629 173.828382 402.972442 165.044457 409.797965 171.93535 418.516377 175.974664 408.917905 181.815841 414.610478 195.815419 423.995256 184.440761 431.703369 175.087027 422.10869 168.306298 412.320551 162.85639 422.19088 150.494063 428.276698 149.378503 437.564114 163.33123 439.094103 154.725846 446.029634 158.171292 453.27875 158.806946L453.27875 156.654333C450.087268 156.731574 446.680827 154.89299 443.522222 155.224746 450.906633 143.427163 446.194014 140.731333 456.75094 136.880689 465.157032 133.815115 489.139934 136.669226 492.094963 128.753943 475.310598 132.022116 455.032548 132.803388 439.889445 140.446428 433.361068 143.741191 425.583411 154.14464 419.06262 147.382905 412.378716 140.446428 423.842257 129.292097 429.70806 125.892235L428.304516 125.892235C454.860581 120.23593 482.364988 117.19948 510.582547 117.19948 528.815976 117.19948 546.734555 118.550561 564.323112 120.956421 558.237294 124.157483 562.737487 126.318959 558.304311 129.589664 549.83879 135.825909 534.810753 141.0289 524.735582 144.969446 537.541973 144.935257 568.542596 156.994952 574.508291 139.005444 570.373526 138.369789 566.25014 137.731603 562.119169 137.09595 569.836132 131.971465 578.444536 127.824521 587.48159 124.784273 669.035089 140.963055 741.574294 182.386916 796.756337 240.513783 796.358035 240.506186 795.966053 240.496056 795.585453 240.506186L795.585453 240.506186ZM867.799693 397.386049C868.534341 395.815908 870.250206 395.298015 870.9583 394.002649 872.449091 391.278961 872.11654 389.431513 873.951263 387.094029 875.916225 384.566609 878.567785 383.947416 880.760349 381.973344 881.645466 381.178143 882.137338 380.442456 882.543229 379.692841 889.124713 398.086281 894.370933 417.103979 898.185791 436.629441 898.070725 436.769993 898.006239 436.981455 897.862091 437.099216 896.90237 437.857696 890.649644 438.788384 889.366223 438.832702 884.836949 439.007445 881.4735 435.998852 878.221324 433.166267 874.913512 430.289364 871.018994 426.439987 868.668373 422.7147 866.158432 418.7349 867.707388 414.647469 867.888205 410.101658 868.03741 406.280138 866.179927 400.830229 867.799693 397.386049L867.799693 397.386049ZM872.905559 602.25904C865.241702 595.591007 856.199591 586.6526 850.749794 578.015559 844.929511 568.806176 848.516767 559.329616 848.942888 548.783082 849.295672 539.913052 844.96871 527.291146 848.73299 519.304953 850.461498 515.659441 854.421769 514.452712 856.052915 511.465646 859.518783 505.139497 858.749995 500.863396 863.002354 495.424884 867.564505 489.583707 873.699637 488.145256 878.781478 483.565255 884.106094 478.763664 883.958152 474.973799 887.329188 468.822393 889.794873 464.3209 895.591131 456.818413 901.078862 452.894327 904.056651 472.428652 905.608137 492.434019 905.608137 512.785071 905.608137 547.996746 900.929657 582.124516 892.264352 614.641627 884.877411 612.733399 878.801708 607.401251 872.905559 602.25904L872.905559 602.25904Z" p-id="6269" fill="#ffffff"></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1611653557514" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="20527" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M512 0a512 512 0 1 0 512 512A512 512 0 0 0 512 0z m0 955.733A443.733 443.733 0 1 1 955.733 512 443.733 443.733 0 0 1 512 955.733z" p-id="20528" fill="#ffffff"></path><path d="M753.323 318.805L439.637 632.491l-168.96-168.619A34.133 34.133 0 1 0 222.208 512l193.195 193.195a34.133 34.133 0 0 0 48.128 0l337.92-337.92a34.133 34.133 0 1 0-48.128-48.128z" p-id="20529" fill="#ffffff"></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1611650008649" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="16708" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M1008 335.2 1008 335.2l-160 144 0 0c-8.8 8-20 12.8-32 12.8-26.4 0-48-21.6-48-48 0-14.4 6.4-26.4 16-35.2l0 0 67.2-60L560 348.8c0 0 0 0 0 0L464 348.8l0 0L352 348.8 48 348.8c-26.4 0-48-21.6-48-48 0-26.4 21.6-48 48-48l124.8 0 0 0L416 252.8l0 0 208 0 0 0 227.2 0L784 192l0 0c-9.6-8.8-16-21.6-16-35.2 0-26.4 21.6-48 48-48 12 0 23.2 4.8 32 12.8l0 0 160 144 0 0c9.6 8.8 16 21.6 16 35.2C1024 314.4 1017.6 326.4 1008 335.2zM16 680.8 16 680.8l160-144 0 0c8.8-8 20-12.8 32-12.8 26.4 0 48 21.6 48 48 0 14.4-6.4 26.4-16 35.2l0 0-67.2 60L400 667.2l0 0 208 0 0 0 243.2 0 0 0L976 667.2c26.4 0 48 21.6 48 48 0 26.4-21.6 48-48 48L672 763.2 560 763.2c0 0 0 0 0 0L464 763.2l0 0L172.8 763.2 240 824l0 0c9.6 8.8 16 21.6 16 35.2 0 26.4-21.6 48-48 48-12 0-23.2-4.8-32-12.8l0 0L16 752l0 0c-9.6-8.8-16-21.6-16-35.2C0 701.6 6.4 689.6 16 680.8z" p-id="16709" fill="#ffffff"></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1611650145286" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="20151" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M540.444444 364.088889l0-68.266667-88.029867-19.5584c-3.003733-9.386667-6.826667-18.386489-11.286756-27.022222l48.469333-76.174222-48.275911-48.275911-76.174222 48.469333c-8.635733-4.460089-17.635556-8.283022-27.022222-11.286756L318.577778 73.955556l-68.266667 0-19.5584 88.029867c-9.386667 3.003733-18.386489 6.826667-27.022222 11.286756l-76.174222-48.469333-48.275911 48.275911 48.469333 76.174222c-4.460089 8.635733-8.283022 17.635556-11.286756 27.022222L28.444444 295.822222l0 68.266667 88.029867 19.5584c3.003733 9.386667 6.826667 18.386489 11.286756 27.022222l-48.469333 76.174222 48.275911 48.275911 76.174222-48.469333c8.635733 4.460089 17.635556 8.283022 27.022222 11.286756L250.311111 585.955556l68.266667 0 19.5584-88.029867c9.386667-3.003733 18.386489-6.826667 27.022222-11.286756l76.174222 48.469333 48.275911-48.275911-48.469333-76.174222c4.460089-8.635733 8.283022-17.635556 11.286756-27.022222L540.444444 364.088889zM284.444444 415.288889c-47.126756 0-85.333333-38.206578-85.333333-85.333333s38.206578-85.333333 85.333333-85.333333 85.333333 38.206578 85.333333 85.333333S331.5712 415.288889 284.444444 415.288889zM650.490311 860.182756l21.515378-52.542578-61.599289-42.8032c0.648533-8.169244 0.534756-16.304356-0.170667-24.348444l61.314844-43.360711-21.947733-52.371911-73.910044 13.312c-5.245156-6.144-10.9568-11.935289-17.237333-17.2032l12.686222-73.921422-52.542578-21.515378-42.8032 61.599289c-8.169244-0.648533-16.304356-0.534756-24.348444 0.170667l-43.360711-61.314844-52.371911 21.947733 13.312 73.910044c-6.144 5.245156-11.935289 10.9568-17.2032 17.237333l-73.921422-12.686222-21.515378 52.542578 61.599289 42.8032c-0.648533 8.169244-0.534756 16.304356 0.170667 24.348444l-61.314844 43.360711 21.947733 52.371911 73.910044-13.312c5.245156 6.144 10.9568 11.935289 17.237333 17.2032l-12.686222 73.921422 52.542578 21.515378 42.8032-61.599289c8.169244 0.648533 16.304356 0.534756 24.348444-0.170667l43.360711 61.314844 52.371911-21.947733-13.312-73.910044c6.144-5.233778 11.935289-10.9568 17.2032-17.237333L650.490311 860.182756zM437.293511 818.915556c-36.272356-14.848-53.646222-56.297244-38.798222-92.580978s56.297244-53.646222 92.580978-38.798222c36.272356 14.848 53.646222 56.297244 38.798222 92.580978C515.026489 816.401067 473.577244 833.774933 437.293511 818.915556zM988.603733 316.199822l-18.102044-55.819378-77.175467 7.350044c-4.937956-6.883556-10.467556-13.220978-16.395378-19.103289l19.433244-75.138844-52.280889-26.669511-49.436444 59.835733c-8.237511-1.353956-16.611556-2.104889-25.088-2.059378l-39.344356-66.798933-55.819378 18.102044 7.350044 77.175467c-6.883556 4.937956-13.220978 10.467556-19.103289 16.395378l-75.138844-19.433244-26.669511 52.280889 59.835733 49.436444c-1.353956 8.237511-2.104889 16.611556-2.059378 25.088L551.822222 396.174222l18.102044 55.819378 77.175467-7.350044c4.937956 6.883556 10.456178 13.220978 16.395378 19.103289l-19.433244 75.138844 52.280889 26.669511 49.436444-59.835733c8.237511 1.353956 16.611556 2.104889 25.088 2.059378l39.344356 66.798933 55.819378-18.102044-7.350044-77.175467c6.883556-4.937956 13.220978-10.467556 19.103289-16.395378l75.138844 19.433244 26.669511-52.280889-59.835733-49.436444c1.353956-8.237511 2.104889-16.611556 2.059378-25.088L988.603733 316.199822zM792.849067 425.961244c-38.536533 12.504178-79.917511-8.612978-92.410311-47.149511-12.504178-38.536533 8.612978-79.917511 47.149511-92.410311 38.536533-12.504178 79.917511 8.612978 92.410311 47.149511S831.3856 413.468444 792.849067 425.961244z" p-id="20152" fill="#ffffff"></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1611653636616" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="21350" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M524.552258 848.929032c184.32 0 333.625806-149.966452 333.625807-333.625806s-149.966452-333.625806-333.625807-333.625807c-184.32 0-333.625806 149.966452-333.625806 333.625807s149.305806 333.625806 333.625806 333.625806m0 48.227097c-210.745806 0-381.852903-171.107097-381.852903-381.852903s171.107097-381.852903 381.852903-381.852903 381.192258 171.107097 381.192258 381.852903-170.446452 381.852903-381.192258 381.852903z" p-id="21351" fill="#ffffff"></path><path d="M377.889032 412.242581c-9.249032-9.249032-9.249032-24.443871 0-33.692904 9.249032-9.249032 24.443871-9.249032 33.692903 0l251.705807 251.705807c9.249032 9.249032 9.249032 24.443871 0 33.692903-9.249032 9.249032-24.443871 9.249032-33.692903 0L377.889032 412.242581" p-id="21352" fill="#ffffff"></path><path d="M636.20129 377.228387c9.249032-9.249032 24.443871-9.249032 33.692904 0 9.249032 9.249032 9.249032 24.443871 0 33.692903l-251.705807 251.705807c-9.249032 9.249032-24.443871 9.249032-33.692903 0-9.249032-9.249032-9.249032-24.443871 0-33.692903l251.705806-251.705807" p-id="21353" fill="#ffffff"></path></svg>
\ No newline at end of file
......@@ -3,7 +3,8 @@
<el-col :xs="12" :sm="12" :lg="8" class="card-panel-col">
<div class="card-panel" @click="handleSetLineChartData('newVisitis')">
<div class="card-panel-icon-wrapper icon-people">
<svg-icon icon-class="peoples" class-name="card-panel-icon" />
<!-- <svg-icon icon-class="all" class-name="card-panel-icon" /> -->
<svg-icon :icon-class="all" class-name="card-panel-icon" />
</div>
<div class="card-panel-description">
<div class="card-panel-text">
......@@ -16,7 +17,7 @@
<el-col :xs="12" :sm="12" :lg="8" class="card-panel-col">
<div class="card-panel" @click="handleSetLineChartData('messages')">
<div class="card-panel-icon-wrapper icon-message">
<svg-icon icon-class="message" class-name="card-panel-icon" />
<svg-icon icon-class="set" class-name="card-panel-icon" />
</div>
<div class="card-panel-description">
<div class="card-panel-text">
......@@ -29,7 +30,7 @@
<el-col :xs="12" :sm="12" :lg="8" class="card-panel-col">
<div class="card-panel" @click="handleSetLineChartData('purchases')">
<div class="card-panel-icon-wrapper icon-money">
<svg-icon icon-class="money" class-name="card-panel-icon" />
<svg-icon icon-class="double" class-name="card-panel-icon" />
</div>
<div class="card-panel-description">
<div class="card-panel-text">
......@@ -56,6 +57,12 @@ export default {
tableData: [],
};
},
props:{
all: {
type: String,
default: 'all'
}
},
created() {
this.getTotalStatsFun();
......
<template>
<el-row :gutter="40" class="panel-group">
<el-col v-for="(item,index) in panelArr" :key="index" :xs="12" :sm="12" :lg="8" class="card-panel-col">
<div class="card-panel" :style="{'background':item.bgColor}">
<div class="card-panel-icon-wrapper icon-people">
<svg-icon :icon-class="item.leftIcon" class-name="card-panel-icon" />
</div>
<div class="card-panel-description">
<div class="card-panel-text">
{{item.panelName}}
</div>
<count-to :start-val="0" :end-val="item.num" :duration="2600" class="card-panel-num" />
</div>
</div>
</el-col>
<!-- <el-col :xs="12" :sm="12" :lg="8" class="card-panel-col">
<div class="card-panel" :style="{'background':tableObj.bgcolorSecond}">
<div class="card-panel-icon-wrapper icon-message">
<svg-icon :icon-class="tableObj.iconSeocnd" class-name="card-panel-icon" />
</div>
<div class="card-panel-description">
<div class="card-panel-text">
监控作业数
</div>
<count-to :start-val="0" :end-val="this.tableData.totalArticle" :duration="3000" class="card-panel-num" />
</div>
</div>
</el-col>
<el-col :xs="12" :sm="12" :lg="8" class="card-panel-col">
<div class="card-panel" :style="{'background':tableObj.bgcolorThird}">
<div class="card-panel-icon-wrapper icon-money">
<svg-icon :icon-class="tableObj.iconThird" class-name="card-panel-icon" />
</div>
<div class="card-panel-description">
<div class="card-panel-text">
监控转换数
</div>
<count-to :start-val="0" :end-val="this.tableData.totalIncome" :duration="3200" class="card-panel-num" />
</div>
</div>
</el-col> -->
</el-row>
</template>
<script>
import CountTo from 'vue-count-to'
import {getTotalStats} from "@/api/Statistics";
export default {
components: {
CountTo
},
data() {
return {
// tableData: [],
};
},
props:{
all: {
type: String,
default: 'all'
},
backgroundColor: {
type: String,
default: '#f8ac59'
},
panelArr:{
type: Array,
default:[
{
leftIcon:'all',
bgColor:'',
panelName:'总监控任务数',
num:0,
},
{
leftIcon:'all',
bgColor:'',
panelName:'监控作业数',
num:0,
},
{
leftIcon:'all',
bgColor:'',
panelName:'监控转换数',
num:0,
},
]
}
// #1ab394
// #f8ac59
},
created() {
// this.getTotalStatsFun();
},
methods: {
// 总数统计
// getTotalStatsFun(){
// getTotalStats({}).then(res=>{
// this.tableData = res.data
// console.log(res);
// })
// },
// handleSetLineChartData(type) {
// this.$emit('handleSetLineChartData', type)
// console.log(type);
// }
}
}
</script>
<style lang="scss" scoped>
.panel-group {
margin-top: 18px;
// .card-panel-col {
// margin-bottom: 32px;
// }
.card-panel {
height: 108px;
cursor: pointer;
font-size: 12px;
position: relative;
overflow: hidden;
color: #ffffff;
// background: #fff;
background-color: #1ab394;
box-shadow: 4px 4px 40px rgba(0, 0, 0, .05);
border-color: rgba(0, 0, 0, .05);
border-radius: 5px;
&:hover {
.card-panel-icon-wrapper {
color: #fff;
}
.icon-people {
background: #40c9c6;
}
.icon-message {
background: #36a3f7;
}
.icon-money {
background: #f4516c;
}
.icon-shopping {
background: #34bfa3
}
}
.icon-people {
color: #40c9c6;
}
.icon-message {
color: #36a3f7;
}
.icon-money {
color: #f4516c;
}
.icon-shopping {
color: #34bfa3
}
.card-panel-icon-wrapper {
float: left;
margin: 14px 0 0 14px;
padding: 16px;
transition: all 0.38s ease-out;
border-radius: 6px;
}
.card-panel-icon {
float: left;
font-size: 48px;
}
.card-panel-description {
float: right;
font-weight: bold;
margin: 26px;
margin-left: 0px;
text-align: right !important;
.card-panel-text {
line-height: 18px;
color: #ffffff;
font-size: 20px;
margin-bottom: 12px;
font-weight:normal !important;
}
.card-panel-num {
font-size: 30px;
font-weight: 600;
}
}
}
}
@media (max-width:550px) {
.card-panel-description {
display: none;
}
.card-panel-icon-wrapper {
float: none !important;
width: 100%;
height: 100%;
margin: 0 !important;
.svg-icon {
display: block;
margin: 14px auto !important;
float: none !important;
}
}
}
</style>
<template>
<div class="dashboard-container">
<div class="dashboard-editor-container">
<!-- <panelGroupETL /> -->
<panelGroupEtl :panelArr="panelArr"/>
<el-row :gutter="20">
<!-- <el-row :gutter="20">
<el-col :span="8">
<div class="grid-content bg-purple">
<i class="el-icon-s-tools grid-icon"></i>
<div class="num-content">
<div class="num-title">总监控任务数</div>
<span class="show-num">
<!-- {{allRunningMonitorNum}} -->
<count-to :start-val="0" :end-val="allRunningMonitorNum" :duration="3000" class="card-panel-num" />
</span>
</div>
......@@ -22,7 +21,6 @@
<div class="num-content">
<div class="num-title">监控作业数</div>
<span class="show-num">
<!-- {{allRunningJobNum}} -->
<count-to :start-val="0" :end-val="allRunningJobNum" :duration="3000" class="card-panel-num" />
</span>
</div>
......@@ -34,13 +32,12 @@
<div class="num-content">
<div class="num-title">监控转换数</div>
<span class="show-num">
<!-- {{alRunningTransNum}} -->
<count-to :start-val="0" :end-val="alRunningTransNum" :duration="3000" class="card-panel-num" />
</span>
</div>
</div>
</el-col>
</el-row>
</el-row> -->
......@@ -157,7 +154,7 @@
import GithubCorner from "@/components/GithubCorner";
import PanelGroup from "./dashboard/PanelGroup";
import LineChart from "./dashboard/LineChart";
// import panelGroupETL from "./dashboard/panelGroupETL";
import panelGroupEtl from "./dashboard/PanelGroupEtl";
// import RadarChart from "@/components/Echarts/RadarChart";
// import PieChart from "@/components/Echarts/PieChart";
// import BarChart from "@/components/Echarts/BarChart";
......@@ -182,8 +179,8 @@ export default {
GithubCorner,
PanelGroup,
LineChart,
// panelGroupETL
CountTo
panelGroupEtl,
CountTo
},
data() {
......@@ -214,6 +211,26 @@ export default {
kettleLineData:{},//获取7天内作业和转换的折线图
jobLoading:true,
transLoading:true,
panelArr:[
{
leftIcon:'all',
bgColor:'#1ab394',
panelName:'总监控任务数',
num:0,
},
{
leftIcon:'set',
bgColor:'#1ab394',
panelName:'监控作业数',
num:0,
},
{
leftIcon:'double',
bgColor:'#1ab394',
panelName:'监控转换数',
num:0,
},
],//头部模板数据统计
};
},
......@@ -261,6 +278,7 @@ export default {
console.log('获取被监控中的总数',res);
if(res.success){
this.allRunningMonitorNum = res.data;
this.panelArr[0].num=this.allRunningMonitorNum;//
}
});
},
......@@ -270,6 +288,7 @@ export default {
console.log('获取所有的监控作业数',res);
if(res.success){
this.allRunningJobNum = res.data;
this.panelArr[1].num=this.allRunningJobNum;//
}
});
......@@ -280,6 +299,7 @@ export default {
console.log('获取所有的监控转换数',res);
if(res.success){
this.alRunningTransNum = res.data;
this.panelArr[2].num=this.alRunningTransNum;//
}
});
......
<template>
<div class="app-container">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>作业列表</span>
<i @click="deleteTabOne()" class="el-icon-close btn-icon" style=""></i>
<i
class="btn-icon"
:class="jobShow ? 'el-icon-arrow-down' : 'el-icon-arrow-up '"
@click="showAll()"
></i>
</div>
<div v-show="!jobShow" class="card-body">
<div>
<el-button class="btn-brush" icon="el-icon-plus"
 @click="closeModalOne">新增资源库作业</el-button>
<el-button class="btn-brush" icon="el-icon-plus"
 @click="ModalTwo">新增文件作业</el-button>
<el-button class="btn-brush right" icon="el-icon-plus"
 @click="pageChange(1)">刷新列表</el-button>
</div>
<el-table
v-loading="loading"
:data="tableData"
border
style="width: 100%"
:header-cell-style="{ color: '#606266' }"
>
<el-table-column prop="id" label="作业编号" width="auto" align="center" />
<el-table-column prop="type" label="作业类型" width="100" align="center">
<template slot-scope="scope">
{{ jobTypeList[scope.row.type] }}
</template>
</el-table-column>
<el-table-column prop="name" label="作业名称" align="center" />
<el-table-column prop="customerQuarz" label="作业策略" align="center" />
<el-table-column label="作业更新时间" align="center" width="180">
<template slot-scope="scope">
{{ scope.row.updateTime | dateFormat }}
</template>
</el-table-column>
<el-table-column prop="status" label="作业状态" width="100" align="center" >
<template slot-scope="scope">
{{ jobStatusList[scope.row.status] }}
</template>
</el-table-column>
<el-table-column prop label="操作" width="auto" align="center">
<template slot-scope="scope">
<el-button
size="mini"
type="success"
:icon="scope.row.status==2 ? 'el-icon-caret-right' : 'el-icon-video-pause'"
@click.native="scope.row.status==1 ? stop(scope.row) : start(scope.row)"
>{{scope.row.status==1?'停止':'启动'}}</el-button
>
<el-button
size="mini"
type="primary"
icon="el-icon-edit"
@click="editModal(scope.row)"
>编辑</el-button
>
<el-button
size="mini"
type="danger"
icon="el-icon-delete"
@click="deleteJob(scope.row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<!-- 分页start -->
<div class="pagination">
<el-pagination
background
layout="total ,prev, pager, next"
:total="pageInfo.total"
:page-size="pageInfo.size"
:current-page="pageInfo.page"
@size-change="sizeChange"
@current-change="pageChange"
/>
</div>
<!-- 分页end -->
</div>
</el-card>
<!-- 1、新增资源库作业start -->
<el-dialog
title="添加作业"
:visible="DialogVisibleOne"
:before-close="closeModalOne"
width="60%"
center
top="2%">
<el-row >
<el-col :span="20" :offset="2">
<el-form :rules="rulesOne" ref="formNameOne" :model="formOne" label-width="auto">
<el-form-item label="资源库:">
<el-select v-model="formOne.repositoryId" clearable placeholder="请选择资源库" class="input-length">
<el-option
v-for="item in allRepositoryList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="作业:" prop="id">
<el-input @click.native="treeModal" :disabled="true" placeholder="请选择作业" v-model="formOne.id" class="input-length"></el-input>
</el-form-item>
<el-form-item label="作业名称:">
<el-input placeholder="请输入作业名称" v-model="formOne.name" class="input-length"></el-input>
</el-form-item>
<el-form-item label="转换执行策略:">
<el-select v-model="formOne.quartzId" clearable placeholder="请选择转换执行策略(请在菜单:系统管理 -> 策略配置中进行维护)" class="input-length">
<el-option
v-for="item in kettleQuartzList"
:key="item.id"
:label="item.description"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="记录日志级别:" prop="logLevel">
<el-select v-model="formOne.logLevel" clearable placeholder="请选择日志级别" class="input-length">
<el-option
v-for="item in LogLevelList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="转换描述:">
<el-input
v-model="formOne.description"
type="textarea"
:autosize="{ minRows: 2, maxRows: 4 }"
placeholder="请输入转换描述,不超过500字"
class="input-length"/>
</el-form-item>
</el-form>
</el-col>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button class="btn-brush" type="success" icon="el-icon-check" @click="submitForm('formNameOne',1)">保存</el-button>
<el-button class="btn-brush" type="success" icon="el-icon-plus" @click="closeModalOne()">取消</el-button>
</span>
</el-dialog>
<!--1、 新增资源库作业end -->
<!--2、 新增文件作业start -->
<el-dialog
title="添加作业"
:visible="DialogVisibleTwo"
:before-close="ModalTwo"
width="60%"
center
top="2%">
<el-row >
<el-col :span="20" :offset="2">
<el-form :rules="rulesTwo" ref="formNameTwo" :model="formTwo" label-width="auto">
<el-form-item label="作业">
<el-upload
ref="upload"
:limit="1"
class="input-length"
action="/kettle/uploadRepositoryFile"
:file-list="fileList"
:headers="headers"
:on-success="uplodSuccess"
>
<!-- <div class="eladmin-upload"><i class="el-icon-upload" /> 添加文件</div> -->
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">可上传任意格式文件,且不超过100M</div>
</el-upload>
</el-form-item>
<el-form-item prop="name" label="作业名称:">
<el-input placeholder="请输入作业名称" v-model="formTwo.name" class="input-length"></el-input>
</el-form-item>
<el-form-item label="作业执行策略:">
<el-select v-model="formTwo.quartzId" clearable placeholder="请选择转换执行策略(请在菜单:系统管理 -> 策略配置中进行维护)" class="input-length">
<el-option
v-for="item in kettleQuartzList"
:key="item.id"
:label="item.description"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="记录日志级别:" prop="logLevel">
<el-select v-model="formTwo.logLevel" clearable placeholder="请选择日志级别" class="input-length">
<el-option
v-for="item in LogLevelList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="转换描述:">
<el-input
v-model="formTwo.description"
type="textarea"
:autosize="{ minRows: 2, maxRows: 4 }"
placeholder="请输入转换描述,不超过500字"
class="input-length"/>
</el-form-item>
</el-form>
</el-col>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button class="btn-brush" type="success" icon="el-icon-check" @click="submitForm('formNameTwo',2)">保存</el-button>
<el-button class="btn-brush" type="success" icon="el-icon-plus" @click="ModalTwo">取消</el-button>
</span>
</el-dialog>
<!--2、 新增文件作业end -->
<!--3、 编辑作业start -->
<el-dialog
title="编辑作业"
:visible="DialogVisibleThree"
:before-close="ModalThree"
width="60%"
center
top="2%">
<el-row >
<el-col :span="20" :offset="2">
<el-form :rules="rulesOne" ref="formNameThree" :model="formThree" label-width="auto">
<el-form-item label="资源库:">
<el-select v-model="formThree.repositoryId" clearable placeholder="请选择资源库" class="input-length">
<el-option
v-for="item in allRepositoryList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="作业路径:">
<el-input :disabled="true" placeholder="请输入作业路径" v-model="formThree.path" class="input-length"></el-input>
</el-form-item>
<el-form-item label="作业名称:" prop="name">
<el-input placeholder="请输入作业名称" v-model="formThree.name" class="input-length"></el-input>
</el-form-item>
<el-form-item label="作业执行策略:">
<el-select v-model="formThree.quartzId" clearable placeholder="请选择转换执行策略(请在菜单:系统管理 -> 策略配置中进行维护)" class="input-length">
<el-option
v-for="item in kettleQuartzList"
:key="item.id"
:label="item.description"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="记录日志级别:" prop="logLevel">
<el-select v-model="formThree.logLevel" clearable placeholder="请选择日志级别" class="input-length">
<el-option
v-for="item in LogLevelList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="作业描述:">
<el-input
v-model="formThree.description"
type="textarea"
:autosize="{ minRows: 2, maxRows: 4 }"
placeholder="请输入作业描述,不超过500字"
class="input-length"/>
</el-form-item>
</el-form>
</el-col>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button class="btn-brush" type="success" icon="el-icon-check" @click="update('formNameThree')">保存</el-button>
<el-button class="btn-brush" type="success" icon="el-icon-plus" @click="ModalThree()">取消</el-button>
</span>
</el-dialog>
<!--3、 编辑作业end -->
<!--4、 树弹窗start -->
<el-dialog
title="请选择作业"
:visible.sync="treeDialogVisible"
width="30%">
<el-tree
:data="jobTreeList"
:check-strictly="true"
:default-expand-all="false"
node-key="id"
ref="tree"
:props="defaultProps"
@check="getname"
:highlight-current="true"
show-checkbox>
</el-tree>
<span slot="footer" class="dialog-footer">
<el-button @click="treeDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="treeDialogVisible = false">确 定</el-button>
</span>
</el-dialog>
<!--4、 树弹窗end -->
</div>
</template>
<script>
import {
getKettleJobList,
insert,//添加作业
update,//更改作业
deleteJob,//删除作业
start,//开始作业
stop,//停止作业
uploadRepositoryFile,//上传资源文件
} from "@/api/task/homework";
import {
getList,//获取数据库资源库列表
getKettleQuartzList,//获取策略配置列表
} from "@/api/task/transform";
// import { getDoctorList } from "@/api/hospitalapi/doctor";
import { getToken } from "@/utils/auth";
export default {
filters: {
dateFormat (val) {
if (val == null || val == '') {
return ''
} else {
let d = new Date(val) // val 为表格内取到的后台时间
let month = d.getMonth() + 1 < 10 ? '0' + (d.getMonth() + 1) : d.getMonth() + 1
let day = d.getDate() < 10 ? '0' + d.getDate() : d.getDate()
let hours = d.getHours() < 10 ? '0' + d.getHours() : d.getHours()
let min = d.getMinutes() < 10 ? '0' + d.getMinutes() : d.getMinutes()
let sec = d.getSeconds() < 10 ? '0' + d.getSeconds() : d.getSeconds()
let times = d.getFullYear() + '-' + month + '-' + day + ' ' + hours + ':' + min + ':' + sec
return times
}
}
},
data() {
return {
tableData: [],
pageInfo: {
page: 1,
size: 10,
},
loading: true,
headers: {}, // 头部信息
jobShow: false, //作业监控记录
DialogVisibleOne: false,//新增资源库作业弹窗
DialogVisibleTwo: false,//新增资源库作业弹窗
DialogVisibleThree: false, //编辑资源库作业弹窗
treeDialogVisible:false,//树形结构选择弹窗
formOne: {
repositoryId:'',//作业的资源库ID
name:'',//转换名称
quartzId:'',//转换执行策略
logLevel:'',//记录日志级别
description:''//转换描述
},
formTwo:{
path:'',//转换---上传文件
name:'',//转换名称
quartzId:'',//转换执行策略
logLevel:'',//记录日志级别
description:'',//转换描述
},
formThree:{},//编辑
jobStatusList:['','正在运行', '已停止'],
// jobTypeList:['','数据库资源库','上传的文件'],
jobTypeList:['','资源库','文件'],
allRepositoryList:[],//获取数据库资源库列表
kettleQuartzList:[],//策略配置列表
LogLevelList:[{
value:'basic',
label: '基本日志'
},{
value:'datail',
label: '详细日志'
},{
value:'error',
label: '错误日志'
},{
value:'debug',
label: '调试日志'
},{
value:'minimal',
label: '最小日志'
},
{
value:'rowlevel',
label: '行级日志(非常详细)'
},
],
rulesOne:{
name:[
{required:true,message:'请输入转换名称',trigger:'blur'}
],
logLevel:[
{required:true,message:'请选择日志级别',trigger:'change'}
],
},
rulesTwo:{
name:[
{required:true,message:'请输入作业名称',trigger:'blur'}
],
logLevel:[
{required:true,message:'请选择作业的记录日志级别',trigger:'change'}
],
},
fileList: [],//上传的资源文件
jobTreeList:[
{
path: 'f0',
id: '1',
parent: '0',
lasted: false,
},
{
path: 'f01',
id: '2',
parent: '1',
lasted: true,
},
{
path: 'f02',
id: '3',
parent: '1',
lasted: true,
},
{
path: 'f021',
id: '6',
parent: '3',
lasted: false,
},
{
path: 'f021',
id: '7',
parent: '6',
lasted: false,
},
{
path: 'f40',
id: '4',
parent: '0',
lasted: false,
},
{
path: 'f41',
id: '5',
parent: '4',
lasted: true,
}
],
defaultProps: {
label: 'path',
children: 'children',
}
};
},
created() {
this.getKettleJobList();//分页获取作业列表
this.getList();//获取数据库资源库列表
this.getKettleQuartzList();//获取策略配置列表
this.setHeaders();
this.treeRevert(this.jobTreeList);
},
methods: {
showAll(){
this.jobShow=!this.jobShow;
},
setHeaders() {
this.headers = {
contentType: "application/x-www-form-urlencoded",
Authorization: getToken(),
};
},
//分页获取作业列表
getKettleJobList() {
getKettleJobList({ ...this.pageInfo}).then((res) => {
console.log('分页获取作业列表:',res);
if(res.success){
this.tableData = res.data.rows;
this.pageInfo.total = res.data.total;
//关闭加载样式
setTimeout(() => {
this.loading = false;
}, 500);
}else{
this.$message.error(res.errMsg)
}
});
},
// 提交新增数据--------------------------------------------------------
submitForm(formName,type){
var params={};
if(type==1){
params =this.formOne;
}else if(type==2){
params=this.formTwo;
}
params.type=type;
this.$refs[formName].validate((valid) => {
if (valid) {
if(type==2 && params.path==''){
this.$message.error("请上传一个文件!");
return;
}
insert(params).then(res=>{
console.log('提交新增数据:',res);
if (res.success) {
this.$message.success('新增成功!');
if(type==1){
this.closeModalOne();//关闭弹窗
}else if(type==2){
this.ModalTwo();//关闭弹窗
}
this.getKettleJobList();//刷新列表
}else {
this.$message.error(res.errMsg)
}
})
} else {
console.log('error submit!!');
return false;
}
});
},
// 1、模态框操作----新增资源库转换
closeModalOne() {
console.log('打开弹窗------------------',this.DialogVisibleOne);
this.DialogVisibleOne = !this.DialogVisibleOne;
this.row = {};
this.formOne = {};
if (this.$refs['formNameOne']!==undefined) {
this.$refs['formNameOne'].resetFields();//对该表单项进行重置,将其值重置为初始值并移除校验结果
}
},
// 2、模态框操作----新增文件转换
ModalTwo() {
console.log('打开弹窗------------------',this.DialogVisibleTwo);
this.DialogVisibleTwo = !this.DialogVisibleTwo;
this.row = {};
this.formTwo = {};
this.fileList=[];
if (this.$refs['formNameTwo']!==undefined) {
this.$refs['formNameTwo'].resetFields();//对该表单项进行重置,将其值重置为初始值并移除校验结果
}
},
ModalThree() {
console.log('打开弹窗------------------',this.DialogVisibleThree);
this.DialogVisibleThree = !this.DialogVisibleThree;
this.row = {};
this.formThree = {};
if (this.$refs['formNameThree']!==undefined) {
this.$refs['formNameThree'].resetFields();//对该表单项进行重置,将其值重置为初始值并移除校验结果
}
},
// 树形结构弹窗
treeModal(){
this.treeDialogVisible = !this.treeDialogVisible;
},
//获取数据库资源库列表
getList() {
var params={};
getList(JSON.stringify(params)).then((res) => {
console.log('获取数据库资源库列表',res);
if(res.success){
this.allRepositoryList = res.data;
}
});
},
//获取策略配置列表
getKettleQuartzList() {
var params={};
getKettleQuartzList(JSON.stringify(params)).then((res) => {
console.log('获取策略配置列表',res);
if(res.success){
this.kettleQuartzList = res.data;
}
});
},
//编辑弹窗
editModal(row) {
      console.log('编辑时候id不为为null');
this.formThree = JSON.parse(JSON.stringify(row)) // 克隆
this.DialogVisibleThree=true;    
    },
// 编辑数据
update(formName){
this.$refs[formName].validate((valid) => {
if (valid) {
update(this.formThree).then(res=>{
console.log('提交编辑数据:',res);
if (res.success) {
this.$message.success('编辑成功!');
this.DialogVisibleThree=false;//关闭弹窗
this.formThree={};
this.getKettleJobList();//刷新列表
}else {
this.$message.error(res.errMsg)
}
})
} else {
console.log('error submit!!');
return false;
}
});
},
//删除
deleteJob(row) {
this.$confirm('确认删除该条数据, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteJob(row.id).then((res) => {
if (res.success) {
this.$message.success('删除成功')
this.getKettleJobList();//刷新列表
} else {
this.$message.error(res.errMsg)
}
})
})
},
//开始
start(row) {
this.$confirm('确定启动该作业?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
start(row.id).then((res) => {
if (res.success) {
this.$message.success('启动成功')
this.getKettleJobList();//刷新列表
} else {
this.$message.error(res.errMsg)
}
})
})
},
//停止
stop(row) {
this.$confirm('确定停止该作业?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
stop(row.id).then((res) => {
if (res.success) {
this.$message.success('停止成功')
this.getPageList();//刷新列表
} else {
this.$message.error(res.errMsg)
}
})
})
},
//----------------------------------------------------------------------------------
// 上传资源文件成功
uplodSuccess(response, file, fileList) {
console.log(response, file, fileList);
if (response.success !== true) {
this.$message.error("上传失败!");
return;
}
// this.fileList = response.data
console.log('上传资源文件成功返回数据================',response);
this.formTwo.path = response.data;//添加作业
this.$message.success("上传成功!");
},
// 显示数量切换
sizeChange(e) {
this.pageInfo.size = e;
this.pageChange(1); // 切换数量时页数为1
},
pageChange(e) {
this.pageInfo.page = e;
this.getKettleJobList();
},
treeRevert(arrayList){
let formatObj = arrayList.reduce((pre, cur) => {
return {...pre, [cur['id']]: cur}
}, {});
console.log(formatObj);
let formatArray = arrayList.reduce((arr, cur) => {
// let pid = cur.pid ? cur.pid : 0;
let pid = cur.parent ? cur.parent : 0;
let parent = formatObj[pid];
if (parent) {
parent.children ? parent.children.push(cur) : parent.children=[cur];
} else {
arr.push(cur)
}
return arr;
}, []);
console.log('树形数据=============',formatArray);
this.jobTreeList=formatArray;
},
getCheckedNodes() {
console.log('当前选择节点===========',this.$refs.tree.getCheckedNodes());
},
// 选择会触发getname方法
getname() {
// 获取当节点的值
var getlist = this.$refs.tree.getCheckedNodes().concat(this.$refs.tree.getHalfCheckedNodes());
// 循环遍历当前节点的值
for (var i in getlist) {
// 判断子节点是否存在子节点 如果存在直接请求并且提示 false
if(!getlist[i].hasOwnProperty("children")) {
// 判断是否只选择一个 如果存在直接请求并且提示 false
if(getlist.length == 1) {
console.log('当前选择=====1',getlist[0].id);
console.log('当前选择=====222',getlist[0])
}else {
this.$message.error("只能选择一个");
this.$refs.tree.setCheckedKeys([]);
return
}
}else {
this.$message.error("只能选择当前分类最后的子分类");
this.$refs.tree.setCheckedKeys([]);
return
}
}
},
}
};
</script>
<style>
.border {
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04);
border-radius: 2px;
padding: 30px;
}
.above {
margin-top: 50px;
}
.btn-brush {
border-color: #21b9bb;
margin-bottom: 5px;
background-color: #23c6c8;
color: #ffffff;
font-size: 14px;
font-weight: bold;
}
.el-card__body{
padding: 15px 20px 20px 20px;
}
.btn-icon {
float: right;
padding: 3px 0;
font-size: 14px;
font-weight: 700;
color: #c4c4c4;
margin-right: 5px;
}
.right{
float:right;
}
.input-length{
width: 100% !important;
}
.el-card__body{
padding:0 !important;
}
.card-body{
padding: 15px 20px 20px 20px;
}
</style>
<template>
<div class="app-container">
<el-row :gutter="20">
<panelGroupEtl :panelArr="panelArr"/>
<!-- <el-row :gutter="20">
<el-col :span="8">
<div class="grid-content bg-purple">
<i class="el-icon-setting grid-icon"></i>
<div class="num-content">
<div class="num-title">总作业任务数</div>
<span class="show-num">
<!-- {{allRunningJobNum}} -->
<count-to :start-val="0" :end-val="allRunningJobNum" :duration="3000" class="card-panel-num" />
</span>
</div>
......@@ -19,7 +19,6 @@
<div class="num-content">
<div class="num-title">总成功次数</div>
<span class="show-num">
<!-- {{allSuccessCount}} -->
<count-to :start-val="0" :end-val="allSuccessCount" :duration="3000" class="card-panel-num" />
</span>
</div>
......@@ -31,13 +30,12 @@
<div class="num-content">
<div class="num-title">总失败次数</div>
<span class="show-num">
<!-- {{allFailCount}} -->
<count-to :start-val="0" :end-val="allFailCount" :duration="3000" class="card-panel-num" />
</span>
</div>
</div>
</el-col>
</el-row>
</el-row> -->
<el-card class="box-card">
<div slot="header" class="clearfix">
......@@ -222,8 +220,9 @@ import { getToken } from "@/utils/auth";
import {
getAllMonitorJob,//获取所有的监控作业数
} from "@/api/Statistics";
import panelGroupEtl from "../dashboard/PanelGroupEtl";
import CountTo from 'vue-count-to'
// import CountTo from 'vue-count-to'
export default {
// filters: {
......@@ -243,7 +242,8 @@ export default {
// }
// },
components: {
CountTo
// CountTo,
panelGroupEtl
},
data() {
return {
......@@ -281,6 +281,26 @@ export default {
jobStatusList:['','成功', '失败'],
simpleList:[],//搜索下拉框我添加的作业列表
logContent:'',//日志内容
panelArr:[
{
leftIcon:'all',
bgColor:'#1ab394',
panelName:'总作业任务数',
num:0,
},
{
leftIcon:'correct',
bgColor:'#1ab394',
panelName:'总成功次数',
num:0,
},
{
leftIcon:'wrong',
bgColor:'#f8ac59',
panelName:'总失败次数',
num:0,
},
],//头部模板数据统计
};
},
created() {
......@@ -319,6 +339,7 @@ export default {
console.log('获取列表',res);
if(res.success){
this.allSuccessCount = res.data;
this.panelArr[1].num=this.allSuccessCount;
}
});
......@@ -329,6 +350,7 @@ export default {
console.log('获取列表',res);
if(res.success){
this.allFailCount = res.data;
this.panelArr[2].num=this.allFailCount;
}
});
......@@ -339,6 +361,7 @@ export default {
console.log('获取所有的监控作业数',res);
if(res.success){
this.allRunningJobNum = res.data;
this.panelArr[0].num=this.allRunningJobNum;
}
});
......@@ -698,4 +721,7 @@ export default {
background: #ffffff !important;
height: 400px !important;
}
.el-row {
margin-bottom: 20px;
}
</style>
<template>
<div class="app-container">
<el-row :gutter="20">
<panelGroupEtl :panelArr="panelArr"/>
<!-- <el-row :gutter="20">
<el-col :span="8">
<div class="grid-content bg-purple">
<i class="el-icon-refresh grid-icon"></i>
<div class="num-content">
<div class="num-title">总转换任务数</div>
<span class="show-num">
<!-- {{alRunningTransNum}} -->
<count-to :start-val="0" :end-val="alRunningTransNum" :duration="3200" class="card-panel-num" />
</span>
</div>
......@@ -19,7 +19,6 @@
<div class="num-content">
<div class="num-title">总成功次数</div>
<span class="show-num">
<!-- {{allSuccessCount}} -->
<count-to :start-val="0" :end-val="allSuccessCount" :duration="3200" class="card-panel-num" />
</span>
</div>
......@@ -31,13 +30,12 @@
<div class="num-content">
<div class="num-title">总失败次数</div>
<span class="show-num">
<!-- {{allFailCount}} -->
<count-to :start-val="0" :end-val="allFailCount" :duration="3200" class="card-panel-num" />
</span>
</div>
</div>
</el-col>
</el-row>
</el-row> -->
<el-card class="box-card">
<div slot="header" class="clearfix">
......@@ -219,6 +217,7 @@ import CountTo from 'vue-count-to'
import {
getAllMonitorTrans,//获取所有的监控作业数
} from "@/api/Statistics";
import panelGroupEtl from "../dashboard/PanelGroupEtl";
export default {
// filters: {
......@@ -239,7 +238,8 @@ export default {
// },
components: {
CountTo
// CountTo
panelGroupEtl
},
data() {
......@@ -286,6 +286,26 @@ export default {
transId:0
},
simpleList:[],//搜索下拉框我添加的作业列表
panelArr:[
{
leftIcon:'all',
bgColor:'#1ab394',
panelName:'总作业任务数',
num:0,
},
{
leftIcon:'correct',
bgColor:'#1ab394',
panelName:'总成功次数',
num:0,
},
{
leftIcon:'wrong',
bgColor:'#f8ac59',
panelName:'总失败次数',
num:0,
},
],//头部模板数据统计
};
......@@ -350,6 +370,7 @@ export default {
console.log('获取所有的监控转换数',res);
if(res.success){
this.alRunningTransNum = res.data;
this.panelArr[0].num=this.alRunningTransNum;
}
});
......@@ -361,6 +382,7 @@ export default {
console.log('获取成功总数',res);
if(res.success){
this.allSuccessCount = res.data;
this.panelArr[1].num=this.allSuccessCount;
}
});
......@@ -371,6 +393,7 @@ export default {
console.log('获取失败总数',res);
if(res.success){
this.allFailCount = res.data;
this.panelArr[2].num=this.allFailCount;
}
});
......@@ -639,5 +662,8 @@ export default {
background: #ffffff !important;
height: 400px !important;
}
.el-row {
margin-bottom: 20px;
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment