0

我在为我的公司制作程序时遇到了问题,这个概念是你可以根据你必须填写的标记的标准为每个部门输入标记(nilai),它有 5 个标准。问题是我必须根据标准名称分隔标准,当我尝试时无法显示数组

<template>
<div class="space-x-4 sm:-my-px sm:ml-1 sm:flex">
    <jet-button @click="getKriteria1">P1</jet-button>
    <jet-button @click="getKriteria2">P2</jet-button>
    <jet-button @click="getKriteria3">P3</jet-button>
    <jet-button @click="getKriteria4">P4</jet-button>
    <jet-button @click="getKriteria5">P5</jet-button>
</div>

<div class="mt-4">
    <div class="space-x-4 sm:-my-px sm:ml-1 sm:flex" v-if="session === 1" :v-for="(kriteria, index) in kriteria1.data" :key="kriteria.id">
        <label>{{kriteria.sub_kriteria}} : </label>
        <jet-input type="number" class="mt-1 block w-3/4" placeholder="Nilai"
            ref="nilai"
            v-model="form.nilai[index]"
            @keyup.enter="create" />
        <jet-input-error :message="form.errors.nilai" class="mt-2" />                        
    
    </div>
</div>
</template>

你们能帮我为什么不能显示我得到的kriterias吗,在控制台中我可以看到kriteria被读取并且有字段但是当我尝试用道具调用它时它不能显示并且不能转换为kriteria1

<script>

props: {
    penilaians: Array,
    kriterias:Array,

},

data() {
    return {
        session:1,
        kriteria1:[],
        kriteria2:[],
        kriteria3:[],
        kriteria4:[],
        kriteria5:[],            
        form:this.$inertia.form({
            nilai:[],
            foto:[],
            status:[],
            rekomendasi:[]
        }),
    }
},
methods:{

    getKriteria1(){
        this.session = 1;
        this.kriteria1 = kriterias;
        for(let index=0;index<=kriterias.length;index++){
            if(kriterias[index].nama === 'P1'){
                this.kriteria1[index].id = kriterias[index].id;
                this.kriteria1[index].nama = kriterias[index].nama;
                this.kriteria1[index].sub_kriteria = kriterias[index].sub_kriteria;
            }
        }
        

    },
}
</script>

我删除组件并故意导入,因为它不会影响我认为的问题

4

1 回答 1

0

主要思想是将“kriteria”字段过滤为特定值,因此我使用 getKriteria 1 制作了过滤器,因此我可以获得“kriteria”的“nilai”形式

method:{
            getKriteria1(){
            this.session = 1;
            var kriteria = this.kriterias;
            var j=0;
            for(var i=0;i<= kriteria.length;i++){
                if(kriteria[i].nama == 'P1'){
                    this.kriteria1[j] = kriteria[i];

                    j++;
                    
                }
            }
      

        },
}

这是程序的jetstream模板:

<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
            <div class="space-x-4 sm:-my-px sm:ml-1 sm:flex"  :v-on:show ="getPenilaianId()">
                <jet-button v-on:click.prevent="getKriteria1()" >P1</jet-button>
                <jet-button v-on:click.prevent="getKriteria2()" >P2</jet-button>
                <jet-button v-on:click.prevent="getKriteria3()" >P3</jet-button>
                <jet-button v-on:click.prevent="getKriteria4()" >P4</jet-button>
                <jet-button v-on:click.prevent="getKriteria5()" >P5</jet-button>
            </div>

            <div class="mt-4">
                <div v-if="session === 1">
                    <div v-for="item in kriteria1" :key="item.id" :v-on:show="getKriteriaId(item.id-1)">
                        <div v-if="item === null"> Tidak ada Kriteria </div>
                        <label>{{item.nama}} - {{item.sub_kriteria}}</label>
                        <jet-input type="number" class="mt-1 block w-3/4" placeholder="Nilai"
                            ref="nilai"
                            v-model="form.nilai[item.id-1]"
                            @keyup.enter="create" />

                        <jet-input-error :message="form.errors.nilai" class="mt-2" />
</div>
</div>
</div>
于 2021-10-21T01:21:34.600 回答