| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 | 
							- "use strict";
 
- var __assign = (this && this.__assign) || function () {
 
-     __assign = Object.assign || function(t) {
 
-         for (var s, i = 1, n = arguments.length; i < n; i++) {
 
-             s = arguments[i];
 
-             for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
 
-                 t[p] = s[p];
 
-         }
 
-         return t;
 
-     };
 
-     return __assign.apply(this, arguments);
 
- };
 
- Object.defineProperty(exports, "__esModule", { value: true });
 
- var component_1 = require("../common/component");
 
- var validator_1 = require("../common/validator");
 
- var shared_1 = require("./shared");
 
- var utils_1 = require("./utils");
 
- (0, component_1.VantComponent)({
 
-     props: __assign(__assign(__assign(__assign({ disabled: Boolean, multiple: Boolean, uploadText: String, useBeforeRead: Boolean, afterRead: null, beforeRead: null, previewSize: {
 
-             type: null,
 
-             value: 80,
 
-         }, name: {
 
-             type: null,
 
-             value: '',
 
-         }, accept: {
 
-             type: String,
 
-             value: 'image',
 
-         }, fileList: {
 
-             type: Array,
 
-             value: [],
 
-             observer: 'formatFileList',
 
-         }, maxSize: {
 
-             type: Number,
 
-             value: Number.MAX_VALUE,
 
-         }, maxCount: {
 
-             type: Number,
 
-             value: 100,
 
-         }, deletable: {
 
-             type: Boolean,
 
-             value: true,
 
-         }, showUpload: {
 
-             type: Boolean,
 
-             value: true,
 
-         }, previewImage: {
 
-             type: Boolean,
 
-             value: true,
 
-         }, previewFullImage: {
 
-             type: Boolean,
 
-             value: true,
 
-         }, videoFit: {
 
-             type: String,
 
-             value: 'contain',
 
-         }, imageFit: {
 
-             type: String,
 
-             value: 'scaleToFill',
 
-         }, uploadIcon: {
 
-             type: String,
 
-             value: 'photograph',
 
-         } }, shared_1.imageProps), shared_1.videoProps), shared_1.mediaProps), shared_1.messageFileProps),
 
-     data: {
 
-         lists: [],
 
-         isInCount: true,
 
-     },
 
-     methods: {
 
-         formatFileList: function () {
 
-             var _a = this.data, _b = _a.fileList, fileList = _b === void 0 ? [] : _b, maxCount = _a.maxCount;
 
-             var lists = fileList.map(function (item) { return (__assign(__assign({}, item), { isImage: (0, utils_1.isImageFile)(item), isVideo: (0, utils_1.isVideoFile)(item), deletable: (0, validator_1.isBoolean)(item.deletable) ? item.deletable : true })); });
 
-             this.setData({ lists: lists, isInCount: lists.length < maxCount });
 
-         },
 
-         getDetail: function (index) {
 
-             return {
 
-                 name: this.data.name,
 
-                 index: index == null ? this.data.fileList.length : index,
 
-             };
 
-         },
 
-         startUpload: function () {
 
-             var _this = this;
 
-             var _a = this.data, maxCount = _a.maxCount, multiple = _a.multiple, lists = _a.lists, disabled = _a.disabled;
 
-             if (disabled)
 
-                 return;
 
-             (0, utils_1.chooseFile)(__assign(__assign({}, this.data), { maxCount: maxCount - lists.length }))
 
-                 .then(function (res) {
 
-                 _this.onBeforeRead(multiple ? res : res[0]);
 
-             })
 
-                 .catch(function (error) {
 
-                 _this.$emit('error', error);
 
-             });
 
-         },
 
-         onBeforeRead: function (file) {
 
-             var _this = this;
 
-             var _a = this.data, beforeRead = _a.beforeRead, useBeforeRead = _a.useBeforeRead;
 
-             var res = true;
 
-             if (typeof beforeRead === 'function') {
 
-                 res = beforeRead(file, this.getDetail());
 
-             }
 
-             if (useBeforeRead) {
 
-                 res = new Promise(function (resolve, reject) {
 
-                     _this.$emit('before-read', __assign(__assign({ file: file }, _this.getDetail()), { callback: function (ok) {
 
-                             ok ? resolve() : reject();
 
-                         } }));
 
-                 });
 
-             }
 
-             if (!res) {
 
-                 return;
 
-             }
 
-             if ((0, validator_1.isPromise)(res)) {
 
-                 res.then(function (data) { return _this.onAfterRead(data || file); });
 
-             }
 
-             else {
 
-                 this.onAfterRead(file);
 
-             }
 
-         },
 
-         onAfterRead: function (file) {
 
-             var _a = this.data, maxSize = _a.maxSize, afterRead = _a.afterRead;
 
-             var oversize = Array.isArray(file)
 
-                 ? file.some(function (item) { return item.size > maxSize; })
 
-                 : file.size > maxSize;
 
-             if (oversize) {
 
-                 this.$emit('oversize', __assign({ file: file }, this.getDetail()));
 
-                 return;
 
-             }
 
-             if (typeof afterRead === 'function') {
 
-                 afterRead(file, this.getDetail());
 
-             }
 
-             this.$emit('after-read', __assign({ file: file }, this.getDetail()));
 
-         },
 
-         deleteItem: function (event) {
 
-             var index = event.currentTarget.dataset.index;
 
-             this.$emit('delete', __assign(__assign({}, this.getDetail(index)), { file: this.data.fileList[index] }));
 
-         },
 
-         onPreviewImage: function (event) {
 
-             if (!this.data.previewFullImage)
 
-                 return;
 
-             var index = event.currentTarget.dataset.index;
 
-             var _a = this.data, lists = _a.lists, showmenu = _a.showmenu;
 
-             var item = lists[index];
 
-             wx.previewImage({
 
-                 urls: lists.filter(function (item) { return (0, utils_1.isImageFile)(item); }).map(function (item) { return item.url; }),
 
-                 current: item.url,
 
-                 showmenu: showmenu,
 
-                 fail: function () {
 
-                     wx.showToast({ title: '预览图片失败', icon: 'none' });
 
-                 },
 
-             });
 
-         },
 
-         onPreviewVideo: function (event) {
 
-             if (!this.data.previewFullImage)
 
-                 return;
 
-             var index = event.currentTarget.dataset.index;
 
-             var lists = this.data.lists;
 
-             var sources = [];
 
-             var current = lists.reduce(function (sum, cur, curIndex) {
 
-                 if (!(0, utils_1.isVideoFile)(cur)) {
 
-                     return sum;
 
-                 }
 
-                 sources.push(__assign(__assign({}, cur), { type: 'video' }));
 
-                 if (curIndex < index) {
 
-                     sum++;
 
-                 }
 
-                 return sum;
 
-             }, 0);
 
-             wx.previewMedia({
 
-                 sources: sources,
 
-                 current: current,
 
-                 fail: function () {
 
-                     wx.showToast({ title: '预览视频失败', icon: 'none' });
 
-                 },
 
-             });
 
-         },
 
-         onPreviewFile: function (event) {
 
-             if (!this.data.previewFile)
 
-                 return;
 
-             var index = event.currentTarget.dataset.index;
 
-             wx.openDocument({
 
-                 filePath: this.data.lists[index].url,
 
-                 showMenu: true,
 
-             });
 
-         },
 
-         onClickPreview: function (event) {
 
-             var index = event.currentTarget.dataset.index;
 
-             var item = this.data.lists[index];
 
-             this.$emit('click-preview', __assign(__assign({}, item), this.getDetail(index)));
 
-         },
 
-     },
 
- });
 
 
  |