vue3+ts 调用接口,数据显示

数据展示

(例:展示医院等级数据,展示医院区域数据同理。)

接口文档中,输入参数 测试一下接口,发请求 看是否能够拿到信息

获取接口,api/index.ts 

/home/index.ts
// 统一管理首页模块接口
import request from '@/utils/request.ts'
import type { HospitalLevelAndRegionResponseData } from './type'
// 通过枚举管理首页模块的接口地址
enum API {// 获取医院等级以及地区的接口HOSPITALLEVELANDREGION_URL= '/cmn/dict/findByDictCode/'
}
// 获取医院的等级或者获取医院地区的数据   <接口返回的数据类型>
export const reqHospitalLevelAndRegion = (dictCode:string)=>request.get<any,HospitalLevelAndRegionResponseData>(API.HOSPITALLEVELANDREGION_URL+dictCode);

api/type.ts 中,写 接口的 ts 类型。并在 api/index.ts 中,写明 接口返回的数据类型

api/typs.ts
// 代表医院的等级或者地区数据的ts类型
export interface HospitalLevelAndRegion {"id": number,"createTime": string,"updateTime": string,"isDeleted": number,"param": {},"parentId": number,"name": string,"value": string,"dictCode": string,"hasChildren": boolean
}
export type HospitalLevelAndRegionArr = HospitalLevelAndRegion[];
// 获得等级或者医院接口返回数据类型
export interface HospitalLevelAndRegionResponseData extends ResponseData{data: HospitalLevelAndRegionArr
}

数据展示(发请求-> 拿数据-> 渲染数据)

pages/level/index.vue 中,挂载完毕 就要获取数组,展示数组

用到的 ts 数据类型在 api 文件夹中

 

代码如下,

/pages/index.vue
<script lang="ts">
export default {name: 'Level',
};
</script><script setup lang='ts'>
import { reqHospitalLevelAndRegion } from '@/api/home';
import { ref, onMounted } from 'vue';
import type { HospitalLevelAndRegionResponseData, HospitalLevelAndRegionArr } from '@/api/home/type'
// 定义一个数组存储医院等级数据
let levelArr = ref<HospitalLevelAndRegionArr>([]);
// 控制医院等级高亮响应式数据
let activeFlag = ref<string>('');// 组件挂载完毕
onMounted(()=>{getLevel();
});
// 获取医院等级的数组
const getLevel = async () => {// 发一个请求let result: HospitalLevelAndRegionResponseData = await reqHospitalLevelAndRegion('Hostype');console.log(result);// 存储医院等级的数组if(result.code == 200){levelArr.value = result.data;}
}

渲染数据

高亮问题:

设置一个控制高亮的响应式数据 activeFlag ,点谁 默认存谁 谁高亮;点击时响应式数据改变的方法,动态类名控制 调整样式

/pages/index.vue
<script setup lang='ts'>
// 控制医院等级高亮响应式数据
let activeFlag = ref<string>('');// 点击等级的按钮回调
const changeLevel = (level:string)=>{// 高亮响应式数组存储level数值activeFlag.value = level;// console.log(level);
}
</script>
<template><div class="level"><h1>医院</h1><div class="content"><div class="left">等级:</div><ul class="hospital"><!-- ''为全部,12345分别为后几个li --><li :class="{active:activeFlag==''}" @click="changeLevel('')">全部</li>    <li v-for="level in levelArr" :class="{active:activeFlag==level.value}" :key="level.value" @click="changeLevel(level.value)">{{ level.name }}</li></ul><div class="right"></div></div></div>
</template>

 


根据等级和地区筛选医院展示

显示数据

子传父

// 父组件中
<script lang='ts'>
const getLevel = (level: string) => {// 收集参数: 等级参数hostype.value = level;// 再次发请求getHospitalInfo();
}
</script>
<template><!-- 等级子组件 --><Level @getLevel="getLevel" />
</template>// 子组件中
<script lang='ts'>
const changeLevel = (level:string)=>{// 触发自定义事件:将医院等级参数回传给父组件(子传父)$emit('getLevel',level);
}// 触发自定义事件 ,let $emit = defineEmits(['父组件函数']);
let $emit = defineEmits(['getLevel']);
</script>
<template><li @click="changeLevel('')">全部</li>

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

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

相关文章

突破校园网限速:使用 iKuai 多拨分流负载均衡 + Clash 代理(内网带宽限制通用)

文章目录 1. 简介2. iKuai 部署2.1 安装 VMware2.2 安装 iKuai(1) 下载固件(2) 安装 iKuai 虚拟机(3) 配置 iKuai 虚拟机(4) 配置 iKuai(5) 配置多拨分流 2.3 测试速度 3. Clash 部署3.1 准备工作(1) 配置磁盘分区(2) 安装 Docker(3) 安装 Clash(4) 设置代理 1. 简介 由于博主…

JavaScript(六)---【回调、异步、promise、Async】

零.前言 JavaScript(一)---【js的两种导入方式、全局作用域、函数作用域、块作用域】-CSDN博客 JavaScript(二)---【js数组、js对象、this指针】-CSDN博客 JavaScript(三)---【this指针&#xff0c;函数定义、Call、Apply、函数绑定、闭包】-CSDN博客 JavaScript(四)---【执…

Makefile:调用shell脚本和嵌套调用多项目编译(九)

1、Makefile中调用shell脚本 Makefile中可以通过使用$(shell 指令)的方式调用shell脚本a指令&#xff1a;输出当前文件夹下的所有文件b指令&#xff1a;输出当前路径c指令&#xff1a;如果当前目录下不存在abc文件那么创建一个abc的文件 a$(shell ls ./) b$(shell pwd) filen…

MySQL 学习心得和知识总结(五)|MySQL的一般查询日志(general log)

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《PostgreSQL数据库内核分析》 2、参考书籍&#xff1a;《数据库事务处理的艺术&#xff1a;事务管理与并发控制》 3、PostgreSQL数据库仓库…

LLM:检索增强生成(RAG)

1 Embedding技术 简单地说&#xff0c;嵌入(Embedding)思想可以视为一种尝试通过用向量来表示所有东西的“本质”的方法&#xff0c;其特性是“相近的事物”由相近的数表示。 1.1 文本向量(Text Embedding) 在GPT中&#xff0c;文本嵌入(Text Embedding)是通过将输入文本中的每…

搭建跨境电商电商独立站如何接入1688平台API接口|通过1688API接口采集商品通过链接搜索商品下单

接口设计|接口接入 对于mall项目中商品模块的接口设计&#xff0c;大家可以参考项目的Swagger接口文档&#xff0c;以Pms开头的接口就是商品模块对应的接口。 参数说明 通用参数说明 参数不要乱传&#xff0c;否则不管成功失败都会扣费url说明……d.cn/平台/API类型/ 平台&…

WEB 工程路径

WEB 工程路径 相对路径 使用相对路径来解决&#xff0c; 一个非常重要的规则&#xff1a;页面所有的相对路径&#xff0c;在默认情况下&#xff0c;都会参考当前浏览器地址栏的路径 http://ip:port/工程名/ 资源来进行跳转。 相对路径带来的问题 如上图&#xff0c;若在a.h…

黄锈水过滤器 卫生热水工业循环水色度水处理器厂家工作原理动画

​ 1&#xff1a;黄锈水处理器介绍 黄锈水处理器是一种专门用于处理“黄锈水”的设备&#xff0c;它采用机电一体化设计&#xff0c;安装方便&#xff0c;操作简单&#xff0c;且运行费用极低。这种处理器主要由数码射频发生器、射频换能器、活性过滤体三部分组成&#xff0c;…

MySQL的基本操作(超详细)

&#x1f468;‍&#x1f4bb;作者简介&#xff1a;&#x1f468;&#x1f3fb;‍&#x1f393;告别&#xff0c;今天 &#x1f4d4;高质量专栏 &#xff1a;☕java趣味之旅 &#x1f4d4;&#xff08;零基础&#xff09;专栏&#xff1a;MSQL数据库 欢迎&#x1f64f;点赞&…

execl产品排行分析

产品排行分析 1.原数据 2.透视表 选择日期--数据--组合 效果如下&#xff1a; 修改透视表排版&#xff1a; 3.提取数据 将需要分析的数据拷贝至新的表中&#xff1a; 4.排序 1996年度进行排序 效果 添加名次 效果 同理处理1997年度数据和排行 新增一列&#xff1a; 名次变…

源聚达科技:抖音开网店步骤难吗

在数字化浪潮的推动下&#xff0c;抖音平台不仅成为了人们娱乐休闲的好去处&#xff0c;更是许多创业者眼中的“金矿”。然而&#xff0c;对于初次尝试在抖音开设网店的朋友来说&#xff0c;难免会对开店流程感到疑惑。究竟开设一个抖音网店的难度如何呢?让我们一探究竟。 要明…

04 Python进阶:MySQL-PyMySQL

什么是 PyMySQL&#xff1f; PyMySQL 是一个用于 Python 的纯 Python MySQL 客户端库&#xff0c;提供了与 MySQL 数据库进行交互的功能。PyMySQL 允许 Python 开发人员连接到 MySQL 数据库服务器&#xff0c;并执行诸如查询、插入、更新和删除等数据库操作。 以下是 PyMySQL …