|
@@ -72,7 +72,7 @@
|
|
|
<el-radio v-model="subComputedType" :label="62">累计值</el-radio>
|
|
|
</el-form-item>
|
|
|
<el-form-item required label="频度" style="width:180px" v-if="subComputedType==62">
|
|
|
- <el-select style="width:120px">
|
|
|
+ <el-select v-model="formData.frequency" style="width:120px">
|
|
|
<el-option v-for="opt in frequencyArr" :key="opt" :label="opt" :value="opt"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
@@ -88,7 +88,7 @@
|
|
|
</template>
|
|
|
|
|
|
<!-- 指数修匀 -->
|
|
|
- <template v-if="computedType=='alpha'">
|
|
|
+ <template v-if="computedType==72">
|
|
|
<el-form-item required label="alpha值" style="width:220px">
|
|
|
<el-input v-model.trim="formData.alphaValue" style="width:140px" placeholder="请输入alpha值"></el-input>
|
|
|
</el-form-item>
|
|
@@ -133,7 +133,7 @@
|
|
|
</el-form-item>
|
|
|
<el-form-item label="生成指标时间序列">
|
|
|
<el-cascader
|
|
|
- v-model="timeSeriesVal"
|
|
|
+ v-model="formData.timeSeriesVal"
|
|
|
style="width:180px"
|
|
|
:options="timeSeriesOpt"
|
|
|
:props="{emitPath:false}"
|
|
@@ -167,17 +167,17 @@
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
|
|
|
- <!-- 与单指标计算 -->
|
|
|
+ <!-- 多指标求和/平均 -->
|
|
|
<template v-if="computedType=='multipleEDB'">
|
|
|
<el-form-item style="margin-right:30px">
|
|
|
<el-radio-group v-model="subComputedType">
|
|
|
- <el-radio :label="80">求和</el-radio>
|
|
|
- <el-radio :label="81">求平均</el-radio>
|
|
|
+ <el-radio :label="81">求和</el-radio>
|
|
|
+ <el-radio :label="82">求平均</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="生成指标时间序列">
|
|
|
<el-cascader
|
|
|
- v-model="timeSeriesVal"
|
|
|
+ v-model="formData.timeSeriesVal"
|
|
|
style="width:180px"
|
|
|
:options="timeSeriesOpt"
|
|
|
:props="{emitPath:false}"
|
|
@@ -280,7 +280,7 @@
|
|
|
>
|
|
|
<el-table-column type="selection" min-width="50" align="center" />
|
|
|
<el-table-column label="指标全称" show-overflow-tooltip align="center" prop="EdbName"/>
|
|
|
- <el-table-column label="最新日期" align="center" prop="LatestDate" sortable="custom" width="120px" />
|
|
|
+ <el-table-column label="最新日期" align="center" prop="LatestDate" width="120px" />
|
|
|
<el-table-column label="最新值" align="center" show-overflow-tooltip prop="LatestValue" width="80px"/>
|
|
|
<el-table-column label="创建人" align="center" show-overflow-tooltip prop="SysUserRealName" width="80px"/>
|
|
|
<el-table-column label="频度" align="center" prop="Frequency" width="50px"/>
|
|
@@ -298,7 +298,7 @@
|
|
|
/>
|
|
|
</div>
|
|
|
<div style="padding-top:200px;margin:0 30px">
|
|
|
- <el-button type="primary" @click="getAddEdbListData">加入已选指标</el-button>
|
|
|
+ <el-button type="primary" :loading="addLoading" @click="getAddEdbListData">加入已选指标</el-button>
|
|
|
</div>
|
|
|
<div class="right-box">
|
|
|
<el-table
|
|
@@ -306,6 +306,11 @@
|
|
|
border
|
|
|
height="500px"
|
|
|
>
|
|
|
+ <el-table-column label="序号" width="50px" align="center" prop="No" v-if="computedType=='multipleEDB'">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{scope.$index|getNoText}}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="指标全称" show-overflow-tooltip align="center" prop="EdbName"/>
|
|
|
<el-table-column width="50px" align="center">
|
|
|
<template slot="header" slot-scope="scope">
|
|
@@ -324,7 +329,16 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<!-- 结果保存 -->
|
|
|
- <batchComputedSave :selectList="selectList" :formData="formData" @close="showSave=false" v-else/>
|
|
|
+ <batchComputedSave
|
|
|
+ :select_target="select_target"
|
|
|
+ :computedType="computedType"
|
|
|
+ :subComputedType="subComputedType"
|
|
|
+ :selectList="selectList"
|
|
|
+ :formData="formData"
|
|
|
+ @close="showSave=false"
|
|
|
+ @addCallBack="handleAddSuccess"
|
|
|
+ v-else
|
|
|
+ />
|
|
|
</el-dialog>
|
|
|
</template>
|
|
|
|
|
@@ -333,6 +347,8 @@ import mPage from '@/components/mPage.vue'
|
|
|
import {computedBatchTypesV2} from './util'
|
|
|
import { dataBaseInterface,departInterence } from '@/api/api.js';
|
|
|
import batchComputedSave from './batchComputedSave.vue';
|
|
|
+import {generateSeriesArray} from './util'
|
|
|
+const tag_arr = generateSeriesArray();
|
|
|
export default {
|
|
|
components:{mPage,batchComputedSave},
|
|
|
props:{
|
|
@@ -340,6 +356,11 @@ export default {
|
|
|
type: Boolean
|
|
|
},
|
|
|
},
|
|
|
+ filters:{
|
|
|
+ getNoText(e){
|
|
|
+ return tag_arr[e]
|
|
|
+ }
|
|
|
+ },
|
|
|
computed:{
|
|
|
// 最大添加指标的上限
|
|
|
MAXAddNUM(){
|
|
@@ -355,6 +376,70 @@ export default {
|
|
|
|
|
|
return haveMaxOrMin && this.formData.nullValueWay===4
|
|
|
},
|
|
|
+ timeSeriesOpt(){
|
|
|
+ let arr=[
|
|
|
+ {
|
|
|
+ label:`指标A`,
|
|
|
+ value:'A'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label:`指标B`,
|
|
|
+ value:'B'
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ if(this.computedType=='multipleEDB'){
|
|
|
+ arr=this.selectList.map((item,index)=>{
|
|
|
+ return{
|
|
|
+ label:`指标${tag_arr[index]}`,
|
|
|
+ value:tag_arr[index]
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ return [
|
|
|
+ {
|
|
|
+ label:'指定指标时间序列',
|
|
|
+ value:'0',
|
|
|
+ children:arr
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label:'所有指标时间序列并集',
|
|
|
+ value:'all',
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ isShow(n){
|
|
|
+ if(!n){
|
|
|
+ this.subComputedType=''
|
|
|
+ this.select_target=''
|
|
|
+ this.selectList=[]
|
|
|
+ this.tableDataCheckedList=[]
|
|
|
+ this.tableDataIds=[]
|
|
|
+ this.isCheckAll=false
|
|
|
+ this.isCheckIndeterminate=false
|
|
|
+ this.checkAllStatus=false
|
|
|
+ this.selectionReactCancel=false
|
|
|
+ this.filter={
|
|
|
+ classify:'',
|
|
|
+ frequency:'',
|
|
|
+ user:'',
|
|
|
+ keyword:''
|
|
|
+ }
|
|
|
+ this.formData={
|
|
|
+ nNum:1,
|
|
|
+ calendarType:'公历',
|
|
|
+ frequency:'',
|
|
|
+ valueType:'期末值',
|
|
|
+ newValue:0,
|
|
|
+ alphaValue:'',
|
|
|
+ formula:'',
|
|
|
+ timeSeriesVal:'A',
|
|
|
+ nullValueWay:0,
|
|
|
+ maxNullWay:1,
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
@@ -406,26 +491,6 @@ export default {
|
|
|
emitPath:false
|
|
|
},
|
|
|
|
|
|
- timeSeriesOpt:[
|
|
|
- {
|
|
|
- label:'指定指标时间序列',
|
|
|
- value:'0',
|
|
|
- children:[
|
|
|
- {
|
|
|
- label:`指标A`,
|
|
|
- value:'A'
|
|
|
- },
|
|
|
- {
|
|
|
- label:`指标B`,
|
|
|
- value:'B'
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- label:'所有指标时间序列并集',
|
|
|
- value:'all',
|
|
|
- }
|
|
|
- ],
|
|
|
nullWayOptions: [
|
|
|
{ label: '查找前后35天最近值',value: 0 },
|
|
|
{ label: '不计算',value: 1 },
|
|
@@ -449,7 +514,7 @@ export default {
|
|
|
tableDataIds:[],
|
|
|
|
|
|
selectList:[],//添加到右侧的数据
|
|
|
-
|
|
|
+ addLoading:false,
|
|
|
|
|
|
}
|
|
|
},
|
|
@@ -460,12 +525,44 @@ export default {
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
+ //批量计算成功回调
|
|
|
+ handleAddSuccess(type,params){
|
|
|
+ this.$emit('addCallBack',type,params)
|
|
|
+ },
|
|
|
// 跳转下一步
|
|
|
handleNextStep(){
|
|
|
if(this.selectList.length===0){
|
|
|
this.$message.warning('请选择指标')
|
|
|
return
|
|
|
}
|
|
|
+ if([8,12,13,35].includes(this.computedType) && !this.formData.nNum){
|
|
|
+ this.$message.warning('请输入N数值')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if([51].includes(this.computedType)&& !this.formData.frequency){
|
|
|
+ this.$message.warning('请选择频度')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if(['accumulate'].includes(this.computedType)&&this.subComputedType==62&& !this.formData.frequency){
|
|
|
+ this.$message.warning('请选择频度')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if(this.computedType==72&&!this.formData.alphaValue){
|
|
|
+ this.$message.warning('请输入alpha值')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if(this.computedType=='withEDB'&&!this.select_target){
|
|
|
+ this.$message.warning('请选择指标B')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if(['withNum','withEDB'].includes(this.computedType)&&!this.formData.formula){
|
|
|
+ this.$message.warning('请输入公式')
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ this.isCheckAll=false
|
|
|
+ this.isCheckIndeterminate=false
|
|
|
+ this.checkAllStatus=false
|
|
|
|
|
|
this.showSave=true
|
|
|
},
|
|
@@ -488,7 +585,9 @@ export default {
|
|
|
SelectAll:this.checkAllStatus,
|
|
|
EdbInfoIds:this.tableDataCheckedList.join(',')
|
|
|
}
|
|
|
+ this.addLoading=true
|
|
|
const res=await dataBaseInterface.getBatchFilterAddEdbList(params)
|
|
|
+ this.addLoading=false
|
|
|
if(res.Ret!=200) return
|
|
|
// 加入到已选指标中 要去重
|
|
|
const arr=res.Data.SearchItem||[]
|
|
@@ -521,6 +620,7 @@ export default {
|
|
|
// 切换计算类型
|
|
|
handleComputedTypeChange(){
|
|
|
this.subComputedType=''
|
|
|
+ this.select_target=''
|
|
|
this.formData={
|
|
|
nNum:1,
|
|
|
calendarType:'公历',
|
|
@@ -537,6 +637,8 @@ export default {
|
|
|
this.subComputedType=5
|
|
|
}else if(this.computedType=='accumulate'){
|
|
|
this.subComputedType=62
|
|
|
+ }else if(this.computedType=='multipleEDB'){
|
|
|
+ this.subComputedType=81
|
|
|
}
|
|
|
},
|
|
|
|