gallery-row

<style lang="stylus" scoped>  @import "../css/base/variables.styl"  .photo-checkbox    position: absolute;    clip: rect(0, 0, 0, 0);    pointer-events: none;  .checkbox    position absolute    right 3px    top 3px    width 16px    height 16px    border-radius 50%    border 1px solid #fff    z-index 3    color transparent    background-color rgba(0, 0, 0, .2)    text-align center    &.active      color red      background-color #fff      box-shadow 0 1px 1px rgba(0, 0, 0, .375)  .mask    width 100%    height 100%    position absolute    left 0    top 0    background-color rgba(white .2)    z-index -4  .mask-show    z-index 2</style><template>  <label v-if="url"         class="pic"         :style="picStyle"         @click="onPicClick()"  >    <!--<img v-lazy="col('IMG_URL', 'value')" />-->    <lazy-img :src="url" />    <template v-if="selectMode">      <input type="checkbox" class="photo-checkbox" v-model="checked">      <!--<div class="photo-selected" v-if="selectModel" :class="{text:selectedShow}">√</div>-->      <div class="checkbox" :class="{active:checked}">        <icon name="check"></icon>      </div>      <div class="mask" :class="{'mask-show':checked}"></div>    </template>  </label></template><script>  import colMixin from './mixins/col'  import photoMixin from './mixins/photo'  import bLazyMixin from './mixins/bLazy'  import _ from 'lodash'  export default{    mixins: [colMixin, photoMixin, bLazyMixin],    methods: {      onPicClick(url) {        if (this.selectMode) {          return        }        this.$emit('show-big-photo', this.url)      }    },    data(){      return {        url: this.col('IMG_URL', 'value'),        checked: false      }    },    watch: {      checked (checked) {//        當選中狀態發生變化//        從value數組中查找當前發生變化的圖片路徑        const index = this.value.indexOf(this.url)//        當數組中存在該路徑        const inSelectList = index !== -1//        當爲選中狀態時        if (checked) {//          將選中的圖片路徑存進數組中          this.value.push(this.url)        } else if (inSelectList) {//          當選中狀態爲false,但數組中存在該路徑,則刪除掉該路徑          this.value.splice(index, 1)        }      },      value(val) {        if (val.indexOf(this.url) !== -1) {          this.checked = true        } else {          this.checked = false        }        this.$emit('input', val)      }    },    props: {      // 選中的數據      value: Array,      // 選擇模式      selectMode: {        type: Boolean,        default: false,      }    }  }</script>
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息