",options:{classes:{},disabled:!1,create:null},_createWidget:function(i,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=e++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var l=s.match(/^([\w:-]*)\s*(.*)$/),h=l[1]+o.eventNamespace,c=l[2];c?n.on(h,c,r):i.on(h,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var s=!1;t(document).on("mouseup",function(){s=!1}),t.widget("ui.mouse",{version:"1.12.0",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!s){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,n=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return n&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),s=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,s=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.ui.safeBlur=function(e){e&&"body"!==e.nodeName.toLowerCase()&&t(e).trigger("blur")},t.widget("ui.draggable",t.ui.mouse,{version:"1.12.0",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass("ui-draggable"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(e){var i=this.options;return this._blurActiveElement(e),this.helper||i.disabled||t(e.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(e),this.handle?(this._blockFrames(i.iframeFix===!0?"iframe":i.iframeFix),!0):!1)},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map(function(){var e=t(this);return t("
").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var i=t.ui.safeActiveElement(this.document[0]),s=t(e.target);this._getHandle(e)&&s.closest(i).length||t.ui.safeBlur(i)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===t(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",e)===!1?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",e,s)===!1)return this._mouseUp(new t.Event("mouseup",e)),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,s=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(s=t.ui.ddmanager.drop(this,e)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",e)!==!1&&i._clear()}):this._trigger("stop",e)!==!1&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.trigger("focus"),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new t.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(e){return this.options.handle?!!t(e.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper),n=s?t(i.helper.apply(this.element[0],[e])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return n.parents("body").length||n.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css("position"))||n.css("position","absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options,o=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?(this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,t(o).width()-this.helperProportions.width-this.margins.left,(t(o).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=t(n.containment),s=i[0],s&&(e=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(e?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i),void 0):(this.containment=null,void 0)},_convertPositionTo:function(t,e){e||(e=this.position);var i="absolute"===t?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,s,n,o,a=this.options,r=this._isRootNode(this.scrollParent[0]),l=t.pageX,h=t.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,t.pageX-this.offset.click.left
i[2]&&(l=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(h=i[3]+this.offset.click.top)),a.grid&&(n=a.grid[1]?this.originalPageY+Math.round((h-this.originalPageY)/a.grid[1])*a.grid[1]:this.originalPageY,h=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-a.grid[1]:n+a.grid[1]:n,o=a.grid[0]?this.originalPageX+Math.round((l-this.originalPageX)/a.grid[0])*a.grid[0]:this.originalPageX,l=i?o-this.offset.click.left>=i[0]||o-this.offset.click.left>i[2]?o:o-this.offset.click.left>=i[0]?o-a.grid[0]:o+a.grid[0]:o),"y"===a.axis&&(l=this.originalPageX),"x"===a.axis&&(h=this.originalPageY)),{top:h-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:l-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(e,i,s){return s=s||this._uiHash(),t.ui.plugin.call(this,e,[i,s,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i,s){var n=t.extend({},i,{item:s.element});s.sortables=[],t(s.options.connectToSortable).each(function(){var i=t(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",e,n))})},stop:function(e,i,s){var n=t.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,t.each(s.sortables,function(){var t=this;t.isOver?(t.isOver=0,s.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,n))})},drag:function(e,i,s){t.each(s.sortables,function(){var n=!1,o=this;o.positionAbs=s.positionAbs,o.helperProportions=s.helperProportions,o.offset.click=s.offset.click,o._intersectsWith(o.containerCache)&&(n=!0,t.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&t.contains(o.element[0],this.element[0])&&(n=!1),n})),n?(o.isOver||(o.isOver=1,s._parent=i.helper.parent(),o.currentItem=i.helper.appendTo(o.element).data("ui-sortable-item",!0),o.options._helper=o.options.helper,o.options.helper=function(){return i.helper[0]},e.target=o.currentItem[0],o._mouseCapture(e,!0),o._mouseStart(e,!0,!0),o.offset.click.top=s.offset.click.top,o.offset.click.left=s.offset.click.left,o.offset.parent.left-=s.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=s.offset.parent.top-o.offset.parent.top,s._trigger("toSortable",e),s.dropped=o.element,t.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,o.fromOutside=s),o.currentItem&&(o._mouseDrag(e),i.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger("out",e,o._uiHash(o)),o._mouseStop(e,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(e),i.position=s._generatePosition(e,!0),s._trigger("fromSortable",e),s.dropped=!1,t.each(s.sortables,function(){this.refreshPositions()}))})}}),t.ui.plugin.add("draggable","cursor",{start:function(e,i,s){var n=t("body"),o=s.options;n.css("cursor")&&(o._cursor=n.css("cursor")),n.css("cursor",o.cursor)},stop:function(e,i,s){var n=s.options;n._cursor&&t("body").css("cursor",n._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("opacity")&&(o._opacity=n.css("opacity")),n.css("opacity",o.opacity)},stop:function(e,i,s){var n=s.options;n._opacity&&t(i.helper).css("opacity",n._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,s){var n=s.options,o=!1,a=s.scrollParentNotHidden[0],r=s.document[0];a!==r&&"HTML"!==a.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+a.offsetHeight-e.pageY=0;d--)l=s.snapElements[d].left-s.margins.left,h=l+s.snapElements[d].width,c=s.snapElements[d].top-s.margins.top,u=c+s.snapElements[d].height,l-g>_||m>h+g||c-g>b||v>u+g||!t.contains(s.snapElements[d].item.ownerDocument,s.snapElements[d].item)?(s.snapElements[d].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(n=g>=Math.abs(c-b),o=g>=Math.abs(u-v),a=g>=Math.abs(l-_),r=g>=Math.abs(h-m),n&&(i.position.top=s._convertPositionTo("relative",{top:c-s.helperProportions.height,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left)),p=n||o||a||r,"outer"!==f.snapMode&&(n=g>=Math.abs(c-v),o=g>=Math.abs(u-b),a=g>=Math.abs(l-m),r=g>=Math.abs(h-_),n&&(i.position.top=s._convertPositionTo("relative",{top:c,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left)),!s.snapElements[d].snapping&&(n||o||a||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=n||o||a||r||p)}}),t.ui.plugin.add("draggable","stack",{start:function(e,i,s){var n,o=s.options,a=t.makeArray(t(o.stack)).sort(function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)});a.length&&(n=parseInt(t(a[0]).css("zIndex"),10)||0,t(a).each(function(e){t(this).css("zIndex",n+e)}),this.css("zIndex",n+a.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("zIndex")&&(o._zIndex=n.css("zIndex")),n.css("zIndex",o.zIndex)},stop:function(e,i,s){var n=s.options;n._zIndex&&t(i.helper).css("zIndex",n._zIndex)}}),t.ui.draggable});
--------------------------------------------------------------------------------
/content_script/page/lesson.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Electsys++ Project
3 | * ----------------------------
4 | * 选课优化模块
5 | */
6 |
7 | const INTERVAL_DEFAULT = 1600;
8 | const INTERVAL_STEP = 200;
9 |
10 | function post(url,data,lid)
11 | {
12 | /* if (localStorage["lesson_enable"] == undefined || localStorage["lesson_enable"] == 0) {
13 | return 0;
14 | };
15 | */
16 | g_ajax_sending = true;
17 | jQuery.ajax({
18 | type: 'POST',
19 | url: url,
20 | data: data,
21 | async: true,
22 | success: function (data, res) {
23 | g_ajax_sending = false;
24 | processArrangement(data, lid, url);
25 | },
26 | error: function (data) {
27 | g_ajax_sending = false;
28 | console.log("error", data);
29 | },
30 | dataType: "html"
31 | });
32 |
33 | return 0;
34 | }
35 |
36 |
37 | //颜色对照表
38 | color = [];
39 | color[0] = ["#84C1FF","#84C1FF","#84C1FF","#84C1FF","#84C1FF","#84C1FF","#84C1FF"]
40 | color[1] = ["#ff7575","#ff7575","#ff7575","#ff7575","#ff7575","#ff7575","#ff7575"]
41 | border_color = [];
42 | border_color[0] = "blue";
43 | border_color[1] = "red";
44 |
45 | //查询缓存
46 | var g_arrange_cache = {};
47 | var g_last_query_success = new Date().getTime() - INTERVAL_DEFAULT;
48 | var g_ajax_sending = false;
49 |
50 | function lesson_enable_check () {
51 |
52 | // enable the function
53 | var timestamp = Date.parse(new Date())/1000;
54 | if (!(option.get("lesson_enable_timestamp", 0) > 10))
55 | option.set("lesson_enable_timestamp", 100);
56 | if (timestamp - option.get("lesson_enable_timestamp", 0) > 60 * 5) {
57 | jQuery.ajax({
58 | type: 'GET',
59 | url: "http://1.laohyxwebauth.sinaapp.com/electsys_lesson_enable.php",
60 | data: {},
61 | async: true,
62 | success: function (data) {
63 | option.set("lesson_enable", data["enable"]);
64 | console.log(data["enable"]);
65 | },
66 | error: function (data) {
67 | console.log("error");
68 | },
69 | dataType: "json"
70 | });
71 | option.set("lesson_enable_timestamp", timestamp);
72 | }
73 |
74 | }
75 |
76 | //选课提醒页面
77 | function optimize_elect_warning()
78 | {
79 | if(!inUrl("/edu/student/elect/electwarning.aspx") ||
80 | !option.getBool('optimize_lesson', true)) {
81 | return;
82 | }
83 |
84 | //选中“我已阅读”
85 | jQuery("input[type=\"checkbox\"]").prop('checked', true);
86 |
87 | //为“继续”按钮设置焦点
88 | jQuery("#btnContinue").focus();
89 | }
90 |
91 | function optimize_elect()
92 | {
93 |
94 | document = document;
95 | //在课程安排中获取老师评教
96 | show_teacher_eval();
97 | if(!inUrl("/edu/student/elect") ||
98 | !option.getBool('optimize_lesson', true))
99 | {
100 | return 0;
101 | }
102 |
103 | //不需要应用优化的页面
104 | var black_list = [
105 | "/edu/student/elect/viewLessonTbl.aspx",
106 | "/edu/student/elect/electResultOuter.aspx",
107 | "/edu/student/elect/electwarning.aspx",
108 | "/edu/student/elect/RecommandTblOuter.aspx",
109 | "/edu/student/elect/selectRecommandLesson.aspx"
110 | ];
111 | if(inUrl(black_list)) {
112 | return 0;
113 | }
114 |
115 | title = jQuery(".tit",document);
116 | title.removeAttr("width");
117 | /*
118 | if (localStorage["lesson_enable"] == undefined || localStorage["lesson_enable"] == 0) {
119 | jQuery("table").slice(2,3).before('')
120 |
121 | };
122 | */
123 | //插入小课表
124 | prepend_smalltable();
125 | title[0].innerHTML += " Electsys++ " + option.get('extension_version');
126 | jQuery('body').append('');
127 |
128 | type = "tongshi";
129 |
130 | if(inUrl("/edu/student/elect/speltyRequiredCourse.aspx"))
131 | type = "bixiu";
132 | if(inUrl("/edu/student/elect/speltyCommonCourse.aspx"))
133 | type = "tongshi";
134 | if(inUrl("/edu/student/elect/outSpeltyEP.aspx"))
135 | type = "renxuan";
136 | if(inUrl("/edu/student/elect/ShortSession.aspx"))
137 | type = "xiaoxueqi";
138 |
139 | radiogroup = jQuery("[name=myradiogroup]",document);
140 | for(radio_index = 0; radio_index < radiogroup.length ; radio_index++){
141 | jQuery(radiogroup[radio_index]).click(function () {
142 | var lid = this.value;
143 | var me = this;
144 |
145 | // 有缓存的情况下直接加载缓存页面
146 | //console.log(g_arrange_cache, lid);
147 | if (option.getBool('optimize_lesson_query_cache', true) &&
148 | g_arrange_cache.hasOwnProperty(lid)) {
149 | var cache = g_arrange_cache[lid];
150 | var now = new Date().getTime();
151 | //console.log(cache.expire > now);
152 | if (cache.expire > now) {
153 | // 更改 pushstate
154 | window.history.replaceState({lid: lid}, 'speltyGeneralCourse', url);
155 | window.history.pushState(null, 'viewLesson', url);
156 |
157 | // 页面回退
158 | window.onpopstate = function(event) {
159 | if (event.state.lid) {
160 | jQuery('#Table1').show();
161 | jQuery('#st_fixed_div').show();
162 | jQuery('#electsys_view_lesson').html('');
163 |
164 | // 清除原先加的提示颜色
165 | clearDraw_lid(lid);
166 | jQuery(me).parent().parent().parent()
167 | .attr('style', '')
168 | .removeAttr('clicked');
169 | // 取消选中
170 | jQuery(me).prop('checked', false);
171 | }
172 | };
173 |
174 | // 处理新页面
175 | var body = cache.html
176 | .replace(/\.\.\//g, '../../')
177 | .replace(/(viewLessonArrange).aspx/g, '../../lesson/$1.aspx');
178 | var bodyStart = body.indexOf(''.length);
181 |
182 | // 加载新页面
183 | jQuery('#electsys_view_lesson').html(body);
184 | jQuery('#Table1').hide();
185 | jQuery('#st_fixed_div').hide();
186 |
187 | return;
188 | }
189 | }
190 |
191 | setTimeout(function () {
192 | jQuery("input[value=课程安排]").trigger("click");
193 | }, 400);
194 | })
195 | var lid = radiogroup[radio_index].value;
196 | //console.log(radio_index + "~~" + lid);
197 | radio = radiogroup[radio_index];
198 | lesson_name = radio.parentElement.parentElement.parentElement.children[1].innerHTML.toString().trim();
199 |
200 | var type_name = "";
201 | if(type == "xiaoxueqi") {
202 | type_name = radio.parentElement.parentElement.parentElement.children[3].innerHTML.toString().trim();
203 | }
204 |
205 | GE_table = ["other","人文学科","社会科学","自然科学与工程技术","数学或逻辑学"];
206 | var GE_type = jQuery.inJSON(GE_list,lesson_name);
207 |
208 | if(type == "renxuan" && GE_type.length > 0){ // 普通选课
209 | radio.parentElement.parentElement.parentElement.children[1].innerHTML = "" + lesson_name + "(2015级及以前可冲抵通识:" + GE_table[GE_type[0]] + ")";
210 | }
211 | else if(type == "xiaoxueqi" && type_name != "通识" && GE_type.length > 0){ // 小学期选课
212 | radio.parentElement.parentElement.parentElement.children[1].innerHTML = "" + lesson_name + "(2015级及以前可冲抵通识:" + GE_table[GE_type[0]] + ")";
213 | }
214 | else{
215 | //radio.parentElement.parentElement.parentElement.children[1].innerHTML = "" + lesson_name + "";
216 | }
217 | //console.log(lesson_name);
218 |
219 | }
220 |
221 | var html = jQuery("[name=myradiogroup]",document).slice(0,1).parent().parent().parent().prev().children().slice(0,1).html();
222 | jQuery("[name=myradiogroup]",document).slice(0,1).parent().parent().parent().prev().children().slice(0,1).css({"background-color":"#83A9C9", "background-image":"none"});
223 | jQuery("[name=myradiogroup]",document).slice(0,1).parent().parent().parent().prev().children().slice(0,1).html("【刷新信息】");
224 |
225 | document.processInterval = INTERVAL_DEFAULT;
226 | init_query_list();
227 |
228 | jQuery('.refresh_list').click(function(){
229 | clearAllInterval();
230 | jQuery(".fullspan,.attrtag").remove();
231 | var radiogroup = jQuery("[name=myradiogroup]",document).get().reverse();
232 | document.lids = [];
233 | for(radio_index = 0; radio_index < radiogroup.length ; radio_index++){
234 | //在列表上添加是否空的span - fullspan
235 | var lid = radiogroup[radio_index].value;
236 | document.lids[radio_index] = [lid,type];
237 | jQuery(radiogroup[radio_index]).parent().after(' ');
238 | }
239 |
240 | setInterval("processLidQueue();", document.processInterval);
241 | });
242 |
243 | }
244 | function init_query_list(){
245 | jQuery(".fullspan,.attrtag").remove();
246 | var radiogroup = jQuery("[name=myradiogroup]",document).get().reverse();
247 | document.lids = [];
248 | for(radio_index = 0; radio_index < radiogroup.length ; radio_index++){
249 | var lid = radiogroup[radio_index].value;
250 | jQuery(radiogroup[radio_index]).parent().after(' ');
251 | jQuery(radiogroup[radio_index]).parent().before('查');
252 | }
253 | jQuery('.lesson_query').click(function(event){
254 | event.stopPropagation();
255 | jQuery(this).parent().find('.fullspan').html(' ');
256 | var lid = jQuery(this).attr('lid');
257 | document.lids[document.lids.length] = [lid,type];
258 | clearAllInterval();
259 | var now = new Date().getTime();
260 | var diff = g_last_query_success + document.processInterval - now;
261 | if (g_ajax_sending) {
262 | diff += document.processInterval;
263 | }
264 |
265 | // 如果没有在限制频率内,则直接查询,加快速度
266 | setTimeout(function () {
267 | processLidQueue(); // POST first
268 | setInterval("processLidQueue();", document.processInterval);
269 | }, Math.max(0, diff) + 100);
270 | });
271 | }
272 |
273 | function prepend_smalltable()
274 | {
275 |
276 | st_fixed_div = jQuery(' 课程表(展开/收起)
electsys++(' + option.get('extension_version', '') + ') by laohyx(拖动)
');
277 | jQuery("body").prepend(st_fixed_div);
278 | jQuery("#st_fixed_div").draggable({handle:"#smalltable_handle"});
279 | jQuery("#LessonTbl1_spanContent_small").append(jQuery(".alltab",document)[jQuery(".alltab",document).length - 1].outerHTML);
280 | let malltable_slide = option.getBool("malltable_slide", true);
281 |
282 | if (!malltable_slide) {
283 | jQuery("#smalltable_container").slideToggle(0);
284 | } else {
285 | option.set("malltable_slide", malltable_slide);
286 | }
287 |
288 | jQuery(".smalltable_title").click(function(){
289 | jQuery("#smalltable_container").slideToggle("slow");
290 | malltable_slide = !malltable_slide;
291 | option.set("malltable_slide", malltable_slide);
292 | });
293 |
294 | }
295 |
296 |
297 |
298 |
299 | function processLidQueue()
300 | {
301 | if (document.lids.length == 0) {
302 | clearAllInterval();
303 | return;
304 | };
305 | // 取栈顶
306 | var args = document.lids[document.lids.length - 1];
307 | document.lids = document.lids.slice(0, document.lids.length - 1);
308 | var lid = args[0];
309 | var type = args[1];
310 | // console.log(lid, type);
311 | var data = {};
312 | data = {"__VIEWSTATE":jQuery('#__VIEWSTATE',document).val(),"__EVENTVALIDATION":jQuery('#__EVENTVALIDATION',document).val()}
313 | if(type == "renxuan")
314 | {
315 | data["OutSpeltyEP1$dpYx"]=jQuery("#OutSpeltyEP1_dpYx",document).val();
316 | data["OutSpeltyEP1$dpNj"]=jQuery("#OutSpeltyEP1_dpNj",document).val();
317 | }
318 |
319 | data["myradiogroup"] = lid;
320 | sub_button = jQuery('[value=课程安排]',document)
321 | data[sub_button.attr("name")] = sub_button.val();
322 | input_elements = jQuery("[type=hidden]",document);
323 |
324 | form = jQuery("form",document);
325 | url = base_url + "/edu/student/elect/" + form.attr("action");
326 | post(url,data,lid);
327 | return 0;
328 |
329 | }
330 | function clearAllInterval(){
331 | var highestIntervalId = setInterval(";", 100000);
332 | for (var i = 0 ; i <= highestIntervalId ; i++) {
333 | clearInterval(i);
334 | }
335 |
336 | }
337 | function getArrangement(lid,type)
338 | {
339 | data = {};
340 | data = {"__VIEWSTATE":jQuery('#__VIEWSTATE',document).val(),"__EVENTVALIDATION":jQuery('#__EVENTVALIDATION',document).val()}
341 | if(type == "renxuan")
342 | {
343 | data["OutSpeltyEP1jQuerydpYx"]=jQuery("#OutSpeltyEP1_dpYx",document).val();
344 | data["OutSpeltyEP1jQuerydpNj"]=jQuery("#OutSpeltyEP1_dpNj",document).val();
345 | }
346 | data["myradiogroup"] = lid;
347 | sub_button = jQuery('[value=课程安排]',document)
348 | data[sub_button.attr("name")] = sub_button.val();
349 | input_elements = jQuery("[type=hidden]",document);
350 |
351 | form = jQuery("form",document);
352 | url = base_url + "/edu/student/elect/" + form.attr("action");
353 |
354 | post(url,data,lid);
355 | return 0;
356 |
357 | }
358 |
359 | function processArrangement(html, lid, url)
360 | {
361 | //判断是否有错误提示
362 | var error_pattern = new RegExp("(.*?)");
363 | var error_match = error_pattern.exec(html);
364 | if(error_match != null)
365 | {
366 | var error_message = error_match[1];
367 | console.log(error_message);
368 |
369 | if(error_message.indexOf("不能继续增加通识课") > -1){
370 | // 记录接受到响应的时间
371 | g_last_query_success = new Date().getTime();
372 |
373 | error_message = "通识达上限";
374 | document.lids = [];
375 | //在列表上添加是否空的提示
376 | lessontr = jQuery("input[value=" + lid + "]",document).parent().parent().parent();
377 | fullspan = lessontr.find(".fullspan")[0];
378 | fullspan.setAttribute("style","color:gray");
379 | fullspan.innerHTML = error_message;
380 | return;
381 | }
382 |
383 | // 其他情况(比如提示查询频繁)
384 | // 把该lid加回去
385 | document.lids[document.lids.length] = [lid, type];
386 | document.processInterval += INTERVAL_STEP;
387 | console.log(document.processInterval);
388 | clearAllInterval();
389 | setInterval("processLidQueue();", document.processInterval);
390 |
391 | return;
392 | }
393 |
394 | // 记录接受到响应的时间
395 | g_last_query_success = new Date().getTime();
396 | // 缓存查询结果
397 | g_arrange_cache[lid] = {
398 | url: url,
399 | html: html,
400 | expire: g_last_query_success + document.processInterval
401 | };
402 |
403 | // 开始处理html,并绘制至课表中
404 | // 这段代码是我大二写的,已经是2011年的事了。。。相信它会运行很久
405 |
406 | var lessons = [];
407 | tablelsn = jQuery("#LessonTime1_gridMain",html)[0];
408 |
409 |
410 | trs = jQuery("tr",tablelsn).slice(1);
411 | // console.log(lid);
412 | for(x = 0; x < trs.length; x++){
413 | var l = {"lid" : lid, "now" : Number(trs.slice(x,x+1).children().slice(8,9).text()), "max" : Number(trs.slice(x,x+1).children().slice(5,6).text()) };
414 | l.arrange = Trim(trs.slice(x,x+1).children().slice(9,10).text(),"g")
415 | l.times = []
416 | pattern = new RegExp("星期(.*?)第(.*?)节--第(.*?)节","ig");
417 | matches = l.arrange.match(pattern);
418 |
419 |
420 | matches = matches.distinct();
421 | for (i = 0 ; i < matches.length;i++)
422 | {
423 | pattern = new RegExp("星期(.*?)第(.*?)节--第(.*?)节","ig");
424 | txt = matches[i];
425 | //console.log(txt);
426 | match = pattern.exec(txt);
427 | //console.log(match);
428 | switch(match[1]){
429 | case "一":
430 | day = 1; break;
431 | case "二":
432 | day = 2; break;
433 | case "三":
434 | day = 3; break;
435 | case "四":
436 | day = 4; break;
437 | case "五":
438 | day = 5; break;
439 | case "六":
440 | day = 6; break;
441 | case "日":
442 | day = 7; break;
443 | default:
444 | day = 7; }
445 | if(l.max - l.now > 0)
446 | full = 0;
447 | else
448 | full = 1;
449 | //console.log(l.lid);
450 | time = {"day":day,"from":Number(match[2]),"to":Number(match[3]),"full":full}
451 | l.times.push(time);
452 | }
453 | //n个老师
454 | lessons.push(l);
455 | }
456 |
457 |
458 | //保存lessons信息到tr中,用隐藏的div存储
459 | lessontr = jQuery("input[value=" + lid + "]",document).parent().parent().parent();
460 | // console.log(lessons);
461 |
462 | lessontr.attr("lid",lid);
463 | var full_identifier = 1;
464 | for(x=0; x < lessons.length; x++){
465 | times = lessons[x].times;
466 | //console.log(time);
467 | for(y=0; y < times.length;y++)
468 | {
469 | time = times[y];
470 | if(time.full == 0)
471 | full_identifier = 0;
472 | attrtag = document.createElement("div");
473 | attrtag.setAttribute("class","attrtag");
474 | attrtag.setAttribute("day",time.day);
475 | attrtag.setAttribute("from",time.from);
476 | attrtag.setAttribute("to",time.to);
477 | attrtag.setAttribute("full",time.full);
478 | attrtag.setAttribute("hidden","true");
479 | attrtag.setAttribute("teacher_order",x);
480 | lessontr.slice(0,1).append(attrtag);
481 | }
482 | }
483 |
484 | //在列表上修改是否空的提示
485 | fullspan = lessontr.find(".fullspan")[0];
486 | // console.log(lessons);
487 | if(lessons.length == 0){
488 | fullspan.setAttribute("style","color:gray");
489 | fullspan.innerHTML = "无";
490 | return;
491 | }
492 |
493 | if(full_identifier == 1)
494 | {
495 | fullspan.setAttribute("style","color:gray");
496 | fullspan.innerHTML = "满";
497 | }
498 | else
499 | {
500 | fullspan.setAttribute("style","color:blue");
501 | fullspan.innerHTML = "未满";
502 | }
503 | if(jQuery("tr",tablelsn).length < 2 )
504 | {
505 | jQuery("#loadimg_"+lid,document).remove();
506 | return 0;
507 | }
508 |
509 | //lessontr.slice(0,1).children().slice(0,1).append(fullspan);
510 |
511 |
512 |
513 |
514 | lessontr.mouseover(function(){
515 | if(jQuery(this).attr("clicked") != "1"){
516 | jQuery(this).css("background-color","#CFC");
517 | draw_lesson(jQuery(this).attr("lid"),0);
518 | }
519 | });
520 |
521 | lessontr.click(function(){
522 | jQuery(this).css("background-color","#FC9");
523 | if(jQuery(this).attr("clicked") == "1"){
524 | jQuery(this).attr("clicked","0");
525 | clearDraw_lid(jQuery(this).attr("lid"));
526 | }else{
527 | clearDraw_lid(jQuery(this).attr("lid"));
528 | draw_lesson(jQuery(this).attr("lid"),1);
529 | jQuery(this).attr("clicked","1");
530 | }
531 |
532 | });
533 | jQuery("input[value=" + lid + "]",document).parent().parent().parent().mouseout(function(){
534 | if(jQuery(this).attr("clicked") != "1"){
535 | jQuery(this).attr("style","");
536 | clearDraw_lid(jQuery(this).attr("lid"));
537 | }
538 |
539 | })
540 |
541 | return 0;
542 | }
543 |
544 |
545 |
546 |
547 | //获取元素的纵坐标
548 | function getTop(e){
549 | var offset=e.offsetTop;
550 | if(e.offsetParent!=null) offset+=getTop(e.offsetParent);
551 | return offset;
552 | }
553 | //获取元素的横坐标
554 | function getLeft(e){
555 | var offset=e.offsetLeft;
556 | if(e.offsetParent!=null) offset+=getLeft(e.offsetParent);
557 | return offset;
558 | }
559 |
560 | function draw_lesson(lid,clicked)
561 | {
562 | lessontr = jQuery("tr[lid=" + lid + "]",document);
563 | lessons = jQuery("div[hidden=true]",lessontr);
564 | for(x=0; x < lessons.length; x++){
565 | lesson = lessons[x];
566 | day = lesson.getAttribute("day");
567 | from = lesson.getAttribute("from");
568 | to = lesson.getAttribute("to");
569 | full= lesson.getAttribute("full");
570 | teacher_order = Number(lesson.getAttribute("teacher_order")) + 1;
571 | draw(day,from,to,full,lid,clicked,teacher_order);
572 | }
573 |
574 |
575 |
576 | }
577 |
578 |
579 | function draw(weekday,hour_from,hour_to,isFull,lid,clicked,t_order)
580 | {
581 | //动态处理表格宽度
582 | //document = parent.window.frames[2];
583 | document = document;
584 |
585 | //课表的处理
586 |
587 | //Summer session
588 | if(inUrl("/edu/student/elect/ShortSession.aspx")){
589 | //table_span = jQuery("#LessonTbl1_span1",document);
590 | table = jQuery(".alltab",document)[jQuery(".alltab",document).length - 1];
591 | }
592 | else{
593 | table_span = jQuery("#LessonTbl1_spanContent,#lessonTbl_spanContent",document);
594 | table = jQuery(".alltab",table_span)[0];
595 | }
596 |
597 |
598 |
599 | tbody = table.children[0];
600 | tablex = getTop(table);
601 | tabley = getLeft(table);
602 |
603 | //trlist,0是表头,1~15是14节课
604 | trlist = tbody.children;
605 |
606 | //每行高度,0为表头
607 | cellheight = new Array();
608 | for(var n = 0;n < 15;n++){
609 | cellheight[n] = trlist[n].clientHeight;
610 | }
611 |
612 | //每格宽度,0为序号单元
613 | cellwidth = new Array();
614 | for(var n=0;n<8;n++)
615 | {
616 | cellwidth[n]=trlist[0].children[n].clientWidth+2;
617 | }
618 | //动态处理表格宽度 over
619 |
620 |
621 | posx=cellwidth[0];
622 | posy=0;
623 |
624 | weekday = Number(weekday);
625 | hour_from = Number(hour_from);
626 | hour_to = Number(hour_to);
627 | isFull = Number(isFull);
628 | clicked = Number(clicked);
629 |
630 |
631 | for(var n=1;n < weekday;n++)
632 | posx += cellwidth[n];
633 | for ( var n = 0; n < hour_from; n++) {
634 | posy += cellheight[n];
635 | }
636 | draw_height = 0;
637 | for ( var n = hour_from; n <= hour_to ; n++){
638 | draw_height += cellheight[n];
639 |
640 | }
641 | draw_width = cellwidth[weekday];
642 |
643 | if(t_order > 5)
644 | {
645 | draw_color = color[isFull][6 - 1];
646 | }
647 | else
648 | {
649 | draw_color = color[isFull][t_order - 1];
650 | }
651 |
652 | draw_obj = document.createElement("div");
653 | draw_id = "draw"+weekday+hour_from+hour_to+isFull;
654 | draw_obj.setAttribute("class","lsntable_draw");
655 | draw_obj.setAttribute("class",draw_id);
656 | draw_obj.setAttribute("lid",lid);
657 | draw_obj.setAttribute("clicked",clicked);
658 | draw_obj.innerHTML = lid + "_" + t_order;
659 | if(isFull == 0)
660 | draw_obj.innerHTML += "
未满";
661 | else
662 | draw_obj.innerHTML += "
满";
663 |
664 | jQuery("#LessonTbl1_spanContent,#lessonTbl_spanContent").append(draw_obj);
665 | //jQuery("#"+draw_id).css({"width":draw_width-border_width,"height":draw_height-border_width,"position":"absolute","top":posy+getTop(table),"left":posx+getLeft(table)+border_width,"border":border_width+"px solid "+draw_color})
666 | jQuery("."+draw_id,document).css({"width":draw_width - 3,"height":draw_height - 3 ,"position":"absolute","top":posy+getTop(table)+2,"left":posx+getLeft(table)+2,"background":draw_color,"font-size":"12px","opacity":"0.8","text-align":"center","border":"1px solid "+border_color[isFull]});
667 |
668 |
669 |
670 |
671 |
672 |
673 | /****************************************************
674 | *
675 | *
676 | * 画小课表
677 | *
678 | *
679 | *
680 | */
681 |
682 | //动态处理表格宽度
683 | document = document;
684 | smalltable_span = jQuery("#LessonTbl1_spanContent_small",document);
685 | //课表的处理
686 | table = jQuery(".alltab",smalltable_span)[0];
687 |
688 |
689 | tbody = table.children[0];
690 | tablex = getTop(table);
691 | tabley = getLeft(table);
692 |
693 |
694 | //trlist,0是表头,1~15是14节课
695 | trlist = tbody.children;
696 |
697 | //每行高度,0为表头
698 | cellheight = new Array();
699 | for(var n = 0;n < 15;n++){
700 | cellheight[n] = trlist[n].clientHeight;
701 | }
702 |
703 | //每格宽度,0为序号单元
704 | cellwidth = new Array();
705 | for(var n=0;n<8;n++)
706 | {
707 | cellwidth[n]=trlist[0].children[n].clientWidth+2;
708 | }
709 | //动态处理表格宽度 over
710 |
711 |
712 | posx=cellwidth[0];
713 | posy=0;
714 |
715 | weekday = Number(weekday);
716 | hour_from = Number(hour_from);
717 | hour_to = Number(hour_to);
718 | isFull = Number(isFull);
719 | clicked = Number(clicked);
720 |
721 |
722 | for(var n=1;n < weekday;n++)
723 | posx += cellwidth[n];
724 | for ( var n = 0; n < hour_from; n++) {
725 | posy += cellheight[n];
726 | }
727 | draw_height = 0;
728 | for ( var n = hour_from; n <= hour_to ; n++){
729 | draw_height += cellheight[n];
730 |
731 | }
732 | draw_width = cellwidth[weekday];
733 | if(t_order > 5)
734 | {
735 | draw_color = color[isFull][6 - 1];
736 | }
737 | else
738 | {
739 | draw_color = color[isFull][t_order - 1];
740 | }
741 |
742 | draw_obj = document.createElement("div");
743 | draw_id = "draw"+weekday+hour_from+hour_to+isFull;
744 | draw_obj.setAttribute("class","lsntable_draw");
745 | draw_obj.setAttribute("class",draw_id+"_small");
746 | draw_obj.setAttribute("lid",lid);
747 | draw_obj.setAttribute("clicked",clicked);
748 | draw_obj.innerHTML = lid + "_" + t_order;
749 | if(isFull == 0)
750 | draw_obj.innerHTML += "
未满";
751 | else
752 | draw_obj.innerHTML += "
满";
753 | tbody.appendChild(draw_obj);
754 | //这里与画大课表上的div不同,它已经有相对位置,因此只要加25的title高就ok
755 | jQuery("."+draw_id+"_small",document).css({"width":draw_width -3 ,"height":draw_height - 3,"position":"absolute","top":posy + 25 + 2,"left":posx + 2,"background":draw_color,"font-size":"12px","opacity":"0.8","text-align":"center","border":"1px solid "+border_color[isFull]});
756 |
757 | }
758 |
759 |
760 |
761 |
762 | function clearDraw_lid(lid)
763 | {
764 | tables = jQuery("#LessonTbl1_spanContent,#LessonTbl_spanContent,#LessonTbl1_spanContent_small",document);
765 | jQuery("div[lid=" + lid + "]",tables).remove();
766 |
767 | //jQuery(".lsntable_draw").remove();
768 | }
769 |
770 | function clearDraw(clicked)
771 | {
772 | tables = jQuery("#LessonTbl1_spanContent,#LessonTbl_spanContent,#LessonTbl1_spanContent_small",document);
773 | if(clicked == 0)
774 | jQuery("div[clicked=0]",tables).remove();
775 | else
776 | jQuery("div[clicked=1]",tables).remove();
777 | //jQuery(".lsntable_draw").remove();
778 | }
779 | function Trim(str,is_global)
780 | {
781 | var result;
782 | result = str.replace(/(^\s+)|(\s+jQuery)/g,"");
783 | if(is_global.toLowerCase()=="g")
784 | result = result.replace(/\s/g,"");
785 | return result;
786 | }
787 |
788 | function show_teacher_eval () {
789 | if(!inUrl("/edu/lesson/viewLessonArrange.aspx"))
790 | return;
791 | var lesson_tr = jQuery("#LessonTime1_gridMain").children().children().slice(1);
792 | for (var i = 0; i < lesson_tr.length; i++) {
793 | var name = lesson_tr.slice(i,i+1).children().slice(1,2).text();
794 | var app_str = name + " (";
795 | if (eval_list[name] == undefined) {
796 | app_str += "N/A)";
797 | }else{
798 | app_str += eval_list[name].slice(0,5) + ")";
799 | }
800 | lesson_tr.slice(i,i+1).children().slice(1,2).text(app_str);
801 | }
802 |
803 | }
804 |
--------------------------------------------------------------------------------
/content_script/data/lesson_data.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Electsys++ Project
3 | * ----------------------------
4 | * 课程评教数据
5 | */
6 |
7 | // 通识课列表
8 | // from http://www.jwc.sjtu.edu.cn/web/sjtu/198015-1980000004260.htm
9 | // updated on 2016/12/21
10 |
11 | var GE_list = {
12 | '时装文化与流行鉴赏': 1,
13 | '创新与创业': 1,
14 | '创新与创业(2)': 1,
15 | '建筑艺术欣赏': 1,
16 | '艺术哲学': 1,
17 | '中西方建筑文化': 1,
18 | '中国美术史': 1,
19 | '认知艺术': 1,
20 | '生命伦理学': 1,
21 | '中医药与中华传统文化': 1,
22 | '认知科学与语言': 1,
23 | '大学语文': 1,
24 | '清代文祸与文化': 1,
25 | '精神分析与文学': 1,
26 | '文学与人生': 1,
27 | '中国传统经典的阅读与翻译': 1,
28 | '《论语》导读': 1,
29 | '中国古典小说名著解读': 1,
30 | '唐诗讲读': 1,
31 | '宋词经典赏析': 1,
32 | '小说与人生': 1,
33 | '中国现代文学与文化': 1,
34 | '中国古诗词': 1,
35 | '古典诗文选读': 1,
36 | '中国的世界文化与自然遗产': 1,
37 | '中国现代诗歌导读': 1,
38 | '文字中国': 1,
39 | '中国艺术史': 1,
40 | '古典诗文名篇选读': 1,
41 | '唐诗宋词人文解读': 1,
42 | '文字中国': 1,
43 | '红楼梦研究': 1,
44 | '汉字文化': 1,
45 | '中国古典小说名著欣赏': 1,
46 | '唐宋诗词鉴赏': 1,
47 | '外国文学史(B类)': 1,
48 | '中国古代文学史': 1,
49 | '当代西方人文艺术思潮': 1,
50 | '西方宗教文化概论': 1,
51 | '中日科技文化交流': 1,
52 | '外国人眼里的中国与百年来的中外交流': 1,
53 | '韩国道德教育文化漫谈': 1,
54 | '文学与文化': 1,
55 | '台湾文学与文化': 1,
56 | '欧亚文化节庆研讨': 1,
57 | '遗产学--世界艺术史及遗产在21世纪的全球性挑战': 1,
58 | '文学人类学': 1,
59 | '世界华文文学专题': 1,
60 | '书法艺术': 1,
61 | '篆刻艺术': 1,
62 | '翻译有"道"': 1,
63 | '英语写作': 1,
64 | '上海城的电影和音乐': 1,
65 | '电影美学导论': 1,
66 | '影视艺术理论及鉴赏': 1,
67 | '美国电影文化专题': 1,
68 | '海外华语电影鉴赏': 1,
69 | '影视文化与艺术': 1,
70 | '享受古典': 1,
71 | '动画导论': 1,
72 | '与风景的对话——中外园林艺术欣赏': 1,
73 | '德国社会史': 1,
74 | '西方音乐文化史': 1,
75 | '中国现代史重大问题研究': 1,
76 | '通俗明史': 1,
77 | '当代中国外交史': 1,
78 | '清史演义': 1,
79 | '外国美术史': 1,
80 | '晚期帝制中国:1279-1911': 1,
81 | '影像与历史': 1,
82 | '中西文化交流': 1,
83 | '世界历史名人评传': 1,
84 | '古罗马文明': 1,
85 | '日本近现代史': 1,
86 | '世界文明中的科学技术': 1,
87 | '欧洲文明史概论': 1,
88 | '中国儒学史': 1,
89 | '日本现代史': 1,
90 | '回忆录、口述史与二十世纪中国': 1,
91 | '城市文明史': 1,
92 | '欧洲中世纪城市研究': 1,
93 | '20世纪欧洲史': 1,
94 | '世界艺术史(1600年前)': 1,
95 | '新双城记:从上海看近代中国之历史与文明': 1,
96 | '近代世界发展史': 1,
97 | '1700-2000年新中国新历史': 1,
98 | '东京审判': 1,
99 | '美国历史上的重大问题': 1,
100 | '20世纪的世界': 1,
101 | '科学技术史': 1,
102 | '美国简史': 1,
103 | '认识自己': 1,
104 | '美学概论': 1,
105 | '从世界文学的视野反思中国现代文学': 1,
106 | '交响音乐鉴赏': 1,
107 | '古典音乐欣赏': 1,
108 | '欧洲古典音乐': 1,
109 | '音乐鉴赏': 1,
110 | '音乐鉴赏(B)': 1,
111 | '佛教与中国传统文化': 1,
112 | '宇宙论的历史与哲学': 1,
113 | '20世纪哲学': 1,
114 | '中西方医学哲学思想之比较': 1,
115 | '美学': 1,
116 | '西方哲学史': 1,
117 | '虚构的时代——对古典时期哲学的解读': 1,
118 | '哲学导论': 1,
119 | '国花、市花鉴赏': 1,
120 | '积极心理学': 1,
121 | '现代心理学': 1,
122 | '欧洲文明史': 1,
123 | '中国改革开放史': 1,
124 | '非洲文明': 1,
125 | '中国民俗': 1,
126 | '中国文化通论': 1,
127 | '中国历史地理': 1,
128 | '20世纪西方思想文化潮流': 1,
129 | '士人与中国社会': 1,
130 | '现代中国传媒与知识分子': 1,
131 | '全球化时代的英语学习与跨文化研究': 1,
132 | '民俗与中国文化': 1,
133 | '由李约瑟难题看中国传统科技文明': 1,
134 | '建国以来重大历史问题研究': 1,
135 | '伦理范畴的演绎及现代应用伦理的发展': 1,
136 | '本科生精神境况研究': 1,
137 | '欧美文化史': 1,
138 | '表演艺术欣赏与批评': 1,
139 | '英语视听说': 1,
140 | '英语写作能力的自我培养与提高': 1,
141 | '大学生传媒素养研究(B)': 1,
142 | '影视艺术': 1,
143 | '艺术设计': 1,
144 | '交响音乐的内涵与外延发展研讨': 1,
145 | '大学生传媒素养': 1,
146 | '体育锻炼与生活方式': 1,
147 | '国花、市花鉴赏': 1,
148 | '现代西方哲学': 1,
149 | '我和“大师”面对面——追寻科学大家的成功轨迹': 1,
150 | '传播心理学': 1,
151 | '中国现代史': 1,
152 | '科学史上的竞争学说个案研讨': 1,
153 | '如何思考和解答李约瑟难题': 1,
154 | '西方美术与创新思维': 1,
155 | '艺术与科学:数字与信息化时代的艺术特征': 1,
156 | '美苏冷战争霸史': 1,
157 | '中国早期思想经典选读': 1,
158 | '西方现代文化思潮': 1,
159 | '美国华人简史': 1,
160 | '创意思维与设计': 1,
161 | '管理基础': 2,
162 | '微观经济学': 2,
163 | '电子商务基础': 2,
164 | 'WTO法律文件选读': 2,
165 | '网络环境下的文科信息检索': 2,
166 | '知识管理理论与实务': 2,
167 | '工程技术管理': 2,
168 | '中国管理智慧': 2,
169 | '管理经济学(A类)': 2,
170 | '国学与领导力发展': 2,
171 | '大学生创业基础': 2,
172 | '创新方法与实践': 2,
173 | '领导学': 2,
174 | '领导学(A类)': 2,
175 | '消费者行为学(A)': 2,
176 | '管理哲学': 2,
177 | '消费者行为学': 2,
178 | '从居住文化看世界史': 2,
179 | '遗传与社会': 2,
180 | '性与健康': 2,
181 | '普通心理学': 2,
182 | '市场营销学(A类)': 2,
183 | '管理心理学(B类)': 2,
184 | '市场调查与分析': 2,
185 | '技术经济学(B类)': 2,
186 | '管理学': 2,
187 | '项目管理': 2,
188 | '企业伦理学': 2,
189 | '风险管理': 2,
190 | '《论语》、《孟子》选讲': 2,
191 | '当代消费文化': 2,
192 | '文化多元主义与领导学': 2,
193 | '《论语》、《孟子》选讲': 2,
194 | '微观经济学(B类)': 2,
195 | '网络经济与管理': 2,
196 | '环境经济与管理(B类)': 2,
197 | '宏观经济学(B类)': 2,
198 | '西方经济学(B类)': 2,
199 | '工程经济学(F类)': 2,
200 | '发展经济学专题': 2,
201 | '一周财经评论': 2,
202 | '英文经济指标与指数阅读': 2,
203 | '经济学': 2,
204 | '中国经济专题': 2,
205 | '中国医疗保险制度转型(B类)': 2,
206 | '生态安全与生态文明': 2,
207 | '环保产业发展与卓越工程教育': 2,
208 | '金融学(A类)': 2,
209 | '证券投资学': 2,
210 | '证券投资分析(B类)': 2,
211 | '国际金融(A类)': 2,
212 | '证券投资分析': 2,
213 | '上海社会史专题': 2,
214 | '新闻与传播概论': 2,
215 | '大众传播与社会问题': 2,
216 | '网络传播学': 2,
217 | '两岸税制改革比较': 2,
218 | '知识产权管理': 2,
219 | '中国宪法的实施及其保障': 2,
220 | '国际法与国际秩序': 2,
221 | '大学生劳动就业中的法律问题探究': 2,
222 | '普通心理学': 2,
223 | '跨文化沟通心理学': 2,
224 | '市场营销学(C类)': 2,
225 | '城市管理概论': 2,
226 | '社会学概论': 2,
227 | '大国战略': 2,
228 | '当代中国外交经典案例分析': 2,
229 | '社会保障:理论基础与热点解读': 2,
230 | '中俄关系:过去、现在与未来': 2,
231 | '民族主义与族群政治': 2,
232 | '西方福利国家研究': 2,
233 | '现代城市发展论': 2,
234 | '当代国际社会热点问题透视': 2,
235 | '当代美国公共经济': 2,
236 | '政府与市场': 2,
237 | '中国政治思想史': 2,
238 | '全球化的政治经济学': 2,
239 | '国际安全': 2,
240 | '危机与公共关系': 2,
241 | '电影与政治': 2,
242 | '中国政治制度': 2,
243 | '公民社会与非政府组织': 2,
244 | '当代中国外交热点议题分析': 2,
245 | '政府公共关系原理与实践': 2,
246 | '国际关系学导论': 2,
247 | '当代中国政治发展': 2,
248 | '发展的政治经济学分析': 2,
249 | '国际关系理论导读': 2,
250 | '美国现代城市规划': 2,
251 | '当代中国的政治经济学': 2,
252 | '战后政府角色的变更': 2,
253 | '社会运动概论': 2,
254 | '宗教与社会': 2,
255 | '博弈论初基': 2,
256 | '社会观察与探索': 2,
257 | '政治社会学导论': 2,
258 | '领导力学习与实践': 2,
259 | '比较政治学导论': 2,
260 | '比较政治分析': 2,
261 | '治理之善:公共行政热点解析': 2,
262 | '新形势下的两岸关系专题研究': 2,
263 | '公共关系学概论': 2,
264 | '当代美国外交决策实例': 2,
265 | '现代日本政治': 2,
266 | '社会心理学': 2,
267 | '社会人口学': 2,
268 | '先锋艺术和城市': 2,
269 | '冷战与中国': 2,
270 | '日本社会与近代化': 2,
271 | '社会学与生活': 2,
272 | '日本社会与现代化': 2,
273 | '职业生涯发展与规划': 2,
274 | '科技伦理专题': 2,
275 | '美国社会与文化': 2,
276 | '上海社会与文化': 2,
277 | '社会学': 2,
278 | '管理理论与实践': 2,
279 | '国际关系与全球化问题刍议': 2,
280 | '台湾政治变化与两岸关系的前景(B)': 2,
281 | '环境热点专题': 2,
282 | '英美报刊时事评介': 2,
283 | '高跟鞋踩碎小猫脑袋:多学科的法律分析': 2,
284 | '知识产权的多维视角': 2,
285 | '国际金融法': 2,
286 | '多元化纠纷解决机制': 2,
287 | '台湾政治变化与两岸关系的前景': 2,
288 | '公共管理艺术探究': 2,
289 | '国际传播与对外报道(研讨)': 2,
290 | '政府治理危机与改革分析': 2,
291 | '叶利钦、普京与俄罗斯': 2,
292 | '中国崛起进程中的战争与战略问题': 2,
293 | '医药创新在国民经济中的角色': 2,
294 | '叶利钦、普京与俄罗斯(A)': 2,
295 | '活动策划组织艺术': 2,
296 | '现代中日关系': 2,
297 | '管理哲学研讨': 2,
298 | '政府治理转型与公民社会成长': 2,
299 | '不确定情况下的决策问题': 2,
300 | '经济学的思维方式': 2,
301 | '中国汽车制造业如何从大国走向强国': 2,
302 | '知识创新--新媒体时代的视角': 2,
303 | '多维视角看法律': 2,
304 | '中国新闻解读与中国问题研究': 2,
305 | '城市学入门': 2,
306 | '低碳发展的经济性思考': 2,
307 | '什么是数字新媒体产业(TMT)': 2,
308 | '商务沟通与道德': 2,
309 | '群体认知与群体行为': 2,
310 | '时政评论': 2,
311 | '反恐怖战略研究': 2,
312 | '经济全球化的分析视野': 2,
313 | '生物医药科技领域的创新与创业': 2,
314 | '生物产业的职业发展机会': 2,
315 | '绩效管理何以致胜:从个人、组织到区域': 2,
316 | '创业管理': 2,
317 | '孙子兵法': 2,
318 | '珠宝鉴赏': 3,
319 | '信息素养': 3,
320 | '创新方法': 3,
321 | '航空航天概论': 3,
322 | '化学电源的现状和未来展望': 3,
323 | '空气污染控制与洁净技术': 3,
324 | '生命科学导论实验': 3,
325 | '生命科学发展史': 3,
326 | '生物技术概论': 3,
327 | '微生物的世界': 3,
328 | '从脑到行为': 3,
329 | '生物工程导论': 3,
330 | '植物育性、花发育和生物技术': 3,
331 | '脑的真相': 3,
332 | '生物信息学概论': 3,
333 | '从脑到行为': 3,
334 | '极端环境中的微生物生命': 3,
335 | '地球生命': 3,
336 | '社会精神医学': 3,
337 | '传统医学与人类健康': 3,
338 | '诺贝尔医学奖': 3,
339 | '现代医学导论': 3,
340 | '急救与自救技能': 3,
341 | '中国功夫与经络': 3,
342 | '信息与感知': 3,
343 | '光电科技与生活应用': 3,
344 | '工程实践与科技创新2A': 3,
345 | '工程实践与科技创新2B': 3,
346 | '工程实践与科技创新Ⅱ-A': 3,
347 | '工程实践与科技创新Ⅱ-B': 3,
348 | '材料力学发展、计算力学、哈密顿体系': 3,
349 | '环境工程导论(A类)': 3,
350 | '环境与健康': 3,
351 | '绿色技术的可持续发展分析': 3,
352 | '人与环境:可持续发展': 3,
353 | '企业信息化与知识工程': 3,
354 | '系统建模方法与应用': 3,
355 | '随机优化': 3,
356 | '数学之旅': 3,
357 | '工程技术拓展': 3,
358 | '现代制造中的质量管理与统计方法': 3,
359 | '汽车文化': 3,
360 | '制造创新': 3,
361 | '人类与核科技发展': 3,
362 | '宇宙科学导论': 3,
363 | '地球科学': 3,
364 | '主宰世界的七个方程': 3,
365 | '能源物理': 3,
366 | '物理异想': 3,
367 | '果壳中的量子场:起始编': 3,
368 | '科学前沿与哲学': 3,
369 | '中药学通论': 3,
370 | '杏林探宝---带你走进中药': 3,
371 | '新能源技术及应用': 3,
372 | '能源与可持续发展': 3,
373 | '科技传播与科普创作': 3,
374 | '科技前沿与热点': 3,
375 | '自然界中的混沌与分岔': 3,
376 | '可再生能源的高效转换与利用': 3,
377 | '核能与环境': 3,
378 | '先进核能系统': 3,
379 | '人与室内环境': 3,
380 | '奇妙的低温世界': 3,
381 | '从细胞到分子': 3,
382 | '植物生物技术——过去、现在和未来': 3,
383 | '植物嫁接理论与技术': 3,
384 | '原子核的内部结构': 3,
385 | '功能氧化物材料制备及晶体生长科学': 3,
386 | '探索复杂网络': 3,
387 | '普适数字学习': 3,
388 | '从环境监测谈科学研究': 3,
389 | '生态问题与研究': 3,
390 | '纳米世界的科学与艺术': 3,
391 | '动物运动和生长中的力学奥秘': 3,
392 | '生命科学热点': 3,
393 | '生物信息学、计算生物学前沿研讨': 3,
394 | '社会发展对生物工程的挑战': 3,
395 | '体验化学的魅力': 3,
396 | '能源化学工程': 3,
397 | '电化学能量储存与转化': 3,
398 | '研究者的乐趣和资质-以船、海工程为例': 3,
399 | '镁合金及其成形技术': 3,
400 | '21世纪工程人才的能力建设': 3,
401 | '植物病害诊断技术': 3,
402 | '材料科学的基本研究方法': 3,
403 | '多彩的纳米世界': 3,
404 | '走进纳米世界': 3,
405 | '神经科学前沿问题及信息学方法': 3,
406 | '遗传毒理与疾病': 3,
407 | '生命的奥秘-生物信息学前沿研讨': 3,
408 | '生物智能与生物计算机': 3,
409 | '走近生命科学技术领域': 3,
410 | '数学在水资源和环境科学研究中的价值': 3,
411 | '光子学与信息技术': 3,
412 | '核能发展与展望': 3,
413 | '全球气候变暖与二氧化碳减排': 3,
414 | '航空航天技术历史与展望': 3,
415 | '服务计算研讨': 3,
416 | '量子信息与移动通信': 3,
417 | '竞技运动中的科学技术': 3,
418 | '智能维护系统中的若干关键问题探讨': 3,
419 | '光纤通信与全光网技术的发展': 3,
420 | '在你身边的系统科学': 3,
421 | '人工心脏辅助系统初探': 3,
422 | '化学产品设计与实践': 3,
423 | '绝对零度的奇迹:超流与超导': 3,
424 | '智能材料、结构、系统与应用': 3,
425 | '生物智能与生物信息学': 3,
426 | '能源与环境': 3,
427 | '神奇的催化剂—新能源开发和环境净化中的催化技术': 3,
428 | '全球天然气发展与展望': 3,
429 | '健康与植物': 3,
430 | '吃出美丽和健康——食物营养与健康研讨': 3,
431 | '低温科学和技术': 3,
432 | '核能与环境(A)': 3,
433 | '科学与自然中的研究思想和方法探讨(A)': 3,
434 | '体验介孔材料': 3,
435 | '心血管力学生物学导论': 3,
436 | '中枢神经系统高级功能研究的最新进展': 3,
437 | '体验虚拟现实': 3,
438 | '超导体及其应用': 3,
439 | '基因追踪': 3,
440 | '高等植物中的信号转导': 3,
441 | '创新思维与现代设计': 3,
442 | '宇宙、自然与人类': 3,
443 | '系统生物学前沿研讨': 3,
444 | '生物医学制造与人工器官': 3,
445 | '新概念热学及其在过程优化中的应用': 3,
446 | '从手工创意到数字模型:技术与实践': 3,
447 | '未来工厂数字化运作管理系统': 3,
448 | '工业与环境微生物技探讨': 3,
449 | '药学、化学山海经': 3,
450 | '探测微观世界的手段和方法': 3,
451 | '现代农业与生态文明': 3,
452 | '农业有害生物防控的基因设计': 3,
453 | '汽车文化与设计哲学': 3,
454 | '元素揭秘': 3,
455 | '人造器官与再生医学': 3,
456 | '生命科学中的化学反应:分子生物信息学前沿研讨': 3,
457 | '宇宙、自然与人类(A)': 3,
458 | '医工交叉学科前沿研讨': 3,
459 | '生命科学研究艺术': 3,
460 | '遗传发育与精神神经疾病': 3,
461 | '计算生物学与人体健康研究': 3,
462 | '“酶”的进化历程与未来': 3,
463 | '生物技术与我们的生活': 3,
464 | '微生物海洋学与极端生命': 3,
465 | '工业与环境微生物技术': 3,
466 | '分子信息学前沿研讨': 3,
467 | '功能氧化物材料制备及晶体生长科学(A)': 3,
468 | '介孔材料': 3,
469 | '元素揭秘': 3,
470 | '组合优化入门': 3,
471 | '基因与人': 3,
472 | '21世纪企业制造模式-精益生产': 3,
473 | '汽车文化与设计哲学(A)': 3,
474 | '工程科学研究方法': 3,
475 | '摇橹船的力学': 3,
476 | '科学与自然中的研究思想与方法探讨': 3,
477 | '超临界流体的奇妙世界': 3,
478 | '多彩的纳米世界(A)': 3,
479 | '核燃料循环': 3,
480 | '纳米科技与未来世界': 3,
481 | '奇妙的低温世界(A)': 3,
482 | '汽车安全的技术与法律基础': 3,
483 | '汽车节能环保与清洁能源': 3,
484 | '体验虚拟现实(A)': 3,
485 | '生命科学中的计算化学:分子生物信息学前沿研讨': 3,
486 | '微生物基因组学与抗菌素耐药性': 3,
487 | '生命科学史': 3,
488 | '学习记忆及神经精神疾病的神经生物学': 3,
489 | '海洋科学': 3,
490 | '纳米生物材料': 3,
491 | '心血管疾病生物学': 3,
492 | '随机性、复杂性初探': 3,
493 | '新船型研究与探索': 3,
494 | '交通运输工程前沿': 3,
495 | '现代无线通信系统架构及新型应用': 3,
496 | '数字视频及其应用': 3,
497 | '信息技术百年回顾与展望': 3,
498 | '电化学与新能源汽车的未来': 3,
499 | '能源与环境系统工学导论': 3,
500 | '现代车辆新技术及发展趋势': 3,
501 | '脑的奥秘与精神健康': 3,
502 | '创新能力培养': 3,
503 | '营养、菌群与健康': 3,
504 | '现代社会发展中的人类健康问题之思考': 3,
505 | '从设计创意到数字模型:技术与实践': 3,
506 | '聚合物电介质': 3,
507 | '绝对零度的奇迹:超流与超导': 3,
508 | '探访生命科学': 3,
509 | '物理学:传统与文化': 3,
510 | '材料的乐趣': 3,
511 | '行为遗传学研讨': 3,
512 | '数字图像处理': 3,
513 | '分形与混沌:复动力系统': 3,
514 | '汽车文化': 3,
515 | '生物医学制造与人工器官': 3,
516 | '食品、营养与健康': 3,
517 | '工业工程与管理艺术': 3,
518 | '能源与环境问题研讨': 3,
519 | '材料加工智能化发展引论': 3,
520 | '土木建筑与可持续发展': 3,
521 | '3S技术——遥感、导航与地理信息系统': 3,
522 | '信息光子学导论': 3,
523 | '植物信号转导及调控机制': 3,
524 | '干细胞与组织工程': 3,
525 | '微生物海洋学与极端生命': 3,
526 | '酶分子进化历程及其应用': 3,
527 | '全球天然气发展与展望': 3,
528 | '二氧化碳资源化利用技术进展': 3,
529 | '自然启迪的材料制备科学': 3,
530 | '材料人生': 3,
531 | '核能及核安全': 3,
532 | '汽车概论': 3,
533 | '走进神秘的番茄世界': 3,
534 | '探索奇妙的蛋白质世界': 3,
535 | '多孔材料': 3,
536 | '能量转换——从瓦特蒸汽机到燃气轮机': 3,
537 | '车联网与智慧城市': 3,
538 | '新概念汽车探讨与设计': 3,
539 | '都市现代农业工程': 3,
540 | '纳米生物材料': 3,
541 | '海洋环境、生命与技术': 3,
542 | '电子废物-资源-环境': 3,
543 | '热物理学的建立与演化': 3,
544 | '智能材料、结构、系统与应用': 3,
545 | '先进核能系统材料:挑战与展望': 3,
546 | '植物生物技术:过去、现在和未来': 3,
547 | '全球变化概论:原因和应对策略': 3,
548 | '生命科学前沿新技术及其产业化': 3,
549 | '环境修复与人类健康': 3,
550 | '食品与工业微生物学': 3,
551 | '生物统计与医疗健康大数据前沿': 3,
552 | '转化医学研究中的生物统计': 3,
553 | '旅游地理学': 3,
554 | '数学史(A类)': 4,
555 | '符号动力系统与编码(A)': 4,
556 | '模糊数学及其应用': 4,
557 | '算法图论': 4,
558 | 'Mathematical Discovery': 4,
559 | '代数学及其在信息科学中的应用': 4,
560 | '数学赏析与唐诗格律': 4,
561 | '关于无穷性的数学考察': 4,
562 | '区间图,弦图以及其它': 4,
563 | '从区间谈起': 4,
564 | '二元域上的算术': 4,
565 | '组合数学选讲': 4,
566 | '': 0
567 | };
568 |
569 | var eval_list = {
570 | "Duane": "91.4786",
571 | "Susan": "82.6492",
572 | "Zimmer": "89.7963",
573 | "丁兴华": "92.0468",
574 | "丁希凡": "93.0307",
575 | "丁晓萍": "85.3117",
576 | "丁玲娣": "92.8125",
577 | "万德成": "94.545",
578 | "严亚贤": "96.346",
579 | "乐经良": "97.7043",
580 | "乔树通": "78.053",
581 | "于文灏": "90.9283",
582 | "于杨": "95.185",
583 | "于江": "96.4805",
584 | "于洪洁": "82.6345",
585 | "于红妍": "97.2455",
586 | "于随然": "93.718",
587 | "井淼": "95.1623",
588 | "仇毅翔": "92.4745",
589 | "仇璘": "94.724",
590 | "付宇卓": "94.625",
591 | "仰书纲": "83.073",
592 | "任吉存": "88.198",
593 | "任天辉": "94.312",
594 | "任奇志": "95.2075",
595 | "任庆生": "94.9975",
596 | "任玉雪": "89.8741",
597 | "伍芳林": "93.648",
598 | "何卫峰": "95.397",
599 | "何圣兵": "92.732",
600 | "何小刚": "96.818",
601 | "何浩": "92.623",
602 | "何涪嘉": "88.4267",
603 | "何渊": "93.217",
604 | "何艳": "96.3401",
605 | "何迪": "92.858",
606 | "何铭": "98.9085",
607 | "余军扬": "91.8233",
608 | "余征跃": "93.756",
609 | "余文胜": "97.0447",
610 | "余晓蔚": "93.741",
611 | "余莉": "92.022",
612 | "余颖": "95.584",
613 | "佴怀青": "97.658",
614 | "侯建荣": "90.443",
615 | "俞勇": "98.0387",
616 | "俞晖": "97.6495",
617 | "俞炜": "92.283",
618 | "倪安宁": "86.322",
619 | "倪邦辉": "88.37",
620 | "傅亚平": "91.945",
621 | "傅学良": "81.9205",
622 | "傅炯": "86.7117",
623 | "傅育熙": "93.514",
624 | "全林": "84.9652",
625 | "关增建": "94.1445",
626 | "其木提": "96.5357",
627 | "冯仕猛": "95.9645",
628 | "冯正平": "95.004",
629 | "冯霞": "92.4315",
630 | "凌德祥": "95.446",
631 | "凌惠琴": "93.566",
632 | "凌金铸": "88.8615",
633 | "刘世前": "93.654",
634 | "刘世勇": "96.354",
635 | "刘东": "93.35",
636 | "刘为": "89.492",
637 | "刘乃实": "97.3283",
638 | "刘伟": "98.608",
639 | "刘佑军": "92.571",
640 | "刘佳林": "86.8753",
641 | "刘军荣": "83.269",
642 | "刘功申": "88.502",
643 | "刘华": "94.229",
644 | "刘士林": "90.6617",
645 | "刘小凯": "94.5277",
646 | "刘帮成": "86.982",
647 | "刘建华": "80.9023",
648 | "刘振华": "92.7055",
649 | "刘文江": "95.545",
650 | "刘春颖": "94.5355",
651 | "刘杨": "91.532",
652 | "刘桦": "90.921",
653 | "刘海涛": "89.7237",
654 | "刘涛": "94.2145",
655 | "刘滢": "87.975",
656 | "刘立萍": "96.97",
657 | "刘统": "98.4685",
658 | "刘美香": "94.2389",
659 | "刘群录": "93.8185",
660 | "刘萍": "96.63",
661 | "刘西拉": "98.189",
662 | "刘龙根": "89.904",
663 | "匡波": "95.0115",
664 | "卓建伟": "95.8633",
665 | "单世联": "96.087",
666 | "单娟": "94.5693",
667 | "卢俊国": "87.6015",
668 | "卢小军": "94.7064",
669 | "卢文发": "96.1533",
670 | "卫淑芝": "94.6648",
671 | "史为临": "96.3288",
672 | "史子兴": "92.257",
673 | "史小宁": "91.848",
674 | "史清华": "89.198",
675 | "史益敏": "92.618",
676 | "叶冠林": "96.839",
677 | "叶强": "95.2665",
678 | "叶汉忠": "95.1134",
679 | "司梅": "85.548",
680 | "吉小军": "96.451",
681 | "向光辉": "95.079",
682 | "吕忆松": "97.657",
683 | "吕晓俊": "88.5185",
684 | "吕智国": "96.067",
685 | "吕浩": "93.153",
686 | "吕爱民": "87.441",
687 | "吴亚妮": "97.5015",
688 | "吴保华": "91.7525",
689 | "吴冲锋": "96.8555",
690 | "吴刚": "96.5493",
691 | "吴剑锋": "76.2313",
692 | "吴勇军": "91.7095",
693 | "吴卫生": "89.599",
694 | "吴天行": "91.466",
695 | "吴家春": "91.6545",
696 | "吴德意": "92.605",
697 | "吴忠英": "89.476",
698 | "吴慧英": "95.5655",
699 | "吴新忠": "89.2684",
700 | "吴明媛": "95.32",
701 | "吴爱平": "90.0015",
702 | "吴耀琨": "96.5975",
703 | "吴诗玉": "90.9123",
704 | "吴越": "93.286",
705 | "吴迪": "95.954",
706 | "吴静怡": "93.0212",
707 | "周丕生": "86.321",
708 | "周国华": "96.0722",
709 | "周国强": "89.47",
710 | "周宏": "91.2085",
711 | "周岸勤": "93.4443",
712 | "周希朗": "91.6253",
713 | "周年国": "81.3486",
714 | "周建国": "95.4352",
715 | "周憬宇": "84.6425",
716 | "周拥军": "90.3798",
717 | "周春琴": "96.7885",
718 | "周朝民": "92.5083",
719 | "周栋焯": "96.499",
720 | "周泽红": "91.731",
721 | "周玉燕": "95.7893",
722 | "周玲玲": "98.0037",
723 | "周瑜": "88.0102",
724 | "周越": "95.541",
725 | "周越美": "68.3169",
726 | "周钢": "97.7497",
727 | "周锦鑫": "89.599",
728 | "周颖": "92.6365",
729 | "咸进国": "95.5643",
730 | "唐东芹": "92.508",
731 | "唐克轩": "98.596",
732 | "唐宗明": "96.1657",
733 | "喜苏南": "95.8585",
734 | "夏中义": "87.1475",
735 | "夏利娟": "97.009",
736 | "夏玉蓉": "97.487",
737 | "奚俊芳": "95.6555",
738 | "奚立峰": "95.463",
739 | "姚卫红": "93.7983",
740 | "姚君喜": "95.033",
741 | "姚天昉": "90.606",
742 | "姚志红": "92.489",
743 | "姚旭峰": "82.8658",
744 | "姚晓敏": "93.152",
745 | "姚欣保": "94.5292",
746 | "姚武": "96.9392",
747 | "姚淑平": "97.2298",
748 | "姚莉秀": "90.113",
749 | "姚莉韵": "91.3825",
750 | "姚迪": "91.09",
751 | "姚雷": "91.2005",
752 | "姜淑忠": "92.88",
753 | "姜淳": "93.46",
754 | "姜翠波": "98.41",
755 | "姜萍萍": "91.3735",
756 | "姜静": "90.096",
757 | "孔令体": "95.951",
758 | "孔向阳": "92.492",
759 | "孔繁强": "96.4895",
760 | "孙同华": "89.23",
761 | "孙坚": "93.251",
762 | "孙扬": "95.686",
763 | "孙涵": "92.8881",
764 | "孙焱": "86.546",
765 | "孙雁": "99.093",
766 | "孟令兵": "91.6083",
767 | "孟和": "96.3037",
768 | "孟桂娥": "96.2738",
769 | "孟玲玲": "89.5825",
770 | "孟魁": "90.423",
771 | "安丽桥": "91.1959",
772 | "宋健": "92.2573",
773 | "宋元斌": "93.34",
774 | "宋宝瑞": "89.149",
775 | "宋文滨": "94.485",
776 | "宋春阳": "91.382",
777 | "宋春雨": "91.539",
778 | "宋晓冰": "95.401",
779 | "宋苏晨": "94.0257",
780 | "宣安": "92.9234",
781 | "宦飞": "94.159",
782 | "宫新保": "95.6475",
783 | "宾凯": "95.856",
784 | "寇新建": "96.049",
785 | "尹梅": "90.5425",
786 | "尹海涛": "96.139",
787 | "崔勇": "95.7685",
788 | "崔立": "86.614",
789 | "左亚娜": "88.881",
790 | "左晓岚": "79.763",
791 | "市川智生": "92.975",
792 | "席涛": "86.3102",
793 | "庄天红": "92.4388",
794 | "庄晖": "87.555",
795 | "康东元": "88.8677",
796 | "廖海波": "84.9297",
797 | "张丹丹": "98.228",
798 | "张丽清": "92.443",
799 | "张亚光": "94.0373",
800 | "张仁伟": "87.533",
801 | "张健": "87.441",
802 | "张光连": "92.3777",
803 | "张兴福": "96.8987",
804 | "张冬茉": "92.9469",
805 | "张勇健": "90.681",
806 | "张卫": "95.0145",
807 | "张同珍": "93.7397",
808 | "张君": "91.3233",
809 | "张哲敏": "81.5299",
810 | "张国良": "96.675",
811 | "张士文": "94.493",
812 | "张学昆": "86.425",
813 | "张小凡": "94.0643",
814 | "张峰": "94.2532",
815 | "张帆": "96.652",
816 | "张建华": "89.0937",
817 | "张志刚": "93.7975",
818 | "张忠能": "94.4615",
819 | "张振南": "88.617",
820 | "张晓君": "92.721",
821 | "张晓梅": "93.2085",
822 | "张晨利": "94.6985",
823 | "张沁": "92.9288",
824 | "张沛超": "95.612",
825 | "张洁": "73.971",
826 | "张海燕": "93.1243",
827 | "张清": "92.104",
828 | "张炽伟": "89.2615",
829 | "张玉梅": "88.346",
830 | "张祥": "91.2645",
831 | "张立群": "90.0784",
832 | "张绍谦": "99.378",
833 | "张维竞": "96.519",
834 | "张艳萍": "93.897",
835 | "张荔": "96.1523",
836 | "张菁": "95.1693",
837 | "张蕴艳": "91.9966",
838 | "张蕾": "91.2327",
839 | "张辉": "89.807",
840 | "张逸阳": "92.5373",
841 | "张邻": "87.1693",
842 | "张雪洪": "87.9245",
843 | "张雪珍": "96.1756",
844 | "张雷明": "95.678",
845 | "张静抒": "92.8065",
846 | "张鸿刚": "93.966",
847 | "彭宏利": "89.462",
848 | "彭崇胜": "87.4841",
849 | "彭建平": "94.577",
850 | "彭春露": "54.168",
851 | "彭育波": "95.278",
852 | "徐一峰": "93.381",
853 | "徐临江": "90.2253",
854 | "徐丽群": "85.1545",
855 | "徐兵": "91.0108",
856 | "徐宇虹": "89.639",
857 | "徐峰": "88.6673",
858 | "徐庆华": "94.0938",
859 | "徐彦冰": "95.4287",
860 | "徐昌庆": "96.427",
861 | "徐榕": "86.7367",
862 | "徐永福": "91.107",
863 | "徐萍": "93.18",
864 | "徐雄": "93.2505",
865 | "戚嵘嵘": "97.545",
866 | "戴力农": "88.4078",
867 | "戴永明": "91.6277",
868 | "文学武": "95.2704",
869 | "方从启": "96.4985",
870 | "方向忠": "96.041",
871 | "方荣青": "96.0542",
872 | "方青": "95.0988",
873 | "施亮": "96.3295",
874 | "施健": "95.2477",
875 | "施光林": "94.6095",
876 | "施立峻": "91.3453",
877 | "施英": "84.4957",
878 | "易新": "93.0317",
879 | "易晓明": "91.609",
880 | "曹其新": "92.2544",
881 | "曹慧": "95.8064",
882 | "曹林奎": "94.102",
883 | "曹树基": "93.677",
884 | "曹永康": "89.675",
885 | "曹萌": "95.261",
886 | "曹越平": "92.146",
887 | "曹阳": "96.688",
888 | "曾丽": "93.428",
889 | "曾赛星": "89.848",
890 | "曾进": "83.105",
891 | "朱一凡": "94.302",
892 | "朱丹": "88.4942",
893 | "朱佐农": "98.4555",
894 | "朱兰娟": "94.4413",
895 | "朱兴和": "86.7423",
896 | "朱其立": "95.522",
897 | "朱军生": "78.789",
898 | "朱凤军": "94.7495",
899 | "朱南文": "95.563",
900 | "朱卡的": "97.089",
901 | "朱喜": "88.797",
902 | "朱宁嘉": "78.018",
903 | "朱小燕": "91.3707",
904 | "朱建国": "90.2735",
905 | "朱建明": "96.4379",
906 | "朱慧芳": "96.4538",
907 | "朱杰": "94.863",
908 | "朱海洋": "95.1893",
909 | "朱淑文": "93.679",
910 | "朱疆": "94.1365",
911 | "朱虹": "89.4285",
912 | "朱金玉": "80.1043",
913 | "朱黎青": "88.935",
914 | "李丹": "91.175",
915 | "李为民": "98.621",
916 | "李云飞": "94.844",
917 | "李亚纯": "92.5765",
918 | "李亦中": "82.9707",
919 | "李仕健": "86.978",
920 | "李俊明": "94.0454",
921 | "李健": "89.794",
922 | "李先国": "94.313",
923 | "李勇": "82.9875",
924 | "李友林": "90.6645",
925 | "李吉有": "94.7133",
926 | "李大伟": "73.741",
927 | "李宏德": "94.6025",
928 | "李宝鸿": "92.688",
929 | "李寿德": "91.0366",
930 | "李少远": "97.528",
931 | "李康化": "95.3202",
932 | "李建勋": "92.507",
933 | "李建国": "90.981",
934 | "李志勇": "95.754",
935 | "李敏": "69.134",
936 | "李旭光": "88.8728",
937 | "李明发": "93.441",
938 | "李明明": "89.835",
939 | "李春杰": "91.86",
940 | "李春源": "94.6867",
941 | "李晓荣": "93.7013",
942 | "李晓静": "87.7973",
943 | "李晟": "95.4675",
944 | "李柏令": "84.2277",
945 | "李梅": "94.3473",
946 | "李欣": "95.2715",
947 | "李武": "77.3687",
948 | "李洁": "87.5625",
949 | "李海刚": "85.6294",
950 | "李海燕": "88.039",
951 | "李淑慧": "85.666",
952 | "李玉红": "94.942",
953 | "李立学": "93.588",
954 | "李红云": "97.299",
955 | "李红泽": "96.9895",
956 | "李翠莲": "92.8932",
957 | "李艳婷": "93.686",
958 | "李芳": "93.4715",
959 | "李莉": "95.7228",
960 | "李金叶": "93.46",
961 | "李钢": "86.4075",
962 | "李铜忠": "94.7553",
963 | "李铮": "98.4985",
964 | "李银生": "93.874",
965 | "李鸿光": "97.644",
966 | "李鹏程": "92.5093",
967 | "杜婧": "92.2428",
968 | "杜燕": "98.9733",
969 | "杜秀华": "93.3755",
970 | "杜红梅": "91.2115",
971 | "束拉": "94.7042",
972 | "杨一帆": "94.3425",
973 | "杨仁康": "95.4277",
974 | "杨启": "89.135",
975 | "杨学灵": "94.545",
976 | "杨小康": "91.248",
977 | "杨小虎": "90.6743",
978 | "杨峰": "93.828",
979 | "杨忠直": "92.7323",
980 | "杨文圣": "91.296",
981 | "杨斌": "93.041",
982 | "杨旭波": "94.3285",
983 | "杨明": "94.559",
984 | "杨晓玲": "88.227",
985 | "杨海勇": "84.9958",
986 | "杨立": "95.858",
987 | "杨立桃": "79.526",
988 | "杨若林": "98.027",
989 | "杨镜非": "90.719",
990 | "杨雨奇": "95.058",
991 | "林冈": "97.05",
992 | "林喜芬": "97.053",
993 | "林峰": "94.702",
994 | "林彦": "93.051",
995 | "林文胜": "84.003",
996 | "林玉珍": "91.9535",
997 | "林玲": "81.969",
998 | "林赫": "95.112",
999 | "林迅": "83.2277",
1000 | "柏亚东": "88.7388",
1001 | "柳存根": "86.542",
1002 | "柴康敏": "92.7",
1003 | "柴杰": "89.0703",
1004 | "梁培基": "98.023",
1005 | "梁建": "85.57",
1006 | "梁进": "98.632",
1007 | "梁阿磊": "96.4425",
1008 | "樊博": "93.501",
1009 | "武同锁": "98.596",
1010 | "武时颖": "86.129",
1011 | "武爱文": "95.4027",
1012 | "武素珍": "91.293",
1013 | "武邦涛": "95.519",
1014 | "殳国华": "93.07",
1015 | "段沫": "93.253",
1016 | "段海娟": "80.222",
1017 | "毛义梅": "95.1223",
1018 | "毛建军": "92.0214",
1019 | "江志斌": "87.167",
1020 | "江毅": "94.8392",
1021 | "江秀臣": "82.594",
1022 | "汤晓敏": "94.942",
1023 | "汤石章": "93.4042",
1024 | "汪云霞": "92.7698",
1025 | "汪国山": "90.914",
1026 | "汪国琴": "98.392",
1027 | "汪济生": "83.949",
1028 | "汪蓉": "89.353",
1029 | "汪雨申": "98.5488",
1030 | "汪静": "98.425",
1031 | "沈亚丽": "94.6718",
1032 | "沈吟菲": "91.7052",
1033 | "沈备军": "92.306",
1034 | "沈延兵": "81.751",
1035 | "沈思玮": "88.3027",
1036 | "沈惠璋": "98.041",
1037 | "沈水龙": "95.918",
1038 | "沈灏": "98.658",
1039 | "沈炎": "95.9",
1040 | "沈玮": "94.7977",
1041 | "沈琦": "94.257",
1042 | "沈豪": "93.08",
1043 | "洪嘉振": "96.12",
1044 | "浦耿强": "93.543",
1045 | "滕念管": "94.16",
1046 | "滕金芳": "96.1255",
1047 | "潘倩菲": "92.146",
1048 | "潘卫国": "95.3994",
1049 | "潘星辉": "77.594",
1050 | "潘玉春": "93.965",
1051 | "潘理": "90.267",
1052 | "熊德文": "97.832",
1053 | "牛金海": "89.73",
1054 | "王业": "95.155",
1055 | "王丰华": "89.641",
1056 | "王丽亚": "88.1895",
1057 | "王云": "93.8837",
1058 | "王亚光": "95.356",
1059 | "王亚林": "93.441",
1060 | "王伟明": "93.3317",
1061 | "王俊雄": "88.423",
1062 | "王俏华": "75.6675",
1063 | "王健": "97.8215",
1064 | "王先林": "90.2513",
1065 | "王卓": "91.88",
1066 | "王君艳": "97.7213",
1067 | "王哲希": "91.7547",
1068 | "王嘉松": "92.859",
1069 | "王国庆": "95.3853",
1070 | "王培丞": "96.4715",
1071 | "王增琦": "94.543",
1072 | "王宇": "92.58",
1073 | "王宏卫": "69.9416",
1074 | "王平": "95.9642",
1075 | "王建华": "94.4905",
1076 | "王彤": "98.168",
1077 | "王彪": "83.357",
1078 | "王德禹": "90.04",
1079 | "王志新": "86.8985",
1080 | "王恒安": "92.69",
1081 | "王惠": "95.558",
1082 | "王承国": "97.107",
1083 | "王振元": "90.4267",
1084 | "王敏": "87.661",
1085 | "王文": "91.34",
1086 | "王斌": "95.1633",
1087 | "王新兵": "92.096",
1088 | "王昊": "93.298",
1089 | "王昕": "97.7017",
1090 | "王春艳": "95.3225",
1091 | "王晓敏": "94.415",
1092 | "王晓骏": "95.7456",
1093 | "王朝霞": "96.5115",
1094 | "王梦月": "95.678",
1095 | "王欣": "90.493",
1096 | "王正武": "91.397",
1097 | "王毓伦": "94.7398",
1098 | "王泽民": "91.3264",
1099 | "王浩伟": "98.208",
1100 | "王灿华": "93.648",
1101 | "王炜": "93.4618",
1102 | "王爱民": "86.383",
1103 | "王玉璋": "93.607",
1104 | "王玮": "94.1352",
1105 | "王玲": "89.3325",
1106 | "王瑾晔": "88.039",
1107 | "王立河": "92.27",
1108 | "王纪林": "98.7454",
1109 | "王群慧": "90.2191",
1110 | "王芳": "85.0337",
1111 | "王英林": "85.989",
1112 | "王英萍": "95.5105",
1113 | "王茕": "95.386",
1114 | "王莲芸": "96.5234",
1115 | "王西田": "79.216",
1116 | "王赓": "94.258",
1117 | "王轶骏": "91.965",
1118 | "王辉": "95.192",
1119 | "王郁": "90.481",
1120 | "王铭": "96.7807",
1121 | "王雅卓": "93.1119",
1122 | "王青": "94.294",
1123 | "王韶阳": "74.0831",
1124 | "王骏": "88.937",
1125 | "甄凤超": "95.4542",
1126 | "田作华": "96.303",
1127 | "田社平": "97.9095",
1128 | "田艳": "93.7498",
1129 | "由德林": "90.472",
1130 | "申哲民": "89.843",
1131 | "申晓辉": "92.508",
1132 | "白晓慧": "87.2197",
1133 | "白林泉": "90.213",
1134 | "盛戈皡": "93.161",
1135 | "盛翀": "92.009",
1136 | "石凯民": "96.5179",
1137 | "石桂峰": "92.987",
1138 | "祝永新": "97.431",
1139 | "祝薇": "91.4083",
1140 | "秦丹尼": "92.804",
1141 | "秦向东": "96.9805",
1142 | "程晓鸣": "94.58",
1143 | "程江": "92.994",
1144 | "程金平": "94.064",
1145 | "章仰文": "95.7795",
1146 | "章伟": "92.9177",
1147 | "章毅": "94.505",
1148 | "章烨": "94.2417",
1149 | "章璞": "98.423",
1150 | "童剑平": "89.7843",
1151 | "童清艳": "83.675",
1152 | "符杰祥": "89.147",
1153 | "纪小凌": "93.5453",
1154 | "纪志刚": "93.2114",
1155 | "缪毅强": "97.3575",
1156 | "罗依琪": "98.0162",
1157 | "罗先金": "86.083",
1158 | "罗利文": "95.18",
1159 | "翁惠玉": "96.7553",
1160 | "翁正新": "97.385",
1161 | "翟宜疆": "88.0295",
1162 | "翟新": "92.1987",
1163 | "肖双九": "94.3285",
1164 | "肖国芳": "96.0198",
1165 | "肖柳青": "94.203",
1166 | "肖湘": "96.769",
1167 | "胡代平": "91.8905",
1168 | "胡全生": "78.05",
1169 | "胡其图": "96.2892",
1170 | "胡国新": "92.881",
1171 | "胡奕明": "92.854",
1172 | "胡巍": "92.157",
1173 | "胡延东": "73.62",
1174 | "胡建升": "84.7635",
1175 | "胡开宝": "90.31",
1176 | "胡慈舟": "93.2601",
1177 | "胡文蓉": "95.387",
1178 | "胡晓芳": "88.904",
1179 | "胡洪波": "92.1835",
1180 | "胡润忠": "94.084",
1181 | "胡涵锦": "95.6305",
1182 | "胡逸薇": "96.5335",
1183 | "胡飞": "95.57",
1184 | "舒谋海": "95.552",
1185 | "艾青": "95.262",
1186 | "苏晓静": "87.9665",
1187 | "苏竞元": "96.0665",
1188 | "苑波": "95.63",
1189 | "苗瑞": "91.029",
1190 | "范卫东": "84.97",
1191 | "范同祥": "92.938",
1192 | "范援朝": "94.241",
1193 | "范春菊": "96.3275",
1194 | "范纯增": "84.761",
1195 | "范黎坤": "95.2253",
1196 | "茅旭初": "97.5947",
1197 | "荆建平": "95.262",
1198 | "荣国光": "87.232",
1199 | "萧冰": "93.3147",
1200 | "董占勋": "88.8842",
1201 | "董占海": "98.5346",
1202 | "董常明": "88.016",
1203 | "董扬": "93.9637",
1204 | "董晓蕾": "95.2703",
1205 | "董笑菊": "93.948",
1206 | "蒋丹": "96.0693",
1207 | "蒋乐天": "94.989",
1208 | "蒋启芬": "96.6445",
1209 | "蒋建伟": "95.278",
1210 | "蒋怡": "90.284",
1211 | "蒋立峰": "96.108",
1212 | "蒋红珍": "95.978",
1213 | "蒋静": "88.093",
1214 | "蒯琳萍": "94.396",
1215 | "蔡伟": "95.868",
1216 | "蔡明超": "91.391",
1217 | "蔡润": "92.146",
1218 | "蔡申瓯": "93.352",
1219 | "蔡皿": "95.6208",
1220 | "蔡艳": "93.9155",
1221 | "蔡英文": "92.18",
1222 | "蔡萍": "91.376",
1223 | "蔡骏": "96.892",
1224 | "蔡鸿明": "94.855",
1225 | "薛可": "93.3033",
1226 | "薛广涛": "88.088",
1227 | "薛敏钊": "96.813",
1228 | "薛质": "97.389",
1229 | "袁斌": "95.412",
1230 | "袁晓忠": "98.3017",
1231 | "袁焱": "96.543",
1232 | "袁笃平": "96.771",
1233 | "裘兆泰": "99.0825",
1234 | "褚建君": "94.0895",
1235 | "覃筱": "85.962",
1236 | "解大": "96.192",
1237 | "訾小超": "87.7053",
1238 | "计钢": "92.1615",
1239 | "许亭方": "84.2433",
1240 | "许希阳": "79.051",
1241 | "许建平": "92.2495",
1242 | "许永国": "79.9754",
1243 | "诸勤敏": "92.871",
1244 | "谈毅": "96.959",
1245 | "谢小敏": "83.493",
1246 | "谢少艾": "96.4176",
1247 | "谢憬": "96.225",
1248 | "谢维敏": "97.2482",
1249 | "谢芳": "95.959",
1250 | "谢萍": "92.6483",
1251 | "谢金文": "84.5955",
1252 | "贺光": "95.462",
1253 | "贺志豪": "96.73",
1254 | "贾婷": "90.1597",
1255 | "赖晓阳": "94.342",
1256 | "赵一雷": "96.355",
1257 | "赵亚平": "95.85",
1258 | "赵亦希": "90.704",
1259 | "赵俊": "83.1725",
1260 | "赵俐俐": "94.976",
1261 | "赵冬梅": "98.06",
1262 | "赵加强": "96.5118",
1263 | "赵增铃": "96.178",
1264 | "赵文杰": "95.5932",
1265 | "赵文辉": "75.491",
1266 | "赵斌元": "96.214",
1267 | "赵新明": "96.2779",
1268 | "赵旭": "93.422",
1269 | "赵晓红": "90.0481",
1270 | "赵海": "83.923",
1271 | "赵社戍": "93.233",
1272 | "赵立平": "99.391",
1273 | "赵群飞": "94.877",
1274 | "赵耕春": "92.2382",
1275 | "赵艾萍": "96.3813",
1276 | "赵言正": "94.3475",
1277 | "车生泉": "92.725",
1278 | "车驰东": "97.232",
1279 | "辛玉梅": "95.0728",
1280 | "过敏意": "95.595",
1281 | "邓大萌": "94.268",
1282 | "邓林": "91.7444",
1283 | "邓真全": "96.2485",
1284 | "邰能灵": "94.569",
1285 | "邱卫东": "91.825",
1286 | "邱意弘": "92.637",
1287 | "邱江平": "83.875",
1288 | "邵国年": "96.365",
1289 | "邵奇": "92.5836",
1290 | "邹丽芳": "79.855",
1291 | "邹礼瑞": "93.2305",
1292 | "郑伟丽": "65.5265",
1293 | "郑华": "93.4775",
1294 | "郑思珣": "97.268",
1295 | "郑杭": "96.07",
1296 | "郑益慧": "98.9565",
1297 | "郑育家": "88.0537",
1298 | "郑铭洪": "96.2858",
1299 | "郑飞洲": "90.853",
1300 | "郭为忠": "94.441",
1301 | "郭俊华": "94.7378",
1302 | "郭兴伍": "94.1",
1303 | "郭圣荣": "88.107",
1304 | "郭恋东": "86.7675",
1305 | "郭鸿杰": "94.4126",
1306 | "都岚岚": "76.7333",
1307 | "金之俭": "94.055",
1308 | "金慧子": "96.638",
1309 | "金拓": "93.1427",
1310 | "金文峰": "96.7603",
1311 | "金朝晖": "92.339",
1312 | "金桥": "92.6508",
1313 | "钮卫星": "92.5026",
1314 | "钱冬": "94.032",
1315 | "钱秀萍": "95.32",
1316 | "钱良": "97.259",
1317 | "钱静峰": "97.8274",
1318 | "闫成": "96.3205",
1319 | "闫超": "93.99",
1320 | "闻媛": "91.1564",
1321 | "阎峰": "92.0255",
1322 | "阎建民": "93.3755",
1323 | "陆元雯": "90.2102",
1324 | "陆宏弟": "96.5443",
1325 | "陆岩军": "89.7303",
1326 | "陆德阳": "82.194",
1327 | "陆晨兮": "90.7883",
1328 | "陆朝俊": "94.1941",
1329 | "陆松年": "91.5445",
1330 | "陆海宁": "92.31",
1331 | "陆莹": "86.5357",
1332 | "陆蓓": "94.66",
1333 | "陆顺寿": "94.895",
1334 | "陈业新": "92.6374",
1335 | "陈先元": "81.8905",
1336 | "陈先阳": "78.6915",
1337 | "陈克应": "96.6423",
1338 | "陈克非": "96.929",
1339 | "陈兵": "91.937",
1340 | "陈列文": "93.476",
1341 | "陈刚": "95.1065",
1342 | "陈华栋": "96.1598",
1343 | "陈尧": "92.913",
1344 | "陈峰": "93.3075",
1345 | "陈峻": "94.652",
1346 | "陈崇君": "95.185",
1347 | "陈幼平": "90.061",
1348 | "陈德民": "87.2577",
1349 | "陈捷": "88.4385",
1350 | "陈斌": "96.286",
1351 | "陈新兴": "80.764",
1352 | "陈春丽": "93.322",
1353 | "陈景秋": "90.2356",
1354 | "陈梅": "87.349",
1355 | "陈欣": "93.812",
1356 | "陈永国": "90.861",
1357 | "陈海峰": "96.037",
1358 | "陈火英": "94.457",
1359 | "陈猛": "93.865",
1360 | "陈玉泉": "91.7804",
1361 | "陈玲玲": "96.312",
1362 | "陈璐": "82.5555",
1363 | "陈翌佳": "96.841",
1364 | "陈英": "94.6027",
1365 | "陈贤峰": "97.759",
1366 | "陈贤浩": "89.8955",
1367 | "陈进": "95.798",
1368 | "陈鑫": "79.74",
1369 | "陈钢": "94.399",
1370 | "陈霆": "84.3323",
1371 | "陈露": "91.3757",
1372 | "陈飞翔": "93.633",
1373 | "陈鹏": "96.1904",
1374 | "陈龙珠": "89.078",
1375 | "陶亚民": "93.573",
1376 | "陶庆": "91.0583",
1377 | "陶昉敏": "96.3383",
1378 | "雷华明": "87.329",
1379 | "雷敏": "90.064",
1380 | "韦平": "89.012",
1381 | "韩东": "92.559",
1382 | "韩丽川": "96.4987",
1383 | "韩伟": "92.648",
1384 | "韩兵": "96.472",
1385 | "韩长印": "94.912",
1386 | "韩韬": "95.544",
1387 | "顾剑平": "95.5286",
1388 | "顾剑锋": "94.8065",
1389 | "顾孟迪": "90.56",
1390 | "顾建光": "92.243",
1391 | "顾志霞": "93.544",
1392 | "顾惠忠": "95.3677",
1393 | "顾振宇": "76.866",
1394 | "顾春明": "93.049",
1395 | "顾根生": "93.7392",
1396 | "顾海英": "95.4135",
1397 | "顾琪龙": "94.278",
1398 | "顾祝轩": "92.5715",
1399 | "顾顺超": "94.9433",
1400 | "颜世富": "90.24",
1401 | "饶柱石": "85.168",
1402 | "饶若楠": "76.437",
1403 | "马伟": "94.6025",
1404 | "马伟敏": "92.299",
1405 | "马文军": "85.9175",
1406 | "马春翔": "91.817",
1407 | "马殿光": "96.7823",
1408 | "马玉蕾": "90.59",
1409 | "马紫峰": "94.8665",
1410 | "马红冰": "91.2567",
1411 | "马荔": "95.3591",
1412 | "马进": "95.217",
1413 | "马连芳": "93.1404",
1414 | "高云": "91.589",
1415 | "高亚祯": "91.2445",
1416 | "高佩荪": "92.0803",
1417 | "高圣彬": "88.889",
1418 | "高宗仁": "91.903",
1419 | "高峰": "92.9175",
1420 | "高景": "96.8694",
1421 | "高林杰": "80.644",
1422 | "高福进": "93.295",
1423 | "魏云盘": "95.7185",
1424 | "魏啸飞": "89.0568",
1425 | "魏武挥": "92.8717",
1426 | "魏陆": "85.6735",
1427 | "鲍金": "92.1813",
1428 | "黄丞": "85.6508",
1429 | "黄丹枫": "94.1133",
1430 | "黄伟力": "92.4323",
1431 | "黄其煜": "84.704",
1432 | "黄坚": "82.716",
1433 | "黄孟娇": "97.8495",
1434 | "黄少军": "92.4305",
1435 | "黄庆桥": "97.7903",
1436 | "黄建国": "94.8153",
1437 | "黄建香": "95.4935",
1438 | "黄成军": "90.321",
1439 | "黄晓艳": "87.4933",
1440 | "黄永华": "96.344",
1441 | "黄清发": "83.2587",
1442 | "黄琪轩": "96.285",
1443 | "黄真": "95.793",
1444 | "黄继红": "82.4745",
1445 | "黄苏飞": "96.4918",
1446 | "黄采金": "94.6868",
1447 | "黄钢": "96.8402",
1448 | "齐开悦": "95.9575",
1449 | "龙新华": "91.369",
1450 | "龚玲": "97.4455"
1451 | };
1452 |
--------------------------------------------------------------------------------