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

QQ登录

只需一步,快速开始

查看: 5658|回复: 15

[结贴] attachmentSimple 控件1和2 相实现上传到不同的目录如何实现

[复制链接]

18

主题

59

帖子

159

积分

初级会员

Rank: 2

积分
159
QQ
发表于 2015-10-20 20:38:21 | 显示全部楼层 |阅读模式
例如 头像用attachmentSimple 控件1 上传  需要传到服务器目录/头像里
菜单用attachmentSimple 控件2上传  需要传到服务器目录/菜单

商业数据量会很大后期条目上W条数据的时间 文件分开上传是维护所必需的

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36064
发表于 2015-10-21 13:35:31 | 显示全部楼层
可以自己修改组件在传的时候多传一个参数,然后在/UI2/system/service/doc/common/simpleFileStore.j中获取到参数,修改File的路径
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

18

主题

59

帖子

159

积分

初级会员

Rank: 2

积分
159
QQ
 楼主| 发表于 2015-10-24 09:38:47 | 显示全部楼层

在组件里 改了visiblestate.get() == 'upload1'
然后在F:\WeX5_V3.2ide\model\UI2\system\components\justep\attachment\attachmentSimple.js
加了对UOLOAD1的处理
$('body').on('click',function(event){
   
    if(self.$state && self.$state.get() == 'upload1'){self.changeState("upload");}
    if(self.$state && self.$state.get() == 'remove' && (!$(event.target).hasClass('x-remove-barget')) && (!$(event.target).hasClass('x-item-remove')) ){
     self.changeState("upload");
    }
   });

downloadFile1:function(realFileName,storeFileName,ownerID){
         var url = this.getFileUrl1(realFileName,storeFileName,ownerID,"download");
         window.open(url,"_download_");
        },
        


getFileUrl1 : function(realFileName,storeFileName,ownerID,operateType){
         var url = '$UI/system/service/doc/common/simpleFileStore1.j?realFileName=' + realFileName + '&storeFileName='+storeFileName + '&ownerID='+ownerID + '&operateType=' + operateType;
         return require.toUrl(url);
        },

即 组件用upload1时 使用$UI/system/service/doc/common/simpleFileStore1.j处理上传  在simpleFileStore1.里设置上传路径
试验时发现WEX5根本不需要attachmentSimple.js 这个文件就能正常使用attachmentSimple   即attachmentSimple.js文件清空为一个空文件attachmentSimple组件仍然能正常工作 ,请告知一下运行机制吧 这个又进入婶婶的思考中。
att1.JPG
回复 支持 反对

使用道具 举报

发表于 2015-10-24 10:09:33 | 显示全部楼层
sheng888s 发表于 2015-10-24 09:38
在组件里 改了visiblestate.get() == 'upload1'
然后在F:\WeX5_V3.2ide\model\UI2\system\components\j ...

attachmentSimple.js 运行时用的是合并文件中的资源吧
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

18

主题

59

帖子

159

积分

初级会员

Rank: 2

积分
159
QQ
 楼主| 发表于 2015-10-24 10:47:11 | 显示全部楼层
http://bbs.wex5.com/forum.php?mo ... 6%E6%96%87%E4%BB%B6
参照这个帖子 在runtime\UIServer\WEB-INF\lib文件夹木有发现attachmentSimple的JAV包
attachmentSimple WEX5的合并文件在哪里
回复 支持 反对

使用道具 举报

发表于 2015-10-24 11:05:33 | 显示全部楼层
sheng888s 发表于 2015-10-24 10:47
http://bbs.wex5.com/forum.php?mod=viewthread&tid=77926&highlight=%E5%90%88%E5%B9%B6%E6%96%87%E4%B ...

你搜下,应该是:/UI2/system/components/comp2.min.js
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

18

主题

59

帖子

159

积分

初级会员

Rank: 2

积分
159
QQ
 楼主| 发表于 2015-10-24 14:00:22 | 显示全部楼层
上边的解决了

修改后的组件JS 在构造里加了  this.state1 = "upload";
var AttachmentSimple = BindComponent.extend({
  // 构造函数
  constructor : function(options) {
   this.callParent(options);
   this.state = "upload";
   this.state1 = "upload";
            this.initAttachmentValue([]);
  },


//DOINIT
doInit: function(value, bindingContext, allBindings){
   this.callParent(value, bindingContext, allBindings);
   this.$state = justep.Bind.observable(this.state);
   this.$state1 = justep.Bind.observable(this.state1);
   //this.$state1 = justep.Bind.observable(this.state1);
   this.initUploader();
   var self = this;
   
   $('body').on('click',function(event){
   
    if(self.$state1 && self.$state1.get() == 'upload')
    {
     self.changeState1("upload");
     }
    if(self.$state && self.$state.get() == 'remove' && (!$(event.target).hasClass('x-remove-barget')) && (!$(event.target).hasClass('x-item-remove')) )
    {
     self.changeState("upload"
       );
    }
   });


getFileUrl : function(realFileName,storeFileName,ownerID,operateType){
         var url = '$UI/system/service/doc/common/simpleFileStore.j?realFileName=' + realFileName + '&storeFileName='+storeFileName + '&ownerID='+ownerID + '&operateType=' + operateType;
         return require.toUrl(url);
        },
        getFileUrl1 : function(realFileName,storeFileName,ownerID,operateType){
         var url = '$UI/system/service/doc/common/simpleFileStore1.j?realFileName=' + realFileName + '&storeFileName='+storeFileName + '&ownerID='+ownerID + '&operateType=' + operateType;
         return require.toUrl(url);
        },




这几个相关的都写了

组件运行时  visiblestate1.get() == 'upload'和visiblestate.get() == 'upload' 都可以使用  但是全是用的$UI/system/service/doc/common/simpleFileStore.j并没使用$UI/system/service/doc/common/simpleFileStore1.j 这是哪里的原因


attr.rar

24.8 KB, 下载次数: 455

W文件

attachment.rar

265.68 KB, 下载次数: 592

attachmentSimple组件JS

回复 支持 反对

使用道具 举报

发表于 2015-10-24 14:56:18 | 显示全部楼层
sheng888s 发表于 2015-10-24 14:00
上边的解决了

修改后的组件JS 在构造里加了  this.state1 = "upload";

你已经执行了retrun方法了,就不会再往下执行了吧
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

18

主题

59

帖子

159

积分

初级会员

Rank: 2

积分
159
QQ
 楼主| 发表于 2015-10-24 15:14:50 | 显示全部楼层
return require.toUrl(url);后是不会再执行下边 这个问题是  getFileUrl1 和 getFileUrl 是不同参数才能调用 的呀 我的的逻辑是visible:$state1.get() == 'upload'调用UI/system/service/doc/common/simpleFileStore1.j        visible:$state.get() == 'upload' 调用UI/system/service/doc/common/simpleFileStore.j

现在想不明白这样改的为啥state1 和state都是调用的UI/system/service/doc/common/simpleFileStore.j
捕获989.JPG
回复 支持 反对

使用道具 举报

发表于 2015-10-24 15:41:25 | 显示全部楼层
sheng888s 发表于 2015-10-24 15:14
return require.toUrl(url);后是不会再执行下边 这个问题是  getFileUrl1 和 getFileUrl 是不同参数才能调 ...

debugger 调试看看
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-22 06:39 , Processed in 0.091307 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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