cxmo 1 year ago
parent
commit
4c4c818b8c

+ 64 - 11
src/views/dataEntry_manage/databaseComponents/smoothEdbDialog.vue

@@ -34,6 +34,7 @@
                         @click.native="inputFocusHandle"
                         @change="chooseTarget"
                         @blur="search_have_more = false"
+                        :disabled="operationForm.view"
                     >
                         <i slot="prefix" class="el-input__icon el-icon-search"></i>
                         <el-option
@@ -69,6 +70,7 @@
                             width="110"
                             align="center"
                             label="操作"
+                            v-if="!operationForm.view"
                         >
                             <template slot-scope="scope">
                                 <span class="deletesty" @click="delTarget">删除</span>
@@ -103,6 +105,7 @@
                             label-width="80px"
                             :model="formData"
                             :rules="formRules"
+                            :disabled="operationForm.view"
                         >
                             <el-form-item label="指标名称" prop="targetName">
                                 <el-input
@@ -118,12 +121,11 @@
                                 />
                             </el-form-item>
                             <el-form-item label="指标目录" prop="menu">
-                                <el-cascader
+                                <el-cascader v-if="isOpenSmooth"
                                     v-model="formData.menu"
                                     :options="catalogArr"
                                     :props="levelProps"
                                     clearable
-                                    :emitPath="false"
                                     placeholder="请选择指标目录"
                                 />
                             </el-form-item>
@@ -155,8 +157,36 @@
                 </div>
             </div>
             <!-- 批量计算 -->
-            <div class="batch-wrap" v-else></div>
-            <div class="dia-bot">
+            <div class="batch-wrap" v-else>
+                <ul class="target-ul">
+                    <li class="target-li" v-for="(list, index) in targetList" :key="index">
+                        <span class="li-tag">{{ list.tag }}</span>
+                        <el-select v-model="list.target" v-loadMore="searchLoad" :filterable="!list.target" clearable
+                            placeholder="请输入指标名称" style="width: 400px" @change="chooseTarget"
+                            @clear="clearHandle(index)" remote :remote-method="searchTarget"
+                            @click.native="inputFocusHandle">
+                            <i slot="prefix" class="el-input__icon el-icon-search"></i>
+                            <el-option v-for="item in searchOptions" :key="item.EdbInfoId"
+                                :label="$parent.currentLang==='en'?(item.EdbNameEn||item.EdbName):item.EdbName"
+                                :value="item.EdbInfoId">
+                            </el-option>
+                        </el-select>
+
+                        <i class="el-icon-tickets" style="color:#409EFF;font-size:18px"
+                            @click="$emit('lookHistory',list.target)" v-if="list.target" />
+
+                        <i class="el-icon-error del-tag" v-if="index > 1" @click="delTarget(index)" />
+                        <span class="target-date" v-if="list.start_date">{{
+						`${list.start_date}至${list.end_date}`
+					}}</span>
+                    </li>
+                </ul>
+                <span class="add-icon" @click="addTargetHandle">
+                    <i class="el-icon-circle-plus-outline" style="color: #5882ef; font-size: 16px" />
+                    添加更多指标
+                </span>
+            </div>
+            <div class="dia-bot" v-if="!operationForm.view">
                 <el-button
                     type="primary"
                     style="margin-right: 20px"
@@ -180,6 +210,8 @@
 <script>
 import { dataBaseInterface } from '@/api/api.js';
 import { formRules } from './util';
+const tag_arr = [];
+for(let i=0;i<26;i++) tag_arr.push(String.fromCharCode(65+i));
 export default {
     props:{
         isOpenSmooth:{
@@ -200,6 +232,7 @@ export default {
     },
     data() {
         return {
+            /* 常规 */
             formData:{
                 targetName:'',
                 unit:'',
@@ -214,6 +247,7 @@ export default {
                 label: 'ClassifyName',
                 value: 'ClassifyId',
                 children: 'Children',
+                emitPath: false,
             },
 
             select_target:'',
@@ -258,6 +292,10 @@ export default {
             ],
             dataList:[],
 
+            /* 批量 */
+            targetList:[],
+            formDataList:[],
+
             loading:false,
         };
     },
@@ -268,16 +306,22 @@ export default {
                 if(this.operationForm.edb_id){
                     this.select_target = this.operationForm.oldedb_id
                     this.getDataList()
-                    this.setDefaultOption(this.operationForm)
+                    this.setDefaultOption(this.operationForm,'edit')
+                    //回显时的默认options
+                    this.searchOptions = [
+                        {
+                            EdbInfoId: this.operationForm.oldedb_id,
+                            EdbName: this.operationForm.oldEdb_name,
+                        }
+                    ]
                 }
-            }else{
-                this.init()
             }
         }
     },
     methods: {
         init(){
-
+            this.$refs.form.resetFields();
+            Object.assign(this.$data, this.$options.data());
         },
         searchLoad() {
             if(!this.search_have_more) return;
@@ -329,9 +373,9 @@ export default {
                 this.dataList = [];
             }
         },
-        setDefaultOption(obj){
+        setDefaultOption(obj,type){
             this.formData = {
-                targetName:obj.EdbName+'指数修匀',
+                targetName:`${obj.EdbName}${type==='edit'?'':'指数修匀'}`,
                 unit:obj.Unit,
                 frequency:obj.Frequency,
                 menu:obj.ClassifyId||'',
@@ -357,7 +401,16 @@ export default {
                 }
             })
         },
-        handleSelectBtnClick(){},
+        handleSelectBtnClick(){
+            //计算指标打开弹窗,基础指标打开新页面
+            if(this.tableData[0].EdbType===2){
+                this.$emit('lookHistory',this.select_target)
+            }else{
+                const {ClassifyId,UniqueCode,EdbInfoId} = this.tableData[0]
+                let {href} = this.$router.resolve({path:`/database`,query:{code:UniqueCode,id:EdbInfoId,classifyId:ClassifyId}});
+                window.open(href,'_blank');
+            }
+        },
         delTarget(){},
         scrollHandle(){},
         async saveHandle(){

+ 5 - 2
src/views/dataEntry_manage/databaseList.vue

@@ -1593,6 +1593,7 @@ export default {
 				if(res.Ret !== 200) return
 				this.setComputedDialogForm(Source,node,data,res.Data,true);
 				this.computed_type = [23,24].includes(Source) ? 'joint' : Source;
+				this.computed_type = [72,73].includes(data.Source)? 'alpha': data.Source;
 			})
 		},
 
@@ -1667,11 +1668,13 @@ export default {
 					}
 
 				if([72,73].includes(type)){
-					const {EdbName,EdbInfoId,Frequency,Unit,ClassifyId,Formula} = dataInfo
+					const {EdbName,EdbInfoId,Frequency,Unit,ClassifyId,CalculateFormula} = dataInfo
 					this.operationForm = {
 						edb_id: EdbInfoId,
 						oldedb_id: old_edb[0].FromEdbInfoId,
-						EdbName,Frequency,Unit,ClassifyId,Formula
+						oldEdb_name: old_edb[0].FromEdbName,
+						EdbName,Frequency,Unit,ClassifyId,Formula:CalculateFormula,
+						view
 					}
 				}
 			}