diff --git a/com.awspaas.user.apps.yili.integration/lib/Spire.Doc.jar b/com.awspaas.user.apps.yili.integration/lib/Spire.Doc.jar
new file mode 100644
index 00000000..a0c4d895
Binary files /dev/null and b/com.awspaas.user.apps.yili.integration/lib/Spire.Doc.jar differ
diff --git a/com.awspaas.user.apps.yili.integration/lib/SynUser.jar b/com.awspaas.user.apps.yili.integration/lib/SynUser.jar
new file mode 100644
index 00000000..a6565009
Binary files /dev/null and b/com.awspaas.user.apps.yili.integration/lib/SynUser.jar differ
diff --git a/com.awspaas.user.apps.yili.integration/lib/com.awspaas.user.apps.yili.integration.jar b/com.awspaas.user.apps.yili.integration/lib/com.awspaas.user.apps.yili.integration.jar
new file mode 100644
index 00000000..fc510c5a
Binary files /dev/null and b/com.awspaas.user.apps.yili.integration/lib/com.awspaas.user.apps.yili.integration.jar differ
diff --git a/com.awspaas.user.apps.yili.integration/lib/com.awspaas.user.apps.yili.integration.jar.bak b/com.awspaas.user.apps.yili.integration/lib/com.awspaas.user.apps.yili.integration.jar.bak
new file mode 100644
index 00000000..8d3cf0aa
Binary files /dev/null and b/com.awspaas.user.apps.yili.integration/lib/com.awspaas.user.apps.yili.integration.jar.bak differ
diff --git a/com.awspaas.user.apps.yili.integration/manifest.xml b/com.awspaas.user.apps.yili.integration/manifest.xml
new file mode 100644
index 00000000..b53fb037
--- /dev/null
+++ b/com.awspaas.user.apps.yili.integration/manifest.xml
@@ -0,0 +1,64 @@
+
+
+
页面加载中...
页面加载中...
页面加载中...
财务数字化中心| + + | ++ + | +
+
|
+
页面加载中...
+
财务数字化中心| + + | ++ + | +
+
|
+
+ + + + + 显示末级绩效 +
+
页面加载中...
财务数字化中心| + + | ++ + | +
+
|
+
页面加载中...
财务数字化中心| + + | ++ + | +
+
|
+

=i.length)return n;var e=[],u=a[r++];return n.forEach(function(n,u){e.push({key:n,values:t(u,r)})}),u?e.sort(function(n,t){return u(n.key,t.key)}):e}var r,e,u={},i=[],a=[];return u.map=function(t,r){return n(r,t,0)},u.entries=function(r){return t(n(Bo.map,r,0),0)},u.key=function(n){return i.push(n),u},u.sortKeys=function(n){return a[i.length-1]=n,u},u.sortValues=function(n){return r=n,u},u.rollup=function(n){return e=n,u},u},Bo.set=function(n){var t=new h;if(n)for(var r=0,e=n.length;e>r;++r)t.add(n[r]);return t},i(h,{has:a,add:function(n){return this[sa+n]=!0,n},remove:function(n){return n=sa+n,n in this&&delete this[n]},values:s,size:l,empty:f,forEach:function(n){for(var t in this)t.charCodeAt(0)===la&&n.call(this,t.substring(1))}}),Bo.behavior={},Bo.rebind=function(n,t){for(var r,e=1,u=arguments.length;++e=0&&(e=n.substring(r+1),n=n.substring(0,r)),n)return arguments.length<2?this[n].on(e):this[n].on(e,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(e,null);return this}},Bo.event=null,Bo.requote=function(n){return n.replace(ha,"\\$&")};var ha=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ga={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var r in t)n[r]=t[r]},pa=function(n,t){return t.querySelector(n)},va=function(n,t){return t.querySelectorAll(n)},da=Ko[p(Ko,"matchesSelector")],ma=function(n,t){return da.call(n,t)};"function"==typeof Sizzle&&(pa=function(n,t){return Sizzle(n,t)[0]||null},va=Sizzle,ma=Sizzle.matchesSelector),Bo.selection=function(){return _a};var ya=Bo.selection.prototype=[];ya.select=function(n){var t,r,e,u,i=[];n=b(n);for(var o=-1,a=this.length;++o=0&&(r=n.substring(0,t),n=n.substring(t+1)),xa.hasOwnProperty(r)?{space:xa[r],local:n}:n}},ya.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var r=this.node();return n=Bo.ns.qualify(n),n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}for(t in n)this.each(S(t,n[t]));return this}return this.each(S(n,t))},ya.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var r=this.node(),e=(n=A(n)).length,u=-1;if(t=r.classList){for(;++u =0?n.substring(0,t):n,e=t>=0?n.substring(t+1):"in";return r=es.get(r)||rs,e=us.get(e)||At,yu(e(r.apply(null,Jo.call(arguments,1))))},Bo.interpolateHcl=Lu,Bo.interpolateHsl=Tu,Bo.interpolateLab=qu,Bo.interpolateRound=Ru,Bo.transform=function(n){var t=Go.createElementNS(Bo.ns.prefix.svg,"g");return(Bo.transform=function(n){if(null!=n){t.setAttribute("transform",n);var r=t.transform.baseVal.consolidate()}return new Du(r?r.matrix:is)})(n)},Du.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var is={a:1,b:0,c:0,d:1,e:0,f:0};Bo.interpolateTransform=Hu,Bo.layout={},Bo.layout.bundle=function(){return function(n){for(var t=[],r=-1,e=n.length;++r 123132121231213l;){var e=n.charCodeAt(l++),a=1;if(10===e)u=!0;else if(13===e)u=!0,10===n.charCodeAt(l)&&(++l,++a);else if(e!==c)continue;return n.substring(t,l-a)}return n.substring(t)}for(var e,u,i={},o={},a=[],s=n.length,l=0,f=0;(e=r())!==o;){for(var h=[];e!==i&&e!==o;)h.push(e),e=r();(!t||(h=t(h,f++)))&&a.push(h)}return a},r.format=function(t){if(Array.isArray(t[0]))return r.formatRows(t);var e=new h,u=[];return t.forEach(function(n){for(var t in n)e.has(t)||u.push(e.add(t))}),[u.map(o).join(n)].concat(t.map(function(t){return u.map(function(n){return o(t[n])}).join(n)})).join("\n")},r.formatRows=function(n){return n.map(i).join("\n")},r},Bo.csv=Bo.dsv(",","text/csv"),Bo.tsv=Bo.dsv(" ","text/tab-separated-values"),Bo.touch=function(n,t,r){if(arguments.length<3&&(r=t,t=x().changedTouches),t)for(var e,u=0,i=t.length;i>u;++u)if((e=t[u]).identifier===r)return Z(n,e)};var Xa,Ba,Ja,Wa,Ga,Ka=Qo[p(Qo,"requestAnimationFrame")]||function(n){setTimeout(n,17)};Bo.timer=function(n,t,r){var e=arguments.length;2>e&&(t=0),3>e&&(r=Date.now());var u=r+t,i={c:n,t:u,f:!1,n:null};Ba?Ba.n=i:Xa=i,Ba=i,Ja||(Wa=clearTimeout(Wa),Ja=1,Ka(Lt))},Bo.timer.flush=function(){Tt(),qt()},Bo.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var Qa=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Dt);Bo.formatPrefix=function(n,t){var r=0;return n&&(0>n&&(n*=-1),t&&(n=Bo.round(n,Rt(n,t))),r=1+Math.floor(1e-12+Math.log(n)/Math.LN10),r=Math.max(-24,Math.min(24,3*Math.floor((r-1)/3)))),Qa[8+r/3]};var nc=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,tc=Bo.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=Bo.round(n,Rt(n,t))).toFixed(Math.max(0,Math.min(20,Rt(n*(1+1e-15),t))))}}),rc=Bo.time={},ec=Date;jt.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){uc.setUTCDate.apply(this._,arguments)},setDay:function(){uc.setUTCDay.apply(this._,arguments)},setFullYear:function(){uc.setUTCFullYear.apply(this._,arguments)},setHours:function(){uc.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){uc.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){uc.setUTCMinutes.apply(this._,arguments)},setMonth:function(){uc.setUTCMonth.apply(this._,arguments)},setSeconds:function(){uc.setUTCSeconds.apply(this._,arguments)},setTime:function(){uc.setTime.apply(this._,arguments)}};var uc=Date.prototype;rc.year=Ht(function(n){return n=rc.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),rc.years=rc.year.range,rc.years.utc=rc.year.utc.range,rc.day=Ht(function(n){var t=new ec(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),rc.days=rc.day.range,rc.days.utc=rc.day.utc.range,rc.dayOfYear=function(n){var t=rc.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var r=rc[n]=Ht(function(n){return(n=rc.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var r=rc.year(n).getDay();return Math.floor((rc.dayOfYear(n)+(r+t)%7)/7)-(r!==t)});rc[n+"s"]=r.range,rc[n+"s"].utc=r.utc.range,rc[n+"OfYear"]=function(n){var r=rc.year(n).getDay();return Math.floor((rc.dayOfYear(n)+(r+t)%7)/7)}}),rc.week=rc.sunday,rc.weeks=rc.sunday.range,rc.weeks.utc=rc.sunday.utc.range,rc.weekOfYear=rc.sundayOfYear;var ic={"-":"",_:" ",0:"0"},oc=/^\s*\d+/,ac=/^%/;Bo.locale=function(n){return{numberFormat:Pt(n),timeFormat:Ot(n)}};var cc=Bo.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});Bo.format=cc.numberFormat,Bo.geo={},cr.prototype={s:0,t:0,add:function(n){sr(n,this.t,sc),sr(sc.s,this.s,this),this.s?this.t+=sc.t:this.s=sc.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var sc=new cr;Bo.geo.stream=function(n,t){n&&lc.hasOwnProperty(n.type)?lc[n.type](n,t):lr(n,t)};var lc={Feature:function(n,t){lr(n.geometry,t)},FeatureCollection:function(n,t){for(var r=n.features,e=-1,u=r.length;++en?4*ka+n:n,pc.lineStart=pc.lineEnd=pc.point=v}};Bo.geo.bounds=function(){function n(n,t){x.push(M=[l=n,h=n]),f>t&&(f=t),t>g&&(g=t)}function t(t,r){var e=pr([t*za,r*za]);if(m){var u=dr(m,e),i=[u[1],-u[0],0],o=dr(i,u);xr(o),o=Mr(o);var c=t-p,s=c>0?1:-1,v=o[0]*La*s,d=ca(c)>180;if(d^(v>s*p&&s*t>v)){var y=o[1]*La;y>g&&(g=y)}else if(v=(v+360)%360-180,d^(v>s*p&&s*t>v)){var y=-o[1]*La;f>y&&(f=y)}else f>r&&(f=r),r>g&&(g=r);d?p>t?a(l,t)>a(l,h)&&(h=t):a(t,h)>a(l,h)&&(l=t):h>=l?(l>t&&(l=t),t>h&&(h=t)):t>p?a(l,t)>a(l,h)&&(h=t):a(t,h)>a(l,h)&&(l=t)}else n(t,r);m=e,p=t}function r(){_.point=t}function e(){M[0]=l,M[1]=h,_.point=n,m=null}function u(n,r){if(m){var e=n-p;y+=ca(e)>180?e+(e>0?360:-360):e}else v=n,d=r;pc.point(n,r),t(n,r)}function i(){pc.lineStart()}function o(){u(v,d),pc.lineEnd(),ca(y)>Ca&&(l=-(h=180)),M[0]=l,M[1]=h,m=null}function a(n,t){return(t-=n)<0?t+360:t}function c(n,t){return n[0]-t[0]}function s(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n=s,h=e>=l,g=(h<<1)+f;n.leaf=!1,n=n.nodes[g]||(n.nodes[g]=lu()),f?u=s:a=s,h?o=l:c=l,i(n,t,r,e,u,o,a,c)}var l,f,h,g,p,v,d,m,y,x=Et(a),M=Et(c);if(null!=t)v=t,d=r,m=e,y=u;else if(m=y=-(v=d=1/0),f=[],h=[],p=n.length,o)for(g=0;p>g;++g)l=n[g],l.xt;++t)(e=m[t]).index=t,e.weight=0;for(t=0;l>t;++t)e=y[t],"number"==typeof e.source&&(e.source=m[e.source]),"number"==typeof e.target&&(e.target=m[e.target]),++e.source.weight,++e.target.weight;for(t=0;c>t;++t)e=m[t],isNaN(e.x)&&(e.x=n("x",p)),isNaN(e.y)&&(e.y=n("y",v)),isNaN(e.px)&&(e.px=e.x),isNaN(e.py)&&(e.py=e.y);if(u=[],"function"==typeof f)for(t=0;l>t;++t)u[t]=+f.call(this,y[t],t);else for(t=0;l>t;++t)u[t]=f;if(i=[],"function"==typeof h)for(t=0;l>t;++t)i[t]=+h.call(this,y[t],t);else for(t=0;l>t;++t)i[t]=h;if(o=[],"function"==typeof g)for(t=0;c>t;++t)o[t]=+g.call(this,m[t],t);else for(t=0;c>t;++t)o[t]=g;return a.resume()},a.resume=function(){return a.alpha(.1)},a.stop=function(){return a.alpha(0)},a.drag=function(){return r||(r=Bo.behavior.drag().origin(At).on("dragstart.force",Vu).on("drag.force",t).on("dragend.force",$u)),arguments.length?(this.on("mouseover.force",Xu).on("mouseout.force",Bu).call(r),void 0):r},Bo.rebind(a,c,"on")};var os=20,as=1,cs=1/0;Bo.layout.hierarchy=function(){function n(u){var i,o=[u],a=[];for(u.depth=0;null!=(i=o.pop());)if(a.push(i),(s=r.call(n,i,i.depth))&&(c=s.length)){for(var c,s,l;--c>=0;)o.push(l=s[c]),l.parent=i,l.depth=i.depth+1;e&&(i.value=0),i.children=s}else e&&(i.value=+e.call(n,i,i.depth)||0),delete i.children;return Ku(u,function(n){var r,u;t&&(r=n.children)&&r.sort(t),e&&(u=n.parent)&&(u.value+=n.value)}),a}var t=ti,r=Qu,e=ni;return n.sort=function(r){return arguments.length?(t=r,n):t},n.children=function(t){return arguments.length?(r=t,n):r},n.value=function(t){return arguments.length?(e=t,n):e},n.revalue=function(t){return e&&(Gu(t,function(n){n.children&&(n.value=0)}),Ku(t,function(t){var r;t.children||(t.value=+e.call(n,t,t.depth)||0),(r=t.parent)&&(r.value+=t.value)})),t},n},Bo.layout.partition=function(){function n(t,r,e,u){var i=t.children;if(t.x=r,t.y=t.depth*u,t.dx=e,t.dy=u,i&&(o=i.length)){var o,a,c,s=-1;for(e=t.value?e/t.value:0;++s
')
+ },
+ getColorId(color) {
+ color = color.replace('#', '')
+ color = color.replace('(', '')
+ color = color.replace(')', '')
+ color = color.replace(/,/, '-')
+ return color
+ }
+}
+SeeksRGUtils.json2Node = function(originData) {
+ if (originData.id === undefined) throw Error('node must has option[id]:', originData)
+ originData.text = originData.text || originData.name || originData.id
+ var jsonData = {
+ id: originData.id,
+ text: originData.text !== undefined ? originData.text : '',
+ type: originData.type !== undefined ? originData.type : 'node',
+ isShow: originData.isShow !== undefined ? originData.isShow : true,
+ isHide: originData.isHide !== undefined ? originData.isHide : false,
+ expanded: originData.expanded !== undefined ? originData.expanded : true,
+ selected: originData.selected !== undefined ? originData.selected : false,
+ styleClass: originData.styleClass !== undefined ? originData.styleClass : '',
+ targetNodes: originData.targetNodes !== undefined ? originData.targetNodes : [],
+ targetFrom: originData.targetFrom !== undefined ? originData.targetFrom : [],
+ targetTo: originData.targetTo !== undefined ? originData.targetTo : [],
+ nodeShape: originData.nodeShape !== undefined ? originData.nodeShape : undefined,
+ borderWidth: originData.borderWidth !== undefined ? originData.borderWidth : undefined,
+ borderColor: originData.borderColor !== undefined ? originData.borderColor : undefined,
+ fontColor: originData.fontColor !== undefined ? originData.fontColor : undefined,
+ color: originData.color !== undefined ? originData.color : undefined,
+ opacity: originData.opacity !== undefined ? originData.opacity : 1,
+ fixed: originData.fixed !== undefined ? originData.fixed : false,
+ width: originData.width !== undefined ? originData.width : undefined,
+ height: originData.height !== undefined ? originData.height : undefined,
+ x: originData.x !== undefined ? originData.x : 0,
+ y: originData.y !== undefined ? originData.y : 0,
+ Fx: originData.Fx !== undefined ? originData.Fx : 0,
+ Fy: originData.Fy !== undefined ? originData.Fy : 0,
+ offset_x: originData.offset_x !== undefined ? originData.offset_x : 0,
+ offset_y: originData.offset_y !== undefined ? originData.offset_y : 0,
+ expandHolderPosition: originData.expandHolderPosition !== undefined ? originData.expandHolderPosition : undefined,
+ innerHTML: originData.innerHTML !== undefined ? originData.innerHTML : undefined,
+ html: originData.html !== undefined ? originData.html : undefined,
+ disableDefaultClickEffect: originData.disableDefaultClickEffect !== undefined ? originData.disableDefaultClickEffect : undefined,
+ disableDrag: originData.disableDrag !== undefined ? originData.disableDrag : false,
+ data: originData.data !== undefined ? originData.data : {},
+ path:originData.path !== undefined ? originData.path:undefined
+ }
+ if(jsonData.lot === undefined) jsonData.lot = { childs: [], parent: undefined, eached: false, strength: 0 }
+ if(jsonData.lot.childs === undefined) jsonData.lot.childs = []
+ if(jsonData.lot.parent === undefined) jsonData.lot.parent = undefined
+ if(jsonData.lot.eached === undefined) jsonData.lot.eached = false
+ if(jsonData.lot.strength === undefined) jsonData.lot.strength = 0
+ if(jsonData.el === undefined) jsonData.el = { offsetWidth: 50, offsetHeight: 50 }
+ if(jsonData.width !== undefined) jsonData.el.offsetWidth = jsonData.width
+ if(jsonData.height !== undefined) jsonData.el.offsetHeight = jsonData.height
+ return jsonData
+}
+SeeksRGUtils.json2Link = function(originData) {
+ if (originData.from === undefined) throw Error('error,link must has option[from]:', originData)
+ if (originData.to === undefined) throw Error('error,link must has option[to]:', originData)
+ if (typeof originData.from !== 'string') throw Error('error link from, must be string:', originData)
+ if (typeof originData.to !== 'string') throw Error('error link to, must be string:', originData)
+ var jsonData = {
+ text: originData.text !== undefined ? originData.text : '',
+ color: originData.color !== undefined ? originData.color : undefined,
+ fontColor: originData.fontColor !== undefined ? originData.fontColor : undefined,
+ lineWidth: originData.lineWidth !== undefined ? originData.lineWidth : undefined,
+ lineShape: originData.lineShape !== undefined ? originData.lineShape : undefined,
+ styleClass: originData.styleClass !== undefined ? originData.styleClass : undefined,
+ isHide: originData.isHide !== undefined ? originData.isHide : false,
+ arrow: originData.arrow !== undefined ? originData.arrow : undefined,
+ isHideArrow: originData.isHideArrow !== undefined ? originData.isHideArrow : undefined,
+ hidden: originData.hidden !== undefined ? originData.hidden : false,
+ lineDirection: originData.lineDirection !== undefined ? originData.lineDirection : undefined,
+ reverseText: originData.reverseText !== undefined ? originData.reverseText : undefined,
+ data: originData.data !== undefined ? originData.data : {},
+ }
+ return jsonData
+}
+
+SeeksRGUtils.getPosition = function(el) {
+ if (el.parentElement) {
+ return SeeksRGUtils.getPosition(el.parentElement) + el.offsetTop
+ }
+ return el.offsetTop
+}
+var _ignore_node_keys = [ 'Fx', 'Fy', 'appended', 'el', 'targetFrom', 'targetNodes', 'targetTo', 'type', 'lot', 'seeks_id' ]
+SeeksRGUtils.transNodeToJson = function(node, nodes) {
+ if (!node) return
+ var _node_json = {}
+ Object.keys(node).forEach(thisKey => {
+ if (_ignore_node_keys.indexOf(thisKey) === -1) {
+ if (node[thisKey] !== undefined) {
+ _node_json[thisKey] = node[thisKey]
+ }
+ }
+ })
+ nodes.push(_node_json)
+}
+var _ignore_link_keys = [ 'arrow', 'id', 'reverseText', 'isReverse' ]
+SeeksRGUtils.transLineToJson = function(line, links) {
+ if (!line) return
+ line.relations.forEach(thisRelation => {
+ var _link_json = {}
+ Object.keys(thisRelation).forEach(thisKey => {
+ if (_ignore_link_keys.indexOf(thisKey) === -1) {
+ if (thisRelation[thisKey] !== undefined) {
+ _link_json[thisKey] = thisRelation[thisKey]
+ }
+ }
+ })
+ links.push(_link_json)
+ })
+}
+var circle_node_text_set = [4, 5, 6, 4, 2, 100]
+export default SeeksRGUtils
diff --git a/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/components/relation-graph-master/core4vue/layouters/SeeksAutoLayouter.js b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/components/relation-graph-master/core4vue/layouters/SeeksAutoLayouter.js
new file mode 100644
index 00000000..a8422d06
--- /dev/null
+++ b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/components/relation-graph-master/core4vue/layouters/SeeksAutoLayouter.js
@@ -0,0 +1,281 @@
+import SeeksGraphMath from '../SeeksGraphMath'
+
+function SeeksAutoLayouter(layoutSetting, graphSetting) {
+ this.graphSetting = graphSetting
+ this.config = layoutSetting || {}
+ this.rootNode = null
+ this.allNodes = []
+ this.__origin_nodes = []
+ this.refresh = function() {
+ this.placeNodes(this.__origin_nodes, this.rootNode)
+ }
+ this.placeNodes = function(allNodes, rootNode) {
+ if (!rootNode) {
+ console.log('root is null:', rootNode)
+ return
+ } else {
+ if (window.SeeksGraphDebug) console.log('layout by root:', rootNode)
+ }
+ this.__origin_nodes = allNodes
+ this.rootNode = rootNode
+ allNodes.forEach(thisNode => {
+ // thisNode.lot = { eached: false }
+ thisNode.lot.eached = false
+ thisNode.lot.notLeafNode = false
+ thisNode.lot.childs = []
+ // thisNode.lot.parent = undefined
+ thisNode.lot.index_of_parent = 0
+ thisNode.lot.strength = 0
+ thisNode.lot.prevNode = undefined
+ thisNode.lot.nextNode = undefined
+ thisNode.lot.placed = false
+ })
+ this.allNodes = []
+ var analyticResult = {
+ max_deep: 1,
+ max_length: 1
+ }
+ SeeksGraphMath.analysisNodes4Didirectional(this.allNodes, [this.rootNode], 0, analyticResult, 0)
+ // console.log('analysisNodes:', analyticResult)
+ // if (this.graphSetting.heightByContent) {
+ // console.log('根据内容调整高度')
+ // var __suitableHeight = analyticResult.max_deep * 2 * 300 + 500
+ // this.graphSetting.viewSize.height = __suitableHeight
+ // }
+ if (window.SeeksGraphDebug) console.log('调整画布大小')
+ // var __per_width = parseInt((__mapWidth - 10) / (analyticResult.max_deep + 2))
+ // var __per_height = parseInt((__mapHeight - 10) / (analyticResult.max_length + 1))
+ // console.log('per:', __per_width, __per_height)
+ // var __level2_current_length = 0
+ // this.allNodes.forEach(thisNode => {
+ // if (thisNode.lot.subling.level === 1 && thisNode.lot.childs_size > 0) {
+ // __level2_current_length += thisNode.lot.childs_size
+ // var __thisNodeLength = __level2_current_length + parseInt((thisNode.lot.childs_size / 2).toFixed(0))
+ // thisNode.lot.strength_plus = __level2_current_length
+ // console.log('level2 parents:', thisNode.name, thisNode.lot.childs_size, { strength_plus: thisNode.lot.strength_plus, __thisNodeLength, strength: thisNode.lot.childs_size, __level2_current_length })
+ // }
+ // })
+ // var __currentLevel = 0
+ var __mapWidth = this.graphSetting.viewSize.width
+ var __mapHeight = this.graphSetting.viewSize.height
+ rootNode.lot.x = parseInt((__mapWidth - rootNode.el.offsetWidth) / 2)
+ rootNode.lot.y = parseInt((__mapHeight - rootNode.el.offsetHeight) / 2)
+ // this.rootNode.lot.x = 0
+ // this.rootNode.lot.y = 0
+ // if (this.rootNode.lot.y > 400) {
+ // this.rootNode.lot.y = 400
+ // }
+ if (window.SeeksGraphDebug) console.log('[layout canvasOffset]', this.graphSetting.viewSize, this.graphSetting.canvasSize)
+ this.placeRelativePosition(this.rootNode)
+ this.allNodes.forEach(thisNode => {
+ if (thisNode.fixed === true) return
+ if (!SeeksGraphMath.isAllowShowNode(thisNode)) return
+ thisNode.x = thisNode.lot.x
+ thisNode.y = thisNode.lot.y
+ thisNode.lot.placed = true
+ })
+ // var __graphIndex = 1
+ // allNodes.forEach(thisNode => {
+ // // thisNode.lot = { eached: false }
+ // if (!SeeksGraphMath.isAllowShowNode(thisNode)) return
+ // if (thisNode.lot.placed === false) {
+ // this.allNodes = []
+ // var analyticResult = {
+ // max_deep: 1,
+ // max_length: 1
+ // }
+ // SeeksGraphMath.analysisNodes(this.allNodes, [thisNode], 0, analyticResult, { prettyLevelPosition: this.graphSetting.prettyLevelPosition })
+ // thisNode.lot.x = this.rootNode.lot.x
+ // thisNode.lot.y = this.rootNode.lot.y + (__graphIndex++ * 1200)
+ // this.graphSetting.canvasSize.height += 1200
+ // this.placeRelativePosition(thisNode)
+ // this.allNodes.forEach(thisNode => {
+ // thisNode.x = thisNode.lot.x - __offsetX
+ // thisNode.y = thisNode.lot.y - __offsetY
+ // thisNode.lot.placed = true
+ // })
+ // }
+ // })
+ if (window.SeeksGraphDebug) console.log('Start Auto Layout.....')
+ this.autoLayout(true)
+ // console.log('layout from root:', analyticResult.max_deep, analyticResult.max_length)
+ // rootNode.x = (this.graphSetting.canvasSize.width - this.graphSetting.nodeSize.width) / 2
+ // rootNode.y = (this.graphSetting.canvasSize.height - this.graphSetting.nodeSize.height) / 2
+ // rootNode.placed = true
+ // // rootNode.name = rootNode.x + ',' + rootNode.y
+ // var newLevelNodes = []
+ // newLevelNodes.push(rootNode)
+ // this.setPlace(newLevelNodes, 0, rootNode)
+ }
+ this.placeRelativePosition = function(rootNode) {
+ var __level1_r = 80
+ this.allNodes.forEach(thisNode => {
+ if (thisNode.lot.subling.level === 1) {
+ __level1_r = thisNode.lot.subling.all_size * 20 / Math.PI / 2
+ if (__level1_r < 80)__level1_r = 80
+ // if (__level1_r > 500)__level1_r = 500
+ const _point = SeeksGraphMath.getOvalPoint(rootNode.lot.x, rootNode.lot.y, thisNode.lot.subling.level * __level1_r, thisNode.lot.strength_plus - (thisNode.lot.strength / 2), thisNode.lot.subling.all_strength)
+ // const _point = SeeksGraphMath.getOvalPoint(this.rootNode.x, this.rootNode.y, thisNode.lot.subling.level * __level1_r, thisNode.lot.index_of_level, thisNode.lot.subling.all_size)
+ thisNode.lot.x = _point.x
+ thisNode.lot.y = _point.y
+ }
+ })
+ this.allNodes.forEach(thisNode => {
+ if (thisNode.lot.subling.level > 1) {
+ var __area_start = thisNode.lot.parent.lot.strength_plus - thisNode.lot.parent.lot.strength
+ var __area_end = thisNode.lot.parent.lot.strength_plus
+ var __buff = (__area_end - __area_start) / (thisNode.lot.parent.lot.childs_size + 1) * (thisNode.lot.index_of_parent + 1)
+ const _point = SeeksGraphMath.getOvalPoint(rootNode.lot.x, rootNode.lot.y, (thisNode.lot.subling.level - 1) * 80 + __level1_r, __area_start + __buff, thisNode.lot.parent.lot.subling.all_strength)
+ thisNode.lot.x = _point.x
+ thisNode.lot.y = _point.y
+ }
+ })
+ }
+ this.layoutTimes = 0
+ // var ___this = this
+ this.autoLayout = function(forceLayout) {
+ if (forceLayout) {
+ this.layoutTimes = 0
+ }
+ if (window.SeeksGraphDebug) console.log('this.layoutTimes:', this.layoutTimes)
+ if (this.layoutTimes > 300) {
+ this.graphSetting.autoLayouting = false
+ return
+ }
+ this.layoutTimes++
+ this.__origin_nodes.forEach(thisNode => {
+ thisNode.Fx = 0
+ thisNode.Fy = 0
+ })
+ var __by_node = true // parseInt(this.layoutTimes / 10) % 2 === 1
+ var __by_line = true // parseInt(this.layoutTimes / 10) % 2 === 0
+ if (__by_node) {
+ for (const i in this.__origin_nodes) {
+ var __node1 = this.__origin_nodes[i]
+ // if (__node1.text === '宣洁')console.log('宣洁:', __node1.x, __node1.y)
+ if (__node1.lot.placed === true) {
+ // var __thisNode = this.__origin_nodes[i]
+ // __thisNode.targetNodes.forEach(thisTN_level1 => {
+ // this.addGravityByNode(__thisNode, thisTN_level1)
+ // thisTN_level1.targetNodes.forEach(thisTN_level2 => {
+ // this.addGravityByNode(__thisNode, thisTN_level2)
+ // })
+ // })
+ // 循环点,综合点与其他所有点点斥力及方向
+ for (var j in this.__origin_nodes) {
+ var __node2 = this.__origin_nodes[j]
+ if (__node2.lot.placed === true) {
+ // 循环点,计算i点与j点点斥力及方向
+ if (i !== j) {
+ // if (this.allNodes[i].lot.level === this.allNodes[j].lot.level) {
+ this.addGravityByNode(__node1, __node2)
+ // }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (__by_line) {
+ for (const i in this.__origin_nodes) {
+ // 循环线,设置每个点承受点力及力点方向
+ if (this.__origin_nodes[i].lot.parent) {
+ this.addElasticByLine(this.__origin_nodes[i].lot.parent, this.__origin_nodes[i])
+ // break
+ }
+ }
+ }
+ // if (this.layoutTimes % 5 === 0) { // 为提高布局效率,计算五次后更新位置
+ for (const i in this.__origin_nodes) {
+ this.applyToNodePosition(this.__origin_nodes[i])
+ }
+ // }
+ window.setTimeout(function() { this.autoLayout() }.bind(this), 30)
+ }
+ this.stop = function() {
+ this.layoutTimes = 1000
+ }
+ this.addElasticByLine = function(node1, node2) {
+ var length = Math.sqrt(Math.pow((node1.y - node2.y), 2) + Math.pow((node1.x - node2.x), 2))
+ if (length > 1000) {
+ length = 1000
+ }
+ var Kf = length < 30 ? 0 : ((length - 30) * 0.05)
+ var Kf_1 = Kf
+ var Kf_2 = Kf
+ // var Kf_1 = Kf / node1.lot.childs.length
+ // var Kf_2 = Kf / node2.lot.childs.length
+ var _buff_x = (node1.x - node2.x) / length
+ var _buff_y = (node1.y - node2.y) / length
+ this.addFtoNode(node1, _buff_x * Kf_1 * -1, _buff_y * Kf_1 * -1, 1)
+ this.addFtoNode(node2, _buff_x * Kf_2, _buff_y * Kf_2, 1)
+ }
+ this.addGravityByNode = function(node1, node2) {
+ var length = Math.sqrt(Math.pow((node1.y - node2.y), 2) + Math.pow((node1.x - node2.x), 2))
+ var zero_length = 300
+ var Kf = length > zero_length ? 0 : ((zero_length - length) * 0.03)
+ if (zero_length < 30) {
+ Kf = Kf * 100
+ }
+ // if (length < 100)Kf = Kf * 2
+ var _buff_x = (node1.x - node2.x) / length
+ var _buff_y = (node1.y - node2.y) / length
+ // if (_buff_x < 30)_buff_x = 1
+ // if (_buff_y < 30)_buff_y = 1
+ // console.log({ Kf, _buff_x, _buff_y, zero_length })
+ this.addFtoNode(node1, _buff_x * Kf, _buff_y * Kf, 0)
+ this.addFtoNode(node2, _buff_x * Kf * -1, _buff_y * Kf * -1, 0)
+ }
+ this.getNodeFWeight = function(node) {
+ var level = node.lot.level
+ if (level > 7)level = 7
+ if (level < 0)level = 0
+ return (8 - level) / 8
+ }
+ this.addFtoNode = function(node, x, y) {
+ // console.log('Add F:', node.text, type, parseInt(x), parseInt(y))
+ if (isNaN(x) || isNaN(y)) {
+ return
+ }
+ x = x / node.lot.strength
+ y = y / node.lot.strength
+ if (x > 50)x = 50
+ if (y > 50)y = 50
+ if (x < -50)x = -50
+ if (y < -50)y = -50
+ // if (isNaN(node.Fx)) {
+ // if (node.text === '宣洁')console.log('宣洁!!!NaN B buff x:', x, node.lot.strength, node)
+ // }
+ node.Fx += x
+ node.Fy += y
+ // if (isNaN(node.Fx)) {
+ // if (node.text === '宣洁')console.log('宣洁!!!NaN A buff x:', x, node.lot.strength, node)
+ // }
+ }
+ this.applyToNodePosition = function(node) {
+ // if (!node.lot.childs || node.lot.childs.length === 0) {
+ // return
+ // }
+ // if (node.lot.level === 0) {
+ // return
+ // }
+ // console.log('F add:', node.name, node.Fx, node.Fy)
+ const __buff_x = parseInt(node.Fx)
+ const __buff_y = parseInt(node.Fy)
+ // console.log('F add:2:', node.name, __buff_x, __buff_y)
+ node.x = node.x + __buff_x
+ node.y = node.y + __buff_y
+ // if (isNaN(node.x)) {
+ // if (node.text === '宣洁')console.log('!!!NaN x:', node.text, __buff_x, node.Fx, node)
+ // }
+ // node.name = __buff_x + ',' + __buff_y
+ // if (node.id === '8') {
+ // console.log(node.id, __buff_x, __buff_y)
+ // // console.log(node.x, node.y)
+ // }
+ node.Fx = 0
+ node.Fy = 0
+ }
+}
+
+export default SeeksAutoLayouter
diff --git a/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/components/relation-graph-master/core4vue/layouters/SeeksBidirectionalTreeLayouter.js b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/components/relation-graph-master/core4vue/layouters/SeeksBidirectionalTreeLayouter.js
new file mode 100644
index 00000000..b9d8ab98
--- /dev/null
+++ b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/components/relation-graph-master/core4vue/layouters/SeeksBidirectionalTreeLayouter.js
@@ -0,0 +1,353 @@
+import SeeksGraphMath from '../SeeksGraphMath'
+
+function SeeksBidirectionalTreeLayouter(layoutSetting, graphSetting) {
+ this.graphSetting = graphSetting
+ this.config = layoutSetting || {}
+ if (!this.config.from) this.config.from = 'left'
+ if (this.config.levelDistance && typeof this.config.levelDistance === 'string') {
+ this.config.levelDistanceArr = this.config.levelDistance.split(',').map(thisNum => parseInt(thisNum))
+ }
+ this.rootNode = null
+ this.allNodes = []
+ this.__origin_nodes = []
+ this.refresh = function() {
+ this.placeNodes(this.__origin_nodes, this.rootNode)
+ }
+ this.analysisNodes4Didirectional = function(willLayoutNodes, thisLevelNodes, thisDeep, analyticResult, levelDirect) {
+ if (thisLevelNodes.length > analyticResult.max_length) {
+ analyticResult.max_length = thisLevelNodes.length
+ }
+ if (thisDeep > analyticResult.max_deep) {
+ analyticResult.max_deep = thisDeep
+ }
+ var __thisLOT_subling = {
+ level: thisDeep,
+ all_size: thisLevelNodes.length,
+ all_strength: 0
+ }
+ var newLevelNodes = []
+ thisLevelNodes.forEach(thisNode => {
+ if (!thisNode.lot)thisNode.lot = {}
+ thisNode.lot.eached = true
+ thisNode.lot.subling = __thisLOT_subling
+ thisNode.lot.level = thisDeep
+ willLayoutNodes.push(thisNode)
+ })
+ var __thisLevel_index = 0
+ // var __prev_node
+ thisLevelNodes.forEach(thisNode => {
+ var __thisNode_child_size = 0
+ // console.log('Build node::', thisNode.text, thisNode.targetNodes.length)
+ if (levelDirect === -1) {
+ // console.log('Build node::from::', thisNode.text, thisNode.targetFrom.length)
+ let __thisTargetIndex = 0
+ thisNode.targetFrom.forEach((thisTarget) => {
+ if (!thisTarget.lot)thisTarget.lot = { eached: false }
+ if (!thisTarget.lot.eached) {
+ if (SeeksGraphMath.isAllowShowNode(thisTarget)) {
+ thisTarget.lot.eached = true
+ thisTarget.lot.parent = thisNode
+ thisTarget.lot.index_of_parent = __thisTargetIndex++
+ // thisTarget.lot.prevNode = __prev_node
+ // if (__prev_node)__prev_node.lot.nextNode = thisTarget
+ // __prev_node = thisTarget
+ thisNode.lot.childs.push(thisTarget)
+ newLevelNodes.push(thisTarget)
+ __thisNode_child_size++
+ } else {
+ thisNode.lot.childs.push(thisTarget)
+ // console.log('hide node:', thisTarget.name, 'from:', thisNode.text)
+ }
+ }
+ })
+ } else {
+ // console.log('Build node::to::', thisNode.text, thisNode.targetTo.length)
+ let __thisTargetIndex = 0
+ thisNode.targetTo.forEach((thisTarget) => {
+ if (!thisTarget.lot)thisTarget.lot = { eached: false }
+ if (!thisTarget.lot.eached) {
+ if (SeeksGraphMath.isAllowShowNode(thisTarget)) {
+ thisTarget.lot.eached = true
+ thisTarget.lot.parent = thisNode
+ thisTarget.lot.index_of_parent = __thisTargetIndex++
+ // thisTarget.lot.prevNode = __prev_node
+ // if (__prev_node)__prev_node.lot.nextNode = thisTarget
+ // __prev_node = thisTarget
+ thisNode.lot.childs.push(thisTarget)
+ newLevelNodes.push(thisTarget)
+ __thisNode_child_size++
+ } else {
+ thisNode.lot.childs.push(thisTarget)
+ // console.log('hide node:', thisTarget.name, 'from:', thisNode.text)
+ }
+ }
+ })
+ }
+ thisNode.lot.strength = __thisNode_child_size > 0 ? __thisNode_child_size : 1
+ __thisLOT_subling.all_strength += thisNode.lot.strength
+ thisNode.lot.strength_plus = __thisLOT_subling.all_strength
+ thisNode.lot.index_of_level = __thisLevel_index
+ thisNode.lot.childs_size = __thisNode_child_size
+ __thisLevel_index++
+ })
+ if (__thisLOT_subling.all_strength > analyticResult.max_strength) {
+ analyticResult.max_strength = __thisLOT_subling.all_strength
+ }
+ // console.log(thisDeep, 'next level nodes:', newLevelNodes.length)
+ if (newLevelNodes.length > 0) {
+ // console.log('thisLevelNodes.length:', thisLevelNodes, thisLevelNodes.length)
+ this.analysisNodes4Didirectional(willLayoutNodes, newLevelNodes, thisDeep + levelDirect, analyticResult, levelDirect)
+ } else {
+ willLayoutNodes.forEach(thisNode => {
+ if (thisNode.lot.childs_size > 0) {
+ thisNode.lot.strengthWithChilds = 0
+ }
+ })
+ willLayoutNodes.forEach(thisNode => {
+ if (thisNode.lot.childs_size === 0) {
+ thisNode.lot.strengthWithChilds = 1
+ SeeksGraphMath.conductStrengthToParents(thisNode)
+ }
+ })
+ SeeksGraphMath.analysisDataTree([willLayoutNodes[0]], 0, levelDirect)
+ // willLayoutNodes.forEach(thisNode => {
+ // thisNode.text = thisNode.lot.strengthWithChilds_from + ':' + thisNode.lot.strengthWithChilds + '/' + thisNode.lot.strength
+ // })
+ }
+ }
+ this.placeNodes = function(allNodes, rootNode) {
+ if (!rootNode) {
+ return
+ } else {
+ }
+ this.__origin_nodes = allNodes
+ this.rootNode = rootNode
+ allNodes.forEach(thisNode => {
+ // thisNode.lot = { eached: false }
+ thisNode.lot.eached = false
+ thisNode.lot.notLeafNode = false
+ thisNode.lot.childs = []
+ // thisNode.lot.parent = undefined
+ thisNode.lot.index_of_parent = 0
+ thisNode.lot.strength = 0
+ thisNode.lot.strengthWithChilds_from = 0
+ thisNode.lot.strengthWithChilds = 0
+ thisNode.lot.prevNode = undefined
+ thisNode.lot.nextNode = undefined
+ thisNode.lot.placed = false
+ })
+ // this.rootNode.fixed = true
+ this.allNodes = []
+ var analyticResult = {
+ max_deep: 1,
+ max_length: 1,
+ max_strength: 1
+ }
+ this.analysisNodes4Didirectional(this.allNodes, [this.rootNode], 0, analyticResult, -1)
+ this.placeNodesPosition(this.rootNode, this.allNodes, analyticResult)
+ this.allNodes = []
+ analyticResult = {
+ max_deep: 1,
+ max_length: 1,
+ max_strength: 1
+ }
+ this.analysisNodes4Didirectional(this.allNodes, [this.rootNode], 0, analyticResult, 1)
+ this.placeNodesPosition(this.rootNode, this.allNodes, analyticResult)
+
+ // console.log('根据数据调整画板高度')
+ // if (this.config.from === 'left' || this.config.from === 'right') {
+ // let __suitableHeight = analyticResult.max_strength * 50 + 100
+ // if (__suitableHeight < this.graphSetting.viewSize.height + 300)__suitableHeight = this.graphSetting.viewSize.height + 300
+ // this.graphSetting.canvasSize.height = __suitableHeight
+ // let __suitableWidth = analyticResult.max_deep * 1000 + 600
+ // if (__suitableWidth < this.graphSetting.viewSize.width + 500)__suitableWidth = this.graphSetting.viewSize.width + 500
+ // this.graphSetting.canvasSize.width = __suitableWidth
+ // } else {
+ // let __suitableWidth = analyticResult.max_strength * 320 + 1000
+ // if (__suitableWidth < this.graphSetting.viewSize.width + 500)__suitableWidth = this.graphSetting.viewSize.width + 500
+ // this.graphSetting.canvasSize.width = __suitableWidth
+ // let __suitableHeight = analyticResult.max_deep * 400 + 200
+ // if (__suitableHeight < this.graphSetting.viewSize.height + 300)__suitableHeight = this.graphSetting.viewSize.height + 300
+ // this.graphSetting.canvasSize.height = __suitableHeight
+ // }
+ // if (this.graphSetting.heightByContent) {
+ // console.log('根据数据调整视窗高度')
+ // if (this.config.from === 'left' || this.config.from === 'right') {
+ // this.graphSetting.viewSize.height = this.graphSetting.canvasSize.height
+ // } else {
+ // this.graphSetting.viewSize.height = analyticResult.max_deep * 500 + 300
+ // }
+ // }
+ // this.graphSetting.canvasOffset.x = this.graphSetting.viewNVInfo.width / 2 - 100
+ // this.graphSetting.canvasOffset.y = this.graphSetting.viewNVInfo.height / 2 - 100
+ }
+ this.placeNodesPosition = function(rootNode, allNodes, analyticResult) {
+ var __mapWidth = this.graphSetting.viewSize.width
+ var __mapHeight = this.graphSetting.viewSize.height
+ // console.log('analysisNodes:', analyticResult, allNodes)
+ // this.graphSetting.canvasOffset.x = 0
+ // this.graphSetting.canvasOffset.y = 0
+ var __offsetX = rootNode.offset_x || 0
+ var __offsetY = rootNode.offset_y || 0
+ // console.log('#############Seeks graph viewSize:Tree layout:', this.graphSetting.viewSize.width, this.graphSetting.viewSize.height)
+ // console.log('[layout canvasOffset]', __mapHeight, this.graphSetting, this.graphSetting.canvasSize, this.config)
+ // console.log('[Layout:AnalyticResult]', analyticResult)
+ if (rootNode.fixed !== true) {
+ var _center_offset_x = parseInt(this.config.centerOffset_x) || 0
+ var _center_offset_y = parseInt(this.config.centerOffset_y) || 0
+ if (this.config.from === 'top') {
+ rootNode.lot.x = (__mapWidth - rootNode.el.offsetWidth) / 2 + _center_offset_x
+ rootNode.lot.y = parseInt(__mapHeight * 0.3 - rootNode.el.offsetHeight) + _center_offset_y
+ } else if (this.config.from === 'bottom') {
+ rootNode.lot.x = (__mapWidth - rootNode.el.offsetWidth) / 2 + _center_offset_x
+ rootNode.lot.y = parseInt(__mapHeight * 0.7 - rootNode.el.offsetHeight) + _center_offset_y
+ } else if (this.config.from === 'right') {
+ rootNode.lot.x = parseInt(__mapWidth * 0.7 - rootNode.el.offsetWidth) / 2 + _center_offset_x
+ rootNode.lot.y = parseInt(__mapHeight / 2 - rootNode.el.offsetHeight / 2) + _center_offset_y
+ } else {
+ rootNode.lot.x = parseInt(__mapWidth * 0.3 - rootNode.el.offsetWidth) / 2 + _center_offset_x
+ rootNode.lot.y = parseInt(__mapHeight / 2 - rootNode.el.offsetHeight / 2) + _center_offset_y
+ }
+ rootNode.x = rootNode.lot.x + __offsetX
+ rootNode.y = rootNode.lot.y + __offsetY
+ } else {
+ if (rootNode.origin_x === undefined) {
+ rootNode.origin_x = rootNode.x
+ rootNode.origin_y = rootNode.y
+ }
+ rootNode.lot.x = rootNode.origin_x
+ rootNode.lot.y = rootNode.origin_y
+ rootNode.x = rootNode.lot.x + __offsetX
+ rootNode.y = rootNode.lot.y + __offsetY
+
+ }
+ rootNode.lot.placed = true
+ var dynamicSizeConfig = {
+ __mapWidth,
+ __mapHeight
+ }
+ this.placeRelativePosition(rootNode, analyticResult, dynamicSizeConfig)
+ allNodes.forEach(thisNode => {
+ // if (rootNode === thisNode) {
+ // var _root_offset_x = this.config.root_offset_x || 0
+ // thisNode.x = thisNode.x + _root_offset_x
+ // return
+ // }
+ if (thisNode.fixed === true) {
+ thisNode.lot.placed = true
+ return
+ }
+ if (!SeeksGraphMath.isAllowShowNode(thisNode)) return
+ // console.log(thisNode.text, thisNode.offset_x, thisNode.offset_y)
+ var __offsetX = thisNode.offset_x || 0
+ var __offsetY = thisNode.offset_y || 0
+ thisNode.x = thisNode.offset_x + thisNode.lot.x + __offsetX
+ thisNode.y = thisNode.offset_y + thisNode.lot.y + __offsetY
+ thisNode.lot.placed = true
+ })
+ }
+ this.placeRelativePosition = function(rootNode, analyticResult, dynamicSizeConfig) {
+ if (this.config.from === 'left' || this.config.from === 'right') {
+ const __min_per_height = this.config.min_per_height || 80
+ const __max_per_height = this.config.max_per_height || 400
+ const __min_per_width = this.config.min_per_width || 430
+ const __max_per_width = this.config.max_per_width || 650
+ let __per_width = parseInt((dynamicSizeConfig.__mapWidth - 10) / (analyticResult.max_deep + 2))
+ if (__per_width < __min_per_width)__per_width = __min_per_width
+ if (__per_width > __max_per_width)__per_width = __max_per_width
+ let __per_height = parseInt(dynamicSizeConfig.__mapHeight / (analyticResult.max_strength + 1))
+ if (__per_height < __min_per_height)__per_height = __min_per_height
+ if (__per_height > __max_per_height)__per_height = __max_per_height
+ this.allNodes.forEach(thisNode => {
+ if (thisNode.fixed === true) return
+ if (thisNode.lot.placed === true) return
+ if (thisNode === rootNode) return
+ // console.log('Place node:', thisNode.text, thisNode)
+ // console.log('Place node lot:', thisNode.lot.subling.level, thisNode.lot.index_of_level, 'of', thisNode.lot.subling.all_size, thisNode.lot.subling.all_strength)
+ if (this.config.from === 'right') {
+ thisNode.lot.x = rootNode.lot.x - this.getLevelDistance(thisNode, thisNode.lot.subling.level, __per_width)
+ } else {
+ thisNode.lot.x = rootNode.lot.x + this.getLevelDistance(thisNode, thisNode.lot.subling.level, __per_width)
+ }
+ })
+ this.allNodes.forEach(thisNode => {
+ if (thisNode.fixed === true) return
+ if (thisNode.lot.level !== 0) {
+ thisNode.lot.y = rootNode.lot.y + __per_height * ((analyticResult.max_strength / -2) + thisNode.lot.strengthWithChilds_from + thisNode.lot.strengthWithChilds / 2)
+ }
+ })
+ // this.allNodes.forEach(thisNode => {
+ // if (thisNode.fixed === true) return
+ // if (thisNode.lot.level === 1) {
+ // thisNode.lot.y = __per_height * (thisNode.lot.strength_plus - thisNode.lot.strength + (thisNode.lot.strength - 1) / 2)
+ // }
+ // })
+ // this.allNodes.forEach(thisNode => {
+ // if (thisNode.fixed === true) return
+ // if (thisNode.lot.level > 1) {
+ // // thisNode.lot.y = __per_height * (thisNode.lot.strength_plus - thisNode.lot.strength + (thisNode.lot.strength - 1) / 2)
+ // thisNode.lot.y = __per_height * (thisNode.lot.parent.lot.strength_plus - thisNode.lot.parent.lot.strength + thisNode.lot.index_of_parent)
+ // // thisNode.text = thisNode.lot.parent.lot.strength_plus + '-' + thisNode.lot.parent.lot.strength + '+' + thisNode.lot.index_of_parent
+ // }
+ // })
+ } else {
+ const __min_per_height = this.config.min_per_height || 250
+ const __max_per_height = this.config.max_per_height || 400
+ const __min_per_width = this.config.min_per_width || 250
+ const __max_per_width = this.config.max_per_width || 500
+ var __per_width = parseInt((dynamicSizeConfig.__mapWidth - 10) / (analyticResult.max_strength + 2))
+ if (__per_width < __min_per_width)__per_width = __min_per_width
+ if (__per_width > __max_per_width)__per_width = __max_per_width
+ var __per_height = parseInt((dynamicSizeConfig.__mapHeight - 10) / (analyticResult.max_deep + 2))
+ if (__per_height < __min_per_height)__per_height = __min_per_height
+ if (__per_height > __max_per_height)__per_height = __max_per_height
+ this.allNodes.forEach(thisNode => {
+ if (thisNode.fixed === true) return
+ if (thisNode.lot.placed === true) return
+ if (thisNode === rootNode) return
+ // console.log('Place node:', thisNode.text, thisNode)
+ // console.log('Place node lot:', thisNode.lot.subling.level, thisNode.lot.index_of_level, 'of', thisNode.lot.subling.all_size, thisNode.lot.subling.all_strength)
+ if (this.config.from === 'bottom') {
+ thisNode.lot.y = rootNode.lot.y - this.getLevelDistance(thisNode, thisNode.lot.subling.level, __per_height)
+ } else {
+ // console.log('Place node xxxx:', rootNode.lot.y, thisNode.lot.subling.level, __per_height)
+ thisNode.lot.y = rootNode.lot.y + this.getLevelDistance(thisNode, thisNode.lot.subling.level, __per_height)
+ }
+ })
+ this.allNodes.forEach(thisNode => {
+ if (thisNode.fixed === true) return
+ if (thisNode.lot.level !== 0) {
+ // console.log('Place node xxxx:', thisNode.lot.strengthWithChilds_from, thisNode.lot.strengthWithChilds, __per_width)
+ thisNode.lot.x = -58 + rootNode.lot.x + __per_width * ((analyticResult.max_strength / -2) + thisNode.lot.strengthWithChilds_from + thisNode.lot.strengthWithChilds / 2)
+ // thisNode.lot.x = rootNode.lot.x
+ }
+ })
+ // this.allNodes.forEach(thisNode => {
+ // if (thisNode.fixed === true) return
+ // if (thisNode.lot.level === 1) {
+ // thisNode.lot.x = __per_width * (thisNode.lot.strength_plus - thisNode.lot.strength + thisNode.lot.strength / 2)
+ // }
+ // })
+ // this.allNodes.forEach(thisNode => {
+ // if (thisNode.fixed === true) return
+ // if (thisNode.lot.level > 1) {
+ // thisNode.lot.x = __per_width * (thisNode.lot.parent.lot.strength_plus - thisNode.lot.parent.lot.strength + thisNode.lot.index_of_parent)
+ // }
+ // })
+ }
+ }
+ this.getLevelDistance = function(node, level, perSize) {
+ if (this.config.levelDistanceArr && this.config.levelDistanceArr.length > 0) {
+ var _distance = 0
+ for (let i = 0; i < level; i++) {
+ var _thisLevelDistance = this.config.levelDistanceArr[i] || 100
+ _distance += _thisLevelDistance
+ }
+ return _distance
+ } else {
+ return level * perSize
+ }
+ }
+}
+
+export default SeeksBidirectionalTreeLayouter
diff --git a/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/components/relation-graph-master/core4vue/layouters/SeeksCenterLayouter.js b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/components/relation-graph-master/core4vue/layouters/SeeksCenterLayouter.js
new file mode 100644
index 00000000..4ca103cc
--- /dev/null
+++ b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/components/relation-graph-master/core4vue/layouters/SeeksCenterLayouter.js
@@ -0,0 +1,290 @@
+import SeeksGraphMath from '../SeeksGraphMath'
+
+function SeeksCenterLayouter(layoutSetting, graphSetting) {
+ this.graphSetting = graphSetting
+ this.config = layoutSetting || {}
+ this.rootNode = null
+ this.allNodes = []
+ this.__origin_nodes = []
+ this.refresh = function() {
+ if (window.SeeksGraphDebug) console.log('SeeksCenterLayouter:refresh')
+ this.placeNodes(this.__origin_nodes, this.rootNode)
+ }
+ this.placeNodes = function(allNodes, rootNode) {
+ if (window.SeeksGraphDebug) console.log('SeeksCenterLayouter:placeNodes')
+ if (!rootNode) {
+ console.log('root is null:', rootNode)
+ return
+ } else {
+ if (window.SeeksGraphDebug) console.log('layout by root:', rootNode)
+ }
+ this.__origin_nodes = allNodes
+ this.rootNode = rootNode
+ allNodes.forEach(thisNode => {
+ // thisNode.lot = { eached: false }
+ thisNode.lot.eached = false
+ thisNode.lot.notLeafNode = false
+ thisNode.lot.childs = []
+ // thisNode.lot.parent = undefined
+ thisNode.lot.index_of_parent = 0
+ thisNode.lot.strength = 0
+ thisNode.lot.prevNode = undefined
+ thisNode.lot.nextNode = undefined
+ thisNode.lot.placed = false
+ })
+ this.allNodes = []
+ var analyticResult = {
+ max_deep: 1,
+ max_length: 1
+ }
+ SeeksGraphMath.analysisNodes4Didirectional(this.allNodes, [this.rootNode], 0, analyticResult, 0)
+ // console.log('analysisNodes:', analyticResult)
+ // if (this.graphSetting.heightByContent) {
+ // console.log('根据内容调整高度')
+ // var __suitableHeight = analyticResult.max_deep * 2 * 300 + 500
+ // this.graphSetting.viewSize.height = __suitableHeight
+ // }
+ if (window.SeeksGraphDebug) console.log('调整画布大小')
+ // var __per_width = parseInt((__mapWidth - 10) / (analyticResult.max_deep + 2))
+ // var __per_height = parseInt((__mapHeight - 10) / (analyticResult.max_length + 1))
+ // console.log('per:', __per_width, __per_height)
+ // var __level2_current_length = 0
+ // this.allNodes.forEach(thisNode => {
+ // if (thisNode.lot.subling.level === 1 && thisNode.lot.childs_size > 0) {
+ // __level2_current_length += thisNode.lot.childs_size
+ // var __thisNodeLength = __level2_current_length + parseInt((thisNode.lot.childs_size / 2).toFixed(0))
+ // thisNode.lot.strength_plus = __level2_current_length
+ // console.log('level2 parents:', thisNode.name, thisNode.lot.childs_size, { strength_plus: thisNode.lot.strength_plus, __thisNodeLength, strength: thisNode.lot.childs_size, __level2_current_length })
+ // }
+ // })
+ // var __currentLevel = 0
+ var __mapWidth = this.graphSetting.viewSize.width
+ var __mapHeight = this.graphSetting.viewSize.height
+ rootNode.lot.x = parseInt((__mapWidth - rootNode.el.offsetWidth) / 2)
+ rootNode.lot.y = parseInt((__mapHeight - rootNode.el.offsetHeight) / 2)
+ // this.rootNode.lot.x = 0
+ // this.rootNode.lot.y = 0
+ // if (this.rootNode.lot.y > 400) {
+ // this.rootNode.lot.y = 400
+ // }
+ // console.log('[layout canvasOffset]', this.graphSetting.viewSize, this.graphSetting.canvasSize)
+ this.placeRelativePosition(this.rootNode, analyticResult)
+ this.allNodes.forEach(thisNode => {
+ if (thisNode.fixed === true) return
+ if (!SeeksGraphMath.isAllowShowNode(thisNode)) return
+ var __offsetX = thisNode.offset_x || 0
+ var __offsetY = thisNode.offset_y || 0
+ thisNode.x = thisNode.lot.x + __offsetX
+ thisNode.y = thisNode.lot.y + __offsetY
+ thisNode.lot.placed = true
+ })
+ // var __graphIndex = 1
+ // allNodes.forEach(thisNode => {
+ // // thisNode.lot = { eached: false }
+ // if (!SeeksGraphMath.isAllowShowNode(thisNode)) return
+ // if (thisNode.lot.placed === false) {
+ // this.allNodes = []
+ // var analyticResult = {
+ // max_deep: 1,
+ // max_length: 1
+ // }
+ // SeeksGraphMath.analysisNodes(this.allNodes, [thisNode], 0, analyticResult, { prettyLevelPosition: this.graphSetting.prettyLevelPosition })
+ // thisNode.lot.x = this.rootNode.lot.x
+ // thisNode.lot.y = this.rootNode.lot.y + (__graphIndex++ * 1200)
+ // this.graphSetting.canvasSize.height += 1200
+ // this.placeRelativePosition(thisNode)
+ // this.allNodes.forEach(thisNode => {
+ // thisNode.x = thisNode.lot.x - __offsetX
+ // thisNode.y = thisNode.lot.y - __offsetY
+ // thisNode.lot.placed = true
+ // })
+ // }
+ // })
+ console.log('Start Auto Layout.....')
+ // this.autoLayout(true)
+ // console.log('layout from root:', analyticResult.max_deep, analyticResult.max_length)
+ // rootNode.x = (this.graphSetting.canvasSize.width - this.graphSetting.nodeSize.width) / 2
+ // rootNode.y = (this.graphSetting.canvasSize.height - this.graphSetting.nodeSize.height) / 2
+ // rootNode.placed = true
+ // // rootNode.name = rootNode.x + ',' + rootNode.y
+ // var newLevelNodes = []
+ // newLevelNodes.push(rootNode)
+ // this.setPlace(newLevelNodes, 0, rootNode)
+ }
+ this.placeRelativePosition = function(rootNode, analyticResult) {
+ var distance_coefficient = this.config.distance_coefficient === undefined ? 1 : this.config.distance_coefficient
+ var __leve1_min_r = parseInt(((this.graphSetting.viewSize.height + this.graphSetting.viewSize.width) / analyticResult.max_deep * 0.2)) * distance_coefficient
+ if (window.SeeksGraphDebug) console.log('analyticResult:', analyticResult, __leve1_min_r, this.config.distance_coefficient)
+ if (__leve1_min_r < 150 * distance_coefficient) __leve1_min_r = 150 * distance_coefficient
+ var __level1_r = 0
+ this.allNodes.forEach(thisNode => {
+ if (thisNode.lot.subling.level === 1) {
+ __level1_r = parseInt(thisNode.lot.subling.all_size * 50 / Math.PI / 2)
+ if (__level1_r < __leve1_min_r)__level1_r = __leve1_min_r
+ // if (__level1_r > 500)__level1_r = 500
+ const _point = SeeksGraphMath.getOvalPoint(rootNode.lot.x, rootNode.lot.y, thisNode.lot.subling.level * __level1_r, thisNode.lot.strength_plus - (thisNode.lot.strength / 2), thisNode.lot.subling.all_strength)
+ // const _point = SeeksGraphMath.getOvalPoint(this.rootNode.x, this.rootNode.y, thisNode.lot.subling.level * __level1_r, thisNode.lot.index_of_level, thisNode.lot.subling.all_size)
+ thisNode.lot.x = _point.x
+ thisNode.lot.y = _point.y
+ }
+ })
+ var __level_r = parseInt(300 * distance_coefficient)
+ this.allNodes.forEach(thisNode => {
+ if (thisNode.lot.subling.level > 1) {
+ var __area_start = thisNode.lot.parent.lot.strength_plus - thisNode.lot.parent.lot.strength
+ var __area_end = thisNode.lot.parent.lot.strength_plus
+ var __buff = (__area_end - __area_start) / (thisNode.lot.parent.lot.childs_size + 1) * (thisNode.lot.index_of_parent + 1)
+ const _point = SeeksGraphMath.getOvalPoint(rootNode.lot.x, rootNode.lot.y, (thisNode.lot.subling.level - 1) * __level_r + __level1_r, __area_start + __buff, thisNode.lot.parent.lot.subling.all_strength)
+ thisNode.lot.x = _point.x
+ thisNode.lot.y = _point.y
+ }
+ })
+ }
+ this.layoutTimes = 0
+ // var ___this = this
+ this.autoLayout = function(forceLayout) {
+ if (forceLayout) {
+ this.layoutTimes = 0
+ }
+ console.log('this.layoutTimes:', this.layoutTimes)
+ if (this.layoutTimes > 300) {
+ this.graphSetting.autoLayouting = false
+ return
+ }
+ this.layoutTimes++
+ this.__origin_nodes.forEach(thisNode => {
+ thisNode.Fx = 0
+ thisNode.Fy = 0
+ })
+ var __by_node = true // parseInt(this.layoutTimes / 10) % 2 === 1
+ var __by_line = true // parseInt(this.layoutTimes / 10) % 2 === 0
+ if (__by_node) {
+ for (const i in this.__origin_nodes) {
+ var __node1 = this.__origin_nodes[i]
+ // if (__node1.text === '宣洁')console.log('宣洁:', __node1.x, __node1.y)
+ if (__node1.lot.placed === true) {
+ // var __thisNode = this.__origin_nodes[i]
+ // __thisNode.targetNodes.forEach(thisTN_level1 => {
+ // this.addGravityByNode(__thisNode, thisTN_level1)
+ // thisTN_level1.targetNodes.forEach(thisTN_level2 => {
+ // this.addGravityByNode(__thisNode, thisTN_level2)
+ // })
+ // })
+ // 循环点,综合点与其他所有点点斥力及方向
+ for (var j in this.__origin_nodes) {
+ var __node2 = this.__origin_nodes[j]
+ if (__node2.lot.placed === true) {
+ // 循环点,计算i点与j点点斥力及方向
+ if (i !== j) {
+ // if (this.allNodes[i].lot.level === this.allNodes[j].lot.level) {
+ this.addGravityByNode(__node1, __node2)
+ // }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (__by_line) {
+ for (const i in this.__origin_nodes) {
+ // 循环线,设置每个点承受点力及力点方向
+ if (this.__origin_nodes[i].lot.parent) {
+ this.addElasticByLine(this.__origin_nodes[i].lot.parent, this.__origin_nodes[i])
+ // break
+ }
+ }
+ }
+ // if (this.layoutTimes % 5 === 0) { // 为提高布局效率,计算五次后更新位置
+ for (const i in this.__origin_nodes) {
+ this.applyToNodePosition(this.__origin_nodes[i])
+ }
+ // }
+ window.setTimeout(function() { this.autoLayout() }.bind(this), 30)
+ }
+ this.stop = function() {
+ this.layoutTimes = 1000
+ }
+ this.addElasticByLine = function(node1, node2) {
+ var length = Math.sqrt(Math.pow((node1.y - node2.y), 2) + Math.pow((node1.x - node2.x), 2))
+ if (length > 1000) {
+ length = 1000
+ }
+ var Kf = length < 30 ? 0 : ((length - 30) * 0.05)
+ var Kf_1 = Kf
+ var Kf_2 = Kf
+ // var Kf_1 = Kf / node1.lot.childs.length
+ // var Kf_2 = Kf / node2.lot.childs.length
+ var _buff_x = (node1.x - node2.x) / length
+ var _buff_y = (node1.y - node2.y) / length
+ this.addFtoNode(node1, _buff_x * Kf_1 * -1, _buff_y * Kf_1 * -1, 1)
+ this.addFtoNode(node2, _buff_x * Kf_2, _buff_y * Kf_2, 1)
+ }
+ this.addGravityByNode = function(node1, node2) {
+ var length = Math.sqrt(Math.pow((node1.y - node2.y), 2) + Math.pow((node1.x - node2.x), 2))
+ var zero_length = 300
+ var Kf = length > zero_length ? 0 : ((zero_length - length) * 0.03)
+ if (zero_length < 30) {
+ Kf = Kf * 100
+ }
+ // if (length < 100)Kf = Kf * 2
+ var _buff_x = (node1.x - node2.x) / length
+ var _buff_y = (node1.y - node2.y) / length
+ // if (_buff_x < 30)_buff_x = 1
+ // if (_buff_y < 30)_buff_y = 1
+ // console.log({ Kf, _buff_x, _buff_y, zero_length })
+ this.addFtoNode(node1, _buff_x * Kf, _buff_y * Kf, 0)
+ this.addFtoNode(node2, _buff_x * Kf * -1, _buff_y * Kf * -1, 0)
+ }
+ this.getNodeFWeight = function(node) {
+ var level = node.lot.level
+ if (level > 7)level = 7
+ if (level < 0)level = 0
+ return (8 - level) / 8
+ }
+ this.addFtoNode = function(node, x, y) {
+ // console.log('Add F:', node.text, type, parseInt(x), parseInt(y))
+ if (isNaN(x) || isNaN(y)) {
+ return
+ }
+ x = x / node.lot.strength
+ y = y / node.lot.strength
+ if (x > 50)x = 50
+ if (y > 50)y = 50
+ if (x < -50)x = -50
+ if (y < -50)y = -50
+ // if (isNaN(node.Fx)) {
+ // if (node.text === '宣洁')console.log('宣洁!!!NaN B buff x:', x, node.lot.strength, node)
+ // }
+ node.Fx += x
+ node.Fy += y
+ // if (isNaN(node.Fx)) {
+ // if (node.text === '宣洁')console.log('宣洁!!!NaN A buff x:', x, node.lot.strength, node)
+ // }
+ }
+ this.applyToNodePosition = function(node) {
+ // if (!node.lot.childs || node.lot.childs.length === 0) {
+ // return
+ // }
+ // if (node.lot.level === 0) {
+ // return
+ // }
+ // console.log('F add:', node.name, node.Fx, node.Fy)
+ const __buff_x = parseInt(node.Fx)
+ const __buff_y = parseInt(node.Fy)
+ // console.log('F add:2:', node.name, __buff_x, __buff_y)
+ node.x = node.x + __buff_x
+ node.y = node.y + __buff_y
+ // if (isNaN(node.x)) {
+ // if (node.text === '宣洁')console.log('!!!NaN x:', node.text, __buff_x, node.Fx, node)
+ // }
+ // node.name = __buff_x + ',' + __buff_y
+ // if (node.id === '8') {
+ // console.log(node.id, __buff_x, __buff_y)
+ // // console.log(node.x, node.y)
+ // }
+ node.Fx = 0
+ node.Fy = 0
+ }
+}
+
+export default SeeksCenterLayouter
diff --git a/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/components/relation-graph-master/core4vue/layouters/SeeksCircleLayouter.js b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/components/relation-graph-master/core4vue/layouters/SeeksCircleLayouter.js
new file mode 100644
index 00000000..ce1775ed
--- /dev/null
+++ b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/components/relation-graph-master/core4vue/layouters/SeeksCircleLayouter.js
@@ -0,0 +1,307 @@
+import SeeksGraphMath from '../SeeksGraphMath'
+
+function SeeksCenterLayouter(layoutSetting, setting) {
+ this.setting = setting
+ this.config = layoutSetting || {}
+ this.__max_deep = 1
+ this.__max_length = 1
+ this.checkMaxDeepAndLength = function(thisLevelNodes, thisDeep) {
+ if (thisLevelNodes.length > this.__max_length) {
+ this.__max_length = thisLevelNodes.length
+ }
+ if (thisDeep > this.__max_deep) {
+ this.__max_deep = thisDeep
+ }
+ var __thisLOT_subling = {
+ level: thisDeep,
+ all_size: thisLevelNodes.length,
+ all_strength: 0
+ }
+ var newLevelNodes = []
+ thisLevelNodes.forEach(thisNode => {
+ if (!thisNode.lot)thisNode.lot = {}
+ thisNode.lot.eached = true
+ thisNode.lot.subling = __thisLOT_subling
+ this.allNodes.push(thisNode)
+ })
+ var __thisLevel_index = 0
+ var __prev_node
+ thisLevelNodes.forEach(thisNode => {
+ // console.log('Build node::', thisNode.name, thisNode.targetNodes.length)
+ var __thisNode_child_size = 0
+ if (thisNode.targetNodes) {
+ thisNode.targetNodes.forEach(thisTarget => {
+ console.log('child node::', thisTarget.type, thisTarget.lot.eached)
+ if (!thisTarget.lot)thisTarget.lot = { eached: false }
+ if (thisTarget.type === 'node' && thisTarget.targetNodes.length <= 1) {
+ if (!thisTarget.lot.eached) {
+ thisTarget.lot.parent = thisNode
+ thisTarget.lot.index_of_p_childs = __thisNode_child_size
+ thisTarget.lot.prevNode = __prev_node
+ if (__prev_node)__prev_node.lot.nextNode = thisTarget
+ __prev_node = thisTarget
+ thisNode.lot.childs.push(thisTarget)
+ thisNode.lot.eached = true
+ newLevelNodes.push(thisTarget)
+ __thisNode_child_size++
+ }
+ } else {
+ thisTarget.lot.notLeafNode = true
+ }
+ })
+ thisNode.targetNodes.forEach(thisTarget => {
+ if (thisTarget.lot.notLeafNode) {
+ if (!thisTarget.lot)thisTarget.lot = { eached: false }
+ if (!thisTarget.lot.eached) {
+ thisTarget.lot.parent = thisNode
+ thisTarget.lot.index_of_p_childs = __thisNode_child_size
+ thisTarget.lot.prevNode = __prev_node
+ if (__prev_node)__prev_node.lot.nextNode = thisTarget
+ __prev_node = thisTarget
+ thisNode.lot.childs.push(thisTarget)
+ thisNode.lot.eached = true
+ newLevelNodes.push(thisTarget)
+ __thisNode_child_size++
+ }
+ }
+ })
+ }
+ thisNode.lot.strength = __thisNode_child_size > 0 ? __thisNode_child_size : 1
+ __thisLOT_subling.all_strength += thisNode.lot.strength
+ thisNode.lot.strength_plus = __thisLOT_subling.all_strength
+ thisNode.lot.level_index = __thisLevel_index
+ thisNode.lot.childs_size = __thisNode_child_size
+ __thisLevel_index++
+ })
+ // console.log('next level nodes:', newLevelNodes.length)
+ if (newLevelNodes.length > 0) {
+ // console.log('thisLevelNodes.length:', thisLevelNodes, thisLevelNodes.length)
+ this.checkMaxDeepAndLength(newLevelNodes, thisDeep + 1)
+ }
+ }
+ this.rootNode = null
+ this.allNodes = []
+ this.__origin_nodes = []
+ this.refresh = function() {
+ this.placeNodes(this.__origin_nodes, this.rootNode)
+ }
+ this.placeNodes = function(allNodes, rootNode) {
+ if (!rootNode) {
+ console.log('root is null:', rootNode)
+ return
+ } else {
+ console.log('layout by root:', rootNode)
+ }
+ this.__origin_nodes = allNodes
+ this.rootNode = rootNode
+ allNodes.forEach(thisNode => {
+ // thisNode.lot = { eached: false }
+ thisNode.lot.eached = false
+ thisNode.lot.notLeafNode = false
+ thisNode.lot.childs = []
+ thisNode.lot.parent = undefined
+ thisNode.lot.index_of_p_childs = 0
+ thisNode.lot.strength = 0
+ thisNode.lot.prevNode = undefined
+ thisNode.lot.nextNode = undefined
+ })
+ this.allNodes = []
+ console.log('max before:', this.__max_deep, this.__max_length)
+ this.checkMaxDeepAndLength([this.rootNode], 0)
+ console.log('max after:', this.__max_deep, this.__max_length)
+ // if (this.setting.heightByContent) {
+ // console.log('根据内容调整高度')
+ // var __suitableHeight = this.__max_length * 40 + 100
+ // if (__suitableHeight > this.setting.viewSize.height) {
+ // this.setting.viewSize.height = __suitableHeight
+ // }
+ // if (setting.viewSize.height > this.setting.canvasSize.height / 2) {
+ // this.setting.canvasSize.height = this.setting.viewSize.height * 2
+ // }
+ // }
+ this.setting.canvasSize.width = 4000
+ this.setting.canvasSize.height = 4000
+ if (this.setting.heightByContent) {
+ console.log('根据数据调整视窗高度')
+ this.setting.viewSize.height = 1600
+ }
+ this.setting.resetViewSize(this.setting)
+ var __mapWidth = this.setting.viewSize.width
+ var __mapHeight = this.setting.viewSize.height
+ var __offsetX = this.setting.canvasOffset.x
+ var __offsetY = this.setting.canvasOffset.y
+ // var __per_width = parseInt((__mapWidth - 10) / (this.__max_deep + 2))
+ // var __per_height = parseInt((__mapHeight - 10) / (this.__max_length + 1))
+ // console.log('per:', __per_width, __per_height)
+ // var __level2_current_length = 0
+ // this.allNodes.forEach(thisNode => {
+ // if (thisNode.lot.subling.level === 1 && thisNode.lot.childs_size > 0) {
+ // __level2_current_length += thisNode.lot.childs_size
+ // var __thisNodeLength = __level2_current_length + parseInt((thisNode.lot.childs_size / 2).toFixed(0))
+ // thisNode.lot.strength_plus = __level2_current_length
+ // console.log('level2 parents:', thisNode.name, thisNode.lot.childs_size, { strength_plus: thisNode.lot.strength_plus, __thisNodeLength, strength: thisNode.lot.childs_size, __level2_current_length })
+ // }
+ // })
+ // var __currentLevel = 0
+ var __center = {
+ x: (__mapWidth) / 2 - __offsetX,
+ y: (__mapHeight) / 2 - __offsetY
+ }
+ if (__center.y > 800 - __offsetY) {
+ __center.y = 800 - __offsetY
+ }
+ var __all_size = this.allNodes.length
+ var __circle_r = __all_size * 90 / Math.PI / 2
+ if (__circle_r < 200)__circle_r = 200
+ if (__circle_r > 800)__circle_r = 800
+ this.allNodes.forEach((thisNode, _index) => {
+ const _point = SeeksGraphMath.getOvalPoint(__center.x, __center.y, __circle_r, _index, __all_size)
+ thisNode.x = _point.x
+ thisNode.y = _point.y
+ // console.log('Place node:', thisNode.name, thisNode.x, thisNode.y)
+ // thisNode.name = (thisNode.lp_level_index + 1) + '/' + subling_size
+ })
+ // this.allNodes.forEach(thisNode => {
+ // if (thisNode.lot.subling.level === 1 && thisNode.lot.childs_size > 0) {
+ // var _c_first = thisNode.lot.childs[0]
+ // var _c_last = thisNode.lot.childs[thisNode.lot.childs.length - 1]
+ // var _new_y = parseInt((_c_first.y + _c_last.y) / 2)
+ // thisNode.y = _new_y
+ // }
+ // })
+ // this.adjustLevel2Y(__mapHeight)
+ console.log('Start Auto Layout.....')
+ // this.autoLayout(true)
+ // console.log('layout from root:', this.__max_deep, this.__max_length)
+ // rootNode.x = (this.setting.canvasSize.width - this.setting.nodeSize.width) / 2
+ // rootNode.y = (this.setting.canvasSize.height - this.setting.nodeSize.height) / 2
+ // rootNode.placed = true
+ // // rootNode.name = rootNode.x + ',' + rootNode.y
+ // var newLevelNodes = []
+ // newLevelNodes.push(rootNode)
+ // this.setPlace(newLevelNodes, 0, rootNode)
+ }
+ this.adjustLevel2Y = function(__mapHeight) {
+ for (let i = 0; i < this.allNodes.length; i++) {
+ var thisNode = this.allNodes[i]
+ if (thisNode.lot.subling.level === 1 && thisNode.lot.childs_size === 0) {
+ var __per_height = parseInt(__mapHeight / (thisNode.lot.subling.all_size + 1))
+ if (__per_height > 70)__per_height = 70
+ console.log(__per_height, __mapHeight, thisNode.lot.subling.all_size, thisNode.lot.subling.all_strength, thisNode.lot.strength)
+ for (let j = 0; j < this.allNodes.length; j++) {
+ var thisLevel2Node = this.allNodes[j]
+ if (thisLevel2Node.lot.subling.level === 1 && thisLevel2Node !== thisNode) {
+ var __y_diff = Math.abs(thisNode.y - thisLevel2Node.y)
+ if (__y_diff < __per_height - 2) {
+ console.log('__y_diff', thisNode.name, thisLevel2Node.name, __y_diff)
+ // if (thisLevel2Node.lot.childs_size > 0 && i > 0) {
+ // thisLevel2Node.y = this.allNodes[i - 1].y + __per_height
+ // }
+ thisNode.y = thisLevel2Node.y + __per_height
+ i--
+ break
+ }
+ }
+ }
+ }
+ }
+ }
+ this.layoutTimes = 0
+ // var ___this = this
+ this.autoLayout = function(forceLayout) {
+ if (forceLayout) {
+ this.layoutTimes = 0
+ }
+ console.log('this.layoutTimes:', this.layoutTimes)
+ if (this.layoutTimes > 300) {
+ setting.autoLayouting = false
+ return
+ }
+ this.layoutTimes++
+ this.allNodes.forEach(thisNode => {
+ thisNode.Fx = 0
+ thisNode.Fy = 0
+ })
+ var __by_node = true // parseInt(this.layoutTimes / 10) % 2 === 1
+ var __by_line = true // parseInt(this.layoutTimes / 10) % 2 === 0
+ if (__by_node) {
+ for (const i in this.allNodes) {
+ // 循环点,综合点与其他所有点点斥力及方向
+ for (var j in this.allNodes) {
+ // 循环点,计算i点与j点点斥力及方向
+ if (i !== j) {
+ // if (this.allNodes[i].lot.subling.level === this.allNodes[j].lot.subling.level) {
+ this.addGravityByNode(this.allNodes[i], this.allNodes[j])
+ // }
+ }
+ }
+ }
+ }
+ if (__by_line) {
+ for (const i in this.allNodes) {
+ // 循环线,设置每个点承受点力及力点方向
+ if (this.allNodes[i].lot.parent) {
+ this.addElasticByLine(this.allNodes[i].lot.parent, this.allNodes[i])
+ // break
+ }
+ }
+ }
+ // if (this.layoutTimes % 1 === 0) { // 为提高布局效率,计算五次后更新位置
+ for (const i in this.allNodes) {
+ this.applyToNodePosition(this.allNodes[i])
+ }
+ // }
+ window.setTimeout(function() { this.autoLayout() }.bind(this), 30)
+ }
+ this.stop = function() {
+ this.layoutTimes = 1000
+ }
+ this.addElasticByLine = function(n1, n2) {
+ var length = Math.sqrt(Math.pow((n1.y - n2.y), 2) + Math.pow((n1.x - n2.x), 2))
+ var Kf = length < 30 ? 0 : ((length - 30) * 0.01)
+ this.addFtoNode(n1, (n1.x - n2.x) * Kf * -1, (n1.y - n2.y) * Kf * -1)
+ this.addFtoNode(n2, (n2.x - n1.x) * Kf * -1, (n2.y - n1.y) * Kf * -1)
+ }
+ this.addGravityByNode = function(node1, node2) {
+ var length = Math.sqrt(Math.pow((node1.y - node2.y), 2) + Math.pow((node1.x - node2.x), 2))
+ var Kf = length > 300 ? 0 : ((300 - length) * 0.02)
+ // if (length < 100)Kf = Kf * 2
+ var _buff_x = node1.x - node2.x
+ var _buff_y = node1.y - node2.y
+ if (_buff_x === 0)_buff_x = 1
+ if (_buff_y === 0)_buff_y = 1
+ this.addFtoNode(node1, _buff_x * Kf, _buff_y * Kf)
+ this.addFtoNode(node2, _buff_x * -1 * Kf, _buff_y * -1 * Kf)
+ }
+ this.addFtoNode = function(node, x, y) {
+ node.Fx += x
+ node.Fy += y
+ }
+ this.applyToNodePosition = function(node) {
+ // if (!node.lot.childs || node.lot.childs.length === 0) {
+ // return
+ // }
+ if (this.rootNode === node) {
+ return
+ }
+ // console.log('F add:', node.name, node.Fx, node.Fy)
+ if (node.Fx > 1000)node.Fx = 3000
+ if (node.Fy > 1000)node.Fy = 3000
+ if (node.Fx < -1000)node.Fx = -3000
+ if (node.Fy < -1000)node.Fy = -3000
+ const __buff_x = parseInt(node.Fx * 0.02)
+ const __buff_y = parseInt(node.Fy * 0.02)
+ // console.log('F add:2:', node.name, __buff_x, __buff_y)
+ node.x = node.x + __buff_x
+ node.y = node.y + __buff_y
+ // node.name = __buff_x + ',' + __buff_y
+ // if (node.id === '8') {
+ // console.log(node.id, __buff_x, __buff_y)
+ // // console.log(node.x, node.y)
+ // }
+ node.Fx = 0
+ node.Fy = 0
+ }
+}
+
+export default SeeksCenterLayouter
diff --git a/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/components/relation-graph-master/core4vue/layouters/SeeksFixedLayouter.js b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/components/relation-graph-master/core4vue/layouters/SeeksFixedLayouter.js
new file mode 100644
index 00000000..b48e660b
--- /dev/null
+++ b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/components/relation-graph-master/core4vue/layouters/SeeksFixedLayouter.js
@@ -0,0 +1,43 @@
+import SeeksGraphMath from '../SeeksGraphMath'
+
+function SeeksFixedLayouter(layoutSetting, graphSetting) {
+ this.graphSetting = graphSetting
+ this.config = layoutSetting || {}
+ this.rootNode = null
+ this.allNodes = []
+ this.__origin_nodes = []
+ this.refresh = function() {
+ this.placeNodes(this.__origin_nodes, this.rootNode)
+ }
+ this.placeNodes = function(allNodes, rootNode) {
+ if (!rootNode) {
+ console.log('root is null:', rootNode)
+ return
+ } else {
+ if (window.SeeksGraphDebug) console.log('layout by root:', rootNode)
+ }
+ this.__origin_nodes = allNodes
+ this.rootNode = rootNode
+ allNodes.forEach(thisNode => {
+ // thisNode.lot = { eached: false }
+ thisNode.lot.eached = false
+ thisNode.lot.notLeafNode = false
+ thisNode.lot.childs = []
+ // thisNode.lot.parent = undefined
+ thisNode.lot.index_of_parent = 0
+ thisNode.lot.strength = 0
+ thisNode.lot.prevNode = undefined
+ thisNode.lot.nextNode = undefined
+ thisNode.lot.placed = false
+ })
+ this.allNodes = []
+ var analyticResult = {
+ max_deep: 1,
+ max_length: 1
+ }
+ SeeksGraphMath.analysisNodes4Didirectional(this.allNodes, [this.rootNode], 0, analyticResult, 0)
+ if (window.SeeksGraphDebug) console.log('[layout canvasOffset]', this.graphSetting.viewSize, this.graphSetting.canvasSize)
+ }
+}
+
+export default SeeksFixedLayouter
diff --git a/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/components/relation-graph-master/index.js b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/components/relation-graph-master/index.js
new file mode 100644
index 00000000..6dfdb246
--- /dev/null
+++ b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/components/relation-graph-master/index.js
@@ -0,0 +1,6 @@
+import RelationGraph from './index.vue'
+RelationGraph.install = function(Vue) {
+ Vue.component('relation-graph', RelationGraph);
+ Vue.component('seeks-relation-graph', RelationGraph);
+};
+export default RelationGraph
diff --git a/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/components/relation-graph-master/index.vue b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/components/relation-graph-master/index.vue
new file mode 100644
index 00000000..419ac135
--- /dev/null
+++ b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/components/relation-graph-master/index.vue
@@ -0,0 +1,1136 @@
+
+ {{ JSON.stringify(graphSetting.canvasOffset, null, 2) }}{{ JSON.stringify(graphSetting.viewNVInfo, null, 2) }}{{ JSON.stringify(graphSetting.canvasNVInfo, null, 2) }}'+data.headtop[i]+' '
+ }
+
+ }
+ $('#table1 thead tr').html(strTh)
+ for(let j=0;j'+strtitle+' '
+ for(let a=0;a'+strnum1+' '
+ strTr+=''+strTd1+firstTd+Td1+' '
+ }
+ $('#table1 tbody').html(strTr)
+}
+function dragcontbind(id,name){
+ console.log(id);
+ console.log(name);
+ var departname = $("#filetype option:selected")[0].innerText;
+ var url = window.location.href;
+ console.log(url);
+ var sid = GetQueryString("sid");
+ $('.drag').show()
+ var defaultData = "";
+ $.ajax({
+ url: baseUrl + 'getFirst'+"&sid="+sid,
+ data: {
+ sid:sid,
+ plid:id,
+ name:name,
+ departname:departname,
+ },
+ type: "post",
+ async: false,
+ success: function (result) {
+ console.log(result);
+ defaultData = result;
+ },
+ error:function(data, XMLHttpRequest, textStatus, errorThrown){
+ console.log("系统错误,请联系管理员")
+ }
+ });
+ $('#value_1').html('L1流程架构');
+ $('#value_2').html(name);
+ $('#treeview3').treeview({
+ levels: 99,
+ data: defaultData
+ });
+}
+//选项卡
+function navtag(){
+ var data="";
+ var url = window.location.href;
+ console.log(url);
+ var sid = GetQueryString("sid");
+ //接口记得修改
+ $.ajax({
+ url: baseUrl + 'getsecondDepartname'+"&sid="+sid,
+ data: {
+ sid:sid,
+ },
+ type: "post",
+ async: false,
+ success: function (result) {
+ console.log(result);
+ data = result;
+ },
+ error:function(data, XMLHttpRequest, textStatus, errorThrown){
+ console.log("系统错误,请联系管理员")
+ }
+ });
+ let str='';
+ for (var i=0;i'+data.content[j].secondcont[a].name[z].child[f]+' '
+ }else{
+ child+=''+data.content[j].secondcont[a].name[z].child[f]+' '
+ }
+
+ }
+ if(child=='' && j == 1){
+ child = ' '
+ }
+ if(data.content[j].secondcont[a].name[z].incident == true){
+ strtitle+=''+child+' '+child+' '
+ strTr+=''+strtitle+'
'+strtdfl1+strtdfl2+strtdfl3+strtdfl4+'
'+strTd1+firstTd+' '
+ }
+ $('#table2 tbody').html(strTr)
+ for(let i=0;i'+strtitle+' '
+ let strnum1='';
+ for(let a=0;a'+strnum1+' '+strnum2+' '+strnum3+' '+strnum4+' '
+ strTr+=''+firstTd+Td1+' '
+ }
+ $('#table3 tbody').html(strTr)
+}
+
+
+
+
+
+/***新增****/
+//第二个新的表格
+function newsecond(id){
+
+
+ debugger;
+ var dename = $("#navtab li[class='isActive']")[0].innerText
+ console.log(id);
+ console.log(dename);
+ var url = window.location.href;
+ console.log(url);
+ var sid = GetQueryString("sid");
+ let data= "";
+ $.ajax({
+ url: baseUrl + 'getnewTable'+"&sid="+sid,
+ data: {
+ sid:sid,
+ plname:id,
+ departname:dename
+ },
+ type: "post",
+ async: false,
+ success: function (result) {
+ console.log(result);
+ data = result;
+ },
+ error:function(data, XMLHttpRequest, textStatus, errorThrown){
+ console.log("系统错误,请联系管理员")
+ }
+ });
+
+
+
+ /*let data =[
+ {
+ levels_name:'L1流程绩效指标',
+ levels_1:[
+ {
+ name:'L1架构',
+ child:[
+ {
+ content:'新产品收入占比',
+ num:5
+ },
+ {
+ content:'规模品牌数量',
+ num:5
+ },
+ {
+ content:'首发产品数量',
+ num:3
+ },
+ {
+ content:'利润率',
+ num:''
+ },
+ {
+ content:'重点品牌品牌力',
+ num:''
+ },
+ {
+ content:'人均营收增长率',
+ num:''
+ }
+ ]
+ }
+ ]
+ },
+ {
+ levels_name:'L2流程绩效指标',
+ levels_2:[
+ {
+ child:[
+ {
+ content:'1.0 产品与产品与技产品与技术研发术研发产品与技术研发产品与技术研发技术研发',
+ id:1
+ },
+ {
+ content:'2.0 产品与技术研发',
+ id:2
+ },
+ {
+ content:'3.0 产品与技术研发',
+ id:3
+ }
+ ]
+ },
+ {
+ child:[
+ {
+ content:[
+ {
+ name:'新产品收入占比文字非常多非常多'
+ },
+ {
+ name:'新产品产品与技术研发产品与技术研发产品与技术研发收入占'
+ },
+ {
+ name:'新产品收入占比'
+ }
+ ]
+ },
+ {
+ content:[
+ {
+ name:'新产品收入占比文字非常多非常多'
+ },
+ {
+ name:'新产品收入占'
+ }
+ ]
+ },
+ {
+ content:[{
+ name:'新产品收入占比文字非常多非常多'
+ },
+ {
+ name:'新产品产品与技术研发收入占'
+ }]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ levels_name:'L3流程绩效指标',
+ levels_3:[
+ {
+ child:[
+ {
+ content:[
+ {
+ name:'3.1.1管理研发产品与技术研发产品与技术研发需求'
+ },
+ {
+ name:'3.1.1管理研发需求'
+ },
+ {
+ name:'3.1.1管理研发需求'
+ },
+ {
+ name:'3.1.1管理研发需求'
+ },
+ {
+ name:'3.1.1管理研发需求'
+ }
+ ]
+ },
+ {
+ content:[
+ {
+ name:'3.1.2管理研发需求'
+ },
+ {
+ name:'3.1.2管理研发需求'
+ }
+ ]
+ },
+ {
+ content:[
+ {
+ name:'3.1.3管理研发需求'
+ },
+ {
+ name:'3.1.3管理研发需求'
+ },
+ {
+ name:'3.1.3管理研发需求'
+ }
+ ]
+ }
+ ]
+ },
+ {
+ child:[
+ {
+ content:[
+ {
+ name:'3.1.1管理研发需求'
+ },
+ {
+ name:'3.1.2管理研发需求文字多'
+ },
+ {
+ name:'3.1.3管理研发需求'
+ },
+ {
+ name:'3.1.4管理研发需求'
+ },
+ {
+ name:'3.1.5管理研发需求'
+ }
+ ]
+ },
+ {
+ content:[
+ {
+ name:'3.1.2管理研发需求'
+ },
+ {
+ name:'3.1.2管理研发需求'
+ }
+ ]
+ },
+ {
+ content:[
+ {
+ name:'3.1.3管理研发需求'
+ },
+ {
+ name:'3.1.3管理研发需求'
+ },
+ {
+ name:'3.1.3管理研发需求'
+ }
+ ]
+ }
+ ]
+ },
+ ]
+ },
+ {
+ levels_name:'关键流程清单',
+ levels_4:[]
+ }
+ ];*/
+ var trone = '',trtwo='',trthree='',trfour=''
+
+ var levels='',levels_1_td='';
+ var levels_2='', levels_2_1='',levels_2_tdson='',levels_2_tdson1='';
+ var levels_3='',levels_3_1='';
+ var levels_4 =''
+ for(var i=0;i' +
+ '
'
+ }
+ levels=''+dataj1[j].content+' '+
+ '
'
+ trone=''+levels_1_td+' '+
+ ''+
+ ' '
+ }
+ if(i==1){
+ var data2= data[i]
+ var dataj2 = data2.levels_2
+ var l3 = data[2].levels_3[0].child;
+ var len = 0;
+ var color=""
+ for(var l3i=0;l3i'+data1.levels_name+' '+
+ ''+
+ levels
+ ' '+
+ ''+str[f].name+'● '
+ // }
+ if(j==0){
+ levels_2_tdson2+=''+str[f].name+' '
+ }else{
+ levels_2_tdson2+=''+str[f].name+'● '
+ }
+ }
+ levels_2_tdson1+=''+
+ ' '
+ }
+ levels_2+=''+
+ '
'+
+ ''+ levels_2_tdson2+
+ ' '+
+ ''+levels_2_tdson1+' '
+ }
+ trtwo=''+
+ ' '
+ }
+ if(i==2){
+ var data3= data[i]
+ var l3 = data[2].levels_3[0].child;
+ var len = 0;
+ var color=""
+ for(var l3i=0;l3i'+data2.levels_name+' '+
+ ' '+
+ ''+
+ levels_2+
+ '
'+str[f].name+' '
+ }else if(z==dataj3[j].child.length-1 && f==str.length-1){
+ levels_3_tdson2+=''+str[f].name+' '
+ }else{
+ levels_3_tdson2+=''+str[f].name+'● '
+ }
+ }
+ levels_3_tdson1+=''+
+ ' '
+ }
+ levels_3+=''+
+ '
'+
+ ''+ levels_3_tdson2+
+ ' '+
+ ''+levels_3_tdson1+' '
+ }
+ trthree=''+
+ ' '
+ }
+ if(i==3){
+ var data4= data[i]
+ levels_4+=''+data3.levels_name+' '+
+ ' '+
+ ''+
+ levels_3+
+ '
'
+ trfour=''+
+ ' '
+ }
+
+ $('#newtable').html(trone+trtwo+trthree+trfour)
+ }
+}
diff --git a/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/css/style.css b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/css/style.css
new file mode 100644
index 00000000..667dbb1d
--- /dev/null
+++ b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/css/style.css
@@ -0,0 +1,227 @@
+.navtab{width: 100%;font-size: 0.18rem; margin-top: 5px;}
+.navtab .navli{width: 100%}
+.navtab .navli li{float: left;margin-left:.5rem; color: #50FFFF;cursor: pointer}
+.navtab .navli li span{display: none;width: 80%;border-top: 0.03rem solid #50FFFF; height: 0.03rem;margin: 0 auto;margin-top: 0.05rem;}
+.navtab .navli li.isActive span{display: block}
+.btnblock{float: right; width: 35%}
+.btnblock span{display: block;}
+.btnblock span.btn1{background:#07556F; color: #ffffff; font-size: 0.16rem; border: #66FBF9 1px solid;border-radius: 0.05rem;padding: 0.05rem 0.1rem;margin-right: 3%;float: left; }
+.btnblock span.btn2 {color: #66FBF9;font-weight: bold; font-size: 0.14rem;border-radius: .2rem; padding: 0.04rem 0.15rem; float: right; line-height: 0.4rem;}
+.btnblock span.btn2 label{display: block; width: 0.25rem;height: 0.25rem;background: linear-gradient(0deg, rgba(26, 241, 166, 0.8), rgba(153, 233, 95, 0.8)); border-radius: 100%; margin: 0 auto}
+.btnblock span.btn3{color: #66FBF9;font-weight: bold; font-size: 0.14rem;border-radius: .2rem; padding: 0.04rem 0.15rem; margin-left: 3%; float: right;line-height: 0.4rem;}
+.btnblock span.btn3 label{display: block; width: 0.25rem;height: 0.25rem;background: linear-gradient(0deg, rgba(255, 192, 0, 0.8), rgba(252, 211, 86, 0.8)); border-radius: 100%; margin: 0 auto}
+.btnblock span.btn4{color: #66FBF9;font-weight: bold; font-size: 0.14rem;border-radius: .2rem; padding: 0.04rem 0.15rem; margin-left: 3%;float: right;line-height: 0.4rem;}
+.btnblock span.btn4 label{display: block; width: 0.25rem;height: 0.25rem;background: linear-gradient(0deg, rgba(255, 0, 0, 0.8), rgba(254, 104, 104, 0.8)); border-radius: 100%; margin: 0 auto}
+.btnblock span.btn5{color: #66FBF9;font-weight: bold; font-size: 0.14rem;border-radius: .2rem; padding: 0.04rem 0.15rem; margin-left: 3%;float: right;line-height: 0.4rem;}
+.btnblock span.btn5 label{display: block; width: 0.25rem;height: 0.25rem;background: linear-gradient(0deg, rgba(68, 68, 68, 0.8), rgba(113, 113, 113, 0.8)); border-radius: 100%; margin: 0 auto}
+
+.domain_title li{float: left; border-left: 1px solid #0A112B;}
+.domain_title li:first-child{border: 0}
+.domain_li li{float: left; min-height: 0.4rem;line-height: 0.4rem; border-left: 1px solid #0A112B;}
+.domain_li li:first-child{border: 0}
+.domain_li .style1{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(26, 241, 166, 0.8), rgba(153, 233, 95, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.2rem;}
+.domain_li .style2{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(255, 192, 0, 0.8), rgba(252, 211, 86, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.2rem;}
+.domain_li .style3{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(255, 0, 0, 0.8), rgba(254, 104, 104, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.2rem;}
+.growthCharts{width:100%;height: 4.2rem;}
+.growthTitle{float: left; font-size: 0.22rem;margin-top: 0.1rem;}
+.growthtishi{float: right;margin-top: 0.1rem;}
+.growthtishi .leftline{float: left; font-size: 0.22rem;}
+.growthtishi .rightline{float: right; font-size: 0.22rem;}
+.growthtishi .leftline span{width: 0.47rem; height:0.13rem;background: #F9D905; display:block; float: left; margin-top: 0.1rem;
+ margin-right: 0.05rem;
+ margin-left: 0.3rem;
+}
+.growthtishi .rightline span{width: 0.47rem; height:0.13rem;background: #00E6AC;display:block; float: left; margin-top: 0.1rem;
+ margin-right: 0.05rem;
+ margin-left: 0.3rem;
+}
+.territory_ul li{float: left; width:31%; margin-right: 3.5%}
+.territory_ul li:nth-child(3n){margin-right: 0;float: right}
+.territoryBox{ border:0.03rem solid #075d76; padding:0.02rem; background: rgba(6, 101, 106, 0.31); background-size: 100% auto; position: relative; margin-bottom: .3rem; z-index: 10;}
+.territoryBox:before,
+.territoryBox:after{ position:absolute; width: .2rem; height: .2rem; content: ""; border-top: 2px solid #02a6b5; top: -1px;}
+.territoryBox:before,.territoryBoxfoot:before{border-left: 2px solid #02a6b5;left: 0;}
+.territoryBox:after,.territoryBoxfoot:after{border-right: 2px solid #02a6b5; right: -1px;}
+.territoryBoxfoot{ position:absolute; bottom: -1px; width: 100%; left: -1px;}
+.territoryBoxfoot:before,
+.territoryBoxfoot:after{ position:absolute; width: .2rem; height: .2rem; content: "";border-bottom: 2px solid #02a6b5; bottom:-1px;}
+.territoryborder{background:rgba(7, 85, 111, 0.4);border:0.01rem solid #033c4f;position: relative;padding: 0.4rem 0.1rem; height: 100%;}
+.territoryborder span{position: absolute;right: 0.2rem;top: 0.2rem;width: .18rem; height: 0.18rem;vertical-align: middle; margin-left: 0.1rem;}
+.territoryborder .style1{ background: linear-gradient(0deg, rgba(26, 241, 166, 0.8), rgba(153, 233, 95, 0.8));border-radius: 50%;}
+.territoryborder .style2{ background: linear-gradient(0deg, rgba(255, 192, 0, 0.8), rgba(252, 211, 86, 0.8));border-radius: 50%;}
+.territoryborder .style3{ background: linear-gradient(0deg, rgba(255, 0, 0, 0.8), rgba(254, 104, 104, 0.8));border-radius: 50%;}
+.territoryborder .number1{font-size: 0.37rem;color: #03F7FC; padding: 0.1rem 0.2rem;line-height: 0.6rem;}
+.territoryborder .number2{font-size: 0.28rem; padding: 0 .1rem .1rem .2rem;line-height: 0.6rem;}
+.territoryborder .number2 label{font-size: 0.4rem;}
+.organizational{width: 100%;margin: 0 auto; padding: 1rem 0 0 0.5rem; clear: both; overflow: hidden;}
+.organizational .title{background: #07556F; border: 0.02rem solid #66FBF9; border-radius: 0.1rem; padding: 0.1rem; display: inline-block;float: left; margin-top: 0.83rem}
+.organizational .title label{font-weight: normal; font-size: 0.22rem;float: left; margin-bottom:0;}
+.organizational .title b{float: right;width: .18rem; height: 0.18rem;vertical-align: middle; margin-left: 0.1rem; margin-top: 0.07rem;}
+.organizational .title .style1{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(26, 241, 166, 0.8), rgba(153, 233, 95, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.1rem;}
+.organizational .title .style2{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(255, 192, 0, 0.8), rgba(252, 211, 86, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.1rem;}
+.organizational .title .style3{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(255, 0, 0, 0.8), rgba(254, 104, 104, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.1rem;}
+.organizational .one{background: url(../images/jian1.png) no-repeat center center;background-size: 100%; width: 1.24rem; height: 0.23rem; float: left; margin-left: 0.2rem; margin-right: 0.1rem; margin-top: 1rem;}
+.organizational .two{background: url(../images/jian2.png) no-repeat center center;background-size: 100%; width: 1.32rem; height: 1.44rem; float: left; margin-left: 0.2rem; margin-right: 0.1rem;margin-top: 0.13rem;}
+.organizational .three{background: url(../images/jian3.png) no-repeat center center;background-size: 100%; width: 1.28rem; height: 2.48rem; float: left; margin-left: 0.2rem; margin-right: 0.1rem; margin-top: 0.15rem;}
+.organizational .title1{float: left;}
+.organizational .title3{background: #07556F; border: 0.02rem solid #66FBF9; border-radius: 0.1rem; padding: 0.1rem; display: block;height: 0.55rem;margin-bottom: 0.56rem;}
+.organizational .title3 label{font-weight: normal; font-size: 0.22rem;float: left; margin-bottom:0;}
+.organizational .title3 b{float: right;width: .18rem; height: 0.18rem;vertical-align: middle; margin-left: 0.1rem; margin-top: 0.07rem;}
+.organizational .title3 .style1{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(26, 241, 166, 0.8), rgba(153, 233, 95, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.1rem;}
+.organizational .title3 .style2{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(255, 192, 0, 0.8), rgba(252, 211, 86, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.1rem;}
+.organizational .title3 .style3{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(255, 0, 0, 0.8), rgba(254, 104, 104, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.1rem;}
+.organizational .title2{float: left;}
+.IndicatorLeft{width: 100%;float: left}
+.IndicatorLeft .title{ background: linear-gradient(0deg, rgba(16, 218, 255, 0.3), rgba(91, 147, 183, 0.3));font-size: 0.16rem; color: #66FBF9;text-align: center; padding: 0.08rem 0;}
+.IndicatorLeft td{margin-right: 0.01rem;font-size: 0.16rem;color: #66FBF9; background: linear-gradient(0deg, rgba(16, 218, 255, 0.3), rgba(91, 147, 183, 0.3))}
+.IndicatorLeft td:last-child{background: none;}
+.IndicatorLeft td label{display: block; width: 55%;margin: 0 auto;text-align: center; margin-bottom: 0.6rem; color: #66FBF9; font-size: 0.16rem;}
+
+.IndicatorLeft .right{float: right; width: 49.9%;color: #66FBF9; font-size: 0.16rem;}
+.IndicatorRight{width: 31.9%;float: right;}
+.IndicatorRight .title{ background: linear-gradient(0deg, rgba(16, 218, 255, 0.3), rgba(91, 147, 183, 0.3));font-size: 0.16rem; color: #66FBF9;text-align: center; padding: 0.08rem 0;}
+.IndicatorLeft_li li{font-size: 0.16rem;color: #66FBF9;background:rgba(24, 97, 121, 0.3); padding:0.08rem 0.08rem 0.08rem 8.5%!important; margin-bottom: 1px;}
+.IndicatorLeft_li li:last-child{margin-bottom: 0}
+.IndicatorLeft_li span{display: inline-block; width: 0.7rem; height: 0.25rem;line-height: 0.25rem; text-align: center;background: #07556F; border: 1px solid #66FBF9; box-shadow: 0px 0.02rem 0.07rem 0px rgba(0, 28, 61, 0.5);
+ border-radius: 0.05rem; margin: 0 auto; margin-bottom: 0.2rem; margin-left: 0.2rem; float: right}
+.territoryBox_1{ margin: 0.2rem 0.5rem 0.28rem 0.5rem!important;}
+.territoryBox_1 .number1{font-size: 0.28rem;color: #03F7FC; padding: 0.1rem 0.2rem;line-height: 0.4rem;}
+.territoryBox_1 .number2{font-size: 0.24rem; padding: 0 .1rem .1rem .2rem;line-height: 0.4rem;}
+.territoryBox_1 .number2 label{font-size: 0.3rem;}
+#relationship{width:100%; margin: 0 auto; text-align: center; }
+/*#relationship ul li{*/
+/* overflow: hidden;*/
+/* line-height: 0.36rem;*/
+/* height:1rem;*/
+/* margin: 0.2rem; padding: 0.2rem 0.2rem 0.2rem 0.2rem;*/
+/* box-shadow: 0 0 4px 1px rgba(121, 121, 121, 0.3);*/
+/* border-radius: 0.08rem;*/
+/* text-align: center;*/
+/* width:1.4rem;*/
+/* display: inline-block;*/
+/* font-size: 0.22rem;*/
+/* background: #07556F;*/
+/* border: 1px solid #66FBF9;*/
+/*}*/
+#relationship ul li{ margin: 0.5rem 0.2rem; padding: 0.2rem 0.2rem 0.2rem 0.2rem;
+ box-shadow: 0 0 4px 1px rgba(121, 121, 121, 0.3);
+ border-radius: 0.08rem;
+ text-align: center;
+ width:1.8rem;
+ display: inline-block;
+ font-size: 0.22rem;
+ background: #07556F;
+ border: 1px solid #66FBF9;
+ height: 1rem;
+ /* overflow: hidden; */
+ line-height: 0.36rem;
+ position: relative;
+ vertical-align: bottom;
+}
+/*.guanxiline{*/
+/* margin-top: 0.2rem; position: absolute; border-top:1px solid #38B9BB; margin-left: 2.5%;*/
+/*}*/
+.guanxiline{
+ position: absolute; border-top:1px solid #38B9BB;margin-top:0;margin-left:2.5%;left: 0.65rem; top:1rem;z-index: 100;
+}
+.guanxiline:before {
+ content: "";
+ position: absolute;
+ width: 0;
+ height: 0;
+ border: 6px solid transparent;
+ border-left-color: #38B9BB;
+ left: 100%;
+ margin-left: 0px;
+ bottom: -6px;
+}
+/*.guanxideashline{*/
+/* position: absolute; border-top:1px dashed #38B9BB;margin-top: 0.2rem;margin-left:2.5%;*/
+/*}*/
+.guanxideashline{
+ position: absolute; border-top:1px solid #38B9BB;margin-top:0;margin-left:2.5%;left: 0.65rem; top:1rem;z-index: 100;
+}
+.guanxideashline:before {
+ content: "";
+ position: absolute;
+ width: 0;
+ height: 0;
+ border: 6px solid transparent;
+ border-left-color: #38B9BB;
+ left: 100%;
+ margin-left: 0px;
+ bottom: -6px;
+}
+.drag{width: 100%;
+ position: fixed;
+ top: 0;
+ z-index: 101;
+ background: rgba(0, 0, 0, 0.7);
+ height: 100%; display:none;}
+.drag_1{width: 80%;height: 85%; background:#092b3f; border-radius: 8px;border:1px solid #033c4f;margin: 0 auto; margin-top: 5%;}
+.drag_1 .title{background: linear-gradient(0deg, rgba(16, 218, 255, 0.3), rgba(91, 147, 183, 0.3))!important;border-left: 1px solid #0A112B;border-top-left-radius: 8px;border-top-right-radius: 8px; height: 45px;line-height: 45px;}
+.drag_1 .title h1{margin-top: 0; font-size: 18px; padding: 0 10px; float: left; line-height: 45px;}
+.drag_1 .title span{float: right; margin-right: 10px; cursor: pointer;}
+.drag_1 .content_1{padding: 20px;height: 100%;}
+.treeview{height: 88%;overflow-y: auto;}
+.treeview .list-group-item{background: rgba(24, 97, 121, 0.3);}
+.list-group-item{border:none}
+.treeview .list-group-item:hover{background: rgba(24, 97, 121, 0.6)!important;}
+.treeview .list-group-item em{ float: right;
+ display: block;
+ width: 15%;font-style: normal;
+ border-left: 1px solid #000000;
+ text-align: center;
+ margin-top: -10px;
+ padding-top: 10px;
+ padding-bottom: 10px;}
+ .list-group-item:first-child{border-radius: 0;}
+ .list-group-item:last-child{border-radius: 0;}
+.father{ background: rgba(24, 97, 121, 0.5); padding: 0 15px; border-bottom: 1px solid #000000; }
+.father label{ padding: 10px 0; margin-bottom: 0;color: #66FBF9; }
+.father span{float: right;width: 15%; text-align: center; color: #66FBF9; padding: 10px 15px;}
+.table3drag{width: 100%;
+ position: fixed;
+ top: 0;
+ z-index: 101;
+ background: rgba(0, 0, 0, 0.7);
+ height: 100%; display:none;}
+.table3drag_1{width: 80%;height: 85%; background:#092b3f; border-radius: 8px;border:1px solid #033c4f;margin: 0 auto; margin-top: 5%;}
+.table3drag_1 .title{background: linear-gradient(0deg, rgba(16, 218, 255, 0.3), rgba(91, 147, 183, 0.3))!important;border-left: 1px solid #0A112B;border-top-left-radius: 8px;border-top-right-radius: 8px; height: 45px;line-height: 45px;}
+.table3drag_1 .title h1{margin-top: 0; font-size: 18px; padding: 0 10px; float: left; line-height: 45px;}
+.table3drag_1 .title span{float: right; margin-right: 10px; cursor: pointer;}
+.table3drag_1 .content_1{padding: 20px;height: 100%;}
+.dragtable{height: 90%; overflow-y: auto;}
+#table3 thead tr th {
+ position: sticky;
+ top: 0;
+ height: 30px;
+}
+#table3 .titlebgc{background: linear-gradient(0deg, rgba(14, 93, 118, 1), rgba(34, 75, 100, 1))!important;}
+
+
+
+/***新增****/
+.newtableTd{
+ width: 20%;
+ background: linear-gradient(0deg, rgba(16, 218, 255, 0.3), rgba(91, 147, 183, 0.3))!important;
+ text-align: center;font-size: 0.16rem; height: 45px;
+ color: #66FBF9!important;
+ border-bottom: 1px solid #000000;border-right: 0;
+}
+.newtableDiv{
+ background: linear-gradient(0deg, rgba(16, 218, 255, 0.3), rgba(91, 147, 183, 0.3))!important;text-align: center; padding: 10px 5px; line-height: 25px;
+ border-left: 1px solid #000000;border-right: 1px solid #000000;border-bottom: 1px solid #000000;
+}
+.newtableDiv_top{border-top: 1px solid #000000; cursor: pointer;}
+.newtableDiv_top:hover{color: #66FBF9;}
+.newtableTd1{border-left: 1px solid #000000;background: rgba(24, 97, 121, 0.3); line-height: 45px; text-align: center;}
+.newtableTd2{background: rgba(24, 97, 121, 0.3); line-height: 25px;height: 30px; text-align: center;}
+.newtableTd2 table{width:100%; height: 100%;table-layout: fixed;}
+.newtableTd2_td{border-left: 1px solid #000000; height: 45px; background: rgba(24, 97, 121, 0.3);}
+.newtableTd3_td{border-left: 1px solid #000000; height: 45px; background: linear-gradient(0deg, rgba(16, 218, 255, 0.3), rgba(91, 147, 183, 0.3))!important;
+ text-align: center; line-height: 20px;padding: 10px 5px; border-top: 1px solid #000000;}
+.newtableTd4_td{ background: rgba(24, 97, 121, 0.3);border-left: 1px solid #000000;text-align: center;height: 45px; line-height: 20px;padding: 10px 5px; border-top: 1px solid #000000;}
+.newtableTd5{background: rgba(24, 97, 121, 0.3); line-height: 25px;height: 30px; text-align: center; border-top: 1px solid #000000;
+ border-bottom: 1px solid #000000;}
+.newtableTd5 td{border-left: 1px solid #000000;height: 45px; background: rgba(24, 97, 121, 0.3);}
\ No newline at end of file
diff --git a/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/css/style2.css b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/css/style2.css
new file mode 100644
index 00000000..dd1eca46
--- /dev/null
+++ b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/css/style2.css
@@ -0,0 +1,203 @@
+.navtab{float: left;width: 40%;font-size: 0.18rem; margin-top: 5px;}
+.navtab .navli{width: 100%}
+.navtab .navli li{float: left;margin-left:.4rem; color: #50FFFF;cursor: pointer}
+.navtab .navli li span{display: none;width: 80%;border-top: 0.03rem solid #50FFFF; height: 0.03rem;margin: 0 auto;margin-top: 0.05rem;}
+.navtab .navli li.isActive span{display: block}
+.btnblock{float: right; width: 30%}
+.btnblock span{display: block;}
+.btnblock span.btn1{background:#07556F; color: #ffffff; font-size: 0.16rem; border: #66FBF9 1px solid;border-radius: 0.05rem;padding: 0.05rem 0.1rem;margin-right: 3%;float: left; }
+.btnblock span.btn2 {color: #66FBF9;font-weight: bold; font-size: 0.14rem;border-radius: .2rem; padding: 0.04rem 0.15rem; float: right; line-height: 0.4rem;}
+.btnblock span.btn2 label{display: block; width: 0.25rem;height: 0.25rem;background: linear-gradient(0deg, rgba(26, 241, 166, 0.8), rgba(153, 233, 95, 0.8)); border-radius: 100%; margin: 0 auto}
+.btnblock span.btn3{color: #66FBF9;font-weight: bold; font-size: 0.14rem;border-radius: .2rem; padding: 0.04rem 0.15rem; margin-left: 3%; float: right;line-height: 0.4rem;}
+.btnblock span.btn3 label{display: block; width: 0.25rem;height: 0.25rem;background: linear-gradient(0deg, rgba(255, 192, 0, 0.8), rgba(252, 211, 86, 0.8)); border-radius: 100%; margin: 0 auto}
+.btnblock span.btn4{color: #66FBF9;font-weight: bold; font-size: 0.14rem;border-radius: .2rem; padding: 0.04rem 0.15rem; margin-left: 3%;float: right;line-height: 0.4rem;}
+.btnblock span.btn4 label{display: block; width: 0.25rem;height: 0.25rem;background: linear-gradient(0deg, rgba(255, 0, 0, 0.8), rgba(254, 104, 104, 0.8)); border-radius: 100%; margin: 0 auto}
+.btnblock span.btn5{color: #66FBF9;font-weight: bold; font-size: 0.14rem;border-radius: .2rem; padding: 0.04rem 0.15rem; margin-left: 3%;float: right;line-height: 0.4rem;}
+.btnblock span.btn5 label{display: block; width: 0.25rem;height: 0.25rem;background: linear-gradient(0deg, rgba(68, 68, 68, 0.8), rgba(113, 113, 113, 0.8)); border-radius: 100%; margin: 0 auto}
+
+.domain_title li{float: left; border-left: 1px solid #0A112B;}
+.domain_title li:first-child{border: 0}
+.domain_li li{float: left; min-height: 0.4rem;line-height: 0.4rem; border-left: 1px solid #0A112B;}
+.domain_li li:first-child{border: 0}
+.domain_li .style1{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(26, 241, 166, 0.8), rgba(153, 233, 95, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.2rem;}
+.domain_li .style2{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(255, 192, 0, 0.8), rgba(252, 211, 86, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.2rem;}
+.domain_li .style3{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(255, 0, 0, 0.8), rgba(254, 104, 104, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.2rem;}
+.growthCharts{width:100%;height: 4.2rem;}
+.growthTitle{float: left; font-size: 0.22rem;margin-top: 0.1rem;}
+.growthtishi{float: right;margin-top: 0.1rem;}
+.growthtishi .leftline{float: left; font-size: 0.22rem;}
+.growthtishi .rightline{float: right; font-size: 0.22rem;}
+.growthtishi .leftline span{width: 0.47rem; height:0.13rem;background: #F9D905; display:block; float: left; margin-top: 0.1rem;
+ margin-right: 0.05rem;
+ margin-left: 0.3rem;
+}
+.growthtishi .rightline span{width: 0.47rem; height:0.13rem;background: #00E6AC;display:block; float: left; margin-top: 0.1rem;
+ margin-right: 0.05rem;
+ margin-left: 0.3rem;
+}
+.territory_ul li{float: left; width:31%; margin-right: 3.5%}
+.territory_ul li:nth-child(3n){margin-right: 0;float: right}
+.territoryBox{ border:0.03rem solid #075d76; padding:0.02rem; background: rgba(6, 101, 106, 0.31); background-size: 100% auto; position: relative; margin-bottom: .3rem; z-index: 10;}
+.territoryBox:before,
+.territoryBox:after{ position:absolute; width: .2rem; height: .2rem; content: ""; border-top: 2px solid #02a6b5; top: -1px;}
+.territoryBox:before,.territoryBoxfoot:before{border-left: 2px solid #02a6b5;left: 0;}
+.territoryBox:after,.territoryBoxfoot:after{border-right: 2px solid #02a6b5; right: -1px;}
+.territoryBoxfoot{ position:absolute; bottom: -1px; width: 100%; left: -1px;}
+.territoryBoxfoot:before,
+.territoryBoxfoot:after{ position:absolute; width: .2rem; height: .2rem; content: "";border-bottom: 2px solid #02a6b5; bottom:-1px;}
+.territoryborder{background:rgba(7, 85, 111, 0.4);border:0.01rem solid #033c4f;position: relative;padding: 0.4rem 0.1rem; height: 100%;}
+.territoryborder span{position: absolute;right: 0.2rem;top: 0.2rem;width: .18rem; height: 0.18rem;vertical-align: middle; margin-left: 0.1rem;}
+.territoryborder .style1{ background: linear-gradient(0deg, rgba(26, 241, 166, 0.8), rgba(153, 233, 95, 0.8));border-radius: 50%;}
+.territoryborder .style2{ background: linear-gradient(0deg, rgba(255, 192, 0, 0.8), rgba(252, 211, 86, 0.8));border-radius: 50%;}
+.territoryborder .style3{ background: linear-gradient(0deg, rgba(255, 0, 0, 0.8), rgba(254, 104, 104, 0.8));border-radius: 50%;}
+.territoryborder .number1{font-size: 0.37rem;color: #03F7FC; padding: 0.1rem 0.2rem;line-height: 0.6rem;}
+.territoryborder .number2{font-size: 0.28rem; padding: 0 .1rem .1rem .2rem;line-height: 0.6rem;}
+.territoryborder .number2 label{font-size: 0.4rem;}
+.organizational{width: 80%;margin: 0 auto; padding: 1rem 0 0 0.5rem; clear: both; overflow: hidden;}
+.organizational .title{background: #07556F; border: 0.02rem solid #66FBF9; border-radius: 0.1rem; padding: 0.1rem; display: inline-block;float: left; margin-top: 0.83rem}
+.organizational .title label{font-weight: normal; font-size: 0.22rem;float: left; margin-bottom:0;}
+.organizational .title b{float: right;width: .18rem; height: 0.18rem;vertical-align: middle; margin-left: 0.1rem; margin-top: 0.07rem;}
+.organizational .title .style1{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(26, 241, 166, 0.8), rgba(153, 233, 95, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.1rem;}
+.organizational .title .style2{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(255, 192, 0, 0.8), rgba(252, 211, 86, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.1rem;}
+.organizational .title .style3{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(255, 0, 0, 0.8), rgba(254, 104, 104, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.1rem;}
+.organizational .one{background: url(../images/jian1.png) no-repeat center center;background-size: 100%; width: 1.24rem; height: 0.23rem; float: left; margin-left: 0.2rem; margin-right: 0.1rem; margin-top: 1rem;}
+.organizational .two{background: url(../images/jian2.png) no-repeat center center;background-size: 100%; width: 1.32rem; height: 1.44rem; float: left; margin-left: 0.2rem; margin-right: 0.1rem;margin-top: 0.13rem;}
+.organizational .three{background: url(../images/jian3.png) no-repeat center center;background-size: 100%; width: 1.28rem; height: 2.48rem; float: left; margin-left: 0.2rem; margin-right: 0.1rem; margin-top: 0.15rem;}
+.organizational .title1{float: left;}
+.organizational .title3{background: #07556F; border: 0.02rem solid #66FBF9; border-radius: 0.1rem; padding: 0.1rem; display: block;height: 0.55rem;margin-bottom: 0.56rem;}
+.organizational .title3 label{font-weight: normal; font-size: 0.22rem;float: left; margin-bottom:0;}
+.organizational .title3 b{float: right;width: .18rem; height: 0.18rem;vertical-align: middle; margin-left: 0.1rem; margin-top: 0.07rem;}
+.organizational .title3 .style1{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(26, 241, 166, 0.8), rgba(153, 233, 95, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.1rem;}
+.organizational .title3 .style2{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(255, 192, 0, 0.8), rgba(252, 211, 86, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.1rem;}
+.organizational .title3 .style3{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(255, 0, 0, 0.8), rgba(254, 104, 104, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.1rem;}
+.organizational .title2{float: left;}
+.IndicatorLeft{width: 68%;float: left}
+.IndicatorLeft .title{ background: linear-gradient(0deg, rgba(16, 218, 255, 0.3), rgba(91, 147, 183, 0.3));font-size: 0.16rem; color: #66FBF9;text-align: center; padding: 0.08rem 0;}
+.IndicatorLeft td{margin-right: 0.01rem;font-size: 0.16rem;color: #66FBF9; background: linear-gradient(0deg, rgba(16, 218, 255, 0.3), rgba(91, 147, 183, 0.3))}
+.IndicatorLeft td:last-child{background: none;}
+.IndicatorLeft td label{display: block; width: 55%;margin: 0 auto;text-align: center; margin-bottom: 0.6rem; color: #66FBF9; font-size: 0.16rem;}
+
+.IndicatorLeft .right{float: right; width: 49.9%;color: #66FBF9; font-size: 0.16rem;}
+.IndicatorRight{width: 31.9%;float: right;}
+.IndicatorRight .title{ background: linear-gradient(0deg, rgba(16, 218, 255, 0.3), rgba(91, 147, 183, 0.3));font-size: 0.16rem; color: #66FBF9;text-align: center; padding: 0.08rem 0;}
+.IndicatorLeft_li li{font-size: 0.16rem;color: #66FBF9;background:rgba(24, 97, 121, 0.3); padding:0.08rem 0.08rem 0.08rem 8.5%!important; margin-bottom: 1px;}
+.IndicatorLeft_li li:last-child{margin-bottom: 0}
+.IndicatorLeft_li span{display: inline-block; width: 0.7rem; height: 0.25rem;line-height: 0.25rem; text-align: center;background: #07556F; border: 1px solid #66FBF9; box-shadow: 0px 0.02rem 0.07rem 0px rgba(0, 28, 61, 0.5);
+ border-radius: 0.05rem; margin: 0 auto; margin-bottom: 0.2rem; margin-left: 0.2rem; float: right}
+.territoryBox_1{ margin: 0.2rem 0.5rem 0.28rem 0.5rem!important;}
+.territoryBox_1 .number1{font-size: 0.28rem;color: #03F7FC; padding: 0.1rem 0.2rem;line-height: 0.4rem;}
+.territoryBox_1 .number2{font-size: 0.24rem; padding: 0 .1rem .1rem .2rem;line-height: 0.4rem;}
+.territoryBox_1 .number2 label{font-size: 0.3rem;}
+#relationship{width:60%; margin: 0 auto; text-align: center; }
+#relationship ul li{ margin: 0.2rem; padding: 0.2rem 0.2rem 0.2rem 0.2rem;
+ box-shadow: 0 0 4px 1px rgba(121, 121, 121, 0.3);
+ border-radius: 0.08rem;
+ text-align: center;
+ width:1.4rem;
+ display: inline-block;
+ font-size: 0.22rem;
+ background: #07556F;
+ border: 1px solid #66FBF9;
+}
+.guanxiline{
+ position: absolute; border-top:1px solid #38B9BB;margin-top: 0.2rem;margin-left: 2.5%;
+}
+.guanxiline:before {
+ content: "";
+ position: absolute;
+ width: 0;
+ height: 0;
+ border: 6px solid transparent;
+ border-left-color: #38B9BB;
+ left: 100%;
+ margin-left: 0px;
+ bottom: -6px;
+}
+.guanxideashline{
+ position: absolute; border-top:1px dashed #38B9BB;margin-top: 0.2rem;margin-left:2.5%;
+}
+.guanxideashline:before {
+ content: "";
+ position: absolute;
+ width: 0;
+ height: 0;
+ border: 6px solid transparent;
+ border-left-color: #38B9BB;
+ left: 100%;
+ margin-left: 0px;
+ bottom: -6px;
+}
+.drag{width: 100%;
+ position: fixed;
+ top: 0;
+ z-index: 101;
+ background: rgba(0, 0, 0, 0.7);
+ height: 100%; display:none;}
+.drag_1{width: 80%;height: 85%; background:#092b3f; border-radius: 8px;border:1px solid #033c4f;margin: 0 auto; margin-top: 5%;}
+.drag_1 .title{background: linear-gradient(0deg, rgba(16, 218, 255, 0.3), rgba(91, 147, 183, 0.3))!important;border-left: 1px solid #0A112B;border-top-left-radius: 8px;border-top-right-radius: 8px; height: 45px;line-height: 45px;}
+.drag_1 .title h1{margin-top: 0; font-size: 18px; padding: 0 10px; float: left; line-height: 45px;}
+.drag_1 .title span{float: right; margin-right: 10px; cursor: pointer;}
+.drag_1 .content_1{padding: 20px;height: 100%;}
+.treeview{height: 88%;overflow-y: auto;}
+.treeview .list-group-item{background: rgba(24, 97, 121, 0.3);}
+.list-group-item{border:none}
+.treeview .list-group-item:hover{background: rgba(24, 97, 121, 0.6)!important;}
+.treeview .list-group-item em{ float: right;
+ display: block;
+ width: 15%;font-style: normal;
+ border-left: 1px solid #000000;
+ text-align: center;
+ margin-top: -10px;
+ padding-top: 10px;
+ padding-bottom: 10px;}
+ .list-group-item:first-child{border-radius: 0;}
+ .list-group-item:last-child{border-radius: 0;}
+.father{ background: rgba(24, 97, 121, 0.5); padding: 0 15px; border-bottom: 1px solid #000000; }
+.father label{ padding: 10px 0; margin-bottom: 0;color: #66FBF9; }
+.father span{float: right;width: 15%; text-align: center; color: #66FBF9; padding: 10px 15px;}
+.table3drag{width: 100%;
+ position: fixed;
+ top: 0;
+ z-index: 101;
+ background: rgba(0, 0, 0, 0.7);
+ height: 100%; display:none;}
+.table3drag_1{width: 80%;height: 85%; background:#092b3f; border-radius: 8px;border:1px solid #033c4f;margin: 0 auto; margin-top: 5%;}
+.table3drag_1 .title{background: linear-gradient(0deg, rgba(16, 218, 255, 0.3), rgba(91, 147, 183, 0.3))!important;border-left: 1px solid #0A112B;border-top-left-radius: 8px;border-top-right-radius: 8px; height: 45px;line-height: 45px;}
+.table3drag_1 .title h1{margin-top: 0; font-size: 18px; padding: 0 10px; float: left; line-height: 45px;}
+.table3drag_1 .title span{float: right; margin-right: 10px; cursor: pointer;}
+.table3drag_1 .content_1{padding: 20px;height: 100%;}
+.dragtable{height: 90%; overflow-y: auto;}
+#table3 thead tr th {
+ position: sticky;
+ top: 0;
+ height: 30px;
+}
+#table3 .titlebgc{background: linear-gradient(0deg, rgba(14, 93, 118, 1), rgba(34, 75, 100, 1))!important;}
+
+
+
+/***新增****/
+.newtableTd{
+ width: 20%;
+ background: linear-gradient(0deg, rgba(16, 218, 255, 0.3), rgba(91, 147, 183, 0.3))!important;
+ text-align: center;font-size: 0.16rem; height: 45px;
+ color: #66FBF9!important;
+ border-bottom: 1px solid #000000;border-right: 0;
+}
+.newtableDiv{
+ background: linear-gradient(0deg, rgba(16, 218, 255, 0.3), rgba(91, 147, 183, 0.3))!important;text-align: center; padding: 10px 5px; line-height: 25px;
+ border-left: 1px solid #000000;border-right: 1px solid #000000;border-bottom: 1px solid #000000;
+}
+.newtableDiv_top{border-top: 1px solid #000000; cursor: pointer;}
+.newtableDiv_top:hover{color: #66FBF9;}
+/*.newtableTd1{border-left: 1px solid #000000;background: rgba(24, 97, 121, 0.3); line-height: 45px; text-align: center;}*/
+.newtableTd1{border-left: 1px solid #000000;background: rgba(24, 97, 121, 0.3); line-height:24px; text-align: center;position: relative; vertical-align: baseline;}
+.newtableTd2{background: rgba(24, 97, 121, 0.3); line-height: 25px;height: 30px; text-align: center;}
+.newtableTd2 table{width:100%; height: 100%;table-layout: fixed;}
+.newtableTd2_td{border-left: 1px solid #000000; height: 45px; background: rgba(24, 97, 121, 0.3);}
+.newtableTd3_td{border-left: 1px solid #000000; height: 45px; background: linear-gradient(0deg, rgba(16, 218, 255, 0.3), rgba(91, 147, 183, 0.3))!important;
+ text-align: center; line-height: 20px;padding: 10px 5px; border-top: 1px solid #000000;}
+.newtableTd4_td{ background: rgba(24, 97, 121, 0.3);border-left: 1px solid #000000;text-align: center;height: 45px; line-height: 20px;padding: 10px 5px; border-top: 1px solid #000000;}
+.newtableTd5{background: rgba(24, 97, 121, 0.3); line-height: 25px;height: 30px; text-align: center; border-top: 1px solid #000000;
+ border-bottom: 1px solid #000000;}
+.newtableTd5 td{border-left: 1px solid #000000;height: 45px; background: rgba(24, 97, 121, 0.3);}
\ No newline at end of file
diff --git a/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/css/style3.css b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/css/style3.css
new file mode 100644
index 00000000..dd1eca46
--- /dev/null
+++ b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/css/style3.css
@@ -0,0 +1,203 @@
+.navtab{float: left;width: 40%;font-size: 0.18rem; margin-top: 5px;}
+.navtab .navli{width: 100%}
+.navtab .navli li{float: left;margin-left:.4rem; color: #50FFFF;cursor: pointer}
+.navtab .navli li span{display: none;width: 80%;border-top: 0.03rem solid #50FFFF; height: 0.03rem;margin: 0 auto;margin-top: 0.05rem;}
+.navtab .navli li.isActive span{display: block}
+.btnblock{float: right; width: 30%}
+.btnblock span{display: block;}
+.btnblock span.btn1{background:#07556F; color: #ffffff; font-size: 0.16rem; border: #66FBF9 1px solid;border-radius: 0.05rem;padding: 0.05rem 0.1rem;margin-right: 3%;float: left; }
+.btnblock span.btn2 {color: #66FBF9;font-weight: bold; font-size: 0.14rem;border-radius: .2rem; padding: 0.04rem 0.15rem; float: right; line-height: 0.4rem;}
+.btnblock span.btn2 label{display: block; width: 0.25rem;height: 0.25rem;background: linear-gradient(0deg, rgba(26, 241, 166, 0.8), rgba(153, 233, 95, 0.8)); border-radius: 100%; margin: 0 auto}
+.btnblock span.btn3{color: #66FBF9;font-weight: bold; font-size: 0.14rem;border-radius: .2rem; padding: 0.04rem 0.15rem; margin-left: 3%; float: right;line-height: 0.4rem;}
+.btnblock span.btn3 label{display: block; width: 0.25rem;height: 0.25rem;background: linear-gradient(0deg, rgba(255, 192, 0, 0.8), rgba(252, 211, 86, 0.8)); border-radius: 100%; margin: 0 auto}
+.btnblock span.btn4{color: #66FBF9;font-weight: bold; font-size: 0.14rem;border-radius: .2rem; padding: 0.04rem 0.15rem; margin-left: 3%;float: right;line-height: 0.4rem;}
+.btnblock span.btn4 label{display: block; width: 0.25rem;height: 0.25rem;background: linear-gradient(0deg, rgba(255, 0, 0, 0.8), rgba(254, 104, 104, 0.8)); border-radius: 100%; margin: 0 auto}
+.btnblock span.btn5{color: #66FBF9;font-weight: bold; font-size: 0.14rem;border-radius: .2rem; padding: 0.04rem 0.15rem; margin-left: 3%;float: right;line-height: 0.4rem;}
+.btnblock span.btn5 label{display: block; width: 0.25rem;height: 0.25rem;background: linear-gradient(0deg, rgba(68, 68, 68, 0.8), rgba(113, 113, 113, 0.8)); border-radius: 100%; margin: 0 auto}
+
+.domain_title li{float: left; border-left: 1px solid #0A112B;}
+.domain_title li:first-child{border: 0}
+.domain_li li{float: left; min-height: 0.4rem;line-height: 0.4rem; border-left: 1px solid #0A112B;}
+.domain_li li:first-child{border: 0}
+.domain_li .style1{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(26, 241, 166, 0.8), rgba(153, 233, 95, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.2rem;}
+.domain_li .style2{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(255, 192, 0, 0.8), rgba(252, 211, 86, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.2rem;}
+.domain_li .style3{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(255, 0, 0, 0.8), rgba(254, 104, 104, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.2rem;}
+.growthCharts{width:100%;height: 4.2rem;}
+.growthTitle{float: left; font-size: 0.22rem;margin-top: 0.1rem;}
+.growthtishi{float: right;margin-top: 0.1rem;}
+.growthtishi .leftline{float: left; font-size: 0.22rem;}
+.growthtishi .rightline{float: right; font-size: 0.22rem;}
+.growthtishi .leftline span{width: 0.47rem; height:0.13rem;background: #F9D905; display:block; float: left; margin-top: 0.1rem;
+ margin-right: 0.05rem;
+ margin-left: 0.3rem;
+}
+.growthtishi .rightline span{width: 0.47rem; height:0.13rem;background: #00E6AC;display:block; float: left; margin-top: 0.1rem;
+ margin-right: 0.05rem;
+ margin-left: 0.3rem;
+}
+.territory_ul li{float: left; width:31%; margin-right: 3.5%}
+.territory_ul li:nth-child(3n){margin-right: 0;float: right}
+.territoryBox{ border:0.03rem solid #075d76; padding:0.02rem; background: rgba(6, 101, 106, 0.31); background-size: 100% auto; position: relative; margin-bottom: .3rem; z-index: 10;}
+.territoryBox:before,
+.territoryBox:after{ position:absolute; width: .2rem; height: .2rem; content: ""; border-top: 2px solid #02a6b5; top: -1px;}
+.territoryBox:before,.territoryBoxfoot:before{border-left: 2px solid #02a6b5;left: 0;}
+.territoryBox:after,.territoryBoxfoot:after{border-right: 2px solid #02a6b5; right: -1px;}
+.territoryBoxfoot{ position:absolute; bottom: -1px; width: 100%; left: -1px;}
+.territoryBoxfoot:before,
+.territoryBoxfoot:after{ position:absolute; width: .2rem; height: .2rem; content: "";border-bottom: 2px solid #02a6b5; bottom:-1px;}
+.territoryborder{background:rgba(7, 85, 111, 0.4);border:0.01rem solid #033c4f;position: relative;padding: 0.4rem 0.1rem; height: 100%;}
+.territoryborder span{position: absolute;right: 0.2rem;top: 0.2rem;width: .18rem; height: 0.18rem;vertical-align: middle; margin-left: 0.1rem;}
+.territoryborder .style1{ background: linear-gradient(0deg, rgba(26, 241, 166, 0.8), rgba(153, 233, 95, 0.8));border-radius: 50%;}
+.territoryborder .style2{ background: linear-gradient(0deg, rgba(255, 192, 0, 0.8), rgba(252, 211, 86, 0.8));border-radius: 50%;}
+.territoryborder .style3{ background: linear-gradient(0deg, rgba(255, 0, 0, 0.8), rgba(254, 104, 104, 0.8));border-radius: 50%;}
+.territoryborder .number1{font-size: 0.37rem;color: #03F7FC; padding: 0.1rem 0.2rem;line-height: 0.6rem;}
+.territoryborder .number2{font-size: 0.28rem; padding: 0 .1rem .1rem .2rem;line-height: 0.6rem;}
+.territoryborder .number2 label{font-size: 0.4rem;}
+.organizational{width: 80%;margin: 0 auto; padding: 1rem 0 0 0.5rem; clear: both; overflow: hidden;}
+.organizational .title{background: #07556F; border: 0.02rem solid #66FBF9; border-radius: 0.1rem; padding: 0.1rem; display: inline-block;float: left; margin-top: 0.83rem}
+.organizational .title label{font-weight: normal; font-size: 0.22rem;float: left; margin-bottom:0;}
+.organizational .title b{float: right;width: .18rem; height: 0.18rem;vertical-align: middle; margin-left: 0.1rem; margin-top: 0.07rem;}
+.organizational .title .style1{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(26, 241, 166, 0.8), rgba(153, 233, 95, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.1rem;}
+.organizational .title .style2{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(255, 192, 0, 0.8), rgba(252, 211, 86, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.1rem;}
+.organizational .title .style3{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(255, 0, 0, 0.8), rgba(254, 104, 104, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.1rem;}
+.organizational .one{background: url(../images/jian1.png) no-repeat center center;background-size: 100%; width: 1.24rem; height: 0.23rem; float: left; margin-left: 0.2rem; margin-right: 0.1rem; margin-top: 1rem;}
+.organizational .two{background: url(../images/jian2.png) no-repeat center center;background-size: 100%; width: 1.32rem; height: 1.44rem; float: left; margin-left: 0.2rem; margin-right: 0.1rem;margin-top: 0.13rem;}
+.organizational .three{background: url(../images/jian3.png) no-repeat center center;background-size: 100%; width: 1.28rem; height: 2.48rem; float: left; margin-left: 0.2rem; margin-right: 0.1rem; margin-top: 0.15rem;}
+.organizational .title1{float: left;}
+.organizational .title3{background: #07556F; border: 0.02rem solid #66FBF9; border-radius: 0.1rem; padding: 0.1rem; display: block;height: 0.55rem;margin-bottom: 0.56rem;}
+.organizational .title3 label{font-weight: normal; font-size: 0.22rem;float: left; margin-bottom:0;}
+.organizational .title3 b{float: right;width: .18rem; height: 0.18rem;vertical-align: middle; margin-left: 0.1rem; margin-top: 0.07rem;}
+.organizational .title3 .style1{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(26, 241, 166, 0.8), rgba(153, 233, 95, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.1rem;}
+.organizational .title3 .style2{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(255, 192, 0, 0.8), rgba(252, 211, 86, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.1rem;}
+.organizational .title3 .style3{width: .18rem; height: 0.18rem; background: linear-gradient(0deg, rgba(255, 0, 0, 0.8), rgba(254, 104, 104, 0.8));border-radius: 50%;vertical-align: middle; margin-left: 0.1rem;}
+.organizational .title2{float: left;}
+.IndicatorLeft{width: 68%;float: left}
+.IndicatorLeft .title{ background: linear-gradient(0deg, rgba(16, 218, 255, 0.3), rgba(91, 147, 183, 0.3));font-size: 0.16rem; color: #66FBF9;text-align: center; padding: 0.08rem 0;}
+.IndicatorLeft td{margin-right: 0.01rem;font-size: 0.16rem;color: #66FBF9; background: linear-gradient(0deg, rgba(16, 218, 255, 0.3), rgba(91, 147, 183, 0.3))}
+.IndicatorLeft td:last-child{background: none;}
+.IndicatorLeft td label{display: block; width: 55%;margin: 0 auto;text-align: center; margin-bottom: 0.6rem; color: #66FBF9; font-size: 0.16rem;}
+
+.IndicatorLeft .right{float: right; width: 49.9%;color: #66FBF9; font-size: 0.16rem;}
+.IndicatorRight{width: 31.9%;float: right;}
+.IndicatorRight .title{ background: linear-gradient(0deg, rgba(16, 218, 255, 0.3), rgba(91, 147, 183, 0.3));font-size: 0.16rem; color: #66FBF9;text-align: center; padding: 0.08rem 0;}
+.IndicatorLeft_li li{font-size: 0.16rem;color: #66FBF9;background:rgba(24, 97, 121, 0.3); padding:0.08rem 0.08rem 0.08rem 8.5%!important; margin-bottom: 1px;}
+.IndicatorLeft_li li:last-child{margin-bottom: 0}
+.IndicatorLeft_li span{display: inline-block; width: 0.7rem; height: 0.25rem;line-height: 0.25rem; text-align: center;background: #07556F; border: 1px solid #66FBF9; box-shadow: 0px 0.02rem 0.07rem 0px rgba(0, 28, 61, 0.5);
+ border-radius: 0.05rem; margin: 0 auto; margin-bottom: 0.2rem; margin-left: 0.2rem; float: right}
+.territoryBox_1{ margin: 0.2rem 0.5rem 0.28rem 0.5rem!important;}
+.territoryBox_1 .number1{font-size: 0.28rem;color: #03F7FC; padding: 0.1rem 0.2rem;line-height: 0.4rem;}
+.territoryBox_1 .number2{font-size: 0.24rem; padding: 0 .1rem .1rem .2rem;line-height: 0.4rem;}
+.territoryBox_1 .number2 label{font-size: 0.3rem;}
+#relationship{width:60%; margin: 0 auto; text-align: center; }
+#relationship ul li{ margin: 0.2rem; padding: 0.2rem 0.2rem 0.2rem 0.2rem;
+ box-shadow: 0 0 4px 1px rgba(121, 121, 121, 0.3);
+ border-radius: 0.08rem;
+ text-align: center;
+ width:1.4rem;
+ display: inline-block;
+ font-size: 0.22rem;
+ background: #07556F;
+ border: 1px solid #66FBF9;
+}
+.guanxiline{
+ position: absolute; border-top:1px solid #38B9BB;margin-top: 0.2rem;margin-left: 2.5%;
+}
+.guanxiline:before {
+ content: "";
+ position: absolute;
+ width: 0;
+ height: 0;
+ border: 6px solid transparent;
+ border-left-color: #38B9BB;
+ left: 100%;
+ margin-left: 0px;
+ bottom: -6px;
+}
+.guanxideashline{
+ position: absolute; border-top:1px dashed #38B9BB;margin-top: 0.2rem;margin-left:2.5%;
+}
+.guanxideashline:before {
+ content: "";
+ position: absolute;
+ width: 0;
+ height: 0;
+ border: 6px solid transparent;
+ border-left-color: #38B9BB;
+ left: 100%;
+ margin-left: 0px;
+ bottom: -6px;
+}
+.drag{width: 100%;
+ position: fixed;
+ top: 0;
+ z-index: 101;
+ background: rgba(0, 0, 0, 0.7);
+ height: 100%; display:none;}
+.drag_1{width: 80%;height: 85%; background:#092b3f; border-radius: 8px;border:1px solid #033c4f;margin: 0 auto; margin-top: 5%;}
+.drag_1 .title{background: linear-gradient(0deg, rgba(16, 218, 255, 0.3), rgba(91, 147, 183, 0.3))!important;border-left: 1px solid #0A112B;border-top-left-radius: 8px;border-top-right-radius: 8px; height: 45px;line-height: 45px;}
+.drag_1 .title h1{margin-top: 0; font-size: 18px; padding: 0 10px; float: left; line-height: 45px;}
+.drag_1 .title span{float: right; margin-right: 10px; cursor: pointer;}
+.drag_1 .content_1{padding: 20px;height: 100%;}
+.treeview{height: 88%;overflow-y: auto;}
+.treeview .list-group-item{background: rgba(24, 97, 121, 0.3);}
+.list-group-item{border:none}
+.treeview .list-group-item:hover{background: rgba(24, 97, 121, 0.6)!important;}
+.treeview .list-group-item em{ float: right;
+ display: block;
+ width: 15%;font-style: normal;
+ border-left: 1px solid #000000;
+ text-align: center;
+ margin-top: -10px;
+ padding-top: 10px;
+ padding-bottom: 10px;}
+ .list-group-item:first-child{border-radius: 0;}
+ .list-group-item:last-child{border-radius: 0;}
+.father{ background: rgba(24, 97, 121, 0.5); padding: 0 15px; border-bottom: 1px solid #000000; }
+.father label{ padding: 10px 0; margin-bottom: 0;color: #66FBF9; }
+.father span{float: right;width: 15%; text-align: center; color: #66FBF9; padding: 10px 15px;}
+.table3drag{width: 100%;
+ position: fixed;
+ top: 0;
+ z-index: 101;
+ background: rgba(0, 0, 0, 0.7);
+ height: 100%; display:none;}
+.table3drag_1{width: 80%;height: 85%; background:#092b3f; border-radius: 8px;border:1px solid #033c4f;margin: 0 auto; margin-top: 5%;}
+.table3drag_1 .title{background: linear-gradient(0deg, rgba(16, 218, 255, 0.3), rgba(91, 147, 183, 0.3))!important;border-left: 1px solid #0A112B;border-top-left-radius: 8px;border-top-right-radius: 8px; height: 45px;line-height: 45px;}
+.table3drag_1 .title h1{margin-top: 0; font-size: 18px; padding: 0 10px; float: left; line-height: 45px;}
+.table3drag_1 .title span{float: right; margin-right: 10px; cursor: pointer;}
+.table3drag_1 .content_1{padding: 20px;height: 100%;}
+.dragtable{height: 90%; overflow-y: auto;}
+#table3 thead tr th {
+ position: sticky;
+ top: 0;
+ height: 30px;
+}
+#table3 .titlebgc{background: linear-gradient(0deg, rgba(14, 93, 118, 1), rgba(34, 75, 100, 1))!important;}
+
+
+
+/***新增****/
+.newtableTd{
+ width: 20%;
+ background: linear-gradient(0deg, rgba(16, 218, 255, 0.3), rgba(91, 147, 183, 0.3))!important;
+ text-align: center;font-size: 0.16rem; height: 45px;
+ color: #66FBF9!important;
+ border-bottom: 1px solid #000000;border-right: 0;
+}
+.newtableDiv{
+ background: linear-gradient(0deg, rgba(16, 218, 255, 0.3), rgba(91, 147, 183, 0.3))!important;text-align: center; padding: 10px 5px; line-height: 25px;
+ border-left: 1px solid #000000;border-right: 1px solid #000000;border-bottom: 1px solid #000000;
+}
+.newtableDiv_top{border-top: 1px solid #000000; cursor: pointer;}
+.newtableDiv_top:hover{color: #66FBF9;}
+/*.newtableTd1{border-left: 1px solid #000000;background: rgba(24, 97, 121, 0.3); line-height: 45px; text-align: center;}*/
+.newtableTd1{border-left: 1px solid #000000;background: rgba(24, 97, 121, 0.3); line-height:24px; text-align: center;position: relative; vertical-align: baseline;}
+.newtableTd2{background: rgba(24, 97, 121, 0.3); line-height: 25px;height: 30px; text-align: center;}
+.newtableTd2 table{width:100%; height: 100%;table-layout: fixed;}
+.newtableTd2_td{border-left: 1px solid #000000; height: 45px; background: rgba(24, 97, 121, 0.3);}
+.newtableTd3_td{border-left: 1px solid #000000; height: 45px; background: linear-gradient(0deg, rgba(16, 218, 255, 0.3), rgba(91, 147, 183, 0.3))!important;
+ text-align: center; line-height: 20px;padding: 10px 5px; border-top: 1px solid #000000;}
+.newtableTd4_td{ background: rgba(24, 97, 121, 0.3);border-left: 1px solid #000000;text-align: center;height: 45px; line-height: 20px;padding: 10px 5px; border-top: 1px solid #000000;}
+.newtableTd5{background: rgba(24, 97, 121, 0.3); line-height: 25px;height: 30px; text-align: center; border-top: 1px solid #000000;
+ border-bottom: 1px solid #000000;}
+.newtableTd5 td{border-left: 1px solid #000000;height: 45px; background: rgba(24, 97, 121, 0.3);}
\ No newline at end of file
diff --git a/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/data/house.json b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/data/house.json
new file mode 100644
index 00000000..a2a74c94
--- /dev/null
+++ b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/data/house.json
@@ -0,0 +1,22 @@
+[
+ {
+ "name": "供应",
+ "value": 5555
+ },
+ {
+ "name": "人力",
+ "value": 4444
+ },
+ {
+ "name": "财力",
+ "value": 3333
+ },
+ {
+ "name": "工程",
+ "value": 2222
+ },
+ {
+ "name": "乳院",
+ "value": 1111
+ }
+]
diff --git a/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/domainprocess.html b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/domainprocess.html
new file mode 100644
index 00000000..85228a51
--- /dev/null
+++ b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/domainprocess.html
@@ -0,0 +1,174 @@
+
+
+
+
+
+ '+data3.levels_name+' '+
+ ' '+
+ ''+
+ levels_4+
+ '
页面加载中...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
![]()
![]()
+
+
+
+
+
+
+
+ ',
+ item: '',
+ indent: '',
+ icon: '',
+ link: '',
+ badge: ''
+ };
+
+ Tree.prototype.css = '.treeview .list-group-item{cursor:pointer}.treeview span.indent{margin-left:10px;margin-right:10px}.treeview span.icon{width:12px;margin-right:5px}.treeview .node-disabled{color:silver;cursor:not-allowed}'
+
+
+ /**
+ Returns a single node object that matches the given node id.
+ @param {Number} nodeId - A node's unique identifier
+ @return {Object} node - Matching node
+ */
+ Tree.prototype.getNode = function (nodeId) {
+ return this.nodes[nodeId];
+ };
+
+ /**
+ Returns the parent node of a given node, if valid otherwise returns undefined.
+ @param {Object|Number} identifier - A valid node or node id
+ @returns {Object} node - The parent node
+ */
+ Tree.prototype.getParent = function (identifier) {
+ var node = this.identifyNode(identifier);
+ return this.nodes[node.parentId];
+ };
+
+ /**
+ Returns an array of sibling nodes for a given node, if valid otherwise returns undefined.
+ @param {Object|Number} identifier - A valid node or node id
+ @returns {Array} nodes - Sibling nodes
+ */
+ Tree.prototype.getSiblings = function (identifier) {
+ var node = this.identifyNode(identifier);
+ var parent = this.getParent(node);
+ var nodes = parent ? parent.nodes : this.tree;
+ return nodes.filter(function (obj) {
+ return obj.nodeId !== node.nodeId;
+ });
+ };
+
+ /**
+ Returns an array of selected nodes.
+ @returns {Array} nodes - Selected nodes
+ */
+ Tree.prototype.getSelected = function () {
+ return this.findNodes('true', 'g', 'state.selected');
+ };
+
+ /**
+ Returns an array of unselected nodes.
+ @returns {Array} nodes - Unselected nodes
+ */
+ Tree.prototype.getUnselected = function () {
+ return this.findNodes('false', 'g', 'state.selected');
+ };
+
+ /**
+ Returns an array of expanded nodes.
+ @returns {Array} nodes - Expanded nodes
+ */
+ Tree.prototype.getExpanded = function () {
+ return this.findNodes('true', 'g', 'state.expanded');
+ };
+
+ /**
+ Returns an array of collapsed nodes.
+ @returns {Array} nodes - Collapsed nodes
+ */
+ Tree.prototype.getCollapsed = function () {
+ return this.findNodes('false', 'g', 'state.expanded');
+ };
+
+ /**
+ Returns an array of checked nodes.
+ @returns {Array} nodes - Checked nodes
+ */
+ Tree.prototype.getChecked = function () {
+ return this.findNodes('true', 'g', 'state.checked');
+ };
+
+ /**
+ Returns an array of unchecked nodes.
+ @returns {Array} nodes - Unchecked nodes
+ */
+ Tree.prototype.getUnchecked = function () {
+ return this.findNodes('false', 'g', 'state.checked');
+ };
+
+ /**
+ Returns an array of disabled nodes.
+ @returns {Array} nodes - Disabled nodes
+ */
+ Tree.prototype.getDisabled = function () {
+ return this.findNodes('true', 'g', 'state.disabled');
+ };
+
+ /**
+ Returns an array of enabled nodes.
+ @returns {Array} nodes - Enabled nodes
+ */
+ Tree.prototype.getEnabled = function () {
+ return this.findNodes('false', 'g', 'state.disabled');
+ };
+
+
+ /**
+ Set a node state to selected
+ @param {Object|Number} identifiers - A valid node, node id or array of node identifiers
+ @param {optional Object} options
+ */
+ Tree.prototype.selectNode = function (identifiers, options) {
+ this.forEachIdentifier(identifiers, options, $.proxy(function (node, options) {
+ this.setSelectedState(node, true, options);
+ }, this));
+
+ this.render();
+ };
+
+ /**
+ Set a node state to unselected
+ @param {Object|Number} identifiers - A valid node, node id or array of node identifiers
+ @param {optional Object} options
+ */
+ Tree.prototype.unselectNode = function (identifiers, options) {
+ this.forEachIdentifier(identifiers, options, $.proxy(function (node, options) {
+ this.setSelectedState(node, false, options);
+ }, this));
+
+ this.render();
+ };
+
+ /**
+ Toggles a node selected state; selecting if unselected, unselecting if selected.
+ @param {Object|Number} identifiers - A valid node, node id or array of node identifiers
+ @param {optional Object} options
+ */
+ Tree.prototype.toggleNodeSelected = function (identifiers, options) {
+ this.forEachIdentifier(identifiers, options, $.proxy(function (node, options) {
+ this.toggleSelectedState(node, options);
+ }, this));
+
+ this.render();
+ };
+
+
+ /**
+ Collapse all tree nodes
+ @param {optional Object} options
+ */
+ Tree.prototype.collapseAll = function (options) {
+ var identifiers = this.findNodes('true', 'g', 'state.expanded');
+ this.forEachIdentifier(identifiers, options, $.proxy(function (node, options) {
+ this.setExpandedState(node, false, options);
+ }, this));
+
+ this.render();
+ };
+
+ /**
+ Collapse a given tree node
+ @param {Object|Number} identifiers - A valid node, node id or array of node identifiers
+ @param {optional Object} options
+ */
+ Tree.prototype.collapseNode = function (identifiers, options) {
+ this.forEachIdentifier(identifiers, options, $.proxy(function (node, options) {
+ this.setExpandedState(node, false, options);
+ }, this));
+
+ this.render();
+ };
+
+ /**
+ Expand all tree nodes
+ @param {optional Object} options
+ */
+ Tree.prototype.expandAll = function (options) {
+ options = $.extend({}, _default.options, options);
+
+ if (options && options.levels) {
+ this.expandLevels(this.tree, options.levels, options);
+ }
+ else {
+ var identifiers = this.findNodes('false', 'g', 'state.expanded');
+ this.forEachIdentifier(identifiers, options, $.proxy(function (node, options) {
+ this.setExpandedState(node, true, options);
+ }, this));
+ }
+
+ this.render();
+ };
+
+ /**
+ Expand a given tree node
+ @param {Object|Number} identifiers - A valid node, node id or array of node identifiers
+ @param {optional Object} options
+ */
+ Tree.prototype.expandNode = function (identifiers, options) {
+ this.forEachIdentifier(identifiers, options, $.proxy(function (node, options) {
+ this.setExpandedState(node, true, options);
+ if (node.nodes && (options && options.levels)) {
+ this.expandLevels(node.nodes, options.levels-1, options);
+ }
+ }, this));
+
+ this.render();
+ };
+
+ Tree.prototype.expandLevels = function (nodes, level, options) {
+ options = $.extend({}, _default.options, options);
+
+ $.each(nodes, $.proxy(function (index, node) {
+ this.setExpandedState(node, (level > 0) ? true : false, options);
+ if (node.nodes) {
+ this.expandLevels(node.nodes, level-1, options);
+ }
+ }, this));
+ };
+
+ /**
+ Reveals a given tree node, expanding the tree from node to root.
+ @param {Object|Number|Array} identifiers - A valid node, node id or array of node identifiers
+ @param {optional Object} options
+ */
+ Tree.prototype.revealNode = function (identifiers, options) {
+ this.forEachIdentifier(identifiers, options, $.proxy(function (node, options) {
+ var parentNode = this.getParent(node);
+ while (parentNode) {
+ this.setExpandedState(parentNode, true, options);
+ parentNode = this.getParent(parentNode);
+ };
+ }, this));
+
+ this.render();
+ };
+
+ /**
+ Toggles a nodes expanded state; collapsing if expanded, expanding if collapsed.
+ @param {Object|Number} identifiers - A valid node, node id or array of node identifiers
+ @param {optional Object} options
+ */
+ Tree.prototype.toggleNodeExpanded = function (identifiers, options) {
+ this.forEachIdentifier(identifiers, options, $.proxy(function (node, options) {
+ this.toggleExpandedState(node, options);
+ }, this));
+
+ this.render();
+ };
+
+
+ /**
+ Check all tree nodes
+ @param {optional Object} options
+ */
+ Tree.prototype.checkAll = function (options) {
+ var identifiers = this.findNodes('false', 'g', 'state.checked');
+ this.forEachIdentifier(identifiers, options, $.proxy(function (node, options) {
+ this.setCheckedState(node, true, options);
+ }, this));
+
+ this.render();
+ };
+
+ /**
+ Check a given tree node
+ @param {Object|Number} identifiers - A valid node, node id or array of node identifiers
+ @param {optional Object} options
+ */
+ Tree.prototype.checkNode = function (identifiers, options) {
+ this.forEachIdentifier(identifiers, options, $.proxy(function (node, options) {
+ this.setCheckedState(node, true, options);
+ }, this));
+
+ this.render();
+ };
+
+ /**
+ Uncheck all tree nodes
+ @param {optional Object} options
+ */
+ Tree.prototype.uncheckAll = function (options) {
+ var identifiers = this.findNodes('true', 'g', 'state.checked');
+ this.forEachIdentifier(identifiers, options, $.proxy(function (node, options) {
+ this.setCheckedState(node, false, options);
+ }, this));
+
+ this.render();
+ };
+
+ /**
+ Uncheck a given tree node
+ @param {Object|Number} identifiers - A valid node, node id or array of node identifiers
+ @param {optional Object} options
+ */
+ Tree.prototype.uncheckNode = function (identifiers, options) {
+ this.forEachIdentifier(identifiers, options, $.proxy(function (node, options) {
+ this.setCheckedState(node, false, options);
+ }, this));
+
+ this.render();
+ };
+
+ /**
+ Toggles a nodes checked state; checking if unchecked, unchecking if checked.
+ @param {Object|Number} identifiers - A valid node, node id or array of node identifiers
+ @param {optional Object} options
+ */
+ Tree.prototype.toggleNodeChecked = function (identifiers, options) {
+ this.forEachIdentifier(identifiers, options, $.proxy(function (node, options) {
+ this.toggleCheckedState(node, options);
+ }, this));
+
+ this.render();
+ };
+
+
+ /**
+ Disable all tree nodes
+ @param {optional Object} options
+ */
+ Tree.prototype.disableAll = function (options) {
+ var identifiers = this.findNodes('false', 'g', 'state.disabled');
+ this.forEachIdentifier(identifiers, options, $.proxy(function (node, options) {
+ this.setDisabledState(node, true, options);
+ }, this));
+
+ this.render();
+ };
+
+ /**
+ Disable a given tree node
+ @param {Object|Number} identifiers - A valid node, node id or array of node identifiers
+ @param {optional Object} options
+ */
+ Tree.prototype.disableNode = function (identifiers, options) {
+ this.forEachIdentifier(identifiers, options, $.proxy(function (node, options) {
+ this.setDisabledState(node, true, options);
+ }, this));
+
+ this.render();
+ };
+
+ /**
+ Enable all tree nodes
+ @param {optional Object} options
+ */
+ Tree.prototype.enableAll = function (options) {
+ var identifiers = this.findNodes('true', 'g', 'state.disabled');
+ this.forEachIdentifier(identifiers, options, $.proxy(function (node, options) {
+ this.setDisabledState(node, false, options);
+ }, this));
+
+ this.render();
+ };
+
+ /**
+ Enable a given tree node
+ @param {Object|Number} identifiers - A valid node, node id or array of node identifiers
+ @param {optional Object} options
+ */
+ Tree.prototype.enableNode = function (identifiers, options) {
+ this.forEachIdentifier(identifiers, options, $.proxy(function (node, options) {
+ this.setDisabledState(node, false, options);
+ }, this));
+
+ this.render();
+ };
+
+ /**
+ Toggles a nodes disabled state; disabling is enabled, enabling if disabled.
+ @param {Object|Number} identifiers - A valid node, node id or array of node identifiers
+ @param {optional Object} options
+ */
+ Tree.prototype.toggleNodeDisabled = function (identifiers, options) {
+ this.forEachIdentifier(identifiers, options, $.proxy(function (node, options) {
+ this.setDisabledState(node, !node.state.disabled, options);
+ }, this));
+
+ this.render();
+ };
+
+
+ /**
+ Common code for processing multiple identifiers
+ */
+ Tree.prototype.forEachIdentifier = function (identifiers, options, callback) {
+
+ options = $.extend({}, _default.options, options);
+
+ if (!(identifiers instanceof Array)) {
+ identifiers = [identifiers];
+ }
+
+ $.each(identifiers, $.proxy(function (index, identifier) {
+ callback(this.identifyNode(identifier), options);
+ }, this));
+ };
+
+ /*
+ Identifies a node from either a node id or object
+ */
+ Tree.prototype.identifyNode = function (identifier) {
+ return ((typeof identifier) === 'number') ?
+ this.nodes[identifier] :
+ identifier;
+ };
+
+ /**
+ Searches the tree for nodes (text) that match given criteria
+ @param {String} pattern - A given string to match against
+ @param {optional Object} options - Search criteria options
+ @return {Array} nodes - Matching nodes
+ */
+ Tree.prototype.search = function (pattern, options) {
+ options = $.extend({}, _default.searchOptions, options);
+
+ this.clearSearch({ render: false });
+
+ var results = [];
+ if (pattern && pattern.length > 0) {
+
+ if (options.exactMatch) {
+ pattern = '^' + pattern + '$';
+ }
+
+ var modifier = 'g';
+ if (options.ignoreCase) {
+ modifier += 'i';
+ }
+
+ results = this.findNodes(pattern, modifier);
+
+ // Add searchResult property to all matching nodes
+ // This will be used to apply custom styles
+ // and when identifying result to be cleared
+ $.each(results, function (index, node) {
+ node.searchResult = true;
+ })
+ }
+
+ // If revealResults, then render is triggered from revealNode
+ // otherwise we just call render.
+ if (options.revealResults) {
+ this.revealNode(results);
+ }
+ else {
+ this.render();
+ }
+
+ this.$element.trigger('searchComplete', $.extend(true, {}, results));
+
+ return results;
+ };
+
+ /**
+ Clears previous search results
+ */
+ Tree.prototype.clearSearch = function (options) {
+
+ options = $.extend({}, { render: true }, options);
+
+ var results = $.each(this.findNodes('true', 'g', 'searchResult'), function (index, node) {
+ node.searchResult = false;
+ });
+
+ if (options.render) {
+ this.render();
+ }
+
+ this.$element.trigger('searchCleared', $.extend(true, {}, results));
+ };
+
+ /**
+ Find nodes that match a given criteria
+ @param {String} pattern - A given string to match against
+ @param {optional String} modifier - Valid RegEx modifiers
+ @param {optional String} attribute - Attribute to compare pattern against
+ @return {Array} nodes - Nodes that match your criteria
+ */
+ Tree.prototype.findNodes = function (pattern, modifier, attribute) {
+
+ modifier = modifier || 'g';
+ attribute = attribute || 'text';
+
+ var _this = this;
+ return $.grep(this.nodes, function (node) {
+ var val = _this.getNodeValue(node, attribute);
+ if (typeof val === 'string') {
+ return val.match(new RegExp(pattern, modifier));
+ }
+ });
+ };
+
+ /**
+ Recursive find for retrieving nested attributes values
+ All values are return as strings, unless invalid
+ @param {Object} obj - Typically a node, could be any object
+ @param {String} attr - Identifies an object property using dot notation
+ @return {String} value - Matching attributes string representation
+ */
+ Tree.prototype.getNodeValue = function (obj, attr) {
+ var index = attr.indexOf('.');
+ if (index > 0) {
+ var _obj = obj[attr.substring(0, index)];
+ var _attr = attr.substring(index + 1, attr.length);
+ return this.getNodeValue(_obj, _attr);
+ }
+ else {
+ if (obj.hasOwnProperty(attr)) {
+ return obj[attr].toString();
+ }
+ else {
+ return undefined;
+ }
+ }
+ };
+
+ var logError = function (message) {
+ if (window.console) {
+ window.console.error(message);
+ }
+ };
+
+ // Prevent against multiple instantiations,
+ // handle updates and method calls
+ $.fn[pluginName] = function (options, args) {
+
+ var result;
+
+ this.each(function () {
+ var _this = $.data(this, pluginName);
+ if (typeof options === 'string') {
+ if (!_this) {
+ logError('Not initialized, can not call method : ' + options);
+ }
+ else if (!$.isFunction(_this[options]) || options.charAt(0) === '_') {
+ logError('No such method : ' + options);
+ }
+ else {
+ if (!(args instanceof Array)) {
+ args = [ args ];
+ }
+ result = _this[options].apply(_this, args);
+ }
+ }
+ else if (typeof options === 'boolean') {
+ result = _this;
+ }
+ else {
+ $.data(this, pluginName, new Tree(this, $.extend(true, {}, options)));
+ }
+ });
+
+ return result || this;
+ };
+
+})(jQuery, window, document);
diff --git a/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/js/domainprocessNeed/domainprocess.js b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/js/domainprocessNeed/domainprocess.js
new file mode 100644
index 00000000..fee93beb
--- /dev/null
+++ b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/js/domainprocessNeed/domainprocess.js
@@ -0,0 +1,792 @@
+$(function(){
+ management()
+ tabledata("全部");
+ navtag();
+ tabledata2("1.0 战略规划到执行","");
+ managements();
+ newsecond("1.0 战略规划到执行");
+});
+
+//单位筛选条件
+function managements(){
+ var url = window.location.href;
+ console.log(url);
+ var sid = GetQueryString("sid");
+ //接口记得修改
+ $.ajax({
+ url: baseUrl + 'getL1Process'+"&sid="+sid,
+ data: "",
+ dataType: "json",
+ type: "post",
+ async: true,
+ success: function (data) {
+ console.log(data);
+ if(data.result == 'ok') {
+ let typelist = data.fileTypes
+ let str = ''
+ for (let i = 0; i < typelist.length; i++) {
+ str += ''
+ }
+ $('#framework').html(str);
+ }
+ }
+ });
+}
+//截取参数
+function GetQueryString(name)
+{
+ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
+ var r = window.location.search.substr(1).match(reg);
+ if(r!=null)return unescape(r[2]); return null;
+}
+
+
+//架构筛选条件
+function management(){
+ var url = window.location.href;
+ console.log(url);
+ var sid = GetQueryString("sid");
+ //接口记得修改
+ $.ajax({
+ url: baseUrl + 'getDepartname'+"&sid="+sid,
+ data: {
+ sid:sid
+ },
+ type: "post",
+ async: false,
+ success: function (result) {
+ console.log(result);
+ if(result.result == 'ok') {
+ let typelist = result.fileTypes
+ let str = ''
+ for (let i = 0; i < typelist.length; i++) {
+ str += ''
+ }
+ $('#filetype').html(str);
+ }
+ },
+ error:function(data, XMLHttpRequest, textStatus, errorThrown){
+ console.log("系统错误,请联系管理员")
+ }
+ });
+}
+
+
+//第一个表格
+function tabledata(name){
+
+ let data= "";
+ var url = window.location.href;
+ console.log(url);
+ var sid = GetQueryString("sid");
+ //接口记得修改
+ $.ajax({
+ url: baseUrl + 'getMetritsFirst'+"&sid="+sid,
+ data: {
+ sid:sid,
+ departname:name,
+ },
+ type: "post",
+ async: false,
+ success: function (result) {
+ console.log(result);
+ data = result;
+ },
+ error:function(data, XMLHttpRequest, textStatus, errorThrown){
+ console.log("系统错误,请联系管理员")
+ }
+ });
+ let strTh = '',strTr='';
+ for(let i=0;i
'+data.headtop[i]+' '
+ }
+
+ }
+ $('#table1 thead tr').html(strTh)
+ for(let j=0;j'+strtitle+' '
+ for(let a=0;a'+strnum1+' '
+ strTr+=''+strTd1+firstTd+Td1+' '
+ }
+ $('#table1 tbody').html(strTr)
+}
+function dragcontbind(id,name){
+ console.log(id);
+ console.log(name);
+ var departname = $("#filetype option:selected")[0].innerText;
+ var url = window.location.href;
+ console.log(url);
+ var sid = GetQueryString("sid");
+ $('.drag').show()
+ var defaultData = "";
+ $.ajax({
+ url: baseUrl + 'getFirst'+"&sid="+sid,
+ data: {
+ sid:sid,
+ plid:id,
+ name:name,
+ departname:departname,
+ },
+ type: "post",
+ async: false,
+ success: function (result) {
+ console.log(result);
+ defaultData = result;
+ },
+ error:function(data, XMLHttpRequest, textStatus, errorThrown){
+ console.log("系统错误,请联系管理员")
+ }
+ });
+ $('#value_1').html('L1流程架构');
+ $('#value_2').html(name);
+ $('#treeview3').treeview({
+ levels: 99,
+ data: defaultData
+ });
+}
+//选项卡
+function navtag(){
+ var data="";
+ var url = window.location.href;
+ console.log(url);
+ var sid = GetQueryString("sid");
+ //接口记得修改
+ $.ajax({
+ url: baseUrl + 'getsecondDepartname'+"&sid="+sid,
+ data: {
+ sid:sid,
+ },
+ type: "post",
+ async: false,
+ success: function (result) {
+ console.log(result);
+ data = result;
+ },
+ error:function(data, XMLHttpRequest, textStatus, errorThrown){
+ console.log("系统错误,请联系管理员")
+ }
+ });
+ let str='';
+ for (var i=0;i'+data.content[j].secondcont[a].name[z].child[f]+' '
+ }else{
+ child+=''+data.content[j].secondcont[a].name[z].child[f]+' '
+ }
+
+ }
+ if(child=='' && j == 1){
+ child = ' '
+ }
+ if(data.content[j].secondcont[a].name[z].incident == true){
+ strtitle+=''+child+' '+child+' '
+ strTr+=''+strtitle+'
'+strtdfl1+strtdfl2+strtdfl3+strtdfl4+'
'+strTd1+firstTd+' '
+ }
+ $('#table2 tbody').html(strTr)
+ for(let i=0;i'+strtitle+' '
+ let strnum1='';
+ for(let a=0;a'+strnum1+' '+strnum2+' '+strnum3+' '+strnum4+' '
+ strTr+=''+firstTd+Td1+' '
+ }
+ $('#table3 tbody').html(strTr)
+}
+
+
+
+
+
+/***新增****/
+//第二个新的表格
+function newsecond(id){
+
+
+ debugger;
+ var dename = $("#navtab li[class='isActive']")[0].innerText
+ console.log(id);
+ console.log(dename);
+ var url = window.location.href;
+ console.log(url);
+ var sid = GetQueryString("sid");
+ let data= "";
+ $.ajax({
+ url: baseUrl + 'getnewTable'+"&sid="+sid,
+ data: {
+ sid:sid,
+ plname:id,
+ departname:dename
+ },
+ type: "post",
+ async: false,
+ success: function (result) {
+ console.log(result);
+ data = result;
+ },
+ error:function(data, XMLHttpRequest, textStatus, errorThrown){
+ console.log("系统错误,请联系管理员")
+ }
+ });
+
+
+
+ /*let data =[
+ {
+ levels_name:'L1流程绩效指标',
+ levels_1:[
+ {
+ name:'L1架构',
+ child:[
+ {
+ content:'新产品收入占比',
+ num:5
+ },
+ {
+ content:'规模品牌数量',
+ num:5
+ },
+ {
+ content:'首发产品数量',
+ num:3
+ },
+ {
+ content:'利润率',
+ num:''
+ },
+ {
+ content:'重点品牌品牌力',
+ num:''
+ },
+ {
+ content:'人均营收增长率',
+ num:''
+ }
+ ]
+ }
+ ]
+ },
+ {
+ levels_name:'L2流程绩效指标',
+ levels_2:[
+ {
+ child:[
+ {
+ content:'1.0 产品与产品与技产品与技术研发术研发产品与技术研发产品与技术研发技术研发',
+ id:1
+ },
+ {
+ content:'2.0 产品与技术研发',
+ id:2
+ },
+ {
+ content:'3.0 产品与技术研发',
+ id:3
+ }
+ ]
+ },
+ {
+ child:[
+ {
+ content:[
+ {
+ name:'新产品收入占比文字非常多非常多'
+ },
+ {
+ name:'新产品产品与技术研发产品与技术研发产品与技术研发收入占'
+ },
+ {
+ name:'新产品收入占比'
+ }
+ ]
+ },
+ {
+ content:[
+ {
+ name:'新产品收入占比文字非常多非常多'
+ },
+ {
+ name:'新产品收入占'
+ }
+ ]
+ },
+ {
+ content:[{
+ name:'新产品收入占比文字非常多非常多'
+ },
+ {
+ name:'新产品产品与技术研发收入占'
+ }]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ levels_name:'L3流程绩效指标',
+ levels_3:[
+ {
+ child:[
+ {
+ content:[
+ {
+ name:'3.1.1管理研发产品与技术研发产品与技术研发需求'
+ },
+ {
+ name:'3.1.1管理研发需求'
+ },
+ {
+ name:'3.1.1管理研发需求'
+ },
+ {
+ name:'3.1.1管理研发需求'
+ },
+ {
+ name:'3.1.1管理研发需求'
+ }
+ ]
+ },
+ {
+ content:[
+ {
+ name:'3.1.2管理研发需求'
+ },
+ {
+ name:'3.1.2管理研发需求'
+ }
+ ]
+ },
+ {
+ content:[
+ {
+ name:'3.1.3管理研发需求'
+ },
+ {
+ name:'3.1.3管理研发需求'
+ },
+ {
+ name:'3.1.3管理研发需求'
+ }
+ ]
+ }
+ ]
+ },
+ {
+ child:[
+ {
+ content:[
+ {
+ name:'3.1.1管理研发需求'
+ },
+ {
+ name:'3.1.2管理研发需求文字多'
+ },
+ {
+ name:'3.1.3管理研发需求'
+ },
+ {
+ name:'3.1.4管理研发需求'
+ },
+ {
+ name:'3.1.5管理研发需求'
+ }
+ ]
+ },
+ {
+ content:[
+ {
+ name:'3.1.2管理研发需求'
+ },
+ {
+ name:'3.1.2管理研发需求'
+ }
+ ]
+ },
+ {
+ content:[
+ {
+ name:'3.1.3管理研发需求'
+ },
+ {
+ name:'3.1.3管理研发需求'
+ },
+ {
+ name:'3.1.3管理研发需求'
+ }
+ ]
+ }
+ ]
+ },
+ ]
+ },
+ {
+ levels_name:'关键流程清单',
+ levels_4:[]
+ }
+ ];*/
+ var trone = '',trtwo='',trthree='',trfour=''
+
+ var levels='',levels_1_td='';
+ var levels_2='', levels_2_1='',levels_2_tdson='',levels_2_tdson1='';
+ var levels_3='',levels_3_1='';
+ var levels_4 =''
+ for(var i=0;i' +
+ '
'
+ }
+ levels=''+dataj1[j].content+' ● '+
+ '
'
+ trone=''+levels_1_td+' '+
+ ''+
+ ' '
+ }
+ if(i==1){
+ var data2= data[i]
+ var dataj2 = data2.levels_2
+
+ var data3= data[2]
+ var dataj3 = data3.levels_3
+
+
+ var l3 = data[2].levels_3[0].child;
+ var len = 0;
+ var color=""
+ for(var l3i=0;l3i'+data1.levels_name+' '+
+ ''+
+ levels
+ ' '+
+ ''+str[f].name+'● '
+ // }
+ if(j==0){
+ levels_2_tdson2+=''+str[f].name+' '
+ }else{
+ levels_2_tdson2+=''+str[f].name+'● '
+ }
+ }
+ levels_2_tdson1+=''+
+ ' '
+ }
+ levels_2+=''+
+ '
'+
+ ''+ levels_2_tdson2+
+ ' '+
+ ''+levels_2_tdson1+' '
+ }
+ trtwo=''+
+ ' '
+ }
+ if(i==2){
+ var data3= data[i]
+ var l3 = data[2].levels_3[0].child;
+ var len = 0;
+ var color=""
+ for(var l3i=0;l3i'+data2.levels_name+' '+
+ ' '+
+ ''+
+ levels_2+
+ '
'+str[f].name+' '
+ }else if(str[f].name==""){
+ levels_3_tdson2+=''+str[f].name+'● '
+ }else{
+ levels_3_tdson2+=''+str[f].name+'● '
+ }
+ }
+ levels_3_tdson1+=''+
+ ' '
+ }
+ levels_3+=''+
+ '
'+
+ ''+ levels_3_tdson2+
+ ' '+
+ ''+levels_3_tdson1+' '
+ }
+ trthree=''+
+ ' '
+ }
+ if(i==3){
+ var data4= data[i]
+ levels_4+=''+data3.levels_name+' '+
+ ' '+
+ ''+
+ levels_3+
+ '
'
+ trfour=''+
+ ' '
+ }
+
+ $('#newtable').html(trone+trtwo+trthree+trfour)
+ }
+}
diff --git a/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/js/domainprocessNeed/domainprocess.js_bak b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/js/domainprocessNeed/domainprocess.js_bak
new file mode 100644
index 00000000..fee93beb
--- /dev/null
+++ b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/js/domainprocessNeed/domainprocess.js_bak
@@ -0,0 +1,792 @@
+$(function(){
+ management()
+ tabledata("全部");
+ navtag();
+ tabledata2("1.0 战略规划到执行","");
+ managements();
+ newsecond("1.0 战略规划到执行");
+});
+
+//单位筛选条件
+function managements(){
+ var url = window.location.href;
+ console.log(url);
+ var sid = GetQueryString("sid");
+ //接口记得修改
+ $.ajax({
+ url: baseUrl + 'getL1Process'+"&sid="+sid,
+ data: "",
+ dataType: "json",
+ type: "post",
+ async: true,
+ success: function (data) {
+ console.log(data);
+ if(data.result == 'ok') {
+ let typelist = data.fileTypes
+ let str = ''
+ for (let i = 0; i < typelist.length; i++) {
+ str += ''
+ }
+ $('#framework').html(str);
+ }
+ }
+ });
+}
+//截取参数
+function GetQueryString(name)
+{
+ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
+ var r = window.location.search.substr(1).match(reg);
+ if(r!=null)return unescape(r[2]); return null;
+}
+
+
+//架构筛选条件
+function management(){
+ var url = window.location.href;
+ console.log(url);
+ var sid = GetQueryString("sid");
+ //接口记得修改
+ $.ajax({
+ url: baseUrl + 'getDepartname'+"&sid="+sid,
+ data: {
+ sid:sid
+ },
+ type: "post",
+ async: false,
+ success: function (result) {
+ console.log(result);
+ if(result.result == 'ok') {
+ let typelist = result.fileTypes
+ let str = ''
+ for (let i = 0; i < typelist.length; i++) {
+ str += ''
+ }
+ $('#filetype').html(str);
+ }
+ },
+ error:function(data, XMLHttpRequest, textStatus, errorThrown){
+ console.log("系统错误,请联系管理员")
+ }
+ });
+}
+
+
+//第一个表格
+function tabledata(name){
+
+ let data= "";
+ var url = window.location.href;
+ console.log(url);
+ var sid = GetQueryString("sid");
+ //接口记得修改
+ $.ajax({
+ url: baseUrl + 'getMetritsFirst'+"&sid="+sid,
+ data: {
+ sid:sid,
+ departname:name,
+ },
+ type: "post",
+ async: false,
+ success: function (result) {
+ console.log(result);
+ data = result;
+ },
+ error:function(data, XMLHttpRequest, textStatus, errorThrown){
+ console.log("系统错误,请联系管理员")
+ }
+ });
+ let strTh = '',strTr='';
+ for(let i=0;i'+data3.levels_name+' '+
+ ' '+
+ ''+
+ levels_4+
+ '
'+data.headtop[i]+' '
+ }
+
+ }
+ $('#table1 thead tr').html(strTh)
+ for(let j=0;j'+strtitle+' '
+ for(let a=0;a'+strnum1+' '
+ strTr+=''+strTd1+firstTd+Td1+' '
+ }
+ $('#table1 tbody').html(strTr)
+}
+function dragcontbind(id,name){
+ console.log(id);
+ console.log(name);
+ var departname = $("#filetype option:selected")[0].innerText;
+ var url = window.location.href;
+ console.log(url);
+ var sid = GetQueryString("sid");
+ $('.drag').show()
+ var defaultData = "";
+ $.ajax({
+ url: baseUrl + 'getFirst'+"&sid="+sid,
+ data: {
+ sid:sid,
+ plid:id,
+ name:name,
+ departname:departname,
+ },
+ type: "post",
+ async: false,
+ success: function (result) {
+ console.log(result);
+ defaultData = result;
+ },
+ error:function(data, XMLHttpRequest, textStatus, errorThrown){
+ console.log("系统错误,请联系管理员")
+ }
+ });
+ $('#value_1').html('L1流程架构');
+ $('#value_2').html(name);
+ $('#treeview3').treeview({
+ levels: 99,
+ data: defaultData
+ });
+}
+//选项卡
+function navtag(){
+ var data="";
+ var url = window.location.href;
+ console.log(url);
+ var sid = GetQueryString("sid");
+ //接口记得修改
+ $.ajax({
+ url: baseUrl + 'getsecondDepartname'+"&sid="+sid,
+ data: {
+ sid:sid,
+ },
+ type: "post",
+ async: false,
+ success: function (result) {
+ console.log(result);
+ data = result;
+ },
+ error:function(data, XMLHttpRequest, textStatus, errorThrown){
+ console.log("系统错误,请联系管理员")
+ }
+ });
+ let str='';
+ for (var i=0;i'+data.content[j].secondcont[a].name[z].child[f]+' '
+ }else{
+ child+=''+data.content[j].secondcont[a].name[z].child[f]+' '
+ }
+
+ }
+ if(child=='' && j == 1){
+ child = ' '
+ }
+ if(data.content[j].secondcont[a].name[z].incident == true){
+ strtitle+=''+child+' '+child+' '
+ strTr+=''+strtitle+'
'+strtdfl1+strtdfl2+strtdfl3+strtdfl4+'
'+strTd1+firstTd+' '
+ }
+ $('#table2 tbody').html(strTr)
+ for(let i=0;i'+strtitle+' '
+ let strnum1='';
+ for(let a=0;a'+strnum1+' '+strnum2+' '+strnum3+' '+strnum4+' '
+ strTr+=''+firstTd+Td1+' '
+ }
+ $('#table3 tbody').html(strTr)
+}
+
+
+
+
+
+/***新增****/
+//第二个新的表格
+function newsecond(id){
+
+
+ debugger;
+ var dename = $("#navtab li[class='isActive']")[0].innerText
+ console.log(id);
+ console.log(dename);
+ var url = window.location.href;
+ console.log(url);
+ var sid = GetQueryString("sid");
+ let data= "";
+ $.ajax({
+ url: baseUrl + 'getnewTable'+"&sid="+sid,
+ data: {
+ sid:sid,
+ plname:id,
+ departname:dename
+ },
+ type: "post",
+ async: false,
+ success: function (result) {
+ console.log(result);
+ data = result;
+ },
+ error:function(data, XMLHttpRequest, textStatus, errorThrown){
+ console.log("系统错误,请联系管理员")
+ }
+ });
+
+
+
+ /*let data =[
+ {
+ levels_name:'L1流程绩效指标',
+ levels_1:[
+ {
+ name:'L1架构',
+ child:[
+ {
+ content:'新产品收入占比',
+ num:5
+ },
+ {
+ content:'规模品牌数量',
+ num:5
+ },
+ {
+ content:'首发产品数量',
+ num:3
+ },
+ {
+ content:'利润率',
+ num:''
+ },
+ {
+ content:'重点品牌品牌力',
+ num:''
+ },
+ {
+ content:'人均营收增长率',
+ num:''
+ }
+ ]
+ }
+ ]
+ },
+ {
+ levels_name:'L2流程绩效指标',
+ levels_2:[
+ {
+ child:[
+ {
+ content:'1.0 产品与产品与技产品与技术研发术研发产品与技术研发产品与技术研发技术研发',
+ id:1
+ },
+ {
+ content:'2.0 产品与技术研发',
+ id:2
+ },
+ {
+ content:'3.0 产品与技术研发',
+ id:3
+ }
+ ]
+ },
+ {
+ child:[
+ {
+ content:[
+ {
+ name:'新产品收入占比文字非常多非常多'
+ },
+ {
+ name:'新产品产品与技术研发产品与技术研发产品与技术研发收入占'
+ },
+ {
+ name:'新产品收入占比'
+ }
+ ]
+ },
+ {
+ content:[
+ {
+ name:'新产品收入占比文字非常多非常多'
+ },
+ {
+ name:'新产品收入占'
+ }
+ ]
+ },
+ {
+ content:[{
+ name:'新产品收入占比文字非常多非常多'
+ },
+ {
+ name:'新产品产品与技术研发收入占'
+ }]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ levels_name:'L3流程绩效指标',
+ levels_3:[
+ {
+ child:[
+ {
+ content:[
+ {
+ name:'3.1.1管理研发产品与技术研发产品与技术研发需求'
+ },
+ {
+ name:'3.1.1管理研发需求'
+ },
+ {
+ name:'3.1.1管理研发需求'
+ },
+ {
+ name:'3.1.1管理研发需求'
+ },
+ {
+ name:'3.1.1管理研发需求'
+ }
+ ]
+ },
+ {
+ content:[
+ {
+ name:'3.1.2管理研发需求'
+ },
+ {
+ name:'3.1.2管理研发需求'
+ }
+ ]
+ },
+ {
+ content:[
+ {
+ name:'3.1.3管理研发需求'
+ },
+ {
+ name:'3.1.3管理研发需求'
+ },
+ {
+ name:'3.1.3管理研发需求'
+ }
+ ]
+ }
+ ]
+ },
+ {
+ child:[
+ {
+ content:[
+ {
+ name:'3.1.1管理研发需求'
+ },
+ {
+ name:'3.1.2管理研发需求文字多'
+ },
+ {
+ name:'3.1.3管理研发需求'
+ },
+ {
+ name:'3.1.4管理研发需求'
+ },
+ {
+ name:'3.1.5管理研发需求'
+ }
+ ]
+ },
+ {
+ content:[
+ {
+ name:'3.1.2管理研发需求'
+ },
+ {
+ name:'3.1.2管理研发需求'
+ }
+ ]
+ },
+ {
+ content:[
+ {
+ name:'3.1.3管理研发需求'
+ },
+ {
+ name:'3.1.3管理研发需求'
+ },
+ {
+ name:'3.1.3管理研发需求'
+ }
+ ]
+ }
+ ]
+ },
+ ]
+ },
+ {
+ levels_name:'关键流程清单',
+ levels_4:[]
+ }
+ ];*/
+ var trone = '',trtwo='',trthree='',trfour=''
+
+ var levels='',levels_1_td='';
+ var levels_2='', levels_2_1='',levels_2_tdson='',levels_2_tdson1='';
+ var levels_3='',levels_3_1='';
+ var levels_4 =''
+ for(var i=0;i' +
+ '
'
+ }
+ levels=''+dataj1[j].content+' ● '+
+ '
'
+ trone=''+levels_1_td+' '+
+ ''+
+ ' '
+ }
+ if(i==1){
+ var data2= data[i]
+ var dataj2 = data2.levels_2
+
+ var data3= data[2]
+ var dataj3 = data3.levels_3
+
+
+ var l3 = data[2].levels_3[0].child;
+ var len = 0;
+ var color=""
+ for(var l3i=0;l3i'+data1.levels_name+' '+
+ ''+
+ levels
+ ' '+
+ ''+str[f].name+'● '
+ // }
+ if(j==0){
+ levels_2_tdson2+=''+str[f].name+' '
+ }else{
+ levels_2_tdson2+=''+str[f].name+'● '
+ }
+ }
+ levels_2_tdson1+=''+
+ ' '
+ }
+ levels_2+=''+
+ '
'+
+ ''+ levels_2_tdson2+
+ ' '+
+ ''+levels_2_tdson1+' '
+ }
+ trtwo=''+
+ ' '
+ }
+ if(i==2){
+ var data3= data[i]
+ var l3 = data[2].levels_3[0].child;
+ var len = 0;
+ var color=""
+ for(var l3i=0;l3i'+data2.levels_name+' '+
+ ' '+
+ ''+
+ levels_2+
+ '
'+str[f].name+' '
+ }else if(str[f].name==""){
+ levels_3_tdson2+=''+str[f].name+'● '
+ }else{
+ levels_3_tdson2+=''+str[f].name+'● '
+ }
+ }
+ levels_3_tdson1+=''+
+ ' '
+ }
+ levels_3+=''+
+ '
'+
+ ''+ levels_3_tdson2+
+ ' '+
+ ''+levels_3_tdson1+' '
+ }
+ trthree=''+
+ ' '
+ }
+ if(i==3){
+ var data4= data[i]
+ levels_4+=''+data3.levels_name+' '+
+ ' '+
+ ''+
+ levels_3+
+ '
'
+ trfour=''+
+ ' '
+ }
+
+ $('#newtable').html(trone+trtwo+trthree+trfour)
+ }
+}
diff --git a/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/js/domainprocessNeed/growthCharts.js b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/js/domainprocessNeed/growthCharts.js
new file mode 100644
index 00000000..461728ea
--- /dev/null
+++ b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/js/domainprocessNeed/growthCharts.js
@@ -0,0 +1,439 @@
+var growthCharts = echarts.init(document.getElementById('growthCharts'));
+var growthChartsinto = function () {
+ var xdata = [
+ '1月',
+ '2月',
+ '3月',
+ '4月',
+ '5月',
+ '6月',
+ '7月',
+ '8月',
+ '9月',
+ '10月',
+ '11月',
+ '12月'
+ ];
+ var ydata = [
+ {value: '64'},
+ {value: '84'},
+ {value: '53'},
+ {value: '28'},
+ {value: '64'},
+ {value: '84'},
+ {value: '53'},
+ {value: '28'},
+ {value: '64'},
+ {value: '84'},
+ {value: '53'},
+ {value: '28'},
+ {value: '53'},
+ {value: '28'}
+ ]
+ var option = {
+ grid: {
+ left: '5px',
+ right: '0%',
+ bottom: '0',
+ top: '20%',
+ containLabel: true,
+ },
+ tooltip: {
+ show: "true",
+ trigger: 'axis',
+ axisPointer: { // 坐标轴指示器,坐标轴触发有效
+ type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
+ },
+ formatter: '{b0}:{c0}' + '%'
+ },
+ yAxis: {
+ type: 'value',
+ name: '',
+ nameTextStyle: {//y轴上方单位的颜色
+ color: '#ffffff',
+ fontSize: '20'
+
+ },
+ nameGap: 20, // y轴name与横纵坐标轴线的间距
+ show: true,
+ max: 100,
+ splitLine: {
+ show: true,
+ lineStyle: {
+ type: 'solid',
+ color: 'rgba(102, 102, 102, 1)'
+ }
+ },
+ axisTick: {show: false},
+ axisLine: {
+ show: false,
+ lineStyle: {
+ color: "#38B9BB",
+ width: 1,
+ type: "solid"
+ }
+ },
+ axisLabel: {
+ textStyle: {
+ color: '#ffffff',
+ fontSize: 20
+ },
+ formatter: function (value, index) {
+ return value + '%';
+ }
+ },
+ },
+ xAxis: [
+ {
+ type: 'category',
+ axisTick: {
+ show: false
+ },
+ boundaryGap: ['20%', '20%',],//坐标轴两边留白
+ axisLine: {
+ show: true,
+ lineStyle: {
+ type: "solid",
+ color: "#38B9BB"
+ },
+ symbol: ['none'],
+ symbolSize: [13, 20],
+ symbolOffset: [0, 40],
+ },
+ axisLabel: {
+ textStyle: {
+ color: '#ffffff',
+ fontSize: '16'
+ },
+ interval: 0
+ },
+ data: xdata
+ }
+ ],
+ series: [
+ {
+ name: '',
+ type: 'bar',
+ barWidth: '25px',
+ itemStyle: {
+ normal: {
+ show: true,
+ color: function (params) {//超过预警值显示红色
+ if (params.data.value > 60) {
+ return '#2685CD';
+ } else {
+ return '#F9D905';
+ }
+ },
+ barBorderRadius: 50,
+ borderWidth: 0,
+ borderColor: '#2685CD',
+ }
+ },
+ label: {
+ normal: {
+ show: true,
+ position: 'top',
+ textStyle: {
+ color: '#ffffff'
+ },
+ formatter: function (value, index) {
+ if (value.data.value > 60) {
+ return ''
+ } else {
+ return value.data.value + '%';
+ }
+
+ }
+ }
+ },
+ data: ydata,
+ markLine: {
+ symbol: ['none', 'none'],
+ data: [
+ {
+ yAxis: 60,
+ lineStyle: {
+ normal: {
+ type: 'solid',
+ color: '#F9D905'
+ }
+ }
+ },
+ {
+ yAxis: 80,
+ lineStyle: {
+ normal: {
+ type: 'solid',
+ color: '#00E6AC'
+ }
+ }
+ }
+ ]
+ }
+ },
+
+ ]
+ };
+ growthCharts.clear();
+ growthCharts.setOption(option);
+};
+growthCharts.on("click", function (e) {
+ growthChartsinto();
+});
+
+
+var chartDom = document.getElementById('organizational');
+var myChart = echarts.init(chartDom);
+var option;
+var img = '../apps/com.awspaas.user.apps.est/image/jian1.png'
+var img1 = '../apps/com.awspaas.user.apps.est/images/qiu1.png';
+var img2 = '../apps/com.awspaas.user.apps.est/images/qiu2.png';
+var img3 = '../apps/com.awspaas.user.apps.est/images/qiu3.png';
+
+
+var dataType = "";
+var data2 = [];
+//截取参数
+function GetQueryString(name)
+{
+ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
+ var r = window.location.search.substr(1).match(reg);
+ if(r!=null)return unescape(r[2]); return null;
+}
+
+function getTableData() {
+ var url = window.location.href;
+ console.log(url);
+ var sid = GetQueryString("sid");
+ //获取id表单
+ var chartDom = document.getElementById('organizational');
+ var myChart = echarts.init(chartDom);
+ var ulItem = document.getElementById("newtable");
+ //设置点击事件,获取table表单中的td标签的数据
+ ulItem.onclick = function (e) {
+ debugger;
+ e = e || window.event;//这一行及下一行是为兼容IE8及以下版本
+ var target = e.target || e.srcElement;
+ var dataType = "";
+ if (target.tagName.toLowerCase() === "td") {
+ // console.log(target.innerHTML);
+ dataType = target.innerHTML;
+ debugger;
+ dataType = dataType.replaceAll("","").replaceAll("●","");
+ console.log(dataType);
+ }
+ console.log("当前选中的td表单", dataType);
+ //后端获取json数组的ajax
+ $.ajax({
+ url: "https://bpm.yili.com:8088/portal/r/jd?sid=" +sid+ "&cmd=com.aspaas.user.apps.est.controller.getView3",
+ data: {sid: sid, dataType: dataType},
+ type: "post",
+ async: true,
+ dataType: "json",
+ success: function (result) {
+ console.log(result);
+ data2 = result;
+ view(data2);
+ },
+ error: function () {
+ console.log("系统错误,请联系管理员");
+ }
+ });
+ }
+}
+
+function view(dataobj) {
+ //基于准备好的DOM,初始化echarts实例
+ var chartDom = document.getElementById('organizational');
+ var myChart = echarts.init(chartDom);
+ //指定图表的配置项和数据
+ myChart.clear();
+ option = {
+ tooltip: {
+ trigger: 'item',
+ triggerOn: 'mousemove'
+ },
+ series: [
+ {
+ type: 'tree',
+ id: 0,
+ name: 'tree1',
+ data: dataobj,
+ top: '5%',
+ left: '20%',
+ bottom: '5%',
+ right: '30%',
+ symbolSize: 12,
+ focusNodeAdjacency: true,
+ edgeShape: 'polyline',
+ edgeForkPosition: '63%',
+ initialTreeDepth: 10,
+ roam: true,
+ edgeSymbol: ["circle", "arrow"],
+ symbol: "circle",
+ lineStyle: {
+ width: 2,
+ color: '#66FBF9',
+ },
+ legendHoverLink: true,
+ label: {
+ backgroundColor: '#07556F',
+ color: '#FFFFFF',
+ padding: 10,
+ borderRadius: 10,
+ borderWidth: 1,
+ borderColor: '#66FBF9',
+ fontSize: 15,
+ position: 'right',
+ verticalAlign: 'middle',
+ align: 'left',
+ rich: {
+ img1: {
+ backgroundColor: {
+ image: img1
+ }
+ },
+ img2: {
+ backgroundColor: {
+ image: img2
+ }
+ },
+ img3: {
+ backgroundColor: {
+ image: img3
+ }
+ },
+ height: 40,
+ percent: {
+ width: 20,
+ }
+ },
+ formatter: function (dataobj) {
+ var res = "";
+ console.log(dataobj)
+ if (dataobj.value >= 3000) {
+ res += dataobj.name + ' {img1|}';
+ }
+ if (dataobj.value >= 1000 && dataobj.value < 3000) {
+ res += dataobj.name + ' {img2|}';
+ }
+ if (dataobj.value < 1000) {
+ res += dataobj.name + ' {img3|}';
+ }
+ return res
+ }
+ },
+ leaves: {
+ label: {
+ position: 'right',
+ verticalAlign: 'middle',
+ align: 'left'
+ }
+ },
+ emphasis: {
+ focus: 'descendant'
+ },
+ expandAndCollapse: true,
+ animationDuration: 550,
+ animationDurationUpdate: 750
+ }
+ ]
+ };
+ option && myChart.setOption(option);
+}
+
+
+// optionoption = {
+// tooltip: {
+// trigger: 'item',
+// triggerOn: 'mousemove'
+// },
+// series: [
+// {
+// type: 'tree',
+// id: 0,
+// name: 'tree1',
+// data: [data3],
+// top: '5%',
+// left: '20%',
+// bottom: '5%',
+// right: '30%',
+// symbolSize: 12,
+// focusNodeAdjacency: true,
+// edgeShape: 'polyline',
+// edgeForkPosition: '63%',
+// initialTreeDepth: 10,
+// roam: true,
+// edgeSymbol: ["circle", "arrow"],
+// symbol: "circle",
+// lineStyle: {
+// width: 2,
+// color: '#66FBF9',
+// },
+// legendHoverLink: true,
+// label: {
+// backgroundColor: '#07556F',
+// color: '#FFFFFF',
+// padding: 20,
+// borderRadius: 10,
+// borderWidth: 1,
+// borderColor: '#66FBF9',
+// fontSize: 18,
+// position: 'left',
+// verticalAlign: 'middle',
+// align: 'right',
+// rich: {
+// img1: {
+// backgroundColor: {
+// image: img1
+// }
+// },
+// img2: {
+// backgroundColor: {
+// image: img2
+// }
+// },
+// img3: {
+// backgroundColor: {
+// image: img3
+// }
+// },
+// height: 40,
+// percent: {
+// width: 20,
+// }
+// },
+// formatter: function (data3) {
+// var res = "";
+// console.log(data3)
+// if (data3.value >= 3000) {
+// res += data3.name + ' {img1|}';
+// }
+// if (data3.value >= 1000 && data3.value < 3000) {
+// res += data3.name + ' {img2|}';
+// }
+// if (data3.value < 1000) {
+// res += data3.name + ' {img3|}';
+// }
+// return res
+// }
+// },
+// leaves: {
+// label: {
+// position: 'right',
+// verticalAlign: 'middle',
+// align: 'left'
+// }
+// },
+// emphasis: {
+// focus: 'descendant'
+// },
+// expandAndCollapse: true,
+// animationDuration: 550,
+// animationDurationUpdate: 750
+// }
+// ]
+// };
+
+//option && myChart.setOption(option);
\ No newline at end of file
diff --git a/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/js/domainprocessNeed/growthCharts.js.bak b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/js/domainprocessNeed/growthCharts.js.bak
new file mode 100644
index 00000000..713f988b
--- /dev/null
+++ b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/js/domainprocessNeed/growthCharts.js.bak
@@ -0,0 +1,309 @@
+var growthCharts = echarts.init(document.getElementById('growthCharts'));
+var growthChartsinto = function () {
+ var xdata=[
+ '1月',
+ '2月',
+ '3月',
+ '4月',
+ '5月',
+ '6月',
+ '7月',
+ '8月',
+ '9月',
+ '10月',
+ '11月',
+ '12月'
+ ];
+ var ydata=[
+ {value:'64'},
+ {value:'84'},
+ {value:'53'},
+ {value:'28'},
+ {value:'64'},
+ {value:'84'},
+ {value:'53'},
+ {value:'28'},
+ {value:'64'},
+ {value:'84'},
+ {value:'53'},
+ {value:'28'},
+ {value:'53'},
+ {value:'28'}
+ ]
+ var option = {
+ grid: {
+ left: '5px',
+ right: '0%',
+ bottom: '0',
+ top:'20%',
+ containLabel: true,
+ },
+ tooltip: {
+ show: "true",
+ trigger: 'axis',
+ axisPointer: { // 坐标轴指示器,坐标轴触发有效
+ type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
+ },
+ formatter:'{b0}:{c0}'+'%'
+ },
+ yAxis: {
+ type : 'value',
+ name : '',
+ nameTextStyle:{//y轴上方单位的颜色
+ color:'#ffffff',
+ fontSize: '20'
+
+ },
+ nameGap: 20, // y轴name与横纵坐标轴线的间距
+ show:true,
+ max: 100,
+ splitLine: {show: true,
+ lineStyle:{
+ type:'solid',
+ color:'rgba(102, 102, 102, 1)'
+ }
+ },
+ axisTick: {show: false},
+ axisLine: {
+ show: false,
+ lineStyle: {
+ color: "#38B9BB",
+ width: 1,
+ type: "solid"
+ }
+ },
+ axisLabel: {
+ textStyle: {
+ color: '#ffffff',
+ fontSize:20
+ },
+ formatter:function(value,index){
+ return value+'%';
+ }
+ },
+ },
+ xAxis: [
+ {
+ type: 'category',
+ axisTick: {
+ show: false
+ },
+ boundaryGap: ['20%', '20%',],//坐标轴两边留白
+ axisLine: {
+ show: true,
+ lineStyle: {
+ type:"solid",
+ color:"#38B9BB"
+ },
+ symbol: ['none'],
+ symbolSize: [13, 20],
+ symbolOffset: [0, 40],
+ },
+ axisLabel:{
+ textStyle:{
+ color:'#ffffff',
+ fontSize:'16'
+ },
+ interval:0
+ },
+ data: xdata
+ }
+ ],
+ series: [
+ {
+ name: '',
+ type: 'bar',
+ barWidth:'25px',
+ itemStyle: {
+ normal: {
+ show: true,
+ color: function (params) {//超过预警值显示红色
+ if (params.data.value > 60) {
+ return '#2685CD';
+ } else {
+ return '#F9D905';
+ }
+ },
+ barBorderRadius: 50,
+ borderWidth: 0,
+ borderColor: '#2685CD',
+ }
+ },
+ label: {
+ normal: {
+ show: true,
+ position: 'top',
+ textStyle: {
+ color: '#ffffff'
+ },
+ formatter:function(value,index){
+ if (value.data.value > 60) {
+ return ''
+ } else {
+ return value.data.value+'%';
+ }
+
+ }
+ }
+ },
+ data:ydata,
+ markLine : {
+ symbol:['none','none'],
+ data : [
+ {
+ yAxis :60,
+ lineStyle:{
+ normal:{
+ type:'solid',
+ color:'#F9D905'
+ }
+ }
+ },
+ {
+ yAxis :80,
+ lineStyle:{
+ normal:{
+ type:'solid',
+ color:'#00E6AC'
+ }
+ }
+ }
+ ]
+ }
+ },
+
+ ]
+ };
+ growthCharts.clear();
+ growthCharts.setOption(option);
+};
+growthCharts.on("click",function(e){
+ growthChartsinto();
+});
+
+
+var chartDom = document.getElementById('organizational');
+var myChart = echarts.init(chartDom);
+var option;
+var img = '../apps/com.awspaas.user.apps.yili.integration/img/jian1.png'
+var img1 = '../apps/com.awspaas.user.apps.yili.integration/img/qiu1.png';
+var img2 = '../apps/com.awspaas.user.apps.yili.integration/img/qiu2.png';
+var img3 = '../apps/com.awspaas.user.apps.yili.integration/img/qiu3.png';
+const data = {
+ name: '上游指标1',
+ value:3500,
+ children: [
+ {
+ name: '人均营收增长率',
+ value:3200,
+ children: [
+ {
+ name: '分解指标1',
+ value:1000,
+ children: [
+ { name: '分解指标1.1', value: 1000 },
+ { name: '分解指标1.2', value: 2000 },
+ { name: '分解指标1.3', value: 287 },
+ ]
+ },
+ {
+ name: '分解指标2',
+ value: 300
+ }
+ ]
+ }
+ ]
+};
+option = {
+ tooltip: {
+ trigger: 'item',
+ triggerOn: 'mousemove'
+ },
+ series: [
+ {
+ type: 'tree',
+ id: 0,
+ name: 'tree1',
+ data: [data],
+ top: '5%',
+ left: '20%',
+ bottom: '5%',
+ right: '30%',
+ symbolSize: 12,
+ focusNodeAdjacency: true,
+ edgeShape: 'polyline',
+ edgeForkPosition: '63%',
+ initialTreeDepth: 10,
+ roam: true,
+ edgeSymbol: ["circle", "arrow"],
+ symbol: "circle",
+ lineStyle: {
+ width: 2,
+ color:'#66FBF9',
+ },
+ legendHoverLink:true,
+ label: {
+ backgroundColor: '#07556F',
+ color:'#FFFFFF',
+ padding:20,
+ borderRadius:10,
+ borderWidth:1,
+ borderColor:'#66FBF9',
+ fontSize:18,
+ position: 'left',
+ verticalAlign: 'middle',
+ align: 'right',
+ rich:{
+ img1:{
+ backgroundColor: {
+ image:img1
+ }
+ },
+ img2:{
+ backgroundColor: {
+ image:img2
+ }
+ },
+ img3:{
+ backgroundColor: {
+ image:img3
+ }
+ },
+ height:40,
+ percent:{
+ width:20,
+ }
+ },
+ formatter:function (params){
+ var res="";
+ console.log(params)
+ if( params.value >= 3000 ){
+ res+= params.name+' {img1|}';
+ }
+ if(params.value >= 1000 && params.value < 3000){
+ res+= params.name+' {img2|}';
+ }
+ if(params.value < 1000){
+ res+= params.name+' {img3|}';
+ }
+ return res
+ }
+ },
+ leaves: {
+ label: {
+ position: 'right',
+ verticalAlign: 'middle',
+ align: 'left'
+ }
+ },
+ emphasis: {
+ focus: 'descendant'
+ },
+ expandAndCollapse: true,
+ animationDuration: 550,
+ animationDurationUpdate: 750
+ }
+ ]
+};
+
+option && myChart.setOption(option);
diff --git a/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/js/domainprocessNeed/growthCharts.js_1222 b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/js/domainprocessNeed/growthCharts.js_1222
new file mode 100644
index 00000000..8f466daa
--- /dev/null
+++ b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/js/domainprocessNeed/growthCharts.js_1222
@@ -0,0 +1,501 @@
+var growthCharts = echarts.init(document.getElementById('growthCharts'));
+var growthChartsinto = function () {
+ var xdata=[
+ '1月',
+ '2月',
+ '3月',
+ '4月',
+ '5月',
+ '6月',
+ '7月',
+ '8月',
+ '9月',
+ '10月',
+ '11月',
+ '12月'
+ ];
+ var ydata=[
+ {value:'64'},
+ {value:'84'},
+ {value:'53'},
+ {value:'28'},
+ {value:'64'},
+ {value:'84'},
+ {value:'53'},
+ {value:'28'},
+ {value:'64'},
+ {value:'84'},
+ {value:'53'},
+ {value:'28'},
+ {value:'53'},
+ {value:'28'}
+ ]
+ var option = {
+ grid: {
+ left: '5px',
+ right: '0%',
+ bottom: '0',
+ top:'20%',
+ containLabel: true,
+ },
+ tooltip: {
+ show: "true",
+ trigger: 'axis',
+ axisPointer: { // 坐标轴指示器,坐标轴触发有效
+ type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
+ },
+ formatter:'{b0}:{c0}'+'%'
+ },
+ yAxis: {
+ type : 'value',
+ name : '',
+ nameTextStyle:{//y轴上方单位的颜色
+ color:'#ffffff',
+ fontSize: '20'
+
+ },
+ nameGap: 20, // y轴name与横纵坐标轴线的间距
+ show:true,
+ max: 100,
+ splitLine: {show: true,
+ lineStyle:{
+ type:'solid',
+ color:'rgba(102, 102, 102, 1)'
+ }
+ },
+ axisTick: {show: false},
+ axisLine: {
+ show: false,
+ lineStyle: {
+ color: "#38B9BB",
+ width: 1,
+ type: "solid"
+ }
+ },
+ axisLabel: {
+ textStyle: {
+ color: '#ffffff',
+ fontSize:20
+ },
+ formatter:function(value,index){
+ return value+'%';
+ }
+ },
+ },
+ xAxis: [
+ {
+ type: 'category',
+ axisTick: {
+ show: false
+ },
+ boundaryGap: ['20%', '20%',],//坐标轴两边留白
+ axisLine: {
+ show: true,
+ lineStyle: {
+ type:"solid",
+ color:"#38B9BB"
+ },
+ symbol: ['none'],
+ symbolSize: [13, 20],
+ symbolOffset: [0, 40],
+ },
+ axisLabel:{
+ textStyle:{
+ color:'#ffffff',
+ fontSize:'16'
+ },
+ interval:0
+ },
+ data: xdata
+ }
+ ],
+ series: [
+ {
+ name: '',
+ type: 'bar',
+ barWidth:'25px',
+ itemStyle: {
+ normal: {
+ show: true,
+ color: function (params) {//超过预警值显示红色
+ if (params.data.value > 60) {
+ return '#2685CD';
+ } else {
+ return '#F9D905';
+ }
+ },
+ barBorderRadius: 50,
+ borderWidth: 0,
+ borderColor: '#2685CD',
+ }
+ },
+ label: {
+ normal: {
+ show: true,
+ position: 'top',
+ textStyle: {
+ color: '#ffffff'
+ },
+ formatter:function(value,index){
+ if (value.data.value > 60) {
+ return ''
+ } else {
+ return value.data.value+'%';
+ }
+
+ }
+ }
+ },
+ data:ydata,
+ markLine : {
+ symbol:['none','none'],
+ data : [
+ {
+ yAxis :60,
+ lineStyle:{
+ normal:{
+ type:'solid',
+ color:'#F9D905'
+ }
+ }
+ },
+ {
+ yAxis :80,
+ lineStyle:{
+ normal:{
+ type:'solid',
+ color:'#00E6AC'
+ }
+ }
+ }
+ ]
+ }
+ },
+
+ ]
+ };
+ growthCharts.clear();
+ growthCharts.setOption(option);
+};
+growthCharts.on("click",function(e){
+ growthChartsinto();
+});
+
+
+var chartDom = document.getElementById('organizational');
+var myChart = echarts.init(chartDom);
+var option;
+var img = '../apps/com.awspaas.user.apps.yili.integration/img/jian1.png'
+var img1 = '../apps/com.awspaas.user.apps.yili.integration/img/qiu1.png';
+var img2 = '../apps/com.awspaas.user.apps.yili.integration/img/qiu2.png';
+var img3 = '../apps/com.awspaas.user.apps.yili.integration/img/qiu3.png';
+/**
+const data = {
+ name: '上游指标1',
+ value:3500,
+ children: [
+ {
+ name: '人均营收增长率',
+ value:3200,
+ children: [
+ {
+ name: '分解指标1',
+ value:1000,
+ children: [
+ { name: '分解指标1.1', value: 1000 },
+ { name: '分解指标1.2', value: 2000 },
+ { name: '分解指标1.3', value: 287 },
+ ]
+ },
+ {
+ name: '分解指标2',
+ value: 300
+ }
+ ]
+ }
+ ]
+};*/
+/**option = {
+ tooltip: {
+ trigger: 'item',
+ triggerOn: 'mousemove'
+ },
+ series: [
+ {
+ type: 'tree',
+ id: 0,
+ name: 'tree1',
+ data: [data],
+ top: '5%',
+ left: '20%',
+ bottom: '5%',
+ right: '30%',
+ symbolSize: 12,
+ focusNodeAdjacency: true,
+ edgeShape: 'polyline',
+ edgeForkPosition: '63%',
+ initialTreeDepth: 10,
+ roam: true,
+ edgeSymbol: ["circle", "arrow"],
+ symbol: "circle",
+ lineStyle: {
+ width: 2,
+ color:'#66FBF9',
+ },
+ legendHoverLink:true,
+ label: {
+ backgroundColor: '#07556F',
+ color:'#FFFFFF',
+ padding:20,
+ borderRadius:10,
+ borderWidth:1,
+ borderColor:'#66FBF9',
+ fontSize:18,
+ position: 'left',
+ verticalAlign: 'middle',
+ align: 'right',
+ rich:{
+ img1:{
+ backgroundColor: {
+ image:img1
+ }
+ },
+ img2:{
+ backgroundColor: {
+ image:img2
+ }
+ },
+ img3:{
+ backgroundColor: {
+ image:img3
+ }
+ },
+ height:40,
+ percent:{
+ width:20,
+ }
+ },
+ formatter:function (params){
+ var res="";
+ console.log(params)
+ if( params.value >= 3000 ){
+ res+= params.name+' {img1|}';
+ }
+ if(params.value >= 1000 && params.value < 3000){
+ res+= params.name+' {img2|}';
+ }
+ if(params.value < 1000){
+ res+= params.name+' {img3|}';
+ }
+ return res
+ }
+ },
+ leaves: {
+ label: {
+ position: 'right',
+ verticalAlign: 'middle',
+ align: 'left'
+ }
+ },
+ emphasis: {
+ focus: 'descendant'
+ },
+ expandAndCollapse: true,
+ animationDuration: 550,
+ animationDurationUpdate: 750
+ }
+ ]
+};
+
+option && myChart.setOption(option);
+*/
+
+var dataType = "";
+var data2 = [];
+
+//截取参数
+function GetQueryString(name)
+{
+ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
+ var r = window.location.search.substr(1).match(reg);
+ if(r!=null)return unescape(r[2]); return null;
+}
+
+//获取domainprocess.html页面的树形图
+function getData2() {
+ var url = window.location.href;
+ console.log(url);
+ var sid = GetQueryString("sid");
+ debugger;
+ //获取id标签
+ var ulItem = document.getElementById("navtab");
+ //设置点击事件
+ ulItem.onclick = function (e) {
+ e = e || window.event;//这一行及下一行是为兼容IE8及以下版本
+ var target = e.target || e.srcElement;
+ var dataType = "";
+ //获取li标签的点击事件
+ if (target.tagName.toLowerCase() === "li") {
+ // console.log(target.innerHTML);
+ dataType = target.innerHTML;
+ debugger;
+ dataType = dataType.replaceAll("","").replaceAll("●","");
+ console.log(dataType);
+ }
+ //后端获取json数组的ajax
+ $.ajax({
+ url: "https://bpm.yili.com:8088/portal/r/jd?sid=" + sid + "&cmd=com.aspaas.user.apps.est.controller.getView3",
+ data: {sid: sid, dataType: dataType},
+ type: "post",
+ async: true,
+ dataType: "json",
+ success: function (result) {
+ debugger;
+ console.log(result);
+ data2 = result;
+ //获取table表单点击中的结果数据
+ getTableData();
+ },
+ error: function () {
+ console.log("系统错误,请联系管理员");
+ }
+ });
+
+ }
+}
+
+function getTableData() {
+ //获取id表单
+ var chartDom = document.getElementById('organizational');
+ var myChart = echarts.init(chartDom);
+ var ulItem = document.getElementById("newtable");
+ //设置点击事件,获取table表单中的td标签的数据
+ ulItem.onclick = function (e) {
+ e = e || window.event;//这一行及下一行是为兼容IE8及以下版本
+ var target = e.target || e.srcElement;
+ var dataType = "";
+ if (target.tagName.toLowerCase() === "td") {
+ // console.log(target.innerHTML);
+ dataType = target.innerHTML;
+ }
+ dataType = dataType.replaceAll("●","");
+ console.log("当前选中的td表单", dataType);
+ //存储选中的对象
+ var dataobj = {};
+ for (var i = 0; i < data2.length; i++) {
+ for (var data2Key in data2[i]) {
+ if (data2Key == "name") {
+ console.log(data2[i].name);
+ if (dataType == data2[i].name) {
+ console.log("当前对比的name",data2[i].name);
+ dataobj = data2[i];
+ }
+ }
+ }
+ }
+ console.log("获取到的对象", dataobj);
+ // return dataobj;
+ //筛选数据,获取视图,将数据传给echarts中
+ view(dataobj);
+ }
+}
+
+function view(dataobj) {
+ //基于准备好的DOM,初始化echarts实例
+ var chartDom = document.getElementById('organizational');
+ var myChart = echarts.init(chartDom);
+ //指定图表的配置项和数据
+ myChart.clear();
+ option = {
+ tooltip: {
+ trigger: 'item',
+ triggerOn: 'mousemove'
+ },
+ series: [
+ {
+ type: 'tree',
+ id: 0,
+ name: 'tree1',
+ data: [dataobj],
+ top: '5%',
+ left: '20%',
+ bottom: '5%',
+ right: '30%',
+ symbolSize: 12,
+ focusNodeAdjacency: true,
+ edgeShape: 'polyline',
+ edgeForkPosition: '63%',
+ initialTreeDepth: 10,
+ roam: true,
+ edgeSymbol: ["circle", "arrow"],
+ symbol: "circle",
+ lineStyle: {
+ width: 2,
+ color: '#66FBF9',
+ },
+ legendHoverLink: true,
+ label: {
+ backgroundColor: '#07556F',
+ color: '#FFFFFF',
+ padding: 10,
+ borderRadius: 10,
+ borderWidth: 1,
+ borderColor: '#66FBF9',
+ fontSize: 15,
+ position: 'left',
+ verticalAlign: 'middle',
+ align: 'right',
+ rich: {
+ img1: {
+ backgroundColor: {
+ image: img1
+ }
+ },
+ img2: {
+ backgroundColor: {
+ image: img2
+ }
+ },
+ img3: {
+ backgroundColor: {
+ image: img3
+ }
+ },
+ height: 40,
+ percent: {
+ width: 20,
+ }
+ },
+ formatter: function (dataobj) {
+ var res = "";
+ console.log(dataobj)
+ if (dataobj.value >= 3000) {
+ res += dataobj.name + ' {img1|}';
+ }
+ if (dataobj.value >= 1000 && dataobj.value < 3000) {
+ res += dataobj.name + ' {img2|}';
+ }
+ if (dataobj.value < 1000) {
+ res += dataobj.name + ' {img3|}';
+ }
+ return res
+ }
+ },
+ leaves: {
+ label: {
+ position: 'right',
+ verticalAlign: 'middle',
+ align: 'left'
+ }
+ },
+ emphasis: {
+ focus: 'descendant'
+ },
+ expandAndCollapse: true,
+ animationDuration: 550,
+ animationDurationUpdate: 750
+ }
+ ]
+ };
+ option && myChart.setOption(option);
+}
\ No newline at end of file
diff --git a/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/js/domainprocessNeed/test.js b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/js/domainprocessNeed/test.js
new file mode 100644
index 00000000..ceaecfbd
--- /dev/null
+++ b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/js/domainprocessNeed/test.js
@@ -0,0 +1,44 @@
+
+
+
+
+if(i==1){
+ var data2= data[i]
+ var l3 = data[2].levels_3[0].child;
+ var len = 0;
+ for(var l3i=0;l3i'+data3.levels_name+' '+
+ ' '+
+ ''+
+ levels_4+
+ '
'+levels_2_tdson+' '
+ }else{
+ for(var z=0;z'+
+ ' '
+ }
+ levels_2_1=''+
+ '
'+
+ ''+ levels_2_tdson2+
+ ' '+
+ ''+levels_2_tdson1+' '
+ }
+ }
+ trtwo=''+
+ ' '
+}
\ No newline at end of file
diff --git a/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/js/echarts.min.js b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/js/echarts.min.js
new file mode 100644
index 00000000..1e669375
--- /dev/null
+++ b/com.awspaas.user.apps.yili.integration/web/com.awspaas.user.apps.yili.integration/js/echarts.min.js
@@ -0,0 +1,44 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied. See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
+
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).echarts={})}(this,(function(t){"use strict";
+ /*! *****************************************************************************
+ Copyright (c) Microsoft Corporation.
+
+ Permission to use, copy, modify, and/or distribute this software for any
+ purpose with or without fee is hereby granted.
+
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+ ***************************************************************************** */var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(t,n)};function n(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}var i=function(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1},r=new function(){this.browser=new i,this.node=!1,this.wxa=!1,this.worker=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1,this.transformSupported=!1,this.transform3dSupported=!1,this.hasGlobalWindow="undefined"!=typeof window};"object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?(r.wxa=!0,r.touchEventsSupported=!0):"undefined"==typeof document&&"undefined"!=typeof self?r.worker=!0:"undefined"==typeof navigator?(r.node=!0,r.svgSupported=!0):function(t,e){var n=e.browser,i=t.match(/Firefox\/([\d.]+)/),r=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),o=t.match(/Edge?\/([\d.]+)/),a=/micromessenger/i.test(t);i&&(n.firefox=!0,n.version=i[1]);r&&(n.ie=!0,n.version=r[1]);o&&(n.edge=!0,n.version=o[1],n.newEdge=+o[1].split(".")[0]>18);a&&(n.weChat=!0);e.svgSupported="undefined"!=typeof SVGRect,e.touchEventsSupported="ontouchstart"in window&&!n.ie&&!n.edge,e.pointerEventsSupported="onpointerdown"in window&&(n.edge||n.ie&&+n.version>=11),e.domSupported="undefined"!=typeof document;var s=document.documentElement.style;e.transform3dSupported=(n.ie&&"transition"in s||n.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),e.transformSupported=e.transform3dSupported||n.ie&&+n.version>=9}(navigator.userAgent,r);var o="sans-serif",a="12px sans-serif";var s,l,u=function(t){var e={};if("undefined"==typeof JSON)return e;for(var n=0;n'+data2.levels_name+' '+
+ ' '+
+ ''+
+ levels_2+levels_2_1+
+ '
0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}else{for(s=r+1;ls&&(l=s);var u=a;a=r-l,l=r-u}for(a++;as&&(l=s);var u=a;a=r-l,l=r-u}else{for(s=i-r;l=0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}for(a++;a=0;l--)t[d+l]=t[p+l];return void(t[c]=a[h])}var f=r;for(;;){var g=0,y=0,v=!1;do{if(e(a[h],t[u])<0){if(t[c--]=t[u--],g++,y=0,0==--i){v=!0;break}}else if(t[c--]=a[h--],y++,g=0,1==--s){v=!0;break}}while((g|y)1;){var t=o-2;if(t>=1&&i[t-1]<=i[t]+i[t+1]||t>=2&&i[t-2]<=i[t]+i[t-1])i[t-1]i[t+1])break;s(t)}},forceMergeRuns:function(){for(;o>1;){var t=o-2;t>0&&i[t-1]=32;)e|=1&t,t>>=1;return t+e}(r);do{if((o=_e(t,n,i,e))s&&(l=s),be(t,n,n+l,n+o,e),o=l}a.pushRun(n,o),a.mergeRuns(),r-=o,n+=o}while(0!==r);a.forceMergeRuns()}}}var Te=!1;function Ce(){Te||(Te=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function De(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}var Ae=function(){function t(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=De}return t.prototype.traverse=function(t,e){for(var n=0;n