|
我们在上架产品时经常会有到attachmentsimple组件上传多图,前端同一个产品有多图显示海报轮换,提供一个简单的海报轮换显示办法。1、页面新增一个data组件(imgData),字段storeFileName,realFileName(附件上传保存到数据库就是这两个字段)。
2、在页面接受产品事件modelParamsReceive中,把此产品的fImg字段(此字段是json字符串)加载到imgData.
3\、定义getImageUrl文件地址转换获取。
4、加载海报imgDataCustomRefresh,调用getImageUrl。
基本组件设置省略。
代码如下:
- Model.prototype.getImageUrl = function(storeFileName,realFileName,ownerID){
- var operateType = "browse";
- var url = '$UI/system/service/doc/common/simpleFileStore.j?realFileName=' + realFileName + '&storeFileName=' + storeFileName + '&ownerID=' + ownerID + '&operateType=' + operateType;
- return require.toUrl(url);
- };
-
- //获取轮换图片
- Model.prototype.imgDataCustomRefresh = function(event){
- var imgUrl = this.comp("imgData");
- console.log(this.comp("imgData").toJson());
- var productID = this.comp("productData").getCurrentRowID();
- var me = this;
- var carousel = this.comp("carousel1");
- imgUrl.each(function(obj) {
- var fImgUrl = obj.row.val("storeFileName");
- var fUrl = obj.row.val("realFileName");
- if (me.comp('contentsImg').getLength() > obj.index) {
- $(carousel.domNode).find("img").eq(obj.index).attr({
- "src" : fImgUrl,
- "pagename" : fUrl
- });
- if (obj.index == 0) {
- var fImgUrl1 = me.getImageUrl(fImgUrl,fUrl, productID);
- $(carousel.domNode).find("img").eq(0).attr({"src":fImgUrl1});
- }
- } else {
- var fImgUrl1 = me.getImageUrl(fImgUrl,fUrl, productID);
- console.log(fImgUrl1);
- carousel.add('<img src="' + fImgUrl1 + '" class="tb-img1" bind-click="openPageClick" pagename="' + fUrl + '"/>');
- }
- });
- };
-
- //接收
- Model.prototype.modelParamsReceive = function(event){
- /*
- 1、参数接收事件
- 2、根据参数从服务端过滤数据
- */
- var product = this.comp("productData");
- var listID = event.params.goodsID;
- product.clear();
- product.setFilter("filer1", "fProductID = '" + listID + "'");
- product.refreshData();
- var imgData = product.getValue("fImg");
- var jsonObject=JSON.parse(imgData);
- this.comp("imgData").loadData(jsonObject);
- this.imgDataCustomRefresh();
- };
复制代码
|
|