💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
~~~ <!-- 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> ~~~