exports.ids = [16];
exports.modules = {

/***/ 215:
/***/ (function(module, exports) {

// Exports
module.exports = {

};


/***/ }),

/***/ 246:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ImageUpload_vue_vue_type_style_index_0_id_596f82bc_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(215);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ImageUpload_vue_vue_type_style_index_0_id_596f82bc_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ImageUpload_vue_vue_type_style_index_0_id_596f82bc_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ImageUpload_vue_vue_type_style_index_0_id_596f82bc_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ImageUpload_vue_vue_type_style_index_0_id_596f82bc_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));


/***/ }),

/***/ 263:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/ImageUpload.vue?vue&type=template&id=596f82bc&scoped=true
var render = function render() {
  var _vm = this,
    _c = _vm._self._c;
  return _c('div', {
    staticClass: "com-image-upload"
  }, [_c('draggable', {
    staticClass: "flex start wrap",
    attrs: {
      "draggable": ".image-item"
    },
    on: {
      "end": _vm.end
    },
    model: {
      value: _vm.imageList,
      callback: function ($$v) {
        _vm.imageList = $$v;
      },
      expression: "imageList"
    }
  }, [_vm._l(_vm.imageList, function (item, index) {
    return _c('div', {
      key: item.uid || index,
      staticClass: "image-item flex",
      style: {
        width: _vm.width,
        height: _vm.height
      }
    }, [_c('img', {
      attrs: {
        "src": item.url,
        "alt": ""
      }
    }), _vm._v(" "), _c('div', {
      staticClass: "action-area flex center"
    }, [!_vm.disablePreview ? _c('span', {
      staticClass: "action-icon",
      on: {
        "click": function ($event) {
          return _vm.handlePictureCardPreview(item);
        }
      }
    }, [_c('i', {
      staticClass: "el-icon-zoom-in"
    })]) : _vm._e(), _vm._v(" "), _c('span', {
      staticClass: "action-icon",
      on: {
        "click": function ($event) {
          return _vm.handleRemove(index);
        }
      }
    }, [_c('i', {
      staticClass: "el-icon-delete"
    })])])]);
  }), _vm._v(" "), _c('el-progress', {
    directives: [{
      name: "show",
      rawName: "v-show",
      value: _vm.loading,
      expression: "loading"
    }],
    staticStyle: {
      "margin": "8px"
    },
    attrs: {
      "type": "circle",
      "percentage": _vm.uploadPercent,
      "width": Number(_vm.width.slice(0, _vm.width.length - 2))
    }
  }), _vm._v(" "), _c('div', {
    staticClass: "upload-wrap",
    class: {
      hide: _vm.loading || _vm.imageList.length >= _vm.max
    },
    style: {
      width: _vm.width,
      height: _vm.height
    }
  }, [_c('el-upload', {
    ref: "pictureUpload",
    staticClass: "custom-upload-item",
    attrs: {
      "multiple": true,
      "limit": _vm.max,
      "action": "",
      "drag": "",
      "accept": ".jpg,.png,.jpeg",
      "list-type": "picture-card",
      "file-list": _vm.imageList,
      "show-file-list": false,
      "auto-upload": false,
      "on-remove": _vm.handleRemove,
      "on-preview": _vm.handlePictureCardPreview,
      "on-change": (file, fileList) => {
        _vm.handleUpload(file, fileList);
      }
    }
  }, [_c('i', {
    staticClass: "el-icon-plus avatar-uploader-icon"
  })])], 1)], 2), _vm._ssrNode(" "), _c('el-dialog', {
    attrs: {
      "visible": _vm.imageDialogVisible
    },
    on: {
      "update:visible": function ($event) {
        _vm.imageDialogVisible = $event;
      }
    }
  }, [_c('img', {
    attrs: {
      "width": "100%",
      "src": _vm.imageUrl,
      "alt": ""
    }
  })])], 2);
};
var staticRenderFns = [];

// CONCATENATED MODULE: ./components/ImageUpload.vue?vue&type=template&id=596f82bc&scoped=true

// EXTERNAL MODULE: external "vuedraggable"
var external_vuedraggable_ = __webpack_require__(142);
var external_vuedraggable_default = /*#__PURE__*/__webpack_require__.n(external_vuedraggable_);

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/ImageUpload.vue?vue&type=script&lang=js

// import { common } from '@/api'

/* harmony default export */ var ImageUploadvue_type_script_lang_js = ({
  name: 'ImageUpload',
  components: {
    draggable: external_vuedraggable_default.a
  },
  props: {
    list: {
      type: Array,
      default: () => []
    },
    max: {
      type: Number,
      default: 16
    },
    disablePreview: {
      type: Boolean,
      default: false
    },
    width: {
      type: String,
      default: '150px'
    },
    height: {
      type: String,
      default: '150px'
    }
  },
  data() {
    return {
      // 组件内部数据.
      imageList: [],
      loading: false,
      uploadPercent: 0,
      imageDialogVisible: false,
      // 预览大图的url, 每次点击都会更新
      imageUrl: ''
    };
  },
  computed: {
    fulled() {
      return 0;
    }
  },
  watch: {
    list() {
      this.imageList = JSON.parse(JSON.stringify(this.list));
    }
  },
  mounted() {
    this.updateList();
  },
  methods: {
    handleUpload(file, fileList) {
      this.fileList = [];
      if (file.status === 'ready') {
        this.loading = true;
        const interval = setInterval(() => {
          if (this.uploadPercent >= 99) {
            clearInterval(interval);
            return;
          }
          this.uploadPercent += 1; // 进度条进度
        }, 100);
      }
      const formData = new FormData();
      fileList.forEach(file => {
        formData.append('file', file.raw);
      });
      formData.append('type', 1);
      this.$axios.post(`/uk-api/user_base/imagesUpload`, formData).then(response => {
        if (response.result.code === 200) {
          this.imageList.push({
            url: response.result.data,
            uid: file.uid
          });
          this.updateList();
          return;
        }
        this.$message({
          message: response.result.message,
          type: 'warning'
        });
      }).catch(error => {
        console.log(error, 'component upload image error');
        this.$message.error(error.response.data.msg);
      }).finally(() => {
        this.loading = false;
        // 进度条恢复到初始状态
        this.uploadPercent = 0;
      });
    },
    handleRemove(index) {
      this.imageList.splice(index, 1);
      this.updateList();
    },
    handlePictureCardPreview(file) {
      this.imageUrl = file.url;
      this.imageDialogVisible = true;
    },
    // 每次更新imageList后手动更新父组件的数据, 不能用watch自动更新, 因为同时要watch prop值更新iamgeList, 同时watch会死循环.
    // 直接把prop数据绑定到dragable 和 el-upload的话vue和eslint会报错, 也可能造成调试困难
    updateList() {
      this.$emit('update:list', JSON.parse(JSON.stringify(this.imageList)));
    },
    end() {
      this.updateList();
    }
  }
});
// CONCATENATED MODULE: ./components/ImageUpload.vue?vue&type=script&lang=js
 /* harmony default export */ var components_ImageUploadvue_type_script_lang_js = (ImageUploadvue_type_script_lang_js); 
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(2);

// CONCATENATED MODULE: ./components/ImageUpload.vue



function injectStyles (context) {
  
  var style0 = __webpack_require__(246)
if (style0.__inject__) style0.__inject__(context)

}

/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  components_ImageUploadvue_type_script_lang_js,
  render,
  staticRenderFns,
  false,
  injectStyles,
  "596f82bc",
  "0b6e6360"
  
)

/* harmony default export */ var ImageUpload = __webpack_exports__["default"] = (component.exports);

/***/ })

};;
//# sourceMappingURL=image-upload.js.map