<!-- 下布转数 -->
<el-table-column align="right" width="87px">
<template slot="header" slot-scope="scope">
<span class="sort-table-header">下布转数</span>
</template>
<template slot-scope="scope">
<div>
<el-input
v-model="scope.row.revolutions_count"
placeholder="请输入"
size="mini"
class="align-right-input count_input table_input"
@input="changeSalary(scope.row,scope.$index,'revolutions_count')"
@keyup.native="keyboard($event, scope.$index)"
></el-input>
</div>
</template>
</el-table-column>
<!-- 保底转数 -->
<el-table-column v-if="wage_scheme != 3" align="right" width="87px">
<template slot="header" slot-scope="scope">
<span class="sort-table-header">保底转数</span>
</template>
<template slot-scope="scope">
<div>
<el-input
v-model="scope.row.overproduction"
placeholder="请输入"
size="mini"
class="align-right-input over_input table_input"
@input="changeSalary(scope.row,scope.$index,'overproduction')"
@keyup.native="keyboard($event, scope.$index)"
></el-input>
</div>
</template>
</el-table-column>
<!-- 单价(元/转) -->
<el-table-column v-if="wage_scheme != 3 || price_mode !=0" align="right" width="87px">
<template slot="header" slot-scope="scope">
<span class="sort-table-header">单价(元/转)</span>
</template>
<template slot-scope="scope">
<div>
<el-input
v-model="scope.row.revolution_price"
placeholder="请输入"
size="mini"
class="align-right-input revolution_input table_input"
@input="changeSalary(scope.row,scope.$index,'revolution_price')"
@keyup.native="keyboard($event, scope.$index)"
></el-input>
</div>
</template>
</el-table-column>
<!-- 保底工资 -->
<el-table-column
v-if="wage_scheme == 1 && price_mode ==1 || wage_scheme == 2 && price_mode ==1"
align="right"
width="87px"
>
<template slot="header" slot-scope="scope">
<span class="sort-table-header">保底工资</span>
</template>
<template slot-scope="scope">
<div>
<el-input
v-model="scope.row.knit_loom_price"
placeholder="请输入"
size="mini"
class="align-right-input knit_input table_input"
@input="changeSalary(scope.row,scope.$index,'knit_loom_price')"
@keyup.native="keyboard($event, scope.$index)"
></el-input>
</div>
</template>
</el-table-column>
<!-- 加机费 -->
<el-table-column v-if="wage_scheme == 1 && price_mode ==1" align="right" width="87px">
<template slot="header" slot-scope="scope">
<span class="sort-table-header">加机费</span>
</template>
<template slot-scope="scope">
<div>
<el-input
v-model="scope.row.add_machine_reward"
placeholder="请输入"
size="mini"
class="align-right-input add_input table_input"
@input="changeSalary(scope.row,scope.$index,'add_machine_reward')"
@keyup.native="keyboard($event, scope.$index)"
></el-input>
</div>
</template>
</el-table-column>
// 双向绑定 输入框(下布转数、保底转数、单价(元/转)、保底工资、加机费) - 限制输入
changeSalary(row, index, type) {
this.$nextTick(() => {
// 先把非数字的都替换掉(空),除了数字和.
this.clothProduceData[index][type] = this.clothProduceData[index][
type
].replace(/[^\d.]/g, "");
// 必须保证第一个为数字而不是.
this.clothProduceData[index][type] = this.clothProduceData[index][
type
].replace(/^\./g, "");
// 保证只有出现一个.而没有多个.
this.clothProduceData[index][type] = this.clothProduceData[index][
type
].replace(/\.{3,}/g, "");
// 保证.只出现一次,而不能出现两次以上
this.clothProduceData[index][type] = this.clothProduceData[index][type]
.replace(".", "$#$")
.replace(/\./g, "")
.replace("$#$", ".");
// 限制几位小数
let subscript = -1;
for (let i in this.clothProduceData[index][type]) {
if (this.clothProduceData[index][type][i] === ".") {
subscript = i;
}
if (subscript !== -1) {
if (i - subscript > this.decimalNum(type)) {
this.clothProduceData[index][type] = this.clothProduceData[index][
type
].substring(0, this.clothProduceData[index][type].length - 1);
}
}
}
});
},
// 下布转数、保底转数:整数;单价(元/转):4位小数; 保底工资、加机费:2位小数
decimalNum(type) {
if (type == "revolutions_count" || type == "overproduction") {
return -1;
}
if (type == "revolution_price") {
return 4;
}
if (type == "knit_loom_price" || type == "add_machine_reward") {
return 2;
}
},
参考文档:https://www.cnblogs.com/zm-97/p/12076892.html