vue解析前端对象为Array数组并且遍历

例如这个res.data对象:

{"id": "15","name": "火灾"
}

这样子解析吧:

                        let types = JSON.parse(JSON.stringify(res.data))console.log("types is " + types)console.dir(types)for(var i = 0; i < types.length; i++) {console.log("types[i] is " + types[i])console.dir(types[i])this.disasterTypeOptions.push({value: types[i].id,label: types[i].name})}

主要代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><!-- 引入样式 --><link rel="stylesheet" href="../../plugins/element-ui/index.css"/><link rel="stylesheet" href="../../styles/common.css"/><link rel="stylesheet" href="../../styles/page.css"/><style>.selectInput {position: relative;width: 100%;min-width: 100px;}.selectInput .flavorSelect {position: absolute;width: 100%;padding: 0 10px;border-radius: 3px;border: solid 1px #FF903D;line-height: 30px;text-align: center;background: #fff;top: 50px;z-index: 99;}.selectInput .flavorSelect .items {cursor: pointer;display: inline-block;width: 100%;line-height: 35px;border-bottom: solid 1px #f4f4f4;color: #666;}.selectInput .flavorSelect .none {font-size: 14px;}#disasterPublic-add-app .uploadImg .el-form-item__label::before {content: '*';color: #F56C6C;margin-right: 4px;}</style>
</head>
<body>
<div class="addBrand-container" id="disasterPublic-add-app"><div class="container"><el-formref="ruleForm":model="ruleForm":rules="rules":inline="true"label-width="180px"class="demo-ruleForm"><div><el-form-itemlabel="灾情类型:"prop="disasterType"><el-select v-model="disasterTypeId" placeholder="请选择灾情类型"><el-optionv-for="item in disasterTypeOptions":key="item.value":label="item.label":value="item.value"size="20"></el-option></el-select></el-form-item></div><div><el-form-itemlabel="灾情名称:"prop="name"><el-inputv-model="ruleForm.name"placeholder="请填写灾情名称:"maxlength="20"/></el-form-item></div><div><el-form-itemlabel="灾情地址:"prop="locationName"><el-inputv-model="ruleForm.locationName"placeholder="请填写灾情地址"maxlength="20"/></el-form-item></div><div><el-form-itemlabel="灾情图片:"class="uploadImg"><el-uploadclass="avatar-uploader"action="/common/upload":show-file-list="false":on-success="handleAvatarSuccess":on-change="onChange"ref="upload"><imgv-if="imageUrl":src="imageUrl"class="avatar"></img><iv-elseclass="el-icon-plus avatar-uploader-icon"></i></el-upload></el-form-item></div><div class="address"><el-form-itemlabel="灾情描述:"prop="description"><el-inputv-model="ruleForm.description"type="textarea":rows="3"placeholder="物资描述,最长200字"maxlength="200"/></el-form-item></div><!--todo --><div class="subBox address"><el-form-item><el-button @click="goBack()">取消</el-button><el-buttontype="primary"@click="submitForm('ruleForm')">保存</el-button><el-buttonv-if="actionType == 'add'"type="primary"class="continue"@click="submitForm('ruleForm','goAnd')">保存并继续发布新的灾情</el-button></el-form-item></div></el-form></div>
</div>
<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="../../plugins/vue/vue.js"></script>
<!-- 引入组件库 -->
<script src="../../plugins/element-ui/index.js"></script>
<!-- 引入axios -->
<script src="../../plugins/axios/axios.min.js"></script>
<script src="../../js/request.js"></script>
<script src="../../js/validate.js"></script>
<script src="../../js/index.js"></script>
<script src="../../api/disasterPublic.js"></script>
<script>new Vue({el: '#disasterPublic-add-app',data() {return {disasterTypeOptions: [],disasterTypeId: '',id: '',restKey: 0,textarea: '',value: '',imageUrl: '',actionType: '',dishList: [],vueRest: '1',index: 0,inputStyle: {'flex': 1},ruleForm: {'name': '','id': '','image': '','description': '','approvalState': '','isRevoke': false,'locationName': null,'status': true,},mak: false}},computed: {rules() {return {'name': [{'required': true, 'message': '请填写灾情名称', 'trigger': 'blur'}],'disasterType': [{'required': true, 'message': '请选择灾情类型', 'trigger': 'blur'}],'locationName': [{'required': true, 'message': '请选择灾情类型', 'trigger': 'blur'}],'description': [{'required': true, 'message': '请选择灾情类型', 'trigger': 'blur'}],}}},created() {this.initDisasterTypeOptions()this.id = requestUrlParam('id')this.actionType = this.id ? 'edit' : 'add'if (this.id) {this.init()}},mounted() {},methods: {initDisasterTypeOptions() {allDisasterType().then(res => {if (String(res.code) === '1') {let types = JSON.parse(JSON.stringify(res.data))for (var i = 0; i < types.length; i++) {console.log("types[i] is " + types[i])console.dir(types[i])this.disasterTypeOptions.push({value: types[i].id,label: types[i].name})}} else {this.$message.error(res.msg || '获取灾情类型失败')}})},async init() {queryDisasterPublicById(this.id).then(res => {console.log(res)if (String(res.code) === '1') {this.ruleForm = {...res.data}this.ruleForm.price = String(res.data.price / 100)this.ruleForm.volume = String(res.data.volume / 100)this.ruleForm.weight = String(res.data.weight / 100)this.ruleForm.status = res.data.status == '1'this.imageUrl = `/common/download?name=${res.data.image}`} else {this.$message.error(res.msg || '操作失败')}})},submitForm(formName, st) {this.$refs[formName].validate((valid) => {if (valid) {let params = {...this.ruleForm}params.status = this.ruleForm ? 1 : 0params.price *= 100params.volume *= 100params.weight *= 100//todoif (!this.imageUrl) {this.$message.error('请上传灾情图片')return}if (this.actionType == 'add') {delete params.idaddDisasterPublic(params).then(res => {if (res.code === 1) {this.$message.success('灾情添加成功!')if (!st) {this.goBack()} else {this.imageUrl = ''this.ruleForm = {'name': '','id': '','image': '','description': '','status': true,}}} else {this.$message.error(res.msg || '操作失败')}}).catch(err => {this.$message.error('请求出错了:' + err)})} else {delete params.updateTimeeditDisasterPublic(params).then(res => {if (res.code === 1) {this.$message.success('灾情修改成功!')this.goBack()} else {this.$message.error(res.msg || '操作失败')}}).catch(err => {this.$message.error('请求出错了:' + err)})}} else {return false}})},handleAvatarSuccess(response, file, fileList) {// 拼接down接口预览if (response.code === 0 && response.msg === '未登录') {window.top.location.href = '/backend/page/login/login.html'} else {this.imageUrl = `/common/download?name=${response.data}`//后端的urlthis.ruleForm.image = response.data}},onChange(file) {if (file) {const suffix = file.name.split('.')[1]const size = file.size / 1024 / 1024 < 2if (['png', 'jpeg', 'jpg'].indexOf(suffix) < 0) {this.$message.error('上传图片只支持 png、jpeg、jpg 格式!')this.$refs.upload.clearFiles()return false}if (!size) {this.$message.error('上传文件大小不能超过 2MB!')return false}return file}},goBack() {window.parent.menuHandle({id: '8',url: '/backend/page/disasterPublic/list.html',name: '灾情发布'}, false)}}})
</script>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/609099.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实时获取建材网商品数据:API实现详解与代码示例

一、引言 随着电子商务的快速发展&#xff0c;实时获取商品数据对于企业决策、市场分析以及数据驱动的营销策略至关重要。建材网作为国内知名的建材信息平台&#xff0c;提供了API接口&#xff0c;使得第三方开发者可以方便地获取商品数据。本文将详细介绍如何使用​​建材网的…

6.1 截图工具HyperSnap6简介

图片是组成多媒体作品的基本元素之一&#xff0c;利用图片可以增强多媒体作品的亲和力和说说服力。截取图片最简单的方法是直接按下键盘上的“PrintScreen”键截取整个屏幕或按下“AltPrintScreen”组合键截取当前活动窗口&#xff0c;然后在画笔或者其它的图片处理软件中进行剪…

解决word图片格式错乱、回车图片不跟着换行的问题

解决word图片格式错乱、回车图片不跟着换行的问题 1.解决方法。 先设置为嵌入型 但是设置的话会出现下面的问题。图片显示不全。 进一步设置对应的行间距&#xff0c;原先设置的是固定值&#xff0c;需要改为1.5倍行距的形式&#xff0c;也就是说不能设置成固定值就可以。

计算几何学(工程版)

昨天写了计算几何学的东西&#xff0c;今天主要是工程化一下&#xff0c;工程借鉴B站up主 【自动驾驶】自动驾驶planning方向中常用的计算几何学知识 01_哔哩哔哩_bilibili #pragma once#include <cmath> #include <iostream>class Point{ public:Point() defau…

爬取猫咪交易网

爬取猫咪品种&#xff0c;价格等在售数据 代码展现&#xff1a; 具体代码&#xff1a; import requests import re import os filename 声音// if not os.path.exists(filename): os.mkdir(filename) def down_load(page): for page in range(page): page …

简易机器学习笔记(五)更换损失函数:交叉熵

前言 我们之前用的是均方差作为我们神经网络的损失函数评估值&#xff0c;但是我们对于结果&#xff0c;比如给定你一张应该是0的照片&#xff0c;它识别成了6&#xff0c;这个时候这个均方差表达了什么特别的含义吗&#xff1f;显然你识别成6并不代表它比识别成1的情况误差更…

各类Java对象

概念的混淆: 新一代的开发者&#xff0c;学习某一概念的不同描述或是案例后&#xff0c;人脑会去抽象、提取其特征。这一过程可能造成语义扩散、概念扭曲。这是一个盲人摸象的过程。 写到这里时&#xff0c;我在想&#xff1a;“盲人摸象”与“抽象”的“象”是不是一个意思呢&…

灵魂三连问:是5G卡吗?支持5G吗?是5G套餐吗

关于5G的问题&#xff0c;小伙伴们的疑问是不是很多&#xff0c;它和4G到底有什么区别呢&#xff1f;什么是5G卡&#xff1f;什么是5G套餐&#xff1f;支持5G吗&#xff1f;什么是5G基站&#xff1f;我想大家现在一定是晕的&#xff0c;下面小编来给大家解惑&#xff01; 1&…

【elfboard linux 开发板】9. 虚拟机扩容和内核编译

1. 虚拟机扩容 需要将虚拟机的快照全都删除&#xff0c;并且将运行的系统关机点击扩展&#xff0c;改为需要的磁盘大小安装gparted工具 sudo apt-get install gparted 如果报错&#xff0c;则按照出错内容修改&#xff0c;一般是出现下载错误&#xff0c;可以使用下列命令&…

PHP 平滑重启 kill -SIGUSR2 <PID>

在 PHP 中&#xff0c;平滑重启通常涉及向 PHP 进程发送特定的信号。以下是使用信号进行平滑重启的一般步骤&#xff1a; 1. 查找 PHP 进程的主进程 ID (PID)&#xff1a; 首先&#xff0c;您需要找到正在运行的 PHP 进程的主进程 ID (PID)。您可以使用 ps 命令来查找 ps a…

Ubuntu22.04安装VTK8.2

1. 安装ccmake 和 VTK 的依赖项&#xff1a; sudo apt-get install cmake-curses-gui sudo apt-get install freeglut3-dev2.下载VTK-8.2.0库 VTK官方网址 自己选择合适的版本进行下载&#xff0c;解压到VTK文件夹下&#xff0c;再新建文件下名为build 3. 配置VTK 进入buil…

【Python百宝箱】模拟未见之境:精准工具畅游分子动力学风景

分子演绎&#xff1a;模拟工具的综合探索 前言 在当今科学研究中&#xff0c;分子动力学模拟成为解析原子和分子行为的关键工具之一。本文将深入探讨几种领先的分子动力学模拟工具&#xff0c;包括MDTraj、ASE&#xff08;原子模拟环境&#xff09;、OpenMM和CHARMM。这些工具…

控制器转盘错误

目录 起因 经过(调试) 点焊机数据修改 结果 今天来记录设备的维修记录,下面来根据起因,经过,结果来说明情况!!!,希望对读者的你有帮助!!!

强化学习Double DQN方法玩雅达利Breakout游戏完整实现代码与评估pytorch

1. 实验环境 1.1 硬件配置 处理器&#xff1a;2*AMD EPYC 7773X 64-Core内存&#xff1a;1.5TB显卡&#xff1a;8*NVIDIA GeForce RTX 3090 24GB 1.2 工具环境 Python&#xff1a;3.10.12Anaconda&#xff1a;23.7.4系统&#xff1a;Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-…

软件测试|解决‘pip‘ 不是内部或外部命令,也不是可运行的程序或批处理文件

前言 很多Python初学者在使用Python时&#xff0c;会遇到环境的问题&#xff0c;比如无法使用pip命令安装第三方库的问题&#xff0c;如下图&#xff1a; 当出现错误信息 "pip 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件" 时&#xff0c;这通常…

echarts柱状图加单位,底部文本溢出展示

刚开始设置了半天都不展示单位&#xff0c;后来发现是被挡住了&#xff0c;需要调高top值 // 基于准备好的dom&#xff0c;初始化echarts实例var myChart echarts.init(document.getElementById("echartD"));rankOption {// backgroundColor: #00265f,tooltip: {…

树定义及遍历

1、定义树 可以参考链表&#xff0c;链表遍历不方便&#xff0c;如果单链表有多个next指针&#xff0c;则就形成了树。 Java: public class TreeNode {int val;TreeNode left, right;TreeNode(int val) { this.val val; this.left null;this.right null;} } Python&#…

WIN32 桌面应用编程综合实验一学习记录

文章目录 引用传递和指针传递的区别和联系如何创建一个空的WINDOWS桌面项目C编程中函数声明、定义和链接的基本概念 引用传递和指针传递的区别和联系 case ID_SETTING_FONT:GetDrawFont(hWnd, gs_logFont, &gs_TextColor); break;logFont 和 pColor 的用法体现了 C 中两种…

stm32的规则采样与注入采样的理解

规则与注入转换 在STM32中&#xff0c;规则采样&#xff08;Regular Conversion&#xff09;和注入采样&#xff08;Injected Conversion&#xff09;是用于模数转换的两种不同模式。 规则采样&#xff08;Regular Conversion&#xff09;&#xff1a;规则采样是STM32中最常用…

面试算法105:最大的岛屿

题目 海洋岛屿地图可以用由0、1组成的二维数组表示&#xff0c;水平或竖直方向相连的一组1表示一个岛屿&#xff0c;请计算最大的岛屿的面积&#xff08;即岛屿中1的数目&#xff09;。例如&#xff0c;在下图中有4个岛屿&#xff0c;其中最大的岛屿的面积为5。 分析 将岛屿…