From 32aae89b4d55aa7e5a7f029bf7b25c68cee10ce6 Mon Sep 17 00:00:00 2001 From: OpenIhu Date: Fri, 20 May 2022 17:56:51 +0800 Subject: [PATCH 001/109] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=99=BA=E7=AE=97=E7=BD=91=E7=BB=9C=E6=98=BE=E7=A4=BA=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- custom/public/css/git.openi.css | 60 +- custom/public/rotation3D/img/baseLogo.png | Bin 0 -> 87956 bytes custom/public/rotation3D/img/baseLogo.svg | 1256 ++++++++++++++++++++++++++ custom/public/rotation3D/img/baseMap.png | Bin 0 -> 57685 bytes custom/public/rotation3D/img/brain.svg | 1 + custom/public/rotation3D/img/idc-green.png | Bin 0 -> 16862 bytes custom/public/rotation3D/img/idc-red.png | Bin 0 -> 16716 bytes custom/public/rotation3D/img/idc-yellow.png | Bin 0 -> 17232 bytes custom/public/rotation3D/jquery-3.5.0.min.js | 2 + custom/public/rotation3D/rotation3D.css | 108 +++ custom/public/rotation3D/rotation3D.js | 379 ++++++++ custom/public/rotation3D/vue-2.6.10.min.js | 6 + templates/base/footer.tmpl | 42 +- templates/base/head_home.tmpl | 2 + templates/home.tmpl | 56 +- 15 files changed, 1903 insertions(+), 9 deletions(-) create mode 100644 custom/public/rotation3D/img/baseLogo.png create mode 100644 custom/public/rotation3D/img/baseLogo.svg create mode 100644 custom/public/rotation3D/img/baseMap.png create mode 100644 custom/public/rotation3D/img/brain.svg create mode 100644 custom/public/rotation3D/img/idc-green.png create mode 100644 custom/public/rotation3D/img/idc-red.png create mode 100644 custom/public/rotation3D/img/idc-yellow.png create mode 100644 custom/public/rotation3D/jquery-3.5.0.min.js create mode 100644 custom/public/rotation3D/rotation3D.css create mode 100644 custom/public/rotation3D/rotation3D.js create mode 100644 custom/public/rotation3D/vue-2.6.10.min.js diff --git a/custom/public/css/git.openi.css b/custom/public/css/git.openi.css index a4920eec0..10f68d625 100644 --- a/custom/public/css/git.openi.css +++ b/custom/public/css/git.openi.css @@ -144,7 +144,8 @@ #homenews{ position: relative; z-index: 9; - bottom: -6em; + bottom: -9em; + width: 540px; } #homenews > p{ color: #BBBBBB; @@ -154,7 +155,7 @@ border-radius: 2em; background-color: rgba(16, 16, 16, .9); position: relative; - padding-left: 2.3em !important; + padding-left: 1.5em !important; } .homeorg, .homepro, .homemodel, .i-env{ position: relative; @@ -163,7 +164,7 @@ .homenews::before{ content: ''; position: absolute; - left: 3em; + left: 2em; top: 0; bottom: 0; background-color: rgba(105, 192, 255, .4); @@ -185,7 +186,7 @@ padding: 0; } .newslist{ - height: 325px; + height: 285px; overflow: hidden; } @@ -376,4 +377,55 @@ @media only screen and (min-width: 1920px) { +} + +/* rotation3D */ +#app{ + position: absolute; + right: 0px; + width: 800px; + top: 30px; + z-index: 6; +} +.aiData{ + position: absolute; + padding: 10px; + right: 10px; + background-color: rgba(255, 255, 255, .4); + border: 1px solid #FFF; + text-align: right; + font-size: 0.9rem; +} +.aiData strong{ + font-size: 1.1rem; +} +.rotation3D-baseMap{ + position: absolute; left: 0; right: 0; top: 160px; margin: auto; + width: 800px; height: 516px; + background: url("../rotation3D/img/baseMap.png") no-repeat; + background-size: cover; +} +.rotation3D-baseMap::before{ + position: absolute; + margin: auto; z-index: 99; + left:50%; top: -150px; + transform:translate(-50%,0); + width: 342px; height: 470px; display: block; content: ''; + background: url("../rotation3D/img/baseLogo.svg"); + /*animation: 10s bounceUpDown infinite;*/ +} +.rotation3D-baseMap::after{ + position: absolute; + margin: auto; z-index: 100; + left:50%; top:0; + transform:translate(-50%,0); + width: 110px; height: 86px; display: block; content: ''; + background: url("../rotation3D/img/brain.svg"); + animation: 6s bounceUpDown infinite; + mix-blend-mode: color-dodge; +} +@keyframes bounceUpDown{ + 0% {transform: translate(-50%, 0px);} + 50% {transform: translate(-50%, -15px);} + 100% {transform: translate(-50%, 0px);} } \ No newline at end of file diff --git a/custom/public/rotation3D/img/baseLogo.png b/custom/public/rotation3D/img/baseLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..b69a3b5fabdc84d68bedd096a1d344521b026f32 GIT binary patch literal 87956 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%0A)?86BEx&L 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 literal 0 KcmV+b0RR6000031 diff --git a/custom/public/rotation3D/img/baseLogo.svg b/custom/public/rotation3D/img/baseLogo.svg new file mode 100644 index 000000000..8e2df5961 --- /dev/null +++ b/custom/public/rotation3D/img/baseLogo.svg @@ -0,0 +1,1256 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/custom/public/rotation3D/img/baseMap.png b/custom/public/rotation3D/img/baseMap.png new file mode 100644 index 0000000000000000000000000000000000000000..1eddefc2a30363d3f5be5f5075467fa9feeb4acd GIT binary patch literal 57685 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
U<;Gw_KCah|z8;#|@CaWboYUyVNt{Cmp% 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 literal 0 KcmV+b0RR6000031 diff --git a/custom/public/rotation3D/img/brain.svg b/custom/public/rotation3D/img/brain.svg new file mode 100644 index 000000000..253dd6595 --- /dev/null +++ b/custom/public/rotation3D/img/brain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/custom/public/rotation3D/img/idc-green.png b/custom/public/rotation3D/img/idc-green.png new file mode 100644 index 0000000000000000000000000000000000000000..2a8a12a787d2a290f549ce75d9b9d695135c0b08 GIT binary patch literal 16862 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⪚}0^;lcGY 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]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 span{ + position: absolute; + font-size: 12px; + color: #000; + transform: rotate(180deg)scale(0.80); +} + +/*颜色*/ +.rotation3D__line.blue { color: #07b2f9; } +.rotation3D__line.green { color: #b4b3ca; } +.rotation3D__line.yellow { color: #ffd500; } + +.rotation3D__line.blue svg path { stroke: #07b2f9; } +.rotation3D__line.green svg path { stroke: #b4b3ca; } +.rotation3D__line.yellow svg path { stroke: #ffd500; } \ No newline at end of file diff --git a/custom/public/rotation3D/rotation3D.js b/custom/public/rotation3D/rotation3D.js new file mode 100644 index 000000000..da37ee43b --- /dev/null +++ b/custom/public/rotation3D/rotation3D.js @@ -0,0 +1,379 @@ +var cancelFrame = window.cancelAnimationFrame || window.cancelRequestAnimationFrame; +var requestFrame = window.requestAnimationFrame; +var time = !window.performance || !window.performance.now ? + function () {return +new Date()}: + function () {return performance.now()}; + +/** + * 计算两点距离 + * @param points + * @returns {number} + * distance([{x:0,y:0},{x:1,y:1}]); + */ +var distance = function(points) { + var p1=points[0]; + var p2=points[1]; + var a = p2.x-p1.x; + var b = p2.y-p1.y; + return Math.sqrt(a*a+b*b); +}; + +/** + * 圆公式 + * @param rotation 弧度 + * 计算公式: + * Math.PI; //圆周率 + * Math.sin(); //正弦 x -左 +右 + * Math.cos; //余弦 y -下 +上 + */ +var circleMath = { + /** + * 根据弧度计算角度 + * @param rotation 弧度 + * rotation, farScale, xs, xr, ys, yr, itemWidth + */ + // parseRotate: function (rotation) { + // return (180 / Math.PI * rotation) - 180; + // }, + parseRotate: function (rotation, self) { + var sin = Math.sin(rotation), cos = Math.cos(rotation); + var sin_cos = sin*cos; //得出偏移正负值,从0°向左依次 +-+- + var angle = (180 / Math.PI * rotation) - 180; + var lastAngle = angle; + + // console.log('rotation',rotation) + // console.log('sin',sin) + // console.log('cos',cos) + // console.log('sin*cos',sin*cos); + // console.log('统一偏移角度',self.yr * (sin_cos/Math.PI)) + + lastAngle = angle + (self.yr * (sin_cos/(Math.PI+1))); + + return lastAngle; + }, + /** + * 计算scale,x,y + * scale 最小尺寸 + ((1 - 最小尺寸) * (sin正弦 + 1) * 0.5) + * x x起点 + (尺寸 * cos余弦 * x半径) - 元素宽度一半 + * y y起点 + (尺寸 * sin正弦 * x半径) - 元素宽度一半 + * farScale, xs, xr, ys, yr, itemWidth + */ + parseSXY: function (rotation, self) { + var farScale=self.farScale; + var itemWidth=self.itemWidth; + var xs=self.xs; var xr=self.xr; var ys=self.ys; var yr=self.yr; + var sin = Math.sin(rotation), cos = Math.cos(rotation); + var scale = farScale + ((1 - farScale) * (sin + 1) * 0.5); //单个尺寸 + + // 按设置尺寸 + // var x = xs + (scale * cos * xr) - (itemWidth * 0.5); + // var y = ys + (scale * sin * yr) - (itemWidth * 0.5); + // 不使用压缩 + // var x = xs + (cos * xs) - (itemWidth * 0.5); + // var y = ys + (sin * ys) - (itemWidth * 0.5); + // 使用压缩 + var x = xs + (cos * xr) - (itemWidth * 0.5); + var y = ys + (sin * yr) - (itemWidth * 0.5); + var distanceNumber = distance([ + {x:self.$rotation.width()/2 - self.$item.width()/2, y:self.$rotation.height()/2 - self.$item.height()/2}, + {x:x,y:y}] + ); + + // console.log({x:self.$rotation.width()/2, y:self.$rotation.height()/2}) + // console.log('x,y',x,y) + // console.log('两点距离',distanceNumber) + + return { + x: x, + y: y, + scale: scale, + distanceNumber: distanceNumber, + } + }, +} +/** + * 3D旋转 + * @param id + */ +var Rotation3D = window.Rotation3D = function (_opts) { + var self=this; + this.$rotation = $(_opts.id) + this.$lineList = this.$rotation.find('.lineList') + this.$item = this.$rotation.find('.rotation3D__item') + this.$line = this.$rotation.find('.rotation3D__line') + this.itemWidth = this.$item.width(); + this.itemHeight = this.$item.height(); + this.length = this.$item.length; + // 圆计算 + this.rotation = Math.PI / 2; //圆周率/2 + this.destRotation = this.rotation; + + var xr = this.$rotation.width() * 0.5; + var yr = this.$rotation.height() * 0.5; + var xRadius = _opts.xRadius || 0; + var yRadius = _opts.yRadius || 0; + + var opts = Object.assign({ + farScale: 1, // 最小尺寸 + xs: xr, // x起点 + ys: yr, // y起点 + xr: xr - xRadius, // x半径-压缩 + yr: yr - yRadius, // y半径-压缩 + // 播放 + autoPlay:false, + autoPlayDelay:3000, + currenIndex:-1, + fps:30, + speed:4, + },_opts) + Object.assign(this, opts) + + // 遍历子元素 + this.$item.each(function (index) { + $(this).click(function () { + $(this).addClass('active').siblings().removeClass('active') + self.goTo(index) + }) + }) + // 当前控件进入离开 + this.$rotation.mouseenter(function () { + clearInterval(self.autoPlayTimer) + }) + this.$rotation.mouseleave(function () { + self.onAutoPlay() + }) + + this.onAutoPlay() + this.onDrag() + this.render() + +} +/** + * item样式 + * x x起点 + (尺寸 * 余弦 * x压缩) - 元素宽度一半 + * y y起点 + (尺寸 * 正弦 * y压缩) - 元素宽度一半 + */ +Rotation3D.prototype.itemStyle = function($item, index, rotation) { + // console.log(rotation) + var parseSXY = circleMath.parseSXY(rotation, this); + var scale = parseSXY.scale; + var x = parseSXY.x; + var y = parseSXY.y; + var $line = this.$lineList.find('.rotation3D__line').eq(index); + + //设置当前子菜单的位置(left,top) = (x,y) + $item.find('.scale').css({ + 'transform': `scale(${scale})`, + // 'top': `${this.itemWidth * (1-scale) }`, + }) + $item.css({ + position: 'absolute', + display: 'inline-block', + // opacity: scale, + 'z-index': parseInt(scale * 100), + 'transform-origin': '0px 0px', + // 'transform': `translate(${x}px, ${y}px) scale(${scale})`, + 'transform': `translate(${x}px, ${y}px)`, + }); + + /** + * 线样式 + */ + $line.css({ + height:parseSXY.distanceNumber, + }) + $line.find('svg').css({ + height:parseSXY.distanceNumber, + }) + $line.find('.dot1').css({ + 'offset-path':`path("M0 ${parseSXY.distanceNumber}, 0 0")`, + }) + $line.find('#path1').attr({ + 'd':`M0 ${parseSXY.distanceNumber}, 0 0`, + }) + + $line.find('.dot2').css({ + 'offset-path':`path("M0 ${parseSXY.distanceNumber/2}, 0 0")`, + }) + $line.find('#path2').attr({ + 'd':`M0 ${parseSXY.distanceNumber}, 0 0`, + }) + + $line.find('.dot3').css({ + 'offset-path':`path("M20 ${parseSXY.distanceNumber} S 0 ${parseSXY.distanceNumber/2}, 20 0")`, + }) + $line.find('#path3').attr({ + 'd':`M20 ${parseSXY.distanceNumber} S 0 ${parseSXY.distanceNumber/2}, 20 0`, + }) + + $line.find('.dot4').css({ + 'offset-path':`path("M20 0 S 40 ${parseSXY.distanceNumber/2}, 20 ${parseSXY.distanceNumber}")`, + }) + $line.find('#path4').attr({ + 'd':`M20 0 S 40 ${parseSXY.distanceNumber/2}, 20 ${parseSXY.distanceNumber}`, + }) + +} +/** + * line样式 + */ +Rotation3D.prototype.lineStyle = function($line, index, rotation) { + var rotate = circleMath.parseRotate(rotation, this) + // console.log(rotate) + + $line.css({ + transform: 'rotate(' + rotate + 'deg)', + }) + this.$lineList.css({ + // transform: `rotateX(${this.yRadius / 3}deg)`, + }) +} + +/** + * 旋转至index + */ +Rotation3D.prototype.goTo = function (index) { + var self = this; + this.currenIndex = index; + console.log('currenIndex', index); + /** + * 1.计算floatIndex,用于控死amdiff + */ + var itemsRotated = this.length * ((Math.PI / 2) - this.rotation) / (2 * Math.PI); + var floatIndex = itemsRotated % this.length; + if (floatIndex < 0) { floatIndex = floatIndex + this.length; } + + /** + * 2.计算diff,判断方向正反 + */ + var diff = index - (floatIndex % this.length); + if (2 * Math.abs(diff) > this.length) { + diff -= (diff > 0) ? this.length : -this.length; + } + // 停止任何正在进行的旋转 + this.destRotation += (2 * Math.PI / this.length) * -diff; + this.scheduleNextFrame(); + +} +/** + * 定时器渐近旋转 + */ +Rotation3D.prototype.scheduleNextFrame = function () { + var self = this + this.lastTime = time(); + // 暂停 + var pause = function () { + cancelFrame ? cancelFrame(this.timer) : clearTimeout(self.timer); + self.timer = 0; + } + // 渐进播放 + var playFrame = function () { + var rem = self.destRotation - self.rotation; + var now = time(), dt = (now - self.lastTime) * 0.002; + self.lastTime = now; + // console.log('rem',rem) + + if (Math.abs(rem) < 0.003) { + self.rotation = self.destRotation; + pause(); + } else { + // 渐近地接近目的地 + self.rotation = self.destRotation - rem / (1 + (self.speed * dt)); + self.scheduleNextFrame(); + } + self.render(); + } + + this.timer = cancelFrame ? + requestFrame(playFrame) : + setTimeout(playFrame, 1000 / this.fps); +} +/** + * 更新 + */ +Rotation3D.prototype.render = function () { + var self=this; + + // 图形间隔:弧度 + var spacing = 2 * Math.PI / this.$item.length; + var itemRotation = this.rotation; + var lineRotation = this.rotation + (Math.PI/2); + + this.$item.each(function (index) { + self.itemStyle($(this), index, itemRotation) + itemRotation += spacing; + }) + this.$line.each(function (index) { + self.lineStyle($(this), index, lineRotation) + lineRotation += spacing; + }) +} +/** + * 自动播放 + */ +Rotation3D.prototype.onAutoPlay = function () { + var self = this; + + if (this.autoPlay) { + this.autoPlayTimer = setInterval(function () { + if (self.currenIndex < 0) { + self.currenIndex = self.length - 1 + } + self.goTo(self.currenIndex); + self.currenIndex--; //倒叙 + }, this.autoPlayDelay) + } +} +/** + * 拖拽 + */ +Rotation3D.prototype.onDrag = function () { + var self = this; + var startX, startY, moveX, moveY, endX, endY; + + // 拖拽:三个事件-按下 移动 抬起 + //按下 + this.$rotation.mousedown(function (e) { + startX = e.pageX; startY = e.pageY; + + // 移动 + $(document).mousemove(function (e) { + // console.log('移动'); + endX = e.pageX; endY = e.pageY; + moveX = endX - startX; moveY = endY - startY; + // console.log('x,y',moveX,moveY); + }) + // 抬起 + $(document).mouseup(function (e) { + endX = e.pageX; endY = e.pageY; + moveX = endX - startX; moveY = endY - startY; + + // 每40旋转一步 + var moveIndex = parseInt(Math.abs(moveX) / 50) + console.log('moveIndex',moveIndex) + if (moveIndex > 0) { + // console.log(moveX<0 ? '向左' : '向右') + if (moveX < 0) { //向左 + self.currenIndex = self.currenIndex - moveIndex + play(moveIndex) + } else { //向右 + self.currenIndex = self.currenIndex + moveIndex + play(moveIndex) + } + } + + // 解绑 + $(document).unbind("mousemove"); + $(document).unbind("mouseup"); + }) + + }) + + function play() { + if (self.currenIndex == 0) { + self.currenIndex = self.length - 1 + } + self.goTo(self.currenIndex % self.length); + } + +} \ No newline at end of file diff --git a/custom/public/rotation3D/vue-2.6.10.min.js b/custom/public/rotation3D/vue-2.6.10.min.js new file mode 100644 index 000000000..087ee42cd --- /dev/null +++ b/custom/public/rotation3D/vue-2.6.10.min.js @@ -0,0 +1,6 @@ +/*! + * Vue.js v2.6.10 + * (c) 2014-2019 Evan You + * Released under the MIT License. + */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Vue=t()}(this,function(){"use strict";var e=Object.freeze({});function t(e){return null==e}function n(e){return null!=e}function r(e){return!0===e}function i(e){return"string"==typeof e||"number"==typeof e||"symbol"==typeof e||"boolean"==typeof e}function o(e){return null!==e&&"object"==typeof e}var a=Object.prototype.toString;function s(e){return"[object Object]"===a.call(e)}function c(e){var t=parseFloat(String(e));return t>=0&&Math.floor(t)===t&&isFinite(e)}function u(e){return n(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function l(e){return null==e?"":Array.isArray(e)||s(e)&&e.toString===a?JSON.stringify(e,null,2):String(e)}function f(e){var t=parseFloat(e);return isNaN(t)?e:t}function p(e,t){for(var n=Object.create(null),r=e.split(","),i=0;i-1)return e.splice(n,1)}}var m=Object.prototype.hasOwnProperty;function y(e,t){return m.call(e,t)}function g(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}var _=/-(\w)/g,b=g(function(e){return e.replace(_,function(e,t){return t?t.toUpperCase():""})}),$=g(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}),w=/\B([A-Z])/g,C=g(function(e){return e.replace(w,"-$1").toLowerCase()});var x=Function.prototype.bind?function(e,t){return e.bind(t)}:function(e,t){function n(n){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n};function k(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function A(e,t){for(var n in t)e[n]=t[n];return e}function O(e){for(var t={},n=0;n0,Z=J&&J.indexOf("edge/")>0,G=(J&&J.indexOf("android"),J&&/iphone|ipad|ipod|ios/.test(J)||"ios"===K),X=(J&&/chrome\/\d+/.test(J),J&&/phantomjs/.test(J),J&&J.match(/firefox\/(\d+)/)),Y={}.watch,Q=!1;if(z)try{var ee={};Object.defineProperty(ee,"passive",{get:function(){Q=!0}}),window.addEventListener("test-passive",null,ee)}catch(e){}var te=function(){return void 0===B&&(B=!z&&!V&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),B},ne=z&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function re(e){return"function"==typeof e&&/native code/.test(e.toString())}var ie,oe="undefined"!=typeof Symbol&&re(Symbol)&&"undefined"!=typeof Reflect&&re(Reflect.ownKeys);ie="undefined"!=typeof Set&&re(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var ae=S,se=0,ce=function(){this.id=se++,this.subs=[]};ce.prototype.addSub=function(e){this.subs.push(e)},ce.prototype.removeSub=function(e){h(this.subs,e)},ce.prototype.depend=function(){ce.target&&ce.target.addDep(this)},ce.prototype.notify=function(){for(var e=this.subs.slice(),t=0,n=e.length;t-1)if(o&&!y(i,"default"))a=!1;else if(""===a||a===C(e)){var c=Pe(String,i.type);(c<0||s0&&(st((u=e(u,(a||"")+"_"+c))[0])&&st(f)&&(s[l]=he(f.text+u[0].text),u.shift()),s.push.apply(s,u)):i(u)?st(f)?s[l]=he(f.text+u):""!==u&&s.push(he(u)):st(u)&&st(f)?s[l]=he(f.text+u.text):(r(o._isVList)&&n(u.tag)&&t(u.key)&&n(a)&&(u.key="__vlist"+a+"_"+c+"__"),s.push(u)));return s}(e):void 0}function st(e){return n(e)&&n(e.text)&&!1===e.isComment}function ct(e,t){if(e){for(var n=Object.create(null),r=oe?Reflect.ownKeys(e):Object.keys(e),i=0;i0,a=t?!!t.$stable:!o,s=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(a&&r&&r!==e&&s===r.$key&&!o&&!r.$hasNormal)return r;for(var c in i={},t)t[c]&&"$"!==c[0]&&(i[c]=pt(n,c,t[c]))}else i={};for(var u in n)u in i||(i[u]=dt(n,u));return t&&Object.isExtensible(t)&&(t._normalized=i),R(i,"$stable",a),R(i,"$key",s),R(i,"$hasNormal",o),i}function pt(e,t,n){var r=function(){var e=arguments.length?n.apply(null,arguments):n({});return(e=e&&"object"==typeof e&&!Array.isArray(e)?[e]:at(e))&&(0===e.length||1===e.length&&e[0].isComment)?void 0:e};return n.proxy&&Object.defineProperty(e,t,{get:r,enumerable:!0,configurable:!0}),r}function dt(e,t){return function(){return e[t]}}function vt(e,t){var r,i,a,s,c;if(Array.isArray(e)||"string"==typeof e)for(r=new Array(e.length),i=0,a=e.length;idocument.createEvent("Event").timeStamp&&(sn=function(){return cn.now()})}function un(){var e,t;for(an=sn(),rn=!0,Qt.sort(function(e,t){return e.id-t.id}),on=0;onon&&Qt[n].id>e.id;)n--;Qt.splice(n+1,0,e)}else Qt.push(e);nn||(nn=!0,Ye(un))}}(this)},fn.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||o(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(e){Re(e,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,t)}}},fn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},fn.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},fn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||h(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var pn={enumerable:!0,configurable:!0,get:S,set:S};function dn(e,t,n){pn.get=function(){return this[t][n]},pn.set=function(e){this[t][n]=e},Object.defineProperty(e,n,pn)}function vn(e){e._watchers=[];var t=e.$options;t.props&&function(e,t){var n=e.$options.propsData||{},r=e._props={},i=e.$options._propKeys=[];e.$parent&&$e(!1);var o=function(o){i.push(o);var a=Me(o,t,n,e);xe(r,o,a),o in e||dn(e,"_props",o)};for(var a in t)o(a);$e(!0)}(e,t.props),t.methods&&function(e,t){e.$options.props;for(var n in t)e[n]="function"!=typeof t[n]?S:x(t[n],e)}(e,t.methods),t.data?function(e){var t=e.$options.data;s(t=e._data="function"==typeof t?function(e,t){le();try{return e.call(t,t)}catch(e){return Re(e,t,"data()"),{}}finally{fe()}}(t,e):t||{})||(t={});var n=Object.keys(t),r=e.$options.props,i=(e.$options.methods,n.length);for(;i--;){var o=n[i];r&&y(r,o)||(a=void 0,36!==(a=(o+"").charCodeAt(0))&&95!==a&&dn(e,"_data",o))}var a;Ce(t,!0)}(e):Ce(e._data={},!0),t.computed&&function(e,t){var n=e._computedWatchers=Object.create(null),r=te();for(var i in t){var o=t[i],a="function"==typeof o?o:o.get;r||(n[i]=new fn(e,a||S,S,hn)),i in e||mn(e,i,o)}}(e,t.computed),t.watch&&t.watch!==Y&&function(e,t){for(var n in t){var r=t[n];if(Array.isArray(r))for(var i=0;i-1:"string"==typeof e?e.split(",").indexOf(t)>-1:(n=e,"[object RegExp]"===a.call(n)&&e.test(t));var n}function An(e,t){var n=e.cache,r=e.keys,i=e._vnode;for(var o in n){var a=n[o];if(a){var s=xn(a.componentOptions);s&&!t(s)&&On(n,o,r,i)}}}function On(e,t,n,r){var i=e[t];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),e[t]=null,h(n,t)}!function(t){t.prototype._init=function(t){var n=this;n._uid=bn++,n._isVue=!0,t&&t._isComponent?function(e,t){var n=e.$options=Object.create(e.constructor.options),r=t._parentVnode;n.parent=t.parent,n._parentVnode=r;var i=r.componentOptions;n.propsData=i.propsData,n._parentListeners=i.listeners,n._renderChildren=i.children,n._componentTag=i.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}(n,t):n.$options=De($n(n.constructor),t||{},n),n._renderProxy=n,n._self=n,function(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(n),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&qt(e,t)}(n),function(t){t._vnode=null,t._staticTrees=null;var n=t.$options,r=t.$vnode=n._parentVnode,i=r&&r.context;t.$slots=ut(n._renderChildren,i),t.$scopedSlots=e,t._c=function(e,n,r,i){return Pt(t,e,n,r,i,!1)},t.$createElement=function(e,n,r,i){return Pt(t,e,n,r,i,!0)};var o=r&&r.data;xe(t,"$attrs",o&&o.attrs||e,null,!0),xe(t,"$listeners",n._parentListeners||e,null,!0)}(n),Yt(n,"beforeCreate"),function(e){var t=ct(e.$options.inject,e);t&&($e(!1),Object.keys(t).forEach(function(n){xe(e,n,t[n])}),$e(!0))}(n),vn(n),function(e){var t=e.$options.provide;t&&(e._provided="function"==typeof t?t.call(e):t)}(n),Yt(n,"created"),n.$options.el&&n.$mount(n.$options.el)}}(wn),function(e){var t={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(e.prototype,"$data",t),Object.defineProperty(e.prototype,"$props",n),e.prototype.$set=ke,e.prototype.$delete=Ae,e.prototype.$watch=function(e,t,n){if(s(t))return _n(this,e,t,n);(n=n||{}).user=!0;var r=new fn(this,e,t,n);if(n.immediate)try{t.call(this,r.value)}catch(e){Re(e,this,'callback for immediate watcher "'+r.expression+'"')}return function(){r.teardown()}}}(wn),function(e){var t=/^hook:/;e.prototype.$on=function(e,n){var r=this;if(Array.isArray(e))for(var i=0,o=e.length;i1?k(t):t;for(var n=k(arguments,1),r='event handler for "'+e+'"',i=0,o=t.length;iparseInt(this.max)&&On(a,s[0],s,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}}};!function(e){var t={get:function(){return F}};Object.defineProperty(e,"config",t),e.util={warn:ae,extend:A,mergeOptions:De,defineReactive:xe},e.set=ke,e.delete=Ae,e.nextTick=Ye,e.observable=function(e){return Ce(e),e},e.options=Object.create(null),M.forEach(function(t){e.options[t+"s"]=Object.create(null)}),e.options._base=e,A(e.options.components,Tn),function(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=k(arguments,1);return n.unshift(this),"function"==typeof e.install?e.install.apply(e,n):"function"==typeof e&&e.apply(null,n),t.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=De(this.options,e),this}}(e),Cn(e),function(e){M.forEach(function(t){e[t]=function(e,n){return n?("component"===t&&s(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&"function"==typeof n&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}})}(e)}(wn),Object.defineProperty(wn.prototype,"$isServer",{get:te}),Object.defineProperty(wn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(wn,"FunctionalRenderContext",{value:Tt}),wn.version="2.6.10";var En=p("style,class"),Nn=p("input,textarea,option,select,progress"),jn=function(e,t,n){return"value"===n&&Nn(e)&&"button"!==t||"selected"===n&&"option"===e||"checked"===n&&"input"===e||"muted"===n&&"video"===e},Dn=p("contenteditable,draggable,spellcheck"),Ln=p("events,caret,typing,plaintext-only"),Mn=function(e,t){return Hn(t)||"false"===t?"false":"contenteditable"===e&&Ln(t)?t:"true"},In=p("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Fn="http://www.w3.org/1999/xlink",Pn=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},Rn=function(e){return Pn(e)?e.slice(6,e.length):""},Hn=function(e){return null==e||!1===e};function Bn(e){for(var t=e.data,r=e,i=e;n(i.componentInstance);)(i=i.componentInstance._vnode)&&i.data&&(t=Un(i.data,t));for(;n(r=r.parent);)r&&r.data&&(t=Un(t,r.data));return function(e,t){if(n(e)||n(t))return zn(e,Vn(t));return""}(t.staticClass,t.class)}function Un(e,t){return{staticClass:zn(e.staticClass,t.staticClass),class:n(e.class)?[e.class,t.class]:t.class}}function zn(e,t){return e?t?e+" "+t:e:t||""}function Vn(e){return Array.isArray(e)?function(e){for(var t,r="",i=0,o=e.length;i-1?hr(e,t,n):In(t)?Hn(n)?e.removeAttribute(t):(n="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,n)):Dn(t)?e.setAttribute(t,Mn(t,n)):Pn(t)?Hn(n)?e.removeAttributeNS(Fn,Rn(t)):e.setAttributeNS(Fn,t,n):hr(e,t,n)}function hr(e,t,n){if(Hn(n))e.removeAttribute(t);else{if(q&&!W&&"TEXTAREA"===e.tagName&&"placeholder"===t&&""!==n&&!e.__ieph){var r=function(t){t.stopImmediatePropagation(),e.removeEventListener("input",r)};e.addEventListener("input",r),e.__ieph=!0}e.setAttribute(t,n)}}var mr={create:dr,update:dr};function yr(e,r){var i=r.elm,o=r.data,a=e.data;if(!(t(o.staticClass)&&t(o.class)&&(t(a)||t(a.staticClass)&&t(a.class)))){var s=Bn(r),c=i._transitionClasses;n(c)&&(s=zn(s,Vn(c))),s!==i._prevClass&&(i.setAttribute("class",s),i._prevClass=s)}}var gr,_r,br,$r,wr,Cr,xr={create:yr,update:yr},kr=/[\w).+\-_$\]]/;function Ar(e){var t,n,r,i,o,a=!1,s=!1,c=!1,u=!1,l=0,f=0,p=0,d=0;for(r=0;r=0&&" "===(h=e.charAt(v));v--);h&&kr.test(h)||(u=!0)}}else void 0===i?(d=r+1,i=e.slice(0,r).trim()):m();function m(){(o||(o=[])).push(e.slice(d,r).trim()),d=r+1}if(void 0===i?i=e.slice(0,r).trim():0!==d&&m(),o)for(r=0;r-1?{exp:e.slice(0,$r),key:'"'+e.slice($r+1)+'"'}:{exp:e,key:null};_r=e,$r=wr=Cr=0;for(;!zr();)Vr(br=Ur())?Jr(br):91===br&&Kr(br);return{exp:e.slice(0,wr),key:e.slice(wr+1,Cr)}}(e);return null===n.key?e+"="+t:"$set("+n.exp+", "+n.key+", "+t+")"}function Ur(){return _r.charCodeAt(++$r)}function zr(){return $r>=gr}function Vr(e){return 34===e||39===e}function Kr(e){var t=1;for(wr=$r;!zr();)if(Vr(e=Ur()))Jr(e);else if(91===e&&t++,93===e&&t--,0===t){Cr=$r;break}}function Jr(e){for(var t=e;!zr()&&(e=Ur())!==t;);}var qr,Wr="__r",Zr="__c";function Gr(e,t,n){var r=qr;return function i(){null!==t.apply(null,arguments)&&Qr(e,i,n,r)}}var Xr=Ve&&!(X&&Number(X[1])<=53);function Yr(e,t,n,r){if(Xr){var i=an,o=t;t=o._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=i||e.timeStamp<=0||e.target.ownerDocument!==document)return o.apply(this,arguments)}}qr.addEventListener(e,t,Q?{capture:n,passive:r}:n)}function Qr(e,t,n,r){(r||qr).removeEventListener(e,t._wrapper||t,n)}function ei(e,r){if(!t(e.data.on)||!t(r.data.on)){var i=r.data.on||{},o=e.data.on||{};qr=r.elm,function(e){if(n(e[Wr])){var t=q?"change":"input";e[t]=[].concat(e[Wr],e[t]||[]),delete e[Wr]}n(e[Zr])&&(e.change=[].concat(e[Zr],e.change||[]),delete e[Zr])}(i),rt(i,o,Yr,Qr,Gr,r.context),qr=void 0}}var ti,ni={create:ei,update:ei};function ri(e,r){if(!t(e.data.domProps)||!t(r.data.domProps)){var i,o,a=r.elm,s=e.data.domProps||{},c=r.data.domProps||{};for(i in n(c.__ob__)&&(c=r.data.domProps=A({},c)),s)i in c||(a[i]="");for(i in c){if(o=c[i],"textContent"===i||"innerHTML"===i){if(r.children&&(r.children.length=0),o===s[i])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===i&&"PROGRESS"!==a.tagName){a._value=o;var u=t(o)?"":String(o);ii(a,u)&&(a.value=u)}else if("innerHTML"===i&&qn(a.tagName)&&t(a.innerHTML)){(ti=ti||document.createElement("div")).innerHTML=""+o+"";for(var l=ti.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;l.firstChild;)a.appendChild(l.firstChild)}else if(o!==s[i])try{a[i]=o}catch(e){}}}}function ii(e,t){return!e.composing&&("OPTION"===e.tagName||function(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}(e,t)||function(e,t){var r=e.value,i=e._vModifiers;if(n(i)){if(i.number)return f(r)!==f(t);if(i.trim)return r.trim()!==t.trim()}return r!==t}(e,t))}var oi={create:ri,update:ri},ai=g(function(e){var t={},n=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach(function(e){if(e){var r=e.split(n);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t});function si(e){var t=ci(e.style);return e.staticStyle?A(e.staticStyle,t):t}function ci(e){return Array.isArray(e)?O(e):"string"==typeof e?ai(e):e}var ui,li=/^--/,fi=/\s*!important$/,pi=function(e,t,n){if(li.test(t))e.style.setProperty(t,n);else if(fi.test(n))e.style.setProperty(C(t),n.replace(fi,""),"important");else{var r=vi(t);if(Array.isArray(n))for(var i=0,o=n.length;i-1?t.split(yi).forEach(function(t){return e.classList.add(t)}):e.classList.add(t);else{var n=" "+(e.getAttribute("class")||"")+" ";n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function _i(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(yi).forEach(function(t){return e.classList.remove(t)}):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var n=" "+(e.getAttribute("class")||"")+" ",r=" "+t+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?e.setAttribute("class",n):e.removeAttribute("class")}}function bi(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&A(t,$i(e.name||"v")),A(t,e),t}return"string"==typeof e?$i(e):void 0}}var $i=g(function(e){return{enterClass:e+"-enter",enterToClass:e+"-enter-to",enterActiveClass:e+"-enter-active",leaveClass:e+"-leave",leaveToClass:e+"-leave-to",leaveActiveClass:e+"-leave-active"}}),wi=z&&!W,Ci="transition",xi="animation",ki="transition",Ai="transitionend",Oi="animation",Si="animationend";wi&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(ki="WebkitTransition",Ai="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Oi="WebkitAnimation",Si="webkitAnimationEnd"));var Ti=z?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function Ei(e){Ti(function(){Ti(e)})}function Ni(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),gi(e,t))}function ji(e,t){e._transitionClasses&&h(e._transitionClasses,t),_i(e,t)}function Di(e,t,n){var r=Mi(e,t),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===Ci?Ai:Si,c=0,u=function(){e.removeEventListener(s,l),n()},l=function(t){t.target===e&&++c>=a&&u()};setTimeout(function(){c0&&(n=Ci,l=a,f=o.length):t===xi?u>0&&(n=xi,l=u,f=c.length):f=(n=(l=Math.max(a,u))>0?a>u?Ci:xi:null)?n===Ci?o.length:c.length:0,{type:n,timeout:l,propCount:f,hasTransform:n===Ci&&Li.test(r[ki+"Property"])}}function Ii(e,t){for(;e.length1}function Ui(e,t){!0!==t.data.show&&Pi(t)}var zi=function(e){var o,a,s={},c=e.modules,u=e.nodeOps;for(o=0;ov?_(e,t(i[y+1])?null:i[y+1].elm,i,d,y,o):d>y&&$(0,r,p,v)}(p,h,y,o,l):n(y)?(n(e.text)&&u.setTextContent(p,""),_(p,null,y,0,y.length-1,o)):n(h)?$(0,h,0,h.length-1):n(e.text)&&u.setTextContent(p,""):e.text!==i.text&&u.setTextContent(p,i.text),n(v)&&n(d=v.hook)&&n(d=d.postpatch)&&d(e,i)}}}function k(e,t,i){if(r(i)&&n(e.parent))e.parent.data.pendingInsert=t;else for(var o=0;o-1,a.selected!==o&&(a.selected=o);else if(N(Wi(a),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));i||(e.selectedIndex=-1)}}function qi(e,t){return t.every(function(t){return!N(t,e)})}function Wi(e){return"_value"in e?e._value:e.value}function Zi(e){e.target.composing=!0}function Gi(e){e.target.composing&&(e.target.composing=!1,Xi(e.target,"input"))}function Xi(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function Yi(e){return!e.componentInstance||e.data&&e.data.transition?e:Yi(e.componentInstance._vnode)}var Qi={model:Vi,show:{bind:function(e,t,n){var r=t.value,i=(n=Yi(n)).data&&n.data.transition,o=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;r&&i?(n.data.show=!0,Pi(n,function(){e.style.display=o})):e.style.display=r?o:"none"},update:function(e,t,n){var r=t.value;!r!=!t.oldValue&&((n=Yi(n)).data&&n.data.transition?(n.data.show=!0,r?Pi(n,function(){e.style.display=e.__vOriginalDisplay}):Ri(n,function(){e.style.display="none"})):e.style.display=r?e.__vOriginalDisplay:"none")},unbind:function(e,t,n,r,i){i||(e.style.display=e.__vOriginalDisplay)}}},eo={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function to(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?to(zt(t.children)):e}function no(e){var t={},n=e.$options;for(var r in n.propsData)t[r]=e[r];var i=n._parentListeners;for(var o in i)t[b(o)]=i[o];return t}function ro(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}var io=function(e){return e.tag||Ut(e)},oo=function(e){return"show"===e.name},ao={name:"transition",props:eo,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(io)).length){var r=this.mode,o=n[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return o;var a=to(o);if(!a)return o;if(this._leaving)return ro(e,o);var s="__transition-"+this._uid+"-";a.key=null==a.key?a.isComment?s+"comment":s+a.tag:i(a.key)?0===String(a.key).indexOf(s)?a.key:s+a.key:a.key;var c=(a.data||(a.data={})).transition=no(this),u=this._vnode,l=to(u);if(a.data.directives&&a.data.directives.some(oo)&&(a.data.show=!0),l&&l.data&&!function(e,t){return t.key===e.key&&t.tag===e.tag}(a,l)&&!Ut(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var f=l.data.transition=A({},c);if("out-in"===r)return this._leaving=!0,it(f,"afterLeave",function(){t._leaving=!1,t.$forceUpdate()}),ro(e,o);if("in-out"===r){if(Ut(a))return u;var p,d=function(){p()};it(c,"afterEnter",d),it(c,"enterCancelled",d),it(f,"delayLeave",function(e){p=e})}}return o}}},so=A({tag:String,moveClass:String},eo);function co(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function uo(e){e.data.newPos=e.elm.getBoundingClientRect()}function lo(e){var t=e.data.pos,n=e.data.newPos,r=t.left-n.left,i=t.top-n.top;if(r||i){e.data.moved=!0;var o=e.elm.style;o.transform=o.WebkitTransform="translate("+r+"px,"+i+"px)",o.transitionDuration="0s"}}delete so.mode;var fo={Transition:ao,TransitionGroup:{props:so,beforeMount:function(){var e=this,t=this._update;this._update=function(n,r){var i=Zt(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,i(),t.call(e,n,r)}},render:function(e){for(var t=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=no(this),s=0;s-1?Gn[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:Gn[e]=/HTMLUnknownElement/.test(t.toString())},A(wn.options.directives,Qi),A(wn.options.components,fo),wn.prototype.__patch__=z?zi:S,wn.prototype.$mount=function(e,t){return function(e,t,n){var r;return e.$el=t,e.$options.render||(e.$options.render=ve),Yt(e,"beforeMount"),r=function(){e._update(e._render(),n)},new fn(e,r,S,{before:function(){e._isMounted&&!e._isDestroyed&&Yt(e,"beforeUpdate")}},!0),n=!1,null==e.$vnode&&(e._isMounted=!0,Yt(e,"mounted")),e}(this,e=e&&z?Yn(e):void 0,t)},z&&setTimeout(function(){F.devtools&&ne&&ne.emit("init",wn)},0);var po=/\{\{((?:.|\r?\n)+?)\}\}/g,vo=/[-.*+?^${}()|[\]\/\\]/g,ho=g(function(e){var t=e[0].replace(vo,"\\$&"),n=e[1].replace(vo,"\\$&");return new RegExp(t+"((?:.|\\n)+?)"+n,"g")});var mo={staticKeys:["staticClass"],transformNode:function(e,t){t.warn;var n=Fr(e,"class");n&&(e.staticClass=JSON.stringify(n));var r=Ir(e,"class",!1);r&&(e.classBinding=r)},genData:function(e){var t="";return e.staticClass&&(t+="staticClass:"+e.staticClass+","),e.classBinding&&(t+="class:"+e.classBinding+","),t}};var yo,go={staticKeys:["staticStyle"],transformNode:function(e,t){t.warn;var n=Fr(e,"style");n&&(e.staticStyle=JSON.stringify(ai(n)));var r=Ir(e,"style",!1);r&&(e.styleBinding=r)},genData:function(e){var t="";return e.staticStyle&&(t+="staticStyle:"+e.staticStyle+","),e.styleBinding&&(t+="style:("+e.styleBinding+"),"),t}},_o=function(e){return(yo=yo||document.createElement("div")).innerHTML=e,yo.textContent},bo=p("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),$o=p("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),wo=p("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),Co=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,xo=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,ko="[a-zA-Z_][\\-\\.0-9_a-zA-Z"+P.source+"]*",Ao="((?:"+ko+"\\:)?"+ko+")",Oo=new RegExp("^<"+Ao),So=/^\s*(\/?)>/,To=new RegExp("^<\\/"+Ao+"[^>]*>"),Eo=/^]+>/i,No=/^",""":'"',"&":"&"," ":"\n"," ":"\t","'":"'"},Io=/&(?:lt|gt|quot|amp|#39);/g,Fo=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,Po=p("pre,textarea",!0),Ro=function(e,t){return e&&Po(e)&&"\n"===t[0]};function Ho(e,t){var n=t?Fo:Io;return e.replace(n,function(e){return Mo[e]})}var Bo,Uo,zo,Vo,Ko,Jo,qo,Wo,Zo=/^@|^v-on:/,Go=/^v-|^@|^:/,Xo=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,Yo=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Qo=/^\(|\)$/g,ea=/^\[.*\]$/,ta=/:(.*)$/,na=/^:|^\.|^v-bind:/,ra=/\.[^.\]]+(?=[^\]]*$)/g,ia=/^v-slot(:|$)|^#/,oa=/[\r\n]/,aa=/\s+/g,sa=g(_o),ca="_empty_";function ua(e,t,n){return{type:1,tag:e,attrsList:t,attrsMap:ma(t),rawAttrsMap:{},parent:n,children:[]}}function la(e,t){Bo=t.warn||Sr,Jo=t.isPreTag||T,qo=t.mustUseProp||T,Wo=t.getTagNamespace||T;t.isReservedTag;zo=Tr(t.modules,"transformNode"),Vo=Tr(t.modules,"preTransformNode"),Ko=Tr(t.modules,"postTransformNode"),Uo=t.delimiters;var n,r,i=[],o=!1!==t.preserveWhitespace,a=t.whitespace,s=!1,c=!1;function u(e){if(l(e),s||e.processed||(e=fa(e,t)),i.length||e===n||n.if&&(e.elseif||e.else)&&da(n,{exp:e.elseif,block:e}),r&&!e.forbidden)if(e.elseif||e.else)a=e,(u=function(e){var t=e.length;for(;t--;){if(1===e[t].type)return e[t];e.pop()}}(r.children))&&u.if&&da(u,{exp:a.elseif,block:a});else{if(e.slotScope){var o=e.slotTarget||'"default"';(r.scopedSlots||(r.scopedSlots={}))[o]=e}r.children.push(e),e.parent=r}var a,u;e.children=e.children.filter(function(e){return!e.slotScope}),l(e),e.pre&&(s=!1),Jo(e.tag)&&(c=!1);for(var f=0;f]*>)","i")),p=e.replace(f,function(e,n,r){return u=r.length,Do(l)||"noscript"===l||(n=n.replace(//g,"$1").replace(//g,"$1")),Ro(l,n)&&(n=n.slice(1)),t.chars&&t.chars(n),""});c+=e.length-p.length,e=p,A(l,c-u,c)}else{var d=e.indexOf("<");if(0===d){if(No.test(e)){var v=e.indexOf("--\x3e");if(v>=0){t.shouldKeepComment&&t.comment(e.substring(4,v),c,c+v+3),C(v+3);continue}}if(jo.test(e)){var h=e.indexOf("]>");if(h>=0){C(h+2);continue}}var m=e.match(Eo);if(m){C(m[0].length);continue}var y=e.match(To);if(y){var g=c;C(y[0].length),A(y[1],g,c);continue}var _=x();if(_){k(_),Ro(_.tagName,e)&&C(1);continue}}var b=void 0,$=void 0,w=void 0;if(d>=0){for($=e.slice(d);!(To.test($)||Oo.test($)||No.test($)||jo.test($)||(w=$.indexOf("<",1))<0);)d+=w,$=e.slice(d);b=e.substring(0,d)}d<0&&(b=e),b&&C(b.length),t.chars&&b&&t.chars(b,c-b.length,c)}if(e===n){t.chars&&t.chars(e);break}}function C(t){c+=t,e=e.substring(t)}function x(){var t=e.match(Oo);if(t){var n,r,i={tagName:t[1],attrs:[],start:c};for(C(t[0].length);!(n=e.match(So))&&(r=e.match(xo)||e.match(Co));)r.start=c,C(r[0].length),r.end=c,i.attrs.push(r);if(n)return i.unarySlash=n[1],C(n[0].length),i.end=c,i}}function k(e){var n=e.tagName,c=e.unarySlash;o&&("p"===r&&wo(n)&&A(r),s(n)&&r===n&&A(n));for(var u=a(n)||!!c,l=e.attrs.length,f=new Array(l),p=0;p=0&&i[a].lowerCasedTag!==s;a--);else a=0;if(a>=0){for(var u=i.length-1;u>=a;u--)t.end&&t.end(i[u].tag,n,o);i.length=a,r=a&&i[a-1].tag}else"br"===s?t.start&&t.start(e,[],!0,n,o):"p"===s&&(t.start&&t.start(e,[],!1,n,o),t.end&&t.end(e,n,o))}A()}(e,{warn:Bo,expectHTML:t.expectHTML,isUnaryTag:t.isUnaryTag,canBeLeftOpenTag:t.canBeLeftOpenTag,shouldDecodeNewlines:t.shouldDecodeNewlines,shouldDecodeNewlinesForHref:t.shouldDecodeNewlinesForHref,shouldKeepComment:t.comments,outputSourceRange:t.outputSourceRange,start:function(e,o,a,l,f){var p=r&&r.ns||Wo(e);q&&"svg"===p&&(o=function(e){for(var t=[],n=0;nc&&(s.push(o=e.slice(c,i)),a.push(JSON.stringify(o)));var u=Ar(r[1].trim());a.push("_s("+u+")"),s.push({"@binding":u}),c=i+r[0].length}return c-1"+("true"===o?":("+t+")":":_q("+t+","+o+")")),Mr(e,"change","var $$a="+t+",$$el=$event.target,$$c=$$el.checked?("+o+"):("+a+");if(Array.isArray($$a)){var $$v="+(r?"_n("+i+")":i)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+Br(t,"$$a.concat([$$v])")+")}else{$$i>-1&&("+Br(t,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+Br(t,"$$c")+"}",null,!0)}(e,r,i);else if("input"===o&&"radio"===a)!function(e,t,n){var r=n&&n.number,i=Ir(e,"value")||"null";Er(e,"checked","_q("+t+","+(i=r?"_n("+i+")":i)+")"),Mr(e,"change",Br(t,i),null,!0)}(e,r,i);else if("input"===o||"textarea"===o)!function(e,t,n){var r=e.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,c=!o&&"range"!==r,u=o?"change":"range"===r?Wr:"input",l="$event.target.value";s&&(l="$event.target.value.trim()"),a&&(l="_n("+l+")");var f=Br(t,l);c&&(f="if($event.target.composing)return;"+f),Er(e,"value","("+t+")"),Mr(e,u,f,null,!0),(s||a)&&Mr(e,"blur","$forceUpdate()")}(e,r,i);else if(!F.isReservedTag(o))return Hr(e,r,i),!1;return!0},text:function(e,t){t.value&&Er(e,"textContent","_s("+t.value+")",t)},html:function(e,t){t.value&&Er(e,"innerHTML","_s("+t.value+")",t)}},isPreTag:function(e){return"pre"===e},isUnaryTag:bo,mustUseProp:jn,canBeLeftOpenTag:$o,isReservedTag:Wn,getTagNamespace:Zn,staticKeys:function(e){return e.reduce(function(e,t){return e.concat(t.staticKeys||[])},[]).join(",")}(ba)},xa=g(function(e){return p("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(e?","+e:""))});function ka(e,t){e&&($a=xa(t.staticKeys||""),wa=t.isReservedTag||T,function e(t){t.static=function(e){if(2===e.type)return!1;if(3===e.type)return!0;return!(!e.pre&&(e.hasBindings||e.if||e.for||d(e.tag)||!wa(e.tag)||function(e){for(;e.parent;){if("template"!==(e=e.parent).tag)return!1;if(e.for)return!0}return!1}(e)||!Object.keys(e).every($a)))}(t);if(1===t.type){if(!wa(t.tag)&&"slot"!==t.tag&&null==t.attrsMap["inline-template"])return;for(var n=0,r=t.children.length;n|^function\s*(?:[\w$]+)?\s*\(/,Oa=/\([^)]*?\);*$/,Sa=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,Ta={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},Ea={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},Na=function(e){return"if("+e+")return null;"},ja={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:Na("$event.target !== $event.currentTarget"),ctrl:Na("!$event.ctrlKey"),shift:Na("!$event.shiftKey"),alt:Na("!$event.altKey"),meta:Na("!$event.metaKey"),left:Na("'button' in $event && $event.button !== 0"),middle:Na("'button' in $event && $event.button !== 1"),right:Na("'button' in $event && $event.button !== 2")};function Da(e,t){var n=t?"nativeOn:":"on:",r="",i="";for(var o in e){var a=La(e[o]);e[o]&&e[o].dynamic?i+=o+","+a+",":r+='"'+o+'":'+a+","}return r="{"+r.slice(0,-1)+"}",i?n+"_d("+r+",["+i.slice(0,-1)+"])":n+r}function La(e){if(!e)return"function(){}";if(Array.isArray(e))return"["+e.map(function(e){return La(e)}).join(",")+"]";var t=Sa.test(e.value),n=Aa.test(e.value),r=Sa.test(e.value.replace(Oa,""));if(e.modifiers){var i="",o="",a=[];for(var s in e.modifiers)if(ja[s])o+=ja[s],Ta[s]&&a.push(s);else if("exact"===s){var c=e.modifiers;o+=Na(["ctrl","shift","alt","meta"].filter(function(e){return!c[e]}).map(function(e){return"$event."+e+"Key"}).join("||"))}else a.push(s);return a.length&&(i+=function(e){return"if(!$event.type.indexOf('key')&&"+e.map(Ma).join("&&")+")return null;"}(a)),o&&(i+=o),"function($event){"+i+(t?"return "+e.value+"($event)":n?"return ("+e.value+")($event)":r?"return "+e.value:e.value)+"}"}return t||n?e.value:"function($event){"+(r?"return "+e.value:e.value)+"}"}function Ma(e){var t=parseInt(e,10);if(t)return"$event.keyCode!=="+t;var n=Ta[e],r=Ea[e];return"_k($event.keyCode,"+JSON.stringify(e)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(r)+")"}var Ia={on:function(e,t){e.wrapListeners=function(e){return"_g("+e+","+t.value+")"}},bind:function(e,t){e.wrapData=function(n){return"_b("+n+",'"+e.tag+"',"+t.value+","+(t.modifiers&&t.modifiers.prop?"true":"false")+(t.modifiers&&t.modifiers.sync?",true":"")+")"}},cloak:S},Fa=function(e){this.options=e,this.warn=e.warn||Sr,this.transforms=Tr(e.modules,"transformCode"),this.dataGenFns=Tr(e.modules,"genData"),this.directives=A(A({},Ia),e.directives);var t=e.isReservedTag||T;this.maybeComponent=function(e){return!!e.component||!t(e.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function Pa(e,t){var n=new Fa(t);return{render:"with(this){return "+(e?Ra(e,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function Ra(e,t){if(e.parent&&(e.pre=e.pre||e.parent.pre),e.staticRoot&&!e.staticProcessed)return Ha(e,t);if(e.once&&!e.onceProcessed)return Ba(e,t);if(e.for&&!e.forProcessed)return za(e,t);if(e.if&&!e.ifProcessed)return Ua(e,t);if("template"!==e.tag||e.slotTarget||t.pre){if("slot"===e.tag)return function(e,t){var n=e.slotName||'"default"',r=qa(e,t),i="_t("+n+(r?","+r:""),o=e.attrs||e.dynamicAttrs?Ga((e.attrs||[]).concat(e.dynamicAttrs||[]).map(function(e){return{name:b(e.name),value:e.value,dynamic:e.dynamic}})):null,a=e.attrsMap["v-bind"];!o&&!a||r||(i+=",null");o&&(i+=","+o);a&&(i+=(o?"":",null")+","+a);return i+")"}(e,t);var n;if(e.component)n=function(e,t,n){var r=t.inlineTemplate?null:qa(t,n,!0);return"_c("+e+","+Va(t,n)+(r?","+r:"")+")"}(e.component,e,t);else{var r;(!e.plain||e.pre&&t.maybeComponent(e))&&(r=Va(e,t));var i=e.inlineTemplate?null:qa(e,t,!0);n="_c('"+e.tag+"'"+(r?","+r:"")+(i?","+i:"")+")"}for(var o=0;o>>0}(a):"")+")"}(e,e.scopedSlots,t)+","),e.model&&(n+="model:{value:"+e.model.value+",callback:"+e.model.callback+",expression:"+e.model.expression+"},"),e.inlineTemplate){var o=function(e,t){var n=e.children[0];if(n&&1===n.type){var r=Pa(n,t.options);return"inlineTemplate:{render:function(){"+r.render+"},staticRenderFns:["+r.staticRenderFns.map(function(e){return"function(){"+e+"}"}).join(",")+"]}"}}(e,t);o&&(n+=o+",")}return n=n.replace(/,$/,"")+"}",e.dynamicAttrs&&(n="_b("+n+',"'+e.tag+'",'+Ga(e.dynamicAttrs)+")"),e.wrapData&&(n=e.wrapData(n)),e.wrapListeners&&(n=e.wrapListeners(n)),n}function Ka(e){return 1===e.type&&("slot"===e.tag||e.children.some(Ka))}function Ja(e,t){var n=e.attrsMap["slot-scope"];if(e.if&&!e.ifProcessed&&!n)return Ua(e,t,Ja,"null");if(e.for&&!e.forProcessed)return za(e,t,Ja);var r=e.slotScope===ca?"":String(e.slotScope),i="function("+r+"){return "+("template"===e.tag?e.if&&n?"("+e.if+")?"+(qa(e,t)||"undefined")+":undefined":qa(e,t)||"undefined":Ra(e,t))+"}",o=r?"":",proxy:true";return"{key:"+(e.slotTarget||'"default"')+",fn:"+i+o+"}"}function qa(e,t,n,r,i){var o=e.children;if(o.length){var a=o[0];if(1===o.length&&a.for&&"template"!==a.tag&&"slot"!==a.tag){var s=n?t.maybeComponent(a)?",1":",0":"";return""+(r||Ra)(a,t)+s}var c=n?function(e,t){for(var n=0,r=0;r':'
',ts.innerHTML.indexOf(" ")>0}var os=!!z&&is(!1),as=!!z&&is(!0),ss=g(function(e){var t=Yn(e);return t&&t.innerHTML}),cs=wn.prototype.$mount;return wn.prototype.$mount=function(e,t){if((e=e&&Yn(e))===document.body||e===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r)if("string"==typeof r)"#"===r.charAt(0)&&(r=ss(r));else{if(!r.nodeType)return this;r=r.innerHTML}else e&&(r=function(e){if(e.outerHTML)return e.outerHTML;var t=document.createElement("div");return t.appendChild(e.cloneNode(!0)),t.innerHTML}(e));if(r){var i=rs(r,{outputSourceRange:!1,shouldDecodeNewlines:os,shouldDecodeNewlinesForHref:as,delimiters:n.delimiters,comments:n.comments},this),o=i.render,a=i.staticRenderFns;n.render=o,n.staticRenderFns=a}}return cs.call(this,e,t)},wn.compile=rs,wn}); \ No newline at end of file diff --git a/templates/base/footer.tmpl b/templates/base/footer.tmpl index 732f61ea5..a0f5754d5 100644 --- a/templates/base/footer.tmpl +++ b/templates/base/footer.tmpl @@ -37,11 +37,47 @@ {{if .RequireTribute}} {{end}} -{{if .PageIsHome}} - -{{end}} {{template "custom/footer" .}} +{{if .PageIsHome}} + + + + + + +{{end}} diff --git a/templates/base/head_home.tmpl b/templates/base/head_home.tmpl index 25d7a92ec..2def358f8 100644 --- a/templates/base/head_home.tmpl +++ b/templates/base/head_home.tmpl @@ -192,6 +192,8 @@ var _hmt = _hmt || []; + + {{template "custom/body_outer_pre" .}} diff --git a/templates/home.tmpl b/templates/home.tmpl index 5edd65ceb..9e8e6acf4 100755 --- a/templates/home.tmpl +++ b/templates/home.tmpl @@ -1,7 +1,59 @@ {{template "base/head_home" .}}
-
+
+ +
+

完成AI任务
1716

+

运行AI任务
120

+

等待AI任务
80

+
+ +
+ +
+ + +
+
+
+
+
+ +

{{item.name}}

+
+
+
+
+
+
+
+ + + + +
+
调试任务 #31412022050816002
+
+
+ + + +
+
+
+ + + + +
+
+
+
+
+
+
+

{{.page_title}}
@@ -16,7 +68,7 @@ {{.page_use}} {{end}}
-
+

* {{.page_only_dynamic}}

From b38e1b048cc447f17741613d897dc101097b8987 Mon Sep 17 00:00:00 2001 From: OpenIhu Date: Mon, 23 May 2022 11:46:22 +0800 Subject: [PATCH 002/109] =?UTF-8?q?=E9=9A=90=E8=97=8F=E4=B8=AD=E5=BF=83?= =?UTF-8?q?=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- templates/home.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/home.tmpl b/templates/home.tmpl index 9e8e6acf4..401cf02e3 100755 --- a/templates/home.tmpl +++ b/templates/home.tmpl @@ -20,7 +20,7 @@
-

{{item.name}}

+
From 37b139ffb1140edae546a96d64104eb374707999 Mon Sep 17 00:00:00 2001 From: OpenIhu Date: Mon, 23 May 2022 11:52:14 +0800 Subject: [PATCH 003/109] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E5=BC=80=E6=BA=90=E5=8A=A8=E6=80=81=E5=AE=BD=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- templates/home.tmpl | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/templates/home.tmpl b/templates/home.tmpl index 401cf02e3..cf27a682e 100755 --- a/templates/home.tmpl +++ b/templates/home.tmpl @@ -69,15 +69,11 @@ {{end}}

-
+

* {{.page_only_dynamic}}

-
-
-
-
- -
-
+
+
+
From dfba0588313d81f2a9d4c9206e3878571231077a Mon Sep 17 00:00:00 2001 From: OpenIhu Date: Mon, 23 May 2022 11:56:49 +0800 Subject: [PATCH 004/109] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dhomenews?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- templates/home.tmpl | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/templates/home.tmpl b/templates/home.tmpl index cf27a682e..2d2fcf3e2 100755 --- a/templates/home.tmpl +++ b/templates/home.tmpl @@ -71,9 +71,11 @@

* {{.page_only_dynamic}}

-
-
- +
+
+
+ +
From 5cde254ce07f3210a0c825be77faea3733b7b9a8 Mon Sep 17 00:00:00 2001 From: OpenIhu Date: Mon, 23 May 2022 12:02:14 +0800 Subject: [PATCH 005/109] =?UTF-8?q?=E8=B0=83=E6=95=B4h1=E6=96=87=E5=AD=97?= =?UTF-8?q?=E5=AE=BD=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- templates/home.tmpl | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/templates/home.tmpl b/templates/home.tmpl index 2d2fcf3e2..5a602dab7 100755 --- a/templates/home.tmpl +++ b/templates/home.tmpl @@ -54,19 +54,23 @@
-

- {{.page_title}} -
- {{.page_small_title}} +
+
+

+ {{.page_title}} +
+ {{.page_small_title}} +
+

+

{{.page_description}}

+ + {{if .IsSigned}} + {{.page_use}} + {{else}} + {{.page_use}} + {{end}}
-

-

{{.page_description}}

- - {{if .IsSigned}} - {{.page_use}} - {{else}} - {{.page_use}} - {{end}} +
From 3f319dc9f1bf2e0b6755c9bdbfad60130116c9e1 Mon Sep 17 00:00:00 2001 From: OpenIhu Date: Mon, 23 May 2022 15:18:01 +0800 Subject: [PATCH 006/109] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E5=8A=A8=E6=80=81=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- custom/public/css/git.openi.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/custom/public/css/git.openi.css b/custom/public/css/git.openi.css index 10f68d625..d50b7e2cd 100644 --- a/custom/public/css/git.openi.css +++ b/custom/public/css/git.openi.css @@ -152,10 +152,10 @@ margin-left: 2.3em; } .homenews{ - border-radius: 2em; + border-radius: 1.2em; background-color: rgba(16, 16, 16, .9); position: relative; - padding-left: 1.5em !important; + padding-left: 1.3em !important; } .homeorg, .homepro, .homemodel, .i-env{ position: relative; @@ -186,7 +186,7 @@ padding: 0; } .newslist{ - height: 285px; + height: 260px; overflow: hidden; } From ff1a056905eabb30d30c450330857905bc2371fd Mon Sep 17 00:00:00 2001 From: OpenIhu Date: Mon, 23 May 2022 15:58:43 +0800 Subject: [PATCH 007/109] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E5=8A=A8=E6=80=81=E4=B8=BA9=E6=9D=A1=E4=B8=80=E5=B1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- custom/public/css/git.openi.css | 8 ++++---- public/home/home.js | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/custom/public/css/git.openi.css b/custom/public/css/git.openi.css index d50b7e2cd..7d05d503b 100644 --- a/custom/public/css/git.openi.css +++ b/custom/public/css/git.openi.css @@ -66,7 +66,7 @@ background: #DFE9F0; padding-top: 0; border: none; - margin-bottom: 11em; + margin-bottom: 13em; } .ui.secondary.hometop.segment #navbar{ z-index: 10; @@ -155,7 +155,7 @@ border-radius: 1.2em; background-color: rgba(16, 16, 16, .9); position: relative; - padding-left: 1.3em !important; + padding: 1.0em 1.0em 1.0em 1.3em; } .homeorg, .homepro, .homemodel, .i-env{ position: relative; @@ -169,7 +169,7 @@ bottom: 0; background-color: rgba(105, 192, 255, .4); width: 2px; -} +} .homenews .time-since{ padding-left: 1em; color: #888888; @@ -186,7 +186,7 @@ padding: 0; } .newslist{ - height: 260px; + height: 300px; overflow: hidden; } diff --git a/public/home/home.js b/public/home/home.js index 3b2a34f06..1f11b9a4f 100755 --- a/public/home/home.js +++ b/public/home/home.js @@ -9,7 +9,7 @@ if(isEmpty(token)){ var swiperNewMessage = new Swiper(".newslist", { direction: "vertical", - slidesPerView: 10, + slidesPerView: 9, loop: true, autoplay: { delay: 2500, From 23b519585b67e543e8d497d159e35a1183b80b01 Mon Sep 17 00:00:00 2001 From: OpenIhu Date: Tue, 24 May 2022 14:42:19 +0800 Subject: [PATCH 008/109] =?UTF-8?q?=E6=81=A2=E5=A4=8D=E6=99=BA=E7=AE=97?= =?UTF-8?q?=E7=BD=91=E7=BB=9C=E5=88=86=E4=B8=AD=E5=BF=83=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- custom/public/rotation3D/rotation3D.css | 30 ++++++++++++++++++++++++++++++ templates/home.tmpl | 2 +- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/custom/public/rotation3D/rotation3D.css b/custom/public/rotation3D/rotation3D.css index 7f93f1025..d29ee5cb7 100644 --- a/custom/public/rotation3D/rotation3D.css +++ b/custom/public/rotation3D/rotation3D.css @@ -29,6 +29,36 @@ .rotation3D__item .cont{ position: relative; z-index: 2; } .rotation3D__item .cont .iconfont { font-size: 28px; margin-top: 30px; margin-bottom: 96px; display: block; } .rotation3D__item .cont p{ color: #101010; } +.itemList .rotation3D__item .cont p::after{ + content: ''; + position: absolute; + left: 0; + right: 0; +} +.itemList .rotation3D__item:nth-child(1) .cont p::after{ + content: "云脑一号"; +} +.itemList .rotation3D__item:nth-child(2) .cont p::after{ + content: "云脑二号"; +} +.itemList .rotation3D__item:nth-child(3) .cont p::after{ + content: "北大分中心"; +} +.itemList .rotation3D__item:nth-child(4) .cont p::after{ + content: "合肥分中心"; +} +.itemList .rotation3D__item:nth-child(5) .cont p::after{ + content: "武汉AI中心"; +} +.itemList .rotation3D__item:nth-child(6) .cont p::after{ + content: "西安AI中心"; +} +.itemList .rotation3D__item:nth-child(7) .cont p::after{ + content: "中原AI中心"; +} +.itemList .rotation3D__item:nth-child(8) .cont p::after{ + content: "成都AI中心"; +} .rotation3D__item.blue{ color: #01e9fc; } .rotation3D__item.green{ color: #b4b3ca; } diff --git a/templates/home.tmpl b/templates/home.tmpl index 5a602dab7..aa7a21ccc 100755 --- a/templates/home.tmpl +++ b/templates/home.tmpl @@ -20,7 +20,7 @@
- +

From 27630014b9eb586a172f05936e2594950613d8a6 Mon Sep 17 00:00:00 2001 From: zouap Date: Tue, 24 May 2022 16:37:15 +0800 Subject: [PATCH 009/109] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E6=94=B9=E7=89=88?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- public/home/home.js | 89 ++++++++++++++++++++++++++++++++---------------- routers/home.go | 79 +++++++++++++++++++++++++++++------------- routers/routes/routes.go | 7 ++-- templates/home.tmpl | 6 ++-- 4 files changed, 122 insertions(+), 59 deletions(-) diff --git a/public/home/home.js b/public/home/home.js index 1f11b9a4f..9a4847e73 100755 --- a/public/home/home.js +++ b/public/home/home.js @@ -117,6 +117,7 @@ socket.onmessage = function (e) { continue; } } + refresh3DInfo(record); var recordPrefix = getMsg(record); if(record.OpType == "6" || record.OpType == "10" || record.OpType == "12" || record.OpType == "13"){ html += recordPrefix + actionName; @@ -200,6 +201,22 @@ function getTaskLink(record){ return re; } +function refresh3DInfo(record){ + if(record.OpType == "25" || record.OpType == "29" || record.OpType == "31"){ + //cloudbrain one + var lines = $('.rotation3D__line blue'); + console.log("cloudbrain one line length=" + lines.length); + lines[0].find("span").text(record.RefName); + + }else if(record.OpType == "26" || record.OpType == "27" || record.OpType == "28"){ + //cloudbrain two + var lines = $('.rotation3D__line blue'); + console.log("cloudbrain two line length=" + lines.length); + lines[1].find("span").text(record.RefName); + } + +} + function getMsg(record){ var html =""; html += "
"; @@ -418,48 +435,60 @@ queryRecommendData(); function queryRecommendData(){ $.ajax({ type:"GET", - url:"/recommend/org", + url:"/recommend/home", headers: { authorization:token, }, dataType:"json", async:false, success:function(json){ - displayOrg(json); + displayOrg(json.org); + displayRepo(json.repo); + displayActivity(json.image); + displayCloudBrain(json.cloudbrain) }, error:function(response) { } }); - $.ajax({ - type:"GET", - url:"/recommend/repo", - headers: { - authorization:token, - }, - dataType:"json", - async:false, - success:function(json){ - displayRepo(json); - }, - error:function(response) { - } - }); + // $.ajax({ + // type:"GET", + // url:"/recommend/repo", + // headers: { + // authorization:token, + // }, + // dataType:"json", + // async:false, + // success:function(json){ + // displayRepo(json); + // }, + // error:function(response) { + // } + // }); + + // $.ajax({ + // type:"GET", + // url:"/recommend/imageinfo", + // headers: { + // authorization:token, + // }, + // dataType:"json", + // async:false, + // success:function(json){ + // displayActivity(json); + // }, + // error:function(response) { + // } + // }); +} - $.ajax({ - type:"GET", - url:"/recommend/imageinfo", - headers: { - authorization:token, - }, - dataType:"json", - async:false, - success:function(json){ - displayActivity(json); - }, - error:function(response) { - } - }); +function displayCloudBrain(json){ + var completed_task = document.getElementById("completed_task"); + completed_task.text(json.completed_task); + var running_task = document.getElementById("running_task"); + running_task.text(json.running_task); + var wait_task = document.getElementById("wait_task"); + wait_task.text(json.wait_task); } function displayActivity(json){ diff --git a/routers/home.go b/routers/home.go index e37cacb01..09fe97dc6 100755 --- a/routers/home.go +++ b/routers/home.go @@ -471,7 +471,7 @@ func ExploreOrganizations(ctx *context.Context) { return } - recommendOrgs, err := GetRecommendOrg() + recommendOrgs, err := getRecommendOrg() if err != nil { log.Error("GetRecommendOrgInfos failed:%v", err.Error(), ctx.Data["MsgID"]) ctx.ServerError("GetRecommendOrgInfos", err) @@ -606,31 +606,31 @@ func ExploreImages(ctx *context.Context) { } func ExploreDataAnalysisUserTrend(ctx *context.Context) { - ctx.Data["url_params"]="UserTrend" + ctx.Data["url_params"] = "UserTrend" ctx.HTML(200, tplExploreExploreDataAnalysis) } func ExploreDataAnalysisUserAnalysis(ctx *context.Context) { - ctx.Data["url_params"]="UserAnalysis" + ctx.Data["url_params"] = "UserAnalysis" ctx.HTML(200, tplExploreExploreDataAnalysis) } func ExploreDataAnalysisProTrend(ctx *context.Context) { - ctx.Data["url_params"]="ProTrend" + ctx.Data["url_params"] = "ProTrend" ctx.HTML(200, tplExploreExploreDataAnalysis) } func ExploreDataAnalysisProAnalysis(ctx *context.Context) { - ctx.Data["url_params"]="ProAnalysis" + ctx.Data["url_params"] = "ProAnalysis" ctx.HTML(200, tplExploreExploreDataAnalysis) } func ExploreDataAnalysisOverview(ctx *context.Context) { - ctx.Data["url_params"]="Overview" + ctx.Data["url_params"] = "Overview" ctx.HTML(200, tplExploreExploreDataAnalysis) } func ExploreDataAnalysisBrainAnalysis(ctx *context.Context) { - ctx.Data["url_params"]="BrainAnalysis" + ctx.Data["url_params"] = "BrainAnalysis" ctx.HTML(200, tplExploreExploreDataAnalysis) } func ExploreDataAnalysis(ctx *context.Context) { - ctx.Data["url_params"]="" + ctx.Data["url_params"] = "" ctx.HTML(200, tplExploreExploreDataAnalysis) } @@ -640,7 +640,7 @@ func NotFound(ctx *context.Context) { ctx.NotFound("home.NotFound", nil) } -func GetRecommendOrg() ([]map[string]interface{}, error) { +func getRecommendOrg() ([]map[string]interface{}, error) { url := setting.RecommentRepoAddr + "organizations" result, err := repository.RecommendFromPromote(url) @@ -668,7 +668,7 @@ func GetRecommendOrg() ([]map[string]interface{}, error) { } return resultOrg, nil } -func GetImageInfo() ([]map[string]interface{}, error) { +func getImageInfo() ([]map[string]interface{}, error) { url := setting.RecommentRepoAddr + "picture_info" result, err := repository.RecommendFromPromote(url) @@ -731,14 +731,14 @@ func GetRankUser(index string) ([]map[string]interface{}, error) { return resultOrg, nil } -func GetImageInfoFromPromote(ctx *context.Context) { - imageInfo, err := GetImageInfo() - if err != nil { - ctx.ServerError("500", err) - return - } - ctx.JSON(200, imageInfo) -} +// func GetImageInfoFromPromote(ctx *context.Context) { +// imageInfo, err := GetImageInfo() +// if err != nil { +// ctx.ServerError("500", err) +// return +// } +// ctx.JSON(200, imageInfo) +// } func GetUserRankFromPromote(ctx *context.Context) { index := ctx.Params("index") @@ -750,15 +750,48 @@ func GetUserRankFromPromote(ctx *context.Context) { ctx.JSON(200, resultUserRank) } -func RecommendOrgFromPromote(ctx *context.Context) { - resultOrg, err := GetRecommendOrg() +func RecommendHomeInfo(ctx *context.Context) { + resultOrg, err := getRecommendOrg() if err != nil { - ctx.ServerError("500", err) - return + log.Info("error." + err.Error()) } - ctx.JSON(200, resultOrg) + resultRepo, err := repository.GetRecommendRepoFromPromote("projects") + if err != nil { + log.Info("error." + err.Error()) + } + resultImage, err := getImageInfo() + if err != nil { + log.Info("error." + err.Error()) + } + resultCloudBrain, err := getCloudbrainNums() + if err != nil { + log.Info("error." + err.Error()) + } + mapInterface := make(map[string]interface{}) + mapInterface["org"] = resultOrg + mapInterface["repo"] = resultRepo + mapInterface["image"] = resultImage + mapInterface["cloudbrain"] = resultCloudBrain + ctx.JSON(http.StatusOK, mapInterface) } +func getCloudbrainNums() (map[string]string, error) { + result := make(map[string]string) + result["completed_task"] = "1800" + result["running_task"] = "20" + result["wait_task"] = "30" + return result, nil +} + +// func RecommendOrgFromPromote(ctx *context.Context) { +// resultOrg, err := GetRecommendOrg() +// if err != nil { +// ctx.ServerError("500", err) +// return +// } +// ctx.JSON(200, resultOrg) +// } + func RecommendRepoFromPromote(ctx *context.Context) { result, err := repository.GetRecommendRepoFromPromote("projects") if err != nil { diff --git a/routers/routes/routes.go b/routers/routes/routes.go index 4c3f5f472..12d0e1cf8 100755 --- a/routers/routes/routes.go +++ b/routers/routes/routes.go @@ -323,10 +323,11 @@ func RegisterRoutes(m *macaron.Macaron) { m.Get("/dashboard", routers.Dashboard) go routers.SocketManager.Run() m.Get("/action/notification", routers.ActionNotification) - m.Get("/recommend/org", routers.RecommendOrgFromPromote) - m.Get("/recommend/repo", routers.RecommendRepoFromPromote) + m.Get("/recommend/home", routers.RecommendHomeInfo) + //m.Get("/recommend/org", routers.RecommendOrgFromPromote) + //m.Get("/recommend/repo", routers.RecommendRepoFromPromote) m.Get("/recommend/userrank/:index", routers.GetUserRankFromPromote) - m.Get("/recommend/imageinfo", routers.GetImageInfoFromPromote) + //m.Get("/recommend/imageinfo", routers.GetImageInfoFromPromote) m.Post("/all/search/", routers.Search) m.Get("/all/search/", routers.EmptySearch) m.Get("/all/dosearch/", routers.SearchApi) diff --git a/templates/home.tmpl b/templates/home.tmpl index aa7a21ccc..ccf734081 100755 --- a/templates/home.tmpl +++ b/templates/home.tmpl @@ -4,9 +4,9 @@
-

完成AI任务
1716

-

运行AI任务
120

-

等待AI任务
80

+

完成AI任务
1716

+

运行AI任务
120

+

等待AI任务
80

From 616d002d2f69971ae3f0c721c9d5b67fd412a38a Mon Sep 17 00:00:00 2001 From: zouap Date: Tue, 24 May 2022 16:47:40 +0800 Subject: [PATCH 010/109] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E6=94=B9=E7=89=88?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- public/home/home.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/public/home/home.js b/public/home/home.js index 9a4847e73..89aad85e0 100755 --- a/public/home/home.js +++ b/public/home/home.js @@ -483,12 +483,9 @@ function queryRecommendData(){ } function displayCloudBrain(json){ - var completed_task = document.getElementById("completed_task"); - completed_task.text(json.completed_task); - var running_task = document.getElementById("running_task"); - running_task.text(json.running_task); - var wait_task = document.getElementById("wait_task"); - wait_task.text(json.wait_task); + $('#completed_task').text(json.completed_task); + $('#running_task').text(json.running_task); + $('#wait_task').text(json.wait_task); } function displayActivity(json){ From 656b5e89c73292e2746aecfe1920dfebacca52d3 Mon Sep 17 00:00:00 2001 From: zouap Date: Tue, 24 May 2022 16:51:20 +0800 Subject: [PATCH 011/109] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E6=94=B9=E7=89=88?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- public/home/home.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/home/home.js b/public/home/home.js index 89aad85e0..bf0da85d6 100755 --- a/public/home/home.js +++ b/public/home/home.js @@ -204,13 +204,13 @@ function getTaskLink(record){ function refresh3DInfo(record){ if(record.OpType == "25" || record.OpType == "29" || record.OpType == "31"){ //cloudbrain one - var lines = $('.rotation3D__line blue'); + var lines = $('.rotation3D__line'); console.log("cloudbrain one line length=" + lines.length); lines[0].find("span").text(record.RefName); }else if(record.OpType == "26" || record.OpType == "27" || record.OpType == "28"){ //cloudbrain two - var lines = $('.rotation3D__line blue'); + var lines = $('.rotation3D__line'); console.log("cloudbrain two line length=" + lines.length); lines[1].find("span").text(record.RefName); } From c50ee706b3e982b7a716753e6925687e9fe0ed2e Mon Sep 17 00:00:00 2001 From: zouap Date: Tue, 24 May 2022 16:55:49 +0800 Subject: [PATCH 012/109] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E6=94=B9=E7=89=88?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- public/home/home.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/public/home/home.js b/public/home/home.js index bf0da85d6..2d27c76f5 100755 --- a/public/home/home.js +++ b/public/home/home.js @@ -205,14 +205,15 @@ function refresh3DInfo(record){ if(record.OpType == "25" || record.OpType == "29" || record.OpType == "31"){ //cloudbrain one var lines = $('.rotation3D__line'); - console.log("cloudbrain one line length=" + lines.length); + var spans = $('.rotation3D__line').find("span") + console.log("cloudbrain one line length=" + lines.length + " spans=" + spans.length); lines[0].find("span").text(record.RefName); }else if(record.OpType == "26" || record.OpType == "27" || record.OpType == "28"){ //cloudbrain two var lines = $('.rotation3D__line'); console.log("cloudbrain two line length=" + lines.length); - lines[1].find("span").text(record.RefName); + //lines[1].find("span").text(record.RefName); } } From 4330c46658792218327cab63138878fc02870770 Mon Sep 17 00:00:00 2001 From: zouap Date: Tue, 24 May 2022 16:58:05 +0800 Subject: [PATCH 013/109] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E6=94=B9=E7=89=88?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- public/home/home.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/public/home/home.js b/public/home/home.js index 2d27c76f5..bca9ddb1e 100755 --- a/public/home/home.js +++ b/public/home/home.js @@ -205,14 +205,14 @@ function refresh3DInfo(record){ if(record.OpType == "25" || record.OpType == "29" || record.OpType == "31"){ //cloudbrain one var lines = $('.rotation3D__line'); - var spans = $('.rotation3D__line').find("span") - console.log("cloudbrain one line length=" + lines.length + " spans=" + spans.length); - lines[0].find("span").text(record.RefName); - + $('.rotation3D__line').find("span").eq(0).text(record.RefName) + console.log("cloudbrain one line length=" + lines.length); + //lines[0].find("span").text(record.RefName); }else if(record.OpType == "26" || record.OpType == "27" || record.OpType == "28"){ //cloudbrain two var lines = $('.rotation3D__line'); console.log("cloudbrain two line length=" + lines.length); + $('.rotation3D__line').find("span").eq(1).text(record.RefName) //lines[1].find("span").text(record.RefName); } From 6216bcc30772b1d1be183ab985cbb27f29c02f56 Mon Sep 17 00:00:00 2001 From: zouap Date: Tue, 24 May 2022 17:03:29 +0800 Subject: [PATCH 014/109] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E6=94=B9=E7=89=88?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- public/home/home.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/public/home/home.js b/public/home/home.js index bca9ddb1e..6bba5134a 100755 --- a/public/home/home.js +++ b/public/home/home.js @@ -205,14 +205,16 @@ function refresh3DInfo(record){ if(record.OpType == "25" || record.OpType == "29" || record.OpType == "31"){ //cloudbrain one var lines = $('.rotation3D__line'); - $('.rotation3D__line').find("span").eq(0).text(record.RefName) + var span = $('.rotation3D__line').find("span")[0]; + console.log(span); + //$('.rotation3D__line').find("span").eq(0).text(record.RefName) console.log("cloudbrain one line length=" + lines.length); //lines[0].find("span").text(record.RefName); }else if(record.OpType == "26" || record.OpType == "27" || record.OpType == "28"){ //cloudbrain two var lines = $('.rotation3D__line'); console.log("cloudbrain two line length=" + lines.length); - $('.rotation3D__line').find("span").eq(1).text(record.RefName) + //$('.rotation3D__line').find("span").eq(1).text(record.RefName) //lines[1].find("span").text(record.RefName); } From 460bff4614bde11e9acda192c2f9a98d2472dca5 Mon Sep 17 00:00:00 2001 From: zouap Date: Tue, 24 May 2022 17:07:32 +0800 Subject: [PATCH 015/109] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E6=94=B9=E7=89=88?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- public/home/home.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public/home/home.js b/public/home/home.js index 6bba5134a..33c7edc47 100755 --- a/public/home/home.js +++ b/public/home/home.js @@ -207,6 +207,7 @@ function refresh3DInfo(record){ var lines = $('.rotation3D__line'); var span = $('.rotation3D__line').find("span")[0]; console.log(span); + span.innerText =record.RefName; //$('.rotation3D__line').find("span").eq(0).text(record.RefName) console.log("cloudbrain one line length=" + lines.length); //lines[0].find("span").text(record.RefName); @@ -214,6 +215,9 @@ function refresh3DInfo(record){ //cloudbrain two var lines = $('.rotation3D__line'); console.log("cloudbrain two line length=" + lines.length); + var span = $('.rotation3D__line').find("span")[1]; + console.log(span); + span.innerText =record.RefName; //$('.rotation3D__line').find("span").eq(1).text(record.RefName) //lines[1].find("span").text(record.RefName); } From bcc84cb4f5b91505165fae9256517c56722bed22 Mon Sep 17 00:00:00 2001 From: liuzx Date: Wed, 25 May 2022 16:26:02 +0800 Subject: [PATCH 016/109] add jobstatus analysis --- models/cloudbrain_static.go | 30 +++++++++++++++ routers/api/v1/api.go | 3 ++ routers/api/v1/repo/cloudbrain_dashboard.go | 58 +++++++++++++++++++++++++++++ 3 files changed, 91 insertions(+) create mode 100644 models/cloudbrain_static.go diff --git a/models/cloudbrain_static.go b/models/cloudbrain_static.go new file mode 100644 index 000000000..de3575632 --- /dev/null +++ b/models/cloudbrain_static.go @@ -0,0 +1,30 @@ +package models + +func GetJobWaitingCount() (int64, error) { + countSql := "SELECT count(*) FROM " + "public.cloudbrain where status ='" + string(JobWaiting) + "'" + return x.SQL(countSql).Count() +} +func GetJobStoppedCount() (int64, error) { + countSql := "SELECT count(*) FROM " + "public.cloudbrain where status ='" + string(JobStopped) + "'" + return x.SQL(countSql).Count() +} +func GetJobCompletedCount() (int64, error) { + countSql := "SELECT count(*) FROM " + "public.cloudbrain where status ='" + string(ModelArtsTrainJobCompleted) + "'" + return x.SQL(countSql).Count() +} +func GetJobFailedCount() (int64, error) { + countSql := "SELECT count(*) FROM " + "public.cloudbrain where status ='" + string(JobFailed) + "'" + return x.SQL(countSql).Count() +} +func GetJobRunningCount() (int64, error) { + countSql := "SELECT count(*) FROM " + "public.cloudbrain where status ='" + string(JobRunning) + "'" + return x.SQL(countSql).Count() +} +func GetJobKilledCount() (int64, error) { + countSql := "SELECT count(*) FROM " + "public.cloudbrain where status ='" + string(ModelArtsTrainJobKilled) + "'" + return x.SQL(countSql).Count() +} +func GetJobInitCount() (int64, error) { + countSql := "SELECT count(*) FROM " + "public.cloudbrain where status ='" + string(ModelArtsTrainJobInit) + "'" + return x.SQL(countSql).Count() +} diff --git a/routers/api/v1/api.go b/routers/api/v1/api.go index 9a05aa8ae..17122b09d 100755 --- a/routers/api/v1/api.go +++ b/routers/api/v1/api.go @@ -573,6 +573,9 @@ func RegisterRoutes(m *macaron.Macaron) { //cloudbrain board m.Group("/cloudbrainboard", func() { m.Get("/downloadAll", repo.DownloadCloudBrainBoard) + m.Group("/cloudbrain", func() { + m.Get("/status_analysis", repo.GetCloudbrainsStatusAnalysis) + }) }, operationReq) // Users m.Group("/users", func() { diff --git a/routers/api/v1/repo/cloudbrain_dashboard.go b/routers/api/v1/repo/cloudbrain_dashboard.go index 2090a2cf2..47a64b5aa 100644 --- a/routers/api/v1/repo/cloudbrain_dashboard.go +++ b/routers/api/v1/repo/cloudbrain_dashboard.go @@ -11,6 +11,16 @@ import ( "github.com/360EntSecGroup-Skylar/excelize/v2" ) +type CloudbrainsStatusAnalysis struct { + JobWaitingCount int64 `json:"jobWaitingCount"` + JobRunningCount int64 `json:"jobRunningCount"` + JobStoppedCount int64 `json:"jobStoppedCount"` + JobCompletedCount int64 `json:"jobCompletedCount"` + JobFailedCount int64 `json:"jobFailedCount"` + JobKilledCount int64 `json:"jobKilledCount"` + JobInitCount int64 `json:"jobInitCount"` +} + func DownloadCloudBrainBoard(ctx *context.Context) { page := 1 @@ -133,3 +143,51 @@ func getBrainWaitTime(rs *models.CloudbrainInfo) string { return models.ConvertDurationToStr(int64(waitTime)) } } +func GetCloudbrainsStatusAnalysis(ctx *context.Context) { + jobWaitingCount, err := models.GetJobWaitingCount() + if err != nil { + log.Error("Can not query jobWaitingCount.", err) + return + } + jobRunningCount, err := models.GetJobRunningCount() + if err != nil { + log.Error("Can not query jobRunningCount.", err) + return + } + jobStoppedCount, err := models.GetJobStoppedCount() + if err != nil { + log.Error("Can not query jobStoppedCount.", err) + return + } + jobCompletedCount, err := models.GetJobCompletedCount() + if err != nil { + log.Error("Can not query jobCompletedCount.", err) + return + } + jobFailedCount, err := models.GetJobFailedCount() + if err != nil { + log.Error("Can not query jobFailedCount.", err) + return + } + jobKilledCount, err := models.GetJobKilledCount() + if err != nil { + log.Error("Can not query jobKilledCount.", err) + return + } + jobInitCount, err := models.GetJobInitCount() + if err != nil { + log.Error("Can not query jobInitCount.", err) + return + } + + cloudbrainsStatusAnalysis := CloudbrainsStatusAnalysis{ + JobWaitingCount: jobWaitingCount, + JobRunningCount: jobRunningCount, + JobStoppedCount: jobStoppedCount, + JobCompletedCount: jobCompletedCount, + JobFailedCount: jobFailedCount, + JobKilledCount: jobKilledCount, + JobInitCount: jobInitCount, + } + ctx.JSON(http.StatusOK, cloudbrainsStatusAnalysis) +} From deba9009e6d33753d3d6aa1afd799986799e95a7 Mon Sep 17 00:00:00 2001 From: liuzx Date: Wed, 25 May 2022 18:06:47 +0800 Subject: [PATCH 017/109] update --- models/cloudbrain_static.go | 46 +++++++++++--------------- routers/api/v1/repo/cloudbrain_dashboard.go | 50 +++-------------------------- 2 files changed, 23 insertions(+), 73 deletions(-) diff --git a/models/cloudbrain_static.go b/models/cloudbrain_static.go index de3575632..31f66d4fc 100644 --- a/models/cloudbrain_static.go +++ b/models/cloudbrain_static.go @@ -1,30 +1,22 @@ package models -func GetJobWaitingCount() (int64, error) { - countSql := "SELECT count(*) FROM " + "public.cloudbrain where status ='" + string(JobWaiting) + "'" - return x.SQL(countSql).Count() -} -func GetJobStoppedCount() (int64, error) { - countSql := "SELECT count(*) FROM " + "public.cloudbrain where status ='" + string(JobStopped) + "'" - return x.SQL(countSql).Count() -} -func GetJobCompletedCount() (int64, error) { - countSql := "SELECT count(*) FROM " + "public.cloudbrain where status ='" + string(ModelArtsTrainJobCompleted) + "'" - return x.SQL(countSql).Count() -} -func GetJobFailedCount() (int64, error) { - countSql := "SELECT count(*) FROM " + "public.cloudbrain where status ='" + string(JobFailed) + "'" - return x.SQL(countSql).Count() -} -func GetJobRunningCount() (int64, error) { - countSql := "SELECT count(*) FROM " + "public.cloudbrain where status ='" + string(JobRunning) + "'" - return x.SQL(countSql).Count() -} -func GetJobKilledCount() (int64, error) { - countSql := "SELECT count(*) FROM " + "public.cloudbrain where status ='" + string(ModelArtsTrainJobKilled) + "'" - return x.SQL(countSql).Count() -} -func GetJobInitCount() (int64, error) { - countSql := "SELECT count(*) FROM " + "public.cloudbrain where status ='" + string(ModelArtsTrainJobInit) + "'" - return x.SQL(countSql).Count() +import "code.gitea.io/gitea/modules/log" + +func GetAllStatusCloudBrain() map[string]int { + sess := x.NewSession() + defer sess.Close() + cloudbrains := make([]*CloudbrainInfo, 0) + if err := sess.Table(&Cloudbrain{}).Unscoped(). + Find(&cloudbrains); err != nil { + log.Info("find error.") + } + cloudBrainStatusResult := make(map[string]int) + for _, cloudbrain := range cloudbrains { + if _, ok := cloudBrainStatusResult[cloudbrain.Status]; !ok { + cloudBrainStatusResult[cloudbrain.Status] = 1 + } else { + cloudBrainStatusResult[cloudbrain.Status] += 1 + } + } + return cloudBrainStatusResult } diff --git a/routers/api/v1/repo/cloudbrain_dashboard.go b/routers/api/v1/repo/cloudbrain_dashboard.go index 47a64b5aa..0710a21e4 100644 --- a/routers/api/v1/repo/cloudbrain_dashboard.go +++ b/routers/api/v1/repo/cloudbrain_dashboard.go @@ -144,50 +144,8 @@ func getBrainWaitTime(rs *models.CloudbrainInfo) string { } } func GetCloudbrainsStatusAnalysis(ctx *context.Context) { - jobWaitingCount, err := models.GetJobWaitingCount() - if err != nil { - log.Error("Can not query jobWaitingCount.", err) - return - } - jobRunningCount, err := models.GetJobRunningCount() - if err != nil { - log.Error("Can not query jobRunningCount.", err) - return - } - jobStoppedCount, err := models.GetJobStoppedCount() - if err != nil { - log.Error("Can not query jobStoppedCount.", err) - return - } - jobCompletedCount, err := models.GetJobCompletedCount() - if err != nil { - log.Error("Can not query jobCompletedCount.", err) - return - } - jobFailedCount, err := models.GetJobFailedCount() - if err != nil { - log.Error("Can not query jobFailedCount.", err) - return - } - jobKilledCount, err := models.GetJobKilledCount() - if err != nil { - log.Error("Can not query jobKilledCount.", err) - return - } - jobInitCount, err := models.GetJobInitCount() - if err != nil { - log.Error("Can not query jobInitCount.", err) - return - } - - cloudbrainsStatusAnalysis := CloudbrainsStatusAnalysis{ - JobWaitingCount: jobWaitingCount, - JobRunningCount: jobRunningCount, - JobStoppedCount: jobStoppedCount, - JobCompletedCount: jobCompletedCount, - JobFailedCount: jobFailedCount, - JobKilledCount: jobKilledCount, - JobInitCount: jobInitCount, - } - ctx.JSON(http.StatusOK, cloudbrainsStatusAnalysis) + cloudBrainStatusResult := models.GetAllStatusCloudBrain() + ctx.JSON(http.StatusOK, map[string]interface{}{ + "cloudBrainStatusResult": cloudBrainStatusResult, + }) } From 09879828aade23f7ca85735e572e85e781d3476b Mon Sep 17 00:00:00 2001 From: zouap Date: Thu, 26 May 2022 08:56:36 +0800 Subject: [PATCH 018/109] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- routers/home.go | 19 ++++++++++++++----- templates/explore/repo_right.tmpl | 2 +- templates/user/dashboard/repolist.tmpl | 4 ++-- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/routers/home.go b/routers/home.go index 09fe97dc6..2f37357e4 100755 --- a/routers/home.go +++ b/routers/home.go @@ -259,7 +259,11 @@ func ExploreRepos(ctx *context.Context) { ctx.Data["PageIsExplore"] = true ctx.Data["PageIsExploreRepositories"] = true ctx.Data["IsRepoIndexerEnabled"] = setting.Indexer.RepoIndexerEnabled - + pictureInfo, err := getImageInfo("dashboard-picture") + if err == nil && len(pictureInfo) > 0 { + ctx.Data["image_url"] = pictureInfo[0]["url"] + ctx.Data["image_link"] = pictureInfo[0]["image_link"] + } var ownerID int64 if ctx.User != nil && !ctx.User.IsAdmin { ownerID = ctx.User.ID @@ -434,7 +438,11 @@ func ExploreUsers(ctx *context.Context) { ctx.Data["PageIsExplore"] = true ctx.Data["PageIsExploreUsers"] = true ctx.Data["IsRepoIndexerEnabled"] = setting.Indexer.RepoIndexerEnabled - + pictureInfo, err := getImageInfo("explore-user-picture") + if err == nil && len(pictureInfo) > 0 { + ctx.Data["image_url"] = pictureInfo[0]["url"] + ctx.Data["image_link"] = pictureInfo[0]["image_link"] + } RenderUserSearch(ctx, &models.SearchUserOptions{ Actor: ctx.User, Type: models.UserTypeIndividual, @@ -668,8 +676,9 @@ func getRecommendOrg() ([]map[string]interface{}, error) { } return resultOrg, nil } -func getImageInfo() ([]map[string]interface{}, error) { - url := setting.RecommentRepoAddr + "picture_info" + +func getImageInfo(filename string) ([]map[string]interface{}, error) { + url := setting.RecommentRepoAddr + filename result, err := repository.RecommendFromPromote(url) if err != nil { @@ -759,7 +768,7 @@ func RecommendHomeInfo(ctx *context.Context) { if err != nil { log.Info("error." + err.Error()) } - resultImage, err := getImageInfo() + resultImage, err := getImageInfo("picture_info") if err != nil { log.Info("error." + err.Error()) } diff --git a/templates/explore/repo_right.tmpl b/templates/explore/repo_right.tmpl index 5e05e797b..d4eebbe6d 100644 --- a/templates/explore/repo_right.tmpl +++ b/templates/explore/repo_right.tmpl @@ -1,4 +1,4 @@ - +