123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- /**
- * 显示附件名称、大小;
- * 附件删除、下载、显示
- */
- Ext.define('erp.view.core.trigger.TrashField', {
- extend : 'Ext.form.field.Trigger',
- alias : 'widget.trashfield',
- trigger1Cls: 'x-form-download-trigger',
- trigger2Cls: 'x-form-trash-trigger',
- fieldStyle: 'background:#C6E2FF;color:#D9D9D9;',
- autoShow: true,
- initComponent : function() {
- this.callParent(arguments);
- },
- listeners : {
- afterrender : function() {
- var me = this, c = Ext.Function.bind(me.onTrigger1Click, me);
- Ext.EventManager.on(me.inputEl, {
- click : c,
- scope : me,
- buffer : 100
- });
- Ext.DomHelper.applyStyles(me.inputEl.dom, 'border:none;');
- //取消延时影藏trigger的写法
- /* // 只读时,隐藏删除trigger
- Ext.defer(function(){
- var form = me.up('form');
- if(me.ownerCt.readOnly) {
- me.getEl().down("." + me.trigger2Cls).applyStyles({visibility: 'hidden'});
- }
- }, 200);*/
- }
- },
- onTrigger1Click: function(e){
- var path = this.realpath;
- if(this.isImage(path)) {
- var menu = this.createMenu();
- menu.path = path;
- menu.showAt(e.getXY());
- } else {
- this.download();
- }
- },
- onTrigger2Click: function(){
- var me = this;
- warnMsg('确定删除' + me.value, function(btn){
- if(btn == 'yes'){
- var v = me.ownerCt.down('hidden').value.replace(me.filepath + ';', '');
- me.updateAttachField(v, '删除附件', function(){
- me.ownerCt.down('hidden').setValue(v);
- me.ownerCt.filesize -= me.filesize;
- me.ownerCt.setTitle('<img src="' + basePath + 'resource/images/icon/clip.png" width=20 height=20/>附件' +
- '(总大小:' + Ext.util.Format.fileSize(me.ownerCt.filesize) + ")");
- });
- }
- });
- },
- download : function() {
- var me = this;
- if (!Ext.fly('ext-attach-download')) {
- var frm = document.createElement('form');
- frm.id = 'ext-attach-download';
- frm.name = id;
- frm.className = 'x-hidden';
- document.body.appendChild(frm);
- }
- Ext.Ajax.request({
- url: basePath + 'common/downloadbyId.action',
- method: 'post',
- form: Ext.fly('ext-attach-download'),
- isUpload: true,
- params: {
- id: me.filepath
- }
- });
- },
- createMenu : function() {
- var me = this, menu = this.menu;
- if (!menu) {
- menu = this.menu = Ext.create('Ext.menu.Menu', {
- items : [{
- text : '查看',
- handler : function() {
- me.showAttach(menu.path);
- }
- }, {
- text : '下载',
- handler : function() {
- me.download();
- }
- }]
- });
- }
- return menu;
- },
- showAttach : function() {
- var me = this, resizer = me.resizer,
- imageframe = document.getElementById('ext-image-frame');
- var imgOwnerCt=Ext.getCmp(me.id).ownerCt.ownerCt.ownerCt;
- src = basePath + 'common/download.action?path=' + me.realpath.replace(/\+/g, '%2B');
- if (!imageframe) {
- var el = Ext.DomHelper.append(imgOwnerCt!=null?imgOwnerCt.id:document.body, '<img id="ext-image-frame" src="' + src +
- '" width="500" height="400" style="position:absolute;left:0;top:0;"/>', true);
- imageframe = el.dom;
- } else {
- imageframe.src = src;
- }
- if (!resizer) {
- resizer = this.resizer = Ext.create('Ext.resizer.Resizer', {
- target: 'ext-image-frame',
- pinned: true,
- width: 510,
- height: 410,
- minWidth: 100,
- minHeight: 80,
- preserveRatio: true,
- handles: 'all',
- dynamic: true
- });
- var resizerEl = resizer.getEl();
- resizerEl.on('dblclick', function(){
- resizerEl.hide(true);
- });
- }
- resizer.getEl().center();
- resizer.getEl().show(true);
- Ext.DomHelper.applyStyles(imageframe, 'position:absolute;z-index:100;');
- },
- isImage : function(path) {
- if (Ext.isEmpty(path)) {
- return false;
- }
- if (!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(path)) {
- return false;
- }
- return true;
- },
- resetField:function(bool){
- var me=this;
- if(bool)
- me.getEl().down("." + me.trigger2Cls).applyStyles({visibility: 'hidden'});
- else{
- me.getEl().down("." + me.trigger2Cls).applyStyles({visibility: 'visible'});
- }
- },
- updateAttachField: function(value, type, fn) {
- var form = this.ownerCt.ownerCt;
- if(form.keyField){
- var field = this.ownerCt.name,me = this, val = Ext.getCmp(form.keyField).value;
- if(!Ext.isEmpty(val)) {
- Ext.Ajax.request({
- url: basePath + 'common/attach/change.action',
- params: {
- caller: caller,
- table: form.tablename.toUpperCase().split("LEFT")[0],
- update: field + '=\'' + value + '\'',
- condition: form.keyField + '=' + val,
- type: type
- },
- callback: function(opt, s, r) {
- var res = Ext.decode(r.responseText);
- if(res.success) {
- if(fn) {
- fn.call();
- me.destroy();
- }
- } else {
- showError(res.exceptionInfo);
- }
- }
- });
- } else {
- fn && fn.call();
- this.destroy();
- }
- }
- }
- });
|