~~~
// 这个重要
vsComponentModule.factory("$vcEngine", function () {
// 这个函数是生成每个组件的id
function c() {
function e() {
return Math.floor((1 + Math.random()) * 65536).toString(16).substring(1)
}
return e() + e() + e() + e() + e() + e() + e() + e()
}
// console.log(c())
// 获取的是图表和报表元素两大模块对象
var a = $vsPluginDescriptions.getCategories();
var b = function (e) {
console.log(e)
this.id = c();
this.type = e.type;
this.category = e.category;
this.group = e.group;
this.title = vsLang.component_title;
this.col = 0;
this.row = 0;
this.sizeY = 2;
this.sizeX = d.device === "phone" ? d.gristerColumns : d.gristerColumns / 2;
this.config = {
backgroundColor: "#FFFFFF",
eventConfig: {},
datasourceConfig: {
bindingConfig: {},
bindingData: {}
}
};
this.description = {};
this.description.categories = []
// debugger
console.log(this)
};
// debugger
var d = {
deivce: null,
// a是图表和报表元素
categories: a,
gristerColumns: 4,
gristerRowHeight: 20,
componentInitSequence: 1,
draggingComponent: null,
// 初始化 序列
resetComponentInitSequence: function () {
d.componentInitSequence = 1
},
resetComponentContext: function (e) {
e.context = {};
e.context.resize = function () {};
e.context.watchers = [];
e.description = {};
e.description.categories = []
},
// 复制报表
clone: function (f) {
var e = angular.copy(f);
e.context = {};
e.context.resize = function () {};
e.description.categories = [];
e.id = c();
e.config._load_ = null;
return e
},
// 绑定组件
buildComponent: function (f) {
var e = new b({
type: f.type,
category: f.category,
group: f.group
});
this.resetComponentContext(e);
e.row = parseInt($("#gridster").height() / this.gristerRowHeight);
var g = $vsPluginDescriptions.findDescription(f.category, f.type);
if (g && g.onBuildComponent) {
g.onBuildComponent(e)
}
return e
}
};
console.log(d)
return d
});
console.log(vsComponentModule)
// end
// end
// end
// 函数对象初始化
var V = {
name: "function",
title: vsLang.menu_function,
groups: []
};
console.log(V)
console.log(J.showDataCategory)
if (J.showDataCategory) {
s.component.description.categories.push(V);
var I = function (ae) {
// ae传进来的参数是整个函数的配置项
// 如果没有数据直接终止程序
if (s.component.config.datasourceConfig == null || s.component.config.datasourceConfig.dimensions == null) {
return
}
// 获取度量
var Y = s.component.config.datasourceConfig.dimensions;
// 获取维度
var Z = s.component.config.datasourceConfig.measures;
for (var af = 0; af < Y.length; af++) {
// 这里的值是true
// console.log(s.component.config["sum_" + Y[af].name] == null)
if (s.component.config["sum_" + Y[af].name] == null) {
// 设置为false
s.component.config["sum_" + Y[af].name] = false
}
}
// 如果度量大于o
if (Y.length > 0) {
// 度量合计模块
var ac = {
title: {
text: vsLang.dimension_summary
},
elements: []
};
for (var af = 0; af < Y.length; af++) {
ac.elements.push({
title: Y[af].label,
bind: "sum_" + Y[af].name,
type: "switch-55",
on: vsLang.on,
off: vsLang.off
})
}
// 度量合计模块push进ae数组里
// ae是整个函数配置项的对象
ae.push(ac)
}
// 如果y大于0
if (Y.length > 0) {
// 度量合计别名
var ac = {
title: {
text: vsLang.dimension_summary_alias
},
elements: []
};
console.log(ac)
for (var af = 0; af < Y.length; af++) {
ac.elements.push({
title: Y[af].label,
type: "text-input-sl",
dimensionName: Y[af].name,
bind: "summaryAlias_" + Y[af].name,
})
}
ae.push(ac)
}
ae.push({
title: {
text: vsLang.summary
},
// 这个是合记模块
elements: [{
title: vsLang.position,
type: "radio",
bind: "summaryPosition",
items: [{
name: vsLang.position_first,
value: "first"
}, {
name: vsLang.position_last,
value: "last"
}]
}]
});
// 函数里的数据 脚本
// 数据脚本里的动态数据
var ab = {
title: {
text: vsLang.measures_script
},
// 数据脚本模块
elements: [{
title: vsLang.measures_script,
type: "script-editor",
bind: "measureScript",
btnClass: "btn-default",
onClick: function (ah) {
e.openScriptEditorWindow(c, b, s, r, ah.bind, "javascript", function () {
b(function () {
s.$broadcast(event_refreshBindingData, {})
})
})
}
}]
};
ae.push(ab);
// Z是所有的度量
// 如果有Z则执行里面的循环体
// 循环出每一个度量
if (Z != null && Z.length > 0) {
if (Z.length > 0) {
for (var af = 0; af < Z.length; af++) {
ab.elements.push({
title: Z[af].label,
type: "text-input-sl",
dimensionName: Z[af].name,
bind: "measureScript_" + Z[af].name,
})
}
}
}
// 数组合并里的top和不包含指定值
var ag = [{
name: "TOP X",
value: "excludeTopX"
}, {
name: "不包含指定值",
value: "excludeValues"
}];
// 数据合并
var ab = {
title: {
// 数据合并
text: vsLang.data_merge
},
elements: [{
// 数据合并
title: vsLang.data_merge,
type: "switch",
bind: "enableDataMerge",
on: vsLang.on,
off: vsLang.off
}, {
// 维度
title: vsLang.dimension,
type: "dimensionDropdownSelect",
bind: "dataMergeDimension",
show: function () {
return s.component.config.enableDataMerge != null && s.component.config.enableDataMerge === true
}
}, {
// 合并值别名
title: vsLang.merge_alias,
type: "text-input-sl-s",
bind: "dataMergeAlias",
show: function () {
return s.component.config.enableDataMerge != null && s.component.config.enableDataMerge === true
}
}, {
// 策略
title: vsLang.merge_strategy,
type: "select-s",
bind: "dataMergeType",
items: ag,
show: function () {
return s.component.config.enableDataMerge != null && s.component.config.enableDataMerge === true
}
}, {
// 值
title: vsLang.value,
type: "text-input-sl-s",
bind: "dataMergeValue",
show: function () {
return s.component.config.enableDataMerge != null && s.component.config.enableDataMerge === true
}
}]
};
ae.push(ab);
var aa = [{
// 默认
name: vsLang.label_default,
value: "sum"
}, {
// 加总
name: vsLang.function_sum,
value: "sum"
}, {
// 平均值
name: vsLang.function_avg,
value: "avg"
}, {
// 计数
name: vsLang.function_count,
value: "count"
}, {
// 最大值
name: vsLang.function_max,
value: "max"
}, {
// 最小值
name: vsLang.function_min,
value: "min"
}];
if (Z != null && Z.length > 0) {
// 度量函数模块
var ac = {
title: {
text: vsLang.measures_function
},
elements: []
};
for (var af = 0; af < Z.length; af++) {
ac.elements.push({
title: Z[af].label,
type: "select-s",
//这里是循环以名字调用绑定6个函数
bind: "function_" + Z[af].name,
// 这里得aa就是上面的aa对象
items: aa
})
console.log(ac.elements)
}
var ad = s.component.config.datasourceConfig.queryProperties;
if (ad != null && ad.length > 0) {
for (var af = 0; af < ad.length; af++) {
ac.elements.push({
title: ad[af].label,
type: "select-s",
bind: "function_" + ad[af].name,
items: aa
})
}
}
ae.push(ac)
// console.log(ae)
}
};
// 把Z也就是函数右侧配置对象传进去
var v = function (Z) {
if (s.component.config.datasourceConfig != null && s.component.config.datasourceConfig.dimensions != null) {
var ab = s.component.config.datasourceConfig.dimensions;
if (ab.length > 0) {
var Y = {
title: {
text: vsLang.dimension_init_value
},
elements: []
};
for (var aa = 0; aa < ab.length; aa++) {
Y.elements.push({
title: ab[aa].label,
bind: "initValue_" + ab[aa].name,
type: "text-input-sl-s"
})
}
Z.push(Y)
}
}
};
// console.log(Z)
console.log(v)
// 把Z也就是函数右侧配置对象传进去
var y = function (Z) {
console.log(Z)
var Y = {
title: {
text: vsLang.dimension_link
},
elements: [{
title: vsLang.strategy,
type: "radio",
bind: "dimensionLinkage",
items: [{
name: vsLang.auto,
value: "auto"
}, {
name: vsLang.force_match,
value: "force"
}]
}]
};
Z.push(Y)
};
s.$on(event_onCategoryTabSelected, function (Z, aa) {
if (aa.componentId !== s.component.id) {
return
}
if (aa.name !== "function") {
return
}
if (s.component.config.datasourceConfig.metadataConfig == null) {
return
}
// 设置空数组
var Y = [];
console.log(Y)
// 调用这三个函数
v(Y);
I(Y);
y(Y);
V.groups = Y;
// 绑定数据
Y.push({
title: {
text: vsLang.query_properties
},
elements: [{
title: vsLang.properties,
type: "propertyMultiSelect",
bind: "datasourceConfig"
}]
});
Y.push({
title: {
text: "",
show: false
},
// 刷新组件的按钮模块里面有click方法
elements: [{
title: vsLang.reload_component,
type: "button",
btnClass: "btn-success",
// 刷新组件的事件
onClick: function () {
s.$parent.queryConditionDimensions = true;
// 接收父控制器数据
s.$broadcast(event_refreshBindingData, {})
}
}]
})
})
}
~~~
- video
- treemap
- mian.html文件注释
- 配置项tab
- 配置项属性
- internalRefreshAxisMdelData函数梳理
- 函数配置项-engine文件
- 替换数据源流程
- design.js
- 树图
- 下钻 废弃
- 人体图
- 下钻地图
- 行列互转
- 预览样式
- logo旁边的报表名
- echarts 组件生成图片
- 数据集样式
- 头部 黑色head
- 手机 ipad 图片
- k线图部分
- 平台管理css样式
- 目录css和平板的边距
- 设计页-数据源-目录
- 数据集 - 查看数据表 -按钮和目录样式
- 报表列表页按钮css
- 角色管理页按钮css
- 推送通知按钮css
- 子账号按钮css
- 数据连接
- openlayers地图线路图
- openlayers4_map_designer.js
- openlayers4_map_view.js
- 说明
- 常用图标小bug
- echarts 气泡地图
- echarts 线路轨迹图
- 导出pdf
- 可视化sql--css
- 表格滚动
- 主题色
- 时间轴
- 分享弹框
- 管理平台header和菜单
- 报表平台和菜单
- 初始化组件颜色
- 其他弹框
- olap分析样式-废弃
- 3d地图柱状图
- 关系图
- olap分析
- 地区地图
- k线图相关属性设置
- 世界地图
- 时间轴(new)
- 选择省份下转地图
- 选择省市飞线地图
- 面积预警地图默认颜色
- 组件覆层开关组件
- 汽车仪表盘bug
- 雷达图bug修复不能分享的问题
- 饼状 条形图 自动播放
- 临时用
- 自动轮播
- 方形元素 按钮浮动报错
- 面积预警地图整合可选择省市区
- 下钻地图添加返回按钮
- 下钻地图修复预警bug
- 基本时间组件
- 添加时钟组件
- 3d地球组件
- 盒须图
- 组件加载动画
- 报表背景渐变色
- 主题模板
- 没用
- 3机房第三方组件
- 设计
- 分享
- 3d机房需要的静态资源
- cesium地球需要的文件以及样式
- cesium地球
- 设计页
- 分享页
- 图标条形图
- 世豪-前端代码整理
- component.css 文件新添加
- 杂项
- index.jsp
- designer.css 样式暂时不整理 里面比较杂
- vs-common.js 新加生成html2canvas pdf
- vs-component-basic.js 完
- vs-component-datasource.js 完
- vs-component-engine.js 完
- vs-component-widget-grid.js 完
- vs-component-widget-square.js 完
- vs-designer.js 完
- vs-designer-component.js 完
- vs-designer-report.js 完
- vs-designer-reportpage.js 完
- vs-component-echarts.js 完
- main.html 完
- component.html 新加组件设置页模板
- 以前的报表页设置控制器---做个记录
- 大概修改过的代码
- 2019-5-8 修改皮肤控制器
- 选择模板
- 桑基图2019-11-20
- bug 修正 2019-11-21
- 插图柱状图
- cesiumchart组件
- gis 地图 联动 弹框 图标
- 动态面积图添加按钮类配置项
- 玫瑰图形组件
- cesium 图形 和three.js 冲突的bug
- gis 地图 默认图层
- 网格标签
- gis 点图 值域
- gis 面图 值域
- 按钮图标添加提示框
- 百度地图
- 剩余的组件
- gulp说明文档
- 色斑图加透明