4199 lines
116 KiB
JavaScript
4199 lines
116 KiB
JavaScript
|
|
var reiniting = false,
|
|||
|
|
timeout = 0,
|
|||
|
|
outtime = 800;
|
|||
|
|
var vm = new Vue({
|
|||
|
|
el: "#app",
|
|||
|
|
data: {
|
|||
|
|
isNew: true,
|
|||
|
|
theme: getTheme(),
|
|||
|
|
devCheckedKeys: [],
|
|||
|
|
devStrict: false,
|
|||
|
|
devHasCD: {},
|
|||
|
|
//
|
|||
|
|
filterConnection: false,
|
|||
|
|
filterView: false,
|
|||
|
|
deleteLoading: false,
|
|||
|
|
excelSaveLoading: false,
|
|||
|
|
excelFileName: "",
|
|||
|
|
excelFilePath: "",
|
|||
|
|
excelDateType: "YYYY-MM-DD",
|
|||
|
|
dateLabelStart: "开始时间",
|
|||
|
|
dateLabelEnd: "结束时间",
|
|||
|
|
excelFilesPanel: false,
|
|||
|
|
i18n: {},
|
|||
|
|
/*报表文件管理*begin*/
|
|||
|
|
save_loading: false,
|
|||
|
|
oldFileName:'',//重命名前文件名称
|
|||
|
|
openedFile: {},
|
|||
|
|
reportFilesPanel: false,
|
|||
|
|
reportFiles: [
|
|||
|
|
{
|
|||
|
|
label: "报表",
|
|||
|
|
code: "root",
|
|||
|
|
expand: false,
|
|||
|
|
filetype: "report",
|
|||
|
|
children: []
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
reportModes: [
|
|||
|
|
{
|
|||
|
|
label: "模板",
|
|||
|
|
code: "mode",
|
|||
|
|
filetype: "mode",
|
|||
|
|
type: "files",
|
|||
|
|
children: [
|
|||
|
|
{
|
|||
|
|
label: "模板1",
|
|||
|
|
code: "mode_1",
|
|||
|
|
filetype: "mode",
|
|||
|
|
type: "file",
|
|||
|
|
children: []
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
fileName: "",
|
|||
|
|
fileSelected: "",
|
|||
|
|
checkedFiles: [],
|
|||
|
|
showFileRename: false,
|
|||
|
|
fileRename: "",
|
|||
|
|
isSave: true,
|
|||
|
|
newFile: false,
|
|||
|
|
newFiles: false,
|
|||
|
|
isMode: false,
|
|||
|
|
fileSelected: "",
|
|||
|
|
fileSelectedReport: {},
|
|||
|
|
reportFilesTips_nofile: false,
|
|||
|
|
reportFilesTips_file: false,
|
|||
|
|
reportFilesTips_files: false,
|
|||
|
|
/*报表文件管理*end*/
|
|||
|
|
/*添加列*degin*/
|
|||
|
|
addColPanel: false,
|
|||
|
|
zx_colName_show: "",
|
|||
|
|
zx_colName: "",
|
|||
|
|
zx_colValue_show: "",
|
|||
|
|
zx_colValue: "",
|
|||
|
|
formulaType: "defined",
|
|||
|
|
saveFlag: false,
|
|||
|
|
cols: [],
|
|||
|
|
check_cols: [],
|
|||
|
|
check_cols_index: "-1",
|
|||
|
|
x_check: [],
|
|||
|
|
col_check_node: [],
|
|||
|
|
/*添加列*end*/
|
|||
|
|
/*树操作*degin*/
|
|||
|
|
editNodePanel: false,
|
|||
|
|
addNodePanel: false,
|
|||
|
|
edit_node_type: "",
|
|||
|
|
checked_dev_index: 0,
|
|||
|
|
check_dev: [],
|
|||
|
|
dev_name_text: "",
|
|||
|
|
dev_code_text: "",
|
|||
|
|
dev_e: "",
|
|||
|
|
default_e: defaulte(),
|
|||
|
|
clone_all_dev: [],
|
|||
|
|
edit_is_add: false,
|
|||
|
|
delete_box: false,
|
|||
|
|
show_field: false,
|
|||
|
|
dev_field: {
|
|||
|
|
label: "label"
|
|||
|
|
},
|
|||
|
|
deleteFlag: true,
|
|||
|
|
/*配置*begin*/
|
|||
|
|
configure: false,
|
|||
|
|
activeName: "first",
|
|||
|
|
border_type: "",
|
|||
|
|
border_type_list: [
|
|||
|
|
{
|
|||
|
|
label: "实线",
|
|||
|
|
value: "solid"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
label: "点线",
|
|||
|
|
value: "dotted"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
label: "虚线",
|
|||
|
|
value: "dashed"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
label: "双线",
|
|||
|
|
value: "double"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
label: "3D凹槽线边框(需要边框线较大才有明显的效果)",
|
|||
|
|
value: "groove"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
label: "3D垄状线边框(需要边框线较大才有明显的效果)",
|
|||
|
|
value: "ridge"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
label: "3D凹形",
|
|||
|
|
value: "inset"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
label: "3D凸形",
|
|||
|
|
value: "outset"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
border_bgcolor: "",
|
|||
|
|
border_zise: "",
|
|||
|
|
// th_bgcolor: 'rgba(16, 67, 102, 1)',
|
|||
|
|
th_bgcolor: "", //默认透明
|
|||
|
|
th_color: "",
|
|||
|
|
row_line_height: 27,
|
|||
|
|
row_chang_color: "two-color",
|
|||
|
|
report_bgcolor: "",
|
|||
|
|
report_font: "",
|
|||
|
|
report_size: "",
|
|||
|
|
report_color: "",
|
|||
|
|
report_textarea: "",
|
|||
|
|
paper_sum: {
|
|||
|
|
height: 1,
|
|||
|
|
width: 1
|
|||
|
|
},
|
|||
|
|
paper_type: "A4",
|
|||
|
|
paper_orientation: "col",
|
|||
|
|
paper_size: {
|
|||
|
|
A4: {
|
|||
|
|
col: 1086,
|
|||
|
|
row: 756
|
|||
|
|
},
|
|||
|
|
A3: {
|
|||
|
|
col: 1548,
|
|||
|
|
row: 1084
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
/*配置*end*/
|
|||
|
|
/*表格*begin*/
|
|||
|
|
form: {},
|
|||
|
|
cols_width: [],
|
|||
|
|
radio_form: "",
|
|||
|
|
tb_title: {
|
|||
|
|
name: "表格标题",
|
|||
|
|
is_show: "block",
|
|||
|
|
font_family: "微软雅黑",
|
|||
|
|
font_color: getTheme()["$font-color"],
|
|||
|
|
font_size: "",
|
|||
|
|
align: "center",
|
|||
|
|
top: 30,
|
|||
|
|
right: 10,
|
|||
|
|
bottom: 10,
|
|||
|
|
left: 10
|
|||
|
|
},
|
|||
|
|
tb_sub: {
|
|||
|
|
name: "表格副标题",
|
|||
|
|
is_show: "none",
|
|||
|
|
font_family: "微软雅黑",
|
|||
|
|
font_color: getTheme()["$font-color"],
|
|||
|
|
font_size: "",
|
|||
|
|
align: "center",
|
|||
|
|
top: 10,
|
|||
|
|
right: 10,
|
|||
|
|
bottom: 10,
|
|||
|
|
left: 10
|
|||
|
|
},
|
|||
|
|
tb_detailed_1: {
|
|||
|
|
name: "自定义被描述:描述内容",
|
|||
|
|
is_show: "none",
|
|||
|
|
font_family: "微软雅黑",
|
|||
|
|
font_color: getTheme()["$font-color"],
|
|||
|
|
font_size: "",
|
|||
|
|
align: "center",
|
|||
|
|
top: "",
|
|||
|
|
right: "",
|
|||
|
|
bottom: "",
|
|||
|
|
left: ""
|
|||
|
|
},
|
|||
|
|
tb_detailed_2: {
|
|||
|
|
name: " 表格编号:000",
|
|||
|
|
is_show: "none",
|
|||
|
|
font_family: "微软雅黑",
|
|||
|
|
font_color: getTheme()["$font-color"],
|
|||
|
|
font_size: "",
|
|||
|
|
align: "center",
|
|||
|
|
top: "",
|
|||
|
|
right: "",
|
|||
|
|
bottom: "",
|
|||
|
|
left: ""
|
|||
|
|
},
|
|||
|
|
tb_detailed_3: {
|
|||
|
|
name: "制表时间:" + new Date().toLocaleDateString(),
|
|||
|
|
is_show: "block",
|
|||
|
|
font_family: "微软雅黑",
|
|||
|
|
font_color: getTheme()["$font-color"],
|
|||
|
|
font_size: "",
|
|||
|
|
align: "center",
|
|||
|
|
top: "",
|
|||
|
|
right: "",
|
|||
|
|
bottom: "",
|
|||
|
|
left: ""
|
|||
|
|
},
|
|||
|
|
tb_detailed_4: {
|
|||
|
|
name: "制表人:" + (sessionStorage.getItem("name") || ""),
|
|||
|
|
is_show: "block",
|
|||
|
|
font_family: "微软雅黑",
|
|||
|
|
font_color: getTheme()["$font-color"],
|
|||
|
|
font_size: "",
|
|||
|
|
align: "center",
|
|||
|
|
top: "",
|
|||
|
|
right: "",
|
|||
|
|
bottom: "",
|
|||
|
|
left: ""
|
|||
|
|
},
|
|||
|
|
tb_width: "600px",
|
|||
|
|
tableInit:
|
|||
|
|
"<tr><td>###</td><td>###</td><td>###</td><td>###</td><td>###</td><td>###</td><td>###</td><td>###</td></tr> <tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>",
|
|||
|
|
table:
|
|||
|
|
"<tr><td>###</td><td>###</td><td>###</td><td>###</td><td>###</td><td>###</td><td>###</td><td>###</td></tr> <tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>",
|
|||
|
|
/*表格*end*/
|
|||
|
|
/*右侧选项卡*/
|
|||
|
|
sidetabs: "dev",
|
|||
|
|
/*向导*/
|
|||
|
|
adding: false,
|
|||
|
|
deling: false,
|
|||
|
|
step: false,
|
|||
|
|
substep: 0,
|
|||
|
|
report_types: [],
|
|||
|
|
filter_check_dev: "",
|
|||
|
|
cur_report_type: {},
|
|||
|
|
sketch_index: 0,
|
|||
|
|
report_s_month: 1,
|
|||
|
|
report_s_day: 1,
|
|||
|
|
report_s_hours: 0,
|
|||
|
|
report_interval: "1",
|
|||
|
|
report_style: [],
|
|||
|
|
cur_report_style: {},
|
|||
|
|
stshow: false,
|
|||
|
|
station: [],
|
|||
|
|
check_station: "",
|
|||
|
|
station_info: {
|
|||
|
|
label: "",
|
|||
|
|
type: "list"
|
|||
|
|
},
|
|||
|
|
profession: [],
|
|||
|
|
check_profession: "",
|
|||
|
|
profession_info: {
|
|||
|
|
label: "",
|
|||
|
|
type: "list"
|
|||
|
|
},
|
|||
|
|
all_dev: [],
|
|||
|
|
check_all: true,
|
|||
|
|
all_property: {},
|
|||
|
|
property_tree: [],
|
|||
|
|
clone_property_tree: [],
|
|||
|
|
filter_all_dev: "",
|
|||
|
|
filter_all_dev_type: "name",
|
|||
|
|
tree_loading: false,
|
|||
|
|
checked_node: {
|
|||
|
|
nodes: []
|
|||
|
|
},
|
|||
|
|
default_property: {
|
|||
|
|
check: [],
|
|||
|
|
node: [],
|
|||
|
|
expaned: []
|
|||
|
|
},
|
|||
|
|
t_num: 0,
|
|||
|
|
check_off: "全选",
|
|||
|
|
filter_c: "",
|
|||
|
|
filter_q: "",
|
|||
|
|
ck_cd: true,
|
|||
|
|
ck_cy: true,
|
|||
|
|
ck_sx: true,
|
|||
|
|
ck_gx: false,
|
|||
|
|
ck_dev: false,
|
|||
|
|
ck_value: "",
|
|||
|
|
cd_tid:[],
|
|||
|
|
cd_info_check: {
|
|||
|
|
list: []
|
|||
|
|
},
|
|||
|
|
contrasts: [],
|
|||
|
|
all_totals: [],
|
|||
|
|
checked_contrast_index: [],
|
|||
|
|
checked_total_index: [],
|
|||
|
|
checked_total_all: false,
|
|||
|
|
indeterminate: false,
|
|||
|
|
dev_tree: (function(n) {
|
|||
|
|
for (var i = 0, arr = []; i < n; i++) {
|
|||
|
|
arr.push({
|
|||
|
|
label: "###",
|
|||
|
|
tid: i
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
return arr;
|
|||
|
|
})(8),
|
|||
|
|
time_tree: [],
|
|||
|
|
dev_map: [],
|
|||
|
|
dev_head: [],
|
|||
|
|
time_map: [],
|
|||
|
|
/*数据设置*begin*/
|
|||
|
|
dataConfig: false,
|
|||
|
|
data_cd: false,
|
|||
|
|
data_dev: false,
|
|||
|
|
data_point: 2,
|
|||
|
|
text_key: "code",
|
|||
|
|
old_text: "",
|
|||
|
|
new_text: "",
|
|||
|
|
digits_fixed: false,
|
|||
|
|
input_focus: false,
|
|||
|
|
timerNo: "",
|
|||
|
|
// 公式
|
|||
|
|
cols_type: "father",
|
|||
|
|
cols_parent: "",
|
|||
|
|
cols_value: "",
|
|||
|
|
formule_name: "",
|
|||
|
|
formule_value: "",
|
|||
|
|
formule_view: "",
|
|||
|
|
protree_to_option: [],
|
|||
|
|
//权限
|
|||
|
|
powerPanel: false,
|
|||
|
|
checkedGroup: [],
|
|||
|
|
allUserGroup: [],
|
|||
|
|
curTreeCode: "",
|
|||
|
|
devTreeProps: {
|
|||
|
|
label: "label"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
computed: {
|
|||
|
|
htmlConfig: function() {
|
|||
|
|
return htmlConfig();
|
|||
|
|
},
|
|||
|
|
check_station_name: function() {
|
|||
|
|
var vm = this;
|
|||
|
|
var node = post.cz.data.filter(function(v) {
|
|||
|
|
return v.locationId == vm.check_station;
|
|||
|
|
})[0];
|
|||
|
|
if (!node) {
|
|||
|
|
node = {
|
|||
|
|
name: vm.check_station
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
return node.name;
|
|||
|
|
},
|
|||
|
|
excelInputUrl: function() {
|
|||
|
|
return post.excelUpload.url || "";
|
|||
|
|
},
|
|||
|
|
fileInputUrl: function() {
|
|||
|
|
return post.fileInput.url || "";
|
|||
|
|
},
|
|||
|
|
default_checked_keys: function() {
|
|||
|
|
var node = this.default_property.check.concat(
|
|||
|
|
this.default_property.expaned
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
return node;
|
|||
|
|
},
|
|||
|
|
checkedCD: function() {
|
|||
|
|
//从设备树形反推选择了哪些测点
|
|||
|
|
},
|
|||
|
|
userInfo: function() {
|
|||
|
|
var p = getToken().data.userInfo;
|
|||
|
|
return p;
|
|||
|
|
},
|
|||
|
|
totals: function() {
|
|||
|
|
var vm = this;
|
|||
|
|
if (!vm.all_totals) {
|
|||
|
|
return [];
|
|||
|
|
}
|
|||
|
|
var obj = JSON.parse(JSON.stringify(vm.all_totals));
|
|||
|
|
if (this.sketch.value == "sy" || this.sketch.value == "dd") {
|
|||
|
|
return [obj[obj.length - 1]];
|
|||
|
|
} else {
|
|||
|
|
return obj;
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
devtree_to_option: function() {
|
|||
|
|
var arr = this.dev_tree;
|
|||
|
|
var parent = arr,
|
|||
|
|
i = 0,
|
|||
|
|
child = [],
|
|||
|
|
result = [];
|
|||
|
|
while (parent[i]) {
|
|||
|
|
if (parent[i].nodetype === "dev") {
|
|||
|
|
result.push(parent[i]);
|
|||
|
|
} else {
|
|||
|
|
if (parent[i].children && parent[i].children.length > 0) {
|
|||
|
|
Array.prototype.push.apply(child, parent[i].children);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
i++;
|
|||
|
|
if (parent[i] === undefined) {
|
|||
|
|
parent = child;
|
|||
|
|
child = [];
|
|||
|
|
i = 0;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return result;
|
|||
|
|
},
|
|||
|
|
adev_check: function() {
|
|||
|
|
var arr = this.cur_report_type.type;
|
|||
|
|
var index = this.sketch_index;
|
|||
|
|
this.postDev();
|
|||
|
|
return arr[index].value != "sy";
|
|||
|
|
},
|
|||
|
|
table_y_name: function() {
|
|||
|
|
var val = this.cur_report_style.value;
|
|||
|
|
if (val == 0) {
|
|||
|
|
return this.sketch.value != "tj"
|
|||
|
|
? this.i18n.js.date
|
|||
|
|
: this.i18n.js.sidepoints;
|
|||
|
|
} else if (val == 1) {
|
|||
|
|
return this.i18n.js.dev;
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
checked_dev_node: function() {
|
|||
|
|
return vm.check_dev[vm.checked_dev_index];
|
|||
|
|
},
|
|||
|
|
checked_total: function() {
|
|||
|
|
var arr = this.totals;
|
|||
|
|
var index = this.checked_total_index;
|
|||
|
|
for (var i = 0, n = []; i < index.length; i++) {
|
|||
|
|
n.push(arr[index[i]]);
|
|||
|
|
}
|
|||
|
|
return n;
|
|||
|
|
},
|
|||
|
|
checked_contrast: function() {
|
|||
|
|
var arr = this.contrasts;
|
|||
|
|
var index = this.checked_contrast_index;
|
|||
|
|
for (var i = 0, n = []; i < index.length; i++) {
|
|||
|
|
n.push(arr[index[i]]);
|
|||
|
|
}
|
|||
|
|
return n;
|
|||
|
|
},
|
|||
|
|
sketch: function() {
|
|||
|
|
var arr = this.cur_report_type.type;
|
|||
|
|
var index = this.sketch_index;
|
|||
|
|
var _temp_ = getReportStyle();
|
|||
|
|
this.report_style = [];
|
|||
|
|
if (arr[index].value === "sy") {
|
|||
|
|
this.cur_report_style = _temp_[0];
|
|||
|
|
this.report_style.push(_temp_[0]);
|
|||
|
|
} else {
|
|||
|
|
this.report_style = _temp_;
|
|||
|
|
}
|
|||
|
|
// this.changeTbtitleName(arr[index]);
|
|||
|
|
return arr[index];
|
|||
|
|
},
|
|||
|
|
border_style: function() {
|
|||
|
|
var vm = this;
|
|||
|
|
var str =
|
|||
|
|
vm.fnStyle("border-style", vm.border_type) +
|
|||
|
|
vm.fnStyle("border-color", vm.border_bgcolor) +
|
|||
|
|
vm.fnStyle("border-width", vm.border_zise, "px") +
|
|||
|
|
vm.fnStyle("height", vm.row_line_height, "px");
|
|||
|
|
return str;
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
th_style: function() {
|
|||
|
|
var vm = this;
|
|||
|
|
var str =
|
|||
|
|
vm.fnStyle("background-color", vm.th_bgcolor) +
|
|||
|
|
vm.fnStyle("color", vm.th_color);
|
|||
|
|
return str;
|
|||
|
|
},
|
|||
|
|
panel_style: function() {
|
|||
|
|
var vm = this;
|
|||
|
|
var str =
|
|||
|
|
vm.fnStyle("background-color", vm.report_bgcolor) +
|
|||
|
|
vm.fnStyle("color", vm.report_color) +
|
|||
|
|
vm.fnStyle("font-family", vm.report_font) +
|
|||
|
|
vm.fnStyle("font-size", vm.report_size) +
|
|||
|
|
this.report_textarea;
|
|||
|
|
return str;
|
|||
|
|
},
|
|||
|
|
papers: function() {
|
|||
|
|
var o = this.paper_size[this.paper_type];
|
|||
|
|
var sum = this.paper_sum.width * this.paper_sum.height;
|
|||
|
|
for (var i = 0, arr = []; i < sum; i++) {
|
|||
|
|
var str = "";
|
|||
|
|
if (this.paper_orientation == "col") {
|
|||
|
|
str = "width:" + o.col + "px;height:" + o.row + "px;";
|
|||
|
|
} else {
|
|||
|
|
str = "height:" + o.col + "px;width:" + o.row + "px;";
|
|||
|
|
}
|
|||
|
|
arr.push(str);
|
|||
|
|
}
|
|||
|
|
return arr;
|
|||
|
|
},
|
|||
|
|
tb_title_style: function() {
|
|||
|
|
var obj = this.tb_title;
|
|||
|
|
return "margin:auto;width:100%;" + setStyle(obj);
|
|||
|
|
},
|
|||
|
|
tb_sub_style: function() {
|
|||
|
|
var obj = this.tb_sub;
|
|||
|
|
return "margin:auto;width:width:100%;" + setStyle(obj);
|
|||
|
|
},
|
|||
|
|
tb_detailed_1_style: function() {
|
|||
|
|
var obj = this.tb_detailed_1;
|
|||
|
|
return setStyle(obj);
|
|||
|
|
},
|
|||
|
|
tb_detailed_2_style: function() {
|
|||
|
|
var obj = this.tb_detailed_2;
|
|||
|
|
return setStyle(obj);
|
|||
|
|
},
|
|||
|
|
tb_detailed_3_style: function() {
|
|||
|
|
var obj = this.tb_detailed_3;
|
|||
|
|
return setStyle(obj);
|
|||
|
|
},
|
|||
|
|
tb_detailed_4_style: function() {
|
|||
|
|
var obj = this.tb_detailed_4;
|
|||
|
|
return setStyle(obj);
|
|||
|
|
},
|
|||
|
|
reportInterval: function() {
|
|||
|
|
var arr = getReportIntreval();
|
|||
|
|
if (this.cur_report_type.value !== "udf") {
|
|||
|
|
arr.length = 4;
|
|||
|
|
}
|
|||
|
|
return arr;
|
|||
|
|
},
|
|||
|
|
selectDesabled: function() {
|
|||
|
|
if (this.sketch.value == "sy") {
|
|||
|
|
this.report_s_month = 1;
|
|||
|
|
this.report_s_day = 1;
|
|||
|
|
this.report_s_hours = 0;
|
|||
|
|
this.report_interval = "1";
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
return false;
|
|||
|
|
},
|
|||
|
|
sketchDesabled: function() {
|
|||
|
|
if (this.sketch.value == "db" || this.sketch.value == "tj") {
|
|||
|
|
this.report_interval = "1";
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
return false;
|
|||
|
|
},
|
|||
|
|
setDevTreeToObj(tree) {
|
|||
|
|
var obj = {};
|
|||
|
|
for (var i = 0; i < tree.length; i++) {
|
|||
|
|
var d = tree[i];
|
|||
|
|
if (d.noetype == "dev_type") {
|
|||
|
|
if (d.children && d.children.length > 0) {
|
|||
|
|
this.setDevTreeToObj(d.children);
|
|||
|
|
}
|
|||
|
|
} else if (d.noetype == "dev") {
|
|||
|
|
} else {
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
methods: {
|
|||
|
|
|
|||
|
|
devTreeCheckeOn(){
|
|||
|
|
this.devTreeLoop(this.all_dev,function(node,tree){
|
|||
|
|
console.log("devTreeCheckeOn -> node", node)
|
|||
|
|
if(node.visible&&!node.checked){
|
|||
|
|
tree.setChecked(node.key,true)
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
devTreeCheckeOff(){
|
|||
|
|
this.devTreeLoop(this.all_dev,function(node,tree){
|
|||
|
|
if(node.visible&&node.checked){
|
|||
|
|
tree.setChecked(node.key,false)
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
devTreeLoop(list,fn){
|
|||
|
|
var children=[];
|
|||
|
|
var vm=this;
|
|||
|
|
list.map(function(v){
|
|||
|
|
var node=vm.$refs.adev_tree.getNode(v);
|
|||
|
|
if(typeof fn==='function'){
|
|||
|
|
fn(node,vm.$refs.adev_tree)
|
|||
|
|
}
|
|||
|
|
if(v.children&&v.children.length>0){
|
|||
|
|
children=children.concat(v.children)
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
if(children.length>0){
|
|||
|
|
this.devTreeLoop(children,fn)
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
changeFilterView() {
|
|||
|
|
this.filterView = !this.filterView;
|
|||
|
|
this.$set(this.devTreeProps, "label", this.filterView ? "code" : "label");
|
|||
|
|
},
|
|||
|
|
goSec: function() {
|
|||
|
|
this.substep = this.substep + 100;
|
|||
|
|
this.checked_node = { nodes: [] };
|
|||
|
|
this.changeTbtitleName(this.sketch);
|
|||
|
|
},
|
|||
|
|
computedTimeValue(value) {
|
|||
|
|
var t = Math.floor(60 * value);
|
|||
|
|
var r = "";
|
|||
|
|
if (t > 7 * 1440) {
|
|||
|
|
r = Math.floor(t / (7 * 1440)) + "周";
|
|||
|
|
t = t % (7 * 1440);
|
|||
|
|
}
|
|||
|
|
if (t > 1440) {
|
|||
|
|
r += Math.floor(t / 1440) + "天";
|
|||
|
|
t = t % 1440;
|
|||
|
|
}
|
|||
|
|
if (t > 60) {
|
|||
|
|
r += Math.floor(t / 60) + "小时";
|
|||
|
|
t = t % 60;
|
|||
|
|
}
|
|||
|
|
if (t > 0) {
|
|||
|
|
r += t + "分钟";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return r;
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
tableResize: function() {
|
|||
|
|
// console.log(666)
|
|||
|
|
},
|
|||
|
|
changeCKCD: function() {
|
|||
|
|
this.$message.warning(
|
|||
|
|
// "更改此项配置需要删除原来测点,重新添加测点才能生效。"
|
|||
|
|
this.i18n.js.needRepeat
|
|||
|
|
);
|
|||
|
|
},
|
|||
|
|
newExcelReport: function() {
|
|||
|
|
this.excelFileName = "";
|
|||
|
|
this.excelFilePath = "";
|
|||
|
|
this.excelDateType = "YYYY-MM-DD";
|
|||
|
|
this.dateLabelStart = this.i18n.excel.startlabel;
|
|||
|
|
this.dateLabelEnd = this.i18n.excel.endlabel;
|
|||
|
|
this.excelFilesPanel = true;
|
|||
|
|
},
|
|||
|
|
addExcelReport: function() {
|
|||
|
|
this.excelSaveLoading = true;
|
|||
|
|
var param = {
|
|||
|
|
path: this.excelFilePath,
|
|||
|
|
timeType: this.excelDateType,
|
|||
|
|
startTime: this.dateLabelStart,
|
|||
|
|
endTime: "",
|
|||
|
|
name: this.excelFileName,
|
|||
|
|
operateFlag: 0,
|
|||
|
|
treePCode: "",
|
|||
|
|
sourceType: 3,
|
|||
|
|
type: 1
|
|||
|
|
};
|
|||
|
|
if (param.timeType.indexOf("~") !== -1) {
|
|||
|
|
param.endTime = this.dateLabelEnd;
|
|||
|
|
}
|
|||
|
|
if (this.checkedFiles[0]) {
|
|||
|
|
// path = this.checkedFiles[0].path.split("/");
|
|||
|
|
param.treePCode = this.checkedFiles[0].treePCode;
|
|||
|
|
} else {
|
|||
|
|
if (this.fileSelectedReport && this.fileSelectedReport.type == 0) {
|
|||
|
|
param.treePCode = this.fileSelectedReport.treeCode;
|
|||
|
|
} else if (
|
|||
|
|
this.fileSelectedReport &&
|
|||
|
|
this.fileSelectedReport.type == 1
|
|||
|
|
) {
|
|||
|
|
vm.$notify({
|
|||
|
|
title: this.i18n.js.tip,
|
|||
|
|
message: this.i18n.js.bntjwbbzj,
|
|||
|
|
type: "warning"
|
|||
|
|
});
|
|||
|
|
this.excelSaveLoading = false;
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
var vm = this;
|
|||
|
|
if (
|
|||
|
|
this.errorMessage(param.name, "请输入报表名称") &&
|
|||
|
|
this.errorMessage(param.path, "请上传报表模板") &&
|
|||
|
|
this.errorMessage(param.timeType, "请选择报表时间类型") &&
|
|||
|
|
this.errorMessage(param.startTime, "请输入报表时间描述") &&
|
|||
|
|
(param.timeType.indexOf("~") === -1
|
|||
|
|
? true
|
|||
|
|
: this.errorMessage(param.endTime, "请输入报表时间描述"))
|
|||
|
|
) {
|
|||
|
|
console.log("验证成功");
|
|||
|
|
} else {
|
|||
|
|
setTimeout(function() {
|
|||
|
|
vm.excelSaveLoading = false;
|
|||
|
|
}, 200);
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
excelReportSave(param, function(res) {
|
|||
|
|
//调用分配权限方法
|
|||
|
|
var file = {
|
|||
|
|
treeCode: res.data.obj.treeCode,
|
|||
|
|
id: res.data.obj.id
|
|||
|
|
};
|
|||
|
|
if (powerDialog()) {
|
|||
|
|
vm.showPowerPanel(file);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
errorMessage: function(arg, msg) {
|
|||
|
|
if (!arg) {
|
|||
|
|
this.$message.error(msg);
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
return true;
|
|||
|
|
},
|
|||
|
|
checkCDIsReal: function() {
|
|||
|
|
if (this.sketch.value === "sy") {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
var vm = this;
|
|||
|
|
//获取树
|
|||
|
|
var tree = this.checked_node.nodes;
|
|||
|
|
//递归树,找出所有设备
|
|||
|
|
var fn = function(map) {
|
|||
|
|
var child = [],
|
|||
|
|
dev = [];
|
|||
|
|
map.map(function(v, i, a) {
|
|||
|
|
if (v.nodetype == "dev_type") {
|
|||
|
|
child = child.concat(v.children);
|
|||
|
|
} else if (v.nodetype == "dev") {
|
|||
|
|
dev.push(v);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
return dev.concat(child.length > 0 ? fn(child) : []);
|
|||
|
|
};
|
|||
|
|
var devList = fn(tree);
|
|||
|
|
//标记是否存在该
|
|||
|
|
var setFeild = function(node, obj) {
|
|||
|
|
if (!obj[node.code]) {
|
|||
|
|
node.isNotReal = true;
|
|||
|
|
node.children.map(function(v, i, a) {
|
|||
|
|
v.isNotReal = true;
|
|||
|
|
});
|
|||
|
|
} else {
|
|||
|
|
obj[node.code] = true;
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
devList.map(function(v, i, a) {
|
|||
|
|
var obj = vm.devHasCD[v.code];
|
|||
|
|
for (var i = 0; i < v.children.length; i++) {
|
|||
|
|
var node = v.children[i];
|
|||
|
|
if (node.nodetype == "property_type") {
|
|||
|
|
node.children.map(function(v, i, a) {
|
|||
|
|
setFeild(v, obj);
|
|||
|
|
});
|
|||
|
|
} else if (node.nodetype == "property") {
|
|||
|
|
setFeild(node, obj);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
excelInput: function(res) {
|
|||
|
|
this.excelFilePath = res;
|
|||
|
|
//重新查询报表文件
|
|||
|
|
this.$message.success(this.i18n.js.inputSuccess); //'导入成功'
|
|||
|
|
//调用分配权限方法
|
|||
|
|
// var file = {
|
|||
|
|
// treeCode: res.data.treeCode,
|
|||
|
|
// id: res.data.id
|
|||
|
|
// };
|
|||
|
|
// if (powerDialog()) {
|
|||
|
|
// vm.showPowerPanel({
|
|||
|
|
// treeCode: d.obj.treeCode,
|
|||
|
|
// id: d.obj.id
|
|||
|
|
// });
|
|||
|
|
// }
|
|||
|
|
},
|
|||
|
|
fnStyle: function(key, value, unit) {
|
|||
|
|
if (!unit) {
|
|||
|
|
unit = "";
|
|||
|
|
}
|
|||
|
|
return value ? key + ":" + value + unit + ";" : "";
|
|||
|
|
},
|
|||
|
|
fileOutput: function() {
|
|||
|
|
var code = this.fileSelectedReport.treeCode;
|
|||
|
|
if (code) {
|
|||
|
|
fileOutput({
|
|||
|
|
treeCode: code
|
|||
|
|
});
|
|||
|
|
} else {
|
|||
|
|
this.$message.error(this.i18n.js.output); //'请选择要导出的报表'
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
fileInput: function(res) {
|
|||
|
|
//重新查询报表文件
|
|||
|
|
getReportTree();
|
|||
|
|
this.$message.success(this.i18n.js.inputSuccess); //'导入成功'
|
|||
|
|
//调用分配权限方法
|
|||
|
|
var file = {
|
|||
|
|
treeCode: res.data.treeCode,
|
|||
|
|
id: res.data.id
|
|||
|
|
};
|
|||
|
|
if (powerDialog()) {
|
|||
|
|
vm.showPowerPanel({
|
|||
|
|
treeCode: d.obj.treeCode,
|
|||
|
|
id: d.obj.id
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
totalsChange: function(val) {
|
|||
|
|
var chk_count = val.length;
|
|||
|
|
this.checked_total_all = chk_count === this.totals.length;
|
|||
|
|
this.indeterminate = chk_count > 0 && chk_count < this.totals.length;
|
|||
|
|
},
|
|||
|
|
toggleTotals: function(val) {
|
|||
|
|
this.checked_total_index = val
|
|||
|
|
? this.totals.reduce(function(o, v, i) {
|
|||
|
|
o.push(i);
|
|||
|
|
return o;
|
|||
|
|
}, [])
|
|||
|
|
: [];
|
|||
|
|
|
|||
|
|
this.indeterminate = false;
|
|||
|
|
},
|
|||
|
|
//权限BeGing
|
|||
|
|
userGroupOn: function() {
|
|||
|
|
this.checkedGroup = [];
|
|||
|
|
for (var i = 0; i < this.allUserGroup.length; i++) {
|
|||
|
|
var d = this.allUserGroup[i];
|
|||
|
|
this.checkedGroup.push(d.id);
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
userGroupOff: function() {
|
|||
|
|
this.checkedGroup = [];
|
|||
|
|
this.checkedGroup.shift();
|
|||
|
|
},
|
|||
|
|
userGroupSubmit: function() {
|
|||
|
|
setGroupPower({
|
|||
|
|
usergArr: vm.checkedGroup.join(";"),
|
|||
|
|
treeCode: this.curTreeCode.treeCode,
|
|||
|
|
id: this.curTreeCode.id
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
showPowerPanel: function(obj) {
|
|||
|
|
this.powerPanel = true;
|
|||
|
|
this.curTreeCode = obj;
|
|||
|
|
},
|
|||
|
|
//权限End
|
|||
|
|
filteColsNode: function(value, data) {
|
|||
|
|
return data.nodetype !== "formula";
|
|||
|
|
},
|
|||
|
|
addNewCol: function() {
|
|||
|
|
this.zx_colName = this.i18n.js.newNode;
|
|||
|
|
this.zx_colValue = "";
|
|||
|
|
this.formulaType = "defined";
|
|||
|
|
this.check_cols = [];
|
|||
|
|
},
|
|||
|
|
editCol: function(item) {
|
|||
|
|
this.zx_colName = item.name;
|
|||
|
|
this.zx_colValue = item.code;
|
|||
|
|
this.formulaType = item.formulaType;
|
|||
|
|
this.check_cols = item.detail;
|
|||
|
|
},
|
|||
|
|
colsDel: function() {},
|
|||
|
|
colsFormulaDel: function(index) {
|
|||
|
|
this.check_cols.splice(index, 1);
|
|||
|
|
for (var i = 0; i < this.check_cols.length; i++) {
|
|||
|
|
this.check_cols[i].key = this.getABC(i);
|
|||
|
|
}
|
|||
|
|
var len = vm.getABC(i);
|
|||
|
|
if (this.zx_colValue.indexOf("+" + len) !== -1) {
|
|||
|
|
this.zx_colValue.replace("+" + len, "");
|
|||
|
|
} else if (this.zx_colValue.indexOf(len + "+") !== -1) {
|
|||
|
|
this.zx_colValue.replace(len + "+", "");
|
|||
|
|
} else if (this.zx_colValue.indexOf(len) !== -1) {
|
|||
|
|
this.zx_colValue.replace(len, "");
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
colsSave: function() {
|
|||
|
|
var obj = {
|
|||
|
|
name: vm.zx_colName,
|
|||
|
|
label: vm.zx_colName,
|
|||
|
|
tid: vm.t_num++,
|
|||
|
|
ptid: "",
|
|||
|
|
formulaType: vm.formulaType,
|
|||
|
|
code: vm.zx_colValue,
|
|||
|
|
nodetype: "formula",
|
|||
|
|
detail: vm.check_cols
|
|||
|
|
};
|
|||
|
|
if (this.check_cols_index == -1) {
|
|||
|
|
this.cols.push(obj);
|
|||
|
|
this.$refs.x_tree.append(obj);
|
|||
|
|
this.check_cols_index = this.cols.length - 1;
|
|||
|
|
} else {
|
|||
|
|
this.cols[vm.check_cols_index] = obj;
|
|||
|
|
vm.$refs.x_tree.append(obj);
|
|||
|
|
this.cols.push("");
|
|||
|
|
this.cols.pop();
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
checkEvent: function(data, node, tree) {
|
|||
|
|
var nt = data.nodetype,
|
|||
|
|
np,
|
|||
|
|
npp;
|
|||
|
|
switch (nt) {
|
|||
|
|
case "property_value":
|
|||
|
|
np = node.parent;
|
|||
|
|
npp = np.parent;
|
|||
|
|
break;
|
|||
|
|
case "property":
|
|||
|
|
return false;
|
|||
|
|
break;
|
|||
|
|
case "dev":
|
|||
|
|
return false;
|
|||
|
|
break;
|
|||
|
|
case "dev_type":
|
|||
|
|
return false;
|
|||
|
|
break;
|
|||
|
|
case "col_defined":
|
|||
|
|
return false;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
var dpp = JSON.parse(JSON.stringify(npp.data));
|
|||
|
|
var dp = JSON.parse(JSON.stringify(np.data));
|
|||
|
|
var d = JSON.parse(JSON.stringify(data));
|
|||
|
|
dp.children = [];
|
|||
|
|
dpp.children = [];
|
|||
|
|
var vm = this;
|
|||
|
|
var obj = {
|
|||
|
|
key: vm.getABC(vm.check_cols.length),
|
|||
|
|
nodes: [dpp, dp, d],
|
|||
|
|
code:
|
|||
|
|
"[" +
|
|||
|
|
dpp.code +
|
|||
|
|
"]" +
|
|||
|
|
"_&_" +
|
|||
|
|
"[" +
|
|||
|
|
dp.code +
|
|||
|
|
"]" +
|
|||
|
|
"_&_" +
|
|||
|
|
"[" +
|
|||
|
|
d.code +
|
|||
|
|
"]"
|
|||
|
|
};
|
|||
|
|
if (!this.zx_colValue) {
|
|||
|
|
this.zx_colValue = obj.key;
|
|||
|
|
} else {
|
|||
|
|
this.zx_colValue += "+" + obj.key;
|
|||
|
|
}
|
|||
|
|
this.check_cols.push(obj);
|
|||
|
|
},
|
|||
|
|
getABC: function(index) {
|
|||
|
|
var arr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""),
|
|||
|
|
length = arr.length,
|
|||
|
|
r = arr[index % length],
|
|||
|
|
result = r,
|
|||
|
|
l = Math.floor(index / length);
|
|||
|
|
for (var i = 0; i < l; i++) {
|
|||
|
|
result += r;
|
|||
|
|
}
|
|||
|
|
return result;
|
|||
|
|
},
|
|||
|
|
/* 添加公式列*/
|
|||
|
|
formulaResetName: function() {},
|
|||
|
|
formulaResetFormula: function() {},
|
|||
|
|
formulaTypeChange: function() {},
|
|||
|
|
/*报表文件管理*/
|
|||
|
|
reportReName: function(item) {
|
|||
|
|
if (item.rename == false) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
//没有改动的情况下
|
|||
|
|
if (this.oldFileName == item.label) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
var fn = function(node, addobj) {
|
|||
|
|
vm.newFile = false;
|
|||
|
|
vm.oldFileName=""
|
|||
|
|
};
|
|||
|
|
var param = {
|
|||
|
|
operateFlag: 1,
|
|||
|
|
name: item.label,
|
|||
|
|
treeCode: item.treeCode
|
|||
|
|
};
|
|||
|
|
if (!param.name) {
|
|||
|
|
param.name = new Date().getTime();
|
|||
|
|
}
|
|||
|
|
vm.timerNo = setTimeout(function() {
|
|||
|
|
auReport(param, param, fn, function() {
|
|||
|
|
item.rename = true;
|
|||
|
|
});
|
|||
|
|
}, 80);
|
|||
|
|
},
|
|||
|
|
reInit: function() {
|
|||
|
|
var report = this.fileSelectedReport;
|
|||
|
|
if (report.sourceType == 3) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
if (!report) {
|
|||
|
|
vm.$notify({
|
|||
|
|
title: this.i18n.js.err,
|
|||
|
|
message: this.i18n.js.uncheckReport,
|
|||
|
|
type: "error"
|
|||
|
|
});
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
if (report.type == 0) {
|
|||
|
|
this.checkedFiles = this.fileSelectedReport.children;
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
this.$msgbox({
|
|||
|
|
message: this.i18n.js.mstotr,
|
|||
|
|
title: this.i18n.js.tip,
|
|||
|
|
type: "info",
|
|||
|
|
showCancelButton: true,
|
|||
|
|
confirmButtonText: this.i18n.js.ok,
|
|||
|
|
cancelButtonText: this.i18n.js.cancel,
|
|||
|
|
callback: function(action, instance) {
|
|||
|
|
if (action == "confirm") {
|
|||
|
|
vm.time_tree = [];
|
|||
|
|
getReportDetail(
|
|||
|
|
{
|
|||
|
|
treeCode: report.treeCode
|
|||
|
|
},
|
|||
|
|
function(report_defail) {
|
|||
|
|
var data = JSON.parse(report_defail);
|
|||
|
|
vm.dev_tree = [];
|
|||
|
|
vm.cols_width = [];
|
|||
|
|
reiniting = true;
|
|||
|
|
for (var k in data.vm) {
|
|||
|
|
if (k !== "table") {
|
|||
|
|
vm[k] = data.vm[k];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
vm.initOption(data.vm); //初始化勾选
|
|||
|
|
vm.reportFilesPanel = false;
|
|||
|
|
vm.newFile = false;
|
|||
|
|
vm.table = data.vm.table;
|
|||
|
|
vm.tb_title = data.vm.tb_title;
|
|||
|
|
vm.form = data.vm.tb_title;
|
|||
|
|
setTimeout(function() {
|
|||
|
|
reiniting = false;
|
|||
|
|
vm.refreshDevTree();
|
|||
|
|
vm.$nextTick(function() {
|
|||
|
|
vm.form = data.vm.tb_title; //解决打开报表第一次修改不成功bug
|
|||
|
|
vm.radio_form = "tb_title";
|
|||
|
|
vm.returnBack("", true);
|
|||
|
|
});
|
|||
|
|
}, 200);
|
|||
|
|
}
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
initOption: function(d) {
|
|||
|
|
d === undefined && (d = vm);
|
|||
|
|
if (d.ck_sx === undefined) {
|
|||
|
|
this.setCk_sx();
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
setCk_sx: function() {
|
|||
|
|
this.ck_sx = !!(
|
|||
|
|
this.sketch.value == "yx" ||
|
|||
|
|
this.sketch.value == "dd" ||
|
|||
|
|
this.sketch.value == "bb" ||
|
|||
|
|
this.sketch.value == "cr"
|
|||
|
|
);
|
|||
|
|
},
|
|||
|
|
goStyle: function() {
|
|||
|
|
this.substep = vm.substep + 100;
|
|||
|
|
this.setCk_sx();
|
|||
|
|
this.changeTbtitleName(this.sketch);
|
|||
|
|
},
|
|||
|
|
getDevKeys: function() {
|
|||
|
|
var nodes = this.checked_node.nodes,
|
|||
|
|
fn = function(arr) {
|
|||
|
|
return arr.reduce(function(o, v, i) {
|
|||
|
|
if (v.nodetype == "dev_type" && v.children.length > 0) {
|
|||
|
|
Array.prototype.push.apply(o, fn(v.children));
|
|||
|
|
} else if (v.nodetype == "dev") {
|
|||
|
|
o.push(v.code);
|
|||
|
|
}
|
|||
|
|
return o;
|
|||
|
|
}, []);
|
|||
|
|
},
|
|||
|
|
keys = fn(nodes);
|
|||
|
|
getCdInfo({
|
|||
|
|
devTpName: keys.join(";"),
|
|||
|
|
type: vm.sketch.cdtype || vm.sketch.value
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
returnBack: function(event, flag) {
|
|||
|
|
var vm = this;
|
|||
|
|
this.isNew = false;
|
|||
|
|
var num = this.substep % 100;
|
|||
|
|
switch (vm.sketch.value) {
|
|||
|
|
case "yx":
|
|||
|
|
case "dd":
|
|||
|
|
case "bb":
|
|||
|
|
case "cr":
|
|||
|
|
this.getDevKeys();
|
|||
|
|
// this.substep = num+4;
|
|||
|
|
break;
|
|||
|
|
case "sy":
|
|||
|
|
getProceeds(vm.checked_node.nodes[0].devCode);
|
|||
|
|
// this.substep = num+4;
|
|||
|
|
break;
|
|||
|
|
case "tj":
|
|||
|
|
this.getDevKeys();
|
|||
|
|
// this.substep = num+4
|
|||
|
|
break;
|
|||
|
|
case "db":
|
|||
|
|
this.getDevKeys();
|
|||
|
|
// this.substep = num+4;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
if (!flag) {
|
|||
|
|
this.substep = num + 400;
|
|||
|
|
this.step = true;
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
update_checkedFiles: function() {
|
|||
|
|
this.checkedFiles.push("");
|
|||
|
|
this.checkedFiles.pop();
|
|||
|
|
},
|
|||
|
|
fileClick: function(data, node, nodes) {
|
|||
|
|
this.checkedFiles = node.parent.data.children || node.parent.data;
|
|||
|
|
this.fileSelectedReport = data;
|
|||
|
|
this.update_checkedFiles();
|
|||
|
|
},
|
|||
|
|
reportDelete: function() {
|
|||
|
|
var report = this.fileSelectedReport;
|
|||
|
|
if (!report.code) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
this.deleteLoading = true;
|
|||
|
|
var text = "";
|
|||
|
|
if (report && report.type == "0" && report.code) {
|
|||
|
|
text = this.i18n.js.delreports;
|
|||
|
|
} else if (report && report.type == "1" && report.code) {
|
|||
|
|
text = this.i18n.js.delreport;
|
|||
|
|
}
|
|||
|
|
this.$confirm(text, this.i18n.js.tip, {
|
|||
|
|
confirmButtonText: this.i18n.js.ok,
|
|||
|
|
cancelButtonText: this.i18n.js.cancel,
|
|||
|
|
type: "info",
|
|||
|
|
callback: function(action, instance) {
|
|||
|
|
if (action == "confirm") {
|
|||
|
|
deleteReport(report, function(success) {
|
|||
|
|
if (success) {
|
|||
|
|
var self = vm.$refs.report_tree.getNode(report);
|
|||
|
|
var _rt = report.treePCode;
|
|||
|
|
var _p = self.parent;
|
|||
|
|
vm.$refs.report_tree.remove(report);
|
|||
|
|
vm.fileSelectedReport = {};
|
|||
|
|
}
|
|||
|
|
vm.deleteLoading = false;
|
|||
|
|
});
|
|||
|
|
} else {
|
|||
|
|
vm.deleteLoading = false;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
addFiles: function() {
|
|||
|
|
if (timeout !== 0) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
timeout = setTimeout(function() {
|
|||
|
|
timeout = 0;
|
|||
|
|
}, outtime);
|
|||
|
|
if (vm.newFiles == false) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
if (!this.fileRename.trim()) {
|
|||
|
|
this.fileRename = this.i18n.js.newfiles + new Date().getTime();
|
|||
|
|
}
|
|||
|
|
var param = {
|
|||
|
|
treePCode: "",
|
|||
|
|
name: "",
|
|||
|
|
type: 0,
|
|||
|
|
operateFlag: this.newFiles == false ? 1 : 0
|
|||
|
|
};
|
|||
|
|
var label = this.fileRename;
|
|||
|
|
var path = [];
|
|||
|
|
var node = {};
|
|||
|
|
param.name = label;
|
|||
|
|
param.sourceType = 1;
|
|||
|
|
if (this.checkedFiles[0]) {
|
|||
|
|
path = this.checkedFiles[0].path.split("/");
|
|||
|
|
param.treePCode = this.checkedFiles[0].treePCode;
|
|||
|
|
} else {
|
|||
|
|
if (this.fileSelectedReport && this.fileSelectedReport.type == 0) {
|
|||
|
|
param.treePCode = this.fileSelectedReport.treeCode;
|
|||
|
|
} else if (
|
|||
|
|
this.fileSelectedReport &&
|
|||
|
|
this.fileSelectedReport.type == 1
|
|||
|
|
) {
|
|||
|
|
vm.$notify({
|
|||
|
|
title: this.i18n.js.tip,
|
|||
|
|
message: this.i18n.js.canttochild,
|
|||
|
|
type: "warning"
|
|||
|
|
});
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (path.length < 2) {
|
|||
|
|
path = label;
|
|||
|
|
} else {
|
|||
|
|
path[path.length - 1] = label;
|
|||
|
|
path = path.join("/");
|
|||
|
|
}
|
|||
|
|
node = {
|
|||
|
|
label: label,
|
|||
|
|
code: "files" + vm.t_num++,
|
|||
|
|
type: 0,
|
|||
|
|
path: path,
|
|||
|
|
treePCode: param.treePCode || "",
|
|||
|
|
children: []
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
var fn = function(node, addobj) {
|
|||
|
|
node.treeCode = addobj.treeCode;
|
|||
|
|
vm.checkedFiles.push(node);
|
|||
|
|
vm.fileRename = "";
|
|||
|
|
vm.newFiles = false;
|
|||
|
|
};
|
|||
|
|
this.save_loading = true;
|
|||
|
|
auReport(param, node, fn);
|
|||
|
|
},
|
|||
|
|
updateFile: function() {
|
|||
|
|
if (timeout !== 0) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
timeout = setTimeout(function() {
|
|||
|
|
timeout = 0;
|
|||
|
|
}, outtime);
|
|||
|
|
if (this.newFile || this.newFiles) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (
|
|||
|
|
!this.fileSelectedReport.treeCode ||
|
|||
|
|
this.fileSelectedReport.type != 1
|
|||
|
|
) {
|
|||
|
|
vm.$notify({
|
|||
|
|
title: this.i18n.js.tip,
|
|||
|
|
message: this.i18n.js.rptunchkd,
|
|||
|
|
type: "warning"
|
|||
|
|
});
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
this.$confirm(
|
|||
|
|
this.i18n.js.suretr + '"' + this.fileSelectedReport.label + '" ?',
|
|||
|
|
this.i18n.js.tip,
|
|||
|
|
{
|
|||
|
|
confirmButtonText: this.i18n.js.ok,
|
|||
|
|
cancelButtonText: this.i18n.js.cancel,
|
|||
|
|
type: "info",
|
|||
|
|
callback: function(action, instance) {
|
|||
|
|
if (action == "confirm") {
|
|||
|
|
var obj = JSON.parse(
|
|||
|
|
JSON.stringify({
|
|||
|
|
vm: vm.$data
|
|||
|
|
})
|
|||
|
|
);
|
|||
|
|
vm.deleteOtherDevHasCD();
|
|||
|
|
deleteReportFileItem(obj);
|
|||
|
|
auReport({
|
|||
|
|
treeCode: vm.fileSelectedReport.treeCode,
|
|||
|
|
treePCode: vm.fileSelectedReport.treePCode,
|
|||
|
|
name: vm.fileSelectedReport.label,
|
|||
|
|
type: 1,
|
|||
|
|
fileDetail: JSON.stringify(obj),
|
|||
|
|
operateFlag: 1
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
);
|
|||
|
|
},
|
|||
|
|
deleteOtherDevHasCD: function() {
|
|||
|
|
for (var k in vm.devHasCD) {
|
|||
|
|
for (var key in vm.devHasCD[k]) {
|
|||
|
|
if (vm.devHasCD[k][key] !== true) {
|
|||
|
|
// delete vm.devHasCD[k][key]
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
addFile: function() {
|
|||
|
|
if (timeout !== 0) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
timeout = setTimeout(function() {
|
|||
|
|
timeout = 0;
|
|||
|
|
}, outtime);
|
|||
|
|
if (vm.newFile == false) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
if (!this.fileRename.trim()) {
|
|||
|
|
this.fileRename = this.i18n.js.newport + new Date().getTime();
|
|||
|
|
}
|
|||
|
|
var obj = JSON.parse(
|
|||
|
|
JSON.stringify({
|
|||
|
|
vm: vm.$data
|
|||
|
|
})
|
|||
|
|
);
|
|||
|
|
vm.deleteOtherDevHasCD();
|
|||
|
|
deleteReportFileItem(obj);
|
|||
|
|
var param = {
|
|||
|
|
treePCode: "",
|
|||
|
|
name: "",
|
|||
|
|
type: 1,
|
|||
|
|
fileDetail: JSON.stringify(obj),
|
|||
|
|
operateFlag: vm.newFile ? 0 : 1
|
|||
|
|
};
|
|||
|
|
var path = [];
|
|||
|
|
var label = this.fileRename;
|
|||
|
|
param.name = label;
|
|||
|
|
|
|||
|
|
if (this.checkedFiles[0]) {
|
|||
|
|
path = this.checkedFiles[0].path.split("/");
|
|||
|
|
param.treePCode = this.checkedFiles[0].treePCode;
|
|||
|
|
} else {
|
|||
|
|
if (this.fileSelectedReport && this.fileSelectedReport.type == 0) {
|
|||
|
|
param.treePCode = this.fileSelectedReport.treeCode;
|
|||
|
|
} else if (
|
|||
|
|
this.fileSelectedReport &&
|
|||
|
|
this.fileSelectedReport.type == 1
|
|||
|
|
) {
|
|||
|
|
vm.$notify({
|
|||
|
|
title: this.i18n.js.tip,
|
|||
|
|
message: this.i18n.js.bntjwbbzj,
|
|||
|
|
type: "warning"
|
|||
|
|
});
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (path.length < 2) {
|
|||
|
|
path = label;
|
|||
|
|
} else {
|
|||
|
|
path[path.length - 1] = label;
|
|||
|
|
path = path.join("/");
|
|||
|
|
}
|
|||
|
|
var node = {
|
|||
|
|
label: label,
|
|||
|
|
code: "file" + vm.t_num++,
|
|||
|
|
type: 1,
|
|||
|
|
treePCode: param.treePCode || "",
|
|||
|
|
path: path
|
|||
|
|
};
|
|||
|
|
var fn = function(node, addobj) {
|
|||
|
|
node.treeCode = addobj.treeCode;
|
|||
|
|
vm.checkedFiles.push(node);
|
|||
|
|
vm.fileRename = "";
|
|||
|
|
vm.newFile = false;
|
|||
|
|
};
|
|||
|
|
this.save_loading = true;
|
|||
|
|
auReport(param, node, fn);
|
|||
|
|
},
|
|||
|
|
reportPanelDblClick: function(report) {
|
|||
|
|
if (report.type == "0") {
|
|||
|
|
if (!report.children) {
|
|||
|
|
report.children = [];
|
|||
|
|
}
|
|||
|
|
this.checkedFiles = report.children;
|
|||
|
|
this.update_checkedFiles();
|
|||
|
|
} else if (
|
|||
|
|
report.sourceType != "3" &&
|
|||
|
|
report.type == "1" &&
|
|||
|
|
!this.isSave
|
|||
|
|
) {
|
|||
|
|
this.reInit();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// if(report.filetype=='mode'){
|
|||
|
|
// tempInit();
|
|||
|
|
// this.reportFilesPanel=false;
|
|||
|
|
// this.outerVisible1=true;
|
|||
|
|
// }
|
|||
|
|
},
|
|||
|
|
scrollBottom: function() {
|
|||
|
|
var vm = this;
|
|||
|
|
this.$nextTick(function() {
|
|||
|
|
var div = vm.$el.querySelector("#fileScroll");
|
|||
|
|
div.scrollTop = div.scrollHeight;
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
addNewFiles: function() {
|
|||
|
|
this.newFiles = true;
|
|||
|
|
this.fileRename = "";
|
|||
|
|
this.scrollBottom();
|
|||
|
|
},
|
|||
|
|
addNewFile: function() {
|
|||
|
|
this.newFile = true;
|
|||
|
|
this.fileRename = "";
|
|||
|
|
this.scrollBottom();
|
|||
|
|
},
|
|||
|
|
reportRename: function() {
|
|||
|
|
this.oldFileName=this.fileSelectedReport.label;
|
|||
|
|
if (this.fileSelectedReport) {
|
|||
|
|
vm.input_focus = true;
|
|||
|
|
vm.$set(this.fileSelectedReport, "rename", true);
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
reportPanelClick: function(report) {
|
|||
|
|
this.$refs.report_tree.setCurrentKey(report.code);
|
|||
|
|
this.fileSelectedReport = report;
|
|||
|
|
if (!this.isSave) {
|
|||
|
|
this.fileName = report.path;
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
/*树*/
|
|||
|
|
addFormula: function() {
|
|||
|
|
this.cols_type = "father";
|
|||
|
|
this.cols_parent = "";
|
|||
|
|
this.cols_value = "";
|
|||
|
|
this.formule_name = "";
|
|||
|
|
this.formule_value = "";
|
|||
|
|
this.formule_view = "";
|
|||
|
|
this.protree_to_option = [];
|
|||
|
|
this.addNodePanel = true;
|
|||
|
|
},
|
|||
|
|
navBack: function() {
|
|||
|
|
var n = vm.substep;
|
|||
|
|
if (this.sketch_index < 300) {
|
|||
|
|
n = 400 + vm.substep - (vm.substep % 100);
|
|||
|
|
} else if (this.sketch_index == 300) {
|
|||
|
|
n = 300 + vm.substep - (vm.substep % 100);
|
|||
|
|
} else if (this.sketch_index == 400) {
|
|||
|
|
n = 300 + vm.substep - (vm.substep % 100);
|
|||
|
|
}
|
|||
|
|
this.postDev();
|
|||
|
|
getCdInfo({
|
|||
|
|
devTpName: "",
|
|||
|
|
type: vm.sketch.cdtype || vm.sketch.value
|
|||
|
|
});
|
|||
|
|
this.substep = n;
|
|||
|
|
this.step = true;
|
|||
|
|
},
|
|||
|
|
changeAllXNode: function() {
|
|||
|
|
var key = this.text_key;
|
|||
|
|
var oldtxt = this.old_text;
|
|||
|
|
var newtxt = this.new_text;
|
|||
|
|
if (!oldtxt || !newtxt) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
this.changeNodeCode(vm.dev_tree, key, oldtxt, newtxt);
|
|||
|
|
this.refreshDevTree();
|
|||
|
|
},
|
|||
|
|
changeNodeCode: function(arr, key, ot, nt) {
|
|||
|
|
for (var i = 0; i < arr.length; i++) {
|
|||
|
|
var d = arr[i];
|
|||
|
|
if (d[key] && d[key].indexOf(ot) !== -1) {
|
|||
|
|
d[key] = d[key].replace(ot, nt);
|
|||
|
|
}
|
|||
|
|
if (d.children && d.children.length > 0) {
|
|||
|
|
this.changeNodeCode(d.children, key, ot, nt);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
change_input_text: function(data) {
|
|||
|
|
if (data.nodetype == this.checked_dev_node.nodetype) {
|
|||
|
|
this.dev_name_text = data.label;
|
|||
|
|
this.dev_code_text = data.code;
|
|||
|
|
this.dev_e = data.e;
|
|||
|
|
} else {
|
|||
|
|
this.$notify({
|
|||
|
|
title: this.i18n.js.tip,
|
|||
|
|
message: this.i18n.js.notsame
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
editXNode: function(node, data) {
|
|||
|
|
this.edit_node_type = data.nodetype;
|
|||
|
|
var arr = [data];
|
|||
|
|
if (data.nodetype) {
|
|||
|
|
for (var i = 0; i < data.children.length; i++) {
|
|||
|
|
var d = data.children[i]; //测点
|
|||
|
|
arr.push(d);
|
|||
|
|
if (d.children) {
|
|||
|
|
for (var n = 0; n < d.children.length; n++) {
|
|||
|
|
arr.push(d.children[n]);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
this.check_dev = arr;
|
|||
|
|
this.checked_dev_index = 0;
|
|||
|
|
this.checked_dev_node.label = data.label;
|
|||
|
|
this.checked_dev_node.code = data.code;
|
|||
|
|
this.dev_name_text = data.label;
|
|||
|
|
this.dev_code_text = data.code;
|
|||
|
|
this.dev_e = data.e;
|
|||
|
|
this.editNodePanel = true;
|
|||
|
|
},
|
|||
|
|
changeLabel: function() {
|
|||
|
|
this.checked_dev_node.label = this.dev_name_text;
|
|||
|
|
this.checked_dev_node.code = this.dev_code_text;
|
|||
|
|
this.checked_dev_node.e = this.dev_e;
|
|||
|
|
this.refreshDevTree();
|
|||
|
|
},
|
|||
|
|
addXNode: function() {
|
|||
|
|
var data = [];
|
|||
|
|
if (vm && vm.dev_tree) {
|
|||
|
|
data = JSON.stringify(vm.dev_tree);
|
|||
|
|
}
|
|||
|
|
this.x_check = JSON.parse(data);
|
|||
|
|
this.addColPanel = true;
|
|||
|
|
if (this.$refs.col_tree) {
|
|||
|
|
this.$refs.col_tree.filter();
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
refreshDevTree: function() {
|
|||
|
|
this.dev_tree.push("");
|
|||
|
|
this.dev_tree.pop();
|
|||
|
|
},
|
|||
|
|
transposition: function() {
|
|||
|
|
this.cur_report_style =
|
|||
|
|
this.cur_report_style.value == this.report_style[0].value
|
|||
|
|
? this.report_style[1]
|
|||
|
|
: this.report_style[0];
|
|||
|
|
this.refreshDevTree();
|
|||
|
|
},
|
|||
|
|
allowDrag: function() {
|
|||
|
|
return true;
|
|||
|
|
},
|
|||
|
|
allowDrop: function(nodeing, node, type) {
|
|||
|
|
// type:inner/prev/next
|
|||
|
|
this.$refs.x_tree.setCurrentNode(node);
|
|||
|
|
var key = node.key;
|
|||
|
|
var t = true;
|
|||
|
|
switch (0) {
|
|||
|
|
case nodeing.key.indexOf("p_f"):
|
|||
|
|
if (type != "inner") {
|
|||
|
|
t = key.indexOf("p_") == 0;
|
|||
|
|
} else {
|
|||
|
|
t = key.indexOf("d_f") == 0;
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case nodeing.key.indexOf("c_"):
|
|||
|
|
t = key.indexOf("c_") == 0;
|
|||
|
|
break;
|
|||
|
|
case nodeing.key.indexOf("d_"):
|
|||
|
|
if (type != "inner") {
|
|||
|
|
t = key.indexOf("d_") == 0;
|
|||
|
|
} else {
|
|||
|
|
t = key.indexOf("c_") == 0;
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case nodeing.key.indexOf("t_"):
|
|||
|
|
if (type != "inner") {
|
|||
|
|
t = key.indexOf("t_") == 0;
|
|||
|
|
} else {
|
|||
|
|
t = key.indexOf("d_") == 0;
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case nodeing.key.indexOf("p_"):
|
|||
|
|
if (type != "inner") {
|
|||
|
|
t = key.indexOf("p_") == 0;
|
|||
|
|
} else {
|
|||
|
|
t = key.indexOf("t_") == 0;
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case nodeing.key.indexOf("s_"):
|
|||
|
|
if (type != "inner") {
|
|||
|
|
t = key.indexOf("s_") == 0;
|
|||
|
|
} else {
|
|||
|
|
t = key.indexOf("p_") == 0;
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
return t;
|
|||
|
|
},
|
|||
|
|
nodeDrop: function(n, o, s) {
|
|||
|
|
this.refreshDevTree();
|
|||
|
|
var ptid = "";
|
|||
|
|
if (s == "inner") {
|
|||
|
|
ptid = o.data.tid;
|
|||
|
|
} else {
|
|||
|
|
ptid = o.data.ptid;
|
|||
|
|
}
|
|||
|
|
this.$set(n.data, "ptid", ptid);
|
|||
|
|
},
|
|||
|
|
expendDev: function(event, dev) {
|
|||
|
|
//展开到设备这一级
|
|||
|
|
if (dev === undefined) {
|
|||
|
|
dev = this.$refs.x_tree.store.root.childNodes;
|
|||
|
|
}
|
|||
|
|
for (var i = 0; i < dev.length; i++) {
|
|||
|
|
if (dev[i].data.nodetype == "dev") {
|
|||
|
|
dev[i].expanded = false;
|
|||
|
|
} else {
|
|||
|
|
dev[i].expanded = true;
|
|||
|
|
if (dev[i].childNodes.length > 0) {
|
|||
|
|
this.expendDev(event, dev[i].childNodes);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
changePtid: function() {},
|
|||
|
|
deleteNode: function(node, data) {
|
|||
|
|
var c = this.$createElement;
|
|||
|
|
if (data.devType === false) {
|
|||
|
|
this.delete_box = true;
|
|||
|
|
} else {
|
|||
|
|
this.$confirm(this.i18n.js.suredel, this.i18n.js.tip, {
|
|||
|
|
confirmButtonText: this.i18n.js.ok,
|
|||
|
|
cancelButtonText: this.i18n.js.cancel,
|
|||
|
|
type: "warning",
|
|||
|
|
callback: function(action, instance) {
|
|||
|
|
if (action == "confirm") {
|
|||
|
|
vm.$refs.x_tree.remove(node);
|
|||
|
|
vm.refreshDevTree();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
filterXNode: function(value, data) {
|
|||
|
|
if (!value) return true;
|
|||
|
|
return data.label.indexOf(value) !== -1;
|
|||
|
|
},
|
|||
|
|
/*配置*/
|
|||
|
|
makeFormule: function() {
|
|||
|
|
var type = this.cols_type;
|
|||
|
|
var name = this.formule_name;
|
|||
|
|
var code = this.formule_value;
|
|||
|
|
if (!name) {
|
|||
|
|
vm.$notify({
|
|||
|
|
title: this.i18n.js.err,
|
|||
|
|
message: this.i18n.js.inputfeild,
|
|||
|
|
type: "error"
|
|||
|
|
});
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
if (type !== "father") {
|
|||
|
|
if (!code) {
|
|||
|
|
vm.$notify({
|
|||
|
|
title: this.i18n.js.err,
|
|||
|
|
message: this.i18n.js.inputvalue,
|
|||
|
|
type: "error"
|
|||
|
|
});
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
this.dev_tree.push({
|
|||
|
|
label: name,
|
|||
|
|
name: name,
|
|||
|
|
nodetype:
|
|||
|
|
type == "father" ? "fml_type" : type == "code" ? "fml" : "fml_string",
|
|||
|
|
code: code,
|
|||
|
|
tid: type !== "father" ? "p_f" + vm.t_num++ : "d_f" + vm.t_num++
|
|||
|
|
});
|
|||
|
|
this.addNodePanel = false;
|
|||
|
|
},
|
|||
|
|
formulAddCode: function() {
|
|||
|
|
var v = this.formule_value;
|
|||
|
|
var fv = this.formule_view;
|
|||
|
|
var arr = this.protree_to_option;
|
|||
|
|
var index = this.cols_value;
|
|||
|
|
var code;
|
|||
|
|
if (this.sketch.value == "sy") {
|
|||
|
|
code = "[" + arr[index].code + "]";
|
|||
|
|
} else {
|
|||
|
|
code =
|
|||
|
|
"[" +
|
|||
|
|
this.devtree_to_option[vm.cols_parent].code +
|
|||
|
|
";" +
|
|||
|
|
arr[index].code +
|
|||
|
|
"]";
|
|||
|
|
}
|
|||
|
|
if (v) {
|
|||
|
|
var last = v[v.length - 1];
|
|||
|
|
if (
|
|||
|
|
last === "+" ||
|
|||
|
|
last === "-" ||
|
|||
|
|
last === "*" ||
|
|||
|
|
last === "/" ||
|
|||
|
|
last === "("
|
|||
|
|
) {
|
|||
|
|
this.formule_value = v + code;
|
|||
|
|
this.formule_view = fv + "[" + arr[index].label + "]";
|
|||
|
|
} else {
|
|||
|
|
vm.$notify({
|
|||
|
|
title: this.i18n.js.err,
|
|||
|
|
message: this.i18n.js.inputoperator,
|
|||
|
|
type: "error"
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
this.formule_value = code;
|
|||
|
|
this.formule_view = "[" + arr[index].label + "]";
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
formulAddNum: function(n) {
|
|||
|
|
var v = this.formule_value;
|
|||
|
|
var fv = this.formule_view;
|
|||
|
|
if (v) {
|
|||
|
|
var last = v[v.length - 1];
|
|||
|
|
if (
|
|||
|
|
last === "+" ||
|
|||
|
|
last === "-" ||
|
|||
|
|
last === "*" ||
|
|||
|
|
last === "/" ||
|
|||
|
|
last === "("
|
|||
|
|
) {
|
|||
|
|
this.formule_value = v + n;
|
|||
|
|
this.formule_view = fv + n;
|
|||
|
|
} else if (Number(last)) {
|
|||
|
|
this.formule_value = v + n;
|
|||
|
|
this.formule_view = fv + n;
|
|||
|
|
} else {
|
|||
|
|
vm.$notify({
|
|||
|
|
title: this.i18n.js.err,
|
|||
|
|
message: this.i18n.js.inputoperator,
|
|||
|
|
type: "error"
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
this.formule_value = n;
|
|||
|
|
this.formule_view = n;
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
formulAddPrth: function(p) {
|
|||
|
|
var v = this.formule_value;
|
|||
|
|
var fv = this.formule_view;
|
|||
|
|
v = !v ? "" : v;
|
|||
|
|
fv = !fv ? "" : fv;
|
|||
|
|
if (p === "(") {
|
|||
|
|
if (
|
|||
|
|
!v ||
|
|||
|
|
v[v.length - 1] === "+" ||
|
|||
|
|
v[v.length - 1] === "-" ||
|
|||
|
|
v[v.length - 1] === "*" ||
|
|||
|
|
v[v.length - 1] === "/" ||
|
|||
|
|
v[v.length - 1] === "("
|
|||
|
|
) {
|
|||
|
|
this.formule_value = v + "(";
|
|||
|
|
this.formule_view = fv + "(";
|
|||
|
|
} else {
|
|||
|
|
vm.$notify({
|
|||
|
|
title: this.i18n.js.err,
|
|||
|
|
message: this.i18n.js.inputoperator,
|
|||
|
|
type: "error"
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
if (
|
|||
|
|
!v ||
|
|||
|
|
v[v.length - 1] === "+" ||
|
|||
|
|
v[v.length - 1] === "-" ||
|
|||
|
|
v[v.length - 1] === "*" ||
|
|||
|
|
v[v.length - 1] === "/" ||
|
|||
|
|
v[v.length - 1] === "("
|
|||
|
|
) {
|
|||
|
|
vm.$notify({
|
|||
|
|
title: this.i18n.js.err,
|
|||
|
|
message: this.i18n.js.inputnum,
|
|||
|
|
type: "error"
|
|||
|
|
});
|
|||
|
|
} else {
|
|||
|
|
this.formule_value = v + ")";
|
|||
|
|
this.formule_view = fv + ")";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
formuleBack: function() {
|
|||
|
|
var v = this.formule_value;
|
|||
|
|
var fv = this.formule_view;
|
|||
|
|
if (v) {
|
|||
|
|
var last = v[v.length - 1];
|
|||
|
|
if (
|
|||
|
|
last === "+" ||
|
|||
|
|
last === "-" ||
|
|||
|
|
last === "*" ||
|
|||
|
|
last === "/" ||
|
|||
|
|
last === "(" ||
|
|||
|
|
last === ")"
|
|||
|
|
) {
|
|||
|
|
this.formule_value = v.substring(0, v.length - 1);
|
|||
|
|
this.formule_view = fv.substring(0, fv.length - 1);
|
|||
|
|
} else {
|
|||
|
|
var vl = this.formule_value.split(/[\+\-\*\/\(\)]/);
|
|||
|
|
this.formule_value = v.substring(
|
|||
|
|
0,
|
|||
|
|
v.length - vl[vl.length - 1].length
|
|||
|
|
);
|
|||
|
|
var ve = this.formule_view.split(/[\+\-\*\/\(\)]/);
|
|||
|
|
this.formule_view = fv.substring(
|
|||
|
|
0,
|
|||
|
|
fv.length - ve[ve.length - 1].length
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
formulAddOperator: function(o) {
|
|||
|
|
var v = this.formule_value;
|
|||
|
|
var fv = this.formule_view;
|
|||
|
|
if (v) {
|
|||
|
|
var last = v[v.length - 1];
|
|||
|
|
if (
|
|||
|
|
last === "+" ||
|
|||
|
|
last === "-" ||
|
|||
|
|
last === "*" ||
|
|||
|
|
last === "/" ||
|
|||
|
|
last === "("
|
|||
|
|
) {
|
|||
|
|
vm.$notify({
|
|||
|
|
title: this.i18n.js.err,
|
|||
|
|
message: this.i18n.js.inputnum,
|
|||
|
|
type: "error"
|
|||
|
|
});
|
|||
|
|
} else {
|
|||
|
|
this.formule_value = v + o;
|
|||
|
|
this.formule_view = fv + o;
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
vm.$notify({
|
|||
|
|
title: this.i18n.js.err,
|
|||
|
|
message: this.i18n.js.inputnum,
|
|||
|
|
type: "error"
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
/*向导*/
|
|||
|
|
reInitSDate: function() {
|
|||
|
|
this.report_s_month = 1;
|
|||
|
|
this.report_s_day = 1;
|
|||
|
|
this.report_s_hours = 0;
|
|||
|
|
this.report_interval = "1";
|
|||
|
|
},
|
|||
|
|
reIniCheckNode: function() {
|
|||
|
|
this.checked_node = {
|
|||
|
|
nodes: []
|
|||
|
|
};
|
|||
|
|
},
|
|||
|
|
expendChecked: function(event) {
|
|||
|
|
var dev = this.$refs.dev_tree.store.root.childNodes;
|
|||
|
|
this.expendDev(event, dev);
|
|||
|
|
},
|
|||
|
|
checkedchecked: function(node) {
|
|||
|
|
var n = this.$refs.dev_tree.getNode(node);
|
|||
|
|
this.checkedAll(n.childNodes, n.checked);
|
|||
|
|
},
|
|||
|
|
checkedAll: function(dev, checked) {
|
|||
|
|
//选中到设备这一级
|
|||
|
|
if (dev === undefined) {
|
|||
|
|
dev = this.$refs.dev_tree.store.root.childNodes;
|
|||
|
|
}
|
|||
|
|
if (checked === undefined) {
|
|||
|
|
checked = !this.check_all;
|
|||
|
|
}
|
|||
|
|
for (var i = 0; i < dev.length; i++) {
|
|||
|
|
if (dev[i].data.devType !== undefined && dev[i].visible) {
|
|||
|
|
dev[i].checked = checked;
|
|||
|
|
}
|
|||
|
|
if (dev[i].childNodes.length > 0) {
|
|||
|
|
this.checkedAll(dev[i].childNodes, checked);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
clearDevCD: function() {
|
|||
|
|
var tree = this.$refs.dev_tree;
|
|||
|
|
var dev = tree.getCheckedNodes();
|
|||
|
|
for (var i = 0; i < dev.length; i++) {
|
|||
|
|
var d = dev[i];
|
|||
|
|
if (d.nodetype === "dev") {
|
|||
|
|
d.children.map(function(v) {
|
|||
|
|
(function(v) {
|
|||
|
|
setTimeout(function() {
|
|||
|
|
tree.remove(v);
|
|||
|
|
}, 10);
|
|||
|
|
})(v);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
checkedDel: function() {
|
|||
|
|
var dev = this.$refs.dev_tree.getCheckedNodes();
|
|||
|
|
for (var i = 0; i < dev.length; i++) {
|
|||
|
|
this.$refs.dev_tree.remove(dev[i]);
|
|||
|
|
delete this.checked_node[dev[i].treeCode];
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
noneChild: function() {
|
|||
|
|
this.checkCDIsReal();
|
|||
|
|
this.cd_tid=getCheckedNodeTid(this.checked_node.nodes)
|
|||
|
|
var fn = function(nodes) {
|
|||
|
|
var result = true;
|
|||
|
|
for (var i = 0; i < nodes.length; i++) {
|
|||
|
|
if (nodes[i].nodetype === "dev_type") {
|
|||
|
|
result = fn(nodes[i].children);
|
|||
|
|
} else if (nodes[i].nodetype === "dev" && !nodes[i].children.length) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
if (!result) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return result;
|
|||
|
|
};
|
|||
|
|
if (!fn(this.checked_node.nodes)) {
|
|||
|
|
this.$alert(this.i18n.js.nywtjcd, this.i18n.js.tip, {
|
|||
|
|
confirmButtonText: this.i18n.js.ok,
|
|||
|
|
callback: function(action, instance) {}
|
|||
|
|
});
|
|||
|
|
} else {
|
|||
|
|
//处理多选问题
|
|||
|
|
// if(this.checked_total_index.length>0){
|
|||
|
|
// if(this.totals.length==this.checked_total_index.length){
|
|||
|
|
// this.checked_total_all=true;
|
|||
|
|
// this.indeterminate=false;
|
|||
|
|
// }else{
|
|||
|
|
// this.checked_total_all=false;
|
|||
|
|
// this.indeterminate=true;
|
|||
|
|
// }
|
|||
|
|
|
|||
|
|
// }else{
|
|||
|
|
// this.checked_total_all=false;
|
|||
|
|
// this.indeterminate=false;
|
|||
|
|
// }
|
|||
|
|
this.checked_total_all = false;
|
|||
|
|
this.indeterminate = false;
|
|||
|
|
this.checked_total_index = [];
|
|||
|
|
//下一步
|
|||
|
|
vm.substep = vm.substep + 100;
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
statisticFinish: function() {
|
|||
|
|
this.checkCDIsReal();
|
|||
|
|
var property = this.$refs.c_tree.getCheckedNodes();
|
|||
|
|
if (property.length == 0) {
|
|||
|
|
this.$alert(this.i18n.js.qxztjcd, this.i18n.js.err, {
|
|||
|
|
confirmButtonText: this.i18n.js.ok,
|
|||
|
|
callback: function() {}
|
|||
|
|
});
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
//将测点编码存入属性
|
|||
|
|
property.map(function(v, i, a) {
|
|||
|
|
if (v.nodetype == "property_value") {
|
|||
|
|
var ppty = property.filter(function(p, i, a) {
|
|||
|
|
return p.tid == v.ptid;
|
|||
|
|
})[0];
|
|||
|
|
v.pCode = ppty.code;
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
//统计*y轴树
|
|||
|
|
var obj = this.propertyDataOp(property, vm.t_num++, "");
|
|||
|
|
this.time_tree = obj.arr;
|
|||
|
|
|
|||
|
|
//统计*x轴树
|
|||
|
|
this.createXTree();
|
|||
|
|
|
|||
|
|
this.step = false;
|
|||
|
|
this.openedFile = {};
|
|||
|
|
},
|
|||
|
|
totalFinish: function() {
|
|||
|
|
this.createYTree();
|
|||
|
|
for (var i = 0; i < this.checked_total.length; i++) {
|
|||
|
|
var item = this.checked_total[i];
|
|||
|
|
this.time_tree.push({
|
|||
|
|
label: item.label,
|
|||
|
|
code: item.value,
|
|||
|
|
tid: "l_" + this.t_num++
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
this.createXTree();
|
|||
|
|
this.step = false;
|
|||
|
|
this.openedFile = {};
|
|||
|
|
},
|
|||
|
|
contrastFinish: function() {
|
|||
|
|
//对比*y轴树
|
|||
|
|
for (var i = 0, arr = []; i < this.checked_contrast.length; i++) {
|
|||
|
|
var c = this.checked_contrast[i];
|
|||
|
|
arr.push({
|
|||
|
|
label: c.label,
|
|||
|
|
code: c.value,
|
|||
|
|
tid: "_c" + vm.t_num++
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
this.time_tree = arr;
|
|||
|
|
//对比*x轴树
|
|||
|
|
this.createXTree();
|
|||
|
|
this.step = false;
|
|||
|
|
this.openedFile = {};
|
|||
|
|
},
|
|||
|
|
createXTree: function() {
|
|||
|
|
var arr = JSON.parse(JSON.stringify(vm.checked_node.nodes));
|
|||
|
|
// 判断是返回向导还是新增
|
|||
|
|
if (this.dev_tree.length === 0 || this.isNew) {
|
|||
|
|
this.dev_tree = arr;
|
|||
|
|
} else {
|
|||
|
|
// 记录原来的顺序,改变现有树的顺序
|
|||
|
|
var sx = {};
|
|||
|
|
// 展开dev_tree并记录顺序
|
|||
|
|
this.treeToList(this.dev_tree, sx);
|
|||
|
|
// 展开arr合成顺序字段
|
|||
|
|
this.treeToSort(arr, sx);
|
|||
|
|
|
|||
|
|
this.dev_tree = arr;
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
treeToList: function(list, obj) {
|
|||
|
|
for (var i = 0; i < list.length; i++) {
|
|||
|
|
var v = list[i];
|
|||
|
|
obj[v.code] = i;
|
|||
|
|
if (
|
|||
|
|
(v.nodetype == "dev" || v.nodetype == "dev_type") &&
|
|||
|
|
v.children &&
|
|||
|
|
v.children.length > 0
|
|||
|
|
) {
|
|||
|
|
this.treeToList(v.children, obj);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
treeToSort: function(list, obj) {
|
|||
|
|
if (list[0].nodetype !== "dev" && list[0].nodetype !== "dev_type") {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
for (var i = 0; i < list.length; i++) {
|
|||
|
|
var v = list[i];
|
|||
|
|
var temp = v.remark10;
|
|||
|
|
v.remark10 = obj[v.code];
|
|||
|
|
if (isNaN(v.remark10)) {
|
|||
|
|
v.remark10 = temp;
|
|||
|
|
}
|
|||
|
|
if (v.children && v.children.length > 0) {
|
|||
|
|
this.treeToSort(v.children, obj);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
list.sort(function(a, b) {
|
|||
|
|
return a.remark10 - b.remark10;
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
createYTree: function() {
|
|||
|
|
//时间格式this.cur_report_type,this.sketch
|
|||
|
|
//时间间隔this.report_interval
|
|||
|
|
//开始时间this.report_s_month,this.report_s_day,this.report_s_hours
|
|||
|
|
var strat,
|
|||
|
|
type = this.cur_report_type.value,
|
|||
|
|
ban = this.sketch.value;
|
|||
|
|
if (type == "day" || type == "udf") {
|
|||
|
|
strat = this.report_s_hours;
|
|||
|
|
} else if (type == "year") {
|
|||
|
|
strat = this.report_s_month;
|
|||
|
|
} else {
|
|||
|
|
strat = this.report_s_day;
|
|||
|
|
}
|
|||
|
|
strat = isNaN(strat * 1) ? 1 : strat * 1;
|
|||
|
|
this.time_tree = getTimeList(type, strat, vm.report_interval, ban);
|
|||
|
|
},
|
|||
|
|
propertyDataOp: function(property, num, ptid) {
|
|||
|
|
//处理测点数据方法
|
|||
|
|
var probj = {
|
|||
|
|
arr: []
|
|||
|
|
};
|
|||
|
|
for (var i = 0; i < property.length; i++) {
|
|||
|
|
var pn = objClone(property[i]);
|
|||
|
|
pn.children = [];
|
|||
|
|
pn.tid = pn.tid + "_" + num;
|
|||
|
|
pn.ptid = pn.ptid + "_" + num;
|
|||
|
|
if (probj[pn.tid] === undefined) {
|
|||
|
|
probj[pn.tid] = pn;
|
|||
|
|
} else {
|
|||
|
|
pn.children = probj[pn.tid].children;
|
|||
|
|
probj[pn.tid] = pn;
|
|||
|
|
}
|
|||
|
|
var parentNodeOp = function() {
|
|||
|
|
if (probj[pn.ptid] === undefined) {
|
|||
|
|
probj[pn.ptid] = {
|
|||
|
|
tid: pn.ptid,
|
|||
|
|
children: [pn]
|
|||
|
|
};
|
|||
|
|
} else {
|
|||
|
|
probj[pn.ptid].children.push(pn);
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
if (pn.tid.indexOf("p") == 0) {
|
|||
|
|
if (this.ck_cd) {
|
|||
|
|
pn.ptid = ptid;
|
|||
|
|
probj.arr.push(probj[pn.tid]);
|
|||
|
|
} else {
|
|||
|
|
parentNodeOp();
|
|||
|
|
}
|
|||
|
|
} else if (pn.tid.indexOf("s") == 0) {
|
|||
|
|
parentNodeOp();
|
|||
|
|
} else {
|
|||
|
|
if (!this.ck_cd) {
|
|||
|
|
pn.ptid = ptid;
|
|||
|
|
probj.arr.push(probj[pn.tid]);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return probj;
|
|||
|
|
},
|
|||
|
|
addPropertyNew: function() {
|
|||
|
|
setTimeout(function() {
|
|||
|
|
this.adding = true;
|
|||
|
|
});
|
|||
|
|
var dev = this.$refs.dev_tree.getCheckedNodes();
|
|||
|
|
var property = this.$refs.c_tree.getCheckedNodes();
|
|||
|
|
var dev_obj = this.recursion(
|
|||
|
|
{
|
|||
|
|
recursion: false
|
|||
|
|
},
|
|||
|
|
dev
|
|||
|
|
);
|
|||
|
|
var prop_obj = this.recursion(
|
|||
|
|
{
|
|||
|
|
key: "tid",
|
|||
|
|
recursion: false
|
|||
|
|
},
|
|||
|
|
property
|
|||
|
|
);
|
|||
|
|
//判断未勾选设备的情况
|
|||
|
|
if (dev.length == 0 || property.length == 0) {
|
|||
|
|
this.$alert(
|
|||
|
|
dev.length == 0 ? this.i18n.js.qxzjcdsb : this.i18n.js.qxztjcd,
|
|||
|
|
this.i18n.js.tip,
|
|||
|
|
{
|
|||
|
|
confirmButtonText: this.i18n.js.ok
|
|||
|
|
}
|
|||
|
|
);
|
|||
|
|
this.adding = false;
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
//克隆测点数据,以免对原树造成影响
|
|||
|
|
|
|||
|
|
var JSON_prop = JSON.parse(JSON.stringify(prop_obj));
|
|||
|
|
//去除children增加克隆性能
|
|||
|
|
var fn_removeChildren = function(obj) {
|
|||
|
|
for (var i in obj) {
|
|||
|
|
obj[i].children = [];
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
fn_removeChildren(JSON_prop.t_);
|
|||
|
|
fn_removeChildren(JSON_prop.p_);
|
|||
|
|
fn_removeChildren(JSON_prop.s_);
|
|||
|
|
var jpo = {
|
|||
|
|
t_: JSON_prop.t_,
|
|||
|
|
p_: JSON_prop.p_,
|
|||
|
|
s_: JSON_prop.s_
|
|||
|
|
};
|
|||
|
|
JSON_prop = JSON.stringify(jpo);
|
|||
|
|
|
|||
|
|
//处理测点数据
|
|||
|
|
var fn_devProp = function(arr, result) {
|
|||
|
|
var keys = {
|
|||
|
|
property_type: "t_",
|
|||
|
|
property: "p_",
|
|||
|
|
property_value: "s_"
|
|||
|
|
};
|
|||
|
|
var arrList = [];
|
|||
|
|
if (arr instanceof Array) {
|
|||
|
|
arr.map(function(v) {
|
|||
|
|
result[keys[v.nodetype]][v.tid] = v;
|
|||
|
|
if (v.children && v.children.length > 0) {
|
|||
|
|
arrList = arrList.concat(v.children);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
if (arrList.length > 0) {
|
|||
|
|
fn_devProp(arrList, result);
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
for (var d in dev_obj.d_) {
|
|||
|
|
var _d = dev_obj.d_[d];
|
|||
|
|
var _prop = JSON.parse(JSON_prop);
|
|||
|
|
var _id = _d.tid.substr(1);
|
|||
|
|
var _child = {
|
|||
|
|
t_: {},
|
|||
|
|
p_: {},
|
|||
|
|
s_: {}
|
|||
|
|
};
|
|||
|
|
fn_devProp(_d.children, _child);
|
|||
|
|
|
|||
|
|
//添加测点类型
|
|||
|
|
//策略:当设备还没有添加测点时,通过配置判断,如果添加过测点,就按照子节点是否有测点类型来
|
|||
|
|
var _flag =
|
|||
|
|
(_d.children.length == 0 && !this.ck_cd) ||
|
|||
|
|
(_d.children.length > 0 &&
|
|||
|
|
_d.children[0].nodetype == "property_type");
|
|||
|
|
if (_flag) {
|
|||
|
|
for (var t in _prop.t_) {
|
|||
|
|
if (_child.t_[_prop.t_[t].tid + _id] === undefined) {
|
|||
|
|
_prop.t_[t].tid += _id;
|
|||
|
|
_prop.t_[t].ptid = _d.tid;
|
|||
|
|
_d.children.push(_prop.t_[t]); //添加到菜单里
|
|||
|
|
_child.t_[_prop.t_[t].tid] = _prop.t_[t]; //添加到零时类别里
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//添加测点,
|
|||
|
|
//1.设备children是空的
|
|||
|
|
//2.设备下的children有测点类别,类别是空的
|
|||
|
|
//3.设备下的children有测点类别,类别下有一些测点
|
|||
|
|
for (var p in _prop.p_) {
|
|||
|
|
if (_child.p_[_prop.p_[p].tid + _id] === undefined) {
|
|||
|
|
_prop.p_[p].tid += _id;
|
|||
|
|
if (_flag) {
|
|||
|
|
_prop.p_[p].ptid += _id;
|
|||
|
|
_child.t_[_prop.p_[p].ptid].children.push(_prop.p_[p]);
|
|||
|
|
} else {
|
|||
|
|
_prop.p_[p].ptid = _d.tid;
|
|||
|
|
_d.children.push(_prop.p_[p]);
|
|||
|
|
}
|
|||
|
|
_child.p_[_prop.p_[p].tid] = _prop.p_[p];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//添加测点属性
|
|||
|
|
//1.测点下children是空的
|
|||
|
|
//2.测点下children已存在一些属性
|
|||
|
|
for (var s in _prop.s_) {
|
|||
|
|
if (_child.s_[_prop.s_[s].tid + _id] === undefined) {
|
|||
|
|
_prop.s_[s].tid += _id;
|
|||
|
|
_prop.s_[s].ptid += _id;
|
|||
|
|
_child.p_[_prop.s_[s].ptid].children.push(_prop.s_[s]);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
addProperty: function() {
|
|||
|
|
setTimeout(function() {
|
|||
|
|
this.adding = true;
|
|||
|
|
});
|
|||
|
|
var dev = this.$refs.dev_tree.getCheckedNodes();
|
|||
|
|
var property = this.$refs.c_tree.getCheckedNodes();
|
|||
|
|
var dev_obj = this.recursion(
|
|||
|
|
{
|
|||
|
|
recursion: false
|
|||
|
|
},
|
|||
|
|
dev
|
|||
|
|
);
|
|||
|
|
var prop_obj = this.recursion(
|
|||
|
|
{
|
|||
|
|
key: "tid",
|
|||
|
|
recursion: false
|
|||
|
|
},
|
|||
|
|
property
|
|||
|
|
);
|
|||
|
|
if (dev.length == 0 || property.length == 0) {
|
|||
|
|
this.$alert(
|
|||
|
|
dev.length == 0 ? this.i18n.js.qxzjcdsb : this.i18n.js.qxztjcd,
|
|||
|
|
this.i18n.js.tip,
|
|||
|
|
{
|
|||
|
|
confirmButtonText: this.i18n.js.ok
|
|||
|
|
}
|
|||
|
|
);
|
|||
|
|
this.adding = false;
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
//处理设备数据
|
|||
|
|
var JSON_prop = JSON.stringify(prop_obj);
|
|||
|
|
|
|||
|
|
//记录不同的测点属性
|
|||
|
|
for (var d in dev_obj.d_) {
|
|||
|
|
var num = this.t_num++;
|
|||
|
|
var _prop = JSON.parse(JSON_prop);
|
|||
|
|
var _child = this.recursion(
|
|||
|
|
{
|
|||
|
|
key: "tid",
|
|||
|
|
recursion: true
|
|||
|
|
},
|
|||
|
|
dev_obj.d_[d].children
|
|||
|
|
);
|
|||
|
|
//记录不同的测点类型
|
|||
|
|
var t_obj = {},
|
|||
|
|
unt_obj = {},
|
|||
|
|
n_node = [];
|
|||
|
|
for (var t in _prop.t_) {
|
|||
|
|
var tcode = "";
|
|||
|
|
for (var ct in _child.t_) {
|
|||
|
|
if (ct.indexOf(t) === 0) {
|
|||
|
|
tcode = ct;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (tcode === "") {
|
|||
|
|
t_obj[_prop.t_[t].tid] = _prop.t_[t];
|
|||
|
|
n_node.push(_prop.t_[t]);
|
|||
|
|
} else {
|
|||
|
|
unt_obj[t] = _child.t_[tcode];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//记录不同的测点
|
|||
|
|
var p_obj = {},
|
|||
|
|
unp_obj = {};
|
|||
|
|
for (var p in _prop.p_) {
|
|||
|
|
var pcode = "";
|
|||
|
|
for (var cp in _child.p_) {
|
|||
|
|
if (cp.indexOf(p) === 0) {
|
|||
|
|
pcode = cp;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (pcode === "") {
|
|||
|
|
if (unt_obj[_prop.p_[p].ptid] === undefined) {
|
|||
|
|
p_obj[_prop.p_[p].tid] = _prop.p_[p];
|
|||
|
|
n_node.push(_prop.p_[p]);
|
|||
|
|
} else {
|
|||
|
|
var obj = _prop.p_[p];
|
|||
|
|
var ptid = _prop.p_[p].ptid;
|
|||
|
|
obj.tid = obj.tid + "_" + num;
|
|||
|
|
obj.ptid = unt_obj[ptid].tid;
|
|||
|
|
unt_obj[ptid].children.push(obj);
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
unp_obj[p] = _child.p_[pcode];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//记录不同的测点属性
|
|||
|
|
var s_obj = {};
|
|||
|
|
for (var s in _prop.s_) {
|
|||
|
|
var scode = "";
|
|||
|
|
for (var cs in _child.s_) {
|
|||
|
|
if (cs.indexOf(s) === 0) {
|
|||
|
|
scode = cs;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (scode === "") {
|
|||
|
|
if (unp_obj[_prop.s_[s].ptid] === undefined) {
|
|||
|
|
s_obj[_prop.s_[s].tid] = _prop.s_[s];
|
|||
|
|
n_node.push(_prop.s_[s]);
|
|||
|
|
} else {
|
|||
|
|
var obj = _prop.s_[s];
|
|||
|
|
var ptid = _prop.s_[s].ptid;
|
|||
|
|
obj.tid = obj.tid + "_" + num;
|
|||
|
|
obj.ptid = unp_obj[ptid].tid;
|
|||
|
|
unp_obj[ptid].children.push(obj);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var _obj = this.propertyDataOp(n_node, num, dev_obj.d_[d].tid); //属相对象
|
|||
|
|
dev_obj.d_[d].children = dev_obj.d_[d].children.concat(_obj.arr);
|
|||
|
|
}
|
|||
|
|
this.adding = false;
|
|||
|
|
},
|
|||
|
|
delProperty: function() {
|
|||
|
|
var dev_obj = {},
|
|||
|
|
dev = this.$refs.dev_tree.getCheckedNodes();
|
|||
|
|
var prop_obj = {},
|
|||
|
|
property = this.$refs.c_tree.getCheckedNodes();
|
|||
|
|
dev_obj = this.recursion(
|
|||
|
|
{
|
|||
|
|
recursion: false
|
|||
|
|
},
|
|||
|
|
dev
|
|||
|
|
);
|
|||
|
|
prop_obj = this.recursion(
|
|||
|
|
{
|
|||
|
|
key: "tid",
|
|||
|
|
recursion: false
|
|||
|
|
},
|
|||
|
|
property
|
|||
|
|
);
|
|||
|
|
if (dev.length == 0 || property.length == 0) {
|
|||
|
|
this.$alert(
|
|||
|
|
dev.length == 0 ? this.i18n.js.qxzdeldev : this.i18n.js.qxzdelcd,
|
|||
|
|
this.i18n.js.tip,
|
|||
|
|
{
|
|||
|
|
confirmButtonText: this.i18n.js.ok
|
|||
|
|
}
|
|||
|
|
);
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
for (var k in dev_obj.d_) {
|
|||
|
|
var _child = dev_obj.d_[k].children;
|
|||
|
|
var _temp = this.recursion(
|
|||
|
|
{
|
|||
|
|
key: "tid",
|
|||
|
|
recursion: true
|
|||
|
|
},
|
|||
|
|
_child
|
|||
|
|
);
|
|||
|
|
var skey = "s_";
|
|||
|
|
if (this.sketch.value == "sy") {
|
|||
|
|
skey = "p_";
|
|||
|
|
}
|
|||
|
|
for (var s in prop_obj[skey]) {
|
|||
|
|
var code = "";
|
|||
|
|
//判断设备中有无该测点,没有进行下次循环
|
|||
|
|
for (var c in _temp[skey]) {
|
|||
|
|
if (c.indexOf(s) === 0) {
|
|||
|
|
code = c;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (code == "") {
|
|||
|
|
continue;
|
|||
|
|
}
|
|||
|
|
//查找属性的父级测点,删除属性节点,
|
|||
|
|
var p = this.$refs.dev_tree.getNode(_temp[skey][code]).parent;
|
|||
|
|
this.$refs.dev_tree.remove(_temp[skey][code]);
|
|||
|
|
//判断该测点是否为空,为空则删除该测点,判断是否有测点类型,如过有
|
|||
|
|
if (p.childNodes.length == 0) {
|
|||
|
|
//查找测点的父级,判断测点类型子级是否为空,为空则删除该节点
|
|||
|
|
var d = p.parent;
|
|||
|
|
if (p.data.nodetype !== "dev") {
|
|||
|
|
this.$refs.dev_tree.remove(p);
|
|||
|
|
if (
|
|||
|
|
d.data.nodetype == "property_type" &&
|
|||
|
|
d.childNodes.length == 0
|
|||
|
|
) {
|
|||
|
|
this.$refs.dev_tree.remove(d);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
checkCd: function(data, nlist) {
|
|||
|
|
var node = this.$refs.c_tree.getNode(data);
|
|||
|
|
if (this.editNodePanel) {
|
|||
|
|
node = this.$refs.clone_c_tree.getNode(data);
|
|||
|
|
} else {
|
|||
|
|
//检查有没有选中多个
|
|||
|
|
if (data.nodetype == "property_value") {
|
|||
|
|
// console.log(node)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var checked = node.checked;
|
|||
|
|
//向下遍历
|
|||
|
|
var trvsChildren = function(node, checked) {
|
|||
|
|
var _child = node.childNodes;
|
|||
|
|
if (!_child[0]) {
|
|||
|
|
node.checked = checked;
|
|||
|
|
//重置测点选中记录
|
|||
|
|
if (checked) {
|
|||
|
|
vm.cd_info_check.dev = node.data.ptid;
|
|||
|
|
vm.cd_info_check.list = [];
|
|||
|
|
for (var i = 0; i < node.parent.childNodes.length; i++) {
|
|||
|
|
//记录最底级测点
|
|||
|
|
var nd = node.parent.childNodes[i];
|
|||
|
|
if (nd.checked == true) {
|
|||
|
|
vm.cd_info_check.list.push({
|
|||
|
|
code: nd.data.code,
|
|||
|
|
index: i
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
if (checked) {
|
|||
|
|
node.checked = true;
|
|||
|
|
if (
|
|||
|
|
node.data.nodetype === "property" &&
|
|||
|
|
node.data.ptid != vm.cd_info_check.dev
|
|||
|
|
) {
|
|||
|
|
//勾选最底级测点
|
|||
|
|
for (
|
|||
|
|
var i = 0, flag = true;
|
|||
|
|
i < vm.cd_info_check.list.length;
|
|||
|
|
i++
|
|||
|
|
) {
|
|||
|
|
var code = vm.cd_info_check.list[i];
|
|||
|
|
if (
|
|||
|
|
node.childNodes[code.index] &&
|
|||
|
|
node.childNodes[code.index].data.code == code.code
|
|||
|
|
) {
|
|||
|
|
flag = false;
|
|||
|
|
node.childNodes[code.index].checked = true;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//如果没有一个被选中默认选中第一个
|
|||
|
|
if (flag) {
|
|||
|
|
node.childNodes[0].checked = true;
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
return trvsChildren(_child[0], true);
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
node.checked = false;
|
|||
|
|
for (var i = 0; i < _child.length; i++) {
|
|||
|
|
if (_child[i].checked) {
|
|||
|
|
trvsChildren(_child[i], false);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
trvsChildren(node, checked);
|
|||
|
|
|
|||
|
|
//向上遍历
|
|||
|
|
var trvsParent = function(node, checked) {
|
|||
|
|
var parent = node.parent;
|
|||
|
|
if (!parent) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
if (checked) {
|
|||
|
|
if (parent.checked) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
parent.checked = true;
|
|||
|
|
} else {
|
|||
|
|
for (var i = 0, flag = false; i < parent.childNodes.length; i++) {
|
|||
|
|
var _p = parent.childNodes[i];
|
|||
|
|
if (_p.checked) {
|
|||
|
|
flag = true;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (!flag) {
|
|||
|
|
parent.checked = false;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return trvsParent(parent, checked);
|
|||
|
|
};
|
|||
|
|
trvsParent(node, checked);
|
|||
|
|
},
|
|||
|
|
creatProperty: function() {
|
|||
|
|
this.property_tree = [];
|
|||
|
|
if (this.sketch.value == "sy") {
|
|||
|
|
if (post.syCd.data === undefined) {
|
|||
|
|
var node = vm.$refs.adev_tree.getCurrentNode();
|
|||
|
|
if (node) {
|
|||
|
|
getProceeds(node.devCode);
|
|||
|
|
}
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
this.all_property = post.syCd.data;
|
|||
|
|
var keys = tiemInterval();
|
|||
|
|
for (var i = 0; i < keys.length; i++) {
|
|||
|
|
//测点树
|
|||
|
|
var item = this.all_property[keys[i]];
|
|||
|
|
this.property_tree.push(item);
|
|||
|
|
//设备树(添加默认点)
|
|||
|
|
var d = this.checked_node.nodes[i];
|
|||
|
|
var cl = JSON.parse(JSON.stringify(item));
|
|||
|
|
if (this.sketch.value !== "tj") {
|
|||
|
|
for (var j = 0; j < cl.children.length; j++) {
|
|||
|
|
cl.children[j].ptid = d.tid;
|
|||
|
|
cl.children[j].tid = cl.children[j].tid + "_" + this.t_num++;
|
|||
|
|
d.children.push(cl.children[j]);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
this.all_property = post.cd.data;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (this.sketch.value == "yx") {
|
|||
|
|
this.property_tree.push(this.all_property.yc);
|
|||
|
|
} else if (this.sketch.value == "dd") {
|
|||
|
|
this.property_tree.push(this.all_property.ym);
|
|||
|
|
} else if (this.sketch.value !== "sy") {
|
|||
|
|
for (var k in this.all_property) {
|
|||
|
|
this.property_tree.push(this.all_property[k]);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
this.clone_property_tree = JSON.parse(JSON.stringify(vm.property_tree));
|
|||
|
|
},
|
|||
|
|
recursion: function(op, arr, obj) {
|
|||
|
|
if (obj === undefined) {
|
|||
|
|
obj = {
|
|||
|
|
c_: {},
|
|||
|
|
d_: {},
|
|||
|
|
t_: {},
|
|||
|
|
p_: {},
|
|||
|
|
s_: {},
|
|||
|
|
__other: {}
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
for (var i = 0, n = []; i < arr.length; i++) {
|
|||
|
|
var o = arr[i];
|
|||
|
|
var code = op.key ? arr[i][op.key] : arr[i].code;
|
|||
|
|
obj[code] = o;
|
|||
|
|
if (o.nodetype === "dev_type") {
|
|||
|
|
obj.c_[code] = o;
|
|||
|
|
} else if (o.nodetype === "dev") {
|
|||
|
|
obj.d_[code] = o;
|
|||
|
|
} else if (o.nodetype === "property_type") {
|
|||
|
|
obj.t_[code] = o;
|
|||
|
|
} else if (o.nodetype === "property") {
|
|||
|
|
obj.p_[code] = o;
|
|||
|
|
} else if (o.nodetype === "property_value") {
|
|||
|
|
obj.s_[code] = o;
|
|||
|
|
} else {
|
|||
|
|
obj.__other[code] = o;
|
|||
|
|
}
|
|||
|
|
obj[o.code] = o;
|
|||
|
|
if (o.children && o.children.length > 0) {
|
|||
|
|
n = n.concat(o.children);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (n.length == 0 || !op.recursion) {
|
|||
|
|
return obj;
|
|||
|
|
} else {
|
|||
|
|
return this.recursion(op, n, obj);
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
nodeFor: function(obj) {
|
|||
|
|
var o = objClone(obj);
|
|||
|
|
if (o.children && o.children.length > 0) {
|
|||
|
|
o.tid = "c_" + this.t_num++;
|
|||
|
|
} else {
|
|||
|
|
o.tid = "d_" + this.t_num++;
|
|||
|
|
}
|
|||
|
|
o.children = [];
|
|||
|
|
return o;
|
|||
|
|
},
|
|||
|
|
isUncheck: function(flag) {
|
|||
|
|
if (flag) {
|
|||
|
|
this.substep = this.substep + 100;
|
|||
|
|
return true;
|
|||
|
|
} else {
|
|||
|
|
this.$alert(this.i18n.js.unseldev, this.i18n.js.tip, {
|
|||
|
|
confirmButtonText: this.i18n.js.ok,
|
|||
|
|
callback: function() {}
|
|||
|
|
});
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
creatDev: function() {
|
|||
|
|
this.devCheckedKeys = [];
|
|||
|
|
this.property_tree = [];
|
|||
|
|
this.property_tree.shift();
|
|||
|
|
this.checked_node.nodes = [];
|
|||
|
|
this.checked_node.nodes.shift();
|
|||
|
|
if (this.sketch.value == "sy") {
|
|||
|
|
this.creatDevSy();
|
|||
|
|
} else {
|
|||
|
|
this.creatDevTree();
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
creatDevSy: function() {
|
|||
|
|
var node = vm.$refs.adev_tree.getCurrentNode();
|
|||
|
|
|
|||
|
|
if (!this.isUncheck(node)) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
for (var i = 0, _arr = tiemInterval(); i < _arr.length; i++) {
|
|||
|
|
var _id = node.devCode + ";" + vm.t_num + ";";
|
|||
|
|
var _o = {
|
|||
|
|
label: _arr[i],
|
|||
|
|
code: _id,
|
|||
|
|
nodetype: "dev",
|
|||
|
|
devCode: node.devCode,
|
|||
|
|
devType: true,
|
|||
|
|
children: [],
|
|||
|
|
tid: "d_" + vm.t_num++
|
|||
|
|
};
|
|||
|
|
this.checked_node[_id] = _o;
|
|||
|
|
this.checked_node.nodes.push(_o);
|
|||
|
|
}
|
|||
|
|
getProceeds(node.devCode);
|
|||
|
|
},
|
|||
|
|
creatDevTree: function() {
|
|||
|
|
var adev = {}; //全部设备中选中的设备
|
|||
|
|
if (vm.$refs.adev_tree) {
|
|||
|
|
//新建的时候
|
|||
|
|
adev.dev_list = vm.$refs.adev_tree.getCheckedNodes(false, true);
|
|||
|
|
} else {
|
|||
|
|
//选择了报表
|
|||
|
|
adev.dev_list = this.checked_node.nodes;
|
|||
|
|
}
|
|||
|
|
if (!this.isUncheck(adev.dev_list.length > 0)) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
//处理自身数据
|
|||
|
|
var devList = [];
|
|||
|
|
var devTypeList = [];
|
|||
|
|
var devkeys = [];
|
|||
|
|
for (var i = 0, temp = {}; i < adev.dev_list.length; i++) {
|
|||
|
|
var d = this.nodeFor(adev.dev_list[i]);
|
|||
|
|
if (temp[d.treeCode] !== undefined) {
|
|||
|
|
temp[d.treeCode].children.forEach(function(v) {
|
|||
|
|
v.ptid = temp[d.treeCode].tid;
|
|||
|
|
});
|
|||
|
|
d.children = temp[d.treeCode].children;
|
|||
|
|
}
|
|||
|
|
temp[d.treeCode] = d;
|
|||
|
|
if (d.treePCode == "") {
|
|||
|
|
devTypeList.push(d);
|
|||
|
|
} else {
|
|||
|
|
if (temp[d.treePCode] === undefined) {
|
|||
|
|
temp[d.treePCode] = {
|
|||
|
|
children: [d]
|
|||
|
|
};
|
|||
|
|
} else {
|
|||
|
|
d.ptid = temp[d.treePCode].tid;
|
|||
|
|
temp[d.treePCode].children.push(d);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (d.nodetype === "dev") {
|
|||
|
|
devList.push(d);
|
|||
|
|
devkeys.push(d.code);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
this.devCheckedKeys = devkeys;
|
|||
|
|
if (!this.ck_gx) {
|
|||
|
|
for (var k in temp) {
|
|||
|
|
if (temp[k].tid === undefined) {
|
|||
|
|
Array.prototype.push.apply(devTypeList, temp[k].children);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
getCdInfo({
|
|||
|
|
devTpName: devkeys.join(";"),
|
|||
|
|
type: vm.sketch.cdtype || vm.sketch.value,
|
|||
|
|
devList: devList,
|
|||
|
|
devTypeList: devTypeList
|
|||
|
|
});
|
|||
|
|
getDevCD(devkeys.join(";"));
|
|||
|
|
},
|
|||
|
|
pushCd: function(devList, devTypeList, cdlist) {
|
|||
|
|
var _type = {
|
|||
|
|
yx: "yc",
|
|||
|
|
dd: "ym",
|
|||
|
|
bb: "yc,ym,yx,mix",
|
|||
|
|
tj: "yc,ym,yx,mix",
|
|||
|
|
db: "yc,ym,yx,mix",
|
|||
|
|
cr: "yc,ym,yx,mix",
|
|||
|
|
undefined: "yc,ym,yx,mix"
|
|||
|
|
};
|
|||
|
|
devList.forEach(function(v, i) {
|
|||
|
|
if (!v.children instanceof Array) {
|
|||
|
|
v.children = [];
|
|||
|
|
}
|
|||
|
|
var _id = v.tid.substr(1);
|
|||
|
|
if (vm.sketch.value != "tj") {
|
|||
|
|
cdlist.reduce(function(obj, item, index) {
|
|||
|
|
if (
|
|||
|
|
// item.isCommon === "1" &&
|
|||
|
|
_type[vm.sketch.value].indexOf(item.type) !== -1
|
|||
|
|
) {
|
|||
|
|
var _tid = item.tid + _id;
|
|||
|
|
var child=[item.children[0]]
|
|||
|
|
if(vm.cd_tid&&vm.cd_tid.length>0){
|
|||
|
|
child=item.children.filter(function(v){
|
|||
|
|
return vm.cd_tid.indexOf(v.tid)!==-1
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
obj.push({
|
|||
|
|
tid: _tid,
|
|||
|
|
children: item.children&&item.children.length>0?child.map(function(v){
|
|||
|
|
return objClone(v, function(k, _obj, o) {
|
|||
|
|
if (k === "ptid") {
|
|||
|
|
o[k] = _tid;
|
|||
|
|
} else if (k === "tid") {
|
|||
|
|
o[k] = _obj[k] + _id;
|
|||
|
|
} else {
|
|||
|
|
o[k] = _obj[k];
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
}):[],
|
|||
|
|
code: item.code,
|
|||
|
|
isCommon: item.isCommon,
|
|||
|
|
label: item.label,
|
|||
|
|
nodetype: item.nodetype,
|
|||
|
|
pointType: item.pointType,
|
|||
|
|
ptid: v.tid,
|
|||
|
|
stateText: item.stateText,
|
|||
|
|
stateTextList: item.stateTextList,
|
|||
|
|
type: item.type
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
return obj;
|
|||
|
|
}, v.children);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
if (this.ck_gx) {
|
|||
|
|
this.checked_node.nodes = devList;
|
|||
|
|
} else {
|
|||
|
|
this.checked_node.nodes = devTypeList;
|
|||
|
|
}
|
|||
|
|
setTimeout(function() {
|
|||
|
|
vm.check_all = false;
|
|||
|
|
vm.checkedAll();
|
|||
|
|
}, 50);
|
|||
|
|
},
|
|||
|
|
creatDevTree_old: function() {
|
|||
|
|
this.check_all = true;
|
|||
|
|
var dev = {}; //原先选中的设备
|
|||
|
|
var adev = {}; //全部设备中选中的设备
|
|||
|
|
dev = this.checked_node;
|
|||
|
|
adev.dev_list = vm.$refs.adev_tree.getCheckedNodes(false, true);
|
|||
|
|
if (!this.isUncheck(dev.nodes.length > 0 || adev.dev_list.length > 0)) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
//同步对象和节点
|
|||
|
|
if (dev.nodes.length > 0 && dev.nodes[0] !== dev[dev.nodes[0].treeCode]) {
|
|||
|
|
var _temp = dev.nodes;
|
|||
|
|
dev = {
|
|||
|
|
nodes: _temp
|
|||
|
|
};
|
|||
|
|
var _temp_arr = _temp;
|
|||
|
|
while (_temp_arr.length > 0) {
|
|||
|
|
for (var i = 0, _arr = []; i < _temp_arr.length; i++) {
|
|||
|
|
var d = _temp_arr[i];
|
|||
|
|
dev[d.treeCode] = d;
|
|||
|
|
if (d.children && d.children.length > 0) {
|
|||
|
|
var ntpye = d.children[0].nodetype;
|
|||
|
|
if (ntpye !== "property_type" && ntpye !== "property") {
|
|||
|
|
_arr = _arr.concat(d.children);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
_temp_arr = _arr;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//过滤数据
|
|||
|
|
for (var i = 0, gl = {}; i < adev.dev_list.length; i++) {
|
|||
|
|
var d = adev.dev_list[i];
|
|||
|
|
if (dev[d.treeCode] === undefined) {
|
|||
|
|
var obj_d = this.nodeFor(d);
|
|||
|
|
dev[d.treeCode] = obj_d;
|
|||
|
|
gl[obj_d.treeCode] = obj_d;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//处理自己的层级关系
|
|||
|
|
var arr = [];
|
|||
|
|
for (var k in gl) {
|
|||
|
|
var d = gl[k];
|
|||
|
|
if (!d.treePCode || gl[d.treePCode] === undefined) {
|
|||
|
|
arr.push(d);
|
|||
|
|
} else {
|
|||
|
|
d.ptid = gl[d.treePCode].tid;
|
|||
|
|
gl[d.treePCode].children.push(d);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//生成nodes
|
|||
|
|
for (var i = 0; i < arr.length; i++) {
|
|||
|
|
var d = arr[i];
|
|||
|
|
if (dev[d.treePCode] === undefined) {
|
|||
|
|
d.ptid = "";
|
|||
|
|
dev.nodes.push(d);
|
|||
|
|
} else {
|
|||
|
|
d.ptid = dev[d.treePCode].tid;
|
|||
|
|
dev[d.treePCode].children.push(d);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//生成devModel
|
|||
|
|
var devmodels = {
|
|||
|
|
arr: []
|
|||
|
|
};
|
|||
|
|
for (var k in dev) {
|
|||
|
|
if (k == "nodes") {
|
|||
|
|
continue;
|
|||
|
|
}
|
|||
|
|
if (dev[k].devModelCode) {
|
|||
|
|
devmodels.arr.push(k);
|
|||
|
|
devmodels[k] = dev[k];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
getCdInfo({
|
|||
|
|
devTpName: devmodels.arr.join(";"),
|
|||
|
|
type: vm.sketch.cdtype || vm.sketch.value
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
checkSelectedStatus: function(nodes) {
|
|||
|
|
var node_on = 0,
|
|||
|
|
node_off = 0;
|
|||
|
|
for (var i = 0, len = nodes.childNodes.length; i < len; i++) {
|
|||
|
|
var node = nodes.childNodes[i];
|
|||
|
|
if (node.checked || node.indeterminate) {
|
|||
|
|
node_on++;
|
|||
|
|
} else {
|
|||
|
|
node_off++;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (node_on == len) {
|
|||
|
|
nodes.checked = true;
|
|||
|
|
nodes.indeterminate = false;
|
|||
|
|
} else if (node_off == len) {
|
|||
|
|
nodes.checked = false;
|
|||
|
|
nodes.indeterminate = false;
|
|||
|
|
} else {
|
|||
|
|
nodes.checked = true;
|
|||
|
|
nodes.indeterminate = true;
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
checkVisible: function(data, checked) {
|
|||
|
|
var node = this.$refs.adev_tree.getNode(data);
|
|||
|
|
var ac = false,
|
|||
|
|
auc = false;
|
|||
|
|
var checkedStatus = node.checked;
|
|||
|
|
var _arr = node.childNodes;
|
|||
|
|
while (_arr.length > 0) {
|
|||
|
|
for (var i = 0, _temp = []; i < _arr.length; i++) {
|
|||
|
|
var n = _arr[i];
|
|||
|
|
if (n.visible) {
|
|||
|
|
this.$refs.adev_tree.setChecked(n.data, checkedStatus);
|
|||
|
|
if (n.childNodes.length > 0) {
|
|||
|
|
_temp = _temp.concat(n.childNodes);
|
|||
|
|
}
|
|||
|
|
if (n.checked) {
|
|||
|
|
ac = true;
|
|||
|
|
} else {
|
|||
|
|
auc = true;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
_arr = _temp;
|
|||
|
|
if (ac && auc) {
|
|||
|
|
n.parent.indeterminate = true;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
this.checkSelectedStatus(node.parent);
|
|||
|
|
},
|
|||
|
|
simChange: function(data, event, node) {
|
|||
|
|
this.check_station = data.id;
|
|||
|
|
this.postDev();
|
|||
|
|
this.stshow = false;
|
|||
|
|
},
|
|||
|
|
postDev: function() {
|
|||
|
|
var vm = this;
|
|||
|
|
this.all_dev = [];
|
|||
|
|
this.tree_loading = true;
|
|||
|
|
var len = configDevSearch().length;
|
|||
|
|
var flag;
|
|||
|
|
switch (len) {
|
|||
|
|
case 0:
|
|||
|
|
flag = true;
|
|||
|
|
break;
|
|||
|
|
case 1:
|
|||
|
|
flag = vm.check_station;
|
|||
|
|
break;
|
|||
|
|
case 2:
|
|||
|
|
flag = vm.check_profession && vm.check_station;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
if (flag) {
|
|||
|
|
getDev(vm.check_profession, vm.check_station);
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
filterMspsNode: function(value, data) {
|
|||
|
|
console.log(12341234)
|
|||
|
|
if (!this.filter_c && !this.filter_q) return true;
|
|||
|
|
var ps = false,
|
|||
|
|
node;
|
|||
|
|
var fc = this.filter_c.split(/\s+/g);
|
|||
|
|
var fq = this.filter_q.split(/\s+/g);
|
|||
|
|
if (data.tid.indexOf("s_") !== -1) {
|
|||
|
|
if (!this.editNodePanel) {
|
|||
|
|
node = this.$refs.c_tree.getNode(data).parent.data;
|
|||
|
|
} else {
|
|||
|
|
node = this.$refs.clone_c_tree.getNode(data).parent.data;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
// s_ 要放到前面判断应为s_的也含有父级tid p_
|
|||
|
|
if (!this.filter_q) {
|
|||
|
|
if (data.tid.indexOf("s_") !== -1) {
|
|||
|
|
// ps=node.label.indexOf(vm.filter_c)!==-1
|
|||
|
|
ps = this.filterMulty(node.label, fc);
|
|||
|
|
}else if (data.tid.indexOf("p_") !== -1) {
|
|||
|
|
// ps=data.label.indexOf(vm.filter_c)!==-1
|
|||
|
|
ps = this.filterMulty(data.label, fc);
|
|||
|
|
}
|
|||
|
|
} else if (!this.filter_c) {
|
|||
|
|
if (data.tid.indexOf("s_") !== -1) {
|
|||
|
|
// ps=data.label.indexOf(vm.filter_q)!==-1
|
|||
|
|
ps = this.filterMulty(data.label, fq);
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
var s_result=false,s_result=false;
|
|||
|
|
if (data.tid.indexOf("s_") !== -1) {
|
|||
|
|
// ps=data.label.indexOf(vm.filter_q)!==-1&&node.label.indexOf(vm.filter_c)!==-1
|
|||
|
|
ps =
|
|||
|
|
this.filterMulty(data.label, fq) &&
|
|||
|
|
this.filterMulty(node.label, fc);
|
|||
|
|
}else if (data.tid.indexOf("p_") !== -1) {
|
|||
|
|
// ps=data.label.indexOf(vm.filter_c)!==-1
|
|||
|
|
ps = this.filterMulty(data.label, fc);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return ps;
|
|||
|
|
},
|
|||
|
|
filter_all_dev_enter: function() {
|
|||
|
|
var val = this.filter_all_dev;
|
|||
|
|
this.devStrict = true;
|
|||
|
|
if (this.step) {
|
|||
|
|
this.$refs.adev_tree.filter(val);
|
|||
|
|
} else if (this.editNodePanel) {
|
|||
|
|
this.$refs.clone_adev_tree.filter(val);
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
filter_check_dev_enter: function() {
|
|||
|
|
var val = this.filter_check_dev;
|
|||
|
|
this.$refs.dev_tree.filter(val);
|
|||
|
|
},
|
|||
|
|
filter_c_enter: function() {
|
|||
|
|
var val = this.filter_c;
|
|||
|
|
if (this.step) {
|
|||
|
|
this.$refs.c_tree.filter(val);
|
|||
|
|
} else if (this.editNodePanel) {
|
|||
|
|
this.$refs.clone_c_tree.filter(val);
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
filter_q_enter: function() {
|
|||
|
|
var val = this.filter_q;
|
|||
|
|
if (this.step) {
|
|||
|
|
this.$refs.c_tree.filter(val);
|
|||
|
|
} else if (this.editNodePanel) {
|
|||
|
|
this.$refs.clone_c_tree.filter(val);
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
filterCheckNode: function(value, data) {
|
|||
|
|
if (!value || data.nodetype === "dev_type") return true;
|
|||
|
|
var str = value.split(/\s+/g);
|
|||
|
|
var d = data;
|
|||
|
|
if (d.nodetype !== "dev") {
|
|||
|
|
do {
|
|||
|
|
var n = this.$refs.dev_tree.getNode(d).parent;
|
|||
|
|
d = n ? n.data : d;
|
|||
|
|
} while (n && d.nodetype !== "dev");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return this.filterMulty(d.label, str);
|
|||
|
|
},
|
|||
|
|
filterDevNode: function(value, data) {
|
|||
|
|
if (!value) return true;
|
|||
|
|
var str = value.split(/\s+/g);
|
|||
|
|
|
|||
|
|
if (this.step) {
|
|||
|
|
var node = this.$refs.adev_tree.getNode(data);
|
|||
|
|
} else {
|
|||
|
|
var node = this.$refs.clone_adev_tree.getNode(data);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var t = false;
|
|||
|
|
if (data.nodetype === "dev") {
|
|||
|
|
if (this.filter_all_dev_type == "code") {
|
|||
|
|
t = this.filterMulty(data.code, str);
|
|||
|
|
} else {
|
|||
|
|
t = this.filterMulty(data.label, str);
|
|||
|
|
//如果不显示,则查找父级,是否符合,如果父级符合也显示
|
|||
|
|
if(!t){
|
|||
|
|
var pNode=node.parent;
|
|||
|
|
while (pNode&&pNode.parent&&!t) {
|
|||
|
|
t=this.filterMulty(pNode.data.label, str);
|
|||
|
|
pNode=pNode.parent;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return t;
|
|||
|
|
},
|
|||
|
|
filterMulty: function(data, value) {
|
|||
|
|
for (var i = 0, t = false, s = true; i < value.length; i++) {
|
|||
|
|
var str = value[i].trim();
|
|||
|
|
if (str === "" || str === undefined || str === null) {
|
|||
|
|
continue;
|
|||
|
|
}
|
|||
|
|
if (data.indexOf(str) !== -1) {
|
|||
|
|
t = true;
|
|||
|
|
}
|
|||
|
|
if (data.indexOf(str) === -1) {
|
|||
|
|
s = false;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return this.filterConnection ? s : t;
|
|||
|
|
},
|
|||
|
|
setTableType: function(type) {
|
|||
|
|
this.cur_report_type = type;
|
|||
|
|
this.sketch = type.type[0];
|
|||
|
|
if (
|
|||
|
|
this.sketch_index === "" ||
|
|||
|
|
this.sketch_index === undefined ||
|
|||
|
|
this.sketch_index > this.cur_report_type.type.length - 1
|
|||
|
|
) {
|
|||
|
|
this.sketch_index = 0;
|
|||
|
|
}
|
|||
|
|
this.reInitSDate();
|
|||
|
|
},
|
|||
|
|
changeReportType: function() {
|
|||
|
|
var t = this.sketch.value;
|
|||
|
|
var num = 100;
|
|||
|
|
if (t === "dd") {
|
|||
|
|
/*电度*/
|
|||
|
|
this.substep = num + 1;
|
|||
|
|
} else if (t === "bb") {
|
|||
|
|
/*报表*/
|
|||
|
|
this.substep = num + 2;
|
|||
|
|
} else if (t === "cr") {
|
|||
|
|
/*班报表*/
|
|||
|
|
this.substep = num + 3;
|
|||
|
|
} else if (t === "tj") {
|
|||
|
|
/*统计*/
|
|||
|
|
this.substep = num + 5;
|
|||
|
|
this.reIniCheckNode();
|
|||
|
|
} else if (t === "db") {
|
|||
|
|
/*对比*/
|
|||
|
|
this.substep = num + 6;
|
|||
|
|
} else if (t === "qx") {
|
|||
|
|
/*全线*/
|
|||
|
|
this.substep = num + 7;
|
|||
|
|
} else {
|
|||
|
|
/*运行和收益*/
|
|||
|
|
this.substep = num;
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
// reportInterval: function () {
|
|||
|
|
// var arr = getReportIntreval();
|
|||
|
|
// if (this.cur_report_type.value !== 'udf') {
|
|||
|
|
// arr.length = 3;
|
|||
|
|
// }
|
|||
|
|
// return arr;
|
|||
|
|
// },
|
|||
|
|
reportIntervalClear: function() {
|
|||
|
|
this.report_interval = "";
|
|||
|
|
},
|
|||
|
|
/*菜单*/
|
|||
|
|
preview: function() {
|
|||
|
|
// console.time('json');
|
|||
|
|
var obj = JSON.parse(
|
|||
|
|
JSON.stringify({
|
|||
|
|
vm: vm.$data
|
|||
|
|
})
|
|||
|
|
);
|
|||
|
|
// console.timeEnd('json');
|
|||
|
|
// console.time('filter');
|
|||
|
|
deleteReportFileItem(obj);
|
|||
|
|
delete obj.vm.checked_node;
|
|||
|
|
// console.timeEnd('filter');
|
|||
|
|
// console.time('devtreeStorage');
|
|||
|
|
sessionStorage.setItem(
|
|||
|
|
"dev_tree",
|
|||
|
|
pako.gzip(JSON.stringify(obj.vm.dev_tree), {
|
|||
|
|
to: "string"
|
|||
|
|
})
|
|||
|
|
);
|
|||
|
|
// console.timeEnd('devtreeStorage');
|
|||
|
|
// console.time('allStorage');
|
|||
|
|
delete obj.vm.dev_tree;
|
|||
|
|
// delete obj.all_dev;
|
|||
|
|
// delete obj.adev_tree;
|
|||
|
|
sessionStorage.setItem(
|
|||
|
|
"vm",
|
|||
|
|
pako.gzip(JSON.stringify(obj.vm), {
|
|||
|
|
to: "string"
|
|||
|
|
})
|
|||
|
|
);
|
|||
|
|
// console.timeEnd('allStorage');
|
|||
|
|
},
|
|||
|
|
menuSelect: function(v) {
|
|||
|
|
if (v == 4) {
|
|||
|
|
this.configure = true;
|
|||
|
|
} else if (v == 5) {
|
|||
|
|
this.preview();
|
|||
|
|
var urlParam = decodeURIComponent(location.search),
|
|||
|
|
arr = [],
|
|||
|
|
tstr = "";
|
|||
|
|
if (urlParam.indexOf("theme") !== -1) {
|
|||
|
|
arr = urlParam.substr(urlParam.indexOf("theme")).split(/[\=\&]/g);
|
|||
|
|
tstr = "?theme=" + arr[1];
|
|||
|
|
}
|
|||
|
|
window.open("../page/view.html" + tstr, "_blank");
|
|||
|
|
} else if (v == "1-1") {
|
|||
|
|
//初始化参数
|
|||
|
|
|
|||
|
|
if (this.substep != 0) {
|
|||
|
|
this.$confirm(this.i18n.js.cleareport, "", {
|
|||
|
|
distinguishCancelAndClose: true,
|
|||
|
|
confirmButtonText: this.i18n.js.aboult,
|
|||
|
|
cancelButtonText: this.i18n.js.newcur,
|
|||
|
|
type: "warning",
|
|||
|
|
callback: function(action, instance) {
|
|||
|
|
if (action == "confirm") {
|
|||
|
|
sessionStorage.setItem("reloadFlag", true);
|
|||
|
|
location.reload();
|
|||
|
|
vm.substep = 0;
|
|||
|
|
} else if (action == "cancel") {
|
|||
|
|
vm.substep = vm.substep % 100;
|
|||
|
|
}
|
|||
|
|
if (action !== "close") {
|
|||
|
|
vm.isNew = true;
|
|||
|
|
vm.filter_check_dev = "";
|
|||
|
|
vm.filter_c = "";
|
|||
|
|
vm.filter_q = "";
|
|||
|
|
vm.filter_all_dev = "";
|
|||
|
|
vm.filter_all_dev_type = "name";
|
|||
|
|
vm.step = true;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
} else {
|
|||
|
|
this.substep = 0;
|
|||
|
|
this.step = true;
|
|||
|
|
}
|
|||
|
|
} else if (v == "1-2") {
|
|||
|
|
this.reportFilesPanel = true;
|
|||
|
|
this.isSave = false;
|
|||
|
|
} else if (v == "1-3") {
|
|||
|
|
var obj = JSON.parse(
|
|||
|
|
JSON.stringify({
|
|||
|
|
vm: vm.$data
|
|||
|
|
})
|
|||
|
|
);
|
|||
|
|
deleteReportFileItem(obj);
|
|||
|
|
if (!vm.openedFile.treeCode) {
|
|||
|
|
vm.reportFilesPanel = true;
|
|||
|
|
vm.isSave = true;
|
|||
|
|
} else {
|
|||
|
|
this.$confirm(
|
|||
|
|
this.i18n.js.saveept + '"' + vm.openedFile.name + '"?',
|
|||
|
|
"",
|
|||
|
|
{
|
|||
|
|
confirmButtonText: this.i18n.js.saveupd,
|
|||
|
|
cancelButtonText: this.i18n.js.openrpt,
|
|||
|
|
type: "warning",
|
|||
|
|
callback: function(action, instance) {
|
|||
|
|
if (action == "cancel") {
|
|||
|
|
vm.reportFilesPanel = true;
|
|||
|
|
vm.isSave = true;
|
|||
|
|
} else {
|
|||
|
|
vm.openedFile.fileDetail = JSON.stringify(obj);
|
|||
|
|
auReport(vm.openedFile);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
} else if (v == "1-4") {
|
|||
|
|
// this.newFile=true;
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
/*右侧选项卡*/
|
|||
|
|
tabClick: function() {},
|
|||
|
|
|
|||
|
|
/*属性*begin*/
|
|||
|
|
querySearchFont: function(str, fn) {
|
|||
|
|
fn([
|
|||
|
|
{
|
|||
|
|
name: this.i18n.js.simsun,
|
|||
|
|
value: this.i18n.js.simsun,
|
|||
|
|
v: "SimSun"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
name: this.i18n.js.nsimsun,
|
|||
|
|
value: this.i18n.js.nsimsun,
|
|||
|
|
v: "NSimSun"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
name: this.i18n.js.fangsong,
|
|||
|
|
value: this.i18n.js.fangsong,
|
|||
|
|
v: "FangSong"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
name: this.i18n.js.kaiti,
|
|||
|
|
value: this.i18n.js.kaiti,
|
|||
|
|
v: "KaiTi"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
name: this.i18n.js.simhei,
|
|||
|
|
value: this.i18n.js.simhei,
|
|||
|
|
v: "SimHei"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
name: this.i18n.js.yahei,
|
|||
|
|
value: this.i18n.js.yahei,
|
|||
|
|
v: "Microsoft YaHei"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
name: "Arial",
|
|||
|
|
value: "Arial",
|
|||
|
|
v: "Arial"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
name: "Arial Black",
|
|||
|
|
value: "Arial Black",
|
|||
|
|
v: "Arial Black"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
name: "Times New Roman",
|
|||
|
|
value: "Times New Roman",
|
|||
|
|
v: "Times New Roman"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
name: "Courier New",
|
|||
|
|
value: "Courier New",
|
|||
|
|
v: "Courier New"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
name: "Tahoma",
|
|||
|
|
value: "Tahoma",
|
|||
|
|
v: "Tahoma"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
name: "Verdana",
|
|||
|
|
value: "Verdana",
|
|||
|
|
v: "Verdana"
|
|||
|
|
}
|
|||
|
|
]);
|
|||
|
|
},
|
|||
|
|
querySearchSize: function(str, fn) {
|
|||
|
|
fn([
|
|||
|
|
{
|
|||
|
|
value: "12px"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
value: "14px"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
value: "22px"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
value: "30px"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
value: "46px"
|
|||
|
|
}
|
|||
|
|
]);
|
|||
|
|
},
|
|||
|
|
handleComplete: function() {},
|
|||
|
|
handleIconClick5: function() {
|
|||
|
|
this.state5 = "";
|
|||
|
|
},
|
|||
|
|
handleIconClick6: function() {
|
|||
|
|
this.state6 = "";
|
|||
|
|
},
|
|||
|
|
changeStyle: function(obj) {
|
|||
|
|
this.sidetabs = "table";
|
|||
|
|
this.radio_form = obj;
|
|||
|
|
},
|
|||
|
|
changeTbtitleName: function() {
|
|||
|
|
this.$nextTick(function() {
|
|||
|
|
var text = this.i18n.js.report;
|
|||
|
|
this.tb_title.name = this.sketch.name;
|
|||
|
|
if (
|
|||
|
|
this.tb_title.name.toLowerCase().indexOf(text.toLowerCase()) === -1
|
|||
|
|
) {
|
|||
|
|
this.tb_title.name = this.tb_title.name + text;
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
watch: {
|
|||
|
|
all_dev: {
|
|||
|
|
handler(nv) {
|
|||
|
|
if (nv.length === 0) {
|
|||
|
|
this.devStrict = false;
|
|||
|
|
} else {
|
|||
|
|
// setTimeout(() => {
|
|||
|
|
// vm.devStrict = true;
|
|||
|
|
// }, 300);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
checked_contrast_index: function(nv, ov) {
|
|||
|
|
//什么原因让数组转成了true呢?
|
|||
|
|
if (nv instanceof Array) {
|
|||
|
|
} else {
|
|||
|
|
this.checked_contrast_index = ov;
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
default_e: function(nv) {
|
|||
|
|
var fn = function(nodes) {
|
|||
|
|
for (var i = 0; i < nodes.length; i++) {
|
|||
|
|
var d = nodes[i];
|
|||
|
|
if (d.nodetype == "dev_type") {
|
|||
|
|
fn(d.children);
|
|||
|
|
} else if (d.nodetype == "dev") {
|
|||
|
|
d.e = nv;
|
|||
|
|
} else {
|
|||
|
|
continue;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
if (nv && !isNaN(nv)) {
|
|||
|
|
fn(vm.dev_tree);
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
cols_parent: function(nv) {
|
|||
|
|
var arr = this.devtree_to_option;
|
|||
|
|
this.protree_to_option = [];
|
|||
|
|
Array.prototype.push.apply(vm.protree_to_option, arr[nv].children);
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
checked_dev_index: function(nv) {
|
|||
|
|
var v = this.check_dev[nv];
|
|||
|
|
if (!v) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
this.dev_name_text = v.label;
|
|||
|
|
this.dev_code_text = v.code;
|
|||
|
|
this.dev_e = v.e;
|
|||
|
|
this.edit_node_type = v.nodetype;
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
radio_form: function(nv, no) {
|
|||
|
|
vm.form = vm[nv];
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
show_field: function(val) {
|
|||
|
|
/*切换树的显示方式*/
|
|||
|
|
this.$set(vm.dev_field, "label", val ? "code" : "label");
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
dev_tree: function(nv, ov) {
|
|||
|
|
if (reiniting) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//同步弹窗的树
|
|||
|
|
var newValue = JSON.stringify(nv);
|
|||
|
|
//生成表头数据
|
|||
|
|
var data = dataOp(JSON.parse(newValue), "x_tree");
|
|||
|
|
this.dev_map = getLastNode(JSON.parse(newValue));
|
|||
|
|
var style = this.border_style + ";" + this.th_style;
|
|||
|
|
var width_td = "";
|
|||
|
|
if (this.time_map.length > 0) {
|
|||
|
|
var tree = dataOp(JSON.parse(JSON.stringify(vm.time_tree)), "y_tree");
|
|||
|
|
var head, body;
|
|||
|
|
if (this.cur_report_style.value == 0) {
|
|||
|
|
width_td = widthTd(tree.length, vm.dev_map.length);
|
|||
|
|
//横向
|
|||
|
|
head = creatTHRow(data, tree.length, style).str;
|
|||
|
|
body = creatTHCol(
|
|||
|
|
tree,
|
|||
|
|
new Array(vm.dev_map.length + 1).join(
|
|||
|
|
'<td style="' + this.border_style + '"><div> </div></td>'
|
|||
|
|
),
|
|||
|
|
style
|
|||
|
|
);
|
|||
|
|
} else {
|
|||
|
|
console.log(data,vm.time_map)
|
|||
|
|
width_td = widthTd(data.length, vm.time_map.length);
|
|||
|
|
//纵向
|
|||
|
|
head = creatTHRow(tree, data.length, style).str;
|
|||
|
|
body = creatTHCol(
|
|||
|
|
data,
|
|||
|
|
new Array(vm.time_map.length + 1).join(
|
|||
|
|
'<td style="' + this.border_style + '"><div> </div></td>'
|
|||
|
|
),
|
|||
|
|
style
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
this.table =
|
|||
|
|
"<thead>" +
|
|||
|
|
width_td +
|
|||
|
|
head +
|
|||
|
|
"</thead>" +
|
|||
|
|
"<tbody>" +
|
|||
|
|
body +
|
|||
|
|
"</tbody>";
|
|||
|
|
}
|
|||
|
|
for (var i = 0, sum = 0; i < vm.cols_width.length; i++) {
|
|||
|
|
sum += vm.cols_width[i] * 1;
|
|||
|
|
}
|
|||
|
|
vm.tb_width = sum + "px";
|
|||
|
|
setTimeout(function() {
|
|||
|
|
document.getElementById("table").style.width = vm.tb_width;
|
|||
|
|
}, 20);
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
time_tree: function(nv, ov) {
|
|||
|
|
if (reiniting) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
var newValue = JSON.stringify(nv);
|
|||
|
|
//生成表头数据
|
|||
|
|
var data = dataOp(JSON.parse(newValue), "y_tree");
|
|||
|
|
this.time_map = getLastNode(JSON.parse(newValue));
|
|||
|
|
var style = this.border_style + ";" + this.th_style;
|
|||
|
|
var width_td = "";
|
|||
|
|
if (this.dev_map.length > 0) {
|
|||
|
|
var tree = dataOp(JSON.parse(JSON.stringify(vm.dev_tree)), "x_tree");
|
|||
|
|
var tds = new Array(vm.time_map.length + 1).join(
|
|||
|
|
'<td style="' + this.border_style + '"><div> </div></td>'
|
|||
|
|
);
|
|||
|
|
var head, body;
|
|||
|
|
if (this.cur_report_style.value != 0) {
|
|||
|
|
width_td = widthTd(tree.length, vm.time_map.length);
|
|||
|
|
//纵向
|
|||
|
|
head = creatTHRow(data, tree.length, style).str;
|
|||
|
|
body = creatTHCol(
|
|||
|
|
tree,
|
|||
|
|
new Array(vm.time_map.length + 1).join(
|
|||
|
|
'<td style="' + this.border_style + '"><div> </div></td>'
|
|||
|
|
),
|
|||
|
|
style
|
|||
|
|
);
|
|||
|
|
} else {
|
|||
|
|
width_td = widthTd(data.length, vm.dev_map.length);
|
|||
|
|
//横向
|
|||
|
|
head = creatTHRow(tree, data.length, style).str;
|
|||
|
|
body = creatTHCol(
|
|||
|
|
data,
|
|||
|
|
new Array(vm.dev_map.length + 1).join(
|
|||
|
|
'<td style="' + this.border_style + '"><div> </div></td>'
|
|||
|
|
),
|
|||
|
|
style
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
this.table =
|
|||
|
|
"<thead>" +
|
|||
|
|
width_td +
|
|||
|
|
head +
|
|||
|
|
"</thead>" +
|
|||
|
|
"<tbody>" +
|
|||
|
|
body +
|
|||
|
|
"</tbody>";
|
|||
|
|
}
|
|||
|
|
for (var i = 0, sum = 0; i < vm.cols_width.length; i++) {
|
|||
|
|
sum += vm.cols_width[i] * 1;
|
|||
|
|
}
|
|||
|
|
vm.tb_width = sum + "px";
|
|||
|
|
setTimeout(function() {
|
|||
|
|
document.getElementById("table").style.width = vm.tb_width;
|
|||
|
|
}, 20);
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
created: function() {
|
|||
|
|
var vm = this;
|
|||
|
|
var language = i18n();
|
|||
|
|
//中英文
|
|||
|
|
axios
|
|||
|
|
.get("../locales/" + language + "/report.json")
|
|||
|
|
.then(function(res) {
|
|||
|
|
vm.i18n = res.data;
|
|||
|
|
init(vm);
|
|||
|
|
vm.check_off = vm.i18n.js.fullsel;
|
|||
|
|
vm.tb_title.name = vm.i18n.js.tbttle;
|
|||
|
|
vm.tb_title.font_family = vm.i18n.js.yahei;
|
|||
|
|
vm.tb_sub.name = vm.i18n.js.tbsubtle;
|
|||
|
|
vm.tb_sub.font_family = vm.i18n.js.yahei;
|
|||
|
|
vm.tb_detailed_1.name = vm.i18n.js.defincontent;
|
|||
|
|
vm.tb_detailed_1.font_family = vm.i18n.js.yahei;
|
|||
|
|
vm.tb_detailed_2.name = vm.i18n.js.tbcode;
|
|||
|
|
vm.tb_detailed_2.font_family = vm.i18n.js.yahei;
|
|||
|
|
vm.tb_detailed_3.name =
|
|||
|
|
vm.i18n.js.watchmakingTime + ":" + new Date().toLocaleDateString();
|
|||
|
|
vm.tb_detailed_3.font_family = vm.i18n.js.yahei;
|
|||
|
|
vm.tb_detailed_4.name =
|
|||
|
|
vm.i18n.js.watchmaker + ":" + (sessionStorage.getItem("name") || "");
|
|||
|
|
vm.tb_detailed_4.font_family = vm.i18n.js.yahei;
|
|||
|
|
vm.border_type_list = [
|
|||
|
|
{
|
|||
|
|
label: vm.i18n.js.solid,
|
|||
|
|
value: "solid"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
label: vm.i18n.js.dotted,
|
|||
|
|
value: "dotted"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
label: vm.i18n.js.dashed,
|
|||
|
|
value: "dashed"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
label: vm.i18n.js.double,
|
|||
|
|
value: "double"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
label: vm.i18n.js.groove,
|
|||
|
|
value: "groove"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
label: vm.i18n.js.ridge,
|
|||
|
|
value: "ridge"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
label: vm.i18n.js.inset,
|
|||
|
|
value: "inset"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
label: vm.i18n.js.outset,
|
|||
|
|
value: "outset"
|
|||
|
|
}
|
|||
|
|
];
|
|||
|
|
vm.reportFiles[0].label = vm.i18n.js.report;
|
|||
|
|
vm.reportModes[0].label = vm.i18n.js.model;
|
|||
|
|
vm.reportModes[0].children[0].label = vm.i18n.js.model + "1";
|
|||
|
|
vm.dateLabelStart = vm.i18n.excel.startlabel;
|
|||
|
|
vm.dateLabelEnd = vm.i18n.excel.endlabel;
|
|||
|
|
})
|
|||
|
|
.catch(function(err) {});
|
|||
|
|
/*对比*/
|
|||
|
|
this.contrasts = getAllContrasts();
|
|||
|
|
/*统计*/
|
|||
|
|
this.all_totals = getALLTotals();
|
|||
|
|
|
|||
|
|
if (sessionStorage.getItem("reloadFlag") == "true") {
|
|||
|
|
this.step = true;
|
|||
|
|
sessionStorage.setItem("reloadFlag", false);
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
directives: {
|
|||
|
|
treefocus: {
|
|||
|
|
update: function(el, obj, newnode, oldnode) {
|
|||
|
|
var tag = el.getElementsByTagName("input")[0];
|
|||
|
|
tag.focus();
|
|||
|
|
|
|||
|
|
if (
|
|||
|
|
nv == ov &&
|
|||
|
|
vm.input_focus &&
|
|||
|
|
newnode.elm.style.display !== "none"
|
|||
|
|
) {
|
|||
|
|
var nv = newnode.data.props.value;
|
|||
|
|
var ov = oldnode.data.props.value;
|
|||
|
|
tag.select();
|
|||
|
|
vm.input_focus = false;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
resize: {
|
|||
|
|
// 指令的名称
|
|||
|
|
bind(el, binding) {
|
|||
|
|
// el为绑定的元素,binding为绑定给指令的对象
|
|||
|
|
var width = "",
|
|||
|
|
height = "";
|
|||
|
|
function isReize() {
|
|||
|
|
var style = document.defaultView.getComputedStyle(el);
|
|||
|
|
if (width !== style.width || height !== style.height) {
|
|||
|
|
binding.value(); // 关键
|
|||
|
|
}
|
|||
|
|
var o = vm.paper_size[vm.paper_type];
|
|||
|
|
width = style.width;
|
|||
|
|
height = style.height;
|
|||
|
|
var wsum = 1,
|
|||
|
|
hsum = 1;
|
|||
|
|
if (vm.paper_orientation == "col") {
|
|||
|
|
wsum = Math.ceil(parseFloat(width) / o.col);
|
|||
|
|
hsum = Math.ceil(parseFloat(height) / o.row);
|
|||
|
|
} else {
|
|||
|
|
wsum = Math.ceil(parseFloat(width) / o.row);
|
|||
|
|
hsum = Math.ceil(parseFloat(height) / o.col);
|
|||
|
|
}
|
|||
|
|
vm.paper_sum.width = wsum;
|
|||
|
|
vm.paper_sum.height = hsum;
|
|||
|
|
}
|
|||
|
|
el.__vueSetInterval__ = setInterval(isReize, 300);
|
|||
|
|
},
|
|||
|
|
unbind(el) {
|
|||
|
|
clearInterval(el.__vueSetInterval__);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
mounted: function() {
|
|||
|
|
var theme = "",
|
|||
|
|
href = "";
|
|||
|
|
if (this.userInfo) {
|
|||
|
|
//根据外层框架信息切换主题
|
|||
|
|
theme = this.userInfo.theme ? this.userInfo.theme : "";
|
|||
|
|
}
|
|||
|
|
if (theme == "dark-theme") {
|
|||
|
|
//深色主题
|
|||
|
|
href = "../css/dark/dark_design.css";
|
|||
|
|
addCSSFile(href);
|
|||
|
|
}
|
|||
|
|
if (theme == "default-theme") {
|
|||
|
|
//浅色主题
|
|||
|
|
href = "../css/light/light_design.css";
|
|||
|
|
addCSSFile(href);
|
|||
|
|
}
|
|||
|
|
this.radio_form = "tb_title";
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
function setStyle(form) {
|
|||
|
|
var style =
|
|||
|
|
"padding:" +
|
|||
|
|
form.top +
|
|||
|
|
"px " +
|
|||
|
|
form.right +
|
|||
|
|
"px " +
|
|||
|
|
form.bottom +
|
|||
|
|
"px " +
|
|||
|
|
form.left +
|
|||
|
|
"px " +
|
|||
|
|
";font-family:" +
|
|||
|
|
form.font_family +
|
|||
|
|
";color:" +
|
|||
|
|
form.font_color +
|
|||
|
|
";font-size:" +
|
|||
|
|
form.font_size +
|
|||
|
|
";text-align:" +
|
|||
|
|
form.align +
|
|||
|
|
";display:" +
|
|||
|
|
form.is_show;
|
|||
|
|
return style;
|
|||
|
|
}
|
|||
|
|
/**
|
|||
|
|
* @desc 去除自定义列
|
|||
|
|
*/
|
|||
|
|
function filterDefined(obj, code) {
|
|||
|
|
var o = [],
|
|||
|
|
index;
|
|||
|
|
for (var i = 0; i < obj.length; i++) {
|
|||
|
|
var ob = obj[i];
|
|||
|
|
if ((ob.code + "").indexOf("definedId") === -1) {
|
|||
|
|
o.push(ob);
|
|||
|
|
if (ob.children && ob.children.length > 0) {
|
|||
|
|
var _obj = filterDefined(ob.children, code);
|
|||
|
|
o[o.length - 1].children = _obj.node;
|
|||
|
|
if (index === undefined) {
|
|||
|
|
index = _obj.index;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
if (ob.code === code) {
|
|||
|
|
index = vm.formulas.length;
|
|||
|
|
vm.formulas_index = index;
|
|||
|
|
}
|
|||
|
|
vm.formulas.push(ob);
|
|||
|
|
vm.formulas["ind" + ob.code] = vm.formulas.length - 1;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return {
|
|||
|
|
node: o,
|
|||
|
|
index: index
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
//自动关闭提示
|
|||
|
|
function showTimeout(key, times) {
|
|||
|
|
setTimeout(function() {
|
|||
|
|
vm[key] = false;
|
|||
|
|
}, times * 1000);
|
|||
|
|
}
|
|||
|
|
//递归同步树公式数据
|
|||
|
|
function formulaTreeData(tree, formula) {
|
|||
|
|
for (var i = 0; i < tree.length; i++) {
|
|||
|
|
var len = formula["ind" + tree[i].code];
|
|||
|
|
if (len !== undefined) {
|
|||
|
|
tree[i].label = formula[len].label;
|
|||
|
|
tree[i].formula = formula[len].formula;
|
|||
|
|
}
|
|||
|
|
if (tree[i].children && tree[i].children.length > 0) {
|
|||
|
|
formulaTreeData(tree[i].children, formula);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//返回公式类型
|
|||
|
|
function getFormulaType(str) {
|
|||
|
|
if (!str) {
|
|||
|
|
str = "";
|
|||
|
|
}
|
|||
|
|
str += "";
|
|||
|
|
var len = str.indexOf("(");
|
|||
|
|
if (len === -1) {
|
|||
|
|
return "string";
|
|||
|
|
} else {
|
|||
|
|
var s = str.substr(0, len);
|
|||
|
|
return !s ? "defined" : s;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//拆解树形数据
|
|||
|
|
function dataOp(arr, tree, result) {
|
|||
|
|
if (result === undefined) {
|
|||
|
|
result = [];
|
|||
|
|
}
|
|||
|
|
var temp = [];
|
|||
|
|
result[result.length] = temp;
|
|||
|
|
for (var i = 0, t = []; i < arr.length; i++) {
|
|||
|
|
var node = vm.$refs[tree].getNode(arr[i]);
|
|||
|
|
if (node && node.visible === false) {
|
|||
|
|
continue;
|
|||
|
|
}
|
|||
|
|
temp.push(arr[i]);
|
|||
|
|
var child = arr[i].children;
|
|||
|
|
if (child instanceof Array && child.length > 0) {
|
|||
|
|
t = t.concat(child);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (t.length > 0) {
|
|||
|
|
return dataOp(t, tree, result);
|
|||
|
|
} else {
|
|||
|
|
return result;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//生成横向表头
|
|||
|
|
function creatTHRow(arr, collength, style) {
|
|||
|
|
var pid = {},
|
|||
|
|
ids = [],
|
|||
|
|
str = "",
|
|||
|
|
len = arr.length;
|
|||
|
|
for (var i = len - 1; i >= 0; i--) {
|
|||
|
|
ids[i] = [];
|
|||
|
|
var a = arr[i],
|
|||
|
|
_str = "";
|
|||
|
|
for (var k = 0; k < a.length; k++) {
|
|||
|
|
var t = a[k];
|
|||
|
|
if (vm.sketch.value === "tj" && t.nodetype == "property_value") {
|
|||
|
|
//统计时处理time_map
|
|||
|
|
var property = arr[i - 1].filter(function(v, i, a) {
|
|||
|
|
return v.tid == t.ptid;
|
|||
|
|
})[0];
|
|||
|
|
if (property) {
|
|||
|
|
t.pCode = property.code;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
pid[t.ptid] =
|
|||
|
|
(pid[t.ptid] === undefined ? 0 : pid[t.ptid]) +
|
|||
|
|
(pid[t.tid] === undefined ? 1 : pid[t.tid]);
|
|||
|
|
if (pid[t.tid] === undefined) {
|
|||
|
|
if (t.nodetype == "dev") {
|
|||
|
|
var _dis_ =
|
|||
|
|
vm.ck_dev && vm.cur_report_style.value == 0 ? ";display:none;" : "";
|
|||
|
|
} else {
|
|||
|
|
var _dis_ =
|
|||
|
|
vm.ck_sx && vm.cur_report_style.value == 0 ? ";display:none;" : "";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
_str +=
|
|||
|
|
"<th style='" +
|
|||
|
|
style +
|
|||
|
|
_dis_ +
|
|||
|
|
"' rowspan=" +
|
|||
|
|
(len - i) +
|
|||
|
|
"><div>" +
|
|||
|
|
(t.label || t.name) +
|
|||
|
|
"</div></th>";
|
|||
|
|
ids[i].push(t);
|
|||
|
|
} else {
|
|||
|
|
var _dis_ = t.nodetype == "dev" && vm.ck_dev ? ";display:none" : "";
|
|||
|
|
_str +=
|
|||
|
|
"<th style='" +
|
|||
|
|
style +
|
|||
|
|
_dis_ +
|
|||
|
|
";' colspan=" +
|
|||
|
|
pid[t.tid] +
|
|||
|
|
"><div>" +
|
|||
|
|
(t.label || t.name) +
|
|||
|
|
"</div></th>";
|
|||
|
|
if (ids[i + 1] !== undefined) {
|
|||
|
|
ids[i] = ids[i].concat(ids[i].splice(0, pid[t.tid]));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (i > 0) {
|
|||
|
|
var tr = "<tr>";
|
|||
|
|
} else {
|
|||
|
|
vm.ck_sx && vm.cur_report_style.value != 0 && collength--; //如果隐藏测点属性
|
|||
|
|
vm.ck_dev && vm.cur_report_style.value != 0 && collength--; //如果隐藏设备
|
|||
|
|
var tr =
|
|||
|
|
'<tr><th style="' +
|
|||
|
|
style +
|
|||
|
|
'" rowspan="' +
|
|||
|
|
len +
|
|||
|
|
'" colspan="' +
|
|||
|
|
collength +
|
|||
|
|
'"><div>' +
|
|||
|
|
vm.table_y_name +
|
|||
|
|
"</div></th>";
|
|||
|
|
}
|
|||
|
|
str = tr + _str + "</tr>" + str;
|
|||
|
|
}
|
|||
|
|
return {
|
|||
|
|
str: str,
|
|||
|
|
arr: ids[0]
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
//生成纵向表头
|
|||
|
|
function creatTHCol(arr, n, style) {
|
|||
|
|
var pid = {},
|
|||
|
|
ids = {},
|
|||
|
|
str = "",
|
|||
|
|
len = arr.length;
|
|||
|
|
for (var i = len - 1; i >= 0; i--) {
|
|||
|
|
var a = arr[i];
|
|||
|
|
for (var k = 0; k < a.length; k++) {
|
|||
|
|
var t = a[k];
|
|||
|
|
if (!t.ptid) {
|
|||
|
|
t.ptid = "root";
|
|||
|
|
}
|
|||
|
|
if (pid[t.ptid] === undefined) {
|
|||
|
|
pid[t.ptid] = 0;
|
|||
|
|
}
|
|||
|
|
pid[t.ptid] += pid[t.tid] === undefined ? 1 : pid[t.tid];
|
|||
|
|
var th = "";
|
|||
|
|
if (pid[t.tid] === undefined) {
|
|||
|
|
if (t.nodetype == "dev") {
|
|||
|
|
var _dis_ =
|
|||
|
|
vm.ck_dev && vm.cur_report_style.value != 0 ? ";display:none;" : "";
|
|||
|
|
} else {
|
|||
|
|
var _dis_ =
|
|||
|
|
vm.ck_sx && vm.cur_report_style.value != 0 ? ";display:none;" : "";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
th =
|
|||
|
|
'<th style="' +
|
|||
|
|
style +
|
|||
|
|
_dis_ +
|
|||
|
|
'" colspan="' +
|
|||
|
|
(len - i) +
|
|||
|
|
'"><div>' +
|
|||
|
|
(t.label || t.name) +
|
|||
|
|
"</div></th>";
|
|||
|
|
if (pid[t.ptid] == 1) {
|
|||
|
|
ids[t.ptid] = [];
|
|||
|
|
}
|
|||
|
|
var row =
|
|||
|
|
(pid[t.ptid] != 1 || i == 0 ? "<tr>" : "") +
|
|||
|
|
th +
|
|||
|
|
getNormalTd(t) +
|
|||
|
|
"</tr>";
|
|||
|
|
ids[t.ptid].push(row);
|
|||
|
|
|
|||
|
|
if (i == 0) {
|
|||
|
|
str += row;
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
var _dis_ = t.nodetype == "dev" && vm.ck_dev ? ";display:none" : "";
|
|||
|
|
th =
|
|||
|
|
'<th style="' +
|
|||
|
|
style +
|
|||
|
|
_dis_ +
|
|||
|
|
'" rowspan="' +
|
|||
|
|
pid[t.tid] +
|
|||
|
|
'"><div>' +
|
|||
|
|
(t.label || t.name) +
|
|||
|
|
"</div></th>";
|
|||
|
|
if (i == 0) {
|
|||
|
|
ids[t.tid][0] = "<tr>" + th + ids[t.tid][0];
|
|||
|
|
str += ids[t.tid].join("");
|
|||
|
|
} else {
|
|||
|
|
if (ids[t.ptid] === undefined) {
|
|||
|
|
ids[t.ptid] = [];
|
|||
|
|
ids[t.tid][0] = th + ids[t.tid][0];
|
|||
|
|
} else {
|
|||
|
|
ids[t.tid][0] = "<tr>" + th + ids[t.tid][0];
|
|||
|
|
}
|
|||
|
|
ids[t.ptid] = ids[t.ptid].concat(ids[t.tid]);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return str;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//生成某一行td
|
|||
|
|
function getNormalTd(node) {
|
|||
|
|
var tds = "";
|
|||
|
|
var obj = vm.devHasCD;
|
|||
|
|
var isRow = vm.cur_report_style.value == 0; //判断是横向报表还是纵向报表
|
|||
|
|
var reportType = vm.sketch.value; //判断是不是统计报表
|
|||
|
|
// console.log(isRow, reportType);
|
|||
|
|
// console.log(vm.dev_map);
|
|||
|
|
// console.log(vm.time_map);
|
|||
|
|
if (isRow) {
|
|||
|
|
if (reportType === "tj") {
|
|||
|
|
// console.log("横向统计",node);
|
|||
|
|
tds = vm.dev_map.reduce(function(o, v, i) {
|
|||
|
|
o +=
|
|||
|
|
'<td style="' +
|
|||
|
|
vm.border_style +
|
|||
|
|
'"><div>' +
|
|||
|
|
(obj[v.code] && obj[v.code][node.pCode] ? " " : "\\") +
|
|||
|
|
"</div></td>";
|
|||
|
|
if (obj[v.code] && obj[v.code][node.pCode]) {
|
|||
|
|
obj[v.code][node.pCode] = true;
|
|||
|
|
}
|
|||
|
|
return o;
|
|||
|
|
}, "");
|
|||
|
|
} else {
|
|||
|
|
//横向逐时
|
|||
|
|
tds = vm.dev_map.reduce(function(o, v, i) {
|
|||
|
|
o +=
|
|||
|
|
'<td style="' +
|
|||
|
|
vm.border_style +
|
|||
|
|
'"><div>' +
|
|||
|
|
(v.isNotReal ? "\\" : " ") +
|
|||
|
|
"</div></td>";
|
|||
|
|
return o;
|
|||
|
|
}, "");
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
if (reportType === "tj") {
|
|||
|
|
tds = vm.time_map.reduce(function(o, v, i) {
|
|||
|
|
o +=
|
|||
|
|
'<td style="' +
|
|||
|
|
vm.border_style +
|
|||
|
|
'"><div>' +
|
|||
|
|
(obj[node.code] && obj[node.code][v.pCode] ? " " : "\\") +
|
|||
|
|
"</div></td>";
|
|||
|
|
if (obj[v.code] && obj[v.code][node.pCode]) {
|
|||
|
|
obj[v.code][node.pCode] = true;
|
|||
|
|
}
|
|||
|
|
return o;
|
|||
|
|
}, "");
|
|||
|
|
} else {
|
|||
|
|
//纵向逐时
|
|||
|
|
tds = new Array(vm.time_map.length + 1).join(
|
|||
|
|
'<td style="' +
|
|||
|
|
vm.border_style +
|
|||
|
|
'"><div>' +
|
|||
|
|
(node.isNotReal ? "\\" : " ") +
|
|||
|
|
"</div></td>"
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return tds;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//生成自己以及后代节点的tidh和ptid
|
|||
|
|
function changeTid(ptid, obj, num, arr) {
|
|||
|
|
var o = obj instanceof Array ? obj : [obj];
|
|||
|
|
if (ptid === undefined) {
|
|||
|
|
ptid = "root";
|
|||
|
|
}
|
|||
|
|
if (arr === undefined) {
|
|||
|
|
arr = {};
|
|||
|
|
}
|
|||
|
|
for (var i = 0; i < o.length; i++) {
|
|||
|
|
var t = o[i],
|
|||
|
|
id = "t_" + num++;
|
|||
|
|
if (arr[t.code] === undefined) {
|
|||
|
|
arr[t.code] = [t];
|
|||
|
|
} else {
|
|||
|
|
arr[t.code].push(t);
|
|||
|
|
}
|
|||
|
|
if (t.tid === undefined) {
|
|||
|
|
t.tid = id;
|
|||
|
|
t.ptid = ptid;
|
|||
|
|
}
|
|||
|
|
if (t.children instanceof Array && t.children.length > 0) {
|
|||
|
|
return changeTid(id, t.children, num, arr);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return num;
|
|||
|
|
}
|
|||
|
|
/*获取最末级节点数据*/
|
|||
|
|
function getLastNode(nodes) {
|
|||
|
|
var arr = [];
|
|||
|
|
for (var i = 0, len = nodes.length; i < len; i++) {
|
|||
|
|
var curNode = nodes[i];
|
|||
|
|
if (curNode.children instanceof Array && curNode.children.length > 0) {
|
|||
|
|
arr = arr.concat(getLastNode(curNode.children));
|
|||
|
|
} else {
|
|||
|
|
arr.push(curNode);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return arr;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
Math.roundFixed = function(num, n) {
|
|||
|
|
if (!n) {
|
|||
|
|
n = 2;
|
|||
|
|
}
|
|||
|
|
var cs = Math.pow(10, n);
|
|||
|
|
return Math.round(num * cs) / cs;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @desc 对象浅克隆
|
|||
|
|
* @param {object:要复制的对象} obj
|
|||
|
|
* @param {function:复制时处理的逻辑,缺省全部复制} fn
|
|||
|
|
*/
|
|||
|
|
function objClone(obj, fn) {
|
|||
|
|
var o = {};
|
|||
|
|
for (var k in obj) {
|
|||
|
|
if (typeof fn == "function") {
|
|||
|
|
fn(k, obj, o);
|
|||
|
|
} else {
|
|||
|
|
o[k] = obj[k];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return o;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @desc 初始化时处理tree数据
|
|||
|
|
* @param {*} arr
|
|||
|
|
*/
|
|||
|
|
function filterTree(arr) {
|
|||
|
|
if (!(arr instanceof Array)) {
|
|||
|
|
return arr;
|
|||
|
|
}
|
|||
|
|
for (var i = 0, obj = []; i < arr.length; i++) {
|
|||
|
|
arr[i] = Object.assign({}, arr[i]);
|
|||
|
|
if (arr[i].children && arr[i].children.length > 0) {
|
|||
|
|
obj = obj.concat(arr[i].children);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (obj.length > 0) {
|
|||
|
|
return filterTree(obj);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function deleteReportFileItem(obj) {
|
|||
|
|
//防止文件过大,过滤非必要保存的字段
|
|||
|
|
var saveKey = {
|
|||
|
|
// 向导
|
|||
|
|
devHasCD: 1,
|
|||
|
|
substep: 1,
|
|||
|
|
cur_report_type: 1,
|
|||
|
|
cur_report_style: 1,
|
|||
|
|
sketch_index: 1,
|
|||
|
|
report_s_month: 1,
|
|||
|
|
report_s_day: 1,
|
|||
|
|
report_s_hours: 1,
|
|||
|
|
report_interval: 1,
|
|||
|
|
check_station: 1,
|
|||
|
|
check_profession: 1,
|
|||
|
|
checked_node: 1,
|
|||
|
|
checked_total_index: 1,
|
|||
|
|
checked_total_all: 1,
|
|||
|
|
indeterminate: 1,
|
|||
|
|
devCheckedKeys: 1,
|
|||
|
|
checked_contrast_index: 1,
|
|||
|
|
totals: 1,
|
|||
|
|
ck_cd: 1,
|
|||
|
|
ck_dev:1,
|
|||
|
|
ck_sx: 1,
|
|||
|
|
cd_tid:1,
|
|||
|
|
// 页面
|
|||
|
|
table: 1,
|
|||
|
|
row_chang_color: 1,
|
|||
|
|
dev_tree: 1,
|
|||
|
|
time_tree: 1,
|
|||
|
|
dev_map: 1,
|
|||
|
|
time_map: 1,
|
|||
|
|
tb_title: 1,
|
|||
|
|
tb_sub: 1,
|
|||
|
|
tb_width: 1,
|
|||
|
|
tb_detailed_1: 1,
|
|||
|
|
tb_detailed_2: 1,
|
|||
|
|
tb_detailed_3: 1,
|
|||
|
|
tb_detailed_4: 1,
|
|||
|
|
// 数据配置
|
|||
|
|
data_point: 1,
|
|||
|
|
digits_fixed: 1,
|
|||
|
|
//其他配置
|
|||
|
|
report_bgcolor: 1,
|
|||
|
|
report_font: 1,
|
|||
|
|
report_size: 1,
|
|||
|
|
report_color: 1,
|
|||
|
|
report_textarea: 1,
|
|||
|
|
row_line_height: 1,
|
|||
|
|
row_chang_color: 1,
|
|||
|
|
border_type: 1,
|
|||
|
|
border_bgcolor: 1,
|
|||
|
|
border_zise: 1,
|
|||
|
|
th_bgcolor: 1,
|
|||
|
|
th_color: 1,
|
|||
|
|
//其他
|
|||
|
|
all_totals: 1,
|
|||
|
|
cols_width: 1,
|
|||
|
|
t_num: 1
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
for (var k in obj.vm) {
|
|||
|
|
if (saveKey[k] === undefined) {
|
|||
|
|
delete obj.vm[k];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function widthTd(th, td) {
|
|||
|
|
var ths = "";
|
|||
|
|
var tds = "";
|
|||
|
|
vm.cols_width.length = th + td;
|
|||
|
|
|
|||
|
|
var diff = (Number(vm.ck_sx)||0)+(Number(vm.ck_dev)||0);// 判断是否隐藏间隔信号或者隐藏属性(瞬时值,最大值这一行),
|
|||
|
|
|
|||
|
|
for (var i = 0; i < th - diff; i++) {
|
|||
|
|
vm.cols_width[i] = !vm.cols_width[i] ? 70 : vm.cols_width[i];
|
|||
|
|
ths += '<th style="width:' + vm.cols_width[i] + 'px;"></th>';
|
|||
|
|
}
|
|||
|
|
for (var j = 0; j < td; j++) {
|
|||
|
|
var n = i + j;
|
|||
|
|
vm.cols_width[n] = !vm.cols_width[n] ? 70 : vm.cols_width[n];
|
|||
|
|
tds += '<td style="width:' + vm.cols_width[n] + 'px;"></td>';
|
|||
|
|
}
|
|||
|
|
return '<tr class="udf-width">' + ths + tds + "</tr>";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function addCSSFile(href) {
|
|||
|
|
//引入css样式表
|
|||
|
|
var link = document.createElement("link");
|
|||
|
|
link.type = "text/css";
|
|||
|
|
link.rel = "stylesheet";
|
|||
|
|
link.href = href;
|
|||
|
|
document.getElementsByTagName("head")[0].appendChild(link);
|
|||
|
|
}
|