| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- /**
- * FeHelper Image Base64 Tools
- */
- new Vue({
- el: '#pageContainer',
- data: {
- sizeOri: '暂无数据',
- sizeBase: '暂无数据',
- previewSrc: '',
- resultContent: ''
- },
- mounted: function () {
- //监听paste事件
- document.addEventListener('paste', (event) => {
- let items = event.clipboardData.items || {};
- for (let index in items) {
- let item = items[index];
- if (/image\//.test(item.type)) {
- let file = item.getAsFile();
- this._getDataUri(file);
- break;
- }
- }
- }, false);
- // 监听拖拽
- document.addEventListener('drop', (event) => {
- event.preventDefault();
- event.stopPropagation();
- let files = event.dataTransfer.files;
- if (files.length) {
- if (/image\//.test(files[0].type)) {
- this._getDataUri(files[0]);
- } else {
- alert('请选择图片文件!');
- }
- }
- }, false);
- document.addEventListener('dragover', (event) => {
- event.preventDefault();
- event.stopPropagation();
- }, false);
- },
- methods: {
- _sizeFormat: function (num) {
- if (isNaN(num)) {
- return '暂无数据';
- }
- num = +num;
- if (num < 1024) {
- return num + ' B';
- } else if (num < 1024 * 1024) {
- return (num / 1024).toFixed(2) + ' KB';
- } else {
- return (num / 1024 / 1024).toFixed(2) + ' MB';
- }
- },
- _getDataUri: function (file) {
- let reader = new FileReader();
- reader.onload = (evt) => {
- this.resultContent = evt.target.result;
- this.previewSrc = evt.target.result;
- this.$refs.panelBox.style.backgroundImage = 'none';
- this.sizeOri = this._sizeFormat(file.size);
- this.sizeBase = this._sizeFormat(evt.target.result.length);
- };
- reader.readAsDataURL(file);
- },
- convert: function () {
- if (this.$refs.fileBox.files.length) {
- this._getDataUri(this.$refs.fileBox.files[0]);
- this.$refs.fileBox.value = '';
- }
- },
- select: function () {
- this.$refs.resultBox.select();
- },
- upload: function (evt) {
- evt.preventDefault();
- this.$refs.fileBox.click();
- }
- }
- });
|