初始化
This commit is contained in:
@@ -0,0 +1,257 @@
|
||||
module.exports =
|
||||
/** *** */ (function (modules) { // webpackBootstrap
|
||||
/** *** */ // The module cache
|
||||
/** *** */ const installedModules = {}
|
||||
/** *** */
|
||||
/** *** */ // The require function
|
||||
/** *** */ function __webpack_require__(moduleId) {
|
||||
/** *** */
|
||||
/** *** */ // Check if module is in cache
|
||||
/** *** */ if (installedModules[moduleId]) {
|
||||
/** *** */ return installedModules[moduleId].exports
|
||||
/** *** */ }
|
||||
/** *** */ // Create a new module (and put it into the cache)
|
||||
/** *** */ const module = installedModules[moduleId] = {
|
||||
/** *** */ i: moduleId,
|
||||
/** *** */ l: false,
|
||||
/** *** */ exports: {}
|
||||
/** *** */}
|
||||
/** *** */
|
||||
/** *** */ // Execute the module function
|
||||
/** *** */ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__)
|
||||
/** *** */
|
||||
/** *** */ // Flag the module as loaded
|
||||
/** *** */ module.l = true
|
||||
/** *** */
|
||||
/** *** */ // Return the exports of the module
|
||||
/** *** */ return module.exports
|
||||
/** *** */ }
|
||||
/** *** */
|
||||
/** *** */
|
||||
/** *** */ // expose the modules object (__webpack_modules__)
|
||||
/** *** */ __webpack_require__.m = modules
|
||||
/** *** */
|
||||
/** *** */ // expose the module cache
|
||||
/** *** */ __webpack_require__.c = installedModules
|
||||
/** *** */
|
||||
/** *** */ // define getter function for harmony exports
|
||||
/** *** */ __webpack_require__.d = function (exports, name, getter) {
|
||||
/** *** */ if (!__webpack_require__.o(exports, name)) {
|
||||
/** *** */ Object.defineProperty(exports, name, {enumerable: true, get: getter})
|
||||
/** *** */ }
|
||||
/** *** */ }
|
||||
/** *** */
|
||||
/** *** */ // define __esModule on exports
|
||||
/** *** */ __webpack_require__.r = function (exports) {
|
||||
/** *** */ if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
||||
/** *** */ Object.defineProperty(exports, Symbol.toStringTag, {value: 'Module'})
|
||||
/** *** */ }
|
||||
/** *** */ Object.defineProperty(exports, '__esModule', {value: true})
|
||||
/** *** */ }
|
||||
/** *** */
|
||||
/** *** */ // create a fake namespace object
|
||||
/** *** */ // mode & 1: value is a module id, require it
|
||||
/** *** */ // mode & 2: merge all properties of value into the ns
|
||||
/** *** */ // mode & 4: return value when already ns object
|
||||
/** *** */ // mode & 8|1: behave like require
|
||||
/** *** */ __webpack_require__.t = function (value, mode) {
|
||||
/** *** */ if (mode & 1) value = __webpack_require__(value)
|
||||
/** *** */ if (mode & 8) return value
|
||||
/** *** */ if ((mode & 4) && typeof value === 'object' && value && value.__esModule) return value
|
||||
/** *** */ const ns = Object.create(null)
|
||||
/** *** */ __webpack_require__.r(ns)
|
||||
/** *** */ Object.defineProperty(ns, 'default', {enumerable: true, value})
|
||||
/** *** */ if (mode & 2 && typeof value !== 'string') for (const key in value) __webpack_require__.d(ns, key, function (key) { return value[key] }.bind(null, key))
|
||||
/** *** */ return ns
|
||||
/** *** */ }
|
||||
/** *** */
|
||||
/** *** */ // getDefaultExport function for compatibility with non-harmony modules
|
||||
/** *** */ __webpack_require__.n = function (module) {
|
||||
/** *** */ const getter = module && module.__esModule
|
||||
/** *** */ ? function getDefault() { return module.default }
|
||||
/** *** */ : function getModuleExports() { return module }
|
||||
/** *** */ __webpack_require__.d(getter, 'a', getter)
|
||||
/** *** */ return getter
|
||||
/** *** */ }
|
||||
/** *** */
|
||||
/** *** */ // Object.prototype.hasOwnProperty.call
|
||||
/** *** */ __webpack_require__.o = function (object, property) { return Object.prototype.hasOwnProperty.call(object, property) }
|
||||
/** *** */
|
||||
/** *** */ // __webpack_public_path__
|
||||
/** *** */ __webpack_require__.p = ''
|
||||
/** *** */
|
||||
/** *** */
|
||||
/** *** */ // Load entry module and return exports
|
||||
/** *** */ return __webpack_require__(__webpack_require__.s = 22)
|
||||
/** *** */ }({
|
||||
|
||||
/***/ 22:
|
||||
/***/ (function (module, exports, __webpack_require__) {
|
||||
console.log(module, exports)
|
||||
Component({
|
||||
options: {
|
||||
addGlobalClass: true
|
||||
},
|
||||
properties: {
|
||||
title: {
|
||||
type: String,
|
||||
value: '图片上传'
|
||||
},
|
||||
sizeType: {
|
||||
type: Array,
|
||||
value: ['original', 'compressed']
|
||||
},
|
||||
sourceType: {
|
||||
type: Array,
|
||||
value: ['album', 'camera']
|
||||
},
|
||||
maxSize: {
|
||||
type: Number,
|
||||
value: 5 * 1024 * 1024
|
||||
},
|
||||
maxCount: {
|
||||
type: Number,
|
||||
value: 1
|
||||
},
|
||||
files: {
|
||||
type: Array,
|
||||
value: [],
|
||||
observer: function observer(newVal) {
|
||||
this.setData({
|
||||
currentFiles: newVal
|
||||
})
|
||||
}
|
||||
},
|
||||
select: {
|
||||
type: Function,
|
||||
value: function value() {}
|
||||
},
|
||||
upload: {
|
||||
type: Function,
|
||||
value: null
|
||||
},
|
||||
tips: {
|
||||
type: String,
|
||||
value: ''
|
||||
},
|
||||
extClass: {
|
||||
type: String,
|
||||
value: ''
|
||||
},
|
||||
showDelete: {
|
||||
type: Boolean,
|
||||
value: true
|
||||
}
|
||||
},
|
||||
data: {
|
||||
currentFiles: [],
|
||||
showPreview: false,
|
||||
previewImageUrls: []
|
||||
},
|
||||
ready: function ready() {},
|
||||
|
||||
methods: {
|
||||
previewImage: function previewImage(e) {
|
||||
const index = e.currentTarget.dataset.index
|
||||
|
||||
const previewImageUrls = []
|
||||
this.data.files.map(function (item) {
|
||||
previewImageUrls.push(item.url)
|
||||
})
|
||||
this.setData({
|
||||
previewImageUrls,
|
||||
previewCurrent: index,
|
||||
showPreview: true
|
||||
})
|
||||
},
|
||||
chooseImage: function chooseImage() {
|
||||
const _this = this
|
||||
|
||||
if (this.uploading) return
|
||||
wx.chooseImage({
|
||||
count: this.data.maxCount - this.data.files.length,
|
||||
success: function success(res) {
|
||||
let invalidIndex = -1
|
||||
res.tempFiles.forEach(function (item, index) {
|
||||
if (item.size > _this.data.maxSize) {
|
||||
invalidIndex = index
|
||||
}
|
||||
})
|
||||
if (typeof _this.data.select === 'function') {
|
||||
const ret = _this.data.select(res)
|
||||
if (ret === false) {
|
||||
return
|
||||
}
|
||||
}
|
||||
if (invalidIndex >= 0) {
|
||||
_this.triggerEvent('fail', {
|
||||
type: 1, errMsg: 'chooseImage:fail size exceed ' + _this.data.maxSize, total: res.tempFilePaths.length, index: invalidIndex
|
||||
}, {})
|
||||
return
|
||||
}
|
||||
const mgr = wx.getFileSystemManager()
|
||||
const contents = res.tempFilePaths.map(function (item) {
|
||||
const fileContent = mgr.readFileSync(item)
|
||||
return fileContent
|
||||
})
|
||||
const obj = {tempFilePaths: res.tempFilePaths, tempFiles: res.tempFiles, contents}
|
||||
_this.triggerEvent('select', obj, {})
|
||||
const files = res.tempFilePaths.map(function (item, i) {
|
||||
return {loading: true, url: 'data:image/jpg;base64,' + wx.arrayBufferToBase64(contents[i])}
|
||||
})
|
||||
if (!files || !files.length) return
|
||||
if (typeof _this.data.upload === 'function') {
|
||||
const len = _this.data.files.length
|
||||
const newFiles = _this.data.files.concat(files)
|
||||
_this.setData({files: newFiles, currentFiles: newFiles})
|
||||
_this.loading = true
|
||||
_this.data.upload(obj).then(function (json) {
|
||||
_this.loading = false
|
||||
if (json.urls) {
|
||||
const oldFiles = _this.data.files
|
||||
json.urls.forEach(function (url, index) {
|
||||
oldFiles[len + index].url = url
|
||||
oldFiles[len + index].loading = false
|
||||
})
|
||||
_this.setData({files: oldFiles, currentFiles: newFiles})
|
||||
_this.triggerEvent('success', json, {})
|
||||
} else {
|
||||
_this.triggerEvent('fail', {type: 3, errMsg: 'upload file fail, urls not found'}, {})
|
||||
}
|
||||
}).catch(function (err) {
|
||||
_this.loading = false
|
||||
const oldFiles = _this.data.files
|
||||
res.tempFilePaths.map(function (item, index) {
|
||||
oldFiles[len + index].error = true
|
||||
oldFiles[len + index].loading = false
|
||||
})
|
||||
_this.setData({files: oldFiles, currentFiles: newFiles})
|
||||
_this.triggerEvent('fail', {type: 3, errMsg: 'upload file fail', error: err}, {})
|
||||
})
|
||||
}
|
||||
},
|
||||
fail: function fail(_fail) {
|
||||
if (_fail.errMsg.indexOf('chooseImage:fail cancel') >= 0) {
|
||||
_this.triggerEvent('cancel', {}, {})
|
||||
return
|
||||
}
|
||||
_fail.type = 2
|
||||
_this.triggerEvent('fail', _fail, {})
|
||||
}
|
||||
})
|
||||
},
|
||||
deletePic: function deletePic(e) {
|
||||
const index = e.detail.index
|
||||
const files = this.data.files
|
||||
const file = files.splice(index, 1)
|
||||
this.setData({
|
||||
files,
|
||||
currentFiles: files
|
||||
})
|
||||
this.triggerEvent('delete', {index, item: file[0]})
|
||||
}
|
||||
}
|
||||
})
|
||||
/***/ })
|
||||
|
||||
/** *** */}))
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"mp-gallery": "../gallery/gallery"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<view class="weui-uploader {{extClass}}">
|
||||
<view class="weui-uploader__hd">
|
||||
<view class="weui-uploader__overview">
|
||||
<view class="weui-uploader__title">{{title}}</view>
|
||||
<view class="weui-uploader__info" wx:if="{{maxCount > 1}}">{{currentFiles.length}}/{{maxCount}}</view>
|
||||
|
||||
</view>
|
||||
<view wx:if="{{tips}}" class="weui-uploader__tips">{{tips}}</view>
|
||||
<view wx:else><slot name="tips"></slot></view>
|
||||
</view>
|
||||
<view class="weui-uploader__bd">
|
||||
<view class="weui-uploader__files">
|
||||
<block wx:for="{{currentFiles}}" wx:key="*this">
|
||||
<view wx:if="{{item.error}}" data-index="{{index}}" bindtap="previewImage" class="weui-uploader__file weui-uploader__file_status">
|
||||
<image class="weui-uploader__img" src="{{item.url}}" mode="aspectFill" />
|
||||
<view class="weui-uploader__file-content">
|
||||
<icon type="warn" size="23" color="#F43530"></icon>
|
||||
</view>
|
||||
</view>
|
||||
<view wx:elif="{{item.loading}}" data-index="{{index}}" bindtap="previewImage" class="weui-uploader__file weui-uploader__file_status">
|
||||
<image class="weui-uploader__img" src="{{item.url}}" mode="aspectFill" />
|
||||
<view class="weui-uploader__file-content">
|
||||
<view class="weui-loading"></view>
|
||||
</view>
|
||||
</view>
|
||||
<view wx:else class="weui-uploader__file" data-index="{{index}}" bindtap="previewImage">
|
||||
<image class="weui-uploader__img" src="{{item.url}}" mode="aspectFill" />
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
<view wx:if="{{currentFiles.length < maxCount}}" class="weui-uploader__input-box">
|
||||
<view class="weui-uploader__input" bindtap="chooseImage"></view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<mp-gallery hide-on-click="{{true}}" show-delete="{{showDelete}}" show="{{showPreview}}" binddelete="deletePic" img-urls="{{previewImageUrls}}" current="{{previewCurrent}}"></mp-gallery>
|
||||
Reference in New Issue
Block a user