Browse Source

下钻页面表格提交

feature
SongZhen 2 years ago
parent
commit
2b611cc2d1
  1. 240
      src/assets/css/workflow.scss
  2. BIN
      src/assets/images/home/greenColumn.png
  3. BIN
      src/assets/images/home/redColumn.png
  4. BIN
      src/assets/images/home/yellowColumn.png
  5. 4148
      src/assets/images/home/在线JSON校验格式化工具(Be JSON).html
  6. 41
      src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/1.js
  7. BIN
      src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/banner.gif
  8. BIN
      src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/bejson-q.png
  9. 12678
      src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/bejson_index20200722.min.js
  10. 150
      src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/common.css
  11. BIN
      src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/csharp-q.png
  12. 12
      src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/global.min.css
  13. 1
      src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/global.min.js
  14. 67
      src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/hm.js
  15. 1
      src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/indexCodeMirror.min.css
  16. 7
      src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/indexCodeMirror.min.js
  17. BIN
      src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/java-q.png
  18. 544
      src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/jsonlint.js
  19. BIN
      src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/logo.png
  20. 501
      src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/lz-string-1.4.4.js
  21. 131
      src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/lzma.js
  22. BIN
      src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/php-q.png
  23. BIN
      src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/suspend.gif
  24. 13
      src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/swiper.min.css
  25. 14
      src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/swiper.min.js
  26. BIN
      src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/upyun_300.png
  27. 139
      src/components/Dialog/index.vue
  28. 93
      src/components/GridTree/nodeWrap.vue
  29. 88
      src/components/JwTree/nodeWrap.vue
  30. 97
      src/components/Tree/nodeWrap.vue
  31. 10
      src/router/index.js
  32. 277
      src/views/dataBoard/organizational/dangTree/index.vue
  33. 281
      src/views/dataBoard/organizational/gridTree/index.vue
  34. 285
      src/views/dataBoard/organizational/jwTree/index.vue
  35. 893
      src/views/dataBoard/organizational/microgrid/components/popDetails.vue
  36. 86
      src/views/dataBoard/organizational/microgrid/components/reportAnEvent.vue
  37. 212
      src/views/dataBoard/organizational/microgrid/index.vue

240
src/assets/css/workflow.scss

@ -10,22 +10,6 @@
cursor: pointer;
}
@mixin flowLevwlCommon {
position: absolute;
width: 100%;
margin-bottom: 45px;
background: linear-gradient(90deg, rgba(14, 121, 213, 0.14) 86%, rgba(79, 175, 255, 0) 100%);
color: #fff;
font-size: 16px;
}
@mixin flowLevelAfter {
position: absolute;
content: "";
display: block;
background-size: 100%;
}
.ant-btn {
line-height: 1.5;
display: inline-block;
@ -1015,6 +999,10 @@ html {
right: -1px
}
.dingflow-design {
overflow-x: auto;
}
.dingflow-design .box-scale {
transform: scale(1);
display: inline-block;
@ -1181,7 +1169,11 @@ html {
}
.dingflow-design .condition-node {
cursor: pointer;
.gotoDesc {
cursor: pointer;
}
// min-height: 220px
}
@ -1379,218 +1371,4 @@ html {
.ant-btn {
position: relative
}
.wrap {
.content {
margin-top: 65px;
padding: 0 17px;
position: relative;
transition: transform 0.3s ease-in-out;
transform-origin: 50% 50%;
.contentList {
position: relative;
width: 100%;
height: 109px;
}
.flowLevel-1 {
@include flowLevwlCommon;
top: -10px;
height: 164px;
line-height: 164px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 51px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/dwbg.png);
}
}
}
.flowLevel-2,
.flowLevel-3,
.flowLevel-4,
.flowLevel-5,
.flowLevel-6,
.flowLevel-7 {
@include flowLevwlCommon;
height: 126px;
}
.flowLevel-2 {
top: 181px;
line-height: 110px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 26px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/dzb.png);
}
}
}
.flowLevel-3 {
top: 329px;
line-height: 120px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 31px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/lydxz.png);
}
}
}
.flowLevel-4 {
top: 475px;
line-height: 128px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/dyzxh.png);
}
}
}
.flowLevel-5 {
top: 623px;
line-height: 130px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/lxjt.png);
}
}
}
.flowLevel-6 {
top: 771px;
line-height: 130px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/lxjt.png);
}
}
}
.flowLevel-7 {
top: 922px;
line-height: 130px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/lxjt.png);
}
}
}
.flowLevel-8 {
@include flowLevwlCommon;
top: 1070px;
height: 90px;
line-height: 90px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 14px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/lxjt.png);
}
}
}
.flowLevel-9 {
@include flowLevwlCommon;
top: 1179px;
height: 135px;
line-height: 135px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/dyzxh.png);
}
}
}
.flowLevel-10 {
@include flowLevwlCommon;
top: 1338px;
height: 135px;
line-height: 135px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/lxjt.png);
}
}
}
}
}

BIN
src/assets/images/home/greenColumn.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

BIN
src/assets/images/home/redColumn.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 696 KiB

BIN
src/assets/images/home/yellowColumn.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

4148
src/assets/images/home/在线JSON校验格式化工具(Be JSON).html

File diff suppressed because one or more lines are too long

41
src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/1.js

@ -0,0 +1,41 @@
function jiazai_dag_all(blockid){
switch (blockid){
case 'INDEX_PC_HENGFU':{
document.writeln("<script async src=\"https:\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>");
document.writeln("<!-- bejson,970x90 -->");
document.writeln("<ins class=\"adsbygoogle\"");
document.writeln(" style=\"display:inline-block;width:970px;height:90px\"");
document.writeln(" data-ad-client=\"ca-pub-1130438465287629\"");
document.writeln(" data-ad-slot=\"8181570098\"><\/ins>");
document.writeln("<script>");
document.writeln(" (adsbygoogle = window.adsbygoogle || []).push({});");
document.writeln("<\/script>");
break;
}
case 'INDEX_ONLY_PC_HENGFU':{
// document.writeln("<script async src=\"https:\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>");
// document.writeln("<!-- bejson,970x90 -->");
// document.writeln("<ins class=\"adsbygoogle\"");
// document.writeln(" style=\"display:inline-block;width:970px;height:90px\"");
// document.writeln(" data-ad-client=\"ca-pub-1130438465287629\"");
// document.writeln(" data-ad-slot=\"8181570098\"><\/ins>");
// document.writeln("<script>");
// document.writeln(" (adsbygoogle = window.adsbygoogle || []).push({});");
// document.writeln("<\/script>");
document.writeln('<a href="http://www.qfy.info" rel="nofollow" target="_blank"><img src="//www.bejson.com/static/bejson/img/qfy/banner.gif"></a>');
break;
}
case 'UNDER_CATEGORY':{
document.writeln("<a href=\"\/knownjson\/aboutjson\/\" target=\"_blank\" style=\"font-size: 12px;color:black;\">什么是JSON<\/a>");
document.writeln("<a href=\"\/knownjson\/demo\/\" target=\"_blank\" style=\"font-size: 12px;color:black;\">JSON的用法<\/a>");
document.writeln("<a href=\"\/jsoneditoronline\/\" target=\"_blank\" style=\"font-size: 12px;\">JSON在线编辑<\/a>");
document.writeln("<a rel=\"external nofollow\" href=\"https:\/\/www.bejson.com\/1111tencent.php\" target=\"_blank\" style=\"color: blue;\">腾讯云双11(88元\/年)<\/a>");
document.writeln("<a rel=\"nofollow\" style=\"color: red;\" href=\"http:\/\/y3e.cn\/wBag2\" target=\"_blank\">11.11CN2香港\/美国服务器198元\/年<\/a>");
document.writeln("<a href=\"\/apidoc\/jquery\/\" target=\"_blank\">jQuery文档<\/a>");
document.writeln("<a rel=\"external nofollow\" href=\"https:\/\/www.bejson.com\/new1111tuan.php\" target=\"_blank\" style=\"color: red;\" >阿*里*云超低价<\/a>");
document.writeln("<a rel=\"external nofollow\" href=\"https:\/\/www.bejson.com\/1111tencent.php\" target=\"_blank\" style=\"color: blue;\">腾讯云双11(88元\/年)<\/a>");
break;
}
}
}

BIN
src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/banner.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 KiB

BIN
src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/bejson-q.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

12678
src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/bejson_index20200722.min.js

File diff suppressed because it is too large

150
src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/common.css

@ -0,0 +1,150 @@
.xf2-gg-left,.xf-gg-right{
position: fixed;
left: 50%;
top: 50%;
height: 200px;
width: 120px;
border-radius: 5px;
overflow: hidden;
margin-top: -100px;
margin-left: -714px;
z-index: 99;
}
.navbar .double-row .dropdown-menu li{
width: 33%!important;
}
.navbar .double-row .dropdown-menu{
width: 630px!important;
}
.google-auto-placed{
display: none;
}
.xf2-gg-left .alert-dismissable,.xf-gg-right .alert-dismissable{
padding: 15px;
text-align: center;
}
.xf2-gg-left h1{
color: #940000;
margin-top: 0;
}
.xf-gg-right{
left: auto;
right: 15px;
}
.xf2-gg-left a,.xf-gg-rightQ a{
display: block;
width: 100%;
height: 100%;
margin: 0;
}
.xf2-gg-left a img,.xf-gg-right a img{
width: 100%;
}
.xf2-gg-left .close,.xf-gg-right .close{
position: absolute;
top: 5px;
right: 7px;
color: #333;
}
.top1-link{
position: relative;
width: 1160px;
z-index: 99;
height: 40px;
}
.top1-link:after{
content: '';
display: block;
clear: both;
position: absolute;
height: 40px;
width: 1160px;
background-color: #f6f6f6;
border: 1px solid #eee;
top: 50%;
left: 0;
margin-top: -20px;}
.top1-link a{margin: 10px;width: auto;color: #666666;font-size: 12px;display: block;float: left;position: relative;z-index: 2}
.toast-area {
position: fixed;
top: 3rem;
left: 50%;
z-index: 99999;
width: 350px;
margin-left: -175px;
}
.toast-area .toast {
margin-top: 1rem;
margin-left: auto;
margin-right: auto;
position: relative;
}
.toast-area .toast:first-child {
}
.toast-header strong.mr-auto {
display: block;
}
.toast-custom .mr-auto {
display: none !important;
}
.toast-custom .toast-header {
height: 3px;
padding: 0;
}
.toast-custom button.close {
position: absolute;
top: 12px;
right: 10px;
color: #999 !important;
}
.toast-custom-success {
background-color: #f3fff6;
color: #28a745;
padding-right: 2.4rem;
padding-left: 2.5rem;
}
.toast-custom-error {
background-color: #fff4f5;
color: #dc3545;
padding-right: 2.4rem;
padding-left: 2.5rem;
}
.toast-custom-warning {
background-color: #fff9e6;
color: #e0a800;
padding-right: 2.4rem;
padding-left: 2.5rem;
}
.toast-custom-success i, .toast-custom-error i, .toast-custom-warning i {
position: absolute;
font-size: 0.625rem;
left: 10px;
top: 17px;
color: #fff;
width: 18px;
height: 18px;
border-radius: 9px;
text-align: center;
line-height: 19px;
background-color: #dc3545;
}
.toast-custom-success i {
background-color: #28a745;
}
.toast-custom-warning i {
background-color: transparent;
color: #e0a800;
font-size: 1rem;
}

BIN
src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/csharp-q.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

12
src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/global.min.css

File diff suppressed because one or more lines are too long

1
src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/global.min.js

File diff suppressed because one or more lines are too long

67
src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/hm.js

@ -0,0 +1,67 @@
(function(){var h={},mt={},c={id:"4aa52dbe1c3f25aa133d68ee023b1c61",dm:["bejson.com"],js:"tongji.baidu.com/hm-web/js/",etrk:[],cetrk:[],cptrk:[],icon:'',ctrk:["%5b%22https%3a%5c%2f%5c%2fbejson.com%22%2c%22https%3a%5c%2f%5c%2fbejson.com%5c%2fenc%5c%2fbase64%22%2c%22https%3a%5c%2f%5c%2fbejson.com%5c%2fui%5c%2fcompress_img%22%5d"],vdur:1800000,age:31536000000,qiao:0,pt:0,spa:0,aet:'',hca:'F7B31BABA7E85D5D',ab:'0',v:1,brd:'RouOJeC62ZcQjqRq3c1Xb7nGBkFeiR3TH6aoAYcNH4aWkOhfgY2hEG0PWM8g0K4McUJuogKKymOTHrAF_2uxOjjg8UtVJeC6EG0Ptf8g0f5'};var s=void 0,t=!0,u=null,x=!1;mt.cookie={};mt.cookie.set=function(e,a,b){var k;b.C&&(k=new Date,k.setTime(k.getTime()+b.C));document.cookie=e+"="+a+(b.domain?"; domain="+b.domain:"")+(b.path?"; path="+b.path:"")+(k?"; expires="+k.toGMTString():"")+(b.dc?"; secure":"")};mt.cookie.get=function(e){return(e=RegExp("(^| )"+e+"=([^;]*)(;|$)").exec(document.cookie))?e[2]:u};
mt.cookie.rb=function(e,a){try{var b="Hm_ck_"+ +new Date;mt.cookie.set(b,"42",{domain:e,path:a,C:s});var k="42"===mt.cookie.get(b)?"1":"0";mt.cookie.set(b,"",{domain:e,path:a,C:-1});return k}catch(d){return"0"}};mt.event={};mt.event.c=function(e,a,b,k){e.addEventListener?e.addEventListener(a,b,k||x):e.attachEvent&&e.attachEvent("on"+a,function(d){b.call(e,d)})};
(function(){var e=mt.event;mt.lang={};mt.lang.i=function(a,b){return"[object "+b+"]"==={}.toString.call(a)};mt.lang.j=function(a){return mt.lang.i(a,"Function")};mt.lang.J=function(a){return mt.lang.i(a,"Object")};mt.lang.Wb=function(a){return mt.lang.i(a,"Number")&&isFinite(a)};mt.lang.Z=function(a){return mt.lang.i(a,"String")};mt.lang.isArray=function(a){return mt.lang.i(a,"Array")};mt.lang.n=function(a){return a.replace?a.replace(/'/g,"'0").replace(/\*/g,"'1").replace(/!/g,"'2"):a};mt.lang.trim=
function(a){return a.replace(/^\s+|\s+$/g,"")};mt.lang.find=function(a,b,k){if(mt.lang.isArray(a)&&mt.lang.j(b))for(var d=a.length,f=0;f<d;f++)if(f in a&&b.call(k||a,a[f],f))return a[f];return u};mt.lang.X=function(a,b){return mt.lang.find(a,function(k){return k===b})!=u};mt.lang.filter=function(a,b){var k=-1,d=0,f=a==u?0:a.length,g=[];if(mt.lang.j(b))for(;++k<f;){var l=a[k];b(l,k,a)&&(g[d++]=l)}return g};mt.lang.unique=function(a,b){var k=a.length,d=a.slice(0),f,g;for(mt.lang.j(b)||(b=function(b,
d){return b===d});0<--k;){g=d[k];for(f=k;f--;)if(b(g,d[f])){d.splice(k,1);break}}return d};mt.lang.Zb=function(a,b){function k(b){b=(d+d+Number(b).toString(2)).slice(-64);return[parseInt(b.slice(0,32),2),parseInt(b.slice(-32),2)]}var d="00000000000000000000000000000000",f=k(a),g=k(b);return parseInt((d+((f[0]|g[0])>>>0).toString(2)).slice(-32)+(d+((f[1]|g[1])>>>0).toString(2)).slice(-32),2)};mt.lang.extend=function(a){for(var b=Array.prototype.slice.call(arguments,1),k=0;k<b.length;k++){var d=b[k],
f;for(f in d)Object.prototype.hasOwnProperty.call(d,f)&&d[f]&&(a[f]=d[f])}return a};mt.lang.Ob=function(a){function b(b,d){var a=window.history,g=a[b];a[b]=function(){g.apply(a,arguments);mt.lang.j(d)&&d()}}b("pushState",function(){a()});b("replaceState",function(){a()});e.c(window,window.history.pushState?"popstate":"hashchange",function(){a()})};return mt.lang})();mt.url={};mt.url.f=function(e,a){var b=e.match(RegExp("(^|&|\\?|#)("+a+")=([^&#]*)(&|$|#)",""));return b?b[3]:u};
mt.url.Sa=function(e){return(e=e.match(/^(https?:\/\/)?([^\/\?#]*)/))?e[2].replace(/.*@/,""):u};mt.url.V=function(e){return(e=mt.url.Sa(e))?e.replace(/:\d+$/,""):e};mt.url.pb=function(e){var a=document.location.href,a=a.replace(/^https?:\/\//,"");return 0===a.indexOf(e)};mt.url.qb=function(e,a){e="."+e.replace(/:\d+/,"");a="."+a.replace(/:\d+/,"");var b=e.indexOf(a);return-1<b&&b+a.length===e.length};
(function(){var e=mt.lang,a=mt.url;mt.d={};mt.d.La=function(b){return document.getElementById(b)};mt.d.Vb=function(b){if(!b)return u;try{b=String(b);if(0===b.indexOf("!HMCQ!"))return b;if(0===b.indexOf("!HMCC!"))return document.querySelector(b.substring(6,b.length));for(var k=b.split(">"),d=document.body,a=k.length-1;0<=a;a--)if(-1<k[a].indexOf("#")){var g=k[a].split("#")[1];(d=document.getElementById(g))||(d=document.getElementById(decodeURIComponent(g)));k=k.splice(a+1,k.length-(a+1));break}for(b=
0;d&&b<k.length;){var l=String(k[b]).toLowerCase();if(!("html"===l||"body"===l)){var a=0,e=k[b].match(/\[(\d+)\]/i),g=[];if(e)a=e[1]-1,l=l.split("[")[0];else if(1!==d.childNodes.length){for(var p=0,n=0,m=d.childNodes.length;n<m;n++){var q=d.childNodes[n];1===q.nodeType&&q.nodeName.toLowerCase()===l&&p++;if(1<p)return u}if(1!==p)return u}for(p=0;p<d.childNodes.length;p++)1===d.childNodes[p].nodeType&&d.childNodes[p].nodeName.toLowerCase()===l&&g.push(d.childNodes[p]);if(!g[a])return u;d=g[a]}b++}return d}catch(v){return u}};
mt.d.fa=function(b,a){var d=[],f=[];if(!b)return f;for(;b.parentNode!=u;){for(var g=0,l=0,e=b.parentNode.childNodes.length,p=0;p<e;p++){var n=b.parentNode.childNodes[p];if(n.nodeName===b.nodeName&&(g++,n===b&&(l=g),0<l&&1<g))break}if((e=""!==b.id)&&a){d.unshift("#"+encodeURIComponent(b.id));break}else e&&(e="#"+encodeURIComponent(b.id),e=0<d.length?e+">"+d.join(">"):e,f.push(e)),d.unshift(encodeURIComponent(String(b.nodeName).toLowerCase())+(1<g?"["+l+"]":""));b=b.parentNode}f.push(d.join(">"));return f};
mt.d.Xa=function(b){return(b=mt.d.fa(b,t))&&b.length?String(b[0]):""};mt.d.Wa=function(b){return mt.d.fa(b,x)};mt.d.Ma=function(b){var a;for(a="A";(b=b.parentNode)&&1==b.nodeType;)if(b.tagName==a)return b;return u};mt.d.Pa=function(b){return 9===b.nodeType?b:b.ownerDocument||b.document};mt.d.Ua=function(b){var a={top:0,left:0};if(!b)return a;var d=mt.d.Pa(b).documentElement;"undefined"!==typeof b.getBoundingClientRect&&(a=b.getBoundingClientRect());return{top:a.top+(window.pageYOffset||d.scrollTop)-
(d.clientTop||0),left:a.left+(window.pageXOffset||d.scrollLeft)-(d.clientLeft||0)}};mt.d.gc=function(b,a){if(b)for(var d=b.childNodes,f=0,g=d.length;f<g;f++){var e=d[f];if(e&&3===e.nodeType)return d=e.textContent||e.innerText||e.nodeValue||"",e.textContent?e.textContent=a:e.innerText?e.innerText=a:e.nodeValue=a,d}};mt.d.ec=function(b,a){if(!b)return{};var d={};a=a||{};for(var f in a)a.hasOwnProperty(f)&&a[f]!==s&&(d[f]=b.getAttribute(f)||"",b.setAttribute(f,a[f]));return d};mt.d.getAttribute=function(b,
a){var d=b.getAttribute&&b.getAttribute(a)||u;if(!d&&b.attributes&&b.attributes.length)for(var f=b.attributes,e=f.length,l=0;l<e;l++)f[l].nodeName===a&&(d=f[l].nodeValue);return d};mt.d.Qa=function(b){var a="document";b.tagName!==s&&(a=b.tagName);return a.toLowerCase()};mt.d.Za=function(b){var a="";b.textContent?a=e.trim(b.textContent):b.innerText&&(a=e.trim(b.innerText));a&&(a=a.replace(/\s+/g," ").substring(0,255));return a};mt.d.Ub=function(b,k){var d;e.Z(b)&&0===String(b).indexOf("!HMCQ!")?(d=
String(b),d=a.f(document.location.href,d.substring(6,d.length))):e.Z(b)||(d=mt.d.Qa(b),"input"===d&&k&&("button"===b.type||"submit"===b.type)?d=e.trim(b.value)||"":"input"===d&&!k&&"password"!==b.type?d=e.trim(b.value)||"":"img"===d?(d=mt.d.getAttribute,d=d(b,"alt")||d(b,"title")||d(b,"src")):d="body"===d||"html"===d?["(hm-default-content-for-",d,")"].join(""):mt.d.Za(b));return String(d||"").substring(0,255)};(function(){(mt.d.ac=function(){function b(){if(!b.K){b.K=t;for(var a=0,d=f.length;a<d;a++)f[a]()}}
function a(){try{document.documentElement.doScroll("left")}catch(d){setTimeout(a,1);return}b()}var d=x,f=[],e;document.addEventListener?e=function(){document.removeEventListener("DOMContentLoaded",e,x);b()}:document.attachEvent&&(e=function(){"complete"===document.readyState&&(document.detachEvent("onreadystatechange",e),b())});(function(){if(!d)if(d=t,"complete"===document.readyState)b.K=t;else if(document.addEventListener)document.addEventListener("DOMContentLoaded",e,x),window.addEventListener("load",
b,x);else if(document.attachEvent){document.attachEvent("onreadystatechange",e);window.attachEvent("onload",b);var f=x;try{f=window.frameElement==u}catch(r){}document.documentElement.doScroll&&f&&a()}})();return function(a){b.K?a():f.push(a)}}()).K=x})();return mt.d})();
(function(){var e=mt.event;mt.e={};mt.e.mb=/msie (\d+\.\d+)/i.test(navigator.userAgent);mt.e.cookieEnabled=navigator.cookieEnabled;mt.e.javaEnabled=navigator.javaEnabled();mt.e.language=navigator.language||navigator.browserLanguage||navigator.systemLanguage||navigator.userLanguage||"";mt.e.Ab=(window.screen.width||0)+"x"+(window.screen.height||0);mt.e.colorDepth=window.screen.colorDepth||0;mt.e.Ya=function(){var a;a=a||document;return parseInt(window.pageYOffset||a.documentElement.scrollTop||a.body&&
a.body.scrollTop||0,10)};mt.e.$a=function(){var a=document;return parseInt(window.innerHeight||a.documentElement.clientHeight||a.body&&a.body.clientHeight||0,10)};mt.e.W=function(){return mt.e.Ya()+mt.e.$a()};mt.e.sa=0;mt.e.bb=function(){var a=document;return parseInt(window.innerWidth||a.documentElement.clientWidth||a.body.offsetWidth||0,10)};mt.e.orientation=0;(function(){function a(){var a=0;window.orientation!==s&&(a=window.orientation);screen&&(screen.orientation&&screen.orientation.angle!==
s)&&(a=screen.orientation.angle);mt.e.orientation=a;mt.e.sa=mt.e.bb()}a();e.c(window,"orientationchange",a)})();return mt.e})();mt.w={};mt.w.parse=function(e){return(new Function("return ("+e+")"))()};
mt.w.stringify=function(){function e(a){/["\\\x00-\x1f]/.test(a)&&(a=a.replace(/["\\\x00-\x1f]/g,function(a){var f=b[a];if(f)return f;f=a.charCodeAt();return"\\u00"+Math.floor(f/16).toString(16)+(f%16).toString(16)}));return'"'+a+'"'}function a(a){return 10>a?"0"+a:a}var b={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};return function(b){switch(typeof b){case "undefined":return"undefined";case "number":return isFinite(b)?String(b):"null";case "string":return e(b);case "boolean":return String(b);
default:if(b===u)return"null";if(b instanceof Array){var d=["["],f=b.length,g,l,r;for(l=0;l<f;l++)switch(r=b[l],typeof r){case "undefined":case "function":case "unknown":break;default:g&&d.push(","),d.push(mt.w.stringify(r)),g=1}d.push("]");return d.join("")}if(b instanceof Date)return'"'+b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+"T"+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())+'"';g=["{"];l=mt.w.stringify;for(f in b)if(Object.prototype.hasOwnProperty.call(b,f))switch(r=
b[f],typeof r){case "undefined":case "unknown":case "function":break;default:d&&g.push(","),d=1,g.push(l(f)+":"+l(r))}g.push("}");return g.join("")}}}();mt.localStorage={};mt.localStorage.Q=function(){if(!mt.localStorage.g)try{mt.localStorage.g=document.createElement("input"),mt.localStorage.g.type="hidden",mt.localStorage.g.style.display="none",mt.localStorage.g.addBehavior("#default#userData"),document.getElementsByTagName("head")[0].appendChild(mt.localStorage.g)}catch(e){return x}return t};
mt.localStorage.set=function(e,a,b){var k=new Date;k.setTime(k.getTime()+(b||31536E6));try{window.localStorage?(a=k.getTime()+"|"+a,window.localStorage.setItem(e,a)):mt.localStorage.Q()&&(mt.localStorage.g.expires=k.toUTCString(),mt.localStorage.g.load(document.location.hostname),mt.localStorage.g.setAttribute(e,a),mt.localStorage.g.save(document.location.hostname))}catch(d){}};
mt.localStorage.get=function(e){if(window.localStorage){if(e=window.localStorage.getItem(e)){var a=e.indexOf("|"),b=e.substring(0,a)-0;if(b&&b>(new Date).getTime())return e.substring(a+1)}}else if(mt.localStorage.Q())try{return mt.localStorage.g.load(document.location.hostname),mt.localStorage.g.getAttribute(e)}catch(k){}return u};
mt.localStorage.remove=function(e){if(window.localStorage)window.localStorage.removeItem(e);else if(mt.localStorage.Q())try{mt.localStorage.g.load(document.location.hostname),mt.localStorage.g.removeAttribute(e),mt.localStorage.g.save(document.location.hostname)}catch(a){}};mt.sessionStorage={};mt.sessionStorage.set=function(e,a){try{window.sessionStorage&&window.sessionStorage.setItem(e,a)}catch(b){}};
mt.sessionStorage.get=function(e){try{return window.sessionStorage?window.sessionStorage.getItem(e):u}catch(a){return u}};mt.sessionStorage.remove=function(e){try{window.sessionStorage&&window.sessionStorage.removeItem(e)}catch(a){}};
(function(){var e=mt.w;mt.A={};mt.A.log=function(a,b){var e=new Image,d="mini_tangram_log_"+Math.floor(2147483648*Math.random()).toString(36);window[d]=e;e.onload=function(){e.onload=u;e=window[d]=u;b&&b(a)};e.src=a};mt.A.get=function(a,b){return mt.A.wa({url:a,method:"GET",data:b.data,timeout:b.timeout,noCache:t,success:b.success,fail:b.fail})};mt.A.wa=function(a){function b(a){var b=[],d;for(d in a)a.hasOwnProperty(d)&&b.push(encodeURIComponent(d)+"="+encodeURIComponent(a[d]));return b.join("&")}
function k(b){var d=a[b];if(d)if(q&&clearTimeout(q),"success"!==b)d&&d(m);else{var f;try{f=e.parse(m.responseText)}catch(g){d&&d(m);return}d&&d(m,f)}}a=a||{};var d=a.data;"object"===typeof d&&(d=b(a.data||{}));var f=a.url,g=(a.method||"GET").toUpperCase(),l=a.headers||{},r=a.timeout||0,p=a.noCache||x,n=a.withCredentials||x,m,q;try{a:if(window.XMLHttpRequest)m=new XMLHttpRequest;else{try{m=new ActiveXObject("Microsoft.XMLHTTP");break a}catch(v){}m=s}"GET"===g&&(d&&(f+=(0<=f.indexOf("?")?"&":"?")+d,
d=u),p&&(f+=(0<=f.indexOf("?")?"&":"?")+"b"+ +new Date+"=1"));m.open(g,f,t);m.onreadystatechange=function(){if(4===m.readyState){var a=0;try{a=m.status}catch(b){k("fail");return}200<=a&&300>a||304===a||1223===a?k("success"):k("fail")}};for(var w in l)l.hasOwnProperty(w)&&m.setRequestHeader(w,l[w]);n&&(m.withCredentials=t);r&&(q=setTimeout(function(){m.onreadystatechange=function(){};m.abort();k("fail")},r));m.send(d)}catch(A){k("fail")}return m};return mt.A})();
h.o={kb:"http://tongji.baidu.com/hm-web/welcome/ico",aa:"hm.baidu.com/hm.gif",xa:/^(tongji|hmcdn).baidu.com$/,Gb:"tongji.baidu.com",hb:"hmmd",ib:"hmpl",Jb:"utm_medium",gb:"hmkw",Lb:"utm_term",eb:"hmci",Ib:"utm_content",jb:"hmsr",Kb:"utm_source",fb:"hmcu",Hb:"utm_campaign",ka:0,B:Math.round(+new Date/1E3),protocol:"https:"===document.location.protocol?"https:":"http:",L:"https:",Da:6E5,bc:5E3,Ea:5,ca:1024,G:2147483647,ra:"hca cc cf ci ck cl cm cp cu cw ds vl ep et ja ln lo lt rnd si su v cv lv api sn r ww p u tt".split(" "),
ga:t,Pb:{id:"data-hm-id",Tb:"data-hm-class",jc:"data-hm-xpath",content:"data-hm-content",hc:"data-hm-tag",link:"data-hm-link"},Rb:"data-hm-enabled",Qb:"data-hm-disabled",xb:"https://hmcdn.baidu.com/static/tongji/plugins/",na:["UrlChangeTracker"],Nb:{$b:0,ic:1,Xb:2},Yb:"https://fclog.baidu.com/log/ocpcagl?type=behavior&emd=euc"};
(function(){var e={t:{},c:function(a,b){this.t[a]=this.t[a]||[];this.t[a].push(b)},k:function(a,b){this.t[a]=this.t[a]||[];for(var e=this.t[a].length,d=0;d<e;d++)this.t[a][d](b)}};return h.s=e})();
(function(){var e=mt.lang,a=/^https?:\/\//,b={Oa:function(a){var b;try{b=JSON.parse(decodeURIComponent(a[0]))}catch(f){}return b},la:function(a,d){return b.ma(h.b&&h.b.a&&h.b.a.u,a,d)||b.ma(document.location.href,a,d)},ma:function(b,d,f){if(b===s)return x;a.test(d)||(b=b.replace(a,""));d=d.replace(/\/$/,"");b=b.replace(/\/$/,"");f&&(b=b.replace(/^(https?:\/\/)?www\./,"$1"));return RegExp("^"+d.replace(/[?.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*")+"$").test(b)},H:function(a,d){var f=b.Oa(a);if(!e.i(f,
"Undefined")){if(e.isArray(f)){for(var g=0;g<f.length;g++)if(b.la(f[g],d))return t;return x}if(e.J(f)){var g=[],l;for(l in f)f.hasOwnProperty(l)&&b.la(l,d)&&(g=g.concat(f[l]));return g}}}};return h.S=b})();
(function(){function e(b,e){var d=document.createElement("script");d.charset="utf-8";a.j(e)&&(d.readyState?d.onreadystatechange=function(){if("loaded"===d.readyState||"complete"===d.readyState)d.onreadystatechange=u,e()}:d.onload=function(){e()});d.src=b;var f=document.getElementsByTagName("script")[0];f.parentNode.insertBefore(d,f)}var a=mt.lang;return h.load=e})();
(function(){var e=h.o,a={D:function(){if(""!==c.icon){var a=c.icon.split("|"),k=e.kb+"?s="+c.id,d="https://hmcdn.baidu.com/static"+a[0]+".gif";document.write("swf"===a[1]||"gif"===a[1]?'<a href="'+k+'" target="_blank"><img border="0" src="'+d+'" width="'+a[2]+'" height="'+a[3]+'"></a>':'<a href="'+k+'" target="_blank">'+a[0]+"</a>")}}};h.s.c("pv-b",a.D);return a})();
(function(){var e=mt.url,a=mt.cookie,b=mt.localStorage,k=mt.sessionStorage,d={getData:function(d){try{return a.get(d)||k.get(d)||b.get(d)}catch(e){}},setData:function(f,e,l){try{a.set(f,e,{domain:d.I(),path:d.U(),C:l}),l?b.set(f,e,l):k.set(f,e)}catch(r){}},removeData:function(e){try{a.set(e,"",{domain:d.I(),path:d.U(),C:-1}),k.remove(e),b.remove(e)}catch(g){}},I:function(){for(var a=document.location.hostname,b=0,d=c.dm.length;b<d;b++)if(e.qb(a,c.dm[b]))return c.dm[b].replace(/(:\d+)?[/?#].*/,"");
return a},U:function(){for(var a=0,b=c.dm.length;a<b;a++){var d=c.dm[a];if(-1<d.indexOf("/")&&e.pb(d))return d.replace(/^[^/]+(\/.*)/,"$1")+"/"}return"/"}};return h.R=d})();
(function(){var e=mt.lang,a=mt.d,b=h.S,k={Ha:function(d,e){return function(g){var l=g.target||g.srcElement;if(l){var r=b.H(e)||[],p=l.getAttribute(d.P);g=g.clientX+":"+g.clientY;if(p&&p===g)l.removeAttribute(d.P);else if(0<r.length&&(l=a.Wa(l))&&l.length)if(r=l.length,p=l[l.length-1],1E4>r*p.split(">").length)for(p=0;p<r;p++)k.qa(d,l[p]);else k.qa(d,p)}}},qa:function(a,b){for(var g={},l=String(b).split(">").length,k=0;k<l;k++)g[b]="",/\[1\]$/.test(b)&&(g[b.substring(0,b.lastIndexOf("["))]=""),/\]$/.test(b)||
(g[b+"[1]"]=""),b=b.substring(0,b.lastIndexOf(">"));a&&(e.J(a)&&a.ba)&&a.ba(g)},zb:function(a,b){return function(e){(e.target||e.srcElement).setAttribute(a.P,e.clientX+":"+e.clientY);a&&a.N&&(b?a.N(b):a.N("#"+encodeURIComponent(this.id),e.type))}}};return h.Ia=k})();
(function(){var e=mt.d,a=mt.event,b=h.S,k=h.Ia,d={P:"HM_fix",ua:function(){a.c(document,"click",k.Ha(d,c.etrk),t);if(!document.addEventListener)for(var f=b.H(c.etrk)||[],g=0;g<f.length;g++){var l=f[g];-1===l.indexOf(">")&&(0===l.indexOf("#")&&(l=l.substring(1)),(l=e.La(l))&&a.c(l,"click",k.zb(d),t))}},ba:function(a){for(var e=b.H(c.etrk)||[],k=0;k<e.length;k++){var r=e[k];a.hasOwnProperty(r)&&d.N(r)}},N:function(a,b){h.b.a.et=1;h.b.a.ep="{id:"+a+",eventType:"+(b||"click")+"}";h.b.m()}};h.s.c("pv-b",
d.ua);return d})();
(function(){var e=mt.d,a=mt.lang,b=mt.event,k=mt.e,d=h.o,f=h.S,g=[],l={ta:function(){c.ctrk&&0<c.ctrk.length&&(b.c(document,"mouseup",l.Ca()),b.c(window,"unload",function(){l.M()}),setInterval(function(){l.M()},d.Da))},Ca:function(){return function(a){if(f.H(c.ctrk,t)&&(a=l.Na(a),""!==a)){var b=(d.L+"//"+d.aa+"?"+h.b.pa().replace(/ep=[^&]*/,"ep="+encodeURIComponent(a))).length;b+(d.G+"").length>d.ca||(b+encodeURIComponent(g.join("!")+(g.length?"!":"")).length+(d.G+"").length>d.ca&&l.M(),g.push(a),
(g.length>=d.Ea||/\*a\*/.test(a))&&l.M())}}},Na:function(b){var d=b.target||b.srcElement,f,m;k.mb?(m=Math.max(document.documentElement.scrollTop,document.body.scrollTop),f=Math.max(document.documentElement.scrollLeft,document.body.scrollLeft),f=b.clientX+f,m=b.clientY+m):(f=b.pageX,m=b.pageY);b=l.Ta(b,d,f,m);var q=window.innerWidth||document.documentElement.clientWidth||document.body.offsetWidth;switch(c.align){case 1:f-=q/2;break;case 2:f-=q}q=[];q.push(f);q.push(m);q.push(b.ub);q.push(b.vb);q.push(b.yb);
q.push(a.n(b.wb));q.push(b.Mb);q.push(b.cb);(d="a"===(d.tagName||"").toLowerCase()?d:e.Ma(d))?(q.push("a"),q.push(a.n(encodeURIComponent(d.href)))):q.push("b");return q.join("*")},Ta:function(b,d,f,m){b=e.Xa(d);var q=0,g=0,w=0,l=0;if(d&&(q=d.offsetWidth||d.clientWidth,g=d.offsetHeight||d.clientHeight,l=e.Ua(d),w=l.left,l=l.top,a.j(d.getBBox)&&(g=d.getBBox(),q=g.width,g=g.height),"html"===(d.tagName||"").toLowerCase()))q=Math.max(q,d.clientWidth),g=Math.max(g,d.clientHeight);return{ub:Math.round(100*
((f-w)/q)),vb:Math.round(100*((m-l)/g)),yb:k.orientation,wb:b,Mb:q,cb:g}},M:function(){0!==g.length&&(h.b.a.et=2,h.b.a.ep=g.join("!"),h.b.m(),g=[])}};h.s.c("pv-b",l.ta);return l})();
(function(){function e(){return function(){h.b.a.et=3;h.b.a.ep=h.T.Va()+","+h.T.Ra();h.b.a.hca=c.hca;h.b.m()}}function a(){clearTimeout(C);var b;w&&(b="visible"==document[w]);A&&(b=!document[A]);l="undefined"==typeof b?t:b;if((!g||!r)&&l&&p)v=t,m=+new Date;else if(g&&r&&(!l||!p))v=x,q+=+new Date-m;g=l;r=p;C=setTimeout(a,100)}function b(b){var a=document,d="";if(b in a)d=b;else for(var m=["webkit","ms","moz","o"],e=0;e<m.length;e++){var f=m[e]+b.charAt(0).toUpperCase()+b.slice(1);if(f in a){d=f;break}}return d}
function k(b){if(!("focus"==b.type||"blur"==b.type)||!(b.target&&b.target!=window))p="focus"==b.type||"focusin"==b.type?t:x,a()}var d=mt.event,f=h.s,g=t,l=t,r=t,p=t,n=+new Date,m=n,q=0,v=t,w=b("visibilityState"),A=b("hidden"),C;a();(function(){var b=w.replace(/[vV]isibilityState/,"visibilitychange");d.c(document,b,a);d.c(window,"pageshow",a);d.c(window,"pagehide",a);"object"==typeof document.onfocusin?(d.c(document,"focusin",k),d.c(document,"focusout",k)):(d.c(window,"focus",k),d.c(window,"blur",
k))})();h.T={Va:function(){return+new Date-n},Ra:function(){return v?+new Date-m+q:q}};f.c("pv-b",function(){d.c(window,"unload",e())});f.c("duration-send",e());f.c("duration-done",function(){m=n=+new Date;q=0});return h.T})();
(function(){var e=mt.lang,a=h.o,b=h.load,k=h.R,d={lb:function(d){if((window._dxt===s||e.i(window._dxt,"Array"))&&"undefined"!==typeof h.b){var g=k.I();b([a.protocol,"//datax.baidu.com/x.js?si=",c.id,"&dm=",encodeURIComponent(g)].join(""),d)}},Fb:function(b){if(e.i(b,"String")||e.i(b,"Number"))window._dxt=window._dxt||[],window._dxt.push(["_setUserId",b])}};return h.Fa=d})();
(function(){function e(a){for(var d in a)if({}.hasOwnProperty.call(a,d)){var f=a[d];b.J(f)||b.isArray(f)?e(f):a[d]=String(f)}}var a=mt.url,b=mt.lang,k=mt.w,d=mt.e,f=h.o,g=h.s,l=h.Fa,r=h.load,p=h.R,n={F:[],O:0,Y:x,D:function(){n.h=0;g.c("pv-b",function(){n.Ga();n.Ja()});g.c("pv-d",function(){n.Ka()});g.c("stag-b",function(){h.b.a.api=n.h||n.O?n.h+"_"+n.O:""});g.c("stag-d",function(){h.b.a.api=0;n.h=0;n.O=0})},Ga:function(){var a=window._hmt||[];if(!a||b.i(a,"Array"))window._hmt={id:c.id,cmd:{},push:function(){for(var a=
window._hmt,d=0;d<arguments.length;d++){var e=arguments[d];b.i(e,"Array")&&(a.cmd[a.id].push(e),"_setAccount"===e[0]&&(1<e.length&&/^[0-9a-f]{31,32}$/.test(e[1]))&&(e=e[1],a.id=e,a.cmd[e]=a.cmd[e]||[]))}}},window._hmt.cmd[c.id]=[],window._hmt.push.apply(window._hmt,a)},Ja:function(){var b=window._hmt;if(b&&b.cmd&&b.cmd[c.id])for(var a=b.cmd[c.id],d=/^_track(Event|Order)$/,e=0,f=a.length;e<f;e++){var g=a[e];d.test(g[0])?n.F.push(g):n.$(g)}b.cmd[c.id]={push:n.$}},Ka:function(){if(0<n.F.length)for(var b=
0,a=n.F.length;b<a;b++)n.$(n.F[b]);n.F=u},$:function(a){var d=a[0];if(n.hasOwnProperty(d)&&b.j(n[d]))n[d](a)},_setAccount:function(b){1<b.length&&/^[0-9a-f]{31,32}$/.test(b[1])&&(n.h|=1)},_setAutoPageview:function(b){if(1<b.length&&(b=b[1],x===b||t===b))n.h|=2,h.b.ha=b},_trackPageview:function(b){1<b.length&&(b[1].charAt&&"/"===b[1].charAt(0))&&(n.h|=4,h.b.a.sn=h.b.ea(),h.b.a.et=0,h.b.a.ep="",h.b.a.vl=d.W(),n.Y||(h.b.a.su=h.b.a.u||document.location.href),h.b.a.u=f.protocol+"//"+document.location.host+
b[1],h.b.m(),h.b.sb=+new Date)},_trackEvent:function(a){2<a.length&&(n.h|=8,h.b.a.et=4,h.b.a.ep=b.n(a[1])+"*"+b.n(a[2])+(a[3]?"*"+b.n(a[3]):"")+(a[4]?"*"+b.n(a[4]):""),h.b.m())},_setCustomVar:function(a){if(!(4>a.length)){var d=a[1],e=a[4]||3;if(0<d&&6>d&&0<e&&4>e){n.O++;for(var f=(h.b.a.cv||"*").split("!"),g=f.length;g<d-1;g++)f.push("*");f[d-1]=e+"*"+b.n(a[2])+"*"+b.n(a[3]);h.b.a.cv=f.join("!");a=h.b.a.cv.replace(/[^1](\*[^!]*){2}/g,"*").replace(/((^|!)\*)+$/g,"");""!==a?p.setData("Hm_cv_"+c.id,
encodeURIComponent(a),c.age):p.removeData("Hm_cv_"+c.id)}}},_setReferrerOverride:function(a){1<a.length&&(a=a[1],b.i(a,"String")?(h.b.a.su="/"===a.charAt(0)?f.protocol+"//"+window.location.host+a:a,n.Y=t):n.Y=x)},_trackOrder:function(a){a=a[1];b.J(a)&&(e(a),n.h|=16,h.b.a.et=94,h.b.a.ep=k.stringify(a),h.b.m())},_setDataxId:function(a){a=a[1];l.lb();l.Fb(a)},_setAutoTracking:function(a){if(1<a.length&&(a=a[1],x===a||t===a))h.b.ia=a},_trackPageDuration:function(a){1<a.length?(a=a[1],2===String(a).split(",").length&&
(h.b.a.et=3,h.b.a.ep=a,h.b.m())):g.k("duration-send");g.k("duration-done")},_require:function(b){1<b.length&&(b=b[1],f.xa.test(a.V(b))&&r(b))},_providePlugin:function(a){if(1<a.length){var d=window._hmt,e=a[1];a=a[2];if(b.X(f.na,e)&&b.j(a)&&(d.plugins=d.plugins||{},d.z=d.z||{},d.plugins[e]=a,d.l=d.l||[],a=d.l.slice(),e&&a.length&&a[0][1]===e))for(var g=0,k=a.length;g<k;g++){var l=a[g][2]||{};if(d.plugins[e]&&!d.z[e])d.z[e]=new d.plugins[e](l),d.l.shift();else break}}},_requirePlugin:function(a){if(1<
a.length){var d=window._hmt,e=a[1],g=a[2]||{};if(b.X(f.na,e))if(d.plugins=d.plugins||{},d.z=d.z||{},d.plugins[e]&&!d.z[e])d.z[e]=new d.plugins[e](g);else{d.l=d.l||[];for(var g=0,k=d.l.length;g<k;g++)if(d.l[g][1]===e)return;d.l.push(a);n._require([u,f.xb+e+".js"])}}}};n.D();h.ya=n;return h.ya})();(function(){var e=h.s;c.spa!==s&&"1"===String(c.spa)&&(window._hmt=window._hmt||[],window._hmt.push(["_requirePlugin","UrlChangeTracker"]),e.c("pv-b",function(){""!==window.location.hash&&(h.b.a.u=window.location.href)}))})();
(function(){function e(){"undefined"===typeof window["_bdhm_loaded_"+c.id]&&(window["_bdhm_loaded_"+c.id]=t,this.a={},this.ob=this.ia=this.ha=t,this.ga=m.ga,this.Sb=k.Z(c.aet)&&0<c.aet.length?c.aet.split(","):"",this.D())}var a=mt.url,b=mt.A,k=mt.lang,d=mt.cookie,f=mt.e,g=mt.sessionStorage,l=mt.w,r=mt.event,p=h.R,n=mt.localStorage,m=h.o,q=h.load,v=h.s;e.prototype={Db:function(){var a,b,e,f;m.ka=p.getData("Hm_lpvt_"+c.id)||0;if(f=p.getData("Hm_lvt_"+c.id)){for(b=f.split(",");2592E3<m.B-b[0];)b.shift();
e=4>b.length?2:3;for(m.B-m.ka>c.vdur&&b.push(m.B);4<b.length;)b.shift();f=b.join(",");b=b[b.length-1]}else f=m.B,b="",e=1;this.nb()?(p.setData("Hm_lvt_"+c.id,f,c.age),p.setData("Hm_lpvt_"+c.id,m.B),a=d.rb(p.I(),p.U())):this.da();this.a.cc=a;this.a.lt=b;this.a.lv=e},nb:function(){var b=a.V(document.location.href);return!k.X("sjh.baidu.com isite.baidu.com ls.wejianzhan.com bs.wejianzhan.com product.weijianzhan.com qianhu.weijianzhan.com aisite.wejianzhan.com".split(" "),b)},Aa:function(){var a="Hm_clear_cookie_"+
c.id,b=n.get(a)||0;c.fc&&Number(c.fc)>Number(b)&&(this.da(),n.set(a,c.fc))},da:function(){for(var a=document.cookie.split(";"),b=0;b<a.length;b++){var d=a[b].split("=");d.length&&/Hm_(up|cv|lp?vt)_[0-9a-f]{31}/.test(String(d[0]))&&p.removeData(k.trim(d[0]));d.length&&/Hm_ck_[0-9]{13}/.test(String(d[0]))&&p.removeData(k.trim(d[0]))}},pa:function(){for(var a=[],b=this.a.et,d=0,e=m.ra.length;d<e;d++){var f=m.ra[d],g=this.a[f];"undefined"!==typeof g&&""!==g&&("tt"!==f||"tt"===f&&0===b)&&a.push(f+"="+
encodeURIComponent(g))}return a.join("&")},Eb:function(){this.Db();this.a.si=c.id;this.a.sn=this.ea();this.a.su=document.referrer;this.a.ds=f.Ab;this.a.cl=f.colorDepth+"-bit";this.a.ln=String(f.language).toLowerCase();this.a.ja=f.javaEnabled?1:0;this.a.ck=f.cookieEnabled?1:0;this.a.lo="number"===typeof _bdhm_top?1:0;this.a.v="1.3.0";this.a.cv=decodeURIComponent(p.getData("Hm_cv_"+c.id)||"");this.a.tt=document.title||"";this.a.vl=f.W();var b=document.location.href;this.a.cm=a.f(b,m.hb)||"";this.a.cp=
a.f(b,m.ib)||a.f(b,m.Jb)||"";this.a.cw=a.f(b,m.gb)||a.f(b,m.Lb)||"";this.a.ci=a.f(b,m.eb)||a.f(b,m.Ib)||"";this.a.cf=a.f(b,m.jb)||a.f(b,m.Kb)||"";this.a.cu=a.f(b,m.fb)||a.f(b,m.Hb)||"";/https?:/.test(document.location.protocol)&&(this.a.u=b)},D:function(){try{this.Aa(),this.Eb(),this.Cb(),h.b=this,this.za(),this.tb(),v.k("pv-b"),this.ob&&this.Bb()}catch(a){var d=[];d.push("si="+c.id);d.push("n="+encodeURIComponent(a.name));d.push("m="+encodeURIComponent(a.message));d.push("r="+encodeURIComponent(document.referrer));
b.log(m.L+"//"+m.aa+"?"+d.join("&"))}},Bb:function(){function a(){v.k("pv-d")}this.ha?(this.a.et=0,this.a.ep="",v.k("setPageviewProp"),this.a.vl=f.W(),this.m(a),this.a.p=""):a();this.sb=+new Date;v.k("clearPageviewProp")},m:function(a){if(this.ia){var d=this;d.a.rnd=Math.round(Math.random()*m.G);d.a.r=f.orientation;d.a.ww=f.sa;v.k("stag-b");var e=m.L+"//"+m.aa+"?"+d.pa();v.k("stag-d");d.va(e);b.log(e,function(b){d.oa(b);k.j(a)&&a.call(d)})}},za:function(){try{if(window.postMessage&&window.self!==
window.parent){var b=this;r.c(window,"message",function(d){if(a.V(d.origin)===m.Gb){d=d.data||{};var e=d.jn||"",f=/^customevent$|^heatmap$|^pageclick$|^select$/.test(e);if(RegExp(c.id).test(d.sd||"")&&f)b.a.rnd=Math.round(Math.random()*m.G),q(m.protocol+"//"+c.js+e+".js?"+b.a.rnd)}});window.parent.postMessage({id:c.id,url:document.location.href,status:"__Messenger__hmLoaded"},"*")}}catch(d){}},tb:function(){try{if(window.self===window.parent){var b=document.location.href,d=a.f(b,"baidu-analytics-token"),
e=a.f(b,"baidu-analytics-jn");/^[a-f0-9]{32}\/?$/.test(d)&&/^(overlay|vabtest)\/?$/.test(e)&&q(m.protocol+"//"+c.js+e+".js?"+Math.round(Math.random()*m.G))}}catch(f){}},va:function(a){var b;try{b=l.parse(g.get("Hm_unsent_"+c.id)||"[]")}catch(d){b=[]}var e=this.a.u?"":"&u="+encodeURIComponent(document.location.href);b.push(a.replace(/^https?:\/\//,"")+e);g.set("Hm_unsent_"+c.id,l.stringify(b))},oa:function(a){var b;try{b=l.parse(g.get("Hm_unsent_"+c.id)||"[]")}catch(d){b=[]}if(b.length){a=a.replace(/^https?:\/\//,
"");for(var e=0;e<b.length;e++)if(a.replace(/&u=[^&]*/,"")===b[e].replace(/&u=[^&]*/,"")){b.splice(e,1);break}b.length?g.set("Hm_unsent_"+c.id,l.stringify(b)):this.Ba()}},Ba:function(){g.remove("Hm_unsent_"+c.id)},Cb:function(){var a=this,d;try{d=l.parse(g.get("Hm_unsent_"+c.id)||"[]")}catch(e){d=[]}if(d.length)for(var f=function(d){b.log(m.L+"//"+d,function(b){a.oa(b)})},k=0;k<d.length;k++)f(d[k])},ea:function(){return Math.round(+new Date/1E3)%65535}};return new e})();var y=h.o,z=h.load;
if(c.apps){var B=[y.protocol,"//ers.baidu.com/app/s.js?"];B.push(c.apps);z(B.join(""))}var D=h.o,E=h.load;c.pt&&E([D.protocol,"//ada.baidu.com/phone-tracker/insert_bdtj?sid=",c.pt].join(""));var F=h.load;if(c.qiao){for(var G=["https://goutong.baidu.com/site/"],H=c.id,I=5381,J=H.length,K=0;K<J;K++)I=(33*I+Number(H.charCodeAt(K)))%4294967296;2147483648<I&&(I-=2147483648);G.push(I%1E3+"/");G.push(c.id+"/b.js");G.push("?siteId="+c.qiao);F(G.join(""))};})();

1
src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/indexCodeMirror.min.css

File diff suppressed because one or more lines are too long

7
src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/indexCodeMirror.min.js

File diff suppressed because one or more lines are too long

BIN
src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/java-q.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

544
src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/jsonlint.js

@ -0,0 +1,544 @@
var jsonlint = function() {
var a = !0,
b = !1,
c = {},
d = function() {
var a = {
trace: function() {},
yy: {},
symbols_: {
error: 2,
JSONString: 3,
STRING: 4,
JSONNumber: 5,
NUMBER: 6,
JSONNullLiteral: 7,
NULL: 8,
JSONBooleanLiteral: 9,
TRUE: 10,
FALSE: 11,
JSONText: 12,
JSONValue: 13,
EOF: 14,
JSONObject: 15,
JSONArray: 16,
"{": 17,
"}": 18,
JSONMemberList: 19,
JSONMember: 20,
":": 21,
",": 22,
"[": 23,
"]": 24,
JSONElementList: 25,
$accept: 0,
$end: 1
},
terminals_: {
2: "error",
4: "STRING",
6: "NUMBER",
8: "NULL",
10: "TRUE",
11: "FALSE",
14: "EOF",
17: "{",
18: "}",
21: ":",
22: ",",
23: "[",
24: "]"
},
productions_: [0, [3, 1],
[5, 1],
[7, 1],
[9, 1],
[9, 1],
[12, 2],
[13, 1],
[13, 1],
[13, 1],
[13, 1],
[13, 1],
[13, 1],
[15, 2],
[15, 3],
[20, 3],
[19, 1],
[19, 3],
[16, 2],
[16, 3],
[25, 1],
[25, 3]
],
performAction: function(b, c, d, e, f, g, h) {
var i = g.length - 1;
switch (f) {
case 1:
this.$ = b.replace(/\\(\\|")/g, "$1").replace(/\\n/g, "\n").replace(/\\r/g, "\r").replace(/\\t/g, " ").replace(
/\\v/g, " ").replace(/\\f/g, "\f").replace(/\\b/g, "\b");
break;
case 2:
this.$ = Number(b);
break;
case 3:
this.$ = null;
break;
case 4:
this.$ = !0;
break;
case 5:
this.$ = !1;
break;
case 6:
return this.$ = g[i - 1];
case 13:
this.$ = {};
break;
case 14:
this.$ = g[i - 1];
break;
case 15:
this.$ = [g[i - 2], g[i]];
break;
case 16:
this.$ = {}, this.$[g[i][0]] = g[i][1];
break;
case 17:
this.$ = g[i - 2], g[i - 2][g[i][0]] = g[i][1];
break;
case 18:
this.$ = [];
break;
case 19:
this.$ = g[i - 1];
break;
case 20:
this.$ = [g[i]];
break;
case 21:
this.$ = g[i - 2], g[i - 2].push(g[i])
}
},
table: [{
3: 5,
4: [1, 12],
5: 6,
6: [1, 13],
7: 3,
8: [1, 9],
9: 4,
10: [1, 10],
11: [1, 11],
12: 1,
13: 2,
15: 7,
16: 8,
17: [1, 14],
23: [1, 15]
}, {
1: [3]
}, {
14: [1, 16]
}, {
14: [2, 7],
18: [2, 7],
22: [2, 7],
24: [2, 7]
}, {
14: [2, 8],
18: [2, 8],
22: [2, 8],
24: [2, 8]
}, {
14: [2, 9],
18: [2, 9],
22: [2, 9],
24: [2, 9]
}, {
14: [2, 10],
18: [2, 10],
22: [2, 10],
24: [2, 10]
}, {
14: [2, 11],
18: [2, 11],
22: [2, 11],
24: [2, 11]
}, {
14: [2, 12],
18: [2, 12],
22: [2, 12],
24: [2, 12]
}, {
14: [2, 3],
18: [2, 3],
22: [2, 3],
24: [2, 3]
}, {
14: [2, 4],
18: [2, 4],
22: [2, 4],
24: [2, 4]
}, {
14: [2, 5],
18: [2, 5],
22: [2, 5],
24: [2, 5]
}, {
14: [2, 1],
18: [2, 1],
21: [2, 1],
22: [2, 1],
24: [2, 1]
}, {
14: [2, 2],
18: [2, 2],
22: [2, 2],
24: [2, 2]
}, {
3: 20,
4: [1, 12],
18: [1, 17],
19: 18,
20: 19
}, {
3: 5,
4: [1, 12],
5: 6,
6: [1, 13],
7: 3,
8: [1, 9],
9: 4,
10: [1, 10],
11: [1, 11],
13: 23,
15: 7,
16: 8,
17: [1, 14],
23: [1, 15],
24: [1, 21],
25: 22
}, {
1: [2, 6]
}, {
14: [2, 13],
18: [2, 13],
22: [2, 13],
24: [2, 13]
}, {
18: [1, 24],
22: [1, 25]
}, {
18: [2, 16],
22: [2, 16]
}, {
21: [1, 26]
}, {
14: [2, 18],
18: [2, 18],
22: [2, 18],
24: [2, 18]
}, {
22: [1, 28],
24: [1, 27]
}, {
22: [2, 20],
24: [2, 20]
}, {
14: [2, 14],
18: [2, 14],
22: [2, 14],
24: [2, 14]
}, {
3: 20,
4: [1, 12],
20: 29
}, {
3: 5,
4: [1, 12],
5: 6,
6: [1, 13],
7: 3,
8: [1, 9],
9: 4,
10: [1, 10],
11: [1, 11],
13: 30,
15: 7,
16: 8,
17: [1, 14],
23: [1, 15]
}, {
14: [2, 19],
18: [2, 19],
22: [2, 19],
24: [2, 19]
}, {
3: 5,
4: [1, 12],
5: 6,
6: [1, 13],
7: 3,
8: [1, 9],
9: 4,
10: [1, 10],
11: [1, 11],
13: 31,
15: 7,
16: 8,
17: [1, 14],
23: [1, 15]
}, {
18: [2, 17],
22: [2, 17]
}, {
18: [2, 15],
22: [2, 15]
}, {
22: [2, 21],
24: [2, 21]
}],
defaultActions: {
16: [2, 6]
},
parseError: function(b, c) {
throw new Error(b)
},
parse: function(b) {
function o(a) {
d.length = d.length - 2 * a, e.length = e.length - a, f.length = f.length - a
}
function p() {
var a;
return a = c.lexer.lex() || 1, typeof a != "number" && (a = c.symbols_[a] || a), a
}
var c = this,
d = [0],
e = [null],
f = [],
g = this.table,
h = "",
i = 0,
j = 0,
k = 0,
l = 2,
m = 1;
this.lexer.setInput(b), this.lexer.yy = this.yy, this.yy.lexer = this.lexer, typeof this.lexer.yylloc ==
"undefined" && (this.lexer.yylloc = {});
var n = this.lexer.yylloc;
f.push(n), typeof this.yy.parseError == "function" && (this.parseError = this.yy.parseError);
var q, r, s, t, u, v, w = {},
x, y, z, A;
for (;;) {
s = d[d.length - 1], this.defaultActions[s] ? t = this.defaultActions[s] : (q == null && (q = p()), t = g[s] &&
g[s][q]);
if (typeof t == "undefined" || !t.length || !t[0]) {
if (!k) {
var lines = document.querySelectorAll('#editor .CodeMirror-code .CodeMirror-line ');
lines[i].style.backgroundColor = '#ffe5e0';
A = [];
for (x in g[s]) this.terminals_[x] && x > 2 && A.push("'" + this.terminals_[x] + "'");
var B = "";
this.lexer.showPosition ? B = "第 " + (i + 1) + ' 行解析错误' + ":\n" + this.lexer.showPosition() +
"\n期望是 " + A.join(", ") + ", got '" + this.terminals_[q] + "'" : B = "第 " + (i + 1) + ' 行解析错误' +
": 不期望是 " + (q == 1 ? "end of input" : "'" + (this.terminals_[q] || q) + "'"), this.parseError(B, {
text: this.lexer.match,
token: this.terminals_[q] || q,
line: this.lexer.yylineno,
loc: n,
expected: A
});
}
if (k == 3) {
if (q == m) throw new Error(B || "Parsing halted.");
j = this.lexer.yyleng, h = this.lexer.yytext, i = this.lexer.yylineno, n = this.lexer.yylloc, q = p()
}
for (;;) {
if (l.toString() in g[s]) break;
if (s == 0) throw new Error(B || "Parsing halted.");
o(1), s = d[d.length - 1]
}
r = q, q = l, s = d[d.length - 1], t = g[s] && g[s][l], k = 3
}
if (t[0] instanceof Array && t.length > 1) throw new Error("Parse Error: multiple actions possible at state: " +
s + ", token: " + q);
switch (t[0]) {
case 1:
d.push(q), e.push(this.lexer.yytext), f.push(this.lexer.yylloc), d.push(t[1]), q = null, r ? (q = r, r =
null) : (j = this.lexer.yyleng, h = this.lexer.yytext, i = this.lexer.yylineno, n = this.lexer.yylloc, k >
0 && k--);
break;
case 2:
y = this.productions_[t[1]][1], w.$ = e[e.length - y], w._$ = {
first_line: f[f.length - (y || 1)].first_line,
last_line: f[f.length - 1].last_line,
first_column: f[f.length - (y || 1)].first_column,
last_column: f[f.length - 1].last_column
}, v = this.performAction.call(w, h, j, i, this.yy, t[1], e, f);
if (typeof v != "undefined") return v;
y && (d = d.slice(0, -1 * y * 2), e = e.slice(0, -1 * y), f = f.slice(0, -1 * y)), d.push(this.productions_[
t[1]][0]), e.push(w.$), f.push(w._$), z = g[d[d.length - 2]][d[d.length - 1]], d.push(z);
break;
case 3:
return !0
}
}
return !0
}
},
b = function() {
var a = {
EOF: 1,
parseError: function(b, c) {
if (!this.yy.parseError) throw new Error(b);
this.yy.parseError(b, c)
},
setInput: function(a) {
return this._input = a, this._more = this._less = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext =
this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = {
first_line: 1,
first_column: 0,
last_line: 1,
last_column: 0
}, this
},
input: function() {
var a = this._input[0];
this.yytext += a, this.yyleng++, this.match += a, this.matched += a;
var b = a.match(/\n/);
return b && this.yylineno++, this._input = this._input.slice(1), a
},
unput: function(a) {
return this._input = a + this._input, this
},
more: function() {
return this._more = !0, this
},
less: function(a) {
this._input = this.match.slice(a) + this._input
},
pastInput: function() {
var a = this.matched.substr(0, this.matched.length - this.match.length);
return (a.length > 20 ? "..." : "") + a.substr(-20).replace(/\n/g, "")
},
upcomingInput: function() {
var a = this.match;
return a.length < 20 && (a += this._input.substr(0, 20 - a.length)), (a.substr(0, 20) + (a.length > 20 ?
"..." : "")).replace(/\n/g, "")
},
showPosition: function() {
var a = this.pastInput(),
b = (new Array(a.length + 1)).join("-");
return a + this.upcomingInput() + "\n" + b + "^"
},
next: function() {
if (this.done) return this.EOF;
this._input || (this.done = !0);
var a, b, c, d, e, f;
this._more || (this.yytext = "", this.match = "");
var g = this._currentRules();
for (var h = 0; h < g.length; h++) {
c = this._input.match(this.rules[g[h]]);
if (c && (!b || c[0].length > b[0].length)) {
b = c, d = h;
if (!this.options.flex) break
}
}
if (b) {
f = b[0].match(/\n.*/g), f && (this.yylineno += f.length), this.yylloc = {
first_line: this.yylloc.last_line,
last_line: this.yylineno + 1,
first_column: this.yylloc.last_column,
last_column: f ? f[f.length - 1].length - 1 : this.yylloc.last_column + b[0].length
}, this.yytext += b[0], this.match += b[0], this.yyleng = this.yytext.length, this._more = !1, this._input =
this._input.slice(b[0].length), this.matched += b[0], a = this.performAction.call(this, this.yy, this, g[d],
this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1);
if (a) return a;
return
}
if (this._input === "") return this.EOF;
this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
text: "",
token: null,
line: this.yylineno
})
},
lex: function() {
var b = this.next();
return typeof b != "undefined" ? b : this.lex()
},
begin: function(b) {
this.conditionStack.push(b)
},
popState: function() {
return this.conditionStack.pop()
},
_currentRules: function() {
return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules
},
topState: function() {
return this.conditionStack[this.conditionStack.length - 2]
},
pushState: function(b) {
this.begin(b)
}
};
return a.options = {}, a.performAction = function(b, c, d, e) {
var f = e;
switch (d) {
case 0:
break;
case 1:
return 6;
case 2:
return c.yytext = c.yytext.substr(1, c.yyleng - 2), 4;
case 3:
return 17;
case 4:
return 18;
case 5:
return 23;
case 6:
return 24;
case 7:
return 22;
case 8:
return 21;
case 9:
return 10;
case 10:
return 11;
case 11:
return 8;
case 12:
return 14;
case 13:
return "INVALID"
}
}, a.rules = [/^(?:\s+)/, /^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,
/^(?:"(?:\\[\\"bfnrt/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/, /^(?:\{)/, /^(?:\})/, /^(?:\[)/,
/^(?:\])/, /^(?:,)/, /^(?::)/, /^(?:true\b)/, /^(?:false\b)/, /^(?:null\b)/, /^(?:$)/, /^(?:.)/
], a.conditions = {
INITIAL: {
rules: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
inclusive: !0
}
}, a
}();
return a.lexer = b, a
}();
return typeof a != "undefined" && typeof c != "undefined" && (c.parser = d, c.parse = function() {
return d.parse.apply(d, arguments)
}, c.main = function(d) {
if (!d[1]) throw new Error("Usage: " + d[0] + " FILE");
if (typeof process != "undefined") var e = a("fs").readFileSync(a("path").join(process.cwd(), d[1]), "utf8");
else var f = a("file").path(a("file").cwd()),
e = f.join(d[1]).read({
charset: "utf-8"
});
return c.parser.parse(e)
}, typeof b != "undefined" && a.main === b && c.main(typeof process != "undefined" ? process.argv.slice(1) : a(
"system").args)), c
}();

BIN
src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

501
src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/lz-string-1.4.4.js

@ -0,0 +1,501 @@
// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>
// This work is free. You can redistribute it and/or modify it
// under the terms of the WTFPL, Version 2
// For more information see LICENSE.txt or http://www.wtfpl.net/
//
// For more information, the home page:
// http://pieroxy.net/blog/pages/lz-string/testing.html
//
// LZ-based compression algorithm, version 1.4.4
var LZString144 = (function() {
// private property
var f = String.fromCharCode;
var keyStrBase64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var keyStrUriSafe = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$";
var baseReverseDic = {};
function getBaseValue(alphabet, character) {
if (!baseReverseDic[alphabet]) {
baseReverseDic[alphabet] = {};
for (var i=0 ; i<alphabet.length ; i++) {
baseReverseDic[alphabet][alphabet.charAt(i)] = i;
}
}
return baseReverseDic[alphabet][character];
}
var LZString144 = {
compressToBase64 : function (input) {
if (input == null) return "";
var res = LZString144._compress(input, 6, function(a){return keyStrBase64.charAt(a);});
switch (res.length % 4) { // To produce valid Base64
default: // When could this happen ?
case 0 : return res;
case 1 : return res+"===";
case 2 : return res+"==";
case 3 : return res+"=";
}
},
decompressFromBase64 : function (input) {
if (input == null) return "";
if (input == "") return null;
return LZString144._decompress(input.length, 32, function(index) { return getBaseValue(keyStrBase64, input.charAt(index)); });
},
compressToUTF16 : function (input) {
if (input == null) return "";
return LZString144._compress(input, 15, function(a){return f(a+32);}) + " ";
},
decompressFromUTF16: function (compressed) {
if (compressed == null) return "";
if (compressed == "") return null;
return LZString144._decompress(compressed.length, 16384, function(index) { return compressed.charCodeAt(index) - 32; });
},
//compress into uint8array (UCS-2 big endian format)
compressToUint8Array: function (uncompressed) {
var compressed = LZString144.compress(uncompressed);
var buf=new Uint8Array(compressed.length*2); // 2 bytes per character
for (var i=0, TotalLen=compressed.length; i<TotalLen; i++) {
var current_value = compressed.charCodeAt(i);
buf[i*2] = current_value >>> 8;
buf[i*2+1] = current_value % 256;
}
return buf;
},
//decompress from uint8array (UCS-2 big endian format)
decompressFromUint8Array:function (compressed) {
if (compressed===null || compressed===undefined){
return LZString144.decompress(compressed);
} else {
var buf=new Array(compressed.length/2); // 2 bytes per character
for (var i=0, TotalLen=buf.length; i<TotalLen; i++) {
buf[i]=compressed[i*2]*256+compressed[i*2+1];
}
var result = [];
buf.forEach(function (c) {
result.push(f(c));
});
return LZString144.decompress(result.join(''));
}
},
//compress into a string that is already URI encoded
compressToEncodedURIComponent: function (input) {
if (input == null) return "";
return LZString144._compress(input, 6, function(a){return keyStrUriSafe.charAt(a);});
},
//decompress from an output of compressToEncodedURIComponent
decompressFromEncodedURIComponent:function (input) {
if (input == null) return "";
if (input == "") return null;
input = input.replace(/ /g, "+");
return LZString144._decompress(input.length, 32, function(index) { return getBaseValue(keyStrUriSafe, input.charAt(index)); });
},
compress: function (uncompressed) {
return LZString144._compress(uncompressed, 16, function(a){return f(a);});
},
_compress: function (uncompressed, bitsPerChar, getCharFromInt) {
if (uncompressed == null) return "";
var i, value,
context_dictionary= {},
context_dictionaryToCreate= {},
context_c="",
context_wc="",
context_w="",
context_enlargeIn= 2, // Compensate for the first entry which should not count
context_dictSize= 3,
context_numBits= 2,
context_data=[],
context_data_val=0,
context_data_position=0,
ii;
for (ii = 0; ii < uncompressed.length; ii += 1) {
context_c = uncompressed.charAt(ii);
if (!Object.prototype.hasOwnProperty.call(context_dictionary,context_c)) {
context_dictionary[context_c] = context_dictSize++;
context_dictionaryToCreate[context_c] = true;
}
context_wc = context_w + context_c;
if (Object.prototype.hasOwnProperty.call(context_dictionary,context_wc)) {
context_w = context_wc;
} else {
if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {
if (context_w.charCodeAt(0)<256) {
for (i=0 ; i<context_numBits ; i++) {
context_data_val = (context_data_val << 1);
if (context_data_position == bitsPerChar-1) {
context_data_position = 0;
context_data.push(getCharFromInt(context_data_val));
context_data_val = 0;
} else {
context_data_position++;
}
}
value = context_w.charCodeAt(0);
for (i=0 ; i<8 ; i++) {
context_data_val = (context_data_val << 1) | (value&1);
if (context_data_position == bitsPerChar-1) {
context_data_position = 0;
context_data.push(getCharFromInt(context_data_val));
context_data_val = 0;
} else {
context_data_position++;
}
value = value >> 1;
}
} else {
value = 1;
for (i=0 ; i<context_numBits ; i++) {
context_data_val = (context_data_val << 1) | value;
if (context_data_position ==bitsPerChar-1) {
context_data_position = 0;
context_data.push(getCharFromInt(context_data_val));
context_data_val = 0;
} else {
context_data_position++;
}
value = 0;
}
value = context_w.charCodeAt(0);
for (i=0 ; i<16 ; i++) {
context_data_val = (context_data_val << 1) | (value&1);
if (context_data_position == bitsPerChar-1) {
context_data_position = 0;
context_data.push(getCharFromInt(context_data_val));
context_data_val = 0;
} else {
context_data_position++;
}
value = value >> 1;
}
}
context_enlargeIn--;
if (context_enlargeIn == 0) {
context_enlargeIn = Math.pow(2, context_numBits);
context_numBits++;
}
delete context_dictionaryToCreate[context_w];
} else {
value = context_dictionary[context_w];
for (i=0 ; i<context_numBits ; i++) {
context_data_val = (context_data_val << 1) | (value&1);
if (context_data_position == bitsPerChar-1) {
context_data_position = 0;
context_data.push(getCharFromInt(context_data_val));
context_data_val = 0;
} else {
context_data_position++;
}
value = value >> 1;
}
}
context_enlargeIn--;
if (context_enlargeIn == 0) {
context_enlargeIn = Math.pow(2, context_numBits);
context_numBits++;
}
// Add wc to the dictionary.
context_dictionary[context_wc] = context_dictSize++;
context_w = String(context_c);
}
}
// Output the code for w.
if (context_w !== "") {
if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {
if (context_w.charCodeAt(0)<256) {
for (i=0 ; i<context_numBits ; i++) {
context_data_val = (context_data_val << 1);
if (context_data_position == bitsPerChar-1) {
context_data_position = 0;
context_data.push(getCharFromInt(context_data_val));
context_data_val = 0;
} else {
context_data_position++;
}
}
value = context_w.charCodeAt(0);
for (i=0 ; i<8 ; i++) {
context_data_val = (context_data_val << 1) | (value&1);
if (context_data_position == bitsPerChar-1) {
context_data_position = 0;
context_data.push(getCharFromInt(context_data_val));
context_data_val = 0;
} else {
context_data_position++;
}
value = value >> 1;
}
} else {
value = 1;
for (i=0 ; i<context_numBits ; i++) {
context_data_val = (context_data_val << 1) | value;
if (context_data_position == bitsPerChar-1) {
context_data_position = 0;
context_data.push(getCharFromInt(context_data_val));
context_data_val = 0;
} else {
context_data_position++;
}
value = 0;
}
value = context_w.charCodeAt(0);
for (i=0 ; i<16 ; i++) {
context_data_val = (context_data_val << 1) | (value&1);
if (context_data_position == bitsPerChar-1) {
context_data_position = 0;
context_data.push(getCharFromInt(context_data_val));
context_data_val = 0;
} else {
context_data_position++;
}
value = value >> 1;
}
}
context_enlargeIn--;
if (context_enlargeIn == 0) {
context_enlargeIn = Math.pow(2, context_numBits);
context_numBits++;
}
delete context_dictionaryToCreate[context_w];
} else {
value = context_dictionary[context_w];
for (i=0 ; i<context_numBits ; i++) {
context_data_val = (context_data_val << 1) | (value&1);
if (context_data_position == bitsPerChar-1) {
context_data_position = 0;
context_data.push(getCharFromInt(context_data_val));
context_data_val = 0;
} else {
context_data_position++;
}
value = value >> 1;
}
}
context_enlargeIn--;
if (context_enlargeIn == 0) {
context_enlargeIn = Math.pow(2, context_numBits);
context_numBits++;
}
}
// Mark the end of the stream
value = 2;
for (i=0 ; i<context_numBits ; i++) {
context_data_val = (context_data_val << 1) | (value&1);
if (context_data_position == bitsPerChar-1) {
context_data_position = 0;
context_data.push(getCharFromInt(context_data_val));
context_data_val = 0;
} else {
context_data_position++;
}
value = value >> 1;
}
// Flush the last char
while (true) {
context_data_val = (context_data_val << 1);
if (context_data_position == bitsPerChar-1) {
context_data.push(getCharFromInt(context_data_val));
break;
}
else context_data_position++;
}
return context_data.join('');
},
decompress: function (compressed) {
if (compressed == null) return "";
if (compressed == "") return null;
return LZString144._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });
},
_decompress: function (length, resetValue, getNextValue) {
var dictionary = [],
next,
enlargeIn = 4,
dictSize = 4,
numBits = 3,
entry = "",
result = [],
i,
w,
bits, resb, maxpower, power,
c,
data = {val:getNextValue(0), position:resetValue, index:1};
for (i = 0; i < 3; i += 1) {
dictionary[i] = i;
}
bits = 0;
maxpower = Math.pow(2,2);
power=1;
while (power!=maxpower) {
resb = data.val & data.position;
data.position >>= 1;
if (data.position == 0) {
data.position = resetValue;
data.val = getNextValue(data.index++);
}
bits |= (resb>0 ? 1 : 0) * power;
power <<= 1;
}
switch (next = bits) {
case 0:
bits = 0;
maxpower = Math.pow(2,8);
power=1;
while (power!=maxpower) {
resb = data.val & data.position;
data.position >>= 1;
if (data.position == 0) {
data.position = resetValue;
data.val = getNextValue(data.index++);
}
bits |= (resb>0 ? 1 : 0) * power;
power <<= 1;
}
c = f(bits);
break;
case 1:
bits = 0;
maxpower = Math.pow(2,16);
power=1;
while (power!=maxpower) {
resb = data.val & data.position;
data.position >>= 1;
if (data.position == 0) {
data.position = resetValue;
data.val = getNextValue(data.index++);
}
bits |= (resb>0 ? 1 : 0) * power;
power <<= 1;
}
c = f(bits);
break;
case 2:
return "";
}
dictionary[3] = c;
w = c;
result.push(c);
while (true) {
if (data.index > length) {
return "";
}
bits = 0;
maxpower = Math.pow(2,numBits);
power=1;
while (power!=maxpower) {
resb = data.val & data.position;
data.position >>= 1;
if (data.position == 0) {
data.position = resetValue;
data.val = getNextValue(data.index++);
}
bits |= (resb>0 ? 1 : 0) * power;
power <<= 1;
}
switch (c = bits) {
case 0:
bits = 0;
maxpower = Math.pow(2,8);
power=1;
while (power!=maxpower) {
resb = data.val & data.position;
data.position >>= 1;
if (data.position == 0) {
data.position = resetValue;
data.val = getNextValue(data.index++);
}
bits |= (resb>0 ? 1 : 0) * power;
power <<= 1;
}
dictionary[dictSize++] = f(bits);
c = dictSize-1;
enlargeIn--;
break;
case 1:
bits = 0;
maxpower = Math.pow(2,16);
power=1;
while (power!=maxpower) {
resb = data.val & data.position;
data.position >>= 1;
if (data.position == 0) {
data.position = resetValue;
data.val = getNextValue(data.index++);
}
bits |= (resb>0 ? 1 : 0) * power;
power <<= 1;
}
dictionary[dictSize++] = f(bits);
c = dictSize-1;
enlargeIn--;
break;
case 2:
return result.join('');
}
if (enlargeIn == 0) {
enlargeIn = Math.pow(2, numBits);
numBits++;
}
if (dictionary[c]) {
entry = dictionary[c];
} else {
if (c === dictSize) {
entry = w + w.charAt(0);
} else {
return null;
}
}
result.push(entry);
// Add w+entry[0] to the dictionary.
dictionary[dictSize++] = w + entry.charAt(0);
enlargeIn--;
w = entry;
if (enlargeIn == 0) {
enlargeIn = Math.pow(2, numBits);
numBits++;
}
}
}
};
return LZString144;
})();
if (typeof define === 'function' && define.amd) {
define(function () { return LZString144; });
} else if( typeof module !== 'undefined' && module != null ) {
module.exports = LZString144
}

131
src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/lzma.js

@ -0,0 +1,131 @@
/// This code is licensed under the MIT License. See LICENSE for more details.
/// Does the environment support web workers? If not, let's fake it.
///NOTE: Since web workers don't work when a page is loaded from the local system, we have to fake it there too. (Take that security measures!)
if (!Worker || (location && location.protocol === "file:")) {
///NOTE: IE8 and IE9 needs onmessage to be created first, IE7- do not care.
///NOTE: Because IE9 implements part of the Web Worker's spec, postMessage() must be overwritten.
/*@cc_on
var onmessage = function () {};
var postMessage = function () {};
@*/
/// If this were a regular function statement, IE9 would run it first and therefore make the Worker variable truthy because of hoisting.
var Worker = function(script) {
var global_var,
return_object = {};
/// Determine the global variable (it's called "window" in browsers, "global" in Node.js).
if (typeof window !== "undefined") {
global_var = window;
} else if (global) {
global_var = global;
}
/// Is the environment is browser?
/// If not, create a require() function, if it doesn't have one.
if (global_var.document && !global_var.require) {
global_var.require = function (path) {
var script_tag = document.createElement("script");
script_tag.type ="text/javascript";
script_tag.src = path;
document.getElementsByTagName("head")[0].appendChild(script_tag);
};
}
/// Dummy onmessage() function.
return_object.onmessage = function () {};
/// This is the function that the main script calls to post a message to the "worker."
return_object.postMessage = function (message) {
/// Has the worker script loaded yet?
if (global_var.onmessage) {
/// Call the global onmessage() created by the "worker."
///NOTE: Wrap the message in an object.
global_var.onmessage({data: message});
} else {
/// Since the script has not yet loaded, wait a moment, and then retry.
setTimeout(function () {
return_object.postMessage(message);
}, 50);
}
};
/// Create a global postMessage() function for the "worker" to call.
global_var.postMessage = function (e) {
///NOTE: Wrap the message in an object.
///TODO: Add more properties.
return_object.onmessage({data: e, type: "message"});
};
require(script);
return return_object;
};
}
///NOTE: The "this" keyword is the global context ("window" variable) if loaded via a <script> tag
/// or the function context if loaded as a module (e.g., in Node.js).
this.LZMA = function (lzma_path) {
var action_compress = 1,
action_decompress = 2,
action_progress = 3,
callback_obj = {},
///NOTE: Node.js needs something like "./" or "../" at the beginning.
lzma_worker = new Worker((typeof lzma_path === "undefined" ? "./lzma_worker.js" : lzma_path));
lzma_worker.onmessage = function (e) {
if (e.data.action === action_progress) {
if (callback_obj[e.data.callback_num] && typeof callback_obj[e.data.callback_num].on_progress === "function") {
callback_obj[e.data.callback_num].on_progress(e.data.result);
}
} else {
if (callback_obj[e.data.callback_num] && typeof callback_obj[e.data.callback_num].on_finish === "function") {
callback_obj[e.data.callback_num].on_finish(e.data.result);
/// Since the (de)compression is complete, the callbacks are no longer needed.
delete callback_obj[e.data.callback_num];
}
}
};
/// Very simple error handling.
lzma_worker.onerror = function(event) {
throw new Error(event.message + " (" + event.filename + ":" + event.lineno + ")");
};
return (function () {
function send_to_worker(action, data, mode, on_finish, on_progress) {
var callback_num;
do {
callback_num = Math.floor(Math.random() * (10000000));
} while(typeof callback_obj[callback_num] !== "undefined");
callback_obj[callback_num] = {
on_finish: on_finish,
on_progress: on_progress
};
lzma_worker.postMessage({
action: action,
callback_num: callback_num,
data: data,
mode: mode
});
}
return {
compress: function (string, mode, on_finish, on_progress) {
send_to_worker(action_compress, String(string), mode, on_finish, on_progress);
},
decompress: function (byte_arr, on_finish, on_progress) {
send_to_worker(action_decompress, byte_arr, false, on_finish, on_progress);
}
};
}());
};

BIN
src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/php-q.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

BIN
src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/suspend.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 KiB

13
src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/swiper.min.css

File diff suppressed because one or more lines are too long

14
src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/swiper.min.js

File diff suppressed because one or more lines are too long

BIN
src/assets/images/home/在线JSON校验格式化工具(Be JSON)_files/upyun_300.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

139
src/components/Dialog/index.vue

@ -0,0 +1,139 @@
<template>
<div class="m-pop">
<div class="wrap">
<div>
<div class="title">
<img src="@/assets/images/shuju/main/card-subtitle-icon.png" />
<span>{{ title }}</span>
<i class="i-lin"></i>
</div>
<div class="btn-close" @click="handleClose">
<img src="@/assets/images/shuju/main/close.png" />
</div>
<slot></slot>
<div class="operate">
<div class="btn" @click="handleClose">关闭</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: "popup",
props: {
title: {
type: String,
default: "详情",
},
},
components: {},
data() {
return {};
},
mounted() {},
methods: {
handleClose() {
this.$emit("close");
},
},
};
</script>
<style lang="scss" scoped>
@import "~@/assets/scss/c/config.scss";
@import "~@/assets/scss/c/function.scss";
@import "~@/assets/scss/dataBoard/c/common.scss";
.m-pop {
@include shield;
position: absolute;
height: auto;
background-color: rgba(#000, 0.65);
.wrap {
position: relative;
box-sizing: border-box;
margin: 80px auto 0;
padding: 24px 16px;
width: 820px;
background: #00023a;
box-shadow: inset 0px 0px 40px 0px rgba(26, 149, 255, 0.45);
border-radius: 4px;
border: 1px solid #1a95ff;
.cnt {
overflow-y: auto;
@include scrollBar;
}
.title {
margin-bottom: 10px;
padding: 4px 2px;
font-size: 16px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: rgba(#ffffff, 0.85);
line-height: 22px;
display: flex;
align-items: center;
img {
display: block;
margin-right: 5px;
width: 17px;
}
span {
display: block;
}
.i-line {
position: relative;
display: block;
width: 160px;
height: 1px;
background: linear-gradient(270deg, rgba(55, 198, 255, 0.1) 0%, #1995ff 100%);
}
}
.btn-close {
position: absolute;
top: 24px;
right: 16px;
cursor: pointer;
img {
width: 16px;
}
}
.operate {
display: flex;
.btn {
margin-left: auto;
display: block;
width: 60px;
height: 32px;
border-radius: 2px;
border: 1px solid rgba(255, 255, 255, 0.45);
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #ffffff;
line-height: 32px;
text-align: center;
cursor: pointer;
opacity: 0.85;
&:hover {
opacity: 1;
}
}
}
}
}
</style>

93
src/components/GridTree/nodeWrap.vue

@ -3,7 +3,10 @@
<div class="node-wrap" v-if="nodeConfig.laneLevel === 1">
<div class="node-wrap-box">
<div class="node-box-after">
<div class="nodeBoxTop" @click="gotoPersonnel">{{ spliceNameFun(nodeConfig, 18) }}</div>
<div class="nodeBoxTop">
<div :title="getAllName(nodeConfig.organizationName)">{{ spliceNameFun(nodeConfig.organizationName, 8) }}</div>
<div :title="getAllName(nodeConfig.name)">{{ spliceNameFun(nodeConfig.name, 12) }}</div>
</div>
</div>
</div>
</div>
@ -14,17 +17,21 @@
<div class="condition-node">
<div class="condition-node-box">
<div class="auto-judge">
<div v-if="item.laneLevel >= 2 && item.laneLevel <= 6 && item.level !== 'building_chief'">
<div @click="gotoPersonnel" class="wgdzb" :title="getAllName(item)">{{ spliceNameFun(item, 18) }}</div>
<div v-if="item.laneLevel >= 2 && item.laneLevel <= 5 && item.level !== 'building_chief'">
<div class="wgdzb">
<div :title="getAllName(item.organizationName)">{{ spliceNameFun(item.organizationName, 8) }}</div>
<div :title="getAllName(item.name)">{{ spliceNameFun(item.name, 12) }}</div>
</div>
</div>
<div v-if="item.level === 'building_chief'">
<div @click="gotoPersonnel" class="lydxz" :title="getAllName(item)">
{{ spliceNameFun(item, 18) }}
<div class="lydxz">
<div :title="getAllName(item.organizationName)">{{ spliceNameFun(item.organizationName, 8) }}</div>
<div :title="getAllName(item.name)">{{ spliceNameFun(item.name, 12) }}</div>
</div>
</div>
<div v-if="item.level === 'unit_chief'">
<div @click="gotoPersonnel" class="dyzxh" :title="item.name">
{{ spliceNameFun(item, 3) }}
{{ spliceNameFun(item.name, 3) }}
</div>
</div>
</div>
@ -57,23 +64,18 @@ export default {
watch: {},
methods: {
getAllName(item) {
return item.organizationName + item.name;
return item;
},
spliceNameFun(row, num) {
let allName = row.name ? row.name : "";
if (num === 18) {
allName = row.organizationName + row.name;
console.log(typeof allName);
}
if (allName.length > num) {
return allName.substring(0, num) + "...";
if (row && row.length > num) {
return row.substring(0, num) + "...";
}
return allName;
return row;
},
gotoPersonnel() {
this.$router.push("/organizational/orgPersonnel");
this.$router.push("/organizational/microgrid");
},
},
};
@ -102,17 +104,9 @@ export default {
text-align: center;
background-image: url(~@/assets/images/home/firstLevel.png);
background-size: 100%;
// &::after {
// position: absolute;
// content: "";
// display: block;
// top: -7px;
// left: -16px;
// width: 168px;
// height: 164px;
// background-image: url(~@/assets/images/home/firstLevel.png);
// background-size: 100%;
// }
div:nth-child(2) {
cursor: pointer;
}
}
}
.auto-judge {
@ -124,37 +118,16 @@ export default {
padding-top: 5px;
background-image: url(~@/assets/images/home/zbbg.png);
background-size: 100%;
// &::after {
// position: absolute;
// content: "";
// display: block;
// top: -7px;
// left: 0;
// width: 132px;
// height: 96px;
// background-image: url(~@/assets/images/home/zbbg.png);
// background-size: 100%;
// }
}
.lydxz {
@include spanLevel;
@include normalLevel;
// @include normalLevel;
text-align: center;
width: 216px;
height: 50px;
padding-top: 5px;
background-image: url(~@/assets/images/home/lydxzTree.png);
background-size: 100%;
// &::after {
// position: absolute;
// content: "";
// display: block;
// top: -2px;
// left: -40px;
// width: 216px;
// height: 50px;
// background-image: url(~@/assets/images/home/lydxzTree.png);
// background-size: 100%;
// }
}
.dyzxh {
@include spanLevel;
@ -165,17 +138,6 @@ export default {
margin-top: -12px;
background-image: url(~@/assets/images/home/dyzxhTree.png);
background-size: 100%;
// &::after {
// position: absolute;
// content: "";
// display: block;
// top: -19px;
// left: -8px;
// width: 30px;
// height: 118px;
// background-image: url(~@/assets/images/home/dyzxhTree.png);
// background-size: 100%;
// }
}
.lxjt {
@include spanLevel;
@ -188,15 +150,6 @@ export default {
margin-top: -12px;
background-image: url(~@/assets/images/home/dyzxhTree.png);
background-size: 100%;
// &::after {
// position: absolute;
// content: "";
// display: block;
// top: -19px;
// left: -8px;
// width: 30px;
// height: 118px;
// }
}
}
</style>

88
src/components/JwTree/nodeWrap.vue

@ -3,7 +3,10 @@
<div class="node-wrap" v-if="nodeConfig.laneLevel === 1">
<div class="node-wrap-box">
<div class="node-box-after">
<div class="nodeBoxTop" @click="gotoPersonnel">{{ spliceNameFun(nodeConfig, 18) }}</div>
<div class="nodeBoxTop">
<div :title="getAllName(nodeConfig.organizationName)">{{ spliceNameFun(nodeConfig.organizationName, 8) }}</div>
<div @click="gotoPersonnel" :title="getAllName(nodeConfig.name)">{{ spliceNameFun(nodeConfig.name, 12) }}</div>
</div>
</div>
</div>
</div>
@ -15,16 +18,20 @@
<div class="condition-node-box">
<div class="auto-judge">
<div v-if="item.laneLevel >= 2 && item.laneLevel <= 6 && item.level !== 'building_chief'">
<div @click="gotoPersonnel" class="wgdzb" :title="getAllName(item)">{{ spliceNameFun(item, 18) }}</div>
<div class="wgdzb">
<div :title="getAllName(item.organizationName)">{{ spliceNameFun(item.organizationName, 8) }}</div>
<div @click="gotoPersonnel" :title="getAllName(item.name)">{{ spliceNameFun(item.name, 12) }}</div>
</div>
</div>
<div v-if="item.level === 'building_chief'">
<div @click="gotoPersonnel" class="lydxz" :title="getAllName(item)">
{{ spliceNameFun(item, 18) }}
<div class="lydxz">
<div :title="getAllName(item.organizationName)">{{ spliceNameFun(item.organizationName, 8) }}</div>
<div @click="gotoPersonnel" :title="getAllName(item.name)">{{ spliceNameFun(item.name, 12) }}</div>
</div>
</div>
<div v-if="item.level === 'unit_chief' || item.level === 'public_welfare_post'">
<div @click="gotoPersonnel" class="dyzxh" :title="item.name">
{{ spliceNameFun(item, 3) }}
{{ spliceNameFun(item.name, 3) }}
</div>
</div>
</div>
@ -57,18 +64,14 @@ export default {
watch: {},
methods: {
getAllName(item) {
return item.organizationName + item.name;
return item;
},
spliceNameFun(row, num) {
let allName = row.name ? row.name : "";
if (num === 18) {
allName = row.organizationName + row.name;
}
if (allName.length > num) {
return allName.substring(0, num) + "...";
if (row && row.length > num) {
return row.substring(0, num) + "...";
}
return allName;
return row;
},
gotoPersonnel() {
@ -101,17 +104,9 @@ export default {
text-align: center;
background-image: url(~@/assets/images/home/firstLevel.png);
background-size: 100%;
// &::after {
// position: absolute;
// content: "";
// display: block;
// top: -7px;
// left: -16px;
// width: 168px;
// height: 164px;
// background-image: url(~@/assets/images/home/firstLevel.png);
// background-size: 100%;
// }
div:nth-child(2) {
cursor: pointer;
}
}
}
.auto-judge {
@ -123,37 +118,16 @@ export default {
padding-top: 5px;
background-image: url(~@/assets/images/home/zbbg.png);
background-size: 100%;
// &::after {
// position: absolute;
// content: "";
// display: block;
// top: -7px;
// left: 0;
// width: 132px;
// height: 96px;
// background-image: url(~@/assets/images/home/zbbg.png);
// background-size: 100%;
// }
}
.lydxz {
@include spanLevel;
@include normalLevel;
// @include normalLevel;
text-align: center;
width: 216px;
height: 50px;
padding-top: 5px;
background-image: url(~@/assets/images/home/lydxzTree.png);
background-size: 100%;
// &::after {
// position: absolute;
// content: "";
// display: block;
// top: -2px;
// left: -40px;
// width: 216px;
// height: 50px;
// background-image: url(~@/assets/images/home/lydxzTree.png);
// background-size: 100%;
// }
}
.dyzxh {
@include spanLevel;
@ -164,17 +138,6 @@ export default {
margin-top: -12px;
background-image: url(~@/assets/images/home/dyzxhTree.png);
background-size: 100%;
// &::after {
// position: absolute;
// content: "";
// display: block;
// top: -19px;
// left: -8px;
// width: 30px;
// height: 118px;
// background-image: url(~@/assets/images/home/dyzxhTree.png);
// background-size: 100%;
// }
}
.lxjt {
@include spanLevel;
@ -187,15 +150,6 @@ export default {
margin-top: -12px;
background-image: url(~@/assets/images/home/dyzxhTree.png);
background-size: 100%;
// &::after {
// position: absolute;
// content: "";
// display: block;
// top: -19px;
// left: -8px;
// width: 30px;
// height: 118px;
// }
}
}
</style>

97
src/components/Tree/nodeWrap.vue

@ -3,7 +3,11 @@
<div class="node-wrap" v-if="nodeConfig.laneLevel === 1">
<div class="node-wrap-box">
<div class="node-box-after">
<div class="nodeBoxTop" @click="gotoPersonnel">{{ spliceNameFun(nodeConfig, 18) }}</div>
<!-- {{ spliceNameFun(nodeConfig, 18) }} -->
<div class="nodeBoxTop">
<div :title="getAllName(nodeConfig.partyOrgName)">{{ spliceNameFun(nodeConfig.partyOrgName, 8) }}</div>
<div @click="gotoPersonnel" :title="getAllName(nodeConfig.principalName)">{{ spliceNameFun(nodeConfig.principalName, 12) }}</div>
</div>
</div>
</div>
</div>
@ -15,16 +19,21 @@
<div class="condition-node-box">
<div class="auto-judge">
<div v-if="item.laneLevel >= 2 && item.laneLevel <= 7 && item.partyOrgLevel < 8">
<div @click="gotoPersonnel" class="wgdzb" :title="getAllName(item)">{{ spliceNameFun(item, 18) }}</div>
<div class="wgdzb">
<div :title="getAllName(item.partyOrgName)">{{ spliceNameFun(item.partyOrgName, 8) }}</div>
<div class="gotoDesc" @click="gotoPersonnel" :title="getAllName(item.principalName)">{{ spliceNameFun(item.principalName, 12) }}</div>
</div>
</div>
<div v-if="item.partyOrgLevel === 8">
<div @click="gotoPersonnel" class="lydxz" :title="getAllName(item)">
{{ spliceNameFun(item, 18) }}
<div class="lydxz">
<div :title="getAllName(item.partyOrgName)">{{ spliceNameFun(item.partyOrgName, 8) }}</div>
<div class="gotoDesc" @click="gotoPersonnel" :title="getAllName(item.principalName)">{{ spliceNameFun(item.principalName, 12) }}</div>
</div>
</div>
<div v-if="item.partyOrgLevel === 9">
<div @click="gotoPersonnel" class="dyzxh" :title="item.principalName">
{{ spliceNameFun(item, 3) }}
<div class="dyzxh">
<!-- <div :title="getAllName(item.partyOrgName)">{{ spliceNameFun(item.partyOrgName, 3) }}</div> -->
<div class="gotoDesc" @click="gotoPersonnel" :title="getAllName(item.principalName)">{{ spliceNameFun(item.principalName, 3) }}</div>
</div>
</div>
<div class="lxjtWrap" v-if="item.partyOrgLevel === 10">
@ -44,8 +53,8 @@
<span>空巢老人</span>
</div> -->
</div>
<div @click="gotoPersonnel" @mouseover="getHomeTypes(item.id)" slot="reference" class="lxjt" :title="item.principalName">
{{ spliceNameFun(item, 3) }}
<div @click="gotoPersonnel" @mouseover="getHomeTypes(item.id)" slot="reference" class="lxjt gotoDesc" :title="item.principalName">
{{ spliceNameFun(item.principalName, 3) }}
<img src="@/assets/images/home/cjr.png" alt="" />
</div>
</el-popover>
@ -84,18 +93,14 @@ export default {
watch: {},
methods: {
getAllName(item) {
return item.partyOrgName + item.principalName;
return item;
},
spliceNameFun(row, num) {
let allName = row.principalName ? row.principalNam : "";
if (num === 18) {
allName = row.partyOrgName + row.principalName;
}
if (allName.length > num) {
return allName.substring(0, num) + "...";
if (row && row.length > num) {
return row.substring(0, num) + "...";
}
return allName;
return row;
},
// Map
@ -158,7 +163,6 @@ export default {
.node-box-after {
.nodeBoxTop {
font-size: 14px;
cursor: pointer;
position: relative;
color: #fff;
display: inline-block;
@ -168,17 +172,9 @@ export default {
text-align: center;
background-image: url(~@/assets/images/home/firstLevel.png);
background-size: 100%;
// &::after {
// position: absolute;
// content: "";
// display: block;
// top: -7px;
// left: -16px;
// width: 168px;
// height: 164px;
// background-image: url(~@/assets/images/home/firstLevel.png);
// background-size: 100%;
// }
div:nth-child(2) {
cursor: pointer;
}
}
}
.auto-judge {
@ -190,37 +186,16 @@ export default {
padding-top: 5px;
background-image: url(~@/assets/images/home/zbbg.png);
background-size: 100%;
// &::after {
// position: absolute;
// content: "";
// display: block;
// top: -7px;
// left: 0;
// width: 132px;
// height: 96px;
// background-image: url(~@/assets/images/home/zbbg.png);
// background-size: 100%;
// }
}
.lydxz {
@include spanLevel;
@include normalLevel;
// @include normalLevel;
text-align: center;
width: 216px;
height: 50px;
padding-top: 5px;
background-image: url(~@/assets/images/home/lydxzTree.png);
background-size: 100%;
// &::after {
// position: absolute;
// content: "";
// display: block;
// top: -2px;
// left: -40px;
// width: 216px;
// height: 50px;
// background-image: url(~@/assets/images/home/lydxzTree.png);
// background-size: 100%;
// }
}
.dyzxh {
@include spanLevel;
@ -231,17 +206,6 @@ export default {
margin-top: -12px;
background-image: url(~@/assets/images/home/dyzxhTree.png);
background-size: 100%;
// &::after {
// position: absolute;
// content: "";
// display: block;
// top: -19px;
// left: -8px;
// width: 30px;
// height: 118px;
// background-image: url(~@/assets/images/home/dyzxhTree.png);
// background-size: 100%;
// }
}
.lxjt {
@include spanLevel;
@ -254,15 +218,6 @@ export default {
margin-top: -12px;
background-image: url(~@/assets/images/home/dyzxhTree.png);
background-size: 100%;
// &::after {
// position: absolute;
// content: "";
// display: block;
// top: -19px;
// left: -8px;
// width: 30px;
// height: 118px;
// }
}
}
</style>

10
src/router/index.js

@ -410,6 +410,16 @@ export const dataBoardRoutes = {
isTab: false,
},
},
{
path: "/organizational/microgrid",
props: true,
component: () => import("@/views/dataBoard/organizational/microgrid/index"),
name: "Microgrid",
meta: {
title: "微网格",
isTab: false,
},
},
{
path: "humanData/index",
props: true,

277
src/views/dataBoard/organizational/dangTree/index.vue

@ -1,9 +1,9 @@
<template>
<div class="wrap">
<!-- -->
<div class="content" v-on:wheel="zoomSize" :style="'transform: scale(' + nowVal / 100 + ');'">
<div v-for="(item, index) in levelArr" :key="item" :class="[`flowLevel-${index + 1}`]">
<div>{{ getTitleNameMapFun(item) }}</div>
<!-- v-on:wheel="zoomSize" :style="'transform: scale(' + nowVal / 100 + ');'" -->
<div class="content">
<div v-for="(item, index) in levelArr" :key="item" :class="[item === 9 || item === 10 ? 'lastLevel' : '', `flowLevel-${index + 1}`]" :style="{ height: item === 8 ? '90px' : '', lineHeight: item === 8 ? '90px' : '' }">
<div :class="[item === 8 ? 'otherTop' : '']">{{ getTitleNameMapFun(item) }}</div>
</div>
<el-row>
<el-col :span="4">
@ -41,17 +41,30 @@ export default {
this.getTreeData();
},
methods: {
//
getDataPLevel(data) {
for (let i = 0; i < data.length; i++) {
if (data[i].children) {
this.levelArr.push(data[i].partyOrgLevel);
this.getDataPLevel(data[i].children);
getLevelArrNum(myArray) {
const arr = [...myArray];
while (arr.length > 1) {
let lastItem = arr[arr.length - 1];
let secondLastItem = arr[arr.length - 2];
if (lastItem < secondLastItem) {
arr.pop();
} else {
this.levelArr.push(data[i].partyOrgLevel);
break;
}
}
this.levelArr = new Set(this.levelArr);
return arr;
},
//
getDataPLevel(data) {
data.forEach((item) => {
this.levelArr.push(item.partyOrgLevel);
if (item.children) {
this.getDataPLevel(item.children);
}
});
const myArray = [...new Set(this.levelArr)];
this.levelArr = this.getLevelArrNum(myArray);
},
//
getTreeData() {
@ -104,5 +117,243 @@ export default {
</script>
<style lang="scss">
@import "~@/assets/css/workflow.scss";
@mixin flowLevwlCommon {
position: absolute;
width: 100%;
margin-bottom: 45px;
background: linear-gradient(90deg, rgba(14, 121, 213, 0.14) 86%, rgba(79, 175, 255, 0) 100%);
color: #fff;
font-size: 16px;
}
@mixin flowLevelAfter {
position: absolute;
content: "";
display: block;
background-size: 100%;
}
.wrap {
.content {
margin-top: 65px;
padding: 0 17px;
position: relative;
transition: transform 0.3s ease-in-out;
transform-origin: 50% 50%;
.contentList {
position: relative;
width: 100%;
height: 109px;
}
.lastLevel {
height: 145px !important;
margin-top: -45px !important;
}
.flowLevel-1 {
@include flowLevwlCommon;
top: -10px;
height: 164px;
line-height: 164px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 51px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/dwbg.png);
}
}
}
.flowLevel-2,
.flowLevel-3,
.flowLevel-4,
.flowLevel-5,
.flowLevel-6,
.flowLevel-7 {
@include flowLevwlCommon;
height: 126px;
}
.flowLevel-2 {
top: 181px;
line-height: 110px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 26px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/dzb.png);
}
}
}
.flowLevel-3 {
top: 329px;
line-height: 120px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 31px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/lydxz.png);
}
}
}
.flowLevel-4 {
top: 475px;
line-height: 128px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/dyzxh.png);
}
}
}
.flowLevel-5 {
top: 623px;
line-height: 130px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/lxjt.png);
}
}
}
.flowLevel-6 {
top: 771px;
line-height: 130px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/lxjt.png);
}
}
}
.flowLevel-7 {
top: 922px;
line-height: 130px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/lxjt.png);
}
}
}
.otherTop {
&::after {
top: 15px !important;
}
}
.flowLevel-8 {
@include flowLevwlCommon;
top: 1070px;
height: 90px;
line-height: 90px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 14px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/lxjt.png);
}
}
}
.flowLevel-9 {
@include flowLevwlCommon;
top: 1179px;
height: 135px;
line-height: 135px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/dyzxh.png);
}
}
}
.flowLevel-10 {
@include flowLevwlCommon;
top: 1338px;
height: 135px;
line-height: 135px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/lxjt.png);
}
}
}
}
}
</style>

281
src/views/dataBoard/organizational/gridTree/index.vue

@ -2,8 +2,8 @@
<div class="wrap">
<!-- v-on:wheel="zoomSize" :style="'transform: scale(' + nowVal / 100 + ');'" -->
<div class="content">
<div v-for="(item, index) in levelArr" :key="item" :class="[`flowLevel-${index + 1}`]">
<div>{{ getTitleNameMapFun(item) }}</div>
<div v-for="(item, index) in levelArr" :key="item" :class="[item === 'unit_chief' ? 'lastLevel' : '', `flowLevel-${index + 1}`]" :style="{ height: item === 'building_chief' ? '90px' : '', lineHeight: item === 'building_chief' ? '90px' : '' }">
<div :class="[item === 'building_chief' ? 'otherTop' : '']">{{ getTitleNameMapFun(item) }}</div>
</div>
<el-row>
<el-col :span="4">
@ -35,17 +35,39 @@ export default {
this.getTreeData();
},
methods: {
//
getDataPLevel(data) {
for (let i = 0; i < data.length; i++) {
if (data[i].children) {
this.levelArr.push(data[i].level);
this.getDataPLevel(data[i].children);
getLevelArrNum(myArray) {
const arr = [...myArray];
let titleNameMap = new Map([
["province", 1],
["city", 2],
["district", 3],
["street", 4],
["community", 5],
["grid_manager", 6],
["building_chief", 7],
["unit_chief", 8],
]);
while (arr.length > 1) {
let lastItem = titleNameMap.get(arr[arr.length - 1]);
let secondLastItem = titleNameMap.get(arr[arr.length - 2]);
if (lastItem < secondLastItem) {
arr.pop();
} else {
this.levelArr.push(data[i].level);
break;
}
}
this.levelArr = new Set(this.levelArr);
return arr;
},
// datalevel
getDataPLevel(data) {
data.forEach((item) => {
this.levelArr.push(item.level);
if (item.children) {
this.getDataPLevel(item.children);
}
});
const myArray = [...new Set(this.levelArr)];
this.levelArr = this.getLevelArrNum(myArray);
},
//
getTreeData() {
@ -96,5 +118,242 @@ export default {
</script>
<style lang="scss">
@import "~@/assets/css/workflow.scss";
@mixin flowLevwlCommon {
position: absolute;
width: 100%;
margin-bottom: 45px;
background: linear-gradient(90deg, rgba(14, 121, 213, 0.14) 86%, rgba(79, 175, 255, 0) 100%);
color: #fff;
font-size: 16px;
}
@mixin flowLevelAfter {
position: absolute;
content: "";
display: block;
background-size: 100%;
}
.wrap {
.content {
margin-top: 65px;
padding: 0 17px;
position: relative;
transition: transform 0.3s ease-in-out;
transform-origin: 50% 50%;
.contentList {
position: relative;
width: 100%;
height: 109px;
}
.lastLevel {
height: 145px !important;
margin-top: -45px !important;
}
.flowLevel-1 {
@include flowLevwlCommon;
top: -10px;
height: 164px;
line-height: 164px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 51px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/dwbg.png);
}
}
}
.flowLevel-2,
.flowLevel-3,
.flowLevel-4,
.flowLevel-5,
.flowLevel-6,
.flowLevel-7 {
@include flowLevwlCommon;
height: 126px;
}
.flowLevel-2 {
top: 181px;
line-height: 110px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 26px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/dzb.png);
}
}
}
.flowLevel-3 {
top: 329px;
line-height: 120px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 31px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/lydxz.png);
}
}
}
.flowLevel-4 {
top: 475px;
line-height: 128px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/dyzxh.png);
}
}
}
.flowLevel-5 {
top: 623px;
line-height: 130px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/lxjt.png);
}
}
}
.flowLevel-6 {
top: 771px;
line-height: 130px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/lxjt.png);
}
}
}
.flowLevel-7 {
top: 922px;
line-height: 130px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/lxjt.png);
}
}
}
.otherTop {
&::after {
top: 15px !important;
}
}
.flowLevel-8 {
@include flowLevwlCommon;
top: 1070px;
height: 90px;
line-height: 90px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 14px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/lxjt.png);
}
}
}
.flowLevel-9 {
@include flowLevwlCommon;
top: 1179px;
height: 135px;
line-height: 135px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/dyzxh.png);
}
}
}
.flowLevel-10 {
@include flowLevwlCommon;
top: 1338px;
height: 135px;
line-height: 135px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/lxjt.png);
}
}
}
}
}
</style>

285
src/views/dataBoard/organizational/jwTree/index.vue

@ -2,8 +2,8 @@
<div class="wrap">
<!-- v-on:wheel="zoomSize" :style="'transform: scale(' + nowVal / 100 + ');'" -->
<div class="content">
<div v-for="(item, index) in levelArr" :key="item" :class="[`flowLevel-${index + 1}`]">
<div>{{ getTitleNameMapFun(item) }}</div>
<div v-for="(item, index) in levelArr" :key="item" :class="[item === 'unit_chief' || item === 'public_welfare_post' ? 'lastLevel' : '', `flowLevel-${index + 1}`]" :style="{ height: item === 'building_chief' ? '90px' : '', lineHeight: item === 'building_chief' ? '90px' : '' }">
<div :class="[item === 'building_chief' ? 'otherTop' : '']">{{ getTitleNameMapFun(item) }}</div>
</div>
<el-row>
<el-col :span="4">
@ -35,17 +35,42 @@ export default {
this.getTreeData();
},
methods: {
//
getDataPLevel(data) {
for (let i = 0; i < data.length; i++) {
if (data[i].children) {
this.levelArr.push(data[i].level);
this.getDataPLevel(data[i].children);
getLevelArrNum(myArray) {
let titleNameMap = new Map([
["province", 1],
["city", 2],
["district", 3],
["street", 4],
["community", 5],
["grid_manager", 6],
["building_chief", 7],
["unit_chief", 8],
["public_welfare_post", 9],
]);
const arr = [...myArray];
while (arr.length > 1) {
let lastItem = titleNameMap.get(arr[arr.length - 1]);
let secondLastItem = titleNameMap.get(arr[arr.length - 2]);
if (lastItem < secondLastItem) {
arr.pop();
} else {
this.levelArr.push(data[i].level);
break;
}
}
this.levelArr = new Set(this.levelArr);
return arr;
},
//
getDataPLevel(data) {
data.forEach((item) => {
this.levelArr.push(item.level);
if (item.children) {
this.getDataPLevel(item.children);
}
});
console.log(this.levelArr);
const myArray = [...new Set(this.levelArr)];
this.levelArr = this.getLevelArrNum(myArray);
},
//
getTreeData() {
@ -97,5 +122,243 @@ export default {
</script>
<style lang="scss">
@import "~@/assets/css/workflow.scss";
@mixin flowLevwlCommon {
position: absolute;
width: 100%;
margin-bottom: 45px;
background: linear-gradient(90deg, rgba(14, 121, 213, 0.14) 86%, rgba(79, 175, 255, 0) 100%);
color: #fff;
font-size: 16px;
}
@mixin flowLevelAfter {
position: absolute;
content: "";
display: block;
background-size: 100%;
}
.wrap {
.content {
margin-top: 65px;
padding: 0 17px;
position: relative;
transition: transform 0.3s ease-in-out;
transform-origin: 50% 50%;
.contentList {
position: relative;
width: 100%;
height: 109px;
}
.lastLevel {
height: 145px !important;
margin-top: -45px !important;
}
.flowLevel-1 {
@include flowLevwlCommon;
top: -10px;
height: 164px;
line-height: 164px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 51px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/dwbg.png);
}
}
}
.flowLevel-2,
.flowLevel-3,
.flowLevel-4,
.flowLevel-5,
.flowLevel-6,
.flowLevel-7 {
@include flowLevwlCommon;
height: 126px;
}
.flowLevel-2 {
top: 181px;
line-height: 110px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 26px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/dzb.png);
}
}
}
.flowLevel-3 {
top: 329px;
line-height: 120px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 31px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/lydxz.png);
}
}
}
.flowLevel-4 {
top: 475px;
line-height: 128px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/dyzxh.png);
}
}
}
.flowLevel-5 {
top: 623px;
line-height: 130px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/lxjt.png);
}
}
}
.flowLevel-6 {
top: 771px;
line-height: 130px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/lxjt.png);
}
}
}
.flowLevel-7 {
top: 922px;
line-height: 130px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/lxjt.png);
}
}
}
.otherTop {
&::after {
top: 15px !important;
}
}
.flowLevel-8 {
@include flowLevwlCommon;
top: 1070px;
height: 90px;
line-height: 90px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 14px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/lxjt.png);
}
}
}
.flowLevel-9 {
@include flowLevwlCommon;
top: 1179px;
height: 135px;
line-height: 135px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/dyzxh.png);
}
}
}
.flowLevel-10 {
@include flowLevwlCommon;
top: 1338px;
height: 135px;
line-height: 135px;
div {
padding-left: 80px;
&::after {
@include flowLevelAfter;
top: 35px;
left: 15px;
width: 180px;
height: 60px;
background-image: url(~@/assets/images/home/lxjt.png);
}
}
}
}
}
</style>

893
src/views/dataBoard/organizational/microgrid/components/popDetails.vue

@ -0,0 +1,893 @@
<template>
<popup title="居民详情" @close="handleClose">
<template v-slot:cnt>
<div class="m-info">
<div class="subtitle">
<i class="i-chunk"></i>
<span>基本信息</span>
<i class="i-line"></i>
</div>
<div class="row">
<div class="item">
<div class="field">所属网格</div>
<div class="value">
<span v-if="info.community">{{ info.community }}</span>
<span v-if="info.grid"> - {{ info.grid }}</span>
</div>
</div>
<div class="item">
<div class="field">所属房屋</div>
<div class="value">
<span v-if="info.village">{{ info.village }}</span>
<span v-if="info.building"> - {{ info.building }}</span>
<span v-if="info.unit"> - {{ info.unit }}</span>
<span v-if="info.room"> - {{ info.room }}</span>
</div>
</div>
<div class="item">
<div class="field">本地户籍</div>
<div class="value">{{ info.census_type }}</div>
</div>
</div>
<div class="row">
<div class="item">
<div class="field">居民姓名</div>
<div class="value">{{ info.name }}</div>
</div>
<div class="item">
<div class="field">出生日期</div>
<div class="value">{{ info.birthday }}</div>
</div>
<div class="item">
<div class="field">性别</div>
<div class="value">{{ info.gender }}</div>
</div>
<div class="item">
<div class="field">民族</div>
<div class="value">{{ info.ethnic }}</div>
</div>
<div class="item">
<div class="field">联系电话</div>
<div class="value">{{ info.telephone }}</div>
</div>
<div class="item">
<div class="field">证件号</div>
<div class="value">{{ info.idcard }}</div>
</div>
<div class="item">
<div class="field">备注</div>
<div class="value">{{ info.resident_remark }}</div>
</div>
</div>
<div class="subtitle">
<i class="i-chunk"></i>
<span>分类信息</span>
<i class="i-line"></i>
</div>
<div class="row">
<div class="item">
<div class="field">居民分类</div>
<div class="value">
<div class="u-categorys">
<span v-if="info.crowd">党员</span>
<span v-if="info.mlsp">低保人员</span>
<span v-if="info.srs">保障房人员</span>
<span v-if="info.unemployed">失业人员</span>
<span v-if="info.woca">育龄妇女</span>
<span v-if="info.exs">退役军人</span>
<span v-if="info.ufs">统战人员</span>
<span v-if="info.petitioner">信访人员</span>
<span v-if="info.volunteer">志愿者</span>
<span v-if="info.in_person">特扶人员</span>
<span v-if="info.tenant">租户</span>
<span v-if="info.float_popu">流动人口</span>
<span v-if="info.special_popu">特殊人群</span>
<span v-if="info.aaaa">独居老人</span>
<span v-if="info.empty_nest">空巢老人</span>
<span v-if="info.disability">失能老人</span>
<span v-if="info.dementia">失智老人</span>
<span v-if="info.adisability">残疾</span>
<span v-if="info.ser_ill">大病</span>
<span v-if="info.ncd">慢病</span>
</div>
</div>
</div>
</div>
<div class="subtitle">
<i class="i-chunk"></i>
<span>其他信息</span>
<i class="i-line"></i>
</div>
<div class="m-tabs">
<div class="tab-btn" @click="subStartTabIndex" v-if="tabList.length > 7">
<img src="@/assets/img/shuju/people/arrow-double-left.png" />
</div>
<div v-show="index >= startTabIndex && index < startTabIndex + 7" class="tab" :class="currentTabIndex % tabList.length == index ? 'z-on' : ''" :key="'tab' + index" @click="currentTabIndex = index" v-for="(item, index) in tabList">
{{ item }}
</div>
<div class="tab-btn" @click="addStartTabIndex" v-if="tabList.length > 7">
<img src="@/assets/img/shuju/people/arrow-double-right.png" />
</div>
</div>
<div v-if="currentTab == '教育信息'">
<div class="row">
<div class="item">
<div class="field">文化程度</div>
<div class="value">{{ info.education }}</div>
</div>
<div class="item">
<div class="field">备注</div>
<div class="value">{{ info.education_remark }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '兴趣爱好'">
<div class="row">
<div class="item">
<div class="field">兴趣</div>
<div class="value">{{ info.hobby }}</div>
</div>
<div class="item">
<div class="field">备注</div>
<div class="value">{{ info.hobby_remark }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '宗教'">
<div class="row">
<div class="item">
<div class="field">宗教</div>
<div class="value">{{ info.belief }}</div>
</div>
<div class="item">
<div class="field">备注</div>
<div class="value">{{ info.belief_remark }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '健康'">
<div class="row">
<div class="item">
<div class="field">残疾类别</div>
<div class="value">{{ info.disable_type }}</div>
</div>
<div class="item">
<div class="field">残疾等级</div>
<div class="value">{{ info.disable_degree }}</div>
</div>
<div class="item">
<div class="field">残疾证号</div>
<div class="value">{{ info.disable_idcard }}</div>
</div>
<div class="item">
<div class="field">残疾说明</div>
<div class="value">{{ info.disable_remark }}</div>
</div>
<div class="item">
<div class="field">监护人</div>
<div class="value">{{ info.guardian }}</div>
</div>
<div class="item">
<div class="field">劳动能力</div>
<div class="value">{{ info.skill }}</div>
</div>
<div class="item">
<div class="field">非义务教育阶段助学</div>
<div class="value">
{{ info.voluntaryEducationFlag }}
</div>
</div>
<div class="item">
<div class="field">所患大病</div>
<div class="value">
{{ info.voluntaryEducationFlag }}
</div>
</div>
<div class="item">
<div class="field">大病患病时间</div>
<div class="value">{{ info.illnessCode }}</div>
</div>
<div class="item">
<div class="field">所患慢性病</div>
<div class="value">
{{ info.chronicDiseaseCode }}
</div>
</div>
<div class="item">
<div class="field">慢病患病时间</div>
<div class="value">
{{ info.chronicDiseaseTime }}
</div>
</div>
<div class="item">
<div class="field">是否参保</div>
<div class="value">
{{ info.chronicDiseaseTime }}
</div>
</div>
<div class="item">
<div class="field">自付金额</div>
<div class="value">{{ info.selfPayAmount }}</div>
</div>
<div class="item">
<div class="field">救助金额</div>
<div class="value">{{ info.selfPayAmount }}</div>
</div>
<div class="item">
<div class="field">救助时间</div>
<div class="value">
{{ info.deliveranceAmount }}
</div>
</div>
<div class="item">
<div class="field">享受救助明细序号</div>
<div class="value">{{ info.deliveranceTime }}</div>
</div>
<div class="item">
<div class="field">备注</div>
<div class="value">{{ info.deliveranceNum }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '工作'">
<div class="row">
<div class="item">
<div class="field">工作单位</div>
<div class="value">{{ info.workunit }}</div>
</div>
<div class="item">
<div class="field">职业</div>
<div class="value">{{ info.career }}</div>
</div>
<div class="item">
<div class="field">离退休时间</div>
<div class="value">{{ info.retire_date }}</div>
</div>
<div class="item">
<div class="field">备注</div>
<div class="value">{{ info.retire_remark }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '经济状况'">
<div class="row">
<div class="item">
<div class="field">退休金额</div>
<div class="value">{{ info.retire_income }}</div>
</div>
<div class="item">
<div class="field">月收入</div>
<div class="value">{{ info.income }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '居住'">
<div class="row">
<div class="item">
<div class="field">籍贯</div>
<div class="value">{{ info.native }}</div>
</div>
<div class="item">
<div class="field">户籍所在地</div>
<div class="value">{{ info.native_place }}</div>
</div>
<div class="item">
<div class="field">现居住地</div>
<div class="value">
{{ info.residence_current }}
</div>
</div>
<div class="item">
<div class="field">人户状况</div>
<div class="value">{{ info.household }}</div>
</div>
<div class="item">
<div class="field">备注</div>
<div class="value">{{ info.household_remark }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '家庭'">
<div class="row">
<div class="item">
<div class="field">与户主关系</div>
<div class="value">{{ info.holdingrel }}</div>
</div>
<div class="item">
<div class="field">居住情况</div>
<div class="value">{{ info.residence }}</div>
</div>
<div class="item">
<div class="field">婚姻状况</div>
<div class="value">{{ info.marital }}</div>
</div>
<div class="item">
<div class="field">配偶状况</div>
<div class="value">{{ info.spouse }}</div>
</div>
<div class="item">
<div class="field">有无赡养人</div>
<div class="value">{{ info.supporters }}</div>
</div>
<div class="item">
<div class="field">与赡养人关系</div>
<div class="value">
{{ info.supporters_relation }}
</div>
</div>
<div class="item">
<div class="field">赡养人联系电话</div>
<div class="value">
{{ info.dependantMobile }}
</div>
</div>
<div class="item">
<div class="field">备注</div>
<div class="value">{{ info.familyInfoRemark }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '党员'">
<div class="row">
<div class="item">
<div class="field">入党时间</div>
<div class="value">{{ info.joinTime }}</div>
</div>
<div class="item">
<div class="field">转正时间</div>
<div class="value">{{ info.positiveTime }}</div>
</div>
<div class="item">
<div class="field">所属支部</div>
<div class="value">{{ info.branchId }}</div>
</div>
<div class="item">
<div class="field">是否流动党员</div>
<div class="value">{{ info.flowFlag }}</div>
</div>
<div class="item">
<div class="field">流动党员活动证号</div>
<div class="value">{{ info.flowActNum }}</div>
</div>
<div class="item">
<div class="field">职务</div>
<div class="value">{{ info.partyJob }}</div>
</div>
<div class="item">
<div class="field">是否退休</div>
<div class="value">{{ info.retiredFlag }}</div>
</div>
<div class="item">
<div class="field">是否党员中心户</div>
<div class="value">{{ info.centerFlag }}</div>
</div>
<div class="item">
<div class="field">入党时所在党支部</div>
<div class="value">{{ info.joinBranchName }}</div>
</div>
<div class="item">
<div class="field">组织关系转入社区时间</div>
<div class="value">
{{ info.joinCommunityTime }}
</div>
</div>
<div class="item">
<div class="field">是否请长假</div>
<div class="value">{{ info.longHolidayFlag }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '保障房'">
<div class="row">
<div class="item">
<div class="field">住房性质</div>
<div class="value">{{ info.housingNature }}</div>
</div>
<div class="item">
<div class="field">保障类型</div>
<div class="value">{{ info.securityType }}</div>
</div>
<div class="item">
<div class="field">发证日期</div>
<div class="value">{{ info.certificateDate }}</div>
</div>
<div class="item">
<div class="field">补贴编号</div>
<div class="value">{{ info.subsidyNum }}</div>
</div>
<div class="item">
<div class="field">补贴金额</div>
<div class="value">{{ info.subsidyAmount }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '失业'">
<div class="row">
<div class="item">
<div class="field">原工作单位</div>
<div class="value">{{ info.originWorkUnit }}</div>
</div>
<div class="item">
<div class="field">失业时间</div>
<div class="value">{{ info.unemploymentTime }}</div>
</div>
<div class="item">
<div class="field">失业证号</div>
<div class="value">{{ info.unemploymentTime }}</div>
</div>
<div class="item">
<div class="field">再就业优惠证号</div>
<div class="value">{{ info.employmentNum }}</div>
</div>
<div class="item">
<div class="field">技术特长</div>
<div class="value">{{ info.specialSkill }}</div>
</div>
<div class="item">
<div class="field">失业原因</div>
<div class="value">
{{ info.unemploymentReason }}
</div>
</div>
<div class="item">
<div class="field">是否就业困难对象</div>
<div class="value">
{{ info.employmentHardFlag }}
</div>
</div>
<div class="item">
<div class="field">劳动能力就业愿望</div>
<div class="value">{{ info.employmentWish }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '退役军人'">
<div class="row">
<div class="item">
<div class="field">入伍时间</div>
<div class="value">{{ info.joinArmyTime }}</div>
</div>
<div class="item">
<div class="field">退伍时间</div>
<div class="value">{{ info.leaveArmyTime }}</div>
</div>
<div class="item">
<div class="field">服役单位</div>
<div class="value">{{ info.serviceUnit }}</div>
</div>
<div class="item">
<div class="field">接收单位</div>
<div class="value">{{ info.receiveUnit }}</div>
</div>
<div class="item">
<div class="field">待安置补助金</div>
<div class="value">{{ info.settlementAmount }}</div>
</div>
<div class="item">
<div class="field">培训状况</div>
<div class="value">{{ info.trainDesc }}</div>
</div>
<div class="item">
<div class="field">参战时间开始日期</div>
<div class="value">{{ info.joinWarStartTime }}</div>
</div>
<div class="item">
<div class="field">参战时间截止日期</div>
<div class="value">{{ info.joinWarEndTime }}</div>
</div>
<div class="item">
<div class="field">现就业状况</div>
<div class="value">
{{ info.employmentSituation }}
</div>
</div>
<div class="item">
<div class="field">是否办理公益性岗位</div>
<div class="value">
{{ info.pubWelfareJobFlag }}
</div>
</div>
</div>
</div>
<div v-if="currentTab == '统战人员'">
<div class="row">
<div class="item">
<div class="field">职务</div>
<div class="value">{{ info.duty }}</div>
</div>
<div class="item">
<div class="field">探亲情况</div>
<div class="value">{{ info.visitation }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '志愿者'">
<div class="row">
<div class="item">
<div class="field">志愿者类别</div>
<div class="value">
{{ info.volunteerCategory }}
</div>
</div>
<div class="item">
<div class="field">备注</div>
<div class="value">{{ info.volunteerRemark }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '老年人'">
<div class="row">
<div class="item">
<div class="field">高龄补助</div>
<div class="value">{{ info.volunteerRemark }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '特殊人群'">
<div class="row">
<div class="item">
<div class="field">特殊人群类别</div>
<div class="value">
{{ info.specialCategoryCode }}
</div>
</div>
</div>
</div>
<div v-if="currentTab == '出生信息'">
<div class="row">
<div class="item">
<div class="field">出生地</div>
<div class="value">{{ info.birthplace }}</div>
</div>
<div class="item">
<div class="field">父亲姓名</div>
<div class="value">{{ info.father }}</div>
</div>
<div class="item">
<div class="field">母亲姓名</div>
<div class="value">{{ info.mother }}</div>
</div>
<div class="item">
<div class="field">胎次</div>
<div class="value">{{ info.count }}</div>
</div>
<div class="item">
<div class="field">申报日期</div>
<div class="value">{{ info.reportDate }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '死亡信息'">
<div class="row">
<div class="item">
<div class="field">死亡时间</div>
<div class="value">{{ info.deathDate }}</div>
</div>
<div class="item">
<div class="field">加入原因</div>
<div class="value">{{ info.deathReason }}</div>
</div>
<div class="item">
<div class="field">移除时间</div>
<div class="value">{{ info.removeDate }}</div>
</div>
<div class="item">
<div class="field">移除原因</div>
<div class="value">{{ info.removeReason }}</div>
</div>
</div>
</div>
<div v-if="currentTab == '迁出'">
<div class="row">
<div class="item">
<div class="field">迁出信息</div>
<div class="value">{{ info.outOfTime }}</div>
</div>
<div class="item">
<div class="field">迁出类别</div>
<div class="value">{{ info.type }}</div>
</div>
<div class="item">
<div class="field">迁出原因</div>
<div class="value">{{ info.reason }}</div>
</div>
<div class="item">
<div class="field">迁出至组织</div>
<div class="value">{{ info.deptId }}</div>
</div>
<div class="item">
<div class="field">小区</div>
<div class="value">{{ info.villageName }}</div>
</div>
<div class="item">
<div class="field">楼号</div>
<div class="value">{{ info.buildName }}</div>
</div>
<div class="item">
<div class="field">单元</div>
<div class="value">{{ info.unitName }}</div>
</div>
<div class="item">
<div class="field">房屋</div>
<div class="value">{{ info.homeName }}</div>
</div>
<div class="item">
<div class="field">外迁地址</div>
<div class="value">{{ info.address }}</div>
</div>
</div>
</div>
</div>
</template>
</popup>
</template>
<script>
import popup from "@/views/dataBoard/cpts/popup";
export default {
name: "residentDetails",
props: {
resiId: {
type: String,
default: "",
},
},
components: { popup },
data() {
return {
info: {
woca: true,
exs: false,
srs: true,
household: "--",
holdingrel: "--",
ethnic: "--",
community: "--",
user_id: "--",
census_type: "--",
aged: true,
spouse: "--",
mlsp: false,
ncp: true,
disable_idcard: "--",
volunteer: false,
village: "--",
disable_degree: "--",
marital: "--",
native_place: "--",
disable_type: "--",
building: "--",
disable_remark: "--",
skill: "--",
petitioner: true,
unemployed: true,
needs_group: "--",
hobby: "--",
unit: "--",
gender: "--",
retire_income: "--",
workunit: "--",
ufs: false,
birthday: "--",
in_person: false,
adisability: false,
household_remark: "--",
belief: "--",
education_remark: "--",
education: "--",
residence_current: "--",
career: "--",
empty_nest: false,
idcard: "--",
room: "--",
guardian: "--",
tenant: true,
residence: "--",
supporters: "--",
ser_ill: false,
ncd: true,
belief_remark: "--",
dementia: false,
disability: true,
telephone: "--",
income: "--",
native: "--",
crowd: false,
resident_remark: "--",
hobby_remark: "--",
retire_remark: "--",
special_popu: true,
street: "--",
float_popu: true,
supporters_relation: "--",
name: "--",
grid: "--",
retire_date: "--",
joinTime: "--",
positiveTime: "--",
branchId: "--",
flowFlag: "--",
flowActNum: "--",
partyJob: "--",
retiredFlag: "--",
centerFlag: "--",
joinBranchName: "--",
joinCommunityTime: "--",
longHolidayFlag: "--",
ensure_house_id: "--",
housingNature: "--",
securityType: "--",
certificateDate: "--",
subsidyNum: "--",
subsidyAmount: "--",
unemployed_id: "--",
originWorkUnit: "--",
unemploymentTime: "--",
unemploymentNum: "--",
employmentNum: "--",
specialSkill: "--",
unemploymentReason: "--",
employmentHardFlag: "--",
employmentWish: "--",
veteran_id: "--",
joinArmyTime: "--",
leaveArmyTime: "--",
serviceUnit: "--",
receiveUnit: "--",
settlementAmount: "--",
trainDesc: "--",
joinWarStartTime: "--",
joinWarEndTime: "--",
employmentSituation: "--",
pubWelfareJobFlag: "--",
united_front_id: "--",
duty: "--",
visitation: "--",
volunteer_id: "--",
volunteerCategory: "--",
volunteerRemark: "--",
old_people_id: "--",
oldSubsidy: "--",
special_id: "--",
specialCategoryCode: "--",
birth_record_id: "--",
birthplace: "--",
father: "--",
mother: "--",
count: "--",
reportDate: "--",
death_record_id: "--",
deathDate: "--",
deathReason: "--",
removeDate: "--",
removeReason: "--",
move_out_record_id: "--",
outOfTime: "--",
type: "--",
reason: "--",
deptId: "--",
villageId: "--",
villageName: "--",
buildId: "--",
buildName: "--",
unitId: "--",
unitName: "--",
homeId: "--",
homeName: "--",
address: "--",
residence_current: "--",
},
currentTabIndex: 0,
startTabIndex: 0,
BaseTabList: ["教育信息", "兴趣爱好", "宗教", "健康", "工作", "经济状况", "居住", "家庭"],
tabList: [],
};
},
computed: {},
mounted() {},
methods: {
addStartTabIndex() {
const { startTabIndex, tabList } = this;
if (startTabIndex < tabList.length - 7) {
this.startTabIndex = startTabIndex + 1;
} else {
this.startTabIndex = tabList.length - 7;
}
},
subStartTabIndex() {
const { startTabIndex, tabList } = this;
if (startTabIndex > 0) {
this.startTabIndex = startTabIndex - 1;
} else {
this.startTabIndex = 0;
}
},
handleClose() {
this.$emit("close", false);
},
},
};
</script>
<style lang="scss" src="@/assets/scss/dataBoard/popup-info.scss" scoped></style>
<style lang="scss" scoped>
@import "~@/assets/scss/c/config.scss";
@import "~@/assets/scss/c/function.scss";
.u-categorys {
display: flex;
flex-wrap: wrap;
}
.u-categorys span {
display: block;
width: 90px;
}
.m-tabs {
margin-top: 30px;
display: flex;
align-items: center;
padding-left: 20px;
.tab-btn {
width: 30px;
text-align: center;
cursor: pointer;
}
.tab {
@include toe;
margin: 0 5px;
min-width: 72px;
padding: 0 8px;
height: 24px;
box-shadow: inset 0px 0px 12px 0px rgba(26, 149, 255, 0.45);
border-radius: 2px;
border: 1px solid #1a95ff;
border-radius: 2px;
text-align: center;
font-size: 14px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
line-height: 23px;
cursor: pointer;
transition: all ease 0.5s;
&.z-on {
background: linear-gradient(90deg, #1a5afd, #009cff);
box-shadow: none;
}
}
}
</style>

86
src/views/dataBoard/organizational/microgrid/components/reportAnEvent.vue

@ -0,0 +1,86 @@
<template>
<Dialog title="事件详情" @close="handleClose">
<template>
<div class="eventWrap">
<el-row :gutter="32">
<el-col :span="13">
<div class="leftEvent">
<div class="eventDetails">事件详情</div>
<div>
<span>所属组织</span>
<span>海伦路社区</span>
</div>
<div>
<span>上报渠道</span>
<span>12345</span>
</div>
<div>
<span>接受时间</span>
<span>2023-05-15 14:11:32</span>
</div>
<div>
<div>问题描述</div>
<div>空间的规划宽带山东快书嘉豪个客户时刻见风使舵和高科技皇上高考结束后高考结束后给沙发快接电话个空间里都是高科技时代合格的考生嘉豪收到反馈各家各户的沙发空间规划上宽带价格好恐惧的沙发和高科技手段和高科技手段好是空间的规划k</div>
</div>
<div>
<span>联系人</span>
<span>王先生</span>
</div>
<div>
<span>联系电话</span>
<span>12323434567</span>
</div>
<div>
<span>详细地址</span>
<span>的经典款亟待解决宽带</span>
</div>
<div>
<span>办结时限</span>
<span>2023-3-45 12:12:12</span>
</div>
<div>
<span>满意度评价</span>
<span>基本满意</span>
</div>
</div>
</el-col>
<el-col :span="11">
<div class="rightEvent"></div>
</el-col>
</el-row>
</div>
</template>
</Dialog>
</template>
<script>
import Dialog from "@/components/Dialog/index.vue";
export default {
name: "residentDetails",
props: {
resiId: {
type: String,
default: "",
},
},
components: { Dialog },
data() {
return {};
},
computed: {},
mounted() {},
methods: {
handleClose() {
this.$emit("close", false);
},
},
};
</script>
<style lang="scss" scoped></style>

212
src/views/dataBoard/organizational/microgrid/index.vue

@ -0,0 +1,212 @@
<template>
<div>
<Breadcrumb :list="breadcrumbList" />
<div class="top-nav">
<div class="top-nav-list">
<div v-for="(item, index) in navList" :key="item.key" :class="[item.ifActive ? 'top-nav-itemAC' : 'top-nav-item']" @click="chooseNav(item)">
{{ item.name }}
</div>
</div>
</div>
<div class="table">
<el-table :data="list" :loading="loading">
<el-table-column label="序号" type="index" width="80" />
<!-- 上报事件 -->
<template v-if="otherTabel === 'sbsj'">
<el-table-column prop="name" label="事件类型" />
<el-table-column prop="address" label="事件描述" />
<el-table-column prop="address" label="办理情况" />
<el-table-column prop="address" label="上报时间" />
</template>
<!-- 居民需求 -->
<template v-if="otherTabel === 'jmxq'">
<el-table-column prop="name" label="需求类型" />
<el-table-column prop="address" label="需求描述" />
<el-table-column prop="address" label="办理情况" />
<el-table-column prop="address" label="上报时间" />
</template>
<!-- 统治人群 -->
<template v-if="otherTabel === 'tzrq'">
<el-table-column prop="name" label="所属组织" />
<el-table-column prop="address" label="所属网格" />
<el-table-column prop="address" label="所属家庭" />
<el-table-column prop="address" label="姓名" />
<el-table-column prop="address" label="联系电话" />
<el-table-column prop="address" label="性别" />
<el-table-column prop="address" label="证件号" />
<el-table-column prop="address" label="人员类别" />
<el-table-column prop="address" label="备注" />
</template>
<!-- 安全隐患 -->
<template v-if="otherTabel === 'aqyh'">
<el-table-column prop="name" label="场所名称" />
<el-table-column prop="address" label="巡查时间" />
<el-table-column prop="address" label="巡查人员" />
<el-table-column prop="address" label="联系电话" />
<el-table-column prop="address" label="隐患明细" />
<el-table-column prop="address" label="图片" />
<el-table-column prop="address" label="拟复查时间" />
</template>
<el-table-column label="操作" width="90" align="center">
<template slot-scope="data">
<el-button type="text" @click="handleView">查看</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div v-if="showDialog">
<same-dialog @close="close" />
</div>
<div v-if="showDialogEvent">
<report-an-event @close="closeEvent" />
</div>
<Pagination v-show="total > 0" :total="total" :page.sync="pageNum" :limit.sync="pageSize" @pagination="getList" />
</div>
</template>
<script>
import Breadcrumb from "@/views/dataBoard/satisfactionEval/components/Breadcrumb";
import Pagination from "@/views/dataBoard/satisfactionEval/components/Pagination";
import SameDialog from "./components/popDetails.vue";
import ReportAnEvent from "./components/reportAnEvent.vue";
export default {
name: "Microgrid",
components: { Breadcrumb, Pagination, SameDialog, ReportAnEvent },
data() {
return {
loading: false,
total: 0,
pageNum: 1,
pageSize: 10,
navList: [
{
name: "上报事件",
ifActive: true,
key: 1,
},
{
name: "居民需求",
ifActive: false,
key: 2,
},
{
name: "统治人群",
ifActive: false,
key: 3,
},
{
name: "安全隐患",
ifActive: false,
key: 4,
},
],
breadcrumbList: [
{
path: "/organizational/gridTree",
name: "组织架构",
},
{
path: "",
name: "微网格",
},
],
itemNav: 1,
showDialog: false,
showDialogEvent: false,
otherTabel: "sbsj",
monthOptions: new Array(12).fill(0).map((_, index) => {
return { label: index - 0 + 1 + "月", value: index - 0 + 1 };
}),
list: [{}, {}, {}],
};
},
methods: {
chooseNav(item) {
this.itemNav = item.key;
this.otherTabel = item.key === 1 ? "sbsj" : item.key === 2 ? "jmxq" : item.key === 3 ? "tzrq" : "aqyh";
this.navList.forEach((d) => {
if (item.key === d.key) {
d.ifActive = true;
} else {
d.ifActive = false;
}
});
},
close(flag) {
this.showDialog = flag;
},
closeEvent(flag) {
this.showDialogEvent = flag;
},
getList() {},
handleView() {
if (this.itemNav === 1) {
this.showDialogEvent = true;
}
if (this.itemNav === 3) {
this.showDialog = true;
}
},
},
};
</script>
<style scoped lang="scss">
@import "@/assets/scss/dataBoard/table.scss";
@mixin navListCommon {
width: 120px;
height: 36px;
font-size: 14px;
font-family: PingFang SC;
font-weight: 500;
margin-right: 4px;
text-align: center;
line-height: 36px;
cursor: pointer;
}
.screen {
margin: 25px 0 40px;
.el-select,
.el-input {
width: 150px;
margin-right: 4px;
border: 1px solid #126ac5;
border-radius: 2px;
/deep/ .el-input__inner {
background: none;
border: none;
color: #fff;
}
}
.btn {
margin-left: 46px;
height: 32px;
}
}
.main-title {
margin: 25px 0 32px;
}
.top-nav {
margin: 32px 0;
.top-nav-list {
display: flex;
margin-left: 28px;
.top-nav-item {
@include navListCommon;
background-image: url("~@/assets/images/home/noChooseMain.png");
color: #96b1ce;
}
.top-nav-itemAC {
@include navListCommon;
background-image: url("~@/assets/images/home/chooseMain.png");
color: #fff;
}
}
}
</style>
Loading…
Cancel
Save