问题:点击表格按钮关上弹窗,同时批改按钮的disabled=true,敞开弹窗,批改按钮的disabled=false。
知识点:
1、this.$set(item,'INdisabled',false):应用$set,这样增加的属性才是响应式,否则无论怎么批改,都不会扭转曾经展现的数据!
2、深拷贝,浅拷贝

<el-table            :data="invoiceRecord"            border            stripe            ref="multipleTable"            tooltip-effect="dark"            style="width: 100%; overfolow: hidden"          >            <el-table-column            label="编号"            type="index"            align="center"            width="65">            </el-table-column>            <el-table-column              prop="address"              label="操作"              fixed="right"              align="center"            >              <template slot-scope="scope">                  <el-button :disabled="scope.row.INdisabled"                    v-if="scope.row.SM_ID == 0 "                    class="upload"                    size="mini"                    type="danger"                    @click="getContractInvoiceId(scope.row)"                    >上传</el-button>              </template>            </el-table-column>          </el-table>

注:加载表格数据invoiceRecord的时候,手动增加了INdisabled属性

this.invoiceRecord.find((item, index) => {//留神应用$set,这样增加的属性才是响应式,否则不论用!//item.INdisabled=false;//这种写法不具备响应式,即便表格数据批改,表格展现的还是原来的数据        this.$set(item,'INdisabled',false)        if(item.IIM_IsFlag==0){          this.$set(item,'INdisabled',true);        }           })//上传点击事件 getContractInvoiceId(item){      this.$set(item,'INdisabled',true);      // item.INdisabled=true;      this.uploadInvoice=item;//浅拷贝,用于敞开弹窗批改disabled    },

下面点击事件,给变量uploadInvoice赋值,是用于弹窗敞开的时候,能动静批改编辑行按钮的状态。这里波及到一个深拷贝,浅拷贝的问题,浅拷贝复制的是援用(批改uploadInvoice,item也跟着变动);深拷贝复制的是实体(uploadInvoice是一个独立的个体,批改uploadInvoice,item不变),写法JSON.parse(JSON.stringify(item)),网上是这么说的,我也没试过。

//弹窗敞开事件 uploadInvoice当初是援用的item,因而item.INdisabled也会扭转changeVisible(){      this.$set(this.uploadInvoice,'INdisabled',false);//按钮复原状态    },