|
@@ -100,15 +100,16 @@
|
|
|
:rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
|
|
|
<template #edit="scope">
|
|
|
<el-input maxlength="15" v-model="scope.row.number"
|
|
|
- @input="handleNumberInput(scope.row)"></el-input>
|
|
|
+ @input="handleOrdinaryNumberInput(scope.row, 1)"
|
|
|
+ @blur="handleOrdinaryNumberInput(scope.row, 1)"></el-input>
|
|
|
</template>
|
|
|
</vxe-table-column>
|
|
|
<vxe-table-column field="ordinaryNumber" title="非数电发票" :edit-render="{}"
|
|
|
show-overflow="title" :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
|
|
|
<template #edit="scope">
|
|
|
<el-input maxlength="15" v-model="scope.row.ordinaryNumber"
|
|
|
- @input="handleOrdinaryNumberInput(scope.row)"
|
|
|
- @blur="handleNumberInput(scope.row)"></el-input>
|
|
|
+ @input="handleOrdinaryNumberInput(scope.row, 2)"
|
|
|
+ @blur="handleOrdinaryNumberInput(scope.row, 2)"></el-input>
|
|
|
</template>
|
|
|
</vxe-table-column>
|
|
|
<vxe-table-column field="numberCount" title="汇总" show-overflow="title"
|
|
@@ -226,15 +227,15 @@
|
|
|
:rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
|
|
|
<template #edit="scope">
|
|
|
<el-input maxlength="15" v-model="scope.row.number"
|
|
|
- @input="handleNumberInput(scope.row)"></el-input>
|
|
|
- </template>
|
|
|
+ @input="handleOrdinaryNumberInput(scope.row, 1)"
|
|
|
+ @blur="handleOrdinaryNumberInput(scope.row, 1)"></el-input> </template>
|
|
|
</vxe-table-column>
|
|
|
<vxe-table-column field="ordinaryNumber" title="非数电发票" :edit-render="{}"
|
|
|
show-overflow="title" :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
|
|
|
<template #edit="scope">
|
|
|
<el-input maxlength="15" v-model="scope.row.ordinaryNumber"
|
|
|
- @input="handleOrdinaryNumberInput(scope.row)"
|
|
|
- @blur="handleNumberInput(scope.row)"></el-input>
|
|
|
+ @input="handleOrdinaryNumberInput(scope.row, 2)"
|
|
|
+ @blur="handleOrdinaryNumberInput(scope.row, 2)"></el-input>
|
|
|
</template>
|
|
|
</vxe-table-column>
|
|
|
<vxe-table-column field="numberCount" title="汇总" show-overflow="title"
|
|
@@ -347,15 +348,16 @@
|
|
|
:rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
|
|
|
<template #edit="scope">
|
|
|
<el-input maxlength="15" v-model="scope.row.number"
|
|
|
- @input="handleNumberInput(scope.row)"></el-input>
|
|
|
+ @input="handleOrdinaryNumberInput(scope.row, 1)"
|
|
|
+ @blur="handleOrdinaryNumberInput(scope.row, 1)"></el-input>
|
|
|
</template>
|
|
|
</vxe-table-column>
|
|
|
<vxe-table-column field="ordinaryNumber" title="非数电发票" :edit-render="{}"
|
|
|
show-overflow="title" :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
|
|
|
<template #edit="scope">
|
|
|
<el-input maxlength="15" v-model="scope.row.ordinaryNumber"
|
|
|
- @input="handleOrdinaryNumberInput(scope.row)"
|
|
|
- @blur="handleNumberInput(scope.row)"></el-input>
|
|
|
+ @input="handleOrdinaryNumberInput(scope.row, 2)"
|
|
|
+ @blur="handleOrdinaryNumberInput(scope.row, 2)"></el-input>
|
|
|
</template>
|
|
|
</vxe-table-column>
|
|
|
<vxe-table-column field="numberCount" title="汇总" show-overflow="title"
|
|
@@ -454,15 +456,16 @@
|
|
|
:rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
|
|
|
<template #edit="scope">
|
|
|
<el-input maxlength="15" v-model="scope.row.number"
|
|
|
- @input="handleNumberInput(scope.row)"></el-input>
|
|
|
+ @input="handleOrdinaryNumberInput(scope.row, 1)"
|
|
|
+ @blur="handleOrdinaryNumberInput(scope.row, 1)"></el-input>
|
|
|
</template>
|
|
|
</vxe-table-column>
|
|
|
<vxe-table-column field="ordinaryNumber" title="非数电发票" :edit-render="{}" show-overflow="title"
|
|
|
:rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
|
|
|
<template #edit="scope">
|
|
|
<el-input maxlength="15" v-model="scope.row.ordinaryNumber"
|
|
|
- @input="handleOrdinaryNumberInput(scope.row)"
|
|
|
- @blur="handleNumberInput(scope.row)"></el-input>
|
|
|
+ @input="handleOrdinaryNumberInput(scope.row, 2)"
|
|
|
+ @blur="handleOrdinaryNumberInput(scope.row, 2)"></el-input>
|
|
|
</template>
|
|
|
</vxe-table-column>
|
|
|
<vxe-table-column field="numberCount" title="汇总" show-overflow="title"
|
|
@@ -572,19 +575,20 @@
|
|
|
</template>
|
|
|
</vxe-table-column>
|
|
|
<vxe-colgroup title="费用" align="center">
|
|
|
- <vxe-table-column field="number" title="数电发票" show-overflow="title"
|
|
|
+ <vxe-table-column field="number" title="数电发票" show-overflow="title" :edit-render="{}"
|
|
|
:rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
|
|
|
<template #edit="scope">
|
|
|
<el-input maxlength="15" v-model="scope.row.number"
|
|
|
- @input="handleNumberInput(scope.row)"></el-input>
|
|
|
+ @input="handleOrdinaryNumberInput(scope.row, 1)"
|
|
|
+ @blur="handleOrdinaryNumberInput(scope.row, 1)"></el-input>
|
|
|
</template>
|
|
|
</vxe-table-column>
|
|
|
<vxe-table-column field="ordinaryNumber" title="非数电发票" :edit-render="{}"
|
|
|
show-overflow="title" :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
|
|
|
<template #edit="scope">
|
|
|
<el-input maxlength="15" v-model="scope.row.ordinaryNumber"
|
|
|
- @input="handleOrdinaryNumberInput(scope.row)"
|
|
|
- @blur="handleNumberInput(scope.row)"></el-input>
|
|
|
+ @input="handleOrdinaryNumberInput(scope.row, 2)"
|
|
|
+ @blur="handleOrdinaryNumberInput(scope.row, 2)"></el-input>
|
|
|
</template>
|
|
|
</vxe-table-column>
|
|
|
<vxe-table-column field="numberCount" title="汇总" show-overflow="title"
|
|
@@ -696,15 +700,16 @@
|
|
|
:rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
|
|
|
<template #edit="scope">
|
|
|
<el-input maxlength="15" v-model="scope.row.number"
|
|
|
- @input="handleNumberInput(scope.row)"></el-input>
|
|
|
+ @input="handleOrdinaryNumberInput(scope.row, 1)"
|
|
|
+ @blur="handleOrdinaryNumberInput(scope.row, 1)"></el-input>
|
|
|
</template>
|
|
|
</vxe-table-column>
|
|
|
<vxe-table-column field="ordinaryNumber" title="非数电发票" :edit-render="{}"
|
|
|
show-overflow="title" :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
|
|
|
<template #edit="scope">
|
|
|
<el-input maxlength="15" v-model="scope.row.ordinaryNumber"
|
|
|
- @input="handleOrdinaryNumberInput(scope.row)"
|
|
|
- @blur="handleNumberInput(scope.row)"></el-input>
|
|
|
+ @input="handleOrdinaryNumberInput(scope.row, 2)"
|
|
|
+ @blur="handleOrdinaryNumberInput(scope.row, 2)"></el-input>
|
|
|
</template>
|
|
|
</vxe-table-column>
|
|
|
<vxe-table-column field="numberCount" title="汇总" show-overflow="title"
|
|
@@ -819,15 +824,16 @@
|
|
|
:rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
|
|
|
<template #edit="scope">
|
|
|
<el-input maxlength="15" v-model="scope.row.number"
|
|
|
- @input="handleNumberInput(scope.row)"></el-input>
|
|
|
+ @input="handleOrdinaryNumberInput(scope.row, 1)"
|
|
|
+ @blur="handleOrdinaryNumberInput(scope.row, 1)"></el-input>
|
|
|
</template>
|
|
|
</vxe-table-column>
|
|
|
<vxe-table-column field="ordinaryNumber" title="非数电发票" :edit-render="{}"
|
|
|
show-overflow="title" :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
|
|
|
<template #edit="scope">
|
|
|
<el-input maxlength="15" v-model="scope.row.ordinaryNumber"
|
|
|
- @input="handleOrdinaryNumberInput(scope.row)"
|
|
|
- @blur="handleNumberInput(scope.row)"></el-input>
|
|
|
+ @input="handleOrdinaryNumberInput(scope.row, 2)"
|
|
|
+ @blur="handleOrdinaryNumberInput(scope.row, 2)"></el-input>
|
|
|
</template>
|
|
|
</vxe-table-column>
|
|
|
<vxe-table-column field="numberCount" title="汇总" show-overflow="title"
|
|
@@ -925,15 +931,16 @@
|
|
|
:rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
|
|
|
<template #edit="scope">
|
|
|
<el-input maxlength="15" v-model="scope.row.number"
|
|
|
- @input="handleNumberInput(scope.row)"></el-input>
|
|
|
+ @input="handleOrdinaryNumberInput(scope.row, 1)"
|
|
|
+ @blur="handleOrdinaryNumberInput(scope.row, 1)"></el-input>
|
|
|
</template>
|
|
|
</vxe-table-column>
|
|
|
<vxe-table-column field="ordinaryNumber" title="非数电发票" :edit-render="{}" show-overflow="title"
|
|
|
:rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
|
|
|
<template #edit="scope">
|
|
|
<el-input maxlength="15" v-model="scope.row.ordinaryNumber"
|
|
|
- @input="handleOrdinaryNumberInput(scope.row)"
|
|
|
- @blur="handleNumberInput(scope.row)"></el-input>
|
|
|
+ @input="handleOrdinaryNumberInput(scope.row, 2)"
|
|
|
+ @blur="handleOrdinaryNumberInput(scope.row, 2)"></el-input>
|
|
|
</template>
|
|
|
</vxe-table-column>
|
|
|
<vxe-table-column field="numberCount" title="汇总" show-overflow="title"
|
|
@@ -1064,15 +1071,16 @@
|
|
|
:rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
|
|
|
<template #edit="scope">
|
|
|
<el-input maxlength="15" v-model="scope.row.number"
|
|
|
- @input="handleNumberInput(scope.row)"></el-input>
|
|
|
+ @input="handleOrdinaryNumberInput(scope.row, 1)"
|
|
|
+ @blur="handleOrdinaryNumberInput(scope.row, 1)"></el-input>
|
|
|
</template>
|
|
|
</vxe-table-column>
|
|
|
<vxe-table-column field="ordinaryNumber" title="非数电发票" :edit-render="{}"
|
|
|
show-overflow="title" :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
|
|
|
<template #edit="scope">
|
|
|
<el-input maxlength="15" v-model="scope.row.ordinaryNumber"
|
|
|
- @input="handleOrdinaryNumberInput(scope.row)"
|
|
|
- @blur="handleNumberInput(scope.row)"></el-input>
|
|
|
+ @input="handleOrdinaryNumberInput(scope.row, 2)"
|
|
|
+ @blur="handleOrdinaryNumberInput(scope.row, 2)"></el-input>
|
|
|
</template>
|
|
|
</vxe-table-column>
|
|
|
<vxe-table-column field="numberCount" title="汇总" show-overflow="title"
|
|
@@ -2506,7 +2514,13 @@ export default {
|
|
|
async uploadFile(row, index) {
|
|
|
this.handleTableInfo(this.inputForm.sourceType)
|
|
|
await this.tableRef.clearEdit()
|
|
|
- this.tableRef.setRowExpand(this.tableData[index], true)
|
|
|
+ let tempIndex = this.tableRef.getRowExpandRecords().findIndex(item => {
|
|
|
+ return row.id == item.id
|
|
|
+ })
|
|
|
+ if (tempIndex == -1) {
|
|
|
+ this.tableRef.setRowExpand(this.tableData[index], true)
|
|
|
+
|
|
|
+ }
|
|
|
setTimeout(() => {
|
|
|
this.$refs[row.uniqueId + "Upload"].$el.querySelector('.upload-btn').click();
|
|
|
|
|
@@ -2554,7 +2568,7 @@ export default {
|
|
|
this.tableRef.updateFooter(this.tableData)
|
|
|
row.receiptNumber = files.length
|
|
|
this.handleReceiptNumberInput(row)
|
|
|
- this.handleNumberInput(row)
|
|
|
+ // this.handleNumberInput(row)
|
|
|
},
|
|
|
handleCheckAmount() {
|
|
|
let countFlag = false
|
|
@@ -2601,25 +2615,60 @@ export default {
|
|
|
|
|
|
return arr
|
|
|
},
|
|
|
- handleOrdinaryNumberInput(row) {
|
|
|
- let value = row.ordinaryNumber;
|
|
|
+ handleOrdinaryNumberInput(row, index) {
|
|
|
+ console.log(row);
|
|
|
+ console.log(row);
|
|
|
+ console.log(row);
|
|
|
+ console.log(row);
|
|
|
|
|
|
- // 正则:允许整数、带1~2位小数,也允许末尾点
|
|
|
+ let value = 0
|
|
|
+ if (index == 1) {
|
|
|
+ value = row.number
|
|
|
+ } else {
|
|
|
+ value = row.ordinaryNumber
|
|
|
+ }
|
|
|
const regex = /^(?:[1-9]\d*|0)?(?:\.\d{0,2})?$/;
|
|
|
-
|
|
|
- // 非法字符直接删除
|
|
|
+ // 如果是非数字,直接删除
|
|
|
if (!regex.test(value)) {
|
|
|
- row.ordinaryNumber = value.slice(0, -1);
|
|
|
+ if (index == 1) {
|
|
|
+ row.number = value.slice(0, -1);
|
|
|
+ } else {
|
|
|
+ row.ordinaryNumber = value.slice(0, -1);
|
|
|
+ }
|
|
|
+ this.$message.warning('确保输入数字格式且小数点后只能输入两位')
|
|
|
return;
|
|
|
} else {
|
|
|
+ if (index == 1) {
|
|
|
+ let numberCount = 0
|
|
|
+ this.inputForm.invoiceReimbursementFiles.forEach(item => {
|
|
|
+ if (item.remarks == row.uniqueId) {
|
|
|
+ numberCount += parseFloat(item.count || 0)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ if (numberCount > 0 && row.number > numberCount) {
|
|
|
+ row.number = value.slice(0, -1);
|
|
|
+ this.$message.warning('输入结果不可大于发票费用总和')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
row.numberCount = parseFloat(Number(row.number || 0) + Number(row.ordinaryNumber || 0)).toFixed(2)
|
|
|
this.handleTableInfo(this.inputForm.sourceType)
|
|
|
this.tableRef.updateFooter(this.tableData)
|
|
|
}
|
|
|
},
|
|
|
- handleNumberInput(row) {
|
|
|
- if (this.commonJS.isNotEmpty(row.number)) {
|
|
|
- row.number = this.twoDecimalPlaces(row.number)
|
|
|
+ handleNumberInput(row, index) {
|
|
|
+ let value = 0
|
|
|
+ if (index == 1) {
|
|
|
+ value = row.number
|
|
|
+ } else {
|
|
|
+ value = row.ordinaryNumber
|
|
|
+ }
|
|
|
+ const regex = /^(?:[1-9]\d*|0)?(?:\.\d{0,2})?$/;
|
|
|
+ // 如果是非数字,直接删除
|
|
|
+ if (!regex.test(value)) {
|
|
|
+ row.ordinaryNumber = value.slice(0, -1);
|
|
|
+ return;
|
|
|
}
|
|
|
row.numberCount = parseFloat(Number(row.number || 0) + Number(row.ordinaryNumber || 0)).toFixed(2)
|
|
|
this.handleTableInfo(this.inputForm.sourceType)
|