关于image在项目中图片动态样式绑定不显示图片

128 阅读3分钟
在项目中提出了一个需求就是根据后端接口返回的typename的名称用ui给的指定的图片与之匹配
我在最开始的思路想着利用img标签的src使用动态样式来绑定对应的图片地址。
因为我首先是把ui给的图片放到了assets静态资源目录,在这个资源目录在webpack会认为该目录下是模块所有动态通过src引入不会把图片转换成base64格式显示不出来图片
这是不用bind绑定src引入的图片会转换成base64

调试.png 通过require引入是:

  <img :src = require('图片路径') alt:""></img>

后面又想到了import来先引入模块再进行名称和图片的判断

//图片引入
import anDan from "@/assets/image/氨氮.png";
import daQiShiDu from "@/assets/image/大气湿度.png";
import daQiWenDu from "@/assets/image/大气温度.png";
import daQiYa from "@/assets/image/大气压.png";
import diBiaoLiuLiang from "@/assets/image/地表流量.png";
import diXiaShuiWei from "@/assets/image/地下水位.png";
import dianDaoLv from "@/assets/image/电导率.png";
import fengSu from "@/assets/image/风速.png";
import fengXiang from "@/assets/image/风向.png";
import gaomengsuanjia from "@/assets/image/高锰酸盐.png";
import huangSeWuZhi from "@/assets/image/黄色物质.png";
import liuLiang from "@/assets/image/流量.png";
import liuSu from "@/assets/image/流速.png";
import minDu from "@/assets/image/密度.png";
import niShaHanLiang from "@/assets/image/泥沙含量.png";
import rongJieYang from "@/assets/image/溶解氧.png";
import shuiShen from "@/assets/image/水深.png";
import shuiWei from "@/assets/image/水位.png";
import shuiWen from "@/assets/image/水温.png";
import shuiPH from "@/assets/image/水PH.png";
import touGuangxing from "@/assets/image/透光性.png";
import tuRangShiDu from "@/assets/image/土壤湿度.png";
import tuRangWenDu from "@/assets/image/土壤温度.png";
import yuLiang from "@/assets/image/雨量.png";
import zongDan from "@/assets/image/总氮.png";
import zongLin from "@/assets/image/总磷.png";
import zaoLei from "@/assets/image/总叶绿素a、蓝藻、绿藻、硅甲藻、隐藻.png";
//调用函数进行类别的传参实现判断
 imgImgUrl(data) {
      if (data.includes("氨氮")) {
        return anDan;
      } else if (data.includes("大气湿度")) {
        return daQiShiDu;
      } else if (data.includes("大气温度")) {
        return daQiWenDu;
      } else if (data.includes("大气压")) {
        return daQiYa;
      } else if (data.includes("地表流量")) {
        return diBiaoLiuLiang;
      } else if (data.includes("地下水位")) {
        return diXiaShuiWei;
      } else if (data.includes("电导率")) {
        return dianDaoLv;
      } else if (data.includes("风速")) {
        return fengSu;
      } else if (data.includes("风向")) {
        return fengXiang;
      } else if (data.includes("高锰酸盐")) {
        return gaomengsuanjia;
      } else if (data.includes("黄色物质")) {
        return huangSeWuZhi;
      } else if (data.includes("流量")) {
        return liuLiang;
      } else if (data.includes("流速")) {
        return liuSu;
      } else if (data.includes("密度")) {
        return minDu;
      } else if (data.includes("泥沙含量")) {
        return niShaHanLiang;
      } else if (data.includes("溶解氧")) {
        return rongJieYang;
      } else if (data.includes("水深")) {
        return shuiShen;
      } else if (data.includes("水温")) {
        return shuiWen;
      } else if (data.includes("水位")) {
        return shuiWei;
      } else if (data.includes("水PH")) {
        return shuiPH;
      } else if (data.includes("透光性")) {
        return touGuangxing;
      } else if (data.includes("土壤湿度")) {
        return tuRangShiDu;
      } else if (data.includes("土壤温度")) {
        return tuRangWenDu;
      } else if (data.includes("雨量")) {
        return yuLiang;
      } else if (data.includes("总氮")) {
        return zongDan;
      } else if (data.includes("总磷")) {
        return zongLin;
      } else if (
        this.list[i].displayName.includes("总叶绿素a") ||
        this.list[i].displayName.includes("蓝藻") ||
        this.list[i].displayName.includes("绿藻") ||
        this.list[i].displayName.includes("硅甲藻") ||
        this.list[i].displayName.includes("隐藻")
      ) {
        return zaoLei;
      } else {
        return "";
      }
    },
//调用imgImgUrl函数传入名称
 <img
    :src="imgImgUrl(sensors.displayName)"
    alt="图片"
 />

背景图片的引入

image.png

html的写法

image.png

图片地址的封装 封装到image.js文件中

export default {
  item: [{
    id: 1,
    imgUrl: "/src/assets/dataMonitoring/daQiYa.png",
    label: "大气压"
  },
  {
    id: 2,
    imgUrl: "/src/assets/dataMonitoring/kongQiWenDu.png",
    label: "空气温度"
  },
  {
    id: 3,
    imgUrl: "/src/assets/dataMonitoring/kongQiShiDu.png",
    label: "空气湿度"
  },
  {
    id: 4,
    imgUrl: "/src/assets/dataMonitoring/ZongFuShe.png",
    label: "总辐射"
  },
  {
    id: 5,
    imgUrl: "/src/assets/dataMonitoring/ShuiWei.png",
    label: "水位"
  }, {
    id: 6,
    imgUrl: "/src/assets/dataMonitoring/ShuiWRed.png",
    label: "水位-红"
  }, {
    id: 7,
    imgUrl: "/src/assets/dataMonitoring/ShuiWYellow.png",
    label: "水位-黄"
  }, {
    id: 8,
    imgUrl: "/src/assets/dataMonitoring/ShuiWBlue.png",
    label: "水位-蓝"
  }, {
    id: 9,
    imgUrl: "/src/assets/dataMonitoring/ShuiWOrange.png",
    label: "水位-橙"
  }, {
    id: 10,
    imgUrl: "/src/assets/dataMonitoring/LiuSu.png",
    label: "流速"
  }, {
    id: 11,
    imgUrl: "/src/assets/dataMonitoring/LiuLiang.png",
    label: "流量"
  }, {
    id: 12,
    imgUrl: "/src/assets/dataMonitoring/LiuLRed.png",
    label: "流量-红"
  }, {
    id: 13,
    imgUrl: "/src/assets/dataMonitoring/LiuLYellow.png",
    label: "流量-黄"
  }, {
    id: 14,
    imgUrl: "/src/assets/dataMonitoring/LiuLBlue.png",
    label: "流量-蓝"
  }, {
    id: 15,
    imgUrl: "/src/assets/dataMonitoring/LiuLOrange.png",
    label: "流量-橙"
  }, {
    id: 16,
    imgUrl: "/src/assets/dataMonitoring/YuLiang.png",
    label: "雨量"
  }, {
    id: 17,
    imgUrl: "/src/assets/dataMonitoring/YuLRed.png",
    label: "雨量-红"
  }, {
    id: 18,
    imgUrl: "/src/assets/dataMonitoring/YuLYellow.png",
    label: "雨量-黄"
  }, {
    id: 19,
    imgUrl: "/src/assets/dataMonitoring/YuLBlue.png",
    label: "雨量-蓝"
  }, {
    id: 20,
    imgUrl: "/src/assets/dataMonitoring/YuLOrange.png",
    label: "雨量-橙"
  }, {
    id: 21,
    imgUrl: "/src/assets/dataMonitoring/FengXiang.png",
    label: "风向"
  }, {
    id: 22,
    imgUrl: "/src/assets/dataMonitoring/FengSu.png",
    label: "风速"
  }, {
    id: 23,
    imgUrl: "/src/assets/dataMonitoring/FengSRed.png",
    label: "风速-红"
  }, {
    id: 24,
    imgUrl: "/src/assets/dataMonitoring/FengSYellow.png",
    label: "风速-黄"
  }, {
    id: 25,
    imgUrl: "/src/assets/dataMonitoring/FengSBlue.png",
    label: "风速-蓝"
  }, {
    id: 26,
    imgUrl: "/src/assets/dataMonitoring/FengSOrange.png",
    label: "风速-橙"
  }]
}