|
@@ -36,11 +36,20 @@ watch(
|
|
|
name:item.FromEdbName
|
|
|
}
|
|
|
})
|
|
|
- formulaVal.value=props.edbInfo.EdbInfoDetail.CalculateFormula
|
|
|
+ formulaList.value= JSON.parse(props.edbInfo.EdbInfoDetail.CalculateFormula).map(_ =>({
|
|
|
+ formula: _.f,
|
|
|
+ date: _.d
|
|
|
+ }))
|
|
|
baseInfo.name=props.edbInfo.EdbInfoDetail.EdbName
|
|
|
baseInfo.unit=props.edbInfo.EdbInfoDetail.Unit
|
|
|
baseInfo.classify=props.edbInfo.EdbInfoDetail.ClassifyId
|
|
|
baseInfo.frequency=props.edbInfo.EdbInfoDetail.Frequency
|
|
|
+ baseInfo.nullValueWay=props.edbInfo.EdbInfoDetail.EmptyType
|
|
|
+ baseInfo.maxNullWay=props.edbInfo.EdbInfoDetail.MaxEmptyType
|
|
|
+
|
|
|
+ nullWayStr.value = nullWayOptions.value.find(_ =>_.value===baseInfo.nullValueWay).label
|
|
|
+ maxNullStr.value = maxNullWayOptions.value.find(_=>_.value===baseInfo.maxNullWay).label
|
|
|
+
|
|
|
setTimeout(() => {
|
|
|
selectEDBClassifyINS.value?.getSelectClassifyOpt(props.edbInfo.EdbInfoDetail.ClassifyId)//获取选择的分类目录
|
|
|
}, 1000);
|
|
@@ -207,7 +216,7 @@ const formulaDateArr = computed(() => {
|
|
|
/* 新增公式分段 */
|
|
|
function addFormulaHandle() {
|
|
|
let addItem = {
|
|
|
- formula: formulaList.value[0].formula,
|
|
|
+ formula: formulaList.value[formulaList.value.length-1].formula,
|
|
|
date: ''
|
|
|
}
|
|
|
formulaList.value.push(addItem)
|
|
@@ -245,11 +254,11 @@ function handleConfirmFormulaDate(val) {
|
|
|
const nullWayStr = ref('查找前后35天最近值')
|
|
|
const showNullValPoup = ref(false)
|
|
|
const nullWayOptions = ref([
|
|
|
- { label: '查找前后35天最近值',value: 1 },
|
|
|
- { label: '不计算',value: 2 },
|
|
|
- { label: '前值填充',value: 3 },
|
|
|
- { label: '后值填充',value: 4 },
|
|
|
- { label: '等于0',value: 5 },
|
|
|
+ { label: '查找前后35天最近值',value: 0 },
|
|
|
+ { label: '不计算',value: 1 },
|
|
|
+ { label: '前值填充',value: 2 },
|
|
|
+ { label: '后值填充',value: 3 },
|
|
|
+ { label: '等于0',value: 4 },
|
|
|
])
|
|
|
function onConfirmNullWay(e) {
|
|
|
baseInfo.nullValueWay = e.selectedValues[0]
|
|
@@ -262,14 +271,14 @@ function onConfirmNullWay(e) {
|
|
|
const showMaxNullDeal = computed(()=> {
|
|
|
let haveMaxOrMin = formulaList.value.some(_ => _.formula.toUpperCase().includes('MAX') || _.formula.toUpperCase().includes('MIN'))
|
|
|
|
|
|
- return haveMaxOrMin && baseInfo.nullValueWay===5
|
|
|
+ return haveMaxOrMin && baseInfo.nullValueWay===4
|
|
|
})
|
|
|
//max空值处理
|
|
|
const maxNullStr = ref('等于0')
|
|
|
const showMaxNullValPoup = ref(false)
|
|
|
const maxNullWayOptions = ref([
|
|
|
- { label: '等于0',value: '等于0' },
|
|
|
- { label: '跳过空值',value: '跳过空值' },
|
|
|
+ { label: '等于0',value: 1 },
|
|
|
+ { label: '跳过空值',value: 2 },
|
|
|
])
|
|
|
function onConfirmMaxNullWay(e) {
|
|
|
baseInfo.maxNullWay = e.selectedValues[0]
|
|
@@ -295,7 +304,7 @@ const formTips = ref({
|
|
|
|
|
|
// 提交计算
|
|
|
async function handleSave(){
|
|
|
- if(!formulaVal.value){
|
|
|
+ if(!formulaList.value[0].formula){
|
|
|
showToast('计算公式不能为空')
|
|
|
return
|
|
|
}
|
|
@@ -321,13 +330,18 @@ async function handleSave(){
|
|
|
FromTag: item.tag,
|
|
|
}
|
|
|
})
|
|
|
+
|
|
|
+ let CalculateFormula = JSON.stringify(formulaList.value.map(_ => ({ f:_.formula,d: _.date })))
|
|
|
+
|
|
|
const params={
|
|
|
- CalculateFormula:formulaVal.value,
|
|
|
+ CalculateFormula,
|
|
|
ClassifyId:baseInfo.classify,
|
|
|
EdbName:baseInfo.name,
|
|
|
Frequency:baseInfo.frequency,
|
|
|
Unit:baseInfo.unit,
|
|
|
- EdbInfoIdArr:arr
|
|
|
+ EdbInfoIdArr:arr,
|
|
|
+ EmptyType:baseInfo.nullValueWay,
|
|
|
+ MaxEmptyType:baseInfo.maxNullWay
|
|
|
}
|
|
|
const edbInfoId=route.query.edbInfoId
|
|
|
const res=edbInfoId?await apiDataEDB.editCalculateFormula({...params,EdbInfoId:Number(edbInfoId)}):await apiDataEDB.addCalculateFormula(params)
|
|
@@ -463,7 +477,7 @@ async function handleSave(){
|
|
|
</li>
|
|
|
<li class="formula-tips">
|
|
|
<p class="en-text-wrap">公式示例:A*0.5+B*C*1.2+120-MAX(A,B,C)</p>
|
|
|
- <p class="en-text-wrap">函数支持:MAX(),MIN(),ln(A),log(a,A)</p>
|
|
|
+ <p class="en-text-wrap">函数支持:MAX(),MIN(),ln(A),log(a,A),abs(),exp(),pow(),round()</p>
|
|
|
</li>
|
|
|
</ul>
|
|
|
|