|
@@ -3,7 +3,7 @@
|
|
|
:visible.sync="isShow"
|
|
|
:close-on-click-modal="false"
|
|
|
:modal-append-to-body='false'
|
|
|
- :title="title"
|
|
|
+ :title="titleMap[info.key]"
|
|
|
@close="cancelHandle"
|
|
|
custom-class="dialog"
|
|
|
center
|
|
@@ -11,12 +11,10 @@
|
|
|
v-dialogDrag>
|
|
|
<div class="dialog-main">
|
|
|
<!-- 导入系统日期 -->
|
|
|
- <template>
|
|
|
- <ul>
|
|
|
+ <ul v-if="info.key==='insert-sys-date'">
|
|
|
<li class="form-item">
|
|
|
<label>导入方式</label>
|
|
|
<el-select
|
|
|
- style="max-width: 120px;"
|
|
|
v-model="formData.way"
|
|
|
placeholder="请选择导入方式"
|
|
|
>
|
|
@@ -27,53 +25,101 @@
|
|
|
:value="item.value"
|
|
|
/>
|
|
|
</el-select>
|
|
|
-
|
|
|
- <el-select
|
|
|
- style="max-width: 120px;margin:0 10px"
|
|
|
- v-model="formData.frequency"
|
|
|
- placeholder="请选择频度"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in wayOptions"
|
|
|
- :key="item.value"
|
|
|
- :label="item.name"
|
|
|
- :value="item.value"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
|
|
|
- <el-select
|
|
|
- style="max-width: 120px;"
|
|
|
- v-model="formData.frequency_day"
|
|
|
- placeholder="请选择"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in wayOptions"
|
|
|
- :key="item.value"
|
|
|
- :label="item.name"
|
|
|
- :value="item.value"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
+ <template v-if="formData.way===3">
|
|
|
+ <el-select
|
|
|
+ style="max-width: 120px;margin:0 10px"
|
|
|
+ v-model="formData.frequency"
|
|
|
+ placeholder="请选择频度"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in frequencyOptions"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+
|
|
|
+ <el-select
|
|
|
+ style="max-width: 120px;"
|
|
|
+ v-model="formData.frequency_day"
|
|
|
+ placeholder="请选择"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in frequencyDaysOptions"
|
|
|
+ :key="item.name"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.name"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </template>
|
|
|
|
|
|
- <el-tooltip effect="dark" :content="tips">
|
|
|
- <i class="el-icon-question"/>
|
|
|
+ <el-tooltip effect="dark" style="margin-left:10px">
|
|
|
+ <div
|
|
|
+ slot="content"
|
|
|
+ v-html="tips[info.key]"
|
|
|
+ style="line-height: 20px;"
|
|
|
+ ></div>
|
|
|
+ <i class="el-icon-question" style="font-size:18px;"/>
|
|
|
</el-tooltip>
|
|
|
</li>
|
|
|
- <li class="form-item">
|
|
|
+ <li class="form-item" v-if="formData.way===2">
|
|
|
<label>天数</label>
|
|
|
<el-input
|
|
|
v-model="formData.num"
|
|
|
type="number"
|
|
|
+ style="margin-right:10px;width:200px"
|
|
|
/>
|
|
|
天
|
|
|
</li>
|
|
|
</ul>
|
|
|
- </template>
|
|
|
|
|
|
<!-- 导入指标日期 -->
|
|
|
- <template>
|
|
|
- <div>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
+ <ul v-else>
|
|
|
+ <li class="form-item">
|
|
|
+ <el-select
|
|
|
+ v-model="formData.insert_edb"
|
|
|
+ v-loadMore="searchLoad"
|
|
|
+ :filterable="!formData.insert_edb"
|
|
|
+ remote
|
|
|
+ clearable
|
|
|
+ placeholder="请选择指标名称"
|
|
|
+ style="flex: 1"
|
|
|
+ :remote-method="searchHandle"
|
|
|
+ @click.native="inputFocusHandle"
|
|
|
+ @change="e => { selectEdbInfo = searchOptions.find(_ => _.EdbInfoId === e) } "
|
|
|
+ >
|
|
|
+ <i slot="prefix" class="el-input__icon el-icon-search"></i>
|
|
|
+ <el-option
|
|
|
+ v-for="item in searchOptions"
|
|
|
+ :key="item.EdbInfoId"
|
|
|
+ :label="item.EdbName"
|
|
|
+ :value="item.EdbInfoId"
|
|
|
+ >
|
|
|
+ <edbDetailPopover :info="item">
|
|
|
+ <div slot="reference">{{item.EdbName}}</div>
|
|
|
+ </edbDetailPopover>
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+
|
|
|
+ <el-tooltip effect="dark" style="margin-left:10px">
|
|
|
+ <div
|
|
|
+ slot="content"
|
|
|
+ v-html="tips[info.key]"
|
|
|
+ style="line-height: 20px;"
|
|
|
+ ></div>
|
|
|
+ <i class="el-icon-question" style="font-size:18px;"/>
|
|
|
+ </el-tooltip>
|
|
|
+ </li>
|
|
|
+ <li class="form-item" v-show="selectEdbInfo.Frequency">
|
|
|
+ <label>更新频度</label>
|
|
|
+ {{ selectEdbInfo.Frequency }}
|
|
|
+ </li>
|
|
|
+ <li class="form-item" v-show="selectEdbInfo.LatestDate">
|
|
|
+ <label>最新日期</label>
|
|
|
+ {{ selectEdbInfo.LatestDate }}
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
</div>
|
|
|
<div class="dia-bot">
|
|
|
<el-button type="primary" style="margin-right:20px" @click="saveHandle">保存</el-button>
|
|
@@ -82,19 +128,43 @@
|
|
|
</el-dialog>
|
|
|
</template>
|
|
|
<script>
|
|
|
+import { dataBaseInterface } from '@/api/api.js'
|
|
|
export default {
|
|
|
props: {
|
|
|
isShow: {
|
|
|
type: Boolean
|
|
|
+ },
|
|
|
+ info: {
|
|
|
+ type: Object
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ frequencyDaysOptions() {
|
|
|
+ let typeMap = {
|
|
|
+ 1: [
|
|
|
+ { name: '周一' },
|
|
|
+ { name: '周二' },
|
|
|
+ { name: '周三' },
|
|
|
+ { name: '周四' },
|
|
|
+ { name: '周五' },
|
|
|
+ { name: '周六' },
|
|
|
+ { name: '周日' },
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ return typeMap[this.formData.frequency]
|
|
|
+ ? typeMap[this.formData.frequency]
|
|
|
+ : [{name:'第一天'},{name:'最后一天'}]
|
|
|
}
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
formData: {
|
|
|
way: 1,
|
|
|
- frequence: '',
|
|
|
- frequency_day: '',
|
|
|
- num: 0
|
|
|
+ frequency: 1,
|
|
|
+ frequency_day: '第一天',
|
|
|
+ num: 0,
|
|
|
+ insert_edb:'',
|
|
|
+ insert_date:''
|
|
|
},
|
|
|
|
|
|
wayOptions: [
|
|
@@ -102,6 +172,33 @@ export default {
|
|
|
{ name: '日期计算', value: 2 },
|
|
|
{ name: '指定频率', value: 3 },
|
|
|
],
|
|
|
+ frequencyOptions: [
|
|
|
+ { name: '本周', value: 1 },
|
|
|
+ { name: '本旬', value: 2 },
|
|
|
+ { name: '本月', value: 3 },
|
|
|
+ { name: '本季', value: 4 },
|
|
|
+ { name: '本半年', value: 5 },
|
|
|
+ { name: '本年', value: 6 },
|
|
|
+ ],
|
|
|
+
|
|
|
+ searchOptions:[],
|
|
|
+ search_page: 1,
|
|
|
+ current_search: '',
|
|
|
+ search_have_more: true,
|
|
|
+
|
|
|
+ titleMap: {
|
|
|
+ 'insert-sys-date': '导入系统日期',
|
|
|
+ 'insert-edb-date': '导入指标日期'
|
|
|
+ },
|
|
|
+
|
|
|
+ tips: {
|
|
|
+ 'insert-sys-date': `1、直接导入:直接取系统日期,跟随系统日期更新<br>
|
|
|
+ 2、日期计算:取系统日期进行公式计算,跟随系统日期更新 <br>
|
|
|
+ 3、指定频率:取系统日期相关的指定日期,跟随系统日期更新`,
|
|
|
+ 'insert-edb-date': '取指标的最新日期,跟随指标最新日期更新'
|
|
|
+ },
|
|
|
+
|
|
|
+ selectEdbInfo: {}
|
|
|
|
|
|
}
|
|
|
},
|
|
@@ -109,6 +206,48 @@ export default {
|
|
|
|
|
|
},
|
|
|
methods:{
|
|
|
+ searchHandle(query) {
|
|
|
+ this.search_page = 1;
|
|
|
+ this.current_search = query;
|
|
|
+ this.searchApi(this.current_search)
|
|
|
+ },
|
|
|
+
|
|
|
+ async searchApi(query, page = 1) {
|
|
|
+ let params = {
|
|
|
+ KeyWord: query,
|
|
|
+ CurrentIndex: page,
|
|
|
+ }
|
|
|
+ const res = await dataBaseInterface.targetSearchByPage(params)
|
|
|
+
|
|
|
+ if (res.Ret !== 200) return
|
|
|
+ const { List, Paging } = res.Data;
|
|
|
+ this.search_have_more = page < Paging.Pages;
|
|
|
+ this.searchOptions = page === 1 ? List : this.searchOptions.concat(List);
|
|
|
+ },
|
|
|
+
|
|
|
+ /* 聚焦获取当前检索 */
|
|
|
+ inputFocusHandle(e) {
|
|
|
+ this.search_page = 1;
|
|
|
+ this.current_search = e.target.value;
|
|
|
+ this.searchApi(this.current_search);
|
|
|
+ },
|
|
|
+
|
|
|
+ searchLoad() {
|
|
|
+ if (!this.search_have_more) return;
|
|
|
+ this.searchApi(this.current_search, ++this.search_page);
|
|
|
+ },
|
|
|
+
|
|
|
+ init() {
|
|
|
+ this.formData = {
|
|
|
+ way: 1,
|
|
|
+ frequence: 1,
|
|
|
+ frequency_day: '第一天',
|
|
|
+ num: 0,
|
|
|
+ insert_edb:'',
|
|
|
+ insert_date:''
|
|
|
+ }
|
|
|
+ this.selectEdbInfo = {}
|
|
|
+ },
|
|
|
cancelHandle() {
|
|
|
this.$emit('update:isShow',false)
|
|
|
}
|
|
@@ -119,10 +258,10 @@ export default {
|
|
|
.dialog-main {
|
|
|
padding: 20px;
|
|
|
.form-item {
|
|
|
- margin: 10px 0;
|
|
|
+ margin: 15px 0;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
- label { width: 80px; }
|
|
|
+ label { width: 80px;flex-shrink: 0; }
|
|
|
}
|
|
|
}
|
|
|
.dia-bot {
|