123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- MWF.xApplication.process.Xform.widget = MWF.xApplication.process.Xform.widget || {};
- MWF.require("MWF.widget.ImageClipper", null, false);
- MWF.xApplication.process.Xform.widget.ImageClipper = new Class({
- Implements: [Options, Events],
- Extends: MWF.widget.Common,
- options: {
- "reference" : "",
- "referenceType" : "",
- "imageUrl" : "",
- "resultMaxSize" : 800,
- "description" : "",
- "title": MWF.xApplication.process.Xform.LP ? MWF.xApplication.process.Xform.LP.imageClipper : "Select Image",
- "style": "default",
- "aspectRatio": 1
- },
- initialize: function(designer, options){
- this.setOptions(options);
- this.app = designer;
- this.path = "../x_component_process_Xform/widget/$ImageClipper/";
- this.cssPath = "../x_component_process_Xform/widget/$ImageClipper/"+this.options.style+"/css.wcss";
- this._loadCss();
- },
- load: function(data){
- this.data = data;
- var options = {};
- var width = "678";
- var height = "520";
- width = width.toInt();
- height = height.toInt();
-
- var outBody = this.app.content;
- if (layout.mobile){
- outBody = $(document.body);
- }
- var size = outBody.getSize();
- var x = (size.x-width)/2;
- var y = (size.y-height)/2;
- if (x<0) x = 0;
- if (y<0) y = 0;
- if (layout.mobile){
- x = 20;
- y = 0;
- }
- var _self = this;
- if (layout.mobile) { //移动端直接选择图片
- this.fileNode = new Element("input.file", {
- "type" : "file",
- "accept":" .jpeg, .jpg, .png",
- "multiple": false,
- "styles" : {"display":"none"}
- }).inject(outBody);
- this.fileNode.addEvent("change", function(event){
- var file=this.fileNode.files[0];
- if(file) {
- this.uploadImageForH5(file);
- }
- this.fileNode.destroy();
- this.fileNode = null;
- }.bind(this));
- setTimeout( function(){ this.fileNode.click(); }.bind(this), 100);
- }else {
- MWF.require("MWF.xDesktop.Dialog", function() {
- var dlg = new MWF.xDesktop.Dialog({
- "title": this.options.title || "Select Image",
- "style": options.style || "image",
- "top": y,
- "left": x - 20,
- "fromTop": y,
- "fromLeft": x - 20,
- "width": width,
- "height": height,
- "html": "<div></div>",
- "maskNode": outBody,
- "container": outBody,
- "buttonList": [
- // {
- // "text": MWF.LP.process.button.download || "下载",
- // "action": function () {
- // _self.download();
- // }
- // },
- // {
- // "text": MWF.LP.process.button.remove || "删除",
- // "action": function () {
- // _self.remove();
- // }
- // },
- {
- "text": MWF.LP.process.button.ok,
- "action": function () {
- if( _self.image.getResizedImage() ){
- _self.image.uploadImage( function( json ){
- _self.imageSrc = MWF.xDesktop.getImageSrc( json.id );
- _self.imageId = json.id;
- _self.fireEvent("change");
- this.close();
- }.bind(this));
- }else{
- _self.imageSrc = "";
- _self.imageId = "";
- _self.fireEvent("change");
- this.close();
- }
- }
- },
- {
- "text": MWF.LP.process.button.cancel,
- "action": function () {
- this.close();
- }
- }
- ]
- });
- dlg.show();
-
- this.image = new MWF.widget.ImageClipper(dlg.content.getFirst(), {
- "aspectRatio": this.options.aspectRatio,
- "description" : this.options.description,
- "imageUrl" : this.options.imageUrl,
- "resultMaxSize" : this.options.resultMaxSize,
- "reference" : this.options.reference,
- "referenceType": this.options.referenceType,
- "resetEnable" : true
- });
- this.image.load(this.data);
- }.bind(this));
- }
- },
- //移动端h5 上传图片
- uploadImageForH5:function(file) {
- //公共图片上传服务
- var maxSize = this.options.resultMaxSize ? this.options.resultMaxSize : 800;
- var formData = new FormData();
- formData.append('file', file, file.name);
- // if( this.options.data ){
- // Object.each(this.options.data, function(v, k){
- // formData.append(k, v)
- // });
- // }
- o2.xDesktop.uploadImageByScale(
- this.options.reference,
- this.options.referenceType,
- maxSize,
- formData,
- file,
- function(json){
- this.imageSrc = MWF.xDesktop.getImageSrc( json.id );
- this.imageId = json.id;
- this.fireEvent("change");
- }.bind(this),
- function(json) {
- this.imageSrc = "";
- this.imageId = "";
- this.fireEvent("change");
- }.bind(this)
- );
- }
- // download: function () {
- // if( this.image ){
- // this.image.downloadSourceImage();
- // }else{
- // var src = this.imageSrc || this.options.imageUrl;
- // if(src)window.open( src, "_blank" );
- // }
- // }
-
- });
|