maramlee-waterfalls-flow.js.map 14.2 KB
{"version":3,"sources":["webpack:///C:/Users/15121/Desktop/44444/components/maramlee-waterfalls-flow/maramlee-waterfalls-flow.vue?79e9","webpack:///C:/Users/15121/Desktop/44444/components/maramlee-waterfalls-flow/maramlee-waterfalls-flow.vue?f73c","webpack:///C:/Users/15121/Desktop/44444/components/maramlee-waterfalls-flow/maramlee-waterfalls-flow.vue?97ca","webpack:///C:/Users/15121/Desktop/44444/components/maramlee-waterfalls-flow/maramlee-waterfalls-flow.vue?93b9","webpack:///C:/Users/15121/Desktop/44444/components/maramlee-waterfalls-flow/maramlee-waterfalls-flow.vue?c830","uni-app:///components/maramlee-waterfalls-flow/maramlee-waterfalls-flow.vue","webpack:///C:/Users/15121/Desktop/44444/components/maramlee-waterfalls-flow/maramlee-waterfalls-flow.vue?a24a"],"names":[],"mappings":";;;;;;;;;AAAA;AACA,OAAO,KAAU,EAAE,kBAKd;;;;;;;;;;;;;ACNL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiJ;AACjJ;AAC4E;AACL;AACsC;;;AAG7G;AACuL;AACvL,gBAAgB,2LAAU;AAC1B,EAAE,8FAAM;AACR,EAAE,+GAAM;AACR,EAAE,wHAAe;AACjB;AACA;AACA;AACA;AACA;AACA,EAAE,mHAAU;AACZ;AACA;;AAEA;AACe,gF;;;;;;;;;;;;ACvBf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACRA;AAAA;AAAA;AAAA;AAAytB,CAAgB,wsBAAG,EAAC,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC8D7uB;AACA;AACA,yCADA;AAEA;AACA,yCAHA;AAIA;AACA,0CALA;AAMA;AACA,uDAPA;AAQA;AACA,6FATA;AAUA,gCAVA;;AAYA;AACA,6CAbA,EADA;;;;;;AAoBA,MApBA,kBAoBA;AACA;AACA,gBADA,EACA;AACA,wBAFA,EAEA;AACA,sBAHA,EAGA;AACA,eAJA,EAIA;AACA,eALA;AAMA,YANA;;AAQA,GA7BA;AA8BA,SA9BA,qBA8BA;AACA;AACA,GAhCA;AAiCA;AACA,mBADA,2BACA,KADA,EACA;AACA;AACA,gDADA;AAEA;AACA,YADA,CACA,QADA;AAEA,YAFA,CAEA,cAFA,EAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DADA;AAEA,uCAFA;AAGA,yEAHA;AAIA,mDAJA;;AAMA,aARA,CADA;;AAWA,0BAXA,CAWA,YAXA,iBAWA,YAXA,CAWA,YAXA,iBAWA,YAXA;AAYA;AACA,sCADA;AAEA,qEAFA;;AAIA;AACA;AACA,+DADA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OA/BA;AAgCA,UAhCA;AAiCA,KArCA;AAsCA,WAtCA,qBAsCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KA/CA,EAjCA,E;;;;;;;;;;;;;AC9DA;AAAA;AAAA;AAAA;AAA42C,CAAgB,uwCAAG,EAAC,C","file":"components/maramlee-waterfalls-flow/maramlee-waterfalls-flow.js","sourcesContent":["// extracted by mini-css-extract-plugin\n    if(module.hot) {\n      // 1669299736259\n      var cssReload = require(\"C:/Program Files/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n      module.hot.dispose(cssReload);\n      module.hot.accept(undefined, cssReload);\n    }\n  ","import { render, staticRenderFns, recyclableRender, components } from \"./maramlee-waterfalls-flow.vue?vue&type=template&id=b7348238&scoped=true&\"\nvar renderjs\nimport script from \"./maramlee-waterfalls-flow.vue?vue&type=script&lang=js&\"\nexport * from \"./maramlee-waterfalls-flow.vue?vue&type=script&lang=js&\"\nimport style0 from \"./maramlee-waterfalls-flow.vue?vue&type=style&index=0&id=b7348238&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"b7348238\",\n  null,\n  false,\n  components,\n  renderjs\n)\n\ncomponent.options.__file = \"components/maramlee-waterfalls-flow/maramlee-waterfalls-flow.vue\"\nexport default component.exports","export * from \"-!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--16-0!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./maramlee-waterfalls-flow.vue?vue&type=template&id=b7348238&scoped=true&\"","var components\nvar render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n}\nvar recyclableRender = false\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns, recyclableRender, components }","import mod from \"-!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--12-1!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./maramlee-waterfalls-flow.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--12-1!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./maramlee-waterfalls-flow.vue?vue&type=script&lang=js&\"","<template>\n  <view class=\"waterfalls-box\" :style=\"{ height: height + 'px' }\">\n    <!--  #ifdef  MP-WEIXIN -->\n    <view\n      v-for=\"(item, index) of list\"\n      class=\"waterfalls-list\"\n      :key=\"item[idKey]\"\n      :id=\"'waterfalls-list-id-' + item[idKey]\"\n      :ref=\"'waterfalls-list-id-' + item[idKey]\"\n      :style=\"{\n        '--offset': offset + 'px',\n        '--cols': cols,\n        top: allPositionArr[index].top || 0,\n        left: allPositionArr[index].left || 0,\n      }\"\n      @click=\"$emit('wapper-lick', item)\"\n    >\n      <image\n        class=\"waterfalls-list-image\"\n        mode=\"widthFix\"\n        :class=\"{ single }\"\n        :style=\"imageStyle\"\n        :src=\"item[imageSrcKey] || ' '\"\n        @load=\"imageLoadHandle(index)\"\n        @error=\"imageLoadHandle(index)\"\n        @click=\"$emit('image-click', item)\"\n      />\n      <slot name=\"slot{{index}}\" />\n    </view>\n    <!--  #endif -->\n\n    <!--  #ifndef  MP-WEIXIN -->\n    <view\n      v-for=\"(item, index) of list\"\n      class=\"waterfalls-list\"\n      :key=\"item[idKey]\"\n      :id=\"'waterfalls-list-id-' + item[idKey]\"\n      :ref=\"'waterfalls-list-id-' + item[idKey]\"\n      :style=\"{\n        '--offset': offset + 'px',\n        '--cols': cols,\n        ...listStyle,\n        ...(allPositionArr[index] || {}),\n      }\"\n      @click=\"$emit('wapper-lick', item)\"\n    >\n      <image\n        class=\"waterfalls-list-image\"\n        :class=\"{ single }\"\n        mode=\"widthFix\"\n        :style=\"imageStyle\"\n        :src=\"item[imageSrcKey] || ' '\"\n        @load=\"imageLoadHandle(index)\"\n        @error=\"imageLoadHandle(index)\"\n        @click=\"$emit('image-click', item)\"\n      />\n      <slot v-bind=\"item\" />\n    </view>\n    <!--  #endif -->\n  </view>\n</template>\n<script>\nexport default {\n  props: {\n    list: { type: Array, required: true },\n    // offset 间距,单位为 px\n    offset: { type: Number, default: 10 },\n    // 列表渲染的 key 的键名,值必须唯一,默认为 id\n    idKey: { type: String, default: \"id\" },\n    // 图片 src 的键名\n    imageSrcKey: { type: String, default: \"image_url\" },\n    // 列数\n    cols: { type: Number, default: 2, validator: (num) => num >= 2 },\n    imageStyle: { type: Object },\n\n    // 是否是单独的渲染图片的样子,只控制图片圆角而已\n    single: { type: Boolean, default: false },\n\n    // #ifndef MP-WEIXIN\n    listStyle: { type: Object },\n    // #endif\n  },\n  data() {\n    return {\n      topArr: [], // left, right 多个时依次表示第几列的数据\n      allPositionArr: [], // 保存所有的位置信息\n      allHeightArr: [], // 保存所有的 height 信息\n      height: 0, // 外层包裹高度\n      oldNum: 0,\n      num: 0,\n    };\n  },\n  created() {\n    this.refresh();\n  },\n  methods: {\n    imageLoadHandle(index) {\n      const id = \"waterfalls-list-id-\" + this.list[index][this.idKey],\n        query = uni.createSelectorQuery().in(this);\n      query\n        .select(\"#\" + id)\n        .fields({ size: true }, (data) => {\n          this.num++;\n          this.$set(this.allHeightArr, index, data.height);\n          if (this.num === this.list.length) {\n            for (let i = this.oldNum; i < this.num; i++) {\n              const getTopArrMsg = () => {\n                let arrtmp = [...this.topArr].sort((a, b) => a - b);\n                return {\n                  shorterIndex: this.topArr.indexOf(arrtmp[0]),\n                  shorterValue: arrtmp[0],\n                  longerIndex: this.topArr.indexOf(arrtmp[this.cols - 1]),\n                  longerValue: arrtmp[this.cols - 1],\n                };\n              };\n\n              const { shorterIndex, shorterValue } = getTopArrMsg();\n              const position = {\n                top: shorterValue + \"px\",\n                left: (data.width + this.offset) * shorterIndex + \"px\",\n              };\n              this.$set(this.allPositionArr, i, position);\n              this.topArr[shorterIndex] =\n                shorterValue + this.allHeightArr[i] + this.offset;\n              this.height = getTopArrMsg().longerValue - this.offset;\n            }\n            this.oldNum = this.num;\n            // 完成渲染 emit `image-load` 事件\n            this.$emit(\"image-load\");\n          }\n        })\n        .exec();\n    },\n    refresh() {\n      let arr = [];\n      for (let i = 0; i < this.cols; i++) {\n        arr.push(0);\n      }\n      this.topArr = arr;\n      this.num = 0;\n      this.oldNum = 0;\n      this.height = 0;\n    },\n  },\n};\n</script>\n<style lang=\"scss\" scoped>\n// 这里可以自行配置\n$border-radius: 6px;\n\n.waterfalls-box {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n  .waterfalls-list {\n    width: calc((100% - var(--offset) * (var(--cols) - 1)) / var(--cols));\n    position: absolute;\n    background-color: #fff;\n    border-radius: $border-radius;\n    // 防止刚开始渲染时堆叠在第一幅图的地方\n    left: calc(-50% - var(--offset));\n    .waterfalls-list-image {\n      width: 100%;\n      will-change: transform;\n      border-radius: $border-radius $border-radius 0 0;\n      display: block;\n      &.single {\n        border-radius: $border-radius;\n      }\n    }\n  }\n}\n</style>\n","import mod from \"-!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-2!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-3!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-5!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./maramlee-waterfalls-flow.vue?vue&type=style&index=0&id=b7348238&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-2!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-3!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-5!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../Program Files/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./maramlee-waterfalls-flow.vue?vue&type=style&index=0&id=b7348238&lang=scss&scoped=true&\""],"sourceRoot":""}