hanbaoshan
2020-12-20 ecb6cadc3f016cf9968f48e0cc77479a1e56365b
src/components/subComponents/CardItem.vue
@@ -7,7 +7,7 @@
        <div class="card-img-box-compear">
          <div class="card-img-box-compear-left" ref="firstImg">
            <img
              :src="'/httpImage/'+data.targetInfo[0].picSmUrl+'?width=160'"
              :src="data.targetInfo[0].picSmUrl | httpImage"
              :id="'/compear/'+data.targetInfo[0].picSmUrl"
              class="cursor-pointer"
              @click="detailsClick($event)"
@@ -22,7 +22,7 @@
          >
            <el-carousel-item v-for="(item, index) in data.baseInfo" :key="index">
              <img
                :src="'/httpImage/'+item.targetPicUrl+'?width=160'"
                :src="item.targetPicUrl | httpImage"
                class="cursor-pointer"
                @click="detailsClick($event)"
              />
@@ -31,9 +31,8 @@
        </div>
        <div
          class="s-card-left-isCompare-div compareScore111"
          style
          :style="{
            bottom: getBottom(),
            bottom: '0',
            background: getUrl(data.baseInfo[initialIndex].bwType)
          }"
        >
@@ -54,28 +53,24 @@
          @change="changeCarousel"
        >
          <el-carousel-item v-for="(item, index) in data.picMaxUrl" :key="index + 'img'">
            <img
              :src="'/httpImage/'+item+'?width=160'"
              class="cursor-pointer"
              @click="detailsClick($event)"
            />
            <img :src="item | httpImage" class="cursor-pointer" @click="detailsClick($event)" />
          </el-carousel-item>
        </el-carousel>
        <img
          v-else-if="data.targetInfo == null || data.targetInfo[0].picSmUrl == ''"
          :src="'/httpImage/'+data.picMaxUrl[0]+'?width=160'"
          :src="data.picMaxUrl[0] | httpImage"
          class="cursor-pointer"
          @click="detailsClick($event)"
        />
        <img
          v-else
          :src="'/httpImage/'+data.targetInfo[0].picSmUrl+'?width=160'"
          :src="data.targetInfo[0].picSmUrl | httpImage"
          class="cursor-pointer"
          @click="detailsClick($event)"
        />
      </div>
      <div class="s-card-left-box" v-else>
        <img :src="'/httpImage/'+data.baseInfo[0].targetPicUrl+'?width=160'" class="cursor-pointer" />
        <img :src="data.baseInfo[0] | httpImage" class="cursor-pointer" />
      </div>
    </div>
    <!-- 右侧文字区域 -->
@@ -495,8 +490,9 @@
}
export default {
  mounted() {
    window.addEventListener("resize", this.watchWindow);
  mounted () {
    //window.addEventListener("resize", this.watchWindow);
    window.addEventListener("resize",this.getBottom)
  },
  props: {
    data: {
@@ -509,18 +505,18 @@
    }
  },
  computed: {
    isId() {
    isId () {
      return this.data.id
    }
  },
  filters: {
    formatTime(t) {
    formatTime (t) {
      return new Date(t).Format("yyyy-MM-dd HH:mm:ss")
    },
    percentage(score) {
    percentage (score) {
      return score.toFixed(2) + "%"
    },
    idCard(v) {
    idCard (v) {
      try {
        let obj = JSON.parse(v)
        return obj.idCard
@@ -528,7 +524,7 @@
        return v.split("/")[1]
      }
    },
    sex(v) {
    sex (v) {
      try {
        let obj = JSON.parse(v)
        return obj.sex
@@ -536,8 +532,11 @@
        return v.split("/")[0]
      }
    },
    httpImage (url) {
      return '/httpImage/' + url + ((url.indexOf("?") >= 0) ? '&' : '?') + 'width=160'
    }
  },
  data() {
  data () {
    return {
      tempShowType: true,
      initialIndex: 0,
@@ -548,48 +547,49 @@
  },
  watch: {
    data: {
      handler(val, oldVal) {
      handler (val, oldVal) {
        this.$forceUpdate()
      },
      deep: true
    }
  },
  methods: {
    getBottom() {
      // let imgDom = document.getElementById(str)
      let imgDom = this.$refs.firstImg
      if (imgDom) {
        let num = (imgDom.offsetHeight - imgDom.offsetWidth) / 2
        return `${num}px`;
      }
      return `4px`;
    getBottom () {
      this.$nextTick(() => {
        let imgDom = this.$refs.firstImg
        if (imgDom) {
          let num = (imgDom.offsetHeight - imgDom.offsetWidth) / 2
          return `${num}px`;
        }
        return `4px`;
      })
    },
    getUrl(bwtype) {
    getUrl (bwtype) {
      if (bwtype == 1) {
        return `url(${require("@/assets/img/red.png")})`
      } else {
        return `url(${require("@/assets/img/green.png")})`
      }
    },
    changeInitialIndex(index) {
    changeInitialIndex (index) {
      this.initialIndex = index;
    },
    cardMouseenter(ev) {
    cardMouseenter (ev) {
      this.overflowState = false;
    },
    cardMouseleave(ev) {
    cardMouseleave (ev) {
      this.overflowState = true;
    },
    changeCarousel(index) {
    changeCarousel (index) {
      this.carouselIndex = index;
    },
    detailsClick(ev) {
    detailsClick (ev) {
      this.$emit("detailsClick", ev);
    },
    toAdd(item) {
    toAdd (item) {
      this.$emit("addToBase", item);
    },
    tosearch(item) {
    tosearch (item) {
      let captureId = item.id == "" ? item.baseInfo[0].targetId : item.id
      let imgUrl = item.targetInfo ? item.targetInfo[0].picSmUrl : item.baseInfo[0].targetPicUrl
      let compType = 1 //  数据来自于es
@@ -622,6 +622,7 @@
  line-height: 1.25rem;
}
.box-card {
  cursor: default;
  .el-carousel__arrow {
    height: 20px;
@@ -641,11 +642,11 @@
    .card-img-box {
      box-sizing: border-box;
      width: 100%;
      height: 100%;
      position: relative;
      overflow: hidden;
          top: 50%;
    transform: translateY(-50%);
      .card-img-box-compear {
        height: 100%;
        width: 100%;
        display: flex;
        .card-img-box-compear-left {
@@ -654,8 +655,13 @@
          justify-content: center;
          align-items: Center;
          overflow: hidden;
          width: 100%;
          flex: 1;
          height: 100%;
        }
        .el-carousel{
          flex: 1;
          width: auto;
          height: auto!important;
        }
        .el-carousel__item {
          display: flex;
@@ -693,9 +699,10 @@
      }
    }
    img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: contain;
      //height: 100%;
      //object-fit: contain;
    }
    .s-card-left-isCompare-div {
      width: 60px;