Commit 149354e4 by fengshuonan

头像上传和修改

parent b93703bd
...@@ -165,6 +165,7 @@ ...@@ -165,6 +165,7 @@
@} @}
@if(array.contain(plugins,"cropper")){ @if(array.contain(plugins,"cropper")){
<script src="${ctxPath}/assets/common/plugins/cropper/cropper.min.js"></script> <script src="${ctxPath}/assets/common/plugins/cropper/cropper.min.js"></script>
<script src="${ctxPath}/assets/common/plugins/cropper/cropper.jquery.min.js"></script>
@} @}
@} @}
......
/*!
* jQuery Cropper v1.0.0
* https://github.com/fengyuanchen/jquery-cropper
*
* Copyright (c) 2018 Chen Fengyuan
* Released under the MIT license
*
* Date: 2018-04-01T06:20:13.168Z
*/
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(require("jquery"),require("cropperjs")):"function"==typeof define&&define.amd?define(["jquery","cropperjs"],r):r(e.jQuery,e.Cropper)}(this,function(c,s){"use strict";if(c=c&&c.hasOwnProperty("default")?c.default:c,s=s&&s.hasOwnProperty("default")?s.default:s,c.fn){var e=c.fn.cropper,d="cropper";c.fn.cropper=function(p){for(var e=arguments.length,a=Array(1<e?e-1:0),r=1;r<e;r++)a[r-1]=arguments[r];var u=void 0;return this.each(function(e,r){var t=c(r),n="destroy"===p,o=t.data(d);if(!o){if(n)return;var f=c.extend({},t.data(),c.isPlainObject(p)&&p);o=new s(r,f),t.data(d,o)}if("string"==typeof p){var i=o[p];c.isFunction(i)&&((u=i.apply(o,a))===o&&(u=void 0),n&&t.removeData(d))}}),void 0!==u?u:this},c.fn.cropper.Constructor=s,c.fn.cropper.setDefaults=s.setDefaults,c.fn.cropper.noConflict=function(){return c.fn.cropper=e,this}}});
\ No newline at end of file
/** $(function () {
* 用户详情对话框(可用于添加和修改对话框) 'use strict';
*/
var UserViewPage = { var console = window.console || { log: function () {} };
data: { var URL = window.URL || window.webkitURL;
id: "", var $image = $('#image');
account: "", var $download = $('#download');
sex: "", var $dataX = $('#dataX');
password: "", var $dataY = $('#dataY');
rePassword: "", var $dataHeight = $('#dataHeight');
avatar: "", var $dataWidth = $('#dataWidth');
email: "", var $dataRotate = $('#dataRotate');
name: "", var $dataScaleX = $('#dataScaleX');
birthday: "", var $dataScaleY = $('#dataScaleY');
deptid: "", var options = {
deptName: "", aspectRatio: 16 / 9,
phone: "" preview: '.img-preview',
crop: function (e) {
$dataX.val(Math.round(e.detail.x));
$dataY.val(Math.round(e.detail.y));
$dataHeight.val(Math.round(e.detail.height));
$dataWidth.val(Math.round(e.detail.width));
$dataRotate.val(e.detail.rotate);
$dataScaleX.val(e.detail.scaleX);
$dataScaleY.val(e.detail.scaleY);
} }
}; };
var originalImageURL = $image.attr('src');
var uploadedImageName = 'cropped.jpg';
var uploadedImageType = 'image/jpeg';
var uploadedImageURL;
/** // Tooltip
* 关闭此对话框 $('[data-toggle="tooltip"]').tooltip();
*/
UserViewPage.close = function () {
}; // Cropper
$image.on({
ready: function (e) {
console.log(e.type);
},
cropstart: function (e) {
console.log(e.type, e.detail.action);
},
cropmove: function (e) {
console.log(e.type, e.detail.action);
},
cropend: function (e) {
console.log(e.type, e.detail.action);
},
crop: function (e) {
console.log(e.type);
},
zoom: function (e) {
console.log(e.type, e.detail.ratio);
}
}).cropper(options);
/** // Buttons
* 验证表单 if (!$.isFunction(document.createElement('canvas').getContext)) {
*/ $('button[data-method="getCroppedCanvas"]').prop('disabled', true);
UserViewPage.validateForm = function () { }
var data = UserViewPage.data; if (typeof document.createElement('cropper').style.transition === 'undefined') {
$('button[data-method="rotate"]').prop('disabled', true);
$('button[data-method="scale"]').prop('disabled', true);
}
if (data.account && data.password && data.name && data.deptid) { // Download
return true; if (typeof $download[0].download === 'undefined') {
$download.addClass('disabled');
} }
if (!data.account) { // Options
return "请输入账号"; $('.docs-toggles').on('change', 'input', function () {
var $this = $(this);
var name = $this.attr('name');
var type = $this.prop('type');
var cropBoxData;
var canvasData;
if (!$image.data('cropper')) {
return;
} }
if (!(data.password === data.rePassword)) {
return "两次密码输入不一致"; if (type === 'checkbox') {
options[name] = $this.prop('checked');
cropBoxData = $image.cropper('getCropBoxData');
canvasData = $image.cropper('getCanvasData');
options.ready = function () {
$image.cropper('setCropBoxData', cropBoxData);
$image.cropper('setCanvasData', canvasData);
};
} else if (type === 'radio') {
options[name] = $this.val();
}
$image.cropper('destroy').cropper(options);
});
// Methods
$('.docs-buttons').on('click', '[data-method]', function () {
var $this = $(this);
var data = $this.data();
var cropper = $image.data('cropper');
var cropped;
var $target;
var result;
if ($this.prop('disabled') || $this.hasClass('disabled')) {
return;
}
if (cropper && data.method) {
data = $.extend({}, data); // Clone a new one
if (typeof data.target !== 'undefined') {
$target = $(data.target);
if (typeof data.option === 'undefined') {
try {
data.option = JSON.parse($target.val());
} catch (e) {
console.log(e.message);
} }
if (!data.name) {
return "请输入姓名";
} }
if (!data.deptid) {
return "请选择部门";
} }
};
$(function () { cropped = cropper.cropped;
var image = document.getElementById('cropperImage'); switch (data.method) {
var cropper = new Cropper(image, { case 'rotate':
aspectRatio: 16 / 9, if (cropped && options.viewMode > 0) {
crop(event) { $image.cropper('clear');
console.log(event.detail.x); }
console.log(event.detail.y);
console.log(event.detail.width); break;
console.log(event.detail.height);
console.log(event.detail.rotate); case 'getCroppedCanvas':
console.log(event.detail.scaleX); if (uploadedImageType === 'image/jpeg') {
console.log(event.detail.scaleY); if (!data.option) {
}, data.option = {};
}
data.option.fillColor = '#fff';
}
break;
}
result = $image.cropper(data.method, data.option, data.secondOption);
switch (data.method) {
case 'rotate':
if (cropped && options.viewMode > 0) {
$image.cropper('crop');
}
break;
case 'scaleX':
case 'scaleY':
$(this).data('option', -data.option);
break;
case 'getCroppedCanvas':
if (result) {
// Bootstrap's Modal
$('#getCroppedCanvasModal').modal().find('.modal-body').html(result);
if (!$download.hasClass('disabled')) {
download.download = uploadedImageName;
$download.attr('href', result.toDataURL(uploadedImageType));
}
}
break;
case 'destroy':
if (uploadedImageURL) {
URL.revokeObjectURL(uploadedImageURL);
uploadedImageURL = '';
$image.attr('src', originalImageURL);
}
break;
}
if ($.isPlainObject(result) && $target) {
try {
$target.val(JSON.stringify(result));
} catch (e) {
console.log(e.message);
}
}
}
});
// Keyboard
$(document.body).on('keydown', function (e) {
if (e.target !== this || !$image.data('cropper') || this.scrollTop > 300) {
return;
}
switch (e.which) {
case 37:
e.preventDefault();
$image.cropper('move', -1, 0);
break;
case 38:
e.preventDefault();
$image.cropper('move', 0, -1);
break;
case 39:
e.preventDefault();
$image.cropper('move', 1, 0);
break;
case 40:
e.preventDefault();
$image.cropper('move', 0, 1);
break;
}
});
// Import image
var $inputImage = $('#inputImage');
if (URL) {
$inputImage.change(function () {
var files = this.files;
var file;
if (!$image.data('cropper')) {
return;
}
if (files && files.length) {
file = files[0];
if (/^image\/\w+$/.test(file.type)) {
uploadedImageName = file.name;
uploadedImageType = file.type;
if (uploadedImageURL) {
URL.revokeObjectURL(uploadedImageURL);
}
uploadedImageURL = URL.createObjectURL(file);
$image.cropper('destroy').attr('src', uploadedImageURL).cropper(options);
$inputImage.val('');
} else {
window.alert('Please choose an image file.');
}
}
}); });
} else {
$inputImage.prop('disabled', true).parent().addClass('disabled');
}
}); });
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment