|
@@ -0,0 +1,157 @@
|
|
|
+<template>
|
|
|
+ <div class="detail-table-wrap">
|
|
|
+ <div class="top-wrap">
|
|
|
+ <div class="filter-box">
|
|
|
+ <el-select
|
|
|
+ placeholder="数据源"
|
|
|
+ multiple
|
|
|
+ clearable
|
|
|
+ style="width:200px"
|
|
|
+ >
|
|
|
+
|
|
|
+ </el-select>
|
|
|
+ <el-select
|
|
|
+ placeholder="数据账号"
|
|
|
+ multiple
|
|
|
+ clearable
|
|
|
+ style="width:200px"
|
|
|
+ >
|
|
|
+
|
|
|
+ </el-select>
|
|
|
+ <el-cascader
|
|
|
+ placeholder="创建人"
|
|
|
+ :props="{multiple: true}"
|
|
|
+ collapse-tags
|
|
|
+ clearable
|
|
|
+ style="width:200px"
|
|
|
+ />
|
|
|
+ <el-select
|
|
|
+ v-model="filterState.frequency"
|
|
|
+ placeholder="频度"
|
|
|
+ multiple
|
|
|
+ clearable
|
|
|
+ collapse-tags
|
|
|
+ style="width:200px"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in frequencyOpt"
|
|
|
+ :key="item"
|
|
|
+ :label="item"
|
|
|
+ :value="item"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ <el-input
|
|
|
+ placeholder="指标ID/指标名称"
|
|
|
+ prefix-icon="el-icon-search"
|
|
|
+ v-model="filterState.keyword"
|
|
|
+ clearable
|
|
|
+ style="width:200px"
|
|
|
+ />
|
|
|
+ <el-checkbox v-model="checkAll">列表全选</el-checkbox>
|
|
|
+ </div>
|
|
|
+ <div class="right-opt-box">
|
|
|
+ <el-button type="primary" plain>一键刷新</el-button>
|
|
|
+ <el-button type="primary" @click="handleShowSetRefreshTime">设置刷新时间</el-button>
|
|
|
+ <img class="set-icon" src="~@/assets/img/data_m/set_icon.png" alt="" @click="showSetTableCols=true">
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-table
|
|
|
+ ref="multipleTable"
|
|
|
+ :data="tableData"
|
|
|
+ border
|
|
|
+ @selection-change="handleSelectionChange"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ type="selection"
|
|
|
+ width="55"
|
|
|
+ fixed="left"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ v-for="col in tableColOpts"
|
|
|
+ :key="col.key"
|
|
|
+ :label="col.name"
|
|
|
+ :prop="col.key"
|
|
|
+ :sortable="col.sortable"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <div slot="empty">
|
|
|
+ <tableNoData text="暂无数据"/>
|
|
|
+ </div>
|
|
|
+ </el-table>
|
|
|
+ <el-pagination
|
|
|
+ layout="total,prev,pager,next,jumper"
|
|
|
+ background
|
|
|
+ @current-change="handleCurrentChange"
|
|
|
+ :page-size="pageSize"
|
|
|
+ @size-change="handleSizeChange"
|
|
|
+ :total="total"
|
|
|
+ style="float: right;margin-top:20px"
|
|
|
+ />
|
|
|
+ <!-- 自定义列表 -->
|
|
|
+ <SetTableCols v-model="showSetTableCols" />
|
|
|
+ <!-- 设置刷新时间 -->
|
|
|
+ <SetRefreshTime v-model="showSetRefreshTime"/>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import {frequencyOpt} from '../utils/config'
|
|
|
+import SetRefreshTime from './SetRefreshTime.vue'
|
|
|
+import SetTableCols from './SetTableCols.vue'
|
|
|
+export default {
|
|
|
+ components:{SetTableCols,SetRefreshTime},
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ frequencyOpt,
|
|
|
+ filterState:{
|
|
|
+ frequency:'',
|
|
|
+ keyword:''
|
|
|
+ },
|
|
|
+ checkAll:false,
|
|
|
+ tableColOpts:[],
|
|
|
+ tableData:[],
|
|
|
+ pageSize:15,
|
|
|
+ page:1,
|
|
|
+ total:0,
|
|
|
+
|
|
|
+ showSetTableCols:false,
|
|
|
+
|
|
|
+ showSetRefreshTime:false
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ handleShowSetRefreshTime(){
|
|
|
+ this.showSetRefreshTime=true
|
|
|
+ }
|
|
|
+ },
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+.top-wrap{
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: flex-start;
|
|
|
+ margin-bottom: 30px;
|
|
|
+ .filter-box{
|
|
|
+ margin-right: 100px;
|
|
|
+ display: flex;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ align-items: center;
|
|
|
+ gap: 10px 20px;
|
|
|
+ }
|
|
|
+ .right-opt-box{
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 20px;
|
|
|
+ .set-icon{
|
|
|
+ width: 40px;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+</style>
|