起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 28894|回复: 28

附件组件(attachmentEditor)

  [复制链接]

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
发表于 2011-3-10 17:44:27 | 显示全部楼层 |阅读模式
附件组件一共有4个组件,分别是attachmentEditor、attachmentDialog、attachment、attachmentImage。
附件组件实现将文件上传到文档服务器、以及从文档服务器上下载文件。

attachmentEditor、attachmentDialog、attachment
可以上传、下载多个文件,可以在线编辑文件,查看文件修订记录

attachmentImage
可以上传、下载一个图片,并显示图片

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2013-7-8 14:18:52 | 显示全部楼层
js下载附件或者获取附件url

调用下面的API之前,需要在调用功能对应的.w中引用/UI/system/service/doc/docUtil.js

获取url如下:justep.Doc.getURLByFileID(docPath, fileID);
下载如下:justep.Doc.downloadDocByFileID(docPath, fileID);

两个函数都需要传附件对应的docPath和fileID两个参数



java中获取附件的url
需要用到com.justep.doc.DocUtils中的方法,要在java文件dsrc或者src目录的同级的model.config.xml文件中引用/SA/doc/logic/code,开发环境下需要把/SA/doc/logic/code/src设置为源码路径
查看的url  :DocUtils.getDocViewUrl(docPath, fileID);
下载的url:DocUtils.getDocDownloadUrl(docPath, fileID);


X5.2.7版本中java中是DocUtils中提供了getDocUrl(String docPath,String urlPattern,boolean isFormSubmit)
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
 楼主| 发表于 2013-5-15 10:47:56 | 显示全部楼层

控制同名文档不能上传

在附件组件的onFileSelected事件中如下判断
  1. mainActivity.attachmentEditor1FileSelected = function(event){
  2.     for(var i=0;i<event.source.data.length;i++){
  3.         if(event.source.data[i].docName == event.fileList){
  4.             event.cancel = true;
  5.             alert("不能上次同名的文件");
  6.             break;
  7.         }
  8.     }
  9. };
复制代码
提示:上面代码的if语句只适合判断上传一个文件的情况,如果一次上传多个文件,event.fileList里面会列出多个文件的文件名
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

如按照该方法解决,请及时跟帖,便于版主结贴

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
 楼主| 发表于 2013-5-13 15:01:11 | 显示全部楼层

设置附件组件的操作权限

attachmentEditor组件使用
justep.xbl('attachmentEditor_id').setAttachmentPermission(access);
attachmentEditor2组件使用
justep.xbl('attachmentEditor2_id').setPermission(access);

        
其中:参数access是操作权限,
可取值为:1   列表
                 3   读取   
                 7   下载   
             263   下载 上传
             519   下载 修改
             775   下载 上传 修改
           1543   下载 修改 删除
           1799   下载 上传 修改 删除


attachmentDialog2组件使用
justep.xbl("attachmentDialog2_id").getAttachmentEditor().setPermission(access);
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

如按照该方法解决,请及时跟帖,便于版主结贴

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
 楼主| 发表于 2013-5-13 15:11:03 | 显示全部楼层

动态的sub-path

1、使用后台表达式,可以定义在文档关联中,可以定义在组件的属性中

id="attOrder" model="mdOrder" owner-data="dataDEMO_Order" sub-path="concat('attachment类型/',currentPersonMemberName())"

日期需要转换成字符串:
  1. dateFormat(currentDate(), 'yyyy-MM-dd' )
复制代码
2、使用界面上的值,通过给组件的subPath属性赋值实现

justep.xbl('attachmentEditor1').subPath="a/b/c";

上面是建了3级目录,分别是a、b、c
如果'attachmentEditor1'组件的auto-load属性为true,这段代码需要放在model组件的onload事件中,如果auto-load属性为false,代码放在果'attachmentEditor1'组件加载之前即可
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

如按照该方法解决,请及时跟帖,便于版主结贴

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
 楼主| 发表于 2013-5-13 15:13:16 | 显示全部楼层

查看修订文件

在附件中点查看历史,在弹出的对话框中点查看修订文件

3.png
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

如按照该方法解决,请及时跟帖,便于版主结贴

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
 楼主| 发表于 2013-5-13 15:14:21 | 显示全部楼层

控制附件中的文件个数

在附件组件的onFileSelected事件中如下判断

mainActivity.attSendDocFileSelected = function(event){
        if(event.fileNum > 2){
                event.cancel = true;
                alert("只能上传2个文件");
        }
};
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

如按照该方法解决,请及时跟帖,便于版主结贴

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
 楼主| 发表于 2013-5-13 15:15:10 | 显示全部楼层

附件editor右侧出现滚动条

组件的stylr属性加overflow:auto;
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

如按照该方法解决,请及时跟帖,便于版主结贴

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
 楼主| 发表于 2013-5-13 15:16:17 | 显示全部楼层

上传文件后立即保存

onAfterUpdate是在上传窗口中,上传文件后会触发的事件,不是关闭上传窗口后触发的事件,
因此上传文件后立即保存是不能使用这个事件的。可以使用data的valueChanged事件或者attachmentEditor组件的onUploadCompleted事件,注意一定要使用window.setTimeout


valueChanged事件代码如下:
function dataChanged(event){
        if('fAttachment'== event.column)  
                window.setTimeout(function(){
                         justep.xbl('dataDEMO_SendDoc').saveData();},10);
}

onUploadCompleted事件代码如下:
mainActivity.attSendDocUploadCompleted = function(event){
setTimeout(function(){
var data = justep.xbl('dataDEMO_SendDoc');
data.saveData();
},5);
};

远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

如按照该方法解决,请及时跟帖,便于版主结贴

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
 楼主| 发表于 2013-5-13 15:18:26 | 显示全部楼层

设置鼠标悬停在附件上的行底色

1、对所有attachmentEditor和attachmentDialog生效

做法:
(1)修改/UI/system/components/attachmentEditor/attachmentEditor.js中的loadListData和loadSingleData函数中下面这一行,增加红色字体部分。
item.push("<tr height='20px' class='attachmentRow'>");

(2)打开/UI/system/config/user.css文件,增加下面的代码
.attachmentRow:hover {
       background-color: #D1EEEE;
}

2、仅对界面上的一个attachmentEditor或attachmentDialog生效

做法:
在和w文件同名的css文件中,增加下面的代码
#attachmentEditor1_attachmentContentTable tr:hover {
       background-color: #D1EEEE;
}
其中attachmentEditor1是attachmentEditor的id
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

如按照该方法解决,请及时跟帖,便于版主结贴

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
 楼主| 发表于 2013-5-13 15:21:17 | 显示全部楼层

从模板新建时过滤模板

增加附件的onNewFromTemplate 事件,在这个事件中,根据需要进行过滤。下面的代码实现了如何删除不需要的模板。
  1. mainActivity.attachmentEditor2NewFromTemplate = function(event){
  2.     for(var i in event.data){
  3.         if(event.data[i].sDocName=="常用方法.docx"){
  4.             delete event.data[i];
  5.         }
  6.     }
  7. };
复制代码
还要修改一下/UI/system/service/doc/dialog/docTemplateDialog.w文件,以免删除模板后报错。增加if(row),代码如下图所示
1.bmp
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

如按照该方法解决,请及时跟帖,便于版主结贴

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
 楼主| 发表于 2013-5-13 15:24:36 | 显示全部楼层

在没有记录时变灰上传文件

$('#attachmentEditor1_uploaderDiv').css('display','none');
//控制上传文件点击不弹出选择文件的窗口
$('#attachmentEditor1_uploaderButton').css('color','gray');
//控制字体为灰色
其中attachmentEditor1是附件组件的id

恢复
$('#attachmentEditor1_uploaderDiv').css('display','block');
$('#attachmentEditor1_uploaderButton').css('color','#0383a1');
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

如按照该方法解决,请及时跟帖,便于版主结贴
高级模式
B Color Image Link Quote Code Smilies

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-4-27 12:56 , Processed in 0.059899 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表