diff --git a/App.vue b/App.vue new file mode 100644 index 0000000000000000000000000000000000000000..99cdead007207fb1f0893e8fdce293c044322216 --- /dev/null +++ b/App.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/assets/css/bootstrap.min.css b/assets/css/bootstrap.min.css new file mode 100644 index 0000000000000000000000000000000000000000..882691283ab5b356f9643f8507666d71f3372ca1 --- /dev/null +++ b/assets/css/bootstrap.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap v4.1.3 (https://getbootstrap.com/) + * Copyright 2011-2018 The Bootstrap Authors + * Copyright 2011-2018 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014 \00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;background-color:transparent}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(2.25rem + 2px);padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.8125rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(2.875rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.custom-select.is-valid,.form-control.is-valid,.was-validated .custom-select:valid,.was-validated .form-control:valid{border-color:#28a745}.custom-select.is-valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{background-color:#71dd8a}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label::after,.was-validated .custom-file-input:valid~.custom-file-label::after{border-color:inherit}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.custom-select.is-invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.was-validated .form-control:invalid{border-color:#dc3545}.custom-select.is-invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{background-color:#efa2a9}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(220,53,69,.25)}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label::after,.was-validated .custom-file-input:invalid~.custom-file-label::after{border-color:inherit}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:focus,.btn:hover{text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-primary{color:#007bff;background-color:transparent;background-image:none;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;background-color:transparent;background-image:none;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;background-color:transparent;background-image:none;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;background-color:transparent;background-image:none;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;background-color:transparent;background-image:none;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;background-color:transparent;background-image:none;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;background-color:transparent;background-image:none;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;background-color:transparent;background-image:none;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;background-color:transparent}.btn-link:hover{color:#0056b3;text-decoration:underline;background-color:transparent;border-color:transparent}.btn-link.focus,.btn-link:focus{text-decoration:underline;border-color:transparent;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media screen and (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media screen and (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-right{right:0;left:auto}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;width:0;height:0;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:0 1 auto;flex:0 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{height:calc(2.875rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{height:calc(1.8125rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:active~.custom-control-label::before{color:#fff;background-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#dee2e6}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center;background-size:8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(128,189,255,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(1.8125rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:75%}.custom-select-lg{height:calc(2.875rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:125%}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.25rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.25rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:focus~.custom-file-label::after{border-color:#80bdff}.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(2.25rem + 2px);padding:.375rem .75rem;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:2.25rem;padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;padding-left:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler:not(:disabled):not(.disabled){cursor:pointer}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-ms-flexbox;display:flex;-ms-flex:1 0 0%;flex:1 0 0%;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child){border-radius:0}.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion .card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion .card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion .card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion .card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}.badge-primary[href]:focus,.badge-primary[href]:hover{color:#fff;text-decoration:none;background-color:#0062cc}.badge-secondary{color:#fff;background-color:#6c757d}.badge-secondary[href]:focus,.badge-secondary[href]:hover{color:#fff;text-decoration:none;background-color:#545b62}.badge-success{color:#fff;background-color:#28a745}.badge-success[href]:focus,.badge-success[href]:hover{color:#fff;text-decoration:none;background-color:#1e7e34}.badge-info{color:#fff;background-color:#17a2b8}.badge-info[href]:focus,.badge-info[href]:hover{color:#fff;text-decoration:none;background-color:#117a8b}.badge-warning{color:#212529;background-color:#ffc107}.badge-warning[href]:focus,.badge-warning[href]:hover{color:#212529;text-decoration:none;background-color:#d39e00}.badge-danger{color:#fff;background-color:#dc3545}.badge-danger[href]:focus,.badge-danger[href]:hover{color:#fff;text-decoration:none;background-color:#bd2130}.badge-light{color:#212529;background-color:#f8f9fa}.badge-light[href]:focus,.badge-light[href]:hover{color:#212529;text-decoration:none;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:focus,.badge-dark[href]:hover{color:#fff;text-decoration:none;background-color:#1d2124}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media screen and (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:focus,.list-group-item:hover{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:not(:disabled):not(.disabled){cursor:pointer}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{color:#000;text-decoration:none;opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-25%);transform:translate(0,-25%)}@media screen and (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - (.5rem * 2))}.modal-dialog-centered::before{display:block;height:calc(100vh - (.5rem * 2));content:""}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - (1.75rem * 2))}.modal-dialog-centered::before{height:calc(100vh - (1.75rem * 2))}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top] .arrow,.bs-popover-top .arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-top .arrow::before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{bottom:0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{bottom:1px;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right] .arrow,.bs-popover-right .arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-right .arrow::before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{left:0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{left:1px;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom] .arrow,.bs-popover-bottom .arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-bottom .arrow::before{border-width:0 .5rem .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{top:0;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{top:1px;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left] .arrow,.bs-popover-left .arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-left .arrow::before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{right:0;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-item{position:relative;display:none;-ms-flex-align:center;align-items:center;width:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease}@media screen and (prefers-reduced-motion:reduce){.carousel-item-next,.carousel-item-prev,.carousel-item.active{transition:none}}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.active.carousel-item-right,.carousel-item-next{-webkit-transform:translateX(100%);transform:translateX(100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-right,.carousel-item-next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translateX(-100%);transform:translateX(-100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.carousel-fade .carousel-item{opacity:0;transition-duration:.6s;transition-property:opacity}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{opacity:0}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:transparent no-repeat center center;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:rgba(255,255,255,.5)}.carousel-indicators li::before{position:absolute;top:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators li::after{position:absolute;bottom:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-circle{border-radius:50%!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0062cc!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#545b62!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#1e7e34!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#117a8b!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#d39e00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#bd2130!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#dae0e5!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#1d2124!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/assets/css/common.scss b/assets/css/common.scss new file mode 100644 index 0000000000000000000000000000000000000000..d42e5e0d9351c36a19328a1a10b5db30c9c69b67 --- /dev/null +++ b/assets/css/common.scss @@ -0,0 +1,351 @@ +html, body { + width: 100%; + height: 100%; + margin: 0; + padding: 0; + overflow: hidden; +} +/* ------ START 滚动条美化 ------ */ +/* 滚动条整体部分,其中的属性有width,height,background,border等(就和一个块级元素一样)(位置1) */ +::-webkit-scrollbar { + width: 0px; + height: 0px; +} + +/* 滚动条两端的按钮,可以用display:none让其不显示,也可以添加背景图片,颜色改变显示效果(位置2) */ +/* ::-webkit-scrollbar-button{ + background:#74D334; +}*/ +::-webkit-scrollbar-track, +::-webkit-scrollbar-thumb { + border-radius: 999px; + border: 5px solid transparent; +} + +/* 外层轨道,可以用display:none让其不显示,也可以添加背景图片,颜色改变显示效果(位置3) */ +::-webkit-scrollbar-track { + box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.2) inset; + display: none; +} + +/* 内层轨道,滚动条中间部分(位置4) */ +/*::-webkit-scrollbar-track-piece{ + background:#FF66D5; +}*/ +/*滚动条里面可以拖动的那部分(位置5)*/ +::-webkit-scrollbar-thumb { + min-height: 20px; + background-clip: content-box; + /*box-shadow: 0 0 0 5px rgba(0,0,0,.2) inset;*/ + box-shadow: 0 0 0 5px #e1e1e1 inset; +} + +/*边角(位置6)*/ +::-webkit-scrollbar-corner { + background: transparent; +} +/**全局的路由样式*/ +.router-container { + width: 100%; + transition: all 0.3s ease; + overflow: hidden; +} +/**页面进入动画*/ +.switch-left-enter, +.switch-right-leave-active { + position: absolute; + top: 0; + -webkit-transform: translate(100%, 0); + transform: translate(100%, 0); +} +/**页面离开动画*/ +.switch-left-leave-active, +.switch-right-enter { + position: absolute; + top: 0; + -webkit-transform: translate(-100%, 0) !important; + transform: translate(-100%, 0) !important; +} +/**页面另外一种入场方式*/ +.slide-left-enter,.slide-right-leave-active { + position: absolute; + top:0; + -webkit-transform: translate(100%, 0); + transform: translate(100%, 0); + z-index: 9999999; +} +.slide-right-enter,.slide-left-leave-active { + position: absolute; + top:0; + -webkit-transform: translate(0%, 0); + transform: translate(0%, 0); +} +.d-page { + position: relative; + width: 100%; + height: 100%; + background-color: white; +} +.wh-100 { + width: 100%; + height: 100%; +} +/**盒布局中让子组件的比重为1*/ +.flex-1-dhc{ + flex: 1; + -webkit-box-flex: 1; + -webkit-flex: 1; +} +/**鼠标的形状为手型*/ +.cursor-pointer-dhc{ + cursor: pointer; + user-select: none; +} +/**文字不折行*/ +.no-warp-dhc { + white-space: nowrap !important; +} +a, button, li { + user-select: none; +} +a:active, button:active { + opacity: 0.6; +} +/** 自定义表单 **/ +.d-form-field { + display: flex; + align-items: center; + padding: 0 1rem 1.5rem 1rem; + .van-field { + padding: 0; + width: auto; + flex: 1; + } + .van-field__label { + font-size: 16px; + padding: 6px 0; + span { + width: 100%; + } + } + .van-field__body { + padding: 6px 0; + } + .van-field__control { + font-size: 14px; + padding: 0 5px; + } + .field-border { + .van-field__body { + border: 1px solid #dddddd; + border-radius: 2px; + } + } + .van-field.field-large { + .van-field__body, .van-field__label { + padding: 8px 0; + } + .van-field__label, .van-field__control { + font-size: 18px; + } + } + .van-field.field-small { + .van-field__body, .van-field__label { + padding: 4px 0; + } + .van-field__label, .van-field__control { + font-size: 14px; + } + } + .van-field--disabled { + .van-field__body { + background: #f5f5f5; + } + } + .van-cell--required:before { + display: none; + } + .van-cell--required { + .van-field__label { + padding-right: 6px; + } + .van-field__body:before { + position: absolute; + height: 16px; + content: "*"; + font-size: 20px; + color: red; + left: -16px; + top: 4px; + } + } +} +.v-scroller { + overflow-y: auto; +} +.h-scroller { + overflow-x: auto; +} +.information-container{ + padding-left: 32px; + padding-right: 240px; + .van-index-anchor { + color: #333333; + padding: 0; + } + .van-index-bar__sidebar { + position: absolute; + top: 350px; + right: 32px; + padding: 16px 0; + border-left: 1px solid #adb5bd; + } + .van-index-bar__sidebar > * { + width: 180px; + line-height: 25px; + font-size: 16px; + text-align: left; + color: #999999; + padding: 10px 0 10px 32px; + } + .van-index-bar__index { + position: relative; + } + .van-index-bar__index--active { + font-size: 18px; + } + .van-index-bar__index:first-child:after, + .van-index-bar__index:last-child:after, + .van-index-bar__index:before, + .van-index-bar__index--active:before { + position: absolute; + width: 28px; + height: 100%; + content: " "; + left: -15px; + background-position: center; + background-repeat: no-repeat; + } + .van-index-bar__index:before { + top: 0; + background-image: url("../svg/cursor-index.svg"); + } + .van-index-bar__index--active:before { + background-image: url("../svg/cursor-active.svg"); + } + .van-index-bar__index:first-child:after { + height: 28px; + top: -44px; + background-image: url("../svg/cursor-tag.svg"); + } + .van-index-bar__index:last-child:after { + height: 28px; + bottom: -44px; + background-image: url("../svg/cursor-tag.svg"); + } + +} + +.customer-management-information-form { + width: 100%; + margin-top: 2%; + margin-bottom: 3%; +} +.customer-management-information-form > tr:nth-child(odd) { + background-color: #f7fafc; +} +.customer-management-information-form tr td { + text-align: center; + font-family: "Arial Normal", "Arial"; + color: #333333; + font-size: 16px; + line-height: 20px; + padding: 1% 5px; +} +.customer-management-information-form > tr:nth-child(1) td { + font-size: 14px; + padding: 1% 10px; + color: #999999; +} +.customer-management-information-form > tr:nth-child(1) { + background-color: #f2f2f2; + font-weight: bold; +} +.customer-management-information-form tr { + height: 46px; + line-height: 46px; +} +.customer-management-information-form-title { + display: flex; + justify-content: flex-start; + align-items: center; +} +.customer-management-information-form-title > div:nth-child(2) { + font-size: 18px; + color: #00000099; + font-weight: bold; + font-family: "Arial Normal", "Arial"; +} +.customer-management-information-form-title > div:nth-child(1) { + width: 8px; + height: 8px; + margin-right: 1.5%; + border-radius: 4px; + background-color: rgba(247, 148, 0, 0.4); +} +.customer-management-information-content{ + width: 97%; + margin: 0 auto; +} +.customer-information-master-label { + display: flex; + justify-content: flex-start; + align-items: center; + margin-bottom: 2%; +} +.customer-information-master-label > div:nth-child(1) { + width: 0.595%; + padding-top: 1.99%; + border-radius: 3px; + margin-right: 1%; + background-color: rgba(247, 148, 0, 0.4); +} +.customer-information-master-label > div:nth-child(2) { + font-size: 129%; + font-weight: bold; + padding-top: 0.25%; +} +.header-information, +.header-information-left, +.header-information-right { + display: flex; + justify-content: space-between; + align-items: center; +} +.header-information-left div, +.header-information-right div { + margin: 0 5%; + font-size: 16px; + color: #00000099; + font-family: "Arial Normal", "Arial"; +} +.header-information-left { + width: 40%; +} +.header-information-right { + width: 34%; +} +.customer-data-list { + border: 1px solid #e1e2e3; + padding: 10px 20px; + margin-bottom: 10px; +} +.data-title { + font-weight: bold; + margin-bottom: 10px; + font-size: 16px; +} +.flow-y-dhc { + overflow-x: hidden !important; + overflow-y: auto !important; +} diff --git a/assets/css/index.scss b/assets/css/index.scss new file mode 100644 index 0000000000000000000000000000000000000000..0132a850f7f7c67fb9558b634c5ee3bc6b100e13 --- /dev/null +++ b/assets/css/index.scss @@ -0,0 +1,7 @@ +@import "common.scss"; +@import "bootstrap.min.css"; +@import "vant-cover.scss"; +@import "text.css"; +@import "../icon/general/iconfont.css"; +@import '../iconfont/iconfont.css'; + diff --git a/assets/css/text.css b/assets/css/text.css new file mode 100644 index 0000000000000000000000000000000000000000..f34f0f96c8cd76df54f58363f80bd17fa6779ac0 --- /dev/null +++ b/assets/css/text.css @@ -0,0 +1,95 @@ +/**~~~~~~~~~~~~~~~~~~~~公用的字体样式~~~~~~~~~~~~~~~~~~~~*/ +/**1级标题样式*/ +.text-h1-dhc{ + font-size: 18px; + color: #333333; +} +/**2级标题样式*/ +.text-h2-dhc{ + font-size: 16px; + color: #333333; +} +/**字体加粗*/ +.text-bold-dhc{ + font-weight: 700; +} +/**小标题前面的小方块标识*/ +.text-icon-dhc{ + position: relative; + margin-left: 12px; +} +.text-icon-dhc:before{ + content: ""; + width: 6px; + height: 75%; + position: absolute; + left: -14px; + top: 15%; + background: #009DE5; +} +/**808080的14px字体*/ +.text-80-dhc{ + font-size: 14px; + color: #808080; +} +/**333333的14px字体*/ +.text-33-dhc{ + font-size: 14px; + color: #333333; +} +/**999999的14px字体*/ +.text-99-dhc{ + font-size: 14px; + color: #999999; +} +/**666666的14px字体*/ +.text-66-dhc{ + font-size: 14px; + color: #666666; +} +/**主题色的14px字体*/ +.text-theme-dhc{ + font-size: 14px; + color: #009DE5; +} +/**808080的12px字体*/ +.text-sm-80-dhc{ + font-size: 12px; + color: #808080; +} +/**333333的12px字体*/ +.text-sm-33-dhc{ + font-size: 12px; + color: #333333; +} +/**999999的12px字体*/ +.text-sm-99-dhc{ + font-size: 12px; + color: #999999; +} +/**999999的12px字体*/ +.text-sm-6c-dhc{ + font-size: 12px; + color: #6ca6e0; +} +/**校验错误的提示字 new*/ +.text-err-dhc{ + color: red; + font-size: 12px; +} +/*字体大小尺寸*/ +.font-size-10-dhc { + font-size: 10px; +} +.font-size-12-dhc { + font-size: 12px; +} +.font-size-14-dhc { + font-size: 14px; +} +.font-size-16-dhc { + font-size: 16px; +} +.font-size-18-dhc { + font-size: 18px; +} diff --git a/assets/css/vant-cover.scss b/assets/css/vant-cover.scss new file mode 100644 index 0000000000000000000000000000000000000000..9f42a8249d3c8ee3afbd0cfa0746044d30059490 --- /dev/null +++ b/assets/css/vant-cover.scss @@ -0,0 +1,20 @@ +/** vant样式覆写 */ +.van-nav-bar__content { + height: 60px; + //TODO 更换图片 + background: linear-gradient(0deg, rgba(172, 215, 255, 1) 0%, rgba(11, 84, 224, 1) 100%); + background-size: 100%; + //background: linear-gradient(270deg, rgba(229, 0, 18, 1) 1%, rgba(255, 87, 108, 1) 98%); +} +.van-nav-bar__title { + line-height: 30px; + font-weight: 700; + font-size: 22px; + color: #FFFFFF; +} +.van-nav-bar { + z-index: 99999999; +} +.van-field__label { + color: #999999; +} diff --git a/assets/icon/general/iconfont.css b/assets/icon/general/iconfont.css new file mode 100644 index 0000000000000000000000000000000000000000..c8f24f787fa2849f794b90d3909a3ad693b4dee0 --- /dev/null +++ b/assets/icon/general/iconfont.css @@ -0,0 +1,38 @@ +/* eslint-disable */ +@font-face { + font-family: "iconfont"; /* Project id */ + src: url('iconfont.ttf?t=1631586812301') format('truetype'); +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-zuhuguanli:before { + content: "\e98f"; +} + +.icon-jixiaokaohe:before { + content: "\e991"; +} + +.icon-xiangmuzhongxin:before { + content: "\e993"; +} + +.icon-kehuzhongxin:before { + content: "\e996"; +} + +.icon-yingyongguanli:before { + content: "\e998"; +} + +.icon-yonghuguanli:before { + content: "\e9a1"; +} + diff --git a/assets/icon/general/iconfont.js b/assets/icon/general/iconfont.js new file mode 100644 index 0000000000000000000000000000000000000000..bb3fa452f41a1b3129c72ff6d9d15686cab13e02 --- /dev/null +++ b/assets/icon/general/iconfont.js @@ -0,0 +1,2 @@ +/* eslint-disable */ +!function(a){var l,t,e,c,h,i='',n=(n=document.getElementsByTagName("script"))[n.length-1].getAttribute("data-injectcss"),o=function(a,l){l.parentNode.insertBefore(a,l)};if(n&&!a.__iconfont__svg__cssinject__){a.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}function v(){h||(h=!0,e())}function d(){try{c.documentElement.doScroll("left")}catch(a){return void setTimeout(d,50)}v()}l=function(){var a,l;(l=document.createElement("div")).innerHTML=i,i=null,(a=l.getElementsByTagName("svg")[0])&&(a.setAttribute("aria-hidden","true"),a.style.position="absolute",a.style.width=0,a.style.height=0,a.style.overflow="hidden",l=a,(a=document.body).firstChild?o(l,a.firstChild):a.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(l,0):(t=function(){document.removeEventListener("DOMContentLoaded",t,!1),l()},document.addEventListener("DOMContentLoaded",t,!1)):document.attachEvent&&(e=l,c=a.document,h=!1,d(),c.onreadystatechange=function(){"complete"==c.readyState&&(c.onreadystatechange=null,v())})}(window); diff --git a/assets/icon/general/iconfont.json b/assets/icon/general/iconfont.json new file mode 100644 index 0000000000000000000000000000000000000000..8ea55755312cb20ea0e0cd711a0f8d6fcfccb4c6 --- /dev/null +++ b/assets/icon/general/iconfont.json @@ -0,0 +1,51 @@ +{ + "id": "", + "name": "", + "font_family": "iconfont", + "css_prefix_text": "icon-", + "description": "", + "glyphs": [ + { + "icon_id": "63469694", + "name": "租户管理", + "font_class": "zuhuguanli", + "unicode": "e98f", + "unicode_decimal": 59791 + }, + { + "icon_id": "63469696", + "name": "绩效考核", + "font_class": "jixiaokaohe", + "unicode": "e991", + "unicode_decimal": 59793 + }, + { + "icon_id": "63469698", + "name": "项目中心", + "font_class": "xiangmuzhongxin", + "unicode": "e993", + "unicode_decimal": 59795 + }, + { + "icon_id": "63469701", + "name": "客户中心", + "font_class": "kehuzhongxin", + "unicode": "e996", + "unicode_decimal": 59798 + }, + { + "icon_id": "63469703", + "name": "应用管理", + "font_class": "yingyongguanli", + "unicode": "e998", + "unicode_decimal": 59800 + }, + { + "icon_id": "63469712", + "name": "用户管理", + "font_class": "yonghuguanli", + "unicode": "e9a1", + "unicode_decimal": 59809 + } + ] +} diff --git a/assets/icon/general/iconfont.ttf b/assets/icon/general/iconfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..b8ecb7efe1a21dc4130807cf04bc5a0a6d1db02d Binary files /dev/null and b/assets/icon/general/iconfont.ttf differ diff --git a/assets/iconfont/demo.css b/assets/iconfont/demo.css new file mode 100644 index 0000000000000000000000000000000000000000..a67054a0a030993643b8cbe9f344b34706efa134 --- /dev/null +++ b/assets/iconfont/demo.css @@ -0,0 +1,539 @@ +/* Logo 字体 */ +@font-face { + font-family: "iconfont logo"; + src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834'); + src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg'); +} + +.logo { + font-family: "iconfont logo"; + font-size: 160px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* tabs */ +.nav-tabs { + position: relative; +} + +.nav-tabs .nav-more { + position: absolute; + right: 0; + bottom: 0; + height: 42px; + line-height: 42px; + color: #666; +} + +#tabs { + border-bottom: 1px solid #eee; +} + +#tabs li { + cursor: pointer; + width: 100px; + height: 40px; + line-height: 40px; + text-align: center; + font-size: 16px; + border-bottom: 2px solid transparent; + position: relative; + z-index: 1; + margin-bottom: -1px; + color: #666; +} + + +#tabs .active { + border-bottom-color: #f00; + color: #222; +} + +.tab-container .content { + display: none; +} + +/* 页面布局 */ +.main { + padding: 30px 100px; + width: 960px; + margin: 0 auto; +} + +.main .logo { + color: #333; + text-align: left; + margin-bottom: 30px; + line-height: 1; + height: 110px; + margin-top: -50px; + overflow: hidden; + *zoom: 1; +} + +.main .logo a { + font-size: 160px; + color: #333; +} + +.helps { + margin-top: 40px; +} + +.helps pre { + padding: 20px; + margin: 10px 0; + border: solid 1px #e7e1cd; + background-color: #fffdef; + overflow: auto; +} + +.icon_lists { + width: 100% !important; + overflow: hidden; + *zoom: 1; +} + +.icon_lists li { + width: 100px; + margin-bottom: 10px; + margin-right: 20px; + text-align: center; + list-style: none !important; + cursor: default; +} + +.icon_lists li .code-name { + line-height: 1.2; +} + +.icon_lists .icon { + display: block; + height: 100px; + line-height: 100px; + font-size: 42px; + margin: 10px auto; + color: #333; + -webkit-transition: font-size 0.25s linear, width 0.25s linear; + -moz-transition: font-size 0.25s linear, width 0.25s linear; + transition: font-size 0.25s linear, width 0.25s linear; +} + +.icon_lists .icon:hover { + font-size: 100px; +} + +.icon_lists .svg-icon { + /* 通过设置 font-size 来改变图标大小 */ + width: 1em; + /* 图标和文字相邻时,垂直对齐 */ + vertical-align: -0.15em; + /* 通过设置 color 来改变 SVG 的颜色/fill */ + fill: currentColor; + /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示 + normalize.css 中也包含这行 */ + overflow: hidden; +} + +.icon_lists li .name, +.icon_lists li .code-name { + color: #666; +} + +/* markdown 样式 */ +.markdown { + color: #666; + font-size: 14px; + line-height: 1.8; +} + +.highlight { + line-height: 1.5; +} + +.markdown img { + vertical-align: middle; + max-width: 100%; +} + +.markdown h1 { + color: #404040; + font-weight: 500; + line-height: 40px; + margin-bottom: 24px; +} + +.markdown h2, +.markdown h3, +.markdown h4, +.markdown h5, +.markdown h6 { + color: #404040; + margin: 1.6em 0 0.6em 0; + font-weight: 500; + clear: both; +} + +.markdown h1 { + font-size: 28px; +} + +.markdown h2 { + font-size: 22px; +} + +.markdown h3 { + font-size: 16px; +} + +.markdown h4 { + font-size: 14px; +} + +.markdown h5 { + font-size: 12px; +} + +.markdown h6 { + font-size: 12px; +} + +.markdown hr { + height: 1px; + border: 0; + background: #e9e9e9; + margin: 16px 0; + clear: both; +} + +.markdown p { + margin: 1em 0; +} + +.markdown>p, +.markdown>blockquote, +.markdown>.highlight, +.markdown>ol, +.markdown>ul { + width: 80%; +} + +.markdown ul>li { + list-style: circle; +} + +.markdown>ul li, +.markdown blockquote ul>li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown>ul li p, +.markdown>ol li p { + margin: 0.6em 0; +} + +.markdown ol>li { + list-style: decimal; +} + +.markdown>ol li, +.markdown blockquote ol>li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown code { + margin: 0 3px; + padding: 0 5px; + background: #eee; + border-radius: 3px; +} + +.markdown strong, +.markdown b { + font-weight: 600; +} + +.markdown>table { + border-collapse: collapse; + border-spacing: 0px; + empty-cells: show; + border: 1px solid #e9e9e9; + width: 95%; + margin-bottom: 24px; +} + +.markdown>table th { + white-space: nowrap; + color: #333; + font-weight: 600; +} + +.markdown>table th, +.markdown>table td { + border: 1px solid #e9e9e9; + padding: 8px 16px; + text-align: left; +} + +.markdown>table th { + background: #F7F7F7; +} + +.markdown blockquote { + font-size: 90%; + color: #999; + border-left: 4px solid #e9e9e9; + padding-left: 0.8em; + margin: 1em 0; +} + +.markdown blockquote p { + margin: 0; +} + +.markdown .anchor { + opacity: 0; + transition: opacity 0.3s ease; + margin-left: 8px; +} + +.markdown .waiting { + color: #ccc; +} + +.markdown h1:hover .anchor, +.markdown h2:hover .anchor, +.markdown h3:hover .anchor, +.markdown h4:hover .anchor, +.markdown h5:hover .anchor, +.markdown h6:hover .anchor { + opacity: 1; + display: inline-block; +} + +.markdown>br, +.markdown>p>br { + clear: both; +} + + +.hljs { + display: block; + background: white; + padding: 0.5em; + color: #333333; + overflow-x: auto; +} + +.hljs-comment, +.hljs-meta { + color: #969896; +} + +.hljs-string, +.hljs-variable, +.hljs-template-variable, +.hljs-strong, +.hljs-emphasis, +.hljs-quote { + color: #df5000; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-type { + color: #a71d5d; +} + +.hljs-literal, +.hljs-symbol, +.hljs-bullet, +.hljs-attribute { + color: #0086b3; +} + +.hljs-section, +.hljs-name { + color: #63a35c; +} + +.hljs-tag { + color: #333333; +} + +.hljs-title, +.hljs-attr, +.hljs-selector-id, +.hljs-selector-class, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #795da3; +} + +.hljs-addition { + color: #55a532; + background-color: #eaffea; +} + +.hljs-deletion { + color: #bd2c00; + background-color: #ffecec; +} + +.hljs-link { + text-decoration: underline; +} + +/* 代码高亮 */ +/* PrismJS 1.15.0 +https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"]::-moz-selection, +pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, +code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} + +pre[class*="language-"]::selection, +pre[class*="language-"] ::selection, +code[class*="language-"]::selection, +code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} + +@media print { + + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +:not(pre)>code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} + +/* Inline code */ +:not(pre)>code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} + +.token.punctuation { + color: #999; +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; + background: hsla(0, 0%, 100%, .5); +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} + +.token.function, +.token.class-name { + color: #DD4A68; +} + +.token.regex, +.token.important, +.token.variable { + color: #e90; +} + +.token.important, +.token.bold { + font-weight: bold; +} + +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} diff --git a/assets/iconfont/demo_index.html b/assets/iconfont/demo_index.html new file mode 100644 index 0000000000000000000000000000000000000000..d9a27e8ef7e21b1384e1a967606e213ac8c23d78 --- /dev/null +++ b/assets/iconfont/demo_index.html @@ -0,0 +1,3592 @@ + + + + + iconfont Demo + + + + + + + + + + + + + +
+

+ + +

+ +
+
+
    + +
  • + +
    未签订
    +
    
    +
  • + +
  • + +
    已签订
    +
    
    +
  • + +
  • + +
    已结清
    +
    
    +
  • + +
  • + +
    已发放
    +
    
    +
  • + +
  • + +
    申请中
    +
    
    +
  • + +
  • + +
    积分商城.32x32px
    +
    
    +
  • + +
  • + +
    理财产品.32x32px
    +
    
    +
  • + +
  • + +
    自助贷款.32x32px
    +
    
    +
  • + +
  • + +
    存款利息试算.32x32px
    +
    
    +
  • + +
  • + +
    签署文件.200x200px
    +
    
    +
  • + +
  • + +
    签署文件夹.200x200px-01
    +
    
    +
  • + +
  • + +
    产品.24x24px-客户经理小程序
    +
    
    +
  • + +
  • + +
    产品-选中.24x24px-客户经理小程序
    +
    
    +
  • + +
  • + +
    首页-选中.24x24px-客户经理小程序
    +
    
    +
  • + +
  • + +
    任务新增.50x50px-客户经理小程序
    +
    
    +
  • + +
  • + +
    二维码.18x18px-客户经理小程序
    +
    
    +
  • + +
  • + +
    个人信息.18x18px-客户经理小程序
    +
    
    +
  • + +
  • + +
    我的.24x24px-客户经理小程序
    +
    
    +
  • + +
  • + +
    联系信息.18x18px-客户经理小程序
    +
    
    +
  • + +
  • + +
    等级.32x32px-客户经理小程序
    +
    
    +
  • + +
  • + +
    我的-选中.24x24px-客户经理小程序
    +
    
    +
  • + +
  • + +
    主页.24x24px-客户经理小程序
    +
    
    +
  • + +
  • + +
    邀请关系查询.18x18px-客户经理小程序
    +
    
    +
  • + +
  • + +
    已发放.60x60px
    +
    
    +
  • + +
  • + +
    兑换记录.16x16px
    +
    
    +
  • + +
  • + +
    个人信息.16x16px
    +
    
    +
  • + +
  • + +
    存款利率.24x24px
    +
    
    +
  • + +
  • + +
    可见.20x20px
    +
    
    +
  • + +
  • + +
    成功.64x64px
    +
    
    +
  • + +
  • + +
    免费转账.24x24px
    +
    
    +
  • + +
  • + +
    合作企业.16x16px
    +
    
    +
  • + +
  • + +
    贷款利率.24x24px
    +
    
    +
  • + +
  • + +
    首页-选中.20x20px
    +
    
    +
  • + +
  • + +
    下一页.24x24px
    +
    
    +
  • + +
  • + +
    我的.20x20px
    +
    
    +
  • + +
  • + +
    专属客服.24x24px
    +
    
    +
  • + +
  • + +
    首页.20x20px
    +
    
    +
  • + +
  • + +
    我的贷款.16x16px
    +
    
    +
  • + +
  • + +
    我的-选中.20x20px
    +
    
    +
  • + +
  • + +
    未签署.60x60px
    +
    
    +
  • + +
  • + +
    已签署.60x60px
    +
    
    +
  • + +
  • + +
    已结清.60x60px
    +
    
    +
  • + +
  • + +
    16px搜索󅒐
    +
    
    +
  • + +
  • + +
    身份证人像面140x90px
    +
    
    +
  • + +
  • + +
    16px-取消上传#808080
    +
    
    +
  • + +
  • + +
    14px下一级
    +
    
    +
  • + +
  • + +
    处理20x20px
    +
    
    +
  • + +
  • + +
    审批流程20x20px
    +
    
    +
  • + +
  • + +
    返回24x24px
    +
    
    +
  • + +
  • + +
    日历16x16px
    +
    
    +
  • + +
  • + +
    下拉20x20px
    +
    
    +
  • + +
  • + +
    进入24x24px
    +
    
    +
  • + +
  • + +
    移动审批72x72px
    +
    
    +
  • + +
  • + +
    新增-蓝色30X30px
    +
    
    +
  • + +
  • + +
    企业头像26x26px
    +
    
    +
  • + +
  • + +
    人像100x100px
    +
    
    +
  • + +
  • + +
    联网核查24x24px
    +
    
    +
  • + +
  • +  +
    人脸识别24x24px
    +
    
    +
  • + +
  • + +
    计算器-未选中30x30px
    +
    
    +
  • + +
  • + +
    计算器-选中30x30px
    +
    
    +
  • + +
  • + +
    贷还款测算-未选中30x30px
    +
    
    +
  • + +
  • + +
    贷还款测算-选中30x30px
    +
    
    +
  • + +
  • + +
    通讯录-未选中30x30px
    +
    
    +
  • + +
  • + +
    通讯录-选中30x30px
    +
    
    +
  • + +
  • + +
    全景视图14x14px
    +
    
    +
  • + +
  • + +
    客户移交14x14px
    +
    
    +
  • + +
  • + +
    筛选22x22px
    +
    
    +
  • + +
  • + +
    业务申请情况40x40px
    +
    
    +
  • + +
  • + +
    黑名单客户信息40x40px
    +
    
    +
  • + +
  • + +
    未结清授信业务40x40px
    +
    
    +
  • + +
  • + +
    已结清授信业务40x40px
    +
    
    +
  • + +
  • + +
    为本行客户担保40x40px
    +
    
    +
  • + +
  • + +
    被本行客户担保40x40px
    +
    
    +
  • + +
  • + +
    影像资料40x40px
    +
    
    +
  • + +
  • + +
    生产经营40x40px
    +
    
    +
  • + +
  • + +
    个人资产40x40px
    +
    
    +
  • + +
  • + +
    征信信息40x40px
    +
    
    +
  • + +
  • + +
    家庭成员40x40px
    +
    
    +
  • + +
  • + +
    基本信息40x40px
    +
    
    +
  • + +
  • + +
    点击进入
    +
    
    +
  • + +
  • + +
    100px未调查
    +
    
    +
  • + +
  • +  +
    100px已调查5
    +
    
    +
  • + +
  • + +
    100px已采集2
    +
    
    +
  • + +
  • + +
    100px已采集5
    +
    
    +
  • + +
  • + +
    100px已采集3
    +
    
    +
  • + +
  • + +
    100px已采集1
    +
    
    +
  • + +
  • + +
    100px已调查3
    +
    
    +
  • + +
  • + +
    100px已调查1
    +
    
    +
  • + +
  • + +
    100px已采集4
    +
    
    +
  • + +
  • + +
    100px已调查2
    +
    
    +
  • + +
  • + +
    100px已调查4
    +
    
    +
  • + +
  • + +
    100px未采集
    +
    
    +
  • + +
  • + +
    预授信额度60X60px
    +
    
    +
  • + +
  • + +
    拍摄50x50px
    +
    
    +
  • + +
  • + +
    拍照22x22px
    +
    
    +
  • + +
  • + +
    影像目录文件夹
    +
    
    +
  • + +
  • + +
    调查16X16px
    +
    
    +
  • + +
  • + +
    成功120X120px
    +
    
    +
  • + +
  • + +
    终止16X16px
    +
    
    +
  • + +
  • + +
    检查16X16px
    +
    
    +
  • + +
  • + +
    待开始100X100px
    +
    
    +
  • + +
  • + +
    导航16X16px
    +
    
    +
  • + +
  • + +
    受理16X16px
    +
    
    +
  • + +
  • + +
    电话16X16px
    +
    
    +
  • + +
  • + +
    已完成100X100px
    +
    
    +
  • + +
  • + +
    定位16X16px
    +
    
    +
  • + +
  • + +
    指向20X20px
    +
    
    +
  • + +
  • + +
    查看16X16px
    +
    
    +
  • + +
  • + +
    拒绝16X16px
    +
    
    +
  • + +
  • + +
    30px担保调查2
    +
    
    +
  • + +
  • + +
    60px授信申请
    +
    
    +
  • + +
  • + +
    借款人调查
    +
    
    +
  • + +
  • + +
    非农户信息采集100X100px
    +
    
    +
  • + +
  • + +
    农户信息采集100X100px
    +
    
    +
  • + +
  • + +
    对公客户信息采集100X100px
    +
    
    +
  • + +
  • + +
    头像
    +
    
    +
  • + +
  • + +
    点击分析16x16px
    +
    
    +
  • + +
  • + +
    退出16x16px
    +
    
    +
  • + +
  • + +
    采集授权30X30px.选中
    +
    
    +
  • + +
  • + +
    拍照20X20px
    +
    
    +
  • + +
  • + +
    扫描24X24px
    +
    
    +
  • + +
  • + +
    删除16X16px
    +
    
    +
  • + +
  • + +
    采集授权30X30px
    +
    
    +
  • + +
  • + +
    批量上传16X16px
    +
    
    +
  • + +
  • + +
    详情16X16px
    +
    
    +
  • + +
  • + +
    基本信息30X30px.选中
    +
    
    +
  • + +
  • + +
    预授信30X30px.选中
    +
    
    +
  • + +
  • + +
    基本信息30X30px
    +
    
    +
  • + +
  • + +
    身份核查30X30px
    +
    
    +
  • + +
  • + +
    影像采集30X30px.已选
    +
    
    +
  • + +
  • + +
    预授信30X30px
    +
    
    +
  • + +
  • + +
    影像采集30X30px
    +
    
    +
  • + +
  • + +
    修改16X16px
    +
    
    +
  • + +
  • + +
    身份核查30X30px.选中
    +
    
    +
  • + +
  • + +
    定位40X40px
    +
    
    +
  • + +
  • + +
    关闭20X20px
    +
    
    +
  • + +
  • + +
    人像24X24px
    +
    
    +
  • + +
  • + +
    新增30X30px
    +
    
    +
  • + +
  • + +
    角色切换32x32px
    +
    
    +
  • + +
  • + +
    设置32x32px
    +
    
    +
  • + +
  • +  +
    网点查询32x32px
    +
    
    +
  • + +
  • + +
    产品中心32x32px
    +
    
    +
  • + +
  • + +
    学习培训32x32px
    +
    
    +
  • + +
  • + +
    信息采集32x32px
    +
    
    +
  • + +
  • + +
    辅助工具32x32px
    +
    
    +
  • + +
  • + +
    面对面营销32x32px
    +
    
    +
  • + +
  • + +
    授信管理32x32px
    +
    
    +
  • + +
  • + +
    评级管理32x32px
    +
    
    +
  • + +
+
+

Unicode 引用

+
+ +

Unicode 是字体在网页端最原始的应用方式,特点是:

+
    +
  • 支持按字体的方式去动态调整图标大小,颜色等等。
  • +
  • 默认情况下不支持多色,直接添加多色图标会自动去色。
  • +
+
+

注意:新版 iconfont 支持两种方式引用多色图标:SVG symbol 引用方式和彩色字体图标模式。(使用彩色字体图标需要在「编辑项目」中开启「彩色」选项后并重新生成。)

+
+

Unicode 使用步骤如下:

+

第一步:拷贝项目下面生成的 @font-face

+
@font-face {
+  font-family: 'iconfont';
+  src: url('iconfont.woff2?t=1660790093357') format('woff2'),
+       url('iconfont.woff?t=1660790093357') format('woff'),
+       url('iconfont.ttf?t=1660790093357') format('truetype');
+}
+
+

第二步:定义使用 iconfont 的样式

+
.iconfont {
+  font-family: "iconfont" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+

第三步:挑选相应图标并获取字体编码,应用于页面

+
+<span class="iconfont">&#x33;</span>
+
+
+

"iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

+
+
+
+
+
    + +
  • + +
    + 未签订 +
    +
    .icon-weiqianding +
    +
  • + +
  • + +
    + 已签订 +
    +
    .icon-yiqianding +
    +
  • + +
  • + +
    + 已结清 +
    +
    .icon-yijieqing +
    +
  • + +
  • + +
    + 已发放 +
    +
    .icon-yifafang +
    +
  • + +
  • + +
    + 申请中 +
    +
    .icon-shenqingzhong +
    +
  • + +
  • + +
    + 积分商城.32x32px +
    +
    .icon-a-jifenshangcheng32x32px +
    +
  • + +
  • + +
    + 理财产品.32x32px +
    +
    .icon-a-licaichanpin32x32px +
    +
  • + +
  • + +
    + 自助贷款.32x32px +
    +
    .icon-a-zizhudaikuan32x32px +
    +
  • + +
  • + +
    + 存款利息试算.32x32px +
    +
    .icon-a-cunkuanlixishisuan32x32px +
    +
  • + +
  • + +
    + 签署文件.200x200px +
    +
    .icon-a-qianshuwenjian200x200px +
    +
  • + +
  • + +
    + 签署文件夹.200x200px-01 +
    +
    .icon-a-qianshuwenjianjia200x200px-01 +
    +
  • + +
  • + +
    + 产品.24x24px-客户经理小程序 +
    +
    .icon-a-chanpin24x24px-kehujinglixiaochengxu +
    +
  • + +
  • + +
    + 产品-选中.24x24px-客户经理小程序 +
    +
    .icon-a-chanpin-xuanzhong24x24px-kehujinglixiaochengxu +
    +
  • + +
  • + +
    + 首页-选中.24x24px-客户经理小程序 +
    +
    .icon-a-shouye-xuanzhong24x24px-kehujinglixiaochengxu +
    +
  • + +
  • + +
    + 任务新增.50x50px-客户经理小程序 +
    +
    .icon-a-renwuxinzeng50x50px-kehujinglixiaochengxu +
    +
  • + +
  • + +
    + 二维码.18x18px-客户经理小程序 +
    +
    .icon-a-erweima18x18px-kehujinglixiaochengxu +
    +
  • + +
  • + +
    + 个人信息.18x18px-客户经理小程序 +
    +
    .icon-a-gerenxinxi18x18px-kehujinglixiaochengxu +
    +
  • + +
  • + +
    + 我的.24x24px-客户经理小程序 +
    +
    .icon-a-wode24x24px-kehujinglixiaochengxu +
    +
  • + +
  • + +
    + 联系信息.18x18px-客户经理小程序 +
    +
    .icon-a-lianxixinxi18x18px-kehujinglixiaochengxu +
    +
  • + +
  • + +
    + 等级.32x32px-客户经理小程序 +
    +
    .icon-a-dengji32x32px-kehujinglixiaochengxu +
    +
  • + +
  • + +
    + 我的-选中.24x24px-客户经理小程序 +
    +
    .icon-a-wode-xuanzhong24x24px-kehujinglixiaochengxu +
    +
  • + +
  • + +
    + 主页.24x24px-客户经理小程序 +
    +
    .icon-a-zhuye24x24px-kehujinglixiaochengxu +
    +
  • + +
  • + +
    + 邀请关系查询.18x18px-客户经理小程序 +
    +
    .icon-a-yaoqingguanxichaxun18x18px-kehujinglixiaochengxu +
    +
  • + +
  • + +
    + 已发放.60x60px +
    +
    .icon-a-yifafang60x60px +
    +
  • + +
  • + +
    + 兑换记录.16x16px +
    +
    .icon-a-duihuanjilu16x16px +
    +
  • + +
  • + +
    + 个人信息.16x16px +
    +
    .icon-a-gerenxinxi16x16px +
    +
  • + +
  • + +
    + 存款利率.24x24px +
    +
    .icon-a-cunkuanlishuai24x24px +
    +
  • + +
  • + +
    + 可见.20x20px +
    +
    .icon-a-kejian20x20px +
    +
  • + +
  • + +
    + 成功.64x64px +
    +
    .icon-a-chenggong64x64px +
    +
  • + +
  • + +
    + 免费转账.24x24px +
    +
    .icon-a-mianfeizhuanzhang24x24px +
    +
  • + +
  • + +
    + 合作企业.16x16px +
    +
    .icon-a-hezuoqiye16x16px +
    +
  • + +
  • + +
    + 贷款利率.24x24px +
    +
    .icon-a-daikuanlishuai24x24px +
    +
  • + +
  • + +
    + 首页-选中.20x20px +
    +
    .icon-a-shouye-xuanzhong20x20px +
    +
  • + +
  • + +
    + 下一页.24x24px +
    +
    .icon-a-xiayiye24x24px +
    +
  • + +
  • + +
    + 我的.20x20px +
    +
    .icon-a-wode20x20px +
    +
  • + +
  • + +
    + 专属客服.24x24px +
    +
    .icon-a-zhuanshukefu24x24px +
    +
  • + +
  • + +
    + 首页.20x20px +
    +
    .icon-a-shouye20x20px +
    +
  • + +
  • + +
    + 我的贷款.16x16px +
    +
    .icon-a-wodedaikuan16x16px +
    +
  • + +
  • + +
    + 我的-选中.20x20px +
    +
    .icon-a-wode-xuanzhong20x20px +
    +
  • + +
  • + +
    + 未签署.60x60px +
    +
    .icon-a-weiqianshu60x60px +
    +
  • + +
  • + +
    + 已签署.60x60px +
    +
    .icon-a-yiqianshu60x60px +
    +
  • + +
  • + +
    + 已结清.60x60px +
    +
    .icon-a-yijieqing60x60px +
    +
  • + +
  • + +
    + 16px搜索󅒐 +
    +
    .icon-pxsousuo +
    +
  • + +
  • + +
    + 身份证人像面140x90px +
    +
    .icon-shenfenzhengrenxiangmian140x90px +
    +
  • + +
  • + +
    + 16px-取消上传#808080 +
    +
    .icon-px-quxiaoshangchuan +
    +
  • + +
  • + +
    + 14px下一级 +
    +
    .icon-pxxiayiji +
    +
  • + +
  • + +
    + 处理20x20px +
    +
    .icon-chuli20x20px +
    +
  • + +
  • + +
    + 审批流程20x20px +
    +
    .icon-shenpiliucheng20x20px +
    +
  • + +
  • + +
    + 返回24x24px +
    +
    .icon-fanhui24x24px +
    +
  • + +
  • + +
    + 日历16x16px +
    +
    .icon-rili16x16px +
    +
  • + +
  • + +
    + 下拉20x20px +
    +
    .icon-xiala20x20px +
    +
  • + +
  • + +
    + 进入24x24px +
    +
    .icon-jinru24x24px +
    +
  • + +
  • + +
    + 移动审批72x72px +
    +
    .icon-yidongshenpi72x72px +
    +
  • + +
  • + +
    + 新增-蓝色30X30px +
    +
    .icon-xinzeng-lanse30X30px +
    +
  • + +
  • + +
    + 企业头像26x26px +
    +
    .icon-qiyetouxiang26x26px +
    +
  • + +
  • + +
    + 人像100x100px +
    +
    .icon-renxiang100x100px +
    +
  • + +
  • + +
    + 联网核查24x24px +
    +
    .icon-lianwanghecha24x24px +
    +
  • + +
  • + +
    + 人脸识别24x24px +
    +
    .icon-renlianshibie24x24px +
    +
  • + +
  • + +
    + 计算器-未选中30x30px +
    +
    .icon-jisuanqi-weixuanzhong30x30px +
    +
  • + +
  • + +
    + 计算器-选中30x30px +
    +
    .icon-jisuanqi-xuanzhong30x30px +
    +
  • + +
  • + +
    + 贷还款测算-未选中30x30px +
    +
    .icon-daihuankuancesuan-weixuanzhong30x30px +
    +
  • + +
  • + +
    + 贷还款测算-选中30x30px +
    +
    .icon-daihuankuancesuan-xuanzhong30x30px +
    +
  • + +
  • + +
    + 通讯录-未选中30x30px +
    +
    .icon-tongxunlu-weixuanzhong30x30px +
    +
  • + +
  • + +
    + 通讯录-选中30x30px +
    +
    .icon-tongxunlu-xuanzhong30x30px +
    +
  • + +
  • + +
    + 全景视图14x14px +
    +
    .icon-quanjingshitu14x14px +
    +
  • + +
  • + +
    + 客户移交14x14px +
    +
    .icon-kehuyijiao14x14px +
    +
  • + +
  • + +
    + 筛选22x22px +
    +
    .icon-shaixuan22x22px +
    +
  • + +
  • + +
    + 业务申请情况40x40px +
    +
    .icon-yewushenqingqingkuang40x40px +
    +
  • + +
  • + +
    + 黑名单客户信息40x40px +
    +
    .icon-heimingdankehuxinxi40x40px +
    +
  • + +
  • + +
    + 未结清授信业务40x40px +
    +
    .icon-weijieqingshouxinyewu40x40px +
    +
  • + +
  • + +
    + 已结清授信业务40x40px +
    +
    .icon-yijieqingshouxinyewu40x40px +
    +
  • + +
  • + +
    + 为本行客户担保40x40px +
    +
    .icon-weibenhangkehudanbao40x40px +
    +
  • + +
  • + +
    + 被本行客户担保40x40px +
    +
    .icon-beibenhangkehudanbao40x40px +
    +
  • + +
  • + +
    + 影像资料40x40px +
    +
    .icon-yingxiangziliao40x40px +
    +
  • + +
  • + +
    + 生产经营40x40px +
    +
    .icon-shengchanjingying40x40px +
    +
  • + +
  • + +
    + 个人资产40x40px +
    +
    .icon-gerenzichan40x40px +
    +
  • + +
  • + +
    + 征信信息40x40px +
    +
    .icon-zhengxinxinxi40x40px +
    +
  • + +
  • + +
    + 家庭成员40x40px +
    +
    .icon-jiatingchengyuan40x40px +
    +
  • + +
  • + +
    + 基本信息40x40px +
    +
    .icon-jibenxinxi40x40px +
    +
  • + +
  • + +
    + 点击进入 +
    +
    .icon-dianjijinru +
    +
  • + +
  • + +
    + 100px未调查 +
    +
    .icon-a-100pxweitiaocha +
    +
  • + +
  • + +
    + 100px已调查5 +
    +
    .icon-a-100pxyitiaocha5 +
    +
  • + +
  • + +
    + 100px已采集2 +
    +
    .icon-a-100pxyicaiji2 +
    +
  • + +
  • + +
    + 100px已采集5 +
    +
    .icon-a-100pxyicaiji5 +
    +
  • + +
  • + +
    + 100px已采集3 +
    +
    .icon-a-100pxyicaiji3 +
    +
  • + +
  • + +
    + 100px已采集1 +
    +
    .icon-a-100pxyicaiji1 +
    +
  • + +
  • + +
    + 100px已调查3 +
    +
    .icon-a-100pxyitiaocha3 +
    +
  • + +
  • + +
    + 100px已调查1 +
    +
    .icon-a-100pxyitiaocha1 +
    +
  • + +
  • + +
    + 100px已采集4 +
    +
    .icon-a-100pxyicaiji4 +
    +
  • + +
  • + +
    + 100px已调查2 +
    +
    .icon-a-100pxyitiaocha2 +
    +
  • + +
  • + +
    + 100px已调查4 +
    +
    .icon-a-100pxyitiaocha4 +
    +
  • + +
  • + +
    + 100px未采集 +
    +
    .icon-a-100pxweicaiji +
    +
  • + +
  • + +
    + 预授信额度60X60px +
    +
    .icon-yushouxinedu60X60px-01 +
    +
  • + +
  • + +
    + 拍摄50x50px +
    +
    .icon-paishe50x50px +
    +
  • + +
  • + +
    + 拍照22x22px +
    +
    .icon-paizhao22x22px +
    +
  • + +
  • + +
    + 影像目录文件夹 +
    +
    .icon-yingxiangmuluwenjianjia +
    +
  • + +
  • + +
    + 调查16X16px +
    +
    .icon-tiaocha16X16px +
    +
  • + +
  • + +
    + 成功120X120px +
    +
    .icon-chenggong120X120px +
    +
  • + +
  • + +
    + 终止16X16px +
    +
    .icon-zhongzhi16X16px +
    +
  • + +
  • + +
    + 检查16X16px +
    +
    .icon-jiancha16X16px +
    +
  • + +
  • + +
    + 待开始100X100px +
    +
    .icon-daikaishi100X100px +
    +
  • + +
  • + +
    + 导航16X16px +
    +
    .icon-daohang16X16px +
    +
  • + +
  • + +
    + 受理16X16px +
    +
    .icon-shouli16X16px +
    +
  • + +
  • + +
    + 电话16X16px +
    +
    .icon-dianhua16X16px +
    +
  • + +
  • + +
    + 已完成100X100px +
    +
    .icon-yiwancheng100X100px +
    +
  • + +
  • + +
    + 定位16X16px +
    +
    .icon-dingwei16X16px +
    +
  • + +
  • + +
    + 指向20X20px +
    +
    .icon-zhixiang20X20px +
    +
  • + +
  • + +
    + 查看16X16px +
    +
    .icon-chakan16X16px +
    +
  • + +
  • + +
    + 拒绝16X16px +
    +
    .icon-jujue16X16px +
    +
  • + +
  • + +
    + 30px担保调查2 +
    +
    .icon-pxdanbaotiaocha1 +
    +
  • + +
  • + +
    + 60px授信申请 +
    +
    .icon-pxshouxinshenqing +
    +
  • + +
  • + +
    + 借款人调查 +
    +
    .icon-jiekuanrentiaocha +
    +
  • + +
  • + +
    + 非农户信息采集100X100px +
    +
    .icon-feinonghuxinxicaiji100X100px +
    +
  • + +
  • + +
    + 农户信息采集100X100px +
    +
    .icon-nonghuxinxicaiji100X100px +
    +
  • + +
  • + +
    + 对公客户信息采集100X100px +
    +
    .icon-duigongkehuxinxicaiji100X100px +
    +
  • + +
  • + +
    + 头像 +
    +
    .icon-touxiang +
    +
  • + +
  • + +
    + 点击分析16x16px +
    +
    .icon-dianjifenxi16x16px +
    +
  • + +
  • + +
    + 退出16x16px +
    +
    .icon-tuichu16x16px +
    +
  • + +
  • + +
    + 采集授权30X30px.选中 +
    +
    .icon-a-caijishouquan30X30pxxuanzhong +
    +
  • + +
  • + +
    + 拍照20X20px +
    +
    .icon-paizhao20X20px +
    +
  • + +
  • + +
    + 扫描24X24px +
    +
    .icon-saomiao24X24px +
    +
  • + +
  • + +
    + 删除16X16px +
    +
    .icon-shanchu16X16px +
    +
  • + +
  • + +
    + 采集授权30X30px +
    +
    .icon-caijishouquan30X30px +
    +
  • + +
  • + +
    + 批量上传16X16px +
    +
    .icon-piliangshangchuan16X16px +
    +
  • + +
  • + +
    + 详情16X16px +
    +
    .icon-xiangqing16X16px +
    +
  • + +
  • + +
    + 基本信息30X30px.选中 +
    +
    .icon-a-jibenxinxi30X30pxxuanzhong +
    +
  • + +
  • + +
    + 预授信30X30px.选中 +
    +
    .icon-a-yushouxin30X30pxxuanzhong +
    +
  • + +
  • + +
    + 基本信息30X30px +
    +
    .icon-jibenxinxi30X30px +
    +
  • + +
  • + +
    + 身份核查30X30px +
    +
    .icon-shenfenhecha30X30px +
    +
  • + +
  • + +
    + 影像采集30X30px.已选 +
    +
    .icon-a-yingxiangcaiji30X30pxyixuan +
    +
  • + +
  • + +
    + 预授信30X30px +
    +
    .icon-yushouxin30X30px +
    +
  • + +
  • + +
    + 影像采集30X30px +
    +
    .icon-yingxiangcaiji30X30px +
    +
  • + +
  • + +
    + 修改16X16px +
    +
    .icon-xiugai16X16px +
    +
  • + +
  • + +
    + 身份核查30X30px.选中 +
    +
    .icon-a-shenfenhecha30X30pxxuanzhong +
    +
  • + +
  • + +
    + 定位40X40px +
    +
    .icon-dingwei40X40px +
    +
  • + +
  • + +
    + 关闭20X20px +
    +
    .icon-guanbi20X20px +
    +
  • + +
  • + +
    + 人像24X24px +
    +
    .icon-renxiang24X24px +
    +
  • + +
  • + +
    + 新增30X30px +
    +
    .icon-xinzeng30X30px +
    +
  • + +
  • + +
    + 角色切换32x32px +
    +
    .icon-jiaoseqiehuan32x32px +
    +
  • + +
  • + +
    + 设置32x32px +
    +
    .icon-shezhi32x32px +
    +
  • + +
  • + +
    + 网点查询32x32px +
    +
    .icon-wangdianchaxun32x32px +
    +
  • + +
  • + +
    + 产品中心32x32px +
    +
    .icon-chanpinzhongxin32x32px +
    +
  • + +
  • + +
    + 学习培训32x32px +
    +
    .icon-xuexipeixun32x32px +
    +
  • + +
  • + +
    + 信息采集32x32px +
    +
    .icon-xinxicaiji32x32px +
    +
  • + +
  • + +
    + 辅助工具32x32px +
    +
    .icon-fuzhugongju32x32px +
    +
  • + +
  • + +
    + 面对面营销32x32px +
    +
    .icon-mianduimianyingxiao32x32px +
    +
  • + +
  • + +
    + 授信管理32x32px +
    +
    .icon-shouxinguanli32x32px +
    +
  • + +
  • + +
    + 评级管理32x32px +
    +
    .icon-pingjiguanli32x32px +
    +
  • + +
+
+

font-class 引用

+
+ +

font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。

+

与 Unicode 使用方式相比,具有如下特点:

+
    +
  • 相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。
  • +
  • 因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。
  • +
+

使用步骤如下:

+

第一步:引入项目下面生成的 fontclass 代码:

+
<link rel="stylesheet" href="./iconfont.css">
+
+

第二步:挑选相应图标并获取类名,应用于页面:

+
<span class="iconfont icon-xxx"></span>
+
+
+

" + iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

+
+
+
+
+
    + +
  • + +
    未签订
    +
    #icon-weiqianding
    +
  • + +
  • + +
    已签订
    +
    #icon-yiqianding
    +
  • + +
  • + +
    已结清
    +
    #icon-yijieqing
    +
  • + +
  • + +
    已发放
    +
    #icon-yifafang
    +
  • + +
  • + +
    申请中
    +
    #icon-shenqingzhong
    +
  • + +
  • + +
    积分商城.32x32px
    +
    #icon-a-jifenshangcheng32x32px
    +
  • + +
  • + +
    理财产品.32x32px
    +
    #icon-a-licaichanpin32x32px
    +
  • + +
  • + +
    自助贷款.32x32px
    +
    #icon-a-zizhudaikuan32x32px
    +
  • + +
  • + +
    存款利息试算.32x32px
    +
    #icon-a-cunkuanlixishisuan32x32px
    +
  • + +
  • + +
    签署文件.200x200px
    +
    #icon-a-qianshuwenjian200x200px
    +
  • + +
  • + +
    签署文件夹.200x200px-01
    +
    #icon-a-qianshuwenjianjia200x200px-01
    +
  • + +
  • + +
    产品.24x24px-客户经理小程序
    +
    #icon-a-chanpin24x24px-kehujinglixiaochengxu
    +
  • + +
  • + +
    产品-选中.24x24px-客户经理小程序
    +
    #icon-a-chanpin-xuanzhong24x24px-kehujinglixiaochengxu
    +
  • + +
  • + +
    首页-选中.24x24px-客户经理小程序
    +
    #icon-a-shouye-xuanzhong24x24px-kehujinglixiaochengxu
    +
  • + +
  • + +
    任务新增.50x50px-客户经理小程序
    +
    #icon-a-renwuxinzeng50x50px-kehujinglixiaochengxu
    +
  • + +
  • + +
    二维码.18x18px-客户经理小程序
    +
    #icon-a-erweima18x18px-kehujinglixiaochengxu
    +
  • + +
  • + +
    个人信息.18x18px-客户经理小程序
    +
    #icon-a-gerenxinxi18x18px-kehujinglixiaochengxu
    +
  • + +
  • + +
    我的.24x24px-客户经理小程序
    +
    #icon-a-wode24x24px-kehujinglixiaochengxu
    +
  • + +
  • + +
    联系信息.18x18px-客户经理小程序
    +
    #icon-a-lianxixinxi18x18px-kehujinglixiaochengxu
    +
  • + +
  • + +
    等级.32x32px-客户经理小程序
    +
    #icon-a-dengji32x32px-kehujinglixiaochengxu
    +
  • + +
  • + +
    我的-选中.24x24px-客户经理小程序
    +
    #icon-a-wode-xuanzhong24x24px-kehujinglixiaochengxu
    +
  • + +
  • + +
    主页.24x24px-客户经理小程序
    +
    #icon-a-zhuye24x24px-kehujinglixiaochengxu
    +
  • + +
  • + +
    邀请关系查询.18x18px-客户经理小程序
    +
    #icon-a-yaoqingguanxichaxun18x18px-kehujinglixiaochengxu
    +
  • + +
  • + +
    已发放.60x60px
    +
    #icon-a-yifafang60x60px
    +
  • + +
  • + +
    兑换记录.16x16px
    +
    #icon-a-duihuanjilu16x16px
    +
  • + +
  • + +
    个人信息.16x16px
    +
    #icon-a-gerenxinxi16x16px
    +
  • + +
  • + +
    存款利率.24x24px
    +
    #icon-a-cunkuanlishuai24x24px
    +
  • + +
  • + +
    可见.20x20px
    +
    #icon-a-kejian20x20px
    +
  • + +
  • + +
    成功.64x64px
    +
    #icon-a-chenggong64x64px
    +
  • + +
  • + +
    免费转账.24x24px
    +
    #icon-a-mianfeizhuanzhang24x24px
    +
  • + +
  • + +
    合作企业.16x16px
    +
    #icon-a-hezuoqiye16x16px
    +
  • + +
  • + +
    贷款利率.24x24px
    +
    #icon-a-daikuanlishuai24x24px
    +
  • + +
  • + +
    首页-选中.20x20px
    +
    #icon-a-shouye-xuanzhong20x20px
    +
  • + +
  • + +
    下一页.24x24px
    +
    #icon-a-xiayiye24x24px
    +
  • + +
  • + +
    我的.20x20px
    +
    #icon-a-wode20x20px
    +
  • + +
  • + +
    专属客服.24x24px
    +
    #icon-a-zhuanshukefu24x24px
    +
  • + +
  • + +
    首页.20x20px
    +
    #icon-a-shouye20x20px
    +
  • + +
  • + +
    我的贷款.16x16px
    +
    #icon-a-wodedaikuan16x16px
    +
  • + +
  • + +
    我的-选中.20x20px
    +
    #icon-a-wode-xuanzhong20x20px
    +
  • + +
  • + +
    未签署.60x60px
    +
    #icon-a-weiqianshu60x60px
    +
  • + +
  • + +
    已签署.60x60px
    +
    #icon-a-yiqianshu60x60px
    +
  • + +
  • + +
    已结清.60x60px
    +
    #icon-a-yijieqing60x60px
    +
  • + +
  • + +
    16px搜索󅒐
    +
    #icon-pxsousuo
    +
  • + +
  • + +
    身份证人像面140x90px
    +
    #icon-shenfenzhengrenxiangmian140x90px
    +
  • + +
  • + +
    16px-取消上传#808080
    +
    #icon-px-quxiaoshangchuan
    +
  • + +
  • + +
    14px下一级
    +
    #icon-pxxiayiji
    +
  • + +
  • + +
    处理20x20px
    +
    #icon-chuli20x20px
    +
  • + +
  • + +
    审批流程20x20px
    +
    #icon-shenpiliucheng20x20px
    +
  • + +
  • + +
    返回24x24px
    +
    #icon-fanhui24x24px
    +
  • + +
  • + +
    日历16x16px
    +
    #icon-rili16x16px
    +
  • + +
  • + +
    下拉20x20px
    +
    #icon-xiala20x20px
    +
  • + +
  • + +
    进入24x24px
    +
    #icon-jinru24x24px
    +
  • + +
  • + +
    移动审批72x72px
    +
    #icon-yidongshenpi72x72px
    +
  • + +
  • + +
    新增-蓝色30X30px
    +
    #icon-xinzeng-lanse30X30px
    +
  • + +
  • + +
    企业头像26x26px
    +
    #icon-qiyetouxiang26x26px
    +
  • + +
  • + +
    人像100x100px
    +
    #icon-renxiang100x100px
    +
  • + +
  • + +
    联网核查24x24px
    +
    #icon-lianwanghecha24x24px
    +
  • + +
  • + +
    人脸识别24x24px
    +
    #icon-renlianshibie24x24px
    +
  • + +
  • + +
    计算器-未选中30x30px
    +
    #icon-jisuanqi-weixuanzhong30x30px
    +
  • + +
  • + +
    计算器-选中30x30px
    +
    #icon-jisuanqi-xuanzhong30x30px
    +
  • + +
  • + +
    贷还款测算-未选中30x30px
    +
    #icon-daihuankuancesuan-weixuanzhong30x30px
    +
  • + +
  • + +
    贷还款测算-选中30x30px
    +
    #icon-daihuankuancesuan-xuanzhong30x30px
    +
  • + +
  • + +
    通讯录-未选中30x30px
    +
    #icon-tongxunlu-weixuanzhong30x30px
    +
  • + +
  • + +
    通讯录-选中30x30px
    +
    #icon-tongxunlu-xuanzhong30x30px
    +
  • + +
  • + +
    全景视图14x14px
    +
    #icon-quanjingshitu14x14px
    +
  • + +
  • + +
    客户移交14x14px
    +
    #icon-kehuyijiao14x14px
    +
  • + +
  • + +
    筛选22x22px
    +
    #icon-shaixuan22x22px
    +
  • + +
  • + +
    业务申请情况40x40px
    +
    #icon-yewushenqingqingkuang40x40px
    +
  • + +
  • + +
    黑名单客户信息40x40px
    +
    #icon-heimingdankehuxinxi40x40px
    +
  • + +
  • + +
    未结清授信业务40x40px
    +
    #icon-weijieqingshouxinyewu40x40px
    +
  • + +
  • + +
    已结清授信业务40x40px
    +
    #icon-yijieqingshouxinyewu40x40px
    +
  • + +
  • + +
    为本行客户担保40x40px
    +
    #icon-weibenhangkehudanbao40x40px
    +
  • + +
  • + +
    被本行客户担保40x40px
    +
    #icon-beibenhangkehudanbao40x40px
    +
  • + +
  • + +
    影像资料40x40px
    +
    #icon-yingxiangziliao40x40px
    +
  • + +
  • + +
    生产经营40x40px
    +
    #icon-shengchanjingying40x40px
    +
  • + +
  • + +
    个人资产40x40px
    +
    #icon-gerenzichan40x40px
    +
  • + +
  • + +
    征信信息40x40px
    +
    #icon-zhengxinxinxi40x40px
    +
  • + +
  • + +
    家庭成员40x40px
    +
    #icon-jiatingchengyuan40x40px
    +
  • + +
  • + +
    基本信息40x40px
    +
    #icon-jibenxinxi40x40px
    +
  • + +
  • + +
    点击进入
    +
    #icon-dianjijinru
    +
  • + +
  • + +
    100px未调查
    +
    #icon-a-100pxweitiaocha
    +
  • + +
  • + +
    100px已调查5
    +
    #icon-a-100pxyitiaocha5
    +
  • + +
  • + +
    100px已采集2
    +
    #icon-a-100pxyicaiji2
    +
  • + +
  • + +
    100px已采集5
    +
    #icon-a-100pxyicaiji5
    +
  • + +
  • + +
    100px已采集3
    +
    #icon-a-100pxyicaiji3
    +
  • + +
  • + +
    100px已采集1
    +
    #icon-a-100pxyicaiji1
    +
  • + +
  • + +
    100px已调查3
    +
    #icon-a-100pxyitiaocha3
    +
  • + +
  • + +
    100px已调查1
    +
    #icon-a-100pxyitiaocha1
    +
  • + +
  • + +
    100px已采集4
    +
    #icon-a-100pxyicaiji4
    +
  • + +
  • + +
    100px已调查2
    +
    #icon-a-100pxyitiaocha2
    +
  • + +
  • + +
    100px已调查4
    +
    #icon-a-100pxyitiaocha4
    +
  • + +
  • + +
    100px未采集
    +
    #icon-a-100pxweicaiji
    +
  • + +
  • + +
    预授信额度60X60px
    +
    #icon-yushouxinedu60X60px-01
    +
  • + +
  • + +
    拍摄50x50px
    +
    #icon-paishe50x50px
    +
  • + +
  • + +
    拍照22x22px
    +
    #icon-paizhao22x22px
    +
  • + +
  • + +
    影像目录文件夹
    +
    #icon-yingxiangmuluwenjianjia
    +
  • + +
  • + +
    调查16X16px
    +
    #icon-tiaocha16X16px
    +
  • + +
  • + +
    成功120X120px
    +
    #icon-chenggong120X120px
    +
  • + +
  • + +
    终止16X16px
    +
    #icon-zhongzhi16X16px
    +
  • + +
  • + +
    检查16X16px
    +
    #icon-jiancha16X16px
    +
  • + +
  • + +
    待开始100X100px
    +
    #icon-daikaishi100X100px
    +
  • + +
  • + +
    导航16X16px
    +
    #icon-daohang16X16px
    +
  • + +
  • + +
    受理16X16px
    +
    #icon-shouli16X16px
    +
  • + +
  • + +
    电话16X16px
    +
    #icon-dianhua16X16px
    +
  • + +
  • + +
    已完成100X100px
    +
    #icon-yiwancheng100X100px
    +
  • + +
  • + +
    定位16X16px
    +
    #icon-dingwei16X16px
    +
  • + +
  • + +
    指向20X20px
    +
    #icon-zhixiang20X20px
    +
  • + +
  • + +
    查看16X16px
    +
    #icon-chakan16X16px
    +
  • + +
  • + +
    拒绝16X16px
    +
    #icon-jujue16X16px
    +
  • + +
  • + +
    30px担保调查2
    +
    #icon-pxdanbaotiaocha1
    +
  • + +
  • + +
    60px授信申请
    +
    #icon-pxshouxinshenqing
    +
  • + +
  • + +
    借款人调查
    +
    #icon-jiekuanrentiaocha
    +
  • + +
  • + +
    非农户信息采集100X100px
    +
    #icon-feinonghuxinxicaiji100X100px
    +
  • + +
  • + +
    农户信息采集100X100px
    +
    #icon-nonghuxinxicaiji100X100px
    +
  • + +
  • + +
    对公客户信息采集100X100px
    +
    #icon-duigongkehuxinxicaiji100X100px
    +
  • + +
  • + +
    头像
    +
    #icon-touxiang
    +
  • + +
  • + +
    点击分析16x16px
    +
    #icon-dianjifenxi16x16px
    +
  • + +
  • + +
    退出16x16px
    +
    #icon-tuichu16x16px
    +
  • + +
  • + +
    采集授权30X30px.选中
    +
    #icon-a-caijishouquan30X30pxxuanzhong
    +
  • + +
  • + +
    拍照20X20px
    +
    #icon-paizhao20X20px
    +
  • + +
  • + +
    扫描24X24px
    +
    #icon-saomiao24X24px
    +
  • + +
  • + +
    删除16X16px
    +
    #icon-shanchu16X16px
    +
  • + +
  • + +
    采集授权30X30px
    +
    #icon-caijishouquan30X30px
    +
  • + +
  • + +
    批量上传16X16px
    +
    #icon-piliangshangchuan16X16px
    +
  • + +
  • + +
    详情16X16px
    +
    #icon-xiangqing16X16px
    +
  • + +
  • + +
    基本信息30X30px.选中
    +
    #icon-a-jibenxinxi30X30pxxuanzhong
    +
  • + +
  • + +
    预授信30X30px.选中
    +
    #icon-a-yushouxin30X30pxxuanzhong
    +
  • + +
  • + +
    基本信息30X30px
    +
    #icon-jibenxinxi30X30px
    +
  • + +
  • + +
    身份核查30X30px
    +
    #icon-shenfenhecha30X30px
    +
  • + +
  • + +
    影像采集30X30px.已选
    +
    #icon-a-yingxiangcaiji30X30pxyixuan
    +
  • + +
  • + +
    预授信30X30px
    +
    #icon-yushouxin30X30px
    +
  • + +
  • + +
    影像采集30X30px
    +
    #icon-yingxiangcaiji30X30px
    +
  • + +
  • + +
    修改16X16px
    +
    #icon-xiugai16X16px
    +
  • + +
  • + +
    身份核查30X30px.选中
    +
    #icon-a-shenfenhecha30X30pxxuanzhong
    +
  • + +
  • + +
    定位40X40px
    +
    #icon-dingwei40X40px
    +
  • + +
  • + +
    关闭20X20px
    +
    #icon-guanbi20X20px
    +
  • + +
  • + +
    人像24X24px
    +
    #icon-renxiang24X24px
    +
  • + +
  • + +
    新增30X30px
    +
    #icon-xinzeng30X30px
    +
  • + +
  • + +
    角色切换32x32px
    +
    #icon-jiaoseqiehuan32x32px
    +
  • + +
  • + +
    设置32x32px
    +
    #icon-shezhi32x32px
    +
  • + +
  • + +
    网点查询32x32px
    +
    #icon-wangdianchaxun32x32px
    +
  • + +
  • + +
    产品中心32x32px
    +
    #icon-chanpinzhongxin32x32px
    +
  • + +
  • + +
    学习培训32x32px
    +
    #icon-xuexipeixun32x32px
    +
  • + +
  • + +
    信息采集32x32px
    +
    #icon-xinxicaiji32x32px
    +
  • + +
  • + +
    辅助工具32x32px
    +
    #icon-fuzhugongju32x32px
    +
  • + +
  • + +
    面对面营销32x32px
    +
    #icon-mianduimianyingxiao32x32px
    +
  • + +
  • + +
    授信管理32x32px
    +
    #icon-shouxinguanli32x32px
    +
  • + +
  • + +
    评级管理32x32px
    +
    #icon-pingjiguanli32x32px
    +
  • + +
+
+

Symbol 引用

+
+ +

这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇文章 + 这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:

+
    +
  • 支持多色图标了,不再受单色限制。
  • +
  • 通过一些技巧,支持像字体那样,通过 font-size, color 来调整样式。
  • +
  • 兼容性较差,支持 IE9+,及现代浏览器。
  • +
  • 浏览器渲染 SVG 的性能一般,还不如 png。
  • +
+

使用步骤如下:

+

第一步:引入项目下面生成的 symbol 代码:

+
<script src="./iconfont.js"></script>
+
+

第二步:加入通用 CSS 代码(引入一次就行):

+
<style>
+.icon {
+  width: 1em;
+  height: 1em;
+  vertical-align: -0.15em;
+  fill: currentColor;
+  overflow: hidden;
+}
+</style>
+
+

第三步:挑选相应图标并获取类名,应用于页面:

+
<svg class="icon" aria-hidden="true">
+  <use xlink:href="#icon-xxx"></use>
+</svg>
+
+
+
+ +
+
+ + + diff --git a/assets/iconfont/iconfont.css b/assets/iconfont/iconfont.css new file mode 100644 index 0000000000000000000000000000000000000000..0a7b09b165dbb08a62afea5a2511e6e3ab8bac13 --- /dev/null +++ b/assets/iconfont/iconfont.css @@ -0,0 +1,607 @@ +@font-face { + font-family: "iconfont"; /* Project id 3289090 */ + src: url('iconfont.woff2?t=1660790093357') format('woff2'), + url('iconfont.woff?t=1660790093357') format('woff'), + url('iconfont.ttf?t=1660790093357') format('truetype'); +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-weiqianding:before { + content: "\ed8d"; +} + +.icon-yiqianding:before { + content: "\ed8e"; +} + +.icon-yijieqing:before { + content: "\ed8a"; +} + +.icon-yifafang:before { + content: "\ed8b"; +} + +.icon-shenqingzhong:before { + content: "\ed8c"; +} + +.icon-a-jifenshangcheng32x32px:before { + content: "\ed76"; +} + +.icon-a-licaichanpin32x32px:before { + content: "\ed77"; +} + +.icon-a-zizhudaikuan32x32px:before { + content: "\ed78"; +} + +.icon-a-cunkuanlixishisuan32x32px:before { + content: "\ed79"; +} + +.icon-a-qianshuwenjian200x200px:before { + content: "\ed74"; +} + +.icon-a-qianshuwenjianjia200x200px-01:before { + content: "\ed75"; +} + +.icon-a-chanpin24x24px-kehujinglixiaochengxu:before { + content: "\ed68"; +} + +.icon-a-chanpin-xuanzhong24x24px-kehujinglixiaochengxu:before { + content: "\ed69"; +} + +.icon-a-shouye-xuanzhong24x24px-kehujinglixiaochengxu:before { + content: "\ed6a"; +} + +.icon-a-renwuxinzeng50x50px-kehujinglixiaochengxu:before { + content: "\ed6b"; +} + +.icon-a-erweima18x18px-kehujinglixiaochengxu:before { + content: "\ed6c"; +} + +.icon-a-gerenxinxi18x18px-kehujinglixiaochengxu:before { + content: "\ed6d"; +} + +.icon-a-wode24x24px-kehujinglixiaochengxu:before { + content: "\ed6e"; +} + +.icon-a-lianxixinxi18x18px-kehujinglixiaochengxu:before { + content: "\ed6f"; +} + +.icon-a-dengji32x32px-kehujinglixiaochengxu:before { + content: "\ed70"; +} + +.icon-a-wode-xuanzhong24x24px-kehujinglixiaochengxu:before { + content: "\ed71"; +} + +.icon-a-zhuye24x24px-kehujinglixiaochengxu:before { + content: "\ed72"; +} + +.icon-a-yaoqingguanxichaxun18x18px-kehujinglixiaochengxu:before { + content: "\ed73"; +} + +.icon-a-yifafang60x60px:before { + content: "\ed67"; +} + +.icon-a-duihuanjilu16x16px:before { + content: "\ed55"; +} + +.icon-a-gerenxinxi16x16px:before { + content: "\ed56"; +} + +.icon-a-cunkuanlishuai24x24px:before { + content: "\ed57"; +} + +.icon-a-kejian20x20px:before { + content: "\ed58"; +} + +.icon-a-chenggong64x64px:before { + content: "\ed59"; +} + +.icon-a-mianfeizhuanzhang24x24px:before { + content: "\ed5a"; +} + +.icon-a-hezuoqiye16x16px:before { + content: "\ed5b"; +} + +.icon-a-daikuanlishuai24x24px:before { + content: "\ed5c"; +} + +.icon-a-shouye-xuanzhong20x20px:before { + content: "\ed5d"; +} + +.icon-a-xiayiye24x24px:before { + content: "\ed5e"; +} + +.icon-a-wode20x20px:before { + content: "\ed5f"; +} + +.icon-a-zhuanshukefu24x24px:before { + content: "\ed60"; +} + +.icon-a-shouye20x20px:before { + content: "\ed61"; +} + +.icon-a-wodedaikuan16x16px:before { + content: "\ed62"; +} + +.icon-a-wode-xuanzhong20x20px:before { + content: "\ed63"; +} + +.icon-a-weiqianshu60x60px:before { + content: "\ed64"; +} + +.icon-a-yiqianshu60x60px:before { + content: "\ed65"; +} + +.icon-a-yijieqing60x60px:before { + content: "\ed66"; +} + +.icon-pxsousuo:before { + content: "\e701"; +} + +.icon-shenfenzhengrenxiangmian140x90px:before { + content: "\e92a"; +} + +.icon-px-quxiaoshangchuan:before { + content: "\e7e7"; +} + +.icon-pxxiayiji:before { + content: "\e804"; +} + +.icon-chuli20x20px:before { + content: "\ed46"; +} + +.icon-shenpiliucheng20x20px:before { + content: "\ed47"; +} + +.icon-fanhui24x24px:before { + content: "\ed44"; +} + +.icon-rili16x16px:before { + content: "\ed45"; +} + +.icon-xiala20x20px:before { + content: "\ed43"; +} + +.icon-jinru24x24px:before { + content: "\ed41"; +} + +.icon-yidongshenpi72x72px:before { + content: "\ed42"; +} + +.icon-xinzeng-lanse30X30px:before { + content: "\ed40"; +} + +.icon-qiyetouxiang26x26px:before { + content: "\ed3c"; +} + +.icon-renxiang100x100px:before { + content: "\ed3d"; +} + +.icon-lianwanghecha24x24px:before { + content: "\ed3e"; +} + +.icon-renlianshibie24x24px:before { + content: "\ed3f"; +} + +.icon-jisuanqi-weixuanzhong30x30px:before { + content: "\ed3a"; +} + +.icon-jisuanqi-xuanzhong30x30px:before { + content: "\ed3b"; +} + +.icon-daihuankuancesuan-weixuanzhong30x30px:before { + content: "\ed38"; +} + +.icon-daihuankuancesuan-xuanzhong30x30px:before { + content: "\ed39"; +} + +.icon-tongxunlu-weixuanzhong30x30px:before { + content: "\ed36"; +} + +.icon-tongxunlu-xuanzhong30x30px:before { + content: "\ed37"; +} + +.icon-quanjingshitu14x14px:before { + content: "\ed34"; +} + +.icon-kehuyijiao14x14px:before { + content: "\ed35"; +} + +.icon-shaixuan22x22px:before { + content: "\ed30"; +} + +.icon-yewushenqingqingkuang40x40px:before { + content: "\ed2a"; +} + +.icon-heimingdankehuxinxi40x40px:before { + content: "\ed2b"; +} + +.icon-weijieqingshouxinyewu40x40px:before { + content: "\ed2c"; +} + +.icon-yijieqingshouxinyewu40x40px:before { + content: "\ed2d"; +} + +.icon-weibenhangkehudanbao40x40px:before { + content: "\ed2e"; +} + +.icon-beibenhangkehudanbao40x40px:before { + content: "\ed2f"; +} + +.icon-yingxiangziliao40x40px:before { + content: "\ed24"; +} + +.icon-shengchanjingying40x40px:before { + content: "\ed25"; +} + +.icon-gerenzichan40x40px:before { + content: "\ed26"; +} + +.icon-zhengxinxinxi40x40px:before { + content: "\ed27"; +} + +.icon-jiatingchengyuan40x40px:before { + content: "\ed28"; +} + +.icon-jibenxinxi40x40px:before { + content: "\ed29"; +} + +.icon-dianjijinru:before { + content: "\ed0b"; +} + +.icon-a-100pxweitiaocha:before { + content: "\ecfe"; +} + +.icon-a-100pxyitiaocha5:before { + content: "\ecff"; +} + +.icon-a-100pxyicaiji2:before { + content: "\ed00"; +} + +.icon-a-100pxyicaiji5:before { + content: "\ed01"; +} + +.icon-a-100pxyicaiji3:before { + content: "\ed02"; +} + +.icon-a-100pxyicaiji1:before { + content: "\ed03"; +} + +.icon-a-100pxyitiaocha3:before { + content: "\ed04"; +} + +.icon-a-100pxyitiaocha1:before { + content: "\ed05"; +} + +.icon-a-100pxyicaiji4:before { + content: "\ed06"; +} + +.icon-a-100pxyitiaocha2:before { + content: "\ed07"; +} + +.icon-a-100pxyitiaocha4:before { + content: "\ed08"; +} + +.icon-a-100pxweicaiji:before { + content: "\ed09"; +} + +.icon-yushouxinedu60X60px-01:before { + content: "\ecfd"; +} + +.icon-paishe50x50px:before { + content: "\ecfc"; +} + +.icon-paizhao22x22px:before { + content: "\ecf3"; +} + +.icon-yingxiangmuluwenjianjia:before { + content: "\ecfb"; +} + +.icon-tiaocha16X16px:before { + content: "\eced"; +} + +.icon-chenggong120X120px:before { + content: "\ecee"; +} + +.icon-zhongzhi16X16px:before { + content: "\ecef"; +} + +.icon-jiancha16X16px:before { + content: "\ecf0"; +} + +.icon-daikaishi100X100px:before { + content: "\ecf1"; +} + +.icon-daohang16X16px:before { + content: "\ecf2"; +} + +.icon-shouli16X16px:before { + content: "\ecf4"; +} + +.icon-dianhua16X16px:before { + content: "\ecf5"; +} + +.icon-yiwancheng100X100px:before { + content: "\ecf6"; +} + +.icon-dingwei16X16px:before { + content: "\ecf7"; +} + +.icon-zhixiang20X20px:before { + content: "\ecf8"; +} + +.icon-chakan16X16px:before { + content: "\ecf9"; +} + +.icon-jujue16X16px:before { + content: "\ecfa"; +} + +.icon-pxdanbaotiaocha1:before { + content: "\e686"; +} + +.icon-pxshouxinshenqing:before { + content: "\e695"; +} + +.icon-jiekuanrentiaocha:before { + content: "\e6a1"; +} + +.icon-feinonghuxinxicaiji100X100px:before { + content: "\ecea"; +} + +.icon-nonghuxinxicaiji100X100px:before { + content: "\eceb"; +} + +.icon-duigongkehuxinxicaiji100X100px:before { + content: "\ecec"; +} + +.icon-touxiang:before { + content: "\ece8"; +} + +.icon-dianjifenxi16x16px:before { + content: "\ece7"; +} + +.icon-tuichu16x16px:before { + content: "\ece6"; +} + +.icon-a-caijishouquan30X30pxxuanzhong:before { + content: "\ecd2"; +} + +.icon-paizhao20X20px:before { + content: "\ecd3"; +} + +.icon-saomiao24X24px:before { + content: "\ecd4"; +} + +.icon-shanchu16X16px:before { + content: "\ecd5"; +} + +.icon-caijishouquan30X30px:before { + content: "\ecd6"; +} + +.icon-piliangshangchuan16X16px:before { + content: "\ecd7"; +} + +.icon-xiangqing16X16px:before { + content: "\ecd8"; +} + +.icon-a-jibenxinxi30X30pxxuanzhong:before { + content: "\ecd9"; +} + +.icon-a-yushouxin30X30pxxuanzhong:before { + content: "\ecda"; +} + +.icon-jibenxinxi30X30px:before { + content: "\ecdb"; +} + +.icon-shenfenhecha30X30px:before { + content: "\ece0"; +} + +.icon-a-yingxiangcaiji30X30pxyixuan:before { + content: "\ece1"; +} + +.icon-yushouxin30X30px:before { + content: "\ece2"; +} + +.icon-yingxiangcaiji30X30px:before { + content: "\ece3"; +} + +.icon-xiugai16X16px:before { + content: "\ece4"; +} + +.icon-a-shenfenhecha30X30pxxuanzhong:before { + content: "\ece5"; +} + +.icon-dingwei40X40px:before { + content: "\ecdc"; +} + +.icon-guanbi20X20px:before { + content: "\ecdd"; +} + +.icon-renxiang24X24px:before { + content: "\ecde"; +} + +.icon-xinzeng30X30px:before { + content: "\ecdf"; +} + +.icon-jiaoseqiehuan32x32px:before { + content: "\ecc7"; +} + +.icon-shezhi32x32px:before { + content: "\ecc8"; +} + +.icon-wangdianchaxun32x32px:before { + content: "\ecbf"; +} + +.icon-chanpinzhongxin32x32px:before { + content: "\ecc0"; +} + +.icon-xuexipeixun32x32px:before { + content: "\ecc1"; +} + +.icon-xinxicaiji32x32px:before { + content: "\ecc2"; +} + +.icon-fuzhugongju32x32px:before { + content: "\ecc3"; +} + +.icon-mianduimianyingxiao32x32px:before { + content: "\ecc4"; +} + +.icon-shouxinguanli32x32px:before { + content: "\ecc5"; +} + +.icon-pingjiguanli32x32px:before { + content: "\ecc6"; +} + diff --git a/assets/iconfont/iconfont.js b/assets/iconfont/iconfont.js new file mode 100644 index 0000000000000000000000000000000000000000..09687eebaa4d453637753d4f911359db83c36fbf --- /dev/null +++ b/assets/iconfont/iconfont.js @@ -0,0 +1 @@ +!function(a){var c,h,l,v,z,m='',i=(i=document.getElementsByTagName("script"))[i.length-1].getAttribute("data-injectcss"),p=function(a,c){c.parentNode.insertBefore(a,c)};if(i&&!a.__iconfont__svg__cssinject__){a.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}function t(){z||(z=!0,l())}function o(){try{v.documentElement.doScroll("left")}catch(a){return void setTimeout(o,50)}t()}c=function(){var a,c=document.createElement("div");c.innerHTML=m,m=null,(c=c.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",c=c,(a=document.body).firstChild?p(c,a.firstChild):a.appendChild(c))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(c,0):(h=function(){document.removeEventListener("DOMContentLoaded",h,!1),c()},document.addEventListener("DOMContentLoaded",h,!1)):document.attachEvent&&(l=c,v=a.document,z=!1,o(),v.onreadystatechange=function(){"complete"==v.readyState&&(v.onreadystatechange=null,t())})}(window); \ No newline at end of file diff --git a/assets/iconfont/iconfont.json b/assets/iconfont/iconfont.json new file mode 100644 index 0000000000000000000000000000000000000000..cf285295526046ec6b4fcaded95ffa17009a1b26 --- /dev/null +++ b/assets/iconfont/iconfont.json @@ -0,0 +1,1045 @@ +{ + "id": "3289090", + "name": "黑龙江农信信贷移动营销", + "font_family": "iconfont", + "css_prefix_text": "icon-", + "description": "", + "glyphs": [ + { + "icon_id": "30879721", + "name": "未签订", + "font_class": "weiqianding", + "unicode": "ed8d", + "unicode_decimal": 60813 + }, + { + "icon_id": "30879722", + "name": "已签订", + "font_class": "yiqianding", + "unicode": "ed8e", + "unicode_decimal": 60814 + }, + { + "icon_id": "30830978", + "name": "已结清", + "font_class": "yijieqing", + "unicode": "ed8a", + "unicode_decimal": 60810 + }, + { + "icon_id": "30830979", + "name": "已发放", + "font_class": "yifafang", + "unicode": "ed8b", + "unicode_decimal": 60811 + }, + { + "icon_id": "30830980", + "name": "申请中", + "font_class": "shenqingzhong", + "unicode": "ed8c", + "unicode_decimal": 60812 + }, + { + "icon_id": "30395772", + "name": "积分商城.32x32px", + "font_class": "a-jifenshangcheng32x32px", + "unicode": "ed76", + "unicode_decimal": 60790 + }, + { + "icon_id": "30395775", + "name": "理财产品.32x32px", + "font_class": "a-licaichanpin32x32px", + "unicode": "ed77", + "unicode_decimal": 60791 + }, + { + "icon_id": "30395779", + "name": "自助贷款.32x32px", + "font_class": "a-zizhudaikuan32x32px", + "unicode": "ed78", + "unicode_decimal": 60792 + }, + { + "icon_id": "30395781", + "name": "存款利息试算.32x32px", + "font_class": "a-cunkuanlixishisuan32x32px", + "unicode": "ed79", + "unicode_decimal": 60793 + }, + { + "icon_id": "30259244", + "name": "签署文件.200x200px", + "font_class": "a-qianshuwenjian200x200px", + "unicode": "ed74", + "unicode_decimal": 60788 + }, + { + "icon_id": "30259245", + "name": "签署文件夹.200x200px-01", + "font_class": "a-qianshuwenjianjia200x200px-01", + "unicode": "ed75", + "unicode_decimal": 60789 + }, + { + "icon_id": "30256506", + "name": "产品.24x24px-客户经理小程序", + "font_class": "a-chanpin24x24px-kehujinglixiaochengxu", + "unicode": "ed68", + "unicode_decimal": 60776 + }, + { + "icon_id": "30256507", + "name": "产品-选中.24x24px-客户经理小程序", + "font_class": "a-chanpin-xuanzhong24x24px-kehujinglixiaochengxu", + "unicode": "ed69", + "unicode_decimal": 60777 + }, + { + "icon_id": "30256508", + "name": "首页-选中.24x24px-客户经理小程序", + "font_class": "a-shouye-xuanzhong24x24px-kehujinglixiaochengxu", + "unicode": "ed6a", + "unicode_decimal": 60778 + }, + { + "icon_id": "30256509", + "name": "任务新增.50x50px-客户经理小程序", + "font_class": "a-renwuxinzeng50x50px-kehujinglixiaochengxu", + "unicode": "ed6b", + "unicode_decimal": 60779 + }, + { + "icon_id": "30256510", + "name": "二维码.18x18px-客户经理小程序", + "font_class": "a-erweima18x18px-kehujinglixiaochengxu", + "unicode": "ed6c", + "unicode_decimal": 60780 + }, + { + "icon_id": "30256511", + "name": "个人信息.18x18px-客户经理小程序", + "font_class": "a-gerenxinxi18x18px-kehujinglixiaochengxu", + "unicode": "ed6d", + "unicode_decimal": 60781 + }, + { + "icon_id": "30256512", + "name": "我的.24x24px-客户经理小程序", + "font_class": "a-wode24x24px-kehujinglixiaochengxu", + "unicode": "ed6e", + "unicode_decimal": 60782 + }, + { + "icon_id": "30256513", + "name": "联系信息.18x18px-客户经理小程序", + "font_class": "a-lianxixinxi18x18px-kehujinglixiaochengxu", + "unicode": "ed6f", + "unicode_decimal": 60783 + }, + { + "icon_id": "30256514", + "name": "等级.32x32px-客户经理小程序", + "font_class": "a-dengji32x32px-kehujinglixiaochengxu", + "unicode": "ed70", + "unicode_decimal": 60784 + }, + { + "icon_id": "30256515", + "name": "我的-选中.24x24px-客户经理小程序", + "font_class": "a-wode-xuanzhong24x24px-kehujinglixiaochengxu", + "unicode": "ed71", + "unicode_decimal": 60785 + }, + { + "icon_id": "30256516", + "name": "主页.24x24px-客户经理小程序", + "font_class": "a-zhuye24x24px-kehujinglixiaochengxu", + "unicode": "ed72", + "unicode_decimal": 60786 + }, + { + "icon_id": "30256517", + "name": "邀请关系查询.18x18px-客户经理小程序", + "font_class": "a-yaoqingguanxichaxun18x18px-kehujinglixiaochengxu", + "unicode": "ed73", + "unicode_decimal": 60787 + }, + { + "icon_id": "30255643", + "name": "已发放.60x60px", + "font_class": "a-yifafang60x60px", + "unicode": "ed67", + "unicode_decimal": 60775 + }, + { + "icon_id": "30255624", + "name": "兑换记录.16x16px", + "font_class": "a-duihuanjilu16x16px", + "unicode": "ed55", + "unicode_decimal": 60757 + }, + { + "icon_id": "30255625", + "name": "个人信息.16x16px", + "font_class": "a-gerenxinxi16x16px", + "unicode": "ed56", + "unicode_decimal": 60758 + }, + { + "icon_id": "30255626", + "name": "存款利率.24x24px", + "font_class": "a-cunkuanlishuai24x24px", + "unicode": "ed57", + "unicode_decimal": 60759 + }, + { + "icon_id": "30255627", + "name": "可见.20x20px", + "font_class": "a-kejian20x20px", + "unicode": "ed58", + "unicode_decimal": 60760 + }, + { + "icon_id": "30255628", + "name": "成功.64x64px", + "font_class": "a-chenggong64x64px", + "unicode": "ed59", + "unicode_decimal": 60761 + }, + { + "icon_id": "30255629", + "name": "免费转账.24x24px", + "font_class": "a-mianfeizhuanzhang24x24px", + "unicode": "ed5a", + "unicode_decimal": 60762 + }, + { + "icon_id": "30255630", + "name": "合作企业.16x16px", + "font_class": "a-hezuoqiye16x16px", + "unicode": "ed5b", + "unicode_decimal": 60763 + }, + { + "icon_id": "30255631", + "name": "贷款利率.24x24px", + "font_class": "a-daikuanlishuai24x24px", + "unicode": "ed5c", + "unicode_decimal": 60764 + }, + { + "icon_id": "30255632", + "name": "首页-选中.20x20px", + "font_class": "a-shouye-xuanzhong20x20px", + "unicode": "ed5d", + "unicode_decimal": 60765 + }, + { + "icon_id": "30255633", + "name": "下一页.24x24px", + "font_class": "a-xiayiye24x24px", + "unicode": "ed5e", + "unicode_decimal": 60766 + }, + { + "icon_id": "30255634", + "name": "我的.20x20px", + "font_class": "a-wode20x20px", + "unicode": "ed5f", + "unicode_decimal": 60767 + }, + { + "icon_id": "30255635", + "name": "专属客服.24x24px", + "font_class": "a-zhuanshukefu24x24px", + "unicode": "ed60", + "unicode_decimal": 60768 + }, + { + "icon_id": "30255636", + "name": "首页.20x20px", + "font_class": "a-shouye20x20px", + "unicode": "ed61", + "unicode_decimal": 60769 + }, + { + "icon_id": "30255637", + "name": "我的贷款.16x16px", + "font_class": "a-wodedaikuan16x16px", + "unicode": "ed62", + "unicode_decimal": 60770 + }, + { + "icon_id": "30255638", + "name": "我的-选中.20x20px", + "font_class": "a-wode-xuanzhong20x20px", + "unicode": "ed63", + "unicode_decimal": 60771 + }, + { + "icon_id": "30255639", + "name": "未签署.60x60px", + "font_class": "a-weiqianshu60x60px", + "unicode": "ed64", + "unicode_decimal": 60772 + }, + { + "icon_id": "30255640", + "name": "已签署.60x60px", + "font_class": "a-yiqianshu60x60px", + "unicode": "ed65", + "unicode_decimal": 60773 + }, + { + "icon_id": "30255642", + "name": "已结清.60x60px", + "font_class": "a-yijieqing60x60px", + "unicode": "ed66", + "unicode_decimal": 60774 + }, + { + "icon_id": "7462482", + "name": "16px搜索󅒐", + "font_class": "pxsousuo", + "unicode": "e701", + "unicode_decimal": 59137 + }, + { + "icon_id": "15411979", + "name": "身份证人像面140x90px", + "font_class": "shenfenzhengrenxiangmian140x90px", + "unicode": "e92a", + "unicode_decimal": 59690 + }, + { + "icon_id": "10466012", + "name": "16px-取消上传#808080", + "font_class": "px-quxiaoshangchuan", + "unicode": "e7e7", + "unicode_decimal": 59367 + }, + { + "icon_id": "10820339", + "name": "14px下一级", + "font_class": "pxxiayiji", + "unicode": "e804", + "unicode_decimal": 59396 + }, + { + "icon_id": "30067608", + "name": "处理20x20px", + "font_class": "chuli20x20px", + "unicode": "ed46", + "unicode_decimal": 60742 + }, + { + "icon_id": "30067609", + "name": "审批流程20x20px", + "font_class": "shenpiliucheng20x20px", + "unicode": "ed47", + "unicode_decimal": 60743 + }, + { + "icon_id": "30033735", + "name": "返回24x24px", + "font_class": "fanhui24x24px", + "unicode": "ed44", + "unicode_decimal": 60740 + }, + { + "icon_id": "30033736", + "name": "日历16x16px", + "font_class": "rili16x16px", + "unicode": "ed45", + "unicode_decimal": 60741 + }, + { + "icon_id": "29957562", + "name": "下拉20x20px", + "font_class": "xiala20x20px", + "unicode": "ed43", + "unicode_decimal": 60739 + }, + { + "icon_id": "29926421", + "name": "进入24x24px", + "font_class": "jinru24x24px", + "unicode": "ed41", + "unicode_decimal": 60737 + }, + { + "icon_id": "29926422", + "name": "移动审批72x72px", + "font_class": "yidongshenpi72x72px", + "unicode": "ed42", + "unicode_decimal": 60738 + }, + { + "icon_id": "29888394", + "name": "新增-蓝色30X30px", + "font_class": "xinzeng-lanse30X30px", + "unicode": "ed40", + "unicode_decimal": 60736 + }, + { + "icon_id": "29764720", + "name": "企业头像26x26px", + "font_class": "qiyetouxiang26x26px", + "unicode": "ed3c", + "unicode_decimal": 60732 + }, + { + "icon_id": "29764721", + "name": "人像100x100px", + "font_class": "renxiang100x100px", + "unicode": "ed3d", + "unicode_decimal": 60733 + }, + { + "icon_id": "29764722", + "name": "联网核查24x24px", + "font_class": "lianwanghecha24x24px", + "unicode": "ed3e", + "unicode_decimal": 60734 + }, + { + "icon_id": "29764723", + "name": "人脸识别24x24px", + "font_class": "renlianshibie24x24px", + "unicode": "ed3f", + "unicode_decimal": 60735 + }, + { + "icon_id": "29764692", + "name": "计算器-未选中30x30px", + "font_class": "jisuanqi-weixuanzhong30x30px", + "unicode": "ed3a", + "unicode_decimal": 60730 + }, + { + "icon_id": "29764693", + "name": "计算器-选中30x30px", + "font_class": "jisuanqi-xuanzhong30x30px", + "unicode": "ed3b", + "unicode_decimal": 60731 + }, + { + "icon_id": "29764644", + "name": "贷还款测算-未选中30x30px", + "font_class": "daihuankuancesuan-weixuanzhong30x30px", + "unicode": "ed38", + "unicode_decimal": 60728 + }, + { + "icon_id": "29764645", + "name": "贷还款测算-选中30x30px", + "font_class": "daihuankuancesuan-xuanzhong30x30px", + "unicode": "ed39", + "unicode_decimal": 60729 + }, + { + "icon_id": "29764639", + "name": "通讯录-未选中30x30px", + "font_class": "tongxunlu-weixuanzhong30x30px", + "unicode": "ed36", + "unicode_decimal": 60726 + }, + { + "icon_id": "29764640", + "name": "通讯录-选中30x30px", + "font_class": "tongxunlu-xuanzhong30x30px", + "unicode": "ed37", + "unicode_decimal": 60727 + }, + { + "icon_id": "29666779", + "name": "全景视图14x14px", + "font_class": "quanjingshitu14x14px", + "unicode": "ed34", + "unicode_decimal": 60724 + }, + { + "icon_id": "29666780", + "name": "客户移交14x14px", + "font_class": "kehuyijiao14x14px", + "unicode": "ed35", + "unicode_decimal": 60725 + }, + { + "icon_id": "29639871", + "name": "筛选22x22px", + "font_class": "shaixuan22x22px", + "unicode": "ed30", + "unicode_decimal": 60720 + }, + { + "icon_id": "29565246", + "name": "业务申请情况40x40px", + "font_class": "yewushenqingqingkuang40x40px", + "unicode": "ed2a", + "unicode_decimal": 60714 + }, + { + "icon_id": "29565247", + "name": "黑名单客户信息40x40px", + "font_class": "heimingdankehuxinxi40x40px", + "unicode": "ed2b", + "unicode_decimal": 60715 + }, + { + "icon_id": "29565248", + "name": "未结清授信业务40x40px", + "font_class": "weijieqingshouxinyewu40x40px", + "unicode": "ed2c", + "unicode_decimal": 60716 + }, + { + "icon_id": "29565249", + "name": "已结清授信业务40x40px", + "font_class": "yijieqingshouxinyewu40x40px", + "unicode": "ed2d", + "unicode_decimal": 60717 + }, + { + "icon_id": "29565250", + "name": "为本行客户担保40x40px", + "font_class": "weibenhangkehudanbao40x40px", + "unicode": "ed2e", + "unicode_decimal": 60718 + }, + { + "icon_id": "29565251", + "name": "被本行客户担保40x40px", + "font_class": "beibenhangkehudanbao40x40px", + "unicode": "ed2f", + "unicode_decimal": 60719 + }, + { + "icon_id": "29516146", + "name": "影像资料40x40px", + "font_class": "yingxiangziliao40x40px", + "unicode": "ed24", + "unicode_decimal": 60708 + }, + { + "icon_id": "29516147", + "name": "生产经营40x40px", + "font_class": "shengchanjingying40x40px", + "unicode": "ed25", + "unicode_decimal": 60709 + }, + { + "icon_id": "29516148", + "name": "个人资产40x40px", + "font_class": "gerenzichan40x40px", + "unicode": "ed26", + "unicode_decimal": 60710 + }, + { + "icon_id": "29516149", + "name": "征信信息40x40px", + "font_class": "zhengxinxinxi40x40px", + "unicode": "ed27", + "unicode_decimal": 60711 + }, + { + "icon_id": "29516150", + "name": "家庭成员40x40px", + "font_class": "jiatingchengyuan40x40px", + "unicode": "ed28", + "unicode_decimal": 60712 + }, + { + "icon_id": "29516151", + "name": "基本信息40x40px", + "font_class": "jibenxinxi40x40px", + "unicode": "ed29", + "unicode_decimal": 60713 + }, + { + "icon_id": "29420068", + "name": "点击进入", + "font_class": "dianjijinru", + "unicode": "ed0b", + "unicode_decimal": 60683 + }, + { + "icon_id": "29088705", + "name": "100px未调查", + "font_class": "a-100pxweitiaocha", + "unicode": "ecfe", + "unicode_decimal": 60670 + }, + { + "icon_id": "29088706", + "name": "100px已调查5", + "font_class": "a-100pxyitiaocha5", + "unicode": "ecff", + "unicode_decimal": 60671 + }, + { + "icon_id": "29088707", + "name": "100px已采集2", + "font_class": "a-100pxyicaiji2", + "unicode": "ed00", + "unicode_decimal": 60672 + }, + { + "icon_id": "29088708", + "name": "100px已采集5", + "font_class": "a-100pxyicaiji5", + "unicode": "ed01", + "unicode_decimal": 60673 + }, + { + "icon_id": "29088709", + "name": "100px已采集3", + "font_class": "a-100pxyicaiji3", + "unicode": "ed02", + "unicode_decimal": 60674 + }, + { + "icon_id": "29088710", + "name": "100px已采集1", + "font_class": "a-100pxyicaiji1", + "unicode": "ed03", + "unicode_decimal": 60675 + }, + { + "icon_id": "29088711", + "name": "100px已调查3", + "font_class": "a-100pxyitiaocha3", + "unicode": "ed04", + "unicode_decimal": 60676 + }, + { + "icon_id": "29088712", + "name": "100px已调查1", + "font_class": "a-100pxyitiaocha1", + "unicode": "ed05", + "unicode_decimal": 60677 + }, + { + "icon_id": "29088713", + "name": "100px已采集4", + "font_class": "a-100pxyicaiji4", + "unicode": "ed06", + "unicode_decimal": 60678 + }, + { + "icon_id": "29088714", + "name": "100px已调查2", + "font_class": "a-100pxyitiaocha2", + "unicode": "ed07", + "unicode_decimal": 60679 + }, + { + "icon_id": "29088715", + "name": "100px已调查4", + "font_class": "a-100pxyitiaocha4", + "unicode": "ed08", + "unicode_decimal": 60680 + }, + { + "icon_id": "29088716", + "name": "100px未采集", + "font_class": "a-100pxweicaiji", + "unicode": "ed09", + "unicode_decimal": 60681 + }, + { + "icon_id": "29067025", + "name": "预授信额度60X60px", + "font_class": "yushouxinedu60X60px-01", + "unicode": "ecfd", + "unicode_decimal": 60669 + }, + { + "icon_id": "29066525", + "name": "拍摄50x50px", + "font_class": "paishe50x50px", + "unicode": "ecfc", + "unicode_decimal": 60668 + }, + { + "icon_id": "29065843", + "name": "拍照22x22px", + "font_class": "paizhao22x22px", + "unicode": "ecf3", + "unicode_decimal": 60659 + }, + { + "icon_id": "29065844", + "name": "影像目录文件夹", + "font_class": "yingxiangmuluwenjianjia", + "unicode": "ecfb", + "unicode_decimal": 60667 + }, + { + "icon_id": "28832243", + "name": "调查16X16px", + "font_class": "tiaocha16X16px", + "unicode": "eced", + "unicode_decimal": 60653 + }, + { + "icon_id": "28832244", + "name": "成功120X120px", + "font_class": "chenggong120X120px", + "unicode": "ecee", + "unicode_decimal": 60654 + }, + { + "icon_id": "28832245", + "name": "终止16X16px", + "font_class": "zhongzhi16X16px", + "unicode": "ecef", + "unicode_decimal": 60655 + }, + { + "icon_id": "28832246", + "name": "检查16X16px", + "font_class": "jiancha16X16px", + "unicode": "ecf0", + "unicode_decimal": 60656 + }, + { + "icon_id": "28832247", + "name": "待开始100X100px", + "font_class": "daikaishi100X100px", + "unicode": "ecf1", + "unicode_decimal": 60657 + }, + { + "icon_id": "28832248", + "name": "导航16X16px", + "font_class": "daohang16X16px", + "unicode": "ecf2", + "unicode_decimal": 60658 + }, + { + "icon_id": "28832250", + "name": "受理16X16px", + "font_class": "shouli16X16px", + "unicode": "ecf4", + "unicode_decimal": 60660 + }, + { + "icon_id": "28832251", + "name": "电话16X16px", + "font_class": "dianhua16X16px", + "unicode": "ecf5", + "unicode_decimal": 60661 + }, + { + "icon_id": "28832252", + "name": "已完成100X100px", + "font_class": "yiwancheng100X100px", + "unicode": "ecf6", + "unicode_decimal": 60662 + }, + { + "icon_id": "28832253", + "name": "定位16X16px", + "font_class": "dingwei16X16px", + "unicode": "ecf7", + "unicode_decimal": 60663 + }, + { + "icon_id": "28832254", + "name": "指向20X20px", + "font_class": "zhixiang20X20px", + "unicode": "ecf8", + "unicode_decimal": 60664 + }, + { + "icon_id": "28832255", + "name": "查看16X16px", + "font_class": "chakan16X16px", + "unicode": "ecf9", + "unicode_decimal": 60665 + }, + { + "icon_id": "28832256", + "name": "拒绝16X16px", + "font_class": "jujue16X16px", + "unicode": "ecfa", + "unicode_decimal": 60666 + }, + { + "icon_id": "5541680", + "name": "30px担保调查2", + "font_class": "pxdanbaotiaocha1", + "unicode": "e686", + "unicode_decimal": 59014 + }, + { + "icon_id": "5541695", + "name": "60px授信申请", + "font_class": "pxshouxinshenqing", + "unicode": "e695", + "unicode_decimal": 59029 + }, + { + "icon_id": "5541707", + "name": "借款人调查", + "font_class": "jiekuanrentiaocha", + "unicode": "e6a1", + "unicode_decimal": 59041 + }, + { + "icon_id": "28711282", + "name": "非农户信息采集100X100px", + "font_class": "feinonghuxinxicaiji100X100px", + "unicode": "ecea", + "unicode_decimal": 60650 + }, + { + "icon_id": "28711287", + "name": "农户信息采集100X100px", + "font_class": "nonghuxinxicaiji100X100px", + "unicode": "eceb", + "unicode_decimal": 60651 + }, + { + "icon_id": "28710000", + "name": "对公客户信息采集100X100px", + "font_class": "duigongkehuxinxicaiji100X100px", + "unicode": "ecec", + "unicode_decimal": 60652 + }, + { + "icon_id": "28680812", + "name": "头像", + "font_class": "touxiang", + "unicode": "ece8", + "unicode_decimal": 60648 + }, + { + "icon_id": "28659307", + "name": "点击分析16x16px", + "font_class": "dianjifenxi16x16px", + "unicode": "ece7", + "unicode_decimal": 60647 + }, + { + "icon_id": "28659135", + "name": "退出16x16px", + "font_class": "tuichu16x16px", + "unicode": "ece6", + "unicode_decimal": 60646 + }, + { + "icon_id": "28653524", + "name": "采集授权30X30px.选中", + "font_class": "a-caijishouquan30X30pxxuanzhong", + "unicode": "ecd2", + "unicode_decimal": 60626 + }, + { + "icon_id": "28653526", + "name": "拍照20X20px", + "font_class": "paizhao20X20px", + "unicode": "ecd3", + "unicode_decimal": 60627 + }, + { + "icon_id": "28653527", + "name": "扫描24X24px", + "font_class": "saomiao24X24px", + "unicode": "ecd4", + "unicode_decimal": 60628 + }, + { + "icon_id": "28653529", + "name": "删除16X16px", + "font_class": "shanchu16X16px", + "unicode": "ecd5", + "unicode_decimal": 60629 + }, + { + "icon_id": "28653530", + "name": "采集授权30X30px", + "font_class": "caijishouquan30X30px", + "unicode": "ecd6", + "unicode_decimal": 60630 + }, + { + "icon_id": "28653531", + "name": "批量上传16X16px", + "font_class": "piliangshangchuan16X16px", + "unicode": "ecd7", + "unicode_decimal": 60631 + }, + { + "icon_id": "28653532", + "name": "详情16X16px", + "font_class": "xiangqing16X16px", + "unicode": "ecd8", + "unicode_decimal": 60632 + }, + { + "icon_id": "28653533", + "name": "基本信息30X30px.选中", + "font_class": "a-jibenxinxi30X30pxxuanzhong", + "unicode": "ecd9", + "unicode_decimal": 60633 + }, + { + "icon_id": "28653534", + "name": "预授信30X30px.选中", + "font_class": "a-yushouxin30X30pxxuanzhong", + "unicode": "ecda", + "unicode_decimal": 60634 + }, + { + "icon_id": "28653536", + "name": "基本信息30X30px", + "font_class": "jibenxinxi30X30px", + "unicode": "ecdb", + "unicode_decimal": 60635 + }, + { + "icon_id": "28653537", + "name": "身份核查30X30px", + "font_class": "shenfenhecha30X30px", + "unicode": "ece0", + "unicode_decimal": 60640 + }, + { + "icon_id": "28653539", + "name": "影像采集30X30px.已选", + "font_class": "a-yingxiangcaiji30X30pxyixuan", + "unicode": "ece1", + "unicode_decimal": 60641 + }, + { + "icon_id": "28653540", + "name": "预授信30X30px", + "font_class": "yushouxin30X30px", + "unicode": "ece2", + "unicode_decimal": 60642 + }, + { + "icon_id": "28653541", + "name": "影像采集30X30px", + "font_class": "yingxiangcaiji30X30px", + "unicode": "ece3", + "unicode_decimal": 60643 + }, + { + "icon_id": "28653542", + "name": "修改16X16px", + "font_class": "xiugai16X16px", + "unicode": "ece4", + "unicode_decimal": 60644 + }, + { + "icon_id": "28653543", + "name": "身份核查30X30px.选中", + "font_class": "a-shenfenhecha30X30pxxuanzhong", + "unicode": "ece5", + "unicode_decimal": 60645 + }, + { + "icon_id": "28652117", + "name": "定位40X40px", + "font_class": "dingwei40X40px", + "unicode": "ecdc", + "unicode_decimal": 60636 + }, + { + "icon_id": "28652122", + "name": "关闭20X20px", + "font_class": "guanbi20X20px", + "unicode": "ecdd", + "unicode_decimal": 60637 + }, + { + "icon_id": "28652156", + "name": "人像24X24px", + "font_class": "renxiang24X24px", + "unicode": "ecde", + "unicode_decimal": 60638 + }, + { + "icon_id": "28652158", + "name": "新增30X30px", + "font_class": "xinzeng30X30px", + "unicode": "ecdf", + "unicode_decimal": 60639 + }, + { + "icon_id": "28609290", + "name": "角色切换32x32px", + "font_class": "jiaoseqiehuan32x32px", + "unicode": "ecc7", + "unicode_decimal": 60615 + }, + { + "icon_id": "28609291", + "name": "设置32x32px", + "font_class": "shezhi32x32px", + "unicode": "ecc8", + "unicode_decimal": 60616 + }, + { + "icon_id": "28604740", + "name": "网点查询32x32px", + "font_class": "wangdianchaxun32x32px", + "unicode": "ecbf", + "unicode_decimal": 60607 + }, + { + "icon_id": "28604741", + "name": "产品中心32x32px", + "font_class": "chanpinzhongxin32x32px", + "unicode": "ecc0", + "unicode_decimal": 60608 + }, + { + "icon_id": "28604742", + "name": "学习培训32x32px", + "font_class": "xuexipeixun32x32px", + "unicode": "ecc1", + "unicode_decimal": 60609 + }, + { + "icon_id": "28604743", + "name": "信息采集32x32px", + "font_class": "xinxicaiji32x32px", + "unicode": "ecc2", + "unicode_decimal": 60610 + }, + { + "icon_id": "28604744", + "name": "辅助工具32x32px", + "font_class": "fuzhugongju32x32px", + "unicode": "ecc3", + "unicode_decimal": 60611 + }, + { + "icon_id": "28604745", + "name": "面对面营销32x32px", + "font_class": "mianduimianyingxiao32x32px", + "unicode": "ecc4", + "unicode_decimal": 60612 + }, + { + "icon_id": "28604746", + "name": "授信管理32x32px", + "font_class": "shouxinguanli32x32px", + "unicode": "ecc5", + "unicode_decimal": 60613 + }, + { + "icon_id": "28604747", + "name": "评级管理32x32px", + "font_class": "pingjiguanli32x32px", + "unicode": "ecc6", + "unicode_decimal": 60614 + } + ] +} diff --git a/assets/iconfont/iconfont.ttf b/assets/iconfont/iconfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..9c76d1991d3894ee8e76fb3b6f9b0582b38b0360 Binary files /dev/null and b/assets/iconfont/iconfont.ttf differ diff --git a/assets/iconfont/iconfont.woff b/assets/iconfont/iconfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..41da6c71a7a60bbc5e458cd147d2f029ec882478 Binary files /dev/null and b/assets/iconfont/iconfont.woff differ diff --git a/assets/iconfont/iconfont.woff2 b/assets/iconfont/iconfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2947ed7b0b81d7a2eb5e8db1e227a0772550b587 Binary files /dev/null and b/assets/iconfont/iconfont.woff2 differ diff --git a/assets/images/Avatar.png b/assets/images/Avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..ad7f5e7770552bfbad0cd7d8b81e159f5fd15cc9 Binary files /dev/null and b/assets/images/Avatar.png differ diff --git a/assets/images/CPTJ.png b/assets/images/CPTJ.png new file mode 100644 index 0000000000000000000000000000000000000000..b32e31dcd316ed54b9205006f2696f5f191cd6c4 Binary files /dev/null and b/assets/images/CPTJ.png differ diff --git a/assets/images/CSGL.png b/assets/images/CSGL.png new file mode 100644 index 0000000000000000000000000000000000000000..cb0ab3e36294cea3c3e0f7a0de1acb84886c3f13 Binary files /dev/null and b/assets/images/CSGL.png differ diff --git a/assets/images/DBRW.png b/assets/images/DBRW.png new file mode 100644 index 0000000000000000000000000000000000000000..abd06c0135f4297f94f7891e2ac7d329edb73205 Binary files /dev/null and b/assets/images/DBRW.png differ diff --git a/assets/images/DGDKimg.png b/assets/images/DGDKimg.png new file mode 100644 index 0000000000000000000000000000000000000000..c94a3d54c4a8b71f808d2c3735a8f7f6743a742b Binary files /dev/null and b/assets/images/DGDKimg.png differ diff --git a/assets/images/DGKHBF.png b/assets/images/DGKHBF.png new file mode 100644 index 0000000000000000000000000000000000000000..7d2befbbab62c7647fd71f005b54c04889ad3024 Binary files /dev/null and b/assets/images/DGKHBF.png differ diff --git a/assets/images/DGKHXXMC.png b/assets/images/DGKHXXMC.png new file mode 100644 index 0000000000000000000000000000000000000000..16a4b4b93ad866c5acd7460058fe6114befb350f Binary files /dev/null and b/assets/images/DGKHXXMC.png differ diff --git a/assets/images/DGKHYXQK.png b/assets/images/DGKHYXQK.png new file mode 100644 index 0000000000000000000000000000000000000000..1a351380e32fa8d6598ba4fc93df1b4150405e77 Binary files /dev/null and b/assets/images/DGKHYXQK.png differ diff --git a/assets/images/DGZSYZ.png b/assets/images/DGZSYZ.png new file mode 100644 index 0000000000000000000000000000000000000000..e953e8117d5ec2ecae7fbeb8dfcb3b8721c322b6 Binary files /dev/null and b/assets/images/DGZSYZ.png differ diff --git a/assets/images/DHJC.png b/assets/images/DHJC.png new file mode 100644 index 0000000000000000000000000000000000000000..bd28d4fb7880b6caa5da079f9df74c256a5ef6e0 Binary files /dev/null and b/assets/images/DHJC.png differ diff --git a/assets/images/Deposit.png b/assets/images/Deposit.png new file mode 100644 index 0000000000000000000000000000000000000000..785d676a0858bb854030e85b52310c0fe91c1f7f Binary files /dev/null and b/assets/images/Deposit.png differ diff --git a/assets/images/FXYJ.png b/assets/images/FXYJ.png new file mode 100644 index 0000000000000000000000000000000000000000..f99a4b88620482502a443c27e5365bf521a1eb3c Binary files /dev/null and b/assets/images/FXYJ.png differ diff --git a/assets/images/FZGJ.png b/assets/images/FZGJ.png new file mode 100644 index 0000000000000000000000000000000000000000..56072750598be2e69de4b39120b04407d7516b43 Binary files /dev/null and b/assets/images/FZGJ.png differ diff --git a/assets/images/GRDKimg.png b/assets/images/GRDKimg.png new file mode 100644 index 0000000000000000000000000000000000000000..9b4510097017f5083d8e43cbf6ae0c4a24051f7b Binary files /dev/null and b/assets/images/GRDKimg.png differ diff --git a/assets/images/Interest.png b/assets/images/Interest.png new file mode 100644 index 0000000000000000000000000000000000000000..1aa628a3541a9ddf27ed655e4e0fd429cc8aabcb Binary files /dev/null and b/assets/images/Interest.png differ diff --git a/assets/images/KHCX.png b/assets/images/KHCX.png new file mode 100644 index 0000000000000000000000000000000000000000..6e69eb04fec6fb6081b816ed90d6092ec3e26529 Binary files /dev/null and b/assets/images/KHCX.png differ diff --git a/assets/images/Login.png b/assets/images/Login.png new file mode 100644 index 0000000000000000000000000000000000000000..131d5a2da4caf8122585e704ec628656993de3d2 Binary files /dev/null and b/assets/images/Login.png differ diff --git a/assets/images/SQJJ.png b/assets/images/SQJJ.png new file mode 100644 index 0000000000000000000000000000000000000000..b385e0af9f9503382281ce06e8773afa8d5252dd Binary files /dev/null and b/assets/images/SQJJ.png differ diff --git a/assets/images/WDCX.png b/assets/images/WDCX.png new file mode 100644 index 0000000000000000000000000000000000000000..06870c9b9c3389e532a3a1af1f01b9cb56183993 Binary files /dev/null and b/assets/images/WDCX.png differ diff --git a/assets/images/XTGG.png b/assets/images/XTGG.png new file mode 100644 index 0000000000000000000000000000000000000000..5258349ff8e7ac63d1cb08098b76fff1637efdf7 Binary files /dev/null and b/assets/images/XTGG.png differ diff --git a/assets/images/XZMQ.png b/assets/images/XZMQ.png new file mode 100644 index 0000000000000000000000000000000000000000..30e9c4e713f92e70621333c6fe63e01e4a2edc2e Binary files /dev/null and b/assets/images/XZMQ.png differ diff --git a/assets/images/YWCX.png b/assets/images/YWCX.png new file mode 100644 index 0000000000000000000000000000000000000000..8966444c4e9cb973341956974a5b08066dadb7f7 Binary files /dev/null and b/assets/images/YWCX.png differ diff --git a/assets/images/ZRCS.png b/assets/images/ZRCS.png new file mode 100644 index 0000000000000000000000000000000000000000..84ba130aaa0d15aef53b2271829c7cd4002f813b Binary files /dev/null and b/assets/images/ZRCS.png differ diff --git a/assets/images/ZYXTimg.png b/assets/images/ZYXTimg.png new file mode 100644 index 0000000000000000000000000000000000000000..9ac5937dd24694c43794c899cd32e6bfaacc120d Binary files /dev/null and b/assets/images/ZYXTimg.png differ diff --git a/assets/images/a_point.png b/assets/images/a_point.png new file mode 100644 index 0000000000000000000000000000000000000000..ffb27d4be260aa824ecce167cd12ee3afda3c386 Binary files /dev/null and b/assets/images/a_point.png differ diff --git a/assets/images/auxiliary-tools-Interest-pricing.png b/assets/images/auxiliary-tools-Interest-pricing.png new file mode 100644 index 0000000000000000000000000000000000000000..fdfd2123e93fcf68ba5ea2ec67bd02f248470aa0 Binary files /dev/null and b/assets/images/auxiliary-tools-Interest-pricing.png differ diff --git a/assets/images/backageImg.png b/assets/images/backageImg.png new file mode 100644 index 0000000000000000000000000000000000000000..e698c8bd322a4c7fcc5f1c91859e875e445fe14a Binary files /dev/null and b/assets/images/backageImg.png differ diff --git a/assets/images/background-card.png b/assets/images/background-card.png new file mode 100644 index 0000000000000000000000000000000000000000..62f7e1cb2cbb277c04f2b6e306e41b98feaba12e Binary files /dev/null and b/assets/images/background-card.png differ diff --git a/assets/images/chengdu-bank-logo.png b/assets/images/chengdu-bank-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..254fab89e05c88c258434e472b2a7281bb46ae46 Binary files /dev/null and b/assets/images/chengdu-bank-logo.png differ diff --git a/assets/images/coupon.png b/assets/images/coupon.png new file mode 100644 index 0000000000000000000000000000000000000000..1c5cf49421ce87b1c684ddbb58ba71bcb5b1ac78 Binary files /dev/null and b/assets/images/coupon.png differ diff --git a/assets/images/daijinquan.png b/assets/images/daijinquan.png new file mode 100644 index 0000000000000000000000000000000000000000..577e2c6f6eed7b2b7d13f86d6441170e2b989630 Binary files /dev/null and b/assets/images/daijinquan.png differ diff --git a/assets/images/employer-logo.png b/assets/images/employer-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0f86d7b4f718744cf49ae68a77b16275889947b5 Binary files /dev/null and b/assets/images/employer-logo.png differ diff --git a/assets/images/financial-information-logo.png b/assets/images/financial-information-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b90c169c1afffa2e001bbbae43542890a36b414a Binary files /dev/null and b/assets/images/financial-information-logo.png differ diff --git a/assets/images/id-card-front.png b/assets/images/id-card-front.png new file mode 100644 index 0000000000000000000000000000000000000000..ba6a47a356231a9e4c5e037c427ca2d7c552557e Binary files /dev/null and b/assets/images/id-card-front.png differ diff --git a/assets/images/id-card-negative.png b/assets/images/id-card-negative.png new file mode 100644 index 0000000000000000000000000000000000000000..bf453ac03e7534190b463483fac82550cd2e6c13 Binary files /dev/null and b/assets/images/id-card-negative.png differ diff --git a/assets/images/idcardcountry.png b/assets/images/idcardcountry.png new file mode 100644 index 0000000000000000000000000000000000000000..ab7cd78029385d4cf247d0448a52f9c65e5aa0d0 Binary files /dev/null and b/assets/images/idcardcountry.png differ diff --git a/assets/images/idcardpeople.png b/assets/images/idcardpeople.png new file mode 100644 index 0000000000000000000000000000000000000000..ab9544fa4dfe1690a1306eea45140541bcf86281 Binary files /dev/null and b/assets/images/idcardpeople.png differ diff --git a/assets/images/login-background.png b/assets/images/login-background.png new file mode 100644 index 0000000000000000000000000000000000000000..83f48fa7bc90c2939cbdf96e47de2a4c7b5334c3 Binary files /dev/null and b/assets/images/login-background.png differ diff --git a/assets/images/login-password-logo.png b/assets/images/login-password-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..655bf49f7e467d7210a3cff2d64bc69979f5aa5c Binary files /dev/null and b/assets/images/login-password-logo.png differ diff --git a/assets/images/login1.png b/assets/images/login1.png new file mode 100644 index 0000000000000000000000000000000000000000..5585b9117b0b9f833ed33ed6b2d4f5e609b55da7 Binary files /dev/null and b/assets/images/login1.png differ diff --git a/assets/images/logo.png b/assets/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d32d25e1e87c4aca9d325790d74d4b3fae4cbb6e Binary files /dev/null and b/assets/images/logo.png differ diff --git a/assets/images/mycard.png b/assets/images/mycard.png new file mode 100644 index 0000000000000000000000000000000000000000..7aceb0e303035ce8c51408e1eb1e60a791cf8f63 Binary files /dev/null and b/assets/images/mycard.png differ diff --git a/assets/images/nodata.png b/assets/images/nodata.png new file mode 100644 index 0000000000000000000000000000000000000000..f633044dcc07de6a1fd8377a40c5ef1bfd51039a Binary files /dev/null and b/assets/images/nodata.png differ diff --git a/assets/images/orange-subscript.png b/assets/images/orange-subscript.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed34a1deb7df01209f5e44e7a5845d12fd21116 Binary files /dev/null and b/assets/images/orange-subscript.png differ diff --git a/assets/images/personal-profiles-logo.png b/assets/images/personal-profiles-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..dd3ce9a4fb88c938f4ccb5274348efeade99ebfd Binary files /dev/null and b/assets/images/personal-profiles-logo.png differ diff --git a/assets/images/personal-profiles.png b/assets/images/personal-profiles.png new file mode 100644 index 0000000000000000000000000000000000000000..2334599c9268219d2ea56c9cbcd2bd3a164f2e5c Binary files /dev/null and b/assets/images/personal-profiles.png differ diff --git a/assets/images/prefix-idcard.png b/assets/images/prefix-idcard.png new file mode 100644 index 0000000000000000000000000000000000000000..0461a3a2b1c3053522544c50425fc9d8e1643472 Binary files /dev/null and b/assets/images/prefix-idcard.png differ diff --git a/assets/images/product-recommendation-big-picture.png b/assets/images/product-recommendation-big-picture.png new file mode 100644 index 0000000000000000000000000000000000000000..1415aa0f72bf12f79cfa0524a8ea8cb5f7e7547b Binary files /dev/null and b/assets/images/product-recommendation-big-picture.png differ diff --git a/assets/images/product-recommendation-chart-1.png b/assets/images/product-recommendation-chart-1.png new file mode 100644 index 0000000000000000000000000000000000000000..d640578552d9f59b36052283aacec49d6ae5ed5d Binary files /dev/null and b/assets/images/product-recommendation-chart-1.png differ diff --git a/assets/images/product-recommendation-chart-2.png b/assets/images/product-recommendation-chart-2.png new file mode 100644 index 0000000000000000000000000000000000000000..30e0659caede08b74ce539c463e159c03cbe704d Binary files /dev/null and b/assets/images/product-recommendation-chart-2.png differ diff --git a/assets/images/product-recommendation-chart-3.png b/assets/images/product-recommendation-chart-3.png new file mode 100644 index 0000000000000000000000000000000000000000..c94e4fd50c0ae7e2de306c75c5413249c9a8519a Binary files /dev/null and b/assets/images/product-recommendation-chart-3.png differ diff --git a/assets/images/product-recommendation-chart-4.png b/assets/images/product-recommendation-chart-4.png new file mode 100644 index 0000000000000000000000000000000000000000..9b0315786d20c88b4a31111ac63df5113a8896b4 Binary files /dev/null and b/assets/images/product-recommendation-chart-4.png differ diff --git a/assets/images/product-recommendation-chart-5.png b/assets/images/product-recommendation-chart-5.png new file mode 100644 index 0000000000000000000000000000000000000000..1b26ef9871b27833a550fbffda3e402db8b2be25 Binary files /dev/null and b/assets/images/product-recommendation-chart-5.png differ diff --git a/assets/images/product-recommendation-chart.png b/assets/images/product-recommendation-chart.png new file mode 100644 index 0000000000000000000000000000000000000000..5ada7de35c5c0263fc48f124ce1b30d892cd6bae Binary files /dev/null and b/assets/images/product-recommendation-chart.png differ diff --git a/assets/images/protocol.png b/assets/images/protocol.png new file mode 100644 index 0000000000000000000000000000000000000000..4fe7d44c4c14a34358b5de8c952feb7737dc2aa5 Binary files /dev/null and b/assets/images/protocol.png differ diff --git a/assets/images/query-history-logo.png b/assets/images/query-history-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1c5a7cf119124d28a14bae2fc7bbcbc24660a731 Binary files /dev/null and b/assets/images/query-history-logo.png differ diff --git a/assets/images/qyimage.png b/assets/images/qyimage.png new file mode 100644 index 0000000000000000000000000000000000000000..b905ddfb5b445f586e29938f22de48b5b7531285 Binary files /dev/null and b/assets/images/qyimage.png differ diff --git a/assets/images/risk-warning-logo.png b/assets/images/risk-warning-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e63c4afe0aab49e578326206e43a4f33765a774c Binary files /dev/null and b/assets/images/risk-warning-logo.png differ diff --git a/assets/images/search-logo.png b/assets/images/search-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..77f5f36407487b8a1400b8ad90da68f3f02e381e Binary files /dev/null and b/assets/images/search-logo.png differ diff --git a/assets/images/search.png b/assets/images/search.png new file mode 100644 index 0000000000000000000000000000000000000000..aacce869146a617ab9d914b1cb3f38b68b696806 Binary files /dev/null and b/assets/images/search.png differ diff --git a/assets/images/shenqingzhong.png b/assets/images/shenqingzhong.png new file mode 100644 index 0000000000000000000000000000000000000000..26ae167b9ac00bde3c164c61d2bbfb95af08748e Binary files /dev/null and b/assets/images/shenqingzhong.png differ diff --git a/assets/images/shoulizhong.png b/assets/images/shoulizhong.png new file mode 100644 index 0000000000000000000000000000000000000000..ae12956188cbf18c22c9f8836195bf99cd5d36dc Binary files /dev/null and b/assets/images/shoulizhong.png differ diff --git a/assets/images/shouquanwenjian.png b/assets/images/shouquanwenjian.png new file mode 100644 index 0000000000000000000000000000000000000000..7a0adee4cc9f49a27ddf9548777cc95b68b68576 Binary files /dev/null and b/assets/images/shouquanwenjian.png differ diff --git a/assets/images/small_circle.png b/assets/images/small_circle.png new file mode 100644 index 0000000000000000000000000000000000000000..fcfde8c42195eb8e40e8ff56635f23a87c9fea20 Binary files /dev/null and b/assets/images/small_circle.png differ diff --git a/assets/images/stars.png b/assets/images/stars.png new file mode 100644 index 0000000000000000000000000000000000000000..24d36a0eae90bddbee69c07d9ca33f447ad0eb54 Binary files /dev/null and b/assets/images/stars.png differ diff --git a/assets/images/suffix-idcard.png b/assets/images/suffix-idcard.png new file mode 100644 index 0000000000000000000000000000000000000000..7ebde1845e2b4aef57c6e1d6f38fe956027bbc7f Binary files /dev/null and b/assets/images/suffix-idcard.png differ diff --git a/assets/images/tiileimg.png b/assets/images/tiileimg.png new file mode 100644 index 0000000000000000000000000000000000000000..e0bf0311b0f6d73a1d3ba12b4139ee6197edad35 Binary files /dev/null and b/assets/images/tiileimg.png differ diff --git a/assets/images/tw.png b/assets/images/tw.png new file mode 100644 index 0000000000000000000000000000000000000000..5b776e3b675285c65d5a038df3f6965ae141b3fc Binary files /dev/null and b/assets/images/tw.png differ diff --git a/assets/images/u1794.png b/assets/images/u1794.png new file mode 100644 index 0000000000000000000000000000000000000000..be8e666439b6e25c2a126fde43b2e0fc42d5c537 Binary files /dev/null and b/assets/images/u1794.png differ diff --git a/assets/images/u23.png b/assets/images/u23.png new file mode 100644 index 0000000000000000000000000000000000000000..18a55d4fd6b4edaafad6172698aee9432971606f Binary files /dev/null and b/assets/images/u23.png differ diff --git a/assets/images/yellow-folder.png b/assets/images/yellow-folder.png new file mode 100644 index 0000000000000000000000000000000000000000..4ed1a7f8af88455e8b14d9a3f3e10a8b833afa14 Binary files /dev/null and b/assets/images/yellow-folder.png differ diff --git a/assets/images/yiwancheng.png b/assets/images/yiwancheng.png new file mode 100644 index 0000000000000000000000000000000000000000..795a462cfdf3e83e187a30c6039970b64bf83c36 Binary files /dev/null and b/assets/images/yiwancheng.png differ diff --git a/assets/svg/QR-code.svg b/assets/svg/QR-code.svg new file mode 100644 index 0000000000000000000000000000000000000000..d576f7a3a3312f648e85c90fe6f01c409deabeef --- /dev/null +++ b/assets/svg/QR-code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/svg/atlas.svg b/assets/svg/atlas.svg new file mode 100644 index 0000000000000000000000000000000000000000..e65dfc7ecdbb63ade31a1a6904ca5763e23ed007 --- /dev/null +++ b/assets/svg/atlas.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/blue-circle.svg b/assets/svg/blue-circle.svg new file mode 100644 index 0000000000000000000000000000000000000000..164219f6b932f998306b33099ea49a8044afa445 --- /dev/null +++ b/assets/svg/blue-circle.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/blue-hollow-circle.svg b/assets/svg/blue-hollow-circle.svg new file mode 100644 index 0000000000000000000000000000000000000000..3e4a1794f8cf13bef9327530ba2aea5d5b9cce6e --- /dev/null +++ b/assets/svg/blue-hollow-circle.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/assets/svg/blue-navigation-logo.svg b/assets/svg/blue-navigation-logo.svg new file mode 100644 index 0000000000000000000000000000000000000000..757eac40298ca3f54e8fe91f4808dfbe814335f7 --- /dev/null +++ b/assets/svg/blue-navigation-logo.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/blue-round.svg b/assets/svg/blue-round.svg new file mode 100644 index 0000000000000000000000000000000000000000..c231a14a651cd236313f958bb04cde1f59694a9b --- /dev/null +++ b/assets/svg/blue-round.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/blue-rounded-rectangle.svg b/assets/svg/blue-rounded-rectangle.svg new file mode 100644 index 0000000000000000000000000000000000000000..2e2c0a2efed3e71ddf16cf96261275e192095d75 --- /dev/null +++ b/assets/svg/blue-rounded-rectangle.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/blue-shadow-round.svg b/assets/svg/blue-shadow-round.svg new file mode 100644 index 0000000000000000000000000000000000000000..49878f5e5d4bc3c887beecf86a1a1a26fb117619 --- /dev/null +++ b/assets/svg/blue-shadow-round.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/svg/blue-spheric.svg b/assets/svg/blue-spheric.svg new file mode 100644 index 0000000000000000000000000000000000000000..b97e2fec0b0ab828fae1ce6e8811da3a400e6019 --- /dev/null +++ b/assets/svg/blue-spheric.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/svg/blue-subscript.svg b/assets/svg/blue-subscript.svg new file mode 100644 index 0000000000000000000000000000000000000000..7369b746685d019a9953619332c9c18deba4a425 --- /dev/null +++ b/assets/svg/blue-subscript.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/client-avatar.svg b/assets/svg/client-avatar.svg new file mode 100644 index 0000000000000000000000000000000000000000..cd3b0eb6217b8f3f4390ed07b351fe9fd70883ba --- /dev/null +++ b/assets/svg/client-avatar.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/cursor-active.svg b/assets/svg/cursor-active.svg new file mode 100644 index 0000000000000000000000000000000000000000..7d65820c47b21294d041127b8b04b81615723a49 --- /dev/null +++ b/assets/svg/cursor-active.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/cursor-index.svg b/assets/svg/cursor-index.svg new file mode 100644 index 0000000000000000000000000000000000000000..9a4fca60b42d4c52a0861d301ad2b96ec8d20f2a --- /dev/null +++ b/assets/svg/cursor-index.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/assets/svg/cursor-tag.svg b/assets/svg/cursor-tag.svg new file mode 100644 index 0000000000000000000000000000000000000000..e68ba18cb033cbc92a0fed3fdfe43d5390bf1a93 --- /dev/null +++ b/assets/svg/cursor-tag.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/assets/svg/deal-with.svg b/assets/svg/deal-with.svg new file mode 100644 index 0000000000000000000000000000000000000000..ed71050a82ca65cd8139f5103d8305496d4c61b9 --- /dev/null +++ b/assets/svg/deal-with.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/explore.svg b/assets/svg/explore.svg new file mode 100644 index 0000000000000000000000000000000000000000..6c55df6f6a15331f2fd9ec4de3e0de1bce08740c --- /dev/null +++ b/assets/svg/explore.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/svg/grey-camera-logo.svg b/assets/svg/grey-camera-logo.svg new file mode 100644 index 0000000000000000000000000000000000000000..9763cbd4ffdbdab763ca70a9a4d34d1003295459 --- /dev/null +++ b/assets/svg/grey-camera-logo.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/assets/svg/grey-hollow-circle.svg b/assets/svg/grey-hollow-circle.svg new file mode 100644 index 0000000000000000000000000000000000000000..8a13e2a68a16f32f0b34c085792b6187eb955e7b --- /dev/null +++ b/assets/svg/grey-hollow-circle.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/assets/svg/grey-line.svg b/assets/svg/grey-line.svg new file mode 100644 index 0000000000000000000000000000000000000000..509774cd1d3f80e3f158a885db9da5388be92dcd --- /dev/null +++ b/assets/svg/grey-line.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/information-surface-1.svg b/assets/svg/information-surface-1.svg new file mode 100644 index 0000000000000000000000000000000000000000..8fd62c8a48f99e386af926decbc5ddd3e8efd229 --- /dev/null +++ b/assets/svg/information-surface-1.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/information-surface-2.svg b/assets/svg/information-surface-2.svg new file mode 100644 index 0000000000000000000000000000000000000000..2c6a8f4b40793e9910147d5b2686b25f329116f7 --- /dev/null +++ b/assets/svg/information-surface-2.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/information-surface-3.svg b/assets/svg/information-surface-3.svg new file mode 100644 index 0000000000000000000000000000000000000000..279f0994270a8216ad2681dd1c3ade188d524957 --- /dev/null +++ b/assets/svg/information-surface-3.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/information-surface-4.svg b/assets/svg/information-surface-4.svg new file mode 100644 index 0000000000000000000000000000000000000000..8595465cceb8c6fea03a900a5678e790c1fba0af --- /dev/null +++ b/assets/svg/information-surface-4.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/information-surface-5.svg b/assets/svg/information-surface-5.svg new file mode 100644 index 0000000000000000000000000000000000000000..5526243f2f097a80ffbcbd7e7394d46c08f240b7 --- /dev/null +++ b/assets/svg/information-surface-5.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/information-surface-6.svg b/assets/svg/information-surface-6.svg new file mode 100644 index 0000000000000000000000000000000000000000..d6632c010d6d5e48d5196dad929a1f891aad3d4e --- /dev/null +++ b/assets/svg/information-surface-6.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/information-surface-7.svg b/assets/svg/information-surface-7.svg new file mode 100644 index 0000000000000000000000000000000000000000..7c148789cb250cf5b45195cd0753cb7be4b12f43 --- /dev/null +++ b/assets/svg/information-surface-7.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/licai.svg b/assets/svg/licai.svg new file mode 100644 index 0000000000000000000000000000000000000000..47369c26f523f1fc059e1f514f21acc0d384e598 --- /dev/null +++ b/assets/svg/licai.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/assets/svg/map-logo.svg b/assets/svg/map-logo.svg new file mode 100644 index 0000000000000000000000000000000000000000..eff87829311477137c1b0c66e683fe6b2f83c7f1 --- /dev/null +++ b/assets/svg/map-logo.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/orange-circle.svg b/assets/svg/orange-circle.svg new file mode 100644 index 0000000000000000000000000000000000000000..cb798814c4b13507ce34c21bbf119cd6e1d7d47a --- /dev/null +++ b/assets/svg/orange-circle.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/orange-navigation-logo.svg b/assets/svg/orange-navigation-logo.svg new file mode 100644 index 0000000000000000000000000000000000000000..f336ee7b05b57cb4bedf8ba7a7fc2654162dc820 --- /dev/null +++ b/assets/svg/orange-navigation-logo.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/orange-warning.svg b/assets/svg/orange-warning.svg new file mode 100644 index 0000000000000000000000000000000000000000..87257abd0fef54a3da66cf4a69cef67b4df630cd --- /dev/null +++ b/assets/svg/orange-warning.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/past.svg b/assets/svg/past.svg new file mode 100644 index 0000000000000000000000000000000000000000..6ec1d59c4c8db5024939f06bf376a85018264a98 --- /dev/null +++ b/assets/svg/past.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/svg/personal-title-1.svg b/assets/svg/personal-title-1.svg new file mode 100644 index 0000000000000000000000000000000000000000..5c677ccd08ccbf9331b10c68fe11eed9112e02df --- /dev/null +++ b/assets/svg/personal-title-1.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/personal-title-2.svg b/assets/svg/personal-title-2.svg new file mode 100644 index 0000000000000000000000000000000000000000..5e892830b4b617be885f7e49501cb85c337f1bb9 --- /dev/null +++ b/assets/svg/personal-title-2.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/photograph-logo.svg b/assets/svg/photograph-logo.svg new file mode 100644 index 0000000000000000000000000000000000000000..881a598bbf1c9c70d5742eb247ad46b9fc66a693 --- /dev/null +++ b/assets/svg/photograph-logo.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/position-1.svg b/assets/svg/position-1.svg new file mode 100644 index 0000000000000000000000000000000000000000..5d1a017e3d6780c14088eb3d0c65a6d80caa80f3 --- /dev/null +++ b/assets/svg/position-1.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/position-2.svg b/assets/svg/position-2.svg new file mode 100644 index 0000000000000000000000000000000000000000..483509645de777b34846c82f5dabd077fad1e86a --- /dev/null +++ b/assets/svg/position-2.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/project-view.svg b/assets/svg/project-view.svg new file mode 100644 index 0000000000000000000000000000000000000000..940e6e3d5c62a3a9b7c0c2cf756312b6f1b434e9 --- /dev/null +++ b/assets/svg/project-view.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/svg/receive.svg b/assets/svg/receive.svg new file mode 100644 index 0000000000000000000000000000000000000000..b9b9f4950cd94c5b647ecba47979ed59236bdfc6 --- /dev/null +++ b/assets/svg/receive.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/red-message-box.svg b/assets/svg/red-message-box.svg new file mode 100644 index 0000000000000000000000000000000000000000..d29669d227211b38e84ebb3c19be28eb687f7ac4 --- /dev/null +++ b/assets/svg/red-message-box.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/svg/red-round.svg b/assets/svg/red-round.svg new file mode 100644 index 0000000000000000000000000000000000000000..8a52e99d5eaaf229c93fe864d6d2327ae2766179 --- /dev/null +++ b/assets/svg/red-round.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/red-rounded-rectangle.svg b/assets/svg/red-rounded-rectangle.svg new file mode 100644 index 0000000000000000000000000000000000000000..db74c34e8f277490846915387117544a45ba288b --- /dev/null +++ b/assets/svg/red-rounded-rectangle.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/red-shadow-round.svg b/assets/svg/red-shadow-round.svg new file mode 100644 index 0000000000000000000000000000000000000000..0e7c071bb37fdd9459e7b250782646ac2c577a7f --- /dev/null +++ b/assets/svg/red-shadow-round.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/svg/red-spheric.svg b/assets/svg/red-spheric.svg new file mode 100644 index 0000000000000000000000000000000000000000..1457f8f6430d1259fb8fabbaf4b828661bcc34e0 --- /dev/null +++ b/assets/svg/red-spheric.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/svg/red-subscript.svg b/assets/svg/red-subscript.svg new file mode 100644 index 0000000000000000000000000000000000000000..d55b4fcd9e9adeb310649250bc07ff9acee2d0c0 --- /dev/null +++ b/assets/svg/red-subscript.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/red-warning.svg b/assets/svg/red-warning.svg new file mode 100644 index 0000000000000000000000000000000000000000..9cee3dd2a7b581d4c00b11260eab397ccbf30378 --- /dev/null +++ b/assets/svg/red-warning.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/reference-example-logo.svg b/assets/svg/reference-example-logo.svg new file mode 100644 index 0000000000000000000000000000000000000000..5c6feedfd02ac5f0cd4bbac100863f426c32813f --- /dev/null +++ b/assets/svg/reference-example-logo.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/related-info.svg b/assets/svg/related-info.svg new file mode 100644 index 0000000000000000000000000000000000000000..65b416b5daf3c36d445d77ecb72f4f10e30623d3 --- /dev/null +++ b/assets/svg/related-info.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/search-freak.svg b/assets/svg/search-freak.svg new file mode 100644 index 0000000000000000000000000000000000000000..b4dedac052c7f6b652be5dac319dce8fc848d013 --- /dev/null +++ b/assets/svg/search-freak.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/assets/svg/select-all.svg b/assets/svg/select-all.svg new file mode 100644 index 0000000000000000000000000000000000000000..f294a7a62fe322a8acca9dfce351dad8e1666be9 --- /dev/null +++ b/assets/svg/select-all.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/survey-upload.svg b/assets/svg/survey-upload.svg new file mode 100644 index 0000000000000000000000000000000000000000..ed7d52f3bf30f97b7f52af47cee61c1ea5967051 --- /dev/null +++ b/assets/svg/survey-upload.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/svg/tel.svg b/assets/svg/tel.svg new file mode 100644 index 0000000000000000000000000000000000000000..ec7a785243ece8f7ea7a1f0e3d7f80484b61192c --- /dev/null +++ b/assets/svg/tel.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/time-axis-1.svg b/assets/svg/time-axis-1.svg new file mode 100644 index 0000000000000000000000000000000000000000..ea48430735233ae1d5651db69842a52549f590fb --- /dev/null +++ b/assets/svg/time-axis-1.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/time-axis-2.svg b/assets/svg/time-axis-2.svg new file mode 100644 index 0000000000000000000000000000000000000000..e3dd486d09bd954fb3e45b938964df0d0461b25f --- /dev/null +++ b/assets/svg/time-axis-2.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/time-axis-logo.svg b/assets/svg/time-axis-logo.svg new file mode 100644 index 0000000000000000000000000000000000000000..85a9bf571ea2ad2d9cac3c9cf49c67e76cb4bcc8 --- /dev/null +++ b/assets/svg/time-axis-logo.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/title.svg b/assets/svg/title.svg new file mode 100644 index 0000000000000000000000000000000000000000..05df919013e276abcac9164ba39206dc06cada39 --- /dev/null +++ b/assets/svg/title.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/u1176.svg b/assets/svg/u1176.svg new file mode 100644 index 0000000000000000000000000000000000000000..2023ea57388f01daca92e9be4de92f1b65f993f2 --- /dev/null +++ b/assets/svg/u1176.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/u1181.svg b/assets/svg/u1181.svg new file mode 100644 index 0000000000000000000000000000000000000000..236f70fa16a07a84dddf768272c236a3334d05fb --- /dev/null +++ b/assets/svg/u1181.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/u1188.svg b/assets/svg/u1188.svg new file mode 100644 index 0000000000000000000000000000000000000000..a8ea7812356131493e7901fde27879513086cac2 --- /dev/null +++ b/assets/svg/u1188.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/u1189.svg b/assets/svg/u1189.svg new file mode 100644 index 0000000000000000000000000000000000000000..8bbce6c06ad9c94ea3a46b9e6ce457182efe482f --- /dev/null +++ b/assets/svg/u1189.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/assets/svg/u1275.svg b/assets/svg/u1275.svg new file mode 100644 index 0000000000000000000000000000000000000000..bfc96dfaefbc192a8276af20988c368317107cac --- /dev/null +++ b/assets/svg/u1275.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/u1280.svg b/assets/svg/u1280.svg new file mode 100644 index 0000000000000000000000000000000000000000..8ed246eba520b86acd346449ac8f3ab148c0e49d --- /dev/null +++ b/assets/svg/u1280.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/u1283.svg b/assets/svg/u1283.svg new file mode 100644 index 0000000000000000000000000000000000000000..e472e83e9d203f5b5129384d9eb65b806db764b0 --- /dev/null +++ b/assets/svg/u1283.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/svg/u1506.svg b/assets/svg/u1506.svg new file mode 100644 index 0000000000000000000000000000000000000000..4ff2842d7a8885344c8780d2b6fc70c74df94d87 --- /dev/null +++ b/assets/svg/u1506.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/u1507.svg b/assets/svg/u1507.svg new file mode 100644 index 0000000000000000000000000000000000000000..4130e8feb725b7f284d3cc344cd7543f3c72037a --- /dev/null +++ b/assets/svg/u1507.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/u275.svg b/assets/svg/u275.svg new file mode 100644 index 0000000000000000000000000000000000000000..009cb6084fd6200dc9c442a5ab201586f8f9bc3f --- /dev/null +++ b/assets/svg/u275.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/u278.svg b/assets/svg/u278.svg new file mode 100644 index 0000000000000000000000000000000000000000..065838432f847cc02987c015abf16fe5598479ea --- /dev/null +++ b/assets/svg/u278.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/unselect-all.svg b/assets/svg/unselect-all.svg new file mode 100644 index 0000000000000000000000000000000000000000..9e073af2f402d6a72bb9facdb2ebaa5fc45b8cfe --- /dev/null +++ b/assets/svg/unselect-all.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/user-list-logo.svg b/assets/svg/user-list-logo.svg new file mode 100644 index 0000000000000000000000000000000000000000..42b723fc8b80f4a7f522395f320fbc34920a4bfe --- /dev/null +++ b/assets/svg/user-list-logo.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/white-navigation-logo.svg b/assets/svg/white-navigation-logo.svg new file mode 100644 index 0000000000000000000000000000000000000000..7c0ace89d834824540b3a81b64452efc6dfa1f1c --- /dev/null +++ b/assets/svg/white-navigation-logo.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/yellow-folder.svg b/assets/svg/yellow-folder.svg new file mode 100644 index 0000000000000000000000000000000000000000..018e3fe6191860bb6a43d875785f6fe1c30860de --- /dev/null +++ b/assets/svg/yellow-folder.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/yellow-round.svg b/assets/svg/yellow-round.svg new file mode 100644 index 0000000000000000000000000000000000000000..4ab259f56a2f56524ae3797c0add4a65c0aeab6b --- /dev/null +++ b/assets/svg/yellow-round.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/yellow-speck.svg b/assets/svg/yellow-speck.svg new file mode 100644 index 0000000000000000000000000000000000000000..3163c524534106add625723699dea3220fafe210 --- /dev/null +++ b/assets/svg/yellow-speck.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/assets/svg/yellow-warning.svg b/assets/svg/yellow-warning.svg new file mode 100644 index 0000000000000000000000000000000000000000..db5ec5822a097973cf74371b1a02a53210840a2b --- /dev/null +++ b/assets/svg/yellow-warning.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/components/common/Bottom.vue b/components/common/Bottom.vue new file mode 100644 index 0000000000000000000000000000000000000000..cba9ef616e958b40def2974ff994372a237af001 --- /dev/null +++ b/components/common/Bottom.vue @@ -0,0 +1,119 @@ + + + + + + diff --git a/components/common/CardPottom.vue b/components/common/CardPottom.vue new file mode 100644 index 0000000000000000000000000000000000000000..594714f6a1454b48f9128e14ae65c56c3c7bae68 --- /dev/null +++ b/components/common/CardPottom.vue @@ -0,0 +1,140 @@ + + + + + + diff --git a/components/common/CardUnLogin.vue b/components/common/CardUnLogin.vue new file mode 100644 index 0000000000000000000000000000000000000000..82426e2dc78a000242da71a6019fcc5fafb8e2bb --- /dev/null +++ b/components/common/CardUnLogin.vue @@ -0,0 +1,66 @@ + + + + + + diff --git a/components/common/LittleCard.vue b/components/common/LittleCard.vue new file mode 100644 index 0000000000000000000000000000000000000000..0ee557b4331c2100e9915570b62f0d8fe74c1710 --- /dev/null +++ b/components/common/LittleCard.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/components/common/Person.vue b/components/common/Person.vue new file mode 100644 index 0000000000000000000000000000000000000000..b6f502b457855281a95deb7bf2c0e209c5b831a2 --- /dev/null +++ b/components/common/Person.vue @@ -0,0 +1,182 @@ + + + + + diff --git a/components/common/Picket.vue b/components/common/Picket.vue new file mode 100644 index 0000000000000000000000000000000000000000..c15576d174c5157d55ec06abcb73379cdf1eec52 --- /dev/null +++ b/components/common/Picket.vue @@ -0,0 +1,136 @@ + + + + + diff --git a/components/common/Picket2.vue b/components/common/Picket2.vue new file mode 100644 index 0000000000000000000000000000000000000000..205d3e00e2f01ceb9bea34f1edd7dae6b96a8bb3 --- /dev/null +++ b/components/common/Picket2.vue @@ -0,0 +1,120 @@ + + + + + diff --git a/components/common/PicketAcced.vue b/components/common/PicketAcced.vue new file mode 100644 index 0000000000000000000000000000000000000000..e52af961c01db19e60427b9786ff4993015a94e6 --- /dev/null +++ b/components/common/PicketAcced.vue @@ -0,0 +1,148 @@ + + + + + diff --git a/components/common/ProductCard.vue b/components/common/ProductCard.vue new file mode 100644 index 0000000000000000000000000000000000000000..efe960cdf490f9bd22ffbe5692b59411108debc1 --- /dev/null +++ b/components/common/ProductCard.vue @@ -0,0 +1,124 @@ + + + + + + diff --git a/components/common/ProductDetail.vue b/components/common/ProductDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..cd124b87fdd999fddb15b6a8992c2da36de44332 --- /dev/null +++ b/components/common/ProductDetail.vue @@ -0,0 +1,64 @@ + + + + + diff --git a/components/common/Tatle.vue b/components/common/Tatle.vue new file mode 100644 index 0000000000000000000000000000000000000000..0650f4db8508f3e516e2a4529857df17bef75c48 --- /dev/null +++ b/components/common/Tatle.vue @@ -0,0 +1,58 @@ + + + + + diff --git a/components/common/Tool.vue b/components/common/Tool.vue new file mode 100644 index 0000000000000000000000000000000000000000..ee3b976c73e5069226a7d6237f31f6d913e7b9a2 --- /dev/null +++ b/components/common/Tool.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/components/customer-information/business-application-status/application-status/ApplicationStatusForm.vue b/components/customer-information/business-application-status/application-status/ApplicationStatusForm.vue new file mode 100644 index 0000000000000000000000000000000000000000..c656db1eb98f62df0cecc10dca072b98df7d2069 --- /dev/null +++ b/components/customer-information/business-application-status/application-status/ApplicationStatusForm.vue @@ -0,0 +1,38 @@ + + + + diff --git a/components/customer-information/business-application-status/credit-status-of-client-executives/Credit.vue b/components/customer-information/business-application-status/credit-status-of-client-executives/Credit.vue new file mode 100644 index 0000000000000000000000000000000000000000..097054fb430c9e19d716ba453229648b8a4a3891 --- /dev/null +++ b/components/customer-information/business-application-status/credit-status-of-client-executives/Credit.vue @@ -0,0 +1,60 @@ + + + + diff --git a/components/customer-information/business-application-status/credit-status-of-client-executives/PersonalLoan.vue b/components/customer-information/business-application-status/credit-status-of-client-executives/PersonalLoan.vue new file mode 100644 index 0000000000000000000000000000000000000000..f2e470e4318241c6abb04af2a8c71a94b21a7f93 --- /dev/null +++ b/components/customer-information/business-application-status/credit-status-of-client-executives/PersonalLoan.vue @@ -0,0 +1,40 @@ + + + + diff --git a/components/customer-information/business-application-status/customer-contribution/CompanyRateOfReturn.vue b/components/customer-information/business-application-status/customer-contribution/CompanyRateOfReturn.vue new file mode 100644 index 0000000000000000000000000000000000000000..17840c35ec587777f9646bbd0e03c1a786cd848e --- /dev/null +++ b/components/customer-information/business-application-status/customer-contribution/CompanyRateOfReturn.vue @@ -0,0 +1,135 @@ + + + + + diff --git a/components/customer-information/business-application-status/customer-contribution/CustomerContributionSituationTable.vue b/components/customer-information/business-application-status/customer-contribution/CustomerContributionSituationTable.vue new file mode 100644 index 0000000000000000000000000000000000000000..6802fb99340842fad0d46ea258899f36eda0a81d --- /dev/null +++ b/components/customer-information/business-application-status/customer-contribution/CustomerContributionSituationTable.vue @@ -0,0 +1,100 @@ + + + + + diff --git a/components/customer-information/business-application-status/customer-contribution/GroupRateOfReturn.vue b/components/customer-information/business-application-status/customer-contribution/GroupRateOfReturn.vue new file mode 100644 index 0000000000000000000000000000000000000000..e065bf1b1f766c6ba2c92d6f34b43625fa3a2c12 --- /dev/null +++ b/components/customer-information/business-application-status/customer-contribution/GroupRateOfReturn.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/components/customer-information/business-application-status/customer-management-information/IssuanceOfStockInformation.vue b/components/customer-information/business-application-status/customer-management-information/IssuanceOfStockInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..833dd739e02f35201d86fbfec2e76b871b46b673 --- /dev/null +++ b/components/customer-information/business-application-status/customer-management-information/IssuanceOfStockInformation.vue @@ -0,0 +1,38 @@ + + + + diff --git a/components/customer-information/business-application-status/customer-management-information/ProjectInformation.vue b/components/customer-information/business-application-status/customer-management-information/ProjectInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..c862de5c73ef8736ef6c7115585a41f19ee3e83e --- /dev/null +++ b/components/customer-information/business-application-status/customer-management-information/ProjectInformation.vue @@ -0,0 +1,114 @@ + + + + + diff --git a/components/customer-information/business-application-status/customer-preliminary-screening-history/PreliminaryScreeningOfHistory.vue b/components/customer-information/business-application-status/customer-preliminary-screening-history/PreliminaryScreeningOfHistory.vue new file mode 100644 index 0000000000000000000000000000000000000000..305a80ec431a96fbab9de4ba848d7bd043fdadf0 --- /dev/null +++ b/components/customer-information/business-application-status/customer-preliminary-screening-history/PreliminaryScreeningOfHistory.vue @@ -0,0 +1,137 @@ + + + + diff --git a/components/customer-information/business-application-status/customer-ratings/CurrentInternalRating.vue b/components/customer-information/business-application-status/customer-ratings/CurrentInternalRating.vue new file mode 100644 index 0000000000000000000000000000000000000000..a693f6422cf2cee2cb319727ff60f8941b1024f4 --- /dev/null +++ b/components/customer-information/business-application-status/customer-ratings/CurrentInternalRating.vue @@ -0,0 +1,186 @@ + + + + + diff --git a/components/customer-information/business-application-status/customer-ratings/InternalRatingInThePastThreeYears.vue b/components/customer-information/business-application-status/customer-ratings/InternalRatingInThePastThreeYears.vue new file mode 100644 index 0000000000000000000000000000000000000000..db9768762ba44293cec231c6e578494b051e18b1 --- /dev/null +++ b/components/customer-information/business-application-status/customer-ratings/InternalRatingInThePastThreeYears.vue @@ -0,0 +1,277 @@ + + + + diff --git a/components/customer-information/business-application-status/financial-information/BalanceSheet.vue b/components/customer-information/business-application-status/financial-information/BalanceSheet.vue new file mode 100644 index 0000000000000000000000000000000000000000..b3006d9ef86c8088e32a82aa5e18136e6d449ced --- /dev/null +++ b/components/customer-information/business-application-status/financial-information/BalanceSheet.vue @@ -0,0 +1,1055 @@ + + + + diff --git a/components/customer-information/business-application-status/financial-information/CashFlowStatement.vue b/components/customer-information/business-application-status/financial-information/CashFlowStatement.vue new file mode 100644 index 0000000000000000000000000000000000000000..aee137883a66b4b297d44d88d483c924e5953825 --- /dev/null +++ b/components/customer-information/business-application-status/financial-information/CashFlowStatement.vue @@ -0,0 +1,623 @@ + + + + diff --git a/components/customer-information/business-application-status/financial-information/IncomeStatement.vue b/components/customer-information/business-application-status/financial-information/IncomeStatement.vue new file mode 100644 index 0000000000000000000000000000000000000000..844b57fe2827c667d7138b0565d06a6f71ed31d4 --- /dev/null +++ b/components/customer-information/business-application-status/financial-information/IncomeStatement.vue @@ -0,0 +1,842 @@ + + + + diff --git a/components/customer-information/business-application-status/unified-customer-credit-view/UnifiedCustomerCreditViewTable.vue b/components/customer-information/business-application-status/unified-customer-credit-view/UnifiedCustomerCreditViewTable.vue new file mode 100644 index 0000000000000000000000000000000000000000..2877dd7e6851a7daa990717e6a88b3057a23a2f5 --- /dev/null +++ b/components/customer-information/business-application-status/unified-customer-credit-view/UnifiedCustomerCreditViewTable.vue @@ -0,0 +1,246 @@ + + + + + diff --git a/components/customer-information/business-information/StockInformation/IssuedStockInfo.vue b/components/customer-information/business-information/StockInformation/IssuedStockInfo.vue new file mode 100644 index 0000000000000000000000000000000000000000..97930ac69ee84c1522e5eefbdc67730751942e08 --- /dev/null +++ b/components/customer-information/business-information/StockInformation/IssuedStockInfo.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/components/customer-information/business-information/annual-report/ShareholdingChangeInformation.vue b/components/customer-information/business-information/annual-report/ShareholdingChangeInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..b2089c44b6cc1ab48f1e400e46222450accc38b0 --- /dev/null +++ b/components/customer-information/business-information/annual-report/ShareholdingChangeInformation.vue @@ -0,0 +1,42 @@ + + + + + diff --git a/components/customer-information/business-information/annual-report/SocialInsuranceInformation.vue b/components/customer-information/business-information/annual-report/SocialInsuranceInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..3b7bf4344bfe6cf6c6b08a315c3587e079c9ee16 --- /dev/null +++ b/components/customer-information/business-information/annual-report/SocialInsuranceInformation.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/components/customer-information/business-information/annual-report/WebsiteInformation.vue b/components/customer-information/business-information/annual-report/WebsiteInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..82206825bcf5679fd8d3a481f76c6ca3c324c124 --- /dev/null +++ b/components/customer-information/business-information/annual-report/WebsiteInformation.vue @@ -0,0 +1,33 @@ + + + + + diff --git a/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/BasicInformation.vue b/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/BasicInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..316939dfa169887f08161c708dc4041aa27a055f --- /dev/null +++ b/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/BasicInformation.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/ChangeInformation.vue b/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/ChangeInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..7cc51e1cc9356b8172a580727acc5613dafea9df --- /dev/null +++ b/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/ChangeInformation.vue @@ -0,0 +1,42 @@ + + + + + diff --git a/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/FreezeHistory.vue b/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/FreezeHistory.vue new file mode 100644 index 0000000000000000000000000000000000000000..67ae842da72375dcc6d204233ce0155fa6b36c4a --- /dev/null +++ b/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/FreezeHistory.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/HistoryInformation.vue b/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/HistoryInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..783c25a7b9bf55c7e138346502bcc0e65bd91856 --- /dev/null +++ b/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/HistoryInformation.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/MortgageInformation.vue b/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/MortgageInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..2a7dc8fbf99ef2c2ddbf07384a3726dff0ce723d --- /dev/null +++ b/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/MortgageInformation.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/RegistrationInformation.vue b/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/RegistrationInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..4a7651a6798c738c638bc013fa1e598744c857e4 --- /dev/null +++ b/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/RegistrationInformation.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/components/customer-information/business-information/overview/BasicInformation.vue b/components/customer-information/business-information/overview/BasicInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..94841d74227aa31316858fde7b7684abf9dd5caf --- /dev/null +++ b/components/customer-information/business-information/overview/BasicInformation.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/components/customer-information/business-information/risk-information/BusinessRisk.vue b/components/customer-information/business-information/risk-information/BusinessRisk.vue new file mode 100644 index 0000000000000000000000000000000000000000..f8b8c67f00a7b65160d57d3d92c7776c81895792 --- /dev/null +++ b/components/customer-information/business-information/risk-information/BusinessRisk.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/components/customer-information/business-information/risk-information/LiquidationInformation.vue b/components/customer-information/business-information/risk-information/LiquidationInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..5cccd8dc375bb1ad9dfe07880846352a6f48cb9e --- /dev/null +++ b/components/customer-information/business-information/risk-information/LiquidationInformation.vue @@ -0,0 +1,42 @@ + + + + + diff --git a/components/customer-information/business-information/risk-information/PunishmentInformation.vue b/components/customer-information/business-information/risk-information/PunishmentInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..6054b39c4ce11ee1bea45554ba681ded4f122ded --- /dev/null +++ b/components/customer-information/business-information/risk-information/PunishmentInformation.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/components/customer-information/family-financial-information/ApplicationInformation.vue b/components/customer-information/family-financial-information/ApplicationInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..9d29d796de803300807f9278ae19644f53aa2bb2 --- /dev/null +++ b/components/customer-information/family-financial-information/ApplicationInformation.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/components/customer-information/family-financial-information/BasicInformation.vue b/components/customer-information/family-financial-information/BasicInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..be37c4bfbb30c012e909024d30a5aba8306bd636 --- /dev/null +++ b/components/customer-information/family-financial-information/BasicInformation.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/components/customer-information/family-financial-information/BillingInformation.vue b/components/customer-information/family-financial-information/BillingInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..fcdf75cc13a3fcad819a800a956615175bf18fce --- /dev/null +++ b/components/customer-information/family-financial-information/BillingInformation.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/components/customer-information/family-financial-information/FamilyAssetStatus.vue b/components/customer-information/family-financial-information/FamilyAssetStatus.vue new file mode 100644 index 0000000000000000000000000000000000000000..7552148ca56d67dfa0661c4afa20a3e01591ad7e --- /dev/null +++ b/components/customer-information/family-financial-information/FamilyAssetStatus.vue @@ -0,0 +1,64 @@ + + + + + diff --git a/components/customer-information/family-financial-information/IncomeInformation.vue b/components/customer-information/family-financial-information/IncomeInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..210a6a4d978fabce7d7a96a3e1eba179d7eeacee --- /dev/null +++ b/components/customer-information/family-financial-information/IncomeInformation.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/components/customer-information/family-financial-information/LoanInformation.vue b/components/customer-information/family-financial-information/LoanInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..cb9754215a60eebe6c91cc608fd08fc419ae9d48 --- /dev/null +++ b/components/customer-information/family-financial-information/LoanInformation.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/components/customer-information/operating-risk-information/case-process/CaseFlowInformation.vue b/components/customer-information/operating-risk-information/case-process/CaseFlowInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..efff0ca40c6f05aca97a7f2765bbd2dacb35ae20 --- /dev/null +++ b/components/customer-information/operating-risk-information/case-process/CaseFlowInformation.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/components/customer-information/operating-risk-information/court-announcement/AnnouncementInformation.vue b/components/customer-information/operating-risk-information/court-announcement/AnnouncementInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..ad26d5d3d211bec621d9994e0480ab76b9683484 --- /dev/null +++ b/components/customer-information/operating-risk-information/court-announcement/AnnouncementInformation.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/components/customer-information/operating-risk-information/executed-person/InformationOfThePersonSubjectToExecution.vue b/components/customer-information/operating-risk-information/executed-person/InformationOfThePersonSubjectToExecution.vue new file mode 100644 index 0000000000000000000000000000000000000000..f07ea7c083696e3d7d0a9780e221b35944dad154 --- /dev/null +++ b/components/customer-information/operating-risk-information/executed-person/InformationOfThePersonSubjectToExecution.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/components/customer-information/operating-risk-information/executed-person/InformationOfUntrustworthyPersonSubjectToEnforcement.vue b/components/customer-information/operating-risk-information/executed-person/InformationOfUntrustworthyPersonSubjectToEnforcement.vue new file mode 100644 index 0000000000000000000000000000000000000000..24a0e22029007b46cbb5903fd8d04e77b52f1458 --- /dev/null +++ b/components/customer-information/operating-risk-information/executed-person/InformationOfUntrustworthyPersonSubjectToEnforcement.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/components/customer-information/operating-risk-information/exposure-table/ExposureTableInformation.vue b/components/customer-information/operating-risk-information/exposure-table/ExposureTableInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..3987ffe5c2d846e70b6f432416f1a42307bd8c45 --- /dev/null +++ b/components/customer-information/operating-risk-information/exposure-table/ExposureTableInformation.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/components/customer-information/operating-risk-information/judgment/JudgmentDocumentInformation.vue b/components/customer-information/operating-risk-information/judgment/JudgmentDocumentInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..fa6e9f5e8fe1263f7d834397fbabe6efdd17cfe8 --- /dev/null +++ b/components/customer-information/operating-risk-information/judgment/JudgmentDocumentInformation.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/components/customer-information/operating-risk-information/judicial-deduction/JudicialFrozenDeductionInformation.vue b/components/customer-information/operating-risk-information/judicial-deduction/JudicialFrozenDeductionInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..64acba0b02ef5501d3105f60267d7c62771cd4be --- /dev/null +++ b/components/customer-information/operating-risk-information/judicial-deduction/JudicialFrozenDeductionInformation.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/components/customer-information/operating-risk-information/public-opinion-information/PublicOpinionInformationContent.vue b/components/customer-information/operating-risk-information/public-opinion-information/PublicOpinionInformationContent.vue new file mode 100644 index 0000000000000000000000000000000000000000..246bc181b8e9288b3744577bbdd81edf815670b4 --- /dev/null +++ b/components/customer-information/operating-risk-information/public-opinion-information/PublicOpinionInformationContent.vue @@ -0,0 +1,31 @@ + + + + + diff --git a/components/customer-information/personal-profiles/BasicInformation.vue b/components/customer-information/personal-profiles/BasicInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..5cbb9b34f2021cd3853b2ce48f8196ab52688b3b --- /dev/null +++ b/components/customer-information/personal-profiles/BasicInformation.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/components/customer-information/personal-profiles/DetailedInformation.vue b/components/customer-information/personal-profiles/DetailedInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..00e0dd0df5ade7e1ec09498197eb3c2d932ad398 --- /dev/null +++ b/components/customer-information/personal-profiles/DetailedInformation.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/components/general/AnchorNav.vue b/components/general/AnchorNav.vue new file mode 100644 index 0000000000000000000000000000000000000000..aea83dbc7d2b555a1b90335876320607d66a0309 --- /dev/null +++ b/components/general/AnchorNav.vue @@ -0,0 +1,106 @@ + + + + + diff --git a/components/general/BaseList.vue b/components/general/BaseList.vue new file mode 100644 index 0000000000000000000000000000000000000000..3844d3f84b4b98acb970d5ad323d00341b7cd0e8 --- /dev/null +++ b/components/general/BaseList.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/components/general/BasePopup.vue b/components/general/BasePopup.vue new file mode 100644 index 0000000000000000000000000000000000000000..bd1af9275df0b7ac0cdeaf42d19f0b0d0a77210a --- /dev/null +++ b/components/general/BasePopup.vue @@ -0,0 +1,94 @@ + + + + diff --git a/components/general/ScrollerView.vue b/components/general/ScrollerView.vue new file mode 100644 index 0000000000000000000000000000000000000000..8de0017a18365bd5444419f10754e4cd0dcc8c7c --- /dev/null +++ b/components/general/ScrollerView.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/components/general/SubTitle.vue b/components/general/SubTitle.vue new file mode 100644 index 0000000000000000000000000000000000000000..d5fadb75c0b6a956577c98d6e5ba77450c076f5d --- /dev/null +++ b/components/general/SubTitle.vue @@ -0,0 +1,42 @@ + + + + + diff --git a/components/general/TabNav.vue b/components/general/TabNav.vue new file mode 100644 index 0000000000000000000000000000000000000000..6306b98da3a306b183a0563caef0e8079d93b012 --- /dev/null +++ b/components/general/TabNav.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/components/general/TitleBar.vue b/components/general/TitleBar.vue new file mode 100644 index 0000000000000000000000000000000000000000..5a05d242dfd556da2b5f6b4b1f27a0d5d98c82f3 --- /dev/null +++ b/components/general/TitleBar.vue @@ -0,0 +1,58 @@ + + + + + diff --git a/components/general/TreeGraphCmp.vue b/components/general/TreeGraphCmp.vue new file mode 100644 index 0000000000000000000000000000000000000000..933cf4a9de627077880187f0d8b18358c32e269a --- /dev/null +++ b/components/general/TreeGraphCmp.vue @@ -0,0 +1,284 @@ + + + + + diff --git a/components/general/form/DCalendar.vue b/components/general/form/DCalendar.vue new file mode 100644 index 0000000000000000000000000000000000000000..55cd472888bbd664d419939a08193961a27cbf33 --- /dev/null +++ b/components/general/form/DCalendar.vue @@ -0,0 +1,47 @@ + + + + diff --git a/components/general/form/DDatetimePicker.vue b/components/general/form/DDatetimePicker.vue new file mode 100644 index 0000000000000000000000000000000000000000..ab68b8c72ad980880e8eb218786fadc474783525 --- /dev/null +++ b/components/general/form/DDatetimePicker.vue @@ -0,0 +1,92 @@ + + + + diff --git a/components/general/form/DSelect.vue b/components/general/form/DSelect.vue new file mode 100644 index 0000000000000000000000000000000000000000..4fa92a9814151c3eaa2e12c7f7282c110f358936 --- /dev/null +++ b/components/general/form/DSelect.vue @@ -0,0 +1,181 @@ + + + + + diff --git a/components/general/form/MobileInput.vue b/components/general/form/MobileInput.vue new file mode 100644 index 0000000000000000000000000000000000000000..58445deb250d94734a69aaaaf395386e6327feb5 --- /dev/null +++ b/components/general/form/MobileInput.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/components/workbench/LoanCalculation.vue b/components/workbench/LoanCalculation.vue new file mode 100644 index 0000000000000000000000000000000000000000..e509828173504d37f265b9fd124e9745d514d8a2 --- /dev/null +++ b/components/workbench/LoanCalculation.vue @@ -0,0 +1,338 @@ + + + + + diff --git a/components/workbench/SME-common-functions/SMEMarketingDetail.vue b/components/workbench/SME-common-functions/SMEMarketingDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..8f1a10ba5e852319f20e419d7dd1be7c87250ce1 --- /dev/null +++ b/components/workbench/SME-common-functions/SMEMarketingDetail.vue @@ -0,0 +1,473 @@ + + + + diff --git a/components/workbench/SME-common-functions/SMEMarketingPool.vue b/components/workbench/SME-common-functions/SMEMarketingPool.vue new file mode 100644 index 0000000000000000000000000000000000000000..0fe4e00dd5ff41da8c6575505899eb556064cff9 --- /dev/null +++ b/components/workbench/SME-common-functions/SMEMarketingPool.vue @@ -0,0 +1,429 @@ + + + + + diff --git a/components/workbench/company-common-functions/auxiliary-tools/Calculate.vue b/components/workbench/company-common-functions/auxiliary-tools/Calculate.vue new file mode 100644 index 0000000000000000000000000000000000000000..4aebf7895ca7498e3f0bb8041869436bd6785c78 --- /dev/null +++ b/components/workbench/company-common-functions/auxiliary-tools/Calculate.vue @@ -0,0 +1,198 @@ + + + + + diff --git a/components/workbench/company-common-functions/auxiliary-tools/FinancialTrial.vue b/components/workbench/company-common-functions/auxiliary-tools/FinancialTrial.vue new file mode 100644 index 0000000000000000000000000000000000000000..7aa9358aca0be9dc21483ff286934ebed70a0c53 --- /dev/null +++ b/components/workbench/company-common-functions/auxiliary-tools/FinancialTrial.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/components/workbench/company-common-functions/auxiliary-tools/InterestPricing.vue b/components/workbench/company-common-functions/auxiliary-tools/InterestPricing.vue new file mode 100644 index 0000000000000000000000000000000000000000..a620f10d189ba6a81a2df746758452f6e0072abb --- /dev/null +++ b/components/workbench/company-common-functions/auxiliary-tools/InterestPricing.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/components/workbench/company-common-functions/auxiliary-tools/LoanCalculation.vue b/components/workbench/company-common-functions/auxiliary-tools/LoanCalculation.vue new file mode 100644 index 0000000000000000000000000000000000000000..5ee516aaeb6a130620ab23945657f7dc2abfac7d --- /dev/null +++ b/components/workbench/company-common-functions/auxiliary-tools/LoanCalculation.vue @@ -0,0 +1,345 @@ + + + + + diff --git a/components/workbench/company-common-functions/auxiliary-tools/RepaymentTrial.vue b/components/workbench/company-common-functions/auxiliary-tools/RepaymentTrial.vue new file mode 100644 index 0000000000000000000000000000000000000000..f32bbbd8b1039d1bd93ab3ed55abd8f0791e73b8 --- /dev/null +++ b/components/workbench/company-common-functions/auxiliary-tools/RepaymentTrial.vue @@ -0,0 +1,375 @@ + + + + + diff --git a/components/workbench/company-common-functions/auxiliary-tools/financial-trial/ManufacturingTrial.vue b/components/workbench/company-common-functions/auxiliary-tools/financial-trial/ManufacturingTrial.vue new file mode 100644 index 0000000000000000000000000000000000000000..f2a04e8bbf45a468fcee53d25f2aa678eb8c05d1 --- /dev/null +++ b/components/workbench/company-common-functions/auxiliary-tools/financial-trial/ManufacturingTrial.vue @@ -0,0 +1,261 @@ + + + + + diff --git a/components/workbench/company-common-functions/auxiliary-tools/financial-trial/UnManufacturingTrial.vue b/components/workbench/company-common-functions/auxiliary-tools/financial-trial/UnManufacturingTrial.vue new file mode 100644 index 0000000000000000000000000000000000000000..306d380d294887ec987ea3ac9debf4590ec4fe1f --- /dev/null +++ b/components/workbench/company-common-functions/auxiliary-tools/financial-trial/UnManufacturingTrial.vue @@ -0,0 +1,261 @@ + + + + + diff --git a/components/workbench/company-common-functions/business-inquiry/ContractSigningAndBilling.vue b/components/workbench/company-common-functions/business-inquiry/ContractSigningAndBilling.vue new file mode 100644 index 0000000000000000000000000000000000000000..e0c7ca431d50b8e72d6bc4ce08e8340d65dd0ac0 --- /dev/null +++ b/components/workbench/company-common-functions/business-inquiry/ContractSigningAndBilling.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/components/workbench/company-common-functions/business-inquiry/LoanApplication.vue b/components/workbench/company-common-functions/business-inquiry/LoanApplication.vue new file mode 100644 index 0000000000000000000000000000000000000000..31abcc83cf24dca9b4f8f510d9b4a4498b1017b7 --- /dev/null +++ b/components/workbench/company-common-functions/business-inquiry/LoanApplication.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/components/workbench/company-common-functions/business-inquiry/MarketingTask.vue b/components/workbench/company-common-functions/business-inquiry/MarketingTask.vue new file mode 100644 index 0000000000000000000000000000000000000000..a3e6f7825615d2d97ee3824150be32c64976d823 --- /dev/null +++ b/components/workbench/company-common-functions/business-inquiry/MarketingTask.vue @@ -0,0 +1,248 @@ + + + + + diff --git a/components/workbench/company-common-functions/business-inquiry/PeriodicInspection.vue b/components/workbench/company-common-functions/business-inquiry/PeriodicInspection.vue new file mode 100644 index 0000000000000000000000000000000000000000..414331df36b5455de249f7422711c26733624752 --- /dev/null +++ b/components/workbench/company-common-functions/business-inquiry/PeriodicInspection.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/components/workbench/company-common-functions/business-inquiry/ProcessQuery.vue b/components/workbench/company-common-functions/business-inquiry/ProcessQuery.vue new file mode 100644 index 0000000000000000000000000000000000000000..cb3b157409f3609d937166c5e80a90e76918fae7 --- /dev/null +++ b/components/workbench/company-common-functions/business-inquiry/ProcessQuery.vue @@ -0,0 +1,437 @@ + + + + diff --git a/components/workbench/company-common-functions/business-inquiry/RiskWarning.vue b/components/workbench/company-common-functions/business-inquiry/RiskWarning.vue new file mode 100644 index 0000000000000000000000000000000000000000..58cc04d19cd800d489dbdce9197af129646d2f5a --- /dev/null +++ b/components/workbench/company-common-functions/business-inquiry/RiskWarning.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/components/workbench/company-common-functions/online-enquiry/AllOutlets.vue b/components/workbench/company-common-functions/online-enquiry/AllOutlets.vue new file mode 100644 index 0000000000000000000000000000000000000000..42da4b7dfdca01c70cd7c999f79dde5a72ac482f --- /dev/null +++ b/components/workbench/company-common-functions/online-enquiry/AllOutlets.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/components/workbench/company-common-functions/online-enquiry/Area.vue b/components/workbench/company-common-functions/online-enquiry/Area.vue new file mode 100644 index 0000000000000000000000000000000000000000..dc5575fdeb6af7e5a0763dd150ed055e19cf537e --- /dev/null +++ b/components/workbench/company-common-functions/online-enquiry/Area.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/components/workbench/company-common-functions/online-enquiry/Nearby.vue b/components/workbench/company-common-functions/online-enquiry/Nearby.vue new file mode 100644 index 0000000000000000000000000000000000000000..28930fa2150e035c45145fe50f3e8a282752a755 --- /dev/null +++ b/components/workbench/company-common-functions/online-enquiry/Nearby.vue @@ -0,0 +1,94 @@ + + + + + diff --git a/components/workbench/personal-common-functions/agency-task/AfterLoan.vue b/components/workbench/personal-common-functions/agency-task/AfterLoan.vue new file mode 100644 index 0000000000000000000000000000000000000000..a1c65c0a78cca2a0af25c089ff858948291f427f --- /dev/null +++ b/components/workbench/personal-common-functions/agency-task/AfterLoan.vue @@ -0,0 +1,980 @@ + + + + + diff --git a/components/workbench/personal-common-functions/agency-task/CollectionManagement.vue b/components/workbench/personal-common-functions/agency-task/CollectionManagement.vue new file mode 100644 index 0000000000000000000000000000000000000000..8d50e4afbb1c7b51a95da88e34c6537b07d4cba5 --- /dev/null +++ b/components/workbench/personal-common-functions/agency-task/CollectionManagement.vue @@ -0,0 +1,366 @@ + + + + + diff --git a/components/workbench/personal-common-functions/agency-task/PerMarketing.vue b/components/workbench/personal-common-functions/agency-task/PerMarketing.vue new file mode 100644 index 0000000000000000000000000000000000000000..a3c6799534ef3a2451160cef0b0f920d961a49d2 --- /dev/null +++ b/components/workbench/personal-common-functions/agency-task/PerMarketing.vue @@ -0,0 +1,334 @@ + + + + + diff --git a/components/workbench/personal-common-functions/agency-task/telemarketing/MarketingQuery.vue b/components/workbench/personal-common-functions/agency-task/telemarketing/MarketingQuery.vue new file mode 100644 index 0000000000000000000000000000000000000000..50baa02030fb9390dfb0bcd0cad03d4e8e8ba904 --- /dev/null +++ b/components/workbench/personal-common-functions/agency-task/telemarketing/MarketingQuery.vue @@ -0,0 +1,647 @@ + + + + + diff --git a/components/workbench/personal-common-functions/business-inquiry/ContractSigningAndBilling.vue b/components/workbench/personal-common-functions/business-inquiry/ContractSigningAndBilling.vue new file mode 100644 index 0000000000000000000000000000000000000000..569b1a582babe04878470d1b938eb6a746208862 --- /dev/null +++ b/components/workbench/personal-common-functions/business-inquiry/ContractSigningAndBilling.vue @@ -0,0 +1,14 @@ + + + + + diff --git a/components/workbench/personal-common-functions/business-inquiry/LoanApplication.vue b/components/workbench/personal-common-functions/business-inquiry/LoanApplication.vue new file mode 100644 index 0000000000000000000000000000000000000000..1ca315a856ba9e6faeeac941291672981f652ca1 --- /dev/null +++ b/components/workbench/personal-common-functions/business-inquiry/LoanApplication.vue @@ -0,0 +1,14 @@ + + + + + diff --git a/components/workbench/personal-common-functions/business-inquiry/MarketingTask.vue b/components/workbench/personal-common-functions/business-inquiry/MarketingTask.vue new file mode 100644 index 0000000000000000000000000000000000000000..006c3e173212cd1b25ef271714d8f7344715c4e0 --- /dev/null +++ b/components/workbench/personal-common-functions/business-inquiry/MarketingTask.vue @@ -0,0 +1,220 @@ + + + + + diff --git a/components/workbench/personal-common-functions/business-inquiry/PeriodicInspection.vue b/components/workbench/personal-common-functions/business-inquiry/PeriodicInspection.vue new file mode 100644 index 0000000000000000000000000000000000000000..40904157b21faf964c92e3195879f64dc77d7ef2 --- /dev/null +++ b/components/workbench/personal-common-functions/business-inquiry/PeriodicInspection.vue @@ -0,0 +1,14 @@ + + + + + diff --git a/components/workbench/personal-common-functions/business-inquiry/RiskWarning.vue b/components/workbench/personal-common-functions/business-inquiry/RiskWarning.vue new file mode 100644 index 0000000000000000000000000000000000000000..7a83b872a48847dae39cd152119bfe2039c36207 --- /dev/null +++ b/components/workbench/personal-common-functions/business-inquiry/RiskWarning.vue @@ -0,0 +1,14 @@ + + + + + diff --git a/components/workbench/products-recommended/DepositProducts.vue b/components/workbench/products-recommended/DepositProducts.vue new file mode 100644 index 0000000000000000000000000000000000000000..11f859d6687aaef838f11cff6527e43315188fb7 --- /dev/null +++ b/components/workbench/products-recommended/DepositProducts.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/components/workbench/products-recommended/FinancialProducts.vue b/components/workbench/products-recommended/FinancialProducts.vue new file mode 100644 index 0000000000000000000000000000000000000000..2fda5c202109744a513c2d476250a0040dbf7e9c --- /dev/null +++ b/components/workbench/products-recommended/FinancialProducts.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/components/workbench/products-recommended/LoanProducts.vue b/components/workbench/products-recommended/LoanProducts.vue new file mode 100644 index 0000000000000000000000000000000000000000..4512dd16922497c2bf52f64c0c3d21d8fd5efa08 --- /dev/null +++ b/components/workbench/products-recommended/LoanProducts.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/components/workbench/upcoming-tasks-content/company-business/Information.vue b/components/workbench/upcoming-tasks-content/company-business/Information.vue new file mode 100644 index 0000000000000000000000000000000000000000..27cd3d006223b5dafb2e723166d5ef54c5718a8a --- /dev/null +++ b/components/workbench/upcoming-tasks-content/company-business/Information.vue @@ -0,0 +1,85 @@ + + + + diff --git a/components/workbench/upcoming-tasks-content/company-business/Schedule.vue b/components/workbench/upcoming-tasks-content/company-business/Schedule.vue new file mode 100644 index 0000000000000000000000000000000000000000..030f8c3c547d2a8fe77e54037de90b102a7962fb --- /dev/null +++ b/components/workbench/upcoming-tasks-content/company-business/Schedule.vue @@ -0,0 +1,63 @@ + + + + diff --git a/components/workbench/upcoming-tasks-content/company-business/Upcoming.vue b/components/workbench/upcoming-tasks-content/company-business/Upcoming.vue new file mode 100644 index 0000000000000000000000000000000000000000..754d4c56814a6be93f9fa3e665a2098c9c30a4c0 --- /dev/null +++ b/components/workbench/upcoming-tasks-content/company-business/Upcoming.vue @@ -0,0 +1,171 @@ + + + + diff --git a/components/workbench/upcoming-tasks-content/company-business/upcoming/ComMarketingView.vue b/components/workbench/upcoming-tasks-content/company-business/upcoming/ComMarketingView.vue new file mode 100644 index 0000000000000000000000000000000000000000..c24018e6a8462717c59e9cc446b38973bcca1e68 --- /dev/null +++ b/components/workbench/upcoming-tasks-content/company-business/upcoming/ComMarketingView.vue @@ -0,0 +1,450 @@ + + + + + diff --git a/components/workbench/upcoming-tasks-content/company-business/upcoming/UpcomingMarketingTask.vue b/components/workbench/upcoming-tasks-content/company-business/upcoming/UpcomingMarketingTask.vue new file mode 100644 index 0000000000000000000000000000000000000000..4c9b8345670ae17cd19cfec1816bc1c4be66dc6c --- /dev/null +++ b/components/workbench/upcoming-tasks-content/company-business/upcoming/UpcomingMarketingTask.vue @@ -0,0 +1,220 @@ + + + + + diff --git a/components/workbench/upcoming-tasks-content/company-business/upcoming/UpcomingPeriodicInspection.vue b/components/workbench/upcoming-tasks-content/company-business/upcoming/UpcomingPeriodicInspection.vue new file mode 100644 index 0000000000000000000000000000000000000000..d883457fe99c4c4e2f19b784d2bb01052e0755db --- /dev/null +++ b/components/workbench/upcoming-tasks-content/company-business/upcoming/UpcomingPeriodicInspection.vue @@ -0,0 +1,652 @@ + + + + + +s diff --git a/components/workbench/upcoming-tasks-content/company-business/upcoming/UpcomingRiskWarning.vue b/components/workbench/upcoming-tasks-content/company-business/upcoming/UpcomingRiskWarning.vue new file mode 100644 index 0000000000000000000000000000000000000000..a53b33233975531493c12416564354fae1f79fae --- /dev/null +++ b/components/workbench/upcoming-tasks-content/company-business/upcoming/UpcomingRiskWarning.vue @@ -0,0 +1,693 @@ + + + + + diff --git a/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/CreditStatus.vue b/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/CreditStatus.vue new file mode 100644 index 0000000000000000000000000000000000000000..e9c1d6663bee3fa3a23eea8a26b97fe617970816 --- /dev/null +++ b/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/CreditStatus.vue @@ -0,0 +1,268 @@ + + + + + diff --git a/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/FinancialStatus.vue b/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/FinancialStatus.vue new file mode 100644 index 0000000000000000000000000000000000000000..c3352fb2c3520808f57ad3111d8ec958ee0d4f64 --- /dev/null +++ b/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/FinancialStatus.vue @@ -0,0 +1,157 @@ + + + + + diff --git a/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/GuarantorStatus.vue b/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/GuarantorStatus.vue new file mode 100644 index 0000000000000000000000000000000000000000..2a23750f3890535cde03c96527c7e340f88a942b --- /dev/null +++ b/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/GuarantorStatus.vue @@ -0,0 +1,257 @@ + + + + diff --git a/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/MortgageInvestigation.vue b/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/MortgageInvestigation.vue new file mode 100644 index 0000000000000000000000000000000000000000..e9fe39e30fe9ea461a4e48d5a7e1e9e3612fc716 --- /dev/null +++ b/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/MortgageInvestigation.vue @@ -0,0 +1,221 @@ + + + + + diff --git a/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/Others.vue b/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/Others.vue new file mode 100644 index 0000000000000000000000000000000000000000..be4a4d07f80a9c39879a976e162020d1b489f822 --- /dev/null +++ b/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/Others.vue @@ -0,0 +1,133 @@ + + + + + diff --git a/components/workbench/upcoming-tasks-content/personal-business/PersonalUpcoming.vue b/components/workbench/upcoming-tasks-content/personal-business/PersonalUpcoming.vue new file mode 100644 index 0000000000000000000000000000000000000000..9c0cc9d22bff53826bc37878d4d782863516bfdf --- /dev/null +++ b/components/workbench/upcoming-tasks-content/personal-business/PersonalUpcoming.vue @@ -0,0 +1,168 @@ + + + + diff --git a/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/FaceSignListView.vue b/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/FaceSignListView.vue new file mode 100644 index 0000000000000000000000000000000000000000..c98432755e97e2b2f65744f6c3f4dd85f3cc5bec --- /dev/null +++ b/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/FaceSignListView.vue @@ -0,0 +1,465 @@ + + + + + diff --git a/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/FaceSignReviewListView.vue b/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/FaceSignReviewListView.vue new file mode 100644 index 0000000000000000000000000000000000000000..b1b637e492768f10b2ba0d27d4e95ce3c97f3644 --- /dev/null +++ b/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/FaceSignReviewListView.vue @@ -0,0 +1,415 @@ + + + + + diff --git a/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/UpcomingMarketingTask.vue b/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/UpcomingMarketingTask.vue new file mode 100644 index 0000000000000000000000000000000000000000..65bae66d58445503193c0f57555f4acfcd3f8592 --- /dev/null +++ b/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/UpcomingMarketingTask.vue @@ -0,0 +1,199 @@ + + + + + diff --git a/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/UpcomingPeriodicInspection.vue b/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/UpcomingPeriodicInspection.vue new file mode 100644 index 0000000000000000000000000000000000000000..3ef721cf07d3defc6bc7ae3231629f30d5c30430 --- /dev/null +++ b/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/UpcomingPeriodicInspection.vue @@ -0,0 +1,122 @@ + + + + + diff --git a/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/UpcomingRiskWarning.vue b/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/UpcomingRiskWarning.vue new file mode 100644 index 0000000000000000000000000000000000000000..cc22fa55bea81d0db49e000a3ee363d3887123ec --- /dev/null +++ b/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/UpcomingRiskWarning.vue @@ -0,0 +1,138 @@ + + + + + diff --git a/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/CreditStatus.vue b/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/CreditStatus.vue new file mode 100644 index 0000000000000000000000000000000000000000..2d7c873a6dea855b0ee1ad4ed6b88b25c3a2a9da --- /dev/null +++ b/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/CreditStatus.vue @@ -0,0 +1,264 @@ + + + + + diff --git a/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/FinancialStatus.vue b/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/FinancialStatus.vue new file mode 100644 index 0000000000000000000000000000000000000000..79cdc7f2b4340426dfa1c3305b7b5911694421ed --- /dev/null +++ b/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/FinancialStatus.vue @@ -0,0 +1,153 @@ + + + + + diff --git a/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/GuarantorStatus.vue b/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/GuarantorStatus.vue new file mode 100644 index 0000000000000000000000000000000000000000..e67c66e7324eae0faea23c9564490b1cd3b7431a --- /dev/null +++ b/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/GuarantorStatus.vue @@ -0,0 +1,253 @@ + + + + diff --git a/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/MortgageInvestigation.vue b/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/MortgageInvestigation.vue new file mode 100644 index 0000000000000000000000000000000000000000..debfe8ec13af836bdca7cdf8c53dcfdd1956d093 --- /dev/null +++ b/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/MortgageInvestigation.vue @@ -0,0 +1,217 @@ + + + + + diff --git a/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/Others.vue b/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/Others.vue new file mode 100644 index 0000000000000000000000000000000000000000..b9b583c9998352641c4075fddf449accaae6ba34 --- /dev/null +++ b/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/Others.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/components/workbench/upcoming-tasks-content/upcoming/marketing-task/BusinessMarketing.vue b/components/workbench/upcoming-tasks-content/upcoming/marketing-task/BusinessMarketing.vue new file mode 100644 index 0000000000000000000000000000000000000000..57dbbea96a07c801ecae77436ffff011e78f4045 --- /dev/null +++ b/components/workbench/upcoming-tasks-content/upcoming/marketing-task/BusinessMarketing.vue @@ -0,0 +1,394 @@ + + + + diff --git a/components/workbench/upcoming-tasks-content/upcoming/marketing-task/CustomerVisit.vue b/components/workbench/upcoming-tasks-content/upcoming/marketing-task/CustomerVisit.vue new file mode 100644 index 0000000000000000000000000000000000000000..e20a86c2cd642deb545e68acf46ca04fd0b0ec9d --- /dev/null +++ b/components/workbench/upcoming-tasks-content/upcoming/marketing-task/CustomerVisit.vue @@ -0,0 +1,431 @@ + + + + diff --git a/components/workbench/upcoming-tasks-content/upcoming/marketing-task/InformationPattern.vue b/components/workbench/upcoming-tasks-content/upcoming/marketing-task/InformationPattern.vue new file mode 100644 index 0000000000000000000000000000000000000000..a6372843df19dd3eb0aedf4460865d8a007a10d1 --- /dev/null +++ b/components/workbench/upcoming-tasks-content/upcoming/marketing-task/InformationPattern.vue @@ -0,0 +1,186 @@ + + + + diff --git a/components/workbench/upcoming-tasks-content/upcoming/marketing-task/MarketingSpecial.vue b/components/workbench/upcoming-tasks-content/upcoming/marketing-task/MarketingSpecial.vue new file mode 100644 index 0000000000000000000000000000000000000000..8b559e7af68f72ac2d08bf9761d3b6f7eb920d1b --- /dev/null +++ b/components/workbench/upcoming-tasks-content/upcoming/marketing-task/MarketingSpecial.vue @@ -0,0 +1,410 @@ + + + + diff --git a/constants/api/custom/cust-mgt.api.ts b/constants/api/custom/cust-mgt.api.ts new file mode 100644 index 0000000000000000000000000000000000000000..7122d640e7fbd98178b92e9cd40f351ae596114d --- /dev/null +++ b/constants/api/custom/cust-mgt.api.ts @@ -0,0 +1,13 @@ +import { MethodType } from "@/constants/enum/general/method-type.enum"; +import { HeaderType } from "@/constants/enum/general/header-type.enum"; + +const prefix = process.env.VUE_APP_MS_SYSTEM_API + process.env.VUE_APP_API_PREFIX + "/cust"; +const custInfoApi = { + searchAll: { + url: prefix + "/test", + method: MethodType.POST.code, + header: HeaderType.AUTH.code, + }, +}; + +export default custInfoApi; diff --git a/constants/api/login/common.api.ts b/constants/api/login/common.api.ts new file mode 100644 index 0000000000000000000000000000000000000000..33670739854d27a0ff128539efb40175ba176fd2 --- /dev/null +++ b/constants/api/login/common.api.ts @@ -0,0 +1,22 @@ +/* + * @Author: jiangzaicheng jiangzaicheng_jzc@163.com + * @Date: 2022-07-05 14:56:29 + * @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com + * @LastEditTime: 2022-07-08 14:45:54 + * @FilePath: \mcep-h5\src\constants\api\login\login-mgt.api.ts + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ +import { MethodType } from "@/constants/enum/general/method-type.enum"; +import { HeaderType } from "@/constants/enum/general/header-type.enum"; + +const prefix = "http://10.2.3.118:9165/online-financial-service/api/v1/cust-info/permit_endpoint" +const commonApi = { + getPicCode: { + url: prefix + "/get_phone_verify_code", + method: MethodType.POST.code, + header: HeaderType.AUTH.code, + }, + +}; + +export default commonApi; diff --git a/constants/api/login/login-mgt.api.ts b/constants/api/login/login-mgt.api.ts new file mode 100644 index 0000000000000000000000000000000000000000..61264240effacb8ba558a7f9bf5e65c2f447c6f6 --- /dev/null +++ b/constants/api/login/login-mgt.api.ts @@ -0,0 +1,27 @@ +/* + * @Author: jiangzaicheng jiangzaicheng_jzc@163.com + * @Date: 2022-07-05 14:56:29 + * @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com + * @LastEditTime: 2022-08-17 19:55:50 + * @FilePath: \mcep-h5\src\constants\api\login\login-mgt.api.ts + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ +import { MethodType } from "@/constants/enum/general/method-type.enum"; +import { HeaderType } from "@/constants/enum/general/header-type.enum"; +const prefix = "http://10.0.2.248:9165/online-financial-service/api/v1/cust-info/permit_endpoint" +// const prefix = process.env.VUE_APP_BASE_API; +console.log(prefix+"================="); +const loginApi = { + updatePicCode: { + url: prefix + "/getVerifyCode", + method: MethodType.POST.code, + header: HeaderType.AUTH.code, + }, + loginSystem: { + url: prefix + "/login", + method: MethodType.POST.code, + header: HeaderType.AUTH.code, + }, +}; + +export default loginApi; diff --git a/constants/api/login/regist-mgt.api.ts b/constants/api/login/regist-mgt.api.ts new file mode 100644 index 0000000000000000000000000000000000000000..728f8adb896a0e6ca64ea6ec4c35349bb637c219 --- /dev/null +++ b/constants/api/login/regist-mgt.api.ts @@ -0,0 +1,22 @@ +/* + * @Author: jiangzaicheng jiangzaicheng_jzc@163.com + * @Date: 2022-07-05 14:56:29 + * @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com + * @LastEditTime: 2022-07-06 14:53:22 + * @FilePath: \mcep-h5\src\constants\api\login\login-mgt.api.ts + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ +import { MethodType } from "@/constants/enum/general/method-type.enum"; +import { HeaderType } from "@/constants/enum/general/header-type.enum"; + +// const prefix = "http://10.2.3.118:9165/online-financial-service/api/v1/cust-info/permit_endpoint" +const prefix = "http://10.0.2.248:9165/online-financial-service/api/v1/cust-info/permit_endpoint" +const registApi = { + registSystem: { + url: prefix + "/register", + method: MethodType.POST.code, + header: HeaderType.AUTH.code, + }, +}; + +export default registApi; diff --git a/constants/api/ms-application/application.api.ts b/constants/api/ms-application/application.api.ts new file mode 100644 index 0000000000000000000000000000000000000000..ffa3979fc36953b1df251f841f16a3798ef8a816 --- /dev/null +++ b/constants/api/ms-application/application.api.ts @@ -0,0 +1,237 @@ +import { MethodType } from "@/constants/enum/general/method-type.enum"; +import { HeaderType } from "@/constants/enum/general/header-type.enum"; +const prefix = `${process.env.VUE_APP_MS_APPLICATION_API}${process.env.VUE_APP_API_PREFIX}`; +const applicationApi = { + //新增上门营销 + AddMarketing: { + url: `${prefix}/market-task/add`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + //营销任务查询 + MarketingList: { + url: `${prefix}/market-task/selectMarkList`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + //营销认领 + MarketingClaim: { + url: `${prefix}/market-task/getTask`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + //营销池任务查询 + MarketingPool: { + url: `${prefix}/market-task/getTaskPool`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + //个贷营销任务处理 + resloveTask: { + url: `${prefix}/market-task/resloveTask`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + //营销任务处理详情查询 + taskDetail: { + url: `${prefix}/market-task/taskDetail`, + methodType: MethodType.GET.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + //修改任务状态 + updateMarketTaskSingle: { + url: `${prefix}/market-task/updateMarketTaskSingle`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + //个人营销时光轴 + taskTimeLine: { + url: `${prefix}/market-task/taskTimeLine`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + //对公客户经理待办任务列表查询 + selectTodoTaskManager: { + url: `${prefix}/market-task-public-main/select-todo-task-manager`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + //对公客户经理所属营销池待办任务 + selectRelStatusTaskManager: { + url: `${prefix}/market-task-public-main/select-rel-status-task-manager`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + //对公营销任务认领(任务主表的操作) + updateTodoTaskManager: { + url: `${prefix}/market-task-public-main/update-todo-task-manager`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + //对公营销营销池任务 + selectRelStatusTask: { + url: `${prefix}/market-task-public-main/select-rel-status-task`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + + //对公修改营销任务状态 + updateMarketTaskStatus: { + url: `${prefix}/market-task-public-main/update-market-task-status`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + + //对公客户拜访营销任务表查询 + detailByTaskNum: { + url: `${prefix}/market-task-customer-visit/detail-by-taskNum`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + //对公客户拜访营销任务表新增 + ComMarkAddVisit: { + url: `${prefix}/market-task-customer-visit/add`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + //对公客户拜访营销任务表更新 + ComMarkUpdateVisit: { + url: `${prefix}/market-task-customer-visit/update`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + + //对公招商引资企业营销台账任务表查询 + detailByTaskNumAttract: { + url: `${prefix}/market-task-investment-attract/detail-by-taskNum`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + //对公招商引资企业营销台账任务表新增 + ComMarkAddAttract: { + url: `${prefix}/market-task-investment-attract/add`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + //对公招商引资企业营销台账任务表更新 + ComMarkUpdateAttract: { + url: `${prefix}/market-task-investment-attract/update`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + + //公司精准信息摸排专项营销任务表查询 + detailByTaskNumProject: { + url: `${prefix}/market-task-pre-mopai-project/detail-by-taskNum`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + //公司精准信息摸排专项营销任务表新增 + ComMarkAddProject: { + url: `${prefix}/market-task-pre-mopai-project/add`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + //公司精准信息摸排专项营销任务表更新 + ComMarkUpdateProject: { + url: `${prefix}/market-task-pre-mopai-project/update`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + + //精准营销专项对公营销任务表查询 + detailByTaskNumPre: { + url: `${prefix}/market-task-pre-project/detail-by-taskNum`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + //精准营销专项对公营销任务表新增 + ComMarkAddPre: { + url: `${prefix}/market-task-pre-project/add`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + //公司精准信息摸排专项营销任务表更新 + ComMarkUpdatePre: { + url: `${prefix}/market-task-pre-project/update`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + //客户经理新增多条对公客户任务 + addsTaskManager: { + url: `${prefix}/market-task-public-main/adds-task-manager`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + //查询对公营销客户名单 + selectMarkertCustomerListPublic: { + url: `${prefix}/market-customer-list-public/selectMarkertCustomerListPublic`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + + //中小营销任务列表查询 + selectMarketZxxdVisitTask: { + url: `${prefix}/market-zxxd-visit-task/select-market-zxxd-visit-task`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + //中小续贷拜访任务更新 + updateMarketZxxdVisitTask: { + url: `${prefix}/market-zxxd-visit-task/update-market-zxxd-visit-task`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + // //客户经理营销待办任务列表统计查询-个人 + // selectMarketTaskCount: { + // url: `${prefix}/market-task/selectMarketTaskCount`, + // methodType: MethodType.POST.code, + // headerType: HeaderType.BASE.code, + // MCEP: 'MCEP' + // }, + //客户经理营销待办任务列表统计查询-对公 + selectMarketTaskCountPublic: { + url: `${prefix}/market-task-public-main/selectMarketTaskCount`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + //待办任务统计数量 + queryPerFtfTaskCount: { + url: `${prefix}/market-task/query-per-ftf-task-count`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + MCEP: 'MCEP' + }, + +}; +export default applicationApi; diff --git a/constants/api/ms-netty/netty.api.ts b/constants/api/ms-netty/netty.api.ts new file mode 100644 index 0000000000000000000000000000000000000000..72b82de19a16dc236b9a34fc738fb5efbacdd0c4 --- /dev/null +++ b/constants/api/ms-netty/netty.api.ts @@ -0,0 +1,155 @@ +import { MethodType } from "@/constants/enum/general/method-type.enum"; +import { HeaderType } from "@/constants/enum/general/header-type.enum"; + +const nettyApi = { + commonRq: { + url: process.env.VUE_APP_MS_NETTY_API + process.env.VUE_APP_API_PREFIX + "/esb/netty", + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + }, + unifiedLogin: { + url: process.env.VUE_APP_MS_NETTY_API + process.env.VUE_APP_API_PREFIX + "/esb/unauth", + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code, + }, + TRADE_CODE: { + selectDBQK: "XD_001", //对公客户提供担保情况(个贷+信贷)查询 + selectHNDBQK: "XD_002", //对公客户在行内业务的担保情况查询 + selectFXYJ: "XD_003", //对公客户风险预警信号一览查询 + selectYDJ: "XD_004", //对公客户预登记开户 + selectCPCX: "XD_005", //对公产品查询 + selectXTGG: "XD_006", //系统公告查询 + selectXDGSXX: "XD_007", // 查询客户列表信息 + selectKHXQ: "XD_008", //对公客户详情查询 + selectCWXX: "XD_009", //对公客户财务信息查询 + selectZHSYL: "XD_010", //综合收益率 + selectPJQK: "XD_011", //对公客户近三年评级情况查询 + selectKHCS: "XD_012", //对公客户初筛 + selectCSLS: "XD_013", //对公客户初筛历史查询 + selectSXST: "XD_014", //对公客户统一授信视图查询 + selectZTYW: "XD_015", //对公客户及所在集团在我行在途业务申请情况查询 + selectCBXQ: "XD_016", //对公客户财报详情查询 + selectSGZ: "XD_017", //对公客户时光轴查询 + selectGDSX: "XD_018", //对公客户高管在我行授信情况(个贷)查询 + selectYDJXX: "XD_019", //对公客户预登记信息采集 + selectYXML: "XD_020", //对公客户影像目录查询 + selectYXZL: "XD_021", //对公客户影像资料上传 + selectZXSX: "XD_022", //对公客户及高管在他行授信情况(征信)查询 + selectDBQKZX: "XD_023", //对公客户提供担保情况(征信)查询 + + selectSSLR: "XD_024", //对公客户综合收益率试算录入 + selectSSJL: "XD_025", //对公客户综合收益率试算记录 + selectSSXQ: "XD_026", //对公客户综合收益率试算详情 + selectSYLZH: "XD_027", //对公客户综合收益率报表查询(支行) + selectSYLJT: "XD_028", //对公客户综合收益率报表查询(集团) + selectSXYL: "XD_030", //统一授信额度及使用一览 + selectUserList: "XD_063", //根据hrcode查询信贷系统用户 + selectCompanylonaDetail: "XD_049", //贷后检查详情 + selectCompanylonaList: "XD_050", //贷后检擦客户列表 + selectFXYJCX: "XD_051", //对公风险预警任务查询 + dealFXYJXX: "XD_052", //对公客户风险预警任务处理or信息解除 + selectCus: "XD_053", //客户查找接口 + selectUnrelieveRisk: "XD_058", //对公客户未解除风险预警任务查询 + updatePostLoanMediaState: "XD_059", //更新贷后影像采集状态 + dealRedRisk: "XD_060", //对公红色预警处理 + selectFXYJXQCX: "XD_061", //对公客户风险预警详情查询 + selectMsgRemind: "XD_065", //消息提醒查询 + selectMsgRemindDetail: "XD_066", //消息提醒详情列表查询 + updateMsgStatus: "XD_067", // 消息提醒已读更新 + queryXDPendingNumber: 'XD_070', // 查询信贷待办任务数量 + selectRiskProcess: 'XD_071', // 对公客户-风险预警流程查询 + commitRiskProcess: 'XD_072', // 对公客户-风险预警流程提交 + cancelRiskProcess: 'XD_073', // 对公客户-风险预警流程取消 + selectProcess: "XD_076", //对公-流程查询列表查询 + selectProcessHistory: "XD_077", // 流程历史查询 + + selectPersonalList: "GD_001", //个人客户列表查询接口(客户经理存量客户) + selectPersonInfoDetail: "GD_002", //个人概况信息接口【查询】 + selectPersonalBasicInfo: "GD_003", //基础信息【查询】 - 申请信息 + selectPersonalWorkInfo: "GD_004", //工作单位信息 + selectPersonalDebtList: "GD_005", //上门催收任务列表查询 + saveContactInfo: "GD_006", //催收过程信息保存 + selectContactInfo: "GD_007", //催收过程信息查询 + selectContactTelInfo: "GD_008", //催收电话薄【列表查询】 + saveContactTelInfo: "GD_009", //催收电话薄【新增】 + updateContactTelInfo: "GD_010", //催收电话薄【修改】 + deleteContactTelInfo: "GD_011", //催收电话薄【删除】 + saveRepay: "GD_012", //承诺还款【保存】 + selectRepayList: "GD_013", //承诺还款【查询】 + selectSerialInfo: "GD_014", //借据基本信息查询 + selectAccountInfo: "GD_015", //账户信息【查询】 + selectRepayPlan: "GD_016", //还款计划信息【查询】 + selectRepayRecord: "GD_017", //还款记录【查询】 + selectABAcountInfo: "GD_018", //共同还款人【查询】 + selectContractInfo: "GD_019", // 共同借款人【查询】 + selectPersonalInfo: "GD_020", //个人客户验证 + selectGDYXJHCX: "GD_021", //个贷电话营销计划查询接口 + selectGDHYXJL: "GD_022", //个贷电话营销记录新增及营销计划作废接口 + selectGDHYXTH: "GD_023", //个贷电话营销计划退回接口 + selectGDHYXJLCX: "GD_024", //个贷电话营销记录查询接口 + selectGDUserList: "GD_025", //个贷用户列表查询 + selectGDLoanCheckList: 'GD_026', //贷后检查详情列表 + selectGDLoanCheckDetail: 'GD_027', // 贷后检查详情查询接口 + addLoanCheckInfo: 'GD_028', // 贷后检查新增及保存 + selectGDUser: 'GD_029', //查询用户接口 + selectGDOrgList: 'GD_030', //查询机构列表 + selectAfterLoanCheck: 'GD_031', // 新增贷后检查借据(合作项目)信息查询接口 + selectUpcomingTasksNum: 'GD_033', // 个贷数量列表 + selectContactPhoneNum: 'GD_034', // 催收电话详情 + + selectOrgList: "XD_064", // 主管机构列表查询 + + selectYQXX: "WB_005", //舆情信息 + selectYQZW: "WB_006", //舆情正文 + selectGSXXCX: "WB_007", //对公客户工商信息查询 + selectJBXX: "WB_008", //法海-司法数据-企业-基本信息 + selectCPWS: "WB_009", // 查询裁判文书 + selectFYGG: "WB_010", // 查询法院公告 + selectBZXR: "WB_011", // 查询被执行人 + selectSXBZXR: "WB_012", // 查询失信被执行人 + selectKTGG: "WB_013", //开庭公告查询 + selectAJLC: "WB_014", //案件流程查询 + selectBGT: "WB_015", //曝光台 + selectSFCDK: "WB_016", //司法查冻扣查询 + selectSY: "WB_017", //受益人实际控制人 + selectRelation: "WB_018", //关联方 + selectInfoMember: "WB_019", //集团成员 + selectDim: "WB_022", //安硕模糊查询 + selectMothCompany: "WB_021", //查询母公司 + selectManyPoint: "WB_020", //查询多节点 + selectCPWSXQ: "WB_025", //法海-司法数据-详细信息-裁判文书 + selectSXGGXQ: "WB_026", //法海-司法数据-详细信息-失信公告 + selectKTGGXQ: "WB_027", //法海-司法数据-详细信息-开庭公告 + selectFYGGXQ: "WB_028", //法海-司法数据-详细信息-法院公告 + selectAJLCXQ: "WB_029", //法海-司法数据-详细信息-案件流程 + selectBGTXQ: "WB_030", //法海-司法数据-详细信息-曝光台 + selectSFCDKXQ: "WB_031", //法海-司法数据-详细信息-司法查冻扣 + selectZXXQ: "WB_032", //法海-司法数据-详细信息-执行公告 + + authenticationLogin: "WB_003", //统一认证登录 + selectEWM: "WD_001", //二维码 + selectNetCustList: "WD_002", //移动信贷展业个人客户列表列表筛选条件接口 + selectNetCustDetailInfo: "WD_003", //移动信贷展业个人概况信息查询接口 + selectNetFinanceStatus: "WD_004", //移动信贷展业家庭资产及财务信息查询接口 + selectNetWorkInfo: "WD_005", //移动信贷展业工作单位信息查询接口 + selectNetLoanCheckList: 'WD_010', // 网贷贷后检查列表 + selectNetLoanCheckDetail: 'WD_011', // 网贷贷后检查详情 + addNetLoanCheckInfo: 'WD_012', //网贷贷后检查新增及保存 + selectNetLoanCheckSerial: 'WD_013', // 新增网贷贷后检查借据(合同)查询接口 + selectFaceSignTaskList: "WD_015", //移动信贷展业随意分(预)面签任务查询接口 + faceSignTaskProcess: "WD_016", //移动信贷展业随意分(预)面签任务处理接口 + selectAddTaskInfo: "WD_017", //移动信贷展业随意分(预)面签任务新增时查询网贷随意分任务接口 + confirmAddTask: "WD_018", //移动信贷展业随意分(预)面签任务新增时查询网贷随意分任务确认接口 + selectSignPerson: "WD_019", //移动信贷展业随意分(预)面签任务查询用户列表接口 + selectNetUpcomingTasksNum: 'WD_020', // 网贷待办数量查询接口 + + sendMessage: "DX_001", //短信推送 + selectCompanyAumInfo: "DS_001", // 对公客户贷款年日均查询 + selectPeronInfo: "DS_002", //个人客户信息查询 + + selectBankcardList: "XYK_001", //面签信用卡列表查询 + onlineVerification: "LWHC_001" //联网核查 + } +}; + +export default nettyApi; diff --git a/constants/api/ms-system/sys-dict.api.ts b/constants/api/ms-system/sys-dict.api.ts new file mode 100644 index 0000000000000000000000000000000000000000..eacd6692bfc2421bd412e69cea23b672d8247977 --- /dev/null +++ b/constants/api/ms-system/sys-dict.api.ts @@ -0,0 +1,13 @@ +import { MethodType } from "@/constants/enum/general/method-type.enum"; +import { HeaderType } from "@/constants/enum/general/header-type.enum"; + +const prefix = process.env.VUE_APP_MS_SYSTEM_API + process.env.VUE_APP_API_PREFIX + "/sys-dict-info"; +const sysDictInfoApi = { + searchAll: { + url: prefix + "/query-no-page-dict", + method: MethodType.POST.code, + header: HeaderType.AUTH.code, + }, +}; + +export default sysDictInfoApi; diff --git a/constants/api/ms-system/system.api.ts b/constants/api/ms-system/system.api.ts new file mode 100644 index 0000000000000000000000000000000000000000..9431616be5bd0b23aff7e51b03de0fb191c1cde2 --- /dev/null +++ b/constants/api/ms-system/system.api.ts @@ -0,0 +1,126 @@ +import { MethodType } from "@/constants/enum/general/method-type.enum"; +import { HeaderType } from "@/constants/enum/general/header-type.enum"; +const prefix = `${process.env.VUE_APP_MS_SYSTEM_API}${process.env.VUE_APP_API_PREFIX}`; +const systemApi = { + // 通用请求地址 + commonRq: { + url: `${prefix}/sys-user-info/permit_endpoint/login`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code + }, + //字典查询 + dictRq: { + url: `${prefix}/sys-dict-detail/query-all`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code + }, + //树形结构查询 + treeRq: { + url: `${prefix}/sys-dict-tree-detail/get-tree-dict-value`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code + }, + //产品查询 + productRq: { + url: `${prefix}/mcep-product-config/getByProductName/`, + methodType: MethodType.POST.code, + headerType: HeaderType.BASE.code + }, + //保存影像资料关系 + addBatch: { + url: `${prefix}/sys-code-file/addBatch`, + methodType: MethodType.POST.code, + headerType: HeaderType.AUTH.code + }, + //查询影像资料 + queryMullist: { + url: `${prefix}/sys-code-file/mullist`, + methodType: MethodType.POST.code, + headerType: HeaderType.AUTH.code + }, + //下载影像资料 + downloadMullist: { + url: `${prefix}/sys-code-file/download-files`, + methodType: MethodType.POST.code, + headerType: HeaderType.AUTH.code + }, + //验证验证码是否正确 + checkVerifactionCode: { + url: `${prefix}/sms/check-sms-push`, + methodType: MethodType.POST.code, + headerType: HeaderType.AUTH.code + }, + //菜单配置 + menuSetUp: { + url: `${prefix}/sys-menu-info/query-authorized-phone-menu-by-appid`, + methodType: MethodType.POST.code, + headerType: HeaderType.AUTH.code + }, + //随意分资金提取处试算 + SYFLoanmoneyComputed: { + url: `${prefix}/auxiliary-tools/random-compute`, + methodType: MethodType.POST.code, + headerType: HeaderType.AUTH.code + }, + //随意分利率查询 + SYFLoanRateSelect: { + url: `${prefix}/sys-trial-conf/select`, + methodType: MethodType.POST.code, + headerType: HeaderType.AUTH.code + }, + //对公财务试算 + companyMoneyComputed: { + url: `${prefix}/dgcs/company-measure`, + methodType: MethodType.POST.code, + headerType: HeaderType.AUTH.code + }, + //个贷利率定价查询 + selectPerLoanPrice: { + url: `${prefix}/indLoan/indLoan` + '?tc=CHBG_001', + methodType: MethodType.POST.code, + headerType: HeaderType.AUTH.code + }, + //配置信息查询 + McepSwitchSelect: { + url: `${prefix}/mcep-switch/mcep-switch-select`, + methodType: MethodType.POST.code, + headerType: HeaderType.AUTH.code + }, + //面签影像上传 + FaceSignUploadImg: { + url: `${prefix}/sys-file-info/upload-list`, + methodType: MethodType.POST.code, + headerType: HeaderType.UPLOAD_AUTH.code + }, + //随手礼数据字典查询 + QueryNoPageDict: { + url: `${prefix}/sys-dict-info/query-no-page-dict`, + methodType: MethodType.POST.code, + headerType: HeaderType.AUTH.code + }, + //随手礼数据字典详情查询 + SearchSysDictInfoByid: { + url: `${prefix}/sys-dict-info/search-sys-dict-info-byid`, + methodType: MethodType.GET.code, + headerType: HeaderType.AUTH.code + }, + //菜单查询 + queryMenu: { + url: `${prefix}/sys-menu-info/query-authorized-phone-menu-by-appid`, + methodType: MethodType.GET.code, + headerType: HeaderType.BASE.code + }, + //创建面签合同 + createContract: { + url: `${prefix}/sys-file-info/ftf-com`, + methodType: MethodType.POST.code, + headerType: HeaderType.UPLOAD_AUTH.code + }, + //配置信息查询 + selectConfigurationInfo: { + url: `${prefix}/mcep-switch/mcep-switch-select`, + methodType: MethodType.POST.code, + headerType: HeaderType.AUTH.code + }, +}; +export default systemApi; diff --git a/constants/config/base.config.ts b/constants/config/base.config.ts new file mode 100644 index 0000000000000000000000000000000000000000..338ef69d4e46eeb28c4e2bc559bdf70f074e9ecf --- /dev/null +++ b/constants/config/base.config.ts @@ -0,0 +1,3 @@ +const APPLICATION_ID = "881201085290409985"; // 系统编号 +const MAIN_ROLLING_CONTAINER_ID = "tpm-router-container"; +export { MAIN_ROLLING_CONTAINER_ID, APPLICATION_ID }; diff --git a/constants/config/graphical-code.config.ts b/constants/config/graphical-code.config.ts new file mode 100644 index 0000000000000000000000000000000000000000..8fd614ec03ebb8d891627a6e47507eb1a492931e --- /dev/null +++ b/constants/config/graphical-code.config.ts @@ -0,0 +1,3 @@ +const LOGO_PNG_XML = + "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARcAAADYCAYAAADBGqcBAAAACXBIWXMAAAsTAAALEwEAmpwYAAALrGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE2LTAyLTIyVDEzOjU0OjE4KzA4OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIwLTA3LTE2VDEwOjU1OjQ2KzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0wNy0xNlQxMDo1NTo0NiswODowMCIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1MjUwMGExNy1iNDM1LTgzNDMtOGU5OS0yMGY5NzY5OWRhOTciIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo4NjFlNTQyMS02NTM0LWYwNGUtYmI3YS01ZTY0MDlmOTUyNTciIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo3YTU3ODlkNS1hMWY5LTk1NDAtOTA0Ny04NjRiMDhhNjU2ODQiIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249IjcyMDAwMC8xMDAwMCIgdGlmZjpZUmVzb2x1dGlvbj0iNzIwMDAwLzEwMDAwIiB0aWZmOlJlc29sdXRpb25Vbml0PSIyIiBleGlmOkNvbG9yU3BhY2U9IjEiIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSIxMDAwIiBleGlmOlBpeGVsWURpbWVuc2lvbj0iMzAwIj4gPHBob3Rvc2hvcDpUZXh0TGF5ZXJzPiA8cmRmOkJhZz4gPHJkZjpsaSBwaG90b3Nob3A6TGF5ZXJOYW1lPSLkuJzljY7ova/ku7bogqHku73lhazlj7giIHBob3Rvc2hvcDpMYXllclRleHQ9IuS4nOWNjui9r+S7tuiCoeS7veWFrOWPuCIvPiA8cmRmOmxpIHBob3Rvc2hvcDpMYXllck5hbWU9IkRIQyBTb2Z0d2FyZSBDby4sTHRkIiBwaG90b3Nob3A6TGF5ZXJUZXh0PSJESEMgU29mdHdhcmUgQ28uLEx0ZCIvPiA8L3JkZjpCYWc+IDwvcGhvdG9zaG9wOlRleHRMYXllcnM+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6N2E1Nzg5ZDUtYTFmOS05NTQwLTkwNDctODY0YjA4YTY1Njg0IiBzdEV2dDp3aGVuPSIyMDE2LTAyLTIyVDEzOjU0OjE4KzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNCAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjI2NDI5YjgxLWMwNDUtNGM5YS1iMDhiLWViYTAxYTQzOGMwMSIgc3RFdnQ6d2hlbj0iMjAxNi0wMi0yMlQxNTowOTo0NSswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmYwYWQwZGFiLWE4M2ItODY0ZS1iZmMzLTEyYjA0NzliZDQxMSIgc3RFdnQ6d2hlbj0iMjAyMC0wNy0xNlQxMDo1NTo0NiswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJkZXJpdmVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJjb252ZXJ0ZWQgZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NTI1MDBhMTctYjQzNS04MzQzLThlOTktMjBmOTc2OTlkYTk3IiBzdEV2dDp3aGVuPSIyMDIwLTA3LTE2VDEwOjU1OjQ2KzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpmMGFkMGRhYi1hODNiLTg2NGUtYmZjMy0xMmIwNDc5YmQ0MTEiIHN0UmVmOmRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDowMDYwM2M1Yy04NTAwLTExZWEtODA1Zi1lMTU0ZDk0NTYxMDMiIHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo3YTU3ODlkNS1hMWY5LTk1NDAtOTA0Ny04NjRiMDhhNjU2ODQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz47qU2ZAAAeZElEQVR4nO2debzlc/3Hn3PcYWyDaUp+kr2QXxlMyDCWGWu20FgjSsoSISJbiSy/lC1kiWwT2QZlrCFGJYMMUQkxxA/Zxty595z+eN/TPXPnnPP5fD/fz+f7+S7v5+NxH3PnnM/3833fs7w+23sZ1mg0UBQL7gHmAzaMbYhSDGqxDVAKwV3ARsAGwL1RLVEKg4qLYmIqsEnL/8cjsxhF6YqKi9KN24CJbR7fCLgzW1OUoqHionTiFmDLLs9vCtyekS1KAVFxUdpxM7C1RbvNkNmNosyDiosylBuBbRK03xKZ5SjKXKi4KK1cD2zncN3WiCgpyn9RcVGaXAvskOL67YAbPNmilAAVFwVgMrCTh362R2Y/iqLionAV8EWP/e2AzIKUiqPiUm0uB3YN0O9OwDUB+lUKhIpLdfk5sGfA/icBVwTsX8k5Ki7V5BJgrwzuszsyO1IqiIpL9bgI+HKG99sTmSUpFUPFpVpcAOwb4b57ARdHuK8SERWX6vBTYL+I998HmTUpFUHFpRqcA+wf2whk1nRBbCOUbFBxKT9nAgfENqKF/ZBZlFJyVFzKzY+AQ2Ib0Yb9gbNiG6GERcWlvJwBHBrbiC4chMyqlJKi4lJOTgcOi22EBYcgsyulhKi4lI8fAofHNiIBhyKzLKVkqLiUi5OAI2Mb4cBhwGmxjVD8ouJSHk4EjoltRAqOAE6JbYTiDxWXcnA8cFxsIzxwFDL7UkqAikvx+S5wQmwjPHIM5fp7KsswLedaaI4GfhDbiEAcB3w/thGKOzpzKS7fobzCAvA9ZFamFBSduRSTI5Ej5ypwDHBybCOU5Ki4FI9DqZ7j2VHAqbGNUJKh4lIsDgZ+EtuISByBOtsVChWX4nAQGuz3LTQeqTCouBSDA5CcLAp8ExXZQqDikn/2B84DhsU2JEccCJwb2wilO3oUnW++hgpLO84GvhHbCKU7OnPJL19FUkKqsLSngQjM+bENUdqj4pJPmsmsVVi60wC+jublzSUqLvljT+AyVFhsaSB5ebWyQM5QcckXeyAVClVYktFACr1dFtsQZRAVl/ywG1JbWYXFjQZSfO0XsQ1RBD0tyge7osKSlmHIzGWP2IYogs5c4rMzcA0q9L5oALsDV8c2pOqouMRlJ2AyKiy+aSCzwcmxDakyKi7x2B74FSosoagDuwDXxjakqugHOw7bocISmhqy3NwptiFVRWcu2bM1cDMqLFlRB74A3BTbkKqh4pItWwFTUGHJmjqyDJ0S2Y5KoeKSHVsAt6LCEos6sC3yHigZoB/0bNgMuAV9vWNSQ5ajW8U2pCrozCU8mwK3A/PFNkQBoB8RmKmxDSk7Ki5h2Ri4AxWWvNEPbIm8N0ogVFzCMR64CxWWvNIPbI68R0oAdA8gDBsCd6LCkmfmQ5arG8c2pKzozMU/nwN+C/TENkSxog/ZF7svtiFlQ8XFL+sC96PCUjT6kBnMA7ENKRO6LPLHOsjop8JSPHqAe5BZp+IJnbn4YSzwO2C4p/7eB8YBz1m0XQJYbOBnkYH/LwiMBF4daPPiwL8vI6P0q5i5BJhkb3IiGkhlA5u0CB9G/p4PAwsDowb+nQP0Av8CZgMzBx6badHnRrR3aOxDXveHLfpQDKi4pGct4CH8C8ujnvpzZSHCCExTWH7mud+kdPKYngOsD/whc4tKhi6L0jEGeJDyCQuILfvgNydKXoQF4DdIEGl9yOPDkVno2MwtKhk6c3FnDWT6PL+n/vIkLK34msHkSVha6TaDWQ94JHOLSoKKixurIx+6sgtLk7QCk1dhadJJYHqRjfrpWRtUBnRZlJylkPW4L2EBCWrMq7CAiN+7Ka5/mPwKC8gSaVabx+dHbP90tuaUAxWX5MwEDkGmzb54yGNfeeS3sQ1IwfzA75HZapasCBwOXA88gZzwvY+caNWR2WDzp46EM3wAvAH8BQnMPAWZEUchi2XR0sw7yi+NuF9/gBwlduJF5MXMI0sD04CPeehrDPmfel8E7Ot47bbkP1HTu8gRdydmA2sCMwLdf2lk0NoKEZYFPPbdD7wE3AucSUafNd1zSUcNmTavnaKPBsWYQaYRl4WRUTfPmMQFZDAcAzwd3pziU4QPdZ6pI0eWaSJr3/NkS17pJf/CYssIZG9s+diGFAEVFz9MwF1gbLxli8ybsQ3wzCzKPyB4QcXFH64C84xvQ3LG87EN8MirwAp03ydUBnANsqsBy/o0JGf0Ae8AbzOvB2c3JiB5XDZNcM10w/NZvdbPk+xvteXvFm1CLzPeI70gvAKsTPIj+ZFIvFfRBvJ/A2+R4jPhKi67A5e73rRA1JEC8ftif2qVVGBMeUT2IbyPyCzEUS4ETxie3wxJ2hSS2xBXf1dchGVDJCH4YinuG5s+4DDgLJeLXdV0PcfrikYN+BLiOzAxwXUTgD9ZtjWJyzoJ7uvKi+YmzrE2pgjj9R37TYIpT0sPnU+KXITlR8ixb5GFBeR1+Qnih5V48HEVl6p5LC6KjK5nJLhmPeB1Q5s5mE9SsnDesnHiWyFQ32s59psEU7XFCR0eTyosI4HHgEOBYZbXFIF1kWXl+CQXuYpLmfdbOjEMmSLebNm+F3lTui2n3rboZznL+6XhGsPzI5BcMUnpwyyeyzn0m4R+zI5vW7R5LKmwjEXy5ZR14F0YuBtx9LPCVVxGO15XBrZBUlna8DfguC7Pv2LRxyjLe7lSR2JrurGdY9/vWLRZ0rFvW/7fos26Q/7/OsmEZTdkhmZywis6NcTD1ybJl5O49CAjWZUZB9xo2fYURGTaYco0NwK/AZLtsBG4LR37tvHhCb0v8ReLNiu1/P4usCr2wnIosulfpUoPuyA5b7riclq0CrLBWXXGAXsBl1m03RUJfhuK6SQli9f6Kos2rhv4Lxie70GOPEMe0/7Cos0SA//OQZY3pr2yJl8BvkP5HAVtWAVJw7FPpwYaW5Qd05j35GdHJOo178zGbQZ1NnCwZ1t8MwY52WsgJ4JaJM0TRXPsKTL7t3msCLVyVsN9aZbnHDVNmvtJJ6LC4hUVl+yYDjzb8v9+7KffMdk7xbVFqAO0AbJBf2JsQ8qGiku2/Ljl96IEvyUJZWilwdximldWo7Ofi5IClz2X7yA1ZJS5mYr5SLeG5AQZjpwgrdS9efDX+iLMPiA2eU7aYRNS8BXkyx0Km7/vc0gFBxMLIX5OS5gaVpR+4HRaYriSiksPftM7lok6cqxqOsK8HzlpugvziBl6t31Jugf0fQT3lBAvYc7S5ypctnyc7qENY7GrT9SDOMjpoNqdf9AShJp0WZQm41oa+hlMOvT+wO95S39ZQ+IwTFw68K8pm9mYdOYYsYkU3jtF/y9ZtAkVLAnyGTHFTNmWDbkdFRYblqPFITGpuGQRZPYGUojrS0g8yzBk5FgAGeUWHvh9+MC/44HvISPQBxnY142dLNpcjsxITIGNoYNDbVI1ujrPgXm/ZRnCxt/806KNTTqBA4BNUtpSJU5v/pLUiS70aHo04tFqSy9ynHsfcPzAY5MQl/uQa/lOjER8Je7o0qYPmTGYQghCv9Z3WrRJEydjioYOXfTdNiq9G0sx9yZ8TGYh+VWaM/cFkJnfSMLOAJPyX1+upDOXlT0b0srrJBOWTkwGPoXsZ8Q46j3Sos0fMI/sq3iwpRs/Nzw/gnRxTaZyIqGX2L/20MeduOc8Ssv7SB6aPRkUkv9BDgFWQyoELMXgbH5PxN7ZMYxtYTgDJ4xJxeXj/m35LzYxIEm4C9mwzNoD1ib/SreZTRMfJUs60Yt5WZSmfGsDeNzQZtUU/duQ9n0/iDiz3+eALyKCsTUSt9RruOb9gXYTkUHhGCSsIhb7QXJV/jXwUf+2AHBOgD7riIv9eOQYMYtRqAEsjkxhO2E6sgbZRAwl5u3inIbyBeT9HgEs2KXd+wyOlr1IJPRrFv0/SDg/q5fo/vqb6EGWpT5mP7a8gCzBfJQtOXngZyKSRXGkhz6TMAM0tkhRlECoh66iKEFQcVEUJQhFFpca7kmjFUUJTJINztNJV56hGz9Fcn/YMj+yabQicv5/PRKnYutEdxnhhWkidl6q7TgWSTAVggeR1yomXwO+GajvvyGpSF34Num8km2Yg5xExUy3cSKw85DHXgJmIp7bw5DTqh4kd/IiyKb+QthrxppJNnRnEu6kaD/sa/P0IMIy1OdmDnACsktuYg/sMpSl4atI4JwLTwOf9GhLK9OIXxrmecKdhD2Cmw/NSCSjXOjZ/LnAgYHvYUOzttaryHfGtjbRaGRQ//jAz9KIP9QI5DWchbiVHJ1k5rJ4grZJMZV+aFIDnqS9M99w4AeI96vpS33FQJsFbA10II04hExavSLyOoaormjDDwnrL+WaQ+ZkwgvLDJIJSw8yo286hZr8XZIwAVkBJO3z9YEfkwe29VF0DQkeDEHTldnGhqeATxjazUIU1BTY+CBhR/DrmHfqaUsfYRM+9yFOVu8N/LzL4PvbS/tcM+8yt/fnfLQfcBZBhB7kw7sgUvepOb0O7Wu0EWbv4Ha8Qdh0Cn2IY6RtlPk+yCynmQz/WcRrO9agkBjbNzrk/oRNDd8a8GfMwgLyYT4TWdd24xbCisuijteNJHwm+R7gQwM/ZaKOm7CMI3yeljOwE5YRSLXGoZ7eKyOD66oURGBsp4HjAtpg45F4E8ncxTtmJG8hdFiASxExSFjVTpkLmxpF7TjJqxXz8jaS+MuGp+gcQvIJZFugEKe8tkauEdCGaYbna8DnE/a5EOZCXk8TNhmT6+wjVs6cMvCU43WhI7SPNzcBZC9wOUObVZCSNLkXGNs9l7GEO724ke7Z2zZD4mySMhXY3NBmO9yXLyaexC37/eqEFfMycz9yEpWEUcBWAWxp8iZwq0W7ccjxtG2Omz8DnyHHS6QixBadgQQdJuV1NHuYUhxeRlIoJOExYE1yKjC5n1oxbx1fWxb3aYSiBOQbJBcWkJnLI+T0e1yEmcsruPl9vEH5TkOUcvIm6QbDR5EZTK7IpeINYbTjdUWomaMou5J+lj0G+GN6U/xi4+dyIvbHaEnZEZjS5fkVcT91MXlqzo8kNgqVJHo97LPLN9kDKe6tJOc04LsJr/kV7nFINqyDeVP/BE/3WgvxmrXJhJgJNuIynkGPS9/cY3h++xR9X2F4fm3cayDb8ITDNZsQ7rUuOw85XDOOcK93P2ZhGY3fvNSfRV6H2LFjgN2yaIVA9/4AcwExV+e9D5DazCH6tqEXtziQGDlby4JNXuKhhNyTs0kOfyT+Z87rYldBMjg24hLqOPcVizarO/Y93aJNSE9Ym5CGdizn04gK8S7JxXxlwoZZvGDRJtSSLBdH0yZxGcFg4JRv/mrRZmnHvi+0aJOmJo+JJx2vS1PKo8q45M3Z1LsVc/M3izYrBrjvQ4SdlVtjEpeQnoum9ehCdM8634leJBlUN2pIDZhQ3OZwzdLofosrNgPVUEInCzPZtBb+I8R/T/hQBmtMf9zahCs8byrb4Cpst2OeFm6BbLiFSCPRQEq2JmUTwr3WZcd0MNCOJQj7ej9jeH57z/f7Izk6KYJ8O9Gdg9TpTUID8XS0zZmhKLGYQvKA3E78CZkJ5Yo8O9Gt4XDNNFRYlGLgml95KI+SQ2GBfItL0vKuDcIltVYU33RzHrXlMXKcoiPPy6Ia4uG6hmX7G5ASpIpSFObgvqn7BPLdyMWxczu6icuywAaB7vsQdkd1NWQ9+RlDu/eQY1yTr8P8SMhBKP+Gp0ju8g/wESRvTR7ox+4Dm5eTLdfX/AvIiWQopiM5V7oxDbdN2CcRV4rcCgt0F5f7CCcuO2KfZrIGPI5kQO/E1tgd/95O2C+xrR1D+SXuybxtmD1wj0eRI9LXkL2pFzEnMk/CsohQfhhYCTnu3ZWwzmoX41aHKXQS9L9j9mPZFCnxkYSnEOfSXAsLdBeXfxHOO3cxJK+oLTVkGtjOPf5M4FsWfayM7OOEClR8B0mu7cJfCeNQ1WRt3EZ3H9wGbBmw/4NJVlCvSZoliQ2zsXNATfLeP0NJEnSHiruYQzJhAXkx/5e5k3nXkdgMG2EBGblDCQvAVSmuXcabFfMyk3jCAlLqJSSmHMydCL3ZuAB2ic52t7SlUMICncVlwy7PpcU1Q3sdWRo9zWCZkdMsr92TsHlp68BRjteuSNjo7OkB+7ZhucD9uwpnqDpcrRxr0eZh5Pv2XJc2j1AwYYHO08LtA97zHymurZOsxAjIHoBrWVVbbgXecrz2ix7taMdjgfs3sXzAvmfj/oXrJVzcXJOJA/cw1TB/AMk+MAbJnTQemc08huRTShvlvDFwAVKr60IGMzt+gGx/vINdFHciOu25PIzkhgjBhUgh8iyoIdngPxbwHnXEK9g1Evpu5M0Pxbb48alwoYZsnIZajr6GDB4uhKxX3UqWn/d2/AzYF7v3oI4I9tvICuM5ZK/zfmTjOVHkeaeZyyu414AxYQoq9MkxiCqH+ltA9lpchQXkTQxlXwO3PCe+WAm7oneuJD1paeVXSIxZaD6NpLF8K4N7tTIKqZyxLm7vwTBkNrUCUoKnF/EqnoG4kkzFkI8pz050Sj4YhWxOzoxtiFIsQhcFV/LPy4jLwXwkW748R7gshUoJUHFRRuH2OXCpJqlUiDwHLirhGYEseVy4xachSvloN2KdT7hd9EuBaz33WQMmIe7zoY8Wm9yNbJalJeRrDXKM+XCX59dP0bfpfVweODdF/ybeJf0x/pGEzaXcibeAyUjCNJdE7kshoSYbES816oVInfeODBWXEYQ9Npvqsa8exIluf9zSYbrSi9QXSssihD+iNDn2bejY73uYKzd8m7Bu/+946GNRwtrYjV0RR74nkYj+KbR3COxBBoEJSCzSGmT7eW/HKxiEBeY9LdoNuDKQQSDHWGthdirqxsaIo9FGxInM3R07V/8a3R28vkzYAmgNzMvemxA/mKRMRxy+TG1M0exp+AfpHfRGI24EIcNCkjKHQe/hHvK3L1pH3vvHTQ2HGh763H81xEHnT0jU9e8QwXmR9oKzOlLg6bNI4uEVyG7p047rsBOW+TFPd0O/1u9btHEtyGUTz7OSY9+2/NOizTZ0dyB8nfydeg0nP+ks2nEqFsIC84pLKK/cVoYjOSzWAY4Y8lxzGpWnkaTJC9inRbgGc+Kq0NnnbdJ9ulZAuM7w/EhgYce+bTFlKlwdiSkzeSdfDPzAi0XlZwZwtG3jodPmLNyhuzGMfArLLOzzlG6B3TGta00mW/5u0WZRh37rwF2GNjs69JsUU8zUetjlIzoNrbpgwwck3PxuFZdRxN8oyiP9yItqE9i1COJWfo2hXehIaDB/+ZbBzRXhNYs2IYu7NzEtzcYAH0VOVrrRh7xnSmcayN5couDG1mXRh5DES8ogs4HzkD0hGx5Aln3PGtotTPjX+ieG5yc49mtTTXIK6aLfTfRjTrXwiYF/j0dOFLuxF7LMck32VXauxCG1hcYW+eMs4CD8nGJkwfm4HYUfhWzq5Z1nkU3l1wmXUVHpgnro+mESIiwQPzmTLas7XmfazM0LTUEZTfi60EobVFzSM5a5fYPSpAHIkmUdrpmDXdWGPLBIy++mJaISABWXdCyD+Ou0ZpEvysg+2uGaoqRdGMnc78mnyFGB9qrQ3NCdhGxcVpm3kY29+yzbj0Y2N1ud+mZj9i85HPEwDsmlA/fpRA03Z0Qb56mHGNxMDcXRSNrGToxr89iV2O2F9SBpJUNWY8gr/cCPgZN9dNYUlz2IFwCVB/6NBILNsGw/GjldGOonYjOy70b41/o9w/OuDnz3G56vIc6RoX2VXjY83+7vWw4JubjUcG0fsDcipCHrGuWN2cjgOtlXh81lkevmXhl4BPGHSCos7QTC5pg2C1fzhwzPtxvZbbjB8PymZOMEaXLia1ffCiRK26bK4gwk4roqR6mPId7a3oQFBsXF5GhURvqRkPu1sQ+k7CYsYB7Ze8jGl8K0tLP1Nm6lD7P/ThbOc72Y46Y6LWkWRKpu2nA9cCDlFphZwH5IpPUbvjuvMZgjtUo8hpyW2NY9ArOwgJQY6cbmhB/ZZ2P+8rnsidh45toUAUvLmxZtuoVWjAMOs7zXeYiLQdkEpoHMQkch1QGCUEMye1eFN5A9jzWQTOa22AgLSFW8bmyd4J6u2Lhou5RaMe1zQDaboM9btFnC8Pxp2O87nQvsgN+a2jF5GlgTCaxNk/rESA3YJOQNcsJbSNnXDwFXJ7zWVlhscFmOJKVb5b4mpi+fK6H6bcVUhsUmdWcNWTraltG9CdnH8V44LEOeQWLkViUjR89hjUZjNG7RsXmnjqwp38ItlSDI9Pop7F+fBQz3WhK7DcU0vEb3LHELYT5NascjyP5UJ3oIW/O6yUy6j7ibYb+v8jayRLRJT9FkJCKiRfARqyPv9VtEmHn1IGpcZEUOjc9MYEk+xKEI5Qrfh92sKTRJ8gKPRGaln8T+vXl74EcxUAT1jclLSKrGWbEN8Yhr3tyikHTpuRgiMEuaGirJUHEx8yyyAVwWgTHlvi06Lqk7VWACoOJixzPIDnvQ3fWMKLtb+0cdr1OB8UzeMovnmaeRUf9R4iYJT0vZvzxpDieaAjMGP/tHiwO7IEvRVRHhG4lkIWxXPreBOHf2IqVTXkHSlU5DyvJM92BTZmiyqOSshlQvaHfcaTotis1Y4PeO15pOi/LAeOBeD/3MRlw0HvTQV2XRZVFyZiBfstltnptG+Ny4rowl3RdvDeBYL5aEYTz+0l0sgKQsPcBTf5VExcWNPyNlWIbOUsaQT4FpCksaH5v5kHy0eRSYprC45KjpxBx05pIKFRd3HkfSC+RdYHwIS5M8CkwoYfkcdiVilA6ouKRjOvIhHFr3Ji8C41NYmuRJYEIJy/o4ZLtX5kY3dP0wFilNO7QM56NIBO4TZOcF3YPkjNkc+CHhwg36gROBi8g2/eXyyN83BkmZ4VtYNgAe9thnZVFx8UcngWmlH4n36GPeMH4bH5r5OvTffKyHOBUrG8jfVR/4vV0cS7sN8KHUmPfvG478Te2Obn3ShwiLTR1sxQIVF7+sg5wyqP9QsehDlli6gesR3XPxy8PIh7QsuT+qQB8SzKnC4hkVF/88CGyMCkwR6EfK2tpWfFASoOIShgeQ0VAFJr/0AxOB38Y2pKyouITjPiRxUX9sQ5R56EdO0+6JbUiZUXEJyz3Ih1gFJj/0A1thLk+ipETFJTx3AVuiApMH6sDnkQhjJTAqLtlwBzJaqsDEo47UVfpNbEOqgopLdkxFRs16bEMqSB3YHrgtsh2VQsUlW34DbIsKTJbUkRo9U2IbUjVUXLLnVmQUVYEJTx3YEak7pGSMikscpiCjqQpMOOrAJODGyHZUFhWXeNwE7IwKTAgaSNleX5npFAdUXOJyPZLAWQXGHw1gd2BybEOqjopLfK5FRlkNT09PA9iD5PXAlQCouOSDychoqwLjTgP4EnBVbEMUQcUlP1yNfDlUYJLTAL4MXBHbEGUQFZd8cQWwFyowSWgAXwEui22IMjcqLvnjF8gorAJjpgF8DbgktiHKvKi45JPLkNFYBaYzDeDrwM9iG6K0R8Ulv1yCfHlUYOalARwIXBDbEKUzKi755gLgG6jADOUg4LzYRijdUXHJP+cjo7QKjHAwcG5sIxQzKi7F4DxktK463wTOjm2EYoeKS3E4F/lyVZUjgLNiG6HYo+JSLM4CvhXbiAgcBZwR2wglGSouxeNMZBSvCkcDp8Y2QkmOiksxOQMZzcvOMcApsY1Q3FBxKS6nIl++snIccHJsIxR3VFyKzcnAsbGNCMAJwPdjG6GkQ8Wl+JyEjPJl4XvAibGNUNIzrNFQ36yScDwy4heZU5ANXKUEqLiUi5Mo7j7M6cC3Yxuh+EPFpXycQvFOks6gWsfrlUDFpZycRnG+rP8HHB7bCMU/Ki7l5XTy/6X9MXBobCOUMKi4lJsfkd8v79lIhLNSUlRcys+ZwCGxjRjCuUgaCaXEqLhUg7PIT8qG85EMe0rJUXGpDucAB0S24WIkN7BSAVRcqsUFwH6R7n0JsG+keysRUHGpHheR/Zf8UmCfjO+pREbFpZpcTHZf9suAvTO6l5IjVFyqyyVI8bWQXIkUhlcqiIpLtbkc2DNQ39cAuwbqWykAKi7KFcDunvv8JTDJc59KwVBxUQCuBnbx1Nd1wM6e+lIKjIqL0uSXpBeFG4Ed0puilAEVF6WV63EXh5uA7f2ZohQdFRdlKDeQXCSmANv6N0UpMiouSjtuBLazbHsr8PlwpihFRcVF6cTNwDaGNlOBzTOwRSkgKi5KN24Dtuzw3J3AxAxtUQqGioti4nZgsyGP3Q1sGsEWpUCouCg23AFMGPj9XmDjeKYoRUHFRbHlbqAH2DC2IUox+A/Xjy59d+9F1AAAAABJRU5ErkJggg=="; +export { LOGO_PNG_XML }; diff --git a/constants/config/storage.config.ts b/constants/config/storage.config.ts new file mode 100644 index 0000000000000000000000000000000000000000..ca2f06fda8dbe9c97ba09ea5f36a76fb5752bddc --- /dev/null +++ b/constants/config/storage.config.ts @@ -0,0 +1,2 @@ +const defaultCacheOptions = { namespace: "system:", name: "ls", storage: "local" }; +export { defaultCacheOptions }; diff --git a/constants/enum/business/sex.enum.ts b/constants/enum/business/sex.enum.ts new file mode 100644 index 0000000000000000000000000000000000000000..c0d60b34d62712a1feb5d327cbb644d2cf93e226 --- /dev/null +++ b/constants/enum/business/sex.enum.ts @@ -0,0 +1,7 @@ +const SEX = "Sex"; + +const Sex = { + Man: { code: "1", name: "男" }, + Woman: { code: "2", name: "女" }, +}; +export { SEX, Sex }; diff --git a/constants/enum/business/use-state.enum.ts b/constants/enum/business/use-state.enum.ts new file mode 100644 index 0000000000000000000000000000000000000000..356e0b4863c2faf96d2f923809cd7d25005aae57 --- /dev/null +++ b/constants/enum/business/use-state.enum.ts @@ -0,0 +1,12 @@ +const USE_STATE = "UseState"; + +const UseState = { + INVALID: { code: "0", name: "删除" }, + EFFECTIVE: { code: "1", name: "有效" }, + FROZEN: { code: "2", name: "禁用" }, +}; +const SecurityUseState = { + EFFECTIVE: { code: "1", name: "有效" }, + FROZEN: { code: "2", name: "禁用" }, +}; +export { USE_STATE, UseState, SecurityUseState }; diff --git a/constants/enum/enum.service.ts b/constants/enum/enum.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..a5dd5238d80ca68acf62cd6ef9c9af751834c34c --- /dev/null +++ b/constants/enum/enum.service.ts @@ -0,0 +1,47 @@ +import Vue from "vue"; + +import { UseState, USE_STATE } from "./business/use-state.enum"; +import { SEX, Sex } from "@/constants/enum/business/sex.enum"; + +/** + * @description: 枚举服务 + * @author ChenRui + * @date 2020/7/29 18:49 + */ +class EnumService { + private static readonly ENUMS = { + [USE_STATE]: UseState, + [SEX]: Sex, + }; + + init(): void { + // Vue.prototype.$permissions = PermissionsEnum; + } + + get(enumName: string): any { + return (EnumService.ENUMS as unknown as any)[enumName]; + } + + getValues(enumName: string): any { + const switchEnum = this.get(enumName); + if (switchEnum != null) { + return Object.keys(switchEnum).map((key: string) => { + return switchEnum[key]; + }); + } + return null; + } + + getNameByCode(enumName: string, code: string): any { + const switchEnumArr = this.getValues(enumName); + if (switchEnumArr != null) { + return switchEnumArr.find(function (item: any) { + return item.code === code; + }); + } + return null; + } +} + +const enumService = new EnumService(); +export default enumService; diff --git a/constants/enum/general/code.enum.ts b/constants/enum/general/code.enum.ts new file mode 100644 index 0000000000000000000000000000000000000000..6bf48b6218149bff7bab7c28addb4f8706ef63d4 --- /dev/null +++ b/constants/enum/general/code.enum.ts @@ -0,0 +1,7 @@ +const CODE = "Code"; + +const Code = { + SUCCESS: { code: 1, name: "操作成功" }, + FAIL: { code: 0, name: "操作失败" }, +}; +export { CODE, Code }; diff --git a/constants/enum/general/enable-type.enum.ts b/constants/enum/general/enable-type.enum.ts new file mode 100644 index 0000000000000000000000000000000000000000..7a0fece19f646e3e5899be19246257bca45eb580 --- /dev/null +++ b/constants/enum/general/enable-type.enum.ts @@ -0,0 +1,7 @@ +const ENABLE_TYPE = "EnableType"; + +const EnableType = { + ON: { code: "on", name: "开启" }, + OFF: { code: "off", name: "关闭" }, +}; +export { ENABLE_TYPE, EnableType }; diff --git a/constants/enum/general/header-type.enum.ts b/constants/enum/general/header-type.enum.ts new file mode 100644 index 0000000000000000000000000000000000000000..8f4dd8815a8c3d4369a9e3539404897eef612730 --- /dev/null +++ b/constants/enum/general/header-type.enum.ts @@ -0,0 +1,9 @@ +const HEADER_TYPE = "HeaderType"; + +const HeaderType = { + BASE: { code: "base", name: "BASE" }, + AUTH: { code: "auth", name: "AUTH" }, + UPLOAD_AUTH: { code: "uploadAuth", name: "UPLOAD_AUTH" }, + DOWNLOAD_AUTH: { code: "downloadAuth", name: "DOWNLOAD_AUTH" }, +}; +export { HEADER_TYPE, HeaderType }; diff --git a/constants/enum/general/menu-type.enum.ts b/constants/enum/general/menu-type.enum.ts new file mode 100644 index 0000000000000000000000000000000000000000..e9307a195223e109027b55ded1a47b2f52af571b --- /dev/null +++ b/constants/enum/general/menu-type.enum.ts @@ -0,0 +1,7 @@ +const MENU_TYPE = "MenuType"; + +const MenuType = { + BUTTON: { code: "1", name: "按钮" }, + LINK: { code: "2", name: "连接" }, +}; +export { MENU_TYPE, MenuType }; diff --git a/constants/enum/general/method-type.enum.ts b/constants/enum/general/method-type.enum.ts new file mode 100644 index 0000000000000000000000000000000000000000..4e828f1806b1a2af5f1ec44db04b9a53077d14be --- /dev/null +++ b/constants/enum/general/method-type.enum.ts @@ -0,0 +1,9 @@ +const METHOD_TYPE = "MethodType"; + +const MethodType = { + GET: { code: "get", name: "GET" }, + PUT: { code: "put", name: "PUT" }, + POST: { code: "post", name: "POST" }, + DELETE: { code: "delete", name: "DELETE" }, +}; +export { METHOD_TYPE, MethodType }; diff --git a/constants/enum/general/status-code.enum.ts b/constants/enum/general/status-code.enum.ts new file mode 100644 index 0000000000000000000000000000000000000000..a9a49ac245789e87681fa36805e19227e5c98b48 --- /dev/null +++ b/constants/enum/general/status-code.enum.ts @@ -0,0 +1,4 @@ +const statusCode = { + USER_CACHE_DOES_NOT_EXIST: { code: "40011", name: "用户缓存不存在" }, +}; +export { statusCode }; diff --git a/constants/enum/menu.enum.js b/constants/enum/menu.enum.js new file mode 100644 index 0000000000000000000000000000000000000000..77ca4fc9c5982bf93da06fd3153d94dafded834b --- /dev/null +++ b/constants/enum/menu.enum.js @@ -0,0 +1,19 @@ +const MENU = { + GZT_SUPID: { code: '1', name: '924969256278876160' }, + TEL_MARKETING: { code: '931559906246385664', name: '电话营销' }, + FTF_MARKETING: { code: '931560072923832320', name: '上门营销-个人' }, + ZX_MARKETING: { code: '943879060161048576', name: '中小营销' }, + COM_MARKETING: { code: '941703910476341248', name: '上门营销-对公' }, + SYF_FACESIGN: { code: '931560646209691648', name: '随意分面签' }, + COMPANY_LOAN_CHECK: { code: '931563878629761024', name: '贷后检查-对公' }, + PERSONAL_LOAN_CHECK: { code: '935199541636116480', name: '贷后检查-个人' }, + PERSONAL_LOAN_COLLECTION: { code: '931564022045597696', name: '贷款催收' }, + RISK_WARNING: { code: '931563284133306368', name: '风险预警' } +}; +const WORKBENCH = { + FIRST_ROW: { code: '01', name: 'firstRow' }, + SECOND_ROW: { code: '02', name: 'secondRow' }, + THIRD_ROW: { code: '03', name: 'thirdRow' }, + MSEEAGE_LIST: { code: '04', name: 'messageList' } +}; +export { MENU, WORKBENCH }; diff --git a/constants/enum/menu.enum.ts b/constants/enum/menu.enum.ts new file mode 100644 index 0000000000000000000000000000000000000000..3b9438535358bf0c635f370f74b4ad3b88c3e109 --- /dev/null +++ b/constants/enum/menu.enum.ts @@ -0,0 +1,29 @@ +const MENU = { + FIRST_VIEW: { code: '946874503870558208', name: '首页' }, + GZT_SUPID: { code: '945359700152041472', name: '工作台' }, + PERSONAL_LOAN_CHECK: { code: '945431189032022016', name: '贷后检查-个人' },//待办任务 + PERSONAL_LOAN_CHECK_CY: { code: '945637822840451072', name: '贷后检查-个人' },//常用功能 + PERSONAL_LOAN_COLLECTION: { code: '945637519147675648', name: '催收管理' }, //常用功能 + ADD_FACE_SIGN: {code: '945361681780326400', name: '新增面签'}, + FACE_SIGN: {code: '945364655487336448', name: '面签'}, + LOAN_COLLECTION_DB: { code: '945431081368432640', name: '催收管理' }, //待办任务 + FACE_SIGN_REVIEW: {code: '945364655487336448', name: '面签复核'}, + TEL_MARKETING: { code: '945431295340851200', name: '电话营销-个人' }, + FTF_MARKETING: { code: '945432310370807808', name: '上门营销-个人' }, + ZX_MARKETING: { code: '945432397855600640', name: '中小营销' }, //待办任务 + ZX_MARKETING_CY: { code: '945638034812186624', name: '中小营销' },//常用功能 + COM_MARKETING: { code: '945432167168880640', name: '上门营销-对公' }, + COMPANY_LOAN_CHECK: { code: '945432021240655872', name: '贷后检查-对公' }, + + RISK_WARNING: { code: '945431855855054848', name: '风险预警' } +}; +const WORKBENCH = { + FIRST_ROW: { code: '01', name: 'firstRow' }, + SECOND_ROW: { code: '02', name: 'secondRow' }, + THIRD_ROW: { code: '03', name: 'thirdRow' }, + MSEEAGE_LIST: { code: '04', name: 'messageList' }, + COMMON_FUNCTIONS: { code: '05', name: 'CommonFunctions'}, + COMMON_UPCOMING: {code: '06', name: 'CommonUpcoming'}, + FIRST_VIEW: {code: '07', name: 'FirstView'} +}; +export { MENU, WORKBENCH }; diff --git a/constants/types/property.d.ts b/constants/types/property.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..83cc7043ac0f38086227dff1c043499aa972ec15 --- /dev/null +++ b/constants/types/property.d.ts @@ -0,0 +1,9 @@ +import Vue from "vue"; + +declare module "vue/types/vue" { + import { GlobalStateService } from "@/services/global-state.service"; + + interface Vue { + $globalStateService: GlobalStateService; + } +} diff --git a/constants/types/zhCN.d.ts b/constants/types/zhCN.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..14cf7e5a022999e2d07eef74e54df145ffd13f0f --- /dev/null +++ b/constants/types/zhCN.d.ts @@ -0,0 +1,9 @@ +interface zhCN { + [key: string]: any; +} +declare module "ant-design-vue/es/locale/zh_CN" { + import zh from "ant-design-vue/es/locale/zh_CN"; + const zh_CN: zhCN; + + export default zh_CN; +} diff --git a/directives/caclate.height.directive.ts b/directives/caclate.height.directive.ts new file mode 100644 index 0000000000000000000000000000000000000000..290342ec6e8f2aeac81849e4132036ca0ef740db --- /dev/null +++ b/directives/caclate.height.directive.ts @@ -0,0 +1,12 @@ +const calculateHeight = { + inserted(el: any) { + const nodeRect = el.getBoundingClientRect(); + el.style.height = document.body.clientHeight - 2 - Math.ceil(nodeRect.top) + "px"; + }, +}; +/** + * @Description 自动计算dom高度 + * @Author ZPFly + * @Date 2021/11/5 20:19 + */ +export default calculateHeight; diff --git a/directives/directive.service.ts b/directives/directive.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..04e2f4c64fa6df6c736072531245c7af9e7e95ae --- /dev/null +++ b/directives/directive.service.ts @@ -0,0 +1,14 @@ +import Vue from "vue"; +import calculateHeight from "@/directives/caclate.height.directive"; +/** + * @description: 指令服务 + * @author ChenRui + * @date 2020/7/29 18:42 + */ +class DirectiveService { + init() { + Vue.directive("calculate-height", calculateHeight); + } +} +const directiveService = new DirectiveService(); +export default directiveService; diff --git a/dist.rar b/dist.rar new file mode 100644 index 0000000000000000000000000000000000000000..8dde7d6a386c7194ddeca177cb2fb1357fc3e71d Binary files /dev/null and b/dist.rar differ diff --git a/filtres/certificate-num-tailor.filter.ts b/filtres/certificate-num-tailor.filter.ts new file mode 100644 index 0000000000000000000000000000000000000000..f162329272a36efe2c710a8219d681d303cc30e1 --- /dev/null +++ b/filtres/certificate-num-tailor.filter.ts @@ -0,0 +1,17 @@ +/** + * @description: 身份证信息安全处理 + * @author ChenRui + * @date 2020/7/29 18:42 + */ +function encode(value: string) { + let strcard = ""; + if (value != null) { + strcard = value.replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2"); + } + return strcard; +} +const certificateNumTailor = (value: string) => { + return encode(value); +}; + +export default certificateNumTailor; diff --git a/filtres/customer-dict-conversion.filter.ts b/filtres/customer-dict-conversion.filter.ts new file mode 100644 index 0000000000000000000000000000000000000000..2464587b1bfa12b00cb37440310ee69127025a4e --- /dev/null +++ b/filtres/customer-dict-conversion.filter.ts @@ -0,0 +1,22 @@ +/** + * @description: 自定义字典转换 + * @author ChenRui + * @date 2020/7/29 18:42 + */ +function encode(value: string, data: any) { + let strcard = ""; + if (data.length > 0) { + for (const dataValue of data) { + if (dataValue.code === value) { + strcard = dataValue.name; + return strcard; + } + } + } + return strcard; +} +const customerDictConversionFilter = (value: string, data?: any) => { + return encode(value, data); +}; + +export default customerDictConversionFilter; diff --git a/filtres/duration.filter.ts b/filtres/duration.filter.ts new file mode 100644 index 0000000000000000000000000000000000000000..e1df600003e1f9dadb5aebaed7c8871b9b670742 --- /dev/null +++ b/filtres/duration.filter.ts @@ -0,0 +1,16 @@ +function getDuration(startDate: any, endDate: any) { + if (endDate && startDate) { + const end = new Date(endDate).getTime(); + const start = new Date(startDate).getTime(); + const iDays = (end - start) / 1000 / 60 / 60 / 24; //把相差的毫秒数转换为天数 + const duration = iDays.toFixed(1); //把相减的天数差保留一位小数 + return duration; + } + return ""; +} + +const durationFilter = (start: any, end: any) => { + return getDuration(start, end); +}; + +export default durationFilter; diff --git a/filtres/filter.service.ts b/filtres/filter.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..33de4f7c1ac3a512775ab71947dbcd9517ccb6ff --- /dev/null +++ b/filtres/filter.service.ts @@ -0,0 +1,28 @@ +import Vue from "vue"; +import thousandBitConvert from "@/filtres/thousand-bit-convert.filter"; +import certificateNumTailor from "@/filtres/certificate-num-tailor.filter"; +import switchEnumConvert from "@/filtres/switch-enum-convert.filter"; +import customerDictConversionFilter from "@/filtres/customer-dict-conversion.filter"; +import stringConvert from "@/filtres/string-convert"; +import toUpperCase from "@/filtres/to-upper-case.filter"; +import formatFileSize from "@/filtres/format-file-size.filter"; +import serializeDateFormat from "@/filtres/serialize-date-format.filter"; +import mathFilter from "@/filtres/math.filter"; +import durationFilter from "./duration.filter"; + +class FilterService { + init() { + Vue.filter("thousandBitConvert", thousandBitConvert); + Vue.filter("certificateNumTailor", certificateNumTailor); + Vue.filter("switchEnumConvert", switchEnumConvert); + Vue.filter("customerDictConversionFilter", customerDictConversionFilter); + Vue.filter("stringConvert", stringConvert); + Vue.filter("toUpperCase", toUpperCase); + Vue.filter("formatFileSize", formatFileSize); + Vue.filter("serializeDateFormat", serializeDateFormat); + Vue.filter("mathFilter", mathFilter); + Vue.filter("durationFilter", durationFilter); + } +} +const filterService = new FilterService(); +export default filterService; diff --git a/filtres/format-file-size.filter.ts b/filtres/format-file-size.filter.ts new file mode 100644 index 0000000000000000000000000000000000000000..3147e43630d3e37ba377bfb0770df34744c3af59 --- /dev/null +++ b/filtres/format-file-size.filter.ts @@ -0,0 +1,22 @@ +/** + * @description: 格式化文件大小 + * @author ChenRui + * @date 2021/4/6 19:45 + */ +function encode(value: string) { + if (null == value || value == "") { + return "0 Bytes"; + } + const unitArr = ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"]; + let index = 0; + const srcsize = parseFloat(value); + index = Math.floor(Math.log(srcsize) / Math.log(1024)); + let size: any = srcsize / Math.pow(1024, index); + size = size.toFixed(2); //保留的小数位数 + return size + unitArr[index]; +} +const formatFileSize = (value: string) => { + return encode(value); +}; + +export default formatFileSize; diff --git a/filtres/math.filter.ts b/filtres/math.filter.ts new file mode 100644 index 0000000000000000000000000000000000000000..7475db1423ec0373e68e89dde9ab302cbc9f8ef4 --- /dev/null +++ b/filtres/math.filter.ts @@ -0,0 +1,15 @@ +import mathService, { MathService } from "@/services/math.service"; + +/** + * @description: 截取文件后缀 + * @author ChenRui + * @date 2021/3/24 18:17 + */ +function encode(formula: string, precision: number) { + return mathService.evaluate(formula, precision); +} +const mathFilter = (formula: string, precision = MathService.DEFAULT_PRECISION) => { + return encode(formula, precision); +}; + +export default mathFilter; diff --git a/filtres/serialize-date-format.filter.ts b/filtres/serialize-date-format.filter.ts new file mode 100644 index 0000000000000000000000000000000000000000..7cda37feb24d0ba53ba33626f5e652439f516aed --- /dev/null +++ b/filtres/serialize-date-format.filter.ts @@ -0,0 +1,20 @@ +/** + * @description: 日期格式化 + * @author ChenRui + * @date 2021/4/27 10:10 + */ +function encode(value: string) { + if (value) { + const json_date = new Date(value).toJSON(); + return new Date(new Date(json_date).getTime() + 8 * 3600 * 1000) + .toISOString() + .replace(/T/g, " ") + .replace(/\.[\d]{3}Z/, ""); + } + return ""; +} +const serializeDateFormat = (value: string) => { + return encode(value); +}; + +export default serializeDateFormat; diff --git a/filtres/string-convert.ts b/filtres/string-convert.ts new file mode 100644 index 0000000000000000000000000000000000000000..74a269d85dacaeddc6ef3c97a30cf0afa4e3f493 --- /dev/null +++ b/filtres/string-convert.ts @@ -0,0 +1,14 @@ +function encode(code: any): string { + return String(code); +} + +/** + * @description: 其他类型转换为字符串类型 + * @author ChenRui + * @date 2020/8/28 16:25 + */ +const stringConvert = (code: any): string => { + return encode(code); +}; + +export default stringConvert; diff --git a/filtres/switch-enum-convert.filter.ts b/filtres/switch-enum-convert.filter.ts new file mode 100644 index 0000000000000000000000000000000000000000..4542e876985a170c9637bb0ac1df2b7b5cc8956f --- /dev/null +++ b/filtres/switch-enum-convert.filter.ts @@ -0,0 +1,46 @@ +import enumService from "@/constants/enum/enum.service"; + +/** + * @description: 通用字典转换 + * @author ChenRui + * @date 2020/7/29 18:43 + */ +function encode(code: string, enumName: any, attribute?: string | { key: string; value: string }, defaultVal?: any) { + if (enumName) { + if (typeof enumName === "string") { + let switchEnumFiled; + if (code.indexOf(",") != -1) { + const codeList = code.split(","); + const filedList: string[] = []; + codeList.forEach((item) => { + filedList.push(enumService.getNameByCode(enumName, item)); + }); + if (filedList.length > 0) { + const enumList: any[] = []; + filedList.forEach((item: any) => { + enumList.push(item[(attribute as string) || "name"] || defaultVal); + }); + switchEnumFiled = enumList.join(","); + } + return switchEnumFiled; + } else { + switchEnumFiled = enumService.getNameByCode(enumName, code); + if (switchEnumFiled != null) { + return switchEnumFiled[(attribute as string) || "name"] || defaultVal; + } + } + } else if (Array.isArray(enumName)) { + for (const item of enumName) { + if (code === item[(attribute as any).key]) { + return item[(attribute as any).value]; + } + } + } + } + return defaultVal || ""; +} +const switchEnumConvert = (code: string, enumName: any, attribute?: string | { key: string; value: string }, defaultVal?: any) => { + return code != null ? encode(code, enumName, attribute, defaultVal) : ""; +}; + +export default switchEnumConvert; diff --git a/filtres/thousand-bit-convert.filter.ts b/filtres/thousand-bit-convert.filter.ts new file mode 100644 index 0000000000000000000000000000000000000000..cedade914538bd3a1d34bc71cf600fdc68822fc1 --- /dev/null +++ b/filtres/thousand-bit-convert.filter.ts @@ -0,0 +1,130 @@ +/** + * @Description: 检测是否为数字 + * @author cr + * @date 2020/4/18 + * @time 12:01 + */ +function isNumber(val: any): boolean { + const regPos = /^\d+(\.\d+)?$/; //非负浮点数 + const regNeg = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; //负浮点数 + return regPos.test(val) || regNeg.test(val); +} + +/** + * @Description: 精度 + * @author cr + * @date 2020/4/18 + * @time 12:03 + */ +function prefixZero(value: number, num: number): string { + let a, i; + a = value.toString(); + const b = a.indexOf("."); + const c = a.length; + if (num === 0) { + if (b !== -1) { + a = a.substring(0, b); + } + } else { + /*如果没有小数点*/ + if (b === -1) { + a = a + "."; + for (i = 1; i <= num; i++) { + a = a + "0"; + } + } else { + /*有小数点,超出位数自动截取,否则补0*/ + a = a.substring(0, b + num + 1); + for (i = c; i <= b + num; i++) { + a = a + "0"; + } + } + } + return a; +} + +/** + * @Description: 四舍五入 + * @author cr + * @date 2020/4/18 + * @time 12:02 + */ +function roundFixed(num: any, fixed: number): string { + const pos = num.toString().indexOf("."); + const decimalPlaces = num.toString().length - pos - 1; + const _int = num * Math.pow(10, decimalPlaces); + const divisorOne = Math.pow(10, decimalPlaces - fixed); + const divisorTwo = Math.pow(10, fixed); + const value = Math.round(_int / divisorOne) / divisorTwo; + return prefixZero(value, fixed); +} + +/** + * @Description: 保留小数位数 + * @author cr + * @date 2020/4/18 + * @time 12:01 + */ +function toDecimal(value: any, decimal: number): string { + if (isNumber(value)) { + if (isNumber(decimal)) { + return roundFixed(value, decimal); + } else { + return value; + } + } + return ""; +} + +/** + * @Description: 加千分位 + * @author cr + * @date 2020/4/18 + * @time 12:12 + */ +function executeLcommafy(val: string) { + if (!val || !isNumber(val)) { + return ""; + } + if (isNumber(val)) { + val = val.toString(); + } + if (/^.*\..*$/.test(val)) { + const pointIndex = val.lastIndexOf("."); + let intPart = val.substring(0, pointIndex); + const pointPart = val.substring(pointIndex + 1, val.length); + intPart = intPart + ""; + const re = /(-?\d+)(\d{3})/; + while (re.test(intPart)) { + intPart = intPart.replace(re, "$1,$2"); + } + val = intPart + "." + pointPart; + } else { + const re = /(-?\d+)(\d{3})/; + while (re.test(val)) { + val = val.replace(re, "$1,$2"); + } + } + return val; +} + +/** + * @Description: 千分位转换 + * @author cr + * @date 2020/4/18 + * @time 12:05 + */ +function encode(value: any, decimal: number) { + let number = toDecimal(value, decimal); + number = executeLcommafy(number); + if (value === "" || (value == null && value !== 0)) { + return ""; + } + return number; +} + +const thousandBitConvert = (value: any, decimal: number) => { + return encode(value, decimal); +}; + +export default thousandBitConvert; diff --git a/filtres/to-upper-case.filter.ts b/filtres/to-upper-case.filter.ts new file mode 100644 index 0000000000000000000000000000000000000000..29acc82073fa66e7ae6fa21a5545e29d5d325b6c --- /dev/null +++ b/filtres/to-upper-case.filter.ts @@ -0,0 +1,13 @@ +/** + * @description: 大写转换 + * @author ChenRui + * @date 2021/4/6 19:45 + */ +function encode(value: string) { + return (value || "").toUpperCase(); +} +const toUpperCase = (value: string) => { + return encode(value); +}; + +export default toUpperCase; diff --git a/main.ts b/main.ts new file mode 100644 index 0000000000000000000000000000000000000000..d70d0e0e294ba8605d0c470680ca90eead860248 --- /dev/null +++ b/main.ts @@ -0,0 +1,75 @@ +/* + * @Author: jiangzaicheng jiangzaicheng_jzc@163.com + * @Date: 2022-07-04 15:41:06 + * @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com + * @LastEditTime: 2022-07-25 16:33:54 + * @FilePath: \mcep-h5\src\main.ts + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ +import Vue from "vue"; +import App from "./App.vue"; +import router from "./router"; +import store from "./stores"; +import componentService from "@/services/component-vue.service"; +import enumService from "./constants/enum/enum.service"; +import filterService from "./filtres/filter.service"; +import directiveService from "./directives/directive.service"; +import apiService from "@/services/api.service"; +import dbService from "@/services/db.service"; +import dictService from "@/services/dict.service"; +import "./assets/iconfont/iconfont.css"; +import "./assets/iconfont/iconfont.js"; +import { NativeUI } from "@/public/ts/NativeUI"; + +/* START导入样式*/ +import "@dhccmobile/common-style"; +import "vant/lib/index.css"; +import "@/assets/css/index.scss"; +import nativeService from "@/services/native.service"; + + +import { Step, Steps } from 'vant'; +import vueEsign from 'vue-esign'; +import Vconsole from 'vconsole'; +import Vant from 'vant'; +import Element from 'element-ui' +import ant from 'ant-design-vue' +import 'ant-design-vue/dist/antd.css' + import { VanComponent } from "vant/types/component" + import 'element-ui/lib/theme-chalk/index.css'; + Vue.use(Element); +Vue.use(Vant); +Vue.use(ant); +Vue.use(vueEsign); +Vue.use(Step); +Vue.use(Steps); + +Vue.config.productionTip = process.env.PRODUCTION_TIP; + + +/*注册组件*/ +componentService.init(); + +/*注册全局枚举*/ +enumService.init(); + +/*注册全局过滤器*/ +filterService.init(); + +/*注册全局指令*/ +directiveService.init(); + +/*注册axios*/ +apiService.init(); + +dbService.initDB().then(() => { + dictService.init(); +}); +new Vconsole(); +/*h5+插件*/ +nativeService.init(); +new Vue({ + router, + store, + render: (h) => h(App), +}).$mount("#app"); diff --git a/model/domain/RestfulResponse.ts b/model/domain/RestfulResponse.ts new file mode 100644 index 0000000000000000000000000000000000000000..958458335cc7129d43f936b68e0a7fafdccdd465 --- /dev/null +++ b/model/domain/RestfulResponse.ts @@ -0,0 +1,29 @@ +import { Code } from "@/constants/enum/general/code.enum"; + +export class RestfulResponse { + code?: number; + msg?: string; + data?: T; + meta?: any; + constructor( + options: { + code?: number; + msg?: string; + data?: T; + meta?: any; + } = {} + ) { + this.code = options.code; + this.msg = options.msg || ""; + this.data = options.data; + this.meta = options.meta; + } + + static success(data?: any, msg = Code.SUCCESS.name) { + return new RestfulResponse({ code: Code.SUCCESS.code, msg: msg, data: data }); + } + + static failure(msg = Code.FAIL.name) { + return new RestfulResponse({ code: Code.FAIL.code, msg: msg }); + } +} diff --git a/model/domain/areaData.ts b/model/domain/areaData.ts new file mode 100644 index 0000000000000000000000000000000000000000..4cd72881809d736cbe3908d7d807dcb9b40ccedf --- /dev/null +++ b/model/domain/areaData.ts @@ -0,0 +1,3890 @@ +export const area = { + province_list: { + 110000: '北京市', + 120000: '天津市', + 130000: '河北省', + 140000: '山西省', + 150000: '内蒙古自治区', + 210000: '辽宁省', + 220000: '吉林省', + 230000: '黑龙江省', + 310000: '上海市', + + 320000: '江苏省', + 330000: '浙江省', + 340000: '安徽省', + 350000: '福建省', + 360000: '江西省', + 370000: '山东省', + 410000: '河南省', + 420000: '湖北省', + 430000: '湖南省', + 440000: '广东省', + 450000: '广西壮族自治区', + 460000: '海南省', + 500000: '重庆市', + 510000: '四川省', + 520000: '贵州省', + 530000: '云南省', + 540000: '西藏自治区', + 610000: '陕西省', + 620000: '甘肃省', + 630000: '青海省', + 640000: '宁夏回族自治区', + 650000: '新疆维吾尔自治区', + 710000: '台湾省', + 810000: '香港特别行政区', + 820000: '澳门特别行政区', + }, + city_list: { + 110100: '北京市', + 120100: '天津市', + 130100: '石家庄市', + 130200: '唐山市', + 130300: '秦皇岛市', + 130400: '邯郸市', + 130500: '邢台市', + 130600: '保定市', + 130700: '张家口市', + 130800: '承德市', + 130900: '沧州市', + 131000: '廊坊市', + 131100: '衡水市', + 140100: '太原市', + 140200: '大同市', + 140300: '阳泉市', + 140400: '长治市', + 140500: '晋城市', + 140600: '朔州市', + 140700: '晋中市', + 140800: '运城市', + 140900: '忻州市', + 141000: '临汾市', + 141100: '吕梁市', + 150100: '呼和浩特市', + 150200: '包头市', + 150300: '乌海市', + 150400: '赤峰市', + 150500: '通辽市', + 150600: '鄂尔多斯市', + 150700: '呼伦贝尔市', + 150800: '巴彦淖尔市', + 150900: '乌兰察布市', + 152200: '兴安盟', + 152500: '锡林郭勒盟', + 152900: '阿拉善盟', + 210100: '沈阳市', + 210200: '大连市', + 210300: '鞍山市', + 210400: '抚顺市', + 210500: '本溪市', + 210600: '丹东市', + 210700: '锦州市', + 210800: '营口市', + 210900: '阜新市', + 211000: '辽阳市', + 211100: '盘锦市', + 211200: '铁岭市', + 211300: '朝阳市', + 211400: '葫芦岛市', + 220100: '长春市', + 220200: '吉林市', + 220300: '四平市', + 220400: '辽源市', + 220500: '通化市', + 220600: '白山市', + 220700: '松原市', + 220800: '白城市', + 222400: '延边朝鲜族自治州', + 230100: '哈尔滨市', + 230200: '齐齐哈尔市', + 230300: '鸡西市', + 230400: '鹤岗市', + 230500: '双鸭山市', + 230600: '大庆市', + 230700: '伊春市', + 230800: '佳木斯市', + 230900: '七台河市', + 231000: '牡丹江市', + 231100: '黑河市', + 231200: '绥化市', + 232700: '大兴安岭地区', + 310100: '上海市', + 320100: '南京市', + 320200: '无锡市', + 320300: '徐州市', + 320400: '常州市', + 320500: '苏州市', + 320600: '南通市', + 320700: '连云港市', + 320800: '淮安市', + 320900: '盐城市', + 321000: '扬州市', + 321100: '镇江市', + 321200: '泰州市', + 321300: '宿迁市', + 330100: '杭州市', + 330200: '宁波市', + 330300: '温州市', + 330400: '嘉兴市', + 330500: '湖州市', + 330600: '绍兴市', + 330700: '金华市', + 330800: '衢州市', + 330900: '舟山市', + 331000: '台州市', + 331100: '丽水市', + 340100: '合肥市', + 340200: '芜湖市', + 340300: '蚌埠市', + 340400: '淮南市', + 340500: '马鞍山市', + 340600: '淮北市', + 340700: '铜陵市', + 340800: '安庆市', + 341000: '黄山市', + 341100: '滁州市', + 341200: '阜阳市', + 341300: '宿州市', + 341500: '六安市', + 341600: '亳州市', + 341700: '池州市', + 341800: '宣城市', + 350100: '福州市', + 350200: '厦门市', + 350300: '莆田市', + 350400: '三明市', + 350500: '泉州市', + 350600: '漳州市', + 350700: '南平市', + 350800: '龙岩市', + 350900: '宁德市', + 360100: '南昌市', + 360200: '景德镇市', + 360300: '萍乡市', + 360400: '九江市', + 360500: '新余市', + 360600: '鹰潭市', + 360700: '赣州市', + 360800: '吉安市', + 360900: '宜春市', + 361000: '抚州市', + 361100: '上饶市', + 370100: '济南市', + 370200: '青岛市', + 370300: '淄博市', + 370400: '枣庄市', + 370500: '东营市', + 370600: '烟台市', + 370700: '潍坊市', + 370800: '济宁市', + 370900: '泰安市', + 371000: '威海市', + 371100: '日照市', + 371300: '临沂市', + 371400: '德州市', + 371500: '聊城市', + 371600: '滨州市', + 371700: '菏泽市', + 410100: '郑州市', + 410200: '开封市', + 410300: '洛阳市', + 410400: '平顶山市', + 410500: '安阳市', + 410600: '鹤壁市', + 410700: '新乡市', + 410800: '焦作市', + 410900: '濮阳市', + 411000: '许昌市', + 411100: '漯河市', + 411200: '三门峡市', + 411300: '南阳市', + 411400: '商丘市', + 411500: '信阳市', + 411600: '周口市', + 411700: '驻马店市', + 419000: '省直辖县', + 420100: '武汉市', + 420200: '黄石市', + 420300: '十堰市', + 420500: '宜昌市', + 420600: '襄阳市', + 420700: '鄂州市', + 420800: '荆门市', + 420900: '孝感市', + 421000: '荆州市', + 421100: '黄冈市', + 421200: '咸宁市', + 421300: '随州市', + 422800: '恩施土家族苗族自治州', + 429000: '省直辖县', + 430100: '长沙市', + 430200: '株洲市', + 430300: '湘潭市', + 430400: '衡阳市', + 430500: '邵阳市', + 430600: '岳阳市', + 430700: '常德市', + 430800: '张家界市', + 430900: '益阳市', + 431000: '郴州市', + 431100: '永州市', + 431200: '怀化市', + 431300: '娄底市', + 433100: '湘西土家族苗族自治州', + 440100: '广州市', + 440200: '韶关市', + 440300: '深圳市', + 440400: '珠海市', + 440500: '汕头市', + 440600: '佛山市', + 440700: '江门市', + 440800: '湛江市', + 440900: '茂名市', + 441200: '肇庆市', + 441300: '惠州市', + 441400: '梅州市', + 441500: '汕尾市', + 441600: '河源市', + 441700: '阳江市', + 441800: '清远市', + 441900: '东莞市', + 442000: '中山市', + 445100: '潮州市', + 445200: '揭阳市', + 445300: '云浮市', + 450100: '南宁市', + 450200: '柳州市', + 450300: '桂林市', + 450400: '梧州市', + 450500: '北海市', + 450600: '防城港市', + 450700: '钦州市', + 450800: '贵港市', + 450900: '玉林市', + 451000: '百色市', + 451100: '贺州市', + 451200: '河池市', + 451300: '来宾市', + 451400: '崇左市', + 460100: '海口市', + 460200: '三亚市', + 460300: '三沙市', + 460400: '儋州市', + 469000: '省直辖县', + 500100: '重庆市', + 500200: '县', + 510100: '成都市', + 510300: '自贡市', + 510400: '攀枝花市', + 510500: '泸州市', + 510600: '德阳市', + 510700: '绵阳市', + 510800: '广元市', + 510900: '遂宁市', + 511000: '内江市', + 511100: '乐山市', + 511300: '南充市', + 511400: '眉山市', + 511500: '宜宾市', + 511600: '广安市', + 511700: '达州市', + 511800: '雅安市', + 511900: '巴中市', + 512000: '资阳市', + 513200: '阿坝藏族羌族自治州', + 513300: '甘孜藏族自治州', + 513400: '凉山彝族自治州', + 520100: '贵阳市', + 520200: '六盘水市', + 520300: '遵义市', + 520400: '安顺市', + 520500: '毕节市', + 520600: '铜仁市', + 522300: '黔西南布依族苗族自治州', + 522600: '黔东南苗族侗族自治州', + 522700: '黔南布依族苗族自治州', + 530100: '昆明市', + 530300: '曲靖市', + 530400: '玉溪市', + 530500: '保山市', + 530600: '昭通市', + 530700: '丽江市', + 530800: '普洱市', + 530900: '临沧市', + 532300: '楚雄彝族自治州', + 532500: '红河哈尼族彝族自治州', + 532600: '文山壮族苗族自治州', + 532800: '西双版纳傣族自治州', + 532900: '大理白族自治州', + 533100: '德宏傣族景颇族自治州', + 533300: '怒江傈僳族自治州', + 533400: '迪庆藏族自治州', + 540100: '拉萨市', + 540200: '日喀则市', + 540300: '昌都市', + 540400: '林芝市', + 540500: '山南市', + 540600: '那曲市', + 542500: '阿里地区', + 610100: '西安市', + 610200: '铜川市', + 610300: '宝鸡市', + 610400: '咸阳市', + 610500: '渭南市', + 610600: '延安市', + 610700: '汉中市', + 610800: '榆林市', + 610900: '安康市', + 611000: '商洛市', + 620100: '兰州市', + 620200: '嘉峪关市', + 620300: '金昌市', + 620400: '白银市', + 620500: '天水市', + 620600: '武威市', + 620700: '张掖市', + 620800: '平凉市', + 620900: '酒泉市', + 621000: '庆阳市', + 621100: '定西市', + 621200: '陇南市', + 622900: '临夏回族自治州', + 623000: '甘南藏族自治州', + 630100: '西宁市', + 630200: '海东市', + 632200: '海北藏族自治州', + 632300: '黄南藏族自治州', + 632500: '海南藏族自治州', + 632600: '果洛藏族自治州', + 632700: '玉树藏族自治州', + 632800: '海西蒙古族藏族自治州', + 640100: '银川市', + 640200: '石嘴山市', + 640300: '吴忠市', + 640400: '固原市', + 640500: '中卫市', + 650100: '乌鲁木齐市', + 650200: '克拉玛依市', + 650400: '吐鲁番市', + 650500: '哈密市', + 652300: '昌吉回族自治州', + 652700: '博尔塔拉蒙古自治州', + 652800: '巴音郭楞蒙古自治州', + 652900: '阿克苏地区', + 653000: '克孜勒苏柯尔克孜自治州', + 653100: '喀什地区', + 653200: '和田地区', + 654000: '伊犁哈萨克自治州', + 654200: '塔城地区', + 654300: '阿勒泰地区', + 659000: '自治区直辖县级行政区划', + 710100: '台北市', + 710200: '高雄市', + 710300: '台南市', + 710400: '台中市', + 710500: '金门县', + 710600: '南投县', + 710700: '基隆市', + 710800: '新竹市', + 710900: '嘉义市', + 711100: '新北市', + 711200: '宜兰县', + 711300: '新竹县', + 711400: '桃园市', + 711500: '苗栗县', + 711700: '彰化县', + 711900: '嘉义县', + 712100: '云林县', + 712400: '屏东县', + 712500: '台东县', + 712600: '花莲县', + 712700: '澎湖县', + 712800: '连江县', + 810100: '香港岛', + 810200: '九龙', + 810300: '新界', + 820100: '澳门半岛', + 820200: '离岛', + }, + county_list: { + 110101: '东城区', + 110102: '西城区', + 110105: '朝阳区', + 110106: '丰台区', + 110107: '石景山区', + 110108: '海淀区', + 110109: '门头沟区', + 110111: '房山区', + 110112: '通州区', + 110113: '顺义区', + 110114: '昌平区', + 110115: '大兴区', + 110116: '怀柔区', + 110117: '平谷区', + 110118: '密云区', + 110119: '延庆区', + 120101: '和平区', + 120102: '河东区', + 120103: '河西区', + 120104: '南开区', + 120105: '河北区', + 120106: '红桥区', + 120110: '东丽区', + 120111: '西青区', + 120112: '津南区', + 120113: '北辰区', + 120114: '武清区', + 120115: '宝坻区', + 120116: '滨海新区', + 120117: '宁河区', + 120118: '静海区', + 120119: '蓟州区', + 130102: '长安区', + 130104: '桥西区', + 130105: '新华区', + 130107: '井陉矿区', + 130108: '裕华区', + 130109: '藁城区', + 130110: '鹿泉区', + 130111: '栾城区', + 130121: '井陉县', + 130123: '正定县', + 130125: '行唐县', + 130126: '灵寿县', + 130127: '高邑县', + 130128: '深泽县', + 130129: '赞皇县', + 130130: '无极县', + 130131: '平山县', + 130132: '元氏县', + 130133: '赵县', + 130171: '石家庄高新技术产业开发区', + 130172: '石家庄循环化工园区', + 130181: '辛集市', + 130183: '晋州市', + 130184: '新乐市', + 130202: '路南区', + 130203: '路北区', + 130204: '古冶区', + 130205: '开平区', + 130207: '丰南区', + 130208: '丰润区', + 130209: '曹妃甸区', + 130224: '滦南县', + 130225: '乐亭县', + 130227: '迁西县', + 130229: '玉田县', + 130273: '唐山高新技术产业开发区', + 130274: '河北唐山海港经济开发区', + 130281: '遵化市', + 130283: '迁安市', + 130284: '滦州市', + 130302: '海港区', + 130303: '山海关区', + 130304: '北戴河区', + 130306: '抚宁区', + 130321: '青龙满族自治县', + 130322: '昌黎县', + 130324: '卢龙县', + 130371: '秦皇岛市经济技术开发区', + 130372: '北戴河新区', + 130390: '经济技术开发区', + 130402: '邯山区', + 130403: '丛台区', + 130404: '复兴区', + 130406: '峰峰矿区', + 130407: '肥乡区', + 130408: '永年区', + 130423: '临漳县', + 130424: '成安县', + 130425: '大名县', + 130426: '涉县', + 130427: '磁县', + 130430: '邱县', + 130431: '鸡泽县', + 130432: '广平县', + 130433: '馆陶县', + 130434: '魏县', + 130435: '曲周县', + 130471: '邯郸经济技术开发区', + 130473: '邯郸冀南新区', + 130481: '武安市', + 130502: '襄都区', + 130503: '信都区', + 130505: '任泽区', + 130506: '南和区', + 130522: '临城县', + 130523: '内丘县', + 130524: '柏乡县', + 130525: '隆尧县', + 130528: '宁晋县', + 130529: '巨鹿县', + 130530: '新河县', + 130531: '广宗县', + 130532: '平乡县', + 130533: '威县', + 130534: '清河县', + 130535: '临西县', + 130571: '河北邢台经济开发区', + 130581: '南宫市', + 130582: '沙河市', + 130602: '竞秀区', + 130606: '莲池区', + 130607: '满城区', + 130608: '清苑区', + 130609: '徐水区', + 130623: '涞水县', + 130624: '阜平县', + 130626: '定兴县', + 130627: '唐县', + 130628: '高阳县', + 130629: '容城县', + 130630: '涞源县', + 130631: '望都县', + 130632: '安新县', + 130633: '易县', + 130634: '曲阳县', + 130635: '蠡县', + 130636: '顺平县', + 130637: '博野县', + 130638: '雄县', + 130671: '保定高新技术产业开发区', + 130672: '保定白沟新城', + 130681: '涿州市', + 130682: '定州市', + 130683: '安国市', + 130684: '高碑店市', + 130702: '桥东区', + 130703: '桥西区', + 130705: '宣化区', + 130706: '下花园区', + 130708: '万全区', + 130709: '崇礼区', + 130722: '张北县', + 130723: '康保县', + 130724: '沽源县', + 130725: '尚义县', + 130726: '蔚县', + 130727: '阳原县', + 130728: '怀安县', + 130730: '怀来县', + 130731: '涿鹿县', + 130732: '赤城县', + 130772: '张家口市察北管理区', + 130802: '双桥区', + 130803: '双滦区', + 130804: '鹰手营子矿区', + 130821: '承德县', + 130822: '兴隆县', + 130824: '滦平县', + 130825: '隆化县', + 130826: '丰宁满族自治县', + 130827: '宽城满族自治县', + 130828: '围场满族蒙古族自治县', + 130871: '承德高新技术产业开发区', + 130881: '平泉市', + 130902: '新华区', + 130903: '运河区', + 130921: '沧县', + 130922: '青县', + 130923: '东光县', + 130924: '海兴县', + 130925: '盐山县', + 130926: '肃宁县', + 130927: '南皮县', + 130928: '吴桥县', + 130929: '献县', + 130930: '孟村回族自治县', + 130971: '河北沧州经济开发区', + 130972: '沧州高新技术产业开发区', + 130973: '沧州渤海新区', + 130981: '泊头市', + 130982: '任丘市', + 130983: '黄骅市', + 130984: '河间市', + 131002: '安次区', + 131003: '广阳区', + 131022: '固安县', + 131023: '永清县', + 131024: '香河县', + 131025: '大城县', + 131026: '文安县', + 131028: '大厂回族自治县', + 131071: '廊坊经济技术开发区', + 131081: '霸州市', + 131082: '三河市', + 131090: '开发区', + 131102: '桃城区', + 131103: '冀州区', + 131121: '枣强县', + 131122: '武邑县', + 131123: '武强县', + 131124: '饶阳县', + 131125: '安平县', + 131126: '故城县', + 131127: '景县', + 131128: '阜城县', + 131171: '河北衡水经济开发区', + 131172: '衡水滨湖新区', + 131182: '深州市', + 140105: '小店区', + 140106: '迎泽区', + 140107: '杏花岭区', + 140108: '尖草坪区', + 140109: '万柏林区', + 140110: '晋源区', + 140121: '清徐县', + 140122: '阳曲县', + 140123: '娄烦县', + 140181: '古交市', + 140212: '新荣区', + 140213: '平城区', + 140214: '云冈区', + 140215: '云州区', + 140221: '阳高县', + 140222: '天镇县', + 140223: '广灵县', + 140224: '灵丘县', + 140225: '浑源县', + 140226: '左云县', + 140271: '山西大同经济开发区', + 140302: '城区', + 140303: '矿区', + 140311: '郊区', + 140321: '平定县', + 140322: '盂县', + 140403: '潞州区', + 140404: '上党区', + 140405: '屯留区', + 140406: '潞城区', + 140423: '襄垣县', + 140425: '平顺县', + 140426: '黎城县', + 140427: '壶关县', + 140428: '长子县', + 140429: '武乡县', + 140430: '沁县', + 140431: '沁源县', + 140471: '山西长治高新技术产业园区', + 140502: '城区', + 140521: '沁水县', + 140522: '阳城县', + 140524: '陵川县', + 140525: '泽州县', + 140581: '高平市', + 140602: '朔城区', + 140603: '平鲁区', + 140621: '山阴县', + 140622: '应县', + 140623: '右玉县', + 140671: '山西朔州经济开发区', + 140681: '怀仁市', + 140702: '榆次区', + 140703: '太谷区', + 140721: '榆社县', + 140722: '左权县', + 140723: '和顺县', + 140724: '昔阳县', + 140725: '寿阳县', + 140727: '祁县', + 140728: '平遥县', + 140729: '灵石县', + 140781: '介休市', + 140802: '盐湖区', + 140821: '临猗县', + 140822: '万荣县', + 140823: '闻喜县', + 140824: '稷山县', + 140825: '新绛县', + 140826: '绛县', + 140827: '垣曲县', + 140828: '夏县', + 140829: '平陆县', + 140830: '芮城县', + 140881: '永济市', + 140882: '河津市', + 140902: '忻府区', + 140921: '定襄县', + 140922: '五台县', + 140923: '代县', + 140924: '繁峙县', + 140925: '宁武县', + 140926: '静乐县', + 140927: '神池县', + 140928: '五寨县', + 140929: '岢岚县', + 140930: '河曲县', + 140931: '保德县', + 140932: '偏关县', + 140971: '五台山风景名胜区', + 140981: '原平市', + 141002: '尧都区', + 141021: '曲沃县', + 141022: '翼城县', + 141023: '襄汾县', + 141024: '洪洞县', + 141025: '古县', + 141026: '安泽县', + 141027: '浮山县', + 141028: '吉县', + 141029: '乡宁县', + 141030: '大宁县', + 141031: '隰县', + 141032: '永和县', + 141033: '蒲县', + 141034: '汾西县', + 141081: '侯马市', + 141082: '霍州市', + 141102: '离石区', + 141121: '文水县', + 141122: '交城县', + 141123: '兴县', + 141124: '临县', + 141125: '柳林县', + 141126: '石楼县', + 141127: '岚县', + 141128: '方山县', + 141129: '中阳县', + 141130: '交口县', + 141181: '孝义市', + 141182: '汾阳市', + 150102: '新城区', + 150103: '回民区', + 150104: '玉泉区', + 150105: '赛罕区', + 150121: '土默特左旗', + 150122: '托克托县', + 150123: '和林格尔县', + 150124: '清水河县', + 150125: '武川县', + 150172: '呼和浩特经济技术开发区', + 150202: '东河区', + 150203: '昆都仑区', + 150204: '青山区', + 150205: '石拐区', + 150206: '白云鄂博矿区', + 150207: '九原区', + 150221: '土默特右旗', + 150222: '固阳县', + 150223: '达尔罕茂明安联合旗', + 150271: '包头稀土高新技术产业开发区', + 150302: '海勃湾区', + 150303: '海南区', + 150304: '乌达区', + 150402: '红山区', + 150403: '元宝山区', + 150404: '松山区', + 150421: '阿鲁科尔沁旗', + 150422: '巴林左旗', + 150423: '巴林右旗', + 150424: '林西县', + 150425: '克什克腾旗', + 150426: '翁牛特旗', + 150428: '喀喇沁旗', + 150429: '宁城县', + 150430: '敖汉旗', + 150502: '科尔沁区', + 150521: '科尔沁左翼中旗', + 150522: '科尔沁左翼后旗', + 150523: '开鲁县', + 150524: '库伦旗', + 150525: '奈曼旗', + 150526: '扎鲁特旗', + 150571: '通辽经济技术开发区', + 150581: '霍林郭勒市', + 150602: '东胜区', + 150603: '康巴什区', + 150621: '达拉特旗', + 150622: '准格尔旗', + 150623: '鄂托克前旗', + 150624: '鄂托克旗', + 150625: '杭锦旗', + 150626: '乌审旗', + 150627: '伊金霍洛旗', + 150702: '海拉尔区', + 150703: '扎赉诺尔区', + 150721: '阿荣旗', + 150722: '莫力达瓦达斡尔族自治旗', + 150723: '鄂伦春自治旗', + 150724: '鄂温克族自治旗', + 150725: '陈巴尔虎旗', + 150726: '新巴尔虎左旗', + 150727: '新巴尔虎右旗', + 150781: '满洲里市', + 150782: '牙克石市', + 150783: '扎兰屯市', + 150784: '额尔古纳市', + 150785: '根河市', + 150802: '临河区', + 150821: '五原县', + 150822: '磴口县', + 150823: '乌拉特前旗', + 150824: '乌拉特中旗', + 150825: '乌拉特后旗', + 150826: '杭锦后旗', + 150902: '集宁区', + 150921: '卓资县', + 150922: '化德县', + 150923: '商都县', + 150924: '兴和县', + 150925: '凉城县', + 150926: '察哈尔右翼前旗', + 150927: '察哈尔右翼中旗', + 150928: '察哈尔右翼后旗', + 150929: '四子王旗', + 150981: '丰镇市', + 152201: '乌兰浩特市', + 152202: '阿尔山市', + 152221: '科尔沁右翼前旗', + 152222: '科尔沁右翼中旗', + 152223: '扎赉特旗', + 152224: '突泉县', + 152501: '二连浩特市', + 152502: '锡林浩特市', + 152522: '阿巴嘎旗', + 152523: '苏尼特左旗', + 152524: '苏尼特右旗', + 152525: '东乌珠穆沁旗', + 152526: '西乌珠穆沁旗', + 152527: '太仆寺旗', + 152528: '镶黄旗', + 152529: '正镶白旗', + 152530: '正蓝旗', + 152531: '多伦县', + 152571: '乌拉盖管委会', + 152921: '阿拉善左旗', + 152922: '阿拉善右旗', + 152923: '额济纳旗', + 152971: '内蒙古阿拉善经济开发区', + 210102: '和平区', + 210103: '沈河区', + 210104: '大东区', + 210105: '皇姑区', + 210106: '铁西区', + 210111: '苏家屯区', + 210112: '浑南区', + 210113: '沈北新区', + 210114: '于洪区', + 210115: '辽中区', + 210123: '康平县', + 210124: '法库县', + 210181: '新民市', + 210190: '经济技术开发区', + 210202: '中山区', + 210203: '西岗区', + 210204: '沙河口区', + 210211: '甘井子区', + 210212: '旅顺口区', + 210213: '金州区', + 210214: '普兰店区', + 210224: '长海县', + 210281: '瓦房店市', + 210283: '庄河市', + 210302: '铁东区', + 210303: '铁西区', + 210304: '立山区', + 210311: '千山区', + 210321: '台安县', + 210323: '岫岩满族自治县', + 210381: '海城市', + 210390: '高新区', + 210402: '新抚区', + 210403: '东洲区', + 210404: '望花区', + 210411: '顺城区', + 210421: '抚顺县', + 210422: '新宾满族自治县', + 210423: '清原满族自治县', + 210502: '平山区', + 210503: '溪湖区', + 210504: '明山区', + 210505: '南芬区', + 210521: '本溪满族自治县', + 210522: '桓仁满族自治县', + 210602: '元宝区', + 210603: '振兴区', + 210604: '振安区', + 210624: '宽甸满族自治县', + 210681: '东港市', + 210682: '凤城市', + 210702: '古塔区', + 210703: '凌河区', + 210711: '太和区', + 210726: '黑山县', + 210727: '义县', + 210781: '凌海市', + 210782: '北镇市', + 210793: '经济技术开发区', + 210802: '站前区', + 210803: '西市区', + 210804: '鲅鱼圈区', + 210811: '老边区', + 210881: '盖州市', + 210882: '大石桥市', + 210902: '海州区', + 210903: '新邱区', + 210904: '太平区', + 210905: '清河门区', + 210911: '细河区', + 210921: '阜新蒙古族自治县', + 210922: '彰武县', + 211002: '白塔区', + 211003: '文圣区', + 211004: '宏伟区', + 211005: '弓长岭区', + 211011: '太子河区', + 211021: '辽阳县', + 211081: '灯塔市', + 211102: '双台子区', + 211103: '兴隆台区', + 211104: '大洼区', + 211122: '盘山县', + 211202: '银州区', + 211204: '清河区', + 211221: '铁岭县', + 211223: '西丰县', + 211224: '昌图县', + 211281: '调兵山市', + 211282: '开原市', + 211302: '双塔区', + 211303: '龙城区', + 211321: '朝阳县', + 211322: '建平县', + 211324: '喀喇沁左翼蒙古族自治县', + 211381: '北票市', + 211382: '凌源市', + 211402: '连山区', + 211403: '龙港区', + 211404: '南票区', + 211421: '绥中县', + 211422: '建昌县', + 211481: '兴城市', + 220102: '南关区', + 220103: '宽城区', + 220104: '朝阳区', + 220105: '二道区', + 220106: '绿园区', + 220112: '双阳区', + 220113: '九台区', + 220122: '农安县', + 220171: '长春经济技术开发区', + 220172: '长春净月高新技术产业开发区', + 220173: '长春高新技术产业开发区', + 220174: '长春汽车经济技术开发区', + 220182: '榆树市', + 220183: '德惠市', + 220192: '经济技术开发区', + 220202: '昌邑区', + 220203: '龙潭区', + 220204: '船营区', + 220211: '丰满区', + 220221: '永吉县', + 220271: '吉林经济开发区', + 220272: '吉林高新技术产业开发区', + 220281: '蛟河市', + 220282: '桦甸市', + 220283: '舒兰市', + 220284: '磐石市', + 220302: '铁西区', + 220303: '铁东区', + 220322: '梨树县', + 220323: '伊通满族自治县', + 220381: '公主岭市', + 220382: '双辽市', + 220402: '龙山区', + 220403: '西安区', + 220421: '东丰县', + 220422: '东辽县', + 220502: '东昌区', + 220503: '二道江区', + 220521: '通化县', + 220523: '辉南县', + 220524: '柳河县', + 220581: '梅河口市', + 220582: '集安市', + 220602: '浑江区', + 220605: '江源区', + 220621: '抚松县', + 220622: '靖宇县', + 220623: '长白朝鲜族自治县', + 220681: '临江市', + 220702: '宁江区', + 220721: '前郭尔罗斯蒙古族自治县', + 220722: '长岭县', + 220723: '乾安县', + 220771: '吉林松原经济开发区', + 220781: '扶余市', + 220802: '洮北区', + 220821: '镇赉县', + 220822: '通榆县', + 220871: '吉林白城经济开发区', + 220881: '洮南市', + 220882: '大安市', + 222401: '延吉市', + 222402: '图们市', + 222403: '敦化市', + 222404: '珲春市', + 222405: '龙井市', + 222406: '和龙市', + 222424: '汪清县', + 222426: '安图县', + 230102: '道里区', + 230103: '南岗区', + 230104: '道外区', + 230108: '平房区', + 230109: '松北区', + 230110: '香坊区', + 230111: '呼兰区', + 230112: '阿城区', + 230113: '双城区', + 230123: '依兰县', + 230124: '方正县', + 230125: '宾县', + 230126: '巴彦县', + 230127: '木兰县', + 230128: '通河县', + 230129: '延寿县', + 230183: '尚志市', + 230184: '五常市', + 230202: '龙沙区', + 230203: '建华区', + 230204: '铁锋区', + 230205: '昂昂溪区', + 230206: '富拉尔基区', + 230207: '碾子山区', + 230208: '梅里斯达斡尔族区', + 230221: '龙江县', + 230223: '依安县', + 230224: '泰来县', + 230225: '甘南县', + 230227: '富裕县', + 230229: '克山县', + 230230: '克东县', + 230231: '拜泉县', + 230281: '讷河市', + 230302: '鸡冠区', + 230303: '恒山区', + 230304: '滴道区', + 230305: '梨树区', + 230306: '城子河区', + 230307: '麻山区', + 230321: '鸡东县', + 230381: '虎林市', + 230382: '密山市', + 230402: '向阳区', + 230403: '工农区', + 230404: '南山区', + 230405: '兴安区', + 230406: '东山区', + 230407: '兴山区', + 230421: '萝北县', + 230422: '绥滨县', + 230502: '尖山区', + 230503: '岭东区', + 230505: '四方台区', + 230506: '宝山区', + 230521: '集贤县', + 230522: '友谊县', + 230523: '宝清县', + 230524: '饶河县', + 230602: '萨尔图区', + 230603: '龙凤区', + 230604: '让胡路区', + 230605: '红岗区', + 230606: '大同区', + 230621: '肇州县', + 230622: '肇源县', + 230623: '林甸县', + 230624: '杜尔伯特蒙古族自治县', + 230671: '大庆高新技术产业开发区', + 230717: '伊美区', + 230718: '乌翠区', + 230719: '友好区', + 230722: '嘉荫县', + 230723: '汤旺县', + 230724: '丰林县', + 230725: '大箐山县', + 230726: '南岔县', + 230751: '金林区', + 230781: '铁力市', + 230803: '向阳区', + 230804: '前进区', + 230805: '东风区', + 230811: '郊区', + 230822: '桦南县', + 230826: '桦川县', + 230828: '汤原县', + 230881: '同江市', + 230882: '富锦市', + 230883: '抚远市', + 230902: '新兴区', + 230903: '桃山区', + 230904: '茄子河区', + 230921: '勃利县', + 231002: '东安区', + 231003: '阳明区', + 231004: '爱民区', + 231005: '西安区', + 231025: '林口县', + 231081: '绥芬河市', + 231083: '海林市', + 231084: '宁安市', + 231085: '穆棱市', + 231086: '东宁市', + 231102: '爱辉区', + 231123: '逊克县', + 231124: '孙吴县', + 231181: '北安市', + 231182: '五大连池市', + 231183: '嫩江市', + 231202: '北林区', + 231221: '望奎县', + 231222: '兰西县', + 231223: '青冈县', + 231224: '庆安县', + 231225: '明水县', + 231226: '绥棱县', + 231281: '安达市', + 231282: '肇东市', + 231283: '海伦市', + 232701: '漠河市', + 232721: '呼玛县', + 232722: '塔河县', + 232790: '松岭区', + 232791: '呼中区', + 232792: '加格达奇区', + 232793: '新林区', + 310101: '黄浦区', + 310104: '徐汇区', + 310105: '长宁区', + 310106: '静安区', + 310107: '普陀区', + 310109: '虹口区', + 310110: '杨浦区', + 310112: '闵行区', + 310113: '宝山区', + 310114: '嘉定区', + 310115: '浦东新区', + 310116: '金山区', + 310117: '松江区', + 310118: '青浦区', + 310120: '奉贤区', + 310151: '崇明区', + 320102: '玄武区', + 320104: '秦淮区', + 320105: '建邺区', + 320106: '鼓楼区', + 320111: '浦口区', + 320112: '江北新区', + 320113: '栖霞区', + 320114: '雨花台区', + 320115: '江宁区', + 320116: '六合区', + 320117: '溧水区', + 320118: '高淳区', + 320205: '锡山区', + 320206: '惠山区', + 320211: '滨湖区', + 320213: '梁溪区', + 320214: '新吴区', + 320281: '江阴市', + 320282: '宜兴市', + 320302: '鼓楼区', + 320303: '云龙区', + 320305: '贾汪区', + 320311: '泉山区', + 320312: '铜山区', + 320321: '丰县', + 320322: '沛县', + 320324: '睢宁县', + 320371: '徐州经济技术开发区', + 320381: '新沂市', + 320382: '邳州市', + 320391: '工业园区', + 320402: '天宁区', + 320404: '钟楼区', + 320411: '新北区', + 320412: '武进区', + 320413: '金坛区', + 320481: '溧阳市', + 320505: '虎丘区', + 320506: '吴中区', + 320507: '相城区', + 320508: '姑苏区', + 320509: '吴江区', + 320571: '苏州工业园区', + 320581: '常熟市', + 320582: '张家港市', + 320583: '昆山市', + 320585: '太仓市', + 320590: '工业园区', + 320591: '高新区', + 320602: '崇川区', + 320611: '港闸区', + 320612: '通州区', + 320623: '如东县', + 320681: '启东市', + 320682: '如皋市', + 320684: '海门市', + 320685: '海安市', + 320691: '高新区', + 320703: '连云区', + 320706: '海州区', + 320707: '赣榆区', + 320722: '东海县', + 320723: '灌云县', + 320724: '灌南县', + 320771: '连云港经济技术开发区', + 320803: '淮安区', + 320804: '淮阴区', + 320812: '清江浦区', + 320813: '洪泽区', + 320826: '涟水县', + 320830: '盱眙县', + 320831: '金湖县', + 320871: '淮安经济技术开发区', + 320890: '经济开发区', + 320902: '亭湖区', + 320903: '盐都区', + 320904: '大丰区', + 320921: '响水县', + 320922: '滨海县', + 320923: '阜宁县', + 320924: '射阳县', + 320925: '建湖县', + 320971: '盐城经济技术开发区', + 320981: '东台市', + 321002: '广陵区', + 321003: '邗江区', + 321012: '江都区', + 321023: '宝应县', + 321071: '扬州经济技术开发区', + 321081: '仪征市', + 321084: '高邮市', + 321090: '经济开发区', + 321102: '京口区', + 321111: '润州区', + 321112: '丹徒区', + 321150: '镇江新区', + 321181: '丹阳市', + 321182: '扬中市', + 321183: '句容市', + 321202: '海陵区', + 321203: '高港区', + 321204: '姜堰区', + 321271: '泰州医药高新技术产业开发区', + 321281: '兴化市', + 321282: '靖江市', + 321283: '泰兴市', + 321302: '宿城区', + 321311: '宿豫区', + 321322: '沭阳县', + 321323: '泗阳县', + 321324: '泗洪县', + 321371: '宿迁经济技术开发区', + 330102: '上城区', + 330105: '拱墅区', + 330106: '西湖区', + 330108: '滨江区', + 330109: '萧山区', + 330110: '余杭区', + 330111: '富阳区', + 330112: '临安区', + 330113: '临平区', + 330114: '钱塘区', + 330122: '桐庐县', + 330127: '淳安县', + 330182: '建德市', + 330203: '海曙区', + 330205: '江北区', + 330206: '北仑区', + 330211: '镇海区', + 330212: '鄞州区', + 330213: '奉化区', + 330225: '象山县', + 330226: '宁海县', + 330281: '余姚市', + 330282: '慈溪市', + 330302: '鹿城区', + 330303: '龙湾区', + 330304: '瓯海区', + 330305: '洞头区', + 330324: '永嘉县', + 330326: '平阳县', + 330327: '苍南县', + 330328: '文成县', + 330329: '泰顺县', + 330381: '瑞安市', + 330382: '乐清市', + 330383: '龙港市', + 330402: '南湖区', + 330411: '秀洲区', + 330421: '嘉善县', + 330424: '海盐县', + 330481: '海宁市', + 330482: '平湖市', + 330483: '桐乡市', + 330502: '吴兴区', + 330503: '南浔区', + 330521: '德清县', + 330522: '长兴县', + 330523: '安吉县', + 330602: '越城区', + 330603: '柯桥区', + 330604: '上虞区', + 330624: '新昌县', + 330681: '诸暨市', + 330683: '嵊州市', + 330702: '婺城区', + 330703: '金东区', + 330723: '武义县', + 330726: '浦江县', + 330727: '磐安县', + 330781: '兰溪市', + 330782: '义乌市', + 330783: '东阳市', + 330784: '永康市', + 330802: '柯城区', + 330803: '衢江区', + 330822: '常山县', + 330824: '开化县', + 330825: '龙游县', + 330881: '江山市', + 330902: '定海区', + 330903: '普陀区', + 330921: '岱山县', + 330922: '嵊泗县', + 331002: '椒江区', + 331003: '黄岩区', + 331004: '路桥区', + 331022: '三门县', + 331023: '天台县', + 331024: '仙居县', + 331081: '温岭市', + 331082: '临海市', + 331083: '玉环市', + 331102: '莲都区', + 331121: '青田县', + 331122: '缙云县', + 331123: '遂昌县', + 331124: '松阳县', + 331125: '云和县', + 331126: '庆元县', + 331127: '景宁畲族自治县', + 331181: '龙泉市', + 340102: '瑶海区', + 340103: '庐阳区', + 340104: '蜀山区', + 340111: '包河区', + 340121: '长丰县', + 340122: '肥东县', + 340123: '肥西县', + 340124: '庐江县', + 340171: '合肥高新技术产业开发区', + 340172: '合肥经济技术开发区', + 340173: '合肥新站高新技术产业开发区', + 340181: '巢湖市', + 340190: '高新技术开发区', + 340191: '经济技术开发区', + 340202: '镜湖区', + 340203: '弋江区', + 340207: '鸠江区', + 340208: '三山区', + 340221: '芜湖县', + 340222: '繁昌县', + 340223: '南陵县', + 340281: '无为市', + 340302: '龙子湖区', + 340303: '蚌山区', + 340304: '禹会区', + 340311: '淮上区', + 340321: '怀远县', + 340322: '五河县', + 340323: '固镇县', + 340371: '蚌埠市高新技术开发区', + 340372: '蚌埠市经济开发区', + 340402: '大通区', + 340403: '田家庵区', + 340404: '谢家集区', + 340405: '八公山区', + 340406: '潘集区', + 340421: '凤台县', + 340422: '寿县', + 340503: '花山区', + 340504: '雨山区', + 340506: '博望区', + 340521: '当涂县', + 340522: '含山县', + 340523: '和县', + 340602: '杜集区', + 340603: '相山区', + 340604: '烈山区', + 340621: '濉溪县', + 340705: '铜官区', + 340706: '义安区', + 340711: '郊区', + 340722: '枞阳县', + 340802: '迎江区', + 340803: '大观区', + 340811: '宜秀区', + 340822: '怀宁县', + 340825: '太湖县', + 340826: '宿松县', + 340827: '望江县', + 340828: '岳西县', + 340881: '桐城市', + 340882: '潜山市', + 341002: '屯溪区', + 341003: '黄山区', + 341004: '徽州区', + 341021: '歙县', + 341022: '休宁县', + 341023: '黟县', + 341024: '祁门县', + 341102: '琅琊区', + 341103: '南谯区', + 341122: '来安县', + 341124: '全椒县', + 341125: '定远县', + 341126: '凤阳县', + 341181: '天长市', + 341182: '明光市', + 341202: '颍州区', + 341203: '颍东区', + 341204: '颍泉区', + 341221: '临泉县', + 341222: '太和县', + 341225: '阜南县', + 341226: '颍上县', + 341271: '阜阳合肥现代产业园区', + 341282: '界首市', + 341302: '埇桥区', + 341321: '砀山县', + 341322: '萧县', + 341323: '灵璧县', + 341324: '泗县', + 341371: '宿州马鞍山现代产业园区', + 341372: '宿州经济技术开发区', + 341390: '经济开发区', + 341502: '金安区', + 341503: '裕安区', + 341504: '叶集区', + 341522: '霍邱县', + 341523: '舒城县', + 341524: '金寨县', + 341525: '霍山县', + 341602: '谯城区', + 341621: '涡阳县', + 341622: '蒙城县', + 341623: '利辛县', + 341702: '贵池区', + 341721: '东至县', + 341722: '石台县', + 341723: '青阳县', + 341802: '宣州区', + 341821: '郎溪县', + 341823: '泾县', + 341824: '绩溪县', + 341825: '旌德县', + 341871: '宣城市经济开发区', + 341881: '宁国市', + 341882: '广德市', + 350102: '鼓楼区', + 350103: '台江区', + 350104: '仓山区', + 350105: '马尾区', + 350111: '晋安区', + 350112: '长乐区', + 350121: '闽侯县', + 350122: '连江县', + 350123: '罗源县', + 350124: '闽清县', + 350125: '永泰县', + 350128: '平潭县', + 350181: '福清市', + 350203: '思明区', + 350205: '海沧区', + 350206: '湖里区', + 350211: '集美区', + 350212: '同安区', + 350213: '翔安区', + 350302: '城厢区', + 350303: '涵江区', + 350304: '荔城区', + 350305: '秀屿区', + 350322: '仙游县', + 350402: '梅列区', + 350403: '三元区', + 350421: '明溪县', + 350423: '清流县', + 350424: '宁化县', + 350425: '大田县', + 350426: '尤溪县', + 350427: '沙县', + 350428: '将乐县', + 350429: '泰宁县', + 350430: '建宁县', + 350481: '永安市', + 350502: '鲤城区', + 350503: '丰泽区', + 350504: '洛江区', + 350505: '泉港区', + 350521: '惠安县', + 350524: '安溪县', + 350525: '永春县', + 350526: '德化县', + 350527: '金门县', + 350581: '石狮市', + 350582: '晋江市', + 350583: '南安市', + 350602: '芗城区', + 350603: '龙文区', + 350622: '云霄县', + 350623: '漳浦县', + 350624: '诏安县', + 350625: '长泰县', + 350626: '东山县', + 350627: '南靖县', + 350628: '平和县', + 350629: '华安县', + 350681: '龙海市', + 350702: '延平区', + 350703: '建阳区', + 350721: '顺昌县', + 350722: '浦城县', + 350723: '光泽县', + 350724: '松溪县', + 350725: '政和县', + 350781: '邵武市', + 350782: '武夷山市', + 350783: '建瓯市', + 350802: '新罗区', + 350803: '永定区', + 350821: '长汀县', + 350823: '上杭县', + 350824: '武平县', + 350825: '连城县', + 350881: '漳平市', + 350902: '蕉城区', + 350921: '霞浦县', + 350922: '古田县', + 350923: '屏南县', + 350924: '寿宁县', + 350925: '周宁县', + 350926: '柘荣县', + 350981: '福安市', + 350982: '福鼎市', + 360102: '东湖区', + 360103: '西湖区', + 360104: '青云谱区', + 360111: '青山湖区', + 360112: '新建区', + 360113: '红谷滩区', + 360121: '南昌县', + 360123: '安义县', + 360124: '进贤县', + 360190: '经济技术开发区', + 360192: '高新区', + 360202: '昌江区', + 360203: '珠山区', + 360222: '浮梁县', + 360281: '乐平市', + 360302: '安源区', + 360313: '湘东区', + 360321: '莲花县', + 360322: '上栗县', + 360323: '芦溪县', + 360402: '濂溪区', + 360403: '浔阳区', + 360404: '柴桑区', + 360423: '武宁县', + 360424: '修水县', + 360425: '永修县', + 360426: '德安县', + 360428: '都昌县', + 360429: '湖口县', + 360430: '彭泽县', + 360481: '瑞昌市', + 360482: '共青城市', + 360483: '庐山市', + 360490: '经济技术开发区', + 360502: '渝水区', + 360521: '分宜县', + 360602: '月湖区', + 360603: '余江区', + 360681: '贵溪市', + 360702: '章贡区', + 360703: '南康区', + 360704: '赣县区', + 360722: '信丰县', + 360723: '大余县', + 360724: '上犹县', + 360725: '崇义县', + 360726: '安远县', + 360727: '龙南县', + 360728: '定南县', + 360729: '全南县', + 360730: '宁都县', + 360731: '于都县', + 360732: '兴国县', + 360733: '会昌县', + 360734: '寻乌县', + 360735: '石城县', + 360781: '瑞金市', + 360802: '吉州区', + 360803: '青原区', + 360821: '吉安县', + 360822: '吉水县', + 360823: '峡江县', + 360824: '新干县', + 360825: '永丰县', + 360826: '泰和县', + 360827: '遂川县', + 360828: '万安县', + 360829: '安福县', + 360830: '永新县', + 360881: '井冈山市', + 360902: '袁州区', + 360921: '奉新县', + 360922: '万载县', + 360923: '上高县', + 360924: '宜丰县', + 360925: '靖安县', + 360926: '铜鼓县', + 360981: '丰城市', + 360982: '樟树市', + 360983: '高安市', + 361002: '临川区', + 361003: '东乡区', + 361021: '南城县', + 361022: '黎川县', + 361023: '南丰县', + 361024: '崇仁县', + 361025: '乐安县', + 361026: '宜黄县', + 361027: '金溪县', + 361028: '资溪县', + 361030: '广昌县', + 361102: '信州区', + 361103: '广丰区', + 361104: '广信区', + 361123: '玉山县', + 361124: '铅山县', + 361125: '横峰县', + 361126: '弋阳县', + 361127: '余干县', + 361128: '鄱阳县', + 361129: '万年县', + 361130: '婺源县', + 361181: '德兴市', + 370102: '历下区', + 370103: '市中区', + 370104: '槐荫区', + 370105: '天桥区', + 370112: '历城区', + 370113: '长清区', + 370114: '章丘区', + 370115: '济阳区', + 370116: '莱芜区', + 370117: '钢城区', + 370124: '平阴县', + 370126: '商河县', + 370171: '济南高新技术产业开发区', + 370190: '高新区', + 370202: '市南区', + 370203: '市北区', + 370211: '黄岛区', + 370212: '崂山区', + 370213: '李沧区', + 370214: '城阳区', + 370215: '即墨区', + 370271: '青岛高新技术产业开发区', + 370281: '胶州市', + 370283: '平度市', + 370285: '莱西市', + 370290: '开发区', + 370302: '淄川区', + 370303: '张店区', + 370304: '博山区', + 370305: '临淄区', + 370306: '周村区', + 370321: '桓台县', + 370322: '高青县', + 370323: '沂源县', + 370402: '市中区', + 370403: '薛城区', + 370404: '峄城区', + 370405: '台儿庄区', + 370406: '山亭区', + 370481: '滕州市', + 370502: '东营区', + 370503: '河口区', + 370505: '垦利区', + 370522: '利津县', + 370523: '广饶县', + 370571: '东营经济技术开发区', + 370572: '东营港经济开发区', + 370602: '芝罘区', + 370611: '福山区', + 370612: '牟平区', + 370613: '莱山区', + 370634: '长岛县', + 370671: '烟台高新技术产业开发区', + 370672: '烟台经济技术开发区', + 370681: '龙口市', + 370682: '莱阳市', + 370683: '莱州市', + 370684: '蓬莱市', + 370685: '招远市', + 370686: '栖霞市', + 370687: '海阳市', + 370690: '开发区', + 370702: '潍城区', + 370703: '寒亭区', + 370704: '坊子区', + 370705: '奎文区', + 370724: '临朐县', + 370725: '昌乐县', + 370772: '潍坊滨海经济技术开发区', + 370781: '青州市', + 370782: '诸城市', + 370783: '寿光市', + 370784: '安丘市', + 370785: '高密市', + 370786: '昌邑市', + 370790: '开发区', + 370791: '高新区', + 370811: '任城区', + 370812: '兖州区', + 370826: '微山县', + 370827: '鱼台县', + 370828: '金乡县', + 370829: '嘉祥县', + 370830: '汶上县', + 370831: '泗水县', + 370832: '梁山县', + 370871: '济宁高新技术产业开发区', + 370881: '曲阜市', + 370883: '邹城市', + 370890: '高新区', + 370902: '泰山区', + 370911: '岱岳区', + 370921: '宁阳县', + 370923: '东平县', + 370982: '新泰市', + 370983: '肥城市', + 371002: '环翠区', + 371003: '文登区', + 371071: '威海火炬高技术产业开发区', + 371072: '威海经济技术开发区', + 371082: '荣成市', + 371083: '乳山市', + 371091: '经济技术开发区', + 371102: '东港区', + 371103: '岚山区', + 371121: '五莲县', + 371122: '莒县', + 371171: '日照经济技术开发区', + 371302: '兰山区', + 371311: '罗庄区', + 371312: '河东区', + 371321: '沂南县', + 371322: '郯城县', + 371323: '沂水县', + 371324: '兰陵县', + 371325: '费县', + 371326: '平邑县', + 371327: '莒南县', + 371328: '蒙阴县', + 371329: '临沭县', + 371371: '临沂高新技术产业开发区', + 371402: '德城区', + 371403: '陵城区', + 371422: '宁津县', + 371423: '庆云县', + 371424: '临邑县', + 371425: '齐河县', + 371426: '平原县', + 371427: '夏津县', + 371428: '武城县', + 371472: '德州运河经济开发区', + 371481: '乐陵市', + 371482: '禹城市', + 371502: '东昌府区', + 371503: '茌平区', + 371521: '阳谷县', + 371522: '莘县', + 371524: '东阿县', + 371525: '冠县', + 371526: '高唐县', + 371581: '临清市', + 371602: '滨城区', + 371603: '沾化区', + 371621: '惠民县', + 371622: '阳信县', + 371623: '无棣县', + 371625: '博兴县', + 371681: '邹平市', + 371702: '牡丹区', + 371703: '定陶区', + 371721: '曹县', + 371722: '单县', + 371723: '成武县', + 371724: '巨野县', + 371725: '郓城县', + 371726: '鄄城县', + 371728: '东明县', + 371771: '菏泽经济技术开发区', + 371772: '菏泽高新技术开发区', + 410102: '中原区', + 410103: '二七区', + 410104: '管城回族区', + 410105: '金水区', + 410106: '上街区', + 410108: '惠济区', + 410122: '中牟县', + 410171: '郑州经济技术开发区', + 410172: '郑州高新技术产业开发区', + 410173: '郑州航空港经济综合实验区', + 410181: '巩义市', + 410182: '荥阳市', + 410183: '新密市', + 410184: '新郑市', + 410185: '登封市', + 410190: '高新技术开发区', + 410191: '经济技术开发区', + 410202: '龙亭区', + 410203: '顺河回族区', + 410204: '鼓楼区', + 410205: '禹王台区', + 410212: '祥符区', + 410221: '杞县', + 410222: '通许县', + 410223: '尉氏县', + 410225: '兰考县', + 410302: '老城区', + 410303: '西工区', + 410304: '瀍河回族区', + 410305: '涧西区', + 410306: '吉利区', + 410311: '洛龙区', + 410322: '孟津县', + 410323: '新安县', + 410324: '栾川县', + 410325: '嵩县', + 410326: '汝阳县', + 410327: '宜阳县', + 410328: '洛宁县', + 410329: '伊川县', + 410381: '偃师市', + 410402: '新华区', + 410403: '卫东区', + 410404: '石龙区', + 410411: '湛河区', + 410421: '宝丰县', + 410422: '叶县', + 410423: '鲁山县', + 410425: '郏县', + 410471: '平顶山高新技术产业开发区', + 410481: '舞钢市', + 410482: '汝州市', + 410502: '文峰区', + 410503: '北关区', + 410505: '殷都区', + 410506: '龙安区', + 410522: '安阳县', + 410523: '汤阴县', + 410526: '滑县', + 410527: '内黄县', + 410581: '林州市', + 410590: '开发区', + 410602: '鹤山区', + 410603: '山城区', + 410611: '淇滨区', + 410621: '浚县', + 410622: '淇县', + 410702: '红旗区', + 410703: '卫滨区', + 410704: '凤泉区', + 410711: '牧野区', + 410721: '新乡县', + 410724: '获嘉县', + 410725: '原阳县', + 410726: '延津县', + 410727: '封丘县', + 410771: '新乡高新技术产业开发区', + 410772: '新乡经济技术开发区', + 410781: '卫辉市', + 410782: '辉县市', + 410783: '长垣市', + 410802: '解放区', + 410803: '中站区', + 410804: '马村区', + 410811: '山阳区', + 410821: '修武县', + 410822: '博爱县', + 410823: '武陟县', + 410825: '温县', + 410871: '焦作城乡一体化示范区', + 410882: '沁阳市', + 410883: '孟州市', + 410902: '华龙区', + 410922: '清丰县', + 410923: '南乐县', + 410926: '范县', + 410927: '台前县', + 410928: '濮阳县', + 410971: '河南濮阳工业园区', + 411002: '魏都区', + 411003: '建安区', + 411024: '鄢陵县', + 411025: '襄城县', + 411071: '许昌经济技术开发区', + 411081: '禹州市', + 411082: '长葛市', + 411102: '源汇区', + 411103: '郾城区', + 411104: '召陵区', + 411121: '舞阳县', + 411122: '临颍县', + 411171: '漯河经济技术开发区', + 411202: '湖滨区', + 411203: '陕州区', + 411221: '渑池县', + 411224: '卢氏县', + 411271: '河南三门峡经济开发区', + 411281: '义马市', + 411282: '灵宝市', + 411302: '宛城区', + 411303: '卧龙区', + 411321: '南召县', + 411322: '方城县', + 411323: '西峡县', + 411324: '镇平县', + 411325: '内乡县', + 411326: '淅川县', + 411327: '社旗县', + 411328: '唐河县', + 411329: '新野县', + 411330: '桐柏县', + 411372: '南阳市城乡一体化示范区', + 411381: '邓州市', + 411402: '梁园区', + 411403: '睢阳区', + 411421: '民权县', + 411422: '睢县', + 411423: '宁陵县', + 411424: '柘城县', + 411425: '虞城县', + 411426: '夏邑县', + 411481: '永城市', + 411502: '浉河区', + 411503: '平桥区', + 411521: '罗山县', + 411522: '光山县', + 411523: '新县', + 411524: '商城县', + 411525: '固始县', + 411526: '潢川县', + 411527: '淮滨县', + 411528: '息县', + 411602: '川汇区', + 411603: '淮阳区', + 411621: '扶沟县', + 411622: '西华县', + 411623: '商水县', + 411624: '沈丘县', + 411625: '郸城县', + 411627: '太康县', + 411628: '鹿邑县', + 411671: '河南周口经济开发区', + 411681: '项城市', + 411690: '经济开发区', + 411702: '驿城区', + 411721: '西平县', + 411722: '上蔡县', + 411723: '平舆县', + 411724: '正阳县', + 411725: '确山县', + 411726: '泌阳县', + 411727: '汝南县', + 411728: '遂平县', + 411729: '新蔡县', + 419001: '济源市', + 420102: '江岸区', + 420103: '江汉区', + 420104: '硚口区', + 420105: '汉阳区', + 420106: '武昌区', + 420107: '青山区', + 420111: '洪山区', + 420112: '东西湖区', + 420113: '汉南区', + 420114: '蔡甸区', + 420115: '江夏区', + 420116: '黄陂区', + 420117: '新洲区', + 420202: '黄石港区', + 420203: '西塞山区', + 420204: '下陆区', + 420205: '铁山区', + 420222: '阳新县', + 420281: '大冶市', + 420302: '茅箭区', + 420303: '张湾区', + 420304: '郧阳区', + 420322: '郧西县', + 420323: '竹山县', + 420324: '竹溪县', + 420325: '房县', + 420381: '丹江口市', + 420502: '西陵区', + 420503: '伍家岗区', + 420504: '点军区', + 420505: '猇亭区', + 420506: '夷陵区', + 420525: '远安县', + 420526: '兴山县', + 420527: '秭归县', + 420528: '长阳土家族自治县', + 420529: '五峰土家族自治县', + 420581: '宜都市', + 420582: '当阳市', + 420583: '枝江市', + 420590: '经济开发区', + 420602: '襄城区', + 420606: '樊城区', + 420607: '襄州区', + 420624: '南漳县', + 420625: '谷城县', + 420626: '保康县', + 420682: '老河口市', + 420683: '枣阳市', + 420684: '宜城市', + 420702: '梁子湖区', + 420703: '华容区', + 420704: '鄂城区', + 420802: '东宝区', + 420804: '掇刀区', + 420822: '沙洋县', + 420881: '钟祥市', + 420882: '京山市', + 420902: '孝南区', + 420921: '孝昌县', + 420922: '大悟县', + 420923: '云梦县', + 420981: '应城市', + 420982: '安陆市', + 420984: '汉川市', + 421002: '沙市区', + 421003: '荆州区', + 421022: '公安县', + 421023: '监利县', + 421024: '江陵县', + 421081: '石首市', + 421083: '洪湖市', + 421087: '松滋市', + 421102: '黄州区', + 421121: '团风县', + 421122: '红安县', + 421123: '罗田县', + 421124: '英山县', + 421125: '浠水县', + 421126: '蕲春县', + 421127: '黄梅县', + 421171: '龙感湖管理区', + 421181: '麻城市', + 421182: '武穴市', + 421202: '咸安区', + 421221: '嘉鱼县', + 421222: '通城县', + 421223: '崇阳县', + 421224: '通山县', + 421281: '赤壁市', + 421303: '曾都区', + 421321: '随县', + 421381: '广水市', + 422801: '恩施市', + 422802: '利川市', + 422822: '建始县', + 422823: '巴东县', + 422825: '宣恩县', + 422826: '咸丰县', + 422827: '来凤县', + 422828: '鹤峰县', + 429004: '仙桃市', + 429005: '潜江市', + 429006: '天门市', + 429021: '神农架林区', + 430102: '芙蓉区', + 430103: '天心区', + 430104: '岳麓区', + 430105: '开福区', + 430111: '雨花区', + 430112: '望城区', + 430121: '长沙县', + 430181: '浏阳市', + 430182: '宁乡市', + 430202: '荷塘区', + 430203: '芦淞区', + 430204: '石峰区', + 430211: '天元区', + 430212: '渌口区', + 430223: '攸县', + 430224: '茶陵县', + 430225: '炎陵县', + 430271: '云龙示范区', + 430281: '醴陵市', + 430302: '雨湖区', + 430304: '岳塘区', + 430321: '湘潭县', + 430373: '湘潭九华示范区', + 430381: '湘乡市', + 430382: '韶山市', + 430405: '珠晖区', + 430406: '雁峰区', + 430407: '石鼓区', + 430408: '蒸湘区', + 430412: '南岳区', + 430421: '衡阳县', + 430422: '衡南县', + 430423: '衡山县', + 430424: '衡东县', + 430426: '祁东县', + 430481: '耒阳市', + 430482: '常宁市', + 430502: '双清区', + 430503: '大祥区', + 430511: '北塔区', + 430522: '新邵县', + 430523: '邵阳县', + 430524: '隆回县', + 430525: '洞口县', + 430527: '绥宁县', + 430528: '新宁县', + 430529: '城步苗族自治县', + 430581: '武冈市', + 430582: '邵东市', + 430602: '岳阳楼区', + 430603: '云溪区', + 430611: '君山区', + 430621: '岳阳县', + 430623: '华容县', + 430624: '湘阴县', + 430626: '平江县', + 430681: '汨罗市', + 430682: '临湘市', + 430702: '武陵区', + 430703: '鼎城区', + 430721: '安乡县', + 430722: '汉寿县', + 430723: '澧县', + 430724: '临澧县', + 430725: '桃源县', + 430726: '石门县', + 430781: '津市市', + 430802: '永定区', + 430811: '武陵源区', + 430821: '慈利县', + 430822: '桑植县', + 430902: '资阳区', + 430903: '赫山区', + 430921: '南县', + 430922: '桃江县', + 430923: '安化县', + 430971: '益阳市大通湖管理区', + 430981: '沅江市', + 431002: '北湖区', + 431003: '苏仙区', + 431021: '桂阳县', + 431022: '宜章县', + 431023: '永兴县', + 431024: '嘉禾县', + 431025: '临武县', + 431026: '汝城县', + 431027: '桂东县', + 431028: '安仁县', + 431081: '资兴市', + 431102: '零陵区', + 431103: '冷水滩区', + 431121: '祁阳县', + 431122: '东安县', + 431123: '双牌县', + 431124: '道县', + 431125: '江永县', + 431126: '宁远县', + 431127: '蓝山县', + 431128: '新田县', + 431129: '江华瑶族自治县', + 431202: '鹤城区', + 431221: '中方县', + 431222: '沅陵县', + 431223: '辰溪县', + 431224: '溆浦县', + 431225: '会同县', + 431226: '麻阳苗族自治县', + 431227: '新晃侗族自治县', + 431228: '芷江侗族自治县', + 431229: '靖州苗族侗族自治县', + 431230: '通道侗族自治县', + 431271: '怀化市洪江管理区', + 431281: '洪江市', + 431302: '娄星区', + 431321: '双峰县', + 431322: '新化县', + 431381: '冷水江市', + 431382: '涟源市', + 433101: '吉首市', + 433122: '泸溪县', + 433123: '凤凰县', + 433124: '花垣县', + 433125: '保靖县', + 433126: '古丈县', + 433127: '永顺县', + 433130: '龙山县', + 440103: '荔湾区', + 440104: '越秀区', + 440105: '海珠区', + 440106: '天河区', + 440111: '白云区', + 440112: '黄埔区', + 440113: '番禺区', + 440114: '花都区', + 440115: '南沙区', + 440117: '从化区', + 440118: '增城区', + 440203: '武江区', + 440204: '浈江区', + 440205: '曲江区', + 440222: '始兴县', + 440224: '仁化县', + 440229: '翁源县', + 440232: '乳源瑶族自治县', + 440233: '新丰县', + 440281: '乐昌市', + 440282: '南雄市', + 440303: '罗湖区', + 440304: '福田区', + 440305: '南山区', + 440306: '宝安区', + 440307: '龙岗区', + 440308: '盐田区', + 440309: '龙华区', + 440310: '坪山区', + 440311: '光明区', + 440402: '香洲区', + 440403: '斗门区', + 440404: '金湾区', + 440507: '龙湖区', + 440511: '金平区', + 440512: '濠江区', + 440513: '潮阳区', + 440514: '潮南区', + 440515: '澄海区', + 440523: '南澳县', + 440604: '禅城区', + 440605: '南海区', + 440606: '顺德区', + 440607: '三水区', + 440608: '高明区', + 440703: '蓬江区', + 440704: '江海区', + 440705: '新会区', + 440781: '台山市', + 440783: '开平市', + 440784: '鹤山市', + 440785: '恩平市', + 440802: '赤坎区', + 440803: '霞山区', + 440804: '坡头区', + 440811: '麻章区', + 440823: '遂溪县', + 440825: '徐闻县', + 440881: '廉江市', + 440882: '雷州市', + 440883: '吴川市', + 440890: '经济技术开发区', + 440902: '茂南区', + 440904: '电白区', + 440981: '高州市', + 440982: '化州市', + 440983: '信宜市', + 441202: '端州区', + 441203: '鼎湖区', + 441204: '高要区', + 441223: '广宁县', + 441224: '怀集县', + 441225: '封开县', + 441226: '德庆县', + 441284: '四会市', + 441302: '惠城区', + 441303: '惠阳区', + 441322: '博罗县', + 441323: '惠东县', + 441324: '龙门县', + 441402: '梅江区', + 441403: '梅县区', + 441422: '大埔县', + 441423: '丰顺县', + 441424: '五华县', + 441426: '平远县', + 441427: '蕉岭县', + 441481: '兴宁市', + 441502: '城区', + 441521: '海丰县', + 441523: '陆河县', + 441581: '陆丰市', + 441602: '源城区', + 441621: '紫金县', + 441622: '龙川县', + 441623: '连平县', + 441624: '和平县', + 441625: '东源县', + 441702: '江城区', + 441704: '阳东区', + 441721: '阳西县', + 441781: '阳春市', + 441802: '清城区', + 441803: '清新区', + 441821: '佛冈县', + 441823: '阳山县', + 441825: '连山壮族瑶族自治县', + 441826: '连南瑶族自治县', + 441881: '英德市', + 441882: '连州市', + 441901: '中堂镇', + 441903: '南城街道', + 441904: '长安镇', + 441905: '东坑镇', + 441906: '樟木头镇', + 441907: '莞城街道', + 441908: '石龙镇', + 441909: '桥头镇', + 441910: '万江街道', + 441911: '麻涌镇', + 441912: '虎门镇', + 441913: '谢岗镇', + 441914: '石碣镇', + 441915: '茶山镇', + 441916: '东城街道', + 441917: '洪梅镇', + 441918: '道滘镇', + 441919: '高埗镇', + 441920: '企石镇', + 441921: '凤岗镇', + 441922: '大岭山镇', + 441923: '松山湖', + 441924: '清溪镇', + 441925: '望牛墩镇', + 441926: '厚街镇', + 441927: '常平镇', + 441928: '寮步镇', + 441929: '石排镇', + 441930: '横沥镇', + 441931: '塘厦镇', + 441932: '黄江镇', + 441933: '大朗镇', + 441934: '东莞港', + 441935: '东莞生态园', + 441990: '沙田镇', + 442001: '南头镇', + 442002: '神湾镇', + 442003: '东凤镇', + 442004: '五桂山街道', + 442005: '黄圃镇', + 442006: '小榄镇', + 442007: '石岐街道', + 442008: '横栏镇', + 442009: '三角镇', + 442010: '三乡镇', + 442011: '港口镇', + 442012: '沙溪镇', + 442013: '板芙镇', + 442015: '东升镇', + 442016: '阜沙镇', + 442017: '民众镇', + 442018: '东区街道', + 442019: '火炬开发区街道办事处', + 442020: '西区街道', + 442021: '南区街道', + 442022: '古镇镇', + 442023: '坦洲镇', + 442024: '大涌镇', + 442025: '南朗镇', + 445102: '湘桥区', + 445103: '潮安区', + 445122: '饶平县', + 445202: '榕城区', + 445203: '揭东区', + 445222: '揭西县', + 445224: '惠来县', + 445281: '普宁市', + 445302: '云城区', + 445303: '云安区', + 445321: '新兴县', + 445322: '郁南县', + 445381: '罗定市', + 450102: '兴宁区', + 450103: '青秀区', + 450105: '江南区', + 450107: '西乡塘区', + 450108: '良庆区', + 450109: '邕宁区', + 450110: '武鸣区', + 450123: '隆安县', + 450124: '马山县', + 450125: '上林县', + 450126: '宾阳县', + 450127: '横县', + 450202: '城中区', + 450203: '鱼峰区', + 450204: '柳南区', + 450205: '柳北区', + 450206: '柳江区', + 450222: '柳城县', + 450223: '鹿寨县', + 450224: '融安县', + 450225: '融水苗族自治县', + 450226: '三江侗族自治县', + 450302: '秀峰区', + 450303: '叠彩区', + 450304: '象山区', + 450305: '七星区', + 450311: '雁山区', + 450312: '临桂区', + 450321: '阳朔县', + 450323: '灵川县', + 450324: '全州县', + 450325: '兴安县', + 450326: '永福县', + 450327: '灌阳县', + 450328: '龙胜各族自治县', + 450329: '资源县', + 450330: '平乐县', + 450332: '恭城瑶族自治县', + 450381: '荔浦市', + 450403: '万秀区', + 450405: '长洲区', + 450406: '龙圩区', + 450421: '苍梧县', + 450422: '藤县', + 450423: '蒙山县', + 450481: '岑溪市', + 450502: '海城区', + 450503: '银海区', + 450512: '铁山港区', + 450521: '合浦县', + 450602: '港口区', + 450603: '防城区', + 450621: '上思县', + 450681: '东兴市', + 450702: '钦南区', + 450703: '钦北区', + 450721: '灵山县', + 450722: '浦北县', + 450802: '港北区', + 450803: '港南区', + 450804: '覃塘区', + 450821: '平南县', + 450881: '桂平市', + 450902: '玉州区', + 450903: '福绵区', + 450921: '容县', + 450922: '陆川县', + 450923: '博白县', + 450924: '兴业县', + 450981: '北流市', + 451002: '右江区', + 451003: '田阳区', + 451022: '田东县', + 451024: '德保县', + 451026: '那坡县', + 451027: '凌云县', + 451028: '乐业县', + 451029: '田林县', + 451030: '西林县', + 451031: '隆林各族自治县', + 451081: '靖西市', + 451082: '平果市', + 451102: '八步区', + 451103: '平桂区', + 451121: '昭平县', + 451122: '钟山县', + 451123: '富川瑶族自治县', + 451202: '金城江区', + 451203: '宜州区', + 451221: '南丹县', + 451222: '天峨县', + 451223: '凤山县', + 451224: '东兰县', + 451225: '罗城仫佬族自治县', + 451226: '环江毛南族自治县', + 451227: '巴马瑶族自治县', + 451228: '都安瑶族自治县', + 451229: '大化瑶族自治县', + 451302: '兴宾区', + 451321: '忻城县', + 451322: '象州县', + 451323: '武宣县', + 451324: '金秀瑶族自治县', + 451381: '合山市', + 451402: '江州区', + 451421: '扶绥县', + 451422: '宁明县', + 451423: '龙州县', + 451424: '大新县', + 451425: '天等县', + 451481: '凭祥市', + 460105: '秀英区', + 460106: '龙华区', + 460107: '琼山区', + 460108: '美兰区', + 460202: '海棠区', + 460203: '吉阳区', + 460204: '天涯区', + 460205: '崖州区', + 460321: '西沙区', + 460322: '南沙区', + 460401: '那大镇', + 460402: '和庆镇', + 460403: '南丰镇', + 460404: '大成镇', + 460405: '雅星镇', + 460406: '兰洋镇', + 460407: '光村镇', + 460408: '木棠镇', + 460409: '海头镇', + 460410: '峨蔓镇', + 460411: '王五镇', + 460412: '白马井镇', + 460413: '中和镇', + 460414: '排浦镇', + 460415: '东成镇', + 460416: '新州镇', + 460417: '洋浦经济开发区', + 460418: '华南热作学院', + 469001: '五指山市', + 469002: '琼海市', + 469005: '文昌市', + 469006: '万宁市', + 469007: '东方市', + 469021: '定安县', + 469022: '屯昌县', + 469023: '澄迈县', + 469024: '临高县', + 469025: '白沙黎族自治县', + 469026: '昌江黎族自治县', + 469027: '乐东黎族自治县', + 469028: '陵水黎族自治县', + 469029: '保亭黎族苗族自治县', + 469030: '琼中黎族苗族自治县', + 500101: '万州区', + 500102: '涪陵区', + 500103: '渝中区', + 500104: '大渡口区', + 500105: '江北区', + 500106: '沙坪坝区', + 500107: '九龙坡区', + 500108: '南岸区', + 500109: '北碚区', + 500110: '綦江区', + 500111: '大足区', + 500112: '渝北区', + 500113: '巴南区', + 500114: '黔江区', + 500115: '长寿区', + 500116: '江津区', + 500117: '合川区', + 500118: '永川区', + 500119: '南川区', + 500120: '璧山区', + 500151: '铜梁区', + 500152: '潼南区', + 500153: '荣昌区', + 500154: '开州区', + 500155: '梁平区', + 500156: '武隆区', + 500229: '城口县', + 500230: '丰都县', + 500231: '垫江县', + 500233: '忠县', + 500235: '云阳县', + 500236: '奉节县', + 500237: '巫山县', + 500238: '巫溪县', + 500240: '石柱土家族自治县', + 500241: '秀山土家族苗族自治县', + 500242: '酉阳土家族苗族自治县', + 500243: '彭水苗族土家族自治县', + 510104: '锦江区', + 510105: '青羊区', + 510106: '金牛区', + 510107: '武侯区', + 510108: '成华区', + 510112: '龙泉驿区', + 510113: '青白江区', + 510114: '新都区', + 510115: '温江区', + 510116: '双流区', + 510117: '郫都区', + 510121: '金堂县', + 510129: '大邑县', + 510131: '蒲江县', + 510132: '新津县', + 510181: '都江堰市', + 510182: '彭州市', + 510183: '邛崃市', + 510184: '崇州市', + 510185: '简阳市', + 510191: '高新区', + 510302: '自流井区', + 510303: '贡井区', + 510304: '大安区', + 510311: '沿滩区', + 510321: '荣县', + 510322: '富顺县', + 510402: '东区', + 510403: '西区', + 510411: '仁和区', + 510421: '米易县', + 510422: '盐边县', + 510502: '江阳区', + 510503: '纳溪区', + 510504: '龙马潭区', + 510521: '泸县', + 510522: '合江县', + 510524: '叙永县', + 510525: '古蔺县', + 510603: '旌阳区', + 510604: '罗江区', + 510623: '中江县', + 510681: '广汉市', + 510682: '什邡市', + 510683: '绵竹市', + 510703: '涪城区', + 510704: '游仙区', + 510705: '安州区', + 510722: '三台县', + 510723: '盐亭县', + 510725: '梓潼县', + 510726: '北川羌族自治县', + 510727: '平武县', + 510781: '江油市', + 510791: '高新区', + 510802: '利州区', + 510811: '昭化区', + 510812: '朝天区', + 510821: '旺苍县', + 510822: '青川县', + 510823: '剑阁县', + 510824: '苍溪县', + 510903: '船山区', + 510904: '安居区', + 510921: '蓬溪县', + 510923: '大英县', + 510981: '射洪市', + 511002: '市中区', + 511011: '东兴区', + 511024: '威远县', + 511025: '资中县', + 511083: '隆昌市', + 511102: '市中区', + 511111: '沙湾区', + 511112: '五通桥区', + 511113: '金口河区', + 511123: '犍为县', + 511124: '井研县', + 511126: '夹江县', + 511129: '沐川县', + 511132: '峨边彝族自治县', + 511133: '马边彝族自治县', + 511181: '峨眉山市', + 511302: '顺庆区', + 511303: '高坪区', + 511304: '嘉陵区', + 511321: '南部县', + 511322: '营山县', + 511323: '蓬安县', + 511324: '仪陇县', + 511325: '西充县', + 511381: '阆中市', + 511402: '东坡区', + 511403: '彭山区', + 511421: '仁寿县', + 511423: '洪雅县', + 511424: '丹棱县', + 511425: '青神县', + 511502: '翠屏区', + 511503: '南溪区', + 511504: '叙州区', + 511523: '江安县', + 511524: '长宁县', + 511525: '高县', + 511526: '珙县', + 511527: '筠连县', + 511528: '兴文县', + 511529: '屏山县', + 511602: '广安区', + 511603: '前锋区', + 511621: '岳池县', + 511622: '武胜县', + 511623: '邻水县', + 511681: '华蓥市', + 511702: '通川区', + 511703: '达川区', + 511722: '宣汉县', + 511723: '开江县', + 511724: '大竹县', + 511725: '渠县', + 511781: '万源市', + 511802: '雨城区', + 511803: '名山区', + 511822: '荥经县', + 511823: '汉源县', + 511824: '石棉县', + 511825: '天全县', + 511826: '芦山县', + 511827: '宝兴县', + 511902: '巴州区', + 511903: '恩阳区', + 511921: '通江县', + 511922: '南江县', + 511923: '平昌县', + 511971: '巴中经济开发区', + 512002: '雁江区', + 512021: '安岳县', + 512022: '乐至县', + 513201: '马尔康市', + 513221: '汶川县', + 513222: '理县', + 513223: '茂县', + 513224: '松潘县', + 513225: '九寨沟县', + 513226: '金川县', + 513227: '小金县', + 513228: '黑水县', + 513230: '壤塘县', + 513231: '阿坝县', + 513232: '若尔盖县', + 513233: '红原县', + 513301: '康定市', + 513322: '泸定县', + 513323: '丹巴县', + 513324: '九龙县', + 513325: '雅江县', + 513326: '道孚县', + 513327: '炉霍县', + 513328: '甘孜县', + 513329: '新龙县', + 513330: '德格县', + 513331: '白玉县', + 513332: '石渠县', + 513333: '色达县', + 513334: '理塘县', + 513335: '巴塘县', + 513336: '乡城县', + 513337: '稻城县', + 513338: '得荣县', + 513401: '西昌市', + 513422: '木里藏族自治县', + 513423: '盐源县', + 513424: '德昌县', + 513425: '会理县', + 513426: '会东县', + 513427: '宁南县', + 513428: '普格县', + 513429: '布拖县', + 513430: '金阳县', + 513431: '昭觉县', + 513432: '喜德县', + 513433: '冕宁县', + 513434: '越西县', + 513435: '甘洛县', + 513436: '美姑县', + 513437: '雷波县', + 520102: '南明区', + 520103: '云岩区', + 520111: '花溪区', + 520112: '乌当区', + 520113: '白云区', + 520115: '观山湖区', + 520121: '开阳县', + 520122: '息烽县', + 520123: '修文县', + 520181: '清镇市', + 520201: '钟山区', + 520203: '六枝特区', + 520221: '水城县', + 520281: '盘州市', + 520302: '红花岗区', + 520303: '汇川区', + 520304: '播州区', + 520322: '桐梓县', + 520323: '绥阳县', + 520324: '正安县', + 520325: '道真仡佬族苗族自治县', + 520326: '务川仡佬族苗族自治县', + 520327: '凤冈县', + 520328: '湄潭县', + 520329: '余庆县', + 520330: '习水县', + 520381: '赤水市', + 520382: '仁怀市', + 520402: '西秀区', + 520403: '平坝区', + 520422: '普定县', + 520423: '镇宁布依族苗族自治县', + 520424: '关岭布依族苗族自治县', + 520425: '紫云苗族布依族自治县', + 520502: '七星关区', + 520521: '大方县', + 520522: '黔西县', + 520523: '金沙县', + 520524: '织金县', + 520525: '纳雍县', + 520526: '威宁彝族回族苗族自治县', + 520527: '赫章县', + 520602: '碧江区', + 520603: '万山区', + 520621: '江口县', + 520622: '玉屏侗族自治县', + 520623: '石阡县', + 520624: '思南县', + 520625: '印江土家族苗族自治县', + 520626: '德江县', + 520627: '沿河土家族自治县', + 520628: '松桃苗族自治县', + 522301: '兴义市', + 522302: '兴仁市', + 522323: '普安县', + 522324: '晴隆县', + 522325: '贞丰县', + 522326: '望谟县', + 522327: '册亨县', + 522328: '安龙县', + 522601: '凯里市', + 522622: '黄平县', + 522623: '施秉县', + 522624: '三穗县', + 522625: '镇远县', + 522626: '岑巩县', + 522627: '天柱县', + 522628: '锦屏县', + 522629: '剑河县', + 522630: '台江县', + 522631: '黎平县', + 522632: '榕江县', + 522633: '从江县', + 522634: '雷山县', + 522635: '麻江县', + 522636: '丹寨县', + 522701: '都匀市', + 522702: '福泉市', + 522722: '荔波县', + 522723: '贵定县', + 522725: '瓮安县', + 522726: '独山县', + 522727: '平塘县', + 522728: '罗甸县', + 522729: '长顺县', + 522730: '龙里县', + 522731: '惠水县', + 522732: '三都水族自治县', + 530102: '五华区', + 530103: '盘龙区', + 530111: '官渡区', + 530112: '西山区', + 530113: '东川区', + 530114: '呈贡区', + 530115: '晋宁区', + 530124: '富民县', + 530125: '宜良县', + 530126: '石林彝族自治县', + 530127: '嵩明县', + 530128: '禄劝彝族苗族自治县', + 530129: '寻甸回族彝族自治县', + 530181: '安宁市', + 530302: '麒麟区', + 530303: '沾益区', + 530304: '马龙区', + 530322: '陆良县', + 530323: '师宗县', + 530324: '罗平县', + 530325: '富源县', + 530326: '会泽县', + 530381: '宣威市', + 530402: '红塔区', + 530403: '江川区', + 530423: '通海县', + 530424: '华宁县', + 530425: '易门县', + 530426: '峨山彝族自治县', + 530427: '新平彝族傣族自治县', + 530428: '元江哈尼族彝族傣族自治县', + 530481: '澄江市', + 530502: '隆阳区', + 530521: '施甸县', + 530523: '龙陵县', + 530524: '昌宁县', + 530581: '腾冲市', + 530602: '昭阳区', + 530621: '鲁甸县', + 530622: '巧家县', + 530623: '盐津县', + 530624: '大关县', + 530625: '永善县', + 530626: '绥江县', + 530627: '镇雄县', + 530628: '彝良县', + 530629: '威信县', + 530681: '水富市', + 530702: '古城区', + 530721: '玉龙纳西族自治县', + 530722: '永胜县', + 530723: '华坪县', + 530724: '宁蒗彝族自治县', + 530802: '思茅区', + 530821: '宁洱哈尼族彝族自治县', + 530822: '墨江哈尼族自治县', + 530823: '景东彝族自治县', + 530824: '景谷傣族彝族自治县', + 530825: '镇沅彝族哈尼族拉祜族自治县', + 530826: '江城哈尼族彝族自治县', + 530827: '孟连傣族拉祜族佤族自治县', + 530828: '澜沧拉祜族自治县', + 530829: '西盟佤族自治县', + 530902: '临翔区', + 530921: '凤庆县', + 530922: '云县', + 530923: '永德县', + 530924: '镇康县', + 530925: '双江拉祜族佤族布朗族傣族自治县', + 530926: '耿马傣族佤族自治县', + 530927: '沧源佤族自治县', + 532301: '楚雄市', + 532322: '双柏县', + 532323: '牟定县', + 532324: '南华县', + 532325: '姚安县', + 532326: '大姚县', + 532327: '永仁县', + 532328: '元谋县', + 532329: '武定县', + 532331: '禄丰县', + 532501: '个旧市', + 532502: '开远市', + 532503: '蒙自市', + 532504: '弥勒市', + 532523: '屏边苗族自治县', + 532524: '建水县', + 532525: '石屏县', + 532527: '泸西县', + 532528: '元阳县', + 532529: '红河县', + 532530: '金平苗族瑶族傣族自治县', + 532531: '绿春县', + 532532: '河口瑶族自治县', + 532601: '文山市', + 532622: '砚山县', + 532623: '西畴县', + 532624: '麻栗坡县', + 532625: '马关县', + 532626: '丘北县', + 532627: '广南县', + 532628: '富宁县', + 532801: '景洪市', + 532822: '勐海县', + 532823: '勐腊县', + 532901: '大理市', + 532922: '漾濞彝族自治县', + 532923: '祥云县', + 532924: '宾川县', + 532925: '弥渡县', + 532926: '南涧彝族自治县', + 532927: '巍山彝族回族自治县', + 532928: '永平县', + 532929: '云龙县', + 532930: '洱源县', + 532931: '剑川县', + 532932: '鹤庆县', + 533102: '瑞丽市', + 533103: '芒市', + 533122: '梁河县', + 533123: '盈江县', + 533124: '陇川县', + 533301: '泸水市', + 533323: '福贡县', + 533324: '贡山独龙族怒族自治县', + 533325: '兰坪白族普米族自治县', + 533401: '香格里拉市', + 533422: '德钦县', + 533423: '维西傈僳族自治县', + 540102: '城关区', + 540103: '堆龙德庆区', + 540104: '达孜区', + 540121: '林周县', + 540122: '当雄县', + 540123: '尼木县', + 540124: '曲水县', + 540127: '墨竹工卡县', + 540202: '桑珠孜区', + 540221: '南木林县', + 540222: '江孜县', + 540223: '定日县', + 540224: '萨迦县', + 540225: '拉孜县', + 540226: '昂仁县', + 540227: '谢通门县', + 540228: '白朗县', + 540229: '仁布县', + 540230: '康马县', + 540231: '定结县', + 540232: '仲巴县', + 540233: '亚东县', + 540234: '吉隆县', + 540235: '聂拉木县', + 540236: '萨嘎县', + 540237: '岗巴县', + 540302: '卡若区', + 540321: '江达县', + 540322: '贡觉县', + 540323: '类乌齐县', + 540324: '丁青县', + 540325: '察雅县', + 540326: '八宿县', + 540327: '左贡县', + 540328: '芒康县', + 540329: '洛隆县', + 540330: '边坝县', + 540402: '巴宜区', + 540421: '工布江达县', + 540422: '米林县', + 540423: '墨脱县', + 540424: '波密县', + 540425: '察隅县', + 540426: '朗县', + 540502: '乃东区', + 540521: '扎囊县', + 540522: '贡嘎县', + 540523: '桑日县', + 540524: '琼结县', + 540525: '曲松县', + 540526: '措美县', + 540527: '洛扎县', + 540528: '加查县', + 540529: '隆子县', + 540530: '错那县', + 540531: '浪卡子县', + 540602: '色尼区', + 540621: '嘉黎县', + 540622: '比如县', + 540623: '聂荣县', + 540624: '安多县', + 540625: '申扎县', + 540626: '索县', + 540627: '班戈县', + 540628: '巴青县', + 540629: '尼玛县', + 540630: '双湖县', + 542521: '普兰县', + 542522: '札达县', + 542523: '噶尔县', + 542524: '日土县', + 542525: '革吉县', + 542526: '改则县', + 542527: '措勤县', + 610102: '新城区', + 610103: '碑林区', + 610104: '莲湖区', + 610111: '灞桥区', + 610112: '未央区', + 610113: '雁塔区', + 610114: '阎良区', + 610115: '临潼区', + 610116: '长安区', + 610117: '高陵区', + 610118: '鄠邑区', + 610122: '蓝田县', + 610124: '周至县', + 610202: '王益区', + 610203: '印台区', + 610204: '耀州区', + 610222: '宜君县', + 610302: '渭滨区', + 610303: '金台区', + 610304: '陈仓区', + 610322: '凤翔县', + 610323: '岐山县', + 610324: '扶风县', + 610326: '眉县', + 610327: '陇县', + 610328: '千阳县', + 610329: '麟游县', + 610330: '凤县', + 610331: '太白县', + 610402: '秦都区', + 610403: '杨陵区', + 610404: '渭城区', + 610422: '三原县', + 610423: '泾阳县', + 610424: '乾县', + 610425: '礼泉县', + 610426: '永寿县', + 610428: '长武县', + 610429: '旬邑县', + 610430: '淳化县', + 610431: '武功县', + 610481: '兴平市', + 610482: '彬州市', + 610502: '临渭区', + 610503: '华州区', + 610522: '潼关县', + 610523: '大荔县', + 610524: '合阳县', + 610525: '澄城县', + 610526: '蒲城县', + 610527: '白水县', + 610528: '富平县', + 610581: '韩城市', + 610582: '华阴市', + 610602: '宝塔区', + 610603: '安塞区', + 610621: '延长县', + 610622: '延川县', + 610625: '志丹县', + 610626: '吴起县', + 610627: '甘泉县', + 610628: '富县', + 610629: '洛川县', + 610630: '宜川县', + 610631: '黄龙县', + 610632: '黄陵县', + 610681: '子长市', + 610702: '汉台区', + 610703: '南郑区', + 610722: '城固县', + 610723: '洋县', + 610724: '西乡县', + 610725: '勉县', + 610726: '宁强县', + 610727: '略阳县', + 610728: '镇巴县', + 610729: '留坝县', + 610730: '佛坪县', + 610802: '榆阳区', + 610803: '横山区', + 610822: '府谷县', + 610824: '靖边县', + 610825: '定边县', + 610826: '绥德县', + 610827: '米脂县', + 610828: '佳县', + 610829: '吴堡县', + 610830: '清涧县', + 610831: '子洲县', + 610881: '神木市', + 610902: '汉滨区', + 610921: '汉阴县', + 610922: '石泉县', + 610923: '宁陕县', + 610924: '紫阳县', + 610925: '岚皋县', + 610926: '平利县', + 610927: '镇坪县', + 610928: '旬阳县', + 610929: '白河县', + 611002: '商州区', + 611021: '洛南县', + 611022: '丹凤县', + 611023: '商南县', + 611024: '山阳县', + 611025: '镇安县', + 611026: '柞水县', + 620102: '城关区', + 620103: '七里河区', + 620104: '西固区', + 620105: '安宁区', + 620111: '红古区', + 620121: '永登县', + 620122: '皋兰县', + 620123: '榆中县', + 620171: '兰州新区', + 620201: '市辖区', + 620290: '雄关区', + 620291: '长城区', + 620292: '镜铁区', + 620293: '新城镇', + 620294: '峪泉镇', + 620295: '文殊镇', + 620302: '金川区', + 620321: '永昌县', + 620402: '白银区', + 620403: '平川区', + 620421: '靖远县', + 620422: '会宁县', + 620423: '景泰县', + 620502: '秦州区', + 620503: '麦积区', + 620521: '清水县', + 620522: '秦安县', + 620523: '甘谷县', + 620524: '武山县', + 620525: '张家川回族自治县', + 620602: '凉州区', + 620621: '民勤县', + 620622: '古浪县', + 620623: '天祝藏族自治县', + 620702: '甘州区', + 620721: '肃南裕固族自治县', + 620722: '民乐县', + 620723: '临泽县', + 620724: '高台县', + 620725: '山丹县', + 620802: '崆峒区', + 620821: '泾川县', + 620822: '灵台县', + 620823: '崇信县', + 620825: '庄浪县', + 620826: '静宁县', + 620881: '华亭市', + 620902: '肃州区', + 620921: '金塔县', + 620922: '瓜州县', + 620923: '肃北蒙古族自治县', + 620924: '阿克塞哈萨克族自治县', + 620981: '玉门市', + 620982: '敦煌市', + 621002: '西峰区', + 621021: '庆城县', + 621022: '环县', + 621023: '华池县', + 621024: '合水县', + 621025: '正宁县', + 621026: '宁县', + 621027: '镇原县', + 621102: '安定区', + 621121: '通渭县', + 621122: '陇西县', + 621123: '渭源县', + 621124: '临洮县', + 621125: '漳县', + 621126: '岷县', + 621202: '武都区', + 621221: '成县', + 621222: '文县', + 621223: '宕昌县', + 621224: '康县', + 621225: '西和县', + 621226: '礼县', + 621227: '徽县', + 621228: '两当县', + 622901: '临夏市', + 622921: '临夏县', + 622922: '康乐县', + 622923: '永靖县', + 622924: '广河县', + 622925: '和政县', + 622926: '东乡族自治县', + 622927: '积石山保安族东乡族撒拉族自治县', + 623001: '合作市', + 623021: '临潭县', + 623022: '卓尼县', + 623023: '舟曲县', + 623024: '迭部县', + 623025: '玛曲县', + 623026: '碌曲县', + 623027: '夏河县', + 630102: '城东区', + 630103: '城中区', + 630104: '城西区', + 630105: '城北区', + 630106: '湟中区', + 630121: '大通回族土族自治县', + 630123: '湟源县', + 630202: '乐都区', + 630203: '平安区', + 630222: '民和回族土族自治县', + 630223: '互助土族自治县', + 630224: '化隆回族自治县', + 630225: '循化撒拉族自治县', + 632221: '门源回族自治县', + 632222: '祁连县', + 632223: '海晏县', + 632224: '刚察县', + 632321: '同仁县', + 632322: '尖扎县', + 632323: '泽库县', + 632324: '河南蒙古族自治县', + 632521: '共和县', + 632522: '同德县', + 632523: '贵德县', + 632524: '兴海县', + 632525: '贵南县', + 632621: '玛沁县', + 632622: '班玛县', + 632623: '甘德县', + 632624: '达日县', + 632625: '久治县', + 632626: '玛多县', + 632701: '玉树市', + 632722: '杂多县', + 632723: '称多县', + 632724: '治多县', + 632725: '囊谦县', + 632726: '曲麻莱县', + 632801: '格尔木市', + 632802: '德令哈市', + 632803: '茫崖市', + 632821: '乌兰县', + 632822: '都兰县', + 632823: '天峻县', + 632857: '大柴旦行政委员会', + 640104: '兴庆区', + 640105: '西夏区', + 640106: '金凤区', + 640121: '永宁县', + 640122: '贺兰县', + 640181: '灵武市', + 640202: '大武口区', + 640205: '惠农区', + 640221: '平罗县', + 640302: '利通区', + 640303: '红寺堡区', + 640323: '盐池县', + 640324: '同心县', + 640381: '青铜峡市', + 640402: '原州区', + 640422: '西吉县', + 640423: '隆德县', + 640424: '泾源县', + 640425: '彭阳县', + 640502: '沙坡头区', + 640521: '中宁县', + 640522: '海原县', + 650102: '天山区', + 650103: '沙依巴克区', + 650104: '新市区', + 650105: '水磨沟区', + 650106: '头屯河区', + 650107: '达坂城区', + 650109: '米东区', + 650121: '乌鲁木齐县', + 650202: '独山子区', + 650203: '克拉玛依区', + 650204: '白碱滩区', + 650205: '乌尔禾区', + 650402: '高昌区', + 650421: '鄯善县', + 650422: '托克逊县', + 650502: '伊州区', + 650521: '巴里坤哈萨克自治县', + 650522: '伊吾县', + 652301: '昌吉市', + 652302: '阜康市', + 652323: '呼图壁县', + 652324: '玛纳斯县', + 652325: '奇台县', + 652327: '吉木萨尔县', + 652328: '木垒哈萨克自治县', + 652701: '博乐市', + 652702: '阿拉山口市', + 652722: '精河县', + 652723: '温泉县', + 652801: '库尔勒市', + 652822: '轮台县', + 652823: '尉犁县', + 652824: '若羌县', + 652825: '且末县', + 652826: '焉耆回族自治县', + 652827: '和静县', + 652828: '和硕县', + 652829: '博湖县', + 652901: '阿克苏市', + 652902: '库车市', + 652922: '温宿县', + 652924: '沙雅县', + 652925: '新和县', + 652926: '拜城县', + 652927: '乌什县', + 652928: '阿瓦提县', + 652929: '柯坪县', + 653001: '阿图什市', + 653022: '阿克陶县', + 653023: '阿合奇县', + 653024: '乌恰县', + 653101: '喀什市', + 653121: '疏附县', + 653122: '疏勒县', + 653123: '英吉沙县', + 653124: '泽普县', + 653125: '莎车县', + 653126: '叶城县', + 653127: '麦盖提县', + 653128: '岳普湖县', + 653129: '伽师县', + 653130: '巴楚县', + 653131: '塔什库尔干塔吉克自治县', + 653201: '和田市', + 653221: '和田县', + 653222: '墨玉县', + 653223: '皮山县', + 653224: '洛浦县', + 653225: '策勒县', + 653226: '于田县', + 653227: '民丰县', + 654002: '伊宁市', + 654003: '奎屯市', + 654004: '霍尔果斯市', + 654021: '伊宁县', + 654022: '察布查尔锡伯自治县', + 654023: '霍城县', + 654024: '巩留县', + 654025: '新源县', + 654026: '昭苏县', + 654027: '特克斯县', + 654028: '尼勒克县', + 654201: '塔城市', + 654202: '乌苏市', + 654221: '额敏县', + 654223: '沙湾县', + 654224: '托里县', + 654225: '裕民县', + 654226: '和布克赛尔蒙古自治县', + 654301: '阿勒泰市', + 654321: '布尔津县', + 654322: '富蕴县', + 654323: '福海县', + 654324: '哈巴河县', + 654325: '青河县', + 654326: '吉木乃县', + 659001: '石河子市', + 659002: '阿拉尔市', + 659003: '图木舒克市', + 659004: '五家渠市', + 659005: '北屯市', + 659006: '铁门关市', + 659007: '双河市', + 659008: '可克达拉市', + 659009: '昆玉市', + 659010: '胡杨河市', + 710101: '中正区', + 710102: '大同区', + 710103: '中山区', + 710104: '松山区', + 710105: '大安区', + 710106: '万华区', + 710107: '信义区', + 710108: '士林区', + 710109: '北投区', + 710110: '内湖区', + 710111: '南港区', + 710112: '文山区', + 710199: '其它区', + 710201: '新兴区', + 710202: '前金区', + 710203: '芩雅区', + 710204: '盐埕区', + 710205: '鼓山区', + 710206: '旗津区', + 710207: '前镇区', + 710208: '三民区', + 710209: '左营区', + 710210: '楠梓区', + 710211: '小港区', + 710241: '苓雅区', + 710242: '仁武区', + 710243: '大社区', + 710244: '冈山区', + 710245: '路竹区', + 710246: '阿莲区', + 710247: '田寮区', + 710248: '燕巢区', + 710249: '桥头区', + 710250: '梓官区', + 710251: '弥陀区', + 710252: '永安区', + 710253: '湖内区', + 710254: '凤山区', + 710255: '大寮区', + 710256: '林园区', + 710257: '鸟松区', + 710258: '大树区', + 710259: '旗山区', + 710260: '美浓区', + 710261: '六龟区', + 710262: '内门区', + 710263: '杉林区', + 710264: '甲仙区', + 710265: '桃源区', + 710266: '那玛夏区', + 710267: '茂林区', + 710268: '茄萣区', + 710299: '其它区', + 710301: '中西区', + 710302: '东区', + 710303: '南区', + 710304: '北区', + 710305: '安平区', + 710306: '安南区', + 710339: '永康区', + 710340: '归仁区', + 710341: '新化区', + 710342: '左镇区', + 710343: '玉井区', + 710344: '楠西区', + 710345: '南化区', + 710346: '仁德区', + 710347: '关庙区', + 710348: '龙崎区', + 710349: '官田区', + 710350: '麻豆区', + 710351: '佳里区', + 710352: '西港区', + 710353: '七股区', + 710354: '将军区', + 710355: '学甲区', + 710356: '北门区', + 710357: '新营区', + 710358: '后壁区', + 710359: '白河区', + 710360: '东山区', + 710361: '六甲区', + 710362: '下营区', + 710363: '柳营区', + 710364: '盐水区', + 710365: '善化区', + 710366: '大内区', + 710367: '山上区', + 710368: '新市区', + 710369: '安定区', + 710399: '其它区', + 710401: '中区', + 710402: '东区', + 710403: '南区', + 710404: '西区', + 710405: '北区', + 710406: '北屯区', + 710407: '西屯区', + 710408: '南屯区', + 710431: '太平区', + 710432: '大里区', + 710433: '雾峰区', + 710434: '乌日区', + 710435: '丰原区', + 710436: '后里区', + 710437: '石冈区', + 710438: '东势区', + 710439: '和平区', + 710440: '新社区', + 710441: '潭子区', + 710442: '大雅区', + 710443: '神冈区', + 710444: '大肚区', + 710445: '沙鹿区', + 710446: '龙井区', + 710447: '梧栖区', + 710448: '清水区', + 710449: '大甲区', + 710450: '外埔区', + 710451: '大安区', + 710499: '其它区', + 710507: '金沙镇', + 710508: '金湖镇', + 710509: '金宁乡', + 710510: '金城镇', + 710511: '烈屿乡', + 710512: '乌坵乡', + 710614: '南投市', + 710615: '中寮乡', + 710616: '草屯镇', + 710617: '国姓乡', + 710618: '埔里镇', + 710619: '仁爱乡', + 710620: '名间乡', + 710621: '集集镇', + 710622: '水里乡', + 710623: '鱼池乡', + 710624: '信义乡', + 710625: '竹山镇', + 710626: '鹿谷乡', + 710701: '仁爱区', + 710702: '信义区', + 710703: '中正区', + 710704: '中山区', + 710705: '安乐区', + 710706: '暖暖区', + 710707: '七堵区', + 710799: '其它区', + 710801: '东区', + 710802: '北区', + 710803: '香山区', + 710899: '其它区', + 710901: '东区', + 710902: '西区', + 710999: '其它区', + 711130: '万里区', + 711132: '板桥区', + 711133: '汐止区', + 711134: '深坑区', + 711135: '石碇区', + 711136: '瑞芳区', + 711137: '平溪区', + 711138: '双溪区', + 711139: '贡寮区', + 711140: '新店区', + 711141: '坪林区', + 711142: '乌来区', + 711143: '永和区', + 711144: '中和区', + 711145: '土城区', + 711146: '三峡区', + 711147: '树林区', + 711148: '莺歌区', + 711149: '三重区', + 711150: '新庄区', + 711151: '泰山区', + 711152: '林口区', + 711153: '芦洲区', + 711154: '五股区', + 711155: '八里区', + 711156: '淡水区', + 711157: '三芝区', + 711158: '石门区', + 711287: '宜兰市', + 711288: '头城镇', + 711289: '礁溪乡', + 711290: '壮围乡', + 711291: '员山乡', + 711292: '罗东镇', + 711293: '三星乡', + 711294: '大同乡', + 711295: '五结乡', + 711296: '冬山乡', + 711297: '苏澳镇', + 711298: '南澳乡', + 711299: '钓鱼台', + 711387: '竹北市', + 711388: '湖口乡', + 711389: '新丰乡', + 711390: '新埔镇', + 711391: '关西镇', + 711392: '芎林乡', + 711393: '宝山乡', + 711394: '竹东镇', + 711395: '五峰乡', + 711396: '横山乡', + 711397: '尖石乡', + 711398: '北埔乡', + 711399: '峨眉乡', + 711414: '中坜区', + 711415: '平镇区', + 711417: '杨梅区', + 711418: '新屋区', + 711419: '观音区', + 711420: '桃园区', + 711421: '龟山区', + 711422: '八德区', + 711423: '大溪区', + 711425: '大园区', + 711426: '芦竹区', + 711487: '中坜市', + 711488: '平镇市', + 711489: '龙潭乡', + 711490: '杨梅市', + 711491: '新屋乡', + 711492: '观音乡', + 711493: '桃园市', + 711494: '龟山乡', + 711495: '八德市', + 711496: '大溪镇', + 711497: '复兴乡', + 711498: '大园乡', + 711499: '芦竹乡', + 711520: '头份市', + 711582: '竹南镇', + 711583: '头份镇', + 711584: '三湾乡', + 711585: '南庄乡', + 711586: '狮潭乡', + 711587: '后龙镇', + 711588: '通霄镇', + 711589: '苑里镇', + 711590: '苗栗市', + 711591: '造桥乡', + 711592: '头屋乡', + 711593: '公馆乡', + 711594: '大湖乡', + 711595: '泰安乡', + 711596: '铜锣乡', + 711597: '三义乡', + 711598: '西湖乡', + 711599: '卓兰镇', + 711736: '员林市', + 711774: '彰化市', + 711775: '芬园乡', + 711776: '花坛乡', + 711777: '秀水乡', + 711778: '鹿港镇', + 711779: '福兴乡', + 711780: '线西乡', + 711781: '和美镇', + 711782: '伸港乡', + 711783: '员林镇', + 711784: '社头乡', + 711785: '永靖乡', + 711786: '埔心乡', + 711787: '溪湖镇', + 711788: '大村乡', + 711789: '埔盐乡', + 711790: '田中镇', + 711791: '北斗镇', + 711792: '田尾乡', + 711793: '埤头乡', + 711794: '溪州乡', + 711795: '竹塘乡', + 711796: '二林镇', + 711797: '大城乡', + 711798: '芳苑乡', + 711799: '二水乡', + 711982: '番路乡', + 711983: '梅山乡', + 711984: '竹崎乡', + 711985: '阿里山乡', + 711986: '中埔乡', + 711987: '大埔乡', + 711988: '水上乡', + 711989: '鹿草乡', + 711990: '太保市', + 711991: '朴子市', + 711992: '东石乡', + 711993: '六脚乡', + 711994: '新港乡', + 711995: '民雄乡', + 711996: '大林镇', + 711997: '溪口乡', + 711998: '义竹乡', + 711999: '布袋镇', + 712180: '斗南镇', + 712181: '大埤乡', + 712182: '虎尾镇', + 712183: '土库镇', + 712184: '褒忠乡', + 712185: '东势乡', + 712186: '台西乡', + 712187: '仑背乡', + 712188: '麦寮乡', + 712189: '斗六市', + 712190: '林内乡', + 712191: '古坑乡', + 712192: '莿桐乡', + 712193: '西螺镇', + 712194: '二仑乡', + 712195: '北港镇', + 712196: '水林乡', + 712197: '口湖乡', + 712198: '四湖乡', + 712199: '元长乡', + 712451: '崁顶乡', + 712467: '屏东市', + 712468: '三地门乡', + 712469: '雾台乡', + 712470: '玛家乡', + 712471: '九如乡', + 712472: '里港乡', + 712473: '高树乡', + 712474: '盐埔乡', + 712475: '长治乡', + 712476: '麟洛乡', + 712477: '竹田乡', + 712478: '内埔乡', + 712479: '万丹乡', + 712480: '潮州镇', + 712481: '泰武乡', + 712482: '来义乡', + 712483: '万峦乡', + 712484: '莰顶乡', + 712485: '新埤乡', + 712486: '南州乡', + 712487: '林边乡', + 712488: '东港镇', + 712489: '琉球乡', + 712490: '佳冬乡', + 712491: '新园乡', + 712492: '枋寮乡', + 712493: '枋山乡', + 712494: '春日乡', + 712495: '狮子乡', + 712496: '车城乡', + 712497: '牡丹乡', + 712498: '恒春镇', + 712499: '满州乡', + 712584: '台东市', + 712585: '绿岛乡', + 712586: '兰屿乡', + 712587: '延平乡', + 712588: '卑南乡', + 712589: '鹿野乡', + 712590: '关山镇', + 712591: '海端乡', + 712592: '池上乡', + 712593: '东河乡', + 712594: '成功镇', + 712595: '长滨乡', + 712596: '金峰乡', + 712597: '大武乡', + 712598: '达仁乡', + 712599: '太麻里乡', + 712686: '花莲市', + 712687: '新城乡', + 712688: '太鲁阁', + 712689: '秀林乡', + 712690: '吉安乡', + 712691: '寿丰乡', + 712692: '凤林镇', + 712693: '光复乡', + 712694: '丰滨乡', + 712695: '瑞穗乡', + 712696: '万荣乡', + 712697: '玉里镇', + 712698: '卓溪乡', + 712699: '富里乡', + 712794: '马公市', + 712795: '西屿乡', + 712796: '望安乡', + 712797: '七美乡', + 712798: '白沙乡', + 712799: '湖西乡', + 712896: '南竿乡', + 712897: '北竿乡', + 712898: '东引乡', + 712899: '莒光乡', + 810101: '中西区', + 810102: '湾仔区', + 810103: '东区', + 810104: '南区', + 810201: '九龙城区', + 810202: '油尖旺区', + 810203: '深水埗区', + 810204: '黄大仙区', + 810205: '观塘区', + 810301: '北区', + 810302: '大埔区', + 810303: '沙田区', + 810304: '西贡区', + 810305: '元朗区', + 810306: '屯门区', + 810307: '荃湾区', + 810308: '葵青区', + 810309: '离岛区', + 820102: '花地玛堂区', + 820103: '花王堂区', + 820104: '望德堂区', + 820105: '大堂区', + 820106: '风顺堂区', + 820202: '嘉模堂区', + 820203: '路氹填海区', + 820204: '圣方济各堂区', + }, + }; + \ No newline at end of file diff --git a/model/entity/BtnData.ts b/model/entity/BtnData.ts new file mode 100644 index 0000000000000000000000000000000000000000..6650838eb21707b53d4cd17092cb094d01972975 --- /dev/null +++ b/model/entity/BtnData.ts @@ -0,0 +1,22 @@ +/** + * @Description: 按钮实体 + * @author liuzehai + * @date 2021-12-11 + * @time 14:07:27 + */ +export class BtnData { + btnId: string; // 按钮编号 + btnType: string; // 按钮类型(1-描边按钮,2-填充按钮) + btnText: string; // 按钮名称 + constructor( + options: { + btnId?: string; + btnType?: string; + btnText?: string; + } = {} + ) { + this.btnId = options.btnId || ""; + this.btnType = options.btnType || ""; + this.btnText = options.btnText || ""; + } +} diff --git a/model/entity/MediaFile.ts b/model/entity/MediaFile.ts new file mode 100644 index 0000000000000000000000000000000000000000..c477e1cd85fb10a665f75b424d4203dd80e92af0 --- /dev/null +++ b/model/entity/MediaFile.ts @@ -0,0 +1,31 @@ +export class MediaFile { + mediaId: string; + userId: string; + userName: string; + customerId: string; + objId: string; + filePath: string; + address: string; + datetime: string; + constructor( + options: { + mediaId?: string; + userId?: string; + userName?: string; + customerId?: string; + objId?: string; + filePath?: string; + address?: string; + datetime?: string; + } = {} + ) { + this.mediaId = options.mediaId || ""; + this.userId = options.userId || ""; + this.userName = options.userName || ""; + this.customerId = options.customerId || ""; + this.objId = options.objId || ""; + this.filePath = options.filePath || ""; + this.address = options.address || ""; + this.datetime = options.datetime || ""; + } +} diff --git a/model/entity/NodeData.ts b/model/entity/NodeData.ts new file mode 100644 index 0000000000000000000000000000000000000000..7365774dab58ee01c782513728de2218847ce7b9 --- /dev/null +++ b/model/entity/NodeData.ts @@ -0,0 +1,19 @@ +/** + * @Description: 给快速导航视图传入的数据类型 + * @author LiuBo + * @date 2018/12/19 + * @time 20:43 + */ +export class NodeData { + nodeId: string; // 节点对应的视图的html Id + nodeText: string; // 节点对应的按钮的名称 + constructor( + options: { + nodeId?: string; + nodeText?: string; + } = {} + ) { + this.nodeId = options.nodeId || ""; + this.nodeText = options.nodeText || ""; + } +} diff --git a/model/entity/ProductData.ts b/model/entity/ProductData.ts new file mode 100644 index 0000000000000000000000000000000000000000..085c3331f80db1b63ab671325ac407f94a901d6d --- /dev/null +++ b/model/entity/ProductData.ts @@ -0,0 +1,31 @@ +/* + * @Author: jiangzaicheng jiangzaicheng_jzc@163.com + * @Date: 2022-07-05 16:57:19 + * @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com + * @LastEditTime: 2022-07-05 16:59:56 + * @FilePath: \mcep-h5\src\model\entity\ProductData.ts + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ + +export class ProductData { + productname: string | undefined //产品名称 + describe: string | undefined //描述 + limitrange: string | undefined //额度范围 + interestrate: string | undefined //利率 + loanterm: string | undefined //贷款期限 + constructor( + options: { + productname?: string; + describe?: string; + limitrange?: string; + interestrate?: string; + loanterm?: string; + } = {} + ) { + this.productname = options.productname || ""; + this.describe = options.describe || ""; + this.limitrange = options.limitrange || ""; + this.interestrate = options.interestrate || ""; + this.loanterm = options.loanterm || ""; + } +} diff --git a/model/entity/SysUserInfo.ts b/model/entity/SysUserInfo.ts new file mode 100644 index 0000000000000000000000000000000000000000..7e81eb961dba32207f695ec3d830c0ed155132b1 --- /dev/null +++ b/model/entity/SysUserInfo.ts @@ -0,0 +1,52 @@ +export class SysUserInfo { + userId: string; + userCode: string; + userName: string; + comId: string; + deptId: string; + postId: string; + idnum: string; + sex: string; + birthday: string; + headImg: string; + phone: string; + email: string; + userSource: string; + isBusTrip: string; + useState: string; + constructor( + options: { + userId?: string; + userCode?: string; + userName?: string; + comId?: string; + deptId?: string; + postId?: string; + idnum?: string; + sex?: string; + birthday?: string; + headImg?: string; + phone?: string; + email?: string; + userSource?: string; + isBusTrip?: string; + useState?: string; + } = {} + ) { + this.userId = options.userId || ""; + this.userCode = options.userCode || ""; + this.userName = options.userName || ""; + this.comId = options.comId || ""; + this.deptId = options.deptId || ""; + this.postId = options.postId || ""; + this.idnum = options.idnum || ""; + this.sex = options.sex || ""; + this.birthday = options.birthday || ""; + this.headImg = options.headImg || ""; + this.phone = options.phone || ""; + this.email = options.email || ""; + this.userSource = options.userSource || ""; + this.isBusTrip = options.isBusTrip || ""; + this.useState = options.useState || ""; + } +} diff --git a/model/entity/TabData.ts b/model/entity/TabData.ts new file mode 100644 index 0000000000000000000000000000000000000000..99e7425c350f1f57633c39f6fc1611f5dc4fd99a --- /dev/null +++ b/model/entity/TabData.ts @@ -0,0 +1,19 @@ +/** + * @Description: 标签页实体 + * @author liuzehai + * @date 2021-12-11 + * @time 14:02:06 + */ +export class TabData { + tabId: string; // 标签页编号 + tabText: string; // 标签页名称 + constructor( + options: { + tabId?: string; + tabText?: string; + } = {} + ) { + this.tabId = options.tabId || ""; + this.tabText = options.tabText || ""; + } +} diff --git a/model/entity/Token.ts b/model/entity/Token.ts new file mode 100644 index 0000000000000000000000000000000000000000..833f4be14a86374b82c84f4dcb6ab2fd0ae50ded --- /dev/null +++ b/model/entity/Token.ts @@ -0,0 +1,34 @@ +export class Token { + access_token: string; + token_type: string; + refresh_token: string; + expires_in: number | undefined; + scope: string; + roles: any[]; + time: number | undefined; + userName: string; + jti: string; + constructor( + options: { + access_token?: string; + token_type?: string; + refresh_token?: string; + expires_in?: number; + scope?: string; + roles?: any[]; + time?: number; + userName?: string; + jti?: string; + } = {} + ) { + this.access_token = options.access_token || ""; + this.token_type = options.token_type || ""; + this.refresh_token = options.refresh_token || ""; + this.expires_in = options.expires_in; + this.scope = options.scope || ""; + this.roles = options.roles || []; + this.time = options.time; + this.userName = options.userName || ""; + this.jti = options.jti || ""; + } +} diff --git a/public/TableDoubleView.vue b/public/TableDoubleView.vue new file mode 100644 index 0000000000000000000000000000000000000000..7f57ae035343ea59d075cfc6ca068c9129e47f42 --- /dev/null +++ b/public/TableDoubleView.vue @@ -0,0 +1,96 @@ + + + + + + diff --git a/public/TableSingleView.vue b/public/TableSingleView.vue new file mode 100644 index 0000000000000000000000000000000000000000..099d16cda1a78d755171faf05c4b36ce6c96b4a4 --- /dev/null +++ b/public/TableSingleView.vue @@ -0,0 +1,73 @@ + + + + + + diff --git a/public/factory/InterFaceFactory.ts b/public/factory/InterFaceFactory.ts new file mode 100644 index 0000000000000000000000000000000000000000..2308d341de4f10558c13a8e1a172a2147bd178ca --- /dev/null +++ b/public/factory/InterFaceFactory.ts @@ -0,0 +1,90 @@ +/** + * 接口工厂类 -- lbb + */ +import Api from "@/services/api.service"; +// import resJon from "@/public/factory/ResJson"; +import { Toast } from "vant"; +import { NativeUI } from "@/public/ts/NativeUI"; +import { MethodType } from "@/constants/enum/general/method-type.enum"; +import { HeaderType } from "@/constants/enum/general/header-type.enum"; +export default class InterFaceFactory { + static service_control = "1"; //服务调用控制开关 - 0:不调用服务 1:调用服务 + static pinfo = { + code: "9999", //响应码 + }; + /** + * 公共接口 + * @param method + * @param params + * @param query?? + * @param requestConfig? + * @returns {Promise>} + */ + static transferDataInter(method: { methodType: string; headerType: string; url: string }, params: any, query?: any, requestConfig?: any) { + const path = query ? Api.urlQueryConvert(method.url, query) : method.url; + Api.getRequestConfig(method.headerType || "", requestConfig); + if (!params.tc || params.tc == "MCEP") { + //移动后台 + params.tc = "MCEP"; + params.user_code = sessionStorage.getItem("user_code"); + } else { + //TODO外围系统, 个贷没改造先处理 + console.log("外围系统"); + params.employee_id = sessionStorage.getItem("workcode"); //人力资源代码, + params.USERCODE = sessionStorage.getItem('user_code'); //人力资源代码,s + params.user_code = sessionStorage.getItem("user_code"); + } + if (!params.hrCode) params.hrCode = sessionStorage.getItem("workcode"); //人力资源代码 + + console.log("**请求参数**:",params.tc,params); + switch (method.methodType) { + case MethodType.POST.code: + return Api.post(path, params, query, requestConfig).catch((err: any) => { + NativeUI.toast(err.msg); + }); + case MethodType.GET.code: + return Api.get(path, query, requestConfig); + case MethodType.PUT.code: + return Api.put(path, params, query, requestConfig); + case MethodType.DELETE.code: + return Api.delete(path, query, requestConfig); + default: + return new Promise(() => {}); + } + } + + /** + * 文件传输 + * @param method + * @param params + * @param requestConfig requestConfig.onUploadProgress, requestConfig.onDownloadProgress + * @returns {Promise>} + */ + static transferFile(method: any = { url: "", headerType: HeaderType.UPLOAD_AUTH, methodType: MethodType.POST.code }, params: any, requestConfig = {}) { + requestConfig = Api.getRequestConfig(method.headerType || "", requestConfig); + params = this.jsonToFormData(params); + return Api.uploadFile(method.url, params, requestConfig); + } + + /** + * JSON转Form + * @param params + * @returns {FormData} + */ + static jsonToFormData(params: { [x: string]: string | Blob; files?: any } | null) { + if (params != null) { + const formData = new FormData(); + Object.keys(params).forEach((key) => { + if ("files" == key) { + // 多文件上传 + params.files.forEach((file: string | Blob) => { + formData.append("files", file); + }); + } else { + formData.append(key, params[key]); + } + }); + return formData; + } + } +} diff --git a/public/plugins/5+plugins.ts b/public/plugins/5+plugins.ts new file mode 100644 index 0000000000000000000000000000000000000000..0f869590876a6569cce8491b64ceaf641732f467 --- /dev/null +++ b/public/plugins/5+plugins.ts @@ -0,0 +1,19 @@ +document.addEventListener("plusready", function(){ + const B = window.plus.bridge; + const takePhoto = { + "open": function(params: any, successCallback: any, errorCallback: any){ + const success = typeof successCallback !== 'function' ? null : function (args:any) { + successCallback(args); + }, + fail = typeof errorCallback !== 'function' ? null : function (code: any) { + errorCallback(code); + }, + callbackID = B.callbackId(success, fail); + return B.exec("TakePhoto", "takePhoto", [callbackID, params]); + } + }; +}, true); + +export default { + +} diff --git a/public/plugins/install/install.js b/public/plugins/install/install.js new file mode 100644 index 0000000000000000000000000000000000000000..100ae6da055614b97c33fd903680e4f2604fdc42 --- /dev/null +++ b/public/plugins/install/install.js @@ -0,0 +1,11 @@ +import InterFaceFactory from "@/public/factory/InterFaceFactory"; +//数据字典 +import DataDics from '@/services/dict.service.ts'; +const install = { + install: function (Vue) { + DataDics.init(); + Vue.prototype.IF = InterFaceFactory; + Vue.prototype.dataDics = DataDics; + }, +}; +export default install; diff --git a/public/ts/NativeUI.ts b/public/ts/NativeUI.ts new file mode 100644 index 0000000000000000000000000000000000000000..e645cb101d3f1172c27b3f9added10d49e0ea0cb --- /dev/null +++ b/public/ts/NativeUI.ts @@ -0,0 +1,97 @@ +/* + * @功能描述: + * @作者: Xuweihao + * @Date: 2021-12-30 14:39:16 + */ +import { Dialog, Toast } from "vant"; +/** + * 用Vue封装的plus.nativeUI功能,目的是统一样式,统一判断 + * @author zhangpeng + * @date 2020-07-01 10:07:54 + */ +const NativeUI = { + /** + * 显示系统等待对话框 + * @param {String} title + */ + showWaiting(title = "正在查询...", duration = 30000) { + Toast.loading({ + message: title, + loadingType: "spinner", + forbidClick: true, //是否禁止背景点 + duration: duration, //默认时长30000ms + }); + }, + /** + * 关闭系统等待对话框 + */ + closeWaiting() { + Toast.clear(); + }, + /** + * 吐司提示 + * @author zhangpeng + * @param {String} message 文本内容,支持通过\n换行 + * @param {String} durationtype 可选值为"long"、"short",值为"long"时显示时间约为3.5s,值为"short"时显示时间约为2s,未设置时默认值为"short"。 + * @date 2020-07-01 11:29:49 + * @update + */ + // toast( message?: any, duration?: any) { + toast(message?: any, duration?: any,durationtype = "short",) { + if (!window.plus) { + if (durationtype === "long") { + duration = 3500; + } else if (durationtype === "short") { + duration = 2000; + } else { + duration = 3500; + } + Toast({ + duration: duration, // 持续展示 toast + forbidClick: true, + message: message, + }); + } else { + window.plus.nativeUI.toast(message, { verticalAlign: "center", durationtype: "long" }); + } + }, + + /** + * 展示消息确认弹窗 + * @author zhangpeng + * @param {String} title 标题 + * @param {String} message? 文本内容,支持通过\n换行 + * @param {String} confirmButtonText 确认按钮文案 + * @param {String} cancelButtonText 取消按钮文案 + * @date 2020-07-01 10:30:42 + * @update + */ + confirm(title: string = "温馨提示", message?: any, confirmButtonText = "确认", cancelButtonText = "取消") { + let confirm; + if (!window.plus) { + confirm = Dialog.confirm({ + title: title, + message: message, + confirmButtonText: confirmButtonText, + cancelButtonText: cancelButtonText + }); + } else { + confirm = new Promise((resolve: any, reject) => { + window.plus.nativeUI.confirm( + message, + (e: any) => { + if (e.index === 0) { + resolve(); + } else { + reject(); + } + }, + title, + [confirmButtonText, cancelButtonText] + ); + }); + } + return confirm; + } +}; +export { NativeUI }; diff --git a/public/ts/Public.ts b/public/ts/Public.ts new file mode 100644 index 0000000000000000000000000000000000000000..270d788485de27ede1a19dc5485107af217456be --- /dev/null +++ b/public/ts/Public.ts @@ -0,0 +1,369 @@ +import nettyApi from '@/constants/api/ms-netty/netty.api'; +import InterFaceFactory from '@/public/factory/InterFaceFactory'; +import systemApi from '@/constants/api/ms-system/system.api'; + +/** + * 工具类 + */ +const Public = { + /** + * 获取地理位置信息(同步方法) + * @return {Object} {lng, lat, address} 当前位置信息的经度、纬度、地理位置 + */ + getLocation() { + let locInfos; + if (window.plus && window.plus.os.name === 'iOS') { + locInfos = this.parseLocation(window.plus.iOSMapNav.getLocation()); + } else if (window.plus && window.plus.os.name === 'Android') { + locInfos = this.parseLocation((window as any).SMMP.getLocation('2')); + } else { + locInfos = { + lng: '#', + lat: '#', + address: '暂无位置信息' + }; + } + return locInfos; + }, + /** + * 获取当前位置信息(异步方法),支持iOS设备 + * @param {Function} successCallback 成功回调 + * @param {Function} errorCallback 失败回调 + */ + getCurrentPosition(successCallback: any, errorCallback: any) { + if (window.plus) { + if (window.plus.os.name === 'iOS') { + window.plus.iOSMapNav.getCurrentPosition( + function(result: any) { + let locInfos = result.split('◆'); + let newResult = {}; + let myPosition; + if (locInfos.length === 2) { + myPosition = locInfos[1]; + } else { + myPosition = locInfos[0]; + } + // 经度 + (newResult as any).lng = myPosition.split('▓')[1]; + // 维度 + (newResult as any).lat = myPosition.split('▓')[2]; + // 地址 + (newResult as any).address = myPosition.split('▓')[3]; + if (typeof successCallback === 'function') { + successCallback(newResult); + } + }, + function(result: any) { + console.debug(result); + if (typeof errorCallback === 'function') { + errorCallback(result); + } + } + ); + } + } + }, + /** + * 解析位置信息 + * @param {String} locInfoStr 位置信息,格式:2020-08-13 14:22:33▓113.356552▓22.946032▓中国广东省广州市番禺区北丽园六街◆2020-08-13 14:27:33▓113.356552▓22.946032▓中国广东省广州市番禺区北丽园六街 + * @return {Object} {lng, lat, address} 当前位置信息的经度、纬度、地理位置 + */ + parseLocation(locInfoStr: any) { + let newResult = {}; + if (typeof locInfoStr === 'string') { + let locInfos = locInfoStr.split('◆'); + let curPosition; + if (locInfos.length === 2) { + curPosition = locInfos[1]; + } else { + curPosition = locInfos[0]; + } + // 经度 + (newResult as any).lng = curPosition.split('▓')[1]; + // 维度 + (newResult as any).lat = curPosition.split('▓')[2]; + // 地址 + (newResult as any).address = curPosition.split('▓')[3]; + } + return newResult; + }, + /** + * 检测距离 + * @param {String} curDistance 当前距离 + * @param {String} targerDistance 目标距离 + */ + detectDistance(curDistance: any, targerDistance: any) { + if (curDistance < targerDistance) { + return true; + } + return false; + }, + /** + * 获取两点距离 + * @author liuxiaoyu + * @param {String} curLon 当前经度 + * @param {String} curLat 当前纬度 + * @param {String} oldLon 上次经度 + * @param {String} oldLat 上次纬度 + */ + getLongDistance(curLon: any, curLat: any, oldLon: any, oldLat: any) { + let ew1, + ns1, + ew2, + ns2, + distance, + DEF_PI180 = 0.01745329252, //PI / 180 + DEF_R = 6371003.5; //地球半径 + // 角度转换为弧度 + ew1 = curLon * DEF_PI180; + ns1 = curLat * DEF_PI180; + ew2 = oldLon * DEF_PI180; + ns2 = oldLat * DEF_PI180; + // 求大圆劣弧与球心所夹的角(弧度) + distance = Math.sin(ns1) * Math.sin(ns2) + Math.cos(ns1) * Math.cos(ns2) * Math.cos(ew1 - ew2); + // 调整到[-1..1]范围内,避免溢出 + if (distance > 1.0) distance = 1.0; + else if (distance < -1.0) distance = -1.0; + // 求大圆劣弧长度 + distance = (DEF_R * Math.acos(distance)) / 1000; + return distance.toFixed(2); + }, + /** 格式化金额*/ + formatMoney: function(s: any, split: any) { + if (isNaN(s)) return; + if (typeof s == 'undefined' || s == null || s == '') return ''; + if (s == 0) return '0.00'; + s = parseFloat(s); + if (typeof s != 'number') return ''; + s = s.toFixed(2).toString(); + if (!split) split = ','; + var l = s + .split('.')[0] + .split('') + .reverse(), + r = s.split('.')[1]; + var t = ''; + for (var i = 0; i < l.length; i++) { + t += l[i] + ((i + 1) % 3 == 0 && i + 1 != l.length ? ',' : ''); + } + return ( + t + .split('') + .reverse() + .join('') + + '.' + + r + ); + }, + /**计算年龄 */ + getAge: function(identityCard: any) { + var len = (identityCard + '').length; + if (len == 0) { + return 0; + } else { + if (len != 15 && len != 18) { + //身份证号码只能为15位或18位其它不合法 + return 0; + } + } + var strBirthday = ''; + if (len == 18) { + //处理18位的身份证号码从号码中得到生日和性别代码 + strBirthday = identityCard.substr(6, 4) + '/' + identityCard.substr(10, 2) + '/' + identityCard.substr(12, 2); + } + if (len == 15) { + strBirthday = + '19' + identityCard.substr(6, 2) + '/' + identityCard.substr(8, 2) + '/' + identityCard.substr(10, 2); + } + //时间字符串里,必须是“/” + var birthDate = new Date(strBirthday); + var nowDateTime = new Date(); + var age = nowDateTime.getFullYear() - birthDate.getFullYear(); + //再考虑月、天的因素;.getMonth()获取的是从0开始的,这里进行比较,不需要加1 + if ( + nowDateTime.getMonth() < birthDate.getMonth() || + (nowDateTime.getMonth() == birthDate.getMonth() && nowDateTime.getDate() < birthDate.getDate()) + ) { + age--; + } + return age; + }, + /** + * 16进制转字符串 + * @author zhangmk + * @time 2021年11月17日10:39:58 + */ + hexToString: function(hex: any) { + var encoding = 'utf-8'; + var trimedStr = hex.trim(); + var rawStr = trimedStr.substr(0, 2).toLowerCase() === '0x' ? trimedStr.substr(2) : trimedStr; + var len = rawStr.length; + if (len % 2 !== 0) { + return ''; + } + var curCharCode; + var resultStr = []; + for (var i = 0; i < len; i = i + 2) { + curCharCode = parseInt(rawStr.substr(i, 2), 16); + resultStr.push(curCharCode); + } + // encoding为空时默认为utf-8 + var bytesView = new Uint8Array(resultStr); + var str = new TextDecoder(encoding).decode(bytesView); + return str; + }, + /**ahtuor:pd + * 工商证件类型码值转换 + * 2021年11月25日12:17:24 + */ + + getGScode(code: any) { + const tycode = '202'; //统一信用代码--工商 + const zzcode = '200'; //组织机构代码--工商 + if (code == '26') { + //信贷统一信用代码 + return tycode; + } else if (code == '20') { + //组织机构代码--信贷 + return zzcode; + } else { + return code; + } + }, + + /** + *author:pd + *组装交易编号SvrCode + */ + getSvrCode(tc: any) { + return this.getProdId() + '_' + tc; + }, + /** + *author:pd + *ProdId产品编号 + */ + getProdId() { + const ProdId = 'MCEP'; + return ProdId; + }, + /** + * + *author:zhangmk + *判断是否分支行 + */ + getIfBranch() { + var NO = sessionStorage.getItem('branchNo') || ''; + var array = ['9100', '9200', '9300', '2222', '0000', '9999']; + //从登录返回的数据中获取机构后调整 + if (NO.length == 9) { + NO = NO.substring(5, NO.length); + if (array.indexOf(NO) != -1) { + return false; + } else return true; + } else { + if (NO.substring(0, 4) == '9999') { + return false; + } else { + if (NO.substring(0, 4) == '9999') { + return false; + } else { + return true; + } + } + } + }, + /** + * zhangmingkun + * 2021年12月08日10:39:18 + * 查询树结构内容 + * treedicField:树结构名称: 行业:STD_GB_4754-2011 + * treedicKey: 值 + * 案例:Public.getTreeValue('STD_GB_4754-2002', '0330', function(res) { + console.log(res); + }); + */ + getTreeValue(treedicField: any, treedicKey: any, callback: any) { + let param = { + tc: 'MCEP', + treedictField: treedicField, + treedictKey: treedicKey + }; + InterFaceFactory.transferDataInter(systemApi.treeRq, param).then((res: any) => { + if (res.code == '1') { + let dataDic = res.data; + callback(dataDic); + } + }); + }, + /** + *@Desc 功能描述:根据图片路径将图片转file格式 + *@Author XWH + *Date 2022/2/19 17:29 + */ + imgUrlToFile(imgUrl: any, fileName: string){ + const canvas = document.createElement("canvas"), + ctx = canvas.getContext("2d")!, + img = new Image(); + img.setAttribute("crossOrigin", "*"); + let dataURL = ""; + img.onload = () => { + canvas.height = img.height; + canvas.width = img.width; + ctx.drawImage(img, 0, 0); + dataURL = canvas.toDataURL("image/jpg"); + // console.log(dataURL); //Base64码 一般用这个就行 + return this.base64toFile(dataURL, fileName); + }; + img.src = imgUrl; + }, + /** + *@Desc 功能描述:base64格式图片转file + *@Author XWH + *Date 2022/2/19 17:30 + */ + base64toFile(url: any, fileName: string){ + let arr = url.split(','), //dataUrl是传入的base64格式数据 + mime = arr[0].match(/:(.*?);/)[1], + suffix = mime.split('/')[1], + bstr = atob(arr[1]), + n = bstr.length, + u8arr = new Uint8Array(n); + while(n--){ + u8arr[n] = bstr.charCodeAt(n); + } + let file = new File([u8arr],`${fileName}.${suffix}`,{ //${fileName}为传入的参数,写死为file + type: mime + }); + return file + }, + /** + *@Description 功能描述:根据父id获取菜单 + *@Author XWH + *@Date 2022/1/17 16:21 + */ + getMenuBySuperID(superID: any, menuType: any) { + let menuList: any = sessionStorage.getItem('menuType'), + menuData = JSON.parse(menuList), + menuArr = []; + for (let data of menuData) { + const obj: any = {}; + if (data.menuSupId == superID) { + obj.name = data.frontMenuName; + obj.path = data.menuUrl; + obj.iconName = data.menuIcon; + obj.menuId = data.menuId; + if (data.moveMenuType == menuType) { + if (menuType == 'CommonFunctions' || menuType == 'CommonUpcoming') { + obj.iconName = require('@/assets/images/' + obj.iconName + '.png'); + } else if (menuType == 'secondRow') { + obj.info = '当前待处理'; + obj.num = 0; + } + menuArr.push(obj); + } + } + } + return menuArr; + } +}; +export default Public; diff --git a/public/ts/SMEncryt.ts b/public/ts/SMEncryt.ts new file mode 100644 index 0000000000000000000000000000000000000000..cff30a11a6b76c91101090020dae3ddf7bb55244 --- /dev/null +++ b/public/ts/SMEncryt.ts @@ -0,0 +1,102 @@ +import { NativeUI } from '@/public/ts/NativeUI'; +/** + * AES对称加密工具类 + * @author zhangmk + * @date 2021-11-16 14:13:58 + */ +export default { + /**· + * 数据加密,只在移动设备上生效 + * @param {Object} jsonstr 发送给服务器的数据 + * @return {Object} jsonstr 返回加密后的json数据 + */ + encryptData(jsonstr: any) { + let encryData = {}; + try { + // SM2 加密秘钥 + // SM3 不可逆加密 + // SM4 加密密文 + let sm2 = require('sm-crypto').sm2, + sm3 = require('sm-crypto').sm3, + sm4 = require('sm-crypto').sm4, + publicKey = + '0494FEF4897CF4E9C9CB994B66B29E9B3EAF2C5C59EBEDB703B0F980199CEA7BDBF177AB3E65A17F3E96227977C55423929975CE535B715AC21E0AB23B9858AB4F', //SM2公钥 + sm4Key = this.randomStr(32); + let encrySM2 = sm2.doEncrypt(sm4Key, publicKey, 1); + encrySM2 = '04' + encrySM2; //上送给服务器时需要加’04‘头,如果是服务器解密需要把返回的04头去掉 + let encrySM4 = sm4.encrypt(jsonstr, sm4Key); + let encrySM3 = sm3(jsonstr); + encryData = { + sm4Key: encrySM2, + sm3: encrySM3, + sm4: encrySM4 + }; + } catch (e) { + console.log(e); + NativeUI.toast('数据加密失败'); + } + return encryData; + }, + /** + * 数据解密,只在移动设备上生效 + * @param {String} jsonstr 服务器返回json数据 + * @return {Object} jsonstr 返回解密后的json数据 + * { + * data: { + * sm4key: + * sm4: + * sm3: + * } + * msg: + * code: 1 + * } + */ + decodeData(jsonData: any) { + if (typeof jsonData != 'object') { + jsonData = JSON.parse(jsonData); + } + try { + let sm2 = require('sm-crypto').sm2, + sm3 = require('sm-crypto').sm3, + sm4 = require('sm-crypto').sm4, + privateKey = '7666A8CA12A27CF6C440A1CFECB4B1BB7055F2FB3435E957EB35142FAB881EFB', //SM2公钥 + sm4Key = '', + orSm4Key = jsonData.sm4key; + orSm4Key = orSm4Key.substr(2, orSm4Key.length - 2); + sm4Key = sm2.doDecrypt(orSm4Key, privateKey, 1); + let dencrySM4 = sm4.decrypt(jsonData.sm4, sm4Key); + if (dencrySM4.indexOf('€') != -1) { + let dencrySM4Arr = dencrySM4.split('€'); + dencrySM4 = dencrySM4Arr[0]; + } + // dencrySM4 = Public.hexToString(dencrySM4); + dencrySM4.trim(); + let sm3Entry = sm3(dencrySM4); + if (sm3Entry == jsonData.sm3) { + jsonData = dencrySM4; + } + } catch (e) { + NativeUI.toast('数据解密失败'); + } + if (typeof jsonData == 'object') { + return JSON.parse(jsonData); + } else { + return jsonData; + } + }, + /** + * 生成随机数 + * zhangmk + * 2021年11月16日19:31:14*/ + randomStr(length: any) { + let strArr = '0123456789qwertyuiopasdfghjklzxcvbnm', + result = '', + max = 33, + min = 0; + for (let item = 0; item < length; item++) { + let solt = Math.floor(Math.random() * (max - min) + min); + result = result + strArr[solt]; + } + return result; + } +}; diff --git a/public/ts/date.util.ts b/public/ts/date.util.ts new file mode 100644 index 0000000000000000000000000000000000000000..084f5a7601101365997be95dc083e59ae317411f --- /dev/null +++ b/public/ts/date.util.ts @@ -0,0 +1,57 @@ +/** + * 格式化日期 + * @param {(Object|string|number)} time + * @param {string} cFormat + * @returns {string} + */ +export function formatDate(time: any, cFormat?: any) { + if (arguments.length === 0) { + return null; + } + const format = cFormat || '{y}-{m}-{d}'; + let date; + if (typeof time === 'object') { + date = time; + } else { + if (typeof time === 'string' && /^[0-9]+$/.test(time)) { + time = parseInt(time); + } + if (typeof time === 'number' && time.toString().length === 10) { + time = time * 1000; + } + date = new Date(time); + } + const formatObj = { + y: date.getFullYear(), + m: date.getMonth() + 1, + d: date.getDate(), + h: date.getHours(), + i: date.getMinutes(), + s: date.getSeconds(), + a: date.getDay() + }; + const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result: any, key: any) => { + let value = formatObj[key]; + // Note: getDay() returns 0 on Sunday + if (key === 'a') { + return ['日', '一', '二', '三', '四', '五', '六'][value]; + } + if (result.length > 0 && value < 10) { + value = '0' + value; + } + return value || 0; + }); + return time_str; +} + +export function forTime(time: any) { + if (time != '') { + let year = time.substring(0, 4); + let mon = time.substring(4, 6); + let day = time.substring(6, 8); + + return year + '-' + mon + '-' + day; + } else { + return time; + } +} diff --git a/public/ts/money.util.ts b/public/ts/money.util.ts new file mode 100644 index 0000000000000000000000000000000000000000..9080f547d558ab154d73b8ab485921a3c6164d22 --- /dev/null +++ b/public/ts/money.util.ts @@ -0,0 +1,145 @@ +/** + * @Description: 千分位转换 + * @author cr + * @param {Number} value 金额 + * @param {Number} decimal 要保留的小数位,默认两位 + * @date 2020/4/18 + * @time 12:05 + */ +export function formatMoney(value: any, decimal: any) { + const _decimal = decimal || 2; + let number = toDecimal(value, _decimal); + number = executeLcommafy(number); + if (value === '' || (value == null && value !== 0)) { + return ''; + } + return number; +} +/** + * 将金额转为万元(一万)(小数) + * @param amount String 金额 + */ +export function toMillion(amount: any) { + amount = amount || 0; + amount = (parseFloat(amount) / 10000).toFixed(2); + var chararr = []; //用来存储金额字符串中的每一个字符 + var rlength = amount.indexOf(".") > 0 ? amount.indexOf(".") : amount.length; //如果有小数点,则只考虑小数点之前的数字进行处理 + for (let i = 0; i < amount.length; i++) { + if ((rlength - i > 0) && ((rlength - i) % 3 == 0) && (i != 0)) { + //长度减索引表示实际要处理字符串倒序的序号,如果能整除3则在前加逗号 + chararr.push(','); + } + chararr.push(amount.charAt(i)); + } + return chararr.join(''); //join方法重新将字符串数组拼接成字符串 +} + +/** + * @Description: 加千分位 + * @author cr + * @date 2020/4/18 + * @time 12:12 + */ +function executeLcommafy(val: any) { + if (!val || !isNumber(val)) { + return ''; + } + if (isNumber(val)) { + val = val.toString(); + } + if (/^.*\..*$/.test(val)) { + const pointIndex = val.lastIndexOf('.'); + let intPart = val.substring(0, pointIndex); + const pointPart = val.substring(pointIndex + 1, val.length); + intPart = intPart + ''; + let re = /(-?\d+)(\d{3})/; + while (re.test(intPart)) { + intPart = intPart.replace(re, '$1,$2'); + } + val = intPart + '.' + pointPart; + } else { + var re = /(-?\d+)(\d{3})/; + while (re.test(val)) { + val = val.replace(re, '$1,$2'); + } + } + return val; +} + +/** + * @Description: 保留小数位数 + * @author cr + * @date 2020/4/18 + * @time 12:01 + */ +function toDecimal(value: any, decimal: any) { + if (isNumber(value)) { + if (isNumber(decimal)) { + return roundFixed(value, decimal); + } else { + return value; + } + } else { + return null; + } +} +/** + * @Description: 检测是否为数字 + * @author cr + * @date 2020/4/18 + * @time 12:01 + */ +function isNumber(val: any) { + let regPos = /^\d+(\.\d+)?$/; //非负浮点数 + let regNeg = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; //负浮点数 + return regPos.test(val) || regNeg.test(val); +} + +/** + * @Description: 四舍五入 + * @author cr + * @date 2020/4/18 + * @time 12:02 + */ +function roundFixed(num: any, fixed: any) { + let pos = num.toString().indexOf('.'); + let decimal_places = num.toString().length - pos - 1; + let _int = num * Math.pow(10, decimal_places); + let divisor_1 = Math.pow(10, decimal_places - fixed); + let divisor_2 = Math.pow(10, fixed); + const value = Math.round(_int / divisor_1) / divisor_2; + return prefixZero(value, fixed); +} + +/** + * @Description: 精度 + * @author cr + * @date 2020/4/18 + * @time 12:03 + */ +function prefixZero(value: any, num: any) { + let a, b, c, i; + a = value.toString(); + b = a.indexOf('.'); + c = a.length; + if (num === 0) { + if (b !== -1) { + a = a.substring(0, b); + } + } else { + /*如果没有小数点*/ + if (b === -1) { + a = a + '.'; + for (i = 1; i <= num; i++) { + a = a + '0'; + } + } else { + /*有小数点,超出位数自动截取,否则补0*/ + a = a.substring(0, b + num + 1); + for (i = c; i <= b + num; i++) { + a = a + '0'; + } + } + } + return a; +} diff --git a/router/SelfHelpLoan.routing.ts b/router/SelfHelpLoan.routing.ts new file mode 100644 index 0000000000000000000000000000000000000000..e7020e86868ae5235b6a19a027a661b054958799 --- /dev/null +++ b/router/SelfHelpLoan.routing.ts @@ -0,0 +1,23 @@ +/* +* @Author wangliang +* @date 20220729 +*/ +import {propsConvert} from "@/services/props-convert"; + +const selfHelpLoanRoutes = [ + { + path: `/SelfHelpLoan`, + name: "SelfHelpLoan", + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "自助贷款"}, + component: () => import("@/views/SelfHelpLoan/SelfHelpLoan.vue"), + }, + { + path: `/ApplyResult`, + name: "ApplyResult", + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "申请结果"}, + component: () => import("@/views/SelfHelpLoan/ApplyResult.vue"), + }, +]; +export default selfHelpLoanRoutes; diff --git a/router/customer.mgt.routing.ts b/router/customer.mgt.routing.ts new file mode 100644 index 0000000000000000000000000000000000000000..a45ba46dcd7f3868e4ccdd44b01fb2889460c447 --- /dev/null +++ b/router/customer.mgt.routing.ts @@ -0,0 +1,371 @@ +import { propsConvert } from "@/services/props-convert"; + +const prefix = "/customer-mgt"; + +const customerRoutes = [ + // { + // path: `/TYMHView`, + // name: 'TYMHView', + // component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/authentication/TYMHView.vue"), + // props: propsConvert, + // meta: { keepAlive: false, requiresAuth: true, name: "统一门户" }, + // }, + { + path: `${prefix}/index`, + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/CustomerMgtView.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "工作台" }, + }, + { + path: `${prefix}/AddUserView`, + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/AddUserView.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "新增客户" }, + }, + { + path: `${prefix}/customer-info/customer-information-registration/customer-information-registration`, + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/customer-information-registration/CustomerInformationRegistration.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "客户信息预登记" }, + }, + { + path: "/Overview", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/business-information/Overview.vue"), + props: propsConvert, + meta: {requiresAuth: true, name: "基本信息" }, + }, + { + path: "/InfoChangeHistory", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/business-information/InfoChangeHistory.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "基本信息变动历史" }, + }, + { + path: `${prefix}/customer-info/business-information/risk-information`, + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/business-information/RiskInformation.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "风险信息" }, + }, + { + path: "/EquityPledgeAndMovablePropertyPledge", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/business-information/EquityPledgeAndMovablePropertyPledge.vue"), + props: propsConvert, + meta: { requiresAuth: true, name: "股权出质及动产质押" }, + }, + { + path: "/AnnualReport", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/business-information/AnnualReport.vue"), + props: propsConvert, + meta: { requiresAuth: true, name: "年报" }, + }, + { + path: "/Judgment", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/Operating-risk-information/Judgment.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "裁判文书" }, + }, + { + path: "/JudgmentDetail", + name: "JudgmentDetail", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/Detail/JudgmentDetail.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "裁判文书详情" }, + }, + { + path: "/FYGGDetail", + name: "FYGGDetail", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/Detail/FYGGDetail.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "法院公告详情" }, + }, + { + path: "/FYGGList", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/Operating-risk-information/FYGGList.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "法院公告" }, + }, + { + path: "/CFXXList", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/Operating-risk-information/CFXXList.vue"), + props: propsConvert, + meta: { requiresAuth: true, name: "处罚信息" }, + }, + { + path: "/ClearInformation", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/Operating-risk-information/ClearInformation.vue"), + props: propsConvert, + meta: { requiresAuth: true, name: "工商-清算" }, + }, + { + path: "/LSBGView", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/Operating-risk-information/LSBGView.vue"), + props: propsConvert, + meta: { requiresAuth: true, name: "工商-历史变更" }, + }, + { + path: "/YCJYMLView", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/Operating-risk-information/YCJYMLView.vue"), + props: propsConvert, + meta: { requiresAuth: true, name: "工商-异常经营名录" }, + }, + { + path: "/ExecutedPerson", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/Operating-risk-information/ExecutedPerson.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "被执行人" }, + }, + { + path: "/InformationOfThePersonSubjectToExecutionDetail", + name: "InformationOfThePersonSubjectToExecutionDetail", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/Detail/InformationOfThePersonSubjectToExecutionDetail.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "被执行人详情" }, + }, + { + path: "/InformationOfUntrustworthyPersonSubjectToEnforcementDetail", + name: "InformationOfUntrustworthyPersonSubjectToEnforcementDetail", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/Detail/InformationOfUntrustworthyPersonSubjectToEnforcementDetail.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "失信被执行人详情" }, + }, + { + path: "/CourtAnnouncement", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/Operating-risk-information/CourtAnnouncement.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "开庭公告" }, + }, + { + path: "/AnnouncementInformationDetail", + name: "AnnouncementInformationDetail", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/Detail/AnnouncementInformationDetail.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "开庭公告详情" }, + }, + { + path: "/CaseProcess", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/Operating-risk-information/CaseProcess.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "案件流程" }, + }, + { + path: "/CaseFlowInformationDetail", + name: "CaseFlowInformationDetail", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/Detail/CaseFlowInformationDetail.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "案件流程详情" }, + }, + { + path: "/ExposureTable", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/Operating-risk-information/ExposureTable.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "曝光台" }, + }, + { + path: "/ExposureTableInformationDetail", + name: "ExposureTableInformationDetail", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/Detail/ExposureTableInformationDetail.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "曝光台详情" }, + }, + { + path: "/JudicialDeduction", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/Operating-risk-information/JudicialDeduction.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "司法查冻扣" }, + }, + { + path: "/JudicialFrozenDeductionInformationDetail", + name: "JudicialFrozenDeductionInformationDetail", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/Detail/JudicialFrozenDeductionInformationDetail.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "司法查冻扣详情" }, + }, + { + path: "/PublicOpinionInformation", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/Operating-risk-information/PublicOpinionInformation.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "舆情信息" }, + }, + { + path: "/EnterpriseMap", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/relationship-graph/EnterpriseMap.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "企业图谱" }, + }, + { + path: "/RelatedParty", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/relationship-graph/RelatedParty.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "关联方" }, + }, + { + path: "/FroupAndEconomicDependenceInformation", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/relationship-graph/FroupAndEconomicDependenceInformation.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "集团及经济依存信息" }, + }, + { + path: "/GuaranteeView", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/relationship-graph/GuaranteeView.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "担保视图" }, + }, + { + path: "/ApplicationStatus", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/business-application-status/ApplicationStatus.vue"), + props: propsConvert, + meta: { requiresAuth: true, name: "客户及所在集团在我行在途业务申请情况" }, + }, + { + path: "/CreditStatusOfClientExecutives", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/business-application-status/CreditStatusOfClientExecutives.vue"), + props: propsConvert, + meta: { requiresAuth: true, name: "客户高管授信情况" }, + }, + { + path: "/CustomerContribution", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/business-application-status/CustomerContribution.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "综合收益率" }, + }, + { + path: "/TrialEntry", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/business-application-status/TrialEntry.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "综合收益率试算" }, + }, + { + path: `${prefix}/customer-info/business-application-status/customer-management-information`, + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/business-application-status/CustomerManagementInformation.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "客户经营信息" }, + }, + { + path: "/CustomerPreliminaryScreeningHistory", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/business-application-status/CustomerPreliminaryScreeningHistory.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "客户初筛历史" }, + }, + { + path: "/CustomerRatings", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/business-application-status/CustomerRatings.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "客户近三年评级情况" }, + }, + { + path: "/FinancialInformation", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/business-application-status/FinancialInformation.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "财务信息" }, + }, + { + path: "/FinancialInfoDetail", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/business-application-status/FinancialInfoDetail.vue"), + props: propsConvert, + meta: { requiresAuth: true, name: "财务信息" }, + }, + { + path: "/CompanyPolicy", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/business-application-status/CompanyPolicy.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "公司章程" }, + }, + { + path: "/StockInformation", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/business-application-status/StockInformation.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "股票信息" }, + }, + { + path: "/UnifiedCustomerCreditView", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/business-application-status/UnifiedCustomerCreditView.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "客户统一授信视图" }, + }, + { + path: "/ProjectInfo", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/business-application-status/ProjectInfo.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "项目信息" }, + }, + /*个人详情*/ + { + path: `/PersonalDetails`, + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/PersonalDetails.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "个人详情" }, + }, + { + path: `/PersonalProfiles`, + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/personal-information/PersonalProfiles.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "个人概况" }, + }, + { + path: `/FamilyFinancialInformation`, + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/personal-information/FamilyFinancialInformation.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "家庭资产及财务信息" }, + }, + { + path: `/Employer`, + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/personal-information/Employer.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "工作单位" }, + }, + { + path: `/CreditDetails`, + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/personal-information/CreditDetails.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "授信一览" }, + }, + /*对公客户详情*/ + { + // path: `${prefix}/company-details`, + path: "/CompanyDetails", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/CompanyDetails.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "客户详情" }, + }, + // 风险预警信息 + { + path: "/RiskWarning", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/risk-summary/RiskWarning.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "风险预警" }, + }, + //预警详情信息 + { + path: "/RiskWarningItemDetail", + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/risk-summary/RiskWarningItemDetail.vue"), + props: propsConvert, + meta: {requiresAuth: true, name: "预警详情信息" }, + }, + { + path: `${prefix}/customer-info/history-information/customer-tagHistory`, + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/history-information/CustomerTagHistory.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "客户标签历史" }, + }, + { + path: `${prefix}/timeLine/customer-info/time-line/company-timeline`, + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/timeLine/CompanyTimeLine.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "企业时光轴" }, + }, + + { + path: `${prefix}/timeLine/customer-info/time-line/enterprise-timeline`, + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/customer-mgt/customer-info/timeLine/MarketTimeLine.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "营销时光轴" }, + }, + // { + // path: `/MarketStatisticsDetail`, + // name: 'MarketStatisticsDetail', + // component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/authentication/MarketStatisticsDetail.vue"), + // props: propsConvert, + // meta: { keepAlive: false, requiresAuth: true, name: "营销统计详情" }, + // }, +]; +export default customerRoutes; diff --git a/router/depositInterestTrial.routing.ts b/router/depositInterestTrial.routing.ts new file mode 100644 index 0000000000000000000000000000000000000000..42013a3aab5c435fdbce08aa4311c6e7e2cb75f7 --- /dev/null +++ b/router/depositInterestTrial.routing.ts @@ -0,0 +1,43 @@ +/** + * @Author wangliang + * @date 20220726 + */ +import { propsConvert } from "@/services/props-convert"; +const depositInterestTrialRoutes = [ + { + path: `/DepositInterestTrial`, + name: 'DepositInterestTrial', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/DepositInterestTrial/DepositInterestTrial.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "存款利息试算" }, + }, + { + path: `/CountResult`, + name: 'CountResult', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/DepositInterestTrial/CountResult.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "试算结果" }, + }, + { + path: `/CountResultB`, + name: 'CountResultB', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/DepositInterestTrial/CountResultB.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "试算结果" }, + }, + { + path: `/DepositRate`, + name: 'DepositRate', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/DepositInterestTrial/DepositRate.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "存款利率" }, + }, + { + path: `/RepayPlan`, + name: 'RepayPlan', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/DepositInterestTrial/RepayPlan.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "还款计划" }, + }, +]; +export default depositInterestTrialRoutes; diff --git a/router/index.ts b/router/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..1ef88764fc7e2b19721a9f7cd12731b27d174a1c --- /dev/null +++ b/router/index.ts @@ -0,0 +1,80 @@ +/* + * @Author: jiangzaicheng jiangzaicheng_jzc@163.com + * @Date: 2022-07-04 15:41:06 + * @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com + * @LastEditTime: 2022-08-18 13:50:06 + * @FilePath: \mcep-h5\src\router\index.ts + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ +import Vue from "vue"; +import VueRouter, { Route, RouteConfig } from "vue-router"; +import { Code } from "@/constants/enum/general/code.enum"; + +// import mainRoutes from "@/router/main.routing"; +// import customerRoutes from "@/router/customer.mgt.routing"; +// import marketingRoutes from "@/router/marketing.mgt.routing"; +import workbenchRoutes from "@/router/workbench.routing"; +import loginRoutes from "./login.mgt.routing"; +import productRoutes from "./product.mgt.routing"; +import mypageRoutes from "./mypage.mgt.routing"; +import depositInterestTrialRoutes from "@/router/depositInterestTrial.routing"; +import manageMoneyProductRoutes from "@/router/manageMoneyProduct.routing"; +import selfHelpLoanRoutes from "@/router/SelfHelpLoan.routing"; + + + +Vue.use(VueRouter); + +const routes: Array = [ + { + path: "/", + redirect: `/login`, + meta: { keepAlive: true, requiresAuth: true }, + }, + { + path: "/login", + name:"login", + component: () => import(/* webpackChunkName: "login" */ "@/views/authentication/LoginView.vue"), + //component: () => import(/* webpackChunkName: "login" */ "@/components/common/Tool.vue"), + meta: { keepAlive: true, requiresAuth: true }, + }, + //...mainRoutes, + // ...customerRoutes, + // ...marketingRoutes, + ...workbenchRoutes, + ...loginRoutes, + ...productRoutes, + ...mypageRoutes, + ...depositInterestTrialRoutes, + ...manageMoneyProductRoutes, + ...selfHelpLoanRoutes, +]; + +const router = new VueRouter({ + mode: "hash", + base: process.env.VUE_APP_BASEURL, + routes, +}); + +router.beforeEach((to: Route, from: Route, next: () => void) => { + // router.app.$routeTopologyService.checkAndInit(router); + // if (to.matched.some((record: any) => record.meta && record.meta.requiresAuth)) { + // router.app.$oauthService + // .checkAndLogin() + // .then((res: RestfulResponse) => { + // if (res.code === Code.SUCCESS.code) { + // router.app.$globalStateService.isLogin = true; + // } + // return Promise.resolve(res); + // }) + // .then((res: any) => { + // if (res.code === Code.SUCCESS.code) { + // next(); + // } + // }); + // } else { + // next(); + // } + next(); +}); +export default router; diff --git a/router/login.mgt.routing.ts b/router/login.mgt.routing.ts new file mode 100644 index 0000000000000000000000000000000000000000..ddbb26973709ba6120014b6e579cde82ac501e68 --- /dev/null +++ b/router/login.mgt.routing.ts @@ -0,0 +1,44 @@ +/* + * @Author: jiangzaicheng jiangzaicheng_jzc@163.com + * @Date: 2022-07-05 10:08:57 + * @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com + * @LastEditTime: 2022-08-18 13:42:05 + * @FilePath: \mcep-h5\src\router\login.mgt.routing.ts + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ +import { propsConvert } from "@/services/props-convert"; + +// const prefix = "/login"; + +const loginRoutes = [ + { + path: `/ForgetPass`, + name: 'ForgetPass', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/login/ForgetPassView.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "忘记密码" }, + }, + { + path: `/Register`, + name: 'Register', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/login/Register.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "注册" }, + }, + { + path: `/Mianview`, + name: 'Mianview', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/main/MainView.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "主页" }, + } + ,{ + path: `/LoginByID`, + name: 'LoginByID', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/authentication/LoginByID.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "主页" }, + } + +] +export default loginRoutes; diff --git a/router/main.routing.ts b/router/main.routing.ts new file mode 100644 index 0000000000000000000000000000000000000000..8639c4f2ba8cc1d922adc1820991fce5561e9231 --- /dev/null +++ b/router/main.routing.ts @@ -0,0 +1,65 @@ +/* + * @Author: jiangzaicheng jiangzaicheng_jzc@163.com + * @Date: 2022-07-05 14:43:17 + * @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com + * @LastEditTime: 2022-07-20 10:28:29 + * @FilePath: \mcep-h5\src\router\main.routing.ts + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ +import { propsConvert } from "@/services/props-convert"; + +const prefix = "/main"; + +const mainRoutes = [ + { + path: `${prefix}`, + // redirect: `${prefix}/workbench`, + redirect: `${prefix}/PersonalMgtView`, + meta: { keepAlive: true, requiresAuth: true }, + }, + { + path: `${prefix}`, + component: () => import(/* webpackChunkName: "main" */ "@/views/main/MainView.vue"), + props: propsConvert, + children: [ + { + path: `workbench`, + component: () => import(/* webpackChunkName: "main" */ "@/views/workbench/WorkbenchView.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true }, + }, + { + path: `CustomerMgtView`, + component: () => import(/* webpackChunkName: "main" */ "@/views/customer-mgt/CustomerMgtView.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true }, + }, + // { + // path: `PersonalMgtView`, + // component: () => import(/* webpackChunkName: "main" */ "@/views/customer-mgt/PersonalMgtView.vue"), + // props: propsConvert, + // meta: { keepAlive: false, requiresAuth: true }, + // }, + { + path: `marketing-mgt`, + component: () => import(/* webpackChunkName: "main" */ "@/views/marketing-mgt/personal/MarketingMgtView.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true }, + }, + { + path: "/ComMarketingPool", + component: () => import(/* webpackChunkName: "main" */ "@/views/marketing-mgt/company/ComMarketingPool.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true }, + }, + ], + meta: { requiresAuth: true, name: "应用首页", keepAlive: true }, + }, + // { + // path: `${prefix}/self-stats`, + // component: () => import(/* webpackChunkName: "main" */ "@/views/main/PersonalStatsView.vue"), + // props: propsConvert, + // meta: { requiresAuth: true, name: "个人业务汇总", keepAlive: true }, + // }, +]; +export default mainRoutes; diff --git a/router/manageMoneyProduct.routing.ts b/router/manageMoneyProduct.routing.ts new file mode 100644 index 0000000000000000000000000000000000000000..f43f1b83a6d2578883ebbc9d25c464723789275c --- /dev/null +++ b/router/manageMoneyProduct.routing.ts @@ -0,0 +1,20 @@ +import {propsConvert} from "@/services/props-convert"; + +const manageMoneyProductRoutes = [ + { + path: `/ManageMoneyProduct`, + name: 'ManageMoneyProduct', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/ManageMoneyProduct/ManageMoneyProduct.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "理财产品" }, + }, + { + path: `/ManageProductDetail`, + name: 'ManageProductDetail', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/ManageMoneyProduct/ManageProductDetail.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "理财产品详情" }, + }, +]; + +export default manageMoneyProductRoutes; diff --git a/router/marketing.mgt.routing.ts b/router/marketing.mgt.routing.ts new file mode 100644 index 0000000000000000000000000000000000000000..a189fa74d1cdf6f30a87db331f5aa0505b9ef763 --- /dev/null +++ b/router/marketing.mgt.routing.ts @@ -0,0 +1,82 @@ +import { propsConvert } from "@/services/props-convert"; + +const prefix = "/marketing-mgt"; + +const marketingRoutes = [ + { + path: `${prefix}/index`, + component: () => import(/* webpackChunkName: "marketing" */ "@/views/marketing-mgt/personal/MarketingMgtView.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "工作台" }, + }, + //对公营销管理 + { + path: "/ComMarketingPool", + component: () => import(/* webpackChunkName: "marketing" */ "@/views/marketing-mgt/company/ComMarketingPool.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "对公营销管理" }, + }, + { + path: `${prefix}/add-marketing`, + component: () => import(/* webpackChunkName: "marketing" */ "@/views/marketing-mgt/AddMarketing.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "添加营销" }, + }, + { + path: "/MarketingMap", + component: () => import(/* webpackChunkName: "marketing" */ "@/views/marketing-mgt/personal/MarketingMap.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "营销地图" }, + }, + { + path: "/MarketingList", + component: () => import(/* webpackChunkName: "marketing" */ "@/views/marketing-mgt/personal/MarketingList.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "营销列表" }, + }, + { + path: "/JHDBDetail", + name: "JHDBDetail", + component: () => import(/* webpackChunkName: "marketing" */ "@/views/marketing-mgt/personal/JHDBDetail.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "个人上门营销详情" }, + }, + { + path: "/AddMarketPlan", + component: () => import(/* webpackChunkName: "marketing" */ "@/views/marketing-mgt/personal/AddMarketPlan.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "新增营销计划" }, + }, + { + path: `${prefix}/market-plan`, + component: () => import(/* webpackChunkName: "marketing" */ "@/views/marketing-mgt/MarketPlan.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "营销计划" }, + }, + + { + path: `${prefix}/do-market-byphone`, + component: () => import(/* webpackChunkName: "marketing" */ "@/views/marketing-mgt/DoingMarketByPhone.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "电话营销详情" }, + }, + { + path: `${prefix}/accurate-visitor`, + component: () => import(/* webpackChunkName: "marketing" */ "@/views/marketing-mgt/AccurateVisitors.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "精准访客汇报" }, + }, + { + path: `${prefix}/accurate-customer`, + component: () => import(/* webpackChunkName: "marketing" */ "@/views/marketing-mgt/AccurateCustomer.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "精准客户入围申报" }, + }, + { + path: `${prefix}/put-reserve`, + component: () => import(/* webpackChunkName: "marketing" */ "@/views/marketing-mgt/PutInReserve.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "小微线条" }, + }, +]; +export default marketingRoutes; diff --git a/router/mypage.mgt.routing.ts b/router/mypage.mgt.routing.ts new file mode 100644 index 0000000000000000000000000000000000000000..c6a6744ef5839cb39457890cf51b3b6c02de33ec --- /dev/null +++ b/router/mypage.mgt.routing.ts @@ -0,0 +1,23 @@ +/* + * @Author: jiangzaicheng jiangzaicheng_jzc@163.com + * @Date: 2022-07-05 10:08:57 + * @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com + * @LastEditTime: 2022-07-14 13:59:10 + * @FilePath: \mcep-h5\src\router\login.mgt.routing.ts + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ +import { propsConvert } from "@/services/props-convert"; + + +const mypageRoutes = [ + { + path: `/level`, + name: 'level', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/MyView/LevelSent.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "产品详情" }, + } + + +] +export default mypageRoutes; diff --git a/router/product.mgt.routing.ts b/router/product.mgt.routing.ts new file mode 100644 index 0000000000000000000000000000000000000000..ed95857f205666ad0a4c16d8107419a8e1ff371b --- /dev/null +++ b/router/product.mgt.routing.ts @@ -0,0 +1,64 @@ +/* + * @Author: jiangzaicheng jiangzaicheng_jzc@163.com + * @Date: 2022-07-05 10:08:57 + * @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com + * @LastEditTime: 2022-07-28 14:56:01 + * @FilePath: \mcep-h5\src\router\login.mgt.routing.ts + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ +import { propsConvert } from "@/services/props-convert"; + + +const productRoutes = [ + { + path: `/product`, + name: 'product', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/ProductDetail/ProductDetails.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "产品详情" }, + }, + { + path: `/Recognition`, + name: 'Recognition', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/recognition/Recognition.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "实名认证" }, + }, + { + path: `/Agreement`, + name: 'Agreement', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/recognition/Agreement.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "服务协议" }, + }, + { + path: `/recognition`, + name: 'recognition', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/recognition/FaceRecognition.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "人脸识别" }, + }, + { + path: `/facesuccess`, + name: 'facesuccess', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/recognition/FaceSuccess.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "人脸识别成功 " }, + }, + { + path: `/intention`, + name: 'intention', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/recognition/Intention.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "立即申请" }, + }, { + path: `/LinSuccess`, + name: 'LinSuccess', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/recognition/LinSuccess.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "申请结果" }, + }, + + +] +export default productRoutes; diff --git a/router/workbench.routing.ts b/router/workbench.routing.ts new file mode 100644 index 0000000000000000000000000000000000000000..cb99373277a1b35db8051eeba014d2d0f75e5d04 --- /dev/null +++ b/router/workbench.routing.ts @@ -0,0 +1,112 @@ +/* + * @Author: jiangzaicheng jiangzaicheng_jzc@163.com + * @Date: 2022-07-22 15:33:25 + * @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com + * @LastEditTime: 2022-09-03 13:04:13 + * @FilePath: \mcep-h5\src\router\workbench.routing.ts + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ +import { propsConvert } from "@/services/props-convert"; + +const prefix = "/workbench"; + +const workbenchRoutes = [ + { + path: `/PersonLod`, + name: 'PersonLod', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/workbench/PersonLod.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "主页" }, + }, + { + path: `/modifyInfo`, + name: 'modifyInfo', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/workbench/modifyInfo.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "修改信息" }, + }, + { + path: `/businessProgress`, + name: 'businessProgress', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/workbench/businessProgress.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "业务进度" }, + }, + + + { + path: `/modifyPassword`, + name: 'modifyPassword', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/workbench/modifyPassword.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "修改密码" }, + }, + + + { + path: `/AccommodMain`, + name: 'AccommodMain', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/workbench/AccommodMain.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "贷款主页" }, + }, + { + path: `/Accommodation`, + name: 'Accommodation', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/workbench/Accommodation.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "贷款信息" }, + }, + { + path: `/AccommodDetails`, + name: 'AccommodDetails', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/workbench/AccommodDetails.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "贷款详情" }, + }, + { + path: `/Repaymentlond`, + name: 'Repaymentlond', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/workbench/Repayment.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "还款计划" }, + }, + { + path: `/Growth`, + name: 'Growth', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/workbench/Growth.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "成长值" }, + }, + { + path: `/CooperationBusiness`, + name: 'CooperationBusiness', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/workbench/CooperationBusiness.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "合作企业" }, + }, + { + path: `/ExchangeRecord`, + name: 'ExchangeRecord', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/workbench/ExchangeRecord.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "兑换记录" }, + }, + { + path: `/ExchangeDetail`, + name: 'ExchangeDetail', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/workbench/ExchangeDetail.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "兑换详情" }, + }, + { + path: `/AccommodDetailslogin`, + name: 'AccommodDetailslogin', + component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/workbench/AccommodDetailslogin.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "兑换详情" }, + }, + + +]; +export default workbenchRoutes; diff --git a/services/api.service.ts b/services/api.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..25c7ee92de6c7e86f1ba63908e96b123123f8679 --- /dev/null +++ b/services/api.service.ts @@ -0,0 +1,458 @@ +import Vue from "vue"; +import axios, { AxiosRequestConfig } from "axios"; +import VueAxios from "vue-axios"; +import { MethodType } from "@/constants/enum/general/method-type.enum"; +import { HeaderType } from "@/constants/enum/general/header-type.enum"; +import { statusCode } from "@/constants/enum/general/status-code.enum"; +import { tokenStore } from "@/stores/index"; +import { NativeUI } from '@/public/ts/NativeUI'; +import SMUtil from '@/public/ts/SMEncryt'; +import { Code } from "@/constants/enum/general/code.enum"; +import router from "@/router"; +// import emUtil from '../js/em.util'; + +interface Query { + [key: string]: any; +} + +/** + * @description: REST请求服务 + * @author ChenRui + * @date 2020/7/29 18:45 + */ +class ApiService { + /** + * @description: 初始化 + * @author ChenRui + * @date 2020/8/29 23:36 + */ + init() { + Vue.use(VueAxios, axios); +//http request 拦截器 + Vue.axios.interceptors.request.use( + config => { + config.headers['Access-Control-Allow-Origin'] = '*'; + + if(!config.headers['Content-Type']){ + config.headers['Content-Type'] = 'application/json; charset=utf-8'; + } + const token = sessionStorage.getItem('accessToken'); + if (token && token != '') { + config.headers.Authorization = 'bearer ' + token; + } + return Promise.resolve(config); + }, + error => { + console.error(error); + return Promise.reject(error); + } + ); + + const requestConfig: any = this.createBasicHeaders(); + Object.keys(requestConfig.headers).forEach(function (key) { + Vue.axios.defaults.headers.common[key] = requestConfig.headers[key]; + }); + Vue.axios.interceptors.request.use( + (config) => { + // Do something before request is sent + // if (this.verificationToken(config)) { + // return Promise.resolve(config); + // } else { + // return oauthService.refreshToken().then((response: RestfulResponse) => { + // if (response) { + // config.headers.Authorization = "bearer " + tokenStore.token?.access_token; + // config.headers["user-identity"] = "bearer " + tokenStore.token?.jti; + // return config; + // } else { + // return oauthService.logOut().then(); + // } + // }); + // } + return Promise.resolve(config); + }, + (error) => { + // Do something with request error + console.log("Do something with request error"); + return Promise.reject(error); + } + ); + } + + /** + * @description: 创建基础消息头 + * @author ChenRui + * @date 2020/8/28 15:18 + */ + createBasicHeaders(): any { + return { + headers: { + "Content-Type": "application/json", + Accept: "application/json", + }, + }; + } + + /** + * @description: 创建认证消息头 + * @author ChenRui + * @date 2020/8/28 15:18 + */ + createAuthHeaders(): any { + return { + headers: { + Authorization: "bearer " + tokenStore.token?.access_token, + "user-identity": tokenStore.token?.jti, + "Content-Type": "application/json", + Accept: "application/json", + }, + }; + } + + /** + * @description: 创建上传认证消息头 + * @author ChenRui + * @date 2021/4/6 11:17 + */ + createFileUploadAuthorizationHeader() { + return { + headers: { + Accept: "application/json", + Authorization: "bearer " + tokenStore.token?.access_token, + "user-identity": tokenStore.token?.jti, + "Content-type": "application/x-www-form-urlencoded" + }, + }; + } + + /** + * @description: 创建认证下载消息头 + * @author ChenRui + * @date 2020/8/28 15:18 + */ + createFileDownloadAuthorizationHeader() { + return { + headers: { + "Content-Type": "application/json", + Authorization: "bearer " + tokenStore.token?.access_token, + "user-identity": tokenStore.token?.jti, + }, + responseType: "blob", + }; + } + /** + * @param headerType + * @param headerConfig + */ + getRequestConfig(headerType: any, requestConfig: any) { + requestConfig = requestConfig || {}; + let requestConfigBase = {}; + switch (headerType) { + case HeaderType.BASE.code: + requestConfigBase = this.createBasicHeaders(); + break; + case HeaderType.AUTH.code: + requestConfigBase = this.createAuthHeaders(); + break; + case HeaderType.UPLOAD_AUTH.code: + requestConfigBase = this.createFileUploadAuthorizationHeader(); + break; + case HeaderType.DOWNLOAD_AUTH.code: + requestConfigBase = this.createFileDownloadAuthorizationHeader(); + break; + } + Object.keys(requestConfig).forEach((value: string, index: number, array: string[]) => { + requestConfigBase[value] = requestConfig[value]; + }); + return requestConfigBase; + } + get(path: string, query: Query | undefined, requestConfig: AxiosRequestConfig): any { + + path = query != null ? this.urlQueryConvert(path, query) : path; + return Vue.axios.get(`${path}`, requestConfig).then(this.createBusCodeHandler(query)).catch(this.createErrorHandler()); + } + + post(path: string, params: any, query: Query | undefined, requestConfig: AxiosRequestConfig): any { + + path = query != null ? this.urlQueryConvert(path, query) : path; + console.log("服务调用--" + path); + + return Vue.axios.post(`${path}`, params, requestConfig).then(this.createBusCodeHandler(query)).catch(this.createErrorHandler()); + + + } + /** + * POST请求 文件上传 + * @param path + * @param params + * @param requestConfig + * @returns + */ + uploadFile(path: string, params: any, requestConfig: any) { + return Vue.axios.post(`${path}`, params, requestConfig).then(this.createBusCodeHandler(params)).catch(this.createErrorHandler()); + } + put(path: string, params: any, query: Query | undefined, requestConfig: AxiosRequestConfig): any { + path = query != null ? this.urlQueryConvert(path, query) : path; + return Vue.axios.put(`${path}`, params, requestConfig).then(this.createBusCodeHandler()).catch(this.createErrorHandler()); + } + + delete(path: string, query: Query | undefined, requestConfig: AxiosRequestConfig): any { + path = query != null ? this.urlQueryConvert(path, query) : path; + return Vue.axios.delete(path, requestConfig).then(this.createBusCodeHandler()).catch(this.createErrorHandler()); + } + + /** + * @description: 通用请求函数 + * @author ChenRui + * @date 2020/8/28 15:19 + * @param api 调用接口的对象 + * @param query 问号?后参数 + * @param params post、put、delete参数 非必须 + * @param requestConfig 请求配置,如果上传文件、form提交等配置 非必须 + */ + general(api: any, query?: Query | undefined, params?: any | undefined, requestConfig?: AxiosRequestConfig | any): any { + if (!!api.url && !!api.method) { + if (requestConfig == null) { + + switch (api.header) { + case HeaderType.BASE.code: + requestConfig = this.createBasicHeaders(); + break; + case HeaderType.AUTH.code: + requestConfig = this.createAuthHeaders(); + break; + case HeaderType.UPLOAD_AUTH.code: + requestConfig = this.createFileUploadAuthorizationHeader(); + break; + case HeaderType.DOWNLOAD_AUTH.code: + requestConfig = this.createFileDownloadAuthorizationHeader(); + break; + } + } else { + let requestConfigBase: any = {}; + switch (api.header) { + case HeaderType.BASE.code: + requestConfigBase = this.createBasicHeaders(); + break; + case HeaderType.AUTH.code: + requestConfigBase = this.createAuthHeaders(); + break; + case HeaderType.UPLOAD_AUTH.code: + requestConfigBase = this.createFileUploadAuthorizationHeader(); + break; + case HeaderType.DOWNLOAD_AUTH.code: + requestConfigBase = this.createFileDownloadAuthorizationHeader(); + break; + } + Object.keys(requestConfig).forEach((value, index, array) => { + requestConfigBase[value] = requestConfig[value]; + }); + requestConfig = requestConfigBase; + } + switch (api.method) { + case MethodType.GET.code: + return this.get(api.url, query, requestConfig); + break; + case MethodType.PUT.code: + return this.put(api.url, params, query, requestConfig); + break; + case MethodType.POST.code: + return this.post(api.url, params, query, requestConfig); + break; + case MethodType.DELETE.code: + return this.delete(api.url, query, requestConfig); + break; + } + } + } + + /** + * 服务返回统一解密处理 + */ + createBusCodeHandler(params?: any) { + return function(response: any) { + + if (response.status === 200) { + let data = response.data; + + console.log("返回统一解密处理",params) + if (params.tc === 'MCEP') { + let encryData = data.data || {}; + console.log('返回原数据:', data); + //移动后台 + if (typeof encryData != 'object') { + encryData = JSON.parse(encryData); + } + + // //三方数据 + // encryData.sm4key ? (data.data = SMUtil.decodeData(encryData)) : data; + // if (data.data && typeof data.data != 'object') { + // if (data.data.indexOf('{') > -1) { + // data.data = JSON.parse(data.data); + // } + // } + if (['local', 'production'].indexOf(process.env.NODE_ENV) == -1) { + } + console.log('返回数据:', data); + + if (data.code == '40902') { + //token 失效,退出登录 + NativeUI.confirm('', "登录超时,请退出重新登录").then(() => { + // emUtil.closeWindow(); + // 清空数据并回到登录页面 + sessionStorage.setItem("branchNo", ""); + sessionStorage.setItem("branchNo", ""); + router.push({path: "/login"}).then(); + }); + } else { + return data; + } + } else { + //三方数据 + if (data.code == '40902') { + //token 失效,退出登录 + NativeUI.confirm("", "登录超时,请退出重新登录").then(() => { + // emUtil.closeWindow(); + // 清空数据并回到登录页面 + sessionStorage.setItem("branchNo", ""); + sessionStorage.setItem("branchNo", ""); + router.push({path: "/login"}).then(); + }); + } else if (data.code == 1) { + console.log(data); + //成功 + // data = data.data; + // debugger + if (typeof data != 'object') data = JSON.parse(data); + data = data.sm4key ? SMUtil.decodeData(data) : data; + if (typeof data != 'object') { + if (data.indexOf('{') > -1) { + data = JSON.parse(data); + } + } + // if (['local', 'production'].indexOf(process.env.NODE_ENV) == -1) { + console.log('**返回数据**', params.tc, data); + // } + return data; + } else if (data.code == -1) { + NativeUI.toast(data.msg); + return data; + } else { + NativeUI.toast(data.msg); + return data; + } + } + } + return response; + }; + } + + /** + * @description: 异常处理器 + * @author ChenRui + * @date 2020/8/28 15:19 + */ + createErrorHandler() { + return function (error: any) { + if (error.response) { + // The request was made and the server responded with a status code + // that falls out of the range of 2xx + console.log(error.response); + return { + code: Code.FAIL.code, + msg: error.response?.data?.msg || "网络连接异常,稍后请重试或联系管理员", + }; + } else if (error.request) { + console.log(error.request); + return { + code: Code.FAIL.code, + msg: error.request?.data?.msg || "网络连接异常,稍后请重试或联系管理员", + }; + } else { + // Something happened in setting up the request that triggered an Error + console.log("Error", error.message); + return { + code: Code.FAIL.code, + msg: "未知异常,稍后请重试或联系管理员", + }; + } + }; + } + + /** + * @description: 校验令牌 + * @author ChenRui + * @date 2021/8/11 15:02 + */ + verificationToken(config: AxiosRequestConfig) { + if (config.headers != null && config.headers.Authorization != null && tokenStore.token != null) { + // return oauthService.isTokenExpiration; + } + return true; + } + + /** + * @description: 日期格式化 + * @author ChenRui + * @date 2020/8/28 15:20 + */ + formatDate(date: any) { + date = new Date(date); + const YY = date.getFullYear() + "-"; + const MM = (date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1) + "-"; + const DD = date.getDate() < 10 ? "0" + date.getDate() : date.getDate(); + const hh = (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":"; + const mm = (date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()) + ":"; + const ss = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds(); + return YY + MM + DD + " " + hh + mm + ss; + } + + /** + * @description: json格式转表单格式 + + * @date 2020/8/28 15:20 + */ + jsonToFormData(params: any) { + if (params != null) { + const formData = new FormData(); + Object.keys(params).forEach((key) => { + formData.append(key, params[key]); + }); + return formData; + } + } + + /** + * @description: url请求参数组装 + * @author ChenRui + * @date 2020/8/28 15:21 + */ + urlQueryConvert(url: string, query: Query) { + let connectiveSymbol = ""; + if (url.indexOf("?") !== -1) { + connectiveSymbol = "&"; + } else { + connectiveSymbol = "?"; + } + if (query) { + Object.keys(query).forEach((key, idx) => { + const val = query[key]; + if (idx === 0) { + if (val != null && val !== "null" && val !== "undefined") { + url += connectiveSymbol + key + "=" + val; + } else { + url += connectiveSymbol + key + "="; + } + } else { + if (val != null && val !== "null" && val !== "undefined") { + url += "&" + key + "=" + val; + } else { + url += "&" + key + "="; + } + } + }); + } + return url; + } +} +const apiService = new ApiService(); +export default apiService; diff --git a/services/bean-utils.service.ts b/services/bean-utils.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..47042e5cdacf7f793146cde49637dd994dcf0b94 --- /dev/null +++ b/services/bean-utils.service.ts @@ -0,0 +1,44 @@ +/** + * @description: 对象拷贝 + * @author ChenRui + * @date 2020/7/29 18:46 + */ +class BeanUtilsService { + /** + * @description: 对象拷贝 + * @author ChenRui + * @date 2020/8/29 19:54 + */ + copy(obj: any): any { + if (obj != null) { + return JSON.parse(JSON.stringify(obj)); + } + return ""; + } + + /** + * @description: 字符串转对象 + * @author ChenRui + * @date 2020/8/29 19:54 + */ + parse(str: string | null): any { + if (str != null && str !== "") { + return JSON.parse(str); + } + return null; + } + + /** + * @description: 对象转字符串 + * @author ChenRui + * @date 2020/8/29 19:54 + */ + stringify(obj: any): string { + if (obj != null) { + return JSON.stringify(obj); + } + return ""; + } +} +const beanUtilsService = new BeanUtilsService(); +export default beanUtilsService; diff --git a/services/component-vue.service.ts b/services/component-vue.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..b64051299e8ff185a1899587349e1251700fb279 --- /dev/null +++ b/services/component-vue.service.ts @@ -0,0 +1,118 @@ +/* + * @Author: jiangzaicheng jiangzaicheng_jzc@163.com + * @Date: 2022-07-04 15:41:06 + * @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com + * @LastEditTime: 2022-07-22 18:12:35 + * @FilePath: \mcep-h5\src\services\component-vue.service.ts + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ +import Vue from "vue"; +import { Button, Cell, CellGroup, Icon, Col, Row, Popup, Toast, Form, Field, Checkbox, CheckboxGroup, RadioGroup, Radio, Search, Picker, DatetimePicker, Loading, Dialog, NavBar, Tab, Tabs, IndexBar, IndexAnchor, Switch, List, PullRefresh, Card } from "vant"; +import TitleBar from "@/components/general/TitleBar.vue"; +import DSelect from "@/components/general/form/DSelect.vue"; +import ScrollerView from "@/components/general/ScrollerView.vue"; +import SubTitle from "@/components/general/SubTitle.vue"; +import DDatetimePicker from "@/components/general/form/DDatetimePicker.vue"; +import MobileInput from "@/components/general/form/MobileInput.vue"; +import InterFaceFactory from "@/public/factory/InterFaceFactory"; +import TableDoubleView from "@/public/TableDoubleView.vue"; +import TabNav from "@/components/general/TabNav.vue"; +import BaseList from "@/components/general/BaseList.vue"; +import AnchorNav from "@/components/general/AnchorNav.vue"; +import * as echarts from "echarts"; +import Tatle from "@/components/common/Tatle.vue"; +import picket from "@/components/common/Picket.vue"; + +import ant from "ant-design-vue/es/locale/zh_CN" +import Tool from "@/components/common/Tool.vue"; +import Bottom from "@/components/common/Bottom.vue"; +import Person from "@/components/common/Person.vue"; +import CardPottom from "@/components/common/CardPottom.vue"; +import LittleCard from "@/components/common/LittleCard.vue"; +import CardUnLogin from "@/components/common/CardUnLogin.vue"; +import ProductDetail from "@/components/common/ProductDetail.vue"; +import PicketAcced from "@/components/common/PicketAcced.vue"; +import ProductCard from "@/components/common/ProductCard.vue"; +import CompanyCard from "@/views/workbench/CompanyCard.vue"; + + + +//ProductCard +declare module "vue/types/vue" { + interface Vue { + $message: any; + $success: any; + $error: any; + $confirm: any; + $alert: any; + $IF: any; + $echarts: any; + } +} +/** + * @description: 注册Vant组件 + * @author Zpfly + * @date 2021/9/24 10:36 + */ +class ComponentVueService { + init() { + Vue.use(Button); + Vue.use(Cell).use(CellGroup); + Vue.use(Icon); + Vue.use(Col).use(Row); + Vue.use(Popup); + Vue.use(Toast); + Vue.use(Form); + Vue.use(Field); + Vue.use(CheckboxGroup).use(Checkbox); + Vue.use(Radio).use(RadioGroup); + Vue.use(Search); + Vue.use(Picker); + Vue.use(DatetimePicker); + Vue.use(Loading); + Vue.use(Dialog); + Vue.use(NavBar); + Vue.use(Tab).use(Tabs); + Vue.use(IndexBar).use(IndexAnchor); + Vue.use(Switch); + Vue.use(List); + Vue.use(PullRefresh); + + Vue.prototype.$message = Toast; + Vue.prototype.$success = Toast.success; + Vue.prototype.$error = Toast.fail; + Vue.prototype.$loading = Toast.loading; + Vue.prototype.$alert = Dialog.alert; + Vue.prototype.$confirm = Dialog.confirm; + Vue.prototype.$IF = InterFaceFactory; + Vue.prototype.$echarts = echarts; + this.initCustomCmp(); + } + // 全局注册自定义组件 + initCustomCmp() { + Vue.component("title-bar", TitleBar); + Vue.component("d-select", DSelect); + Vue.component("scroller-view", ScrollerView); + Vue.component("sub-title", SubTitle); + Vue.component("d-datetime-picker", DDatetimePicker); + Vue.component("mobile-input", MobileInput); + Vue.component("table-double-view", TableDoubleView); + Vue.component("tab-nav", TabNav); + Vue.component("base-list", BaseList); + Vue.component("anchor-nav", AnchorNav); + Vue.component("tatle-bar", Tatle); + Vue.component("picket-bar", picket); + Vue.component("tools-bar", Tool); + Vue.component("bottom-bar", Bottom); + Vue.component("person-bar", Person); + Vue.component("card-bar", CardPottom); + Vue.component("little-bar", LittleCard); + Vue.component("uncard-bar", CardUnLogin); + Vue.component("product-detail", ProductDetail); + Vue.component("product-card", ProductCard); + Vue.component("picket-acced", PicketAcced); + Vue.component("company-card",CompanyCard); + } +} +const componentService = new ComponentVueService(); +export default componentService; diff --git a/services/db.service.ts b/services/db.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..9675546f9ba00e9df6592b6979cf685bee709f22 --- /dev/null +++ b/services/db.service.ts @@ -0,0 +1,212 @@ +/** + * @Description 数据库工具 + * @Author ZPFly + * @Date 2021/10/12 + */ +class DbService { + private dbName = "creditDb"; + private dbVersion = 1; + private db: any; + //name:表名 key:主键 ,cursorIndex 索引 + store = { + sysDict: { name: "sysDict", key: "dictId", cursorIndex: [{ name: "dictField", unique: false }] }, + multiMedia: { name: "multiMedia", key: "id", autoIncrement: true, cursorIndex: [{ name: "objId", unique: false }] }, + }; + initDB() { + const store: any = this.store; + const request = indexedDB.open(this.dbName, this.dbVersion); + return new Promise((resolve) => { + request.onerror = function () { + console.log("打开数据库失败"); + }; + request.onsuccess = (event: any) => { + console.log("打开数据库成功"); + this.db = event.target.result; + resolve(true); + }; + request.onupgradeneeded = (event: any) => { + const db = event.target.result; + for (const t in store) { + if (!db.objectStoreNames.contains(store[t].name)) { + const objectStore = db.createObjectStore(store[t].name, { + keyPath: store[t].key, + autoIncrement: !!store[t].autoIncrement, + }); + for (let i = 0; i < store[t].cursorIndex.length; i++) { + const element = store[t].cursorIndex[i]; + objectStore.createIndex(element.name, element.name, { + unique: element.unique, + }); + } + } + } + console.log("数据库升级完成"); + }; + }); + } + // 打开数据库 await this.openDB(); + private openDB() { + return new Promise((resolve, reject) => { + const request = indexedDB.open(this.dbName, this.dbVersion); + request.onerror = function (event) { + reject("IndexedDB数据库打开错误," + event); + }; + request.onsuccess = function (event: any) { + resolve(event.target.result); + }; + }); + } + // 添加数据,add添加新值 + async insert(table: string, data: any) { + try { + // const db: any = await this.openDB(); + const request = this.db.transaction(table, "readwrite").objectStore(table); + return new Promise((resolve) => { + request.add(data); + request.onerror = function () { + console.error("添加数据出错"); + resolve("添加数据出错"); + }; + request.onsuccess = function () { + resolve(true); + }; + }); + } catch (error) { + console.log(error); + return Promise.resolve(false); + } + } + // 批量添加数据,add添加新值 + async batInsert(table: string, values: Array) { + try { + // const db: any = await this.openDB(); + const request = this.db.transaction(table, "readwrite").objectStore(table); + return new Promise((resolve) => { + for (const data of values) { + request.add(data); + } + request.onerror = function () { + console.error("添加数据出错"); + resolve("添加数据出错"); + }; + request.onsuccess = function () { + resolve(true); + }; + }); + } catch (error) { + console.log(error); + return Promise.resolve(false); + } + } + // 更新 + async update(table: string, values: Array) { + try { + const db: any = await this.openDB(); + const request = db.transaction(table, "readwrite").objectStore(table); + return new Promise((resolve) => { + for (const data of values) { + request.put(data); + } + request.onerror = function () { + console.log("数据更新失败"); + resolve(false); + }; + request.onsuccess = function (e: any) { + console.log(e); + console.log("数据更新成功"); + // resolve(true); + }; + }); + } catch (error) { + return Promise.resolve(false); + } + } + // 删除数据 + async delete(table: string, keyValue: any) { + try { + // const db: any = await this.openDB(); + const request: any = this.db.transaction(table, "readwrite").objectStore(table).delete(keyValue); + return new Promise((resolve) => { + request.onerror = function () { + resolve(false); + }; + request.onsuccess = function () { + resolve(true); + }; + }); + } catch (error) { + return Promise.resolve(false); + } + } + // 查询数据 表名 索引值 索引 key 没有value key为key 而不是索引 + async get(table: string, keyValue?: any, indexCursor?: string) { + try { + // const db: any = await this.openDB(); + const store = this.db.transaction(table, "readonly").objectStore(table); + const request: any = !keyValue ? store.openCursor() : indexCursor ? store.index(indexCursor).openCursor(keyValue) : store.get(keyValue); + const data: any = []; + return new Promise((resolve) => { + request.onerror = function () { + resolve("查询数据失败"); + }; + request.onsuccess = function (event: any) { + if (indexCursor) { + if (event.target.result) { + console.log(event.target.result.value); + data.push(event.target.result.value); + event.target.result.continue(); + } else { + resolve(data); + } + } else { + resolve(event.target.result); + } + }; + }); + } catch (error) { + return Promise.reject(error); + } + } + // 通过索引游标操作数据, callback中要有游标移动方式 + async handleDataByIndex(table: string, keyRange: any, cursorIndex?: string) { + try { + const kRange = keyRange || ""; + // const db: any = await this.openDB(); + const store: any = this.db.transaction(table, "readwrite").objectStore(table); + const request: any = store.index(cursorIndex).openCursor(kRange); + return new Promise((resolve) => { + request.onerror = function () { + resolve("通过索引游标获取数据报错"); + }; + request.onsuccess = function (event: any) { + const cursor = event.target.result; + if (cursor) { + resolve(cursor); + } + }; + }); + } catch (error) { + return Promise.reject(error); + } + } + // 清空数据 + async clear(table: string) { + // const db: any = await this.openDB(); + const store = this.db.transaction(table, "readwrite").objectStore(table); + store.clear(); + } + // 删除表 + deleteTable(table: string) { + const deleteQuest = indexedDB.deleteDatabase(table); + return new Promise((resolve) => { + deleteQuest.onerror = function () { + resolve(false); + }; + deleteQuest.onsuccess = function () { + resolve(true); + }; + }); + } +} +const dbService = new DbService(); +export default dbService; diff --git a/services/dict.service.ts b/services/dict.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..938a05c4b07f0101b90ca212fa21614d626b46cd --- /dev/null +++ b/services/dict.service.ts @@ -0,0 +1,2691 @@ +/** + * @Description 前端数据字典服务 + * @Author ZPFly + * @Date 2021/10/12 + */ +import dbService from "@/services/db.service"; +import apiService from "@/services/api.service"; +import sysDictInfoApi from "@/constants/api/ms-system/sys-dict.api"; +import { RestfulResponse } from "@/model/domain/RestfulResponse"; +import { Code } from "@/constants/enum/general/code.enum"; +class DictService { + // table = dbService.store.sysDict.name; + /** + * @Description TODO 数据字典内容,临时存放在系统,后续需要全部入库 + * @Author zhangmk + * @Date 2021年12月31日17:58:48 + */ + private dicData = ([ + { s_field_name: '是否撤销', s_field: 'ISREVOCATION', value: '1', text: '是' }, + { s_field_name: '是否撤销', s_field: 'ISREVOCATION', value: '0', text: '否' }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '100', text: '内资企业' }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '150', text: '有限责任公司' }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '151', text: '有限责任公司-国有独资公司' }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '159', text: '有限责任公司-其他有限责任公司' }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '160', text: '股份有限公司' }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '110', text: '国有全资' }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '120', text: '集体全资' }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '190', text: '其他内资' }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '130', text: '股份合作' }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '140', text: '联营' }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '170', text: '私有' }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '172', text: '私有合伙' }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '171', text: '私有独资' }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '179', text: '其他私有' }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '300', text: '外商投资企业' }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '310', text: '外商投资企业-中外合资经营企业' }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '320', text: '外商投资企业-中外合作经营企业' }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '330', text: '外商投资企业-外资企业' }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '390', text: '其他外商投资企业' }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '340', text: '外商投资企业-外商投资股份有限公司' }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '200', text: '港、澳、台投资企业' }, + { + s_field_name: '经济类型分类', + s_field: 'ECOTYPE', + value: '210', + text: '港澳台商投资企业-合资经营企业(港或澳、台资)' + }, + { + s_field_name: '经济类型分类', + s_field: 'ECOTYPE', + value: '220', + text: '港澳台商投资企业-合作经营企业(港或澳、台资)' + }, + { + s_field_name: '经济类型分类', + s_field: 'ECOTYPE', + value: '230', + text: '港澳台商投资企业-港、澳、台商独资经营企业' + }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '290', text: '其他港澳台投资企业' }, + { + s_field_name: '经济类型分类', + s_field: 'ECOTYPE', + value: '240', + text: '港澳台商投资企业-港、澳、台商投资股份有限公司' + }, + { + s_field_name: '经济类型分类', + s_field: 'ECOTYPE', + value: '220', + text: '港澳台商投资企业-合资经营企业(港或澳、台资)' + }, + { + s_field_name: '经济类型分类', + s_field: 'ECOTYPE', + value: '230', + text: '港澳台商投资企业-合资经营企业(港或澳、台资)' + }, + { + s_field_name: '经济类型分类', + s_field: 'ECOTYPE', + value: '290', + text: '港澳台商投资企业-合资经营企业(港或澳、台资)' + }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '400', text: '境外机构' }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '900', text: '其它' }, + { s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '175', text: '个体经营' }, + { s_field_name: '企业类型', s_field: 'ENTTYPE', value: '010', text: '企业法人' }, + { s_field_name: '企业类型', s_field: 'ENTTYPE', value: '012', text: '集体' }, + { s_field_name: '企业类型', s_field: 'ENTTYPE', value: '013', text: '股份合作' }, + { s_field_name: '企业类型', s_field: 'ENTTYPE', value: '014', text: '联营' }, + { s_field_name: '企业类型', s_field: 'ENTTYPE', value: '015', text: '有限责任公司' }, + { s_field_name: '企业类型', s_field: 'ENTTYPE', value: '016', text: '股份有限公司' }, + { s_field_name: '企业类型', s_field: 'ENTTYPE', value: '017', text: '私营' }, + { s_field_name: '企业类型', s_field: 'ENTTYPE', value: '019', text: '外资企业' }, + { s_field_name: '企业类型', s_field: 'ENTTYPE', value: '020', text: '非法人企业' }, + { s_field_name: '企业类型', s_field: 'ENTTYPE', value: '030', text: '国家机关' }, + { s_field_name: '企业类型', s_field: 'ENTTYPE', value: '040', text: '实行预算管理的事业单位' }, + { s_field_name: '企业类型', s_field: 'ENTTYPE', value: '050', text: '非预算管理的事业单位' }, + { s_field_name: '企业类型', s_field: 'ENTTYPE', value: '070', text: '社会团体' }, + { s_field_name: '企业类型', s_field: 'ENTTYPE', value: '120', text: '有字号的个体工商户' }, + { s_field_name: '企业类型', s_field: 'ENTTYPE', value: '999', text: '其他组织' }, + { s_field_name: '经营状态代码', s_field: 'ENTSTATUS', value: '11', text: '开业-正常经营' }, + { s_field_name: '经营状态代码', s_field: 'ENTSTATUS', value: '30', text: '吊销' }, + { s_field_name: '经营状态代码', s_field: 'ENTSTATUS', value: '20', text: '注销' }, + { s_field_name: '经营状态代码', s_field: 'ENTSTATUS', value: '90', text: '其他' }, + { s_field_name: '经营状态代码', s_field: 'ENTSTATUS', value: '12', text: '开业-经营困难' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'RS', text: '市人社局:' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'RS01', text: '市人社局:企业提警示信息' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'GT', text: '市国土局:' }, + { + s_field_name: '提警示信息', + s_field: 'CONDITION', + value: 'GT01', + text: '市国土局:未按《出让合同》交款的时限内按时缴纳土地价款' + }, + { + s_field_name: '提警示信息', + s_field: 'CONDITION', + value: 'GT02', + text: '市国土局:未经国土、规划等相关部门批准非法用地' + }, + { + s_field_name: '提警示信息', + s_field: 'CONDITION', + value: 'GT03', + text: '市国土局:未在成交确认书的约定时限内签订《出让合同》' + }, + { + s_field_name: '提警示信息', + s_field: 'CONDITION', + value: 'GT04', + text: '市国土局:经多次催促未签订《出让合同》' + }, + { + s_field_name: '提警示信息', + s_field: 'CONDITION', + value: 'GT05', + text: '市国土局:经多次催缴后拒绝缴纳土地价款' + }, + { + s_field_name: '提警示信息', + s_field: 'CONDITION', + value: 'GT06', + text: '市国土局:经相关执法部门查处后拒绝整改' + }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'HB', text: '市环保局:' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'HB01', text: '市环保局:未按规定交纳排污费' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'HB02', text: '市环保局:其他提警示信息' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'FG', text: '市房管局:' }, + { + s_field_name: '提警示信息', + s_field: 'CONDITION', + value: 'FG01', + text: '市房管局:因违反规范性文件、行业规范,受到房产行政主管部门、行业协会通报批评的' + }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'FG99', text: '市房管局:其他提警示信息' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'WS', text: '市卫计委:' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'WS01', text: '市卫计委:企业已进入吊销程序的' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'AJ', text: '市安监局:' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'AJ01', text: '市安监局:发生职业病防治责任事故' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'AJ99', text: '市安监局:安监局其他提警示信息' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'XR', text: '市兴蓉集团:' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'XR01', text: '市兴蓉集团:其他不良信息' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'DY', text: '成都电业局:' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'DY01', text: '成都电业局:其他提警示信息' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'JX', text: '市经信委:' }, + { + s_field_name: '提警示信息', + s_field: 'CONDITION', + value: 'JX01', + text: '市经信委:未进行无线电台(站)执照年检信息' + }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'GJ', text: '成都公积金中心:' }, + { + s_field_name: '提警示信息', + s_field: 'CONDITION', + value: 'GJ01', + text: '单位收到催建通知书后仍未按规定建立住房公积金制度' + }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'HG', text: '成都海关:' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'HG01', text: '成都海关:海关进出口黑名单信息' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'HG99', text: '成都海关:海关主体提警示信息' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'XN', text: '市政务办:' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'XN01', text: '市政务办:法人不良信用信息' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'XN02', text: '市政务办:投资人不良信用信息' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'NW', text: '市农委:' }, + { + s_field_name: '提警示信息', + s_field: 'CONDITION', + value: 'NW01', + text: '市农委:未通过农业产业化经营重点龙头企业经济运行情况监测' + }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'NW02', text: '市农委:被依法认定拖漏欠税款' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'NW03', text: '市农委:产品出现质量安全问题' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'NW04', text: '市农委:坑农害农' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'NW05', text: '市农委:企业及法人涉嫌犯罪' }, + { s_field_name: '提警示信息', s_field: 'CONDITION', value: 'NW99', text: '市农委:其他不良信息' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'FZ', text: '市发改委' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'FZ001', text: '市发改委:价格行政处罚' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'JX', text: '市经信委' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JX001', + text: '市经信委:非法设置无线电台(站)信息' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'WS', text: '市卫计委' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'WS001', text: '市卫计委:公共场所卫生行政处罚' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'WS002', text: '市卫计委:供水单位卫生行政处罚' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'WS003', text: '市卫计委:放射诊疗卫生行政处罚' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'WS004', text: '市卫计委:医疗卫生行政处罚' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'CG', text: '市城管委' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'CG001', text: '市城管委:市容秩序' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'CG002', text: '市城管委:环境卫生' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'CG003', text: '市城管委:广告招牌' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'CG004', text: '市城管委:市政设施' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'CG005', text: '市城管委:园林绿化' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'CG006', text: '市城管委:环境污染' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'CG007', text: '市城管委:扬尘治理' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'CG008', text: '市城管委:其他' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'JS', text: '市建委' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JS001', + text: + '市建委:因违反《安全生产许可证条例》、《建设工程安全生产管理条例》、《建筑施工企业安全生产许可证管理规定》、《建筑起重机械安全监督管理规定》、《成都市房屋建筑和市政基础设施工程施工安全监督管理规定》、《建筑施工企业主要负责人、项目负责人和专职安全生产管理人员安全生产管理规定》,受到建设行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JS002', + text: + '市建委:因违反《城市房地产开发经营管理条例》、《房地产开发企业资质管理规定》,受到建设行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JS003', + text: + '市建委:因违反《中华人民共和国建筑法》、《建设工程质量管理条例》、《房屋建筑和市政基础设施工程竣工验收备案管理办法》、《建筑工程施工许可管理办法》、《房屋建筑和市政基础设施工程施工图设计文件审查管理办法》、《实施工程建设强制性标准监督规定》、《建设工程质量检测管理办法》、《四川省建筑管理条例》、《四川省建设工程质量管理规定》,受到建设行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JS004', + text: + '市建委:因违反《房屋建筑工程抗震设防管理规定》、《市政公用设施抗灾设防管理规定》,受到建设行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JS005', + text: + '市建委:因违反《中华人民共和国节约能源法》、《民用建筑节能条例》、《民用建筑节能管理规定》、《四川省民用建筑节能管理办法》、《成都市建筑节能管理规定》、《成都市禁止生产和使用实心粘土砖管理暂行办法》,受到建设行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JS006', + text: + '市建委:因违反《城市地下管线工程档案管理办法》、《四川省建筑装饰装修管理办法》,受到建设行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JS007', + text: '市建委:因违反《房屋建筑工程质量保修办法》,受到建设行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JS008', + text: + '市建委:因违反《中华人民共和国招标投标法》、《招标投标法实施条例》、《建筑工程设计招标投标管理办法》、《房屋建筑和市政基础设施工程施工招标投标管理办法》、《工程建设项目施工招标投标办法》、《评标委员会和评标办法暂行规定》、《房屋建筑和市政基础设施工程施工分包管理办法》、《四川省国家投资工程建设项目招标投标条例》,受到建设行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JS009', + text: + '市建委:因违反《建设工程勘察设计管理条例》、《建设工程勘察质量管理办法》、《建筑业企业资质管理规定》、《建设工程勘察设计资质管理规定》、《勘查设计注册工程师管理规定》、《四川省建设工程勘查设计管理条例》,受到建设行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JS010', + text: + '市建委:因违反《工程监理企业资质管理规定》、《注册监理工程师管理规定》、《四川省建设工程监理规定》,受到建设行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JS011', + text: + '市建委:因违反《工程造价咨询企业管理办法》、《工程建设项目招标代理机构资格认定办法》、《注册造价师管理办法》、《四川省工程建设项目招标代理办法》,受到建设行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JS012', + text: + '市建委:因违反《中华人民共和国注册建筑师条例》、《注册建筑师条例实施细则》、《注册建造师管理规定》,受到建设行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JS013', + text: + '市建委:因违反《散装水泥管理办法》、《四川省散装水泥管理办法》、《成都市散装水泥管理办法》,受到建设行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JS014', + text: + '市建委:因违反《成都市城市扬尘污染防治管理暂行规定》、《成都市建筑施工现场监督管理规定》、《成都市建设领域防范拖欠农民工工资管理办法》,受到建设行政主管部门行政处罚的' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'JT', text: '市交委' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JT001', + text: '市交委:对道路旅客运输违规行为的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JT002', + text: '市交委:对道路货物运输违规行为的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JT003', + text: '市交委:对道路危险货物运输违规行为的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JT004', + text: '市交委:对机动车驾驶员培训违规行为的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JT005', + text: '市交委:对出租汽车经营违规行为的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JT006', + text: '市交委:对违反《公路法》行为的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JT007', + text: '市交委:对违反《四川省水上交通安全管理条例》行为的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JT008', + text: '市交委:其他违反交通运输法规行为的处罚' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'NW', text: '市农委' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'NW001', + text: '市农委:违反《中华人民共和国种子法》' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'NW002', + text: '市农委:违反《中华人民共和国农药管理条例》' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'NW003', + text: '市农委:违反《中华人民共和国肥料管理办法》' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'NW004', text: '市农委:违反《兽药管理条例》' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'NW005', + text: '市农委:违反《饲料和饲料添加剂管理条例》' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'NW006', + text: '市农委:违反《中华人民共和国畜牧法》' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'NW007', + text: '市农委:违反《农业转基因生物安全管理条例》' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'NW008', + text: '市农委:违反《中华人民共和国动物防疫法》' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'NW009', text: '市农委:违反《植物检疫条例》' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'NW010', + text: '市农委:违反《中华人民共和国农产品质量安全法》' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'NW011', + text: '市农委:违反《中华人民共和国农村土地承包法》' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'TY', text: '市体育局' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'TY001', + text: '市体育局:取得经营高危险性体育项目许可证后,不再符合规定条件仍经营该项目的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'TY002', + text: + '市体育局:高危险性体育项目的经营者未按照规定做好体育设施、设备、器材的维护保养及定期检测,不能保证安全、正常使用的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'TY003', + text: '市体育局:高危险性体育项目的经营者对体育执法人员依法履行监督检查职责不予配合,拒绝阻挠执法的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'TY004', + text: + '市体育局:高危险性体育项目的经营者未将该项体育项目可能危及消费者安全的事项和对参与者年龄、身体、技术的特殊要求等做出真实说明和明确警示的;或对危险未采取措施防止危害发生的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'TY005', + text: '市体育局:违反规定出租公共文化体育设施的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'TY006', + text: '市体育局:开展与公共文化体育设施功能、用途不相适应的服务活动的' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'SF', text: '市司法局' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SF001', + text: '市司法局:因违反《律师法》受到司法行政机关的行政处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SF002', + text: '市司法局:因违反《公证法》、《公证机构执业管理办法》受到司法行政机关行政处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SF003', + text: '市司法局:因违反《司法鉴定机构登记管理办法》受到司法行政机关的行政处罚' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'GA', text: '市公安局' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GA001', + text: '市公安局:因违反《大型群众性活动安全管理条例》,受到公安行政管理部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GA002', + text: '市公安局:因违反《中华人民共和国枪支管理法》,受到公安行政管理部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GA003', + text: '市公安局:因违反《民用爆炸物品安全管理条例》,受到公安行政管理部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GA004', + text: '市公安局:因违反《爆破作业单位许可证》,受到公安行政管理部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GA005', + text: '市公安局:因违反《易制毒化学品管理条例》,受到公安行政管理部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GA006', + text: '市公安局:因违反《中华人民共和国校车安全条例》,受到公安行政管理部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GA007', + text: '市公安局:因违反《中华人民共和国道路交通安全法》,受到公安行政管理部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GA008', + text: '市公安局:因违反《危险化学品安全管理条例》,受到公安行政管理部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GA009', + text: '市公安局:因违反《中华人民共和国集会游行示威法》,受到公安行政管理部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GA010', + text: '市公安局:因违反《金融机构营业场所和金库安全防范设施建设许可实施办法》,受到公安行政管理部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GA011', + text: '市公安局:因违反《中华人民共和国消防法》,受到公安行政管理部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GA012', + text: '市公安局:因违反《中华人民共和国户口登记条例》,受到公安行政管理部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GA013', + text: '市公安局:因违反《成都市建筑垃圾处置管理条例》,受到公安行政管理部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GA014', + text: '市公安局:因违反《四川省消防条例》,受到公安行政管理部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GA015', + text: '市公安局:因违反《成都市消防条例》,受到公安行政管理部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GA016', + text: '市公安局:因违反《建设工程消防监督管理规定》,受到公安行政管理部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GA017', + text: '市公安局:因违反《消防监督检查规定》,受到公安行政管理部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GA018', + text: '市公安局:因违反《火灾事故调查规定》,受到公安行政管理部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GA019', + text: '市公安局:因违反《消防产品监督管理规定》,受到公安行政管理部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GA020', + text: '市公安局:因违反《社会消防技术服务管理规定》,受到公安行政管理部门行政处罚的' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'AJ', text: '市安监局' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'AJ001', text: '市安监局:警告处罚' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'AJ002', text: '市安监局:罚款处罚' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'AJ003', + text: '市安监局:责令停产停业整顿、责令停产停业、责令停止建设、责令停止施工处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'AJ004', + text: '市安监局:没收违法所得和非法财物处罚' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'AJ005', text: '市安监局:暂扣或吊销有关许可证' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'AJ006', text: '市安监局:其他行政处罚' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'TJ', text: '市统计局' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'TJ001', + text: + '市统计局:对有关单位负责人自行修改统计资料、编造虚假统计数据,要求统计机构、统计人员或者其他机构、人员伪造、篡改统计资料,对依法履行职责或者拒绝、抵制统计违法行为的统计人员打击报复,对本地方、本部门、本单位发生的严重统计违法行为失察的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'TJ002', + text: + '市统计局:对县级以上人民政府统计机构或者有关部门在组织实施统计调查活动中未经批准擅自组织实施统计调查,擅自变更统计调查制度的内容,伪造、篡改统计资料,要求统计调查对象或者其他机构、人员提供不真实的统计资料,未按照统计调查制度的规定报送有关资料的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'TJ003', + text: + '市统计局:对统计人员伪造、篡改统计资料,要求统计调查对象或其他机构、人员提供不真实的统计资料,未按照统计调查制度的规定报送有关资料的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'TJ004', + text: + '市统计局:对国家机关及相关人员拒绝提供统计资料或者经催报后仍未按时提供统计资料,提供不真实或者不完整的统计资料,拒绝答复或者不如实答复统计检查查询书,拒绝、阻碍统计调查、统计检查,转移、隐匿、篡改、毁弃或者拒绝提供原始记录和凭证、统计台账、统计调查表及其他相关证明和资料的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'TJ005', + text: + '市统计局:对企业事业单位或者其他组织及相关人员拒绝提供统计资料或者经催报后仍未按时提供统计资料,提供不真实或者不完整的统计资料,拒绝答复或者不如实答复统计检查查询书,拒绝、阻碍统计调查、统计检查,转移、隐匿、篡改、毁弃或者拒绝提供原始记录和凭证、统计台账、统计调查表及其他相关证明和资料的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'TJ006', + text: + '市统计局:对个体工商户拒绝提供统计资料或者经催报后仍未按时提供统计资料,提供不真实或者不完整的统计资料,拒绝答复或者不如实答复统计检查查询书,拒绝、阻碍统计调查、统计检查,转移、隐匿、篡改、毁弃或者拒绝提供原始记录和凭证、统计台账、统计调查表及其他相关证明和资料的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'TJ007', + text: + '"市统计局:对国家机关、企业事业单位、个体工商户或者其他组织及相关人员迟报统计资料,不按规定建立原始记录、统计台账,未按规定领取统计报表的处罚"' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'TJ008', + text: '市统计局:对个人在重大国情国力普查活动中拒绝、阻碍统计调查,提供不真实或者不完整的普查资料的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'TJ009', + text: '市统计局:对政府有关部门及有关人员未按规定提供行政登记资料的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'TJ010', + text: '市统计局:对国家机关以外的组织或者个人擅自进行依法应当由国家机关实施的统计调查的处罚' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'FG', text: '市房管局' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'FG001', + text: + '市房管局:因违反《城市房地产管理法》、《城市房地产开发经营管理条例》、《商品房销售管理办法》、《城市商品房预售管理办法》,受到房产行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'FG002', + text: '市房管局:因违反《房地产经纪管理办法》,受到房产行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'FG003', + text: '市房管局:因违反《商品房屋租赁管理办法》、《成都市房屋租赁管理办法》,受到房产行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'FG004', + text: + '市房管局:因违反《物业管理条例》、《物业服务企业资质管理办法》、《四川省物业管理条例》、《成都市物业管理条例》,受到房产行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'FG005', + text: '市房管局:因违反《房产测绘管理办法》,受到房产行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'FG006', + text: '市房管局:因违反《房地产估价机构管理办法》、《注册房地产估价师管理办法》,受到房产行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'FG007', + text: + '市房管局:因违反《住宅专项维修资金管理办法》、《成都市城市住房专项维修资金管理暂行办法》,受到房产行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'FG008', + text: + '市房管局:因违反《住宅室内装饰装修管理办法》、《成都市房屋使用安全管理条例》,受到房产行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'FG009', + text: '市房管局:因违反《城市房屋白蚁防治管理规定》,受到房产行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'FG010', + text: '市房管局:因违反《成都市城市扬尘污染防治管理暂行规定》,受到房产行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'FG011', + text: '市房管局:因违反《公共租赁住房管理办法》,受到房产行政主管部门行政处罚的' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'SW', text: '市国税局、市地税局' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'SW001', text: '市国税局、市地税局:偷税' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SW002', + text: '市国税局、市地税局:逃避追缴欠税' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'SW003', text: '市国税局、市地税局:骗税' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'SW004', text: '市国税局、市地税局:抗税' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'SW005', text: '市国税局、市地税局:非法避税' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'SW006', text: '市国税局、市地税局:欠税' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'SW007', text: '市国税局、市地税局:发票违法' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SW008', + text: '市国税局、市地税局:违反税务管理规定' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'SW011', text: '市国税局、市地税局:非违法违章' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'SW090', text: '市国税局、市地税局:其他' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'ZJ', text: '市质监局' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'ZJ001', + text: '市质监局:因违反《产品质量法》,受到质量技术监督行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'ZJ002', + text: '市质监局:因违反《计量法》,受到质量技术监督行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'ZJ003', + text: '市质监局:因违反《标准化法》,受到质量技术监督行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'ZJ004', + text: '市质监局:因违反《特种设备安全法》,受到质量技术监督行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'ZJ005', + text: '市质监局:因违反《工业产品生产许可证管理条例》,受到质量技术监督行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'ZJ006', + text: '市质监局:因违反《认证认可条例》,受到质量技术监督行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'ZJ007', + text: '市质监局:因违反《四川省产品质量监督管理条例》,受到质量技术监督行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'ZJ008', + text: '市质监局:因违反《四川省组织机构代码管理办法》,受到质量技术监督行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'ZJ009', + text: '市质监局:因违反《四川省商品条码管理办法》,受到质量技术监督行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'ZJ010', + text: '市质监局:因违反《成都市产品质量监督条例》,受到质量技术监督行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'ZJ011', + text: '市质监局:因违反《成都市电梯安全监督管理办法》,受到质量技术监督行政主管部门行政处罚的' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'YJ', text: '市食药监局' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'YJ001', + text: '市食药监局:食品(含保健食品)行政处罚' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'YJ002', text: '市食药监局:药品行政处罚' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'YJ003', text: '市食药监局:医疗器械行政处罚' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'YJ004', text: '市食药监局:化妆品行政处罚' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'GH', text: '市规划局' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GH001', + text: '市规划局:因违反《中华人民共和国城乡规划法》,受到规划行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GH002', + text: '市规划局:因违反《四川省城乡规划条例》,受到规划行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GH003', + text: '市规划局:因违反《成都市城乡规划条例》,受到规划行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GH004', + text: '市规划局:因违反《中华人民共和国测绘法》,受到测绘地理信息行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GH005', + text: '市规划局:因违反《中华人民共和国测量标志保护条例》,受到测绘地理信息行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GH006', + text: '市规划局:因违反《中华人民共和国测绘成果管理条例》,受到测绘地理信息行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GH007', + text: '市规划局:因违反《地图管理条例》,受到测绘地理信息行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GH008', + text: '市规划局:因违反《基础测绘条例》,受到测绘地理信息行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GH009', + text: '市规划局:因违反《四川省测绘管理条例》,受到测绘地理信息行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GH099', + text: '市规划局:因违反其他法律法规,受到规划行政主管部门、测绘地理信息行政主管部门行政处罚的' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'JY', text: '成都检验检疫局' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JY001', + text: '成都检验检疫局:对违反检验检疫法律法规违法行为的行政处罚' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'HB', text: '市环保局' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'HB001', + text: '市环保局:违反环境保护法律法规的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'HB002', + text: '市环保局:违反环境信息公开制度的处罚' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'GS', text: '市工商局' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GS001', + text: '市工商局:对违反登记管理有关法规行为的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GS002', + text: '市工商局:对不正当竞争行为的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GS003', + text: '市工商局:对侵害消费者权益行为的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GS004', + text: '市工商局:对产品质量违法行为的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GS005', + text: '市工商局:对合同行政违法行为的处罚' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'GS006', text: '市工商局:对商标违法行为的处罚' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'GS007', text: '市工商局:对广告违法行为的处罚' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'GS008', text: '市工商局:对直销违规行为的处罚' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'GS009', text: '市工商局:对传销行为的处罚' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'GS010', text: '市工商局:对限制竞争行为的处罚' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'GS011', text: '市工商局:对垄断行为的处罚' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'GS099', + text: '市工商局:对其他市场违法行为的处罚' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'MZ', text: '市民政局' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'MZ001', + text: '市民政局:对违反登记管理行为的处罚' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'JU', text: '市教育局' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JU001', + text: '市教育局:违反法律、法规和国家有关规定举办学校或其他教育机构的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JU002', + text: '市教育局:学校和其他教育机构违法颁发学位、学历或者其他学业证书行为的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JU003', + text: '市教育局:民办学校管理混乱严重影响教育教学的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JU004', + text: '市教育局:民办学校出资人违法违规获取回报的处罚(出资人为法人)' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JU005', + text: '市教育局:中等职业技术学校经检查评估不符合要求的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JU006', + text: '市教育局:学校及其他教育机构禁止吸烟场所未按规定设置禁烟标识或违反规定设置吸烟器具的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'JU007', + text: '市教育局:学校违反国家有关规定招收学生的处罚' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'WG', text: '市文广新局' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'WG001', + text: '市文广新局:因违反《电影管理条例》,受到电影行政管理部门的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'WG002', + text: '市文广新局:因违反《营业性演出管理条例》,受到文化行政管理部门的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'WG003', + text: '市文广新局:因违反《营业性演出管理条例实施细则》,受到文化行政管理部门的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'WG004', + text: '市文广新局:因违反《四川省文化市场管理条例》,受到文化行政管理部门的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'WG005', + text: '市文广新局:因违反《印刷业管理条例》,受到出版行政管理部门的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'WG006', + text: '市文广新局:因违反《出版管理条例》,受到出版行政管理部门的处罚' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'LY', text: '市林业园林局' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'LY001', + text: + '市林业园林局:因违反《中华人民共和国森林法》、《中华人民共和国森林法实施条例》,受到林业主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'LY002', + text: + '市林业园林局:因违反《中华人民共和国野生动物保护法》、《中华人民共和国陆生野生动物保护实施条例》、《四川省〈中华人民共和国野生动物保护法〉实施办法》,受到林业行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'LY003', + text: '市林业园林局:因违反《中华人民共和国种子法》、《四川省林木种子管理条例》,受到林业行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'LY004', + text: '市林业园林局:因违反《四川省木材运输管理条例》,受到林业行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'LY005', + text: + '市林业园林局:因违反《四川省自然保护区管理条例》、《四川省天然林保护条例》、《四川省森林公园管理条例》,受到林业行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'LY006', + text: '市林业园林局:因违反《四川省绿化条例》、《成都市古树名木保护管理规定》,受到林业行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'LY007', + text: + '市林业园林局:因违反《森林病虫害防治条例》、《植物检疫条例》、《四川省植物检疫条例》,受到林业行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'LY008', + text: '市林业园林局:因违反《森林防火条例》,受到林业行政主管部门行政处罚的' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'LU', text: '市旅游局' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'LU001', + text: '市旅游局:因违反《中华人民共和国旅游法》,受到旅游行政管理部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'LU002', + text: '市旅游局:因违反《旅行社条例》,受到旅游行政管理部门处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'LU003', + text: '市旅游局:因违反《中国公民出国旅游管理办法》,受到旅游行政管理部门处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'LU004', + text: '市旅游局:因违反《四川省旅游条例》,受到旅游行政管理部门处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'LU005', + text: '市旅游局:因违反《成都市旅游业促进条例》,受到旅游行政管理部门处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'LU006', + text: '市旅游局:因违反《旅行社条例实施细则》,受到旅游行政管理部门处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'LU007', + text: '市旅游局:因违反《导游人员管理条例》,受到旅游行政管理部门处罚的' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'DC', text: '成调队' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'DC001', text: '成调队:统计违法行为处罚信息' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'YC', text: '市烟草专卖局' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'YC001', text: '市烟草专卖局:行政处罚' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'SH', text: '市水务局' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH001', + text: '市水务局:因违反《四川省城市供水条例》,受到城市供水行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH002', + text: '市水务局:因违反《城市供水条例》,受到城市供水行政主管部门或者其授权的单位行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH003', + text: '市水务局:因违反《成都市城市供水管理条例》,受到城市供水行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH004', + text: '市水务局:因违反《城市供水水质管理规定》,受到直辖市、市、县人民政府城市供水主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH005', + text: '市水务局:因违反《中华人民共和国水法》,受到县级以上人民政府水行政主管部门或者流域管理机构行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH006', + text: '市水务局:因违反《中华人民共和国防洪法》,受到水行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH007', + text: '市水务局:因违反《中华人民共和国河道管理条例》,受到县级以上地方人民政府河道主管机关行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH008', + text: '市水务局:因违反《四川省城市排水管理条例》,受到县级以上地方人民政府城市排水行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH009', + text: + '市水务局:因违反《成都市市政工程设施管理条例》,受到市市政工程设施行政主管部门、区市政工程设施管理部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH010', + text: '市水务局:因违反《成都市城市排水设施管理实施办法》,受到市市政工程主管部门或委托的单位行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH011', + text: '市水务局:因违反《城镇排水与污水处理条例》,受到城镇排水主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH012', + text: '市水务局:因违反《四川省城市节约用水管理办法》,受到城市建设行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH013', + text: '市水务局:因违反《成都市节约用水管理条例》,受到水行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH014', + text: '市水务局:因违反《水库大坝安全管理条例》,受到大坝主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH015', + text: + '市水务局:因违反《四川省〈中华人民共和国水法〉实施办法》,受到县级以上水行政主管部门或流域管理机构行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH016', + text: '市水务局:因违反《入河排污口监督管理办法》,受到县级以上地方人民政府行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH017', + text: '市水务局:因违反《中华人民共和国水法》,受到县级以上地方人民政府经济综合主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH018', + text: + '市水务局:因违反《取水许可和水资源费征收管理条例》,受到县级以上地方人民政府水行政主管部门或者流域管理机构行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH019', + text: '市水务局:因违反《成都市水资源管理条例》,受到当地水行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH020', + text: '市水务局:因违反《取水许可监督管理办法》,受到水行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH021', + text: '市水务局:因违反《四川省都江堰水利工程管理条例》,受到县级以上水行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH022', + text: '市水务局:因违反《四川省水利工程管理条例》,受到县级以上水行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH023', + text: '市水务局:因违反《中华人民共和国水土保持法》,受到县级人民政府水行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH024', + text: + '市水务局:因违反《四川省〈中华人民共和国水土保持法〉实施办法》,受到县级以上地方人民政府水行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH025', + text: '市水务局:因违反《《建设项目水资源论证管理办法》,受到水行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH026', + text: + '市水务局:因违反《开发建设项目水土保持方案编报审批管理规定》,受到县级以上人民政府水行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH027', + text: '市水务局:因违反《开发建设项目水土保持设施验收管理办法》,受到水行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH028', + text: '市水务局:因违反《水利工程质量事故处理暂行规定》,受到县以上水行政主管部门或经授权的流域机构行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH029', + text: '市水务局:因违反《成都市地下水资源管理办法》,受到水行政主管部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH030', + text: '市水务局:因违反《取水许可监督管理办法》,受到取水许可审批机关行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH031', + text: + '市水务局:因违反《中华人民共和国安全生产法》,受到安全生产监督管理部门和其他负有安全生产监督管理职责的部门行政处罚的' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SH032', + text: '市水务局:因违反《四川省长江水源涵养保护条例》,受到县级以上人民政府有关部门行政处罚的' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'BZ', text: '市委编办' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'BZ001', + text: '市委编办:因违反《事业单位登记管理暂行条例》,受到事业单位登记管理机关处罚的' + }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'CZ', text: '市财政局' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'CZ001', text: '市财政局:行政处罚' }, + { s_field_name: '违法行为类型', s_field: 'illegal_type', value: 'SJ', text: '市审计局' }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SJ001', + text: + '市审计局:对被审计单位拒绝或拖延提供与审计事项有关资料,或者提供的资料不真实、不完整的,或者拖延、拒绝、阻碍检查,拒不改正的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SJ002', + text: '市审计局:对被审计单位违反国家规定的财务收支行为的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SJ003', + text: '市审计局:对单位和个人截留、挪用、骗取国家建设资金,违反国家投资建设项目有关规定行为的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SJ004', + text: '市审计局:对企业和个人隐瞒应当上缴的财政收入,截留代收的财政收入,及其他不缴或者少缴财政收入行为的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SJ005', + text: + '市审计局:对企业与个人骗取、挪用财政资金以及政府承贷或者担保的外国政府贷款、国际金融组织贷款,从无偿使用的财政资金以及政府承贷或者担保的外国政府贷款、国际金融组织贷款中非法获益,及其他违反规定使用、骗取财政资金以及其他政府承贷或者担保的外国政府贷款、国际金融组织贷款行为的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SJ006', + text: + '市审计局:对单位和个人违反规定印制财政收入票据,转借、串用、代开财政收入票据,伪造、变造、买卖、擅自销毁财政收入票据,伪造、使用伪造的财政收入票据监(印)制章的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SJ007', + text: '市审计局:对单位和个人违反财务管理的规定,私存私放财政资金或者其他公款的处罚' + }, + { + s_field_name: '违法行为类型', + s_field: 'illegal_type', + value: 'SJ008', + text: '市审计局:对建设单位或者代建单位未按规定提请办理竣工决(结)算审计的处罚' + }, + { s_field_name: '处罚种类', s_field: 'PENALIZE_TYPE', value: '1', text: '警告' }, + { s_field_name: '处罚种类', s_field: 'PENALIZE_TYPE', value: '2', text: '罚款' }, + { s_field_name: '处罚种类', s_field: 'PENALIZE_TYPE', value: '3', text: '没收违法所得、没收非法财物' }, + { s_field_name: '处罚种类', s_field: 'PENALIZE_TYPE', value: '4', text: '责令停产停业' }, + { s_field_name: '处罚种类', s_field: 'PENALIZE_TYPE', value: '5', text: '暂扣许可证' }, + { s_field_name: '处罚种类', s_field: 'PENALIZE_TYPE', value: '6', text: '暂扣执照' }, + { s_field_name: '处罚种类', s_field: 'PENALIZE_TYPE', value: '7', text: '吊销许可证' }, + { s_field_name: '处罚种类', s_field: 'PENALIZE_TYPE', value: '8', text: '吊销执照' }, + { s_field_name: '处罚种类', s_field: 'PENALIZE_TYPE', value: '9', text: '行政拘留' }, + { s_field_name: '处罚种类', s_field: 'PENALIZE_TYPE', value: '99', text: '法律、行政法规规定的其他行政处罚' }, + { s_field_name: '处罚执行情况', s_field: 'condition_type', value: '10', text: '已执行' }, + { s_field_name: '处罚执行情况', s_field: 'condition_type', value: '11', text: '正常执行' }, + { s_field_name: '处罚执行情况', s_field: 'condition_type', value: '12', text: '强制执行' }, + { s_field_name: '处罚执行情况', s_field: 'condition_type', value: '13', text: '分期(延期)执行' }, + { s_field_name: '处罚执行情况', s_field: 'condition_type', value: '20', text: '未执行' }, + { s_field_name: '处罚执行情况', s_field: 'condition_type', value: '21', text: '部分未执行' }, + { s_field_name: '处罚执行情况', s_field: 'condition_type', value: '22', text: '全部未执行' }, + { s_field_name: '未执行原因类别', s_field: 'uncondition_type', value: '1', text: '当事人无履行能力' }, + { s_field_name: '未执行原因类别', s_field: 'uncondition_type', value: '2', text: '违法款物失控' }, + { s_field_name: '未执行原因类别', s_field: 'uncondition_type', value: '3', text: '有关部门不配合' }, + { s_field_name: '未执行原因类别', s_field: 'uncondition_type', value: '4', text: '当事人不配合' }, + { s_field_name: '未执行原因类别', s_field: 'uncondition_type', value: '5', text: '当事人失踪' }, + { s_field_name: '未执行原因类别', s_field: 'uncondition_type', value: '9', text: '其他' }, + { s_field_name: '企业级别代码', s_field: 'OWN_TO', value: '2', text: '中央' }, + { s_field_name: '企业级别代码', s_field: 'OWN_TO', value: '3', text: '省属' }, + { s_field_name: '企业级别代码', s_field: 'OWN_TO', value: '99', text: '其它' }, + { s_field_name: '企业级别代码', s_field: 'OWN_TO', value: '6', text: '街道、镇、乡' }, + { s_field_name: '出资方式代码', s_field: 'CON_FORM', value: '1', text: '货币' }, + { s_field_name: '出资方式代码', s_field: 'CON_FORM', value: '2', text: '实物' }, + { s_field_name: '出资方式代码', s_field: 'CON_FORM', value: '3', text: '知识产权' }, + { s_field_name: '出资方式代码', s_field: 'CON_FORM', value: '9', text: '债权' }, + { s_field_name: '出资方式代码', s_field: 'CON_FORM', value: '8', text: '高新技术成果' }, + { s_field_name: '出资方式代码', s_field: 'CON_FORM', value: '4', text: '土地使用权' }, + { s_field_name: '出资方式代码', s_field: 'CON_FORM', value: '7', text: '股权' }, + { s_field_name: '出资方式代码', s_field: 'CON_FORM', value: '5', text: '劳务' }, + { s_field_name: '出资方式代码', s_field: 'CON_FORM', value: 'X', text: '其他' }, + { s_field_name: '投资人类型', s_field: 'STD_INV_NATURE', value: '10', text: '法人股东' }, + { s_field_name: '投资人类型', s_field: 'STD_INV_NATURE', value: '11', text: '企业法人' }, + { s_field_name: '投资人类型', s_field: 'STD_INV_NATURE', value: '12', text: '事业法人' }, + { s_field_name: '投资人类型', s_field: 'STD_INV_NATURE', value: '13', text: '社团法人' }, + { s_field_name: '投资人类型', s_field: 'STD_INV_NATURE', value: '14', text: '机关法人' }, + { s_field_name: '投资人类型', s_field: 'STD_INV_NATURE', value: '15', text: '外商投资企业' }, + { s_field_name: '投资人类型', s_field: 'STD_INV_NATURE', value: '20', text: '自然人股东' }, + { s_field_name: '投资人类型', s_field: 'STD_INV_NATURE', value: '21', text: '农民自然人' }, + { s_field_name: '投资人类型', s_field: 'STD_INV_NATURE', value: '22', text: '非农民自然人' }, + { s_field_name: '投资人类型', s_field: 'STD_INV_NATURE', value: '30', text: '外国(地区)投资者' }, + { s_field_name: '投资人类型', s_field: 'STD_INV_NATURE', value: '31', text: '外国(地区)企业' }, + { s_field_name: '投资人类型', s_field: 'STD_INV_NATURE', value: '32', text: '外国(地区)经济组织' }, + { s_field_name: '投资人类型', s_field: 'STD_INV_NATURE', value: '33', text: '外商投资投资性公司' }, + { s_field_name: '投资人类型', s_field: 'STD_INV_NATURE', value: '34', text: '外商投资创业投资企业' }, + { s_field_name: '投资人类型', s_field: 'STD_INV_NATURE', value: '35', text: '外籍自然人' }, + { s_field_name: '投资人类型', s_field: 'STD_INV_NATURE', value: '36', text: '华侨' }, + { s_field_name: '投资人类型', s_field: 'STD_INV_NATURE', value: '40', text: '合伙企业' }, + { s_field_name: '投资人类型', s_field: 'STD_INV_NATURE', value: '50', text: '个人独资企业' }, + { s_field_name: '投资人类型', s_field: 'STD_INV_NATURE', value: '90', text: '其他投资者' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'ABW', text: '阿鲁巴' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'AFG', text: '阿富汗' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'AGO', text: '安哥拉' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'AIA', text: '安圭拉' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'ALB', text: '阿尔巴尼亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'AND', text: '安道尔' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'ANT', text: '荷属安的列斯' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'ARE', text: '阿联酋' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'ARG', text: '阿根廷' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'ARM', text: '亚美尼亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'ASM', text: '美属萨摩亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'ATA', text: '南极洲' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'ATF', text: '法属南部领土' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'ATG', text: '安提瓜和巴布达' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'AUS', text: '澳大利亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'AUT', text: '奥地利' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'AZE', text: '阿塞拜疆' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'BDI', text: '布隆迪' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'BEL', text: '比利时' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'BEN', text: '贝宁' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'BFA', text: '布基纳法索' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'BGD', text: '孟加拉国' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'BGR', text: '保加利亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'BHR', text: '巴林' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'BHS', text: '巴哈马' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'BIH', text: '波黑' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'BLR', text: '白俄罗斯' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'BLZ', text: '伯利兹' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'BMU', text: '百慕大' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'BOL', text: '玻利维亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'BRA', text: '巴西' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'BRB', text: '巴巴多斯' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'BRN', text: '文莱' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'BTN', text: '不丹' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'BVT', text: '布维岛' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'BWA', text: '博茨瓦纳' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'CAF', text: '中非' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'CAN', text: '加拿大' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'CCK', text: '科科斯(基林)群岛' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'CHE', text: '瑞士' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'CHL', text: '智利' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'CHN', text: '中国' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'CIV', text: '科特迪瓦' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'CMR', text: '喀麦隆' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'COD', text: '刚果(金)' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'COG', text: '刚果(布)' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'COK', text: '库克群岛' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'COL', text: '哥伦比亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'COM', text: '科摩罗' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'CPV', text: '佛得角' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'CRI', text: '哥斯达黎加' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'CUB', text: '古巴' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'CXR', text: '圣诞岛' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'CYM', text: '开曼群岛' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'CYP', text: '塞浦路斯' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'CZE', text: '捷克' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'DEU', text: '德国' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'DJI', text: '吉布提' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'DMA', text: '多米尼克' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'DNK', text: '丹麦' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'DOM', text: '多米尼加共和国' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'DZA', text: '阿尔及利亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'ECU', text: '厄瓜多尔' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'EGY', text: '埃及' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'ERI', text: '厄立特里亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'ESH', text: '西撒哈拉' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'ESP', text: '西班牙' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'EST', text: '爱沙尼亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'ETH', text: '埃塞俄比亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'FIN', text: '芬兰' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'FJI', text: '斐济' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'FLK', text: '福克兰群岛(马尔维纳斯)' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'FRA', text: '法国' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'FRO', text: '法罗群岛' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'FSM', text: '密克罗尼西亚联邦' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'GAB', text: '加蓬' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'GBR', text: '英国' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'GEO', text: '格鲁吉亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'GHA', text: '加纳' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'GIB', text: '直布罗陀' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'GIN', text: '几内亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'GLP', text: '瓜德罗普' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'GMB', text: '冈比亚Gambia' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'GNB', text: '几内亚比绍' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'GNQ', text: '赤道几内亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'GRC', text: '希腊' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'GRD', text: '格林纳达' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'GRL', text: '格陵兰' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'GTM', text: '危地马拉' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'GUF', text: '法属圭亚那' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'GUM', text: '关岛' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'GUY', text: '圭亚那' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'HKG', text: '香港' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'HMD', text: '赫德岛和麦克唐纳岛' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'HND', text: '洪都拉斯' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'HRV', text: '克罗地亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'HTI', text: '海地' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'HUN', text: '匈牙利' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'IDN', text: '印度尼西亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'IND', text: '印度' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'IOT', text: '英属印度洋领土' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'IRL', text: '爱尔兰' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'IRN', text: '伊朗' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'IRQ', text: '伊拉克' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'ISL', text: '冰岛' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'ISR', text: '以色列' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'ITA', text: '意大利' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'JAM', text: '牙买加' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'JOR', text: '约旦' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'JPN', text: '日本' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'KAZ', text: '哈萨克斯坦' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'KEN', text: '肯尼亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'KGZ', text: '吉尔吉斯斯坦' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'KHM', text: '柬埔寨' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'KIR', text: '基里巴斯' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'KNA', text: '圣基茨和尼维斯' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'KOR', text: '韩国' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'KWT', text: '科威特' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'LAO', text: '老挝' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'LBN', text: '黎巴嫩' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'LBR', text: '利比里亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'LBY', text: '利比亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'LCA', text: '圣卢西亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'LIE', text: '列支敦士登' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'LKA', text: '斯里兰卡' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'LSO', text: '莱索托' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'LTU', text: '立陶宛' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'LUX', text: '卢森堡' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'LVA', text: '拉脱维亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'MAC', text: '澳门' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'MAR', text: '摩洛哥' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'MCO', text: '摩纳哥' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'MDA', text: '摩尔多瓦' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'MDG', text: '马达加斯加' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'MDV', text: '马尔代夫' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'MEX', text: '墨西哥' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'MHL', text: '马绍尔群岛' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'MKD', text: '前南马其顿' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'MLI', text: '马里' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'MLT', text: '马耳他' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'MMR', text: '缅甸' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'MNG', text: '蒙古' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'MNP', text: '北马里亚纳' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'MOZ', text: '莫桑比克' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'MRT', text: '毛里塔尼亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'MSR', text: '蒙特塞拉特' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'MTQ', text: '马提尼克' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'MUS', text: '毛里求斯' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'MWI', text: '马拉维' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'MYS', text: '马来西亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'MYT', text: '马约特' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'NAM', text: '纳米比亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'NCL', text: '新喀里多尼亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'NER', text: '尼日尔' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'NFK', text: '诺福克岛' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'NGA', text: '尼日利亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'NIC', text: '尼加拉瓜' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'NIU', text: '纽埃' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'NLD', text: '荷兰' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'NOR', text: '挪威' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'NPL', text: '尼泊尔' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'NRU', text: '瑙鲁' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'NZL', text: '新西兰' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'OMN', text: '阿曼' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'PAK', text: '巴基斯坦' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'PAN', text: '巴拿马' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'PCN', text: '皮特凯恩群岛' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'PER', text: '秘鲁' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'PHL', text: '菲律宾' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'PLW', text: '帕劳' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'PNG', text: '巴布亚新几内亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'POL', text: '波兰' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'PRI', text: '波多黎各' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'PRK', text: '朝鲜' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'PRT', text: '葡萄牙' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'PRY', text: '巴拉圭' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'PSE', text: '巴勒斯坦' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'PYF', text: '法属波利尼西亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'QAT', text: '卡塔尔' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'REU', text: '留尼汪' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'ROM', text: '罗马尼亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'RUS', text: '俄罗斯联邦' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'RWA', text: '卢旺达' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'SAU', text: '沙特阿拉伯' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'SDN', text: '苏丹' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'SEN', text: '塞内加尔' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'SGP', text: '新加坡' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'SGS', text: '南乔治亚岛和南桑德韦奇岛' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'SHN', text: '圣赫勒拿' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'SJM', text: '斯瓦尔巴群岛' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'SLB', text: '所罗门群岛' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'SLE', text: '塞拉利昂' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'SLV', text: '萨尔多瓦' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'SMR', text: '圣马力诺' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'SOM', text: '索马里' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'SPM', text: '圣皮埃尔和密克隆' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'STP', text: '圣多美和普林西比' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'SUR', text: '苏里南' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'SVK', text: '斯洛伐克' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'SVN', text: '斯洛文尼亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'SWE', text: '瑞典' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'SWZ', text: '斯威士兰' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'SYC', text: '塞舌尔' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'SYR', text: '叙利亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'TCA', text: '特克斯科斯群岛' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'TCD', text: '乍得' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'TGO', text: '多哥' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'THA', text: '泰国' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'TJK', text: '塔吉克斯坦' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'TKL', text: '托克劳' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'TKM', text: '土库曼斯坦' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'TMP', text: '东帝汶' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'TON', text: '汤加' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'TTO', text: '特立尼达和多巴哥' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'TUN', text: '突尼斯' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'TUR', text: '土耳其' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'TUV', text: '图瓦卢' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'TWN', text: '台湾' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'TZA', text: '坦桑尼亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'UGA', text: '乌干达' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'UKR', text: '乌克兰' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'UMI', text: '美国本土外小岛屿' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'URY', text: '乌拉圭' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'USA', text: '美国' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'UZB', text: '乌兹别克斯坦' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'VAT', text: '梵蒂冈' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'VCT', text: '圣文森特和格林纳丁斯' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'VEN', text: '委内瑞拉' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'VGB', text: '英属维尔京群岛' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'VIR', text: '美属维尔京群岛' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'VNM', text: '越南' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'VUT', text: '瓦努阿图' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'WLF', text: '瓦利斯和富图纳' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'WSM', text: '萨摩亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'YEM', text: '也门' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'ZAF', text: '南非' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'ZMB', text: '赞比亚' }, + { s_field_name: '国家(地区)代码', s_field: 'COUNTRY', value: 'ZWE', text: '津巴布韦' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'AFA', text: '阿富汗尼' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'ALL', text: '列克' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'DZD', text: '阿尔及利亚第纳尔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'ADP', text: '安道尔比赛塔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'AON', text: '新克瓦查' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'AZM', text: '阿塞拜疆马纳特' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'ARS', text: '阿根廷比索' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'AUD', text: '澳大利亚元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'ATS', text: '奥地利先令' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'BSD', text: '巴哈马元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'BHD', text: '巴林第纳尔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'BDT', text: '塔卡' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'AMD', text: '亚美尼亚达姆' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'BBD', text: '巴巴多斯元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'BEF', text: '比利时法郎' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'BMD', text: '百慕大元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'BTN', text: '努尔特鲁姆' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'BOB', text: '玻璃瓦诺' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'BWP', text: '普拉' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'BZD', text: '伯利兹元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'SBD', text: '所罗门群岛元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'BND', text: '文莱元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'BGL', text: '列弗' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'MMK', text: '缅元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'BIF', text: '布隆迪法郎' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'KHR', text: '瑞尔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'CAD', text: '加元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'CVE', text: '佛得角埃斯库多' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'KYD', text: '开曼群岛元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'LKR', text: '斯里兰卡卢比' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'CLP', text: '智利比索' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'CNY', text: '人民币' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'COP', text: '哥伦比亚比索' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'KMF', text: '科摩罗法郎' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'CRC', text: '哥斯达黎加科郎' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'HRK', text: '克罗地亚库纳' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'CUP', text: '古巴比索' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'CYP', text: '塞浦路斯镑' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'CZK', text: '捷克克郎' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'DKK', text: '丹麦克郎' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'DOP', text: '多米尼加比索' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'SVC', text: '萨尔瓦多科郎' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'ETB', text: '埃塞俄比亚比尔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'ERN', text: '纳克法' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'EEK', text: '克罗姆' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'FKP', text: '福克兰群岛镑' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'FJD', text: '斐济元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'FIM', text: '马克' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'FRF', text: '法国法郎' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'DJF', text: '吉布提法郎' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'GMD', text: '达拉西' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'DEM', text: '德国马克' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'GHC', text: '塞地' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'GIP', text: '直布罗陀镑' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'GRD', text: '德拉克马' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'GTQ', text: '格查尔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'GNF', text: '几内亚法郎' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'GYD', text: '圭亚那元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'HTG', text: '古德' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'HNL', text: '伦皮拉' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'HKD', text: '香港元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'HUF', text: '福林' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'ISK', text: '冰岛克郎' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'INR', text: '印度卢比' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'IDR', text: '卢比' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'IRR', text: '伊朗里亚尔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'IQD', text: '伊拉克第纳尔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'IEP', text: '爱尔兰镑' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'ILS', text: '锡克尔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'ITL', text: '意大利里拉' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'JMD', text: '牙买加元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'JPY', text: '日元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'KZT', text: '坚戈' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'JOD', text: '约旦第纳尔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'KES', text: '肯尼亚先令' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'KPW', text: '北朝鲜圆' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'KRW', text: '圆' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'KWD', text: '科威特第纳尔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'KGS', text: '索姆' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'LAK', text: '基普' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'LBP', text: '黎巴嫩镑' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'LSL', text: '罗提' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'LVL', text: '拉托维亚拉特' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'LRD', text: '利比里亚元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'LYD', text: '利比亚第纳尔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'LTL', text: '立陶宛' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'LUF', text: '卢森堡法郎' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'MOP', text: '澳门元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'MGF', text: '马尔加什法郎' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'MWK', text: '克瓦查' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'MYR', text: '马来西亚林吉特' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'MVR', text: '卢菲亚' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'MTL', text: '马尔他里拉' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'MRO', text: '乌吉亚' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'MUR', text: '毛里求斯卢比' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'MXN', text: '墨西哥比索' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'MNT', text: '图格里克' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'MDL', text: '摩尔瓦多列伊' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'MAD', text: '摩洛哥迪拉姆' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'MZM', text: '麦梯卡尔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'OMR', text: '阿曼里亚尔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'NAD', text: '纳米比亚元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'NPR', text: '尼泊尔卢比' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'NLG', text: '荷兰盾' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'ANG', text: '荷属安的列斯盾' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'AWG', text: '阿鲁巴盾' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'VUV', text: '瓦图' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'NZD', text: '新西兰元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'NIO', text: '金科多巴' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'NGN', text: '奈拉' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'NOK', text: '挪威克郎' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'PKR', text: '巴基斯坦卢比' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'PAB', text: '巴波亚' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'PGK', text: '基那' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'PYG', text: '瓜拉尼' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'PEN', text: '索尔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'PHP', text: '菲律宾比索' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'PTE', text: '葡萄牙埃斯库多' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'GWP', text: '几内亚比绍比索' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'TPE', text: '东帝汶埃斯库多' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'QAR', text: '卡塔尔里亚尔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'ROL', text: '列伊' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'RWF', text: '卢旺达法郎' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'SHP', text: '圣赫勒拿镑' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'STD', text: '多布拉' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'SAR', text: '沙特里亚尔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'SCR', text: '塞舌尔卢比' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'SLL', text: '利昂' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'SGD', text: '新加坡元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'SKK', text: '斯洛伐克克郎' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'VND', text: '盾' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'SIT', text: '托拉尔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'SOS', text: '索马里先令' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'ZAR', text: '兰特' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'ZWD', text: '津巴布韦元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'ESP', text: '西班牙比赛塔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'SDD', text: '苏丹第纳尔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'SRG', text: '苏里南盾' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'SZL', text: '里兰吉尼' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'SEK', text: '瑞典克郎' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'CHF', text: '瑞士法郎' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'SYP', text: '叙利亚镑' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'THB', text: '泰国铢' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'TOP', text: '邦加' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'TTD', text: '特立尼达和多巴哥元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'AED', text: 'UAE迪拉姆' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'TND', text: '突尼斯第纳尔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'TRL', text: '土耳其里拉' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'TMM', text: '马纳特' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'UGX', text: '乌干达先令' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'MKD', text: '第纳尔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'RUB', text: '俄罗斯卢布' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'EGP', text: '埃及镑' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'GBP', text: '英镑' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'TZS', text: '坦桑尼亚先令' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'USD', text: '美元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'UYU', text: '乌拉圭比索' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'UZS', text: '乌兹别克斯坦苏姆' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'VEB', text: '博利瓦' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'WST', text: '塔拉' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'YER', text: '也门里亚尔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'YUN', text: '南斯拉夫第纳尔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'ZMK', text: '克瓦查' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'TWD', text: '新台湾元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'XAF', text: 'CFA法郎BEAC' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'XCD', text: '东加勒比元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'XOF', text: 'CFA法郎BCEAO' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'XPF', text: 'CFP法郎' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'XBA', text: '欧洲货币合成单位(EURCO)' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'XBB', text: '欧洲货币(单位EMU.-6)' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'XBC', text: '欧洲账户9单位(E.U.A.-9)' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'XBD', text: '欧洲账户17单位(E.U.A.-17)' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'XAU', text: '黄金' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'XDR', text: '特别提款权' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'XAG', text: '银' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'XPT', text: '铂白金' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'XTS', text: '为测试特别保留的代码' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'XPD', text: '钯' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'TJS', text: '索莫尼' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'BYR', text: '白俄罗斯卢布' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'BGN', text: '保加利亚列弗' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'CDF', text: '刚果法郎' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'BAM', text: '可自由兑换标记' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'EUR', text: '欧元' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'MXV', text: '墨西哥发展单位' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'UAH', text: '格里夫纳' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'BOV', text: 'Mvdol' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'PLN', text: '兹罗提' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'BRL', text: '巴西瑞尔' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'CLF', text: '发展单位' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'USN', text: '美元次日' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'USS', text: '美元同日' }, + { s_field_name: '币种代码', s_field: 'CURRENCY', value: 'ASF', text: '记账瑞士法郎' }, + //新增公司章程数据字典 + { s_field_name: '股东与股东大会', s_field: 'share_holder', value: 'sh_hold_1', text: '股东权利及义务' }, + { s_field_name: '股东与股东大会', s_field: 'share_holder', value: 'sh_hold_2', text: '股东(大)会规定及职权' }, + { + s_field_name: '股东与股东大会', + s_field: 'share_holder', + value: 'sh_hold_3', + text: '股东(大)会会议的召集召开提案与通知' + }, + { s_field_name: '股东与股东大会', s_field: 'share_holder', value: 'sh_hold_4', text: '股东(大)会的表决与决议' }, + { s_field_name: '董监高', s_field: 'director', value: 'director_1', text: '董事要求/职权及义务' }, + { s_field_name: '董监高', s_field: 'director', value: 'director_2', text: '董事会职权及规定' }, + { s_field_name: '董监高', s_field: 'director', value: 'director_3', text: '监事要求/职权及义务' }, + { s_field_name: '董监高', s_field: 'director', value: 'director_4', text: '监事会职权及规定' }, + { s_field_name: '董监高', s_field: 'director', value: 'director_5', text: '总经理及其他高级管理人员' }, + { + s_field_name: '公司合并、分离、解散和清算', + s_field: 'company', + value: 'company_1', + text: '公司合并、分离、解散和清算' + }, + { + s_field_name: '财务会计制度利润分配和内部审计', + s_field: 'finance', + value: 'finance_1', + text: '财务会计制度、利润分配和内部审计' + }, + /*****************************新增对公客户* 开始 *********************************************/ + //新增对公客户证件类型 + { s_field_name: '新增对公客户证件类型', s_field: 'STD_ZB_CERT_TYP', value: '20', text: '组织机构代码' }, + { s_field_name: '新增对公客户证件类型', s_field: 'STD_ZB_CERT_TYP', value: '26', text: '统一社会信用代码' }, + //新增对公客户类型 + { s_field_name: '新增对公客户类型', s_field: 'STD_ZB_CUS_TYPE', value: '211', text: '企业法人' }, + { s_field_name: '新增对公客户类型', s_field: 'STD_ZB_CUS_TYPE', value: '212', text: '企业非法人' }, + { s_field_name: '新增对公客户类型', s_field: 'STD_ZB_CUS_TYPE', value: '221', text: '事业单位' }, + { s_field_name: '新增对公客户类型', s_field: 'STD_ZB_CUS_TYPE', value: '231', text: '社会团体' }, + { s_field_name: '新增对公客户类型', s_field: 'STD_ZB_CUS_TYPE', value: '241', text: '党政机关' }, + { s_field_name: '新增对公客户类型', s_field: 'STD_ZB_CUS_TYPE', value: '250', text: '镇,村经济组织' }, + { s_field_name: '新增对公客户类型', s_field: 'STD_ZB_CUS_TYPE', value: '260', text: '个体工商户' }, + { s_field_name: '新增对公客户类型', s_field: 'STD_ZB_CUS_TYPE', value: '243', text: '其他机构' }, + { s_field_name: '新增对公客户类型', s_field: 'STD_ZB_CUS_TYPE', value: '299', text: '非企业法人' }, + /*****************************新增对公客户* 结束 *********************************************/ + /*****************************综合收益率试算录入* 开始 *********************************************/ + //客户评级 + { s_field_name: '客户评级', s_field: 'STD_ZB_CREDIT_GRADE', value: '11', text: 'AAA' }, + { s_field_name: '客户评级', s_field: 'STD_ZB_CREDIT_GRADE', value: '12', text: 'AA+' }, + { s_field_name: '客户评级', s_field: 'STD_ZB_CREDIT_GRADE', value: '13', text: 'AA' }, + { s_field_name: '客户评级', s_field: 'STD_ZB_CREDIT_GRADE', value: '14', text: 'AA-' }, + { s_field_name: '客户评级', s_field: 'STD_ZB_CREDIT_GRADE', value: '15', text: 'A+' }, + { s_field_name: '客户评级', s_field: 'STD_ZB_CREDIT_GRADE', value: '16', text: 'A' }, + { s_field_name: '客户评级', s_field: 'STD_ZB_CREDIT_GRADE', value: '17', text: 'A-' }, + { s_field_name: '客户评级', s_field: 'STD_ZB_CREDIT_GRADE', value: '20', text: 'BBB+' }, + { s_field_name: '客户评级', s_field: 'STD_ZB_CREDIT_GRADE', value: '21', text: 'BBB' }, + { s_field_name: '客户评级', s_field: 'STD_ZB_CREDIT_GRADE', value: '22', text: 'BBB-' }, + { s_field_name: '客户评级', s_field: 'STD_ZB_CREDIT_GRADE', value: '23', text: 'BB+' }, + { s_field_name: '客户评级', s_field: 'STD_ZB_CREDIT_GRADE', value: '24', text: 'BB' }, + { s_field_name: '客户评级', s_field: 'STD_ZB_CREDIT_GRADE', value: '25', text: 'B' }, + { s_field_name: '客户评级', s_field: 'STD_ZB_CREDIT_GRADE', value: '40', text: 'D' }, + //拟贷款期限类型 + { s_field_name: '拟贷款期限类型', s_field: 'LOAN_TERM_TYPE', value: '3M', text: '3个月以内(含)' }, + { s_field_name: '拟贷款期限类型', s_field: 'LOAN_TERM_TYPE', value: '6M', text: '3-6个月(含)' }, + { s_field_name: '拟贷款期限类型', s_field: 'LOAN_TERM_TYPE', value: '1Y', text: '6个月-1年(含)' }, + { s_field_name: '拟贷款期限类型', s_field: 'LOAN_TERM_TYPE', value: '2Y', text: '1-2年(含)' }, + { s_field_name: '拟贷款期限类型', s_field: 'LOAN_TERM_TYPE', value: '3Y', text: '2-3年(含)' }, + { s_field_name: '拟贷款期限类型', s_field: 'LOAN_TERM_TYPE', value: '4Y', text: '3-4年(含)' }, + { s_field_name: '拟贷款期限类型', s_field: 'LOAN_TERM_TYPE', value: '5Y', text: '4-5年(含)' }, + { s_field_name: '拟贷款期限类型', s_field: 'LOAN_TERM_TYPE', value: 'N', text: '5年以上' }, + //拟存款期限类型 + { s_field_name: '拟存款期限类型', s_field: 'DEP_TERM_TYPE', value: '10001', text: '3个月' }, + { s_field_name: '拟存款期限类型', s_field: 'DEP_TERM_TYPE', value: '10002', text: '6个月' }, + { s_field_name: '拟存款期限类型', s_field: 'DEP_TERM_TYPE', value: '10003', text: '一年' }, + { s_field_name: '拟存款期限类型', s_field: 'DEP_TERM_TYPE', value: '10004', text: '三年' }, + { s_field_name: '拟存款期限类型', s_field: 'DEP_TERM_TYPE', value: '10005', text: '五年' }, + { s_field_name: '拟存款期限类型', s_field: 'DEP_TERM_TYPE', value: '10006', text: '其他' }, + /*****************************综合收益率试算录入* 结束 *********************************************/ + /*****************************个人电话营销* 开始 *********************************************/ + //个人电话营销营销结果 + { s_field_name: '个人电话营销营销结果', s_field: 'TelMarketingResult', value: '0100', text: '电话未接听' }, + { s_field_name: '个人电话营销营销结果', s_field: 'TelMarketingResult', value: '0200', text: '非本人电话' }, + { s_field_name: '个人电话营销营销结果', s_field: 'TelMarketingResult', value: '0300', text: '接起后直接挂断' }, + { s_field_name: '个人电话营销营销结果', s_field: 'TelMarketingResult', value: '0400', text: '关机' }, + { + s_field_name: '个人电话营销营销结果', + s_field: 'TelMarketingResult', + value: '0500', + text: '不愿意听,回复不需要' + }, + { s_field_name: '个人电话营销营销结果', s_field: 'TelMarketingResult', value: '0600', text: '有意向办理' }, + { s_field_name: '个人电话营销营销结果', s_field: 'TelMarketingResult', value: '0700', text: '其他' }, + //个人电话营销作废原因 + { s_field_name: '个人电话营销作废原因', s_field: 'DhyxRefuse', value: '2', text: '不符合准入条件' }, + { s_field_name: '个人电话营销作废原因', s_field: 'DhyxRefuse', value: '1', text: '营销客群范围选择错误' }, + //个人电话营销退回原因 + { s_field_name: '个人电话营销退回原因', s_field: 'TelTaskBackReason', value: '0001', text: '工作任务待重新分配' }, + //个人电话营销客户类型 + { + s_field_name: '个人电话营销客户类型', + s_field: 'TelMarketingCustomerType', + value: '9010', + text: '存量按揭客户' + }, + { + s_field_name: '个人电话营销客户类型', + s_field: 'TelMarketingCustomerType', + value: '9020', + text: '优易贷存量激活客户' + }, + { + s_field_name: '个人电话营销客户类型', + s_field: 'TelMarketingCustomerType', + value: '9030', + text: '随意分存量激活客户' + }, + { + s_field_name: '个人电话营销客户类型', + s_field: 'TelMarketingCustomerType', + value: '9040', + text: '优易贷存量未续客户' + }, + { + s_field_name: '个人电话营销客户类型', + s_field: 'TelMarketingCustomerType', + value: '9050', + text: '随意分存量未续客户' + }, + { + s_field_name: '个人电话营销客户类型', + s_field: 'TelMarketingCustomerType', + value: '9060', + text: '以往被拒客户' + }, + { + s_field_name: '个人电话营销客户类型', + s_field: 'TelMarketingCustomerType', + value: '9070', + text: '点击优易贷查看额度客户' + }, + { + s_field_name: '个人电话营销客户类型', + s_field: 'TelMarketingCustomerType', + value: '9080', + text: '到期续贷客户' + }, + { + s_field_name: '个人电话营销客户类型', + s_field: 'TelMarketingCustomerType', + value: '9090', + text: '额度过期客户' + }, + { + s_field_name: '个人电话营销客户类型', + s_field: 'TelMarketingCustomerType', + value: '9095', + text: '额度即将到期客户' + }, + { s_field_name: '个人电话营销客户类型', s_field: 'TelMarketingCustomerType', value: '0100', text: '按揭客户' }, + { + s_field_name: '个人电话营销客户类型', + s_field: 'TelMarketingCustomerType', + value: '0110', + text: '有代发但单位未入围优易贷客户' + }, + { + s_field_name: '个人电话营销客户类型', + s_field: 'TelMarketingCustomerType', + value: '0120', + text: '有代发且单位已入围优易贷客户' + }, + { + s_field_name: '个人电话营销客户类型', + s_field: 'TelMarketingCustomerType', + value: '0130', + text: '无代发但单位入围优易贷客户' + }, + { + s_field_name: '个人电话营销客户类型', + s_field: 'TelMarketingCustomerType', + value: '0140', + text: '优易贷存量激活客户' + }, + { + s_field_name: '个人电话营销客户类型', + s_field: 'TelMarketingCustomerType', + value: '0150', + text: '随意分存量激活客户' + }, + { + s_field_name: '个人电话营销客户类型', + s_field: 'TelMarketingCustomerType', + value: '0160', + text: '优易贷存量未续客户' + }, + { + s_field_name: '个人电话营销客户类型', + s_field: 'TelMarketingCustomerType', + value: '0170', + text: '随意分存量未续客户' + }, + { + s_field_name: '个人电话营销客户类型', + s_field: 'TelMarketingCustomerType', + value: '0180', + text: '以往被拒客户' + }, + { + s_field_name: '个人电话营销客户类型', + s_field: 'TelMarketingCustomerType', + value: '0190', + text: '点击优易贷查看额度客户' + }, + { + s_field_name: '个人电话营销客户类型', + s_field: 'TelMarketingCustomerType', + value: '0200', + text: '到期续贷客户' + }, + { + s_field_name: '个人电话营销客户类型', + s_field: 'TelMarketingCustomerType', + value: '0210', + text: '公积金联名卡客户' + }, + { + s_field_name: '个人电话营销客户类型', + s_field: 'TelMarketingCustomerType', + value: '0220', + text: '公积金**强客户' + }, + /*****************************个人电话营销* 结束 *********************************************/ + //***********************************个贷催收和贷后 开始***************************************** + //催收对象 + { s_field_name: '催收对象', s_field: 'CONTACTORTYPE', text: '借款人本人', value: '0101' }, + { s_field_name: '催收对象', s_field: 'CONTACTORTYPE', text: '共同还款人', value: '0103' }, + { s_field_name: '催收对象', s_field: 'CONTACTORTYPE', text: '共同借款人', value: '0104' }, + { s_field_name: '催收对象', s_field: 'CONTACTORTYPE', text: '借款人父母', value: '0105' }, + { s_field_name: '催收对象', s_field: 'CONTACTORTYPE', text: '借款人子女', value: '0106' }, + { s_field_name: '催收对象', s_field: 'CONTACTORTYPE', text: '关联企业会计', value: '0107' }, + { s_field_name: '催收对象', s_field: 'CONTACTORTYPE', text: '借款人同事', value: '0108' }, + { s_field_name: '催收对象', s_field: 'CONTACTORTYPE', text: '借款人下属', value: '0109' }, + { s_field_name: '催收对象', s_field: 'CONTACTORTYPE', text: '借款人朋友', value: '0110' }, + { s_field_name: '催收对象', s_field: 'CONTACTORTYPE', text: '其它', value: '0111' }, + { s_field_name: '催收对象', s_field: 'CONTACTORTYPE', text: '借款人配偶', value: '02' }, + { s_field_name: '催收对象', s_field: 'CONTACTORTYPE', text: '担保人', value: '03' }, + //催收方式 + { s_field_name: '催收方式', s_field: 'CONTACTMETHOD', value: '1', text: '短信催收' }, + { s_field_name: '催收方式', s_field: 'CONTACTMETHOD', value: '2', text: '电话催收' }, + { s_field_name: '催收方式', s_field: 'CONTACTMETHOD', value: '3', text: '上门催收' }, + { s_field_name: '催收方式', s_field: 'CONTACTMETHOD', value: '4', text: '信函催收' }, + { s_field_name: '催收方式', s_field: 'CONTACTMETHOD', value: '5', text: '外包催收' }, + { s_field_name: '催收方式', s_field: 'CONTACTMETHOD', value: '9', text: '其它' }, + //催收结果 + { s_field_name: '催收结果', s_field: 'CONTACTRESULT', value: '0301', text: '已上门,客户同意还款' }, + { s_field_name: '催收结果', s_field: 'CONTACTRESULT', value: '0302', text: '已上门,客户提出异议' }, + { s_field_name: '催收结果', s_field: 'CONTACTRESULT', value: '0303', text: '已上门,客户报告特殊情况' }, + { s_field_name: '催收结果', s_field: 'CONTACTRESULT', value: '02', text: '已上门,客户本人不在' }, + { s_field_name: '催收结果', s_field: 'CONTACTRESULT', value: '0305', text: '已上门,无人在' }, + { s_field_name: '催收结果', s_field: 'CONTACTRESULT', value: '0306', text: '已上门,地址错误' }, + { s_field_name: '催收结果', s_field: 'CONTACTRESULT', value: '0399', text: '其它' }, + //客户解释 + { s_field_name: '客户解释', s_field: 'EXPLANATIONCODE', value: '01', text: '遗忘' }, + { s_field_name: '客户解释', s_field: 'EXPLANATIONCODE', value: '02', text: '离家' }, + { s_field_name: '客户解释', s_field: 'EXPLANATIONCODE', value: '03', text: '经济困难' }, + { s_field_name: '客户解释', s_field: 'EXPLANATIONCODE', value: '04', text: '房屋问题' }, + { s_field_name: '客户解释', s_field: 'EXPLANATIONCODE', value: '05', text: '车辆问题' }, + { s_field_name: '客户解释', s_field: 'EXPLANATIONCODE', value: '06', text: '家庭问题' }, + { s_field_name: '客户解释', s_field: 'EXPLANATIONCODE', value: '07', text: '其它' }, + //电话簿 + //与联系人关系 + { s_field_name: '与联系人关系', s_field: 'RELATIONSHIP', text: '关联企业会计', value: '0107' }, + { s_field_name: '与联系人关系', s_field: 'RELATIONSHIP', text: '借款人同事', value: '0108' }, + { s_field_name: '与联系人关系', s_field: 'RELATIONSHIP', text: '借款人下属', value: '0109' }, + { s_field_name: '与联系人关系', s_field: 'RELATIONSHIP', text: '借款人朋友', value: '0110' }, + { s_field_name: '与联系人关系', s_field: 'RELATIONSHIP', text: '其它', value: '0111' }, + //电话类型 + { s_field_name: '电话类型', s_field: 'TELTYPE', text: '手机号码', value: '1' }, + { s_field_name: '电话类型', s_field: 'TELTYPE', text: '单位电话', value: '2' }, + { s_field_name: '电话类型', s_field: 'TELTYPE', text: '住宅电话', value: '3' }, + { s_field_name: '电话类型', s_field: 'TELTYPE', text: '传真电话', value: '4' }, + { s_field_name: '电话类型', s_field: 'TELTYPE', text: '紧急联系方式', value: '5' }, + //是否最新 + { s_field_name: '是否最新', s_field: 'ISNEW', text: '是', value: '1' }, + { s_field_name: '是否最新', s_field: 'ISNEW', text: '否', value: '2' }, + //贷后检查结论 + { s_field_name: '检查结论', s_field: 'result_type', text: '正常维护', value: '1' }, + { s_field_name: '检查结论', s_field: 'result_type', text: '加强监控', value: '2' }, + { s_field_name: '检查结论', s_field: 'result_type', text: '风险预警', value: '3' }, + { s_field_name: '检查结论', s_field: 'result_type', text: '下调风险分类', value: '4' }, + { s_field_name: '检查结论', s_field: 'result_type', text: '加入黑名单', value: '5' }, + { s_field_name: '检查结论', s_field: 'result_type', text: '加入灰名单', value: '6' }, + { s_field_name: '检查结论', s_field: 'result_type', text: '介入催收', value: '7' }, + { s_field_name: '检查结论', s_field: 'result_type', text: '面作本次检查', value: '8' }, + //催收等级 + { s_field_name: '催收等级', s_field: 'COLLECTIONLEVEL', text: 'A', value: 'A' }, + { s_field_name: '催收等级', s_field: 'COLLECTIONLEVEL', text: 'B', value: 'B' }, + { s_field_name: '催收等级', s_field: 'COLLECTIONLEVEL', text: 'C', value: 'C' }, + { s_field_name: '催收等级', s_field: 'COLLECTIONLEVEL', text: 'D', value: 'D' }, + { s_field_name: '催收等级', s_field: 'COLLECTIONLEVEL', text: 'E', value: 'E' }, + //贷后检查类型 + { s_field_name: '贷后检查类型', s_field: 'INSPECTTYPE', text: '房屋按揭业务贷款检查', value: '01' }, + { s_field_name: '贷后检查类型', s_field: 'INSPECTTYPE', text: '资金用途检查', value: '02' }, + { s_field_name: '贷后检查类型', s_field: 'INSPECTTYPE', text: '经营类贷款检查', value: '03' }, + { s_field_name: '贷后检查类型', s_field: 'INSPECTTYPE', text: '消费类贷款检查', value: '04' }, + //检查结论(业务类) + { s_field_name: '检查结论', s_field: 'INSPECTATION', text: '正常维护', value: '01' }, + { s_field_name: '检查结论', s_field: 'INSPECTATION', text: '加强监控', value: '02' }, + { s_field_name: '检查结论', s_field: 'INSPECTATION', text: '风险预警', value: '03' }, + { s_field_name: '检查结论', s_field: 'INSPECTATION', text: '改变检查频率', value: '04' }, + { s_field_name: '检查结论', s_field: 'INSPECTATION', text: '下调风险分类', value: '05' }, + { s_field_name: '检查结论', s_field: 'INSPECTATION', text: '加入黑名单', value: '06' }, + { s_field_name: '检查结论', s_field: 'INSPECTATION', text: '加入灰名单', value: '07' }, + { s_field_name: '检查结论', s_field: 'INSPECTATION', text: '介入催收', value: '08' }, + { s_field_name: '检查结论', s_field: 'INSPECTATION', text: '免做本次检查', value: '09' }, + //检查结论(合作项目) + { s_field_name: '检查结论', s_field: 'CheckResult', text: '正常维护', value: '01' }, + { s_field_name: '检查结论', s_field: 'CheckResult', text: '加强监控', value: '02' }, + { s_field_name: '检查结论', s_field: 'CheckResult', text: '风险预警', value: '03' }, + { s_field_name: '检查结论', s_field: 'CheckResult', text: '暂停合作', value: '05' }, + { s_field_name: '检查结论', s_field: 'CheckResult', text: '停止合作', value: '06' }, + //网贷随意分类别 + { s_field_name: '检查结论', s_field: 'SYFINSPECTATION', text: '正常维护', value: '01' }, + { s_field_name: '检查结论', s_field: 'SYFINSPECTATION', text: '加强监控', value: '02' }, + { s_field_name: '检查结论', s_field: 'SYFINSPECTATION', text: '风险预警', value: '03' }, + //***********************************个贷催收和贷后 结束***************************************** + //***********************************信贷 风险和贷后 开始***************************************** + //解除方式 s_field_name: '解除下次推送时间', s_field: 'next_date_type', + { s_field_name: '解除方式', s_field: 'release_type', value: '10', text: '自动解除' }, + { s_field_name: '解除方式', s_field: 'release_type', value: '20', text: '人工解除' }, + { s_field_name: '解除方式', s_field: 'release_type', value: '30', text: '不解除' }, + //解除下次推送时间 + { s_field_name: '解除下次推送时间', s_field: 'next_date_type', value: '05', text: 'T+1' }, + { s_field_name: '解除下次推送时间', s_field: 'next_date_type', value: '10', text: 'T+7' }, + { s_field_name: '解除下次推送时间', s_field: 'next_date_type', value: '20', text: 'T+14' }, + { s_field_name: '解除下次推送时间', s_field: 'next_date_type', value: '30', text: 'T+30' }, + { s_field_name: '解除下次推送时间', s_field: 'next_date_type', value: '40', text: 'T+60' }, + { s_field_name: '解除下次推送时间', s_field: 'next_date_type', value: '50', text: 'T+90' }, + { s_field_name: '解除下次推送时间', s_field: 'next_date_type', value: '60', text: '不再推送' }, + //任务状态 + { s_field_name: "任务状态", s_field: "task_status", value: "10", text: "未处理" }, + { s_field_name: "任务状态", s_field: "task_status", value: "20", text: "已处理" }, + { s_field_name: "任务状态", s_field: "task_status", value: "30", text: "自动终止" }, + //审批状态 + { s_field_name: "审批状态", s_field: "approve_status", value: '000', text: '待发起' }, + { s_field_name: "审批状态", s_field: "approve_status", value: '111', text: '审批中' }, + { s_field_name: "审批状态", s_field: "approve_status", value: '991', text: '追回' }, + { s_field_name: "审批状态", s_field: "approve_status", value: '992', text: '打回' }, + { s_field_name: "审批状态", s_field: "approve_status", value: '993', text: '重报' }, + //检查状态 + { s_field_name: "检查状态", s_field: "check_status", value: '01', text: '待处理' }, + { s_field_name: "检查状态", s_field: "check_status", value: '02', text: '处理中' }, + { s_field_name: "检查状态", s_field: "check_status", value: '03', text: '已处理' }, + { s_field_name: "检查状态", s_field: "check_status", value: '05', text: '未处理' }, + { s_field_name: "检查状态", s_field: "check_status", value: '06', text: '无需处理' }, + { s_field_name: "检查状态", s_field: "check_status", value: '09', text: '检查完成' }, + { s_field_name: "检查状态", s_field: "check_status", value: '10', text: '作废' }, + //待办检查状态 + { s_field_name: "待办检查状态", s_field: "up_check_status", value: '01', text: '待处理' }, + { s_field_name: "待办检查状态", s_field: "up_check_status", value: '02', text: '处理中' }, + //***********************************信贷 风险和贷后 结束***************************************** + //***********************************辅助功能开始***************************************** + //还款方式 + { s_field_name: '还款方式', s_field: 'Repayment', value: '1', text: '按月摊销本金' }, + { s_field_name: '还款方式', s_field: 'Repayment', value: '2', text: '到期还本' }, + //手续费收取方式 + { s_field_name: '手续费收取方式', s_field: 'brokerage', value: '1', text: '首期全额支付手续费' }, + { s_field_name: '手续费收取方式', s_field: 'brokerage', value: '2', text: '按月等额支付手续费' }, + //证件类型选择 + { s_field_name: '输入证件类型', s_field: 'IdentTp', value: '1', text: '组织机构代码' }, + { s_field_name: '输入证件类型', s_field: 'IdentTp', value: '2', text: '统一社会信用代码' }, + //贷款试算类型 + { s_field_name: '贷款试算类型', s_field: 'refundType', value: '等额本金', text: '等额本金' }, + { s_field_name: '贷款试算类型', s_field: 'refundType', value: '等额本息', text: '等额本息' }, + { s_field_name: '贷款试算类型', s_field: 'refundType', value: '按月付息', text: '按月付息' }, + //随意分按月期限 + { s_field_name: '随意分按月期限', s_field: 'NUM', value: '12', text: '12' }, + { s_field_name: '随意分按月期限', s_field: 'NUM', value: '24', text: '24' }, + { s_field_name: '随意分按月期限', s_field: 'NUM', value: '36', text: '36' }, + { s_field_name: '随意分按月期限', s_field: 'NUM', value: '48', text: '48' }, + { s_field_name: '随意分按月期限', s_field: 'NUM', value: '60', text: '60' }, + //***********************************辅助功能结束***************************************** + //意见反馈 + { s_field_name: '意见反馈', s_field: 'YJFK', value: '1', text: '产品问题' }, + { s_field_name: '意见反馈', s_field: 'YJFK', value: '2', text: '系统使用问题' }, + { s_field_name: '意见反馈', s_field: 'YJFK', value: '3', text: '业务服务问题' }, + { s_field_name: '意见反馈', s_field: 'YJFK', value: '3', text: '其他' }, + //***********************************短信类型开始***************************************** + //短信场景识别码 + { + s_field_name: '短信场景识别码', + s_field: 'SendMessageCode', + value: 'S2022011910484099', + text: '优易贷预授信提用' + }, + { + s_field_name: '短信场景识别码', + s_field: 'SendMessageCode', + value: 'S2022011910491168', + text: '随意分已批未提' + }, + { + s_field_name: '短信场景识别码', + s_field: 'SendMessageCode', + value: 'S2022011910493181', + text: '随意分申请邀请' + }, + //***********************************短信类型结束***************************************** + //性别 + { s_field_name: '性别', s_field: 'sex', value: '0', text: '全部' }, + { s_field_name: '性别', s_field: 'sex', value: '1', text: '男' }, + { s_field_name: '性别', s_field: 'sex', value: '2', text: '女' }, + //客户状态 + { s_field_name: '客户状态', s_field: 'custState', value: '00', text: '正式客户(预登记状态)' }, + { s_field_name: '客户状态', s_field: 'custState', value: '20', text: '正式客户' }, + { s_field_name: '客户状态', s_field: 'custState', value: '70', text: '潜在客户' }, + { s_field_name: '客户状态', s_field: 'custState', value: '71', text: '潜在客户(预登记状态)' }, + { s_field_name: '客户状态', s_field: 'custState', value: 'CA', text: '待补录客户' }, + //客户类型 + { s_field_name: '客户类型', s_field: 'custType', value: '999', text: '待补录客户' }, + { s_field_name: '客户类型', s_field: 'custType', value: '211', text: '企业法人' }, + { s_field_name: '客户类型', s_field: 'custType', value: '212', text: '企业非法人' }, + { s_field_name: '客户类型', s_field: 'custType', value: '221', text: '事业单位' }, + { s_field_name: '客户类型', s_field: 'custType', value: '231', text: '社会团体' }, + { s_field_name: '客户类型', s_field: 'custType', value: '241', text: '党政机关' }, + { s_field_name: '客户类型', s_field: 'custType', value: '250', text: '镇,村经济组织' }, + { s_field_name: '客户类型', s_field: 'custType', value: '260', text: '个体工商户' }, + { s_field_name: '客户类型', s_field: 'custType', value: '299', text: '其他机构' }, + { s_field_name: '客户类型', s_field: 'custType', value: '243', text: '非企业法人' }, + //对公营销任务类型 + { s_field_name: '对公营销任务类型', s_field: 'marketType', value: '1', text: '对公客户拜访营销任务' }, + { s_field_name: '对公营销任务类型', s_field: 'marketType', value: '2', text: '招商引资企业营销台账任务' }, + { s_field_name: '对公营销任务类型', s_field: 'marketType', value: '3', text: '公司精准信息摸排专项营销任务' }, + { s_field_name: '对公营销任务类型', s_field: 'marketType', value: '4', text: '精准营销专项对公营销任务' }, + //营销方式 + { s_field_name: '营销方式', s_field: 'marketMode', value: '1', text: '驻点宣传' }, + { s_field_name: '营销方式', s_field: 'marketMode', value: '2', text: '一对一办理' }, + { s_field_name: '营销方式', s_field: 'marketMode', value: '3', text: '流动扫楼' }, + { s_field_name: '营销方式', s_field: 'marketMode', value: '4', text: '产品宣讲会' }, + //渠道类型 + { s_field_name: '渠道类型', s_field: 'cerType', value: '1', text: '优质代发' }, + { s_field_name: '渠道类型', s_field: 'cerType', value: '2', text: '公司线条' }, + { s_field_name: '渠道类型', s_field: 'cerType', value: '3', text: '员工资源' }, + //续贷审批权限 + { s_field_name: '续贷审批权限', s_field: 'xdSpQx', value: '1', text: '分支机构权限内' }, + { s_field_name: '续贷审批权限', s_field: 'xdSpQx', value: '2', text: '分支机构权限外' }, + //续贷业务类型 + { s_field_name: '续贷业务类型', s_field: 'xdYwLx', value: '1', text: '一般贷款' }, + { s_field_name: '续贷业务类型', s_field: 'xdYwLx', value: '2', text: '银承' }, + { s_field_name: '续贷业务类型', s_field: 'xdYwLx', value: '3', text: '贴现' }, + { s_field_name: '续贷业务类型', s_field: 'xdYwLx', value: '4', text: '保函' }, + //担保方式 + { s_field_name: '担保方式', s_field: 'dbFs', value: '1', text: '信用' }, + { s_field_name: '担保方式', s_field: 'dbFs', value: '2', text: '抵押' }, + { s_field_name: '担保方式', s_field: 'dbFs', value: '3', text: '质押' }, + { s_field_name: '担保方式', s_field: 'dbFs', value: '4', text: '保证' }, + //续贷业务进度 + { s_field_name: '续贷业务进度', s_field: 'xdYwJd', value: '1', text: '调查中' }, + { s_field_name: '续贷业务进度', s_field: 'xdYwJd', value: '2', text: '审批中' }, + { s_field_name: '续贷业务进度', s_field: 'xdYwJd', value: '3', text: '已审批通过' }, + { s_field_name: '续贷业务进度', s_field: 'xdYwJd', value: '4', text: '已签订合同' }, + { s_field_name: '续贷业务进度', s_field: 'xdYwJd', value: '5', text: '待放款' }, + { s_field_name: '续贷业务进度', s_field: 'xdYwJd', value: '6', text: '已放款' }, + /*****************************对公营销* 开始 *********************************************/ + //是、否、待定 + { s_field_name: '是、否、待定', s_field: 'YesOrNoOrUnd', value: '1', text: '是' }, + { s_field_name: '是、否、待定', s_field: 'YesOrNoOrUnd', value: '2', text: '否' }, + { s_field_name: '是、否、待定', s_field: 'YesOrNoOrUnd', value: '3', text: '待定' }, + //是、否 + { s_field_name: '是、否', s_field: 'YesOrNo', value: '1', text: '是' }, + { s_field_name: '是、否', s_field: 'YesOrNo', value: '2', text: '否' }, + //客户分类 + { s_field_name: '客户分类', s_field: 'CUSTOMER_CLASS', value: '1', text: '存量公司精准客户' }, + { s_field_name: '客户分类', s_field: 'CUSTOMER_CLASS', value: '2', text: '新客户-公司精准名单内客户' }, + { s_field_name: '客户分类', s_field: 'CUSTOMER_CLASS', value: '3', text: '新客户-拟申报公司精准客户' }, + { s_field_name: '客户分类', s_field: 'CUSTOMER_CLASS', value: '4', text: '精准营销渠道建设' }, + //客户分类2 + { s_field_name: '客户分类2', s_field: 'customerType', value: '1', text: '新客户-拟报精准入围' }, + { s_field_name: '客户分类2', s_field: 'customerType', value: '2', text: '新客户-总行精准名单内' }, + { s_field_name: '客户分类2', s_field: 'customerType', value: '3', text: '存量精准客户-新增授信' }, + { s_field_name: '客户分类2', s_field: 'customerType', value: '4', text: '存量精准客户-还后续贷' }, + //控股类型 + { s_field_name: '控股类型', s_field: 'HOLDING_TYPE', value: '1', text: '央企' }, + { s_field_name: '控股类型', s_field: 'HOLDING_TYPE', value: '2', text: '省属国有单位' }, + { s_field_name: '控股类型', s_field: 'HOLDING_TYPE', value: '3', text: '市属国有企业' }, + { s_field_name: '控股类型', s_field: 'HOLDING_TYPE', value: '4', text: '非国有控股' }, + //客户行业 + { s_field_name: '客户行业', s_field: 'CUSTOMR_INDUSTRY_CLASS', value: '1', text: '医院' }, + { s_field_name: '客户行业', s_field: 'CUSTOMR_INDUSTRY_CLASS', value: '2', text: '医药' }, + { s_field_name: '客户行业', s_field: 'CUSTOMR_INDUSTRY_CLASS', value: '3', text: '教育' }, + { s_field_name: '客户行业', s_field: 'CUSTOMR_INDUSTRY_CLASS', value: '4', text: '军工' }, + { s_field_name: '客户行业', s_field: 'CUSTOMR_INDUSTRY_CLASS', value: '5', text: '城市服务(水、电、气等)' }, + { s_field_name: '客户行业', s_field: 'CUSTOMR_INDUSTRY_CLASS', value: '6', text: '饮料饮品(含酒类)' }, + { s_field_name: '客户行业', s_field: 'CUSTOMR_INDUSTRY_CLASS', value: '7', text: '电子信息' }, + { s_field_name: '客户行业', s_field: 'CUSTOMR_INDUSTRY_CLASS', value: '8', text: '新基建' }, + { s_field_name: '客户行业', s_field: 'CUSTOMR_INDUSTRY_CLASS', value: '9', text: '光伏' }, + { s_field_name: '客户行业', s_field: 'CUSTOMR_INDUSTRY_CLASS', value: '10', text: '其他' }, + //客户行业2 + { s_field_name: '客户行业2', s_field: 'customrIndustryClass', value: '1', text: '医药制造业' }, + { s_field_name: '客户行业2', s_field: 'customrIndustryClass', value: '2', text: '软件和信息服务业' }, + { s_field_name: '客户行业2', s_field: 'customrIndustryClass', value: '3', text: 'IT、计算机硬件设备业' }, + { s_field_name: '客户行业2', s_field: 'customrIndustryClass', value: '4', text: '航空、航天及船舶等制造业' }, + { s_field_name: '客户行业2', s_field: 'customrIndustryClass', value: '5', text: '设备制造业' }, + { s_field_name: '客户行业2', s_field: 'customrIndustryClass', value: '6', text: '水、燃气服务业' }, + { s_field_name: '客户行业2', s_field: 'customrIndustryClass', value: '7', text: '食品、酒类制造业' }, + { s_field_name: '客户行业2', s_field: 'customrIndustryClass', value: '8', text: '其他行业-轻资产' }, + { s_field_name: '客户行业2', s_field: 'customrIndustryClass', value: '9', text: '其他行业-重资产' }, + //资本市场:上市公司、拟上市公司、上市企业母/子公司、非上市企业 + { s_field_name: '资本市场', s_field: 'CAPITAL_MARKET', value: '1', text: '上市企业' }, + { s_field_name: '资本市场', s_field: 'CAPITAL_MARKET', value: '2', text: '拟上市企业' }, + { s_field_name: '资本市场', s_field: 'CAPITAL_MARKET', value: '3', text: '上市企业母/子公司' }, + { s_field_name: '资本市场', s_field: 'CAPITAL_MARKET', value: '4', text: '其他非上市企业' }, + //招商引资类型 + { s_field_name: '招商引资类型', s_field: 'INVESTMENT_TYPE', value: '1', text: '总行名单内招引客户' }, + { s_field_name: '招商引资类型', s_field: 'INVESTMENT_TYPE', value: '2', text: '已上报总行纳入招引名单管理客户' }, + { s_field_name: '招商引资类型', s_field: 'INVESTMENT_TYPE', value: '3', text: '拟报总行招引客户' }, + { s_field_name: '招商引资类型', s_field: 'INVESTMENT_TYPE', value: '4', text: '招商引资渠道建设类拜访' }, + { s_field_name: '招商引资类型', s_field: 'INVESTMENT_TYPE', value: '5', text: '非招商引资客户' }, + //营销方向 + { s_field_name: '营销方向', s_field: 'MARKET_DIRECTION', value: '1', text: '资产业务' }, + { s_field_name: '营销方向', s_field: 'MARKET_DIRECTION', value: '2', text: '负债业务' }, + { s_field_name: '营销方向', s_field: 'MARKET_DIRECTION', value: '3', text: '营销信息获取' }, + { s_field_name: '营销方向', s_field: 'MARKET_DIRECTION', value: '4', text: '其他' }, + //拜访目的 + { s_field_name: '拜访目的', s_field: 'VISIT_PURPOSE', value: '1', text: '初次拜访' }, + { s_field_name: '拜访目的', s_field: 'VISIT_PURPOSE', value: '2', text: '达成合作意向' }, + { s_field_name: '拜访目的', s_field: 'VISIT_PURPOSE', value: '3', text: '确定授信方案' }, + { s_field_name: '拜访目的', s_field: 'VISIT_PURPOSE', value: '4', text: '存量客户维护' }, + //拜访情况分类 + { s_field_name: '拜访情况分类', s_field: 'visitsClass', value: '1', text: '还需继续营销跟进' }, + { s_field_name: '拜访情况分类', s_field: 'visitsClass', value: '2', text: '拟上报授信审批' }, + { s_field_name: '拜访情况分类', s_field: 'visitsClass', value: '3', text: '已报授信审批' }, + { s_field_name: '拜访情况分类', s_field: 'visitsClass', value: '4', text: '不准备继续跟进' }, + //参与领导分类 + { s_field_name: '参与领导分类', s_field: 'PARTICIPATELEADER_TYPE', value: '1', text: '分支行行长' }, + { s_field_name: '参与领导分类', s_field: 'PARTICIPATELEADER_TYPE', value: '2', text: '分支行分管行长' }, + //招商企业类型 + { s_field_name: '招商企业类型', s_field: 'ENTERPRISES_TYPE', value: '1', text: '总行名单内客户' }, + { s_field_name: '招商企业类型', s_field: 'ENTERPRISES_TYPE', value: '2', text: '已上报总行纳入招引名单管理客户' }, + { s_field_name: '招商企业类型', s_field: 'ENTERPRISES_TYPE', value: '3', text: '拟报总行招引客户' }, + //营销目标 + { s_field_name: '营销目标', s_field: 'MARKETTARGET', value: '1', text: '负债业务' }, + { s_field_name: '营销目标', s_field: 'MARKETTARGET', value: '2', text: '资产业务' }, + { s_field_name: '营销目标', s_field: 'MARKETTARGET', value: '3', text: '信息摸排' }, + { s_field_name: '营销目标', s_field: 'MARKETTARGET', value: '4', text: '其他' }, + //招引项目当前进展 + { s_field_name: '招引项目当前进展', s_field: 'INVITPROJECT_PROGESS', value: '1', text: '项目洽谈阶段' }, + { s_field_name: '招引项目当前进展', s_field: 'INVITPROJECT_PROGESS', value: '2', text: '初步达成投资意向' }, + { s_field_name: '招引项目当前进展', s_field: 'INVITPROJECT_PROGESS', value: '3', text: '签订投资意向书' }, + { s_field_name: '招引项目当前进展', s_field: 'INVITPROJECT_PROGESS', value: '4', text: '项目规划' }, + { s_field_name: '招引项目当前进展', s_field: 'INVITPROJECT_PROGESS', value: '5', text: '项目签约' }, + { s_field_name: '招引项目当前进展', s_field: 'INVITPROJECT_PROGESS', value: '6', text: '项目公司登记' }, + { s_field_name: '招引项目当前进展', s_field: 'INVITPROJECT_PROGESS', value: '7', text: '项目建设' }, + { s_field_name: '招引项目当前进展', s_field: 'INVITPROJECT_PROGESS', value: '8', text: '项目运营' }, + //营销进展 + //1-前期营销、2-初步达成合作意向、3-资料收集中、4-分支行权限内已审批、5-已报总行授信审批、6-完成授信审批、7-已提用 + { s_field_name: '营销进展', s_field: 'MARKET_PROGESS', value: '1', text: '前期营销' }, + { s_field_name: '营销进展', s_field: 'MARKET_PROGESS', value: '2', text: '初步达成合作意向' }, + { s_field_name: '营销进展', s_field: 'MARKET_PROGESS', value: '3', text: '资料收集中' }, + { s_field_name: '营销进展', s_field: 'MARKET_PROGESS', value: '4', text: '分支行权限内已审批' }, + { s_field_name: '营销进展', s_field: 'MARKET_PROGESS', value: '5', text: '已报总行授信审批' }, + { s_field_name: '营销进展', s_field: 'MARKET_PROGESS', value: '6', text: '完成授信审批' }, + { s_field_name: '营销进展', s_field: 'MARKET_PROGESS', value: '7', text: '已提用' }, + //开户类型 + // 基本户、专户、一般户、其他类型账户、尚未开户 + { s_field_name: '开户类型', s_field: 'OPENACCOUNT_TYPE', value: '1', text: '基本户' }, + { s_field_name: '开户类型', s_field: 'OPENACCOUNT_TYPE', value: '2', text: '专户' }, + { s_field_name: '开户类型', s_field: 'OPENACCOUNT_TYPE', value: '3', text: '一般户' }, + { s_field_name: '开户类型', s_field: 'OPENACCOUNT_TYPE', value: '4', text: '其他类型账户' }, + { s_field_name: '开户类型', s_field: 'OPENACCOUNT_TYPE', value: '5', text: '尚未开户' }, + //对公流程查询 + //业务类型 + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '110', text: '客户托管' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '111', text: '客户入网申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '112', text: '授信方案申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '113', text: '授信方案变更(重审)申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '120', text: '客户移交' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '121', text: '客户重大信息修改' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '130', text: '客户共享' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '131', text: '客户合并' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '140', text: '担保公司合作申请/变更/重审' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '141', text: '担保公司协议冻结' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '142', text: '担保公司协议解冻' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '143', text: '担保公司评级授信' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '144', text: '分离式保函协议冻结/解冻' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '145', text: '分离式保函协议变更/重审' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '150', text: '问题客户认定' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '151', text: '问题客户注销' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '210', text: '贷款申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '230', text: '贷款展期申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '231', text: '贷款利率预约调整申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '232', text: '出具远期受让承诺转化' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '233', text: '出具远期受让承诺注销' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '234', text: '非债申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '235', text: '非债期限调整申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '236', text: '非债合同' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '237', text: '非债出账' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '238', text: '非债还款' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '239', text: '非债提前还款' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '240', text: '非债期限调整合同' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '241', text: '非债期限调整出账' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '245', text: '国内保理申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '250', text: '保函申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '251', text: '银承申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '252', text: '分离式保函申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '253', text: '分离式保函合作申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '260', text: '贴现申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '261', text: '转贴现买入申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '262', text: '转贴现卖出申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '263', text: '委托代理贴现' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '270', text: '资产转让申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '271', text: '贸易融资申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '272', text: '国内信用证开证申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '273', text: '国内信用证代付申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '274', text: '国内信用证注销' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '275', text: '贸易融资展期申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '276', text: '贸易融资展期协议签订' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '277', text: '贸易融资展期出账申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '278', text: '进口信用证增额' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '280', text: '最高额担保合同申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '281', text: '最高额担保合同签订' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '282', text: '最高额担保合同变更' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '283', text: '国内信用证出账申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '284', text: '合同签订及出账' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '285', text: '抵质押品出入库' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '286', text: '保函核销' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '287', text: '还款账号变更' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '288', text: '最高额担保合同重签' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '321', text: '授信额度冻结解冻' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '330', text: '信用评级申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '350', text: '循环额度申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '351', text: '循环授信协议签订' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '352', text: '授信额度申请变更' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '353', text: '循环额度注销' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '360', text: '特色额度申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '370', text: '非专项风险限额申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '371', text: '非专项风险限额变更' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '372', text: '非专项风险限额冻结' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '373', text: '非专项风险限额解冻' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '410', text: '协议/合同流程' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '430', text: '出账流程' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '440', text: '风险分类流程' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '450', text: '提前还款' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '451', text: '押品价值重估' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '460', text: '减值流程' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '490', text: '担保品入库' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '491', text: '担保品出库' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '510', text: '担保变更' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '610', text: '不良资产认定' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '680', text: '资产保全流程' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '761', text: '票据池合作申请流程' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '762', text: '票据池质押担保合同申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '763', text: '票据池合作协议流程' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '764', text: '票据池质押担保合同签订' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '800', text: '保贴额度申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '801', text: '保贴额度变更申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '802', text: '保贴额度重审申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '803', text: '保贴额度续签申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '810', text: '保贴额度流程' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '821', text: '商票贴现出账流程' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '831', text: '商票备款申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '832', text: '贷后检查' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '833', text: '红色预警检查' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '834', text: '预警信号解除' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '835', text: '频率变更' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '840', text: '定期检查注销' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '900', text: '其他流程' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '901', text: '企业信用债买入申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '902', text: '企业信用债卖出申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '903', text: '企业信用债业务申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '904', text: '授信额度申请重审' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '910', text: '担保公司合作申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '911', text: '担保公司合作变更' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '912', text: '担保公司合作重审' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '920', text: '同业客户评级授信申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '921', text: '同业客户授信申请' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '922', text: '还款方式变更' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '966', text: '押品权证变更流程' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '977', text: '企业债主体授信-分支行' }, + { s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '978', text: '企业债主体授信-资金部' }, + /*****************************对公营销* 开始 *********************************************/ + ]); + + /** + * @Description 从服务器查询字典保存至本地 + * @Author ZPFly + * @Date 2021/10/12 + */ + init() { + //TODO 需要通过接口先进行查询然后保存。 + localStorage.setItem("dictData", JSON.stringify(this.dicData)); + // this.queryDictList().then((data: any) => { + // const dictData: any = {}; + // data.forEach((item: any) => { + // if (!dictData[item.dictField]) dictData[item.dictField] = {}; + // dictData[item.dictField][item.sKey] = item.sValue; + // }); + // localStorage.setItem("dictData", JSON.stringify(dictData)); + // }); + } + /** + * @Description 查询数据字典列表 + * @Author ZPFly + * @Date 2021/10/12 + */ + queryDictList() { + const query = { updateTime: new Date() }; + return apiService.general(sysDictInfoApi.searchAll, query, {}).then((response: RestfulResponse) => { + if (response.code == Code.SUCCESS.code) { + return response.data; + } + }); + } + /** + * @Description 根据field获取字典 + * @Author ZPFly + * @Date 2021/10/12 + */ + getOptions(dictField: string) { + let dictData: any = localStorage.getItem("dictData"); + const options: any = []; + dictData = dictData ? JSON.parse(dictData) : {}; + dictData.forEach((item: any) => { + if (item.s_field == dictField){ + options.push(item); + } + }); + return options; + } + + /** + * @Description 根据value, dictField获取字典中文描述 + * @Author ZPFly + * @Date 2021/10/12 + */ + getText(val: any, s_field: any) { + if (!s_field) return val; + if (!val) return val; + let dicOptions = {}, + serviceDictionary = JSON.parse(localStorage.getItem("dictData") || '[]'); + if (typeof serviceDictionary != 'object') { + serviceDictionary = JSON.parse(serviceDictionary); + } + dicOptions[s_field] = serviceDictionary.filter((item: any) => item.s_field === s_field); + let text = dicOptions[s_field].find((item: any) => item.value === val); + if (!text) { + return val; + } + return text.text; + } + + /** + * @description 数组转树形结构 + * @Author ZPFly + * @param {Object} datas [{dictField, sKey, sValue, fSKey }] + */ + arrayToTree(datas: any[]) { + const data = JSON.parse(JSON.stringify(datas)); + const result: any[] = []; + if (!Array.isArray(data)) { + return result; + } + const map: any = {}; + data.forEach((item) => { + map[item.sKey] = item; + }); + data.forEach((item) => { + const parent = map[item.fSKey]; + if (parent) { + (parent.children || (parent.children = [])).push(item); + } else { + result.push(item); + } + }); + return result; + } +} +const dictService = new DictService(); +export default dictService; diff --git a/services/difference.ts b/services/difference.ts new file mode 100644 index 0000000000000000000000000000000000000000..8098b534fb4641eea2dc4e9bf387bc1a6bbe1680 --- /dev/null +++ b/services/difference.ts @@ -0,0 +1,13 @@ +export const difference = (arrar: any[], ...values: any[][]) => { + if (arrar.length < 1) { + return []; + } + if (values.length < 1) { + return arrar; + } + const container = values.flat(); + const result = arrar.filter((v) => { + return !container.includes(v); + }); + return result; +}; diff --git a/services/form-util.service.ts b/services/form-util.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..7b6db081f651f02557187456357bdacc79d60456 --- /dev/null +++ b/services/form-util.service.ts @@ -0,0 +1,90 @@ +class FormUtilService { + /** + * @description: 身份证自定义校验 + * @author luxiaomeng + * @date 2021/8/31 14:22 + */ + idnumValidator: any = (rule: any, value: any, callback: any) => { + //身份证城市 + const aCity: any = { + 11: "北京", + 12: "天津", + 13: "河北", + 14: "山西", + 15: "内蒙古", + 21: "辽宁", + 22: "吉林", + 23: "黑龙江", + 31: "上海", + 32: "江苏", + 33: "浙江", + 34: "安徽", + 35: "福建", + 36: "江西", + 37: "山东", + 41: "河南", + 42: "湖北", + 43: "湖南", + 44: "广东", + 45: "广西", + 46: "海南", + 50: "重庆", + 51: "四川", + 52: "贵州", + 53: "云南", + 54: "西藏", + 61: "陕西", + 62: "甘肃", + 63: "青海", + 64: "宁夏", + 65: "新疆", + 71: "台湾", + 81: "香港", + 82: "澳门", + 91: "国外", + }; + const sBirthday = (value.substr(6, 4) + "-" + Number(value.substr(10, 2)) + "-" + Number(value.substr(12, 2))).replace(/-/g, "/"), + d = new Date(sBirthday); + let sum = 0; + const weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; + const codes = "10X98765432"; + for (let i = 0; i < value.length - 1; i++) { + sum += value[i] * weights[i]; + } + const last = codes[sum % 11]; //计算出来的最后一位身份证号码 + if (!value) { + return callback(); + } else { + if (!/(^\d{15}$)|(^\d{17}(\d|X|x)$)/.test(value)) { + callback("你输入的身份证长度或格式错误"); + } else if (!aCity[parseInt(value.substr(0, 2))]) { + callback("你的身份证地区非法"); + } else if (sBirthday != d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate()) { + callback("身份证上的出生日期非法"); + } else if (value[value.length - 1] != last) { + callback("你输入的身份证号非法"); + } else { + return callback(); + } + } + }; + /** + * @Description: 日期格式化 + * @author zpfly + * @datetime 2021/5/6 11:25 + */ + formatDate(date: Date, format?: string): string { + format = format || "YYYY-MM-dd"; + const pad = (n: number): string => (n < 10 ? `0${n}` : n.toString()); + return format + .replace("YYYY", date.getFullYear().toString()) + .replace("MM", pad(date.getMonth() + 1)) + .replace("dd", pad(date.getDate())) + .replace("DD", pad(date.getDate())) + .replace("HH", pad(date.getHours())) + .replace("mm", pad(date.getMinutes())) + .replace("ss", pad(date.getSeconds())); + } +} +const formUtilService: FormUtilService = new FormUtilService(); +export { formUtilService }; diff --git a/services/global-state.service.ts b/services/global-state.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..7490d2ecba01e580432e4b2dd16118a4b8331db8 --- /dev/null +++ b/services/global-state.service.ts @@ -0,0 +1,14 @@ +class GlobalStateService { + isLogin = false; + loading = false; + + /**loading是否注册到主应用中 + * @author ChenRui + * @date 2021/6/9 17:43 + */ + get isRegister(): boolean { + return !!(window as any).__POWERED_BY_QIANKUN__; + } +} +const globalStateService = new GlobalStateService(); +export { GlobalStateService, globalStateService }; diff --git a/services/list-util.service.ts b/services/list-util.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..63b588cfdc2f6f98cf716b0866481ab235aa36d2 --- /dev/null +++ b/services/list-util.service.ts @@ -0,0 +1,107 @@ +import customerDictConversionFilter from "../filtres/customer-dict-conversion.filter"; +import mathService from "@/services/math.service"; + +class ListUtil { + /** + * @Description: 格式化金额 + * @author LiuBo + * @date 2021/2/22 + * @time 16:27 + * @param value 金额数字 + * @param precision 保留小数位 + */ + doFormatMoney(value: any, precision?: number): string { + precision = precision || 2; // 默认保留两位小数 + if (value != null && !isNaN(Number(value))) { + if (precision != null && precision !== 0) { + value = Number(value).toFixed(precision); + } + } else { + return value; + } + let val = String(value).replace(/\B(?=(\d{3})+(?!\d))/g, ","); + if (precision > 3) { + const idx = val.lastIndexOf("."); + val = val.substring(0, idx) + val.substring(idx).replace(/,/g, ""); + } + return val; + } + /** + * @Description: 格式化金额 + * @author LiuBo + * @date 2021/2/22 + * @time 16:27 + * @param precision 保留小数位 + */ + customerFormatMoney(precision: number): any { + return (row: any, column: any, val: any): string => { + return listUtil.doFormatMoney(val, precision); + }; + } + /** + * @Description: 列表中金额格式化方法 + * @author LiuBo + * @date 2021/2/22 + * @time 16:25 + * @param row 列表行 + * @param column 列表列 + * @param cellValue 当前值 + * @param index 当前列索引 + * @param precision 保留小数位 + */ + formatMoney(row: any, column: any, cellValue: any, index: any, precision?: number): string { + return listUtil.doFormatMoney(cellValue, precision); + } + /** + * @Description: 转换数据字典 + * @author LiuBo + * @date 2021/2/22 + * @time 21:43 + * @param dicName 字典名称 + */ + convertDic(dicName: string): any { + return (row: any, column: any, val: any) => { + if (!!val && val.indexOf(",") > 0) { + const dictValues = val.split(","); + const dictions: string[] = []; + dictValues.forEach((item: any) => { + dictions.push(customerDictConversionFilter(item, dicName)); + }); + // return dictions.join(',') || "字典项为空"; // 去掉‘字典项为空’的描述信息 + return dictions.join(",") || ""; + } else { + // return customerDictConversionFilter(val, dicName) || "字典项为空"; // 此处调用公共方法进行字典转译 // 去掉‘字典项为空’的描述信息 + return customerDictConversionFilter(val, dicName) || ""; // 此处调用公共方法进行字典转译 + } + }; + } + /** + * @Description: 小数转换百分数 + * @author chenminjie + * @date 2021/4/13 + * @time 10:37 + */ + formatPercent(row: any, column: any, cellValue: any): any { + if (cellValue != null && !isNaN(Number(cellValue)) && cellValue != "") { + return mathService.evaluate(`${cellValue}*${100}`, 4) + "%"; + } else { + return ""; + } + } + + /** + * @Description: 小数转换百分数保留十四位小数 + * @author wangyixin + * @date 2021/6/16 + * @time 9:02 + */ + formatPercentEight(row: any, column: any, cellValue: any): any { + if (cellValue != null && !isNaN(Number(cellValue)) && cellValue != "") { + return mathService.evaluate(`${cellValue}*${100}`, 14) + "%"; + } else { + return ""; + } + } +} +const listUtil = new ListUtil(); +export default listUtil; diff --git a/services/math.service.ts b/services/math.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..a054c2f4276971d6170fb7d0df7ac5dfe23d1012 --- /dev/null +++ b/services/math.service.ts @@ -0,0 +1,24 @@ +import { create, all, MathJsStatic, format } from "mathjs"; + +/** + * @description: 精确计算 + * @author ChenRui + * @date 2021/6/9 9:44 + */ +export class MathService { + static DEFAULT_PRECISION = 20; // 默认保留的小数位数 + math: Partial | any = create(all, { number: "BigNumber", precision: MathService.DEFAULT_PRECISION }); + + /** + * @description: 计算函数 + * @param: formula: 计算公式; precision: 保留的小数位数 + * @author ChenRui + * @date 2021/6/9 9:42 + */ + evaluate(formula: string, precision: number = MathService.DEFAULT_PRECISION): void { + const res: any = format(this.math.evaluate(formula), { notation: "fixed", precision: precision }); + return res; + } +} +const mathService: MathService = new MathService(); +export default mathService; diff --git a/services/media.service.ts b/services/media.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..f7e2c682ad4e8571cc1b1d9d11c08582addfe630 --- /dev/null +++ b/services/media.service.ts @@ -0,0 +1,69 @@ +/** + * @Description 多媒体影像存储 + * @Author ZPFly + * @Date 2021/10/12 + */ +import dbService from "@/services/db.service"; +import { MediaFile } from "@/model/entity/MediaFile"; +class MediaService { + static MEDIA_TYPE = { IMAGE: 1, AUDIO: 2, VIDEO: 3 }; + table = dbService.store.multiMedia.name; + /** + * @Description 添加影像记录 + * @Author ZPFly + * @Date 2021/10/13 + */ + add(data: MediaFile) { + return dbService.insert(this.table, data).then((res) => { + console.log("新增影像记录--" + res); + }); + } + /** + * @Description 批量添加影像记录 + * @Author ZPFly + * @Date 2021/10/13 + */ + batAdd(data: MediaFile) { + return dbService.insert(this.table, data).then((res) => { + // alert("新增影像记录--" + res); + }); + } + /** + * @Description 批量更新记录 + * @Author ZPFly + * @Date 2021/10/13 + */ + update(data: any) { + let values: any = []; + if (data instanceof Array) { + values = data; + } else { + values.push(data); + } + dbService.update(this.table, values).then((res) => { + console.log("新增影像记录--" + res); + }); + } + /** + * @Description 根据主键更新记录 + * @Author ZPFly + * @Date 2021/10/12 + */ + updateById(data: MediaFile) { + dbService.update(this.table, [data]).then((res) => { + console.log("更新字典--" + res); + }); + } + /** + * @Description 根据objId获取文件记录 + * @Author ZPFly + * @Date 2021/10/12 + */ + selectByObjId(objId: string) { + return dbService.get(this.table, objId, "objId").then((res) => { + return res; + }); + } +} +const mediaService = new MediaService(); +export default mediaService; diff --git a/services/native.service.ts b/services/native.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..c558f3df37e3a75e4f828a743cec3d6387cf653a --- /dev/null +++ b/services/native.service.ts @@ -0,0 +1,203 @@ +/** + * @Description H5+插件 + * @Author ZPFly + * @Date 2021/10/13 + */ +import mediaService from "@/services/media.service"; + +declare global { + interface Window { + plus: any; //H5+插件 + $bridge: any; + } +} +declare module "vue/types/vue" { + interface Vue { + $native: NativeService; + } +} +import Vue from "vue"; +import { MediaFile } from "@/model/entity/MediaFile"; + +class NativeService { + init() { + Vue.prototype.$native = this; + } + /** + * @Description 拍照 + * @Author ZPFly + * @Date 2021/10/13 + */ + capturePhoto(media: MediaFile) { + const $bridge = window.$bridge; + return new Promise((resolve) => { + $bridge.takePhoto(media, (data: any) => { + mediaService.batAdd(data).then(() => { + alert("插入影像记录"); + }); + resolve(data); + }); + }); + } + /** + * @Description 录音 + * @Author ZPFly + * @Date 2021/10/13 + */ + captureRecord(media: MediaFile) { + const $bridge = window.$bridge; + return new Promise((resolve) => { + const audio = window.plus.audio.getRecorder(); + const path = $bridge.getAudioPath(); + const startRecord = () => { + const fileName = $bridge.generateAudioName(); + audio.record( + { filename: `${path}/${fileName}` }, + (path: string) => { + media.filePath = path; + mediaService.add(media); + startRecord(); + }, + () => { + resolve({}); + } + ); + }; + startRecord(); + }); + } + /** + * @Description 录像 + * @Author ZPFly + * @Date 2021/10/13 + */ + captureVideo(media: MediaFile) { + const $bridge = window.$bridge; + return new Promise((resolve) => { + const path = $bridge.getVideoPath(); + const startCapture = () => { + const cmr = window.plus.camera.getCamera(); + const res = cmr.supportedVideoResolutions[0]; + const fmt = cmr.supportedVideoFormats[0]; + const fileName = $bridge.generateVideoName(); + cmr.startVideoCapture( + (path: any) => { + media.filePath = path; + mediaService.add(media); + startCapture(); + console.log("Capture video success: " + path); + }, + (error: any) => { + console.log("Capture video failed: " + error.message); + resolve({}); + }, + { filename: `${path}/${fileName}`, resolution: res, format: fmt } + ); + }; + startCapture(); + }); + } + /** + * @Description 二维码扫描 + * @Author ZPFly + * @Date 2021/10/13 + */ + qrScan() { + return new Promise((resolve) => { + const plus = window.plus; + // 创建Barcode扫码控件 + const barcode: any = plus.barcode.create("plusBarcode", [plus.barcode.QR], { + top: "100px", + left: "0px", + width: "100%", + height: "500px", + position: "static", + }); + barcode.onmarked = (type: any, result: string) => { + console.log("扫描结果:" + type + "-" + result); + resolve(result); + plus.webview.currentWebview().remove(barcode); + }; + plus.webview.currentWebview().append(barcode); + // 开始识别 + barcode.start(); + }); + } + /** + * @Description 预览图片 + * @Author ZPFly + * @Date 2021/10/13 + */ + previewImage(paths: Array) { + window.plus?.nativeUI.previewImage(paths); + } + /** + * @Description 获取设备信息 + * @Author ZPFly + * @Date 2021/10/13 + */ + getDeviceInfo() { + const plus = window.plus; + // getOAID 获取匿名设备标识符 + return new Promise((resolve, reject) => { + plus.device.getInfo({ + success: (e: any) => { + resolve(e); + console.log("getDeviceInfo success: " + JSON.stringify(e)); + }, + fail: (e: any) => { + reject(e); + console.log("getDeviceInfo failed: " + JSON.stringify(e)); + }, + }); + }); + } + /** + * @Description 获取当前位置信息 + * @Author ZPFly + * @Date 2021/10/13 + */ + getCurrentPosition() { + // 使用百度地图地位模块获取位置信息 + return new Promise((resolve, reject) => { + window.plus.geolocation.getCurrentPosition( + function (p: any) { + resolve(p.coords); + }, + function (e: any) { + reject(e); + }, + { provider: "baidu", coordsType: "bd09ll" } + ); + }); + } + /** + *@Desc 功能描述:云从人脸识别 + *@Author XWH + *Date 2022/2/19 18:24 + */ + cloudWalkBiometrics() { + const $bridge = window.$bridge; + return new Promise((resolve) => { + $bridge.cloudWalkBiometrics({},(data: any) => { + resolve(data); + }); + }); + } + /** + *@Desc 功能描述:新增日程 + *@Author XWH + *Date 2022/2/19 18:27 + */ + addCalendar(params: any) { + const $bridge = window.$bridge; + return new Promise((resolve) => { + $bridge.calendarOperate(params,(data: any) => { + console.log('日程----'+data); + resolve(data); + }); + }); + } +} +const nativeService = new NativeService(); +export default nativeService; diff --git a/services/props-convert.ts b/services/props-convert.ts new file mode 100644 index 0000000000000000000000000000000000000000..a5f89bd5db70120d508dcbada4a885283d2f9028 --- /dev/null +++ b/services/props-convert.ts @@ -0,0 +1,8 @@ +import { Route } from "vue-router"; + +export const propsConvert: (route: Route) => any = (route: Route) => { + if (route.params != null && Object.keys(route.params).length === 0) { + (route.params as any).params = route.query; + } + return route.params; +}; diff --git a/services/router.service.ts b/services/router.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..1eb91123909de3ac84ef9d3647a7d3f1d7034bc2 --- /dev/null +++ b/services/router.service.ts @@ -0,0 +1,116 @@ +export interface Params { + [key: string]: any; +} + +class RouterService { + /** + * @description: 跨应用跳转 + * @author ChenRui + * @date 2020/9/28 14:23 + */ + push(subapp: string): void { + history.pushState(null, subapp, subapp); + } + + /** + * @description: 获取纯路劲 + * @author ChenRui + * @date 2020/10/12 21:06 + */ + getPathFromUrl(url: string): string { + let path = url; + if (url.indexOf("?") !== -1) { + path = url.split("?")[0]; + } + return path; + } + + /** + * @description: 获取请求参数 + * @author ChenRui + * @date 2020/10/12 21:06 + */ + getParamsFromUrl(url: string): Params | undefined { + let parameter: Params | undefined; + if (url.indexOf("?") !== -1) { + parameter = this.urlParameterToParams(url.split("?")[1]); + } + return parameter; + } + + /** + * @description: url地址参数转换成路由参数对象 + * @author ChenRui + * @date 2020/10/12 21:07 + */ + urlParameterToParams(parameter: string): Params | undefined { + const params: Params = {}; + const arr: string[] = parameter.split("&"); + arr.forEach((val, idx, array) => { + const kv: string[] = val.split("="); + if (kv.length > 1) { + params[kv[0]] = decodeURIComponent(kv[1]); + } else { + params[kv[0]] = ""; + } + }); + return params; + } + + /** + * @description: 地址参数拼接 + * @author ChenRui + * @date 2021/2/19 11:40 + */ + combinationPathAndParameter(url: string, parameter?: { [key: string]: any }): string { + let connectiveSymbol = ""; + if (url.indexOf("?") !== -1) { + connectiveSymbol = "&"; + } else { + connectiveSymbol = "?"; + } + if (parameter && Object.keys(parameter).length > 0) { + let mark = 0; + Object.keys(parameter).forEach((item) => { + if (mark === 0) { + if (parameter[item] != null && parameter[item] !== "null" && parameter[item] !== "undefined") { + url += connectiveSymbol + item + "=" + parameter[item]; + } else { + url += connectiveSymbol + item + "="; + } + } else { + if (parameter[item] != null && parameter[item] !== "null" && parameter[item] !== "undefined") { + url += "&" + item + "=" + parameter[item]; + } else { + url += "&" + item + "="; + } + } + mark++; + }); + } + return url; + } + /** + * 切换路由动画 + * @param to + * @param from + * @param component + */ + animateName: (to: any, from: any, component: any) => string = (to: any, from: any, component: any) => { + const toPath = to.path.split("/").join("_"); + const frPath = from.path.split("/").join("_"); + if (!component.pathMap[toPath]) { + component.pathMap[toPath] = +new Date() + 1; + } + if (!component.pathMap[frPath]) { + component.pathMap[frPath] = +new Date(); + } + if (component.pathMap[toPath] > component.pathMap[frPath]) { + return "left"; + } else { + return "right"; + } + }; +} +const routerService = new RouterService(); +export default routerService; diff --git a/services/tree-node-convert.service.ts b/services/tree-node-convert.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..fc5b592bec346a84754b47ef7f3e41c01f94faea --- /dev/null +++ b/services/tree-node-convert.service.ts @@ -0,0 +1,347 @@ +import beanUtilsService from "./bean-utils.service"; + +interface NodeContrast { + id: string; + parentId: string; + children: string; + cascadeField?: string; + subNodeContrast?: NodeContrast; +} + +interface NzNodeContrast { + title: string; + key: string; + icon?: string; + isLeaf?: string; + checked?: string; + selected?: string; + selectable?: string; + disabled?: string; + disableCheckbox?: string; + expanded?: string; + children: string; + inherit?: string[]; + cascadeField?: string; + subNzNodeContrast?: NzNodeContrast; + [key: string]: any; +} + +interface NzCascaderOptionContrast { + value: string; + label: string; + title?: string; + disabled?: string; + loading?: string; + isLeaf?: string; + parent?: string; + children: string; + [key: string]: any; +} + +interface NzTreeNodeOptions { + title: string; + key: string; + icon?: string; + isLeaf?: boolean; + checked?: boolean; + selected?: boolean; + selectable?: boolean; + disabled?: boolean; + disableCheckbox?: boolean; + expanded?: boolean; + children?: NzTreeNodeOptions[]; + scopedSlots?: any; + [key: string]: any; +} +/*禁用类型*/ +export enum DisabledType { + None = 0, + Leaf = 1, + ALL = 2, +} + +class TreeNodeConvertService { + constructor() {} + + /** + * @description: 数组转换为树形结构 + * @author ChenRui + * @date 2020/10/30 10:18 + */ + arrayConvertToTreeNode(data: any[], nodeContrast: NodeContrast, parentId?: string): any[] { + if (data != null && data.length > 0) { + let nds: any[] = data.filter((item) => (item[nodeContrast.parentId] || "") === (parentId || "")); + if (nds != null && nds.length > 0) { + nds = beanUtilsService.copy(nds); + nds.forEach((item) => { + const children = this.arrayConvertToTreeNode(data, nodeContrast, item[nodeContrast.id]); + if (children != null && children.length > 0) { + item[nodeContrast.children] = [...children]; + } + if (nodeContrast.cascadeField && nodeContrast.subNodeContrast && item[nodeContrast.cascadeField] && item[nodeContrast.cascadeField].length > 0) { + const children: any[] = this.arrayConvertToTreeNode(item[nodeContrast.cascadeField], nodeContrast.subNodeContrast); + if (children && children.length > 0) { + item[nodeContrast.cascadeField] = children; + } + } + }); + return nds; + } + } + return []; + } + + /** + * @description: 树形结构转换为Nz树形结构 + * @author ChenRui + * @date 2020/10/30 10:21 + */ + treeNodeConvertToNzTreeNode(data: any[], nzNodeContrast: NzNodeContrast, disabledType: DisabledType = DisabledType.None): any[] { + const nodes: any[] = []; + if (data != null && data.length > 0) { + data.forEach((item) => { + const node: any = { + title: "", + key: "", + icon: "", + isLeaf: true, + checked: false, + selected: false, + selectable: true, + disabled: disabledType === DisabledType.Leaf || disabledType === DisabledType.ALL ? true : false, + disableCheckbox: false, + expanded: true, + scopedSlots: { title: "custom" }, + children: [], + }; + for (const propName of Object.keys(nzNodeContrast)) { + if (nzNodeContrast[propName] != null && nzNodeContrast[propName] !== "") { + node[propName] = item[nzNodeContrast[propName]]; + } + if (nzNodeContrast.inherit && nzNodeContrast.inherit.length > 0) { + nzNodeContrast.inherit.forEach((it) => { + node[it] = item[it]; + }); + } + } + node.children = []; + if (item[nzNodeContrast.children] != null && item[nzNodeContrast.children].length > 0) { + const children: any[] = this.treeNodeConvertToNzTreeNode(item[nzNodeContrast.children], nzNodeContrast, disabledType); + if (disabledType === DisabledType.Leaf) { + node.disabled = false; + } + node.isLeaf = false; + node.children = children; + } + if (nzNodeContrast.cascadeField && nzNodeContrast.subNzNodeContrast && item[nzNodeContrast.cascadeField] && item[nzNodeContrast.cascadeField].length > 0) { + const children: any[] = this.treeNodeConvertToNzTreeNode(item[nzNodeContrast.cascadeField], nzNodeContrast.subNzNodeContrast, disabledType); + if (children && children.length > 0) { + node.isLeaf = false; + node.type = nzNodeContrast.cascadeField; + node.children = [...node.children, ...children]; + } + } + nodes.push(node); + }); + } + return nodes; + } + + /** + * @description: 数组转换为Nz树形结构 + * @author ChenRui + * @date 2020/10/30 10:41 + */ + arrayConvertToNzTreeNode(data: any[], nodeContrast: NodeContrast, nzNodeContrast: NzNodeContrast, disabledType: DisabledType = DisabledType.None): any[] { + const treeNode = this.arrayConvertToTreeNode(data, nodeContrast); + if (treeNode != null && treeNode.length > 0) { + return this.treeNodeConvertToNzTreeNode(treeNode, nzNodeContrast, disabledType); + } + return []; + } + + /** + * @description: 树形结构转换为Nz树形结构 + * @author ChenRui + * @date 2020/10/30 10:21 + */ + treeNodeConvertToCascaderOption(data: any[], nzCascaderOptionContrast: NzCascaderOptionContrast, disabledType: DisabledType = DisabledType.None): any[] { + const nodes: any[] = []; + if (data != null && data.length > 0) { + data.forEach((item) => { + const node: any = { + value: "", + label: "", + title: "", + disabled: disabledType === DisabledType.Leaf || disabledType === DisabledType.ALL ? true : false, + loading: "", + isLeaf: true, + parent: "", + children: "", + }; + for (const propName of Object.keys(nzCascaderOptionContrast)) { + if (nzCascaderOptionContrast[propName] != null && nzCascaderOptionContrast[propName] !== "") { + node[propName] = item[nzCascaderOptionContrast[propName]]; + } + } + node.children = []; + if (item[nzCascaderOptionContrast.children] != null && item[nzCascaderOptionContrast.children].length > 0) { + const children = this.treeNodeConvertToCascaderOption(item[nzCascaderOptionContrast.children], nzCascaderOptionContrast, disabledType); + if (disabledType === DisabledType.Leaf) { + node.disabled = false; + } + node.isLeaf = false; + node.children = children; + } + nodes.push(node); + }); + } + return nodes; + } + + /** + * @description: 数组转换为Nz树形结构 + * @author ChenRui + * @date 2020/10/30 10:41 + */ + arrayConvertToCascaderOption(data: any[], nodeContrast: NodeContrast, nzCascaderOptionContrast: NzCascaderOptionContrast, disabledType: DisabledType = DisabledType.None): any[] { + const treeNode = this.arrayConvertToTreeNode(data, nodeContrast); + if (treeNode != null && treeNode.length > 0) { + return this.treeNodeConvertToCascaderOption(treeNode, nzCascaderOptionContrast, disabledType); + } + return []; + } + + /** + * @description: 获取选中项 + * @author ChenRui + * @date 2021/8/30 2:17 + */ + getCheckedKeys(nzTreeNodeOptions: NzTreeNodeOptions[] | undefined, checkedKeys: string[] = []): string[] { + if (nzTreeNodeOptions && nzTreeNodeOptions.length > 0) { + nzTreeNodeOptions.forEach((item) => { + if (item.checked) { + checkedKeys?.push(item.key); + } + if (item.children && item.children.length > 0) { + const subCheckedKeys: string[] = this.getCheckedKeys(item.children); + if (subCheckedKeys && subCheckedKeys.length > 0) { + checkedKeys = [...checkedKeys, ...subCheckedKeys]; + } + } + }); + } + return checkedKeys; + } + + /** + * @description: 获取选中项及其父级 + * @author ChenRui + * @date 2021/8/30 12:41 + */ + getStrictlyCheckedKeys(nzTreeNodeOptions: NzTreeNodeOptions[] | undefined, checkedKeys: string[] = []): string[] { + if (nzTreeNodeOptions && nzTreeNodeOptions.length > 0) { + nzTreeNodeOptions.forEach((item) => { + if (item.checked) { + checkedKeys?.push(item.key); + } + if (item.children && item.children.length > 0) { + const subCheckedKeys: string[] = this.getStrictlyCheckedKeys(item.children); + if (subCheckedKeys && subCheckedKeys.length > 0) { + checkedKeys = [...checkedKeys, ...subCheckedKeys]; + if (checkedKeys.indexOf(item.key) === -1) { + checkedKeys.push(item.key); + } + } + } + }); + } + return checkedKeys; + } + + /** + * @description: 获取选中项祖先节点 + * @author ChenRui + * @date 2021/9/2 22:44 + */ + getAncestorsCheckedKeys(nzTreeNodeOptions: NzTreeNodeOptions[] | undefined, checkedKeys: string[] = []): string[] { + if (nzTreeNodeOptions && nzTreeNodeOptions.length > 0) { + nzTreeNodeOptions.forEach((item) => { + if (item.checked) { + checkedKeys?.push(item.key); + return; + } + if (item.children && item.children.length > 0) { + const subCheckedKeys: string[] = this.getAncestorsCheckedKeys(item.children); + if (subCheckedKeys && subCheckedKeys.length > 0) { + checkedKeys?.push(item.key); + } + } + }); + } + return checkedKeys; + } + + /** + * @description: 设置选中状态 + * @author ChenRui + * @date 2021/8/30 1:53 + */ + setCheckedKeys(nzTreeNodeOptions: NzTreeNodeOptions[] | undefined, checkedKeys: string[], onlyLowestLevel = false): void { + checkedKeys = checkedKeys ? checkedKeys : []; + if (nzTreeNodeOptions && nzTreeNodeOptions.length > 0) { + nzTreeNodeOptions.forEach((item) => { + if (item.children && item.children.length > 0) { + this.setCheckedKeys(item.children, checkedKeys, onlyLowestLevel); + } + if (!onlyLowestLevel || !(item.children && item.children.length > 0)) { + item.checked = checkedKeys.findIndex((it) => it === item.key) > -1; + } + }); + } + } + + /** + * @description: 开关节点禁用 + * @author ChenRui + * @date 2021/9/1 10:13 + */ + switchNodeDisabled(nzTreeNodeOptions: NzTreeNodeOptions[] | undefined, checkedKeys: string[], disabled = false): void { + checkedKeys = checkedKeys ? checkedKeys : []; + if (nzTreeNodeOptions && nzTreeNodeOptions.length > 0) { + nzTreeNodeOptions.forEach((item) => { + if (checkedKeys.findIndex((it) => it === item.key) > -1) { + item.disabled = disabled; + } else { + item.disabled = !disabled; + } + if (item.children && item.children.length > 0) { + this.switchNodeDisabled(item.children, checkedKeys, disabled); + } + }); + } + } + + getParentKey(nzTreeNodeOptions: NzTreeNodeOptions[] | undefined, context: string, autoExpand = true, checkedKeys: string[] = []): string[] { + if (nzTreeNodeOptions && nzTreeNodeOptions.length > 0) { + nzTreeNodeOptions.forEach((item) => { + if (context) { + if (item.title?.indexOf(context) > -1) { + checkedKeys?.push(item.key); + } + } else if (autoExpand) { + checkedKeys?.push(item.key); + } + if (item.children && item.children.length > 0) { + const subCheckedKeys: string[] = this.getParentKey(item.children, context, autoExpand); + if (subCheckedKeys && subCheckedKeys.length > 0) { + checkedKeys = [...checkedKeys, ...subCheckedKeys]; + } + } + }); + } + return checkedKeys; + } +} +const treeNodeConvertService: TreeNodeConvertService = new TreeNodeConvertService(); +export { NodeContrast, NzNodeContrast, NzCascaderOptionContrast, NzTreeNodeOptions, treeNodeConvertService }; diff --git a/shims-tsx.d.ts b/shims-tsx.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..2bcdf9fbcb0ee8d3efe3c9c39a0e12f63c2ebc5e --- /dev/null +++ b/shims-tsx.d.ts @@ -0,0 +1,13 @@ +import Vue, { VNode } from "vue"; + +declare global { + namespace JSX { + // tslint:disable no-empty-interface + interface Element extends VNode {} + // tslint:disable no-empty-interface + interface ElementClass extends Vue {} + interface IntrinsicElements { + [elem: string]: any; + } + } +} diff --git a/shims-vue.d.ts b/shims-vue.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..cfabee4ba4d12d5853baf3326a52df39bd92c3c2 --- /dev/null +++ b/shims-vue.d.ts @@ -0,0 +1,6 @@ +declare module "*.vue" { + import Vue from "vue"; + export default Vue; +} +declare module 'vue-esign' +declare module 'vue-qr' diff --git a/stores/index.ts b/stores/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..6ea67098b29cdec7c41b6a774668e3dcd1d6d4ca --- /dev/null +++ b/stores/index.ts @@ -0,0 +1,39 @@ +/* + * @Author: jiangzaicheng jiangzaicheng_jzc@163.com + * @Date: 2022-07-04 15:41:06 + * @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com + * @LastEditTime: 2022-07-05 15:01:38 + * @FilePath: \mcep-h5\src\stores\index.ts + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ +import CountResultStore from "@/stores/modules/CountResultStore.module"; + +export * from "./token.store"; +export * from "./user.store"; +import dict from "@/services/dict.service"; +import Vue from 'vue'; +import Vuex from 'vuex'; + +Vue.use(Vuex); + +export default new Vuex.Store({ + modules: { + CountResultStore, + } +}); + +/** + * 获取数据字典的文本值 + * @param {*} s_field key值 + * @param {*} val value值 + */ +export function getText(val: any, s_field: any) { + return dict.getText(val, s_field); +} +/** + * 获取数据字典 + * @param {*} s_field key值 + */ +// export function getOptions(s_field: any) { +// return dict.getOptions(s_field); +// } diff --git a/stores/modules/CountResultStore.module.ts b/stores/modules/CountResultStore.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..9c908e0ef4c5b8a24f7dbaaabed517943ee169ee --- /dev/null +++ b/stores/modules/CountResultStore.module.ts @@ -0,0 +1,28 @@ + +const state = { + resultData:{} +}; +const mutations = { + setResultData: (state: any, resultData: any) => { + state.resultData = resultData + }, + +}; +const actions = { + setResultData({ commit }: any, params: any) { + commit("setApproveParams", params); + }, + +}; +const getters = { + getResultData: (state: any) => { + return state.resultData; + }, + +}; +export default { + state, + mutations, + actions, + getters +}; diff --git a/stores/modules/company.module.ts b/stores/modules/company.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..e6929efd1e4bf43cf4438ae2c518cbf212abae52 --- /dev/null +++ b/stores/modules/company.module.ts @@ -0,0 +1,27 @@ +//存储客户 +import nettyApi from "@/constants/api/ms-netty/netty.api"; + +const state = { + //客户数据 + CusInfo: {}, +}; +const mutations = { + setCusInfo: (state: any, CasListInfObj: any) => { + state.CusInfo = CasListInfObj; + }, + setEmpty: (state: any) => { + state.CusInfo = {}; + }, +}; +const actions = {}; +const getters = { + getCusInfo: (state: any) => { + return state.CusInfo; + }, +}; +export default { + state, + mutations, + actions, + getters, +}; diff --git a/stores/modules/customer.module.ts b/stores/modules/customer.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..9dfc3cc99281ed74fc1b172da881da922f078109 --- /dev/null +++ b/stores/modules/customer.module.ts @@ -0,0 +1,54 @@ +//客户管理 - 相关数据存储 +const state = { + //客户管理 - 大数据数据 + custInfo: {}, + //裁判文书数据 + judList: [], + //企业 - 进入全景视图数据 + companyInfo: {}, + //个人 - 进入全景视图数据 + CtfInstNo: {}, + //辅助功能,贷款试算或者随意分存储计算结果 + CalculateRes: {}, +}; +const mutations = { + setCustInfo: (state:any, custInfo:any) => { + state.custInfo = custInfo; + }, + setJudList: (state:any, judList:any) => { + state.judList = judList; + }, + setCompanyInfo: (state:any, companyInfo:any) => { + state.companyInfo = companyInfo; + }, + setCtfInstNo: (state:any, CtfInstNo:any) => { + state.CtfInstNo = CtfInstNo; + }, + setCalculateRes: (state:any, CalculateRes:any) => { + state.CalculateRes = CalculateRes; + }, +}; +const actions = {}; +const getters = { + getCustInfo: (state:any) => { + return state.custInfo; + }, + getJudList: (state:any) => { + return state.judList; + }, + getCompanyInfo: (state:any) => { + return state.companyInfo; + }, + getCtfInstNo: (state:any) => { + return state.CtfInstNo; + }, + getCalculateRes: (state:any) => { + return state.CalculateRes; + }, +}; +export default { + state, + mutations, + actions, + getters +}; diff --git a/stores/modules/faceSign.module.ts b/stores/modules/faceSign.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..39a5e4d1220c6d35d08d3549f39d35eb98ca7dfb --- /dev/null +++ b/stores/modules/faceSign.module.ts @@ -0,0 +1,37 @@ +const state = { + questionAnswerObj: {}, + faceSignInfo: {}, + imageFileObj: [] +}; +const mutations = { + setQuestionAnswerObj: (state: any, questionAnswerObj: any) => { + state.questionAnswerObj = questionAnswerObj + }, + setFaceSignInfo: (state: any, faceSignListInfo: any) =>{ + state.faceSignInfo = faceSignListInfo + }, + setImageFileObj: (state: any, imageFileObj: any) =>{ + state.imageFileObj = imageFileObj + }, + addImageFileObj: (state: any, imageFileObj: any) =>{ + state.imageFileObj.push(imageFileObj); + } +}; +const actions = {}; +const getters = { + getQuestionAnswerObj: (state: any) => { + return state.questionAnswerObj; + }, + getFaceSignInfo: (state: any) => { + return state.faceSignInfo; + }, + getImageFileObj: (state: any) => { + return state.imageFileObj; + } +}; +export default { + state, + mutations, + actions, + getters +}; diff --git a/stores/modules/postloan.module.ts b/stores/modules/postloan.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..749dc19804cde7aeb648bc9a56d5598eb8c7baca --- /dev/null +++ b/stores/modules/postloan.module.ts @@ -0,0 +1,38 @@ +//贷后检查数据存储 +const state = { + //单条列表信息 + postLoanInfObj: {}, + //贷后详情 + postLoanDetail: {} +}; +const mutations = { + setPostLoanInfObj: (state:any, postLoanInfObj:any) => { + state.postLoanInfObj = postLoanInfObj; + }, + setPostLoanDetail: (state:any, postLoanDetail:any) => { + state.postLoanDetail = postLoanDetail; + } +}; +const actions = { + // setPostLoanInfObj: context => { + // context.conmit(); + // }, + // setPostLoanDetail: context => { + // context.conmit(); + // } +}; +const getters = { + getPostLoanInfObj: (state:any) => { + return state.postLoanInfObj; + }, + getPostLoanDetail: (state:any) => { + return state.postLoanDetail; + } +}; +export default { + namespaced: true, + state, + mutations, + actions, + getters +}; diff --git a/stores/token.store.ts b/stores/token.store.ts new file mode 100644 index 0000000000000000000000000000000000000000..38340a4e7410a4ae5def68cfe796e1f3dc188438 --- /dev/null +++ b/stores/token.store.ts @@ -0,0 +1,19 @@ +import { Token } from "../model/entity/Token"; +/** + * @description: 令牌存储服务 + * @author ZPfly + * @date 2021/09/28 17:25 + */ +class TokenStore { + private tokenInfo: Token = new Token(); + + public set token(token: Token) { + this.tokenInfo = token; + } + + public get token(): Token { + return { ...this.tokenInfo }; + } +} +const tokenStore = new TokenStore(); +export { TokenStore, tokenStore }; diff --git a/stores/user.store.ts b/stores/user.store.ts new file mode 100644 index 0000000000000000000000000000000000000000..7d03c707d3feac2d961854264a282fae96d81f34 --- /dev/null +++ b/stores/user.store.ts @@ -0,0 +1,19 @@ +import { SysUserInfo } from "../model/entity/SysUserInfo"; +/** + * @description: 用户信息存储服务 + * @author ZPfly + * @date 2021/09/28 17:25 + */ +class UserStore { + private sysUserInfo: SysUserInfo = new SysUserInfo(); + + public set user(userInfo: SysUserInfo) { + this.sysUserInfo = userInfo; + } + + public get user(): SysUserInfo { + return { ...this.sysUserInfo }; + } +} +const userStore = new UserStore(); +export { UserStore, userStore }; diff --git a/views/DepositInterestTrial/CountResult.vue b/views/DepositInterestTrial/CountResult.vue new file mode 100644 index 0000000000000000000000000000000000000000..9711a15efda013d3b358879a24d2431b2b9d90b0 --- /dev/null +++ b/views/DepositInterestTrial/CountResult.vue @@ -0,0 +1,153 @@ + + + + + + diff --git a/views/DepositInterestTrial/CountResultB.vue b/views/DepositInterestTrial/CountResultB.vue new file mode 100644 index 0000000000000000000000000000000000000000..d2d968fb558195843b4a370095ad5a0ee432f2a2 --- /dev/null +++ b/views/DepositInterestTrial/CountResultB.vue @@ -0,0 +1,99 @@ + + + + + + diff --git a/views/DepositInterestTrial/DepositInterestTrial.vue b/views/DepositInterestTrial/DepositInterestTrial.vue new file mode 100644 index 0000000000000000000000000000000000000000..890f52f3dc999805189bf553dc00ecd8349ef590 --- /dev/null +++ b/views/DepositInterestTrial/DepositInterestTrial.vue @@ -0,0 +1,390 @@ + + + + + + diff --git a/views/DepositInterestTrial/DepositRate.vue b/views/DepositInterestTrial/DepositRate.vue new file mode 100644 index 0000000000000000000000000000000000000000..92e323340e14f7b14e70ceb1c221ac238eaf8d06 --- /dev/null +++ b/views/DepositInterestTrial/DepositRate.vue @@ -0,0 +1,107 @@ +/** +* @Author wangliang +* @date 20220825 +*/ + + + + + diff --git a/views/DepositInterestTrial/LoanTrial.vue b/views/DepositInterestTrial/LoanTrial.vue new file mode 100644 index 0000000000000000000000000000000000000000..c25c8b97ed910f12473f4d5b916552fa5f4c7abb --- /dev/null +++ b/views/DepositInterestTrial/LoanTrial.vue @@ -0,0 +1,80 @@ + + + + + diff --git a/views/DepositInterestTrial/RepayPlan.vue b/views/DepositInterestTrial/RepayPlan.vue new file mode 100644 index 0000000000000000000000000000000000000000..5246759c9cb81a73cfbcfedac0d39f6491bcfd6d --- /dev/null +++ b/views/DepositInterestTrial/RepayPlan.vue @@ -0,0 +1,57 @@ + + + + + + diff --git a/views/DepositInterestTrial/Test.ts b/views/DepositInterestTrial/Test.ts new file mode 100644 index 0000000000000000000000000000000000000000..8b6ea4b565b42fa323fce6230b0f39da98f57be7 --- /dev/null +++ b/views/DepositInterestTrial/Test.ts @@ -0,0 +1,28 @@ +export class Test { + depositAmt: string; //存款金额 + yearRate: string; + putDate: string; + getDate: string; + saveType: string | undefined; + timeType: string | undefined; + time: string | undefined; + constructor( + options: { + depositAmt?: string; + yearRate?: string; + putDate?: string; + getDate?: string; + saveType?: string | undefined; + timeType?: string | undefined; + time?: string | undefined; + } = {} + ) { + this.depositAmt = options.depositAmt || ""; + this.yearRate = options.yearRate || ""; + this.putDate = options.putDate || ""; + this.getDate = options.getDate || ""; + this.saveType = options.saveType; + this.timeType = options.timeType; + this.time = options.time; + } +} diff --git a/views/ManageMoneyProduct/ManageMoneyProduct.vue b/views/ManageMoneyProduct/ManageMoneyProduct.vue new file mode 100644 index 0000000000000000000000000000000000000000..b1a02c30d069bcbf65300d9f8533198f31c05e44 --- /dev/null +++ b/views/ManageMoneyProduct/ManageMoneyProduct.vue @@ -0,0 +1,44 @@ + + + + + + diff --git a/views/ManageMoneyProduct/ManageProductDetail.vue b/views/ManageMoneyProduct/ManageProductDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..b14a01d1853e632e2b8dddc530c90e66e5cbb892 --- /dev/null +++ b/views/ManageMoneyProduct/ManageProductDetail.vue @@ -0,0 +1,252 @@ + + + + + + diff --git a/views/MyView/LevelSent.vue b/views/MyView/LevelSent.vue new file mode 100644 index 0000000000000000000000000000000000000000..907ef0c4ca105c536f6a3f2de8df82e69f6f53ed --- /dev/null +++ b/views/MyView/LevelSent.vue @@ -0,0 +1,297 @@ + + + + diff --git a/views/MyView/MyPage.vue b/views/MyView/MyPage.vue new file mode 100644 index 0000000000000000000000000000000000000000..7edc9d09c39d6f93544116a8b897cdb89750dd5c --- /dev/null +++ b/views/MyView/MyPage.vue @@ -0,0 +1,153 @@ + + + + diff --git a/views/ProductDetail/ProductDetails.vue b/views/ProductDetail/ProductDetails.vue new file mode 100644 index 0000000000000000000000000000000000000000..033fe925416c9b56b09e3414047dcbea5cfd3524 --- /dev/null +++ b/views/ProductDetail/ProductDetails.vue @@ -0,0 +1,74 @@ + + + + diff --git a/views/SelfHelpLoan/ApplyResult.vue b/views/SelfHelpLoan/ApplyResult.vue new file mode 100644 index 0000000000000000000000000000000000000000..cb35754e91d2f02a673b214fa53583edf3041648 --- /dev/null +++ b/views/SelfHelpLoan/ApplyResult.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/views/SelfHelpLoan/SelfHelpLoan.vue b/views/SelfHelpLoan/SelfHelpLoan.vue new file mode 100644 index 0000000000000000000000000000000000000000..2cd02eb303479fbb95d66229a83606bcfec66e85 --- /dev/null +++ b/views/SelfHelpLoan/SelfHelpLoan.vue @@ -0,0 +1,313 @@ + + + + + + diff --git a/views/authentication/LoginByID.vue b/views/authentication/LoginByID.vue new file mode 100644 index 0000000000000000000000000000000000000000..e5f9511a55f4f468907ac4576d497c95c21eb6b1 --- /dev/null +++ b/views/authentication/LoginByID.vue @@ -0,0 +1,272 @@ + + + + diff --git a/views/authentication/LoginView.vue b/views/authentication/LoginView.vue new file mode 100644 index 0000000000000000000000000000000000000000..63e9e2ca59fc2fe33e6036850782d860d5aacadc --- /dev/null +++ b/views/authentication/LoginView.vue @@ -0,0 +1,302 @@ + + + + diff --git a/views/customer-mgt/AddUserView.vue b/views/customer-mgt/AddUserView.vue new file mode 100644 index 0000000000000000000000000000000000000000..e19d32c4c035df723960e87216c2459a8d9e0505 --- /dev/null +++ b/views/customer-mgt/AddUserView.vue @@ -0,0 +1,126 @@ + + + + + diff --git a/views/customer-mgt/CompanyDetails.vue b/views/customer-mgt/CompanyDetails.vue new file mode 100644 index 0000000000000000000000000000000000000000..4f701ea30ddbf46a4f01cedfb983895ddb510c10 --- /dev/null +++ b/views/customer-mgt/CompanyDetails.vue @@ -0,0 +1,939 @@ + + + + + diff --git a/views/customer-mgt/CustomerMgtView.vue b/views/customer-mgt/CustomerMgtView.vue new file mode 100644 index 0000000000000000000000000000000000000000..2974e6b23141348497b62fefc81e9606745682a5 --- /dev/null +++ b/views/customer-mgt/CustomerMgtView.vue @@ -0,0 +1,356 @@ + + + + diff --git a/views/customer-mgt/EnterpriseMarketTimeLine.vue b/views/customer-mgt/EnterpriseMarketTimeLine.vue new file mode 100644 index 0000000000000000000000000000000000000000..c5a8bb67646cc3353b7eae66368d57f9474e0b75 --- /dev/null +++ b/views/customer-mgt/EnterpriseMarketTimeLine.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/views/customer-mgt/EnterpriseTimeline.vue b/views/customer-mgt/EnterpriseTimeline.vue new file mode 100644 index 0000000000000000000000000000000000000000..9803fe59c636ce21dbce483e4652c6327868960e --- /dev/null +++ b/views/customer-mgt/EnterpriseTimeline.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/views/customer-mgt/PersonalDetails.vue b/views/customer-mgt/PersonalDetails.vue new file mode 100644 index 0000000000000000000000000000000000000000..467332779ee7d3e48119a2c9db7ae4fbad4ace1e --- /dev/null +++ b/views/customer-mgt/PersonalDetails.vue @@ -0,0 +1,870 @@ + + + + + diff --git a/views/customer-mgt/PersonalMgtView.vue b/views/customer-mgt/PersonalMgtView.vue new file mode 100644 index 0000000000000000000000000000000000000000..ff565892ecc8558e7c99a5d0caf7d5225b67f085 --- /dev/null +++ b/views/customer-mgt/PersonalMgtView.vue @@ -0,0 +1,674 @@ + + + + diff --git a/views/customer-mgt/customer-info/Detail/AnnouncementInformationDetail.vue b/views/customer-mgt/customer-info/Detail/AnnouncementInformationDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..0a002ff80b5337c690c542f39c301ee2083330f4 --- /dev/null +++ b/views/customer-mgt/customer-info/Detail/AnnouncementInformationDetail.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/views/customer-mgt/customer-info/Detail/CaseFlowInformationDetail.vue b/views/customer-mgt/customer-info/Detail/CaseFlowInformationDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..30a1805832268535181ee29c034f0114c89233b2 --- /dev/null +++ b/views/customer-mgt/customer-info/Detail/CaseFlowInformationDetail.vue @@ -0,0 +1,112 @@ + + + + + diff --git a/views/customer-mgt/customer-info/Detail/ExposureTableInformationDetail.vue b/views/customer-mgt/customer-info/Detail/ExposureTableInformationDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..7406b484db987a91ac81aeedd7689e303ef909f6 --- /dev/null +++ b/views/customer-mgt/customer-info/Detail/ExposureTableInformationDetail.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/views/customer-mgt/customer-info/Detail/FYGGDetail.vue b/views/customer-mgt/customer-info/Detail/FYGGDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..f9044d446c262fd490af7a048b18cff3de4ab542 --- /dev/null +++ b/views/customer-mgt/customer-info/Detail/FYGGDetail.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/views/customer-mgt/customer-info/Detail/InformationOfThePersonSubjectToExecutionDetail.vue b/views/customer-mgt/customer-info/Detail/InformationOfThePersonSubjectToExecutionDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..beed36c808d76fb7dc3ab8c8b9e52ff034e983ae --- /dev/null +++ b/views/customer-mgt/customer-info/Detail/InformationOfThePersonSubjectToExecutionDetail.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/views/customer-mgt/customer-info/Detail/InformationOfUntrustworthyPersonSubjectToEnforcementDetail.vue b/views/customer-mgt/customer-info/Detail/InformationOfUntrustworthyPersonSubjectToEnforcementDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..702be231c4ce5c18323267a26ad4e5c1e10f465c --- /dev/null +++ b/views/customer-mgt/customer-info/Detail/InformationOfUntrustworthyPersonSubjectToEnforcementDetail.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/views/customer-mgt/customer-info/Detail/JudgmentDetail.vue b/views/customer-mgt/customer-info/Detail/JudgmentDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..2a43147650211c3db9d3aa564e6d28dbf029a1a9 --- /dev/null +++ b/views/customer-mgt/customer-info/Detail/JudgmentDetail.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/views/customer-mgt/customer-info/Detail/JudicialFrozenDeductionInformationDetail.vue b/views/customer-mgt/customer-info/Detail/JudicialFrozenDeductionInformationDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..d09dc97d25557f2b6657670c677a7c9004a426c8 --- /dev/null +++ b/views/customer-mgt/customer-info/Detail/JudicialFrozenDeductionInformationDetail.vue @@ -0,0 +1,114 @@ + + + + + diff --git a/views/customer-mgt/customer-info/Operating-risk-information/CFXXList.vue b/views/customer-mgt/customer-info/Operating-risk-information/CFXXList.vue new file mode 100644 index 0000000000000000000000000000000000000000..126707c8f7398798211b30c7af19b382bd22e125 --- /dev/null +++ b/views/customer-mgt/customer-info/Operating-risk-information/CFXXList.vue @@ -0,0 +1,230 @@ + + + + + diff --git a/views/customer-mgt/customer-info/Operating-risk-information/CaseProcess.vue b/views/customer-mgt/customer-info/Operating-risk-information/CaseProcess.vue new file mode 100644 index 0000000000000000000000000000000000000000..c2f8e4a87d2b4915f738457e6e1a5b074647cc8f --- /dev/null +++ b/views/customer-mgt/customer-info/Operating-risk-information/CaseProcess.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/views/customer-mgt/customer-info/Operating-risk-information/ClearInformation.vue b/views/customer-mgt/customer-info/Operating-risk-information/ClearInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..ddd9a5487cf8f5974bd947066ed8fcd0cad17f35 --- /dev/null +++ b/views/customer-mgt/customer-info/Operating-risk-information/ClearInformation.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/views/customer-mgt/customer-info/Operating-risk-information/CourtAnnouncement.vue b/views/customer-mgt/customer-info/Operating-risk-information/CourtAnnouncement.vue new file mode 100644 index 0000000000000000000000000000000000000000..f59ddaefdad8ccaf934ca81f658b944cf0f6e316 --- /dev/null +++ b/views/customer-mgt/customer-info/Operating-risk-information/CourtAnnouncement.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/views/customer-mgt/customer-info/Operating-risk-information/ExecutedPerson.vue b/views/customer-mgt/customer-info/Operating-risk-information/ExecutedPerson.vue new file mode 100644 index 0000000000000000000000000000000000000000..af33f9d2aa860574d67ec26f6bd6f68ada6c567c --- /dev/null +++ b/views/customer-mgt/customer-info/Operating-risk-information/ExecutedPerson.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/views/customer-mgt/customer-info/Operating-risk-information/ExposureTable.vue b/views/customer-mgt/customer-info/Operating-risk-information/ExposureTable.vue new file mode 100644 index 0000000000000000000000000000000000000000..0421a1d83d578fd9be2b5054fed8cf28dc317ecb --- /dev/null +++ b/views/customer-mgt/customer-info/Operating-risk-information/ExposureTable.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/views/customer-mgt/customer-info/Operating-risk-information/FYGGList.vue b/views/customer-mgt/customer-info/Operating-risk-information/FYGGList.vue new file mode 100644 index 0000000000000000000000000000000000000000..48b1a8e882fffd7ce2461dde840ecbc3d3fb4dc1 --- /dev/null +++ b/views/customer-mgt/customer-info/Operating-risk-information/FYGGList.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/views/customer-mgt/customer-info/Operating-risk-information/Judgment.vue b/views/customer-mgt/customer-info/Operating-risk-information/Judgment.vue new file mode 100644 index 0000000000000000000000000000000000000000..8371250029324f863365c67d1137d8f41ba42fe2 --- /dev/null +++ b/views/customer-mgt/customer-info/Operating-risk-information/Judgment.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/views/customer-mgt/customer-info/Operating-risk-information/JudicialDeduction.vue b/views/customer-mgt/customer-info/Operating-risk-information/JudicialDeduction.vue new file mode 100644 index 0000000000000000000000000000000000000000..48550d9461114a6a00da870e43d2c216a218b8e0 --- /dev/null +++ b/views/customer-mgt/customer-info/Operating-risk-information/JudicialDeduction.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/views/customer-mgt/customer-info/Operating-risk-information/LSBGView.vue b/views/customer-mgt/customer-info/Operating-risk-information/LSBGView.vue new file mode 100644 index 0000000000000000000000000000000000000000..e589a39498f1ed3ae8dd8e5c34a14ba7aacb895c --- /dev/null +++ b/views/customer-mgt/customer-info/Operating-risk-information/LSBGView.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/views/customer-mgt/customer-info/Operating-risk-information/PublicOpinionInformation.vue b/views/customer-mgt/customer-info/Operating-risk-information/PublicOpinionInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..720f5f4da2026e7bc40a706e4d31f031cff45027 --- /dev/null +++ b/views/customer-mgt/customer-info/Operating-risk-information/PublicOpinionInformation.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/views/customer-mgt/customer-info/Operating-risk-information/YCJYMLView.vue b/views/customer-mgt/customer-info/Operating-risk-information/YCJYMLView.vue new file mode 100644 index 0000000000000000000000000000000000000000..c5f066852ed7bcfac3a7b311430e25ec1a48916a --- /dev/null +++ b/views/customer-mgt/customer-info/Operating-risk-information/YCJYMLView.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/views/customer-mgt/customer-info/business-application-status/ApplicationStatus.vue b/views/customer-mgt/customer-info/business-application-status/ApplicationStatus.vue new file mode 100644 index 0000000000000000000000000000000000000000..531c0f556404e41723559128fa4767288f68c960 --- /dev/null +++ b/views/customer-mgt/customer-info/business-application-status/ApplicationStatus.vue @@ -0,0 +1,100 @@ + + + + + diff --git a/views/customer-mgt/customer-info/business-application-status/CompanyPolicy.vue b/views/customer-mgt/customer-info/business-application-status/CompanyPolicy.vue new file mode 100644 index 0000000000000000000000000000000000000000..b12788be6438a52311ac7d26feb58f60f9bdc76d --- /dev/null +++ b/views/customer-mgt/customer-info/business-application-status/CompanyPolicy.vue @@ -0,0 +1,244 @@ + + + + + diff --git a/views/customer-mgt/customer-info/business-application-status/CreditStatusOfClientExecutives.vue b/views/customer-mgt/customer-info/business-application-status/CreditStatusOfClientExecutives.vue new file mode 100644 index 0000000000000000000000000000000000000000..ce02ee79ccf9dcd71ee18aafcb4340fa8487649f --- /dev/null +++ b/views/customer-mgt/customer-info/business-application-status/CreditStatusOfClientExecutives.vue @@ -0,0 +1,143 @@ + + + + + diff --git a/views/customer-mgt/customer-info/business-application-status/CustomerContribution.vue b/views/customer-mgt/customer-info/business-application-status/CustomerContribution.vue new file mode 100644 index 0000000000000000000000000000000000000000..0e0274d3d5b392166e5e137ab65cf3816045c24f --- /dev/null +++ b/views/customer-mgt/customer-info/business-application-status/CustomerContribution.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/views/customer-mgt/customer-info/business-application-status/CustomerManagementInformation.vue b/views/customer-mgt/customer-info/business-application-status/CustomerManagementInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..a34ab9fc54f3a77b537e563feea4f36f4a0a51e9 --- /dev/null +++ b/views/customer-mgt/customer-info/business-application-status/CustomerManagementInformation.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/views/customer-mgt/customer-info/business-application-status/CustomerPreliminaryScreeningHistory.vue b/views/customer-mgt/customer-info/business-application-status/CustomerPreliminaryScreeningHistory.vue new file mode 100644 index 0000000000000000000000000000000000000000..80a2951130ff07b7b7949fb0d24c08001a1045a5 --- /dev/null +++ b/views/customer-mgt/customer-info/business-application-status/CustomerPreliminaryScreeningHistory.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/views/customer-mgt/customer-info/business-application-status/CustomerRatings.vue b/views/customer-mgt/customer-info/business-application-status/CustomerRatings.vue new file mode 100644 index 0000000000000000000000000000000000000000..a24edcdfe5b8a82a071db6eb44bc3244c9faeef7 --- /dev/null +++ b/views/customer-mgt/customer-info/business-application-status/CustomerRatings.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/views/customer-mgt/customer-info/business-application-status/FinancialInfoDetail.vue b/views/customer-mgt/customer-info/business-application-status/FinancialInfoDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..15bd884d7198a15537b3dc631e646277482e3fee --- /dev/null +++ b/views/customer-mgt/customer-info/business-application-status/FinancialInfoDetail.vue @@ -0,0 +1,271 @@ + + + + + diff --git a/views/customer-mgt/customer-info/business-application-status/FinancialInformation.vue b/views/customer-mgt/customer-info/business-application-status/FinancialInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..678c9baff8856b0d3f385426b20c351a2c47f5a4 --- /dev/null +++ b/views/customer-mgt/customer-info/business-application-status/FinancialInformation.vue @@ -0,0 +1,352 @@ + + + + + diff --git a/views/customer-mgt/customer-info/business-application-status/ProjectInfo.vue b/views/customer-mgt/customer-info/business-application-status/ProjectInfo.vue new file mode 100644 index 0000000000000000000000000000000000000000..e6ad886e06ad581c2fcf055d350e4ca6703e699c --- /dev/null +++ b/views/customer-mgt/customer-info/business-application-status/ProjectInfo.vue @@ -0,0 +1,130 @@ + + + + + diff --git a/views/customer-mgt/customer-info/business-application-status/StockInformation.vue b/views/customer-mgt/customer-info/business-application-status/StockInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..fe2d3e814abc09ddfd9312a66a5aa0a6ddf7d101 --- /dev/null +++ b/views/customer-mgt/customer-info/business-application-status/StockInformation.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/views/customer-mgt/customer-info/business-application-status/TrialEntry.vue b/views/customer-mgt/customer-info/business-application-status/TrialEntry.vue new file mode 100644 index 0000000000000000000000000000000000000000..70b99c9ef104665ef07b781b99b49c3238cbdbee --- /dev/null +++ b/views/customer-mgt/customer-info/business-application-status/TrialEntry.vue @@ -0,0 +1,388 @@ + + + + + diff --git a/views/customer-mgt/customer-info/business-application-status/UnifiedCustomerCreditView.vue b/views/customer-mgt/customer-info/business-application-status/UnifiedCustomerCreditView.vue new file mode 100644 index 0000000000000000000000000000000000000000..0175e216dba61579cd134832c05e9e3dc224b31e --- /dev/null +++ b/views/customer-mgt/customer-info/business-application-status/UnifiedCustomerCreditView.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/views/customer-mgt/customer-info/business-information/AnnualReport.vue b/views/customer-mgt/customer-info/business-information/AnnualReport.vue new file mode 100644 index 0000000000000000000000000000000000000000..2bd9a4eac33370071fe721983a3d0b390af2ff1d --- /dev/null +++ b/views/customer-mgt/customer-info/business-information/AnnualReport.vue @@ -0,0 +1,276 @@ + + + + + diff --git a/views/customer-mgt/customer-info/business-information/EquityPledgeAndMovablePropertyPledge.vue b/views/customer-mgt/customer-info/business-information/EquityPledgeAndMovablePropertyPledge.vue new file mode 100644 index 0000000000000000000000000000000000000000..2092213ed57715f9e0b1eb59307ac26386a6b36c --- /dev/null +++ b/views/customer-mgt/customer-info/business-information/EquityPledgeAndMovablePropertyPledge.vue @@ -0,0 +1,406 @@ + + + + + diff --git a/views/customer-mgt/customer-info/business-information/InfoChangeHistory.vue b/views/customer-mgt/customer-info/business-information/InfoChangeHistory.vue new file mode 100644 index 0000000000000000000000000000000000000000..46193e403193a95c217dc4b04c0b57f699f35dd3 --- /dev/null +++ b/views/customer-mgt/customer-info/business-information/InfoChangeHistory.vue @@ -0,0 +1,118 @@ + + + + + diff --git a/views/customer-mgt/customer-info/business-information/Overview.vue b/views/customer-mgt/customer-info/business-information/Overview.vue new file mode 100644 index 0000000000000000000000000000000000000000..6d8694ff937a27d76160aa50f6b6345ec39a0094 --- /dev/null +++ b/views/customer-mgt/customer-info/business-information/Overview.vue @@ -0,0 +1,172 @@ + + + + + diff --git a/views/customer-mgt/customer-info/business-information/RiskInformation.vue b/views/customer-mgt/customer-info/business-information/RiskInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..fe88b2c9ea7ba76f0218d4118dc049489eedfc33 --- /dev/null +++ b/views/customer-mgt/customer-info/business-information/RiskInformation.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/views/customer-mgt/customer-info/customer-information-registration/CustomerInformationRegistration.vue b/views/customer-mgt/customer-info/customer-information-registration/CustomerInformationRegistration.vue new file mode 100644 index 0000000000000000000000000000000000000000..6009aa496d82e2ffcc7860cc0280c820b26ad687 --- /dev/null +++ b/views/customer-mgt/customer-info/customer-information-registration/CustomerInformationRegistration.vue @@ -0,0 +1,194 @@ + + + + + diff --git a/views/customer-mgt/customer-info/history-information/CustomerTagHistory.vue b/views/customer-mgt/customer-info/history-information/CustomerTagHistory.vue new file mode 100644 index 0000000000000000000000000000000000000000..b2c2c7ed57da9e197ff86d5ea3543435d9eca629 --- /dev/null +++ b/views/customer-mgt/customer-info/history-information/CustomerTagHistory.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/views/customer-mgt/customer-info/relationship-graph/EnterpriseMap.vue b/views/customer-mgt/customer-info/relationship-graph/EnterpriseMap.vue new file mode 100644 index 0000000000000000000000000000000000000000..75ef1c0ccf63440e5e7a8454ebdd31486ae69069 --- /dev/null +++ b/views/customer-mgt/customer-info/relationship-graph/EnterpriseMap.vue @@ -0,0 +1,419 @@ + + + + + diff --git a/views/customer-mgt/customer-info/relationship-graph/FroupAndEconomicDependenceInformation.vue b/views/customer-mgt/customer-info/relationship-graph/FroupAndEconomicDependenceInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..7eb0e4de2c6a07601dd5036d7bde15cc1672d587 --- /dev/null +++ b/views/customer-mgt/customer-info/relationship-graph/FroupAndEconomicDependenceInformation.vue @@ -0,0 +1,421 @@ + + + + + diff --git a/views/customer-mgt/customer-info/relationship-graph/GuaranteeView.vue b/views/customer-mgt/customer-info/relationship-graph/GuaranteeView.vue new file mode 100644 index 0000000000000000000000000000000000000000..7b84159861bb7209078df5a17a3c228bdb0df683 --- /dev/null +++ b/views/customer-mgt/customer-info/relationship-graph/GuaranteeView.vue @@ -0,0 +1,204 @@ + + + + + diff --git a/views/customer-mgt/customer-info/relationship-graph/RelatedParty.vue b/views/customer-mgt/customer-info/relationship-graph/RelatedParty.vue new file mode 100644 index 0000000000000000000000000000000000000000..5b16209052712d5762d27d3f7bd1ea238e6c0f61 --- /dev/null +++ b/views/customer-mgt/customer-info/relationship-graph/RelatedParty.vue @@ -0,0 +1,208 @@ + + + + + diff --git a/views/customer-mgt/customer-info/risk-summary/RiskWarning.vue b/views/customer-mgt/customer-info/risk-summary/RiskWarning.vue new file mode 100644 index 0000000000000000000000000000000000000000..e188feebe283b304dc94abe9bc3187d05bcd0462 --- /dev/null +++ b/views/customer-mgt/customer-info/risk-summary/RiskWarning.vue @@ -0,0 +1,138 @@ + + + + + diff --git a/views/customer-mgt/customer-info/risk-summary/RiskWarningItemDetail.vue b/views/customer-mgt/customer-info/risk-summary/RiskWarningItemDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..cc806f99c5b8df15e32f86f07ea366033d512404 --- /dev/null +++ b/views/customer-mgt/customer-info/risk-summary/RiskWarningItemDetail.vue @@ -0,0 +1,131 @@ + + + + + diff --git a/views/customer-mgt/customer-info/timeLine/CompanyTimeLine.vue b/views/customer-mgt/customer-info/timeLine/CompanyTimeLine.vue new file mode 100644 index 0000000000000000000000000000000000000000..15c47a0a4600246a1092e228b0de9cfcd66167da --- /dev/null +++ b/views/customer-mgt/customer-info/timeLine/CompanyTimeLine.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/views/customer-mgt/customer-info/timeLine/MarketTimeLine.vue b/views/customer-mgt/customer-info/timeLine/MarketTimeLine.vue new file mode 100644 index 0000000000000000000000000000000000000000..c4b3bbe32ac66cd0dc4388caec85bced7c1c6b70 --- /dev/null +++ b/views/customer-mgt/customer-info/timeLine/MarketTimeLine.vue @@ -0,0 +1,61 @@ + + + + + diff --git a/views/customer-mgt/personal-information/CreditDetails.vue b/views/customer-mgt/personal-information/CreditDetails.vue new file mode 100644 index 0000000000000000000000000000000000000000..897124e85c88dd8707fcec99023ef1e1ecc3dbc3 --- /dev/null +++ b/views/customer-mgt/personal-information/CreditDetails.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/views/customer-mgt/personal-information/Employer.vue b/views/customer-mgt/personal-information/Employer.vue new file mode 100644 index 0000000000000000000000000000000000000000..ef96fc00fbc82429ddb347503c0bda0603e9c380 --- /dev/null +++ b/views/customer-mgt/personal-information/Employer.vue @@ -0,0 +1,244 @@ + + + + + diff --git a/views/customer-mgt/personal-information/FamilyFinancialInformation.vue b/views/customer-mgt/personal-information/FamilyFinancialInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..efd8861e919977a26f6340ec17f0a3b862aed942 --- /dev/null +++ b/views/customer-mgt/personal-information/FamilyFinancialInformation.vue @@ -0,0 +1,56 @@ + + + + + diff --git a/views/customer-mgt/personal-information/PersonalProfiles.vue b/views/customer-mgt/personal-information/PersonalProfiles.vue new file mode 100644 index 0000000000000000000000000000000000000000..0c68166a172e0f1e009670683dab88e8fe511b61 --- /dev/null +++ b/views/customer-mgt/personal-information/PersonalProfiles.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/views/login/ForgetPassView.vue b/views/login/ForgetPassView.vue new file mode 100644 index 0000000000000000000000000000000000000000..f3ca7a8a9e2d554bbc0ca27dae1b58a1de7f2483 --- /dev/null +++ b/views/login/ForgetPassView.vue @@ -0,0 +1,247 @@ + + + + diff --git a/views/login/Register.vue b/views/login/Register.vue new file mode 100644 index 0000000000000000000000000000000000000000..dfaf61fc1a52f42e74bd6f61bbc868137c53f978 --- /dev/null +++ b/views/login/Register.vue @@ -0,0 +1,263 @@ + + + + diff --git a/views/main/Main.vue b/views/main/Main.vue new file mode 100644 index 0000000000000000000000000000000000000000..ebfc5246522d219f75c564998150f93578cf0630 --- /dev/null +++ b/views/main/Main.vue @@ -0,0 +1,803 @@ + + + + + diff --git a/views/main/MainView.vue b/views/main/MainView.vue new file mode 100644 index 0000000000000000000000000000000000000000..35e828dcae789fded3721f179febd90ca6ba8c6b --- /dev/null +++ b/views/main/MainView.vue @@ -0,0 +1,62 @@ + + + + diff --git a/views/marketing-mgt/AccurateCustomer.vue b/views/marketing-mgt/AccurateCustomer.vue new file mode 100644 index 0000000000000000000000000000000000000000..04ebe21c06f2fbc4471c86c12241dc64612d0b86 --- /dev/null +++ b/views/marketing-mgt/AccurateCustomer.vue @@ -0,0 +1,137 @@ + + + + + diff --git a/views/marketing-mgt/AccurateVisitors.vue b/views/marketing-mgt/AccurateVisitors.vue new file mode 100644 index 0000000000000000000000000000000000000000..c60fd2144a9c3532c24b8b25b0286817f491a878 --- /dev/null +++ b/views/marketing-mgt/AccurateVisitors.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/views/marketing-mgt/AddMarketing.vue b/views/marketing-mgt/AddMarketing.vue new file mode 100644 index 0000000000000000000000000000000000000000..5d0c54b7528c0e21c0e38166694eee6d0d76a4be --- /dev/null +++ b/views/marketing-mgt/AddMarketing.vue @@ -0,0 +1,89 @@ + + + + + diff --git a/views/marketing-mgt/DoingMarketByPhone.vue b/views/marketing-mgt/DoingMarketByPhone.vue new file mode 100644 index 0000000000000000000000000000000000000000..39355562966f71dd66d4c0ce6af424de284e0c81 --- /dev/null +++ b/views/marketing-mgt/DoingMarketByPhone.vue @@ -0,0 +1,377 @@ + + + + + diff --git a/views/marketing-mgt/MarketPlan.vue b/views/marketing-mgt/MarketPlan.vue new file mode 100644 index 0000000000000000000000000000000000000000..232b399eb8077377c43d8065912f2d4d7ddcc711 --- /dev/null +++ b/views/marketing-mgt/MarketPlan.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/views/marketing-mgt/PutInReserve.vue b/views/marketing-mgt/PutInReserve.vue new file mode 100644 index 0000000000000000000000000000000000000000..a5603398074c039d8f87bfd26fdafe2104fb98d5 --- /dev/null +++ b/views/marketing-mgt/PutInReserve.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/views/marketing-mgt/company/ComMarketingPool.vue b/views/marketing-mgt/company/ComMarketingPool.vue new file mode 100644 index 0000000000000000000000000000000000000000..61c2430fa43edee75cc172cc330ba26e8fce4d67 --- /dev/null +++ b/views/marketing-mgt/company/ComMarketingPool.vue @@ -0,0 +1,324 @@ + + + + + diff --git a/views/marketing-mgt/personal/AddMarketPlan.vue b/views/marketing-mgt/personal/AddMarketPlan.vue new file mode 100644 index 0000000000000000000000000000000000000000..6efbef2999ca167df6a89e8c7826160041438c52 --- /dev/null +++ b/views/marketing-mgt/personal/AddMarketPlan.vue @@ -0,0 +1,252 @@ + + + + + diff --git a/views/marketing-mgt/personal/JHDBDetail.vue b/views/marketing-mgt/personal/JHDBDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..27fc5a89dd86cbd562d3f36114aa24c46f3c91d1 --- /dev/null +++ b/views/marketing-mgt/personal/JHDBDetail.vue @@ -0,0 +1,453 @@ + + + + + diff --git a/views/marketing-mgt/personal/JhdbxqView.vue b/views/marketing-mgt/personal/JhdbxqView.vue new file mode 100644 index 0000000000000000000000000000000000000000..be78fe540cd39809d4ca3c45b700e463d42999b8 --- /dev/null +++ b/views/marketing-mgt/personal/JhdbxqView.vue @@ -0,0 +1,266 @@ + + + + + diff --git a/views/marketing-mgt/personal/MarketingList.vue b/views/marketing-mgt/personal/MarketingList.vue new file mode 100644 index 0000000000000000000000000000000000000000..a2018095267efbc21052f4eb156ff811a3bba0ee --- /dev/null +++ b/views/marketing-mgt/personal/MarketingList.vue @@ -0,0 +1,225 @@ + + + + + diff --git a/views/marketing-mgt/personal/MarketingMap.vue b/views/marketing-mgt/personal/MarketingMap.vue new file mode 100644 index 0000000000000000000000000000000000000000..5f2ed0a15a28767f329f66a9e7235f5a801de617 --- /dev/null +++ b/views/marketing-mgt/personal/MarketingMap.vue @@ -0,0 +1,196 @@ + + + + + diff --git a/views/marketing-mgt/personal/MarketingMgtView.vue b/views/marketing-mgt/personal/MarketingMgtView.vue new file mode 100644 index 0000000000000000000000000000000000000000..dd79b62e3c5bb4ed8694e9356b0448a6b9c3af8a --- /dev/null +++ b/views/marketing-mgt/personal/MarketingMgtView.vue @@ -0,0 +1,399 @@ + + + + + diff --git a/views/recognition/Agreement.vue b/views/recognition/Agreement.vue new file mode 100644 index 0000000000000000000000000000000000000000..58cb5bcb57dd829613f2933ccb442f6c382e2b85 --- /dev/null +++ b/views/recognition/Agreement.vue @@ -0,0 +1,69 @@ + + + + + + diff --git a/views/recognition/FaceRecognition.vue b/views/recognition/FaceRecognition.vue new file mode 100644 index 0000000000000000000000000000000000000000..29bd29fc3c534fa705431279bcfb22c554701153 --- /dev/null +++ b/views/recognition/FaceRecognition.vue @@ -0,0 +1,48 @@ + + + + + + diff --git a/views/recognition/FaceSuccess.vue b/views/recognition/FaceSuccess.vue new file mode 100644 index 0000000000000000000000000000000000000000..3bf4be33c57a0d8487274040b6a194cf5391b931 --- /dev/null +++ b/views/recognition/FaceSuccess.vue @@ -0,0 +1,115 @@ + + + + + + diff --git a/views/recognition/Intention.vue b/views/recognition/Intention.vue new file mode 100644 index 0000000000000000000000000000000000000000..afdb769f62f5f8e58578e68df5b97f6463dafe86 --- /dev/null +++ b/views/recognition/Intention.vue @@ -0,0 +1,296 @@ + + + + + + diff --git a/views/recognition/LinSuccess.vue b/views/recognition/LinSuccess.vue new file mode 100644 index 0000000000000000000000000000000000000000..e35a7e20648a5f10b9ab1fc4869f7d574d957092 --- /dev/null +++ b/views/recognition/LinSuccess.vue @@ -0,0 +1,161 @@ + + + + + + diff --git a/views/recognition/Recognition.vue b/views/recognition/Recognition.vue new file mode 100644 index 0000000000000000000000000000000000000000..b6d3385930a4b23cacc16098851d2be24667f18b --- /dev/null +++ b/views/recognition/Recognition.vue @@ -0,0 +1,122 @@ + + + + + + diff --git a/views/workbench/AccommodDetails.vue b/views/workbench/AccommodDetails.vue new file mode 100644 index 0000000000000000000000000000000000000000..76a04a5044b29a410ba0139a7bf657ffd1b7bd37 --- /dev/null +++ b/views/workbench/AccommodDetails.vue @@ -0,0 +1,292 @@ + + + + + + diff --git a/views/workbench/AccommodDetailslogin.vue b/views/workbench/AccommodDetailslogin.vue new file mode 100644 index 0000000000000000000000000000000000000000..68e45120b4539a114bbf0dcc1854fa4e3f15342a --- /dev/null +++ b/views/workbench/AccommodDetailslogin.vue @@ -0,0 +1,265 @@ + + + + + + diff --git a/views/workbench/AccommodMain.vue b/views/workbench/AccommodMain.vue new file mode 100644 index 0000000000000000000000000000000000000000..bb31a6b31f220d3e01f72cc38336594ac1872de2 --- /dev/null +++ b/views/workbench/AccommodMain.vue @@ -0,0 +1,251 @@ + + + + + + + diff --git a/views/workbench/Accommodation.vue b/views/workbench/Accommodation.vue new file mode 100644 index 0000000000000000000000000000000000000000..4d4d1a915e9f5d034e0654fcb1d1066fcbfbeb17 --- /dev/null +++ b/views/workbench/Accommodation.vue @@ -0,0 +1,101 @@ + + + + + + diff --git a/views/workbench/CompanyCard.vue b/views/workbench/CompanyCard.vue new file mode 100644 index 0000000000000000000000000000000000000000..3742436a1f14fbcd2af3904f9e8d08ac52040fef --- /dev/null +++ b/views/workbench/CompanyCard.vue @@ -0,0 +1,89 @@ +/** +* @Author wangliang +* @date 20220726 +*/ + + + + + diff --git a/views/workbench/CooperationBusiness.vue b/views/workbench/CooperationBusiness.vue new file mode 100644 index 0000000000000000000000000000000000000000..27e51dc1ef72e1f47ef50bc89e08ee8b0ffbeee1 --- /dev/null +++ b/views/workbench/CooperationBusiness.vue @@ -0,0 +1,43 @@ +/** +* @Author wangliang +* @date 20220726 +*/ + + + + + diff --git a/views/workbench/ExchangeDetail.vue b/views/workbench/ExchangeDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..faa8e63df14095e7e8c0b5c5999fab44f62d9279 --- /dev/null +++ b/views/workbench/ExchangeDetail.vue @@ -0,0 +1,35 @@ +/** +* @Author wangliang +* @date 20220726 +*/ + + + + + diff --git a/views/workbench/ExchangeRecord.vue b/views/workbench/ExchangeRecord.vue new file mode 100644 index 0000000000000000000000000000000000000000..15045e686871272c69a8d87846898f759989a740 --- /dev/null +++ b/views/workbench/ExchangeRecord.vue @@ -0,0 +1,209 @@ +/** +* @Author wangliang +* @date 20220726 +*/ + + + + + diff --git a/views/workbench/Growth.vue b/views/workbench/Growth.vue new file mode 100644 index 0000000000000000000000000000000000000000..3baf05ed51be152c700264ec5cf2e1f964f8242c --- /dev/null +++ b/views/workbench/Growth.vue @@ -0,0 +1,365 @@ + + + + + + diff --git a/views/workbench/PersonLod.vue b/views/workbench/PersonLod.vue new file mode 100644 index 0000000000000000000000000000000000000000..de0095860490233b72983f865c026c9b78642370 --- /dev/null +++ b/views/workbench/PersonLod.vue @@ -0,0 +1,111 @@ + + + + + + diff --git a/views/workbench/Repayment.vue b/views/workbench/Repayment.vue new file mode 100644 index 0000000000000000000000000000000000000000..716f79ed1dddbe5dec20619079b572b5df6147bc --- /dev/null +++ b/views/workbench/Repayment.vue @@ -0,0 +1,258 @@ + + + + + + diff --git a/views/workbench/businessProgress.vue b/views/workbench/businessProgress.vue new file mode 100644 index 0000000000000000000000000000000000000000..3ecf54985d08da17dc403824b62d08dd5df38f54 --- /dev/null +++ b/views/workbench/businessProgress.vue @@ -0,0 +1,119 @@ + + + + + + + diff --git a/views/workbench/modifyInfo.vue b/views/workbench/modifyInfo.vue new file mode 100644 index 0000000000000000000000000000000000000000..67760eee4b5dcc44693f4b5e5c2de4498c4c3dd6 --- /dev/null +++ b/views/workbench/modifyInfo.vue @@ -0,0 +1,99 @@ + + + + + + diff --git a/views/workbench/modifyPassword.vue b/views/workbench/modifyPassword.vue new file mode 100644 index 0000000000000000000000000000000000000000..1097f4dae6f002f02f599c6bb39165577f13b95c --- /dev/null +++ b/views/workbench/modifyPassword.vue @@ -0,0 +1,137 @@ + + + + + +