986 lines
70 KiB
HTML
986 lines
70 KiB
HTML
<!doctype html>
|
||
<html style="min-width:1200px;">
|
||
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||
<title>报表设计</title>
|
||
<link rel="shortcut icon" type="image/x-icon" href="../img/favicon.png">
|
||
<script src="../js/theme.js"></script>
|
||
<script id="themeStyle">
|
||
/*
|
||
*腾讯蓝白:TencentBlueWhite
|
||
*默认深蓝:DefaultDarkBlue
|
||
*
|
||
* */
|
||
|
||
(function(){
|
||
var filesName="TencentBlueWhite",d,arr=[];
|
||
var urlParam = decodeURIComponent(location.search);
|
||
if (urlParam.indexOf("theme") !== -1) {
|
||
arr = urlParam.substr(urlParam.indexOf("theme")).split(/[\=\&]/g);
|
||
}
|
||
getThemeJson({
|
||
async: false,
|
||
success: function(data) {
|
||
d = JSON.parse(data);
|
||
filesName = d[(arr&&arr[1])||d.theme].name;
|
||
},
|
||
error: function() {
|
||
console.error("获取主题失败");
|
||
}
|
||
});
|
||
|
||
var def_url="element.min.css";
|
||
if(!!filesName){
|
||
def_url=filesName+"/theme/index.css";
|
||
}
|
||
var link='';
|
||
link+='<link rel="stylesheet" type="text/css" href="../plugin/unpkg_ele/'+def_url+'"/>';
|
||
link+='<link rel="stylesheet" type="text/css" href="../css/theme/'+((arr&&arr[1])||d.theme)+'/design.min.css"/>';
|
||
document.getElementById('themeStyle').outerHTML=link;
|
||
|
||
})()
|
||
</script>
|
||
<!-- <link rel="stylesheet" type="text/css" href="../css/design.min.css"> -->
|
||
<script src="../plugin/jquery-3.7.0.min.js"></script>
|
||
<script src="../plugin/vue.min.js"></script>
|
||
<script src="../plugin/unpkg_ele/element.min.js"></script>
|
||
<script src="../plugin/unpkg_ele/cn.js"></script>
|
||
<script src="../plugin/unpkg_ele/en.js"></script>
|
||
<style>
|
||
.el-tree__drop-indicator{
|
||
left:0 !important;
|
||
}
|
||
.table-title,.table-sub,.table-head,.table-foot {
|
||
box-sizing: border-box;
|
||
}
|
||
</style>
|
||
</head>
|
||
|
||
<body>
|
||
<div v-clock id="app" class="layout">
|
||
<el-row class="main">
|
||
<el-col class="el-col-xg-19 el-col-ll-20" :xl="20" :lg="18" :md="18" :sm="18" :xs="18">
|
||
<div class="grid-content bg-purple-light">
|
||
<!-- 菜单 -->
|
||
<el-menu class="el-menu-demo" mode="horizontal" menu-trigger="click" unique-opened="true" @select="menuSelect"
|
||
:text-color="theme['$font-color']" :active-text-color="theme['$base-bgc']" :background-color="theme['$bg-color']">
|
||
<el-menu-item index='1-1'>{{i18n.t1_1}}</el-menu-item>
|
||
<el-menu-item index='1-2'>{{i18n.t1_2}}</el-menu-item>
|
||
<el-menu-item index='1-3'>{{i18n.t1_3}}</el-menu-item>
|
||
<el-menu-item index='4'>{{i18n.title4}}</el-menu-item>
|
||
<el-menu-item index='5' v-show="table!=tableInit">{{i18n.title5}}</el-menu-item>
|
||
</el-menu>
|
||
<!-- 表格 -->
|
||
<div class="main-content">
|
||
<ul class="paper" :style="'width:'+(paper_size[paper_type][paper_orientation]*paper_sum.width)+'px;'">
|
||
<template v-for="item in papers">
|
||
<li :style="item"></li>
|
||
</template>
|
||
</ul>
|
||
<div class="report-content" :style="panel_style">
|
||
<h2 class="table-title curpo" @click="changeStyle('tb_title')" :style="tb_title_style">
|
||
{{tb_title.name}}
|
||
</h2>
|
||
<h4 class="table-sub curpo" @click="changeStyle('tb_sub')" :style="tb_sub_style">
|
||
{{tb_sub.name}}
|
||
</h4>
|
||
<div class="table-head clearfix" style="width:100%;margin:auto">
|
||
<p class="tf-l curpo" @click="changeStyle('tb_detailed_1')" :style="tb_detailed_1_style">
|
||
{{tb_detailed_1.name}}
|
||
</p>
|
||
<p class="tf-r curpo" @click="changeStyle('tb_detailed_2')" :style="tb_detailed_2_style">
|
||
{{tb_detailed_2.name}}
|
||
</p>
|
||
</div>
|
||
<div class="table-content" style="min-width:100%;height:100%;">
|
||
<table v-resize="tableResize" :class="row_chang_color" id="table" v-html="table" style="border-collapse: collapse;"></table>
|
||
</div>
|
||
<div class="table-foot clearfix" style="width:100%;margin:auto">
|
||
<p class="tf-l curpo" @click="changeStyle('tb_detailed_3')" :style="tb_detailed_3_style">
|
||
{{tb_detailed_3.name}}
|
||
</p>
|
||
<p class="tf-r curpo" @click="changeStyle('tb_detailed_4')" :style="tb_detailed_4_style">
|
||
{{tb_detailed_4.name}}
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</el-col>
|
||
<el-col class="el-col-xg-5 el-col-ll-4" :xl="4" :lg="6" :md="6" :sm="6" :xs="6">
|
||
<el-tabs v-if="i18n.side" class="panel-white" v-model="sidetabs" @tab-click="tabClick" style="height:100%;border-color:#10386C;position: relative;">
|
||
<el-tab-pane :label="i18n.side[0][0]" name="dev" style="padding-top:22px;">
|
||
<div style="position:absolute;top:12px;margin-left:8px;background-color: transparent;">
|
||
<el-button-group style="width: 100%;background-color: transparent;">
|
||
<el-button type="primary" size="small" plain icon="el-icon-refresh" :title="i18n.side[0][1]"
|
||
@click="expendDev"></el-button>
|
||
<el-button type="primary" size="small" plain icon="el-icon-view" :title="i18n.side[0][2]"
|
||
@click="show_field=(show_field==false?true:false)"></el-button>
|
||
<el-button type="primary" size="small" plain icon="el-icon-sort" :title="i18n.side[0][3]"
|
||
@click="transposition"></el-button>
|
||
<el-button type="primary" size="small" plain icon="el-icon-menu" :title="i18n.side[0][4]"
|
||
@click="returnBack"></el-button>
|
||
<el-button type="primary" size="small" plain icon="el-icon-plus" :title="i18n.side[0][5]"
|
||
@click="addFormula" v-show="sketch.value == 'sy'"></el-button>
|
||
<el-button type="primary" size="small" plain icon="el-icon-more" :title="i18n.side[0][6]"
|
||
@click="dataConfig=true"></el-button>
|
||
</el-button-group>
|
||
</div>
|
||
<el-tree ref="x_tree" :data='dev_tree' node-key='tid' :expand-on-click-node="false"
|
||
:filter-node-method="filterXNode" check-on-click-node="true" style="margin-top:10px;background-color: transparent;"
|
||
draggable :allow-drop='allowDrop' @node-drop="nodeDrop">
|
||
<span class="custom-tree-node" slot-scope="{node,data}">
|
||
<span v-html="data[dev_field.label]" style="min-width:132px;"></span>
|
||
<span style="margin-left:20px;">
|
||
<el-button-group>
|
||
<el-button v-show="data.devType!==undefined" @click="editXNode(node,data)"
|
||
class="min-padding" type="text" size='mini' icon="el-icon-edit"></el-button>
|
||
<!-- <el-button v-show="data.devType!==undefined" @click="addXNode(node,data)" class="min-padding" type="text" size='mini' icon="el-icon-plus"></el-button> -->
|
||
<el-button class="min-padding" type="text" size='mini' icon="el-icon-delete"
|
||
@click="deleteNode(node,data)"></el-button>
|
||
</el-button-group>
|
||
</span>
|
||
</span>
|
||
</el-tree>
|
||
</el-tab-pane>
|
||
<el-tab-pane :label="i18n.side[0][7]" name="other">
|
||
<el-tree ref="y_tree" :data='time_tree' node-key='tid' :expand-on-click-node="false"
|
||
check-on-click-node="true" style="background-color: transparent;">
|
||
</el-tree>
|
||
</el-tab-pane>
|
||
<el-tab-pane :label="i18n.side[0][8]" name="table">
|
||
<el-radio-group v-model="radio_form" size="mini" class="form-util" style="margin-bottom:15px;">
|
||
<el-radio-button class="util-top" label="tb_title">{{i18n.side[1]}}</el-radio-button>
|
||
<el-radio-button class="util-top" label="tb_sub">{{i18n.side[2]}}</el-radio-button>
|
||
<el-radio-button class="util-top" label="tb_detailed_1">{{i18n.side[3]}}</el-radio-button>
|
||
<el-radio-button class="util-top" label="tb_detailed_2">{{i18n.side[4]}}</el-radio-button>
|
||
<el-radio-button class="util-top" label="tb_detailed_3">{{i18n.side[5]}}</el-radio-button>
|
||
<el-radio-button class="util-top" label="tb_detailed_4">{{i18n.side[6]}}</el-radio-button>
|
||
</el-radio-group>
|
||
<el-form ref="form" :mode="form" label-width="100%;" style="padding-left:20px;">
|
||
<el-form-item :label="i18n.side[0][9]">
|
||
<el-input v-model="form.name" style="width:216px;"></el-input>
|
||
</el-form-item>
|
||
<el-form-item :label="i18n.side[0][10]">
|
||
<el-radio-group v-model="form.is_show" size="small">
|
||
<el-radio-button label="none">{{i18n.side[7]}}</el-radio-button>
|
||
<el-radio-button label="block">{{i18n.side[8]}}</el-radio-button>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
<el-form-item :label="i18n.side[0][11]" class="pading-l-r-5">
|
||
<el-tooltip :content="i18n.side[0][12]" placement="top" effect="light">
|
||
<el-input-number :controls="false" v-model="form.top" :placeholder="i18n.side[0][16]"
|
||
style="width:40px;"></el-input-number>
|
||
</el-tooltip>
|
||
<el-tooltip :content="i18n.side[0][13]" placement="top" effect="light">
|
||
<el-input-number :controls="false" v-model="form.right" :placeholder="i18n.side[0][17]"
|
||
style="width:40px;"></el-input-number>
|
||
</el-tooltip>
|
||
<el-tooltip :content="i18n.side[0][14]" placement="top" effect="light">
|
||
<el-input-number :controls="false" v-model="form.bottom" :placeholder="i18n.side[0][18]"
|
||
style="width:40px;"></el-input-number>
|
||
</el-tooltip>
|
||
<el-tooltip :content="i18n.side[0][15]" placement="top" effect="light">
|
||
<el-input-number :controls="false" v-model="form.left" :placeholder="i18n.side[0][19]"
|
||
style="width:40px;"></el-input-number>
|
||
</el-tooltip>
|
||
px
|
||
</el-form-item>
|
||
<el-form-item :label="i18n.side[0][20]">
|
||
<el-autocomplete popper-class="my-autocomplete" v-model="form.font_family"
|
||
:fetch-suggestions="querySearchFont" :placeholder="i18n.side[0][21]" @select="handleComplete">
|
||
<i class="el-icon-edit el-input__icon" slot="suffix"></i>
|
||
<template slot-scope="{item}">
|
||
<div class="name">{{item.name}}</div>
|
||
</template>
|
||
</el-autocomplete>
|
||
</el-form-item>
|
||
<el-form-item :label="i18n.side[0][22]">
|
||
<el-input v-model="form.font_color" :placeholder="i18n.side[0][23]" style="width:170px;"></el-input>
|
||
<el-color-picker v-model="form.font_color"></el-color-picker>
|
||
</el-form-item>
|
||
<el-form-item :label="i18n.side[0][24]">
|
||
<el-autocomplete popper-class="my-autocomplete" v-model="form.font_size"
|
||
:fetch-suggestions="querySearchSize" :placeholder="i18n.side[0][25]" @select="handleComplete">
|
||
<i class="el-icon-edit el-input__icon" slot="suffix"></i>
|
||
<template slot-scope="{item}">
|
||
<div class="name">{{item.value}}</div>
|
||
</template>
|
||
</el-autocomplete>
|
||
</el-form-item>
|
||
<el-form-item :label="i18n.side[0][26]" v-show="radio_form=='tb_title'||radio_form=='tb_sub'">
|
||
<el-radio-group v-model="form.align" size="small">
|
||
<el-radio-button label="left">{{i18n.side[9]}}</el-radio-button>
|
||
<el-radio-button label="center">{{i18n.side[10]}}</el-radio-button>
|
||
<el-radio-button label="right">{{i18n.side[11]}}</el-radio-button>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
</el-form>
|
||
</el-tab-pane>
|
||
</el-tabs>
|
||
</el-col>
|
||
</el-row>
|
||
<!--****************弹框********************-->
|
||
<!-- 向导 -->
|
||
<el-dialog v-if="i18n.sept" title="" width="728px" :visible.sync="step" :center="'true'" :close-on-click-modal="false">
|
||
<!-- 选择报表类型 -->
|
||
<div v-show="substep<100" class="step" style="width:445px;margin:auto;">
|
||
<h4>{{i18n.sept[1]}}</h4>
|
||
<div class="btn-list">
|
||
<template v-for="(i,n) of report_types">
|
||
<el-button type="primary" :plain="cur_report_type.value!==i.value" style="width:138px;" @click="setTableType(i)">{{i.name}}</el-button>
|
||
<p v-if="(n+1)%3==0" style="padding-top:14px;"></p>
|
||
</template>
|
||
</div>
|
||
<div class="btns" style="margin: 30px auto 10px;">
|
||
<div></div>
|
||
<el-button type="primary" size="small" @click="goSec" style="width:108px;">{{i18n.sept[2]}}</el-button>
|
||
</div>
|
||
</div>
|
||
<!-- 选择具体类型 -->
|
||
<div v-show="substep>=100&&substep<200" class="step" style="width:445px;margin:auto;">
|
||
<h4>{{cur_report_type.name}}{{i18n.sept[4]}}</h4>
|
||
<div>
|
||
<el-radio-group v-model="sketch_index" @change="changeReportType">
|
||
<template v-for="(i,n) of cur_report_type.type">
|
||
<el-radio :label="n" style="width:180px">{{i.name}}</el-radio>
|
||
<p v-if="(n+1)%2==0" style="padding-top:14px;"></p>
|
||
</template>
|
||
</el-radio-group>
|
||
</div>
|
||
<div>
|
||
<p>
|
||
{{i18n.sept[5]}}:
|
||
<el-select v-if="cur_report_type.value=='year'" v-model="report_s_month" :placeholder="i18n.sept[0][0]"
|
||
:disabled="selectDesabled" style="width:112px;">
|
||
<el-option v-for="i in 12" :key="i" :value="-i" :label="i18n.sept[0][3]+i+i18n.sept[0][8]"></el-option>
|
||
<el-option v-for="i in 12" :key="i" :value="i" :label="i18n.sept[0][4]+i+i18n.sept[0][8]"></el-option>
|
||
</el-select>
|
||
<el-select v-if="cur_report_type.value!=='day'&&cur_report_type.value!=='td'&&cur_report_type.value!=='udf'"
|
||
:disabled="selectDesabled" v-model="report_s_day" :placeholder="i18n.sept[0][1]" style="width:112px;">
|
||
<el-option v-if="cur_report_type.value!=='udf'&&cur_report_type.value!=='year'&&cur_report_type.value!=='tm'"
|
||
v-for="i in 31" :key="i" :value="-i" :label="i18n.sept[0][5]+i+i18n.sept[0][9]"></el-option>
|
||
<el-option v-for="i in 31" :key="i" :value="i" :label="(cur_report_type.value!=='udf'&&cur_report_type.value!=='year'&&cur_report_type.value!=='tm'?i18n.sept[0][10]:'')+i+i18n.sept[0][9]"></el-option>
|
||
</el-select>
|
||
<el-select :disabled="selectDesabled" v-model="report_s_hours" :placeholder="i18n.sept[0][2]"
|
||
:style="cur_report_type.value!=='day'&&cur_report_type.value!=='td'&&cur_report_type.value!=='udf'?'width:112px;':''">
|
||
<el-option v-if="cur_report_type.value=='day'||cur_report_type.value=='td'" v-for="i in 23"
|
||
:key="i" :value="-i" :label="i18n.sept[0][6]+i+':00'"></el-option>
|
||
<el-option v-for="i in 24" :key="i-1" :value="i-1" :label="(cur_report_type.value=='day'||cur_report_type.value=='td'?(i18n.sept[0][7]):'')+(i-1)+':00'"></el-option>
|
||
</el-select>
|
||
</p>
|
||
<p v-if="cur_report_type.value=='udf'||cur_report_type.value=='day'">
|
||
{{i18n.sept[6]}}:
|
||
<el-select :disabled="sketchDesabled" v-model="report_interval" allow-create filterable
|
||
default-first-option :placeholder="i18n.sept[0][11]">
|
||
<el-option v-for="item in reportInterval" :key="item.value" :label="item.label" :value="item.value">
|
||
</el-option>
|
||
</el-select>
|
||
</p>
|
||
</div>
|
||
<div class="btns" style="margin: 30px auto 10px;">
|
||
<el-button type="primary" plain size="small" style="width:108px;" @click="substep=substep-100">{{i18n.sept[3]}}</el-button>
|
||
<el-button type="primary" size="small" @click="goStyle" style="width:108px;">{{i18n.sept[2]}}</el-button>
|
||
</div>
|
||
</div>
|
||
<!-- 选择报表样式 -->
|
||
<div v-show="substep>=200&&substep<300" class="step" style="width:445px;margin:auto;">
|
||
<h4>{{i18n.sept[7]}}</h4>
|
||
<div>
|
||
<ul class="ul-row">
|
||
<li v-for="(item,index) in report_style">
|
||
<img :src="item.img" alt="" width="150px">
|
||
<p>{{item.name}}</p>
|
||
<a :class="cur_report_style.value==item.value?'cur':''" href="javascript:;" @click="cur_report_style=item"></a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="btns" style="margin: 30px auto 10px;">
|
||
<el-button type="primary" plain size="small" style="width:108px;" @click="substep=substep-100">{{i18n.sept[3]}}</el-button>
|
||
<el-button type="primary" size="small" @click="substep=substep+100" style="width:108px;">{{i18n.sept[2]}}</el-button>
|
||
</div>
|
||
</div>
|
||
<!-- 选择设备 -->
|
||
<div v-show="substep>=300&&substep<400&&substep!==307" class="step" style="width:536px;margin:auto;">
|
||
<h4>{{i18n.sept[9]}}</h4>
|
||
<div style="padding:20px 0;">
|
||
<p class="p-input">
|
||
<!-- i18n.sept[10] -->
|
||
<span v-if="profession.length>0">{{profession_info.label}}:</span>
|
||
<el-select v-if="profession.length>0&&profession_info.type=='list'" v-model="check_profession"
|
||
size="small" :placeholder="i18n.sept[0][12]" @change="postDev">
|
||
<el-option v-for="i in profession" :key="i.code" :value="i.id" :label="i.label"></el-option>
|
||
</el-select>
|
||
<el-input v-if="profession_info.type=='tree'" v-model="check_profession"></el-input>
|
||
<!-- i18n.sept[11] -->
|
||
<span>{{station_info.label}}:</span>
|
||
<el-select v-if="station_info.type=='list'" v-model="check_station" size="small" :placeholder="i18n.sept[0][12]"
|
||
@change="postDev">
|
||
<el-option v-for="i in station" :key="i.code" :value="i.id" :label="i.label"></el-option>
|
||
</el-select>
|
||
<el-popover v-if="station_info.type=='tree'" v-model="stshow" placement="bottom" trigger="click">
|
||
<el-tree ref="stref" :data='station' default-expand-all :expand-on-click-node="false"
|
||
node-key='id' @node-click="simChange"></el-tree>
|
||
<el-button slot="reference" size="small" class="stationBtn">{{check_station_name}}</el-button>
|
||
<input type="hidden" v-model="check_station">
|
||
</el-popover>
|
||
</p>
|
||
<el-input v-model="filter_all_dev" :placeholder="i18n.sept[0][13]" class="input-with-select" @blur="filter_all_dev_enter"
|
||
@keyup.native.enter="filter_all_dev_enter">
|
||
<el-select v-model="filter_all_dev_type" slot="prepend" :placeholder="i18n.sept[0][14]" style="width:100px;">
|
||
<el-option :label="i18n.sept[0][14]" value="name"></el-option>
|
||
<el-option :label="i18n.sept[0][15]" value="code"></el-option>
|
||
</el-select>
|
||
<span class="el-icon-connection" slot="append" @click="filterConnection=!filterConnection"
|
||
:title="i18n['过滤规则']" :style="filterConnection?'color:#0ff':''"></span>
|
||
<span class="el-icon-view" slot="append" @click="changeFilterView" :title="i18n['编码或名称']"
|
||
:style="filterView?'color:#0ff;padding-left:10px':'padding-left:10px'"></span>
|
||
</el-input>
|
||
<div class="border" style="margin-top:10px;height:300px;overflow: auto;text-align:center;">
|
||
<i v-show="tree_loading" class="el-icon-loading" style="font-size: 30px;padding:50px;"></i>
|
||
<el-tree v-show="!tree_loading" ref="adev_tree" :filter-node-method="filterDevNode" :data='all_dev'
|
||
:default-checked-keys="devCheckedKeys" node-key='code' :check-strictly="devStrict"
|
||
:expand-on-click-node="false" check-on-click-node="true" :props="devTreeProps"
|
||
:show-checkbox="adev_check" @check="checkVisible" style="background-color: transparent;">
|
||
</el-tree>
|
||
</div>
|
||
<div style="margin-top:10px;display: flex;flex-direction: row;justify-content: space-between;flex-wrap: nowrap;">
|
||
<div>
|
||
<el-button type="primary" plain size="mini" @click="devTreeCheckeOn">{{i18n.sept[0][19]}}</el-button>
|
||
<el-button type="primary" plain size="mini" @click="devTreeCheckeOff">{{i18n.sept[0][20]}}</el-button>
|
||
</div>
|
||
<el-checkbox v-model="ck_gx">{{i18n.sept[12]}}</el-checkbox>
|
||
</div>
|
||
</div>
|
||
<div class="btns" style="margin: 20px auto 10px;">
|
||
<el-button type="primary" plain size="small" style="width:108px;" @click="substep=substep-100">{{i18n.sept[3]}}</el-button>
|
||
<el-button type="primary" size="small" @click="creatDev" style="width:108px;">{{i18n.sept[2]}}</el-button>
|
||
</div>
|
||
</div>
|
||
<!-- 选择测点 -->
|
||
<div v-show="(substep>=400&&substep<500&&substep!==407)||substep==507" class="step" style="margin:auto;">
|
||
<h4>{{i18n.sept[13]}}</h4>
|
||
<div class="clearfix" style="margin:auto;width:648px;position:relative;padding:20px 0;max-height: none;">
|
||
|
||
<p style="margin-bottom:10px;margin-top:10px;">
|
||
<!-- <el-checkbox v-model="ck_cy" checked="true">{{i18n.sept[14]}}</el-checkbox><br> -->
|
||
<el-checkbox v-model="ck_cd" @change="changeCKCD">{{i18n.sept[15]}}</el-checkbox><br>
|
||
<el-checkbox v-model="ck_dev" v-if="htmlConfig.hiddenDev">{{i18n.sept[27]}}</el-checkbox><br
|
||
v-if="htmlConfig.hiddenDev">
|
||
<el-checkbox v-model="ck_sx">{{i18n.sept[16]}}</el-checkbox><br>
|
||
</p>
|
||
<div v-if="substep!==405" style="width:310px;float:left;">
|
||
<p class="p-input">
|
||
<el-input v-model="filter_check_dev" :placeholder="i18n.sept[0][13]" class="input-with-select"
|
||
style="width:100%;" @blur="filter_check_dev_enter" @keyup.native.enter="filter_check_dev_enter">
|
||
<template slot="prepend">{{i18n.sept[17]}}</template>
|
||
</el-input>
|
||
</p>
|
||
<p class="p-input" style="line-height: 34px;">
|
||
<el-button-group style="width: 100%;background: transparent;">
|
||
<el-button type="primary" size="small" plain icon="el-icon-refresh" :title="i18n.sept[0][18]"
|
||
@click="expendChecked"></el-button>
|
||
<el-button v-show="check_all" type="primary" size="small" plain icon="el-icon-check"
|
||
:title="i18n.sept[0][19]" @click="check_all=false;checkedAll()"></el-button>
|
||
<el-button v-show="!check_all" type="primary" size="small" plain icon="el-icon-circle-check"
|
||
:title="i18n.sept[0][20]" @click="check_all=true;checkedAll();"></el-button>
|
||
<el-button type="primary" size="small" plain icon="el-icon-remove" :title="i18n.sept[0][22]"
|
||
@click="clearDevCD"></el-button>
|
||
<el-button type="primary" size="small" plain icon="el-icon-delete" :title="i18n.sept[0][21]"
|
||
@click="checkedDel"></el-button>
|
||
</el-button-group>
|
||
</p>
|
||
<div class="border" style="height:300px;overflow: auto;border-radius: 4px;">
|
||
<el-tree ref="dev_tree" :filter-node-method="filterCheckNode" :data='checked_node.nodes'
|
||
node-key='tid' style="background-color: transparent;" check-strictly
|
||
:expand-on-click-node="false" check-on-click-node="true" show-checkbox
|
||
default-expand-all @check="checkedchecked">
|
||
</el-tree>
|
||
</div>
|
||
</div>
|
||
<div :style="substep!==405?'width:310px;float:right;':'text-align;center;'">
|
||
<el-input v-model="filter_c" :placeholder="i18n.sept[0][13]" class="input-with-select" style="width:100%;"
|
||
@blur="filter_c_enter" @keyup.native.enter="filter_c_enter">
|
||
<template slot="prepend">{{i18n.sept[18]}}</template>
|
||
</el-input>
|
||
<el-input v-model="filter_q" :placeholder="i18n.sept[0][13]" class="input-with-select" style="width:100%;"
|
||
@blur="filter_q_enter" @keyup.native.enter="filter_q_enter">
|
||
<template slot="prepend">{{i18n.sept[19]}}</template>
|
||
</el-input>
|
||
<div class="border" style="height:300px;overflow: auto;border-radius: 4px;">
|
||
<i v-show="property_tree.length==0" class="el-icon-loading" style="font-size: 30px;padding:50px 119px;"></i>
|
||
<el-tree :data='property_tree' ref="c_tree" :filter-node-method="filterMspsNode" node-key='tid'
|
||
:expand-on-click-node="false" check-on-click-node="true" check-strictly show-checkbox
|
||
:default-checked-keys="default_checked_keys" :default-expanded-keys="default_property.expaned"
|
||
@check="checkCd" draggable :allow-drop='allowDrop' @node-drop="nodeDrop" style="font-size: 12px;background-color: transparent;">
|
||
</el-tree>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p class="cd-info">
|
||
<el-button class="add-or-del" :loading="adding" v-if="substep!==405" type="success" size="mini"
|
||
@click="addPropertyNew" :title="i18n.sept[0][16]">{{i18n.sept[0][23]}}</el-button>
|
||
<el-button class="add-or-del" :loading="deling" v-if="substep!==405" type="danger" size="mini"
|
||
@click="delProperty" :title="i18n.sept[0][17]">{{i18n.sept[0][24]}}</el-button>
|
||
</p>
|
||
<div class="btns" style="margin: 30px auto 10px;">
|
||
<el-button type="primary" plain size="small" style="width:108px;" @click="substep=substep-100">{{i18n.sept[3]}}</el-button>
|
||
<el-button v-if="substep==405||substep==507" type="primary" size="small" style="width:108px;"
|
||
@click="statisticFinish">{{i18n.sept[23]}}</el-button>
|
||
<el-button v-else="substep==405||substep==507" type="primary" size="small" @click="noneChild" style="width:108px;">{{i18n.sept[2]}}</el-button>
|
||
</div>
|
||
</div>
|
||
<!-- 选择统计项 -->
|
||
<div v-show="substep==500||substep==501||substep==502||substep==503" class="step" style="width:445px;margin:auto;">
|
||
<h4>{{i18n.sept[24]}}</h4>
|
||
<div>
|
||
<el-checkbox-group class="border" v-model="checked_total_index" @change="totalsChange" style="width:286px;border-radius:4px;margin:auto;padding:10px;">
|
||
<template v-for="(item,index) in totals">
|
||
<el-checkbox :label="index" :key="item.value" :value="item.value" style="margin:10px;">{{item.label}}</el-checkbox><br>
|
||
</template>
|
||
</el-checkbox-group>
|
||
</div>
|
||
<div class="btns" style="margin: 30px auto 10px;">
|
||
<el-button type="primary" plain size="small" style="width:108px;" @click="substep=substep-100">{{i18n.sept[3]}}</el-button>
|
||
<el-checkbox style="margin-left: 128px;" :indeterminate="indeterminate" v-model="checked_total_all"
|
||
@change="toggleTotals">{{i18n.sept[25]}}</el-checkbox>
|
||
<el-button type="primary" size="small" style="width:108px;" @click="totalFinish">{{i18n.sept[23]}}</el-button>
|
||
</div>
|
||
</div>
|
||
<!-- 选择对比时间 -->
|
||
<div v-show="substep==506" class="step" style="width:445px;margin:auto;">
|
||
<h4>{{i18n.sept[26]}}</h4>
|
||
<div>
|
||
<el-checkbox-group class="border" v-model="checked_contrast_index" style="width:286px;border-radius:4px;margin:auto;padding:10px;">
|
||
<template v-for="(item,index) in contrasts">
|
||
<el-checkbox :label="index" :disabled="item.disabled" :checked="item.checked" :key="item.value"
|
||
:value="item.value" style="margin:10px;">{{item.label}}</el-checkbox><br>
|
||
</template>
|
||
</el-checkbox-group>
|
||
</div>
|
||
<div class="btns" style="margin: 30px auto 10px;">
|
||
<el-button type="primary" plain size="small" style="width:108px;" @click="substep=substep-100">{{i18n.sept[3]}}</el-button>
|
||
<el-button type="primary" size="small" style="width:108px;" @click="contrastFinish">{{i18n.sept[23]}}</el-button>
|
||
</div>
|
||
</div>
|
||
</el-dialog>
|
||
<!-- excel报表模板导入-->
|
||
<el-dialog v-if="i18n.excel" :title="i18n.excel.title" :visible.sync="excelFilesPanel" :close-on-click-modal="false">
|
||
<div style="width:400px;margin:auto;text-align: left;">
|
||
<label style="display: block;">
|
||
<span>{{i18n.excel.reportname}}</span>
|
||
<el-input v-model.trim="excelFileName" :placeholder="i18n.excel.enter" style="margin-bottom:10px;">
|
||
</el-input>
|
||
</label>
|
||
<label style="display: block;">
|
||
<span>{{i18n.excel.type}}</span>
|
||
<el-select v-model="excelDateType" style="width:100%;margin-bottom:10px;">
|
||
<el-option :label="'YYYY-MM-DD'" :value="'YYYY-MM-DD'"></el-option>
|
||
<el-option :label="'YYYY-MM-DD HH:mm'" :value="'YYYY-MM-DD HH:mm'"></el-option>
|
||
<el-option :label="'YYYY-MM'" :value="'YYYY-MM'"></el-option>
|
||
<el-option :label="'YYYY'" :value="'YYYY'"></el-option>
|
||
<el-option :label="'YYYY-MM-DD~YYYY-MM-DD'" :value="'YYYY-MM-DD~YYYY-MM-DD'"></el-option>
|
||
<el-option :label="'YYYY-MM~YYYY-MM'" :value="'YYYY-MM~YYYY-MM'"></el-option>
|
||
<el-option :label="'YYYY~YYYY'" :value="'YYYY~YYYY'"></el-option>
|
||
</el-select>
|
||
</label>
|
||
<label style="display: block;">
|
||
<span>{{i18n.excel.description}}</span>
|
||
<el-input v-model.trim="dateLabelStart" :placeholder="i18n.excel.starttime"></el-input>
|
||
<span v-show="excelDateType.indexOf('~')!==-1">~</span>
|
||
<el-input v-show="excelDateType.indexOf('~')!==-1" v-model.trim="dateLabelEnd" :placeholder="i18n.excel.endtime"></el-input>
|
||
</label>
|
||
<el-upload :action="excelInputUrl" :on-success="excelInput" auto-upload :show-file-list="false"
|
||
:headers="{Authorization : 'Bearer ' + userInfo.token}" style="margin:10px 0 30px;display: inline-block;">
|
||
<el-button type="success" size="small">{{i18n.excel.upload}}</el-button>
|
||
</el-upload>
|
||
<span>{{excelFilePath}}</span>
|
||
<p style="text-align: right;">
|
||
<el-button size="small" @click="excelFilesPanel=false"> {{i18n.excel.cancel}} </el-button>
|
||
<el-button size="small" type="primary" :loading="excelSaveLoading" @click="addExcelReport">
|
||
{{i18n.excel.confirm}} </el-button>
|
||
<p style="text-align: right;">{{i18n.excel.cue}}</p>
|
||
</p>
|
||
</div>
|
||
|
||
</el-dialog>
|
||
<!-- 报表管理 -->
|
||
<el-dialog v-if="i18n.file" :title="i18n.file[0][0]" width="800px" :visible.sync="reportFilesPanel"
|
||
:close-on-click-modal="false">
|
||
<el-container class="border" style="height:100%;">
|
||
<el-aside class="border-color" width="198px" style="border-width:0;border-right-width: 1px;border-style: solid;height:506px;">
|
||
<el-tree ref="report_tree" v-show="!isMode" node-key='code' :data='reportFiles' default-expand-all
|
||
:expand-on-click-node="false" @node-click="fileClick" style="height:100%;overflow:auto;">
|
||
<span class="custom-tree-node" slot-scope="{node,data}">
|
||
<span>
|
||
<img v-if="data.type==0" class="tree-files" src="../img/files.png" alt="">
|
||
<img v-if="data.type==1&&(data.sourceType==1||!data.sourceType)" class="tree-files" src="../img/file.png"
|
||
alt="">
|
||
<img v-if="data.type==1&&data.sourceType==2" class="tree-files" src="../img/model.png"
|
||
alt="">
|
||
<img v-if="data.type==1&&data.sourceType==3" class="tree-files" src="../img/excel.png"
|
||
alt="">
|
||
<img v-if="data.type==1&&data.sourceType==4" class="tree-files" src="../img/file_url.png"
|
||
alt="">
|
||
</span>
|
||
<span>{{data.label}}</span>
|
||
</span>
|
||
</el-tree>
|
||
<!-- <el-tree v-show="isMode" node-key='code' :data='reportModes' default-expand-all :expand-on-click-node="false" @node-click="fileClick" style="max-height:100%;overflow:auto;">
|
||
</el-tree> -->
|
||
</el-aside>
|
||
<el-main>
|
||
<div class="operations" style="text-align:right;">
|
||
<el-upload v-if="htmlConfig.upload" :action="fileInputUrl" :on-success="fileInput"
|
||
:show-file-list="false" :headers="{Authorization : 'Bearer ' + userInfo.token}" style="display: inline-block;">
|
||
<el-button type="primary" size="mini">{{i18n.file[13]}}</el-button>
|
||
</el-upload>
|
||
<el-button v-if="htmlConfig.upload" type="primary" size="mini" @click="fileOutput">{{i18n.file[14]}}</el-button>
|
||
<el-button type="warning" size="mini" :disabled="newFiles||newFile" @click="addNewFiles">{{i18n.file[1]}}</el-button>
|
||
<el-button v-show="isSave" type="warning" :disabled="newFiles||newFile" size="mini" @click="addNewFile">{{i18n.file[2]}}</el-button>
|
||
<el-button v-if="htmlConfig.excel" type="warning" size="mini" @click="newExcelReport">{{i18n.file[15]}}</el-button>
|
||
<el-button type="success" size="mini" @click="reportRename">{{i18n.file[3]}}</el-button>
|
||
<el-button type="danger" size="mini" :loading="deleteLoading" @click="reportDelete" :disabled="!fileSelectedReport.code">{{i18n.file[4]}}</el-button>
|
||
<el-dialog :title="i18n.file[0][1]" :visible.sync="reportFilesTips_nofile">
|
||
<p>{{i18n.file[5]}}</p>
|
||
</el-dialog>
|
||
<el-dialog :title="i18n.file[0][1]" :visible.sync="reportFilesTips_file">
|
||
<p>{{i18n.file[6]}}<strong>{{fileSelectedReport.label}}</strong>?</p>
|
||
<el-button type="primary" size="mini" style="margin-left:10px;">{{i18n.file[9]}}</el-button>
|
||
<el-button type="primary" size="mini">{{i18n.file[8]}}</el-button>
|
||
</el-dialog>
|
||
<el-dialog :title="i18n.file[0][1]" :visible.sync="reportFilesTips_files">
|
||
<p>{{i18n.file[8]}}<strong>{{fileSelectedReport.label}}</strong>{{i18n.file[7]}}?</p>
|
||
<el-button type="primary" size="mini" style="margin-left:10px;">{{i18n.file[9]}}</el-button>
|
||
<el-button type="primary" size="mini">{{i18n.file[8]}}</el-button>
|
||
</el-dialog>
|
||
</div>
|
||
<div id="fileScroll" style="height:400px;overflow-y:auto;">
|
||
<ul class="files">
|
||
<li v-for="item in checkedFiles" @click="reportPanelClick(item)" @dblclick="reportPanelDblClick(item)">
|
||
<a href="javascript:;">
|
||
<template v-if="item.type==1">
|
||
<img v-if="item.sourceType==1||!item.sourceType" class="icon-file" src="../img/file.png"
|
||
alt="">
|
||
<img v-if="item.sourceType==2" class="icon-file" src="../img/model.png" alt="">
|
||
<img v-if="item.sourceType==3" class="icon-file" src="../img/excel.png" alt="">
|
||
<p v-show="!item.rename" style="margin:0 0 6px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">{{item.label}}</p>
|
||
<el-input v-show="item.rename" size="mini" v-model="item.label" maxlength="50"
|
||
:placeholder="i18n.file[0][2]" style="margin:0 0 6px;" @blur="reportReName(item);item.rename=false;"
|
||
@keyup.native.enter="$event.target.blur()" v-treefocus="item.rename"></el-input>
|
||
</template>
|
||
<template v-if="item.type==0">
|
||
<img class="icon-files" src="../img/files.png" alt="">
|
||
<p v-show="!item.rename" style="margin:0 0 16px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">{{item.label}}</p>
|
||
<el-input v-show="item.rename" size="mini" v-model="item.label" maxlength="50"
|
||
:placeholder="i18n.file[0][2]" style="margin:0 0 16px;" @blur="reportReName(item);item.rename=false;"
|
||
@keyup.native.enter="$event.target.blur()" v-treefocus="item.rename"></el-input>
|
||
</template>
|
||
</a>
|
||
</li>
|
||
<li v-show="newFile">
|
||
<a href="javascript:;">
|
||
<img class="icon-file" src="../img/file.png" alt="">
|
||
<br>
|
||
<el-input v-model="fileRename" size="mini" :placeholder="i18n.file[0][2]" style="margin:0 0 6px;"
|
||
@blur="addFile" @keyup.native.enter="addFile" v-treefocus="newFile"
|
||
:suffix-icon="save_loading?'el-icon-loading':false"></el-input>
|
||
</a>
|
||
</li>
|
||
<li v-show="newFiles">
|
||
<a href="javascript:;">
|
||
<img class="icon-files" src="../img/files.png" alt=""><br>
|
||
<el-input v-model="fileRename" size="mini" :placeholder="i18n.file[0][2]" style="margin:0 0 16px;"
|
||
@blur="addFiles" @keyup.native.enter="addFiles" v-treefocus="newFiles"
|
||
:suffix-icon="save_loading?'el-icon-loading':false"></el-input>
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="fileInput">
|
||
<p style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;width:420px;display: inline-block;vertical-align: middle;">
|
||
{{i18n.file[10]}}:{{fileSelectedReport.label}}
|
||
</p>
|
||
<!-- <el-input v-model="fileName" placeholder="请输入名称" style="width:430px;"></el-input> -->
|
||
<el-button v-show="isSave" type="primary" size="mini" style="margin-left:10px;" @click="updateFile">
|
||
{{i18n.file[11]}}</el-button>
|
||
<el-button v-show="!isSave" type="primary" size="mini" @click="reInit">{{i18n.file[12]}}</el-button>
|
||
</div>
|
||
</el-main>
|
||
</el-dialog>
|
||
<!-- 其他配置 -->
|
||
<el-dialog v-if="i18n.others" :title="i18n.others[0][0]" width="528px" :visible.sync="configure"
|
||
:close-on-click-modal="false">
|
||
<el-tabs v-model="activeName">
|
||
<el-tab-pane :label="i18n.others[0][1]" name="first">
|
||
<div class="all-config">
|
||
<p style="padding-bottom:10px;">
|
||
<span class="qtformitem">{{i18n.others[1]}}:</span>
|
||
<el-radio-group v-model="paper_type" style="margin-left:10px;">
|
||
<el-radio label="A4" :key="1"></el-radio>
|
||
<el-radio label="A3" :key="2"></el-radio>
|
||
</el-radio-group>
|
||
</p>
|
||
<p style="padding-bottom:10px;">
|
||
<span class="qtformitem">{{i18n.others[2]}}:</span>
|
||
<el-radio-group v-model="paper_orientation" style="margin-left:10px;">
|
||
<el-radio label="col" :key="1">{{i18n.others[3]}}</el-radio>
|
||
<el-radio label="row" :key="2">{{i18n.others[4]}}</el-radio>
|
||
</el-radio-group>
|
||
</p>
|
||
<p>
|
||
<span class="qtformitem">{{i18n.others[5]}}:</span>
|
||
<el-input v-model="report_bgcolor" :placeholder="i18n.others[0][2]" style="width:170px;"></el-input>
|
||
<el-color-picker v-model="report_bgcolor" show-alpha></el-color-picker>
|
||
</p>
|
||
<p>
|
||
<span class="qtformitem">{{i18n.others[6]}}:</span>
|
||
<el-autocomplete popper-class="my-autocomplete" v-model="report_font" :fetch-suggestions="querySearchFont"
|
||
:placeholder="i18n.others[0][3]" @select="handleComplete">
|
||
<i class="el-icon-edit el-input__icon" slot="suffix"></i>
|
||
<template slot-scope="{item}">
|
||
<div class="name">{{item.name}}</div>
|
||
</template>
|
||
</el-autocomplete>
|
||
</p>
|
||
<p>
|
||
<span class="qtformitem">{{i18n.others[7]}}:</span>
|
||
<el-autocomplete popper-class="my-autocomplete" v-model="report_size" :fetch-suggestions="querySearchSize"
|
||
:placeholder="i18n.others[0][4]" @select="handleComplete">
|
||
<i class="el-icon-edit el-input__icon" slot="suffix"></i>
|
||
<template slot-scope="{item}">
|
||
<div class="name">{{item.value}}</div>
|
||
</template>
|
||
</el-autocomplete>
|
||
</p>
|
||
<p>
|
||
<span class="qtformitem">{{i18n.others[8]}}:</span>
|
||
<el-input v-model="report_color" :placeholder="i18n.others[0][5]" style="width:170px;"></el-input>
|
||
<el-color-picker v-model="report_color"></el-color-picker>
|
||
</p>
|
||
<div>
|
||
<span class="qtformitem">{{i18n.others[9]}}:</span>
|
||
<el-input type="textarea" :autosize="{minRows:'2',maxRows:'2'}" :placeholder="i18n.others[0][6]"
|
||
v-model="report_textarea"></el-input>
|
||
</div>
|
||
</div>
|
||
</el-tab-pane>
|
||
<el-tab-pane :label="i18n.others[0][7]" name="third">
|
||
<div class="all-config">
|
||
<p>
|
||
{{i18n.others[10]}}:
|
||
<el-input v-model="row_line_height" :placeholder="i18n.others[0][8]" @blur="refreshDevTree"
|
||
style="margin-left:10px;width:272px;">
|
||
<template slot="append">px</template>
|
||
</el-input>
|
||
</p>
|
||
<p style="margin:10px 0;">
|
||
{{i18n.others[11]}}:
|
||
<el-radio-group v-model="row_chang_color" style="margin-left:10px;">
|
||
<el-radio label="two-color" value="1" key="1">{{i18n.others[12]}}</el-radio>
|
||
<el-radio label="three-color" value="2" key="2">{{i18n.others[13]}}</el-radio>
|
||
<el-radio label="no-color" value="3" key="3">{{i18n.others[14]}}</el-radio>
|
||
</el-radio-group>
|
||
</p>
|
||
|
||
</div>
|
||
</el-tab-pane>
|
||
|
||
<el-tab-pane :label="i18n.others[0][9]" name="fifth">
|
||
<div class="all-config">
|
||
<p>
|
||
{{i18n.others[15]}}:
|
||
<el-select v-model="border_type" :placeholder="i18n.others[0][10]" @change="refreshDevTree">
|
||
<el-option v-for="(item,index) in border_type_list" :key="item.value" :label="item.label"
|
||
:value="item.value"></el-option>
|
||
</el-select>
|
||
</p>
|
||
<p>
|
||
{{i18n.others[16]}}:
|
||
<el-input v-model="border_bgcolor" :placeholder="i18n.others[0][11]" @blur="refreshDevTree"
|
||
style="width:180px;"></el-input>
|
||
<el-color-picker v-model="border_bgcolor" show-alpha @change="refreshDevTree"></el-color-picker>
|
||
</p>
|
||
<p>
|
||
{{i18n.others[17]}}:
|
||
<el-input v-model="border_zise" :placeholder="i18n.others[0][12]" @blur="refreshDevTree"
|
||
style="width:226px;">
|
||
<template slot="append">px</template>
|
||
</el-input>
|
||
</p>
|
||
<p>
|
||
{{i18n.others[18]}}:
|
||
<el-input v-model="th_bgcolor" :placeholder="i18n.others[0][13]" @blur="refreshDevTree"
|
||
style="width:180px;"></el-input>
|
||
<el-color-picker v-model="th_bgcolor" show-alpha @change="refreshDevTree"></el-color-picker>
|
||
</p>
|
||
<p>
|
||
{{i18n.others[19]}}:
|
||
<el-input v-model="th_color" :placeholder="i18n.others[0][14]" @blur="refreshDevTree" style="width:180px;"></el-input>
|
||
<el-color-picker v-model="th_color" show-alpha @change="refreshDevTree"></el-color-picker>
|
||
</p>
|
||
</div>
|
||
</el-tab-pane>
|
||
</el-tabs>
|
||
</el-dialog>
|
||
<!-- 数据设置 -->
|
||
<el-dialog v-if="i18n.dataConfig" :title="i18n.dataConfig[0][0]" width="528px" center :visible.sync="dataConfig"
|
||
:close-on-click-modal="false">
|
||
<div class="all-config">
|
||
<div class="block">
|
||
<h4>{{i18n.dataConfig[1]}}:</h4>
|
||
<el-slider v-model="data_point" show-input :max="10" :min="0" :step="1" style="padding-top:2px;">
|
||
</el-slider>
|
||
</div>
|
||
<div class="block" style="margin-top:20px;">
|
||
<h4 style="display:inline-block;vertical-align:middle;margin:0;">{{i18n.dataConfig[2]}}:</h4>
|
||
<el-switch v-model="digits_fixed" active-color="#13ce66" :active-text="i18n.dataConfig[0][2]"
|
||
inactive-color="#429EFF" :inactive-text="i18n.dataConfig[0][1]" style="margin-left:20px;"></el-switch>
|
||
</div>
|
||
<div class="block" style="margin-top:20px;">
|
||
<h4 style="display:inline-block;vertical-align:middle;margin:0;">{{i18n.dataConfig[9]}}:</h4>
|
||
<el-input v-model="default_e" style="width:138px;"></el-input>
|
||
</div>
|
||
<div>
|
||
<h4>{{i18n.dataConfig[3]}}:</h4>
|
||
<p style="padding-left:60px;">
|
||
<el-radio v-model="text_key" label="label">{{i18n.dataConfig[4]}}</el-radio>
|
||
<el-radio v-model="text_key" label="code">{{i18n.dataConfig[5]}}</el-radio>
|
||
</p>
|
||
<label style="display:block">
|
||
{{i18n.dataConfig[6]}}:
|
||
<el-input v-model="old_text" :placeholder="i18n.dataConfig[0][3]" style="width:80%"></el-input>
|
||
</label>
|
||
<label style="display:block">
|
||
{{i18n.dataConfig[7]}}:
|
||
<el-input v-model="new_text" :placeholder="i18n.dataConfig[0][4]" style="width:80%"></el-input>
|
||
</label>
|
||
<p style="margin:0;text-align:right;padding-right:40px;margin:5px;">
|
||
<el-button type="primary" size="mini" @click="changeAllXNode">{{i18n.dataConfig[8]}}</el-button>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</el-dialog>
|
||
<!-- 修改节点信息 -->
|
||
<el-dialog v-if="i18n.editNode" :title="i18n.editNode[0][0]" width="777px" center :visible.sync="editNodePanel"
|
||
:close-on-click-modal="false">
|
||
<el-container>
|
||
<el-aside style="width:200px;">
|
||
<ul v-show="!edit_is_add" style="list-style: none;padding:0;margin-top:0;">
|
||
<li style="display: inline-block">
|
||
<span>{{i18n.editNode[1]}}:</span>
|
||
<el-input v-model="dev_name_text" style="width:180px;"></el-input>
|
||
</li>
|
||
<li style="display: inline-block">
|
||
<span>{{i18n.editNode[2]}}:</span>
|
||
<el-input v-model="dev_code_text" style="width:180px;"></el-input>
|
||
</li>
|
||
</ul>
|
||
<el-input v-show="edit_node_type=='dev'&&!edit_is_add" v-model="dev_e" tyle="width:150px;">
|
||
<template slot="prepend">{{i18n.editNode[8]}}</template>
|
||
</el-input>
|
||
<el-button v-show="!edit_is_add" type="primary" size="small" icon="el-icon-circle-check-outline"
|
||
@click="changeLabel">{{i18n.editNode[3]}}</el-button>
|
||
<el-button v-show="edit_is_add" type="primary" size="small" icon="el-icon-circle-check-outline"
|
||
@click="edit_is_add=false;">{{i18n.editNode[4]}}</el-button>
|
||
<!-- <el-button type="primary" size="small" icon="el-icon-plus" @click="edit_is_add=true;">增加测点</el-button> -->
|
||
<div style="height:388px;overflow-y: auto;overflow-x: hidden;">
|
||
<el-radio-group v-model="checked_dev_index" style="width:100%;">
|
||
<template v-for="(item,index) in check_dev">
|
||
<el-radio :label="index" border style="width:100%;">{{item.label}}</el-radio><br>
|
||
</template>
|
||
</el-radio-group>
|
||
</div>
|
||
|
||
</el-aside>
|
||
<el-main style="padding:0 0 0 20px;position:relative;">
|
||
<!-- 所有设备tree -->
|
||
<div v-show="edit_node_type=='dev'&&!edit_is_add">
|
||
<p class="p-input">
|
||
<!-- i18n.sept[10] -->
|
||
<span v-if="profession.length>0">{{profession_info.label}}:</span>
|
||
<el-select v-if="profession.length>0&&profession_info.type=='list'" v-model="check_profession"
|
||
size="small" :placeholder="i18n.sept[0][12]" @change="postDev">
|
||
<el-option v-for="i in profession" :key="i.code" :value="i.id" :label="i.label"></el-option>
|
||
</el-select>
|
||
<el-input v-if="profession_info.type=='tree'" v-model="check_profession"></el-input>
|
||
<!-- i18n.sept[11] -->
|
||
<span>{{station_info.label}}:</span>
|
||
<el-select v-if="station_info.type=='list'" v-model="check_station" size="small"
|
||
:placeholder="i18n.sept[0][12]" @change="postDev">
|
||
<el-option v-for="i in station" :key="i.code" :value="i.id" :label="i.label"></el-option>
|
||
</el-select>
|
||
<el-popover v-if="station_info.type=='tree'" v-model="stshow" placement="bottom" trigger="click">
|
||
<el-tree ref="stref" :data='station' default-expand-all :expand-on-click-node="false"
|
||
node-key='id' @node-click="simChange"></el-tree>
|
||
<el-button slot="reference" size="small" class="stationBtn">{{check_station_name}}</el-button>
|
||
<input type="hidden" v-model="check_station">
|
||
</el-popover>
|
||
</p>
|
||
<!-- <el-input v-model="filter_all_dev" :placeholder="i18n.editNode[0][2]" class="input-with-select">
|
||
<el-select v-model="filter_all_dev_type" slot="prepend" :placeholder="i18n.editNode[0][3]" style="width:100px;">
|
||
<el-option :label="i18n.editNode[0][3]" value="name"></el-option>
|
||
<el-option :label="i18n.editNode[0][4]" value="code"></el-option>
|
||
</el-select>
|
||
</el-input> -->
|
||
<el-input v-model="filter_all_dev" :placeholder="i18n.sept[0][13]" class="input-with-select"
|
||
@blur="filter_all_dev_enter" @keyup.native.enter="filter_all_dev_enter">
|
||
<el-select v-model="filter_all_dev_type" slot="prepend" :placeholder="i18n.sept[0][14]"
|
||
style="width:100px;">
|
||
<el-option :label="i18n.sept[0][14]" value="name"></el-option>
|
||
<el-option :label="i18n.sept[0][15]" value="code"></el-option>
|
||
</el-select>
|
||
<span class="el-icon-connection" slot="append" @click="filterConnection=!filterConnection"
|
||
:title="i18n['过滤规则']" :style="filterConnection?'color:#0ff':''"></span>
|
||
<span class="el-icon-view" slot="append" @click="changeFilterView" :title="i18n['编码或名称']"
|
||
:style="filterView?'color:#0ff;padding-left:10px':'padding-left:10px'"></span>
|
||
</el-input>
|
||
<div class="border" style="margin-top:10px;height:300px;overflow: auto;text-align:center;">
|
||
<i v-show="tree_loading" class="el-icon-loading" style="color:#409eff;font-size: 30px;padding:50px;"></i>
|
||
<el-tree v-show="!tree_loading" ref="clone_adev_tree" :filter-node-method="filterDevNode"
|
||
:data='clone_all_dev' node-key='code' :expand-on-click-node="false" check-on-click-node="true"
|
||
@node-click="change_input_text">
|
||
</el-tree>
|
||
</div>
|
||
</div>
|
||
<!-- 所有测点树 -->
|
||
<div v-show="(edit_node_type!='dev'&&edit_node_type!='dev_type')||edit_is_add">
|
||
<el-input v-model="filter_c" :placeholder="i18n.editNode[0][2]" @blur="filter_c_enter"
|
||
@keyup.native.enter="filter_c_enter" class="input-with-select" style="width:100%;">
|
||
<template slot="prepend">{{i18n.editNode[6]}}</template>
|
||
</el-input>
|
||
<el-input v-model="filter_q" :placeholder="i18n.editNode[0][2]" @blur="filter_q_enter"
|
||
@keyup.native.enter="filter_q_enter" class="input-with-select" style="width:100%;">
|
||
<template slot="prepend">{{i18n.editNode[7]}}</template>
|
||
</el-input>
|
||
<div class="border" style="height:300px;overflow: auto;border-radius: 4px;">
|
||
<el-tree :data='clone_property_tree' ref="clone_c_tree" :filter-node-method="filterMspsNode"
|
||
node-key='tid' :expand-on-click-node="true" check-strictly :show-checkbox="edit_is_add"
|
||
@check="checkCd" @node-click="change_input_text">
|
||
</el-tree>
|
||
</div>
|
||
</div>
|
||
</el-main>
|
||
</el-container>
|
||
|
||
</el-dialog>
|
||
|
||
<el-dialog v-if="i18n.power" :title="i18n.power[0][0]" width="666px" center :visible.sync="powerPanel"
|
||
:close-on-click-modal="false">
|
||
<el-container>
|
||
<el-main>
|
||
<div class="user-power">
|
||
<el-checkbox-group v-model="checkedGroup">
|
||
<template v-for="(item,index) in allUserGroup">
|
||
<el-checkbox :label="item.id">{{item.name}}</el-checkbox>
|
||
</template>
|
||
</el-checkbox-group>
|
||
</div>
|
||
<div style="text-align: right;margin-top:16px;">
|
||
<el-button circle type="success" icon="el-icon-success" style="margin-right:10px;" @click="userGroupOn"
|
||
:title="i18n.power[0][1]"></el-button>
|
||
<el-button circle type="danger" icon="el-icon-error" style="margin-right:10px;" @click="userGroupOff"
|
||
:title="i18n.power[0][2]"></el-button>
|
||
<el-button type="primary" autofocus @click="userGroupSubmit">{{i18n.power[1]}}</el-button>
|
||
</div>
|
||
</el-main>
|
||
</el-container>
|
||
</el-dialog>
|
||
|
||
<el-dialog v-if="i18n.addNode" :title="i18n.addNode[0][0]" width="666px" center :visible.sync="addNodePanel"
|
||
:close-on-click-modal="false">
|
||
<el-container>
|
||
<el-main>
|
||
<label><span>{{i18n.addNode[1]}}:</span></label>
|
||
<el-select v-model="cols_type" :placeholder="i18n.addNode[0][1]" style="width:100px;">
|
||
<el-option :label="i18n.addNode[0][2]" value="father"></el-option>
|
||
<el-option :label="i18n.addNode[0][3]" value="code"></el-option>
|
||
<el-option :label="i18n.addNode[0][4]" value="string"></el-option>
|
||
</el-select>
|
||
|
||
<el-input v-model="formule_name" :placeholder="i18n.addNode[0][5]" class="input-with-select" style="width:100%;">
|
||
<template slot="prepend">{{i18n.addNode[2]}}</template>
|
||
</el-input>
|
||
<el-input autosize v-show="cols_type!='father'" v-model="formule_value" class="input-with-select"
|
||
style="width:100%;" :readonly="cols_type!='string'">
|
||
<template slot="prepend">{{i18n.addNode[3]}}</template>
|
||
<el-button v-show="cols_type=='code'" slot="append" icon="el-icon-back" @click="formuleBack"></el-button>
|
||
</el-input>
|
||
<div v-show="cols_type=='code'"><span>{{i18n.addNode[4]}}:</span>{{formule_view}}</div>
|
||
<div v-show="cols_type=='code'" style="margin:10px 0 0;">
|
||
<el-button-group style="background-color: transparent;">
|
||
<el-button type="primary" size="small" plain style="background-color: transparent;border-color:#10386C;"
|
||
@click="formulAddOperator('+')">+</el-button>
|
||
<el-button type="primary" size="small" plain style="background-color: transparent;border-color:#10386C;"
|
||
@click="formulAddOperator('-')">-</el-button>
|
||
<el-button type="primary" size="small" plain style="background-color: transparent;border-color:#10386C;"
|
||
@click="formulAddOperator('*')">*</el-button>
|
||
<el-button type="primary" size="small" plain style="background-color: transparent;border-color:#10386C;"
|
||
@click="formulAddOperator('/')">/</el-button>
|
||
<el-button type="primary" size="small" plain style="background-color: transparent;border-color:#10386C;"
|
||
@click="formulAddPrth('(')">(</el-button>
|
||
<el-button type="primary" size="small" plain style="background-color: transparent;border-color:#10386C;"
|
||
@click="formulAddPrth(')')">)</el-button>
|
||
</el-button-group>
|
||
<el-button-group style="background-color: transparent;">
|
||
<el-button type="primary" size="small" plain style="background-color: transparent;border-color:#10386C;"
|
||
@click="formulAddNum(1)">1</el-button>
|
||
<el-button type="primary" size="small" plain style="background-color: transparent;border-color:#10386C;"
|
||
@click="formulAddNum(2)">2</el-button>
|
||
<el-button type="primary" size="small" plain style="background-color: transparent;border-color:#10386C;"
|
||
@click="formulAddNum(3)">3</el-button>
|
||
<el-button type="primary" size="small" plain style="background-color: transparent;border-color:#10386C;"
|
||
@click="formulAddNum(4)">4</el-button>
|
||
<el-button type="primary" size="small" plain style="background-color: transparent;border-color:#10386C;"
|
||
@click="formulAddNum(5)">5</el-button>
|
||
<el-button type="primary" size="small" plain style="background-color: transparent;border-color:#10386C;"
|
||
@click="formulAddNum(6)">6</el-button>
|
||
<el-button type="primary" size="small" plain style="background-color: transparent;border-color:#10386C;"
|
||
@click="formulAddNum(7)">7</el-button>
|
||
<el-button type="primary" size="small" plain style="background-color: transparent;border-color:#10386C;"
|
||
@click="formulAddNum(8)">8</el-button>
|
||
<el-button type="primary" size="small" plain style="background-color: transparent;border-color:#10386C;"
|
||
@click="formulAddNum(9)">9</el-button>
|
||
<el-button type="primary" size="small" plain style="background-color: transparent;border-color:#10386C;"
|
||
@click="formulAddNum(0)">0</el-button>
|
||
</el-button-group>
|
||
<div style="margin:10px 0;line-height:36px;">
|
||
<el-select v-model="cols_parent" :placeholder="i18n.addNode[0][6]" style="width:100px;">
|
||
<template v-for="(item,index) in devtree_to_option">
|
||
<el-option :label="item.label" :value="index"></el-option>
|
||
</template>
|
||
</el-select>
|
||
<el-select v-model="cols_value" :placeholder="i18n.addNode[0][7]" style="width:100px;">
|
||
<template v-for="(item,index) in protree_to_option">
|
||
<el-option :label="item.label" :value="index"></el-option>
|
||
</template>
|
||
</el-select>
|
||
<el-button class="selectBtn" type="primary" size="small" plain style="background-color: transparent;border-color:#10386C;"
|
||
@click="formulAddCode">{{i18n.addNode[5]}}</el-button>
|
||
</div>
|
||
</div>
|
||
<div style="text-align: right;margin-top:10px;">
|
||
<el-button class="confirmBtn" type="primary" size="small" plain style="background-color: transparent;border-color:#10386C;"
|
||
@click="makeFormule">{{i18n.addNode[6]}}</el-button>
|
||
</div>
|
||
</el-main>
|
||
</el-container>
|
||
</el-dialog>
|
||
</div>
|
||
<script src="../plugin/axios/dist/axios.min.js"></script>
|
||
<script src="../plugin/qs/dist/qs.js"></script>
|
||
<script src="../plugin/pako/pako.min.js"></script>
|
||
<script src="../js/proConfig.js"></script>
|
||
<script>
|
||
if (i18n() === 'en') {
|
||
ELEMENT.locale(ELEMENT.lang.en);
|
||
}
|
||
</script>
|
||
<script src="../js/requestData.js"></script>
|
||
<script src="../js/design2.js"></script>
|
||
</body>
|
||
|
||
</html> |