|
@@ -1,5 +1,5 @@
|
|
|
<script setup>
|
|
|
-import {ref,reactive,watch} from 'vue'
|
|
|
+import {ref,reactive,watch, computed} from 'vue'
|
|
|
import { useRoute, useRouter } from "vue-router";
|
|
|
import EDBHistory from '@/views/dataEDB/components/EDBHistory.vue'
|
|
|
import SelectEDB from './SelectEDB.vue'
|
|
@@ -53,6 +53,10 @@ watch(
|
|
|
if([72].includes(edbInfoData.Source)){//指数修匀
|
|
|
baseInfo.alphaVal=Number(edbInfoData.CalculateFormula)
|
|
|
}
|
|
|
+ if([62].includes(edbInfoData.Source)){//最新值处理
|
|
|
+ const ExtraObj=JSON.parse(edbInfoData.Extra)
|
|
|
+ baseInfo.newVal=ExtraObj.LastValType==1?'均值填充':'默认'
|
|
|
+ }
|
|
|
|
|
|
setTimeout(() => {
|
|
|
selectEDBClassifyINS.value?.getSelectClassifyOpt(props.edbInfo.EdbInfoDetail.ClassifyId)//获取选择的分类目录
|
|
@@ -149,27 +153,35 @@ function updateBaseInfoData(data){
|
|
|
['年度','Y'],
|
|
|
])
|
|
|
const name_map = {
|
|
|
- 5: data.EdbName,
|
|
|
+ 5: `${data.EdbName}转月值`,
|
|
|
8: `${data.EdbName}/${baseInfo.numberN}${tMap.get(data.Frequency)}MA`,
|
|
|
- 14: `${data.EdbName}/${data.Frequency}升频`,
|
|
|
+ 14: `${data.EdbName}/日频`,
|
|
|
6: `${data.EdbName}同比`,
|
|
|
7: `${data.EdbName}同差`,
|
|
|
12: `${data.EdbName}${baseInfo.numberN}${data.Frequency.slice(0,1)}环比`,
|
|
|
13: `${data.EdbName}${baseInfo.numberN}${data.Frequency.slice(0,1)}环差`,
|
|
|
35: `${data.EdbName}超季节性/${baseInfo.numberN}年${baseInfo.calendarType==='公历'?'':'/'+baseInfo.calendarType}`,
|
|
|
- 52: `${data.EdbName}年化`,
|
|
|
- 51: `${data.EdbName}/${data.Frequency}降频`,
|
|
|
- 61: data.EdbName,
|
|
|
- 62: data.EdbName,
|
|
|
- 63: data.EdbName,
|
|
|
+ 52: `${data.EdbName}年化值`,
|
|
|
+ 51: `${data.EdbName}/${data.Frequency.substr(0,1)}频`,
|
|
|
+ 61: `${data.EdbName}转季值`,
|
|
|
+ 62: `${data.EdbName}累计值/${data.Frequency}`,
|
|
|
+ 63: `${data.EdbName}年初至今累计值`,
|
|
|
72: `${data.EdbName}指数修匀`,
|
|
|
- 75: `${data.EdbName}日均值`
|
|
|
+ 75: `${data.EdbName}日均值`,
|
|
|
+ 22:`${data.EdbName}${getMoveTypeName(baseInfo.moveType)}${baseInfo.moveVal}${baseInfo.moveUnit}`
|
|
|
}
|
|
|
baseInfo.name=name_map[source.value]||''
|
|
|
- baseInfo.unit=[5,8,14,7,35,72,75].includes(source.value) ? data.Unit : '无',
|
|
|
- baseInfo.frequency=source.value === 14 ? '日度' : source.value === 61 ? '季度' : source.value === 62 ? '' : data.Frequency
|
|
|
+ baseInfo.unit=[5,8,13,14,7,35,72,75,61,62,63,52].includes(source.value) ? data.Unit : '无'
|
|
|
+ if(source.value === 14){
|
|
|
+ baseInfo.frequency='日度'
|
|
|
+ }else if(source.value === 61){
|
|
|
+ baseInfo.frequency='季度'
|
|
|
+ }else{
|
|
|
+ baseInfo.frequency=data.Frequency
|
|
|
+ }
|
|
|
+ // baseInfo.frequency=source.value === 14 ? '日度' : source.value === 61 ? '季度' : source.value === 62 ? '' : data.Frequency
|
|
|
|
|
|
- if([72,75].includes(source.value)){//指数修匀目录默认和选择的指标在同一个目录
|
|
|
+ if([5,6,7,8,12,13,14,22,35,51,52,61,62,63,72,75].includes(source.value)){//目录默认和选择的指标在同一个目录
|
|
|
selectEDBClassifyINS.value?.getSelectClassifyOpt(data.ClassifyId)//获取选择的分类目录
|
|
|
}
|
|
|
|
|
@@ -191,6 +203,7 @@ const baseInfo=reactive({
|
|
|
calendarType:'公历',
|
|
|
valueType:'期末值',
|
|
|
alphaVal:'',
|
|
|
+ newVal:'默认',
|
|
|
})
|
|
|
|
|
|
// 选择单位
|
|
@@ -218,6 +231,14 @@ function handleConfirmClassify({value,selectedOptions}){
|
|
|
const showSelectFrequency=ref(false)
|
|
|
function handleConfirmFrequency(value){
|
|
|
baseInfo.frequency=value
|
|
|
+
|
|
|
+ // 修改指标名称
|
|
|
+ if(!selectEDBinfo.value||editEdbInfoId.value) return
|
|
|
+ const name_map = {
|
|
|
+ 51: `${selectEDBinfo.value.EdbName}/${baseInfo.frequency.substr(0,1)}频`,
|
|
|
+ 62: `${selectEDBinfo.value.EdbName}累计值/${baseInfo.frequency}`,
|
|
|
+ }
|
|
|
+ baseInfo.name=name_map[source.value]||''
|
|
|
}
|
|
|
|
|
|
//移动方式类型选择
|
|
@@ -244,6 +265,25 @@ const showDataValSelect=ref(false)
|
|
|
//查看指标数据详情
|
|
|
const showSeeEDBDataList=ref(false)
|
|
|
|
|
|
+//选择最新值处理方式
|
|
|
+const showNewValSelect=ref(false)
|
|
|
+const newValOpts=ref([{name:'默认'}])
|
|
|
+const frequencyChangeFlag=computed(()=>{
|
|
|
+ return selectEDBinfo.value?.Frequency+'转'+baseInfo.frequency
|
|
|
+})
|
|
|
+watch(
|
|
|
+ ()=>frequencyChangeFlag.value,
|
|
|
+ (n)=>{
|
|
|
+ const arr=['日度转周度','日度转旬度','周度转旬度']
|
|
|
+ if(n&&arr.includes(n)){
|
|
|
+ newValOpts.value=[{name:'默认'}]
|
|
|
+ baseInfo.newVal=''
|
|
|
+ }else{
|
|
|
+ newValOpts.value=[{name:'默认'},{name:'均值填充'}]
|
|
|
+ }
|
|
|
+ }
|
|
|
+)
|
|
|
+
|
|
|
// 提交计算
|
|
|
const saveBtnLoading=ref(false)
|
|
|
async function handleSave(){
|
|
@@ -290,6 +330,9 @@ async function handleSave(){
|
|
|
MoveFrequency: baseInfo.moveUnit,
|
|
|
MoveType: baseInfo.moveType,
|
|
|
Calendar: baseInfo.calendarType,
|
|
|
+ Extra:JSON.stringify({
|
|
|
+ LastValType:baseInfo.newVal==='均值填充'?1:0
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
saveBtnLoading.value=true
|
|
@@ -325,6 +368,7 @@ function handleTabChange(){
|
|
|
baseInfo.moveUnit='天'
|
|
|
baseInfo.calendarType='公历'
|
|
|
baseInfo.valueType='期末值'
|
|
|
+ baseInfo.newVal='默认'
|
|
|
classifyStr.value=''
|
|
|
|
|
|
}
|
|
@@ -536,6 +580,18 @@ function handleShowEDBHistory(data){
|
|
|
<svg-icon v-if="!isPreview" class="edit-icon" name="edit" :color="alphaValInputFocus?'#0052D9':'#333333'"/>
|
|
|
</template>
|
|
|
</van-field>
|
|
|
+ <!-- 最新值处理 -->
|
|
|
+ <van-field
|
|
|
+ v-if="[62,63].includes(source)"
|
|
|
+ :modelValue="baseInfo.newVal||'默认'"
|
|
|
+ readonly
|
|
|
+ label="最新值处理"
|
|
|
+ placeholder="请选择"
|
|
|
+ input-align="right"
|
|
|
+ :right-icon="!isPreview?'arrow':''"
|
|
|
+ @click-input="showNewValSelect=true"
|
|
|
+ :disabled="isPreview"
|
|
|
+ />
|
|
|
</section>
|
|
|
|
|
|
<div class="formula-intro-btn" @click="showTips=true">
|
|
@@ -579,6 +635,9 @@ function handleShowEDBHistory(data){
|
|
|
|
|
|
<!-- 降频数据取值 -->
|
|
|
<van-action-sheet v-model:show="showDataValSelect" close-on-click-action :actions="[{name:'期末值'},{name:'平均值'}]" @select="e=>baseInfo.valueType=e.name" />
|
|
|
+
|
|
|
+ <!-- 最新值处理选项 -->
|
|
|
+ <van-action-sheet v-model:show="showNewValSelect" close-on-click-action :actions="newValOpts" @select="e=>baseInfo.newVal=e.name" />
|
|
|
|
|
|
<!-- 指标溯源 -->
|
|
|
<EDBHistory v-model:show="showEDBHistory" :edbInfoId="edbHistoryId"/>
|