| | |
| | | <template> |
| | | <flex-layout class="page-root"> |
| | | <div class="page-tools" slot="header"> |
| | | <el-tooltip |
| | | v-if="type=='chart'" |
| | | class="item" |
| | | effect="dark" |
| | | content="表格数据" |
| | | placement="top"> |
| | | <i class="iconfont icon-biaoge" @click="tblTypeClick"></i> |
| | | </el-tooltip> |
| | | <el-tooltip |
| | | v-if="type=='table'" |
| | | class="item" |
| | | effect="dark" |
| | | content="图表数据" |
| | | placement="top"> |
| | | <i class="iconfont icon--tubiao" @click="chartTypeClick"></i> |
| | | </el-tooltip> |
| | | <el-tooltip |
| | | class="item" |
| | | effect="dark" |
| | |
| | | <i class="iconfont icon-peizhiguanli" @click="drawer=true"></i> |
| | | </el-tooltip> |
| | | </div> |
| | | <div class="line-chart-group" v-if="show"> |
| | | <div class="line-chart-group" v-if="show && type=='chart'"> |
| | | <template v-for="(option, key) in options"> |
| | | <div class="line-chart-item" v-if="option.show" :key="key"> |
| | | <line-chart :id="key" :ref="key" |
| | |
| | | </div> |
| | | </template> |
| | | <div class="no-chart-text" v-if="showChartTitle.length==0">暂无图表显示</div> |
| | | </div> |
| | | <div class="table-container" v-if="type=='table'"> |
| | | <el-table |
| | | class="el-green" |
| | | :data="tbl.tbData" |
| | | border |
| | | size="mini" |
| | | height="100%"> |
| | | <el-table-column |
| | | v-for="item in tbl.tbHeader" :key="item.prop" |
| | | :prop="item.prop" |
| | | :label="item.label" |
| | | :align="item.align" |
| | | :min-width="item.width"> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <el-drawer |
| | | class="el-drawer-science" |
| | |
| | | data() { |
| | | return { |
| | | timer: new Timeout(), |
| | | type: 'chart', |
| | | show: true, |
| | | optionsLength: 0, |
| | | options: {}, |
| | | drawer: false, |
| | | showChartTitle: [], |
| | | table_name: new Date().format('yyyy-MM-dd'), |
| | | tbl: { |
| | | tbHeader: [], |
| | | tbData: [] |
| | | }, |
| | | } |
| | | }, |
| | | watch: { |
| | |
| | | }); |
| | | } |
| | | // 设置图表 |
| | | this.setOptions(); |
| | | if(this.type=='chart') { |
| | | this.setOptions(); |
| | | } |
| | | |
| | | // 初始化表格数据的值 |
| | | this.tbl.tbData = []; |
| | | // 遍历data值给tbData赋值 |
| | | this.tbl.tbData = data.map((_data)=>{ |
| | | // 遍历data的值 |
| | | let record_time = _data.record_time; |
| | | let realTimeData = { |
| | | record_time: record_time, |
| | | }; |
| | | _data.list.forEach(function(value, index) { |
| | | realTimeData['chart'+index] = value; |
| | | }); |
| | | return realTimeData; |
| | | }).reverse(); |
| | | |
| | | // 开始查询实时数据 |
| | | this.startSearchRealData(); |
| | |
| | | self.timer.open(); |
| | | }); |
| | | }, |
| | | formatRealTimeData: function(data) { |
| | | formatRealTimeData(data) { |
| | | // 无数据直接返回 |
| | | if(data.length == 0) { |
| | | return; |
| | |
| | | options[key].option.series[0].data.push(data[0].list[options[key].num]); |
| | | options[key].option.xAxis.data.push(data[0].record_time); |
| | | }); |
| | | // 遍历data的值 |
| | | let record_time = data[0].record_time; |
| | | let realTimeData = { |
| | | record_time: record_time, |
| | | }; |
| | | data[0].list.forEach(function(value, index) { |
| | | realTimeData['chart'+index] = value; |
| | | }); |
| | | |
| | | // 添加表格数据 |
| | | if(this.tbl.tbData >= 100) { |
| | | this.tbl.tbData.pop(); |
| | | } |
| | | this.tbl.tbData.unshift(realTimeData) |
| | | // 设置图表 |
| | | this.setOptions(); |
| | | if(this.type=='chart') { |
| | | this.setOptions(); |
| | | } |
| | | }, |
| | | ensureSelects: function(res) { |
| | | ensureSelects(res) { |
| | | var self = this; |
| | | let options = this.options; |
| | | // 初始化所有的显示状态 |
| | |
| | | this.drawer = false; |
| | | |
| | | // 更新视图 |
| | | this.$nextTick(function() { |
| | | self.setOptions(); |
| | | self.resizeCharts(); |
| | | }); |
| | | if(this.type=="chart") { |
| | | this.$nextTick(function() { |
| | | self.setOptions(); |
| | | self.resizeCharts(); |
| | | }); |
| | | } |
| | | |
| | | }, |
| | | setShowChartTille: function() { |
| | | setShowChartTille() { |
| | | var options = this.options; |
| | | this.showChartTitle = []; |
| | | for(let key in options) { |
| | |
| | | this.showChartTitle.push(option.title); |
| | | } |
| | | } |
| | | } |
| | | // 设置表格的头部 |
| | | this.setTblHeader(); |
| | | }, |
| | | setTblHeader() { |
| | | // 初始化表格头部数据 |
| | | this.tbl.tbHeader = [{ |
| | | prop: 'record_time', |
| | | label: '记录日期', |
| | | align: 'center', |
| | | width: '180', |
| | | }]; |
| | | // 配置项 |
| | | let options = this.options; |
| | | // 遍历配置项 |
| | | for(let key in options) { |
| | | let option = options[key]; |
| | | if(option.show) { |
| | | let width = option.title.length*18; |
| | | let tmp = { |
| | | prop: key, |
| | | label: option.title, |
| | | align: 'center', |
| | | width: width, |
| | | }; |
| | | |
| | | // 添加内容 |
| | | this.tbl.tbHeader.push(tmp); |
| | | } |
| | | } |
| | | }, |
| | | setTblData() { |
| | | |
| | | }, |
| | | tblTypeClick() { |
| | | this.type="table"; |
| | | }, |
| | | chartTypeClick() { |
| | | this.type="chart"; |
| | | }, |
| | | }, |
| | | computed: {}, |
| | | mounted() { |
| | |
| | | } |
| | | .line-chart-group { |
| | | box-sizing: border-box; |
| | | padding-top: 0.24rem; |
| | | } |
| | | .page-tools { |
| | | text-align: right; |
| | |
| | | box-sizing: border-box; |
| | | padding-bottom: 0.08rem; |
| | | } |
| | | .table-container { |
| | | box-sizing: border-box; |
| | | height: 100%; |
| | | } |
| | | </style> |
| | | |
| | | |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-form-item label="密码:" prop="USnId"> |
| | | <el-input v-model="addUser.info.USnId"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-form-item label="工作班组:"> |
| | | <el-input v-model="addUser.info.UJobGroup"></el-input> |
| | | </el-form-item> |
| | |
| | | <el-col :span="24"> |
| | | <el-form-item label="用户名:" prop="UName"> |
| | | <el-input v-model="editUser.info.UName"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-form-item label="密码:" prop="USnId"> |
| | | <el-input v-model="editUser.info.USnId" |
| | | type="password" show-password></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | |
| | | show: false, |
| | | info: { |
| | | UName: '', |
| | | USnId: '', |
| | | USnId: '123456', |
| | | UJobGroup: '', |
| | | UNote: '', |
| | | Upassword: '', |
| | |
| | | show: false, |
| | | info: { |
| | | UName: '', |
| | | oldUSnId: '', |
| | | USnId: '', |
| | | USnId: '123456', |
| | | UJobGroup: '', |
| | | UNote: '', |
| | | Upassword: '', |