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

news2024/11/26 19:55:59

数据展示

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

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

获取接口,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.coloradmin.cn/o/1565266.html

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

相关文章

SPI通信----Flash存储器W25Q64

SPI怎么配置&#xff1a; 控制器配置&#xff08;更稳定效率高&#xff09; IO模拟的方式&#xff08;更灵活移植性高&#xff09; 首先我会选择用IO模拟的方式配置&#xff0c;SPI根据时钟极性以及时钟相位的不同对应不同等的时序&#xff0c;我选择用时钟极性和时钟相位都…

The Google File System [SOSP‘03] 论文阅读笔记

原论文&#xff1a;The Google File System 1. Introduction 组件故障是常态而非例外 因此&#xff0c;我们需要持续监控、错误检测、容错和自动恢复&#xff01; 按照传统标准&#xff0c;文件数量巨大大多数文件都是通过添加新数据而不是覆盖现有数据来改变的&#xff0c;因…

基于springboot实现教师人事档案管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现在线商城系统演示 摘要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本ONLY在线商城系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理…

GD32F470 GY-906 MLX90614ESF BAA BCC DCI IR红外测温传感器模块温度采集模块移植

2.12 MLX90614红外无接触测温传感器 MLX90614 系列模块是一组通用的红外测温模块。在出厂前该模块已进行校验及线性化&#xff0c;具有非接触、体积小、精度高&#xff0c;成本低等优点。被测目标温度和环境温度能通过单通道输出&#xff0c;并有两种输出接口&#xff0c;适合于…

齐力控股集团现已加入2024年第13届生物发酵展

参展企业介绍 齐力控股集团专业生产高精度卫生级不锈钢设备配件及管道所有连接件、锻造、精加工一站式服务。产品广泛适用于制药、饮料、乳制品、啤酒、生物化工等领域。所有产品均按3A、SMS、DIN、RJT、IDF、DS等标准制造&#xff0c;所有产品均达到GMP药典要求。我们是一家有…

数字乡村创新之路:科技引领农村实现高质量发展

随着信息技术的快速发展&#xff0c;数字乡村建设已成为推动农村高质量发展的重要引擎。数字乡村通过科技创新&#xff0c;不仅改变了传统农业生产方式&#xff0c;也提升了乡村治理水平&#xff0c;为农民带来了更加便捷的生活。本文将从数字乡村的内涵、科技引领农村高质量发…

AAA Stylized Projectiles Vol1

28种具有命中和闪光效果的独特投射物:咒语、火球、箭、子弹、激光等等! 该资产包括: -28种独特的投射物(咒语、火球、箭头、子弹、激光等),与AAA魔术圈、盾牌和3D激光包风格相同 -27种独特的命中效果 -25个闪光效果 -96个纹理 -7个多用途粒子着色器 -演示场景拍摄脚本 -实…

2月白酒行业线上(京东天猫淘宝)电商数据分析:知名酒企全线飘红,同比增长120%!

2024年2月&#xff0c;白酒行业迎来了一波销售热潮。 从鲸参谋数据来看&#xff0c;在综合电商平台&#xff08;京东天猫淘宝&#xff09;白酒销售累计卖出约624万件&#xff0c;同比去年涨幅63%&#xff1b;销售额累计约49亿元&#xff0c;同比去年涨幅123%。白酒行业在整体酒…

JS继承与原型、原型链

在 JavaScript 中&#xff0c;继承是实现代码复用和构建对象关系的重要概念。本文将讨论原型链继承、构造函数继承以及组合继承等几种常见的继承方式&#xff0c;并提供相应的示例代码&#xff0c;并分析它们的特点、优缺点以及适用场景。 在开始讲解 JavaScript 的继承方式之…

VUE——概述

vue是前端框架&#xff0c;基于MVVM思想。 引入 从官网下载vue文件 <script src"js/vue.js"></script> 定义vue对象 new Vue({el: "#x",//vue接管区域&#xff0c;#表示选择器&#xff0c;x是id名字data: {message: "y"} })案例…

vue两个特性和什么是MVVM

一、什么是vue 1.构建用户界面 用vue往html页面中填充数据&#xff0c;非常的方便 2.框架 框架是一套线成的解决方案 vue的指令、组件&#xff08;是对ui结构的复用&#xff09;、路由、vuex 二、vue的特性 1.数据驱动视图 2.双向数据绑定 1.数据驱动视图 数据的变化会驱动…

MySQL 8.0.13安装配置教程

写个博客记录一下&#xff0c;省得下次换设备换系统还要到处翻教程&#xff0c;直接匹配自己常用的8.0.13版本 1.MySQL包解压到某个路径 2.将bin的路径加到系统环境变量Path下 3.在安装根目录下新建my.ini配置文件&#xff0c;并用编辑器写入如下数据 [mysqld] [client] port…

【漏洞复现】用友NC-Cloud系统queryRuleByDeptId存在SQL注入漏洞

“ 如棠安全的技术文章仅供参考&#xff0c;此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的…

世优科技上榜2024年度《中国虚拟数字人影响力指数报告》

日前&#xff0c;第三期《中国虚拟数字人影响力指数报告》在中国网络视听大会上正式发布。本期《报告》由中国传媒大学媒体融合与传播国家重点实验室&#xff08;以下简称“国重实验室”&#xff09;、中国传媒大学数字人研究院编制&#xff0c;中国网络视听协会、人民日报智慧…

目标检测——铁路工人数据集

一、重要性及意义 提升铁路工作安全性。铁路工人常常需要在铁路轨道附近进行各种作业&#xff0c;如维修、检查等&#xff0c;这些工作往往伴随着较高的安全风险。一个准确的铁路工人检测系统能够在第一时间识别并警示工人或操作员的接近&#xff0c;从而避免潜在的碰撞事故&a…

能源照明运作机制与智能调控技术实现途径

随着城市化进程的加速&#xff0c;智慧城市已成为现代城市发展的重要方向。能源照明作为城市基础设施的重要组成部分&#xff0c;其运作机制与智能调控技术的实现对于提高城市能源利用效率、促进可持续发展具有重要意义。 能源照明是一个涵盖广泛、错综复杂的领域&#xff0c;它…

C++ Primer 总结索引 | 第十二章:动态内存

1、到目前为止&#xff0c;我们编写的程序中 所使用的对象 都有着严格定义的生存期。全局对象 在程序启动时分配&#xff0c;在程序结束时 销毁。对于 局部自动对象&#xff0c;当我们进入 其定义所在的程序块时被创建&#xff0c;在 离开块时销毁。局部static对象 在第一次使用…

文心一言 VS 讯飞星火 VS chatgpt (227)-- 算法导论16.3 9题

九、证明&#xff1a;对于一个由随机生成的8位字符组成的文件&#xff0c;没有任何压缩方法可以望将其压缩、哪怕只是压缩一位。(提示&#xff1a;比较可能的文件数量和可能的编码文件数量。) 文心一言&#xff1a; 确实&#xff0c;对于一个由随机生成的8位字符组成的文件&a…

蓝桥杯相关算法学习(Python)

一、排序 排序算法是指将一组数据按照某种规则重新排列&#xff0c;使得数据呈现出递增或递减的顺序。常见的排序算法包括冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等。 1.冒泡排序 解释&#xff1a; 冒泡排序通过不断交换相邻两个元素的位置&#xff0c;使…

如何辨别蜂蜜的好坏?具体看哪些指标?

蜂蜜的好坏是通过检测指标反应出来的。 衡量蜂蜜质量的指标很多&#xff0c;主要分五类。 第一类是蜂蜜的基础性检测。如&#xff1a;感官、水分、灰分、酸度、蜂蜜的真实性&#xff08;SM-X&#xff09;等&#xff1b; 第二类是营养成分检测。如&#xff1a;果糖与葡萄糖含…