子组件和父组件之间传值#Vue3#defineProps

子组件和父组件之间传值#Vue3#defineProps

效果:
在这里插入图片描述

子组件:

<!-- 6s执行项详情图片的子组件 -->
<template><div><imgv-if="itemsLocal.url":src="itemsLocal.url"style="width: 50px; height: 50px; margin: 2px"/><el-link type="primary" v-else>{{itemsLocal.name + itemsLocal.suffix}}</el-link></div>
</template><script setup lang="ts">
import { ref, onMounted } from "vue";
import { DownFile } from "@/api/sixData/index";const props = defineProps(["info"]);//用来接收父组件的值
const itemsLocal = ref({});
onMounted(() => {itemsLocal.value = { ...props.info };getUrl(props.info);
});//文件下载
async function getUrl({ fileID: id, name, suffix }) {const blob1 = await DownFile({ id });let imageUrl = "";if ([".jpg", ".jpeg", ".png"].includes(suffix)) {imageUrl = (window.URL || window.webkitURL).createObjectURL(blob1);itemsLocal.value.url = imageUrl;itemsLocal.value = JSON.parse(JSON.stringify(itemsLocal.value));}
}
</script>
<style scoped lang="scss"></style>

父组件:

<!-- 6s执行项详情图片的父组件 -->
<template><!-- 执行项的des显示 --><splitter title="执行项" /><el-descriptionsclass="box1"v-if="itemsData.length > 0"style="width: 50%; float: left":column="1"border><el-descriptions-itemv-for="(item, index) in itemsData":key="index"align="center"label-class-name="my-label"class-name="my-content":span="1":label="`执行项${index + 1}`"><section class="flex items-center justify-between"><span>{{ item.content }}</span><svg-iconv-if="item.state == 1"class-name="text-green-700 text-4xl"icon-class="pass"/><svg-icon v-else class-name="text-red-700 text-4xl" icon-class="fail" /></section></el-descriptions-item></el-descriptions><!-- 执行项的显示图片 --><el-descriptionsv-if="ExecutionItemDataOne.length > 0"style="width: 50%; float: left":column="1"border><el-descriptions-itemv-for="(item, index) in ExecutionItemDataOne":key="index"label-class-name="my-label"class-name="my-content":span="1"align="center":label="`标准图片${index + 1}`"><ul class="cell-link"><liclass="truncate"v-for="(items, indexx) in item":key="indexx"@click="handlePreview(items)"><imageC :info="items" /><!-- <el-link type="primary" v-else>{{ items.name + items.suffix }}</el-link> --></li></ul></el-descriptions-item></el-descriptions><el-emptyv-elsedescription="该方案暂未绑定执行项":image-size="60"></el-empty>
</template><script setup lang="ts">
import saveAs from "file-saver";
import { ref, onMounted, watch } from "vue";
import { searchMapDic, searchFileMap,DownFile } from "@/api/sixData/index";
import imageC from "./imageC.vue";//导入子组件// 判断是否是图片
const imgValue = ref({show: false,row: [],type: "",
}) as any;
const imgVideoType = reactive({imgType: [".jpg", ".jpeg", ".png"],
});const ExecutionItemDataOne = ref([]) as any; //执行项附件
const demoArr = ref([]) as any;// 监听执行项
watch(() => props.itemsData,(newVal: any) => {console.log("执行项newVal", newVal);searchMapDic({linkTable: "AttachmentExecutionItem", //外部关联表/处理的地图释义详情linkType: "", //同表标识remark: "", //备注}).then((res: any) => {// 获取linkID和mapIDif (newVal.length > 0) {newVal.forEach((item: any) => {let data = {mapDicID: res.data[0].id, //地图释义IDlinkID: item.iD_Item, //外部关联ID};demoArr.value.push(data);});console.log("demoArr.value", demoArr.value);}// 按顺序获取linkID和mapIDlet test = [];for (let j = 0; j < demoArr.value.length; j++) {let result = searchFileMap(JSON.parse(JSON.stringify(demoArr.value[j])));test.push(result);}// 按顺序获取文件idPromise.all(test).then((itemList: any) => {console.log("itemList", itemList);itemList.forEach((val: any) => {console.log("文件id", val.data);// val.data.forEach(async e1 => {//   e1.url = await getUrl(e1)// })//  setTimeout(() => {ExecutionItemDataOne.value.push(val.data);// }, 10000)});});});}
);// const handleLoad = () => {};
// const getImage = async (items: any) => {
//   const imageUrl = await getUrl(items);
//   const htmlValue = `<img :src="${imageUrl}" alt="" style="width: 100px; height: 100px;">`;
//   return htmlValue;
// };
//文件下载
// async function getUrl({ fileID: id, name, suffix }: any) {
//   const blob = await DownFile({ id });
//   console.log("blob", blob);
//   let imageUrl = "";
//   if (imgVideoType.imgType.includes(suffix)) {
//     imageUrl = (window.URL || window.webkitURL).createObjectURL(blob);
//     console.log(imageUrl, "imageUrl1");
//     return imageUrl;
//   } else {
//     return imageUrl;
//   }
// }
//文件下载
async function handlePreview({ fileID: id, name, suffix }: any) {console.log("id", id);const blob = await DownFile({ id });console.log("blob", blob);if (imgVideoType.imgType.includes(suffix)) {const imageUrl = (window.URL || window.webkitURL).createObjectURL(blob);imgValue.value.type = "img";imgValue.value.row = [imageUrl];imgValue.value.show = true;console.log("imageUrl", imageUrl);} else {saveAs(blob as unknown as Blob, name + suffix);}
}
</script>
<style scoped lang="scss">
.cell-link {display: flex;margin-left: 10px;.el-link {float: left;margin-left: 5px;}.el-image {float: left;margin-left: 5px;}
}:deep(.my-label) {height: 115px;width: 95px;
}
:deep(.my-content) {height: 100px;
}.cell-link {max-width: 265px;.el-link {display: inline;}:deep(.el-link__inner) {display: inline;}
}
</style>

ccc感谢某大佬!!!!我tmd还在找循环的问题,毫不核心的问题。大佬的解决思路就是清奇!!思路清晰!!

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

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

相关文章

【Ardiuno】实验ESP32单片机搭建简易Web服务器功能(图文)

今天&#xff0c;小飞鱼继续来测试使用ESP32来实现简易的wifi无线web服务器功能。使用Ardiuno平台编辑器输入以下示例代码&#xff1a; #include <WiFi.h> #include <WiFiClient.h> #include <WebServer.h> #include <ESPmDNS.h>const char* ssid &q…

java 不可变集合的创建和Stream流的使用

文章目录 一、创建不可变的集合1.1为什么创建不可变的集合1.2 创建List、Set和Map的不可变集合1.2.1 创建List的不可变集合1.2.2 创建Set 的不可变集合1.2.3 创建Map的不可变集合 二、使用集合 的Stream 流2.1 Stream的使用步骤2.2 Stream的方法 三、如何获取Stream 流对象四、…

深度学习增强的非线性光纤单像素成像系统

1、光子器件的逆向设计&#xff1a;通过机器学习&#xff0c;特别是深度学习&#xff0c;可以高效地进行光子器件的逆向设计&#xff0c;这在传统的多参数优化问题中尤为重要。 2、超构表面和超材料设计&#xff1a;机器学习被用于设计具有特定光学特性的超构表面和超材料&…

初阶 《数组》 1. 一维数组的创建和初始化

1. 一维数组的创建和初始化 1.1 数组的创建 数组是一组相同类型元素的集合 数组的创建方式&#xff1a; type_t arr_name [const_n]; //type_t 是指数组的元素类型 //const_n 是一个常量表达式&#xff0c;用来指定数组的大小数组创建的实例&#xff1a; //代码1 int ar…

Wills Room Environment Dormitory Room Environment

有126个独特的网格。包括所有展示的资产和优质资产。具有良好的细节水平,并针对Gameready项目进行了优化。 艺术家Jonjo Hemmens创造的环境 如果想填充你的游戏环境或任何类型的虚拟制作级别,这里有一个包,你可以获得并使用它来得到高质量的视觉效果和优化的资产。 下载:​…

【病毒分析】Steloj勒索病毒分析

1.背景 1.1 来源 近期&#xff0c;Solar团队收到某汽车制造公司的援助请求&#xff0c;该公司的计算机服务器受到了Steloj勒索家族的侵害&#xff0c;所有的文件被加密并且添加了.steloj后缀&#xff0c;该勒索软件的初始入侵方式是MSSQL数据库弱口令进行入侵&#xff0c;后续…

Ubuntu22.04 下安装Curl库

1. apt 安装&#xff1a; sudo apt-get install curl 2. 官网压缩包&#xff1a; 下载地址&#xff1a;curl downloads wget https://curl.haxx.se/download/curl-7.78.0.tar.gz tar -xzvf curl-7.78.0.tar.gz cd curl-7.78.0 ./configure --with-openssl make sudo make i…

前端技术栈二(promise模块化编程)

一、promise 1 Promise 基本介绍 传统的 Ajax 异步调用在需要多个操作的时候&#xff0c;会导致多个回调函数嵌套&#xff0c;导致代码不够直观&#xff0c;就是常说的 Callback Hell 为了解决上述的问题&#xff0c;Promise 对象应运而生&#xff0c;在 EMCAScript 2015 当中…

M1失效后,哪个是观察A股的关键新指标?

M1失效后&#xff0c;哪个是观察A股的关键新指标&#xff1f; 央地支出增速差&#xff08;地方-中央支出增速的差值&#xff09;或许是解释沪深300定价更有效的前瞻指标。该数值扩张&#xff0c;则有利于大盘指数&#xff0c;反之亦然&#xff0c;该指标从2017年至今对大盘指数…

Hedra:让您的照片说话

在数字内容创作的世界里&#xff0c;我们总是在寻找那些能够让我们的作品更加生动和吸引人的工具。Hedra软件就是这样一款工具&#xff0c;它能够让您的照片动起来&#xff0c;甚至说话。想象一下&#xff0c;您的家庭相册中的照片突然变得栩栩如生&#xff0c;或者您的产品图片…

Python微磁学磁倾斜和西塔规则算法

&#x1f4dc;有限差分-用例 &#x1f4dc;离散化偏微分方程求解器和模型定型 | &#x1f4dc;三维热传递偏微分方程解 | &#x1f4dc;特定资产期权价值偏微分方程计算 | &#x1f4dc;三维波偏微分方程空间导数计算 | &#x1f4dc;应力-速度公式一阶声波方程模拟二维地震波…

磁链观测器设计与Simulink建模

1. 磁链观测器设计 如下方程描述了模块输入计算永磁同步电机得电角度&#xff0c;磁通量和电扭矩。 假设 那么&#xff0c;以下拉普拉斯变换表示 Ψα 和 Ψβ 中的积分项&#xff1a; 为了滤除噪声信号&#xff0c;这里使用带低通滤波器得积分器。注意&#xff0c;低通滤波器得…

[笔记] CCD相机测距相关的一些基础知识

1.35mm胶片相机等效焦距 https://zhuanlan.zhihu.com/p/419616729 拿到摄像头拍摄的数码照片后&#xff0c;我们会看到这样的信息&#xff1a; 这里显示出了两个焦距&#xff1a;一个是实际焦距&#xff1a;5mm&#xff0c;一个是等效焦距&#xff1a;25mm。 实际焦距很容易…

OpenGL3.3_C++_Windows(14)

demo演示 demo演示 天空盒 作用&#xff1a;我们想要一个立方体每个面都有不同的纹理&#xff0c;可以在while使用&#xff1a;glActiveTexture&#xff08;&#xff09;&#xff0c;激活绑定相应纹理&#xff0c;glVertexAttribPointer设置布局&#xff0c;glDrawArrays&…

21.0docker企业级镜像仓库harbor(vmware 中国团队)

docker企业级镜像仓库harbor(vmware 中国团队) 网站下载harbor软件包 https://github.com/goharbor/harbor 查看软件安装harbor版本需求限制 本地环境需求已满足 点击下载harbor安装包 点击releases根据版本信息下载 下面的在线安装就是docker pull。离线就是下载之后…

机器学习课程复习

参考书目:《统计学习方法》 选择题 5道 3分/道 填空题 5道 3分/道 简答题 3道 计算题 1道 算法设计题 1道 隐马尔可夫不考计算题 很有可能考计算题的知识点:KNN、决策树、支持向量机、聚类算法 小概率会考计算题的知识点:线性回归(最小二乘法,代公式算参…

23种设计模式之桥接模式

桥接模式 1、定义 桥接模式&#xff1a;将抽象部分与它的实现部分解耦&#xff0c;使得两者都能独立变化 2、桥接模式结构 Abstraction&#xff08;抽象类&#xff09;&#xff1a;它是用于定义抽象类的&#xff0c;通常是抽象类而不是接口&#xff0c;其中定义了一个Imple…

Spark Core内核调度机制详解(第5天)

系列文章目录 如何构建DAG执行流程图 (掌握)如何划分Stage阶段 (掌握)Driver底层是如何运转 (掌握)确定需要构建多少分区(线程) (掌握) 文章目录 系列文章目录引言一、Spark内核调度&#xff08;掌握&#xff09;1.1、内容概述1.2、RDD的依赖1.3、DAG和Stage1.4、Spark Shuffl…

Dockerfile封装制作pytorch(tensorflow)深度学习框架 + jupyterlab服务 + ssh服务镜像

一&#xff1a;docker-hub官网寻找需求镜像 1.我们在https://hub.docker.com/官网找到要封装的pytorch基础镜像&#xff0c;这里我们以pytorch1.13.1版本为例 2.我们找到的这个devel版本的镜像&#xff08;我们需要cuda的编译工具&#xff09; pytorch版本是1.13.1&#xff0c;…

网络校时服务器:铁路对时有妙招

在信息高速发展的今天&#xff0c;铁路作为国家的经济大动脉&#xff0c;与广大市民生活息息相关&#xff0c;担负着运送大流量乘客、保证交通畅通的重任&#xff0c;为了保证列车的正点运行和乘客的行程&#xff0c;对时间精准度的要求是非常严格的。随着我国铁路的发展速度和…