|
@@ -1,64 +1,90 @@
|
|
|
<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>
|
|
|
+ <!-- form -->
|
|
|
+ <el-form :model="dynamicForm" ref="dynamicForm" label-width="100px" class="dynamic-form">
|
|
|
+ <div class="group" v-for="(item,index) in dynamicForm.configList" :key="item.key">
|
|
|
+ <div class="add btn-box" @click="addSetting"
|
|
|
+ v-if="index===dynamicForm.configList.length-1&&index<maxSetting-1">
|
|
|
+ <i class="el-icon-circle-plus-outline"></i>添加刷新时间</div>
|
|
|
+ <div class="delete btn-box" @click="deleteSetting(index)"
|
|
|
+ v-if="index!==0"><i class="el-icon-delete"></i>删除</div>
|
|
|
+ <el-form-item label="刷新频率" class="item">
|
|
|
+ <el-form-item prop="frequency">
|
|
|
+ <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-form-item>
|
|
|
+
|
|
|
+ <!-- 每周 -->
|
|
|
+ <el-form-item prop="frequency_week" v-if="item.frequency==='week'">
|
|
|
+ <el-select v-model="item.frequency_week" multiple class="full-input" key="week">
|
|
|
+ <el-option v-for="i in weekList" :key="i.key"
|
|
|
+ :label="i.label" :value="i.key"/>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <!-- 每旬、月、季、半年、年 -->
|
|
|
+ <el-form-item prop="frequency_last" v-if="!['day','eday','week',''].includes(item.frequency)">
|
|
|
+ <el-select v-model="item.frequency_last" :key="item.key" key="option">
|
|
|
+ <el-option v-for="i in timeOptionList" :key="i.key"
|
|
|
+ :label="i.label" :value="i.key"/>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="frequency_n" v-if="item.frequency_last==='n'&&!['day','eday','week',''].includes(item.frequency)">
|
|
|
+ <el-input v-model="item.frequency_n">
|
|
|
+ <template slot="prefix">N=</template>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item class="item" label="时间">
|
|
|
+ <!-- 非周度时可多选 -->
|
|
|
+ <el-form-item prop="times" v-if="item.frequency!=='week'">
|
|
|
+ <el-select v-model="item.times" multiple class="full-input" key="multiple">
|
|
|
+ <el-option v-for="i in timeList" :key="i"
|
|
|
+ :label="i" :value="i"/>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="time" v-if="item.frequency==='week'">
|
|
|
+ <el-select v-model="item.time" class="full-input" key="single">
|
|
|
+ <el-option v-for="i in timeList" :key="i"
|
|
|
+ :label="i" :value="i"/>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="num" label="刷新单元格数" class="item">
|
|
|
+ <el-input v-model="item.num"></el-input>
|
|
|
+ <el-checkbox v-model="item.isAll">全部刷新</el-checkbox>
|
|
|
+ </el-form-item>
|
|
|
</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>
|
|
|
+ </el-form>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+const config = {
|
|
|
+ frequency:'',//刷新频率
|
|
|
+ frequency_week:[],//频率为每周时,选择
|
|
|
+ frequency_last:'',//第N天或最后一天
|
|
|
+ frequency_n:0,
|
|
|
+ time:'',//时间
|
|
|
+ times:[],
|
|
|
+ num:3,//刷新单元格数
|
|
|
+ isAll:false,//全部刷新
|
|
|
+}
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
- configList:[
|
|
|
- {
|
|
|
- frequency:'',//刷新频率
|
|
|
- frequency_week:[],//频率为每周时,选择
|
|
|
- frequency_last:'',//第N天或最后一天
|
|
|
- frequency_n:0,
|
|
|
- time:'',//时间
|
|
|
- times:[],
|
|
|
- num:3,//刷新单元格数
|
|
|
- isAll:false,//全部刷新
|
|
|
- }
|
|
|
- ],
|
|
|
+ maxSetting:3,//可设置的刷新时间数量
|
|
|
+ dynamicForm:{
|
|
|
+ configList:[{
|
|
|
+ ...config,
|
|
|
+ key:0
|
|
|
+ }
|
|
|
+
|
|
|
+ ]
|
|
|
+ },
|
|
|
frequencyType:[
|
|
|
{label:'每自然日',key:'day'},
|
|
|
{label:'每交易日',key:'eday'},
|
|
@@ -102,11 +128,63 @@ export default {
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
|
-
|
|
|
+ addSetting(){
|
|
|
+ this.dynamicForm.configList.push({
|
|
|
+ ...config,
|
|
|
+ key:Date.now()
|
|
|
+ })
|
|
|
+ },
|
|
|
+ deleteSetting(index){
|
|
|
+ this.dynamicForm.configList.splice(index,1)
|
|
|
+ }
|
|
|
},
|
|
|
};
|
|
|
</script>
|
|
|
|
|
|
-<style scoped lang="scss">
|
|
|
-
|
|
|
+<style lang="scss">
|
|
|
+.refresh-config-wrap{
|
|
|
+ .dynamic-form{
|
|
|
+ .group{
|
|
|
+ position:relative;
|
|
|
+ padding: 30px 0 8px 0;
|
|
|
+ border-bottom: 1px solid #EBEFF6;
|
|
|
+ &:first-child{
|
|
|
+ padding-top: 0;
|
|
|
+ }
|
|
|
+ .btn-box{
|
|
|
+ position:absolute;
|
|
|
+ cursor: pointer;
|
|
|
+ i{
|
|
|
+ margin-right: 8px;
|
|
|
+ font-size: 16px;
|
|
|
+ }
|
|
|
+ &.add{
|
|
|
+ left:0;
|
|
|
+ bottom:-40px;
|
|
|
+ color:#0052D9;
|
|
|
+ }
|
|
|
+ &.delete{
|
|
|
+ right:0;
|
|
|
+ top:20px;
|
|
|
+ color:#AD352F;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .item{
|
|
|
+ .el-input{
|
|
|
+ width:110px;
|
|
|
+ }
|
|
|
+ .full-input{
|
|
|
+ width: 100%;
|
|
|
+ .el-input{
|
|
|
+ width:100%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ >.el-form-item__content{
|
|
|
+ display: flex;
|
|
|
+ gap:10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
</style>
|