~~~
<!-- 8种面板组件选择属性控制器 vs-designer.js 1095 -->
<div ng-controller="ComponentTypesPanelCtrl">
<div id="componentTypesPanel" pageslide ps-open="currentComponentDescription != null" ps-speed="0.3" ps-size="rightSidePanelWidth()" class="component-types-panel">
<div class="panel-title">
{{currentComponentDescription.name}}
</div>
<!-- 遍历每一类型的几种组件 每一个item -->
<div class="panel-content">
<div class="item all-easein-animation" ng-click="onComponentTypeItemClicked(item)" ng-repeat="item in currentComponentDescription.types" >
<img ng-show="item.coverImage!=null" uib-tooltip="{{item.tip}}" tooltip-placement="top" tooltip-append-to-body="true" ng-src="{{item.coverImage}}" ng-style="{'width': item.coverImageWidth ? item.coverImageWidth:'100%'}" />
<div class="name">{{item.name}}</div>
</div>
</div>
</div>
</div>
<!-- 设置组件配置的面板 vs-designer.js 2061-->
<div ng-controller="ReportPageSettingPanelCtrl">
<div pageslide ps-open="$parent.configingReportPage != null" ps-speed="0.3" ps-size="rightSidePanelWidth()" class="reportpage-setting-panel">
<!-- 设置里面的tab 数据 排序 过滤等等 -->
<div class="cp-tab-menu">
<div class="list-group">
<a href="javascript:" ng-click="onCategoryTabClicked(category, $index, $event)" ng-class="selectedCategory.name==category.name ? 'list-group-item text-center active' : 'list-group-item text-center'" ng-repeat="category in pageSettingCategories">
{{category.title}}---谷建文
</a>
</div>
</div>
<!-- 设置tab的主体内容点击谁显示谁的配置项 -->
<div class="cp-tab">
<!-- 判断两个大的属性显示不同的配置项 -->
<div class="cp-tab-content" ng-show="selectedCategory.name === vsLang.report">
<div class="group">
<div class="title">
<i class="fa fa-bars"></i>
<span ng-class="{'en-text':vsLang.locale==='en_US'}">{{vsLang.report_setting}}</span>
</div>
<div class="element">
<div class="col col-xs-5" style="word-break:break-all;height:30px;display:table;">
<div style="display:table-cell;vertical-align:middle;word-break:normal;" class="ng-binding">{{vsLang.report_web_nav}}</div>
</div>
<div class="col col-xs-7" style="height: 26px;" ng-class="{'en-text':vsLang.locale==='en_US'}">
<div class="btn-group">
<toggle-switch ng-model="$parent.currentReport.enableReportPagesPanel" style="border:1px solid #bbb;" on-label="{{vsLang.on}}" off-label="{{vsLang.off}}"></toggle-switch>
</div>
</div>
<div style="clear:both;"></div>
</div>
<div class="element">
<div class="col col-xs-5" style="word-break:break-all;height:30px;display:table;">
<div style="display:table-cell;vertical-align:middle;word-break:normal;" class="ng-binding">{{vsLang.auto_page_control}}</div>
</div>
<div class="col col-xs-7" style="height: 26px;" ng-class="{'en-text':vsLang.locale==='en_US'}">
<div class="btn-group">
<toggle-switch ng-model="$parent.currentReport.enableAutoPageControl" style="border:1px solid #bbb;" on-label="{{vsLang.on}}" off-label="{{vsLang.off}}"></toggle-switch>
</div>
</div>
<div style="clear:both;"></div>
</div>
<div class="element">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{vsLang.page_script}}</div>
</div>
<div class="col col-xs-7" style="height:26px;">
<button ng-click="openPageScriptEditorWindow()" class="btn btn-default" style="width:100%;"><span ng-class="{'en-text':vsLang.locale==='en_US'}">{{vsLang.edit_script}}</span></button>
</div>
<div style="clear:both;"></div>
</div>
<div class="element">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{vsLang.page_css}}</div>
</div>
<div class="col col-xs-7" style="height:26px;">
<button ng-click="openPageStyleEditorWindow()" class="btn btn-default" style="width:100%;"><span ng-class="{'en-text':vsLang.locale==='en_US'}">{{vsLang.edit_script}}</span></button>
</div>
<div style="clear:both;"></div>
</div>
</div>
</div>
<div class="cp-tab-content" ng-show="selectedCategory.name !== vsLang.report">
<div ng-show="(group.show == null || group.show())" class="group" ng-repeat="group in groups">
<div ng-if="(group.title.show || group.title.show == null) && group.elements.length > 0" ng-class="{'title':true, 'en-text':vsLang.locale==='en_US'}" >
<i ng-click="group.showElements = (group.showElements == null ? false : !group.showElements)" ng-class="{'fa fa-minus':(group.showElements==null ||group.showElements), 'fa fa-plus': (group.showElements != null && group.showElements==false)}"></i>
<span style="cursor:pointer;" ng-click="group.showElements = (group.showElements == null ? false : !group.showElements)">{{group.title.text}} </span>
</div>
<div ng-show="group.showElements == null || group.showElements" >
<div ng-show="element.show == null || element.show()" class="element" ng-switch on="element.type" ng-repeat="element in group.elements">
<!-- 颜色组件选择 -->
<div ng-switch-when="colorpicker">
<div class="col col-xs-5" style="line-height:30px;">
<span>{{element.title}}</span>
</div>
<div class="col col-xs-7">
<div>
<input minicolors="{control: 'brightness',theme: 'bootstrap',position: 'bottom right'}" id="color-input" class="form-control" type="text" ng-model="$parent.configingReportPage.config[element.bind]">
</div>
</div>
</div>
<!-- 设置圆角组件 -->
<div ng-switch-when="configSlide">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell" ng-bind-html="element.title"></div>
</div>
<div class="col col-xs-4" style="height:22px;padding-top:3px;">
<div slider ng-model="$parent.configingReportPage.config[element.bind]" start={{element.config.slideStart}} end={{element.config.slideEnd}} step=1 connect='lower' style="margin-top:10px;padding-left:10px;"></div>
</div>
<div class="col col-xs-3 ui input" style="padding-left:15px !important;padding-top:3px;">
<input ng-model="$parent.configingReportPage.config[element.bind]" ng-disabled="element.disabled == null ? false : element.disabled()" type="text" style="width:80px;height:20px;padding:0;text-align:center;color:#666;font-size:12px;">
</div>
</div>
<div ng-switch-when="switch">
<div class="col col-xs-5" style="line-height:30px;">
<span>{{element.title}}</span>
</div>
<div class="col col-xs-7" style="height: 26px;" ng-class="{'en-text':vsLang.locale==='en_US'}">
<div class="btn-group">
<toggle-switch ng-model="$parent.configingReportPage.config[element.bind]" style="border:1px solid #bbb;" on-label="{{element.on}}" off-label="{{element.off}}"></toggle-switch>
</div>
</div>
</div>
<!-- 图片选择组件 背景图片里 -->
<div ng-switch-when="imagepicker">
<div class="col col-xs-4" style="line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-5" style2="max-height:300px; overflow-y:auto;padding-right:10px !important;">
<input readonly="readonly" placeholder="{{vsLang.choose_image}}" class="form-control" ng-model="$parent.configingReportPage.config[element.bind.name]" type="text" style="padding:4px 8px;text-align:left;color:#666;font-size:12px;background-color:#fff;">
</div>
<div class="col col-xs-3" style="line-height:25px;text-align:right;">
<button ng-click="openAttachmentPickerWindow(element.bind)" class="btn btn-default"><span class="fa fa-share"></span></button>
<button ng-click="cleanAttachmentImage(element.bind)" class="btn btn-default" style="border:0;color:#999;"><span class="fa fa-remove"></span></button>
</div>
</div>
<!-- 背景图片设置属性组件 -->
<div ng-switch-when="background-repeat">
<div class="col col-xs-4" style="line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-8">
<div ng-class="{'btn-group': true, 'en-text':vsLang.locale==='en_US'}">
<label class="btn btn-default" ng-model="$parent.configingReportPage.config[element.bind]" uib-btn-radio="'repeat'" uib-tooltip="{{vsLang.repeat_both_tip}}" tooltip-placement="top" tooltip-append-to-body="true" uncheckable><span style="margin: 0 5px;">{{vsLang.repeat_both}}</span></label>
<label class="btn btn-default" ng-model="$parent.configingReportPage.config[element.bind]" uib-btn-radio="'repeat-x'" uib-tooltip="{{vsLang.repeat_x_tip}}" tooltip-placement="top" tooltip-append-to-body="true" uncheckable><span style="margin: 0 5px;">{{vsLang.repeat_x}}</span></label>
<label class="btn btn-default" ng-model="$parent.configingReportPage.config[element.bind]" uib-btn-radio="'repeat-y'" uib-tooltip="{{vsLang.repeat_y_tip}}" tooltip-placement="top" tooltip-append-to-body="true" uncheckable><span style="margin: 0 5px;">{{vsLang.repeat_y}}</span></label>
<label class="btn btn-default" ng-model="$parent.configingReportPage.config[element.bind]" uib-btn-radio="'no-repeat'" uib-tooltip="{{vsLang.repeat_none_tip}}" tooltip-placement="top" tooltip-append-to-body="true" uncheckable><span style="margin: 0 5px;">{{vsLang.repeat_none}}</span></label>
</div>
</div>
</div>
<!-- 背景图片位置属性 -->
<div ng-switch-when="background-position">
<div class="col col-xs-4" style="line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-3">
<input class="form-control" placeholder="{{vsLang.abs_pos_left}}" ng-model="$parent.configingReportPage.config[element.bind].x" type="text" style="padding:4px 8px;text-align:left;color:#666;font-size:12px;">
</div>
<div class="col col-xs-1">
</div>
<div class="col col-xs-3">
<input class="form-control" placeholder="{{vsLang.abs_pos_top}}" ng-model="$parent.configingReportPage.config[element.bind].y" type="text" style="padding:4px 8px;text-align:left;color:#666;font-size:12px;">
</div>
</div>
<!-- 背景大小控制 -->
<div ng-switch-when="background-size">
<div class="col col-xs-4" style="line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-3">
<input class="form-control" placeholder="{{vsLang.horizontal}}" ng-model="$parent.configingReportPage.config[element.bind].x" type="text" style="padding:4px 8px;text-align:left;color:#666;font-size:12px;">
</div>
<div class="col col-xs-1">
</div>
<div class="col col-xs-3">
<input class="form-control" placeholder="{{vsLang.vertical}}" ng-model="$parent.configingReportPage.config[element.bind].y" type="text" style="padding:4px 8px;text-align:left;color:#666;font-size:12px;">
</div>
</div>
<!-- 配置下拉选择 -->
<div ng-switch-when="pageDropdownSelect">
<div class="col col-xs-5" style="line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-7" style2="max-height:300px; overflow-y:auto;padding-right:10px !important;">
<ui-select ng-model="$parent.configingReportPage.config[element.bind]" theme="selectize" ng-disabled="disabled">
<ui-select-match placeholder="{{vsLang.choose_report_page}}">{{$select.selected.name}}</ui-select-match>
<ui-select-choices repeat="item in $parent.reportPages | filter: $select.search">
<span ng-bind-html="item.name | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
</div>
</div>
<div style="clear:both;"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 组件导航菜单 vs-designer-component.js 2 -->
<div id="vrdPageLeft" class="vrd-page-left all-easein-animation" ng-controller="ComponentLibraryCtrl" ng-click="onBackgroundClicked($event)">
<div ng-repeat="category in categories">
<div style="clear:both;"></div>
<h3 ng-class="{'en-text':vsLang.locale==='en_US'}">{{category.name}}</h3>
<div class="col col-xs-6" ng-repeat="component in category.components">
<div ng-click="onComponentIconClicked(component)" class="item" uib-tooltip="{{component.name}}">
<i class="{{component.icon}}"></i>
</div>
</div>
</div>
</div>
<!-- 组件画布同步设置展示 -->
<div id="vrdPageBody" class="vrd-page-body" ng-click="onBackgroundClicked($event)">
<div id="simulatorContainer" ng-click="onBackgroundClicked($event)" ng-class="{'simulator-bg':true, 'phone': currentReportPage.forDevice === 'phone', 'pad':currentReportPage.forDevice === 'pad' && !currentReportPage.fullscreenDesign, 'scale-70':simulatorScale==='0.7', 'scale-80':simulatorScale==='0.8', 'scale-90':simulatorScale==='0.9', 'scale-100':simulatorScale==='1', 'scale-120':simulatorScale==='1.2', 'scale-150':simulatorScale==='1.5'}">
<!-- vs-designer.js 1126 -->
<div id="simulator" ng-init="initCtrl()" ng-controller="SimulatorCtrl" ng-style="{'background-size':currentReportPage.designContent.config.backgroundSize.x+' '+currentReportPage.designContent.config.backgroundSize.y, 'background-position':currentReportPage.designContent.config.backgroundPosition.x+' '+currentReportPage.designContent.config.backgroundPosition.y, 'background-image':compileAttachmentStyleUrl(currentReportPage.designContent.config.backgroundImage), 'background-repeat':currentReportPage.designContent.config.backgroundRepeat,'background-color':currentReportPage.designContent.config.backgroundColor}">
<!-- vs-designer.js 1594 -->
<div id="pageHeader" class="header all-easein-animation" ng-show="component != null" ng-mouseover="hoverIn($event, component)" ng-mouseleave="hoverOut($event, component)" ng-controller="ReportPageHeaderCtrl">
<div id="headerContent" ng-style="{'height':component.config.height, 'background-color':component.config.backgroundColor, 'border-radius':component.config.borderRadius+'px', 'border-top': component.config.borderTopSize+'px solid '+component.config.borderTopColor, 'border-bottom': component.config.borderBottomSize+'px solid '+component.config.borderBottomColor, 'border-left': component.config.borderLeftSize+'px solid '+component.config.borderLeftColor, 'border-right': component.config.borderRightSize+'px solid '+component.config.borderRightColor, 'padding-top': component.config.paddingTop+'px', 'padding-bottom': component.config.paddingBottom+'px', 'padding-left': component.config.paddingLeft+'px', 'padding-right': component.config.paddingRight+'px'}">
</div>
<div class="ui compact menu toolbar" vs-draggable="{}" style="opacity:0;" ng-style="{'right': $parent.selectedComponent.config.toolbarRight,'opacity': mouseIn ? 1:0}">
<!-- 配置 -->
<a class="item" ng-click="openComponentConfigPanel(currentReportPage.designContent.header)" uib-tooltip="{{vsLang.settings}}" tooltip-placement="top" tooltip-append-to-body="true">
<i class="fa fa-wrench"></i>
</a>
<!-- 删除 -->
<a class="item" ng-click="removeComponent(component)" uib-tooltip="{{vsLang.delete}}" tooltip-placement="top" tooltip-append-to-body="true">
<i class="fa fa-trash"></i>
</a>
<!-- 移动工具条 -->
<a class="item vs-draggable" uib-tooltip="{{vsLang.move_toolbar}}" tooltip-placement="top" tooltip-append-to-body="true">
<i class="fa fa-arrows-h vs-draggable"></i>
</a>
</div>
</div>
<!-- 画布主体 -->
<div id="simulatorPageBody" class="body all-easein-animation" ng-style="{'top':currentReportPage.designContent.header.config.height}">
<div class="body" style="z-index: 9;">
<div id="gridster" gridster="gridsterOptions">
<ul>
<!-- 遍历每一个li里面是每一个组件 -->
<li id="{{component.id}}" class="gridster-component" ng-style="{'z-index': 10,'padding-top': component.config.oPaddingTop+'px', 'padding-bottom': component.config.oPaddingBottom+'px', 'padding-left': component.config.oPaddingLeft+'px', 'padding-right': component.config.oPaddingRight+'px'}" ng-class="{'box':true, 'box-nohelpborder':!$parent.designerHelper.showComponentHelpBorder, 'mouse-in':mouseIn}" gridster-item="component" ng-repeat="component in page.components" ng-controller="ComponentWidgetCtrl" ng-mouseover="hoverIn($event, component)" ng-mouseleave="hoverOut($event, component)">
<div class="ui compact menu toolbar" vs-draggable="{container:component.id}" style="opacity:0;" ng-style="{'right': $parent.selectedComponent.config.toolbarRight,'display':mouseIn?'inline-flex':'none','opacity': mouseIn ? 1:0}">
<!-- 移动 -->
<a id="{{component.id}}" class="item widget-move" uib-tooltip="{{vsLang.move}}" tooltip-placement="top" tooltip-append-to-body="true">
<i class="fa fa-arrows"></i>
</a>
<!-- 配置 -->
<a class="item" ng-click="openComponentConfigPanel(component)" uib-tooltip="{{vsLang.settings}}" tooltip-placement="top" tooltip-append-to-body="true">
<i class="fa fa-wrench"></i>
</a>
<!-- 复制 -->
<a class="item" ng-click="cloneComponent(component)" uib-tooltip="{{vsLang.duplicate}}" tooltip-placement="top" tooltip-append-to-body="true">
<i class="fa fa-clone"></i>
</a>
<!-- 删除 -->
<a class="item" ng-click="removeComponent(component)" uib-tooltip="{{vsLang.delete}}" tooltip-placement="top" tooltip-append-to-body="true">
<i class="fa fa-trash"></i>
</a>
<!-- 移动工具条 -->
<a class="item vs-draggable" uib-tooltip="{{vsLang.move_toolbar}}" tooltip-placement="top" tooltip-append-to-body="true">
<i class="fa fa-arrows-h vs-draggable"></i>
</a>
</div>
<!-- 每一个组件主体 -->
<div class="box-content" ng-style="{'background-size':component.config.backgroundSize.x+' '+component.config.backgroundSize.y, 'background-position':component.config.backgroundPosition.x+' '+component.config.backgroundPosition.y, 'background-image':compileAttachmentStyleUrl(component.config.backgroundImage), 'background-repeat':component.config.backgroundRepeat,'background-color': component.context.measureLinkSelected ? component.config.mLinkBgColor : component.config.backgroundColor, 'border-radius':component.config.borderRadius+'px', 'border-top': component.context.measureLinkSelected ? component.config.mLinkBorderTopSize+'px solid '+component.config.mLinkBorderTopColor : component.config.borderTopSize+'px solid '+component.config.borderTopColor, 'border-bottom': component.context.measureLinkSelected ? component.config.mLinkBorderBottomSize+'px solid '+component.config.mLinkBorderBottomColor : component.config.borderBottomSize+'px solid '+component.config.borderBottomColor, 'border-left': component.context.measureLinkSelected ? component.config.mLinkBorderLeftSize+'px solid '+component.config.mLinkBorderLeftColor : component.config.borderLeftSize+'px solid '+component.config.borderLeftColor, 'border-right': component.context.measureLinkSelected ? component.config.mLinkBorderRightSize+'px solid '+component.config.mLinkBorderRightColor : component.config.borderRightSize+'px solid '+component.config.borderRightColor, 'border-image-slice': component.config.borderImageSlice == null || component.config.borderImageSlice.length === 0 ? '14 fill' : component.config.borderImageSlice, 'border-image-source': compileFullUrl(attachmentPrefix+component.config.borderImageSource)}">
<div id="componentSpinner" class="component-spinner">
<div style="display:table;width:100%;height:100%;">
<div style="display:table-cell;vertical-align: middle;text-align: center;">
<div id="componentSpinnerWrap" class="component-spinner-wrap all-easein-animation">
<img ng-src="{{getContextPath()}}/images/loading3.gif" style="width:200%;position:relative;left:-50%;top:-50%;" />
</div>
</div>
</div>
</div>
<!-- 组件标题 -->
<div id="compTitle" class="all-easein-animation" style="display:none;opacity:0;height:0;" ng-style="{'opacity':component.config.showTitle?1:0, 'height': component.config.showTitle ? component.config.tHeight+'px' : 0,'line-height': component.config.tHeight+'px','font-size':component.config.tFontSize, 'font-family': component.config.tFontFamily.value,'color':component.config.tFontColor,'text-align':component.config.tAlign,'background-color':component.config.tBackgroundColor, 'border-radius':component.config.tBorderRadius+'px', 'border-top': component.config.tBorderTopSize+'px solid '+component.config.tBorderTopColor, 'border-bottom': component.config.tBorderBottomSize+'px solid '+component.config.tBorderBottomColor, 'border-left': component.config.tBorderLeftSize+'px solid '+component.config.tBorderLeftColor, 'border-right': component.config.tBorderRightSize+'px solid '+component.config.tBorderRightColor, 'padding-top': component.config.tPaddingTop+'px', 'padding-bottom': component.config.tPaddingBottom+'px', 'padding-left': component.config.tPaddingLeft+'px', 'padding-right': component.config.tPaddingRight+'px','font-weight':component.config.tFontStyle.bold?'bold':'normal', 'font-style':component.config.tFontStyle.italic?'italic':'normal', 'text-decoration':component.config.tFontStyle.underline?'underline':'normal'}" ng-bind-html="compileVariableHtml(component.config.tTitle)"></div>
<!-- 组件body -->
<div class="comp-content-wrap">
<div class="comp-content" id="compContent" ng-click="onComponentClickEvent(component)" vs-component widget="widget" ng-style="{'cursor': getComponentHoverCursor(component), 'padding-top': component.config.paddingTop+'px', 'padding-bottom': component.config.paddingBottom+'px', 'padding-left': component.config.paddingLeft+'px', 'padding-right': component.config.paddingRight+'px'}" ></div>
</div>
<div id="compDimensionBar" ng-switch on="component.config.dimBarOrient" class="all-easein-animation" style="display:none;opacity:0;height:0;overflow-x:auto;overflow-y:hidden;white-space:nowrap;" ng-style="{'opacity':component.config.showDimensionBar?1:0, 'background-color':component.config.backgroundColor, 'height': component.config.showDimensionBar ? component.config.dHeight+'px' : 0,'line-height': component.config.dHeight+'px', 'border-radius':component.config.dBorderRadius+'px', 'border-top': component.config.dBorderTopSize+'px solid '+component.config.dBorderTopColor, 'border-bottom': component.config.dBorderBottomSize+'px solid '+component.config.dBorderBottomColor, 'border-left': component.config.dBorderLeftSize+'px solid '+component.config.dBorderLeftColor, 'border-right': component.config.dBorderRightSize+'px solid '+component.config.dBorderRightColor, 'padding-top': component.config.dPaddingTop+'px', 'padding-bottom': component.config.dPaddingBottom+'px', 'padding-left': component.config.dPaddingLeft+'px', 'padding-right': component.config.dPaddingRight+'px'}">
<table ng-switch-when="horizontal" style="margin: 0 auto; height:100%;" ng-style="{'float': component.config.dAlign}">
<tr>
<td ng-repeat="item in getConditionDimensions() track by $index" ng-show="shouldShowConditionDimension(item)" ng-style="{'padding-left': component.config.dItemPaddingLeft+'px', 'padding-right': component.config.dItemPaddingRight+'px', 'padding-top': component.config.dItemPaddingTop+'px'}">
<table style="width:100%;">
<tr>
<td style="word-break: keep-all;" ng-show="component.config.dimBarLabelPosition !== 'top'" ng-style="{'width': component.config.dimBarLabelPosition !== 'left'? component.config.dimBarLabelWidth+'%':'100%', 'padding-right': component.config.dimBarLabelMarginRight+'px','padding-left': component.config.dimBarLabelMarginLeft+'px'}">
<span ng-show="component.config.showDimBarLabel" ng-style="{'display': component.config.dimBarLabelPosition === 'top' ? 'block' : '', 'font-size':component.config.dimBarLabelFontSize+'px','color':component.config.dimBarLabelFontColor,'margin-bottom': component.config.dimBarLabelMarginBottom+'px'}">
{{getDimensionBarItemLabel(item)}}
</span>
</td>
<td>
<span ng-show="component.config.showDimBarLabel && component.config.dimBarLabelPosition === 'top'" ng-style="{'display': component.config.dimBarLabelPosition === 'top' ? 'block' : '', 'font-size':component.config.dimBarLabelFontSize+'px','color':component.config.dimBarLabelFontColor,'margin-bottom': component.config.dimBarLabelMarginBottom+'px','margin-right': component.config.dimBarLabelMarginRight+'px','margin-left': component.config.dimBarLabelMarginLeft+'px'}">
{{getDimensionBarItemLabel(item)}}
</span>
<select ng-change="onConditionDimensionValueChange($index)" ng-options="option.label for option in conditionDimensionValuesMap[$index]" ng-model="selectedConditionDimensionValueMap[$index]" style="text-align:left;min-width:80px;max-width:100%;margin-right: 5px;height:100%;" ng-style="{'background-color':component.config.dsBackgroundColor,'color':component.config.dsFontColor,'border-radius':component.config.dsBorderRadius+'px', 'font-size':component.config.dFontSize, 'border': component.config.dsBorderSize+'px solid '+component.config.dsBorderColor, 'height': component.config.dItemHeight+'px','font-weight':component.config.dFontStyle.bold?'bold':'normal', 'font-style':component.config.dFontStyle.italic?'italic':'normal', 'text-decoration':component.config.dFontStyle.underline?'underline':'normal'}">
</select>
</td>
</tr>
</table>
</td>
</tr>
</table>
<div ng-switch-when="vertical" style="overflow-x:hidden;">
<table style="margin: 0 auto;width:100%;">
<tr ng-repeat="item in getConditionDimensions() track by $index" ng-show="shouldShowConditionDimension(item)">
<td ng-show="component.config.dimBarLabelPosition !== 'top'" style="word-break: keep-all;" ng-style="{'width':component.config.dimBarLabelWidth+'%','text-align': component.config.dAlign, 'padding-top': component.config.dItemPaddingTop+'px'}">
<span ng-show="component.config.showDimBarLabel" ng-style="{'display': component.config.dimBarLabelPosition === 'top' ? 'block' : '', 'font-size':component.config.dimBarLabelFontSize+'px','color':component.config.dimBarLabelFontColor,'margin-bottom': component.config.dimBarLabelMarginBottom+'px','margin-right': component.config.dimBarLabelMarginRight+'px','margin-left': component.config.dimBarLabelMarginLeft+'px'}">
{{getDimensionBarItemLabel(item)}}
</span>
</td>
<td ng-style="{'text-align': component.config.dAlign, 'padding-left': component.config.dItemPaddingLeft+'px', 'padding-right': component.config.dItemPaddingRight+'px', 'padding-top': component.config.dItemPaddingTop+'px'}">
<span ng-show="component.config.showDimBarLabel && component.config.dimBarLabelPosition === 'top'" ng-style="{'display': component.config.dimBarLabelPosition === 'top' ? 'block' : '', 'font-size':component.config.dimBarLabelFontSize+'px','color':component.config.dimBarLabelFontColor,'margin-bottom': component.config.dimBarLabelMarginBottom+'px','margin-right': component.config.dimBarLabelMarginRight+'px','margin-left': component.config.dimBarLabelMarginLeft+'px'}">
{{getDimensionBarItemLabel(item)}}
</span>
<select ng-change="onConditionDimensionValueChange($index)" ng-options="option.label for option in conditionDimensionValuesMap[$index]" ng-model="selectedConditionDimensionValueMap[$index]" style="text-align:left;text-align:center;width:100%;height:100%;" ng-style="{'background-color':component.config.dsBackgroundColor,'color':component.config.dsFontColor,'border-radius':component.config.dsBorderRadius+'px', 'font-size':component.config.dFontSize, 'border': component.config.dsBorderSize+'px solid '+component.config.dsBorderColor, 'height': component.config.dItemHeight+'px','font-weight':component.config.dFontStyle.bold?'bold':'normal', 'font-style':component.config.dFontStyle.italic?'italic':'normal', 'text-decoration':component.config.dFontStyle.underline?'underline':'normal'}">
</select>
</td>
</tr>
</table>
</div>
</div>
</div>
</li>
</ul>
</div>
</div>
<div id="{{component.id}}" vs-fixed-component class="fixed-component" ng-style="{'z-index': 10, 'padding-top': component.config.oPaddingTop+'px', 'padding-bottom': component.config.oPaddingBottom+'px', 'padding-left': component.config.oPaddingLeft+'px', 'padding-right': component.config.oPaddingRight+'px', 'top':component.config.top, 'left':component.config.left, 'right': component.config.right, 'bottom': component.config.bottom, 'width': component.config.width+'px', 'height': component.config.height+'px'}" ng-class="{'box':true, 'box-nohelpborder':!$parent.designerHelper.showComponentHelpBorder, 'mouse-in':mouseIn}" ng-repeat="component in page.fixedComponents" ng-mouseover="hoverIn($event, component)" ng-mouseleave="hoverOut($event, component)">
<div class="ui compact menu toolbar" vs-draggable="{container:component.id}" style="opacity:0;" ng-style="{'right': $parent.selectedComponent.config.toolbarRight,'opacity': mouseIn ? 1:0}">
<!-- 移动组件 -->
<a id="{{component.id}}" class="item widget-move vs-dragresize-drag" uib-tooltip="{{vsLang.move}}" tooltip-placement="top" tooltip-append-to-body="true">
<i class="fa fa-arrows vs-dragresize-drag"></i>
</a>
<!-- 配置组件 -->
<a class="item" ng-click="openComponentConfigPanel(component)" uib-tooltip="{{vsLang.settings}}" tooltip-placement="top" tooltip-append-to-body="true">
<i class="fa fa-wrench"></i>
</a>
<!-- 复制组件 -->
<a class="item" ng-click="cloneComponent(component)" uib-tooltip="{{vsLang.duplicate}}" tooltip-placement="top" tooltip-append-to-body="true">
<i class="fa fa-clone"></i>
</a>
<!-- 删除组件 -->
<a class="item" ng-click="removeComponent(component)" uib-tooltip="{{vsLang.delete}}" tooltip-placement="top" tooltip-append-to-body="true">
<i class="fa fa-trash"></i>
</a>
<!-- 移动工具条 -->
<a class="item vs-draggable" uib-tooltip="{{vsLang.move_toolbar}}" tooltip-placement="top" tooltip-append-to-body="true">
<i class="fa fa-arrows-h vs-draggable"></i>
</a>
</div>
<!-- 组件主体 -->
<div class="box-content" ng-style="{'background-size':component.config.backgroundSize.x+' '+component.config.backgroundSize.y, 'background-position':component.config.backgroundPosition.x+' '+component.config.backgroundPosition.y, 'background-image':compileAttachmentStyleUrl(component.config.backgroundImage), 'background-repeat':component.config.backgroundRepeat,'background-color':component.config.backgroundColor, 'border-radius':component.config.borderRadius+'px', 'border-top': component.config.borderTopSize+'px solid '+component.config.borderTopColor, 'border-bottom': component.config.borderBottomSize+'px solid '+component.config.borderBottomColor, 'border-left': component.config.borderLeftSize+'px solid '+component.config.borderLeftColor, 'border-right': component.config.borderRightSize+'px solid '+component.config.borderRightColor, 'border-image-slice': component.config.borderImageSlice == null || component.config.borderImageSlice.length === 0 ? '14 fill' : component.config.borderImageSlice, 'border-image-source': compileFullUrl(attachmentPrefix+component.config.borderImageSource)}"}">
<div id="compTitle" class="all-easein-animation" style="display:none;opacity:0;height:0;" ng-style="{'opacity':component.config.showTitle?1:0, 'height': component.config.showTitle ? component.config.tHeight+'px' : 0,'line-height': component.config.tHeight+'px','font-size':component.config.tFontSize, 'font-family': component.config.tFontFamily.value,'color':component.config.tFontColor,'text-align':component.config.tAlign,'background-color':component.config.tBackgroundColor, 'border-radius':component.config.tBorderRadius+'px', 'border-top': component.config.tBorderTopSize+'px solid '+component.config.tBorderTopColor, 'border-bottom': component.config.tBorderBottomSize+'px solid '+component.config.tBorderBottomColor, 'border-left': component.config.tBorderLeftSize+'px solid '+component.config.tBorderLeftColor, 'border-right': component.config.tBorderRightSize+'px solid '+component.config.tBorderRightColor, 'padding-top': component.config.tPaddingTop+'px', 'padding-bottom': component.config.tPaddingBottom+'px', 'padding-left': component.config.tPaddingLeft+'px', 'padding-right': component.config.tPaddingRight+'px','font-weight':component.config.tFontStyle.bold?'bold':'normal', 'font-style':component.config.tFontStyle.italic?'italic':'normal', 'text-decoration':component.config.tFontStyle.underline?'underline':'normal'}">{{compileVariableString(component.config.tTitle)}}</div>
<div class="comp-content-wrap">
<div class="comp-content" id="compContent" ng-click="onComponentClickEvent(component)" vs-component widget="widget" ng-style="{'cursor': getComponentHoverCursor(component), 'padding-top': component.config.paddingTop+'px', 'padding-bottom': component.config.paddingBottom+'px', 'padding-left': component.config.paddingLeft+'px', 'padding-right': component.config.paddingRight+'px'}" ></div>
</div>
<div id="compDimensionBar" ng-switch on="component.config.dimBarOrient" class="all-easein-animation" style="display:none;opacity:0;height:0;overflow-x:auto;overflow-y:hidden;white-space:nowrap;" ng-style="{'opacity':component.config.showDimensionBar?1:0, 'background-color':component.config.backgroundColor, 'height': component.config.showDimensionBar ? component.config.dHeight+'px' : 0,'line-height': component.config.dHeight+'px', 'border-radius':component.config.dBorderRadius+'px', 'border-top': component.config.dBorderTopSize+'px solid '+component.config.dBorderTopColor, 'border-bottom': component.config.dBorderBottomSize+'px solid '+component.config.dBorderBottomColor, 'border-left': component.config.dBorderLeftSize+'px solid '+component.config.dBorderLeftColor, 'border-right': component.config.dBorderRightSize+'px solid '+component.config.dBorderRightColor, 'padding-top': component.config.dPaddingTop+'px', 'padding-bottom': component.config.dPaddingBottom+'px', 'padding-left': component.config.dPaddingLeft+'px', 'padding-right': component.config.dPaddingRight+'px'}">
<table ng-switch-when="horizontal" style="margin: 0 auto; height:100%;" ng-style="{'float': component.config.dAlign}">
<tr>
<td ng-repeat="item in getConditionDimensions() track by $index" ng-show="shouldShowConditionDimension(item)" ng-style="{'padding-left': component.config.dItemPaddingLeft+'px', 'padding-right': component.config.dItemPaddingRight+'px', 'padding-top': component.config.dItemPaddingTop+'px'}">
<table style="width:100%;">
<tr>
<td style="word-break: keep-all;" ng-show="component.config.dimBarLabelPosition !== 'top'" ng-style="{'width': component.config.dimBarLabelPosition !== 'left'? component.config.dimBarLabelWidth+'%':'100%', 'padding-right': component.config.dimBarLabelMarginRight+'px','padding-left': component.config.dimBarLabelMarginLeft+'px'}">
<span ng-show="component.config.showDimBarLabel" ng-style="{'display': component.config.dimBarLabelPosition === 'top' ? 'block' : '', 'font-size':component.config.dimBarLabelFontSize+'px','color':component.config.dimBarLabelFontColor,'margin-bottom': component.config.dimBarLabelMarginBottom+'px'}">
{{getDimensionBarItemLabel(item)}}
</span>
</td>
<td>
<span ng-show="component.config.showDimBarLabel && component.config.dimBarLabelPosition === 'top'" ng-style="{'display': component.config.dimBarLabelPosition === 'top' ? 'block' : '', 'font-size':component.config.dimBarLabelFontSize+'px','color':component.config.dimBarLabelFontColor,'margin-bottom': component.config.dimBarLabelMarginBottom+'px','margin-right': component.config.dimBarLabelMarginRight+'px','margin-left': component.config.dimBarLabelMarginLeft+'px'}">
{{getDimensionBarItemLabel(item)}}
</span>
<select ng-change="onConditionDimensionValueChange($index)" ng-options="option.label for option in conditionDimensionValuesMap[$index]" ng-model="selectedConditionDimensionValueMap[$index]" style="text-align:left;min-width:80px;max-width:100%;margin-right: 5px;height:100%;" ng-style="{'background-color':component.config.dsBackgroundColor,'color':component.config.dsFontColor,'border-radius':component.config.dsBorderRadius+'px', 'font-size':component.config.dFontSize, 'border': component.config.dsBorderSize+'px solid '+component.config.dsBorderColor, 'height': component.config.dItemHeight+'px','font-weight':component.config.dFontStyle.bold?'bold':'normal', 'font-style':component.config.dFontStyle.italic?'italic':'normal', 'text-decoration':component.config.dFontStyle.underline?'underline':'normal'}">
</select>
</td>
</tr>
</table>
</td>
</tr>
</table>
<div ng-switch-when="vertical" style="overflow-x:hidden;">
<table style="margin: 0 auto;width:100%;">
<tr ng-repeat="item in getConditionDimensions() track by $index" ng-show="shouldShowConditionDimension(item)">
<td ng-show="component.config.dimBarLabelPosition !== 'top'" style="word-break: keep-all;" ng-style="{'width':component.config.dimBarLabelWidth+'%','text-align': component.config.dAlign, 'padding-top': component.config.dItemPaddingTop+'px'}">
<span ng-show="component.config.showDimBarLabel" ng-style="{'display': component.config.dimBarLabelPosition === 'top' ? 'block' : '', 'font-size':component.config.dimBarLabelFontSize+'px','color':component.config.dimBarLabelFontColor,'margin-bottom': component.config.dimBarLabelMarginBottom+'px','margin-right': component.config.dimBarLabelMarginRight+'px','margin-left': component.config.dimBarLabelMarginLeft+'px'}">
{{getDimensionBarItemLabel(item)}}
</span>
</td>
<td ng-style="{'text-align': component.config.dAlign, 'padding-left': component.config.dItemPaddingLeft+'px', 'padding-right': component.config.dItemPaddingRight+'px', 'padding-top': component.config.dItemPaddingTop+'px'}">
<span ng-show="component.config.showDimBarLabel && component.config.dimBarLabelPosition === 'top'" ng-style="{'display': component.config.dimBarLabelPosition === 'top' ? 'block' : '', 'font-size':component.config.dimBarLabelFontSize+'px','color':component.config.dimBarLabelFontColor,'margin-bottom': component.config.dimBarLabelMarginBottom+'px','margin-right': component.config.dimBarLabelMarginRight+'px','margin-left': component.config.dimBarLabelMarginLeft+'px'}">
{{getDimensionBarItemLabel(item)}}
</span>
<select ng-change="onConditionDimensionValueChange($index)" ng-options="option.label for option in conditionDimensionValuesMap[$index]" ng-model="selectedConditionDimensionValueMap[$index]" style="text-align:left;text-align:center;width:100%;height:100%;" ng-style="{'background-color':component.config.dsBackgroundColor,'color':component.config.dsFontColor,'border-radius':component.config.dsBorderRadius+'px', 'font-size':component.config.dFontSize, 'border': component.config.dsBorderSize+'px solid '+component.config.dsBorderColor, 'height': component.config.dItemHeight+'px','font-weight':component.config.dFontStyle.bold?'bold':'normal', 'font-style':component.config.dFontStyle.italic?'italic':'normal', 'text-decoration':component.config.dFontStyle.underline?'underline':'normal'}">
</select>
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="simulatorPageFooter" class="footer" ng-show="footer != null">
</div>
<!-- vs-designer-component.js 2205 -->
<div ng-controller="VSDatePickerCtrl" id="vsDatePickerDiv" class="all-easein-animation" style="overflow:hidden;z-index:300;position:absolute;left:0;right:0;top:0;bottom:0;display:none;">
<div id="vsDatePickerBg" class="all-easein-animation" style="opacity: 0;position: absolute;left:0;top:0;bottom:0;right:0;z-index:290;"></div>
<div id="vsDatepickerContainer" class="all-easein-animation" style="position:absolute;z-index:300;background-color: #fff;box-shadow: 0 2px 8px rgba(0,0,0,.2);">
<div id="vsDatepickerBody" style="position:absolute;z-index:100;left:0;top:0;bottom:38px;width:100%;">
</div>
<div class="vs-datepicker-footer" style="position:absolute;z-index:90;left:0;bottom:0;width:100%;height:38px;">
<div class="col-xs-6" style="cursor:pointer;font-size:14px;text-align:center;color:#fff;height:38px;line-height:38px;background-color:#5CB85C;" ng-click="confirm()">{{vsLang.ok}}</div>
<div class="col-xs-6" style="cursor:pointer;font-size:14px;text-align:center;height:38px;line-height:38px;" ng-click="cancel()">{{vsLang.cancel}}</div>
</div>
</div>
</div>
<!-- 弹出面板开始 -->
<!-- vs-designer-component.js 2037 -->
<div ng-controller="VSPopupPanelCtrl" id="vsPopupPanelDiv" class="all-easein-animation" style="overflow:hidden;background:none;z-index:250;position:absolute;left:0;right:0;pointer-events:none;top:0;bottom:0;display:none;">
<div id="vsPopupPanelBg" class="all-easein-animation" style="opacity: 0;position: absolute;left:0;top:0;bottom:0;right:0;z-index:290;pointer-events:auto;"></div>
<div id="vsPopupPanelContainer" ng-style="{'background-color': pageConfig.backgroundColor}" style="position:absolute;left:0;right:0;top:0;bottom:0;z-index:300;pointer-events:auto;">
<div id="vsPopupPanelBody" style="position:absolute;z-index:100;bottom:0;top:0;width:100%;overflow-x:hidden;overflow-y:auto;width:100%;">
<div id="popupPanelGridster" gridster="popupPanelGridsterOptions">
2013年11月,习近平曾赴山东考察。他行经青岛、临沂、济宁、菏泽、济南五地,要求汇聚起全面推进改革开放的强大正能量。外界注意到,围绕贯彻十八届三中全会精神做好“三农”工作,也是习近平那一次调研的重要内容。他提出,解决好“三农”问题,根本在于深化改革,走中国特色现代化农业道路。
山东是农业大省,素有“全国农业看山东”的说法。习近平此次下团,与代表之间会有什么样的互动,他将聚焦什么样的议题?
按照惯例,山东团8位代表首先发言。
<div id="{{component.id}}" ng-style="{'z-index': 10,'padding-top': component.config.oPaddingTop+'px', 'padding-bottom': component.config.oPaddingBottom+'px', 'padding-left': component.config.oPaddingLeft+'px', 'padding-right': component.config.oPaddingRight+'px'}" ng-class="{'box':true, 'box-nohelpborder':!$parent.designerHelper.showComponentHelpBorder, 'mouse-in':mouseIn}" ng-init="initComponent(component)" gridster-item="component" ng-repeat="component in popupPanelComponents" ng-controller="ComponentWidgetCtrl">
<div class="box-content" ng-style="{'background-size':component.config.backgroundSize.x+' '+component.config.backgroundSize.y, 'background-position':component.config.backgroundPosition.x+' '+component.config.backgroundPosition.y, 'background-image':compileAttachmentStyleUrl(component.config.backgroundImage), 'background-repeat':component.config.backgroundRepeat,'background-color':component.config.backgroundColor, 'border-radius':component.config.borderRadius+'px', 'border-top': component.config.borderTopSize+'px solid '+component.config.borderTopColor, 'border-bottom': component.config.borderBottomSize+'px solid '+component.config.borderBottomColor, 'border-left': component.config.borderLeftSize+'px solid '+component.config.borderLeftColor, 'border-right': component.config.borderRightSize+'px solid '+component.config.borderRightColor}">
<div id="compTitle" class="all-easein-animation" style="display:none;opacity:0;height:0;" ng-style="{'opacity':component.config.showTitle?1:0, 'height': component.config.showTitle ? component.config.tHeight+'px' : 0,'line-height': component.config.tHeight+'px','font-size':component.config.tFontSize, 'font-family': component.config.tFontFamily.value,'color':component.config.tFontColor,'text-align':component.config.tAlign,'background-color':component.config.tBackgroundColor, 'border-radius':component.config.tBorderRadius+'px', 'border-top': component.config.tBorderTopSize+'px solid '+component.config.tBorderTopColor, 'border-bottom': component.config.tBorderBottomSize+'px solid '+component.config.tBorderBottomColor, 'border-left': component.config.tBorderLeftSize+'px solid '+component.config.tBorderLeftColor, 'border-right': component.config.tBorderRightSize+'px solid '+component.config.tBorderRightColor, 'padding-top': component.config.tPaddingTop+'px', 'padding-bottom': component.config.tPaddingBottom+'px', 'padding-left': component.config.tPaddingLeft+'px', 'padding-right': component.config.tPaddingRight+'px','font-weight':component.config.tFontStyle.bold?'bold':'normal', 'font-style':component.config.tFontStyle.italic?'italic':'normal', 'text-decoration':component.config.tFontStyle.underline?'underline':'normal'}" ng-bind-html="compileVariableHtml(component.config.tTitle)"></div>
<div class="comp-content-wrap">
<div class="comp-content" id="compContent" ng-click="onComponentClickEvent(component)" vs-component widget="widget" ng-style="{'padding-top': component.config.paddingTop+'px', 'padding-bottom': component.config.paddingBottom+'px', 'padding-left': component.config.paddingLeft+'px', 'padding-right': component.config.paddingRight+'px'}" ></div>
</div>
</div>
</div>
</div>
</div>
<div id="button" style="position:absolute;z-index:110;left:0;bottom:0;width:100%;height:38px;">
<div class="col-xs-12" style="cursor:pointer;font-size:14px;text-align:center;height:38px;line-height:38px;background-color:#f0f0f0;" ng-click="close()">{{vsLang.close}}</div>
</div>
</div>
</div>
<!-- 弹出面板结束 -->
</div>
</div>
</div>
<!--<div class="bottom-toolbar" style="display:none;">-->
<!--<div class="unit">-->
<!--<span style="color:#666;font-size:12px;">缩放: </span>-->
<!--<select ng-change="changeSimulatorScale(internalSimulatorScale)" ng-model="internalSimulatorScale">-->
<!--<option value="0.7">70%</option>-->
<!--<option value="0.8">80%</option>-->
<!--<option value="0.9">90%</option>-->
<!--<option value="1">100%</option>-->
<!--<option value="1.2">120%</option>-->
<!--<option value="1.5">150%</option>-->
<!--</select>-->
<!--</div>-->
<!--</div>-->
<!-- 在angular渲染完dom以后执行js代码的方法是使用init方法完成dom初始化,同时控制器中写入需要执行的js代码即可。 -->
<!-- 设置组件配置的面板 vs-designer-component.js 1772-->
<!-- 设置里面的tab 数据 排序 过滤等等 -->
<div ng-init="initCtrl()" ng-controller="ComponentPanelCtrl">
<div id="configPanel" pageslide ps-open="$parent.configingComponent != null" ps-speed="0.3" ps-size="rightSidePanelWidth()" class="vrd-page-right">
<!-- 设置里面的tab 数据 排序 过滤等等 -->
<div class="cp-tab-menu">
<div class="list-group">
<a href="javascript:" ng-click="onCategoryTabClicked(category, $index, $event)" ng-class="selectedCategory.name==category.name ? 'list-group-item text-center active' : 'list-group-item text-center'" ng-repeat="category in component.description.categories">
{{category.title}}
</a>
</div>
</div>
<div class="cp-tab">
<div class="cp-tab-content">
<div ng-show="(group.show == null || group.show(group))" class="group" ng-repeat="group in selectedCategory.groups track by $index">
<div ng-if="(group.title.show || group.title.show == null) && group.elements.length > 0" ng-class="{'title':true, 'en-text':vsLang.locale==='en_US'}">
<i ng-click="group.showElements = (group.showElements == null ? false : !group.showElements)" ng-class="{'fa fa-minus':(group.showElements==null ||group.showElements), 'fa fa-plus': (group.showElements != null && group.showElements==false)}"></i>
<span ng-click="group.showElements = (group.showElements == null ? false : !group.showElements)" style="cursor:pointer;">{{group.title.text}} </span>
<a href="javascript:" ng-show="group.movable" ng-click="group.moveUp($index, group)" style="float:right;padding:0 2px;padding-top:2px;"><i class="fa fa-arrow-up"></i></a>
<a href="javascript:" ng-show="group.movable" ng-click="group.moveDown($index, group)" style="float:right;padding:0 2px;padding-top:2px;"><i class="fa fa-arrow-down"></i></a>
<a href="javascript:" ng-show="group.removeable" ng-click="group.remove($index, group)" style="float:right;padding:0 10px;">{{vsLang.delete}}</a>
<a href="javascript:" ng-show="group.newable" ng-click="group.newElement(group)" style="float:right;padding:0 10px;">{{vsLang.add}}</a>
</div>
<!-- 判断是否显示 -->
<div ng-show="group.showElements == null || group.showElements" >
<div ng-show="element.show == null || element.show == true || element.show(element)" class="element" ng-switch on="element.type" ng-repeat="element in group.elements">
<div ng-switch-when="slide">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{element.title}}</div>
</div>
<div class="col col-xs-4" style="height:22px;padding-top:3px;">
<div slider ng-model="component[element.bind]" start=0 end={{element.config.slideEnd}} step=1 connect='lower' style="margin-top:10px;padding-left:10px;"></div>
</div>
<div class="col col-xs-3 ui input" style="padding-left:15px !important;padding-top:3px;">
<input ng-model="component[element.bind]" type="text" style="width:80px;height:20px;padding:0;text-align:center;color:#666;font-size:12px;">
</div>
</div>
<!-- 设置圆角组件 -->
<div ng-switch-when="configSlide">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{element.title}}</div>
</div>
<div class="col col-xs-4" style="height:22px;padding-top:3px;">
<div slider ng-model="component.config[element.bind]" start={{element.config.slideStart?element.config.slideStart:0}} end={{element.config.slideEnd}} step=1 connect='lower' style="margin-top:10px;padding-left:10px;"></div>
</div>
<div class="col col-xs-3 ui input" style="line-height:22px;padding-left:15px !important;padding-top:3px;">
<input ng-model="component.config[element.bind]" ng-disabled="element.disabled == null ? false : element.disabled()" type="text" style="width:80px;height:20px;padding:0;text-align:center;color:#666;font-size:12px;">
</div>
</div>
<!-- 设置字体组件 -->
<div ng-switch-when="fontFamily">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{element.title}}</div>
</div>
<div class="col col-xs-7" style2="max-height:300px; overflow-y:auto;padding-right:10px !important;">
<ui-select ng-model="component.config[element.bind]" theme="selectize" ng-disabled="disabled">
<ui-select-match>{{$select.selected.name}}</ui-select-match>
<ui-select-choices repeat="item in availableFontFamilies | filter: $select.search">
<span ng-bind-html="item.name | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
</div>
</div>
<!-- 文本输入组件 -->
<div ng-switch-when="text-input">
<div style="margin:5px 0;">
{{element.title}}
</div>
<div class="col col-xs-12">
<input class="form-control" ng-model="component.config[element.bind]" type="text" style="padding:4px 8px;text-align:left;color:#666;font-size:12px;">
</div>
</div>
<!-- 文本输入组件 -->
<div ng-switch-when="text-input-sl">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{element.title}}</div>
</div>
<div class="col col-xs-7">
<input class="form-control" ng-model="component.config[element.bind]" type="text" style="padding:4px 8px;text-align:left;color:#666;font-size:12px;">
</div>
</div>
<!-- 文本输入组件 -->
<div ng-switch-when="text-input-sl-s">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{element.title}}</div>
</div>
<div class="col col-xs-7">
<input class="form-control" ng-model="component.config[element.bind]" type="text" style="padding:4px 8px;text-align:left;color:#333;font-size:12px;">
</div>
</div>
<!-- 地图设置区域映射 -->
<div ng-switch-when="key-value-map">
<div class="col col-xs-5">
<input class="form-control" ng-model="component.config.kvKeys[element.bind]" type="text" style="padding:4px 8px;text-align:left;color:#666;font-size:12px;">
</div>
<div class="col col-xs-1" style="text-align:center;height:25px;line-height:25px;">
-
</div>
<div class="col col-xs-5">
<input class="form-control" ng-model="component.config.kvValues[element.bind]" type="text" style="padding:4px 8px;text-align:left;color:#666;font-size:12px;">
</div>
<div class="col col-xs-1" style="text-align:center;height:34px;">
<button ng-click="group.removeKeyValueMappingItem(element.bind)" class="btn btn-default" style="border:0;color:#999;margin-top:2px;"><span class="fa fa-remove"></span></button>
</div>
</div>
<!-- 判断显示文本域--文本组件 -->
<div ng-switch-when="text-area">
<div style="margin:5px 0;" ng-show="element.showTitle == null || element.showTitle === true">
{{element.title}}
</div>
<div class="col col-xs-12 ui input">
<textarea ng-model="component.config[element.bind]" style="width:100%;border:1px solid #DDD;" rows="5"></textarea>
</div>
</div>
<!-- 谷建文 视频组件-->
<div ng-switch-when="video" id="id324242343535435435">
<div style="margin:5px 0;" ng-show="element.showTitle == null || element.showTitle === true">
{{element.title}}
</div>
<div class="col col-xs-12 ui input">
<textarea ng-model="component.config[element.bind]" style="width:100%;border:1px solid #DDD;" rows="5"></textarea>
</div>
<div class="col col-xs-12 ui bg-primary" style="text-align:left;padding-left:5px;line-heignt:20px;margin-top:15px;">
<p>支持http协议下的flv,f4v,mp4,支持rtmp视频流和rtmp视频回放,支持m3u8格式.</p>
</div>
</div>
<!-- end -->
<!-- 基本里的背景颜色组件 -->
<div ng-switch-when="colorpicker">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{element.title}}</div>
</div>
<div class="col col-xs-7">
<div>
<input minicolors="{control: 'brightness',theme: 'bootstrap',position: 'bottom right', opacity: true}" id="color-input" class="form-control" type="text" ng-model="component.config[element.bind]">
</div>
</div>
</div>
<!-- 选择方形元素小图标组件 -->
<div ng-switch-when="iconpicker">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{element.title}}</div>
</div>
<div class="col col-xs-7" style="height:30px;line-height:30px;">
<a href="javascript:" ng-click="openIconPickerWindow(component, element.bind)" style="padding:5px;font-size:16px;border:1px solid #ddd;"><i ng-class='component.config[element.bind]'></i></a>
<button ng-click="cleanIcon(component, element.bind)" class="btn btn-default" style="border:0;color:#999;"><span class="fa fa-remove"></span></button>
</div>
</div>
<!-- 切换选择组件 -->
<div ng-switch-when="toggle-switch">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{element.title}}</div>
</div>
<div class="col col-xs-7" style="height:26px;">
<toggle-switch ng-model="component.config[element.bind]" style="border:1px solid #bbb;" on-label="{{vsLang.on}}" off-label="{{vsLang.off}}"></toggle-switch>
</div>
</div>
<!-- 开关选择组件 -->
<div ng-switch-when="switch-55">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{element.title}}</div>
</div>
<div class="col col-xs-7" style="height: 26px;">
<div class="btn-group" ng-class="{'en-text':vsLang.locale==='en_US'}">
<toggle-switch ng-model="component.config[element.bind]" style="border:1px solid #bbb;" on-label="{{element.on}}" off-label="{{element.off}}"></toggle-switch>
</div>
</div>
</div>
<!-- 浮动开关组件 -->
<div ng-switch-when="switch">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{element.title}}</div>
</div>
<div class="col col-xs-7" style="height: 26px;">
<div class="btn-group" ng-class="{'en-text':vsLang.locale==='en_US'}">
<toggle-switch ng-model="component.config[element.bind]" style="border:1px solid #bbb;" on-label="{{element.on}}" off-label="{{element.off}}"></toggle-switch>
</div>
</div>
</div>
<!-- 图形里的值脚本 -->
<div ng-switch-when="script-editor">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{element.title}}</div>
</div>
<div class="col col-xs-7" style="height:26px;">
<button ng-click="element.onClick(element)" class="btn {{element.btnClass==null ? 'btn-default' : element.btnClass}}" style="width:100%;"><span ng-class="{'en-text':vsLang.locale==='en_US'}">{{vsLang.edit_script}}</span></button>
</div>
</div>
<!-- 基本里面的编辑组件脚本 -->
<div ng-switch-when="button">
<div class="col col-xs-12">
<button ng-click="element.onClick(element)" class="btn {{element.btnClass==null ? 'btn-success' : element.btnClass}}" style="width:100%;"><span ng-class="{'en-text':vsLang.locale==='en_US'}">{{element.title}}</span></button>
</div>
</div>
<div ng-switch-when="label-button">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">
<span ng-class="{'en-text':vsLang.locale==='en_US'}" style="padding: 3px 7px; background-color:#CCCCCC;" ng-show="component.config[element.bind] == null || component.config[element.bind].length === 0">{{vsLang.not_set}}</span>
<span ng-class="{'en-text':vsLang.locale==='en_US'}" style="padding: 3px 7px; background-color:#006EDD;color:#fff;" ng-show="component.config[element.bind] != null && component.config[element.bind].length > 0">{{vsLang.have_set}}</span>
</div>
</div>
<div class="col col-xs-7">
<button ng-click="element.onClick(element)" class="btn {{element.btnClass==null ? 'btn-success' : element.btnClass}}" style="width:100%;"><span ng-class="{'en-text':vsLang.locale==='en_US'}">{{element.title}}</span></button>
</div>
</div>
<!-- 选择图片组件 -->
<div ng-switch-when="imagepicker">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{element.title}}</div>
</div>
<div class="col col-xs-4" style2="max-height:300px; overflow-y:auto;padding-right:10px !important;">
<input readonly="readonly" placeholder="{{vsLang.choose_image}}" class="form-control" ng-model="component.config[element.bind.name]" type="text" style="padding:4px 8px;text-align:left;color:#666;font-size:12px;background-color:#fff;">
</div>
<div class="col col-xs-3" style="line-height:25px;text-align:right;">
<button ng-click="openAttachmentPickerWindow(component, element.bind)" class="btn btn-default"><span class="fa fa-share"></span></button>
<button ng-click="cleanAttachmentImage(component, element.bind)" class="btn btn-default" style="border:0;color:#999;"><span class="fa fa-remove"></span></button>
</div>
</div>
<!-- 数据项显示组件 -->
<div ng-switch-when="radio">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{element.title}}</div>
</div>
<div class="col col-xs-7">
<div class="btn-group">
<label ng-repeat="item in element.items" class="btn btn-default" style="cursor:pointer;" ng-model="component.config[element.bind]" uib-btn-radio="item.value">
<span ng-show="item.sname == null" style="margin: 0 5px;" ng-class="{'en-text en-small-margin':vsLang.locale==='en_US'}">{{item.name}}</span>
<span ng-show="item.sname != null" style="margin: 0 5px;" ng-class="{'en-text en-small-margin':vsLang.locale==='en_US'}" uib-tooltip="{{item.name}}" tooltip-placement="top" tooltip-append-to-body="true">{{item.sname}}</span>
</label>
</div>
</div>
</div>
<!-- 图形里面的图例方向 组件-->
<div ng-switch-when="radio-icon">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{element.title}}</div>
</div>
<div class="col col-xs-7" style="height:26px;">
<div class="btn-group radio-icon">
<label uib-tooltip="{{item.name}}" tooltip-placement="top" tooltip-append-to-body="true" ng-repeat="item in element.items" class="btn btn-default" ng-model="component.config[element.bind]" uib-btn-radio="item.value" style="{{item.pStyle}}">
<i class="{{item.icon}}" style="font-size:14px;margin: 0 3px;"></i>
</label>
</div>
</div>
</div>
<!-- 基本里的加载提示开关 -->
<div ng-switch-when="select">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{element.title}}</div>
</div>
<div class="col col-xs-7" ng-class="{'en-text':vsLang.locale==='en_US'}">
<ui-select ng-model="component.config[element.bind]" theme="selectize" ng-disabled="disabled">
<ui-select-match placeholder="">{{$select.selected.name}}</ui-select-match>
<ui-select-choices repeat="item in element.items | filter: $select.search">
<span ng-bind-html="item.name | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
</div>
</div>
<!-- 容器组件里的选择内容 也就是下拉选择组件 -->
<div ng-switch-when="select-s">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{element.title}}</div>
</div>
<div class="col col-xs-7" ng-class="{'en-text':vsLang.locale==='en_US'}">
<ui-select ng-model="component.config[element.bind]" theme="selectize" ng-disabled="disabled">
<ui-select-match placeholder="">{{$select.selected.name}}</ui-select-match>
<ui-select-choices repeat="item in element.items | filter: $select.search">
<span ng-bind-html="item.name | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
</div>
</div>
<!-- 动态开关组件 -->
<div ng-switch-when="dynamic-select">
<div class="col col-xs-5" style="line-height:30px;">
<span>{{element.title}}</span>
</div>
<div class="col col-xs-7">
<ui-select ng-model="component.config[element.bind]" theme="selectize" ng-disabled="disabled">
<ui-select-match placeholder="">{{$select.selected.label}}</ui-select-match>
<ui-select-choices repeat="item in element.items() track by item.name | filter: $select.search">
<span ng-bind-html="item.label | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
</div>
</div>
<!-- 设置图片位置的 -->
<div ng-switch-when="background-repeat">
<div class="col col-xs-5" style="line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-7">
<div ng-class="{'btn-group': true, 'en-text':vsLang.locale==='en_US'}">
<label class="btn btn-default" ng-model="component.config[element.bind]" uib-btn-radio="'repeat'" uib-tooltip="{{vsLang.repeat_both_tip}}" tooltip-placement="top" tooltip-append-to-body="true" ><span style="margin: 0 5px;">{{vsLang.repeat_both}}</span></label>
<label class="btn btn-default" ng-model="component.config[element.bind]" uib-btn-radio="'repeat-x'" uib-tooltip="{{vsLang.repeat_x_tip}}" tooltip-placement="top" tooltip-append-to-body="true" ><span style="margin: 0 5px;">{{vsLang.repeat_x}}</span></label>
<label class="btn btn-default" ng-model="component.config[element.bind]" uib-btn-radio="'repeat-y'" uib-tooltip="{{vsLang.repeat_y_tip}}" tooltip-placement="top" tooltip-append-to-body="true" ><span style="margin: 0 5px;">{{vsLang.repeat_y}}</span></label>
<label class="btn btn-default" ng-model="component.config[element.bind]" uib-btn-radio="'no-repeat'" uib-tooltip="{{vsLang.repeat_none_tip}}" tooltip-placement="top" tooltip-append-to-body="true" ><span style="margin: 0 5px;">{{vsLang.repeat_none}}</span></label>
</div>
</div>
</div>
<!-- 设置图片定位方式 -->
<div ng-switch-when="background-position">
<div class="col col-xs-5" style="line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-3">
<input class="form-control" placeholder="{{vsLang.position_left}}" ng-model="component.config[element.bind].x" type="text" style="padding:4px 8px;text-align:left;color:#666;font-size:12px;">
</div>
<div class="col col-xs-1">
</div>
<div class="col col-xs-3">
<input class="form-control" placeholder="{{vsLang.position_top}}" ng-model="component.config[element.bind].y" type="text" style="padding:4px 8px;text-align:left;color:#666;font-size:12px;">
</div>
</div>
<!-- 设置图片大小 -->
<div ng-switch-when="background-size">
<div class="col col-xs-5" style="line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-3">
<input class="form-control" placeholder="{{vsLang.horizontal}}" ng-model="component.config[element.bind].x" type="text" style="padding:4px 8px;text-align:left;color:#666;font-size:12px;">
</div>
<div class="col col-xs-1">
</div>
<div class="col col-xs-3">
<input class="form-control" placeholder="{{vsLang.vertical}}" ng-model="component.config[element.bind].y" type="text" style="padding:4px 8px;text-align:left;color:#666;font-size:12px;">
</div>
</div>
<!-- 设置标题等文本的对齐方式 -->
<div ng-switch-when="horizontal-align">
<div class="col col-xs-5" style="line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-7">
<div class="btn-group">
<label class="btn btn-default" ng-model="component.config[element.bind]" uib-btn-radio="'left'" uncheckable><i class="fa fa-align-left"></i></label>
<label class="btn btn-default" ng-model="component.config[element.bind]" uib-btn-radio="'center'" uncheckable><i class="fa fa-align-center"></i></label>
<label class="btn btn-default" ng-model="component.config[element.bind]" uib-btn-radio="'right'" uncheckable><i class="fa fa-align-right"></i></label>
</div>
</div>
</div>
<!-- 设置字体的样式组件 -->
<div ng-switch-when="font-style">
<div class="col col-xs-5" style="height:30px;line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-7" style="height:30px;line-height:30px;">
<div class="btn-group">
<label class="btn btn-default" ng-model="component.config[element.bind].bold" uib-btn-checkbox><i class="fa fa-bold"></i></label>
<label class="btn btn-default" ng-model="component.config[element.bind].italic" uib-btn-checkbox><i class="fa fa-italic"></i></label>
<label class="btn btn-default" ng-model="component.config[element.bind].underline" uib-btn-checkbox><i class="fa fa-underline"></i></label>
</div>
</div>
</div>
<!-- 颜色选择组件 -->
<div ng-switch-when="colorSeries">
<div class="col col-xs-5" style="line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-7" style2="max-height:300px; overflow-y:auto;padding-right:10px !important;">
<div ng-repeat="color in component.config[element.bind] track by $index" style="display:block;margin:5px 0;">
<span style="display:block;margin:5px 0;">
<input minicolors="{control: 'brightness',theme: 'bootstrap',position: 'bottom right'}" id="color-input" class="form-control" type="text" ng-model="component.config[element.bind][$index]">
</span>
</div>
</div>
</div>
<div ng-switch-when="threshold">
<div class="col col-xs-2" style="line-height:30px;">
<input class="form-control" ng-model="component.config[element.bind.from]" type="text" style="padding:4px 0;text-align:center;color:#666;font-size:12px;">
</div>
<div class="col col-xs-1" style="line-height:26px;text-align:center;">
-
</div>
<div class="col col-xs-2" style="line-height:30px;">
<input class="form-control" ng-model="component.config[element.bind.to]" type="text" style="padding:4px 0;text-align:center;color:#666;font-size:12px;">
</div>
<div class="col col-xs-1" style="line-height:30px;text-align:center;">
</div>
<div class="col col-xs-5">
<div>
<input minicolors="{control: 'brightness',theme: 'bootstrap',position: 'bottom right', opacity: true}" id="color-input" class="form-control" type="text" ng-model="component.config[element.bind.color]">
</div>
</div>
<div class="col col-xs-1" style="line-height:30px;text-align:center;">
<button ng-click="element.remove(element)" class="btn btn-default" style="border:0;color:#999;padding:8px 6px;"><span class="fa fa-remove"></span></button>
</div>
</div>
<div ng-switch-when="threshold2">
<div>
<div class="col col-xs-5" style="line-height:30px;">
{{vsLang.value_range}}<button ng-click="element.remove(element)" class="btn btn-default" style="border:0;color:#999;padding:8px 6px;"><span class="fa fa-remove"></span></button>
</div>
<div class="col col-xs-3" style="line-height:30px;">
<input class="form-control" ng-model="component.config[element.bind.from]" type="text" style="padding:4px 0;text-align:center;color:#666;font-size:12px;">
</div>
<div class="col col-xs-1" style="text-align:center;line-height:26px;">
-
</div>
<div class="col col-xs-3" style="line-height:30px;">
<input class="form-control" ng-model="component.config[element.bind.to]" type="text" style="padding:4px 0;text-align:center;color:#666;font-size:12px;">
</div>
</div>
<div style="clear:both;padding-top:5px;">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{vsLang.cell_font_color}}</div>
</div>
<div class="col col-xs-7">
<div>
<input minicolors="{control: 'brightness',theme: 'bootstrap',position: 'bottom right', opacity: true}" id="color-input" class="form-control" type="text" ng-model="component.config[element.bind.color]">
</div>
</div>
</div>
<div style="clear:both;padding-top:5px;">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{vsLang.cell_background_color}}</div>
</div>
<div class="col col-xs-7">
<div>
<input minicolors="{control: 'brightness',theme: 'bootstrap',position: 'bottom right', opacity: true}" id="color-input" class="form-control" type="text" ng-model="component.config[element.bind.bgColor]">
</div>
</div>
</div>
<div style="clear:both;padding-top:5px;">
<div class="col col-xs-5" style="height:28px;line-height:26px;">
<span>{{vsLang.icon}}</span>
</div>
<div class="col col-xs-3" style="height:28px;line-height:26px;">
<a href="javascript:" ng-click="openIconPickerWindow(component, element.bind.icon)" style="padding:4px 6px;text-align:center;font-size:14px;border:1px solid #ddd;"><i ng-style="{'color': component.config[element.bind.iconcolor]}" ng-class='component.config[element.bind.icon] == null ? "fa": component.config[element.bind.icon]'></i></a>
</div>
<div class="col col-xs-4" style="text-align:right;height:30px;line-height:30px;">
<input class="form-control" ng-model="component.config[element.bind.iconsize]" type="text" style="color:#666;font-size:12px;" placeholder="{{vsLang.size}}">
</div>
<div class="col col-xs-offset-5 col-xs-7">
<div>
<input minicolors="{control: 'brightness',theme: 'bootstrap',position: 'bottom right', opacity: true}" placeholder="{{vsLang.color}}" class="form-control" type="text" ng-model="component.config[element.bind.iconcolor]">
</div>
</div>
</div>
<div style="clear:both;padding-top:5px;">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{vsLang.padding_left}}</div>
</div>
<div class="col col-xs-7" style="line-height:30px;">
<input class="form-control" ng-model="component.config[element.bind.iconPaddingLeft]" type="text" style="color:#666;font-size:12px;">
</div>
</div>
<div style="clear:both;padding-top:5px;">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{vsLang.padding_bottom}}</div>
</div>
<div class="col col-xs-7" style="line-height:30px;">
<input class="form-control" ng-model="component.config[element.bind.iconPaddingBottom]" type="text" style="color:#666;font-size:12px;">
</div>
</div>
<div ng-show='element.showThresholdRowConfig' style="clear:both;padding-top:5px;">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{vsLang.row_background_color}}</div>
</div>
<div class="col col-xs-7">
<div>
<input minicolors="{control: 'brightness',theme: 'bootstrap',position: 'bottom right', opacity: true}" id="color-input" class="form-control" type="text" ng-model="component.config[element.bind.rowBgColor]">
</div>
</div>
</div>
<div ng-show='element.showThresholdRowConfig' style="clear:both;padding-top:5px;">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{vsLang.row_font_color}}</div>
</div>
<div class="col col-xs-7">
<div>
<input minicolors="{control: 'brightness',theme: 'bootstrap',position: 'bottom right', opacity: true}" id="color-input" class="form-control" type="text" ng-model="component.config[element.bind.rowFontColor]">
</div>
</div>
<div style="clear:both;"></div>
</div>
<div style="clear:both;margin: 4px 0;height:10px;line-height:10px;background-color:#ddd;"></div>
</div>
<!-- 添加维度预警 -->
<div ng-switch-when="dimensionThreshold">
<div>
<div class="col col-xs-5" style="line-height:26px;">
{{vsLang.dimension_values}}<button ng-click="element.remove(element)" class="btn btn-default" style="border:0;color:#999;padding:8px 6px;"><span class="fa fa-remove"></span></button>
</div>
<div class="col col-xs-7" style="line-height:30px;">
<input class="form-control" ng-model="component.config[element.bind.values]" type="text" style="padding:4px;color:#666;font-size:12px;">
</div>
</div>
<div style="clear:both;padding-top:5px;">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{vsLang.cell_font_color}}</div>
</div>
<div class="col col-xs-7">
<div>
<input minicolors="{control: 'brightness',theme: 'bootstrap',position: 'bottom right', opacity: true}" id="color-input" class="form-control" type="text" ng-model="component.config[element.bind.color]">
</div>
</div>
</div>
<div style="clear:both;padding-top:5px;">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{vsLang.cell_background_color}}</div>
</div>
<div class="col col-xs-7">
<div>
<input minicolors="{control: 'brightness',theme: 'bootstrap',position: 'bottom right', opacity: true}" id="color-input" class="form-control" type="text" ng-model="component.config[element.bind.bgColor]">
</div>
</div>
</div>
<div style="clear:both;padding-top:5px;">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{vsLang.row_background_color}}</div>
</div>
<div class="col col-xs-7">
<div>
<input minicolors="{control: 'brightness',theme: 'bootstrap',position: 'bottom right', opacity: true}" id="color-input" class="form-control" type="text" ng-model="component.config[element.bind.rowBgColor]">
</div>
</div>
</div>
<div style="clear:both;padding-top:5px;">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{vsLang.row_font_color}}</div>
</div>
<div class="col col-xs-7">
<div>
<input minicolors="{control: 'brightness',theme: 'bootstrap',position: 'bottom right', opacity: true}" id="color-input" class="form-control" type="text" ng-model="component.config[element.bind.rowFontColor]">
</div>
</div>
</div>
<div style="clear:both;padding-top:5px;">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{vsLang.row_font_style}}</div>
</div>
<div class="col col-xs-7">
<div class="btn-group">
<label class="btn btn-default" ng-model="component.config[element.bind.rowFontStyle].bold" uib-btn-checkbox><i class="fa fa-bold"></i></label>
<label class="btn btn-default" ng-model="component.config[element.bind.rowFontStyle].italic" uib-btn-checkbox><i class="fa fa-italic"></i></label>
<label class="btn btn-default" ng-model="component.config[element.bind.rowFontStyle].underline" uib-btn-checkbox><i class="fa fa-underline"></i></label>
</div>
</div>
</div>
<div style="clear:both;margin: 4px 0;height:10px;line-height:10px;background-color:#ddd;"></div>
</div>
<!-- 排序列顺序表组件 -->
<div ng-switch-when="sortable-list">
<div class="col col-xs-12" style2="max-height:300px; overflow-y:auto;padding-right:10px !important;">
<div ng-sortable="element.sortableConfig">
<div ng-repeat="item in element.buildItems()" style="cursor: move;padding: 5px 10px;border: 1px solid #ddd;background-color: #fff;margin-top:4px;">
{{item.label}}
</div>
</div>
</div>
</div>
<!-- 导出报表组件 -->
<div ng-switch-when="reportPageDropdownSelect">
<div class="col col-xs-5" style="line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-7" style2="max-height:300px; overflow-y:auto;padding-right:10px !important;">
<ui-select ng-model="component.config[element.bind]" theme="selectize" ng-disabled="disabled">
<ui-select-match>{{$select.selected.name}}</ui-select-match>
<ui-select-choices repeat="item in $parent.reportPages | filter: $select.search">
<span ng-bind-html="item.name | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
</div>
</div>
<!-- 报告选择器 -->
<div ng-switch-when="reportPicker">
<div class="col col-xs-5" style="line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-5" style="line-height:30px;">
<input class="form-control" ng-model="component.config[element.bind].name" type="text" readonly="readonly" style="padding:4px 8px;text-align:left;background-color:#fff;color:#666;font-size:12px;">
</div>
<div class="col col-xs-2" style="height:30px;line-height:30px;text-align:center;">
<button class="btn btn-default" ng-click="openReportPickerWindow(component, element.bind)" style="height:26px;padding-left:7px;margin-left:2px;"><i class="fa fa-external-link"></i></button>
</div>
<div style="clear:both;"></div>
</div>
<!-- 组件选择器 -->
<div ng-switch-when="componentPicker">
<div class="col col-xs-5" style="line-height:30px;">
{{vsLang.target_widget}}
</div>
<div class="col col-xs-7" style="line-height:30px;">
<ui-select ng-model="component.config[element.bind]" theme="selectize" ng-disabled="disabled">
<ui-select-match placeholder="">{{$select.selected.name}}</ui-select-match>
<ui-select-choices repeat="item in getPickerAvailableComponents(component.config[element.bind]) | filter: $select.search">
<span ng-bind-html="item.name | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
</div>
<div style="clear:both;"></div>
</div>
<!-- 行为配置项 -->
<div ng-switch-when="event-config">
<div style="padding: 5px 0;">
<div class="col col-xs-5" style="line-height:30px;">
{{vsLang.event_type}}
</div>
<div class="col col-xs-7" style="line-height:30px;">
<ui-select ng-model="component.config.eventConfig[element.bind].type" theme="selectize" ng-disabled="disabled">
<ui-select-match placeholder="{{vsLang.choose_event_type}}">{{$select.selected.title}}</ui-select-match>
<ui-select-choices repeat="item.type as item in getAvailableEvents() | filter: $select.search">
<span ng-bind-html="item.title | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
</div>
<div style="clear:both;"></div>
</div>
<div ng-show="component.config.eventConfig[element.bind].type === 'openReport' || component.config.eventConfig[element.bind].type === 'gotoReport'" style="padding: 5px 0;">
<div class="col col-xs-5" style="line-height:30px;">
{{vsLang.report}}
</div>
<div class="col col-xs-5" style="line-height:30px;">
<input class="form-control" ng-model="component.config.eventConfig[element.bind].report.name" type="text" readonly="readonly" style="padding:4px 8px;text-align:left;background-color:#fff;color:#666;font-size:12px;">
</div>
<div class="col col-xs-2" style="height:30px;line-height:30px;text-align:center;">
<button class="btn btn-default" ng-click="openEventReportPickerWindow(component, element.bind)" style="height:26px;padding-left:7px;margin-left:2px;"><i class="fa fa-external-link"></i></button>
</div>
<div style="clear:both;"></div>
</div>
<div ng-show="component.config.eventConfig[element.bind].type === 'openReportPage' || component.config.eventConfig[element.bind].type === 'gotoReportPage' || (component.config.eventConfig[element.bind].type === 'openFilterPanel' || component.config.eventConfig[element.bind].type === 'openPopupPanel' || component.config.eventConfig[element.bind].type === 'refreshContainer')" style="padding: 5px 0;">
<div class="col col-xs-5" style="line-height:30px;">
{{vsLang.report_page_full}}
</div>
<div class="col col-xs-7" style="line-height:30px;">
<ui-select ng-model="component.config.eventConfig[element.bind].reportPage" theme="selectize" ng-disabled="disabled">
<ui-select-match placeholder="{{vsLang.choose_report_page_full}}">{{$select.selected.name}}</ui-select-match>
<ui-select-choices repeat="item in $parent.reportPages | filter: $select.search">
<span ng-bind-html="item.name | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
</div>
<div style="clear:both;"></div>
</div>
<div ng-show="component.config.eventConfig[element.bind].type === 'refreshContainer'">
<div class="col col-xs-5" style="line-height:30px;">
{{vsLang.target_container}}
</div>
<div class="col col-xs-7" style2="max-height:300px; overflow-y:auto;padding-right:10px !important;">
<ui-select ng-model="component.config.eventConfig[element.bind].container" theme="selectize" ng-disabled="disabled">
<ui-select-match placeholder="">{{$select.selected.name}}</ui-select-match>
<ui-select-choices repeat="item in getPickerAvailableComponents(component.config[element.bind]) | filter: $select.search">
<span ng-bind-html="item.name | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
</div>
</div>
<div ng-show="component.config.eventConfig[element.bind].type === 'openUrl'" style="padding: 5px 0;">
<div class="col col-xs-5" style="line-height:30px;">
{{vsLang.url}}
</div>
<div class="col col-xs-7" style="line-height:30px;">
<input class="form-control" ng-model="component.config.eventConfig[element.bind].url" type="text" style="padding:4px 8px;text-align:left;color:#666;font-size:12px;">
</div>
<div style="clear:both;"></div>
</div>
<div ng-show="component.config.eventConfig[element.bind].type === 'exportData'" style="padding: 5px 0;">
<div class="col col-xs-5" style="line-height:30px;">
{{vsLang.target_widget}}
</div>
<div class="col col-xs-7" style="line-height:30px;">
<ui-select ng-model="component.config.eventConfig[element.bind].targetComponent" theme="selectize" ng-disabled="disabled">
<ui-select-match placeholder="">{{$select.selected.name}}</ui-select-match>
<ui-select-choices repeat="item in getExportableComponents(component, element.bind, component.config.eventConfig[element.bind]) | filter: $select.search">
<span ng-bind-html="item.name | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
</div>
<div style="clear:both;"></div>
</div>
<div ng-show="component.config.eventConfig[element.bind].type === 'exportData'" style="padding: 5px 0;">
<div class="col col-xs-5" style="line-height:30px;">
{{vsLang.file_name}}
</div>
<div class="col col-xs-7" style="line-height:30px;">
<input class="form-control" ng-model="component.config.eventConfig[element.bind].filename" type="text" style="padding:4px 8px;text-align:left;background-color:#fff;color:#666;font-size:12px;">
</div>
<div style="clear:both;"></div>
</div>
</div>
<!-- 行为事件 -->
<div ng-switch-when="permission-config">
<div style="padding: 5px 0;">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{vsLang.permission_type}}</div>
</div>
<div class="col col-xs-7" style="line-height:30px;">
<ui-select ng-model="component.config.permissionConfig[element.bind].type" theme="selectize" ng-disabled="disabled">
<ui-select-match placeholder="{{vsLang.choose_permission_type}}">{{$select.selected.title}}</ui-select-match>
<ui-select-choices repeat="item.type as item in availablePermissions | filter: $select.search">
<span ng-bind-html="item.title | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
</div>
<div style="clear:both;"></div>
</div>
<div ng-show="component.config.permissionConfig[element.bind].type === 'checkReportPermission'" style="padding: 5px 0;">
<div class="col col-xs-5" style="line-height:30px;">
{{vsLang.report}}
</div>
<div class="col col-xs-5" style="line-height:30px;">
<input class="form-control" ng-model="component.config.permissionConfig[element.bind].report.name" type="text" readonly="readonly" style="padding:4px 8px;text-align:left;background-color:#fff;color:#666;font-size:12px;">
</div>
<div class="col col-xs-2" style="height:30px;line-height:30px;text-align:center;">
<button class="btn btn-default" ng-click="openPermissionReportPickerWindow(component, element.bind)" style="height:26px;padding-left:7px;margin-left:2px;"><i class="fa fa-external-link"></i></button>
</div>
<div style="clear:both;"></div>
</div>
<div ng-show="component.config.permissionConfig[element.bind].type === 'checkPagePermission'" style="padding: 5px 0;">
<div class="col col-xs-5" style="line-height:30px;">
{{vsLang.report_page}}
</div>
<div class="col col-xs-7" style="line-height:30px;">
<ui-select ng-model="component.config.permissionConfig[element.bind].reportPage" theme="selectize" ng-disabled="disabled">
<ui-select-match placeholder="{{vsLang.choose_report_page}}">{{$select.selected.name}}</ui-select-match>
<ui-select-choices repeat="item in $parent.reportPages | filter: $select.search">
<span ng-bind-html="item.name | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
</div>
<div style="clear:both;"></div>
</div>
</div>
<!-- 配置数据组件 -->
<div ng-switch-when="datasourceConfig" class="datasource-config">
<div class="row">
<div class="col col-xs-3" style="line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-9">
<div class="btn-group">
<label class="btn btn-default" ng-model="component.config[element.bind].datasourceType" ng-click="datasourceConfig.onMetadataDatasourceSelected()" uib-btn-radio="'metadata'">{{vsLang.type_metadata}}</label>
<!-- <label class="btn btn-default" ng-model="component.config[element.bind].datasourceType" ng-click="datasourceConfig.onScriptDatasourceSelected()" uib-btn-radio="'script'">SQL脚本</label> -->
</div>
</div>
</div>
<div class="metadata" style="display:none;" ng-style="{'display':component.config[element.bind].datasourceType==='metadata' ? 'block':'none'}">
<div class="row">
<div class="col col-xs-3" style="line-height:30px;">
{{vsLang.metadata_table}}
</div>
<div class="col col-xs-9">
<ui-select ng-model="component.config[element.bind].metadataConfig.metadataTable" on-select="datasourceConfig.onMetadataTableSelected()" theme="selectize" ng-disabled="disabled">
<ui-select-match placeholder="{{datasourceConfig.fetchingMetadataTables ? vsLang.loading_metadata_tables : vsLang.choose_metadata_table}}">{{$select.selected.key}}</ui-select-match>
<ui-select-choices repeat="item in datasourceConfig.metadataTables | filter: $select.search">
<span ng-bind-html="item.key | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
</div>
</div>
</div>
</div>
<div ng-switch-when="dimensionDropdownSelect">
<div class="col col-xs-5" style="line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-7" style2="max-height:300px; overflow-y:auto;padding-right:10px !important;">
<ui-select ng-model="component.config[element.bind]" theme="selectize" ng-disabled="disabled">
<ui-select-match placeholder="{{vsLang.choose_dimension}}">{{$select.selected.label}}</ui-select-match>
<ui-select-choices repeat="item in component.config.datasourceConfig.dimensions | filter: $select.search">
<span ng-bind-html="item.label | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
</div>
</div>
<!-- 维度下拉选择 -->
<div ng-switch-when="dimensionMultiSelect">
<div class="col col-xs-3" style="line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-9" style2="max-height:300px; overflow-y:auto;padding-right:10px !important;">
<ui-select multiple sortable="true" close-on-select="false" ng-model="component.config[element.bind].dimensions" theme="select2" ng-disabled="disabled" style="width:100%;">
<ui-select-match placeholder="{{vsLang.choose_dimension}}">{{$item.label}}</ui-select-match>
<ui-select-choices repeat="item in component.config[element.bind].metadataConfig.metadataTable.modelInfo.dimensions | filter:$select.search">
<span ng-bind-html="item.label | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
</div>
</div>
<div ng-switch-when="measureDropdownSelect">
<div class="col col-xs-3" style="line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-9" style2="max-height:300px; overflow-y:auto;padding-right:10px !important;">
<ui-select ng-model="component.config[element.bind].measures" theme="selectize" ng-disabled="disabled">
<ui-select-match placeholder="{{vsLang.choose_measure}}">{{$select.selected.label}}</ui-select-match>
<ui-select-choices repeat="item in component.config[element.bind].metadataConfig.metadataTable.modelInfo.measures | filter: $select.search">
<span ng-bind-html="item.label | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
</div>
</div>
<!-- 度量下拉选择 -->
<div ng-switch-when="measureMultiSelect">
<div class="col col-xs-3" style="line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-9" style2="max-height:300px; overflow-y:auto;padding-right:10px !important;">
<ui-select multiple sortable="true" close-on-select="false" ng-model="component.config[element.bind].measures" theme="select2" ng-disabled="disabled" style="width:100%;">
<ui-select-match placeholder="{{vsLang.choose_measure}}">{{$item.label}}</ui-select-match>
<ui-select-choices repeat="item in component.config[element.bind].metadataConfig.metadataTable.modelInfo.measures | filter:$select.search">
<span ng-bind-html="item.label | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
</div>
</div>
<div ng-switch-when="measureThreshold">
<div class="col col-xs-3" style="line-height:30px;">
{{element.title}}
<span><button class="btn btn-success" ng-click="openReportPageEditWindow()">{{vsLang.add}}</button></span>
</div>
<div class="col col-xs-9" style2="max-height:300px; overflow-y:auto;padding-right:10px !important;">
</div>
</div>
<div ng-switch-when="propertyMultiSelect">
<div class="col col-xs-5" style="line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-7" style2="max-height:300px; overflow-y:auto;padding-right:10px !important;">
<ui-select multiple sortable="true" close-on-select="false" ng-model="component.config[element.bind].queryProperties" theme="select2" ng-disabled="disabled" style="width:100%;">
<ui-select-match placeholder="">{{$item.label}}</ui-select-match>
<ui-select-choices repeat="item in component.config.datasourceConfig.metadataConfig.metadataTable.modelInfo.measures | filter:$select.search">
<span ng-bind-html="item.label | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
</div>
</div>
<div ng-switch-when="multiMeasureSelect">
<div class="col col-xs-5" style="line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-7" style2="max-height:300px; overflow-y:auto;padding-right:10px !important;">
<ui-select multiple sortable="true" close-on-select="false" ng-model="component.config[element.bind]" theme="select2" ng-disabled="disabled" style="width:100%;">
<ui-select-match placeholder="">{{$item.label}}</ui-select-match>
<ui-select-choices repeat="item in component.config.datasourceConfig.metadataConfig.metadataTable.modelInfo.measures | filter:$select.search">
<span ng-bind-html="item.label | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
</div>
</div>
<div ng-switch-when="multiQueryColumnSelect">
<div class="col col-xs-5" style="line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-7" style2="max-height:300px; overflow-y:auto;padding-right:10px !important;">
<ui-select multiple sortable="true" close-on-select="false" ng-model="component.config[element.bind]" theme="select2" ng-disabled="disabled" style="width:100%;">
<ui-select-match placeholder="">{{$item.label}}</ui-select-match>
<ui-select-choices repeat="item in component.config.queryColumns | filter:$select.search">
<span ng-bind-html="item.label | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
</div>
</div>
<div style="clear:both;"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- vs-designer.js 2232 -->
<div ng-controller="DupontNodeConfigPanelCtrl">
<div pageslide ps-open="$parent.dupontNode != null" ps-speed="0.3" ps-size="335" class="vrd-page-right">
<div class="cp-tab-menu">
<div class="list-group">
<a href="javascript:" ng-click="onCategoryTabClicked(category, $index, $event)" ng-class="selectedCategory.name==category.name ? 'list-group-item text-center active' : 'list-group-item text-center'" ng-repeat="category in categories">
{{category.title}}
</a>
</div>
</div>
<div class="cp-tab">
<!-- 选项卡主体内容 -->
<div class="cp-tab-content">
<div ng-show="(group.show == null || group.show())" class="group" ng-repeat="group in selectedCategory.groups track by $index">
<div ng-if="(group.title.show || group.title.show == null) && group.elements.length > 0" class="title">
<i ng-click="group.showElements = (group.showElements == null ? false : !group.showElements)" ng-class="{'fa fa-minus':(group.showElements==null ||group.showElements), 'fa fa-plus': (group.showElements != null && group.showElements==false)}"></i>
<span ng-click="group.showElements = (group.showElements == null ? false : !group.showElements)" style="cursor:pointer;">{{group.title.text}} </span>
<a href="javascript:" ng-show="group.removeable" ng-click="group.remove($index, group)" style="float:right;padding:0 10px;">{{vsLang.delete}}</a>
<a href="javascript:" ng-show="group.newable" ng-click="group.newElement(group)" style="float:right;padding:0 10px;">{{vsLang.add}}</a>
</div>
<div ng-show="group.showElements == null || group.showElements" >
<div ng-show="element.show == null || element.show == true || element.show(element)" class="element" ng-switch on="element.type" ng-repeat="element in group.elements">
<!-- 设置圆角组件 -->
<div ng-switch-when="configSlide">
<div class="col col-xs-5" style="display:table;">
<div class="prop-label-cell">{{element.title}}</div>
</div>
<div class="col col-xs-4" style="height:22px;padding-top:3px;">
<div slider ng-model="nodeConfig[element.bind]" start={{element.config.slideStart?element.config.slideStart:0}} end={{element.config.slideEnd}} step=1 connect='lower' style="margin-top:10px;padding-left:10px;"></div>
</div>
<div class="col col-xs-3 ui input" style="padding-left:15px !important;padding-top:3px;">
<input ng-model="nodeConfig[element.bind]" ng-disabled="element.disabled == null ? false : element.disabled()" type="text" style="width:80px;height:20px;padding:0;text-align:center;color:#666;font-size:12px;">
</div>
</div>
<div ng-switch-when="text-input-sl">
<div class="col col-xs-5" style="height:30px;display:table;">
<div style="display:table-cell;vertical-align:middle;" class="ng-binding">{{element.title}}</div>
</div>
<div class="col col-xs-7">
<input class="form-control" ng-model="nodeConfig[element.bind]" type="text" style="padding:4px 8px;text-align:left;color:#666;font-size:12px;">
</div>
</div>
<!-- 颜色组件选择 -->
<div ng-switch-when="colorpicker">
<div class="col col-xs-5" style="line-height:28px;">
<span>{{element.title}}</span>
</div>
<div class="col col-xs-7" style="height:26px;">
<div>
<input minicolors="{control: 'brightness',theme: 'bootstrap',position: 'bottom right', opacity: true}" id="color-input" class="form-control" type="text" ng-model="nodeConfig[element.bind]">
</div>
</div>
</div>
<div ng-switch-when="toggle-switch">
<div class="col col-xs-5" style="line-height:30px;">
<span>{{element.title}}</span>
</div>
<div class="col col-xs-7" style="height:26px;">
<toggle-switch ng-model="nodeConfig[element.bind]" style="border:1px solid #bbb;" on-label="{{vsLang.on}}" off-label="{{vsLang.off}}"></toggle-switch>
</div>
</div>
<!-- 下拉配置 -->
<div ng-switch-when="switch">
<div class="col col-xs-5" style="line-height:30px;">
<span>{{element.title}}</span>
</div>
<div class="col col-xs-7" style="height: 26px;">
<div class="btn-group">
<toggle-switch ng-model="nodeConfig[element.bind]" style="border:1px solid #bbb;" on-label="{{element.on}}" off-label="{{element.off}}"></toggle-switch>
</div>
</div>
</div>
<!-- 数据项显示组件 -->
<div ng-switch-when="radio">
<div class="col col-xs-5" style="line-height:30px;">
<span>{{element.title}}</span>
</div>
<div class="col col-xs-7">
<div class="btn-group">
<label ng-repeat="item in element.items" class="btn btn-default" ng-model="nodeConfig[element.bind]" uib-btn-radio="item.value" uncheckable><span style="margin: 0 5px;">{{item.name}}</span></label>
</div>
</div>
</div>
<!-- 下拉配置 -->
<div ng-switch-when="select">
<div class="col col-xs-5" style="line-height:30px;">
<span>{{element.title}}</span>
</div>
<div class="col col-xs-7">
<ui-select ng-model="nodeConfig[element.bind]" theme="selectize" ng-disabled="disabled">
<ui-select-match placeholder="">{{$select.selected.name}}</ui-select-match>
<ui-select-choices repeat="item in element.items | filter: $select.search">
<span ng-bind-html="item.name | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
</div>
</div>
<!-- 水平居中的对齐 -->
<div ng-switch-when="horizontal-align">
<div class="col col-xs-5" style="line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-7">
<div class="btn-group">
<label class="btn btn-default" ng-model="nodeConfig[element.bind]" uib-btn-radio="'left'" uncheckable><i class="fa fa-align-left"></i></label>
<label class="btn btn-default" ng-model="nodeConfig[element.bind]" uib-btn-radio="'center'" uncheckable><i class="fa fa-align-center"></i></label>
<label class="btn btn-default" ng-model="nodeConfig[element.bind]" uib-btn-radio="'right'" uncheckable><i class="fa fa-align-right"></i></label>
</div>
</div>
</div>
<!-- 按钮组件里面判断 类 刷新组件 添加维度预警 用的按钮 -->
<div ng-switch-when="button">
<div class="col col-xs-12">
<button ng-click="element.onClick(element)" class="btn {{element.btnClass==null ? 'btn-success' : element.btnClass}}" style="width:100%;">{{element.title}}</button>
</div>
</div>
<!-- 字体样式 -->
<div ng-switch-when="font-style">
<div class="col col-xs-5" style="height:30px;line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-7" style="height:30px;line-height:30px;">
<div class="btn-group">
<label class="btn btn-default" ng-model="nodeConfig[element.bind].bold" uib-btn-checkbox><i class="fa fa-bold"></i></label>
<label class="btn btn-default" ng-model="nodeConfig[element.bind].italic" uib-btn-checkbox><i class="fa fa-italic"></i></label>
<label class="btn btn-default" ng-model="nodeConfig[element.bind].underline" uib-btn-checkbox><i class="fa fa-underline"></i></label>
</div>
</div>
</div>
<!-- 统一颜色选择器 -->
<div ng-switch-when="colorSeries">
<div class="col col-xs-5" style="line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-7" style2="max-height:300px; overflow-y:auto;padding-right:10px !important;">
<div ng-repeat="color in nodeConfig[element.bind] track by $index" style="display:block;margin:5px 0;">
<span style="display:block;margin:5px 0;">
<input minicolors="{control: 'brightness',theme: 'bootstrap',position: 'bottom left'}" id="color-input" class="form-control" type="text" ng-model="nodeConfig[element.bind][$index]">
</span>
</div>
</div>
</div>
<!-- 配置数据组件 -->
<div ng-switch-when="datasourceConfig" class="datasource-config">
<div class="metadata">
<div class="row">
<div class="col col-xs-5" style="line-height:30px;">
{{vsLang.metadata_table}}
</div>
<div class="col col-xs-7">
<ui-select ng-model="nodeConfig[element.bind].metadataTable" on-select="onMetadataTableSelected(element.bind)" theme="selectize" ng-disabled="disabled">
<ui-select-match placeholder="">{{$select.selected.key}}</ui-select-match>
<ui-select-choices repeat="item in availableMetadataTables | filter: $select.search">
<span ng-bind-html="item.key | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
</div>
</div>
</div>
</div>
<!-- 维度下拉选择 -->
<div ng-switch-when="measureDropdownSelect">
<div class="col col-xs-5" style="line-height:30px;">
{{element.title}}
</div>
<div class="col col-xs-7" style2="max-height:300px; overflow-y:auto;padding-right:10px !important;">
<ui-select ng-model="nodeConfig[element.bind].measure" theme="selectize" ng-disabled="disabled">
<ui-select-match placeholder="">{{$select.selected.label}}</ui-select-match>
<ui-select-choices repeat="item in getAvailableMetadataMeasures(element.bind) | filter: $select.search">
<span ng-bind-html="item.label | highlight: $select.search"></span>
</ui-select-choices>
</ui-select>
</div>
</div>
<div style="clear:both;"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 加载模板 -->
<script type="text/ng-template" id="confirm.html">
<div class="modal-body">
{{confirmContent}}
</div>
<div class="modal-footer">
<button class="btn btn-primary" type="button" ng-click="confirmOk()">{{vsLang.ok}}</button>
<button class="btn btn-warning" type="button" ng-click="confirmCancel()">{{vsLang.cancel}}</button>
</div>
</script>
<!-- 弹框 加载模板-->
<script type="text/ng-template" id="inputContent.html">
<!-- 头部 -->
<div class="modal-header" style="padding: 15px;padding-bottom:0;border:none;">
<h4>{{title}}</h4>
</div>
<!-- 主体 -->
<div class="modal-body">
<textarea style="width:100%;height:100px;">{{content}}</textarea>
</div>
<!-- 底部 -->
<div class="modal-footer">
<button type="button" class="btn btn-default" ng-click="dismissWindow()">{{vsLang.close}}</button>
</div>
</script>
<!-- 加载报表页弹框模板 -->
<script type="text/ng-template" id="reportPageListModal.html">
<div class="modal-header" style="padding: 10px 15px;">
<h4><span style="float:left;">{{vsLang.report_pages_title}}</span></h4>
<div style="float:right;margin-top:-10px;">
<div class="btn-group">
<div class="input-group" style="width:250px;">
<input ng-change="onFilterQueryChange()" ng-model="filter.query" type="text" class="form-control" placeholder="{{vsLang.search_report_page}}">
<span class="input-group-btn">
<button ng-click="searchReportPages()" class="btn btn-default" type="button"><i class="fa fa-search" style="height:20px;line-height:20px;"></i></button>
</span>
</div>
</div>
</div>
<div ng-show="groups.length > 0" style="text-align:center;clear:both;line-height:30px;padding:5px !important;padding-top:10px !important;padding-bottom:0 !important;overflow-x:auto;overflow-y:hidden;">
<span style="padding: 5px 10px;">
<a ng-repeat="item in groups" ng-click="onGroupClicked(item)" ng-class="{'selected': selectedGroup === item}" href="javascript:" class="group-btn">{{item}}</a>
</span>
</div>
<div style="clear:both;"></div>
</div>
<!-- 报表页列表 -->
<div class="modal-body reportpage-list">
<div style="height:100px;line-height:100px;text-align:center;color:#999;" ng-show="reportPages.length == 0">{{vsLang.no_report_page_found}}</div>
<div ng-sortable="sortableConfig">
<div class="col" ng-class="{'col-xs-3 col-sm-3 col-md-2 phone':currentReportPage.forDevice==='phone', 'col-xs-4 col-sm-4 col-md-3 pad':currentReportPage.forDevice==='pad'}" ng-repeat="item in reportPages" ng-mouseover="hoverIn(item)" ng-mouseleave="hoverOut(item)">
<div class="item" ng-class="{'sel': currentReportPage.key===item.key}">
<img ng-click="changeCurrentReportPage(item)" ng-show="item.coverImageId!=null" class="screenshot" ng-src="{{getContextPath()}}/workbench/vss/{{appId}}{{item.coverImageId}}.do?appId={{appId}}&fileId={{item.coverImageId}}" class="image-file" />
<img ng-show="item.coverImageId==null && currentReportPage.forDevice==='phone'" ng-click="changeCurrentReportPage(item)" class="screenshot" ng-src="{{getContextPath()}}/images/empty-page.png" />
<img ng-show="item.coverImageId==null && currentReportPage.forDevice==='pad'" ng-click="changeCurrentReportPage(item)" class="screenshot" ng-src="{{getContextPath()}}/images/empty-page-pad.png" />
<div class="title" title="{{item.fileName}}">
<div style="position:absolute;float:left;padding-top:1px;"><i ng-show="item.homePage" class="fa fa-home"></i></div>
<div style="line-height:16px;height:18px;overflow:hidden;" ng-style="{'padding-left': item.homePage?'14px':'0'}" uib-tooltip="{{item.name}}" tooltip-placement="top" tooltip-append-to-body="true">
{{item.name}}
</div>
<div style="padding-top:3px;" ng-style="{'opacity': mouseInItem.id===item.id ? 1:0}">
<!-- 报表首页 -->
<a ng-show="!item.homePage" href="javascript:" class="" uib-tooltip="{{vsLang.set_to_home_page}}" tooltip-placement="top" tooltip-append-to-body="true" ng-click="setHomePage(item)">
<i class="fa fa-home"></i>
</a>
<!-- 隐藏 -->
<a ng-show="item.hidden==null || item.hidden===false" href="javascript:" class="" uib-tooltip="{{vsLang.hide}}" tooltip-placement="top" tooltip-append-to-body="true" ng-click="setReportPageHidden(item, true)">
<i class="fa fa-eye-slash"></i>
</a>
<!-- 显示 -->
<a ng-show="item.hidden===true" href="javascript:" class="" uib-tooltip="{{vsLang.show}}" tooltip-placement="top" tooltip-append-to-body="true" ng-click="setReportPageHidden(item, false)">
<i class="fa fa-eye"></i>
</a>
<!-- 复制 -->
<a href="javascript:" class="" uib-tooltip="{{vsLang.copy}}" tooltip-placement="top" tooltip-append-to-body="true" ng-click="cloneReportPage(item)">
<i class="fa fa-clone"></i>
</a>
<!-- 编辑 -->
<a href="javascript:" class="" uib-tooltip="{{vsLang.edit}}" tooltip-placement="top" tooltip-append-to-body="true" ng-click="openReportPageEditWindow($event, item)">
<i class="fa fa-edit"></i>
</a>
<!-- 删除 -->
<a href="javascript:" class="" uib-tooltip="{{vsLang.delete}}" tooltip-placement="top" tooltip-append-to-body="true" ng-click="removeReportPage(item)">
<i class="fa fa-trash"></i>
</a>
</div>
</div>
<div style="position:absolute;right:10px;top:0;">
<div ng-show="item.group != null && item.group.length > 0" uib-tooltip="{{vsLang.grouping}}:{{item.group}}" tooltip-placement="bottom" tooltip-append-to-body="true" style="float:right;background-color:#2963AC;color:#fff;font-size:10px;padding: 2px 4px;margin: 0 2px;margin-top:2px;">{{item.group}}</div>
<div ng-show="item.hidden===true" style="float:right;background-color:#DF5D33;color:#fff;font-size:10px;padding: 2px 4px;">{{vsLang.hidden}}</div>
</div>
</div>
</div>
</div>
</div>
<div style="clear:both;"></div>
<div class="modal-footer" style="padding: 10px 15px;">
<button class="btn btn-success" ng-click="openTemplateLibraryWindowForCreatePage()"><i class="fa fa-plus"></i>{{vsLang.report_page}}</button>
<button class="btn btn-default" ng-click="dismissWindow()">{{vsLang.close}}</button>
</div>
</script>
<!-- 加载模板报表页编辑 -->
<script type="text/ng-template" id="reportPageEditModal.html">
<div class="modal-header" style="padding: 10px 15px;">
<h4>{{reportPage.id==null ? vsLang.report_page_new : vsLang.report_page_edit}}</h4>
</div>
<div class="modal-body">
<form class="form-horizontal">
<!-- ,名称 -->
<div class="form-group">
<label class="col-xs-3 control-label">{{vsLang.name}}<span class="required"> * </span></label>
<div class="col-xs-6">
<input type="text" class="form-control" ng-model="reportPage.name" />
</div>
</div>
<!-- 标识 -->
<div class="form-group">
<label class="col-xs-3 control-label">{{vsLang.key}}</label>
<div class="col-xs-6">
<input type="text" class="form-control" ng-model="reportPage.key" placeholder="{{vsLang.empty_means_system_auto_generate}}" />
</div>
</div>
<!-- 分组 -->
<div class="form-group">
<label class="col-xs-3 control-label">{{vsLang.grouping}}</label>
<div class="col-xs-6">
<input type="text" class="form-control" ng-model="reportPage.group" />
</div>
</div>
</form>
</div>
<!-- 底部保存取消按钮 -->
<div class="modal-footer" style="padding: 10px 15px;">
<button class="btn btn-success" ng-click="saveReportPage()">{{vsLang.save}}</button>
<button class="btn btn-default" ng-click="closeReportPageEditWindow()">{{vsLang.cancel}}</button>
</div>
</script>
<!-- 加载模板预览弹框 -->
<script type="text/ng-template" id="reportPreviewModal.html">
<div id="reportPreviewModel" class="modal-body" id="modalBody" style="text-align:center;padding: 4px;">
<div class="preview-content" style="padding-left:0;padding-right:0;">
<!-- 预览主体通过iframe加载 -->
<div class="report-preview-bg">
<div id="phoneSimulator"></div>
</div>
</div>
<!-- 右侧 -->
<div class="publish-content" style="padding:20px;">
<!-- 二维码 -->
<div style="padding: 20px;text-align:center;">
<div style="font-size:16px;font-weight:bold;word-break: break-all;width:250px;">{{report.name}}</div>
<img style="width:200px;padding-top:5px;" id="qrcodeImage" ng-src="{{qrcodeImageSrc}}"/>
</div>
<!-- 报表页链接 -->
<div style="text-align:center;">
<h4>{{vsLang.report_publish_url}}</h4>
<span>
<textarea id="reportPublishUrlTextarea" ng-model="reportPublishUrl" class="form-control" rows="5" style="width:260px;height:120px !important;margin:0 auto;"></textarea>
</span>
</div>
<!-- 刷新按钮 -->
<div style="text-align:center;margin-top:20px;">
<button type="button" class="btn btn-default" ng-click="refreshMetadata()">{{vsLang.refresh_data}}</button>
</div>
</div>
</div>
<!-- 底部按钮 -->
<div style="clear:both;"></div>
<div class="modal-footer" style="padding:10px 15px;border:none;">
<button type="button" class="btn default" ng-click="dismissWindow()">{{vsLang.close}}</button>
</div>
</script>
<div id="reportPreviewContainer" style="display:none;">
<iframe id="previewReportIframe" style="border:0; height:100%; width:100%;"></iframe>
</div>
<!-- 加载模板附件弹窗 -->
<script type="text/ng-template" id="reportAttachmentModal.html">
<div class="modal-header" style="padding: 8px 15px;">
<h4>{{vsLang.report_attachments}}</h4>
</div>
<!-- 报表附件主体 -->
<div id="reportAttachmentListModel" class="modal-body" style="padding:4px;">
<div style="height:100px;line-height:100px;text-align:center;color:#999;" ng-show="reportAttachments.length == 0">{{vsLang.no_report_attachments_found}}</div>
<div ng-repeat="item in reportAttachments" class="col-md-1 col-sm-1 col-xs-1 unit" ng-click="onAttachmentClicked(item)" style="cursor:pointer;">
<div class="item" ng-mouseover="hoverIn($event, item)" ng-mouseleave="hoverOut($event, item)">
<div class="ui compact menu toolbar" style="opacity:0;" ng-style="{'opacity': mouseInItem.fileId===item.fileId ? 1:0}">
<a href="#" class="item" ng-click="openAttachmentLinkWindow(item, $event)" uib-tooltip="{{vsLang.link}}" tooltip-placement="top" tooltip-append-to-body="true" >
<i class="fa fa-link"></i>
</a>
<a target="_blank" class="item" ng-href="{{getContextPath()}}/workbench/vss/file.do?appId={{appId}}&fileId={{item.fileId}}" uib-tooltip="{{vsLang.download}}" tooltip-placement="top" tooltip-append-to-body="true">
<i class="fa fa-download"></i>
</a>
<a class="item" ng-click="removeAttachment(item)" uib-tooltip="{{vsLang.delete}}" tooltip-placement="top" tooltip-append-to-body="true">
<i class="fa fa-trash"></i>
</a>
</div>
<div class="thumbnail" ng-switch on="item.fileType">
<div ng-switch-when="png">
<img ng-src="{{getContextPath()}}/workbench/vss/{{appId}}{{item.fileId}}.do?appId={{appId}}&fileId={{item.fileId}}" class="image-file" />
</div>
<div ng-switch-when="jpg">
<img ng-src="{{getContextPath()}}/workbench/vss/{{appId}}{{item.fileId}}.do?appId={{appId}}&fileId={{item.fileId}}" class="image-file" />
</div>
<div ng-switch-when="jpeg">
<img ng-src="{{getContextPath()}}/workbench/vss/{{appId}}{{item.fileId}}.do?appId={{appId}}&fileId={{item.fileId}}" class="image-file" />
</div>
<div ng-switch-when="doc">
<img ng-src="{{getContextPath()}}/images/filetype/doc.png" class='icon-file' />
</div>
<div ng-switch-when="docx">
<img ng-src="{{getContextPath()}}/images/filetype/doc.png" class='icon-file' />
</div>
<div ng-switch-when="xls">
<img ng-src="{{getContextPath()}}/images/filetype/xls.png" class='icon-file' />
</div>
<div ng-switch-when="xlsx">
<img ng-src="{{getContextPath()}}/images/filetype/xls.png" class='icon-file' />
</div>
<div ng-switch-when="ppt">
<img ng-src="{{getContextPath()}}/images/filetype/ppt.png" class='icon-file' />
</div>
<div ng-switch-when="pptx">
<img ng-src="{{getContextPath()}}/images/filetype/ppt.png" class='icon-file' />
</div>
<div ng-switch-when="pdf">
<img ng-src="{{getContextPath()}}/images/filetype/pdf.png" class='icon-file' />
</div>
<div ng-switch-when="js">
<img ng-src="{{getContextPath()}}/images/filetype/js.png" class='icon-file' />
</div>
<div ng-switch-when="css">
<img ng-src="{{getContextPath()}}/images/filetype/css.png" class='icon-file' />
</div>
<div ng-switch-when="html">
<img ng-src="{{getContextPath()}}/images/filetype/html.png" class='icon-file' />
</div>
<div ng-switch-default>
<img ng-src="{{getContextPath()}}/images/filetype/file.png" class='icon-file' />
</div>
</div>
<div class="title" title="{{item.fileName}}">
<div style="position:absolute;cursor:pointer;float:left;">
<input type="checkbox" ng-model="selectedAttachment[item.fileId]" style="margin: 0;margin-top:2px;" />
</div>
<div style="padding-left:15px;height:36px;line-height:18px;overflow:hidden;white-space:normal; word-break:break-all;word-wrap:break-word;text-overflow:ellipsis;">{{item.fileName}}</div>
</div>
</div>
</div>
<div style="clear:both;"></div>
</div>
<!-- 报表附件底部 -->
<div id="reportAttachmentListModelFooter" class="modal-footer" style="padding: 10px 15px;">
<button ng-show="onSelect == null && hasItemSelected()" type="button" class="btn btn-danger" ng-click="removeSelectedItems()">{{vsLang.delete}}</button>
<span ng-show="onSelect == null" class="btn btn-success fileinput-button">
<i class="fa fa-plus"></i>
<span>{{vsLang.upload_attachment}}</span>
<input id="attachmentFileupload" type="file" name="file" multiple />
</span>
<!-- 上传按钮和关闭按钮 -->
<button ng-show="onSelect != null" type="button" class="btn btn-success" ng-click="confirmSelect()">{{vsLang.save}}</button>
<button type="button" class="btn btn-default" ng-click="dismissWindow()">{{vsLang.close}}</button>
</div>
</script>
<!-- 加载模板 选择图标弹框-->
<script type="text/ng-template" id="iconPickerModal.html">
<div class="modal-header" style="padding: 10px 15px;">
<h4>{{vsLang.icon_picker}}</h4>
</div>
<div class="modal-body">
<div class="col col-md-1 col-sm-1 col-xs-1" ng-click="onIconClicked('fa')">
<a href="javascript:" ng-class="{'unit': true, 'selected': selectedIcon === 'fa'}">
<i class="fa"></i>
</a>
</div>
<div ng-repeat="item in icons" class="col col-md-1 col-sm-1 col-xs-1" ng-click="onIconClicked(item)">
<a href="javascript:" ng-class="{'unit': true, 'selected': selectedIcon === item}">
<i ng-class="item"></i>
</a>
</div>
<div style="clear:both;"></div>
</div>
<!-- 底部按钮 -->
<div class="modal-footer" style="padding: 10px 15px;">
<button ng-show="onSelect != null" type="button" class="btn btn-primary" ng-click="confirmSelect()" ng-disabled="selectedIcon == null">{{vsLang.ok}}</button>
<button type="button" class="btn btn-default" ng-click="dismissWindow()">{{vsLang.close}}</button>
</div>
</script>
<!-- 加载模板选择报表弹框 -->
<script type="text/ng-template" id="reportPickerModal.html">
<div class="modal-header" style="padding: 10px 15px;">
<h4>{{vsLang.choose_report}}</h4>
</div>
<div class="modal-body doc-list-table" style="padding:0;height:60%;">
<div class="tree-container" style="top:0;">
<div class="tree-content">
<div ui-tree="treeOptions" data-drag-enabled="false">
<ol ui-tree-nodes="" ng-model="data" id="tree-root">
<li ng-repeat="node in data" ui-tree-node ng-include="'nodes_renderer.html'"></li>
</ol>
</div>
</div>
</div>
<div style="position:absolute;left:250px;top:0;bottom:0;right:0;overflow-y:auto;">
<div style="height:100px;line-height:100px;text-align:center;color:#999;" ng-show="reports.length == 0">{{vsLang.no_report_found}}</div>
<table ng-show="reports.length > 0" class="doc-list-table" style="width:100%;height:44px;border-bottom:1px solid #f0f0f0;">
<thead>
<th style="min-width:20px;width:20px;">
<label style="margin-left:10px;cursor:pointer;" ng-click="onSelectAllClicked()">
<input type="checkbox" ng-model="selectAll" style="cursor:pointer;" ng-click="onSelectAllClicked()">
</label>
</th>
<th width="100%">{{vsLang.name}}</th>
<th style="text-align:center;min-width:120px;width:120px;">{{vsLang.last_update}}</th>
</thead>
</table>
<div style="position:absolute;left:0;top:44px;bottom:0;right:0;overflow-y:auto;">
<table ng-show="reports.length > 0" class="doc-list-table" style="width:100%;">
<tbody>
<tr ng-repeat="item in reports" ng-click="onItemClicked(item)" ng-style="{'background-color': selectedIds[item.id] ? '#E6F5FF' : ''}">
<td style="min-width:20px;width:20px;">
<label style="margin-left:10px;cursor:pointer;">
<input type="checkbox" ng-model="selectedIds[item.id]" style="cursor:pointer;" ng-click="onItemClicked(item)">
</label>
</td>
<td width="100%">
<div class="name" style="float:left;">
{{item.name}}
</div>
</td>
<td style="text-align:center;min-width:100px;width:100px;" uib-tooltip="{{item.udpateDate}}" tooltip-placement="bottom" tooltip-append-to-body="true">{{item.updateDate}}{{vsLang.ago}}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<!-- 公共底部信息 -->
<div class="modal-footer" style="padding: 10px 15px;">
<!--<div ng-show="selectedUser != null" style="color:#C42932;float:left;padding-top:5px;">当前显示的是{{selectedUser.name}}的报表</div>-->
<button class="btn btn-success" ng-click="confirm()">{{vsLang.ok}}</button>
<!--<button ng-show="isPlatformAdmin" class="btn btn-default" ng-click="openSwitchUserWindow()">切换用户</button>-->
<button class="btn btn-default" ng-click="dismissWindow()">{{vsLang.cancel}}</button>
</div>
</script>
~~~
- video
- treemap
- mian.html文件注释
- 配置项tab
- 配置项属性
- internalRefreshAxisMdelData函数梳理
- 函数配置项-engine文件
- 替换数据源流程
- design.js
- 树图
- 下钻 废弃
- 人体图
- 下钻地图
- 行列互转
- 预览样式
- logo旁边的报表名
- echarts 组件生成图片
- 数据集样式
- 头部 黑色head
- 手机 ipad 图片
- k线图部分
- 平台管理css样式
- 目录css和平板的边距
- 设计页-数据源-目录
- 数据集 - 查看数据表 -按钮和目录样式
- 报表列表页按钮css
- 角色管理页按钮css
- 推送通知按钮css
- 子账号按钮css
- 数据连接
- openlayers地图线路图
- openlayers4_map_designer.js
- openlayers4_map_view.js
- 说明
- 常用图标小bug
- echarts 气泡地图
- echarts 线路轨迹图
- 导出pdf
- 可视化sql--css
- 表格滚动
- 主题色
- 时间轴
- 分享弹框
- 管理平台header和菜单
- 报表平台和菜单
- 初始化组件颜色
- 其他弹框
- olap分析样式-废弃
- 3d地图柱状图
- 关系图
- olap分析
- 地区地图
- k线图相关属性设置
- 世界地图
- 时间轴(new)
- 选择省份下转地图
- 选择省市飞线地图
- 面积预警地图默认颜色
- 组件覆层开关组件
- 汽车仪表盘bug
- 雷达图bug修复不能分享的问题
- 饼状 条形图 自动播放
- 临时用
- 自动轮播
- 方形元素 按钮浮动报错
- 面积预警地图整合可选择省市区
- 下钻地图添加返回按钮
- 下钻地图修复预警bug
- 基本时间组件
- 添加时钟组件
- 3d地球组件
- 盒须图
- 组件加载动画
- 报表背景渐变色
- 主题模板
- 没用
- 3机房第三方组件
- 设计
- 分享
- 3d机房需要的静态资源
- cesium地球需要的文件以及样式
- cesium地球
- 设计页
- 分享页
- 图标条形图
- 世豪-前端代码整理
- component.css 文件新添加
- 杂项
- index.jsp
- designer.css 样式暂时不整理 里面比较杂
- vs-common.js 新加生成html2canvas pdf
- vs-component-basic.js 完
- vs-component-datasource.js 完
- vs-component-engine.js 完
- vs-component-widget-grid.js 完
- vs-component-widget-square.js 完
- vs-designer.js 完
- vs-designer-component.js 完
- vs-designer-report.js 完
- vs-designer-reportpage.js 完
- vs-component-echarts.js 完
- main.html 完
- component.html 新加组件设置页模板
- 以前的报表页设置控制器---做个记录
- 大概修改过的代码
- 2019-5-8 修改皮肤控制器
- 选择模板
- 桑基图2019-11-20
- bug 修正 2019-11-21
- 插图柱状图
- cesiumchart组件
- gis 地图 联动 弹框 图标
- 动态面积图添加按钮类配置项
- 玫瑰图形组件
- cesium 图形 和three.js 冲突的bug
- gis 地图 默认图层
- 网格标签
- gis 点图 值域
- gis 面图 值域
- 按钮图标添加提示框
- 百度地图
- 剩余的组件
- gulp说明文档
- 色斑图加透明