Browse Source

mock 添加因子指标系列

cxmo 11 tháng trước cách đây
mục cha
commit
a32cb73d7d

+ 11 - 1
src/views/chartRelevance_manage/relevance/components/batchSelectFormula.vue

@@ -82,6 +82,10 @@ export default {
         dataFormulaList:{
             type:Array,
             default:[]
+        },
+        factorData:{
+            type:Object,
+            default:{}
         }
     },
     computed:{
@@ -118,10 +122,16 @@ export default {
             ]
         }
     },
+    watch:{
+        factorData(newValue){
+            this.formulaForm = _.cloneDeep(newValue)
+        }
+    },
     data() {
         return {
             formulaForm:{
-                formulaList:[]
+                formulaList:[],
+                name:''
             },
             formulaRules:{},
         };

+ 21 - 10
src/views/chartRelevance_manage/relevance/components/batchSelectTable.vue

@@ -94,19 +94,19 @@ export default {
         isSelectAll:{
             type:Boolean,
             default:false,
+        },
+        factorData:{
+            type:Object,
+            default:{}
         }
     },
     watch:{
-        isSelectAll(newValue){
-            this.selectList = []
-            this.$refs.tableRef && this.tableData.length && this.$refs.tableRef.clearSelection()
-            if(newValue){
-                //会触发select-all
-                this.$refs.tableRef && this.tableData.length && this.$refs.tableRef.toggleAllSelection()
-                /* //不会触发select-all
-                this.$refs.tableRef && this.tableData.length && this.$refs.tableRef.toggleRowSelection(this.tableData[0],true) */
-            }
-        },
+        /* isSelectAll(newValue){
+            this.listCheckAllChange(newValue)
+        }, */
+        factorData(newValue){
+            this.selectData = newValue.selectList||[]
+        }
     },
     data() {
         return {
@@ -200,6 +200,17 @@ export default {
                 }
             })
         },
+        listCheckAllChange(newValue){
+            console.log('触发:newValue',newValue)
+            this.selectList = []
+            this.$refs.tableRef && this.tableData.length && this.$refs.tableRef.clearSelection()
+            if(newValue){
+                //会触发select-all
+                this.$refs.tableRef && this.tableData.length && this.$refs.tableRef.toggleAllSelection()
+                /* //不会触发select-all
+                this.$refs.tableRef && this.tableData.length && this.$refs.tableRef.toggleRowSelection(this.tableData[0],true) */
+            }
+        },
         pageNumberChange(page){
             this.$emit('pageChange',page)
         },

+ 54 - 8
src/views/chartRelevance_manage/relevance/components/multipleIndForm.vue

@@ -17,8 +17,9 @@
                 :label="$t('StatisticAnalysis.ChartRelevance.factor_indicators')" required>
             </el-form-item>
             <div class="factor-list">
-                    <div class="list-item">123</div>
-                    <div class="list-item">456</div>
+                    <div class="list-item" 
+                        v-for="(item,index) in factorList" :key="index"
+                        @click.stop="openAddDialog(item)">{{ item.name }}</div>
                 </div>
             <div class="add-factor-btn" @click="openAddDialog({})">
                 <img src="~@/assets/img/add-quadrate-blue.png" />
@@ -26,6 +27,7 @@
             </div>
         </div>
         <div class="form-box">
+            <!-- 相关性 -->
             <div class="label-title">{{ $t('Chart.ChartType.correlation_name') }}</div>
             <el-form-item 
                 :label="$t('StatisticAnalysis.ChartRelevance.calculation_window')"
@@ -70,6 +72,7 @@
                 </el-select>
             </el-form-item>
         </div>
+        <!-- 添加/编辑因子系列弹窗 -->
         <el-dialog
             :visible.sync="isAddFactorDialogShow"
             :close-on-click-modal="false"
@@ -134,9 +137,10 @@
                         <i slot="prefix" class="el-input__icon el-icon-search"></i>
                     </el-input>
                     <el-checkbox 
+                        :label="$t('EtaBasePage.label_all_check')"
                         :indeterminate="isIndeterminate" 
                         v-model="isCheckAll" 
-                        @change="listCheckAllChange">{{ $t('EtaBasePage.label_all_check') }}</el-checkbox>
+                        @change="listCheckAllChange"/>
                 </div>
                 <!-- 表格 -->
                 <batchSelectTable
@@ -146,6 +150,7 @@
                     :tableParams="tableParams"
                     :tableLoading="tableLoading"
                     :isSelectAll="isSelectAll"
+                    :factorData="factorData"
                     @pageChange="tablePageChange"
                     @changeCheckAll="changeCheckAll"
                     @addSelectData="addSelectData"
@@ -153,11 +158,12 @@
                 <!-- 计算公式 -->
                 <batchSelectFormula
                     ref="batchSelectFormula"
+                    :factorData="factorData"
                 ></batchSelectFormula>
             </div>
             <div class="dialog-footer">
                 <el-button type="primary" plain @click="isAddFactorDialogShow=false">{{$t('Dialog.cancel_btn')}}</el-button>
-                <el-button type="primary" @click="handleAddFactor">{{$t('Dialog.next_step')}}</el-button>
+                <el-button type="primary" @click="handleAddFactor">{{$t('Dialog.confirm_btn')}}</el-button>
             </div>
         </el-dialog>
     </div>
@@ -218,8 +224,13 @@ export default {
     },
     data(){
         return {
+            factorList:[], //mock用,之后替换成infoForm中表示因子系列的字段
             isAddFactorDialogShow:false,
-            factorData:{},
+            factorData:{
+                name:'',//因子系列名称
+                formulaList:[],//因子系列计算公式
+                selectList:[],//因子系列选择的指标
+            },
             tableData:[],
             tableSelectParams:{
                 classify:'',
@@ -244,11 +255,35 @@ export default {
     },
     methods:{
         openAddDialog(data){
-            this.factorData = data
+            const {name='',formulaList=[],selectList=[]} = data
+            this.factorData = {
+                name,formulaList,selectList
+            }
             this.getClassifyOpt()
             this.getSysUserOpt()
+            //清空筛选项
+            this.initSelectOpt()
+            this.tableData = []
             this.isAddFactorDialogShow = true
         },
+        initSelectOpt(){
+            this.tableSelectParams = {
+                classify:'',
+                frequency:'',
+                creator:'',
+                keyword:'',
+            }
+            this.tableParams = {
+                total:0,
+                pageSize:20,
+                pageNo:1,
+                pagerCount:5,
+                uniqueKey:'EdbInfoId',//数据行的唯一key
+            }
+            this.isIndeterminate = false
+            this.isCheckAll = false
+            this.listCheckAllChange(false)
+        },
         async getClassifyOpt(){
             const res=await dataBaseInterface.menuListV3()
             if (res.Ret !== 200) return
@@ -279,6 +314,9 @@ export default {
         },
         listCheckAllChange(value){
             this.isSelectAll = value
+            this.$nextTick(()=>{
+                this.$refs.batchSelectTable&&this.$refs.batchSelectTable.listCheckAllChange(value)
+            })
         },
         changeCheckAll({isCheckAll,isIndeterminate}){
             this.isCheckAll = isCheckAll
@@ -288,7 +326,7 @@ export default {
             this.tableParams.pageNo = page
             this.getTableData('pageChange')
         },
-        async addSelectData({selectList,selectData}){
+        async addSelectData({selectList=[],selectData=[]}){
             //校验:没选择任何指标
             if(!this.isCheckAll&&!this.isIndeterminate){
                 return this.$message.warning('请选择需要添加的指标')
@@ -313,13 +351,14 @@ export default {
             //const data = this.mergeAndDistinct(selectData,res.Data.SearchItem||[])
             const data = selectData.concat(res.Data.SearchItem||[]).filter((item,index,self)=>{
                 return index ===self.findIndex(t=>t.EdbInfoId === item.EdbInfoId)
-            })
+            })||[]
             //再计算一次总和,若超出,则只获取没超出的部分
 
 
             //加入到selectData中
             this.$refs.batchSelectTable.addSelectData(data)
             //自动填写指标系列名称
+            this.$refs.batchSelectFormula.formulaForm.name = selectData[0]?selectData.EdbName:data[0]?data[0].EdbName:''
         },
         async getTableData(type){
             this.tableLoading=true
@@ -366,6 +405,13 @@ export default {
         },
         addFactorIndicators(){
             //因子指标系列push
+            const selectData = this.$refs.batchSelectTable.selectData
+            const {name,formulaList} = this.$refs.batchSelectFormula.formulaForm
+            this.factorList.push({
+                name,formulaList,
+                selectList:selectData,
+            })
+            this.isAddFactorDialogShow = false
         }
     }
 };