yxh
2023-06-15 e5e3e1a5bc8aa300c580126703bb6067221dee96
src/views/project/travelexpenseslist/eidt.vue
@@ -24,8 +24,7 @@
                <el-col :span="7">
                    <el-form-item label="捐献者" prop="infoid">
                        <el-select v-model="form.infoid" @change="selectbaseinfo" filterable placeholder="请选择捐献者">
                            <el-option v-for="item in baselist" :key="item.index" :label="item.name"
                                :value="item.infoid">
                            <el-option v-for="item in baselist" :key="item.index" :label="item.name" :value="item.infoid">
                            </el-option>
                        </el-select>
                    </el-form-item>
@@ -34,8 +33,7 @@
            <el-row>
                <el-col :span="7">
                    <el-form-item label="出差人分类" prop="costtype">
                        <el-select v-model="form.costtype" value-key="value" placeholder="请选择出差人分类"
                            @change="getTravelers">
                        <el-select v-model="form.costtype" value-key="value" placeholder="请选择出差人分类" @change="getTravelers">
                            <el-option v-for="dict in dict.type.sys_travelexpensebelong" :key="dict.value"
                                :label="dict.label" :value="dict.value"></el-option>
                        </el-select>
@@ -138,66 +136,59 @@
                    </el-table-column>
                    <el-table-column prop="trafficexpense" label="交通费" align="center" width="100">
                        <template slot-scope="scope">
                            <el-input v-model="scope.row.trafficexpense" placeholder="交通费" @blur="
                                (val) => {
                            <el-input v-model="scope.row.trafficexpense" placeholder="交通费" @blur="(val) => {
                                    sumTotalFee();
                                }
                            " />
                                " />
                        </template>
                    </el-table-column>
                    <el-table-column prop="cityfee" label="市内交通费" align="center" width="100">
                        <template slot-scope="scope">
                            <el-input v-model="scope.row.cityfee" placeholder="市内交通费" @blur="
                                (val) => {
                            <el-input v-model="scope.row.cityfee" placeholder="市内交通费" @blur="(val) => {
                                    sumTotalFee();
                                }
                            ">{{ Number(scope.row.cityfee).toFixed(2) }}
                                ">{{ Number(scope.row.cityfee).toFixed(2) }}
                            </el-input>
                        </template>
                    </el-table-column>
                    <el-table-column prop="hotelexpense" label="住宿费" align="center" width="100">
                        <template slot-scope="scope">
                            <el-input v-model="scope.row.hotelexpense" placeholder="住宿费" @blur="
                                (val) => {
                            <el-input v-model="scope.row.hotelexpense" placeholder="住宿费" @blur="(val) => {
                                    sumTotalFee();
                                }
                            " />
                                " />
                        </template>
                    </el-table-column>
                    <el-table-column prop="otherexpense" label="杂费" align="center" width="100">
                        <template slot-scope="scope">
                            <el-input v-model="scope.row.otherexpense" placeholder="杂费" @blur="
                                (val) => {
                            <el-input v-model="scope.row.otherexpense" placeholder="杂费" @blur="(val) => {
                                    sumTotalFee();
                                }
                            " />
                                " />
                        </template>
                    </el-table-column>
                    <el-table-column prop="foodexpenses" label="伙食费报销" align="center" width="100">
                        <template slot-scope="scope">
                            <el-input v-model="scope.row.foodexpenses" placeholder="伙食费报销" @blur="
                                (val) => {
                            <el-input v-model="scope.row.foodexpenses" placeholder="伙食费报销" @blur="(val) => {
                                    sumTotalFee();
                                }
                            " />
                                " />
                        </template>
                    </el-table-column>
                    <el-table-column prop="foodallowance" label="伙食费补助" align="center" width="100">
                        <template slot-scope="scope">
                            <el-input v-model="scope.row.foodallowance" placeholder="伙食费补助" @blur="
                                (val) => {
                            <el-input v-model="scope.row.foodallowance" placeholder="伙食费补助" @blur="(val) => {
                                    sumTotalFee();
                                }
                            " />
                                " />
                        </template>
                    </el-table-column>
                    <el-table-column prop="otherfeeamount" label="其他费用" align="center" width="100">
                        <template slot-scope="scope">
                            <el-input v-model="scope.row.otherfeeamount" placeholder="其他费用" @blur="
                                (val) => {
                            <el-input v-model="scope.row.otherfeeamount" placeholder="其他费用" @blur="(val) => {
                                    sumTotalFee();
                                }
                            " />
                                " />
                        </template>
                    </el-table-column>
                    <el-table-column prop="departure" slot="" label="其他费用说明" align="center" width="120">
@@ -215,7 +206,7 @@
                            <el-button type="text" size="mini" @click="addRow(scope.$index)">新增</el-button>
                            <el-button @click.native.prevent="
                                deleteRow(scope.$index, applicationDetailArr, scope.row)
                            " type="text" size="small">
                                " type="text" size="small">
                                删除
                            </el-button>
                        </template>
@@ -300,11 +291,10 @@
            </el-form-item> -->
                    <el-form-item label="文件上传" align="left" prop="annexfiles">
                        <!-- <file-upload ref="fileUpload" :fileType=fileType :limit="1" :on-success="handleUploadSuccess"></file-upload> -->
                        <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileList"
                            multiple :limit="5" :headers="headers" :on-success="
                                (response, file, fileList) =>
                        <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileList" multiple
                            :limit="20" :headers="headers" :on-success="(response, file, fileList) =>
                                    uploadSccess(response, file, fileList)
                            " :on-preview="downFile" :disabled='dialogType == "detail"' :on-error="handleUploadError"
                                " :on-preview="downFile" :disabled='dialogType == "detail"' :on-error="handleUploadError"
                            :on-exceed="handleExceed" :on-remove="remove" accept="image/*,.pdf">
                            <el-button :disabled='dialogType == "detail"' size="small" type="primary">上传</el-button>
                        </el-upload>
@@ -657,74 +647,73 @@
                });
            });
        },
           deleteRow(index, rows, row) {
        this.$confirm("是否确认删除?", "提示", {
            confirmButtonText: "确定",
            cancelButtonText: "取消",
            type: "success",
        })
            .then(() => {
                if (row.id !== null) {
                    delReimbursementdetail(row.id).then((res) => {
                        this.$modal.msgSuccess("删除成功");
                        rows.splice(index, 1);
                        this.recountOrderNo();
                        this.sumTotalFee();
                    });
                } else {
                    rows.splice(index, 1);
                    this.sumTotalFee();
                    this.$modal.msgSuccess("删除成功");
                    this.recountOrderNo();
                }
        deleteRow(index, rows, row) {
            this.$confirm("是否确认删除?", "提示", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "success",
            })
            .catch(() => {
                //几点取消的提示
            });
                .then(() => {
                    if (row.id !== null) {
                        delReimbursementdetail(row.id).then((res) => {
                            this.$modal.msgSuccess("删除成功");
                            rows.splice(index, 1);
                            this.recountOrderNo();
                            this.sumTotalFee();
                        });
                    } else {
                        rows.splice(index, 1);
                        this.sumTotalFee();
                        this.$modal.msgSuccess("删除成功");
                        this.recountOrderNo();
                    }
                })
                .catch(() => {
                    //几点取消的提示
                });
        },
        //计算费用合计
        sumTotalFee() {
            let allSum = 0;
            try {
                for (let i = 0; i < this.applicationDetailArr.length; i++) {
                    let totalFee = 0;
                    //计算当前报销内容费用合计
                    if (!isNaN(parseFloat(this.applicationDetailArr[i].trafficexpense))) {
                        totalFee += parseFloat(this.applicationDetailArr[i].trafficexpense);
                    }
                    if (!isNaN(parseFloat(this.applicationDetailArr[i].cityfee))) {
                        totalFee += parseFloat(this.applicationDetailArr[i].cityfee);
                    }
                    if (!isNaN(parseFloat(this.applicationDetailArr[i].hotelexpense))) {
                        totalFee += parseFloat(this.applicationDetailArr[i].hotelexpense);
                    }
                    if (!isNaN(parseFloat(this.applicationDetailArr[i].otherexpense))) {
                        totalFee += parseFloat(this.applicationDetailArr[i].otherexpense);
                    }
                    if (!isNaN(parseFloat(this.applicationDetailArr[i].foodexpenses))) {
                        totalFee += parseFloat(this.applicationDetailArr[i].foodexpenses);
                    }
                    if (!isNaN(parseFloat(this.applicationDetailArr[i].foodallowance))) {
                        totalFee += parseFloat(this.applicationDetailArr[i].foodallowance);
                    }
                    if (!isNaN(parseFloat(this.applicationDetailArr[i].otherfeeamount))) {
                        totalFee += parseFloat(this.applicationDetailArr[i].otherfeeamount);
                    }
                    this.applicationDetailArr[i].total = parseFloat(totalFee).toFixed(2);
                    this.$set(this.applicationDetailArr, i, this.applicationDetailArr[i]);
                    if (!isNaN(parseFloat(this.applicationDetailArr[i].total))) {
                        allSum += parseFloat(this.applicationDetailArr[i].total);
                    }
                }
                this.form.amountrequested = allSum.toFixed(2);
                this.form.bigstrmoney = this.convertCurrency(this.form.amountrequested);
            } catch { }
        },
    },
    //计算费用合计
    sumTotalFee() {
        // debugger;
        let allSum = 0;
        try {
            for (let i = 0; i < this.applicationDetailArr.length; i++) {
                let totalFee = 0;
                //计算当前报销内容费用合计
                if (!isNaN(parseFloat(this.applicationDetailArr[i].trafficexpense))) {
                    totalFee += parseFloat(this.applicationDetailArr[i].trafficexpense);
                }
                if (!isNaN(parseFloat(this.applicationDetailArr[i].cityfee))) {
                    totalFee += parseFloat(this.applicationDetailArr[i].cityfee);
                }
                if (!isNaN(parseFloat(this.applicationDetailArr[i].hotelexpense))) {
                    totalFee += parseFloat(this.applicationDetailArr[i].hotelexpense);
                }
                if (!isNaN(parseFloat(this.applicationDetailArr[i].otherexpense))) {
                    totalFee += parseFloat(this.applicationDetailArr[i].otherexpense);
                }
                if (!isNaN(parseFloat(this.applicationDetailArr[i].foodexpenses))) {
                    totalFee += parseFloat(this.applicationDetailArr[i].foodexpenses);
                }
                if (!isNaN(parseFloat(this.applicationDetailArr[i].foodallowance))) {
                    totalFee += parseFloat(this.applicationDetailArr[i].foodallowance);
                }
                if (!isNaN(parseFloat(this.applicationDetailArr[i].otherfeeamount))) {
                    totalFee += parseFloat(this.applicationDetailArr[i].otherfeeamount);
                }
                this.applicationDetailArr[i].total = parseFloat(totalFee).toFixed(2);
                this.$set(this.applicationDetailArr, i, this.applicationDetailArr[i]);
                if (!isNaN(parseFloat(this.applicationDetailArr[i].total))) {
                    allSum += parseFloat(this.applicationDetailArr[i].total);
                }
            }
            this.form.amountrequested = allSum.toFixed(2);
            this.form.bigstrmoney = this.convertCurrency(this.form.amountrequested);
        } catch { }
    },
    },
}
</script>