浏览代码

补充注释,部分交互细节

cxmo 10 月之前
父节点
当前提交
82f1cb94ae

+ 4 - 0
src/views/chartRelevance_manage/components/chartCard.vue

@@ -18,6 +18,7 @@
               <el-dropdown-item :command="{entryType,scence:'saveOther'}">{{$t('StatisticAnalysis.ChartRelevance.save_other')}}</el-dropdown-item>
             </el-dropdown-menu>
           </el-dropdown>
+          <!-- 保存指标 -->
           <el-button type="primary" v-show="!isEdbAdd" @click="saveEdb(entryType)">{{$t('StatisticAnalysis.ChartRelevance.save_edb')}}</el-button>
         </template>
 
@@ -28,11 +29,14 @@
           @click="updateChartHandle(entryType)" 
           @command="chartCommandHandle"
         >
+          <!-- 更新图表/指标 -->
           {{$t('StatisticAnalysis.ChartRelevance.update_edb')}}
           <el-dropdown-menu slot="dropdown" v-show="isHaveSaveOtherHandle">
+            <!-- 另存为图表/指标 -->
             <el-dropdown-item :command="{entryType,scence:'saveOther'}">{{$t('Table.save_as')}}</el-dropdown-item>
           </el-dropdown-menu>
         </el-dropdown>
+        <!-- 保存图表 -->
         <el-button type="primary" @click="saveChart(entryType)" v-show="!isChartAdd">{{$t('Dialog.confirm_save_btn')}}</el-button>
         <!-- 图例设置 -->
         <el-button type="primary" plain @click="handleChartSettiing" v-show="isChartSetting">图例设置</el-button>

+ 28 - 0
src/views/chartRelevance_manage/relevance/components/multipleIndForm.vue

@@ -201,6 +201,12 @@ import chartRelevanceApi from '@/api/modules/chartRelevanceApi'
 export default {
     mixins:[formMixin],
 	components: { batchSelectTable, batchSelectFormula },
+    props:{
+        SeriesList:{
+            type:Object,
+            default:[]
+        }
+    },
     computed:{
         tableColumns(){
             return [
@@ -245,6 +251,19 @@ export default {
             return frequencySelectList()
         },
     },
+    watch:{
+        SeriesList(newval){
+            this.factorList = newval.map(i=>{
+                return {
+                    SeriesId:i.SeriesId,
+                    SeriesName:i.SeriesName,
+                    CalculateStep:this.formattingStep(i.CalculateStep,false),
+                    EdbMappings:i.EdbMappings,
+                    EdbInfoType:i.EdbInfoType,
+                }
+            })
+        }
+    },
     data(){
         return {
             factorList:[], //多因子系列列表
@@ -455,8 +474,17 @@ export default {
             //校验 是否选择了指标
             //校验 计算公式填写
             await this.$refs.batchSelectFormula.checkForm()
+            //是否超过100个指标
+            if(!this.checkLimitFactor()){
+                this.$message.warning('所有因子指标已超过100,请检查')
+            }
             this.addFactorIndicators()
         },
+        checkLimitFactor(){
+            let total = 0
+            this.factorList.forEach(i=>total += i.EdbMappings+)
+            return total<=100
+        },
         //格式化因子系列计算方式的格式
         formattingStep(steps,isTrans=true){
             return isTrans

+ 34 - 14
src/views/chartRelevance_manage/relevance/relevanceChartEditorV2.vue

@@ -117,7 +117,7 @@
             <div class="multiple-model-wrap" v-if="infoForm.Model===2">
                 <!-- 相关性矩阵表格 -->
                 <div class="relevant-matrix-table-box" v-if="factorTableData.length">
-                    <el-table style="width: 100%;" height="100%" :data="factorTableData">
+                    <el-table style="width: 100%;" height="100%" :data="factorTableData" :row-class-name="getTableRowClassname">
                         <el-table-column 
                             fixed
                             :label="$t('StatisticAnalysis.ChartRelevance.multiple_table_head_01')"
@@ -130,8 +130,10 @@
                                 class-name="zip-cell"
                                 :label="$t('Edb.Detail.e_opera')">
                                <template slot-scope="{row}">
-                                    <span style="color:#0052D9;cursor: pointer;" @click="addCurve(row)" v-if="!row.isAdd">{{$t('StatisticAnalysis.ChartRelevance.multiple_table_btn_add')}}</span>
-                                    <span style="color:#D54941;cursor: pointer;" @click="deleteCurve(row)" v-else>{{$t('StatisticAnalysis.ChartRelevance.multiple_table_btn_del')}}</span>
+                                    <template v-if="row.isSuccess">
+                                        <span style="color:#0052D9;cursor: pointer;" @click="addCurve(row)" v-if="!row.isAdd">{{$t('StatisticAnalysis.ChartRelevance.multiple_table_btn_add')}}</span>
+                                        <span style="color:#D54941;cursor: pointer;" @click="deleteCurve(row)" v-else>{{$t('StatisticAnalysis.ChartRelevance.multiple_table_btn_del')}}</span>
+                                    </template>
                                </template>
                             </el-table-column>
                             <el-table-column
@@ -168,6 +170,7 @@
                         :settings="infoForm"
                         :entryType="2"
                         :isChartSetting="true"
+                        :isChartAdd="isMultipleChartAdd"
                         height="300"
                         @saveChart="(params)=>{handleSave(params);isSaveChartToBase = true;}"
                         @saveEdb="(params)=>{handleSave(params);isSaveEdbToBase = true;}"
@@ -247,7 +250,7 @@ export default {
             infoForm:_.cloneDeep(baseForm),
             chartInfoData: {},//单因子指标信息,新增时为空,编辑时有值,用于回显selectTarget,多因子取第一项
             chartBatchData:null,//单因子图表信息
-            buttonAuth: { //单因子图表按钮控制
+            buttonAuth: { //单因子图表按钮控制
                 isCurveChartAdd: false,
                 isRelevanceChartAdd: false,
                 isRollChartAdd: false,
@@ -255,6 +258,7 @@ export default {
                 isRollChartTwoAdd: false,
                 isRollEdbTwoAdd: false,
             },
+            isMultipleChartAdd:false,//多因子图表按钮控制
             SeriesList:[],//多因子系列列表,编辑时有值
             SortedArray:[],//多因子-领先期数数组 ±N
             factorTableData:[],//多因子-相关性矩阵表格
@@ -330,7 +334,17 @@ export default {
             return this.infoForm
         }
     },
+    mounted(){
+        this.getRelevanceChartDetail()
+    },
     methods: {
+        getTableRowClassname({row}){
+            if(!row.isSuccess){
+                return 'disable-row'
+            }
+            return ''
+        },
+        //重置表单
         resetForm(){
             this.infoForm = _.cloneDeep(baseForm)
             this.chartBatchData = null
@@ -359,6 +373,7 @@ export default {
             if(type==='IndTarget'){
                 this.multipleChartData.ChartInfo = data
             }
+            //若为单因子,选择AB指标后预览曲线图
             if(!['EdbInfoIdA','EdbInfoIdB'].includes(type)) return 
             if(type==='EdbInfoIdA'){
                 this.infoForm.Curve.LeftMin = min;
@@ -393,7 +408,7 @@ export default {
             this.$refs.chartCard1.options.yAxis[1].min = Number(RightMin);
             this.chartBatchData.CurveData.EdbInfoList[1].IsOrder = IsOrder;
         },
-        //点击确定-预览相关性图表/相关性矩阵
+        //预览相关性图表/相关性矩阵
         async previewChart(){
             //表单校验
             await this.$refs.infoFormRef.validate()
@@ -595,19 +610,19 @@ export default {
            /*  this.isSaveEdbToBase = true;
             this.isSaveChartToBase = true; */
         },
-        //保存/另存为指标回调
+        //单因子-保存/另存为指标回调
         saveEdbBack({source}){
             if(source===3) this.buttonAuth.isRollEdbAdd = true;
             else if(source===4)  this.buttonAuth.isRollEdbTwoAdd = true;
         },
-        //保存/另存为图表回调
+        //单因子-保存/另存为图表回调
         saveChartBack({source,id}){
             this.$message.success(this.$t('MsgPrompt.saved_msg'));
             this.setButtonAuth(source);
             //设置封面图
             this.$refs[`chartCard`+source].setChartImage(source,id)
         },
-        // 保存图表后按钮控制 
+        //单因子-保存图表后按钮控制 
         setButtonAuth(source) {
             const sourceMap = {
                 1: 'isCurveChartAdd',
@@ -628,6 +643,7 @@ export default {
             }
             
         },
+        //获取单因子图表详情
         async getSingleDetail(){
             if(!this.$route.query.code) return
             const res = await chartRelevanceApi.getOptionByCode({ UniqueCode: this.$route.query.code});
@@ -661,6 +677,7 @@ export default {
             //初始化chartBatch
             this.previewSingleChart()
         },
+        //获取多因子图表详情
         getMultiplyDetail(){
             if(!this.$route.query.code) return
             //获取图表详情
@@ -718,8 +735,8 @@ export default {
                 this.SortedArray = generateSortedArray(LeadValue)
             })
         },
-        //保存,添加or更新多因子图表
-        async saveMultipleChart({ChartName,ClassifyId}){
+        //多因子-保存/更新/另存为图表
+        async saveMultipleChart({ChartName,ClassifyId,type}){
             const {IndTarget,Correlation} = this.infoForm
             const {SourcesFrom,YDataList} = this.multipleChartData
             const SeriesEdb = YDataList.map(i=>{
@@ -751,12 +768,14 @@ export default {
             }
             console.log('test',params)
             const {ChartInfoId} = this.multipleChartData.ChartInfo
+            //另存为/新增->add 更新->edit
             const res = ChartInfoId
                 ?await chartRelevanceApi.editMultipleFactor({...params,ChartInfoId})
                 :await chartRelevanceApi.addMultipleFactor(params)
             //计算中...
             if(res.Ret!==200) return 
             if(!ChartInfoId){
+                this.isMultipleChartAdd = true
                 this.multipleChartData.ChartInfo.ChartInfoId = res.Data.ChartInfoId
                 this.multipleChartData.ChartInfo.UniqueCode = res.Data.UniqueCode
             }
@@ -766,10 +785,6 @@ export default {
             this.isSaveChartToBase = false
         },
     },
-    mounted(){
-        this.getRelevanceChartDetail()
-
-    }
 };
 </script>
 
@@ -993,5 +1008,10 @@ export default {
             }
         }
     }
+    .disable-row{
+        pointer-events: none;
+        opacity: 0.5;
+        cursor: default; 
+    }
 }
 </style>