vue调用接口

article/2025/11/4 15:54:50

目录

简单获取和追加数据铺页面

用 post 给接口传值

post 用 url 问号拼接数据


简单获取和追加数据铺页面

一、在api中新建该页面的js文件用于存放该页面的所有接口

二、引用所需组件,调用接口(已经全局配置了接口地址)

import axios from 'axios'// 首页-我的展台
export function getQueryMyBooth(data) {return request({url: '/booth/query',method: 'post',data})
}// 需要传id时
export function getModelMsg(id) {return request({url: '/template/get/' + id,method: 'get'})
}

三、在该页面导入,在create中将获取到的数据传给data

import { getQueryMyBooth } from '@/api/model'。。。。data() {return {// 展台卡片boothCard: [{id: 0,idView: require('@/assets/img/download.png'),title: '这里是个名称1',finish: 0,// 是否显示已完成角标release: 1,choose: false,showChoose: false,// 展台轮播图是否显示showBannerOrNo: false},{id: 1,idView: require('@/assets/img/download.png'),title: '这里是个名称2',finish: 0,// 是否显示已完成角标release: 0,choose: false,showChoose: false,// 展台轮播图是否显示showBannerOrNo: false}]}
}。。。。created() {getQueryMyBooth({}).then((res) => {console.log(res)// 循环追加数据this.boothCard = res.data.map((item) => {item.choose = falseitem.showBannerOrNo = false// 右下角完成进度角标item.finish = falseif (item.progress < 31) {item.finish = true}return item})this.newData = res.data// 筛选出已发布的展台,赋给上方轮播图this.modelList = res.data.filter((item) => item.isPublish)// console.log(this.modelList)// console.log(this.boothCard)}).catch()
}

四、在html中使用

<div v-for="(item, index) in boothCard" :key="index" class="booth-card"><div><div class="booth-title"><p>{{ item.modelName }}</p><p v-if="item.finish">{{ item.progress }}/{{ item.medioListLength }}</p><div v-else class="finish"><img src="@/assets/img/finish.png" alt=""></div></div><div/>
</div>

用 post 给接口传值

一、封装接口

// 条件分页查询活动表
export function queryManualTable(data) {return request.service({url: '/xxx/xxx',method: 'POST',data})
}

二、导入api

// 导入api
import {queryManualTable } from '../../../src/api/dashboard'

三、逻辑

// 将接口封装一下,谁调这个方法,谁传值
queryManualdata(data) {queryManualTable(data).then(res => {// this.manualData 是接口返回的值this.manualData = res.data.datasconsole.log(res.data.datas)})},// 调用接口方法,给接口传值
// 如果调用的是一个接口,传一样的值则直接调用这个方法即可
queryManual() {this.queryManualdata({searchText: this.searchText,// 因为后端规定如果等于0则传空字符串,所以用了三元表达式manualSize: this.curCategory === 0 ? '' : this.curCategory + ''})},

post 用 url 问号拼接数据

状态(字符串)只有一个,id(数组)有未知个,需要手动拼接

功能:点击上线下线按钮,来调整卡片状态

 

 html

<div class="operation"><span>操作功能:</span><p style="cursor:pointer" :style="{'color' :click_edit === true ? '#E82929' : '#B6B6B6'}" @click="onlineState(1)">上线</p><p style="cursor:pointer" :style="{'color' :click_edit === true ? '#E82929' : '#B6B6B6'}" @click="onlineState(2)">下线</p><p style="cursor:pointer" :style="{'color' :click_edit === true ? '#666' : '#B6B6B6'}">复制</p><p style="cursor:pointer" :style="{'color' :click_edit === true ? '#666' : '#B6B6B6'}">删除</p></div>

逻辑

data(){return{manualData: [], // 手册数据表}
}。。。。。。// 是否上线  上线:1      下线:2onlineState(type) {var id = []var manualType = ''if (type === 1) {this.manualData.map(item => {if (item.select === true) {item.manualType = 1id.push(item.manualId)manualType = item.manualType + ''}})this.$message.success('已上线')} else {this.manualData.map(item => {if (item.select === true) {item.manualType = 2id.push(item.manualId)manualType = item.manualType + ''}})this.$message.success('已下线')}this.updateProductItem({manualType, id})console.log(manualType, id)},// 调用上下线接口updateProductItem(data) {updateProduct(data).then((res) => {this.gitManualTableData()})},。。。。。。// 更新手册上下线状态
export function updateProduct(params) {const { manualType, id } = paramslet str = '?'str += 'manualType=' + manualType + '&'id.forEach(item => {str += 'id=' + item + '&'})str = str.substring(0, str.length - 1)return request.service({url: `/XXX/XXX${str}`,method: 'POST'})
}

或者可以直接用

determine() {let aa = {phone: this.phone,email: this.Email,captcha: this.code,id: this.id};// 更改(调用接口)setUpdateOwner(aa).then((response) => {console.log(JSON.stringify(aa))  // 这里JSON.stringify(aa)用法是转换成json格式if (response.status == "SUCCESS") {this.$message.success("添加成功");this.$emit("closeClick");this.$emit("getData");} else {this.$message.error(response.responseMsg);}}).catch((e) => {});},// 更改租户所有者
export function setUpdateOwner(params) {console.log(params)return request.service({url: `/tenantinfo/updateOwner`,method: "post",params});}

vue中的then方法和catch方法

 1、then()里写两个参数,第一个是成功时的回调方法,默认给这个方法传递了成功的数据,
另一个是失败的方法,以及失败的数据

<script>
export default {name: 'demo',data() {return {}},methods: {testDemo(data) {// ajax请求testAjax(url, params).then(data => {// 处理成功console.log(data)}, data => {// 处理失败console.log(data)})}}
}
</script>

        2、一般情况下,为了不报错,会在then()后面调用.catch(),相当于类似try{}catch(e){} ,可以理解为省略了try()

<script>
export default {name: 'demo',data() {return {}},methods: {testDemo(data) {// ajax请求testAjax(url, params).then(data => {// 处理成功console.log(data)}).catch(err => {// 报错console.log(err)})}}
}
</script>

3、在catch中可以 let data = e.toString(); ,用 toString 方法改为字符串

catch中捕捉的错误格式:

 

4、主要区别:如果在then的第一个函数里抛出了异常,后面的catch能捕获到,而then的第二个函数捕获不到。因此,建议总是使用catch方法,而不使用then方法的第二个参数。


http://chatgpt.dhexx.cn/article/sYuEFwY9.shtml

相关文章

接口调用方法详解

接口调用方法详解 基础知识 接口定义: 接口是一组已命名的方法签名。所以接口里可以定义方法、属性、事件,因为这些本质上都是方法。但是,接口不能定义任何的构造函数。 接口的可访问性: 类本身的修饰符可以为public,internal等(VS2008里试过)。但是显示实现接口方…

如何优雅的调用接口?

目录 一、背景 二、分析 三、编码 InterfaceDescriptor ServiceProviderInterface ServiceProviderInterfaceClient ServiceProviderInterfaceClientImpl 四、测试 SendSmsRequest SendSmsResult SendSmsProvider TestController 五、总结 一、背景 一般我们的项…

软件测试 (7) web项目测试

前言 之前说了APP项目的测试&#xff0c;今天来总结一下web项目的测试&#xff0c;其实大多数过程是差不多类似的。对比平常移动端手机的高频率使用来说&#xff0c;对于部分人使用pc端浏览器的概率就不会这么高&#xff0c;讲APP项目测试的时候没怎么涉及到网络协议部分的介绍…

项目流程_软件测试

软件测试属性 1.按测试阶段划分 单元测试&#xff1a;单元测试是对软件基本组成单元进行的测试&#xff0c;是为了尽早发现错误(错误发现越早,成本越低&#xff0c;发现问题比较容易&#xff0c;修正问题更容易)&#xff0c;单个的软件单元或者一组相关的软件单元所进行的测试&…

[SpringBoot系列]项目测试

文章目录 加载测试专用属性加载测试专用配置Web环境模拟测试数据层测试回滚测试用例数据设定 加载测试专用属性 测试是保障程序正确性的唯一屏障&#xff0c;在企业级开发中更是不可缺少。 测试过程本身并不是一个复杂的过程&#xff0c;但是很多情况下测试时需要模拟一些线上情…

如何找软件测试的项目

10年测试经验分享&#xff1a;新手怎么找软件测试的项目&#xff1f;_程序员二黑的博客-CSDN博客_软件测试项目去哪里找测试新手不知道上哪找测试项目&#xff0c;这应该是每个测试自学人的困扰。https://erhei.blog.csdn.net/article/details/119416292?spm1001.2014.3001.55…

IT项目管理之软件测试

1. 定义 软件测试是使用人工或者自动的手段来运行或者测定某个软件系统的过程&#xff0c;其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。 在软件投入使用前&#xff0c;要经过一系列的严格测试&#xff0c;才能保证交付质量。 2. QC & QA &a…

软件项目测试的具体内容

功能测试&#xff1a; 对指定业务所有功能进行测试&#xff0c;撰写测试用例&#xff0c;执行测试用例&#xff0c;出具测试报告和BUG列表&#xff0c;专用BUG管理工具进行测试管理。 根据产品特性、操作描述和用户方案&#xff0c;测试一个产品的特性和可操作行为以确定它们…

Linux下轻量级数据库-SQLite3(嵌入式设备)

一、概念 数据库是用来存储和管理数据的专用软件&#xff0c;使得管理数据更加安全&#xff0c;方便和高效。数据库对数据的管理的基本单位是表(table)。 二、常见的数据库 大型数据库(大型机) —————- Oracle(亿级) 中型数据库(分布式超大型) ———— mysql(百万级) 轻…

二、MySQL

MySQL是一个小型关系数据库管理系统。与其他大型数据库管理系统 &#xff08;例如Oracle、DB2、SQL Server 等&#xff09;相比&#xff0c;MySQL规模小、功能有限&#xff0c;但是它体积小、速度快、成本低&#xff0c;并且提供的功能对稍微复杂的应用来说已经够用&#xff0c…

数据库——多种方法导入Excel数据

文章目录 一、SQL Server导入Excel数据二、小技巧导入Excel数据三、使用Microsoft.ACE.OLEDB导入Excel数据四、手动添加一行数据五、手动添加多行数据五、解决类型不匹配致导入失败 一、SQL Server导入Excel数据 接下来就一直点击NEXT&#xff0c;直到完成 此时EXCEL的数据就被…

MySQL数据库简介

MySQL数据库简介 MySQL数据库是一种关系型数据库管理系统&#xff0c;是一种开源软件由瑞典MySQL AB公司开发&#xff0c;08年1月16日被Sun公司收购&#xff0c;09年Sun公司又被Oracle公司收购。 由于其体积小、速度快、总体拥有成本低&#xff0c;尤其是开放源码这一特点&a…

Linux中的小型数据库 SQLite3

数据库&#xff08;SQLite&#xff09; 数据库后缀 .db&#xff08;data base) gcc时加 -lsqlite3 这些是小希归纳的SQLite的一些重要语句&#xff0c;与示例应用 如果想要进一步学习&#xff0c;大家可以去网上搜 SQLite3的书籍

在JSTL 中使用小型数据库 SQLite

文章目录 一、Sqlite 数据库命令行工具的下载下载地址&#xff1a; 二、Sqlite 数据库 shell 工具的使用方法1.创建数据库2.Sqlite 数据库中表的创建&#xff1a;3.表中数据的插入4.Sqlite 数据库命令行的退出 三、ER图转化为数据库3.1建表3.2 向表中插入数据3.3 输出数据库中相…

实现一个小型数据库--记一次中级软件设计实作浮沉历程

说在前头&#xff1a;本篇文章主要是记录这次项目的过程&#xff0c;不全是贴代码&#xff0c;具体的程序移步这里&#xff0c;不喜欢的同学请轻喷。 事件起因&#xff1a;大三狗一枚&#xff0c;专业是软件应用。这学期的中级软件设计实作题目是实现一个小型的数据库&#xf…

用xml充当小型数据库案例

利用dom4j工具&#xff0c;将user.xml作为一个小型的数据库&#xff0c;然后控制台输入进行用户名与密码的匹配 /*user.xml文件放在src下*/ <?xml version"1.0" encoding"utf-8"?> <users><user id"001" name"ecri" …

数据库上机3(小型数据库应用程序开发)

注&#xff1a; ①各上机报告均根据《数据库技术与应用》课程的上机任务所做。 ②课程教材为 《数据库系统概论&#xff08;第五版&#xff09;》/王珊, 萨师煊编著/北京:高等教育出版社,2014 上机要求&#xff1a; 1、自学上层应用访问数据库的方式&#xff08;如ODBC、ADO、…

【SQL数据库设计】数据库设计【小型数据库】

数据库设计 需求 表结构字段类型、是否允许为null、是否有默认值索引设计数据库引擎的选择 根据产品原型分析&#xff0c;词性分析法&#xff0c;名词创建表或字段&#xff0c;动词表示关系。 数据存储&#xff1a;长期存储的数据&#xff0c; 1.主键&#xff1a;唯一、自增。 …

小型数据库系统开发作业

文章目录 题目数据库设计UI界面开发展示 原文链接&#xff1a;https://zhanghan.xyz/posts/60088/ 题目 自学上层应用访问数据库的方式&#xff08;如ODBC、ADO、JDBC、MySQLi或者其它&#xff09;&#xff0c;根据您使用的上层语言&#xff08;不限语言&#xff08;但要求与自…

关于Freesurfer提取annotation分区结构特征的命令mri_segstats

Freesurfer提供了基于分区模板提取常规特征&#xff08;area, volume, thickness, thicknessstd, meancurv, gauscurv, foldind, curvind&#xff09;的指令mris_anatomical_statsaparcstats2table还有可以提取从fMRI或DWI产生的结果以及一些特殊的结构特征&#xff08;如LGI&a…