diff --git a/.browserslistrc b/.browserslistrc new file mode 100644 index 0000000000000000000000000000000000000000..214388fe43cdfd7ce1c29cd3e401541ded620dba --- /dev/null +++ b/.browserslistrc @@ -0,0 +1,3 @@ +> 1% +last 2 versions +not dead diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000000000000000000000000000000000000..3dce4145ff5ef3d73a37228e50e75a47e9b94655 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true \ No newline at end of file diff --git a/.env.dev b/.env.dev new file mode 100644 index 0000000000000000000000000000000000000000..c4b9ffbb3f2db6270cbd645fc92d2135af7dfec0 --- /dev/null +++ b/.env.dev @@ -0,0 +1,22 @@ +// 编译环境 +NODE_ENV=production +PRODUCTION_TIP=false +// 项目根路径 +VUE_APP_BASEURL = "/credit/" +// SSO客户端令牌 +VUE_APP_CLIENT_ID = web-loong +// SSO客户端秘钥 +VUE_APP_CLIENT_SECRET = web-loong-secret +// 接口版本号 +VUE_APP_API_PREFIX = /api/v1 +// 网关服务 +VUE_APP_MS_GATEWAY_API = http://82.157.46.222:9140/ms-gateway +// 业务服务 +VUE_APP_MS_AUTH_API = http://82.157.46.222:9125/ms-auth +VUE_APP_MS_SYSTEM_API = http://15.1.48.21:9140/ms-system +VUE_APP_MS_NETTY_API = http://15.1.48.21:9140/ms-netty +VUE_APP_MS_APPLICATION_API = http://15.1.48.21:9140/ms-application +// 第三方服务 +VUE_APP_QL_FORM_API = http://152.136.68.93:9018/ms-qing-long/api/v1/des-cache-info/permit_endpoint/query-cacheversion-by-appid-cachetype +// 启动网关 (on | off) +VUE_APP_ENABLE_GATEWAY = off diff --git a/.env.local.bak b/.env.local.bak new file mode 100644 index 0000000000000000000000000000000000000000..269f214bcf34ddbb51ae6e70a7b7675228232617 --- /dev/null +++ b/.env.local.bak @@ -0,0 +1,20 @@ +// 编译环境 +NODE_ENV=development +PRODUCTION_TIP=false +// 项目根路径 +VUE_APP_BASEURL = "./credit/" +// SSO客户端令牌 +VUE_APP_CLIENT_ID = web-loong +// SSO客户端秘钥 +VUE_APP_CLIENT_SECRET = web-loong-secret +// 接口版本号 +VUE_APP_API_PREFIX = /api/v1 +// 网关服务 +VUE_APP_MS_GATEWAY_API = http://82.157.46.222:9140/ms-gateway +// 业务服务 +VUE_APP_MS_AUTH_API = http://82.157.46.222:9125/ms-auth +VUE_APP_MS_SYSTEM_API = http://localhost:9130/ms-system +// 第三方服务 +VUE_APP_QL_FORM_API = http://152.136.68.93:9018/ms-qing-long/api/v1/des-cache-info/permit_endpoint/query-cacheversion-by-appid-cachetype +// 启动网关 (on | off) +VUE_APP_ENABLE_GATEWAY = off diff --git a/.env.prod b/.env.prod new file mode 100644 index 0000000000000000000000000000000000000000..852290b555b5493f3ed28bfa0f14e60e7a7fe2fb --- /dev/null +++ b/.env.prod @@ -0,0 +1,19 @@ +// 编译环境 +NODE_ENV=production +PRODUCTION_TIP=true +// 项目根路径 +VUE_APP_BASEURL = "./credit/" +// SSO客户端令牌 +VUE_APP_CLIENT_ID = web-loong +// SSO客户端秘钥 +VUE_APP_CLIENT_SECRET = web-loong-secret +// 接口版本号 +VUE_APP_API_PREFIX = /api/v1 +// 网关服务 +VUE_APP_MS_GATEWAY_API = http://82.157.46.222:9140/ms-gateway +// 业务服务 +VUE_APP_MS_AUTH_API = http://82.157.46.222:9125/ms-auth +VUE_APP_MS_SYSTEM_API = http://82.157.46.222:9130/ms-system +VUE_APP_MS_APPLICATION_API = http://82.157.46.222:9130/ms-application +// 启动网关 (on | off) +VUE_APP_ENABLE_GATEWAY = off diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000000000000000000000000000000000000..09d40e3ad912050ea8e4d5bff90fcb1ebacf83b4 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,28 @@ +module.exports = { + root: true, + env: { + node: true, + }, + extends: ["plugin:vue/essential", "eslint:recommended", "@vue/typescript/recommended", "@vue/prettier", "@vue/prettier/@typescript-eslint"], + parserOptions: { + ecmaVersion: 2020, + parser: 'babel-eslint' + }, + rules: { + "no-console": process.env.NODE_ENV === "production" ? "warn" : "off", + "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off", + "prettier/prettier": [ + "error", + { + printWidth: 400, + jsxBracketSameLine: true, + }, + ], + "@typescript-eslint/no-non-null-assertion": "off", + "@typescript-eslint/no-empty-function": "off", + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-this-alias": 0, + "@typescript-eslint/camelcase": 0, + "@typescript-eslint/no-var-requires": 0 + } +}; diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..837579e6c18e08f479c171cff68844e4ccce971b --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +.DS_Store +node_modules +/dist +package-lock.json + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/Readme b/Readme new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000000000000000000000000000000000000..ca2a3c102a708cf55309af26e0316913fd3f6f78 --- /dev/null +++ b/babel.config.js @@ -0,0 +1,4 @@ +module.exports = { + presets: ["@vue/cli-plugin-babel/preset"], + plugins: [], +}; diff --git a/package.json b/package.json new file mode 100644 index 0000000000000000000000000000000000000000..a0e3292f8e29c5a62e02b53bde31ebbf1d76f523 --- /dev/null +++ b/package.json @@ -0,0 +1,64 @@ +{ + "name": "mobile-credit-of-chengdu", + "version": "0.1.0", + "private": true, + "scripts": { + "serve": "vue-cli-service serve --mode local", + "serve:dev": "vue-cli-service serve --open --mode dev", + "serve:uat": "vue-cli-service serve --open --mode uat", + "serve:pro": "vue-cli-service serve --open --mode pro", + "build": "vue-cli-service build", + "build:dev": "vue-cli-service build --mode dev", + "build:uat": "vue-cli-service build --mode uat", + "build:pro": "vue-cli-service build --mode pro", + "test:unit": "vue-cli-service test:unit", + "lint": "vue-cli-service lint --fix" + }, + "dependencies": { + "@antv/g6": "^4.5.5", + "@dhccmobile/common-style": "^2.0.0", + "axios": "^0.21.1", + "better-scroll": "^2.4.2", + "core-js": "^3.6.5", + "echarts": "^5.3.0", + "express": "^4.17.1", + "mathjs": "^9.4.4", + "sm-crypto": "^0.3.7", + "swiper": "^7.2.0", + "vant": "^2.12.29", + "vconsole": "^3.12.0", + "vue": "^2.6.11", + "vue-awesome-swiper": "^4.1.1", + "vue-axios": "^3.2.5", + "vue-baidu-map": "^0.21.22", + "vue-class-component": "^7.2.3", + "vue-esign": "^1.0.5", + "vue-jsonp": "^2.0.0", + "vue-property-decorator": "^9.1.2", + "vue-qr": "^3.2.4", + "vue-router": "^3.2.0", + "vuex": "^3.5.1" + }, + "devDependencies": { + "@typescript-eslint/eslint-plugin": "^4.18.0", + "@typescript-eslint/parser": "^4.18.0", + "@vue/cli-plugin-babel": "~4.5.0", + "@vue/cli-plugin-eslint": "~4.5.0", + "@vue/cli-plugin-router": "~4.5.0", + "@vue/cli-plugin-typescript": "~4.5.0", + "@vue/cli-plugin-vuex": "~4.3.0", + "@vue/cli-service": "~4.5.0", + "@vue/eslint-config-prettier": "^6.0.0", + "@vue/eslint-config-typescript": "^7.0.0", + "babel-plugin-import": "^1.13.3", + "eslint": "^6.7.2", + "eslint-plugin-prettier": "^3.3.1", + "eslint-plugin-vue": "^6.2.2", + "less-loader": "^6.2.0", + "prettier": "^2.2.1", + "sass": "^1.26.5", + "sass-loader": "^8.0.2", + "typescript": "~4.1.5", + "vue-template-compiler": "^2.6.11" + } +} diff --git a/public/assets/js/5+plugins.js b/public/assets/js/5+plugins.js new file mode 100644 index 0000000000000000000000000000000000000000..00b3a6902335d91c7c112b3a0eeab21b22b5373c --- /dev/null +++ b/public/assets/js/5+plugins.js @@ -0,0 +1,48 @@ +/**eslint-disable*/ +const genFn = (clsName, action) => { + return function (options, successCallback, errorCallback) { + const bridge = window.plus.bridge; + const success = + typeof successCallback !== "function" + ? null + : function (args) { + successCallback(args); + }, + fail = + typeof errorCallback !== "function" + ? null + : function (code) { + errorCallback(code); + }, + callbackID = bridge.callbackId(success, fail); + return bridge.exec(clsName, action, [callbackID, options]); + }; +}; +//自定义Native插件注册 +window.$bridge = { + takePhoto: genFn("TakePhoto", "takePhoto"), + captureVideo: genFn("Videotaped", "captureVideo"), + getVideoPath: genFn("FileSystem", "getVideoPath"), + generateVideoName: genFn("FileSystem", "generateVideoName"), + getAudioPath: genFn("FileSystem", "getAudioPath"), + generateAudioName: genFn("FileSystem", "generateAudioName"), + cloudWalkBiometrics1: genFn("CloudWalk", "startLiveFront"), + calendarOperate: genFn("Calendar", "addCalendarEvent") +}; + +document.addEventListener("plusready", function () { + const plus = window.plus; + let firstBack = 0; + function handleBack() { + if (!firstBack) { + firstBack = Date.now(); + plus.nativeUI.toast("再按一次退出应用"); + setTimeout(function () { + firstBack = 0; + }, 2000); + } else if (Date.now() - firstBack < 2000) { + plus.runtime.quit(); + } + } + window.plus.key.addEventListener("backbutton", handleBack); +}); diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..276ff4c3de1509b968e641edf53cdd06542b24ce Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000000000000000000000000000000000000..c0061a6c12e4e4f618aaf64ed2b84411ccb5c17a --- /dev/null +++ b/public/index.html @@ -0,0 +1,19 @@ + + + + + + + + + 系统管理 + + + +
+ + + + diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000000000000000000000000000000000000..99cdead007207fb1f0893e8fdce293c044322216 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/src/assets/css/bootstrap.min.css b/src/assets/css/bootstrap.min.css new file mode 100644 index 0000000000000000000000000000000000000000..882691283ab5b356f9643f8507666d71f3372ca1 --- /dev/null +++ b/src/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/src/assets/css/common.scss b/src/assets/css/common.scss new file mode 100644 index 0000000000000000000000000000000000000000..d42e5e0d9351c36a19328a1a10b5db30c9c69b67 --- /dev/null +++ b/src/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/src/assets/css/index.scss b/src/assets/css/index.scss new file mode 100644 index 0000000000000000000000000000000000000000..0132a850f7f7c67fb9558b634c5ee3bc6b100e13 --- /dev/null +++ b/src/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/src/assets/css/text.css b/src/assets/css/text.css new file mode 100644 index 0000000000000000000000000000000000000000..f34f0f96c8cd76df54f58363f80bd17fa6779ac0 --- /dev/null +++ b/src/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/src/assets/css/vant-cover.scss b/src/assets/css/vant-cover.scss new file mode 100644 index 0000000000000000000000000000000000000000..2d2b8fa45cb501ca814031bf95670d12c2f7570c --- /dev/null +++ b/src/assets/css/vant-cover.scss @@ -0,0 +1,19 @@ +/** vant样式覆写 */ +.van-nav-bar__content { + height: 60px; + background-image: url("../images/tiileimg.png"); + 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/src/assets/icon/general/iconfont.css b/src/assets/icon/general/iconfont.css new file mode 100644 index 0000000000000000000000000000000000000000..c8f24f787fa2849f794b90d3909a3ad693b4dee0 --- /dev/null +++ b/src/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/src/assets/icon/general/iconfont.js b/src/assets/icon/general/iconfont.js new file mode 100644 index 0000000000000000000000000000000000000000..bb3fa452f41a1b3129c72ff6d9d15686cab13e02 --- /dev/null +++ b/src/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/src/assets/icon/general/iconfont.json b/src/assets/icon/general/iconfont.json new file mode 100644 index 0000000000000000000000000000000000000000..8ea55755312cb20ea0e0cd711a0f8d6fcfccb4c6 --- /dev/null +++ b/src/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/src/assets/icon/general/iconfont.ttf b/src/assets/icon/general/iconfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..b8ecb7efe1a21dc4130807cf04bc5a0a6d1db02d Binary files /dev/null and b/src/assets/icon/general/iconfont.ttf differ diff --git a/src/assets/iconfont/demo.css b/src/assets/iconfont/demo.css new file mode 100644 index 0000000000000000000000000000000000000000..a67054a0a030993643b8cbe9f344b34706efa134 --- /dev/null +++ b/src/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/src/assets/iconfont/demo_index.html b/src/assets/iconfont/demo_index.html new file mode 100644 index 0000000000000000000000000000000000000000..8ed00ae519061cc090f98b9b9023a3e89e358767 --- /dev/null +++ b/src/assets/iconfont/demo_index.html @@ -0,0 +1,4995 @@ + + + + + iconfont Demo + + + + + + + + + + + + + +
+

+ + +

+ +
+
+
    + +
  • + +
    网贷18X18
    +
    &#xec8c;
    +
  • + +
  • + +
    个贷18x18
    +
    &#xec8d;
    +
  • + +
  • + +
    6选中
    +
    &#xec79;
    +
  • + +
  • + +
    5选中
    +
    &#xec7a;
    +
  • + +
  • + +
    3选中
    +
    &#xec7b;
    +
  • + +
  • + +
    2选中
    +
    &#xec7c;
    +
  • + +
  • + +
    4选中
    +
    &#xec7d;
    +
  • + +
  • + +
    1选中
    +
    &#xec7e;
    +
  • + +
  • +  +
    完成
    +
    &#xec7f;
    +
  • + +
  • + +
    客户管理(面)
    +
    &#xec6d;
    +
  • + +
  • + +
    客户管理(线)
    +
    &#xec6e;
    +
  • + +
  • + +
    营销管理(线)
    +
    &#xec6f;
    +
  • + +
  • + +
    营销管理(面)
    +
    &#xec70;
    +
  • + +
  • + +
    工作台(面)
    +
    &#xec71;
    +
  • + +
  • + +
    工作台(线)
    +
    &#xec72;
    +
  • + +
  • + +
    右-三角
    +
    &#xe627;
    +
  • + +
  • + +
    节点1
    +
    &#xec67;
    +
  • + +
  • + +
    节点2
    +
    &#xec68;
    +
  • + +
  • + +
    节点3
    +
    &#xec69;
    +
  • + +
  • + +
    节点4
    +
    &#xec6a;
    +
  • + +
  • + +
    节点5
    +
    &#xec6b;
    +
  • + +
  • + +
    节点5
    +
    &#xec6c;
    +
  • + +
  • + +
    向上
    +
    &#xe600;
    +
  • + +
  • + +
    向下
    +
    &#xe601;
    +
  • + +
  • + +
    896x896任务背景6
    +
    &#xec5f;
    +
  • + +
  • + +
    896x896任务背景5
    +
    &#xec5e;
    +
  • + +
  • + +
    896x896任务背景4
    +
    &#xec5d;
    +
  • + +
  • + +
    896x896任务背景3
    +
    &#xec5c;
    +
  • + +
  • + +
    896x896任务背景2
    +
    &#xec5b;
    +
  • + +
  • + +
    896x896任务背景1
    +
    &#xec5a;
    +
  • + +
  • + +
    导航栏
    +
    &#xe742;
    +
  • + +
  • + +
    查看
    +
    &#xe62b;
    +
  • + +
  • + +
    保存
    +
    &#xe82b;
    +
  • + +
  • + +
    选中
    +
    &#xe624;
    +
  • + +
  • + +
    语音
    +
    &#xe631;
    +
  • + +
  • + +
    删除
    +
    &#xe63c;
    +
  • + +
  • + +
    正排序
    +
    &#xe6a4;
    +
  • + +
  • + +
    100px调查样式2
    +
    &#xe6a9;
    +
  • + +
  • + +
    清除
    +
    &#xe713;
    +
  • + +
  • + +
    电话
    +
    &#xe654;
    +
  • + +
  • + +
    菜单
    +
    &#xe65c;
    +
  • + +
  • + +
    16px搜索󅒐
    +
    &#xe701;
    +
  • + +
  • + +
    编辑
    +
    &#xe61c;
    +
  • + +
  • + +
    16px-取消上传#808080
    +
    &#xe7e7;
    +
  • + +
  • + +
    14px下一级
    +
    &#xe804;
    +
  • + +
  • + +
    30px利率试算
    +
    &#xe83a;
    +
  • + +
  • + +
    30p计算器
    +
    &#xe83c;
    +
  • + +
  • + +
    30px收费查询
    +
    &#xe83d;
    +
  • + +
  • + +
    220x140px-人像面
    +
    &#xe756;
    +
  • + +
  • + +
    返回
    +
    &#xe60c;
    +
  • + +
  • + +
    下一步
    +
    &#xe645;
    +
  • + +
  • + +
    提示
    +
    &#xe72b;
    +
  • + +
  • + +
    20px上传
    +
    &#xe67f;
    +
  • + +
  • + +
    1-登入
    +
    &#xe619;
    +
  • + +
  • + +
    切换城市
    +
    &#xe8cd;
    +
  • + +
  • + +
    主页
    +
    &#xe629;
    +
  • + +
  • + +
    历史记录
    +
    &#xe685;
    +
  • + +
  • + +
    预警信号
    +
    &#xe60d;
    +
  • + +
  • + +
    选中角标16x16
    +
    &#xec26;
    +
  • + +
  • + +
    提示信息
    +
    &#xe7b8;
    +
  • + +
  • + +
    icon_案例管理
    +
    &#xe628;
    +
  • + +
  • + +
    02_拍照
    +
    &#xe698;
    +
  • + +
  • + +
    本次初筛
    +
    &#xec1f;
    +
  • + +
  • + +
    产品缓冲背景72x72
    +
    &#xec1e;
    +
  • + +
  • + +
    我的日程16x16
    +
    &#xec1b;
    +
  • + +
  • + +
    我的24x24
    +
    &#xec19;
    +
  • + +
  • + +
    时间,计时
    +
    &#xe6f1;
    +
  • + +
  • + +
    行外32x32
    +
    &#xec14;
    +
  • + +
  • + +
    客户体检
    +
    &#xec12;
    +
  • + +
  • + +
    日程提醒
    +
    &#xec13;
    +
  • + +
  • + +
    客户定位
    +
    &#xec0e;
    +
  • + +
  • + +
    辅助工具
    +
    &#xec0f;
    +
  • + +
  • + +
    网点查询
    +
    &#xec10;
    +
  • + +
  • + +
    系统公告
    +
    &#xec11;
    +
  • + +
  • + +
    不解除
    +
    &#xec0a;
    +
  • + +
  • + +
    自动解除
    +
    &#xec0b;
    +
  • + +
  • + +
    人工解除
    +
    &#xec0c;
    +
  • + +
  • + +
    二维码
    +
    &#xec09;
    +
  • + +
  • + +
    日程提醒_24_24
    +
    &#xec05;
    +
  • + +
  • + +
    gongsimingcheng
    +
    &#xebf7;
    +
  • + +
  • + +
    语音
    +
    &#xebf6;
    +
  • + +
  • + +
    公司章程
    +
    &#xebf5;
    +
  • + +
  • + +
    公司章程
    +
    &#xebf4;
    +
  • + +
  • + +
    补录-32X32
    +
    &#xebf2;
    +
  • + +
  • + +
    电话
    +
    &#xebf1;
    +
  • + +
  • + +
    移动信贷icon
    +
    &#xebf0;
    +
  • + +
  • + +
    审批通过
    +
    &#xeb5c;
    +
  • + +
  • + +
    保证人情况调查_50X50
    +
    &#xebea;
    +
  • + +
  • + +
    借款人信用状况调查_50X50
    +
    &#xebeb;
    +
  • + +
  • + +
    抵质押物调查_50X50
    +
    &#xebec;
    +
  • + +
  • + +
    借款人经营及财务情况调查_50X50
    +
    &#xebed;
    +
  • + +
  • + +
    其他_50X50
    +
    &#xebee;
    +
  • + +
  • + +
    正式-32X32
    +
    &#xebe7;
    +
  • + +
  • + +
    潜在-32X32
    +
    &#xebe8;
    +
  • + +
  • + +
    其他-32X32
    +
    &#xebe9;
    +
  • + +
  • + +
    保存
    +
    &#xe63b;
    +
  • + +
  • + +
    减少
    +
    &#xe8b1;
    +
  • + +
  • + +
    手动新增100x100
    +
    &#xebe6;
    +
  • + +
  • + +
    领取20x24
    +
    &#xebe3;
    +
  • + +
  • + +
    全选24x24
    +
    &#xebe4;
    +
  • + +
  • + +
    全不选24x24
    +
    &#xebe5;
    +
  • + +
  • + +
    重要通知12x16
    +
    &#xebd2;
    +
  • + +
  • + +
    项目信息18x20
    +
    &#xebd3;
    +
  • + +
  • + +
    综合收益率20x20
    +
    &#xebd4;
    +
  • + +
  • + +
    作废24x24
    +
    &#xebd5;
    +
  • + +
  • + +
    通过100x25
    +
    &#xebd6;
    +
  • + +
  • + +
    手持身份证120x120
    +
    &#xebd7;
    +
  • + +
  • + +
    消息提醒14x16
    +
    &#xebd8;
    +
  • + +
  • + +
    舆情信息20x18
    +
    &#xebd9;
    +
  • + +
  • + +
    系统公告20x20
    +
    &#xebda;
    +
  • + +
  • + +
    营销时光轴16x16
    +
    &#xebdb;
    +
  • + +
  • + +
    在途业务20x20
    +
    &#xebdc;
    +
  • + +
  • + +
    失败100x25
    +
    &#xebdd;
    +
  • + +
  • + +
    网点查询16x20
    +
    &#xebde;
    +
  • + +
  • + +
    提示60x60
    +
    &#xebdf;
    +
  • + +
  • + +
    退回24x24
    +
    &#xebe0;
    +
  • + +
  • + +
    营销管理48x48
    +
    &#xebe1;
    +
  • + +
  • + +
    营销管理-选中48x48
    +
    &#xebe2;
    +
  • + +
  • + +
    被执行人20x20
    +
    &#xeb9e;
    +
  • + +
  • + +
    财务信息18x20
    +
    &#xeb9f;
    +
  • + +
  • + +
    产品推介-选中24x24
    +
    &#xeba0;
    +
  • + +
  • + +
    裁判文书18x20
    +
    &#xeba1;
    +
  • + +
  • + +
    测评结果110x110
    +
    &#xeba2;
    +
  • + +
  • + +
    产品推介24x24
    +
    &#xeba3;
    +
  • + +
  • + +
    案件流程20x20
    +
    &#xeba4;
    +
  • + +
  • + +
    成功140x140
    +
    &#xeba5;
    +
  • + +
  • + +
    成都银行logo
    +
    &#xeba6;
    +
  • + +
  • + +
    成都银行-未选中logo
    +
    &#xeba7;
    +
  • + +
  • + +
    打卡签到20x20
    +
    &#xeba8;
    +
  • + +
  • + +
    处罚信息18x20
    +
    &#xeba9;
    +
  • + +
  • + +
    导航16x16
    +
    &#xebaa;
    +
  • + +
  • + +
    到期提示16x16
    +
    &#xebab;
    +
  • + +
  • + +
    初筛历史20x20
    +
    &#xebac;
    +
  • + +
  • + +
    担保视图28x28
    +
    &#xebad;
    +
  • + +
  • + +
    定位12x16
    +
    &#xebae;
    +
  • + +
  • + +
    法院公告18x20
    +
    &#xebaf;
    +
  • + +
  • + +
    工作台-选中48x48
    +
    &#xebb0;
    +
  • + +
  • + +
    股票信息20x20
    +
    &#xebb1;
    +
  • + +
  • + +
    工作台48x48
    +
    &#xebb2;
    +
  • + +
  • + +
    等待100x25
    +
    &#xebb3;
    +
  • + +
  • + +
    公司章程20x20
    +
    &#xebb4;
    +
  • + +
  • + +
    工作单位20x18
    +
    &#xebb5;
    +
  • + +
  • + +
    基本信息18x20
    +
    &#xebb6;
    +
  • + +
  • + +
    辅助功能20x20
    +
    &#xebb7;
    +
  • + +
  • + +
    集团关系28x28
    +
    &#xebb8;
    +
  • + +
  • + +
    关联方20x20
    +
    &#xebb9;
    +
  • + +
  • + +
    股权及动产质押18x20
    +
    &#xebba;
    +
  • + +
  • + +
    客户查询18x20
    +
    &#xebbb;
    +
  • + +
  • + +
    面签管理-选中48x48
    +
    &#xebbc;
    +
  • + +
  • + +
    开庭公告18x20
    +
    &#xebbd;
    +
  • + +
  • + +
    高管授信18x20
    +
    &#xebbe;
    +
  • + +
  • +  +
    经营风险18x20
    +
    &#xebbf;
    +
  • + +
  • + +
    客户管理48x48
    +
    &#xebc0;
    +
  • + +
  • + +
    曝光台20x18
    +
    &#xebc1;
    +
  • + +
  • + +
    清算信息18x20
    +
    &#xebc2;
    +
  • + +
  • + +
    企业时光轴16x16
    +
    &#xebc3;
    +
  • + +
  • + +
    客户管理-选中48x48
    +
    &#xebc4;
    +
  • + +
  • + +
    企业图谱20x20
    +
    &#xebc5;
    +
  • + +
  • + +
    面签管理48x48
    +
    &#xebc6;
    +
  • + +
  • + +
    评级情况20x18
    +
    &#xebc7;
    +
  • + +
  • + +
    风险核查120x120
    +
    &#xebc8;
    +
  • + +
  • + +
    家庭财务信息20x20
    +
    &#xebc9;
    +
  • + +
  • + +
    年报信息18x20
    +
    &#xebca;
    +
  • + +
  • + +
    日程提醒20x20
    +
    &#xebcb;
    +
  • + +
  • + +
    时光轴16x16
    +
    &#xebcc;
    +
  • + +
  • + +
    授信视图18x20
    +
    &#xebcd;
    +
  • + +
  • + +
    拍照24x20
    +
    &#xebce;
    +
  • + +
  • + +
    删除24x24
    +
    &#xebcf;
    +
  • + +
  • + +
    司法查冻扣20x18
    +
    &#xebd0;
    +
  • + +
  • + +
    人脸识别160x160
    +
    &#xebd1;
    +
  • + +
  • + +
    检查更新20x20px
    +
    &#xe882;
    +
  • + +
  • + +
    燃气户号-帮助16x16px
    +
    &#xe9dd;
    +
  • + +
  • + +
    待办
    +
    &#xe608;
    +
  • + +
  • + +
    app-筛选16x16px
    +
    &#xea90;
    +
  • + +
  • + +
    消息
    +
    &#xeb08;
    +
  • + +
  • + +
    风险预警处置
    +
    &#xe7d7;
    +
  • + +
  • + +
    web-扫码
    +
    &#xe9f2;
    +
  • + +
  • + +
    excel-1
    +
    &#xe7b4;
    +
  • + +
  • + +
    word-1
    +
    &#xe7b7;
    +
  • + +
  • + +
    pdf-1
    +
    &#xe7bd;
    +
  • + +
  • + +
    30px文件夹2
    +
    &#xe67d;
    +
  • + +
  • + +
    清理缓存20x20px
    +
    &#xe884;
    +
  • + +
  • + +
    web-邮箱
    +
    &#xea03;
    +
  • + +
  • + +
    客户管理-选中
    +
    &#xe843;
    +
  • + +
  • + +
    客户管理-未选中
    +
    &#xe844;
    +
  • + +
  • + +
    我的-未选中
    +
    &#xe848;
    +
  • + +
  • + +
    调查任务-选中
    +
    &#xe880;
    +
  • + +
  • + +
    调查任务-未选中
    +
    &#xe881;
    +
  • + +
  • + +
    二维码
    +
    &#xe647;
    +
  • + +
  • + +
    亚军44x44px
    +
    &#xe8a5;
    +
  • + +
  • + +
    季军44x44px
    +
    &#xe8a6;
    +
  • + +
  • + +
    冠军44x44px
    +
    &#xe8a7;
    +
  • + +
  • + +
    女性-个人头像22x22px
    +
    &#xe8ca;
    +
  • + +
  • + +
    男性-个人头像22x22px
    +
    &#xe8cb;
    +
  • + +
  • + +
    搜索2
    +
    &#xeaaa;
    +
  • + +
  • + +
    待审批
    +
    &#xeaad;
    +
  • + +
  • + +
    扫描
    +
    &#xeb4e;
    +
  • + +
  • + +
    用户
    +
    &#xeb50;
    +
  • + +
  • + +
    列表上进入
    +
    &#xeb62;
    +
  • + +
  • + +
    手机账号
    +
    &#xeb5a;
    +
  • + +
  • + +
    人脸识别
    +
    &#xe82a;
    +
  • + +
  • + +
    承诺日到期提醒16x16px
    +
    &#xe9e9;
    +
  • + +
  • + +
    营业执照85x120px
    +
    &#xe929;
    +
  • + +
  • + +
    身份证人像面140x90px
    +
    &#xe92a;
    +
  • + +
  • + +
    身份证国徽面140x90px
    +
    &#xe92b;
    +
  • + +
  • + +
    已拒绝60x60px
    +
    &#xe92e;
    +
  • + +
  • + +
    勾选-未选中14x14px
    +
    &#xe93e;
    +
  • + +
  • + +
    已处理状态
    +
    &#xea6a;
    +
  • + +
  • + +
    待处理状态
    +
    &#xea6b;
    +
  • + +
+
+

Unicode 引用

+
+ +

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

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

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

+
+

Unicode 使用步骤如下:

+

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

+
@font-face {
+  font-family: 'iconfont';
+  src: url('iconfont.woff2?t=1644672888902') format('woff2'),
+       url('iconfont.woff?t=1644672888902') format('woff'),
+       url('iconfont.ttf?t=1644672888902') 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"。

+
+
+
+
+
    + +
  • + +
    + 网贷18X18 +
    +
    .icon-wangdai18X18 +
    +
  • + +
  • + +
    + 个贷18x18 +
    +
    .icon-gedai18x181 +
    +
  • + +
  • + +
    + 6选中 +
    +
    .icon-a-6xuanzhong +
    +
  • + +
  • + +
    + 5选中 +
    +
    .icon-a-5xuanzhong +
    +
  • + +
  • + +
    + 3选中 +
    +
    .icon-a-3xuanzhong +
    +
  • + +
  • + +
    + 2选中 +
    +
    .icon-a-2xuanzhong +
    +
  • + +
  • + +
    + 4选中 +
    +
    .icon-a-4xuanzhong +
    +
  • + +
  • + +
    + 1选中 +
    +
    .icon-a-1xuanzhong +
    +
  • + +
  • + +
    + 完成 +
    +
    .icon-wancheng +
    +
  • + +
  • + +
    + 客户管理(面) +
    +
    .icon-a-kehuguanlimian +
    +
  • + +
  • + +
    + 客户管理(线) +
    +
    .icon-a-kehuguanlixian +
    +
  • + +
  • + +
    + 营销管理(线) +
    +
    .icon-a-yingxiaoguanlixian +
    +
  • + +
  • + +
    + 营销管理(面) +
    +
    .icon-a-yingxiaoguanlimian +
    +
  • + +
  • + +
    + 工作台(面) +
    +
    .icon-a-gongzuotaimian +
    +
  • + +
  • + +
    + 工作台(线) +
    +
    .icon-a-gongzuotaixian +
    +
  • + +
  • + +
    + 右-三角 +
    +
    .icon-right-s +
    +
  • + +
  • + +
    + 节点1 +
    +
    .icon-jiedian1 +
    +
  • + +
  • + +
    + 节点2 +
    +
    .icon-jiedian2 +
    +
  • + +
  • + +
    + 节点3 +
    +
    .icon-jiedian3 +
    +
  • + +
  • + +
    + 节点4 +
    +
    .icon-jiedian4 +
    +
  • + +
  • + +
    + 节点5 +
    +
    .icon-jiedian5 +
    +
  • + +
  • + +
    + 节点5 +
    +
    .icon-jiedian51 +
    +
  • + +
  • + +
    + 向上 +
    +
    .icon-xiangshang +
    +
  • + +
  • + +
    + 向下 +
    +
    .icon-xiangxia +
    +
  • + +
  • + +
    + 896x896任务背景6 +
    +
    .icon-a-896x896renwubeijing6 +
    +
  • + +
  • + +
    + 896x896任务背景5 +
    +
    .icon-a-896x896renwubeijing5 +
    +
  • + +
  • + +
    + 896x896任务背景4 +
    +
    .icon-a-896x896renwubeijing4 +
    +
  • + +
  • + +
    + 896x896任务背景3 +
    +
    .icon-a-896x896renwubeijing3 +
    +
  • + +
  • + +
    + 896x896任务背景2 +
    +
    .icon-a-896x896renwubeijing2 +
    +
  • + +
  • + +
    + 896x896任务背景1 +
    +
    .icon-a-896x896renwubeijing1 +
    +
  • + +
  • + +
    + 导航栏 +
    +
    .icon-daohanglan +
    +
  • + +
  • + +
    + 查看 +
    +
    .icon-chakan-copy +
    +
  • + +
  • + +
    + 保存 +
    +
    .icon-baocun1 +
    +
  • + +
  • + +
    + 选中 +
    +
    .icon-xuanzhong +
    +
  • + +
  • + +
    + 语音 +
    +
    .icon-yuyin1 +
    +
  • + +
  • + +
    + 删除 +
    +
    .icon-shanchu +
    +
  • + +
  • + +
    + 正排序 +
    +
    .icon-zhengpaixu +
    +
  • + +
  • + +
    + 100px调查样式2 +
    +
    .icon-pxtiaochayangshi1 +
    +
  • + +
  • + +
    + 清除 +
    +
    .icon-qingchu +
    +
  • + +
  • + +
    + 电话 +
    +
    .icon-dianhua1 +
    +
  • + +
  • + +
    + 菜单 +
    +
    .icon-caidan +
    +
  • + +
  • + +
    + 16px搜索󅒐 +
    +
    .icon-pxsousuo +
    +
  • + +
  • + +
    + 编辑 +
    +
    .icon-edit +
    +
  • + +
  • + +
    + 16px-取消上传#808080 +
    +
    .icon-px-quxiaoshangchuan +
    +
  • + +
  • + +
    + 14px下一级 +
    +
    .icon-pxxiayiji +
    +
  • + +
  • + +
    + 30px利率试算 +
    +
    .icon-pxlishuaishisuan1 +
    +
  • + +
  • + +
    + 30p计算器 +
    +
    .icon-pjisuanqi +
    +
  • + +
  • + +
    + 30px收费查询 +
    +
    .icon-pxshoufeichaxun +
    +
  • + +
  • + +
    + 220x140px-人像面 +
    +
    .icon-xpx-renxiangmian +
    +
  • + +
  • + +
    + 返回 +
    +
    .icon-fanhui1 +
    +
  • + +
  • + +
    + 下一步 +
    +
    .icon-xiayibu +
    +
  • + +
  • + +
    + 提示 +
    +
    .icon-tishi +
    +
  • + +
  • + +
    + 20px上传 +
    +
    .icon-pxshangchuan +
    +
  • + +
  • + +
    + 1-登入 +
    +
    .icon--dengru +
    +
  • + +
  • + +
    + 切换城市 +
    +
    .icon-qiehuanchengshi +
    +
  • + +
  • + +
    + 主页 +
    +
    .icon-zhuye +
    +
  • + +
  • + +
    + 历史记录 +
    +
    .icon-lishijilu +
    +
  • + +
  • + +
    + 预警信号 +
    +
    .icon-ziyuan +
    +
  • + +
  • + +
    + 选中角标16x16 +
    +
    .icon-xuanzhongjiaobiao16x16 +
    +
  • + +
  • + +
    + 提示信息 +
    +
    .icon-prompt-info +
    +
  • + +
  • + +
    + icon_案例管理 +
    +
    .icon-icon_anliguanli +
    +
  • + +
  • + +
    + 02_拍照 +
    +
    .icon-a-02_paizhao +
    +
  • + +
  • + +
    + 本次初筛 +
    +
    .icon-bencichushai +
    +
  • + +
  • + +
    + 产品缓冲背景72x72 +
    +
    .icon-chanpinhuanchongbeijing72x72 +
    +
  • + +
  • + +
    + 我的日程16x16 +
    +
    .icon-wodericheng16x16 +
    +
  • + +
  • + +
    + 我的24x24 +
    +
    .icon-wode24x24 +
    +
  • + +
  • + +
    + 时间,计时 +
    +
    .icon-shijianjishi +
    +
  • + +
  • + +
    + 行外32x32 +
    +
    .icon-hangwai32x32 +
    +
  • + +
  • + +
    + 客户体检 +
    +
    .icon-kehutijian +
    +
  • + +
  • + +
    + 日程提醒 +
    +
    .icon-richengtixing +
    +
  • + +
  • + +
    + 客户定位 +
    +
    .icon-kehudingwei +
    +
  • + +
  • + +
    + 辅助工具 +
    +
    .icon-fuzhugongju +
    +
  • + +
  • + +
    + 网点查询 +
    +
    .icon-wangdianchaxun +
    +
  • + +
  • + +
    + 系统公告 +
    +
    .icon-xitonggonggao +
    +
  • + +
  • + +
    + 不解除 +
    +
    .icon-bujiechu1 +
    +
  • + +
  • + +
    + 自动解除 +
    +
    .icon-zidongjiechu1 +
    +
  • + +
  • + +
    + 人工解除 +
    +
    .icon-rengongjiechu1 +
    +
  • + +
  • + +
    + 二维码 +
    +
    .icon-erweima +
    +
  • + +
  • + +
    + 日程提醒_24_24 +
    +
    .icon-richengtixing_24_24 +
    +
  • + +
  • + +
    + gongsimingcheng +
    +
    .icon-gongsimingcheng +
    +
  • + +
  • + +
    + 语音 +
    +
    .icon-yuyin +
    +
  • + +
  • + +
    + 公司章程 +
    +
    .icon-gongsizhangcheng1 +
    +
  • + +
  • + +
    + 公司章程 +
    +
    .icon-gongsizhangcheng +
    +
  • + +
  • + +
    + 补录-32X32 +
    +
    .icon-bulu-32X32 +
    +
  • + +
  • + +
    + 电话 +
    +
    .icon-dianhua +
    +
  • + +
  • + +
    + 移动信贷icon +
    +
    .icon-yidongxindaiicon +
    +
  • + +
  • + +
    + 审批通过 +
    +
    .icon-shenpitongguo +
    +
  • + +
  • + +
    + 保证人情况调查_50X50 +
    +
    .icon-baozhengrenqingkuangtiaocha_50X50 +
    +
  • + +
  • + +
    + 借款人信用状况调查_50X50 +
    +
    .icon-jiekuanrenxinyongzhuangkuangtiaocha_50X50 +
    +
  • + +
  • + +
    + 抵质押物调查_50X50 +
    +
    .icon-dizhiyawutiaocha_50X50 +
    +
  • + +
  • + +
    + 借款人经营及财务情况调查_50X50 +
    +
    .icon-jiekuanrenjingyingjicaiwuqingkuangtiaocha_50X50 +
    +
  • + +
  • + +
    + 其他_50X50 +
    +
    .icon-qita_50X50 +
    +
  • + +
  • + +
    + 正式-32X32 +
    +
    .icon-zhengshi-32X32 +
    +
  • + +
  • + +
    + 潜在-32X32 +
    +
    .icon-qianzai-32X32 +
    +
  • + +
  • + +
    + 其他-32X32 +
    +
    .icon-qita-32X32 +
    +
  • + +
  • + +
    + 保存 +
    +
    .icon-baocun +
    +
  • + +
  • + +
    + 减少 +
    +
    .icon-jianshao +
    +
  • + +
  • + +
    + 手动新增100x100 +
    +
    .icon-a-shoudongxinzeng100x100ziyuan78 +
    +
  • + +
  • + +
    + 领取20x24 +
    +
    .icon-a-lingqu20x24ziyuan77 +
    +
  • + +
  • + +
    + 全选24x24 +
    +
    .icon-a-quanxuan24x24ziyuan76 +
    +
  • + +
  • + +
    + 全不选24x24 +
    +
    .icon-a-quanbuxuan24x24ziyuan75 +
    +
  • + +
  • + +
    + 重要通知12x16 +
    +
    .icon-a-zhongyaotongzhi12x16ziyuan43 +
    +
  • + +
  • + +
    + 项目信息18x20 +
    +
    .icon-a-xiangmuxinxi18x20ziyuan11 +
    +
  • + +
  • + +
    + 综合收益率20x20 +
    +
    .icon-a-zongheshouyishuai20x20ziyuan35 +
    +
  • + +
  • + +
    + 作废24x24 +
    +
    .icon-a-zuofei24x24ziyuan72 +
    +
  • + +
  • + +
    + 通过100x25 +
    +
    .icon-a-tongguo100x25ziyuan45 +
    +
  • + +
  • + +
    + 手持身份证120x120 +
    +
    .icon-a-shouchishenfenzheng120x120ziyuan68 +
    +
  • + +
  • + +
    + 消息提醒14x16 +
    +
    .icon-a-xiaoxitixing14x16ziyuan41 +
    +
  • + +
  • + +
    + 舆情信息20x18 +
    +
    .icon-a-yuqingxinxi20x18ziyuan23 +
    +
  • + +
  • + +
    + 系统公告20x20 +
    +
    .icon-a-xitonggonggao20x20ziyuan58 +
    +
  • + +
  • + +
    + 营销时光轴16x16 +
    +
    .icon-a-yingxiaoshiguangzhou16x16ziyuan64 +
    +
  • + +
  • + +
    + 在途业务20x20 +
    +
    .icon-a-zaituyewu20x20ziyuan36 +
    +
  • + +
  • + +
    + 失败100x25 +
    +
    .icon-a-shibai100x25ziyuan46 +
    +
  • + +
  • + +
    + 网点查询16x20 +
    +
    .icon-a-wangdianchaxun16x20ziyuan56 +
    +
  • + +
  • + +
    + 提示60x60 +
    +
    .icon-a-tishi60x60ziyuan51 +
    +
  • + +
  • + +
    + 退回24x24 +
    +
    .icon-a-tuihui24x24ziyuan71 +
    +
  • + +
  • + +
    + 营销管理48x48 +
    +
    .icon-a-yingxiaoguanli48x48ziyuan2 +
    +
  • + +
  • + +
    + 营销管理-选中48x48 +
    +
    .icon-a-yingxiaoguanli-xuanzhong48x48ziyuan3 +
    +
  • + +
  • + +
    + 被执行人20x20 +
    +
    .icon-a-beizhihangren20x20ziyuan29 +
    +
  • + +
  • + +
    + 财务信息18x20 +
    +
    .icon-a-caiwuxinxi18x20ziyuan14 +
    +
  • + +
  • + +
    + 产品推介-选中24x24 +
    +
    .icon-a-chanpintuijie-xuanzhong24x24ziyuan49 +
    +
  • + +
  • + +
    + 裁判文书18x20 +
    +
    .icon-a-caipanwenshu18x20ziyuan27 +
    +
  • + +
  • + +
    + 测评结果110x110 +
    +
    .icon-a-cepingjieguo110x110ziyuan40 +
    +
  • + +
  • + +
    + 产品推介24x24 +
    +
    .icon-a-chanpintuijie24x24ziyuan48 +
    +
  • + +
  • + +
    + 案件流程20x20 +
    +
    .icon-a-anjianliucheng20x20ziyuan31 +
    +
  • + +
  • + +
    + 成功140x140 +
    +
    .icon-a-chenggong140x140ziyuan50 +
    +
  • + +
  • + +
    + 成都银行logo +
    +
    .icon-a-chengduyinhanglogoziyuan19 +
    +
  • + +
  • + +
    + 成都银行-未选中logo +
    +
    .icon-a-chengduyinhang-weixuanzhonglogoziyuan20 +
    +
  • + +
  • + +
    + 打卡签到20x20 +
    +
    .icon-a-dakaqiandao20x20ziyuan60 +
    +
  • + +
  • + +
    + 处罚信息18x20 +
    +
    .icon-a-chufaxinxi18x20ziyuan25 +
    +
  • + +
  • + +
    + 导航16x16 +
    +
    .icon-a-daohang16x16ziyuan61 +
    +
  • + +
  • + +
    + 到期提示16x16 +
    +
    .icon-a-daoqitishi16x16ziyuan42 +
    +
  • + +
  • + +
    + 初筛历史20x20 +
    +
    .icon-a-chushailishi20x20ziyuan37 +
    +
  • + +
  • + +
    + 担保视图28x28 +
    +
    .icon-a-danbaoshitu28x28ziyuan22 +
    +
  • + +
  • + +
    + 定位12x16 +
    +
    .icon-a-dingwei12x16ziyuan65 +
    +
  • + +
  • + +
    + 法院公告18x20 +
    +
    .icon-a-fayuangonggao18x20ziyuan28 +
    +
  • + +
  • + +
    + 工作台-选中48x48 +
    +
    .icon-a-gongzuotai-xuanzhong48x48ziyuan5 +
    +
  • + +
  • + +
    + 股票信息20x20 +
    +
    .icon-a-gupiaoxinxi20x20ziyuan10 +
    +
  • + +
  • + +
    + 工作台48x48 +
    +
    .icon-a-gongzuotai48x48ziyuan4 +
    +
  • + +
  • + +
    + 等待100x25 +
    +
    .icon-a-dengdai100x25ziyuan47 +
    +
  • + +
  • + +
    + 公司章程20x20 +
    +
    .icon-a-gongsizhangcheng20x20ziyuan12 +
    +
  • + +
  • + +
    + 工作单位20x18 +
    +
    .icon-a-gongzuodanwei20x18ziyuan53 +
    +
  • + +
  • + +
    + 基本信息18x20 +
    +
    .icon-a-jibenxinxi18x20ziyuan8 +
    +
  • + +
  • + +
    + 辅助功能20x20 +
    +
    .icon-a-fuzhugongneng20x20ziyuan54 +
    +
  • + +
  • + +
    + 集团关系28x28 +
    +
    .icon-a-jituanguanxi28x28ziyuan18 +
    +
  • + +
  • + +
    + 关联方20x20 +
    +
    .icon-a-guanlianfang20x20ziyuan17 +
    +
  • + +
  • + +
    + 股权及动产质押18x20 +
    +
    .icon-a-guquanjidongchanzhiya18x20ziyuan9 +
    +
  • + +
  • + +
    + 客户查询18x20 +
    +
    .icon-a-kehuchaxun18x20ziyuan57 +
    +
  • + +
  • + +
    + 面签管理-选中48x48 +
    +
    .icon-a-mianqianguanli-xuanzhong48x48ziyuan6 +
    +
  • + +
  • + +
    + 开庭公告18x20 +
    +
    .icon-a-kaitinggonggao18x20ziyuan30 +
    +
  • + +
  • + +
    + 高管授信18x20 +
    +
    .icon-a-gaoguanshouxin18x20ziyuan39 +
    +
  • + +
  • + +
    + 经营风险18x20 +
    +
    .icon-a-jingyingfengxian18x20ziyuan24 +
    +
  • + +
  • + +
    + 客户管理48x48 +
    +
    .icon-a-kehuguanli48x48ziyuan6 +
    +
  • + +
  • + +
    + 曝光台20x18 +
    +
    .icon-a-puguangtai20x18ziyuan32 +
    +
  • + +
  • + +
    + 清算信息18x20 +
    +
    .icon-a-qingsuanxinxi18x20ziyuan26 +
    +
  • + +
  • + +
    + 企业时光轴16x16 +
    +
    .icon-a-qiyeshiguangzhou16x16ziyuan63 +
    +
  • + +
  • + +
    + 客户管理-选中48x48 +
    +
    .icon-a-kehuguanli-xuanzhong48x48ziyuan7 +
    +
  • + +
  • + +
    + 企业图谱20x20 +
    +
    .icon-a-qiyetupu20x20ziyuan16 +
    +
  • + +
  • + +
    + 面签管理48x48 +
    +
    .icon-a-mianqianguanli48x48ziyuan5 +
    +
  • + +
  • + +
    + 评级情况20x18 +
    +
    .icon-a-pingjiqingkuang20x18ziyuan34 +
    +
  • + +
  • + +
    + 风险核查120x120 +
    +
    .icon-a-fengxianhecha120x120ziyuan44 +
    +
  • + +
  • + +
    + 家庭财务信息20x20 +
    +
    .icon-a-jiatingcaiwuxinxi20x20ziyuan52 +
    +
  • + +
  • + +
    + 年报信息18x20 +
    +
    .icon-a-nianbaoxinxi18x20ziyuan13 +
    +
  • + +
  • + +
    + 日程提醒20x20 +
    +
    .icon-a-richengtixing20x20ziyuan55 +
    +
  • + +
  • + +
    + 时光轴16x16 +
    +
    .icon-a-shiguangzhou16x16ziyuan62 +
    +
  • + +
  • + +
    + 授信视图18x20 +
    +
    .icon-a-shouxinshitu18x20ziyuan38 +
    +
  • + +
  • + +
    + 拍照24x20 +
    +
    .icon-a-paizhao24x20ziyuan74 +
    +
  • + +
  • + +
    + 删除24x24 +
    +
    .icon-a-shanchu24x24ziyuan73 +
    +
  • + +
  • + +
    + 司法查冻扣20x18 +
    +
    .icon-a-sifachadongkou20x18ziyuan33 +
    +
  • + +
  • + +
    + 人脸识别160x160 +
    +
    .icon-a-renlianshibie160x160ziyuan69 +
    +
  • + +
  • + +
    + 检查更新20x20px +
    +
    .icon-jianchagengxinxpx1 +
    +
  • + +
  • + +
    + 燃气户号-帮助16x16px +
    +
    .icon-ranqihuhao-bangzhu16x16px +
    +
  • + +
  • + +
    + 待办 +
    +
    .icon-daiban +
    +
  • + +
  • + +
    + app-筛选16x16px +
    +
    .icon-app-shaixuan16x16px +
    +
  • + +
  • + +
    + 消息 +
    +
    .icon-icon-test-copy +
    +
  • + +
  • + +
    + 风险预警处置 +
    +
    .icon-fengxianyujingchuzhi +
    +
  • + +
  • + +
    + web-扫码 +
    +
    .icon-web-saoma +
    +
  • + +
  • + +
    + excel-1 +
    +
    .icon-excel-1 +
    +
  • + +
  • + +
    + word-1 +
    +
    .icon-word-1 +
    +
  • + +
  • + +
    + pdf-1 +
    +
    .icon-pdf-1 +
    +
  • + +
  • + +
    + 30px文件夹2 +
    +
    .icon-pxwenjianjia +
    +
  • + +
  • + +
    + 清理缓存20x20px +
    +
    .icon-qinglihuancunxpx1 +
    +
  • + +
  • + +
    + web-邮箱 +
    +
    .icon-web-youxiang +
    +
  • + +
  • + +
    + 客户管理-选中 +
    +
    .icon-kehuguanli-xuanzhong +
    +
  • + +
  • + +
    + 客户管理-未选中 +
    +
    .icon-kehuguanli-weixuanzhong +
    +
  • + +
  • + +
    + 我的-未选中 +
    +
    .icon-wode-weixuanzhong +
    +
  • + +
  • + +
    + 调查任务-选中 +
    +
    .icon-tiaocharenwu-xuanzhong +
    +
  • + +
  • + +
    + 调查任务-未选中 +
    +
    .icon-tiaocharenwu-weixuanzhong +
    +
  • + +
  • + +
    + 二维码 +
    +
    .icon-ico +
    +
  • + +
  • + +
    + 亚军44x44px +
    +
    .icon-yajunxpx +
    +
  • + +
  • + +
    + 季军44x44px +
    +
    .icon-jijunxpx +
    +
  • + +
  • + +
    + 冠军44x44px +
    +
    .icon-guanjunxpx +
    +
  • + +
  • + +
    + 女性-个人头像22x22px +
    +
    .icon-nvxing-gerentouxiangxpx +
    +
  • + +
  • + +
    + 男性-个人头像22x22px +
    +
    .icon-nanxing-gerentouxiangxpx +
    +
  • + +
  • + +
    + 搜索2 +
    +
    .icon-sousuo2 +
    +
  • + +
  • + +
    + 待审批 +
    +
    .icon-daishenpi +
    +
  • + +
  • + +
    + 扫描 +
    +
    .icon-saomiao1 +
    +
  • + +
  • + +
    + 用户 +
    +
    .icon-yonghu +
    +
  • + +
  • + +
    + 列表上进入 +
    +
    .icon-liebiaoshangjinru +
    +
  • + +
  • + +
    + 手机账号 +
    +
    .icon-shoujizhanghao +
    +
  • + +
  • + +
    + 人脸识别 +
    +
    .icon-renlianshibie +
    +
  • + +
  • + +
    + 承诺日到期提醒16x16px +
    +
    .icon-chengnuoridaoqitixing16x16px +
    +
  • + +
  • + +
    + 营业执照85x120px +
    +
    .icon-yingyezhizhao85x120px +
    +
  • + +
  • + +
    + 身份证人像面140x90px +
    +
    .icon-shenfenzhengrenxiangmian140x90px +
    +
  • + +
  • + +
    + 身份证国徽面140x90px +
    +
    .icon-shenfenzhengguohuimian140x90px +
    +
  • + +
  • + +
    + 已拒绝60x60px +
    +
    .icon-yijujue60x60px +
    +
  • + +
  • + +
    + 勾选-未选中14x14px +
    +
    .icon-gouxuan-weixuanzhong14x14px +
    +
  • + +
  • + +
    + 已处理状态 +
    +
    .icon-yichulizhuangtai +
    +
  • + +
  • + +
    + 待处理状态 +
    +
    .icon-daichulizhuangtai +
    +
  • + +
+
+

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"。

+
+
+
+
+
    + +
  • + +
    网贷18X18
    +
    #icon-wangdai18X18
    +
  • + +
  • + +
    个贷18x18
    +
    #icon-gedai18x181
    +
  • + +
  • + +
    6选中
    +
    #icon-a-6xuanzhong
    +
  • + +
  • + +
    5选中
    +
    #icon-a-5xuanzhong
    +
  • + +
  • + +
    3选中
    +
    #icon-a-3xuanzhong
    +
  • + +
  • + +
    2选中
    +
    #icon-a-2xuanzhong
    +
  • + +
  • + +
    4选中
    +
    #icon-a-4xuanzhong
    +
  • + +
  • + +
    1选中
    +
    #icon-a-1xuanzhong
    +
  • + +
  • + +
    完成
    +
    #icon-wancheng
    +
  • + +
  • + +
    客户管理(面)
    +
    #icon-a-kehuguanlimian
    +
  • + +
  • + +
    客户管理(线)
    +
    #icon-a-kehuguanlixian
    +
  • + +
  • + +
    营销管理(线)
    +
    #icon-a-yingxiaoguanlixian
    +
  • + +
  • + +
    营销管理(面)
    +
    #icon-a-yingxiaoguanlimian
    +
  • + +
  • + +
    工作台(面)
    +
    #icon-a-gongzuotaimian
    +
  • + +
  • + +
    工作台(线)
    +
    #icon-a-gongzuotaixian
    +
  • + +
  • + +
    右-三角
    +
    #icon-right-s
    +
  • + +
  • + +
    节点1
    +
    #icon-jiedian1
    +
  • + +
  • + +
    节点2
    +
    #icon-jiedian2
    +
  • + +
  • + +
    节点3
    +
    #icon-jiedian3
    +
  • + +
  • + +
    节点4
    +
    #icon-jiedian4
    +
  • + +
  • + +
    节点5
    +
    #icon-jiedian5
    +
  • + +
  • + +
    节点5
    +
    #icon-jiedian51
    +
  • + +
  • + +
    向上
    +
    #icon-xiangshang
    +
  • + +
  • + +
    向下
    +
    #icon-xiangxia
    +
  • + +
  • + +
    896x896任务背景6
    +
    #icon-a-896x896renwubeijing6
    +
  • + +
  • + +
    896x896任务背景5
    +
    #icon-a-896x896renwubeijing5
    +
  • + +
  • + +
    896x896任务背景4
    +
    #icon-a-896x896renwubeijing4
    +
  • + +
  • + +
    896x896任务背景3
    +
    #icon-a-896x896renwubeijing3
    +
  • + +
  • + +
    896x896任务背景2
    +
    #icon-a-896x896renwubeijing2
    +
  • + +
  • + +
    896x896任务背景1
    +
    #icon-a-896x896renwubeijing1
    +
  • + +
  • + +
    导航栏
    +
    #icon-daohanglan
    +
  • + +
  • + +
    查看
    +
    #icon-chakan-copy
    +
  • + +
  • + +
    保存
    +
    #icon-baocun1
    +
  • + +
  • + +
    选中
    +
    #icon-xuanzhong
    +
  • + +
  • + +
    语音
    +
    #icon-yuyin1
    +
  • + +
  • + +
    删除
    +
    #icon-shanchu
    +
  • + +
  • + +
    正排序
    +
    #icon-zhengpaixu
    +
  • + +
  • + +
    100px调查样式2
    +
    #icon-pxtiaochayangshi1
    +
  • + +
  • + +
    清除
    +
    #icon-qingchu
    +
  • + +
  • + +
    电话
    +
    #icon-dianhua1
    +
  • + +
  • + +
    菜单
    +
    #icon-caidan
    +
  • + +
  • + +
    16px搜索󅒐
    +
    #icon-pxsousuo
    +
  • + +
  • + +
    编辑
    +
    #icon-edit
    +
  • + +
  • + +
    16px-取消上传#808080
    +
    #icon-px-quxiaoshangchuan
    +
  • + +
  • + +
    14px下一级
    +
    #icon-pxxiayiji
    +
  • + +
  • + +
    30px利率试算
    +
    #icon-pxlishuaishisuan1
    +
  • + +
  • + +
    30p计算器
    +
    #icon-pjisuanqi
    +
  • + +
  • + +
    30px收费查询
    +
    #icon-pxshoufeichaxun
    +
  • + +
  • + +
    220x140px-人像面
    +
    #icon-xpx-renxiangmian
    +
  • + +
  • + +
    返回
    +
    #icon-fanhui1
    +
  • + +
  • + +
    下一步
    +
    #icon-xiayibu
    +
  • + +
  • + +
    提示
    +
    #icon-tishi
    +
  • + +
  • + +
    20px上传
    +
    #icon-pxshangchuan
    +
  • + +
  • + +
    1-登入
    +
    #icon--dengru
    +
  • + +
  • + +
    切换城市
    +
    #icon-qiehuanchengshi
    +
  • + +
  • + +
    主页
    +
    #icon-zhuye
    +
  • + +
  • + +
    历史记录
    +
    #icon-lishijilu
    +
  • + +
  • + +
    预警信号
    +
    #icon-ziyuan
    +
  • + +
  • + +
    选中角标16x16
    +
    #icon-xuanzhongjiaobiao16x16
    +
  • + +
  • + +
    提示信息
    +
    #icon-prompt-info
    +
  • + +
  • + +
    icon_案例管理
    +
    #icon-icon_anliguanli
    +
  • + +
  • + +
    02_拍照
    +
    #icon-a-02_paizhao
    +
  • + +
  • + +
    本次初筛
    +
    #icon-bencichushai
    +
  • + +
  • + +
    产品缓冲背景72x72
    +
    #icon-chanpinhuanchongbeijing72x72
    +
  • + +
  • + +
    我的日程16x16
    +
    #icon-wodericheng16x16
    +
  • + +
  • + +
    我的24x24
    +
    #icon-wode24x24
    +
  • + +
  • + +
    时间,计时
    +
    #icon-shijianjishi
    +
  • + +
  • + +
    行外32x32
    +
    #icon-hangwai32x32
    +
  • + +
  • + +
    客户体检
    +
    #icon-kehutijian
    +
  • + +
  • + +
    日程提醒
    +
    #icon-richengtixing
    +
  • + +
  • + +
    客户定位
    +
    #icon-kehudingwei
    +
  • + +
  • + +
    辅助工具
    +
    #icon-fuzhugongju
    +
  • + +
  • + +
    网点查询
    +
    #icon-wangdianchaxun
    +
  • + +
  • + +
    系统公告
    +
    #icon-xitonggonggao
    +
  • + +
  • + +
    不解除
    +
    #icon-bujiechu1
    +
  • + +
  • + +
    自动解除
    +
    #icon-zidongjiechu1
    +
  • + +
  • + +
    人工解除
    +
    #icon-rengongjiechu1
    +
  • + +
  • + +
    二维码
    +
    #icon-erweima
    +
  • + +
  • + +
    日程提醒_24_24
    +
    #icon-richengtixing_24_24
    +
  • + +
  • + +
    gongsimingcheng
    +
    #icon-gongsimingcheng
    +
  • + +
  • + +
    语音
    +
    #icon-yuyin
    +
  • + +
  • + +
    公司章程
    +
    #icon-gongsizhangcheng1
    +
  • + +
  • + +
    公司章程
    +
    #icon-gongsizhangcheng
    +
  • + +
  • + +
    补录-32X32
    +
    #icon-bulu-32X32
    +
  • + +
  • + +
    电话
    +
    #icon-dianhua
    +
  • + +
  • + +
    移动信贷icon
    +
    #icon-yidongxindaiicon
    +
  • + +
  • + +
    审批通过
    +
    #icon-shenpitongguo
    +
  • + +
  • + +
    保证人情况调查_50X50
    +
    #icon-baozhengrenqingkuangtiaocha_50X50
    +
  • + +
  • + +
    借款人信用状况调查_50X50
    +
    #icon-jiekuanrenxinyongzhuangkuangtiaocha_50X50
    +
  • + +
  • + +
    抵质押物调查_50X50
    +
    #icon-dizhiyawutiaocha_50X50
    +
  • + +
  • + +
    借款人经营及财务情况调查_50X50
    +
    #icon-jiekuanrenjingyingjicaiwuqingkuangtiaocha_50X50
    +
  • + +
  • + +
    其他_50X50
    +
    #icon-qita_50X50
    +
  • + +
  • + +
    正式-32X32
    +
    #icon-zhengshi-32X32
    +
  • + +
  • + +
    潜在-32X32
    +
    #icon-qianzai-32X32
    +
  • + +
  • + +
    其他-32X32
    +
    #icon-qita-32X32
    +
  • + +
  • + +
    保存
    +
    #icon-baocun
    +
  • + +
  • + +
    减少
    +
    #icon-jianshao
    +
  • + +
  • + +
    手动新增100x100
    +
    #icon-a-shoudongxinzeng100x100ziyuan78
    +
  • + +
  • + +
    领取20x24
    +
    #icon-a-lingqu20x24ziyuan77
    +
  • + +
  • + +
    全选24x24
    +
    #icon-a-quanxuan24x24ziyuan76
    +
  • + +
  • + +
    全不选24x24
    +
    #icon-a-quanbuxuan24x24ziyuan75
    +
  • + +
  • + +
    重要通知12x16
    +
    #icon-a-zhongyaotongzhi12x16ziyuan43
    +
  • + +
  • + +
    项目信息18x20
    +
    #icon-a-xiangmuxinxi18x20ziyuan11
    +
  • + +
  • + +
    综合收益率20x20
    +
    #icon-a-zongheshouyishuai20x20ziyuan35
    +
  • + +
  • + +
    作废24x24
    +
    #icon-a-zuofei24x24ziyuan72
    +
  • + +
  • + +
    通过100x25
    +
    #icon-a-tongguo100x25ziyuan45
    +
  • + +
  • + +
    手持身份证120x120
    +
    #icon-a-shouchishenfenzheng120x120ziyuan68
    +
  • + +
  • + +
    消息提醒14x16
    +
    #icon-a-xiaoxitixing14x16ziyuan41
    +
  • + +
  • + +
    舆情信息20x18
    +
    #icon-a-yuqingxinxi20x18ziyuan23
    +
  • + +
  • + +
    系统公告20x20
    +
    #icon-a-xitonggonggao20x20ziyuan58
    +
  • + +
  • + +
    营销时光轴16x16
    +
    #icon-a-yingxiaoshiguangzhou16x16ziyuan64
    +
  • + +
  • + +
    在途业务20x20
    +
    #icon-a-zaituyewu20x20ziyuan36
    +
  • + +
  • + +
    失败100x25
    +
    #icon-a-shibai100x25ziyuan46
    +
  • + +
  • + +
    网点查询16x20
    +
    #icon-a-wangdianchaxun16x20ziyuan56
    +
  • + +
  • + +
    提示60x60
    +
    #icon-a-tishi60x60ziyuan51
    +
  • + +
  • + +
    退回24x24
    +
    #icon-a-tuihui24x24ziyuan71
    +
  • + +
  • + +
    营销管理48x48
    +
    #icon-a-yingxiaoguanli48x48ziyuan2
    +
  • + +
  • + +
    营销管理-选中48x48
    +
    #icon-a-yingxiaoguanli-xuanzhong48x48ziyuan3
    +
  • + +
  • + +
    被执行人20x20
    +
    #icon-a-beizhihangren20x20ziyuan29
    +
  • + +
  • + +
    财务信息18x20
    +
    #icon-a-caiwuxinxi18x20ziyuan14
    +
  • + +
  • + +
    产品推介-选中24x24
    +
    #icon-a-chanpintuijie-xuanzhong24x24ziyuan49
    +
  • + +
  • + +
    裁判文书18x20
    +
    #icon-a-caipanwenshu18x20ziyuan27
    +
  • + +
  • + +
    测评结果110x110
    +
    #icon-a-cepingjieguo110x110ziyuan40
    +
  • + +
  • + +
    产品推介24x24
    +
    #icon-a-chanpintuijie24x24ziyuan48
    +
  • + +
  • + +
    案件流程20x20
    +
    #icon-a-anjianliucheng20x20ziyuan31
    +
  • + +
  • + +
    成功140x140
    +
    #icon-a-chenggong140x140ziyuan50
    +
  • + +
  • + +
    成都银行logo
    +
    #icon-a-chengduyinhanglogoziyuan19
    +
  • + +
  • + +
    成都银行-未选中logo
    +
    #icon-a-chengduyinhang-weixuanzhonglogoziyuan20
    +
  • + +
  • + +
    打卡签到20x20
    +
    #icon-a-dakaqiandao20x20ziyuan60
    +
  • + +
  • + +
    处罚信息18x20
    +
    #icon-a-chufaxinxi18x20ziyuan25
    +
  • + +
  • + +
    导航16x16
    +
    #icon-a-daohang16x16ziyuan61
    +
  • + +
  • + +
    到期提示16x16
    +
    #icon-a-daoqitishi16x16ziyuan42
    +
  • + +
  • + +
    初筛历史20x20
    +
    #icon-a-chushailishi20x20ziyuan37
    +
  • + +
  • + +
    担保视图28x28
    +
    #icon-a-danbaoshitu28x28ziyuan22
    +
  • + +
  • + +
    定位12x16
    +
    #icon-a-dingwei12x16ziyuan65
    +
  • + +
  • + +
    法院公告18x20
    +
    #icon-a-fayuangonggao18x20ziyuan28
    +
  • + +
  • + +
    工作台-选中48x48
    +
    #icon-a-gongzuotai-xuanzhong48x48ziyuan5
    +
  • + +
  • + +
    股票信息20x20
    +
    #icon-a-gupiaoxinxi20x20ziyuan10
    +
  • + +
  • + +
    工作台48x48
    +
    #icon-a-gongzuotai48x48ziyuan4
    +
  • + +
  • + +
    等待100x25
    +
    #icon-a-dengdai100x25ziyuan47
    +
  • + +
  • + +
    公司章程20x20
    +
    #icon-a-gongsizhangcheng20x20ziyuan12
    +
  • + +
  • + +
    工作单位20x18
    +
    #icon-a-gongzuodanwei20x18ziyuan53
    +
  • + +
  • + +
    基本信息18x20
    +
    #icon-a-jibenxinxi18x20ziyuan8
    +
  • + +
  • + +
    辅助功能20x20
    +
    #icon-a-fuzhugongneng20x20ziyuan54
    +
  • + +
  • + +
    集团关系28x28
    +
    #icon-a-jituanguanxi28x28ziyuan18
    +
  • + +
  • + +
    关联方20x20
    +
    #icon-a-guanlianfang20x20ziyuan17
    +
  • + +
  • + +
    股权及动产质押18x20
    +
    #icon-a-guquanjidongchanzhiya18x20ziyuan9
    +
  • + +
  • + +
    客户查询18x20
    +
    #icon-a-kehuchaxun18x20ziyuan57
    +
  • + +
  • + +
    面签管理-选中48x48
    +
    #icon-a-mianqianguanli-xuanzhong48x48ziyuan6
    +
  • + +
  • + +
    开庭公告18x20
    +
    #icon-a-kaitinggonggao18x20ziyuan30
    +
  • + +
  • + +
    高管授信18x20
    +
    #icon-a-gaoguanshouxin18x20ziyuan39
    +
  • + +
  • + +
    经营风险18x20
    +
    #icon-a-jingyingfengxian18x20ziyuan24
    +
  • + +
  • + +
    客户管理48x48
    +
    #icon-a-kehuguanli48x48ziyuan6
    +
  • + +
  • + +
    曝光台20x18
    +
    #icon-a-puguangtai20x18ziyuan32
    +
  • + +
  • + +
    清算信息18x20
    +
    #icon-a-qingsuanxinxi18x20ziyuan26
    +
  • + +
  • + +
    企业时光轴16x16
    +
    #icon-a-qiyeshiguangzhou16x16ziyuan63
    +
  • + +
  • + +
    客户管理-选中48x48
    +
    #icon-a-kehuguanli-xuanzhong48x48ziyuan7
    +
  • + +
  • + +
    企业图谱20x20
    +
    #icon-a-qiyetupu20x20ziyuan16
    +
  • + +
  • + +
    面签管理48x48
    +
    #icon-a-mianqianguanli48x48ziyuan5
    +
  • + +
  • + +
    评级情况20x18
    +
    #icon-a-pingjiqingkuang20x18ziyuan34
    +
  • + +
  • + +
    风险核查120x120
    +
    #icon-a-fengxianhecha120x120ziyuan44
    +
  • + +
  • + +
    家庭财务信息20x20
    +
    #icon-a-jiatingcaiwuxinxi20x20ziyuan52
    +
  • + +
  • + +
    年报信息18x20
    +
    #icon-a-nianbaoxinxi18x20ziyuan13
    +
  • + +
  • + +
    日程提醒20x20
    +
    #icon-a-richengtixing20x20ziyuan55
    +
  • + +
  • + +
    时光轴16x16
    +
    #icon-a-shiguangzhou16x16ziyuan62
    +
  • + +
  • + +
    授信视图18x20
    +
    #icon-a-shouxinshitu18x20ziyuan38
    +
  • + +
  • + +
    拍照24x20
    +
    #icon-a-paizhao24x20ziyuan74
    +
  • + +
  • + +
    删除24x24
    +
    #icon-a-shanchu24x24ziyuan73
    +
  • + +
  • + +
    司法查冻扣20x18
    +
    #icon-a-sifachadongkou20x18ziyuan33
    +
  • + +
  • + +
    人脸识别160x160
    +
    #icon-a-renlianshibie160x160ziyuan69
    +
  • + +
  • + +
    检查更新20x20px
    +
    #icon-jianchagengxinxpx1
    +
  • + +
  • + +
    燃气户号-帮助16x16px
    +
    #icon-ranqihuhao-bangzhu16x16px
    +
  • + +
  • + +
    待办
    +
    #icon-daiban
    +
  • + +
  • + +
    app-筛选16x16px
    +
    #icon-app-shaixuan16x16px
    +
  • + +
  • + +
    消息
    +
    #icon-icon-test-copy
    +
  • + +
  • + +
    风险预警处置
    +
    #icon-fengxianyujingchuzhi
    +
  • + +
  • + +
    web-扫码
    +
    #icon-web-saoma
    +
  • + +
  • + +
    excel-1
    +
    #icon-excel-1
    +
  • + +
  • + +
    word-1
    +
    #icon-word-1
    +
  • + +
  • + +
    pdf-1
    +
    #icon-pdf-1
    +
  • + +
  • + +
    30px文件夹2
    +
    #icon-pxwenjianjia
    +
  • + +
  • + +
    清理缓存20x20px
    +
    #icon-qinglihuancunxpx1
    +
  • + +
  • + +
    web-邮箱
    +
    #icon-web-youxiang
    +
  • + +
  • + +
    客户管理-选中
    +
    #icon-kehuguanli-xuanzhong
    +
  • + +
  • + +
    客户管理-未选中
    +
    #icon-kehuguanli-weixuanzhong
    +
  • + +
  • + +
    我的-未选中
    +
    #icon-wode-weixuanzhong
    +
  • + +
  • + +
    调查任务-选中
    +
    #icon-tiaocharenwu-xuanzhong
    +
  • + +
  • + +
    调查任务-未选中
    +
    #icon-tiaocharenwu-weixuanzhong
    +
  • + +
  • + +
    二维码
    +
    #icon-ico
    +
  • + +
  • + +
    亚军44x44px
    +
    #icon-yajunxpx
    +
  • + +
  • + +
    季军44x44px
    +
    #icon-jijunxpx
    +
  • + +
  • + +
    冠军44x44px
    +
    #icon-guanjunxpx
    +
  • + +
  • + +
    女性-个人头像22x22px
    +
    #icon-nvxing-gerentouxiangxpx
    +
  • + +
  • + +
    男性-个人头像22x22px
    +
    #icon-nanxing-gerentouxiangxpx
    +
  • + +
  • + +
    搜索2
    +
    #icon-sousuo2
    +
  • + +
  • + +
    待审批
    +
    #icon-daishenpi
    +
  • + +
  • + +
    扫描
    +
    #icon-saomiao1
    +
  • + +
  • + +
    用户
    +
    #icon-yonghu
    +
  • + +
  • + +
    列表上进入
    +
    #icon-liebiaoshangjinru
    +
  • + +
  • + +
    手机账号
    +
    #icon-shoujizhanghao
    +
  • + +
  • + +
    人脸识别
    +
    #icon-renlianshibie
    +
  • + +
  • + +
    承诺日到期提醒16x16px
    +
    #icon-chengnuoridaoqitixing16x16px
    +
  • + +
  • + +
    营业执照85x120px
    +
    #icon-yingyezhizhao85x120px
    +
  • + +
  • + +
    身份证人像面140x90px
    +
    #icon-shenfenzhengrenxiangmian140x90px
    +
  • + +
  • + +
    身份证国徽面140x90px
    +
    #icon-shenfenzhengguohuimian140x90px
    +
  • + +
  • + +
    已拒绝60x60px
    +
    #icon-yijujue60x60px
    +
  • + +
  • + +
    勾选-未选中14x14px
    +
    #icon-gouxuan-weixuanzhong14x14px
    +
  • + +
  • + +
    已处理状态
    +
    #icon-yichulizhuangtai
    +
  • + +
  • + +
    待处理状态
    +
    #icon-daichulizhuangtai
    +
  • + +
+
+

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/src/assets/iconfont/iconfont.css b/src/assets/iconfont/iconfont.css new file mode 100644 index 0000000000000000000000000000000000000000..bbf921148a5f4e3a074c6972bd1ffc206a345062 --- /dev/null +++ b/src/assets/iconfont/iconfont.css @@ -0,0 +1,851 @@ +@font-face { + font-family: "iconfont"; /* Project id 2934331 */ + src: url('iconfont.woff2?t=1644672888902') format('woff2'), + url('iconfont.woff?t=1644672888902') format('woff'), + url('iconfont.ttf?t=1644672888902') format('truetype'); +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-wangdai18X18:before { + content: "\ec8c"; +} + +.icon-gedai18x181:before { + content: "\ec8d"; +} + +.icon-a-6xuanzhong:before { + content: "\ec79"; +} + +.icon-a-5xuanzhong:before { + content: "\ec7a"; +} + +.icon-a-3xuanzhong:before { + content: "\ec7b"; +} + +.icon-a-2xuanzhong:before { + content: "\ec7c"; +} + +.icon-a-4xuanzhong:before { + content: "\ec7d"; +} + +.icon-a-1xuanzhong:before { + content: "\ec7e"; +} + +.icon-wancheng:before { + content: "\ec7f"; +} + +.icon-a-kehuguanlimian:before { + content: "\ec6d"; +} + +.icon-a-kehuguanlixian:before { + content: "\ec6e"; +} + +.icon-a-yingxiaoguanlixian:before { + content: "\ec6f"; +} + +.icon-a-yingxiaoguanlimian:before { + content: "\ec70"; +} + +.icon-a-gongzuotaimian:before { + content: "\ec71"; +} + +.icon-a-gongzuotaixian:before { + content: "\ec72"; +} + +.icon-right-s:before { + content: "\e627"; +} + +.icon-jiedian1:before { + content: "\ec67"; +} + +.icon-jiedian2:before { + content: "\ec68"; +} + +.icon-jiedian3:before { + content: "\ec69"; +} + +.icon-jiedian4:before { + content: "\ec6a"; +} + +.icon-jiedian5:before { + content: "\ec6b"; +} + +.icon-jiedian51:before { + content: "\ec6c"; +} + +.icon-xiangshang:before { + content: "\e600"; +} + +.icon-xiangxia:before { + content: "\e601"; +} + +.icon-a-896x896renwubeijing6:before { + content: "\ec5f"; +} + +.icon-a-896x896renwubeijing5:before { + content: "\ec5e"; +} + +.icon-a-896x896renwubeijing4:before { + content: "\ec5d"; +} + +.icon-a-896x896renwubeijing3:before { + content: "\ec5c"; +} + +.icon-a-896x896renwubeijing2:before { + content: "\ec5b"; +} + +.icon-a-896x896renwubeijing1:before { + content: "\ec5a"; +} + +.icon-daohanglan:before { + content: "\e742"; +} + +.icon-chakan-copy:before { + content: "\e62b"; +} + +.icon-baocun1:before { + content: "\e82b"; +} + +.icon-xuanzhong:before { + content: "\e624"; +} + +.icon-yuyin1:before { + content: "\e631"; +} + +.icon-shanchu:before { + content: "\e63c"; +} + +.icon-zhengpaixu:before { + content: "\e6a4"; +} + +.icon-pxtiaochayangshi1:before { + content: "\e6a9"; +} + +.icon-qingchu:before { + content: "\e713"; +} + +.icon-dianhua1:before { + content: "\e654"; +} + +.icon-caidan:before { + content: "\e65c"; +} + +.icon-pxsousuo:before { + content: "\e701"; +} + +.icon-edit:before { + content: "\e61c"; +} + +.icon-px-quxiaoshangchuan:before { + content: "\e7e7"; +} + +.icon-pxxiayiji:before { + content: "\e804"; +} + +.icon-pxlishuaishisuan1:before { + content: "\e83a"; +} + +.icon-pjisuanqi:before { + content: "\e83c"; +} + +.icon-pxshoufeichaxun:before { + content: "\e83d"; +} + +.icon-xpx-renxiangmian:before { + content: "\e756"; +} + +.icon-fanhui1:before { + content: "\e60c"; +} + +.icon-xiayibu:before { + content: "\e645"; +} + +.icon-tishi:before { + content: "\e72b"; +} + +.icon-pxshangchuan:before { + content: "\e67f"; +} + +.icon--dengru:before { + content: "\e619"; +} + +.icon-qiehuanchengshi:before { + content: "\e8cd"; +} + +.icon-zhuye:before { + content: "\e629"; +} + +.icon-lishijilu:before { + content: "\e685"; +} + +.icon-ziyuan:before { + content: "\e60d"; +} + +.icon-xuanzhongjiaobiao16x16:before { + content: "\ec26"; +} + +.icon-prompt-info:before { + content: "\e7b8"; +} + +.icon-icon_anliguanli:before { + content: "\e628"; +} + +.icon-a-02_paizhao:before { + content: "\e698"; +} + +.icon-bencichushai:before { + content: "\ec1f"; +} + +.icon-chanpinhuanchongbeijing72x72:before { + content: "\ec1e"; +} + +.icon-wodericheng16x16:before { + content: "\ec1b"; +} + +.icon-wode24x24:before { + content: "\ec19"; +} + +.icon-shijianjishi:before { + content: "\e6f1"; +} + +.icon-hangwai32x32:before { + content: "\ec14"; +} + +.icon-kehutijian:before { + content: "\ec12"; +} + +.icon-richengtixing:before { + content: "\ec13"; +} + +.icon-kehudingwei:before { + content: "\ec0e"; +} + +.icon-fuzhugongju:before { + content: "\ec0f"; +} + +.icon-wangdianchaxun:before { + content: "\ec10"; +} + +.icon-xitonggonggao:before { + content: "\ec11"; +} + +.icon-bujiechu1:before { + content: "\ec0a"; +} + +.icon-zidongjiechu1:before { + content: "\ec0b"; +} + +.icon-rengongjiechu1:before { + content: "\ec0c"; +} + +.icon-erweima:before { + content: "\ec09"; +} + +.icon-richengtixing_24_24:before { + content: "\ec05"; +} + +.icon-gongsimingcheng:before { + content: "\ebf7"; +} + +.icon-yuyin:before { + content: "\ebf6"; +} + +.icon-gongsizhangcheng1:before { + content: "\ebf5"; +} + +.icon-gongsizhangcheng:before { + content: "\ebf4"; +} + +.icon-bulu-32X32:before { + content: "\ebf2"; +} + +.icon-dianhua:before { + content: "\ebf1"; +} + +.icon-yidongxindaiicon:before { + content: "\ebf0"; +} + +.icon-shenpitongguo:before { + content: "\eb5c"; +} + +.icon-baozhengrenqingkuangtiaocha_50X50:before { + content: "\ebea"; +} + +.icon-jiekuanrenxinyongzhuangkuangtiaocha_50X50:before { + content: "\ebeb"; +} + +.icon-dizhiyawutiaocha_50X50:before { + content: "\ebec"; +} + +.icon-jiekuanrenjingyingjicaiwuqingkuangtiaocha_50X50:before { + content: "\ebed"; +} + +.icon-qita_50X50:before { + content: "\ebee"; +} + +.icon-zhengshi-32X32:before { + content: "\ebe7"; +} + +.icon-qianzai-32X32:before { + content: "\ebe8"; +} + +.icon-qita-32X32:before { + content: "\ebe9"; +} + +.icon-baocun:before { + content: "\e63b"; +} + +.icon-jianshao:before { + content: "\e8b1"; +} + +.icon-a-shoudongxinzeng100x100ziyuan78:before { + content: "\ebe6"; +} + +.icon-a-lingqu20x24ziyuan77:before { + content: "\ebe3"; +} + +.icon-a-quanxuan24x24ziyuan76:before { + content: "\ebe4"; +} + +.icon-a-quanbuxuan24x24ziyuan75:before { + content: "\ebe5"; +} + +.icon-a-zhongyaotongzhi12x16ziyuan43:before { + content: "\ebd2"; +} + +.icon-a-xiangmuxinxi18x20ziyuan11:before { + content: "\ebd3"; +} + +.icon-a-zongheshouyishuai20x20ziyuan35:before { + content: "\ebd4"; +} + +.icon-a-zuofei24x24ziyuan72:before { + content: "\ebd5"; +} + +.icon-a-tongguo100x25ziyuan45:before { + content: "\ebd6"; +} + +.icon-a-shouchishenfenzheng120x120ziyuan68:before { + content: "\ebd7"; +} + +.icon-a-xiaoxitixing14x16ziyuan41:before { + content: "\ebd8"; +} + +.icon-a-yuqingxinxi20x18ziyuan23:before { + content: "\ebd9"; +} + +.icon-a-xitonggonggao20x20ziyuan58:before { + content: "\ebda"; +} + +.icon-a-yingxiaoshiguangzhou16x16ziyuan64:before { + content: "\ebdb"; +} + +.icon-a-zaituyewu20x20ziyuan36:before { + content: "\ebdc"; +} + +.icon-a-shibai100x25ziyuan46:before { + content: "\ebdd"; +} + +.icon-a-wangdianchaxun16x20ziyuan56:before { + content: "\ebde"; +} + +.icon-a-tishi60x60ziyuan51:before { + content: "\ebdf"; +} + +.icon-a-tuihui24x24ziyuan71:before { + content: "\ebe0"; +} + +.icon-a-yingxiaoguanli48x48ziyuan2:before { + content: "\ebe1"; +} + +.icon-a-yingxiaoguanli-xuanzhong48x48ziyuan3:before { + content: "\ebe2"; +} + +.icon-a-beizhihangren20x20ziyuan29:before { + content: "\eb9e"; +} + +.icon-a-caiwuxinxi18x20ziyuan14:before { + content: "\eb9f"; +} + +.icon-a-chanpintuijie-xuanzhong24x24ziyuan49:before { + content: "\eba0"; +} + +.icon-a-caipanwenshu18x20ziyuan27:before { + content: "\eba1"; +} + +.icon-a-cepingjieguo110x110ziyuan40:before { + content: "\eba2"; +} + +.icon-a-chanpintuijie24x24ziyuan48:before { + content: "\eba3"; +} + +.icon-a-anjianliucheng20x20ziyuan31:before { + content: "\eba4"; +} + +.icon-a-chenggong140x140ziyuan50:before { + content: "\eba5"; +} + +.icon-a-chengduyinhanglogoziyuan19:before { + content: "\eba6"; +} + +.icon-a-chengduyinhang-weixuanzhonglogoziyuan20:before { + content: "\eba7"; +} + +.icon-a-dakaqiandao20x20ziyuan60:before { + content: "\eba8"; +} + +.icon-a-chufaxinxi18x20ziyuan25:before { + content: "\eba9"; +} + +.icon-a-daohang16x16ziyuan61:before { + content: "\ebaa"; +} + +.icon-a-daoqitishi16x16ziyuan42:before { + content: "\ebab"; +} + +.icon-a-chushailishi20x20ziyuan37:before { + content: "\ebac"; +} + +.icon-a-danbaoshitu28x28ziyuan22:before { + content: "\ebad"; +} + +.icon-a-dingwei12x16ziyuan65:before { + content: "\ebae"; +} + +.icon-a-fayuangonggao18x20ziyuan28:before { + content: "\ebaf"; +} + +.icon-a-gongzuotai-xuanzhong48x48ziyuan5:before { + content: "\ebb0"; +} + +.icon-a-gupiaoxinxi20x20ziyuan10:before { + content: "\ebb1"; +} + +.icon-a-gongzuotai48x48ziyuan4:before { + content: "\ebb2"; +} + +.icon-a-dengdai100x25ziyuan47:before { + content: "\ebb3"; +} + +.icon-a-gongsizhangcheng20x20ziyuan12:before { + content: "\ebb4"; +} + +.icon-a-gongzuodanwei20x18ziyuan53:before { + content: "\ebb5"; +} + +.icon-a-jibenxinxi18x20ziyuan8:before { + content: "\ebb6"; +} + +.icon-a-fuzhugongneng20x20ziyuan54:before { + content: "\ebb7"; +} + +.icon-a-jituanguanxi28x28ziyuan18:before { + content: "\ebb8"; +} + +.icon-a-guanlianfang20x20ziyuan17:before { + content: "\ebb9"; +} + +.icon-a-guquanjidongchanzhiya18x20ziyuan9:before { + content: "\ebba"; +} + +.icon-a-kehuchaxun18x20ziyuan57:before { + content: "\ebbb"; +} + +.icon-a-mianqianguanli-xuanzhong48x48ziyuan6:before { + content: "\ebbc"; +} + +.icon-a-kaitinggonggao18x20ziyuan30:before { + content: "\ebbd"; +} + +.icon-a-gaoguanshouxin18x20ziyuan39:before { + content: "\ebbe"; +} + +.icon-a-jingyingfengxian18x20ziyuan24:before { + content: "\ebbf"; +} + +.icon-a-kehuguanli48x48ziyuan6:before { + content: "\ebc0"; +} + +.icon-a-puguangtai20x18ziyuan32:before { + content: "\ebc1"; +} + +.icon-a-qingsuanxinxi18x20ziyuan26:before { + content: "\ebc2"; +} + +.icon-a-qiyeshiguangzhou16x16ziyuan63:before { + content: "\ebc3"; +} + +.icon-a-kehuguanli-xuanzhong48x48ziyuan7:before { + content: "\ebc4"; +} + +.icon-a-qiyetupu20x20ziyuan16:before { + content: "\ebc5"; +} + +.icon-a-mianqianguanli48x48ziyuan5:before { + content: "\ebc6"; +} + +.icon-a-pingjiqingkuang20x18ziyuan34:before { + content: "\ebc7"; +} + +.icon-a-fengxianhecha120x120ziyuan44:before { + content: "\ebc8"; +} + +.icon-a-jiatingcaiwuxinxi20x20ziyuan52:before { + content: "\ebc9"; +} + +.icon-a-nianbaoxinxi18x20ziyuan13:before { + content: "\ebca"; +} + +.icon-a-richengtixing20x20ziyuan55:before { + content: "\ebcb"; +} + +.icon-a-shiguangzhou16x16ziyuan62:before { + content: "\ebcc"; +} + +.icon-a-shouxinshitu18x20ziyuan38:before { + content: "\ebcd"; +} + +.icon-a-paizhao24x20ziyuan74:before { + content: "\ebce"; +} + +.icon-a-shanchu24x24ziyuan73:before { + content: "\ebcf"; +} + +.icon-a-sifachadongkou20x18ziyuan33:before { + content: "\ebd0"; +} + +.icon-a-renlianshibie160x160ziyuan69:before { + content: "\ebd1"; +} + +.icon-jianchagengxinxpx1:before { + content: "\e882"; +} + +.icon-ranqihuhao-bangzhu16x16px:before { + content: "\e9dd"; +} + +.icon-daiban:before { + content: "\e608"; +} + +.icon-app-shaixuan16x16px:before { + content: "\ea90"; +} + +.icon-icon-test-copy:before { + content: "\eb08"; +} + +.icon-fengxianyujingchuzhi:before { + content: "\e7d7"; +} + +.icon-web-saoma:before { + content: "\e9f2"; +} + +.icon-excel-1:before { + content: "\e7b4"; +} + +.icon-word-1:before { + content: "\e7b7"; +} + +.icon-pdf-1:before { + content: "\e7bd"; +} + +.icon-pxwenjianjia:before { + content: "\e67d"; +} + +.icon-qinglihuancunxpx1:before { + content: "\e884"; +} + +.icon-web-youxiang:before { + content: "\ea03"; +} + +.icon-kehuguanli-xuanzhong:before { + content: "\e843"; +} + +.icon-kehuguanli-weixuanzhong:before { + content: "\e844"; +} + +.icon-wode-weixuanzhong:before { + content: "\e848"; +} + +.icon-tiaocharenwu-xuanzhong:before { + content: "\e880"; +} + +.icon-tiaocharenwu-weixuanzhong:before { + content: "\e881"; +} + +.icon-ico:before { + content: "\e647"; +} + +.icon-yajunxpx:before { + content: "\e8a5"; +} + +.icon-jijunxpx:before { + content: "\e8a6"; +} + +.icon-guanjunxpx:before { + content: "\e8a7"; +} + +.icon-nvxing-gerentouxiangxpx:before { + content: "\e8ca"; +} + +.icon-nanxing-gerentouxiangxpx:before { + content: "\e8cb"; +} + +.icon-sousuo2:before { + content: "\eaaa"; +} + +.icon-daishenpi:before { + content: "\eaad"; +} + +.icon-saomiao1:before { + content: "\eb4e"; +} + +.icon-yonghu:before { + content: "\eb50"; +} + +.icon-liebiaoshangjinru:before { + content: "\eb62"; +} + +.icon-shoujizhanghao:before { + content: "\eb5a"; +} + +.icon-renlianshibie:before { + content: "\e82a"; +} + +.icon-chengnuoridaoqitixing16x16px:before { + content: "\e9e9"; +} + +.icon-yingyezhizhao85x120px:before { + content: "\e929"; +} + +.icon-shenfenzhengrenxiangmian140x90px:before { + content: "\e92a"; +} + +.icon-shenfenzhengguohuimian140x90px:before { + content: "\e92b"; +} + +.icon-yijujue60x60px:before { + content: "\e92e"; +} + +.icon-gouxuan-weixuanzhong14x14px:before { + content: "\e93e"; +} + +.icon-yichulizhuangtai:before { + content: "\ea6a"; +} + +.icon-daichulizhuangtai:before { + content: "\ea6b"; +} + diff --git a/src/assets/iconfont/iconfont.js b/src/assets/iconfont/iconfont.js new file mode 100644 index 0000000000000000000000000000000000000000..2a0f833500200aaab57bc1a8575fcebf5be7c0ef --- /dev/null +++ b/src/assets/iconfont/iconfont.js @@ -0,0 +1 @@ +!function(a){var c,l,h,z,i,v='',t=(t=document.getElementsByTagName("script"))[t.length-1].getAttribute("data-injectcss"),p=function(a,c){c.parentNode.insertBefore(a,c)};if(t&&!a.__iconfont__svg__cssinject__){a.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}function m(){i||(i=!0,h())}function s(){try{z.documentElement.doScroll("left")}catch(a){return void setTimeout(s,50)}m()}c=function(){var a,c=document.createElement("div");c.innerHTML=v,v=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):(l=function(){document.removeEventListener("DOMContentLoaded",l,!1),c()},document.addEventListener("DOMContentLoaded",l,!1)):document.attachEvent&&(h=c,z=a.document,i=!1,s(),z.onreadystatechange=function(){"complete"==z.readyState&&(z.onreadystatechange=null,m())})}(window); \ No newline at end of file diff --git a/src/assets/iconfont/iconfont.json b/src/assets/iconfont/iconfont.json new file mode 100644 index 0000000000000000000000000000000000000000..f10f2e2395ffd6322e870ff3103bc730e099570b --- /dev/null +++ b/src/assets/iconfont/iconfont.json @@ -0,0 +1,1472 @@ +{ + "id": "2934331", + "name": "成都银行移动信贷", + "font_family": "iconfont", + "css_prefix_text": "icon-", + "description": "", + "glyphs": [ + { + "icon_id": "27539928", + "name": "网贷18X18", + "font_class": "wangdai18X18", + "unicode": "ec8c", + "unicode_decimal": 60556 + }, + { + "icon_id": "27539929", + "name": "个贷18x18", + "font_class": "gedai18x181", + "unicode": "ec8d", + "unicode_decimal": 60557 + }, + { + "icon_id": "27519547", + "name": "6选中", + "font_class": "a-6xuanzhong", + "unicode": "ec79", + "unicode_decimal": 60537 + }, + { + "icon_id": "27519548", + "name": "5选中", + "font_class": "a-5xuanzhong", + "unicode": "ec7a", + "unicode_decimal": 60538 + }, + { + "icon_id": "27519549", + "name": "3选中", + "font_class": "a-3xuanzhong", + "unicode": "ec7b", + "unicode_decimal": 60539 + }, + { + "icon_id": "27519550", + "name": "2选中", + "font_class": "a-2xuanzhong", + "unicode": "ec7c", + "unicode_decimal": 60540 + }, + { + "icon_id": "27519551", + "name": "4选中", + "font_class": "a-4xuanzhong", + "unicode": "ec7d", + "unicode_decimal": 60541 + }, + { + "icon_id": "27519552", + "name": "1选中", + "font_class": "a-1xuanzhong", + "unicode": "ec7e", + "unicode_decimal": 60542 + }, + { + "icon_id": "27519553", + "name": "完成", + "font_class": "wancheng", + "unicode": "ec7f", + "unicode_decimal": 60543 + }, + { + "icon_id": "27468138", + "name": "客户管理(面)", + "font_class": "a-kehuguanlimian", + "unicode": "ec6d", + "unicode_decimal": 60525 + }, + { + "icon_id": "27468140", + "name": "客户管理(线)", + "font_class": "a-kehuguanlixian", + "unicode": "ec6e", + "unicode_decimal": 60526 + }, + { + "icon_id": "27468148", + "name": "营销管理(线)", + "font_class": "a-yingxiaoguanlixian", + "unicode": "ec6f", + "unicode_decimal": 60527 + }, + { + "icon_id": "27468150", + "name": "营销管理(面)", + "font_class": "a-yingxiaoguanlimian", + "unicode": "ec70", + "unicode_decimal": 60528 + }, + { + "icon_id": "27468151", + "name": "工作台(面)", + "font_class": "a-gongzuotaimian", + "unicode": "ec71", + "unicode_decimal": 60529 + }, + { + "icon_id": "27468152", + "name": "工作台(线)", + "font_class": "a-gongzuotaixian", + "unicode": "ec72", + "unicode_decimal": 60530 + }, + { + "icon_id": "6119215", + "name": "右-三角", + "font_class": "right-s", + "unicode": "e627", + "unicode_decimal": 58919 + }, + { + "icon_id": "27468006", + "name": "节点1", + "font_class": "jiedian1", + "unicode": "ec67", + "unicode_decimal": 60519 + }, + { + "icon_id": "27468008", + "name": "节点2", + "font_class": "jiedian2", + "unicode": "ec68", + "unicode_decimal": 60520 + }, + { + "icon_id": "27468009", + "name": "节点3", + "font_class": "jiedian3", + "unicode": "ec69", + "unicode_decimal": 60521 + }, + { + "icon_id": "27468047", + "name": "节点4", + "font_class": "jiedian4", + "unicode": "ec6a", + "unicode_decimal": 60522 + }, + { + "icon_id": "27468048", + "name": "节点5", + "font_class": "jiedian5", + "unicode": "ec6b", + "unicode_decimal": 60523 + }, + { + "icon_id": "27468049", + "name": "节点5", + "font_class": "jiedian51", + "unicode": "ec6c", + "unicode_decimal": 60524 + }, + { + "icon_id": "1348", + "name": "向上", + "font_class": "xiangshang", + "unicode": "e600", + "unicode_decimal": 58880 + }, + { + "icon_id": "1351", + "name": "向下", + "font_class": "xiangxia", + "unicode": "e601", + "unicode_decimal": 58881 + }, + { + "icon_id": "27434733", + "name": "896x896任务背景6", + "font_class": "a-896x896renwubeijing6", + "unicode": "ec5f", + "unicode_decimal": 60511 + }, + { + "icon_id": "27434732", + "name": "896x896任务背景5", + "font_class": "a-896x896renwubeijing5", + "unicode": "ec5e", + "unicode_decimal": 60510 + }, + { + "icon_id": "27434731", + "name": "896x896任务背景4", + "font_class": "a-896x896renwubeijing4", + "unicode": "ec5d", + "unicode_decimal": 60509 + }, + { + "icon_id": "27434729", + "name": "896x896任务背景3", + "font_class": "a-896x896renwubeijing3", + "unicode": "ec5c", + "unicode_decimal": 60508 + }, + { + "icon_id": "27434691", + "name": "896x896任务背景2", + "font_class": "a-896x896renwubeijing2", + "unicode": "ec5b", + "unicode_decimal": 60507 + }, + { + "icon_id": "27434667", + "name": "896x896任务背景1", + "font_class": "a-896x896renwubeijing1", + "unicode": "ec5a", + "unicode_decimal": 60506 + }, + { + "icon_id": "7131910", + "name": "导航栏", + "font_class": "daohanglan", + "unicode": "e742", + "unicode_decimal": 59202 + }, + { + "icon_id": "5793838", + "name": "查看", + "font_class": "chakan-copy", + "unicode": "e62b", + "unicode_decimal": 58923 + }, + { + "icon_id": "6154396", + "name": "保存", + "font_class": "baocun1", + "unicode": "e82b", + "unicode_decimal": 59435 + }, + { + "icon_id": "633020", + "name": "选中", + "font_class": "xuanzhong", + "unicode": "e624", + "unicode_decimal": 58916 + }, + { + "icon_id": "1111314", + "name": "语音", + "font_class": "yuyin1", + "unicode": "e631", + "unicode_decimal": 58929 + }, + { + "icon_id": "4217534", + "name": "删除", + "font_class": "shanchu", + "unicode": "e63c", + "unicode_decimal": 58940 + }, + { + "icon_id": "5541710", + "name": "正排序", + "font_class": "zhengpaixu", + "unicode": "e6a4", + "unicode_decimal": 59044 + }, + { + "icon_id": "5542621", + "name": "100px调查样式2", + "font_class": "pxtiaochayangshi1", + "unicode": "e6a9", + "unicode_decimal": 59049 + }, + { + "icon_id": "6250630", + "name": "清除", + "font_class": "qingchu", + "unicode": "e713", + "unicode_decimal": 59155 + }, + { + "icon_id": "7256702", + "name": "电话", + "font_class": "dianhua1", + "unicode": "e654", + "unicode_decimal": 58964 + }, + { + "icon_id": "7450591", + "name": "菜单", + "font_class": "caidan", + "unicode": "e65c", + "unicode_decimal": 58972 + }, + { + "icon_id": "7462482", + "name": "16px搜索󅒐", + "font_class": "pxsousuo", + "unicode": "e701", + "unicode_decimal": 59137 + }, + { + "icon_id": "9512545", + "name": "编辑", + "font_class": "edit", + "unicode": "e61c", + "unicode_decimal": 58908 + }, + { + "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": "11378119", + "name": "30px利率试算", + "font_class": "pxlishuaishisuan1", + "unicode": "e83a", + "unicode_decimal": 59450 + }, + { + "icon_id": "11378209", + "name": "30p计算器", + "font_class": "pjisuanqi", + "unicode": "e83c", + "unicode_decimal": 59452 + }, + { + "icon_id": "11378224", + "name": "30px收费查询", + "font_class": "pxshoufeichaxun", + "unicode": "e83d", + "unicode_decimal": 59453 + }, + { + "icon_id": "8674644", + "name": "220x140px-人像面", + "font_class": "xpx-renxiangmian", + "unicode": "e756", + "unicode_decimal": 59222 + }, + { + "icon_id": "1256550", + "name": "返回", + "font_class": "fanhui1", + "unicode": "e60c", + "unicode_decimal": 58892 + }, + { + "icon_id": "5302289", + "name": "下一步", + "font_class": "xiayibu", + "unicode": "e645", + "unicode_decimal": 58949 + }, + { + "icon_id": "577317", + "name": "提示", + "font_class": "tishi", + "unicode": "e72b", + "unicode_decimal": 59179 + }, + { + "icon_id": "5541673", + "name": "20px上传", + "font_class": "pxshangchuan", + "unicode": "e67f", + "unicode_decimal": 59007 + }, + { + "icon_id": "6010936", + "name": "1-登入", + "font_class": "-dengru", + "unicode": "e619", + "unicode_decimal": 58905 + }, + { + "icon_id": "2076411", + "name": "切换城市", + "font_class": "qiehuanchengshi", + "unicode": "e8cd", + "unicode_decimal": 59597 + }, + { + "icon_id": "5145210", + "name": "主页", + "font_class": "zhuye", + "unicode": "e629", + "unicode_decimal": 58921 + }, + { + "icon_id": "775396", + "name": "历史记录", + "font_class": "lishijilu", + "unicode": "e685", + "unicode_decimal": 59013 + }, + { + "icon_id": "8085202", + "name": "预警信号", + "font_class": "ziyuan", + "unicode": "e60d", + "unicode_decimal": 58893 + }, + { + "icon_id": "26651458", + "name": "选中角标16x16", + "font_class": "xuanzhongjiaobiao16x16", + "unicode": "ec26", + "unicode_decimal": 60454 + }, + { + "icon_id": "3455705", + "name": "提示信息", + "font_class": "prompt-info", + "unicode": "e7b8", + "unicode_decimal": 59320 + }, + { + "icon_id": "23442195", + "name": "icon_案例管理", + "font_class": "icon_anliguanli", + "unicode": "e628", + "unicode_decimal": 58920 + }, + { + "icon_id": "24051716", + "name": "02_拍照", + "font_class": "a-02_paizhao", + "unicode": "e698", + "unicode_decimal": 59032 + }, + { + "icon_id": "26507795", + "name": "本次初筛", + "font_class": "bencichushai", + "unicode": "ec1f", + "unicode_decimal": 60447 + }, + { + "icon_id": "26496695", + "name": "产品缓冲背景72x72", + "font_class": "chanpinhuanchongbeijing72x72", + "unicode": "ec1e", + "unicode_decimal": 60446 + }, + { + "icon_id": "26496411", + "name": "我的日程16x16", + "font_class": "wodericheng16x16", + "unicode": "ec1b", + "unicode_decimal": 60443 + }, + { + "icon_id": "26483099", + "name": "我的24x24", + "font_class": "wode24x24", + "unicode": "ec19", + "unicode_decimal": 60441 + }, + { + "icon_id": "18406358", + "name": "时间,计时", + "font_class": "shijianjishi", + "unicode": "e6f1", + "unicode_decimal": 59121 + }, + { + "icon_id": "26408910", + "name": "行外32x32", + "font_class": "hangwai32x32", + "unicode": "ec14", + "unicode_decimal": 60436 + }, + { + "icon_id": "26405119", + "name": "客户体检", + "font_class": "kehutijian", + "unicode": "ec12", + "unicode_decimal": 60434 + }, + { + "icon_id": "26405120", + "name": "日程提醒", + "font_class": "richengtixing", + "unicode": "ec13", + "unicode_decimal": 60435 + }, + { + "icon_id": "26405113", + "name": "客户定位", + "font_class": "kehudingwei", + "unicode": "ec0e", + "unicode_decimal": 60430 + }, + { + "icon_id": "26405115", + "name": "辅助工具", + "font_class": "fuzhugongju", + "unicode": "ec0f", + "unicode_decimal": 60431 + }, + { + "icon_id": "26405116", + "name": "网点查询", + "font_class": "wangdianchaxun", + "unicode": "ec10", + "unicode_decimal": 60432 + }, + { + "icon_id": "26405118", + "name": "系统公告", + "font_class": "xitonggonggao", + "unicode": "ec11", + "unicode_decimal": 60433 + }, + { + "icon_id": "26386695", + "name": "不解除", + "font_class": "bujiechu1", + "unicode": "ec0a", + "unicode_decimal": 60426 + }, + { + "icon_id": "26386696", + "name": "自动解除", + "font_class": "zidongjiechu1", + "unicode": "ec0b", + "unicode_decimal": 60427 + }, + { + "icon_id": "26386697", + "name": "人工解除", + "font_class": "rengongjiechu1", + "unicode": "ec0c", + "unicode_decimal": 60428 + }, + { + "icon_id": "26376085", + "name": "二维码", + "font_class": "erweima", + "unicode": "ec09", + "unicode_decimal": 60425 + }, + { + "icon_id": "26366723", + "name": "日程提醒_24_24", + "font_class": "richengtixing_24_24", + "unicode": "ec05", + "unicode_decimal": 60421 + }, + { + "icon_id": "26254856", + "name": "gongsimingcheng", + "font_class": "gongsimingcheng", + "unicode": "ebf7", + "unicode_decimal": 60407 + }, + { + "icon_id": "26141609", + "name": "语音", + "font_class": "yuyin", + "unicode": "ebf6", + "unicode_decimal": 60406 + }, + { + "icon_id": "26103223", + "name": "公司章程", + "font_class": "gongsizhangcheng1", + "unicode": "ebf5", + "unicode_decimal": 60405 + }, + { + "icon_id": "26094101", + "name": "公司章程", + "font_class": "gongsizhangcheng", + "unicode": "ebf4", + "unicode_decimal": 60404 + }, + { + "icon_id": "26077733", + "name": "补录-32X32", + "font_class": "bulu-32X32", + "unicode": "ebf2", + "unicode_decimal": 60402 + }, + { + "icon_id": "26069546", + "name": "电话", + "font_class": "dianhua", + "unicode": "ebf1", + "unicode_decimal": 60401 + }, + { + "icon_id": "26067536", + "name": "移动信贷icon", + "font_class": "yidongxindaiicon", + "unicode": "ebf0", + "unicode_decimal": 60400 + }, + { + "icon_id": "25524831", + "name": "审批通过", + "font_class": "shenpitongguo", + "unicode": "eb5c", + "unicode_decimal": 60252 + }, + { + "icon_id": "26049260", + "name": "保证人情况调查_50X50", + "font_class": "baozhengrenqingkuangtiaocha_50X50", + "unicode": "ebea", + "unicode_decimal": 60394 + }, + { + "icon_id": "26049261", + "name": "借款人信用状况调查_50X50", + "font_class": "jiekuanrenxinyongzhuangkuangtiaocha_50X50", + "unicode": "ebeb", + "unicode_decimal": 60395 + }, + { + "icon_id": "26049262", + "name": "抵质押物调查_50X50", + "font_class": "dizhiyawutiaocha_50X50", + "unicode": "ebec", + "unicode_decimal": 60396 + }, + { + "icon_id": "26049263", + "name": "借款人经营及财务情况调查_50X50", + "font_class": "jiekuanrenjingyingjicaiwuqingkuangtiaocha_50X50", + "unicode": "ebed", + "unicode_decimal": 60397 + }, + { + "icon_id": "26049264", + "name": "其他_50X50", + "font_class": "qita_50X50", + "unicode": "ebee", + "unicode_decimal": 60398 + }, + { + "icon_id": "26048386", + "name": "正式-32X32", + "font_class": "zhengshi-32X32", + "unicode": "ebe7", + "unicode_decimal": 60391 + }, + { + "icon_id": "26048387", + "name": "潜在-32X32", + "font_class": "qianzai-32X32", + "unicode": "ebe8", + "unicode_decimal": 60392 + }, + { + "icon_id": "26048388", + "name": "其他-32X32", + "font_class": "qita-32X32", + "unicode": "ebe9", + "unicode_decimal": 60393 + }, + { + "icon_id": "1305399", + "name": "保存", + "font_class": "baocun", + "unicode": "e63b", + "unicode_decimal": 58939 + }, + { + "icon_id": "11372671", + "name": "减少", + "font_class": "jianshao", + "unicode": "e8b1", + "unicode_decimal": 59569 + }, + { + "icon_id": "25945259", + "name": "手动新增100x100", + "font_class": "a-shoudongxinzeng100x100ziyuan78", + "unicode": "ebe6", + "unicode_decimal": 60390 + }, + { + "icon_id": "25939254", + "name": "领取20x24", + "font_class": "a-lingqu20x24ziyuan77", + "unicode": "ebe3", + "unicode_decimal": 60387 + }, + { + "icon_id": "25939288", + "name": "全选24x24", + "font_class": "a-quanxuan24x24ziyuan76", + "unicode": "ebe4", + "unicode_decimal": 60388 + }, + { + "icon_id": "25939289", + "name": "全不选24x24", + "font_class": "a-quanbuxuan24x24ziyuan75", + "unicode": "ebe5", + "unicode_decimal": 60389 + }, + { + "icon_id": "25935220", + "name": "重要通知12x16", + "font_class": "a-zhongyaotongzhi12x16ziyuan43", + "unicode": "ebd2", + "unicode_decimal": 60370 + }, + { + "icon_id": "25935221", + "name": "项目信息18x20", + "font_class": "a-xiangmuxinxi18x20ziyuan11", + "unicode": "ebd3", + "unicode_decimal": 60371 + }, + { + "icon_id": "25935222", + "name": "综合收益率20x20", + "font_class": "a-zongheshouyishuai20x20ziyuan35", + "unicode": "ebd4", + "unicode_decimal": 60372 + }, + { + "icon_id": "25935223", + "name": "作废24x24", + "font_class": "a-zuofei24x24ziyuan72", + "unicode": "ebd5", + "unicode_decimal": 60373 + }, + { + "icon_id": "25935224", + "name": "通过100x25", + "font_class": "a-tongguo100x25ziyuan45", + "unicode": "ebd6", + "unicode_decimal": 60374 + }, + { + "icon_id": "25935225", + "name": "手持身份证120x120", + "font_class": "a-shouchishenfenzheng120x120ziyuan68", + "unicode": "ebd7", + "unicode_decimal": 60375 + }, + { + "icon_id": "25935226", + "name": "消息提醒14x16", + "font_class": "a-xiaoxitixing14x16ziyuan41", + "unicode": "ebd8", + "unicode_decimal": 60376 + }, + { + "icon_id": "25935227", + "name": "舆情信息20x18", + "font_class": "a-yuqingxinxi20x18ziyuan23", + "unicode": "ebd9", + "unicode_decimal": 60377 + }, + { + "icon_id": "25935228", + "name": "系统公告20x20", + "font_class": "a-xitonggonggao20x20ziyuan58", + "unicode": "ebda", + "unicode_decimal": 60378 + }, + { + "icon_id": "25935229", + "name": "营销时光轴16x16", + "font_class": "a-yingxiaoshiguangzhou16x16ziyuan64", + "unicode": "ebdb", + "unicode_decimal": 60379 + }, + { + "icon_id": "25935230", + "name": "在途业务20x20", + "font_class": "a-zaituyewu20x20ziyuan36", + "unicode": "ebdc", + "unicode_decimal": 60380 + }, + { + "icon_id": "25935231", + "name": "失败100x25", + "font_class": "a-shibai100x25ziyuan46", + "unicode": "ebdd", + "unicode_decimal": 60381 + }, + { + "icon_id": "25935232", + "name": "网点查询16x20", + "font_class": "a-wangdianchaxun16x20ziyuan56", + "unicode": "ebde", + "unicode_decimal": 60382 + }, + { + "icon_id": "25935233", + "name": "提示60x60", + "font_class": "a-tishi60x60ziyuan51", + "unicode": "ebdf", + "unicode_decimal": 60383 + }, + { + "icon_id": "25935234", + "name": "退回24x24", + "font_class": "a-tuihui24x24ziyuan71", + "unicode": "ebe0", + "unicode_decimal": 60384 + }, + { + "icon_id": "25935235", + "name": "营销管理48x48", + "font_class": "a-yingxiaoguanli48x48ziyuan2", + "unicode": "ebe1", + "unicode_decimal": 60385 + }, + { + "icon_id": "25935237", + "name": "营销管理-选中48x48", + "font_class": "a-yingxiaoguanli-xuanzhong48x48ziyuan3", + "unicode": "ebe2", + "unicode_decimal": 60386 + }, + { + "icon_id": "25935167", + "name": "被执行人20x20", + "font_class": "a-beizhihangren20x20ziyuan29", + "unicode": "eb9e", + "unicode_decimal": 60318 + }, + { + "icon_id": "25935168", + "name": "财务信息18x20", + "font_class": "a-caiwuxinxi18x20ziyuan14", + "unicode": "eb9f", + "unicode_decimal": 60319 + }, + { + "icon_id": "25935169", + "name": "产品推介-选中24x24", + "font_class": "a-chanpintuijie-xuanzhong24x24ziyuan49", + "unicode": "eba0", + "unicode_decimal": 60320 + }, + { + "icon_id": "25935170", + "name": "裁判文书18x20", + "font_class": "a-caipanwenshu18x20ziyuan27", + "unicode": "eba1", + "unicode_decimal": 60321 + }, + { + "icon_id": "25935171", + "name": "测评结果110x110", + "font_class": "a-cepingjieguo110x110ziyuan40", + "unicode": "eba2", + "unicode_decimal": 60322 + }, + { + "icon_id": "25935172", + "name": "产品推介24x24", + "font_class": "a-chanpintuijie24x24ziyuan48", + "unicode": "eba3", + "unicode_decimal": 60323 + }, + { + "icon_id": "25935173", + "name": "案件流程20x20", + "font_class": "a-anjianliucheng20x20ziyuan31", + "unicode": "eba4", + "unicode_decimal": 60324 + }, + { + "icon_id": "25935174", + "name": "成功140x140", + "font_class": "a-chenggong140x140ziyuan50", + "unicode": "eba5", + "unicode_decimal": 60325 + }, + { + "icon_id": "25935175", + "name": "成都银行logo", + "font_class": "a-chengduyinhanglogoziyuan19", + "unicode": "eba6", + "unicode_decimal": 60326 + }, + { + "icon_id": "25935176", + "name": "成都银行-未选中logo", + "font_class": "a-chengduyinhang-weixuanzhonglogoziyuan20", + "unicode": "eba7", + "unicode_decimal": 60327 + }, + { + "icon_id": "25935177", + "name": "打卡签到20x20", + "font_class": "a-dakaqiandao20x20ziyuan60", + "unicode": "eba8", + "unicode_decimal": 60328 + }, + { + "icon_id": "25935178", + "name": "处罚信息18x20", + "font_class": "a-chufaxinxi18x20ziyuan25", + "unicode": "eba9", + "unicode_decimal": 60329 + }, + { + "icon_id": "25935179", + "name": "导航16x16", + "font_class": "a-daohang16x16ziyuan61", + "unicode": "ebaa", + "unicode_decimal": 60330 + }, + { + "icon_id": "25935180", + "name": "到期提示16x16", + "font_class": "a-daoqitishi16x16ziyuan42", + "unicode": "ebab", + "unicode_decimal": 60331 + }, + { + "icon_id": "25935181", + "name": "初筛历史20x20", + "font_class": "a-chushailishi20x20ziyuan37", + "unicode": "ebac", + "unicode_decimal": 60332 + }, + { + "icon_id": "25935182", + "name": "担保视图28x28", + "font_class": "a-danbaoshitu28x28ziyuan22", + "unicode": "ebad", + "unicode_decimal": 60333 + }, + { + "icon_id": "25935183", + "name": "定位12x16", + "font_class": "a-dingwei12x16ziyuan65", + "unicode": "ebae", + "unicode_decimal": 60334 + }, + { + "icon_id": "25935184", + "name": "法院公告18x20", + "font_class": "a-fayuangonggao18x20ziyuan28", + "unicode": "ebaf", + "unicode_decimal": 60335 + }, + { + "icon_id": "25935185", + "name": "工作台-选中48x48", + "font_class": "a-gongzuotai-xuanzhong48x48ziyuan5", + "unicode": "ebb0", + "unicode_decimal": 60336 + }, + { + "icon_id": "25935186", + "name": "股票信息20x20", + "font_class": "a-gupiaoxinxi20x20ziyuan10", + "unicode": "ebb1", + "unicode_decimal": 60337 + }, + { + "icon_id": "25935187", + "name": "工作台48x48", + "font_class": "a-gongzuotai48x48ziyuan4", + "unicode": "ebb2", + "unicode_decimal": 60338 + }, + { + "icon_id": "25935188", + "name": "等待100x25", + "font_class": "a-dengdai100x25ziyuan47", + "unicode": "ebb3", + "unicode_decimal": 60339 + }, + { + "icon_id": "25935189", + "name": "公司章程20x20", + "font_class": "a-gongsizhangcheng20x20ziyuan12", + "unicode": "ebb4", + "unicode_decimal": 60340 + }, + { + "icon_id": "25935190", + "name": "工作单位20x18", + "font_class": "a-gongzuodanwei20x18ziyuan53", + "unicode": "ebb5", + "unicode_decimal": 60341 + }, + { + "icon_id": "25935191", + "name": "基本信息18x20", + "font_class": "a-jibenxinxi18x20ziyuan8", + "unicode": "ebb6", + "unicode_decimal": 60342 + }, + { + "icon_id": "25935192", + "name": "辅助功能20x20", + "font_class": "a-fuzhugongneng20x20ziyuan54", + "unicode": "ebb7", + "unicode_decimal": 60343 + }, + { + "icon_id": "25935193", + "name": "集团关系28x28", + "font_class": "a-jituanguanxi28x28ziyuan18", + "unicode": "ebb8", + "unicode_decimal": 60344 + }, + { + "icon_id": "25935194", + "name": "关联方20x20", + "font_class": "a-guanlianfang20x20ziyuan17", + "unicode": "ebb9", + "unicode_decimal": 60345 + }, + { + "icon_id": "25935195", + "name": "股权及动产质押18x20", + "font_class": "a-guquanjidongchanzhiya18x20ziyuan9", + "unicode": "ebba", + "unicode_decimal": 60346 + }, + { + "icon_id": "25935196", + "name": "客户查询18x20", + "font_class": "a-kehuchaxun18x20ziyuan57", + "unicode": "ebbb", + "unicode_decimal": 60347 + }, + { + "icon_id": "25935197", + "name": "面签管理-选中48x48", + "font_class": "a-mianqianguanli-xuanzhong48x48ziyuan6", + "unicode": "ebbc", + "unicode_decimal": 60348 + }, + { + "icon_id": "25935198", + "name": "开庭公告18x20", + "font_class": "a-kaitinggonggao18x20ziyuan30", + "unicode": "ebbd", + "unicode_decimal": 60349 + }, + { + "icon_id": "25935199", + "name": "高管授信18x20", + "font_class": "a-gaoguanshouxin18x20ziyuan39", + "unicode": "ebbe", + "unicode_decimal": 60350 + }, + { + "icon_id": "25935200", + "name": "经营风险18x20", + "font_class": "a-jingyingfengxian18x20ziyuan24", + "unicode": "ebbf", + "unicode_decimal": 60351 + }, + { + "icon_id": "25935201", + "name": "客户管理48x48", + "font_class": "a-kehuguanli48x48ziyuan6", + "unicode": "ebc0", + "unicode_decimal": 60352 + }, + { + "icon_id": "25935202", + "name": "曝光台20x18", + "font_class": "a-puguangtai20x18ziyuan32", + "unicode": "ebc1", + "unicode_decimal": 60353 + }, + { + "icon_id": "25935203", + "name": "清算信息18x20", + "font_class": "a-qingsuanxinxi18x20ziyuan26", + "unicode": "ebc2", + "unicode_decimal": 60354 + }, + { + "icon_id": "25935204", + "name": "企业时光轴16x16", + "font_class": "a-qiyeshiguangzhou16x16ziyuan63", + "unicode": "ebc3", + "unicode_decimal": 60355 + }, + { + "icon_id": "25935205", + "name": "客户管理-选中48x48", + "font_class": "a-kehuguanli-xuanzhong48x48ziyuan7", + "unicode": "ebc4", + "unicode_decimal": 60356 + }, + { + "icon_id": "25935206", + "name": "企业图谱20x20", + "font_class": "a-qiyetupu20x20ziyuan16", + "unicode": "ebc5", + "unicode_decimal": 60357 + }, + { + "icon_id": "25935207", + "name": "面签管理48x48", + "font_class": "a-mianqianguanli48x48ziyuan5", + "unicode": "ebc6", + "unicode_decimal": 60358 + }, + { + "icon_id": "25935208", + "name": "评级情况20x18", + "font_class": "a-pingjiqingkuang20x18ziyuan34", + "unicode": "ebc7", + "unicode_decimal": 60359 + }, + { + "icon_id": "25935209", + "name": "风险核查120x120", + "font_class": "a-fengxianhecha120x120ziyuan44", + "unicode": "ebc8", + "unicode_decimal": 60360 + }, + { + "icon_id": "25935210", + "name": "家庭财务信息20x20", + "font_class": "a-jiatingcaiwuxinxi20x20ziyuan52", + "unicode": "ebc9", + "unicode_decimal": 60361 + }, + { + "icon_id": "25935211", + "name": "年报信息18x20", + "font_class": "a-nianbaoxinxi18x20ziyuan13", + "unicode": "ebca", + "unicode_decimal": 60362 + }, + { + "icon_id": "25935212", + "name": "日程提醒20x20", + "font_class": "a-richengtixing20x20ziyuan55", + "unicode": "ebcb", + "unicode_decimal": 60363 + }, + { + "icon_id": "25935214", + "name": "时光轴16x16", + "font_class": "a-shiguangzhou16x16ziyuan62", + "unicode": "ebcc", + "unicode_decimal": 60364 + }, + { + "icon_id": "25935215", + "name": "授信视图18x20", + "font_class": "a-shouxinshitu18x20ziyuan38", + "unicode": "ebcd", + "unicode_decimal": 60365 + }, + { + "icon_id": "25935216", + "name": "拍照24x20", + "font_class": "a-paizhao24x20ziyuan74", + "unicode": "ebce", + "unicode_decimal": 60366 + }, + { + "icon_id": "25935217", + "name": "删除24x24", + "font_class": "a-shanchu24x24ziyuan73", + "unicode": "ebcf", + "unicode_decimal": 60367 + }, + { + "icon_id": "25935218", + "name": "司法查冻扣20x18", + "font_class": "a-sifachadongkou20x18ziyuan33", + "unicode": "ebd0", + "unicode_decimal": 60368 + }, + { + "icon_id": "25935219", + "name": "人脸识别160x160", + "font_class": "a-renlianshibie160x160ziyuan69", + "unicode": "ebd1", + "unicode_decimal": 60369 + }, + { + "icon_id": "11750392", + "name": "检查更新20x20px", + "font_class": "jianchagengxinxpx1", + "unicode": "e882", + "unicode_decimal": 59522 + }, + { + "icon_id": "17779967", + "name": "燃气户号-帮助16x16px", + "font_class": "ranqihuhao-bangzhu16x16px", + "unicode": "e9dd", + "unicode_decimal": 59869 + }, + { + "icon_id": "22082157", + "name": "待办", + "font_class": "daiban", + "unicode": "e608", + "unicode_decimal": 58888 + }, + { + "icon_id": "19808786", + "name": "app-筛选16x16px", + "font_class": "app-shaixuan16x16px", + "unicode": "ea90", + "unicode_decimal": 60048 + }, + { + "icon_id": "23978812", + "name": "消息", + "font_class": "icon-test-copy", + "unicode": "eb08", + "unicode_decimal": 60168 + }, + { + "icon_id": "10388080", + "name": "风险预警处置", + "font_class": "fengxianyujingchuzhi", + "unicode": "e7d7", + "unicode_decimal": 59351 + }, + { + "icon_id": "17668900", + "name": "web-扫码", + "font_class": "web-saoma", + "unicode": "e9f2", + "unicode_decimal": 59890 + }, + { + "icon_id": "19671154", + "name": "excel-1", + "font_class": "excel-1", + "unicode": "e7b4", + "unicode_decimal": 59316 + }, + { + "icon_id": "19671157", + "name": "word-1", + "font_class": "word-1", + "unicode": "e7b7", + "unicode_decimal": 59319 + }, + { + "icon_id": "19671163", + "name": "pdf-1", + "font_class": "pdf-1", + "unicode": "e7bd", + "unicode_decimal": 59325 + }, + { + "icon_id": "5541669", + "name": "30px文件夹2", + "font_class": "pxwenjianjia", + "unicode": "e67d", + "unicode_decimal": 59005 + }, + { + "icon_id": "11750394", + "name": "清理缓存20x20px", + "font_class": "qinglihuancunxpx1", + "unicode": "e884", + "unicode_decimal": 59524 + }, + { + "icon_id": "17668917", + "name": "web-邮箱", + "font_class": "web-youxiang", + "unicode": "ea03", + "unicode_decimal": 59907 + }, + { + "icon_id": "11533817", + "name": "客户管理-选中", + "font_class": "kehuguanli-xuanzhong", + "unicode": "e843", + "unicode_decimal": 59459 + }, + { + "icon_id": "11533821", + "name": "客户管理-未选中", + "font_class": "kehuguanli-weixuanzhong", + "unicode": "e844", + "unicode_decimal": 59460 + }, + { + "icon_id": "11533845", + "name": "我的-未选中", + "font_class": "wode-weixuanzhong", + "unicode": "e848", + "unicode_decimal": 59464 + }, + { + "icon_id": "11685526", + "name": "调查任务-选中", + "font_class": "tiaocharenwu-xuanzhong", + "unicode": "e880", + "unicode_decimal": 59520 + }, + { + "icon_id": "11685545", + "name": "调查任务-未选中", + "font_class": "tiaocharenwu-weixuanzhong", + "unicode": "e881", + "unicode_decimal": 59521 + }, + { + "icon_id": "6364167", + "name": "二维码", + "font_class": "ico", + "unicode": "e647", + "unicode_decimal": 58951 + }, + { + "icon_id": "11788236", + "name": "亚军44x44px", + "font_class": "yajunxpx", + "unicode": "e8a5", + "unicode_decimal": 59557 + }, + { + "icon_id": "11788237", + "name": "季军44x44px", + "font_class": "jijunxpx", + "unicode": "e8a6", + "unicode_decimal": 59558 + }, + { + "icon_id": "11788238", + "name": "冠军44x44px", + "font_class": "guanjunxpx", + "unicode": "e8a7", + "unicode_decimal": 59559 + }, + { + "icon_id": "12003336", + "name": "女性-个人头像22x22px", + "font_class": "nvxing-gerentouxiangxpx", + "unicode": "e8ca", + "unicode_decimal": 59594 + }, + { + "icon_id": "12003350", + "name": "男性-个人头像22x22px", + "font_class": "nanxing-gerentouxiangxpx", + "unicode": "e8cb", + "unicode_decimal": 59595 + }, + { + "icon_id": "20206273", + "name": "搜索2", + "font_class": "sousuo2", + "unicode": "eaaa", + "unicode_decimal": 60074 + }, + { + "icon_id": "20209886", + "name": "待审批", + "font_class": "daishenpi", + "unicode": "eaad", + "unicode_decimal": 60077 + }, + { + "icon_id": "24954901", + "name": "扫描", + "font_class": "saomiao1", + "unicode": "eb4e", + "unicode_decimal": 60238 + }, + { + "icon_id": "24954939", + "name": "用户", + "font_class": "yonghu", + "unicode": "eb50", + "unicode_decimal": 60240 + }, + { + "icon_id": "24955018", + "name": "列表上进入", + "font_class": "liebiaoshangjinru", + "unicode": "eb62", + "unicode_decimal": 60258 + }, + { + "icon_id": "25524829", + "name": "手机账号", + "font_class": "shoujizhanghao", + "unicode": "eb5a", + "unicode_decimal": 60250 + }, + { + "icon_id": "11197493", + "name": "人脸识别", + "font_class": "renlianshibie", + "unicode": "e82a", + "unicode_decimal": 59434 + }, + { + "icon_id": "18639240", + "name": "承诺日到期提醒16x16px", + "font_class": "chengnuoridaoqitixing16x16px", + "unicode": "e9e9", + "unicode_decimal": 59881 + }, + { + "icon_id": "15411978", + "name": "营业执照85x120px", + "font_class": "yingyezhizhao85x120px", + "unicode": "e929", + "unicode_decimal": 59689 + }, + { + "icon_id": "15411979", + "name": "身份证人像面140x90px", + "font_class": "shenfenzhengrenxiangmian140x90px", + "unicode": "e92a", + "unicode_decimal": 59690 + }, + { + "icon_id": "15411980", + "name": "身份证国徽面140x90px", + "font_class": "shenfenzhengguohuimian140x90px", + "unicode": "e92b", + "unicode_decimal": 59691 + }, + { + "icon_id": "15412000", + "name": "已拒绝60x60px", + "font_class": "yijujue60x60px", + "unicode": "e92e", + "unicode_decimal": 59694 + }, + { + "icon_id": "15831179", + "name": "勾选-未选中14x14px", + "font_class": "gouxuan-weixuanzhong14x14px", + "unicode": "e93e", + "unicode_decimal": 59710 + }, + { + "icon_id": "19434307", + "name": "已处理状态", + "font_class": "yichulizhuangtai", + "unicode": "ea6a", + "unicode_decimal": 60010 + }, + { + "icon_id": "19434308", + "name": "待处理状态", + "font_class": "daichulizhuangtai", + "unicode": "ea6b", + "unicode_decimal": 60011 + } + ] +} diff --git a/src/assets/iconfont/iconfont.ttf b/src/assets/iconfont/iconfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c6e5e86751a8b046275ab1fdf1c99f1b666fb623 Binary files /dev/null and b/src/assets/iconfont/iconfont.ttf differ diff --git a/src/assets/iconfont/iconfont.woff b/src/assets/iconfont/iconfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..195d85c30afe0302eaa4241739940baf902d9d15 Binary files /dev/null and b/src/assets/iconfont/iconfont.woff differ diff --git a/src/assets/iconfont/iconfont.woff2 b/src/assets/iconfont/iconfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..08abd0ec3627a41bee601aa2ae63c27e7f95c67a Binary files /dev/null and b/src/assets/iconfont/iconfont.woff2 differ diff --git a/src/assets/images/Avatar.png b/src/assets/images/Avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..ad7f5e7770552bfbad0cd7d8b81e159f5fd15cc9 Binary files /dev/null and b/src/assets/images/Avatar.png differ diff --git a/src/assets/images/CPTJ.png b/src/assets/images/CPTJ.png new file mode 100644 index 0000000000000000000000000000000000000000..b32e31dcd316ed54b9205006f2696f5f191cd6c4 Binary files /dev/null and b/src/assets/images/CPTJ.png differ diff --git a/src/assets/images/CSGL.png b/src/assets/images/CSGL.png new file mode 100644 index 0000000000000000000000000000000000000000..cb0ab3e36294cea3c3e0f7a0de1acb84886c3f13 Binary files /dev/null and b/src/assets/images/CSGL.png differ diff --git a/src/assets/images/DBRW.png b/src/assets/images/DBRW.png new file mode 100644 index 0000000000000000000000000000000000000000..abd06c0135f4297f94f7891e2ac7d329edb73205 Binary files /dev/null and b/src/assets/images/DBRW.png differ diff --git a/src/assets/images/DGDKimg.png b/src/assets/images/DGDKimg.png new file mode 100644 index 0000000000000000000000000000000000000000..c94a3d54c4a8b71f808d2c3735a8f7f6743a742b Binary files /dev/null and b/src/assets/images/DGDKimg.png differ diff --git a/src/assets/images/DGKHBF.png b/src/assets/images/DGKHBF.png new file mode 100644 index 0000000000000000000000000000000000000000..7d2befbbab62c7647fd71f005b54c04889ad3024 Binary files /dev/null and b/src/assets/images/DGKHBF.png differ diff --git a/src/assets/images/DGKHXXMC.png b/src/assets/images/DGKHXXMC.png new file mode 100644 index 0000000000000000000000000000000000000000..16a4b4b93ad866c5acd7460058fe6114befb350f Binary files /dev/null and b/src/assets/images/DGKHXXMC.png differ diff --git a/src/assets/images/DGKHYXQK.png b/src/assets/images/DGKHYXQK.png new file mode 100644 index 0000000000000000000000000000000000000000..1a351380e32fa8d6598ba4fc93df1b4150405e77 Binary files /dev/null and b/src/assets/images/DGKHYXQK.png differ diff --git a/src/assets/images/DGZSYZ.png b/src/assets/images/DGZSYZ.png new file mode 100644 index 0000000000000000000000000000000000000000..e953e8117d5ec2ecae7fbeb8dfcb3b8721c322b6 Binary files /dev/null and b/src/assets/images/DGZSYZ.png differ diff --git a/src/assets/images/DHJC.png b/src/assets/images/DHJC.png new file mode 100644 index 0000000000000000000000000000000000000000..bd28d4fb7880b6caa5da079f9df74c256a5ef6e0 Binary files /dev/null and b/src/assets/images/DHJC.png differ diff --git a/src/assets/images/FXYJ.png b/src/assets/images/FXYJ.png new file mode 100644 index 0000000000000000000000000000000000000000..f99a4b88620482502a443c27e5365bf521a1eb3c Binary files /dev/null and b/src/assets/images/FXYJ.png differ diff --git a/src/assets/images/FZGJ.png b/src/assets/images/FZGJ.png new file mode 100644 index 0000000000000000000000000000000000000000..56072750598be2e69de4b39120b04407d7516b43 Binary files /dev/null and b/src/assets/images/FZGJ.png differ diff --git a/src/assets/images/GRDKimg.png b/src/assets/images/GRDKimg.png new file mode 100644 index 0000000000000000000000000000000000000000..9b4510097017f5083d8e43cbf6ae0c4a24051f7b Binary files /dev/null and b/src/assets/images/GRDKimg.png differ diff --git a/src/assets/images/KHCX.png b/src/assets/images/KHCX.png new file mode 100644 index 0000000000000000000000000000000000000000..6e69eb04fec6fb6081b816ed90d6092ec3e26529 Binary files /dev/null and b/src/assets/images/KHCX.png differ diff --git a/src/assets/images/SQJJ.png b/src/assets/images/SQJJ.png new file mode 100644 index 0000000000000000000000000000000000000000..b385e0af9f9503382281ce06e8773afa8d5252dd Binary files /dev/null and b/src/assets/images/SQJJ.png differ diff --git a/src/assets/images/WDCX.png b/src/assets/images/WDCX.png new file mode 100644 index 0000000000000000000000000000000000000000..06870c9b9c3389e532a3a1af1f01b9cb56183993 Binary files /dev/null and b/src/assets/images/WDCX.png differ diff --git a/src/assets/images/XTGG.png b/src/assets/images/XTGG.png new file mode 100644 index 0000000000000000000000000000000000000000..5258349ff8e7ac63d1cb08098b76fff1637efdf7 Binary files /dev/null and b/src/assets/images/XTGG.png differ diff --git a/src/assets/images/XZMQ.png b/src/assets/images/XZMQ.png new file mode 100644 index 0000000000000000000000000000000000000000..30e9c4e713f92e70621333c6fe63e01e4a2edc2e Binary files /dev/null and b/src/assets/images/XZMQ.png differ diff --git a/src/assets/images/YWCX.png b/src/assets/images/YWCX.png new file mode 100644 index 0000000000000000000000000000000000000000..8966444c4e9cb973341956974a5b08066dadb7f7 Binary files /dev/null and b/src/assets/images/YWCX.png differ diff --git a/src/assets/images/ZRCS.png b/src/assets/images/ZRCS.png new file mode 100644 index 0000000000000000000000000000000000000000..84ba130aaa0d15aef53b2271829c7cd4002f813b Binary files /dev/null and b/src/assets/images/ZRCS.png differ diff --git a/src/assets/images/ZYXTimg.png b/src/assets/images/ZYXTimg.png new file mode 100644 index 0000000000000000000000000000000000000000..9ac5937dd24694c43794c899cd32e6bfaacc120d Binary files /dev/null and b/src/assets/images/ZYXTimg.png differ diff --git a/src/assets/images/a_point.png b/src/assets/images/a_point.png new file mode 100644 index 0000000000000000000000000000000000000000..ffb27d4be260aa824ecce167cd12ee3afda3c386 Binary files /dev/null and b/src/assets/images/a_point.png differ diff --git a/src/assets/images/auxiliary-tools-Interest-pricing.png b/src/assets/images/auxiliary-tools-Interest-pricing.png new file mode 100644 index 0000000000000000000000000000000000000000..fdfd2123e93fcf68ba5ea2ec67bd02f248470aa0 Binary files /dev/null and b/src/assets/images/auxiliary-tools-Interest-pricing.png differ diff --git a/src/assets/images/chengdu-bank-logo.png b/src/assets/images/chengdu-bank-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..254fab89e05c88c258434e472b2a7281bb46ae46 Binary files /dev/null and b/src/assets/images/chengdu-bank-logo.png differ diff --git a/src/assets/images/employer-logo.png b/src/assets/images/employer-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0f86d7b4f718744cf49ae68a77b16275889947b5 Binary files /dev/null and b/src/assets/images/employer-logo.png differ diff --git a/src/assets/images/financial-information-logo.png b/src/assets/images/financial-information-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b90c169c1afffa2e001bbbae43542890a36b414a Binary files /dev/null and b/src/assets/images/financial-information-logo.png differ diff --git a/src/assets/images/id-card-front.png b/src/assets/images/id-card-front.png new file mode 100644 index 0000000000000000000000000000000000000000..ba6a47a356231a9e4c5e037c427ca2d7c552557e Binary files /dev/null and b/src/assets/images/id-card-front.png differ diff --git a/src/assets/images/id-card-negative.png b/src/assets/images/id-card-negative.png new file mode 100644 index 0000000000000000000000000000000000000000..bf453ac03e7534190b463483fac82550cd2e6c13 Binary files /dev/null and b/src/assets/images/id-card-negative.png differ diff --git a/src/assets/images/idcardcountry.png b/src/assets/images/idcardcountry.png new file mode 100644 index 0000000000000000000000000000000000000000..ab7cd78029385d4cf247d0448a52f9c65e5aa0d0 Binary files /dev/null and b/src/assets/images/idcardcountry.png differ diff --git a/src/assets/images/idcardpeople.png b/src/assets/images/idcardpeople.png new file mode 100644 index 0000000000000000000000000000000000000000..ab9544fa4dfe1690a1306eea45140541bcf86281 Binary files /dev/null and b/src/assets/images/idcardpeople.png differ diff --git a/src/assets/images/login-background.png b/src/assets/images/login-background.png new file mode 100644 index 0000000000000000000000000000000000000000..83f48fa7bc90c2939cbdf96e47de2a4c7b5334c3 Binary files /dev/null and b/src/assets/images/login-background.png differ diff --git a/src/assets/images/login-password-logo.png b/src/assets/images/login-password-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..655bf49f7e467d7210a3cff2d64bc69979f5aa5c Binary files /dev/null and b/src/assets/images/login-password-logo.png differ diff --git a/src/assets/images/logo.png b/src/assets/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d32d25e1e87c4aca9d325790d74d4b3fae4cbb6e Binary files /dev/null and b/src/assets/images/logo.png differ diff --git a/src/assets/images/nodata.png b/src/assets/images/nodata.png new file mode 100644 index 0000000000000000000000000000000000000000..f633044dcc07de6a1fd8377a40c5ef1bfd51039a Binary files /dev/null and b/src/assets/images/nodata.png differ diff --git a/src/assets/images/orange-subscript.png b/src/assets/images/orange-subscript.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed34a1deb7df01209f5e44e7a5845d12fd21116 Binary files /dev/null and b/src/assets/images/orange-subscript.png differ diff --git a/src/assets/images/personal-profiles-logo.png b/src/assets/images/personal-profiles-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..dd3ce9a4fb88c938f4ccb5274348efeade99ebfd Binary files /dev/null and b/src/assets/images/personal-profiles-logo.png differ diff --git a/src/assets/images/personal-profiles.png b/src/assets/images/personal-profiles.png new file mode 100644 index 0000000000000000000000000000000000000000..2334599c9268219d2ea56c9cbcd2bd3a164f2e5c Binary files /dev/null and b/src/assets/images/personal-profiles.png differ diff --git a/src/assets/images/prefix-idcard.png b/src/assets/images/prefix-idcard.png new file mode 100644 index 0000000000000000000000000000000000000000..0461a3a2b1c3053522544c50425fc9d8e1643472 Binary files /dev/null and b/src/assets/images/prefix-idcard.png differ diff --git a/src/assets/images/product-recommendation-big-picture.png b/src/assets/images/product-recommendation-big-picture.png new file mode 100644 index 0000000000000000000000000000000000000000..1415aa0f72bf12f79cfa0524a8ea8cb5f7e7547b Binary files /dev/null and b/src/assets/images/product-recommendation-big-picture.png differ diff --git a/src/assets/images/product-recommendation-chart-1.png b/src/assets/images/product-recommendation-chart-1.png new file mode 100644 index 0000000000000000000000000000000000000000..d640578552d9f59b36052283aacec49d6ae5ed5d Binary files /dev/null and b/src/assets/images/product-recommendation-chart-1.png differ diff --git a/src/assets/images/product-recommendation-chart-2.png b/src/assets/images/product-recommendation-chart-2.png new file mode 100644 index 0000000000000000000000000000000000000000..30e0659caede08b74ce539c463e159c03cbe704d Binary files /dev/null and b/src/assets/images/product-recommendation-chart-2.png differ diff --git a/src/assets/images/product-recommendation-chart-3.png b/src/assets/images/product-recommendation-chart-3.png new file mode 100644 index 0000000000000000000000000000000000000000..c94e4fd50c0ae7e2de306c75c5413249c9a8519a Binary files /dev/null and b/src/assets/images/product-recommendation-chart-3.png differ diff --git a/src/assets/images/product-recommendation-chart-4.png b/src/assets/images/product-recommendation-chart-4.png new file mode 100644 index 0000000000000000000000000000000000000000..9b0315786d20c88b4a31111ac63df5113a8896b4 Binary files /dev/null and b/src/assets/images/product-recommendation-chart-4.png differ diff --git a/src/assets/images/product-recommendation-chart-5.png b/src/assets/images/product-recommendation-chart-5.png new file mode 100644 index 0000000000000000000000000000000000000000..1b26ef9871b27833a550fbffda3e402db8b2be25 Binary files /dev/null and b/src/assets/images/product-recommendation-chart-5.png differ diff --git a/src/assets/images/product-recommendation-chart.png b/src/assets/images/product-recommendation-chart.png new file mode 100644 index 0000000000000000000000000000000000000000..5ada7de35c5c0263fc48f124ce1b30d892cd6bae Binary files /dev/null and b/src/assets/images/product-recommendation-chart.png differ diff --git a/src/assets/images/protocol.png b/src/assets/images/protocol.png new file mode 100644 index 0000000000000000000000000000000000000000..4fe7d44c4c14a34358b5de8c952feb7737dc2aa5 Binary files /dev/null and b/src/assets/images/protocol.png differ diff --git a/src/assets/images/query-history-logo.png b/src/assets/images/query-history-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1c5a7cf119124d28a14bae2fc7bbcbc24660a731 Binary files /dev/null and b/src/assets/images/query-history-logo.png differ diff --git a/src/assets/images/risk-warning-logo.png b/src/assets/images/risk-warning-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e63c4afe0aab49e578326206e43a4f33765a774c Binary files /dev/null and b/src/assets/images/risk-warning-logo.png differ diff --git a/src/assets/images/search-logo.png b/src/assets/images/search-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..77f5f36407487b8a1400b8ad90da68f3f02e381e Binary files /dev/null and b/src/assets/images/search-logo.png differ diff --git a/src/assets/images/search.png b/src/assets/images/search.png new file mode 100644 index 0000000000000000000000000000000000000000..aacce869146a617ab9d914b1cb3f38b68b696806 Binary files /dev/null and b/src/assets/images/search.png differ diff --git a/src/assets/images/small_circle.png b/src/assets/images/small_circle.png new file mode 100644 index 0000000000000000000000000000000000000000..fcfde8c42195eb8e40e8ff56635f23a87c9fea20 Binary files /dev/null and b/src/assets/images/small_circle.png differ diff --git a/src/assets/images/suffix-idcard.png b/src/assets/images/suffix-idcard.png new file mode 100644 index 0000000000000000000000000000000000000000..7ebde1845e2b4aef57c6e1d6f38fe956027bbc7f Binary files /dev/null and b/src/assets/images/suffix-idcard.png differ diff --git a/src/assets/images/tiileimg.png b/src/assets/images/tiileimg.png new file mode 100644 index 0000000000000000000000000000000000000000..e0bf0311b0f6d73a1d3ba12b4139ee6197edad35 Binary files /dev/null and b/src/assets/images/tiileimg.png differ diff --git a/src/assets/images/u23.png b/src/assets/images/u23.png new file mode 100644 index 0000000000000000000000000000000000000000..18a55d4fd6b4edaafad6172698aee9432971606f Binary files /dev/null and b/src/assets/images/u23.png differ diff --git a/src/assets/images/yellow-folder.png b/src/assets/images/yellow-folder.png new file mode 100644 index 0000000000000000000000000000000000000000..4ed1a7f8af88455e8b14d9a3f3e10a8b833afa14 Binary files /dev/null and b/src/assets/images/yellow-folder.png differ diff --git a/src/assets/svg/QR-code.svg b/src/assets/svg/QR-code.svg new file mode 100644 index 0000000000000000000000000000000000000000..d576f7a3a3312f648e85c90fe6f01c409deabeef --- /dev/null +++ b/src/assets/svg/QR-code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svg/atlas.svg b/src/assets/svg/atlas.svg new file mode 100644 index 0000000000000000000000000000000000000000..e65dfc7ecdbb63ade31a1a6904ca5763e23ed007 --- /dev/null +++ b/src/assets/svg/atlas.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/blue-circle.svg b/src/assets/svg/blue-circle.svg new file mode 100644 index 0000000000000000000000000000000000000000..164219f6b932f998306b33099ea49a8044afa445 --- /dev/null +++ b/src/assets/svg/blue-circle.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/blue-hollow-circle.svg b/src/assets/svg/blue-hollow-circle.svg new file mode 100644 index 0000000000000000000000000000000000000000..3e4a1794f8cf13bef9327530ba2aea5d5b9cce6e --- /dev/null +++ b/src/assets/svg/blue-hollow-circle.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/svg/blue-navigation-logo.svg b/src/assets/svg/blue-navigation-logo.svg new file mode 100644 index 0000000000000000000000000000000000000000..757eac40298ca3f54e8fe91f4808dfbe814335f7 --- /dev/null +++ b/src/assets/svg/blue-navigation-logo.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/blue-round.svg b/src/assets/svg/blue-round.svg new file mode 100644 index 0000000000000000000000000000000000000000..c231a14a651cd236313f958bb04cde1f59694a9b --- /dev/null +++ b/src/assets/svg/blue-round.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/blue-rounded-rectangle.svg b/src/assets/svg/blue-rounded-rectangle.svg new file mode 100644 index 0000000000000000000000000000000000000000..2e2c0a2efed3e71ddf16cf96261275e192095d75 --- /dev/null +++ b/src/assets/svg/blue-rounded-rectangle.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/blue-shadow-round.svg b/src/assets/svg/blue-shadow-round.svg new file mode 100644 index 0000000000000000000000000000000000000000..49878f5e5d4bc3c887beecf86a1a1a26fb117619 --- /dev/null +++ b/src/assets/svg/blue-shadow-round.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/svg/blue-spheric.svg b/src/assets/svg/blue-spheric.svg new file mode 100644 index 0000000000000000000000000000000000000000..b97e2fec0b0ab828fae1ce6e8811da3a400e6019 --- /dev/null +++ b/src/assets/svg/blue-spheric.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/svg/blue-subscript.svg b/src/assets/svg/blue-subscript.svg new file mode 100644 index 0000000000000000000000000000000000000000..7369b746685d019a9953619332c9c18deba4a425 --- /dev/null +++ b/src/assets/svg/blue-subscript.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/client-avatar.svg b/src/assets/svg/client-avatar.svg new file mode 100644 index 0000000000000000000000000000000000000000..cd3b0eb6217b8f3f4390ed07b351fe9fd70883ba --- /dev/null +++ b/src/assets/svg/client-avatar.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/cursor-active.svg b/src/assets/svg/cursor-active.svg new file mode 100644 index 0000000000000000000000000000000000000000..7d65820c47b21294d041127b8b04b81615723a49 --- /dev/null +++ b/src/assets/svg/cursor-active.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/cursor-index.svg b/src/assets/svg/cursor-index.svg new file mode 100644 index 0000000000000000000000000000000000000000..9a4fca60b42d4c52a0861d301ad2b96ec8d20f2a --- /dev/null +++ b/src/assets/svg/cursor-index.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/svg/cursor-tag.svg b/src/assets/svg/cursor-tag.svg new file mode 100644 index 0000000000000000000000000000000000000000..e68ba18cb033cbc92a0fed3fdfe43d5390bf1a93 --- /dev/null +++ b/src/assets/svg/cursor-tag.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/svg/deal-with.svg b/src/assets/svg/deal-with.svg new file mode 100644 index 0000000000000000000000000000000000000000..ed71050a82ca65cd8139f5103d8305496d4c61b9 --- /dev/null +++ b/src/assets/svg/deal-with.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/explore.svg b/src/assets/svg/explore.svg new file mode 100644 index 0000000000000000000000000000000000000000..6c55df6f6a15331f2fd9ec4de3e0de1bce08740c --- /dev/null +++ b/src/assets/svg/explore.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svg/grey-camera-logo.svg b/src/assets/svg/grey-camera-logo.svg new file mode 100644 index 0000000000000000000000000000000000000000..9763cbd4ffdbdab763ca70a9a4d34d1003295459 --- /dev/null +++ b/src/assets/svg/grey-camera-logo.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/svg/grey-hollow-circle.svg b/src/assets/svg/grey-hollow-circle.svg new file mode 100644 index 0000000000000000000000000000000000000000..8a13e2a68a16f32f0b34c085792b6187eb955e7b --- /dev/null +++ b/src/assets/svg/grey-hollow-circle.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/svg/grey-line.svg b/src/assets/svg/grey-line.svg new file mode 100644 index 0000000000000000000000000000000000000000..509774cd1d3f80e3f158a885db9da5388be92dcd --- /dev/null +++ b/src/assets/svg/grey-line.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/information-surface-1.svg b/src/assets/svg/information-surface-1.svg new file mode 100644 index 0000000000000000000000000000000000000000..8fd62c8a48f99e386af926decbc5ddd3e8efd229 --- /dev/null +++ b/src/assets/svg/information-surface-1.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/information-surface-2.svg b/src/assets/svg/information-surface-2.svg new file mode 100644 index 0000000000000000000000000000000000000000..2c6a8f4b40793e9910147d5b2686b25f329116f7 --- /dev/null +++ b/src/assets/svg/information-surface-2.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/information-surface-3.svg b/src/assets/svg/information-surface-3.svg new file mode 100644 index 0000000000000000000000000000000000000000..279f0994270a8216ad2681dd1c3ade188d524957 --- /dev/null +++ b/src/assets/svg/information-surface-3.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/information-surface-4.svg b/src/assets/svg/information-surface-4.svg new file mode 100644 index 0000000000000000000000000000000000000000..8595465cceb8c6fea03a900a5678e790c1fba0af --- /dev/null +++ b/src/assets/svg/information-surface-4.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/information-surface-5.svg b/src/assets/svg/information-surface-5.svg new file mode 100644 index 0000000000000000000000000000000000000000..5526243f2f097a80ffbcbd7e7394d46c08f240b7 --- /dev/null +++ b/src/assets/svg/information-surface-5.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/information-surface-6.svg b/src/assets/svg/information-surface-6.svg new file mode 100644 index 0000000000000000000000000000000000000000..d6632c010d6d5e48d5196dad929a1f891aad3d4e --- /dev/null +++ b/src/assets/svg/information-surface-6.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/information-surface-7.svg b/src/assets/svg/information-surface-7.svg new file mode 100644 index 0000000000000000000000000000000000000000..7c148789cb250cf5b45195cd0753cb7be4b12f43 --- /dev/null +++ b/src/assets/svg/information-surface-7.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/map-logo.svg b/src/assets/svg/map-logo.svg new file mode 100644 index 0000000000000000000000000000000000000000..eff87829311477137c1b0c66e683fe6b2f83c7f1 --- /dev/null +++ b/src/assets/svg/map-logo.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/orange-circle.svg b/src/assets/svg/orange-circle.svg new file mode 100644 index 0000000000000000000000000000000000000000..cb798814c4b13507ce34c21bbf119cd6e1d7d47a --- /dev/null +++ b/src/assets/svg/orange-circle.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/orange-navigation-logo.svg b/src/assets/svg/orange-navigation-logo.svg new file mode 100644 index 0000000000000000000000000000000000000000..f336ee7b05b57cb4bedf8ba7a7fc2654162dc820 --- /dev/null +++ b/src/assets/svg/orange-navigation-logo.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/orange-warning.svg b/src/assets/svg/orange-warning.svg new file mode 100644 index 0000000000000000000000000000000000000000..87257abd0fef54a3da66cf4a69cef67b4df630cd --- /dev/null +++ b/src/assets/svg/orange-warning.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/past.svg b/src/assets/svg/past.svg new file mode 100644 index 0000000000000000000000000000000000000000..6ec1d59c4c8db5024939f06bf376a85018264a98 --- /dev/null +++ b/src/assets/svg/past.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svg/personal-title-1.svg b/src/assets/svg/personal-title-1.svg new file mode 100644 index 0000000000000000000000000000000000000000..5c677ccd08ccbf9331b10c68fe11eed9112e02df --- /dev/null +++ b/src/assets/svg/personal-title-1.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/personal-title-2.svg b/src/assets/svg/personal-title-2.svg new file mode 100644 index 0000000000000000000000000000000000000000..5e892830b4b617be885f7e49501cb85c337f1bb9 --- /dev/null +++ b/src/assets/svg/personal-title-2.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/photograph-logo.svg b/src/assets/svg/photograph-logo.svg new file mode 100644 index 0000000000000000000000000000000000000000..881a598bbf1c9c70d5742eb247ad46b9fc66a693 --- /dev/null +++ b/src/assets/svg/photograph-logo.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/position-1.svg b/src/assets/svg/position-1.svg new file mode 100644 index 0000000000000000000000000000000000000000..5d1a017e3d6780c14088eb3d0c65a6d80caa80f3 --- /dev/null +++ b/src/assets/svg/position-1.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/position-2.svg b/src/assets/svg/position-2.svg new file mode 100644 index 0000000000000000000000000000000000000000..483509645de777b34846c82f5dabd077fad1e86a --- /dev/null +++ b/src/assets/svg/position-2.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/project-view.svg b/src/assets/svg/project-view.svg new file mode 100644 index 0000000000000000000000000000000000000000..940e6e3d5c62a3a9b7c0c2cf756312b6f1b434e9 --- /dev/null +++ b/src/assets/svg/project-view.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/svg/receive.svg b/src/assets/svg/receive.svg new file mode 100644 index 0000000000000000000000000000000000000000..b9b9f4950cd94c5b647ecba47979ed59236bdfc6 --- /dev/null +++ b/src/assets/svg/receive.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/red-message-box.svg b/src/assets/svg/red-message-box.svg new file mode 100644 index 0000000000000000000000000000000000000000..d29669d227211b38e84ebb3c19be28eb687f7ac4 --- /dev/null +++ b/src/assets/svg/red-message-box.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/svg/red-round.svg b/src/assets/svg/red-round.svg new file mode 100644 index 0000000000000000000000000000000000000000..8a52e99d5eaaf229c93fe864d6d2327ae2766179 --- /dev/null +++ b/src/assets/svg/red-round.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/red-rounded-rectangle.svg b/src/assets/svg/red-rounded-rectangle.svg new file mode 100644 index 0000000000000000000000000000000000000000..db74c34e8f277490846915387117544a45ba288b --- /dev/null +++ b/src/assets/svg/red-rounded-rectangle.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/red-shadow-round.svg b/src/assets/svg/red-shadow-round.svg new file mode 100644 index 0000000000000000000000000000000000000000..0e7c071bb37fdd9459e7b250782646ac2c577a7f --- /dev/null +++ b/src/assets/svg/red-shadow-round.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/svg/red-spheric.svg b/src/assets/svg/red-spheric.svg new file mode 100644 index 0000000000000000000000000000000000000000..1457f8f6430d1259fb8fabbaf4b828661bcc34e0 --- /dev/null +++ b/src/assets/svg/red-spheric.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/svg/red-subscript.svg b/src/assets/svg/red-subscript.svg new file mode 100644 index 0000000000000000000000000000000000000000..d55b4fcd9e9adeb310649250bc07ff9acee2d0c0 --- /dev/null +++ b/src/assets/svg/red-subscript.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/red-warning.svg b/src/assets/svg/red-warning.svg new file mode 100644 index 0000000000000000000000000000000000000000..9cee3dd2a7b581d4c00b11260eab397ccbf30378 --- /dev/null +++ b/src/assets/svg/red-warning.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/reference-example-logo.svg b/src/assets/svg/reference-example-logo.svg new file mode 100644 index 0000000000000000000000000000000000000000..5c6feedfd02ac5f0cd4bbac100863f426c32813f --- /dev/null +++ b/src/assets/svg/reference-example-logo.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/related-info.svg b/src/assets/svg/related-info.svg new file mode 100644 index 0000000000000000000000000000000000000000..65b416b5daf3c36d445d77ecb72f4f10e30623d3 --- /dev/null +++ b/src/assets/svg/related-info.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/search-freak.svg b/src/assets/svg/search-freak.svg new file mode 100644 index 0000000000000000000000000000000000000000..b4dedac052c7f6b652be5dac319dce8fc848d013 --- /dev/null +++ b/src/assets/svg/search-freak.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/svg/select-all.svg b/src/assets/svg/select-all.svg new file mode 100644 index 0000000000000000000000000000000000000000..f294a7a62fe322a8acca9dfce351dad8e1666be9 --- /dev/null +++ b/src/assets/svg/select-all.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/survey-upload.svg b/src/assets/svg/survey-upload.svg new file mode 100644 index 0000000000000000000000000000000000000000..ed7d52f3bf30f97b7f52af47cee61c1ea5967051 --- /dev/null +++ b/src/assets/svg/survey-upload.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/svg/tel.svg b/src/assets/svg/tel.svg new file mode 100644 index 0000000000000000000000000000000000000000..ec7a785243ece8f7ea7a1f0e3d7f80484b61192c --- /dev/null +++ b/src/assets/svg/tel.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/time-axis-1.svg b/src/assets/svg/time-axis-1.svg new file mode 100644 index 0000000000000000000000000000000000000000..ea48430735233ae1d5651db69842a52549f590fb --- /dev/null +++ b/src/assets/svg/time-axis-1.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/time-axis-2.svg b/src/assets/svg/time-axis-2.svg new file mode 100644 index 0000000000000000000000000000000000000000..e3dd486d09bd954fb3e45b938964df0d0461b25f --- /dev/null +++ b/src/assets/svg/time-axis-2.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/time-axis-logo.svg b/src/assets/svg/time-axis-logo.svg new file mode 100644 index 0000000000000000000000000000000000000000..85a9bf571ea2ad2d9cac3c9cf49c67e76cb4bcc8 --- /dev/null +++ b/src/assets/svg/time-axis-logo.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/title.svg b/src/assets/svg/title.svg new file mode 100644 index 0000000000000000000000000000000000000000..05df919013e276abcac9164ba39206dc06cada39 --- /dev/null +++ b/src/assets/svg/title.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/unselect-all.svg b/src/assets/svg/unselect-all.svg new file mode 100644 index 0000000000000000000000000000000000000000..9e073af2f402d6a72bb9facdb2ebaa5fc45b8cfe --- /dev/null +++ b/src/assets/svg/unselect-all.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/user-list-logo.svg b/src/assets/svg/user-list-logo.svg new file mode 100644 index 0000000000000000000000000000000000000000..42b723fc8b80f4a7f522395f320fbc34920a4bfe --- /dev/null +++ b/src/assets/svg/user-list-logo.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/white-navigation-logo.svg b/src/assets/svg/white-navigation-logo.svg new file mode 100644 index 0000000000000000000000000000000000000000..7c0ace89d834824540b3a81b64452efc6dfa1f1c --- /dev/null +++ b/src/assets/svg/white-navigation-logo.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/yellow-folder.svg b/src/assets/svg/yellow-folder.svg new file mode 100644 index 0000000000000000000000000000000000000000..018e3fe6191860bb6a43d875785f6fe1c30860de --- /dev/null +++ b/src/assets/svg/yellow-folder.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/yellow-round.svg b/src/assets/svg/yellow-round.svg new file mode 100644 index 0000000000000000000000000000000000000000..4ab259f56a2f56524ae3797c0add4a65c0aeab6b --- /dev/null +++ b/src/assets/svg/yellow-round.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/yellow-speck.svg b/src/assets/svg/yellow-speck.svg new file mode 100644 index 0000000000000000000000000000000000000000..3163c524534106add625723699dea3220fafe210 --- /dev/null +++ b/src/assets/svg/yellow-speck.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/svg/yellow-warning.svg b/src/assets/svg/yellow-warning.svg new file mode 100644 index 0000000000000000000000000000000000000000..db5ec5822a097973cf74371b1a02a53210840a2b --- /dev/null +++ b/src/assets/svg/yellow-warning.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/components/customer-information/business-application-status/application-status/ApplicationStatusForm.vue b/src/components/customer-information/business-application-status/application-status/ApplicationStatusForm.vue new file mode 100644 index 0000000000000000000000000000000000000000..c656db1eb98f62df0cecc10dca072b98df7d2069 --- /dev/null +++ b/src/components/customer-information/business-application-status/application-status/ApplicationStatusForm.vue @@ -0,0 +1,38 @@ + + + + diff --git a/src/components/customer-information/business-application-status/credit-status-of-client-executives/Credit.vue b/src/components/customer-information/business-application-status/credit-status-of-client-executives/Credit.vue new file mode 100644 index 0000000000000000000000000000000000000000..097054fb430c9e19d716ba453229648b8a4a3891 --- /dev/null +++ b/src/components/customer-information/business-application-status/credit-status-of-client-executives/Credit.vue @@ -0,0 +1,60 @@ + + + + diff --git a/src/components/customer-information/business-application-status/credit-status-of-client-executives/PersonalLoan.vue b/src/components/customer-information/business-application-status/credit-status-of-client-executives/PersonalLoan.vue new file mode 100644 index 0000000000000000000000000000000000000000..f2e470e4318241c6abb04af2a8c71a94b21a7f93 --- /dev/null +++ b/src/components/customer-information/business-application-status/credit-status-of-client-executives/PersonalLoan.vue @@ -0,0 +1,40 @@ + + + + diff --git a/src/components/customer-information/business-application-status/customer-contribution/CompanyRateOfReturn.vue b/src/components/customer-information/business-application-status/customer-contribution/CompanyRateOfReturn.vue new file mode 100644 index 0000000000000000000000000000000000000000..17840c35ec587777f9646bbd0e03c1a786cd848e --- /dev/null +++ b/src/components/customer-information/business-application-status/customer-contribution/CompanyRateOfReturn.vue @@ -0,0 +1,135 @@ + + + + + diff --git a/src/components/customer-information/business-application-status/customer-contribution/CustomerContributionSituationTable.vue b/src/components/customer-information/business-application-status/customer-contribution/CustomerContributionSituationTable.vue new file mode 100644 index 0000000000000000000000000000000000000000..6802fb99340842fad0d46ea258899f36eda0a81d --- /dev/null +++ b/src/components/customer-information/business-application-status/customer-contribution/CustomerContributionSituationTable.vue @@ -0,0 +1,100 @@ + + + + + diff --git a/src/components/customer-information/business-application-status/customer-contribution/GroupRateOfReturn.vue b/src/components/customer-information/business-application-status/customer-contribution/GroupRateOfReturn.vue new file mode 100644 index 0000000000000000000000000000000000000000..e065bf1b1f766c6ba2c92d6f34b43625fa3a2c12 --- /dev/null +++ b/src/components/customer-information/business-application-status/customer-contribution/GroupRateOfReturn.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/src/components/customer-information/business-application-status/customer-management-information/IssuanceOfStockInformation.vue b/src/components/customer-information/business-application-status/customer-management-information/IssuanceOfStockInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..833dd739e02f35201d86fbfec2e76b871b46b673 --- /dev/null +++ b/src/components/customer-information/business-application-status/customer-management-information/IssuanceOfStockInformation.vue @@ -0,0 +1,38 @@ + + + + diff --git a/src/components/customer-information/business-application-status/customer-management-information/ProjectInformation.vue b/src/components/customer-information/business-application-status/customer-management-information/ProjectInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..c862de5c73ef8736ef6c7115585a41f19ee3e83e --- /dev/null +++ b/src/components/customer-information/business-application-status/customer-management-information/ProjectInformation.vue @@ -0,0 +1,114 @@ + + + + + diff --git a/src/components/customer-information/business-application-status/customer-preliminary-screening-history/PreliminaryScreeningOfHistory.vue b/src/components/customer-information/business-application-status/customer-preliminary-screening-history/PreliminaryScreeningOfHistory.vue new file mode 100644 index 0000000000000000000000000000000000000000..305a80ec431a96fbab9de4ba848d7bd043fdadf0 --- /dev/null +++ b/src/components/customer-information/business-application-status/customer-preliminary-screening-history/PreliminaryScreeningOfHistory.vue @@ -0,0 +1,137 @@ + + + + diff --git a/src/components/customer-information/business-application-status/customer-ratings/CurrentInternalRating.vue b/src/components/customer-information/business-application-status/customer-ratings/CurrentInternalRating.vue new file mode 100644 index 0000000000000000000000000000000000000000..a693f6422cf2cee2cb319727ff60f8941b1024f4 --- /dev/null +++ b/src/components/customer-information/business-application-status/customer-ratings/CurrentInternalRating.vue @@ -0,0 +1,186 @@ + + + + + diff --git a/src/components/customer-information/business-application-status/customer-ratings/InternalRatingInThePastThreeYears.vue b/src/components/customer-information/business-application-status/customer-ratings/InternalRatingInThePastThreeYears.vue new file mode 100644 index 0000000000000000000000000000000000000000..db9768762ba44293cec231c6e578494b051e18b1 --- /dev/null +++ b/src/components/customer-information/business-application-status/customer-ratings/InternalRatingInThePastThreeYears.vue @@ -0,0 +1,277 @@ + + + + diff --git a/src/components/customer-information/business-application-status/financial-information/BalanceSheet.vue b/src/components/customer-information/business-application-status/financial-information/BalanceSheet.vue new file mode 100644 index 0000000000000000000000000000000000000000..b3006d9ef86c8088e32a82aa5e18136e6d449ced --- /dev/null +++ b/src/components/customer-information/business-application-status/financial-information/BalanceSheet.vue @@ -0,0 +1,1055 @@ + + + + diff --git a/src/components/customer-information/business-application-status/financial-information/CashFlowStatement.vue b/src/components/customer-information/business-application-status/financial-information/CashFlowStatement.vue new file mode 100644 index 0000000000000000000000000000000000000000..aee137883a66b4b297d44d88d483c924e5953825 --- /dev/null +++ b/src/components/customer-information/business-application-status/financial-information/CashFlowStatement.vue @@ -0,0 +1,623 @@ + + + + diff --git a/src/components/customer-information/business-application-status/financial-information/IncomeStatement.vue b/src/components/customer-information/business-application-status/financial-information/IncomeStatement.vue new file mode 100644 index 0000000000000000000000000000000000000000..844b57fe2827c667d7138b0565d06a6f71ed31d4 --- /dev/null +++ b/src/components/customer-information/business-application-status/financial-information/IncomeStatement.vue @@ -0,0 +1,842 @@ + + + + diff --git a/src/components/customer-information/business-application-status/unified-customer-credit-view/UnifiedCustomerCreditViewTable.vue b/src/components/customer-information/business-application-status/unified-customer-credit-view/UnifiedCustomerCreditViewTable.vue new file mode 100644 index 0000000000000000000000000000000000000000..2877dd7e6851a7daa990717e6a88b3057a23a2f5 --- /dev/null +++ b/src/components/customer-information/business-application-status/unified-customer-credit-view/UnifiedCustomerCreditViewTable.vue @@ -0,0 +1,246 @@ + + + + + diff --git a/src/components/customer-information/business-information/StockInformation/IssuedStockInfo.vue b/src/components/customer-information/business-information/StockInformation/IssuedStockInfo.vue new file mode 100644 index 0000000000000000000000000000000000000000..97930ac69ee84c1522e5eefbdc67730751942e08 --- /dev/null +++ b/src/components/customer-information/business-information/StockInformation/IssuedStockInfo.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/src/components/customer-information/business-information/annual-report/ShareholdingChangeInformation.vue b/src/components/customer-information/business-information/annual-report/ShareholdingChangeInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..b2089c44b6cc1ab48f1e400e46222450accc38b0 --- /dev/null +++ b/src/components/customer-information/business-information/annual-report/ShareholdingChangeInformation.vue @@ -0,0 +1,42 @@ + + + + + diff --git a/src/components/customer-information/business-information/annual-report/SocialInsuranceInformation.vue b/src/components/customer-information/business-information/annual-report/SocialInsuranceInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..3b7bf4344bfe6cf6c6b08a315c3587e079c9ee16 --- /dev/null +++ b/src/components/customer-information/business-information/annual-report/SocialInsuranceInformation.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/src/components/customer-information/business-information/annual-report/WebsiteInformation.vue b/src/components/customer-information/business-information/annual-report/WebsiteInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..82206825bcf5679fd8d3a481f76c6ca3c324c124 --- /dev/null +++ b/src/components/customer-information/business-information/annual-report/WebsiteInformation.vue @@ -0,0 +1,33 @@ + + + + + diff --git a/src/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/BasicInformation.vue b/src/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/BasicInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..316939dfa169887f08161c708dc4041aa27a055f --- /dev/null +++ b/src/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/BasicInformation.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/src/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/ChangeInformation.vue b/src/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/ChangeInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..7cc51e1cc9356b8172a580727acc5613dafea9df --- /dev/null +++ b/src/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/ChangeInformation.vue @@ -0,0 +1,42 @@ + + + + + diff --git a/src/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/FreezeHistory.vue b/src/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/FreezeHistory.vue new file mode 100644 index 0000000000000000000000000000000000000000..67ae842da72375dcc6d204233ce0155fa6b36c4a --- /dev/null +++ b/src/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/FreezeHistory.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/src/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/HistoryInformation.vue b/src/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/HistoryInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..783c25a7b9bf55c7e138346502bcc0e65bd91856 --- /dev/null +++ b/src/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/HistoryInformation.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/src/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/MortgageInformation.vue b/src/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/MortgageInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..2a7dc8fbf99ef2c2ddbf07384a3726dff0ce723d --- /dev/null +++ b/src/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/MortgageInformation.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/src/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/RegistrationInformation.vue b/src/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/RegistrationInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..4a7651a6798c738c638bc013fa1e598744c857e4 --- /dev/null +++ b/src/components/customer-information/business-information/equity-pledge-and-movable-property-pledge/RegistrationInformation.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/src/components/customer-information/business-information/overview/BasicInformation.vue b/src/components/customer-information/business-information/overview/BasicInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..94841d74227aa31316858fde7b7684abf9dd5caf --- /dev/null +++ b/src/components/customer-information/business-information/overview/BasicInformation.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/src/components/customer-information/business-information/risk-information/BusinessRisk.vue b/src/components/customer-information/business-information/risk-information/BusinessRisk.vue new file mode 100644 index 0000000000000000000000000000000000000000..f8b8c67f00a7b65160d57d3d92c7776c81895792 --- /dev/null +++ b/src/components/customer-information/business-information/risk-information/BusinessRisk.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/src/components/customer-information/business-information/risk-information/LiquidationInformation.vue b/src/components/customer-information/business-information/risk-information/LiquidationInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..5cccd8dc375bb1ad9dfe07880846352a6f48cb9e --- /dev/null +++ b/src/components/customer-information/business-information/risk-information/LiquidationInformation.vue @@ -0,0 +1,42 @@ + + + + + diff --git a/src/components/customer-information/business-information/risk-information/PunishmentInformation.vue b/src/components/customer-information/business-information/risk-information/PunishmentInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..6054b39c4ce11ee1bea45554ba681ded4f122ded --- /dev/null +++ b/src/components/customer-information/business-information/risk-information/PunishmentInformation.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/src/components/customer-information/family-financial-information/ApplicationInformation.vue b/src/components/customer-information/family-financial-information/ApplicationInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..9d29d796de803300807f9278ae19644f53aa2bb2 --- /dev/null +++ b/src/components/customer-information/family-financial-information/ApplicationInformation.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/components/customer-information/family-financial-information/BasicInformation.vue b/src/components/customer-information/family-financial-information/BasicInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..be37c4bfbb30c012e909024d30a5aba8306bd636 --- /dev/null +++ b/src/components/customer-information/family-financial-information/BasicInformation.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/components/customer-information/family-financial-information/BillingInformation.vue b/src/components/customer-information/family-financial-information/BillingInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..fcdf75cc13a3fcad819a800a956615175bf18fce --- /dev/null +++ b/src/components/customer-information/family-financial-information/BillingInformation.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/components/customer-information/family-financial-information/FamilyAssetStatus.vue b/src/components/customer-information/family-financial-information/FamilyAssetStatus.vue new file mode 100644 index 0000000000000000000000000000000000000000..7552148ca56d67dfa0661c4afa20a3e01591ad7e --- /dev/null +++ b/src/components/customer-information/family-financial-information/FamilyAssetStatus.vue @@ -0,0 +1,64 @@ + + + + + diff --git a/src/components/customer-information/family-financial-information/IncomeInformation.vue b/src/components/customer-information/family-financial-information/IncomeInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..210a6a4d978fabce7d7a96a3e1eba179d7eeacee --- /dev/null +++ b/src/components/customer-information/family-financial-information/IncomeInformation.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/src/components/customer-information/family-financial-information/LoanInformation.vue b/src/components/customer-information/family-financial-information/LoanInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..cb9754215a60eebe6c91cc608fd08fc419ae9d48 --- /dev/null +++ b/src/components/customer-information/family-financial-information/LoanInformation.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/components/customer-information/operating-risk-information/case-process/CaseFlowInformation.vue b/src/components/customer-information/operating-risk-information/case-process/CaseFlowInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..efff0ca40c6f05aca97a7f2765bbd2dacb35ae20 --- /dev/null +++ b/src/components/customer-information/operating-risk-information/case-process/CaseFlowInformation.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/src/components/customer-information/operating-risk-information/court-announcement/AnnouncementInformation.vue b/src/components/customer-information/operating-risk-information/court-announcement/AnnouncementInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..ad26d5d3d211bec621d9994e0480ab76b9683484 --- /dev/null +++ b/src/components/customer-information/operating-risk-information/court-announcement/AnnouncementInformation.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/components/customer-information/operating-risk-information/executed-person/InformationOfThePersonSubjectToExecution.vue b/src/components/customer-information/operating-risk-information/executed-person/InformationOfThePersonSubjectToExecution.vue new file mode 100644 index 0000000000000000000000000000000000000000..f07ea7c083696e3d7d0a9780e221b35944dad154 --- /dev/null +++ b/src/components/customer-information/operating-risk-information/executed-person/InformationOfThePersonSubjectToExecution.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/src/components/customer-information/operating-risk-information/executed-person/InformationOfUntrustworthyPersonSubjectToEnforcement.vue b/src/components/customer-information/operating-risk-information/executed-person/InformationOfUntrustworthyPersonSubjectToEnforcement.vue new file mode 100644 index 0000000000000000000000000000000000000000..24a0e22029007b46cbb5903fd8d04e77b52f1458 --- /dev/null +++ b/src/components/customer-information/operating-risk-information/executed-person/InformationOfUntrustworthyPersonSubjectToEnforcement.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/src/components/customer-information/operating-risk-information/exposure-table/ExposureTableInformation.vue b/src/components/customer-information/operating-risk-information/exposure-table/ExposureTableInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..3987ffe5c2d846e70b6f432416f1a42307bd8c45 --- /dev/null +++ b/src/components/customer-information/operating-risk-information/exposure-table/ExposureTableInformation.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/src/components/customer-information/operating-risk-information/judgment/JudgmentDocumentInformation.vue b/src/components/customer-information/operating-risk-information/judgment/JudgmentDocumentInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..fa6e9f5e8fe1263f7d834397fbabe6efdd17cfe8 --- /dev/null +++ b/src/components/customer-information/operating-risk-information/judgment/JudgmentDocumentInformation.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/src/components/customer-information/operating-risk-information/judicial-deduction/JudicialFrozenDeductionInformation.vue b/src/components/customer-information/operating-risk-information/judicial-deduction/JudicialFrozenDeductionInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..64acba0b02ef5501d3105f60267d7c62771cd4be --- /dev/null +++ b/src/components/customer-information/operating-risk-information/judicial-deduction/JudicialFrozenDeductionInformation.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/components/customer-information/operating-risk-information/public-opinion-information/PublicOpinionInformationContent.vue b/src/components/customer-information/operating-risk-information/public-opinion-information/PublicOpinionInformationContent.vue new file mode 100644 index 0000000000000000000000000000000000000000..246bc181b8e9288b3744577bbdd81edf815670b4 --- /dev/null +++ b/src/components/customer-information/operating-risk-information/public-opinion-information/PublicOpinionInformationContent.vue @@ -0,0 +1,31 @@ + + + + + diff --git a/src/components/customer-information/personal-profiles/BasicInformation.vue b/src/components/customer-information/personal-profiles/BasicInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..5cbb9b34f2021cd3853b2ce48f8196ab52688b3b --- /dev/null +++ b/src/components/customer-information/personal-profiles/BasicInformation.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/src/components/customer-information/personal-profiles/DetailedInformation.vue b/src/components/customer-information/personal-profiles/DetailedInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..00e0dd0df5ade7e1ec09498197eb3c2d932ad398 --- /dev/null +++ b/src/components/customer-information/personal-profiles/DetailedInformation.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/components/general/AnchorNav.vue b/src/components/general/AnchorNav.vue new file mode 100644 index 0000000000000000000000000000000000000000..aea83dbc7d2b555a1b90335876320607d66a0309 --- /dev/null +++ b/src/components/general/AnchorNav.vue @@ -0,0 +1,106 @@ + + + + + diff --git a/src/components/general/BaseList.vue b/src/components/general/BaseList.vue new file mode 100644 index 0000000000000000000000000000000000000000..3844d3f84b4b98acb970d5ad323d00341b7cd0e8 --- /dev/null +++ b/src/components/general/BaseList.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/src/components/general/BasePopup.vue b/src/components/general/BasePopup.vue new file mode 100644 index 0000000000000000000000000000000000000000..bd1af9275df0b7ac0cdeaf42d19f0b0d0a77210a --- /dev/null +++ b/src/components/general/BasePopup.vue @@ -0,0 +1,94 @@ + + + + diff --git a/src/components/general/ScrollerView.vue b/src/components/general/ScrollerView.vue new file mode 100644 index 0000000000000000000000000000000000000000..b4fd832ee26b1f6d70d2e9a44b396d90998c7e56 --- /dev/null +++ b/src/components/general/ScrollerView.vue @@ -0,0 +1,211 @@ + + + + + diff --git a/src/components/general/SubTitle.vue b/src/components/general/SubTitle.vue new file mode 100644 index 0000000000000000000000000000000000000000..d5fadb75c0b6a956577c98d6e5ba77450c076f5d --- /dev/null +++ b/src/components/general/SubTitle.vue @@ -0,0 +1,42 @@ + + + + + diff --git a/src/components/general/TabNav.vue b/src/components/general/TabNav.vue new file mode 100644 index 0000000000000000000000000000000000000000..6306b98da3a306b183a0563caef0e8079d93b012 --- /dev/null +++ b/src/components/general/TabNav.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/components/general/TitleBar.vue b/src/components/general/TitleBar.vue new file mode 100644 index 0000000000000000000000000000000000000000..86a45fbded5e22e3c0ef05fe344222212e11ce57 --- /dev/null +++ b/src/components/general/TitleBar.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/src/components/general/TreeGraphCmp.vue b/src/components/general/TreeGraphCmp.vue new file mode 100644 index 0000000000000000000000000000000000000000..933cf4a9de627077880187f0d8b18358c32e269a --- /dev/null +++ b/src/components/general/TreeGraphCmp.vue @@ -0,0 +1,284 @@ + + + + + diff --git a/src/components/general/form/DCalendar.vue b/src/components/general/form/DCalendar.vue new file mode 100644 index 0000000000000000000000000000000000000000..55cd472888bbd664d419939a08193961a27cbf33 --- /dev/null +++ b/src/components/general/form/DCalendar.vue @@ -0,0 +1,47 @@ + + + + diff --git a/src/components/general/form/DDatetimePicker.vue b/src/components/general/form/DDatetimePicker.vue new file mode 100644 index 0000000000000000000000000000000000000000..ab68b8c72ad980880e8eb218786fadc474783525 --- /dev/null +++ b/src/components/general/form/DDatetimePicker.vue @@ -0,0 +1,92 @@ + + + + diff --git a/src/components/general/form/DSelect.vue b/src/components/general/form/DSelect.vue new file mode 100644 index 0000000000000000000000000000000000000000..4fa92a9814151c3eaa2e12c7f7282c110f358936 --- /dev/null +++ b/src/components/general/form/DSelect.vue @@ -0,0 +1,181 @@ + + + + + diff --git a/src/components/general/form/MobileInput.vue b/src/components/general/form/MobileInput.vue new file mode 100644 index 0000000000000000000000000000000000000000..58445deb250d94734a69aaaaf395386e6327feb5 --- /dev/null +++ b/src/components/general/form/MobileInput.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/src/components/workbench/SME-common-functions/SMEMarketingDetail.vue b/src/components/workbench/SME-common-functions/SMEMarketingDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..8f1a10ba5e852319f20e419d7dd1be7c87250ce1 --- /dev/null +++ b/src/components/workbench/SME-common-functions/SMEMarketingDetail.vue @@ -0,0 +1,473 @@ + + + + diff --git a/src/components/workbench/SME-common-functions/SMEMarketingPool.vue b/src/components/workbench/SME-common-functions/SMEMarketingPool.vue new file mode 100644 index 0000000000000000000000000000000000000000..0fe4e00dd5ff41da8c6575505899eb556064cff9 --- /dev/null +++ b/src/components/workbench/SME-common-functions/SMEMarketingPool.vue @@ -0,0 +1,429 @@ + + + + + diff --git a/src/components/workbench/company-common-functions/auxiliary-tools/Calculate.vue b/src/components/workbench/company-common-functions/auxiliary-tools/Calculate.vue new file mode 100644 index 0000000000000000000000000000000000000000..4aebf7895ca7498e3f0bb8041869436bd6785c78 --- /dev/null +++ b/src/components/workbench/company-common-functions/auxiliary-tools/Calculate.vue @@ -0,0 +1,198 @@ + + + + + diff --git a/src/components/workbench/company-common-functions/auxiliary-tools/FinancialTrial.vue b/src/components/workbench/company-common-functions/auxiliary-tools/FinancialTrial.vue new file mode 100644 index 0000000000000000000000000000000000000000..7aa9358aca0be9dc21483ff286934ebed70a0c53 --- /dev/null +++ b/src/components/workbench/company-common-functions/auxiliary-tools/FinancialTrial.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/src/components/workbench/company-common-functions/auxiliary-tools/InterestPricing.vue b/src/components/workbench/company-common-functions/auxiliary-tools/InterestPricing.vue new file mode 100644 index 0000000000000000000000000000000000000000..a620f10d189ba6a81a2df746758452f6e0072abb --- /dev/null +++ b/src/components/workbench/company-common-functions/auxiliary-tools/InterestPricing.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/components/workbench/company-common-functions/auxiliary-tools/LoanCalculation.vue b/src/components/workbench/company-common-functions/auxiliary-tools/LoanCalculation.vue new file mode 100644 index 0000000000000000000000000000000000000000..5ee516aaeb6a130620ab23945657f7dc2abfac7d --- /dev/null +++ b/src/components/workbench/company-common-functions/auxiliary-tools/LoanCalculation.vue @@ -0,0 +1,345 @@ + + + + + diff --git a/src/components/workbench/company-common-functions/auxiliary-tools/RepaymentTrial.vue b/src/components/workbench/company-common-functions/auxiliary-tools/RepaymentTrial.vue new file mode 100644 index 0000000000000000000000000000000000000000..f32bbbd8b1039d1bd93ab3ed55abd8f0791e73b8 --- /dev/null +++ b/src/components/workbench/company-common-functions/auxiliary-tools/RepaymentTrial.vue @@ -0,0 +1,375 @@ + + + + + diff --git a/src/components/workbench/company-common-functions/auxiliary-tools/financial-trial/ManufacturingTrial.vue b/src/components/workbench/company-common-functions/auxiliary-tools/financial-trial/ManufacturingTrial.vue new file mode 100644 index 0000000000000000000000000000000000000000..f2a04e8bbf45a468fcee53d25f2aa678eb8c05d1 --- /dev/null +++ b/src/components/workbench/company-common-functions/auxiliary-tools/financial-trial/ManufacturingTrial.vue @@ -0,0 +1,261 @@ + + + + + diff --git a/src/components/workbench/company-common-functions/auxiliary-tools/financial-trial/UnManufacturingTrial.vue b/src/components/workbench/company-common-functions/auxiliary-tools/financial-trial/UnManufacturingTrial.vue new file mode 100644 index 0000000000000000000000000000000000000000..306d380d294887ec987ea3ac9debf4590ec4fe1f --- /dev/null +++ b/src/components/workbench/company-common-functions/auxiliary-tools/financial-trial/UnManufacturingTrial.vue @@ -0,0 +1,261 @@ + + + + + diff --git a/src/components/workbench/company-common-functions/business-inquiry/ContractSigningAndBilling.vue b/src/components/workbench/company-common-functions/business-inquiry/ContractSigningAndBilling.vue new file mode 100644 index 0000000000000000000000000000000000000000..e0c7ca431d50b8e72d6bc4ce08e8340d65dd0ac0 --- /dev/null +++ b/src/components/workbench/company-common-functions/business-inquiry/ContractSigningAndBilling.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/src/components/workbench/company-common-functions/business-inquiry/LoanApplication.vue b/src/components/workbench/company-common-functions/business-inquiry/LoanApplication.vue new file mode 100644 index 0000000000000000000000000000000000000000..31abcc83cf24dca9b4f8f510d9b4a4498b1017b7 --- /dev/null +++ b/src/components/workbench/company-common-functions/business-inquiry/LoanApplication.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/src/components/workbench/company-common-functions/business-inquiry/MarketingTask.vue b/src/components/workbench/company-common-functions/business-inquiry/MarketingTask.vue new file mode 100644 index 0000000000000000000000000000000000000000..a3e6f7825615d2d97ee3824150be32c64976d823 --- /dev/null +++ b/src/components/workbench/company-common-functions/business-inquiry/MarketingTask.vue @@ -0,0 +1,248 @@ + + + + + diff --git a/src/components/workbench/company-common-functions/business-inquiry/PeriodicInspection.vue b/src/components/workbench/company-common-functions/business-inquiry/PeriodicInspection.vue new file mode 100644 index 0000000000000000000000000000000000000000..414331df36b5455de249f7422711c26733624752 --- /dev/null +++ b/src/components/workbench/company-common-functions/business-inquiry/PeriodicInspection.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/src/components/workbench/company-common-functions/business-inquiry/ProcessQuery.vue b/src/components/workbench/company-common-functions/business-inquiry/ProcessQuery.vue new file mode 100644 index 0000000000000000000000000000000000000000..cb3b157409f3609d937166c5e80a90e76918fae7 --- /dev/null +++ b/src/components/workbench/company-common-functions/business-inquiry/ProcessQuery.vue @@ -0,0 +1,437 @@ + + + + diff --git a/src/components/workbench/company-common-functions/business-inquiry/RiskWarning.vue b/src/components/workbench/company-common-functions/business-inquiry/RiskWarning.vue new file mode 100644 index 0000000000000000000000000000000000000000..58cc04d19cd800d489dbdce9197af129646d2f5a --- /dev/null +++ b/src/components/workbench/company-common-functions/business-inquiry/RiskWarning.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/src/components/workbench/company-common-functions/online-enquiry/AllOutlets.vue b/src/components/workbench/company-common-functions/online-enquiry/AllOutlets.vue new file mode 100644 index 0000000000000000000000000000000000000000..42da4b7dfdca01c70cd7c999f79dde5a72ac482f --- /dev/null +++ b/src/components/workbench/company-common-functions/online-enquiry/AllOutlets.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/src/components/workbench/company-common-functions/online-enquiry/Area.vue b/src/components/workbench/company-common-functions/online-enquiry/Area.vue new file mode 100644 index 0000000000000000000000000000000000000000..dc5575fdeb6af7e5a0763dd150ed055e19cf537e --- /dev/null +++ b/src/components/workbench/company-common-functions/online-enquiry/Area.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/src/components/workbench/company-common-functions/online-enquiry/Nearby.vue b/src/components/workbench/company-common-functions/online-enquiry/Nearby.vue new file mode 100644 index 0000000000000000000000000000000000000000..28930fa2150e035c45145fe50f3e8a282752a755 --- /dev/null +++ b/src/components/workbench/company-common-functions/online-enquiry/Nearby.vue @@ -0,0 +1,94 @@ + + + + + diff --git a/src/components/workbench/personal-common-functions/agency-task/AfterLoan.vue b/src/components/workbench/personal-common-functions/agency-task/AfterLoan.vue new file mode 100644 index 0000000000000000000000000000000000000000..a1c65c0a78cca2a0af25c089ff858948291f427f --- /dev/null +++ b/src/components/workbench/personal-common-functions/agency-task/AfterLoan.vue @@ -0,0 +1,980 @@ + + + + + diff --git a/src/components/workbench/personal-common-functions/agency-task/CollectionManagement.vue b/src/components/workbench/personal-common-functions/agency-task/CollectionManagement.vue new file mode 100644 index 0000000000000000000000000000000000000000..8d50e4afbb1c7b51a95da88e34c6537b07d4cba5 --- /dev/null +++ b/src/components/workbench/personal-common-functions/agency-task/CollectionManagement.vue @@ -0,0 +1,366 @@ + + + + + diff --git a/src/components/workbench/personal-common-functions/agency-task/PerMarketing.vue b/src/components/workbench/personal-common-functions/agency-task/PerMarketing.vue new file mode 100644 index 0000000000000000000000000000000000000000..a3c6799534ef3a2451160cef0b0f920d961a49d2 --- /dev/null +++ b/src/components/workbench/personal-common-functions/agency-task/PerMarketing.vue @@ -0,0 +1,334 @@ + + + + + diff --git a/src/components/workbench/personal-common-functions/agency-task/telemarketing/MarketingQuery.vue b/src/components/workbench/personal-common-functions/agency-task/telemarketing/MarketingQuery.vue new file mode 100644 index 0000000000000000000000000000000000000000..50baa02030fb9390dfb0bcd0cad03d4e8e8ba904 --- /dev/null +++ b/src/components/workbench/personal-common-functions/agency-task/telemarketing/MarketingQuery.vue @@ -0,0 +1,647 @@ + + + + + diff --git a/src/components/workbench/personal-common-functions/business-inquiry/ContractSigningAndBilling.vue b/src/components/workbench/personal-common-functions/business-inquiry/ContractSigningAndBilling.vue new file mode 100644 index 0000000000000000000000000000000000000000..569b1a582babe04878470d1b938eb6a746208862 --- /dev/null +++ b/src/components/workbench/personal-common-functions/business-inquiry/ContractSigningAndBilling.vue @@ -0,0 +1,14 @@ + + + + + diff --git a/src/components/workbench/personal-common-functions/business-inquiry/LoanApplication.vue b/src/components/workbench/personal-common-functions/business-inquiry/LoanApplication.vue new file mode 100644 index 0000000000000000000000000000000000000000..1ca315a856ba9e6faeeac941291672981f652ca1 --- /dev/null +++ b/src/components/workbench/personal-common-functions/business-inquiry/LoanApplication.vue @@ -0,0 +1,14 @@ + + + + + diff --git a/src/components/workbench/personal-common-functions/business-inquiry/MarketingTask.vue b/src/components/workbench/personal-common-functions/business-inquiry/MarketingTask.vue new file mode 100644 index 0000000000000000000000000000000000000000..006c3e173212cd1b25ef271714d8f7344715c4e0 --- /dev/null +++ b/src/components/workbench/personal-common-functions/business-inquiry/MarketingTask.vue @@ -0,0 +1,220 @@ + + + + + diff --git a/src/components/workbench/personal-common-functions/business-inquiry/PeriodicInspection.vue b/src/components/workbench/personal-common-functions/business-inquiry/PeriodicInspection.vue new file mode 100644 index 0000000000000000000000000000000000000000..40904157b21faf964c92e3195879f64dc77d7ef2 --- /dev/null +++ b/src/components/workbench/personal-common-functions/business-inquiry/PeriodicInspection.vue @@ -0,0 +1,14 @@ + + + + + diff --git a/src/components/workbench/personal-common-functions/business-inquiry/RiskWarning.vue b/src/components/workbench/personal-common-functions/business-inquiry/RiskWarning.vue new file mode 100644 index 0000000000000000000000000000000000000000..7a83b872a48847dae39cd152119bfe2039c36207 --- /dev/null +++ b/src/components/workbench/personal-common-functions/business-inquiry/RiskWarning.vue @@ -0,0 +1,14 @@ + + + + + diff --git a/src/components/workbench/products-recommended/DepositProducts.vue b/src/components/workbench/products-recommended/DepositProducts.vue new file mode 100644 index 0000000000000000000000000000000000000000..11f859d6687aaef838f11cff6527e43315188fb7 --- /dev/null +++ b/src/components/workbench/products-recommended/DepositProducts.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/src/components/workbench/products-recommended/FinancialProducts.vue b/src/components/workbench/products-recommended/FinancialProducts.vue new file mode 100644 index 0000000000000000000000000000000000000000..2fda5c202109744a513c2d476250a0040dbf7e9c --- /dev/null +++ b/src/components/workbench/products-recommended/FinancialProducts.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/src/components/workbench/products-recommended/LoanProducts.vue b/src/components/workbench/products-recommended/LoanProducts.vue new file mode 100644 index 0000000000000000000000000000000000000000..4512dd16922497c2bf52f64c0c3d21d8fd5efa08 --- /dev/null +++ b/src/components/workbench/products-recommended/LoanProducts.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/src/components/workbench/upcoming-tasks-content/company-business/Information.vue b/src/components/workbench/upcoming-tasks-content/company-business/Information.vue new file mode 100644 index 0000000000000000000000000000000000000000..27cd3d006223b5dafb2e723166d5ef54c5718a8a --- /dev/null +++ b/src/components/workbench/upcoming-tasks-content/company-business/Information.vue @@ -0,0 +1,85 @@ + + + + diff --git a/src/components/workbench/upcoming-tasks-content/company-business/Schedule.vue b/src/components/workbench/upcoming-tasks-content/company-business/Schedule.vue new file mode 100644 index 0000000000000000000000000000000000000000..030f8c3c547d2a8fe77e54037de90b102a7962fb --- /dev/null +++ b/src/components/workbench/upcoming-tasks-content/company-business/Schedule.vue @@ -0,0 +1,63 @@ + + + + diff --git a/src/components/workbench/upcoming-tasks-content/company-business/Upcoming.vue b/src/components/workbench/upcoming-tasks-content/company-business/Upcoming.vue new file mode 100644 index 0000000000000000000000000000000000000000..754d4c56814a6be93f9fa3e665a2098c9c30a4c0 --- /dev/null +++ b/src/components/workbench/upcoming-tasks-content/company-business/Upcoming.vue @@ -0,0 +1,171 @@ + + + + diff --git a/src/components/workbench/upcoming-tasks-content/company-business/upcoming/ComMarketingView.vue b/src/components/workbench/upcoming-tasks-content/company-business/upcoming/ComMarketingView.vue new file mode 100644 index 0000000000000000000000000000000000000000..c24018e6a8462717c59e9cc446b38973bcca1e68 --- /dev/null +++ b/src/components/workbench/upcoming-tasks-content/company-business/upcoming/ComMarketingView.vue @@ -0,0 +1,450 @@ + + + + + diff --git a/src/components/workbench/upcoming-tasks-content/company-business/upcoming/UpcomingMarketingTask.vue b/src/components/workbench/upcoming-tasks-content/company-business/upcoming/UpcomingMarketingTask.vue new file mode 100644 index 0000000000000000000000000000000000000000..4c9b8345670ae17cd19cfec1816bc1c4be66dc6c --- /dev/null +++ b/src/components/workbench/upcoming-tasks-content/company-business/upcoming/UpcomingMarketingTask.vue @@ -0,0 +1,220 @@ + + + + + diff --git a/src/components/workbench/upcoming-tasks-content/company-business/upcoming/UpcomingPeriodicInspection.vue b/src/components/workbench/upcoming-tasks-content/company-business/upcoming/UpcomingPeriodicInspection.vue new file mode 100644 index 0000000000000000000000000000000000000000..d883457fe99c4c4e2f19b784d2bb01052e0755db --- /dev/null +++ b/src/components/workbench/upcoming-tasks-content/company-business/upcoming/UpcomingPeriodicInspection.vue @@ -0,0 +1,652 @@ + + + + + +s diff --git a/src/components/workbench/upcoming-tasks-content/company-business/upcoming/UpcomingRiskWarning.vue b/src/components/workbench/upcoming-tasks-content/company-business/upcoming/UpcomingRiskWarning.vue new file mode 100644 index 0000000000000000000000000000000000000000..a53b33233975531493c12416564354fae1f79fae --- /dev/null +++ b/src/components/workbench/upcoming-tasks-content/company-business/upcoming/UpcomingRiskWarning.vue @@ -0,0 +1,693 @@ + + + + + diff --git a/src/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/CreditStatus.vue b/src/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/CreditStatus.vue new file mode 100644 index 0000000000000000000000000000000000000000..e9c1d6663bee3fa3a23eea8a26b97fe617970816 --- /dev/null +++ b/src/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/CreditStatus.vue @@ -0,0 +1,268 @@ + + + + + diff --git a/src/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/FinancialStatus.vue b/src/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/FinancialStatus.vue new file mode 100644 index 0000000000000000000000000000000000000000..c3352fb2c3520808f57ad3111d8ec958ee0d4f64 --- /dev/null +++ b/src/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/FinancialStatus.vue @@ -0,0 +1,157 @@ + + + + + diff --git a/src/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/GuarantorStatus.vue b/src/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/GuarantorStatus.vue new file mode 100644 index 0000000000000000000000000000000000000000..2a23750f3890535cde03c96527c7e340f88a942b --- /dev/null +++ b/src/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/GuarantorStatus.vue @@ -0,0 +1,257 @@ + + + + diff --git a/src/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/MortgageInvestigation.vue b/src/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/MortgageInvestigation.vue new file mode 100644 index 0000000000000000000000000000000000000000..e9fe39e30fe9ea461a4e48d5a7e1e9e3612fc716 --- /dev/null +++ b/src/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/MortgageInvestigation.vue @@ -0,0 +1,221 @@ + + + + + diff --git a/src/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/Others.vue b/src/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/Others.vue new file mode 100644 index 0000000000000000000000000000000000000000..be4a4d07f80a9c39879a976e162020d1b489f822 --- /dev/null +++ b/src/components/workbench/upcoming-tasks-content/company-business/upcoming/upcoming-tasks-periodic-inspection/Others.vue @@ -0,0 +1,133 @@ + + + + + diff --git a/src/components/workbench/upcoming-tasks-content/personal-business/PersonalUpcoming.vue b/src/components/workbench/upcoming-tasks-content/personal-business/PersonalUpcoming.vue new file mode 100644 index 0000000000000000000000000000000000000000..9c0cc9d22bff53826bc37878d4d782863516bfdf --- /dev/null +++ b/src/components/workbench/upcoming-tasks-content/personal-business/PersonalUpcoming.vue @@ -0,0 +1,168 @@ + + + + diff --git a/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/FaceSignListView.vue b/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/FaceSignListView.vue new file mode 100644 index 0000000000000000000000000000000000000000..c98432755e97e2b2f65744f6c3f4dd85f3cc5bec --- /dev/null +++ b/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/FaceSignListView.vue @@ -0,0 +1,465 @@ + + + + + diff --git a/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/FaceSignReviewListView.vue b/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/FaceSignReviewListView.vue new file mode 100644 index 0000000000000000000000000000000000000000..b1b637e492768f10b2ba0d27d4e95ce3c97f3644 --- /dev/null +++ b/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/FaceSignReviewListView.vue @@ -0,0 +1,415 @@ + + + + + diff --git a/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/UpcomingMarketingTask.vue b/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/UpcomingMarketingTask.vue new file mode 100644 index 0000000000000000000000000000000000000000..65bae66d58445503193c0f57555f4acfcd3f8592 --- /dev/null +++ b/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/UpcomingMarketingTask.vue @@ -0,0 +1,199 @@ + + + + + diff --git a/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/UpcomingPeriodicInspection.vue b/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/UpcomingPeriodicInspection.vue new file mode 100644 index 0000000000000000000000000000000000000000..3ef721cf07d3defc6bc7ae3231629f30d5c30430 --- /dev/null +++ b/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/UpcomingPeriodicInspection.vue @@ -0,0 +1,122 @@ + + + + + diff --git a/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/UpcomingRiskWarning.vue b/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/UpcomingRiskWarning.vue new file mode 100644 index 0000000000000000000000000000000000000000..cc22fa55bea81d0db49e000a3ee363d3887123ec --- /dev/null +++ b/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/UpcomingRiskWarning.vue @@ -0,0 +1,138 @@ + + + + + diff --git a/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/CreditStatus.vue b/src/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/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/CreditStatus.vue @@ -0,0 +1,264 @@ + + + + + diff --git a/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/FinancialStatus.vue b/src/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/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/FinancialStatus.vue @@ -0,0 +1,153 @@ + + + + + diff --git a/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/GuarantorStatus.vue b/src/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/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/GuarantorStatus.vue @@ -0,0 +1,253 @@ + + + + diff --git a/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/MortgageInvestigation.vue b/src/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/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/MortgageInvestigation.vue @@ -0,0 +1,217 @@ + + + + + diff --git a/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/Others.vue b/src/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/src/components/workbench/upcoming-tasks-content/personal-business/personal-upcoming/upcoming-tasks-periodic-inspection/Others.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/src/components/workbench/upcoming-tasks-content/upcoming/marketing-task/BusinessMarketing.vue b/src/components/workbench/upcoming-tasks-content/upcoming/marketing-task/BusinessMarketing.vue new file mode 100644 index 0000000000000000000000000000000000000000..57dbbea96a07c801ecae77436ffff011e78f4045 --- /dev/null +++ b/src/components/workbench/upcoming-tasks-content/upcoming/marketing-task/BusinessMarketing.vue @@ -0,0 +1,394 @@ + + + + diff --git a/src/components/workbench/upcoming-tasks-content/upcoming/marketing-task/CustomerVisit.vue b/src/components/workbench/upcoming-tasks-content/upcoming/marketing-task/CustomerVisit.vue new file mode 100644 index 0000000000000000000000000000000000000000..e20a86c2cd642deb545e68acf46ca04fd0b0ec9d --- /dev/null +++ b/src/components/workbench/upcoming-tasks-content/upcoming/marketing-task/CustomerVisit.vue @@ -0,0 +1,431 @@ + + + + diff --git a/src/components/workbench/upcoming-tasks-content/upcoming/marketing-task/InformationPattern.vue b/src/components/workbench/upcoming-tasks-content/upcoming/marketing-task/InformationPattern.vue new file mode 100644 index 0000000000000000000000000000000000000000..a6372843df19dd3eb0aedf4460865d8a007a10d1 --- /dev/null +++ b/src/components/workbench/upcoming-tasks-content/upcoming/marketing-task/InformationPattern.vue @@ -0,0 +1,186 @@ + + + + diff --git a/src/components/workbench/upcoming-tasks-content/upcoming/marketing-task/MarketingSpecial.vue b/src/components/workbench/upcoming-tasks-content/upcoming/marketing-task/MarketingSpecial.vue new file mode 100644 index 0000000000000000000000000000000000000000..8b559e7af68f72ac2d08bf9761d3b6f7eb920d1b --- /dev/null +++ b/src/components/workbench/upcoming-tasks-content/upcoming/marketing-task/MarketingSpecial.vue @@ -0,0 +1,410 @@ + + + + diff --git a/src/constants/api/custom/cust-mgt.api.ts b/src/constants/api/custom/cust-mgt.api.ts new file mode 100644 index 0000000000000000000000000000000000000000..7122d640e7fbd98178b92e9cd40f351ae596114d --- /dev/null +++ b/src/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/src/constants/api/ms-application/application.api.ts b/src/constants/api/ms-application/application.api.ts new file mode 100644 index 0000000000000000000000000000000000000000..ffa3979fc36953b1df251f841f16a3798ef8a816 --- /dev/null +++ b/src/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/src/constants/api/ms-netty/netty.api.ts b/src/constants/api/ms-netty/netty.api.ts new file mode 100644 index 0000000000000000000000000000000000000000..72b82de19a16dc236b9a34fc738fb5efbacdd0c4 --- /dev/null +++ b/src/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/src/constants/api/ms-system/sys-dict.api.ts b/src/constants/api/ms-system/sys-dict.api.ts new file mode 100644 index 0000000000000000000000000000000000000000..eacd6692bfc2421bd412e69cea23b672d8247977 --- /dev/null +++ b/src/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/src/constants/api/ms-system/system.api.ts b/src/constants/api/ms-system/system.api.ts new file mode 100644 index 0000000000000000000000000000000000000000..9431616be5bd0b23aff7e51b03de0fb191c1cde2 --- /dev/null +++ b/src/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/src/constants/config/base.config.ts b/src/constants/config/base.config.ts new file mode 100644 index 0000000000000000000000000000000000000000..338ef69d4e46eeb28c4e2bc559bdf70f074e9ecf --- /dev/null +++ b/src/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/src/constants/config/graphical-code.config.ts b/src/constants/config/graphical-code.config.ts new file mode 100644 index 0000000000000000000000000000000000000000..8fd614ec03ebb8d891627a6e47507eb1a492931e --- /dev/null +++ b/src/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/src/constants/config/storage.config.ts b/src/constants/config/storage.config.ts new file mode 100644 index 0000000000000000000000000000000000000000..ca2f06fda8dbe9c97ba09ea5f36a76fb5752bddc --- /dev/null +++ b/src/constants/config/storage.config.ts @@ -0,0 +1,2 @@ +const defaultCacheOptions = { namespace: "system:", name: "ls", storage: "local" }; +export { defaultCacheOptions }; diff --git a/src/constants/enum/business/sex.enum.ts b/src/constants/enum/business/sex.enum.ts new file mode 100644 index 0000000000000000000000000000000000000000..c0d60b34d62712a1feb5d327cbb644d2cf93e226 --- /dev/null +++ b/src/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/src/constants/enum/business/use-state.enum.ts b/src/constants/enum/business/use-state.enum.ts new file mode 100644 index 0000000000000000000000000000000000000000..356e0b4863c2faf96d2f923809cd7d25005aae57 --- /dev/null +++ b/src/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/src/constants/enum/enum.service.ts b/src/constants/enum/enum.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..a5dd5238d80ca68acf62cd6ef9c9af751834c34c --- /dev/null +++ b/src/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/src/constants/enum/general/code.enum.ts b/src/constants/enum/general/code.enum.ts new file mode 100644 index 0000000000000000000000000000000000000000..6bf48b6218149bff7bab7c28addb4f8706ef63d4 --- /dev/null +++ b/src/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/src/constants/enum/general/enable-type.enum.ts b/src/constants/enum/general/enable-type.enum.ts new file mode 100644 index 0000000000000000000000000000000000000000..7a0fece19f646e3e5899be19246257bca45eb580 --- /dev/null +++ b/src/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/src/constants/enum/general/header-type.enum.ts b/src/constants/enum/general/header-type.enum.ts new file mode 100644 index 0000000000000000000000000000000000000000..8f4dd8815a8c3d4369a9e3539404897eef612730 --- /dev/null +++ b/src/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/src/constants/enum/general/menu-type.enum.ts b/src/constants/enum/general/menu-type.enum.ts new file mode 100644 index 0000000000000000000000000000000000000000..e9307a195223e109027b55ded1a47b2f52af571b --- /dev/null +++ b/src/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/src/constants/enum/general/method-type.enum.ts b/src/constants/enum/general/method-type.enum.ts new file mode 100644 index 0000000000000000000000000000000000000000..4e828f1806b1a2af5f1ec44db04b9a53077d14be --- /dev/null +++ b/src/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/src/constants/enum/general/status-code.enum.ts b/src/constants/enum/general/status-code.enum.ts new file mode 100644 index 0000000000000000000000000000000000000000..a9a49ac245789e87681fa36805e19227e5c98b48 --- /dev/null +++ b/src/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/src/constants/enum/menu.enum.js b/src/constants/enum/menu.enum.js new file mode 100644 index 0000000000000000000000000000000000000000..77ca4fc9c5982bf93da06fd3153d94dafded834b --- /dev/null +++ b/src/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/src/constants/enum/menu.enum.ts b/src/constants/enum/menu.enum.ts new file mode 100644 index 0000000000000000000000000000000000000000..3b9438535358bf0c635f370f74b4ad3b88c3e109 --- /dev/null +++ b/src/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/src/constants/types/property.d.ts b/src/constants/types/property.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..83cc7043ac0f38086227dff1c043499aa972ec15 --- /dev/null +++ b/src/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/src/constants/types/zhCN.d.ts b/src/constants/types/zhCN.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..14cf7e5a022999e2d07eef74e54df145ffd13f0f --- /dev/null +++ b/src/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/src/directives/caclate.height.directive.ts b/src/directives/caclate.height.directive.ts new file mode 100644 index 0000000000000000000000000000000000000000..290342ec6e8f2aeac81849e4132036ca0ef740db --- /dev/null +++ b/src/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/src/directives/directive.service.ts b/src/directives/directive.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..04e2f4c64fa6df6c736072531245c7af9e7e95ae --- /dev/null +++ b/src/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/src/filtres/certificate-num-tailor.filter.ts b/src/filtres/certificate-num-tailor.filter.ts new file mode 100644 index 0000000000000000000000000000000000000000..f162329272a36efe2c710a8219d681d303cc30e1 --- /dev/null +++ b/src/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/src/filtres/customer-dict-conversion.filter.ts b/src/filtres/customer-dict-conversion.filter.ts new file mode 100644 index 0000000000000000000000000000000000000000..2464587b1bfa12b00cb37440310ee69127025a4e --- /dev/null +++ b/src/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/src/filtres/duration.filter.ts b/src/filtres/duration.filter.ts new file mode 100644 index 0000000000000000000000000000000000000000..e1df600003e1f9dadb5aebaed7c8871b9b670742 --- /dev/null +++ b/src/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/src/filtres/filter.service.ts b/src/filtres/filter.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..33de4f7c1ac3a512775ab71947dbcd9517ccb6ff --- /dev/null +++ b/src/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/src/filtres/format-file-size.filter.ts b/src/filtres/format-file-size.filter.ts new file mode 100644 index 0000000000000000000000000000000000000000..3147e43630d3e37ba377bfb0770df34744c3af59 --- /dev/null +++ b/src/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/src/filtres/math.filter.ts b/src/filtres/math.filter.ts new file mode 100644 index 0000000000000000000000000000000000000000..7475db1423ec0373e68e89dde9ab302cbc9f8ef4 --- /dev/null +++ b/src/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/src/filtres/serialize-date-format.filter.ts b/src/filtres/serialize-date-format.filter.ts new file mode 100644 index 0000000000000000000000000000000000000000..7cda37feb24d0ba53ba33626f5e652439f516aed --- /dev/null +++ b/src/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/src/filtres/string-convert.ts b/src/filtres/string-convert.ts new file mode 100644 index 0000000000000000000000000000000000000000..74a269d85dacaeddc6ef3c97a30cf0afa4e3f493 --- /dev/null +++ b/src/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/src/filtres/switch-enum-convert.filter.ts b/src/filtres/switch-enum-convert.filter.ts new file mode 100644 index 0000000000000000000000000000000000000000..4542e876985a170c9637bb0ac1df2b7b5cc8956f --- /dev/null +++ b/src/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/src/filtres/thousand-bit-convert.filter.ts b/src/filtres/thousand-bit-convert.filter.ts new file mode 100644 index 0000000000000000000000000000000000000000..cedade914538bd3a1d34bc71cf600fdc68822fc1 --- /dev/null +++ b/src/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/src/filtres/to-upper-case.filter.ts b/src/filtres/to-upper-case.filter.ts new file mode 100644 index 0000000000000000000000000000000000000000..29acc82073fa66e7ae6fa21a5545e29d5d325b6c --- /dev/null +++ b/src/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/src/main.ts b/src/main.ts new file mode 100644 index 0000000000000000000000000000000000000000..89f36e88ed9d8c6707dc36b616c36572fc3f9952 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,57 @@ +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'; + +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/src/model/domain/RestfulResponse.ts b/src/model/domain/RestfulResponse.ts new file mode 100644 index 0000000000000000000000000000000000000000..958458335cc7129d43f936b68e0a7fafdccdd465 --- /dev/null +++ b/src/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/src/model/entity/BtnData.ts b/src/model/entity/BtnData.ts new file mode 100644 index 0000000000000000000000000000000000000000..6650838eb21707b53d4cd17092cb094d01972975 --- /dev/null +++ b/src/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/src/model/entity/MediaFile.ts b/src/model/entity/MediaFile.ts new file mode 100644 index 0000000000000000000000000000000000000000..c477e1cd85fb10a665f75b424d4203dd80e92af0 --- /dev/null +++ b/src/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/src/model/entity/NodeData.ts b/src/model/entity/NodeData.ts new file mode 100644 index 0000000000000000000000000000000000000000..7365774dab58ee01c782513728de2218847ce7b9 --- /dev/null +++ b/src/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/src/model/entity/SysUserInfo.ts b/src/model/entity/SysUserInfo.ts new file mode 100644 index 0000000000000000000000000000000000000000..7e81eb961dba32207f695ec3d830c0ed155132b1 --- /dev/null +++ b/src/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/src/model/entity/TabData.ts b/src/model/entity/TabData.ts new file mode 100644 index 0000000000000000000000000000000000000000..99e7425c350f1f57633c39f6fc1611f5dc4fd99a --- /dev/null +++ b/src/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/src/model/entity/Token.ts b/src/model/entity/Token.ts new file mode 100644 index 0000000000000000000000000000000000000000..833f4be14a86374b82c84f4dcb6ab2fd0ae50ded --- /dev/null +++ b/src/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/src/public/TableDoubleView.vue b/src/public/TableDoubleView.vue new file mode 100644 index 0000000000000000000000000000000000000000..7f57ae035343ea59d075cfc6ca068c9129e47f42 --- /dev/null +++ b/src/public/TableDoubleView.vue @@ -0,0 +1,96 @@ + + + + + + diff --git a/src/public/TableSingleView.vue b/src/public/TableSingleView.vue new file mode 100644 index 0000000000000000000000000000000000000000..099d16cda1a78d755171faf05c4b36ce6c96b4a4 --- /dev/null +++ b/src/public/TableSingleView.vue @@ -0,0 +1,73 @@ + + + + + + diff --git a/src/public/factory/InterFaceFactory.ts b/src/public/factory/InterFaceFactory.ts new file mode 100644 index 0000000000000000000000000000000000000000..2308d341de4f10558c13a8e1a172a2147bd178ca --- /dev/null +++ b/src/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/src/public/plugins/5+plugins.ts b/src/public/plugins/5+plugins.ts new file mode 100644 index 0000000000000000000000000000000000000000..0f869590876a6569cce8491b64ceaf641732f467 --- /dev/null +++ b/src/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/src/public/plugins/install/install.js b/src/public/plugins/install/install.js new file mode 100644 index 0000000000000000000000000000000000000000..100ae6da055614b97c33fd903680e4f2604fdc42 --- /dev/null +++ b/src/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/src/public/ts/NativeUI.ts b/src/public/ts/NativeUI.ts new file mode 100644 index 0000000000000000000000000000000000000000..e645cb101d3f1172c27b3f9added10d49e0ea0cb --- /dev/null +++ b/src/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/src/public/ts/Public.ts b/src/public/ts/Public.ts new file mode 100644 index 0000000000000000000000000000000000000000..270d788485de27ede1a19dc5485107af217456be --- /dev/null +++ b/src/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/src/public/ts/SMEncryt.ts b/src/public/ts/SMEncryt.ts new file mode 100644 index 0000000000000000000000000000000000000000..cff30a11a6b76c91101090020dae3ddf7bb55244 --- /dev/null +++ b/src/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/src/public/ts/date.util.ts b/src/public/ts/date.util.ts new file mode 100644 index 0000000000000000000000000000000000000000..084f5a7601101365997be95dc083e59ae317411f --- /dev/null +++ b/src/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/src/public/ts/money.util.ts b/src/public/ts/money.util.ts new file mode 100644 index 0000000000000000000000000000000000000000..9080f547d558ab154d73b8ab485921a3c6164d22 --- /dev/null +++ b/src/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/src/router/customer.mgt.routing.ts b/src/router/customer.mgt.routing.ts new file mode 100644 index 0000000000000000000000000000000000000000..f66e54e6f026ba6e8faded187ef5b517c6237e2a --- /dev/null +++ b/src/router/customer.mgt.routing.ts @@ -0,0 +1,370 @@ +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/src/router/index.ts b/src/router/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..9a5ffd029833141c55c8d6e4cd094e956a99868d --- /dev/null +++ b/src/router/index.ts @@ -0,0 +1,55 @@ +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"; +Vue.use(VueRouter); + +const routes: Array = [ + { + path: "/", + redirect: `/login`, + meta: { keepAlive: true, requiresAuth: true }, + }, + { + path: "/login", + component: () => import(/* webpackChunkName: "login" */ "@/views/authentication/LoginView.vue"), + meta: { keepAlive: true, requiresAuth: true }, + }, + ...mainRoutes, + ...customerRoutes, + ...marketingRoutes, + ...workbenchRoutes, +]; + +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/src/router/main.routing.ts b/src/router/main.routing.ts new file mode 100644 index 0000000000000000000000000000000000000000..da60b85443601b45f2fa8348d4699eb7fa356ec9 --- /dev/null +++ b/src/router/main.routing.ts @@ -0,0 +1,57 @@ +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/src/router/marketing.mgt.routing.ts b/src/router/marketing.mgt.routing.ts new file mode 100644 index 0000000000000000000000000000000000000000..a189fa74d1cdf6f30a87db331f5aa0505b9ef763 --- /dev/null +++ b/src/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/src/router/workbench.routing.ts b/src/router/workbench.routing.ts new file mode 100644 index 0000000000000000000000000000000000000000..1697fe4f51df92955cea2106ef57dd16092c3cff --- /dev/null +++ b/src/router/workbench.routing.ts @@ -0,0 +1,308 @@ +import { propsConvert } from "@/services/props-convert"; + +const prefix = "/workbench"; + +const workbenchRoutes = [ + { + path: `${prefix}/index`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/WorkbenchView.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "工作台" }, + }, + // 个人 + { + path: `${prefix}/commonly-used/personal/business-inquiry`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/personal/BusinessInquiry.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "业务查询" }, + }, + // 对公 + { + path: `${prefix}/commonly-used/company/business-inquiry`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/company/BusinessInquiry.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "业务查询" }, + }, + { + path: `/OnlineEnquiry`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/company/OnlineEnquiry.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "网点查询" }, + }, + { + path: `/AuxiliaryTools`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/company/AuxiliaryTools.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "辅助工具" }, + }, + { + path: `/RepaymentTrialDetail`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/company/RepaymentTrialDetail.vue"), + props: propsConvert, + meta: { requiresAuth: true, name: "随意分详情" }, + }, + { + path: `/LoanCalculationDetail`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/company/LoanCalculationDetail.vue"), + props: propsConvert, + meta: {requiresAuth: true, name: "贷款试算详情" }, + }, + { + path: `${prefix}/commonly-used/company/customer-inquiry`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/company/CustomerInquiry.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "客户查询" }, + }, + { + path: `/Customerinquiry`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/personal/Customerinquiry.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "客户查询" }, + }, + { + path: `/PersonSimplifyView`, + name:'PersonSimplifyView', + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/personal/PersonSimplifyView.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "客户简版信息" }, + }, + { + path: `/CustomCheck`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/personal/CustomCheck.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "客户体检" }, + }, + { + path: `/UpcomingTask`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/personal/UpcomingTask.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "待办任务" }, + }, + // + { + path: `/SMEMarketingDetail`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/SME/SMEMarketingDetail.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "中小营销详情" }, + }, + { + path: `/TelMarketingDetail`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/personal/TelMarketingDetail.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "待办详情" }, + }, + // 对公待办任务 + { + path: `/CompanyAgencyTask`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/company/CompanyAgencyTask.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "待办任务" }, + }, + { + path: `/CommonFunctions`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/personal/CommonFunctions.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "常用功能" }, + }, + { + path: `/AddContactCheckView`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/personal/AddContactCheckView.vue"), + props: propsConvert, + meta: {requiresAuth: true, name: "贷后新增" }, + }, + { + path: `/CollectionDetails`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/personal/CollectionDetails.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "催收详情" }, + }, + { + path: `/RiskWarningDetail`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/company/RiskWarningDetail.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "风险预警处理" }, + }, + { + path: `/LoanCheckDetailView`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/company/LoanCheckDetailView.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "对公贷后检查" }, + }, + { + path: `/PostLoanDetailsView`, + name: `PostLoanDetailsView`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/personal/PostLoanDetailsView.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "个贷贷后检查详情" }, + }, + { + path: `/NetPostLoanDetailsView`, + name: `NetPostLoanDetailsView`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/personal/NetPostLoanDetailsView.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "网贷贷后检查详情" }, + }, + { + path: `/CollateralDetail`, + name: `CollateralDetail`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/personal/CollateralDetail.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "抵质押物详情" }, + }, + { + path: `${prefix}/commonly-used/personal/custom-check-info`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/personal/CustomCheckInfo.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "个人客户风险检查" }, + }, + { + path: `${prefix}/commonly-used/personal/post-note`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/personal/PostNote.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "短信验证" }, + }, + { + path: `${prefix}/schedule-reminder/add-reminder`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/schedule-reminder/AddReminder.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "新增提醒" }, + }, + { + path: `${prefix}/MessageReminderView`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/message-reminder/MessageReminderView.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "消息提醒" }, + }, + { + path: `${prefix}/schedule-reminder/more`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/schedule-reminder/More.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "日程提醒" }, + }, + { + path: `/ProductsRecommended`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/products-recommended/ProductsRecommended.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "产品推介" }, + }, + { + path: `/ProductDetails`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/products-recommended/loan-products/ProductDetails.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "产品详情" }, + }, + { + path: `${prefix}/upcoming-tasks/risk-warning-handle/taskList-operate`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/upcoming-tasks/risk-warning-handle/TaskListOperate.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "风险预警处理" }, + }, + { + path: `${prefix}/upcoming-tasks/periodic-inspection/periodic-inspection-handle`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/upcoming-tasks/periodic-inspection/PeriodicInspectionHandle.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "定期检查处理" }, + }, + { + path: '/MarketingTask', + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/upcoming-tasks/marketing-task/MarketingTask.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "待办处理" }, + }, + //对公营销客户拜访 + { + path: '/ComVisitMarkDetail', + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/upcoming-tasks/marketing-task/company/ComVisitMarkDetail.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "对公营销客户拜访" }, + }, + //对公营销招商引资企业营销 + { + path: '/ComAttractMarkDetail', + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/upcoming-tasks/marketing-task/company/ComAttractMarkDetail.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "对公营销招商引资企业营销" }, + }, + //对公精准客户信息摸查任务创建 + { + path: '/ComProjectMarkDetail', + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/upcoming-tasks/marketing-task/company/ComProjectMarkDetail.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "对公精准客户信息摸查任务创建" }, + }, + //对公精准营销推进专项 + { + path: '/ComPreMarkDetail', + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/upcoming-tasks/marketing-task/company/ComPreMarkDetail.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "对公精准营销推进专项" }, + }, + { + path: '/PerMarketingAdd', + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/upcoming-tasks/marketing-task/PerMarketingAdd.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "个人上门营销-新增" }, + }, + { + path: '/TimeAxis', + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/upcoming-tasks/marketing-task/time-axis/TimeAxis.vue"), + props: propsConvert, + meta: { keepAlive: true, requiresAuth: true, name: "时光轴" }, + }, + { + path: '/perTelMarkTimeAxis', + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/upcoming-tasks/marketing-task/time-axis/personal/perTelMarkTimeAxis.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "个人电话营销时光轴" }, + }, + // 面签新增 + { + path: `/AddContractFaceSign`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/contract/AddContractFaceSign.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "新增面签" }, + }, + //面签流程 + { + path: `/FaceSignView`, + name: `FaceSignView`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/contract/FaceSignView.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "面签" }, + }, + //面签复核 + { + path: `/FaceSignReviewView`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/contract/FaceSignReviewView.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "面签复核" }, + }, + //个人业务查询 + { + path: `/GDBusinessQuery`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/personal/GDBusinessQuery.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "个人业务查询" }, + }, + //对公业务查询 + { + path: `/DGBusinessQuery`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/company/DGBusinessQuery.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "对公业务查询" }, + }, + { + path: `/ProcessView`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/company/ProcessView.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "流程列表详情" }, + }, + { + path: `/HistoryView`, + component: () => import(/* webpackChunkName: "workbench" */ "@/views/workbench/commonly-used/company/HistoryView.vue"), + props: propsConvert, + meta: { keepAlive: false, requiresAuth: true, name: "流程历史查询" }, + }, + +]; +export default workbenchRoutes; diff --git a/src/services/api.service.ts b/src/services/api.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..e26549c8a62add30057538248c7ec2dfeeb638b8 --- /dev/null +++ b/src/services/api.service.ts @@ -0,0 +1,446 @@ +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'] = '*'; + config.headers['MCEP'] = 'MCEP'; + 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(params)).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 || {}; + //移动后台 + 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; + 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格式转表单格式 + * @author ChenRui + * @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/src/services/bean-utils.service.ts b/src/services/bean-utils.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..47042e5cdacf7f793146cde49637dd994dcf0b94 --- /dev/null +++ b/src/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/src/services/component-vue.service.ts b/src/services/component-vue.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..824db4965d9992908f992fab95a959f0f672ef64 --- /dev/null +++ b/src/services/component-vue.service.ts @@ -0,0 +1,82 @@ +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 } 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"; + +declare module "vue/types/vue" { + interface Vue { + $message: any; + $success: any; + $error: any; + $loading: 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); + } +} +const componentService = new ComponentVueService(); +export default componentService; diff --git a/src/services/db.service.ts b/src/services/db.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..9675546f9ba00e9df6592b6979cf685bee709f22 --- /dev/null +++ b/src/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/src/services/dict.service.ts b/src/services/dict.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..938a05c4b07f0101b90ca212fa21614d626b46cd --- /dev/null +++ b/src/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/src/services/difference.ts b/src/services/difference.ts new file mode 100644 index 0000000000000000000000000000000000000000..8098b534fb4641eea2dc4e9bf387bc1a6bbe1680 --- /dev/null +++ b/src/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/src/services/form-util.service.ts b/src/services/form-util.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..7b6db081f651f02557187456357bdacc79d60456 --- /dev/null +++ b/src/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/src/services/global-state.service.ts b/src/services/global-state.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..7490d2ecba01e580432e4b2dd16118a4b8331db8 --- /dev/null +++ b/src/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/src/services/list-util.service.ts b/src/services/list-util.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..63b588cfdc2f6f98cf716b0866481ab235aa36d2 --- /dev/null +++ b/src/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/src/services/math.service.ts b/src/services/math.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..a054c2f4276971d6170fb7d0df7ac5dfe23d1012 --- /dev/null +++ b/src/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/src/services/media.service.ts b/src/services/media.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..f7e2c682ad4e8571cc1b1d9d11c08582addfe630 --- /dev/null +++ b/src/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/src/services/native.service.ts b/src/services/native.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..c558f3df37e3a75e4f828a743cec3d6387cf653a --- /dev/null +++ b/src/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/src/services/props-convert.ts b/src/services/props-convert.ts new file mode 100644 index 0000000000000000000000000000000000000000..a5f89bd5db70120d508dcbada4a885283d2f9028 --- /dev/null +++ b/src/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/src/services/router.service.ts b/src/services/router.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..1eb91123909de3ac84ef9d3647a7d3f1d7034bc2 --- /dev/null +++ b/src/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/src/services/tree-node-convert.service.ts b/src/services/tree-node-convert.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..fc5b592bec346a84754b47ef7f3e41c01f94faea --- /dev/null +++ b/src/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/src/shims-tsx.d.ts b/src/shims-tsx.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..2bcdf9fbcb0ee8d3efe3c9c39a0e12f63c2ebc5e --- /dev/null +++ b/src/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/src/shims-vue.d.ts b/src/shims-vue.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..cfabee4ba4d12d5853baf3326a52df39bd92c3c2 --- /dev/null +++ b/src/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/src/stores/index.ts b/src/stores/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..1e5b5dc50dcf23fe60c81aeca257801a11ec9871 --- /dev/null +++ b/src/stores/index.ts @@ -0,0 +1,35 @@ +export * from "./token.store"; +export * from "./user.store"; +import company from '@/stores/modules/company.module'; +import postloan from '@/stores/modules/postloan.module'; +import faceSign from '@/stores/modules/faceSign.module'; +import customer from '@/stores/modules/customer.module'; +import Vue from 'vue'; +import Vuex from 'vuex'; +import dict from '@/services/dict.service'; +Vue.use(Vuex); + +export default new Vuex.Store({ + modules: { + company, + postloan, + faceSign, + customer + } +}); + +/** + * 获取数据字典的文本值 + * @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/src/stores/modules/company.module.ts b/src/stores/modules/company.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..e6929efd1e4bf43cf4438ae2c518cbf212abae52 --- /dev/null +++ b/src/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/src/stores/modules/customer.module.ts b/src/stores/modules/customer.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..9dfc3cc99281ed74fc1b172da881da922f078109 --- /dev/null +++ b/src/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/src/stores/modules/faceSign.module.ts b/src/stores/modules/faceSign.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..39a5e4d1220c6d35d08d3549f39d35eb98ca7dfb --- /dev/null +++ b/src/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/src/stores/modules/postloan.module.ts b/src/stores/modules/postloan.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..749dc19804cde7aeb648bc9a56d5598eb8c7baca --- /dev/null +++ b/src/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/src/stores/token.store.ts b/src/stores/token.store.ts new file mode 100644 index 0000000000000000000000000000000000000000..38340a4e7410a4ae5def68cfe796e1f3dc188438 --- /dev/null +++ b/src/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/src/stores/user.store.ts b/src/stores/user.store.ts new file mode 100644 index 0000000000000000000000000000000000000000..7d03c707d3feac2d961854264a282fae96d81f34 --- /dev/null +++ b/src/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/src/views/authentication/LoginView.vue b/src/views/authentication/LoginView.vue new file mode 100644 index 0000000000000000000000000000000000000000..b0fbc65cac687640ecb3706c78de9ca2c7821f2f --- /dev/null +++ b/src/views/authentication/LoginView.vue @@ -0,0 +1,254 @@ + + + diff --git a/src/views/authentication/MarketStatisticsDetail.vue b/src/views/authentication/MarketStatisticsDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..513b6bf28b65e1f09f1e02e951274c32245b4d97 --- /dev/null +++ b/src/views/authentication/MarketStatisticsDetail.vue @@ -0,0 +1,367 @@ + + + diff --git a/src/views/authentication/TYMHView.vue b/src/views/authentication/TYMHView.vue new file mode 100644 index 0000000000000000000000000000000000000000..447788fbf9d29242363a78fcb02405f8455728ac --- /dev/null +++ b/src/views/authentication/TYMHView.vue @@ -0,0 +1,1124 @@ + + + + + diff --git a/src/views/customer-mgt/AddUserView.vue b/src/views/customer-mgt/AddUserView.vue new file mode 100644 index 0000000000000000000000000000000000000000..e19d32c4c035df723960e87216c2459a8d9e0505 --- /dev/null +++ b/src/views/customer-mgt/AddUserView.vue @@ -0,0 +1,126 @@ + + + + + diff --git a/src/views/customer-mgt/CompanyDetails.vue b/src/views/customer-mgt/CompanyDetails.vue new file mode 100644 index 0000000000000000000000000000000000000000..4f701ea30ddbf46a4f01cedfb983895ddb510c10 --- /dev/null +++ b/src/views/customer-mgt/CompanyDetails.vue @@ -0,0 +1,939 @@ + + + + + diff --git a/src/views/customer-mgt/CustomerMgtView.vue b/src/views/customer-mgt/CustomerMgtView.vue new file mode 100644 index 0000000000000000000000000000000000000000..2974e6b23141348497b62fefc81e9606745682a5 --- /dev/null +++ b/src/views/customer-mgt/CustomerMgtView.vue @@ -0,0 +1,356 @@ + + + + diff --git a/src/views/customer-mgt/EnterpriseMarketTimeLine.vue b/src/views/customer-mgt/EnterpriseMarketTimeLine.vue new file mode 100644 index 0000000000000000000000000000000000000000..c5a8bb67646cc3353b7eae66368d57f9474e0b75 --- /dev/null +++ b/src/views/customer-mgt/EnterpriseMarketTimeLine.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/src/views/customer-mgt/EnterpriseTimeline.vue b/src/views/customer-mgt/EnterpriseTimeline.vue new file mode 100644 index 0000000000000000000000000000000000000000..9803fe59c636ce21dbce483e4652c6327868960e --- /dev/null +++ b/src/views/customer-mgt/EnterpriseTimeline.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/src/views/customer-mgt/PersonalDetails.vue b/src/views/customer-mgt/PersonalDetails.vue new file mode 100644 index 0000000000000000000000000000000000000000..467332779ee7d3e48119a2c9db7ae4fbad4ace1e --- /dev/null +++ b/src/views/customer-mgt/PersonalDetails.vue @@ -0,0 +1,870 @@ + + + + + diff --git a/src/views/customer-mgt/PersonalMgtView.vue b/src/views/customer-mgt/PersonalMgtView.vue new file mode 100644 index 0000000000000000000000000000000000000000..ff565892ecc8558e7c99a5d0caf7d5225b67f085 --- /dev/null +++ b/src/views/customer-mgt/PersonalMgtView.vue @@ -0,0 +1,674 @@ + + + + diff --git a/src/views/customer-mgt/customer-info/Detail/AnnouncementInformationDetail.vue b/src/views/customer-mgt/customer-info/Detail/AnnouncementInformationDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..0a002ff80b5337c690c542f39c301ee2083330f4 --- /dev/null +++ b/src/views/customer-mgt/customer-info/Detail/AnnouncementInformationDetail.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/Detail/CaseFlowInformationDetail.vue b/src/views/customer-mgt/customer-info/Detail/CaseFlowInformationDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..30a1805832268535181ee29c034f0114c89233b2 --- /dev/null +++ b/src/views/customer-mgt/customer-info/Detail/CaseFlowInformationDetail.vue @@ -0,0 +1,112 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/Detail/ExposureTableInformationDetail.vue b/src/views/customer-mgt/customer-info/Detail/ExposureTableInformationDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..7406b484db987a91ac81aeedd7689e303ef909f6 --- /dev/null +++ b/src/views/customer-mgt/customer-info/Detail/ExposureTableInformationDetail.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/Detail/FYGGDetail.vue b/src/views/customer-mgt/customer-info/Detail/FYGGDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..f9044d446c262fd490af7a048b18cff3de4ab542 --- /dev/null +++ b/src/views/customer-mgt/customer-info/Detail/FYGGDetail.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/Detail/InformationOfThePersonSubjectToExecutionDetail.vue b/src/views/customer-mgt/customer-info/Detail/InformationOfThePersonSubjectToExecutionDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..beed36c808d76fb7dc3ab8c8b9e52ff034e983ae --- /dev/null +++ b/src/views/customer-mgt/customer-info/Detail/InformationOfThePersonSubjectToExecutionDetail.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/Detail/InformationOfUntrustworthyPersonSubjectToEnforcementDetail.vue b/src/views/customer-mgt/customer-info/Detail/InformationOfUntrustworthyPersonSubjectToEnforcementDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..702be231c4ce5c18323267a26ad4e5c1e10f465c --- /dev/null +++ b/src/views/customer-mgt/customer-info/Detail/InformationOfUntrustworthyPersonSubjectToEnforcementDetail.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/Detail/JudgmentDetail.vue b/src/views/customer-mgt/customer-info/Detail/JudgmentDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..2a43147650211c3db9d3aa564e6d28dbf029a1a9 --- /dev/null +++ b/src/views/customer-mgt/customer-info/Detail/JudgmentDetail.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/Detail/JudicialFrozenDeductionInformationDetail.vue b/src/views/customer-mgt/customer-info/Detail/JudicialFrozenDeductionInformationDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..d09dc97d25557f2b6657670c677a7c9004a426c8 --- /dev/null +++ b/src/views/customer-mgt/customer-info/Detail/JudicialFrozenDeductionInformationDetail.vue @@ -0,0 +1,114 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/Operating-risk-information/CFXXList.vue b/src/views/customer-mgt/customer-info/Operating-risk-information/CFXXList.vue new file mode 100644 index 0000000000000000000000000000000000000000..126707c8f7398798211b30c7af19b382bd22e125 --- /dev/null +++ b/src/views/customer-mgt/customer-info/Operating-risk-information/CFXXList.vue @@ -0,0 +1,230 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/Operating-risk-information/CaseProcess.vue b/src/views/customer-mgt/customer-info/Operating-risk-information/CaseProcess.vue new file mode 100644 index 0000000000000000000000000000000000000000..c2f8e4a87d2b4915f738457e6e1a5b074647cc8f --- /dev/null +++ b/src/views/customer-mgt/customer-info/Operating-risk-information/CaseProcess.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/Operating-risk-information/ClearInformation.vue b/src/views/customer-mgt/customer-info/Operating-risk-information/ClearInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..ddd9a5487cf8f5974bd947066ed8fcd0cad17f35 --- /dev/null +++ b/src/views/customer-mgt/customer-info/Operating-risk-information/ClearInformation.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/Operating-risk-information/CourtAnnouncement.vue b/src/views/customer-mgt/customer-info/Operating-risk-information/CourtAnnouncement.vue new file mode 100644 index 0000000000000000000000000000000000000000..f59ddaefdad8ccaf934ca81f658b944cf0f6e316 --- /dev/null +++ b/src/views/customer-mgt/customer-info/Operating-risk-information/CourtAnnouncement.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/Operating-risk-information/ExecutedPerson.vue b/src/views/customer-mgt/customer-info/Operating-risk-information/ExecutedPerson.vue new file mode 100644 index 0000000000000000000000000000000000000000..af33f9d2aa860574d67ec26f6bd6f68ada6c567c --- /dev/null +++ b/src/views/customer-mgt/customer-info/Operating-risk-information/ExecutedPerson.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/Operating-risk-information/ExposureTable.vue b/src/views/customer-mgt/customer-info/Operating-risk-information/ExposureTable.vue new file mode 100644 index 0000000000000000000000000000000000000000..0421a1d83d578fd9be2b5054fed8cf28dc317ecb --- /dev/null +++ b/src/views/customer-mgt/customer-info/Operating-risk-information/ExposureTable.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/Operating-risk-information/FYGGList.vue b/src/views/customer-mgt/customer-info/Operating-risk-information/FYGGList.vue new file mode 100644 index 0000000000000000000000000000000000000000..48b1a8e882fffd7ce2461dde840ecbc3d3fb4dc1 --- /dev/null +++ b/src/views/customer-mgt/customer-info/Operating-risk-information/FYGGList.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/Operating-risk-information/Judgment.vue b/src/views/customer-mgt/customer-info/Operating-risk-information/Judgment.vue new file mode 100644 index 0000000000000000000000000000000000000000..8371250029324f863365c67d1137d8f41ba42fe2 --- /dev/null +++ b/src/views/customer-mgt/customer-info/Operating-risk-information/Judgment.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/Operating-risk-information/JudicialDeduction.vue b/src/views/customer-mgt/customer-info/Operating-risk-information/JudicialDeduction.vue new file mode 100644 index 0000000000000000000000000000000000000000..48550d9461114a6a00da870e43d2c216a218b8e0 --- /dev/null +++ b/src/views/customer-mgt/customer-info/Operating-risk-information/JudicialDeduction.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/Operating-risk-information/LSBGView.vue b/src/views/customer-mgt/customer-info/Operating-risk-information/LSBGView.vue new file mode 100644 index 0000000000000000000000000000000000000000..e589a39498f1ed3ae8dd8e5c34a14ba7aacb895c --- /dev/null +++ b/src/views/customer-mgt/customer-info/Operating-risk-information/LSBGView.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/Operating-risk-information/PublicOpinionInformation.vue b/src/views/customer-mgt/customer-info/Operating-risk-information/PublicOpinionInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..720f5f4da2026e7bc40a706e4d31f031cff45027 --- /dev/null +++ b/src/views/customer-mgt/customer-info/Operating-risk-information/PublicOpinionInformation.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/Operating-risk-information/YCJYMLView.vue b/src/views/customer-mgt/customer-info/Operating-risk-information/YCJYMLView.vue new file mode 100644 index 0000000000000000000000000000000000000000..c5f066852ed7bcfac3a7b311430e25ec1a48916a --- /dev/null +++ b/src/views/customer-mgt/customer-info/Operating-risk-information/YCJYMLView.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/business-application-status/ApplicationStatus.vue b/src/views/customer-mgt/customer-info/business-application-status/ApplicationStatus.vue new file mode 100644 index 0000000000000000000000000000000000000000..531c0f556404e41723559128fa4767288f68c960 --- /dev/null +++ b/src/views/customer-mgt/customer-info/business-application-status/ApplicationStatus.vue @@ -0,0 +1,100 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/business-application-status/CompanyPolicy.vue b/src/views/customer-mgt/customer-info/business-application-status/CompanyPolicy.vue new file mode 100644 index 0000000000000000000000000000000000000000..b12788be6438a52311ac7d26feb58f60f9bdc76d --- /dev/null +++ b/src/views/customer-mgt/customer-info/business-application-status/CompanyPolicy.vue @@ -0,0 +1,244 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/business-application-status/CreditStatusOfClientExecutives.vue b/src/views/customer-mgt/customer-info/business-application-status/CreditStatusOfClientExecutives.vue new file mode 100644 index 0000000000000000000000000000000000000000..ce02ee79ccf9dcd71ee18aafcb4340fa8487649f --- /dev/null +++ b/src/views/customer-mgt/customer-info/business-application-status/CreditStatusOfClientExecutives.vue @@ -0,0 +1,143 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/business-application-status/CustomerContribution.vue b/src/views/customer-mgt/customer-info/business-application-status/CustomerContribution.vue new file mode 100644 index 0000000000000000000000000000000000000000..0e0274d3d5b392166e5e137ab65cf3816045c24f --- /dev/null +++ b/src/views/customer-mgt/customer-info/business-application-status/CustomerContribution.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/business-application-status/CustomerManagementInformation.vue b/src/views/customer-mgt/customer-info/business-application-status/CustomerManagementInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..a34ab9fc54f3a77b537e563feea4f36f4a0a51e9 --- /dev/null +++ b/src/views/customer-mgt/customer-info/business-application-status/CustomerManagementInformation.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/business-application-status/CustomerPreliminaryScreeningHistory.vue b/src/views/customer-mgt/customer-info/business-application-status/CustomerPreliminaryScreeningHistory.vue new file mode 100644 index 0000000000000000000000000000000000000000..80a2951130ff07b7b7949fb0d24c08001a1045a5 --- /dev/null +++ b/src/views/customer-mgt/customer-info/business-application-status/CustomerPreliminaryScreeningHistory.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/business-application-status/CustomerRatings.vue b/src/views/customer-mgt/customer-info/business-application-status/CustomerRatings.vue new file mode 100644 index 0000000000000000000000000000000000000000..a24edcdfe5b8a82a071db6eb44bc3244c9faeef7 --- /dev/null +++ b/src/views/customer-mgt/customer-info/business-application-status/CustomerRatings.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/business-application-status/FinancialInfoDetail.vue b/src/views/customer-mgt/customer-info/business-application-status/FinancialInfoDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..15bd884d7198a15537b3dc631e646277482e3fee --- /dev/null +++ b/src/views/customer-mgt/customer-info/business-application-status/FinancialInfoDetail.vue @@ -0,0 +1,271 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/business-application-status/FinancialInformation.vue b/src/views/customer-mgt/customer-info/business-application-status/FinancialInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..678c9baff8856b0d3f385426b20c351a2c47f5a4 --- /dev/null +++ b/src/views/customer-mgt/customer-info/business-application-status/FinancialInformation.vue @@ -0,0 +1,352 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/business-application-status/ProjectInfo.vue b/src/views/customer-mgt/customer-info/business-application-status/ProjectInfo.vue new file mode 100644 index 0000000000000000000000000000000000000000..e6ad886e06ad581c2fcf055d350e4ca6703e699c --- /dev/null +++ b/src/views/customer-mgt/customer-info/business-application-status/ProjectInfo.vue @@ -0,0 +1,130 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/business-application-status/StockInformation.vue b/src/views/customer-mgt/customer-info/business-application-status/StockInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..fe2d3e814abc09ddfd9312a66a5aa0a6ddf7d101 --- /dev/null +++ b/src/views/customer-mgt/customer-info/business-application-status/StockInformation.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/business-application-status/TrialEntry.vue b/src/views/customer-mgt/customer-info/business-application-status/TrialEntry.vue new file mode 100644 index 0000000000000000000000000000000000000000..70b99c9ef104665ef07b781b99b49c3238cbdbee --- /dev/null +++ b/src/views/customer-mgt/customer-info/business-application-status/TrialEntry.vue @@ -0,0 +1,388 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/business-application-status/UnifiedCustomerCreditView.vue b/src/views/customer-mgt/customer-info/business-application-status/UnifiedCustomerCreditView.vue new file mode 100644 index 0000000000000000000000000000000000000000..0175e216dba61579cd134832c05e9e3dc224b31e --- /dev/null +++ b/src/views/customer-mgt/customer-info/business-application-status/UnifiedCustomerCreditView.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/business-information/AnnualReport.vue b/src/views/customer-mgt/customer-info/business-information/AnnualReport.vue new file mode 100644 index 0000000000000000000000000000000000000000..2bd9a4eac33370071fe721983a3d0b390af2ff1d --- /dev/null +++ b/src/views/customer-mgt/customer-info/business-information/AnnualReport.vue @@ -0,0 +1,276 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/business-information/EquityPledgeAndMovablePropertyPledge.vue b/src/views/customer-mgt/customer-info/business-information/EquityPledgeAndMovablePropertyPledge.vue new file mode 100644 index 0000000000000000000000000000000000000000..2092213ed57715f9e0b1eb59307ac26386a6b36c --- /dev/null +++ b/src/views/customer-mgt/customer-info/business-information/EquityPledgeAndMovablePropertyPledge.vue @@ -0,0 +1,406 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/business-information/InfoChangeHistory.vue b/src/views/customer-mgt/customer-info/business-information/InfoChangeHistory.vue new file mode 100644 index 0000000000000000000000000000000000000000..46193e403193a95c217dc4b04c0b57f699f35dd3 --- /dev/null +++ b/src/views/customer-mgt/customer-info/business-information/InfoChangeHistory.vue @@ -0,0 +1,118 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/business-information/Overview.vue b/src/views/customer-mgt/customer-info/business-information/Overview.vue new file mode 100644 index 0000000000000000000000000000000000000000..6d8694ff937a27d76160aa50f6b6345ec39a0094 --- /dev/null +++ b/src/views/customer-mgt/customer-info/business-information/Overview.vue @@ -0,0 +1,172 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/business-information/RiskInformation.vue b/src/views/customer-mgt/customer-info/business-information/RiskInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..fe88b2c9ea7ba76f0218d4118dc049489eedfc33 --- /dev/null +++ b/src/views/customer-mgt/customer-info/business-information/RiskInformation.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/customer-information-registration/CustomerInformationRegistration.vue b/src/views/customer-mgt/customer-info/customer-information-registration/CustomerInformationRegistration.vue new file mode 100644 index 0000000000000000000000000000000000000000..6009aa496d82e2ffcc7860cc0280c820b26ad687 --- /dev/null +++ b/src/views/customer-mgt/customer-info/customer-information-registration/CustomerInformationRegistration.vue @@ -0,0 +1,194 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/history-information/CustomerTagHistory.vue b/src/views/customer-mgt/customer-info/history-information/CustomerTagHistory.vue new file mode 100644 index 0000000000000000000000000000000000000000..b2c2c7ed57da9e197ff86d5ea3543435d9eca629 --- /dev/null +++ b/src/views/customer-mgt/customer-info/history-information/CustomerTagHistory.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/relationship-graph/EnterpriseMap.vue b/src/views/customer-mgt/customer-info/relationship-graph/EnterpriseMap.vue new file mode 100644 index 0000000000000000000000000000000000000000..75ef1c0ccf63440e5e7a8454ebdd31486ae69069 --- /dev/null +++ b/src/views/customer-mgt/customer-info/relationship-graph/EnterpriseMap.vue @@ -0,0 +1,419 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/relationship-graph/FroupAndEconomicDependenceInformation.vue b/src/views/customer-mgt/customer-info/relationship-graph/FroupAndEconomicDependenceInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..7eb0e4de2c6a07601dd5036d7bde15cc1672d587 --- /dev/null +++ b/src/views/customer-mgt/customer-info/relationship-graph/FroupAndEconomicDependenceInformation.vue @@ -0,0 +1,421 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/relationship-graph/GuaranteeView.vue b/src/views/customer-mgt/customer-info/relationship-graph/GuaranteeView.vue new file mode 100644 index 0000000000000000000000000000000000000000..7b84159861bb7209078df5a17a3c228bdb0df683 --- /dev/null +++ b/src/views/customer-mgt/customer-info/relationship-graph/GuaranteeView.vue @@ -0,0 +1,204 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/relationship-graph/RelatedParty.vue b/src/views/customer-mgt/customer-info/relationship-graph/RelatedParty.vue new file mode 100644 index 0000000000000000000000000000000000000000..5b16209052712d5762d27d3f7bd1ea238e6c0f61 --- /dev/null +++ b/src/views/customer-mgt/customer-info/relationship-graph/RelatedParty.vue @@ -0,0 +1,208 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/risk-summary/RiskWarning.vue b/src/views/customer-mgt/customer-info/risk-summary/RiskWarning.vue new file mode 100644 index 0000000000000000000000000000000000000000..e188feebe283b304dc94abe9bc3187d05bcd0462 --- /dev/null +++ b/src/views/customer-mgt/customer-info/risk-summary/RiskWarning.vue @@ -0,0 +1,138 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/risk-summary/RiskWarningItemDetail.vue b/src/views/customer-mgt/customer-info/risk-summary/RiskWarningItemDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..cc806f99c5b8df15e32f86f07ea366033d512404 --- /dev/null +++ b/src/views/customer-mgt/customer-info/risk-summary/RiskWarningItemDetail.vue @@ -0,0 +1,131 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/timeLine/CompanyTimeLine.vue b/src/views/customer-mgt/customer-info/timeLine/CompanyTimeLine.vue new file mode 100644 index 0000000000000000000000000000000000000000..15c47a0a4600246a1092e228b0de9cfcd66167da --- /dev/null +++ b/src/views/customer-mgt/customer-info/timeLine/CompanyTimeLine.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/src/views/customer-mgt/customer-info/timeLine/MarketTimeLine.vue b/src/views/customer-mgt/customer-info/timeLine/MarketTimeLine.vue new file mode 100644 index 0000000000000000000000000000000000000000..c4b3bbe32ac66cd0dc4388caec85bced7c1c6b70 --- /dev/null +++ b/src/views/customer-mgt/customer-info/timeLine/MarketTimeLine.vue @@ -0,0 +1,61 @@ + + + + + diff --git a/src/views/customer-mgt/personal-information/CreditDetails.vue b/src/views/customer-mgt/personal-information/CreditDetails.vue new file mode 100644 index 0000000000000000000000000000000000000000..897124e85c88dd8707fcec99023ef1e1ecc3dbc3 --- /dev/null +++ b/src/views/customer-mgt/personal-information/CreditDetails.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/src/views/customer-mgt/personal-information/Employer.vue b/src/views/customer-mgt/personal-information/Employer.vue new file mode 100644 index 0000000000000000000000000000000000000000..ef96fc00fbc82429ddb347503c0bda0603e9c380 --- /dev/null +++ b/src/views/customer-mgt/personal-information/Employer.vue @@ -0,0 +1,244 @@ + + + + + diff --git a/src/views/customer-mgt/personal-information/FamilyFinancialInformation.vue b/src/views/customer-mgt/personal-information/FamilyFinancialInformation.vue new file mode 100644 index 0000000000000000000000000000000000000000..efd8861e919977a26f6340ec17f0a3b862aed942 --- /dev/null +++ b/src/views/customer-mgt/personal-information/FamilyFinancialInformation.vue @@ -0,0 +1,56 @@ + + + + + diff --git a/src/views/customer-mgt/personal-information/PersonalProfiles.vue b/src/views/customer-mgt/personal-information/PersonalProfiles.vue new file mode 100644 index 0000000000000000000000000000000000000000..0c68166a172e0f1e009670683dab88e8fe511b61 --- /dev/null +++ b/src/views/customer-mgt/personal-information/PersonalProfiles.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/src/views/main/MainView.vue b/src/views/main/MainView.vue new file mode 100644 index 0000000000000000000000000000000000000000..01f3d99db5b1b153c809d6aee712998eb4a07581 --- /dev/null +++ b/src/views/main/MainView.vue @@ -0,0 +1,180 @@ + + + diff --git a/src/views/main/PersonalStatsView.vue b/src/views/main/PersonalStatsView.vue new file mode 100644 index 0000000000000000000000000000000000000000..713b329ea1f173664bbabd4aaecd38edc7cce4d8 --- /dev/null +++ b/src/views/main/PersonalStatsView.vue @@ -0,0 +1,72 @@ + + + + diff --git a/src/views/marketing-mgt/AccurateCustomer.vue b/src/views/marketing-mgt/AccurateCustomer.vue new file mode 100644 index 0000000000000000000000000000000000000000..04ebe21c06f2fbc4471c86c12241dc64612d0b86 --- /dev/null +++ b/src/views/marketing-mgt/AccurateCustomer.vue @@ -0,0 +1,137 @@ + + + + + diff --git a/src/views/marketing-mgt/AccurateVisitors.vue b/src/views/marketing-mgt/AccurateVisitors.vue new file mode 100644 index 0000000000000000000000000000000000000000..c60fd2144a9c3532c24b8b25b0286817f491a878 --- /dev/null +++ b/src/views/marketing-mgt/AccurateVisitors.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/src/views/marketing-mgt/AddMarketing.vue b/src/views/marketing-mgt/AddMarketing.vue new file mode 100644 index 0000000000000000000000000000000000000000..5d0c54b7528c0e21c0e38166694eee6d0d76a4be --- /dev/null +++ b/src/views/marketing-mgt/AddMarketing.vue @@ -0,0 +1,89 @@ + + + + + diff --git a/src/views/marketing-mgt/DoingMarketByPhone.vue b/src/views/marketing-mgt/DoingMarketByPhone.vue new file mode 100644 index 0000000000000000000000000000000000000000..39355562966f71dd66d4c0ce6af424de284e0c81 --- /dev/null +++ b/src/views/marketing-mgt/DoingMarketByPhone.vue @@ -0,0 +1,377 @@ + + + + + diff --git a/src/views/marketing-mgt/MarketPlan.vue b/src/views/marketing-mgt/MarketPlan.vue new file mode 100644 index 0000000000000000000000000000000000000000..232b399eb8077377c43d8065912f2d4d7ddcc711 --- /dev/null +++ b/src/views/marketing-mgt/MarketPlan.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/src/views/marketing-mgt/PutInReserve.vue b/src/views/marketing-mgt/PutInReserve.vue new file mode 100644 index 0000000000000000000000000000000000000000..a5603398074c039d8f87bfd26fdafe2104fb98d5 --- /dev/null +++ b/src/views/marketing-mgt/PutInReserve.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/src/views/marketing-mgt/company/ComMarketingPool.vue b/src/views/marketing-mgt/company/ComMarketingPool.vue new file mode 100644 index 0000000000000000000000000000000000000000..61c2430fa43edee75cc172cc330ba26e8fce4d67 --- /dev/null +++ b/src/views/marketing-mgt/company/ComMarketingPool.vue @@ -0,0 +1,324 @@ + + + + + diff --git a/src/views/marketing-mgt/personal/AddMarketPlan.vue b/src/views/marketing-mgt/personal/AddMarketPlan.vue new file mode 100644 index 0000000000000000000000000000000000000000..6efbef2999ca167df6a89e8c7826160041438c52 --- /dev/null +++ b/src/views/marketing-mgt/personal/AddMarketPlan.vue @@ -0,0 +1,252 @@ + + + + + diff --git a/src/views/marketing-mgt/personal/JHDBDetail.vue b/src/views/marketing-mgt/personal/JHDBDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..27fc5a89dd86cbd562d3f36114aa24c46f3c91d1 --- /dev/null +++ b/src/views/marketing-mgt/personal/JHDBDetail.vue @@ -0,0 +1,453 @@ + + + + + diff --git a/src/views/marketing-mgt/personal/JhdbxqView.vue b/src/views/marketing-mgt/personal/JhdbxqView.vue new file mode 100644 index 0000000000000000000000000000000000000000..be78fe540cd39809d4ca3c45b700e463d42999b8 --- /dev/null +++ b/src/views/marketing-mgt/personal/JhdbxqView.vue @@ -0,0 +1,266 @@ + + + + + diff --git a/src/views/marketing-mgt/personal/MarketingList.vue b/src/views/marketing-mgt/personal/MarketingList.vue new file mode 100644 index 0000000000000000000000000000000000000000..a2018095267efbc21052f4eb156ff811a3bba0ee --- /dev/null +++ b/src/views/marketing-mgt/personal/MarketingList.vue @@ -0,0 +1,225 @@ + + + + + diff --git a/src/views/marketing-mgt/personal/MarketingMap.vue b/src/views/marketing-mgt/personal/MarketingMap.vue new file mode 100644 index 0000000000000000000000000000000000000000..5f2ed0a15a28767f329f66a9e7235f5a801de617 --- /dev/null +++ b/src/views/marketing-mgt/personal/MarketingMap.vue @@ -0,0 +1,196 @@ + + + + + diff --git a/src/views/marketing-mgt/personal/MarketingMgtView.vue b/src/views/marketing-mgt/personal/MarketingMgtView.vue new file mode 100644 index 0000000000000000000000000000000000000000..dd79b62e3c5bb4ed8694e9356b0448a6b9c3af8a --- /dev/null +++ b/src/views/marketing-mgt/personal/MarketingMgtView.vue @@ -0,0 +1,399 @@ + + + + + diff --git a/src/views/workbench/WorkbenchView.vue b/src/views/workbench/WorkbenchView.vue new file mode 100644 index 0000000000000000000000000000000000000000..873cc476a98bc31b092e9c4aebeeb4adc2e7c8c8 --- /dev/null +++ b/src/views/workbench/WorkbenchView.vue @@ -0,0 +1,636 @@ + + + + + diff --git a/src/views/workbench/commonly-used/SME/SMEMarketingDetail.vue b/src/views/workbench/commonly-used/SME/SMEMarketingDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..201e890a67481dbf45901a8aa7a66417f7f6877c --- /dev/null +++ b/src/views/workbench/commonly-used/SME/SMEMarketingDetail.vue @@ -0,0 +1,252 @@ + + + + + diff --git a/src/views/workbench/commonly-used/company/AuxiliaryTools.vue b/src/views/workbench/commonly-used/company/AuxiliaryTools.vue new file mode 100644 index 0000000000000000000000000000000000000000..704eacace3757153672e16bebb5187195219f888 --- /dev/null +++ b/src/views/workbench/commonly-used/company/AuxiliaryTools.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/views/workbench/commonly-used/company/BusinessInquiry.vue b/src/views/workbench/commonly-used/company/BusinessInquiry.vue new file mode 100644 index 0000000000000000000000000000000000000000..d6b895e019d5ae640a1653c81941823bb6269477 --- /dev/null +++ b/src/views/workbench/commonly-used/company/BusinessInquiry.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/src/views/workbench/commonly-used/company/CompanyAgencyTask.vue b/src/views/workbench/commonly-used/company/CompanyAgencyTask.vue new file mode 100644 index 0000000000000000000000000000000000000000..90d2701cfb98e996411decf70a6f0e567fac477b --- /dev/null +++ b/src/views/workbench/commonly-used/company/CompanyAgencyTask.vue @@ -0,0 +1,146 @@ + + + + + diff --git a/src/views/workbench/commonly-used/company/CustomerInquiry.vue b/src/views/workbench/commonly-used/company/CustomerInquiry.vue new file mode 100644 index 0000000000000000000000000000000000000000..e786b9566bdbb327e7c5d63514a4cf600f1ff667 --- /dev/null +++ b/src/views/workbench/commonly-used/company/CustomerInquiry.vue @@ -0,0 +1,191 @@ + + + + + diff --git a/src/views/workbench/commonly-used/company/DGBusinessQuery.vue b/src/views/workbench/commonly-used/company/DGBusinessQuery.vue new file mode 100644 index 0000000000000000000000000000000000000000..133a0f4ed2dcb615c193e3f9930092fa007e7731 --- /dev/null +++ b/src/views/workbench/commonly-used/company/DGBusinessQuery.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/src/views/workbench/commonly-used/company/HistoryView.vue b/src/views/workbench/commonly-used/company/HistoryView.vue new file mode 100644 index 0000000000000000000000000000000000000000..fddf1fb3b1f94dcd5f381e106450a169c83df04f --- /dev/null +++ b/src/views/workbench/commonly-used/company/HistoryView.vue @@ -0,0 +1,158 @@ + + + + + diff --git a/src/views/workbench/commonly-used/company/LoanCalculationDetail.vue b/src/views/workbench/commonly-used/company/LoanCalculationDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..3b2432fc9c7e6df160fab4716872cd61266cc20a --- /dev/null +++ b/src/views/workbench/commonly-used/company/LoanCalculationDetail.vue @@ -0,0 +1,126 @@ + + + + + diff --git a/src/views/workbench/commonly-used/company/LoanCheckDetailView.vue b/src/views/workbench/commonly-used/company/LoanCheckDetailView.vue new file mode 100644 index 0000000000000000000000000000000000000000..0dfd277623e74918b4facbd367fbbe08251308e3 --- /dev/null +++ b/src/views/workbench/commonly-used/company/LoanCheckDetailView.vue @@ -0,0 +1,833 @@ + + + + + diff --git a/src/views/workbench/commonly-used/company/OnlineEnquiry.vue b/src/views/workbench/commonly-used/company/OnlineEnquiry.vue new file mode 100644 index 0000000000000000000000000000000000000000..533ca75329924d9494ca15757136d0298e34a9fb --- /dev/null +++ b/src/views/workbench/commonly-used/company/OnlineEnquiry.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/src/views/workbench/commonly-used/company/ProcessView.vue b/src/views/workbench/commonly-used/company/ProcessView.vue new file mode 100644 index 0000000000000000000000000000000000000000..4a098445ae30b5546f6133cf91a932ea4912fb33 --- /dev/null +++ b/src/views/workbench/commonly-used/company/ProcessView.vue @@ -0,0 +1,175 @@ + + + + + diff --git a/src/views/workbench/commonly-used/company/RepaymentTrialDetail.vue b/src/views/workbench/commonly-used/company/RepaymentTrialDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..3bf2fcda7fc3d305ecaa1c094cc7cd739b66c3cb --- /dev/null +++ b/src/views/workbench/commonly-used/company/RepaymentTrialDetail.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/views/workbench/commonly-used/company/RiskWarningDetail.vue b/src/views/workbench/commonly-used/company/RiskWarningDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..4e064005cc803789ca9b9bbaba052d7ee265e1e4 --- /dev/null +++ b/src/views/workbench/commonly-used/company/RiskWarningDetail.vue @@ -0,0 +1,1392 @@ + + + + + diff --git a/src/views/workbench/commonly-used/personal/AddContactCheckView.vue b/src/views/workbench/commonly-used/personal/AddContactCheckView.vue new file mode 100644 index 0000000000000000000000000000000000000000..a84dd54eee49d0e2ab6e693a15e8e726c5526307 --- /dev/null +++ b/src/views/workbench/commonly-used/personal/AddContactCheckView.vue @@ -0,0 +1,475 @@ + + + + + diff --git a/src/views/workbench/commonly-used/personal/BusinessInquiry.vue b/src/views/workbench/commonly-used/personal/BusinessInquiry.vue new file mode 100644 index 0000000000000000000000000000000000000000..a2668a8f64e6eb87005fee5b9d781aef3aee00e0 --- /dev/null +++ b/src/views/workbench/commonly-used/personal/BusinessInquiry.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/src/views/workbench/commonly-used/personal/CollateralDetail.vue b/src/views/workbench/commonly-used/personal/CollateralDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..a08ff28db4f9eb878816fed7f0d370057eb14d93 --- /dev/null +++ b/src/views/workbench/commonly-used/personal/CollateralDetail.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/src/views/workbench/commonly-used/personal/CollectionDetails.vue b/src/views/workbench/commonly-used/personal/CollectionDetails.vue new file mode 100644 index 0000000000000000000000000000000000000000..3bf9dd9442b1b90ebc13a649d9a6005dfdb418d7 --- /dev/null +++ b/src/views/workbench/commonly-used/personal/CollectionDetails.vue @@ -0,0 +1,1220 @@ + + + + + diff --git a/src/views/workbench/commonly-used/personal/CommonFunctions.vue b/src/views/workbench/commonly-used/personal/CommonFunctions.vue new file mode 100644 index 0000000000000000000000000000000000000000..e09d9322032400e5894feb9ab026a290dc1bf3ec --- /dev/null +++ b/src/views/workbench/commonly-used/personal/CommonFunctions.vue @@ -0,0 +1,120 @@ + + + + + diff --git a/src/views/workbench/commonly-used/personal/CustomCheck.vue b/src/views/workbench/commonly-used/personal/CustomCheck.vue new file mode 100644 index 0000000000000000000000000000000000000000..6cfd4a17f4a993f326bb501f286c2089793f3406 --- /dev/null +++ b/src/views/workbench/commonly-used/personal/CustomCheck.vue @@ -0,0 +1,192 @@ + + + + + diff --git a/src/views/workbench/commonly-used/personal/CustomCheckInfo.vue b/src/views/workbench/commonly-used/personal/CustomCheckInfo.vue new file mode 100644 index 0000000000000000000000000000000000000000..41dca2825bfc92bb8b18dafa15a772e2c31ddd51 --- /dev/null +++ b/src/views/workbench/commonly-used/personal/CustomCheckInfo.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/src/views/workbench/commonly-used/personal/Customerinquiry.vue b/src/views/workbench/commonly-used/personal/Customerinquiry.vue new file mode 100644 index 0000000000000000000000000000000000000000..39f6ed291d1f1bf1e0e66bda271c933e91acda85 --- /dev/null +++ b/src/views/workbench/commonly-used/personal/Customerinquiry.vue @@ -0,0 +1,458 @@ + + + + + diff --git a/src/views/workbench/commonly-used/personal/GDBusinessQuery.vue b/src/views/workbench/commonly-used/personal/GDBusinessQuery.vue new file mode 100644 index 0000000000000000000000000000000000000000..9ac284f3da2ff73337a15edf03f5fa87371b7b2a --- /dev/null +++ b/src/views/workbench/commonly-used/personal/GDBusinessQuery.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/src/views/workbench/commonly-used/personal/NetPostLoanDetailsView.vue b/src/views/workbench/commonly-used/personal/NetPostLoanDetailsView.vue new file mode 100644 index 0000000000000000000000000000000000000000..70183c8bfacccd0a2dbd070c4d241def6c54bb5f --- /dev/null +++ b/src/views/workbench/commonly-used/personal/NetPostLoanDetailsView.vue @@ -0,0 +1,710 @@ + + + + + diff --git a/src/views/workbench/commonly-used/personal/PersonSimplifyView.vue b/src/views/workbench/commonly-used/personal/PersonSimplifyView.vue new file mode 100644 index 0000000000000000000000000000000000000000..6ee285b446f08944e693b65b0515f752c0d273c1 --- /dev/null +++ b/src/views/workbench/commonly-used/personal/PersonSimplifyView.vue @@ -0,0 +1,609 @@ + + + + + diff --git a/src/views/workbench/commonly-used/personal/PostLoanDetailsView.vue b/src/views/workbench/commonly-used/personal/PostLoanDetailsView.vue new file mode 100644 index 0000000000000000000000000000000000000000..c95441a26ba7448dbfa89b8094b44146df7f19fa --- /dev/null +++ b/src/views/workbench/commonly-used/personal/PostLoanDetailsView.vue @@ -0,0 +1,719 @@ + + + + + diff --git a/src/views/workbench/commonly-used/personal/PostNote.vue b/src/views/workbench/commonly-used/personal/PostNote.vue new file mode 100644 index 0000000000000000000000000000000000000000..3d13e9c9966da92b81d150a6e147c41e0a767f27 --- /dev/null +++ b/src/views/workbench/commonly-used/personal/PostNote.vue @@ -0,0 +1,141 @@ + + + + + diff --git a/src/views/workbench/commonly-used/personal/TelMarketingDetail.vue b/src/views/workbench/commonly-used/personal/TelMarketingDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..eb8f6246b2cf260b5d8c91ea782851969ccbf053 --- /dev/null +++ b/src/views/workbench/commonly-used/personal/TelMarketingDetail.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/src/views/workbench/commonly-used/personal/UpcomingTask.vue b/src/views/workbench/commonly-used/personal/UpcomingTask.vue new file mode 100644 index 0000000000000000000000000000000000000000..6d0fcb171d9acd0b38115fb4427adc8d5472ed1a --- /dev/null +++ b/src/views/workbench/commonly-used/personal/UpcomingTask.vue @@ -0,0 +1,194 @@ + + + + + diff --git a/src/views/workbench/contract/AddContractFaceSign.vue b/src/views/workbench/contract/AddContractFaceSign.vue new file mode 100644 index 0000000000000000000000000000000000000000..59e52928220da2f74a84899d9fb7c5034daeb3e2 --- /dev/null +++ b/src/views/workbench/contract/AddContractFaceSign.vue @@ -0,0 +1,388 @@ + + + + + diff --git a/src/views/workbench/contract/ConfirmInfo.vue b/src/views/workbench/contract/ConfirmInfo.vue new file mode 100644 index 0000000000000000000000000000000000000000..e04a56d5a9b1f21719b146dc54906931a601d35c --- /dev/null +++ b/src/views/workbench/contract/ConfirmInfo.vue @@ -0,0 +1,132 @@ + + + diff --git a/src/views/workbench/contract/CreditCardProtocol.vue b/src/views/workbench/contract/CreditCardProtocol.vue new file mode 100644 index 0000000000000000000000000000000000000000..89c45c40433ca542e9e334ba9b1580229ecd90b1 --- /dev/null +++ b/src/views/workbench/contract/CreditCardProtocol.vue @@ -0,0 +1,341 @@ + + + diff --git a/src/views/workbench/contract/FaceSignReviewView.vue b/src/views/workbench/contract/FaceSignReviewView.vue new file mode 100644 index 0000000000000000000000000000000000000000..974f53984b01e13a70d3f7742a5e5864a5c83e93 --- /dev/null +++ b/src/views/workbench/contract/FaceSignReviewView.vue @@ -0,0 +1,221 @@ + + + + + diff --git a/src/views/workbench/contract/FaceSignView.vue b/src/views/workbench/contract/FaceSignView.vue new file mode 100644 index 0000000000000000000000000000000000000000..b64b1b314fde02db23088744d218aa3c7b4124d9 --- /dev/null +++ b/src/views/workbench/contract/FaceSignView.vue @@ -0,0 +1,320 @@ + + + + + diff --git a/src/views/workbench/contract/IdentityCheck.vue b/src/views/workbench/contract/IdentityCheck.vue new file mode 100644 index 0000000000000000000000000000000000000000..8dee84e230e92530aa3fe62d1105c933d624f593 --- /dev/null +++ b/src/views/workbench/contract/IdentityCheck.vue @@ -0,0 +1,248 @@ + + + + + diff --git a/src/views/workbench/contract/ImageMaterial.vue b/src/views/workbench/contract/ImageMaterial.vue new file mode 100644 index 0000000000000000000000000000000000000000..197a982b171bc004f87cacb21e2fb516a55c6e0a --- /dev/null +++ b/src/views/workbench/contract/ImageMaterial.vue @@ -0,0 +1,209 @@ + + + diff --git a/src/views/workbench/contract/RiskEvaluation.vue b/src/views/workbench/contract/RiskEvaluation.vue new file mode 100644 index 0000000000000000000000000000000000000000..d730b71e21877e816eebbb337441966d8c7161e6 --- /dev/null +++ b/src/views/workbench/contract/RiskEvaluation.vue @@ -0,0 +1,361 @@ + + + diff --git a/src/views/workbench/contract/SubmitAudit.vue b/src/views/workbench/contract/SubmitAudit.vue new file mode 100644 index 0000000000000000000000000000000000000000..aa8dbd1796cb265ee9e36c3e43bc2f7320664bce --- /dev/null +++ b/src/views/workbench/contract/SubmitAudit.vue @@ -0,0 +1,182 @@ + + + diff --git a/src/views/workbench/contract/protocol.vue b/src/views/workbench/contract/protocol.vue new file mode 100644 index 0000000000000000000000000000000000000000..a6eadb032d9e8742addf9cb151693249ae049a39 --- /dev/null +++ b/src/views/workbench/contract/protocol.vue @@ -0,0 +1,67 @@ + + + diff --git a/src/views/workbench/message-reminder/MessageReminderView.vue b/src/views/workbench/message-reminder/MessageReminderView.vue new file mode 100644 index 0000000000000000000000000000000000000000..d2e27a7c9cdd8d44178b9a37908f6eb85b6a13d8 --- /dev/null +++ b/src/views/workbench/message-reminder/MessageReminderView.vue @@ -0,0 +1,450 @@ + + + + + diff --git a/src/views/workbench/products-recommended/ProductsRecommended.vue b/src/views/workbench/products-recommended/ProductsRecommended.vue new file mode 100644 index 0000000000000000000000000000000000000000..586399e607d0ee301a20cd28f7d74e4c07ff5a17 --- /dev/null +++ b/src/views/workbench/products-recommended/ProductsRecommended.vue @@ -0,0 +1,143 @@ + + + + + diff --git a/src/views/workbench/products-recommended/loan-products/ProductDetails.vue b/src/views/workbench/products-recommended/loan-products/ProductDetails.vue new file mode 100644 index 0000000000000000000000000000000000000000..ce411afdb6dba95c9daa4a761d5525cce6b53000 --- /dev/null +++ b/src/views/workbench/products-recommended/loan-products/ProductDetails.vue @@ -0,0 +1,263 @@ + + + + + diff --git a/src/views/workbench/schedule-reminder/AddReminder.vue b/src/views/workbench/schedule-reminder/AddReminder.vue new file mode 100644 index 0000000000000000000000000000000000000000..637a31dc8aef3070895335dbf44a0ee119cbc2ef --- /dev/null +++ b/src/views/workbench/schedule-reminder/AddReminder.vue @@ -0,0 +1,230 @@ + + + + + diff --git a/src/views/workbench/schedule-reminder/More.vue b/src/views/workbench/schedule-reminder/More.vue new file mode 100644 index 0000000000000000000000000000000000000000..955433e8856e79c8dbb72a874c45dc119bfa6d89 --- /dev/null +++ b/src/views/workbench/schedule-reminder/More.vue @@ -0,0 +1,147 @@ + + + + + diff --git a/src/views/workbench/upcoming-tasks/marketing-task/MarketingTask.vue b/src/views/workbench/upcoming-tasks/marketing-task/MarketingTask.vue new file mode 100644 index 0000000000000000000000000000000000000000..602d0b8de7c5e022575cc5bdc852272f48b5b203 --- /dev/null +++ b/src/views/workbench/upcoming-tasks/marketing-task/MarketingTask.vue @@ -0,0 +1,311 @@ + + + + + diff --git a/src/views/workbench/upcoming-tasks/marketing-task/PerMarketingAdd.vue b/src/views/workbench/upcoming-tasks/marketing-task/PerMarketingAdd.vue new file mode 100644 index 0000000000000000000000000000000000000000..28d226a935b45a42d8025583b0fe676b021a4e8b --- /dev/null +++ b/src/views/workbench/upcoming-tasks/marketing-task/PerMarketingAdd.vue @@ -0,0 +1,261 @@ + + + + + diff --git a/src/views/workbench/upcoming-tasks/marketing-task/company/ComAttractMarkDetail.vue b/src/views/workbench/upcoming-tasks/marketing-task/company/ComAttractMarkDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..81b0f3e816771cfdc118ac35ef318a5af9a18b35 --- /dev/null +++ b/src/views/workbench/upcoming-tasks/marketing-task/company/ComAttractMarkDetail.vue @@ -0,0 +1,1085 @@ + + + + + diff --git a/src/views/workbench/upcoming-tasks/marketing-task/company/ComPreMarkDetail.vue b/src/views/workbench/upcoming-tasks/marketing-task/company/ComPreMarkDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..4da34ff19a8424f25ba6ce27b07423d271624fa8 --- /dev/null +++ b/src/views/workbench/upcoming-tasks/marketing-task/company/ComPreMarkDetail.vue @@ -0,0 +1,1252 @@ + + + + + diff --git a/src/views/workbench/upcoming-tasks/marketing-task/company/ComProjectMarkDetail.vue b/src/views/workbench/upcoming-tasks/marketing-task/company/ComProjectMarkDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..452b5311b95ba32d817735cddf7cfccc63ca5d6d --- /dev/null +++ b/src/views/workbench/upcoming-tasks/marketing-task/company/ComProjectMarkDetail.vue @@ -0,0 +1,741 @@ + + + + + diff --git a/src/views/workbench/upcoming-tasks/marketing-task/company/ComVisitMarkDetail.vue b/src/views/workbench/upcoming-tasks/marketing-task/company/ComVisitMarkDetail.vue new file mode 100644 index 0000000000000000000000000000000000000000..8f0e1bbda2b81b38c97420efb5850be2e23522d4 --- /dev/null +++ b/src/views/workbench/upcoming-tasks/marketing-task/company/ComVisitMarkDetail.vue @@ -0,0 +1,1024 @@ + + + + + diff --git a/src/views/workbench/upcoming-tasks/marketing-task/time-axis/MarketHistoryNote.vue b/src/views/workbench/upcoming-tasks/marketing-task/time-axis/MarketHistoryNote.vue new file mode 100644 index 0000000000000000000000000000000000000000..a2c7effce5dcf76cbe7238f551cf9db938c3f1b9 --- /dev/null +++ b/src/views/workbench/upcoming-tasks/marketing-task/time-axis/MarketHistoryNote.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/src/views/workbench/upcoming-tasks/marketing-task/time-axis/MarketTimeLineNote.vue b/src/views/workbench/upcoming-tasks/marketing-task/time-axis/MarketTimeLineNote.vue new file mode 100644 index 0000000000000000000000000000000000000000..bdfadf9c09fb8c58cc98f47faee5d79f8daadec9 --- /dev/null +++ b/src/views/workbench/upcoming-tasks/marketing-task/time-axis/MarketTimeLineNote.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/src/views/workbench/upcoming-tasks/marketing-task/time-axis/TimeAxis.vue b/src/views/workbench/upcoming-tasks/marketing-task/time-axis/TimeAxis.vue new file mode 100644 index 0000000000000000000000000000000000000000..4bde36202f24f7615d3d3f90d2953465e313137c --- /dev/null +++ b/src/views/workbench/upcoming-tasks/marketing-task/time-axis/TimeAxis.vue @@ -0,0 +1,196 @@ + + + + + diff --git a/src/views/workbench/upcoming-tasks/marketing-task/time-axis/personal/perTelMarkTimeAxis.vue b/src/views/workbench/upcoming-tasks/marketing-task/time-axis/personal/perTelMarkTimeAxis.vue new file mode 100644 index 0000000000000000000000000000000000000000..95f42a67e00d0a387826f21fc305632ae37efb87 --- /dev/null +++ b/src/views/workbench/upcoming-tasks/marketing-task/time-axis/personal/perTelMarkTimeAxis.vue @@ -0,0 +1,230 @@ + + + + + diff --git a/src/views/workbench/upcoming-tasks/periodic-inspection/PeriodicInspectionHandle.vue b/src/views/workbench/upcoming-tasks/periodic-inspection/PeriodicInspectionHandle.vue new file mode 100644 index 0000000000000000000000000000000000000000..bdd9e5a293b9cda3c9cd5073e7476ab9e35d6349 --- /dev/null +++ b/src/views/workbench/upcoming-tasks/periodic-inspection/PeriodicInspectionHandle.vue @@ -0,0 +1,217 @@ + + + + + diff --git a/src/views/workbench/upcoming-tasks/risk-warning-handle/TaskListOperate.vue b/src/views/workbench/upcoming-tasks/risk-warning-handle/TaskListOperate.vue new file mode 100644 index 0000000000000000000000000000000000000000..e445846e513d64388f3a377f09a0131823a005de --- /dev/null +++ b/src/views/workbench/upcoming-tasks/risk-warning-handle/TaskListOperate.vue @@ -0,0 +1,347 @@ + + + + + diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000000000000000000000000000000000000..ef65a34b8240b4ab7b870ca614428abd10c4989e --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,41 @@ +{ + "compilerOptions": { + "target": "es6", + "module": "esnext", + "strict": true, + "jsx": "preserve", + "importHelpers": true, + "moduleResolution": "node", + "experimentalDecorators": true, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "suppressImplicitAnyIndexErrors":true, + "sourceMap": true, + "baseUrl": ".", + "types": [ + "webpack-env" + ], + "paths": { + "@/*": [ + "src/*" + ] + }, + "lib": [ + "esnext", + "dom", + "dom.iterable", + "scripthost" + ] + }, + "include": [ + "src/**/*.ts", + "src/**/*.tsx", + "src/**/*.vue", + "tests/**/*.ts", + "tests/**/*.tsx" + ], + "exclude": [ + "node_modules" + ] +} diff --git a/vue.config.js b/vue.config.js new file mode 100644 index 0000000000000000000000000000000000000000..71a64a0365ab3a4362278677c91952844ea6c526 --- /dev/null +++ b/vue.config.js @@ -0,0 +1,28 @@ +const path = require("path"); + +function resolve(dir) { + return path.join(__dirname, dir); +} + +// vue.config.js +module.exports = { + assetsDir: "assets", + publicPath: "./", + productionSourceMap: false, + lintOnSave: false, + css: { + loaderOptions: { + less: { + lessOptions: { + javascriptEnabled: true, + }, + }, + }, + }, + devServer: { + disableHostCheck: true, + headers: { + "Access-Control-Allow-Origin": "*", + }, + }, +};