前端小菜鸡使用Vue+Element笔记(二)

记录一下在使用Vue和Element做项目时遇到过的难点。。。

1、在 表格中嵌入 select下拉选择框,以及 tooltip提示框的使用

主要定义格式如红色标记代码

riderPlanListTableData : 是用来填充表格的数据

type='index' 是对每行都做个序号标记,方便取单行数据以及给单行数据赋值

特别说明一下这个 slot-scope="scope" :这个能定位到行数据,表格中有很多行时,需要通过scope.row去定位行数据 和index一起使用

          table
                :data="riderPlanListTableData"
                stripe
                border
                type="index"
                fit
                style="width: 100%"
                @select-all='selectAll'
                @select="handleSelect">
                
                   
                
          
            prop=" premiumperyear"
            label="每年保费">
          
        
           

响应表格中的额度输入框onFocus的方法:sumassuredFocus(scope.row)  : 这个scope.row可以取到表格中当前行所有的列数据 

/** 附加产品保额的focus焦点获取事件,提示用户当前产品的保额限定值 */
sumassuredFocus(row){  
  if(row.maxSumAssured == 0 && row.maxSumAssured == row.minSumAssured){
    this.sumassuredTips = '固定保费附加产品,无需输入保额直接选中即可!'
  }else{
    this.sumassuredTips = '最低保额:'+ row.minSumAssured + ' - 最高保额:' + row.maxSumAssured
  }
},

响应表格中的onchange方法:sumassuredChange(scope.$index,scope.row): index可以定位行序号,row可以定为当前行数据

let 和 var:  let 定义的是局部变量,var 定义的是全局变量

this.$set(this.inputForm,'attribute','attributeValue');  //通过这句话可以给this.inputForm对应的属性赋值

    /**附加产品保额变化的change事件:计算出对应的保费 */
    sumassuredChange(index,row) {
        let inputForm = this.inputForm;   
        this.tmpSplit = (row.riderCGroupName).split('_');
        this.$set(this.inputForm,'riderCode','1234');  //如果this.inputForm对象中有riderCode属性,1234则会覆盖riderCode属性值,如果没有则会创建一个riderCode属性并且赋值为1234
        this.$set(this.inputForm,'careerLevel',this.tmpSplit[1]);
        this.$set(this.inputForm,'sumAssured',row.sumassured);this.INPUT_FORM(this.inputForm);
        let inputObj = JSON.stringify(this.inputForm);
        let tmpThis = this; //这里这样子定义是因为进入CalRiderPremiumByCode方法后不能直接使用this,需要使用变量接收this值,然后再在方法里面使用变量
        let indexs = index;
        let row1 = row;

    /** 这一段代码是与后台进行交互
      1、inputObj是方法的入参对象 ,因为在api.js中指定了入参格式为 application/json,所以应该先调用 JSON.stringify()方法格式化入参,再传给后台
2、CalRiderPremiumByCode方法需要在 service包下的 api.js文件中定义,并且在当前使用的文件中声明

    
import {CalRiderPremiumByCode} from '../service/api' //此声明语句应放在

你可能感兴趣的:(前端小菜鸡使用Vue+Element笔记(二))