瀏覽代碼

ETA1.5.1 init

cxmo 1 年之前
父節點
當前提交
98eb421c07

+ 6 - 0
src/routes/modules/oldRoutes.js

@@ -341,6 +341,12 @@ export default [
         name: "数据源终端管理",
         hidden: true,
       },
+      {
+        path: "dataRefreshSetting",
+        component: () => import("@/views/system_manage/dataRefreshSetting.vue"),
+        name: "数据刷新设置",
+        hidden: true,
+      },
     ],
   },
   // 外部链接

+ 112 - 0
src/views/system_manage/components/refreshConfig.vue

@@ -0,0 +1,112 @@
+<template>
+    <!-- 刷新配置 + 添加删除-->
+    <div class="refresh-config-wrap">
+        <div class="group" v-for="(item,index) in configList" :key="index">
+            <div class="item" label="刷新频率">
+                <el-select v-model="item.frequency">
+                    <el-option v-for="i in frequencyType" :key="i.key" 
+                        :label="i.label" :value="i.key"/>
+                </el-select>
+                <!-- 每周 -->
+                <el-select v-model="item.frequency_week" multiple v-if="item.frequency==='week'">
+                    <el-option v-for="i in weekList" :key="i.key" 
+                        :label="i.label" :value="i.key"/>
+                </el-select>
+                <!-- 每旬、月、季、半年、年 -->
+                <el-select v-model="item.frequency_last" v-if="!['day','eday','week',''].includes(item.frequency)">
+                    <el-option v-for="i in timeOptionList" :key="i.key" 
+                        :label="i.label" :value="i.key"/>
+                </el-select>
+                <template v-if="item.frequency_last==='n'&&!['day','eday','week',''].includes(item.frequency)">
+                    <label>N等于</label>
+                    <el-input v-model="item.frequency_n"></el-input>
+                </template>
+            </div>
+            <div class="item" label="时间">
+                <!-- 非周度时可多选 -->
+                <el-select v-model="item.times" multiple v-if="item.frequency!=='week'">
+                    <el-option v-for="i in timeList" :key="i" 
+                        :label="i" :value="i"/>
+                </el-select>
+                <el-select v-model="item.time" v-else>
+                    <el-option v-for="i in timeList" :key="i" 
+                        :label="i" :value="i"/>
+                </el-select>
+            </div>
+            <div class="item" label="刷新单元格数">
+                <el-input v-model="item.num"></el-input>
+                <el-checkbox v-model="item.isAll">全部刷新</el-checkbox>
+            </div>
+            <div class="add-btn-box">添加</div>
+            <div class="delete-btn-box">删除</div>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    data() {
+        return {
+            configList:[
+                {
+                    frequency:'',//刷新频率
+                    frequency_week:[],//频率为每周时,选择
+                    frequency_last:'',//第N天或最后一天
+                    frequency_n:0,
+                    time:'',//时间
+                    times:[],
+                    num:3,//刷新单元格数
+                    isAll:false,//全部刷新
+                }
+            ],
+            frequencyType:[
+                {label:'每自然日',key:'day'},
+                {label:'每交易日',key:'eday'},
+                {label:'每周',key:'week'},
+                {label:'每旬',key:'tenday'},
+                {label:'每月',key:'month'},
+                {label:'每季',key:'season'},
+                {label:'每半年',key:'halfyear'},
+                {label:'每年',key:'year'},
+            ],
+            //每周,可多选
+            weekList:[
+                {key:1,label:'周一'},
+                {key:2,label:'周二'},
+                {key:3,label:'周三'},
+                {key:4,label:'周四'},
+                {key:5,label:'周五'},
+                {key:6,label:'周六'},
+                {key:7,label:'周日'}
+            ],
+            //每旬、月、季、半年、年
+            timeOptionList:[
+                {label:'第N天',key:'n'},
+                {label:'最后一天',key:'last'}
+            ],
+            //时间选项,仅整点
+            timeList:[
+                '00:00','01:00','02:00','03:00','04:00','05:00','06:00',
+                '07:00','08:00','09:00','10:00','11:00','12:00','13:00',
+                '14:00','15:00','16:00','17:00','18:00','19:00','20:00',
+                '21:00','22:00','23:00',
+            ],
+            //N 范围 1-~
+            n_limit_map:{
+                'tenday':11,
+                'month':31,
+                'season':92,
+                'halfyear':184,
+                'year':365
+            }
+        };
+    },
+    methods: {
+
+    },
+};
+</script>
+
+<style scoped lang="scss">
+
+</style>

+ 175 - 0
src/views/system_manage/dataRefreshSetting.vue

@@ -0,0 +1,175 @@
+<template>
+    <!-- 数据源刷新设置 -->
+    <div class="data-refresh-setting-wrap">
+        <div class="top-box">
+            <div class="select-box">
+                <span>选择数据源</span>
+                <el-select placeholder="请选择数据源"></el-select>
+                <el-button type="primary" @click="showDialog(true)">默认刷新时间</el-button>
+            </div>
+            
+            <el-input placeholder="指标ID/指标名称" prefix-icon="el-icon-search"></el-input>
+            
+        </div>
+        <div class="table-box">
+            <div class="table-select">
+                <div class="select-list">
+                    <el-select placeholder="终端编码"></el-select>
+                    <el-select placeholder="ETA指标库分类"></el-select>
+                    <el-select placeholder="创建人"></el-select>
+                    <el-select placeholder="频度"></el-select>
+                    <el-select placeholder="刷新状态"></el-select>
+                </div>
+                <div class="select-other">
+                    <el-checkbox>列表全选</el-checkbox>
+                    <el-button type="primary" @click="showDialog(false)">设置刷新时间</el-button>
+                </div>
+            </div>
+            <el-table :data="tableData" border>
+                <!-- 多选 -->
+                <el-table-column
+                    align="center"
+                    type="selection"
+                    width="55">
+                </el-table-column>
+                <el-table-column v-for="column in columns" :key="column.key"
+                    :prop="column.key"
+                    :label="column.label"
+                    :min-width="column.minWidth"
+                    :sortable="column.sortable?column.sortable:false"
+                    align="center"
+                    >
+                    <!-- <template slot-scope="{row}">
+                        {{}}
+                    </template> -->
+                </el-table-column>
+            </el-table>
+            <el-pagination></el-pagination>
+        </div>
+        <!-- 默认刷新时间,设置刷新时间 -->
+        <el-dialog custom-class="refresh-setting-dialog"
+            :title="isDefault?'默认':'设置'+'刷新时间'"
+            :visible.sync="isSetTimeDialogShow"
+            :close-on-click-modal="false"
+            :modal-append-to-body="false"
+            @close="isSetTimeDialogShow=false"
+            width="578px"
+            v-dialogDrag
+            center
+        >
+            <div class="dialog-container">
+                <!-- 默认刷新时间设置数据频度 -->
+                <div class="default-box">
+                    123 456
+                </div>
+                <!-- 刷新配置 -->
+                <RefreshConfig></RefreshConfig>
+            </div>
+        </el-dialog>
+        <!-- 设置刷新状态 -->
+    </div>
+</template>
+
+<script>
+import RefreshConfig from './components/refreshConfig.vue';
+
+export default {
+    data() {
+        return {
+            columns: [
+                {
+                    key: 'code',
+                    label: '指标编码'
+                },
+                {
+                    key: 'name',
+                    label: '指标全称'
+                },
+                {
+                    key: 'newTime',
+                    label: '最新日期'
+                },
+                {
+                    key: 'newValue',
+                    label: '最新值'
+                },
+                {
+                    key: 'creater',
+                    label: '创建人'
+                }, {
+                    key: 'times',
+                    label: '频度'
+                },
+                {
+                    key: 'time',
+                    label: '刷新时间'
+                },
+                {
+                    key: 'statue',
+                    label: '刷新状态'
+                }
+            ],
+            tableData: [{ code: 'aaa' }],
+            isSetTimeDialogShow: false,
+            isSetStateDialogShow: false,
+        };
+    },
+    methods: {
+        showDialog(isDefault){
+            this.isDefault = isDefault
+            this.isSetTimeDialogShow = true
+        }
+    },
+    components: { RefreshConfig }
+};
+</script>
+
+<style scoped lang="scss">
+.data-refresh-setting-wrap{
+    min-height: calc(100vh - 120px);
+    display: flex;
+    flex-direction: column;
+    .top-box,.table-box{
+        box-sizing: border-box;
+        padding:20px;
+        background-color: #fff;
+        border:1px solid #C8CDD9;
+        border-radius: 4px;
+    }
+    .top-box{
+        margin-bottom: 20px;
+        display: flex;
+        justify-content: space-between;
+        .el-input{
+            width:260px;
+        }
+    }
+    .table-box{
+        flex:1;
+        .el-select{
+            min-width:180px;
+        }
+        .table-select{
+            display: flex;
+            justify-content: space-between;
+            .select-list{
+                flex:1;
+                display: flex;
+                flex-wrap: wrap;
+                gap:20px;
+            }
+            .select-other{
+                .el-button{
+                    margin-left:30px;
+                }
+            }
+        }
+        .el-table{
+            margin:20px 0;
+        }
+        .el-pagination{
+            text-align: right;
+        }
+    }
+}
+</style>