解决两个不同数组对象之间的赋值问题

利用后端传来的数组对象,与前端的数组对象不符合,进行处理赋值。从而能遍历动态生成每一项。 

const res=[
    {
        "id": 22,
        "itemName": 38,
        "itemValue": {
            "money": "12",
            "conditionOne": "1|1|8",
            "conditionTow": "3|3|4",
            "conditionThree": "2|2|6"
        }
    },
    {
        "id": 23,
        "itemName": 38,
        "itemValue": {
            "money": "12",
            "conditionOne": "2|8|0",
            "conditionTow": "10|0|0",
            "conditionThree": "0|10|0"
        }
    }
]
const list=ref([])
const gettfmsg = async (obj: any) => {
    const res = await GetTFsetListtAPI(obj)
    tablelist.value = res.lists
    listlength.value = res.lists.length
    for (let index = 0; index < listlength.value; index++) {
        const obj = {
            id: res.lists[index].id,
            type1: res.lists[index].itemName,
            type2: res.lists[index].itemValue.money,
            can1: res.lists[index].itemValue.conditionOne.split('|')[0],
            can2: res.lists[index].itemValue.conditionOne.split('|')[1],
            can3: res.lists[index].itemValue.conditionOne.split('|')[2],
            can4: res.lists[index].itemValue.conditionTow.split('|')[0],
            can5: res.lists[index].itemValue.conditionTow.split('|')[1],
            can6: res.lists[index].itemValue.conditionTow.split('|')[2],
            can7: res.lists[index].itemValue.conditionThree.split('|')[0],
            can8: res.lists[index].itemValue.conditionThree.split('|')[1],
            can9: res.lists[index].itemValue.conditionThree.split('|')[2]
        }
        list.value.push(obj)
    }

    console.log('列表数据', res)
    console.log('列表长度', res.lists.length)
}

 动态生成每一项

  <div v-for="(item, index) in list" :key="index" class="mt-5">
                    <el-form ref="form" size="large">
                        <el-collapse-item :title="`投放费配置项${index + 1}`" :name="index">
                            <!-- 投放类型与基础投放费 -->
                            <div class="flex">
                                <el-form-item label="投放类型:" style="margin-left: 20px">
                                    <el-select
                                        v-model="item.type1"
                                        placeholder="请选择"
                                        style="width: 240px"
                                    >
                                        <el-option
                                            v-for="item in options1"
                                            :key="item.id"
                                            :label="item.name"
                                            :value="item.id"
                                        />
                                    </el-select>
                                </el-form-item>
                                <el-form-item label="基础投放费:" style="margin-left: 20px">
                                    <el-input
                                        style="width: 200px"
                                        v-model="item.type2"
                                        placeholder="请输入投放费"
                                        ><template #append>元 / 张</template></el-input
                                    >
                                </el-form-item>
                            </div>
                            <!-- 无条件 -->
                            <div class="flex justify-around items-center">
                                <el-form-item
                                    label="无条件投放分配比例:广告分发商占比"
                                    prop="name"
                                    style="margin-left: 84px"
                                >
                                    <el-input-number
                                        placeholder="请输入内容"
                                        style="width: 150px"
                                        v-model="item.can1"
                                        :precision="1"
                                        :step="0.1"
                                        :min="0"
                                        :max="10"
                                    />
                                </el-form-item>
                                <el-form-item
                                    label=" 平台占比"
                                    prop="name"
                                    style="margin-left: 20px"
                                >
                                    <el-input-number
                                        placeholder="请输入内容"
                                        style="width: 150px"
                                        v-model="item.can2"
                                        :precision="1"
                                        :step="0.1"
                                        :min="0"
                                        :max="10"
                                    />
                                </el-form-item>
                                <el-form-item
                                    label=" 广告消费用户占比"
                                    prop="name"
                                    style="margin-left: 20px"
                                >
                                    <el-input-number
                                        placeholder="请输入内容"
                                        style="width: 150px"
                                        v-model="item.can3"
                                        :precision="1"
                                        :step="0.1"
                                        :min="0"
                                        :max="10"
                                    />
                                </el-form-item>
                            </div>
                            <!-- 符合任意1个条件投放分配比例 -->
                            <div class="flex justify-around items-center">
                                <el-form-item
                                    label=" 符合任意1个条件投放分配比例:广告分发商占比"
                                    prop="name"
                                    style="margin-left: 20px"
                                >
                                    <el-input-number
                                        placeholder="请输入内容"
                                        style="width: 150px"
                                        v-model="item.can4"
                                        :precision="1"
                                        :step="0.1"
                                        :min="0"
                                        :max="10"
                                    />
                                </el-form-item>

                                <el-form-item
                                    label=" 平台占比"
                                    prop="name"
                                    style="margin-left: 20px"
                                >
                                    <el-input-number
                                        placeholder="请输入内容"
                                        style="width: 150px"
                                        v-model="item.can5"
                                        :precision="1"
                                        :step="0.1"
                                        :min="0"
                                        :max="10"
                                    />
                                </el-form-item>
                                <el-form-item
                                    label=" 广告消费用户占比"
                                    prop="name"
                                    style="margin-left: 20px"
                                >
                                    <el-input-number
                                        placeholder="请输入内容"
                                        style="width: 150px"
                                        v-model="item.can6"
                                        :precision="1"
                                        :step="0.1"
                                        :min="0"
                                        :max="10"
                                    />
                                </el-form-item>
                            </div>
                            <!-- 同时符合2个条件投放比例 -->
                            <div class="flex justify-around items-center">
                                <el-form-item
                                    label="同时符合2个条件投放比例:广告分发商占比"
                                    prop="name"
                                    style="margin-left: 50px"
                                >
                                    <el-input-number
                                        placeholder="请输入内容"
                                        style="width: 150px"
                                        v-model="item.can7"
                                        :precision="1"
                                        :step="0.1"
                                        :min="0"
                                        :max="10"
                                    />
                                </el-form-item>
                                <el-form-item
                                    label=" 平台占比"
                                    prop="name"
                                    style="margin-left: 20px"
                                >
                                    <el-input-number
                                        placeholder="请输入内容"
                                        style="width: 150px"
                                        v-model="item.can8"
                                        :precision="1"
                                        :step="0.1"
                                        :min="0"
                                        :max="10"
                                    />
                                </el-form-item>
                                <el-form-item
                                    label=" 广告消费用户占比"
                                    prop="name"
                                    style="margin-left: 20px"
                                >
                                    <el-input-number
                                        placeholder="请输入内容"
                                        style="width: 150px"
                                        v-model="item.can9"
                                        :precision="1"
                                        :step="0.1"
                                        :min="0"
                                        :max="10"
                                    />
                                </el-form-item>
                            </div>
                            <div style="text-align: center" class="mt-5 mb-5">
                                <el-button type="primary" @click="serve(item)">{{
                                    item.id ? '修改' : '保存'
                                }}</el-button>
                            </div>
                            <hr />
                        </el-collapse-item>
                    </el-form>
                </div>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值