Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我对所有值求和,但为什么';s不适用于所有动态总计字段_Javascript_Html_Laravel_Vue.js_Laravel 5.7 - Fatal编程技术网

Javascript 我对所有值求和,但为什么';s不适用于所有动态总计字段

Javascript 我对所有值求和,但为什么';s不适用于所有动态总计字段,javascript,html,laravel,vue.js,laravel-5.7,Javascript,Html,Laravel,Vue.js,Laravel 5.7,我使用的是laravel5.7&vuejs2.5.* 简而言之:当我输入值时,我会在“总计”字段中得到总和,但当我动态添加项目行时,它不适用于其他项目行,它只适用于第一行 说明:我有一些税收分解的输入字段,我需要将它们相加并显示在税收分解总额字段中。在我的TicketInvoiceItems中,我有Taxes\u Breakup字段和Total\u Taxes\u Breakup字段,当我输入所有值时,我在Total\u Taxes\u Breakup中得到总和,但当我动态添加TicketInv

我使用的是
laravel5.7
&
vuejs2.5.*

简而言之:当我输入值时,我会在“总计”字段中得到总和,但当我动态添加项目行时,它不适用于其他项目行,它只适用于第一行

说明:我有一些
税收分解
的输入字段,我需要将它们相加并显示在
税收分解总额
字段中。在我的
TicketInvoiceItems
中,我有
Taxes\u Breakup
字段和
Total\u Taxes\u Breakup
字段,当我输入所有值时,我在
Total\u Taxes\u Breakup
中得到总和,但当我动态添加
TicketInvoiceItems
字段时,
TicketInvoiceItems
中的其他
Total\u Tax\u BreakUp
字段与第一个
Total\u Tax\u BreakUp
字段相同。下面是一张图像,以便于更好地理解。谢谢

这是我的
HTML
代码:


我的VueJs
数据()

data(){
返回{
编辑模式:对,
ticketInvoices:{},
表格:新表格({
id:“”,
供应商id:“”,
车票发票号:“,
票证\发票\日期:“”,
票务发票总额:“,
票务项目:[{
id:“”,
票证\发票\ id:“”,
乘客姓名:“,
部门:“,
税务局局长:0,
税项(SRP):0,,
税款:0,
税款:0,
总税费明细:0,
}]
})
};
},
我的
计算:
代码:

计算:{
总税(){
让calTaxTotal=
parseInt(this.form.ticketInvoiceItems[0].tax\u SB)+
parseInt(this.form.ticketInvoiceItems[0].tax\u SRP)+
parseInt(this.form.ticketInvoiceItems[0].tax\u YQ)+
parseInt(this.form.ticketInvoiceItems[0].tax\u RG);
this.form.ticketInvoiceItems[0]。总计\u税费\u细分=calTaxTotal;
返回calTaxTotal;
}
},

问题出在您的计算属性中。所有索引都位于0或表的第一行。如果您想将多行相加,则需要将索引传递到totalTax中。因此,计算属性不是最佳选择。将其转换为方法,并将索引(或键)传递给方法

<input :value="getTotalTaxes(key)"
                       id="total_tax_breakup"
                       type="number" size="10"
                       name="total_tax_breakup"
                       class="table-control form-control">

问题出在您的计算属性中。所有索引都位于0或表的第一行。如果您想将多行相加,则需要将索引传递到totalTax中。因此,计算属性不是最佳选择。将其转换为方法,并将索引(或键)传递给方法

<input :value="getTotalTaxes(key)"
                       id="total_tax_breakup"
                       type="number" size="10"
                       name="total_tax_breakup"
                       class="table-control form-control">

最好将
v-for
中的代码分离到自定义组件。更简单。我是新手,所以我不明白你说了什么,除非你用简单的方式详细说明,否则我的英语也不太好。。。。。顺便说一句,谢谢兄弟。您最好将
v-for
中的代码分离到自定义组件。更简单。我是新手,所以我不明白你说了什么,除非你用简单的方式详细说明,否则我的英语也不太好。。。。。顺便说一句,谢谢兄弟。谢谢兄弟的支持,但我接受了上面的答案,我认为这是最简单的一个…你能帮我一个忙吗?你能帮我解决这个问题吗@弗农·建豪·斯塔克:谢谢兄弟的支持,但我接受了上面的答案,我认为这很简单……你能帮我一个忙吗?你能帮我解决这个问题吗@弗农:谢谢兄弟。。。。。你能让我也帮我摆脱这个吗@肖恩·斯塔克:谢谢兄弟。。。。。你能让我也帮我摆脱这个吗@肖恩·斯塔克:
<input :value="getTotalTaxes(key)"
                       id="total_tax_breakup"
                       type="number" size="10"
                       name="total_tax_breakup"
                       class="table-control form-control">
      methods: {
        /**
         * The index parameter is the current row that you are working on  
         * @param index
         * @returns {number}
         */
        getTotalTaxes(index) {
            let calTaxTotal =
                parseInt(this.form.ticketInvoiceItems[index].tax_SB) +
                parseInt(this.form.ticketInvoiceItems[index].tax_SRP) +
                parseInt(this.form.ticketInvoiceItems[index].tax_YQ) +
                parseInt(this.form.ticketInvoiceItems[index].tax_RG);

            this.form.ticketInvoiceItems[index].total_tax_breakup = calTaxTotal;

            return calTaxTotal;
        }
    }