Файли
ziqim/Yangcai365_web/manage/zview/attaFileList.zml
T
2025-02-20 14:59:35 +08:00

406 рядки
13 KiB
Plaintext
Неформатований Анотація Історія

Цей файл містить неоднозначні символи Юнікоду
Цей файл містить символи Юнікоду, які можна сплутати з іншими символами. Якщо ви вважаєте, що це зроблено навмисно, можете сміливо ігнорувати це попередження. Щоб показати їх, скористайтеся кнопкою Escape.
${Styles.htmlOverflowYAuto()}
${Scripts.src(zhiqim_uploadlarge.js)}
<script>
<!--
var attaList = ${attaList};
Z.onload(function()
{
for(var i=0; i<attaList.length; i++)
{
var obj = attaList[i];
if ("file" == obj.type && obj.isAdd)
{
initUploader(obj.id, obj.savePath);
}
if ("file" == obj.type)
{
Z("#fileType_Text_"+obj.id).click();//默认选中
}
}
});
function initUploader(fileType, path)
{//文件上传
var designId = Z("#designId").val();
if (Z.Validates.isEmpty(designId))
return;
var upload = new Z.UploadLarge();
upload.elem = "upload_" + fileType;
upload.showResult = false;
upload.fileMd5Target = 1;
upload.fileCopy = true;
upload.maxSizeMiB = 500;
upload.contextPath = "${context.getContextPath()}";
upload.setFileDir(path);
upload.onSelected = function(fileName, fileLength)
{
var ajax = new Z.Ajax();
ajax.setSync();
ajax.setClassName("UploadFilePresenter");
ajax.setMethodName("doCheckFileName");
ajax.addParam(designId);
ajax.addParam(fileType);
if ("EndFile" != fileType)
ajax.addParam(designId + "-" + fileName);
else
ajax.addParam(fileName);
ajax.execute();
if (ajax.responseStatus != 0)
{
Z.alert(ajax.responseText);
return false;
}
if ("EndFile" != fileType)
this.setFileName(designId + "-" + fileName);
else
this.setFileName(fileName);
};
upload.onCompleted = function(fileId){
var ajax = new Z.Ajax();
ajax.setClassName("UploadFilePresenter");
ajax.setMethodName("doUplaodFile");
ajax.addParam(designId);
ajax.addParam(fileId);
ajax.addParam(fileType);
ajax.setFailureAlert();
ajax.setSuccess(function()
{
var dataMap = Z.J.toObject(this.responseText);
Z("#div_" + fileType).html("");//清除;
var html = "";
var data_color = "${zmr_color_class}";
var items = dataMap.attaList;
for(var i=0;i<items.length;i++)
{
/**/
var obj = items[i];
html += '<div id="div_checkbox_'+obj.attaId+'" class="z-text-ellipsis z-w300 z-pointer"';
if ('EndFile'== fileType)
html += 'onclick="showThumImg(\''+obj.attaId+'\',\''+obj.fileType+'\')"';
html += ' title="'+obj.fileName+'">';
html += "<input name='str_" + fileType +"' type='checkbox' value ='" + obj.attaId +"' class='z-checkbox' data-role='z-checkbox' data-class='"+data_color+"'/>";
html += '<span class="z-pd6" onclick="Z(this).parent().find(\'zcover>i.z-checkbox\').click()">'+obj.fileName+'</span><br>';
html += '</div>';
}
Z("#div_" + fileType).htmlc(html);
});
ajax.setLoading(document);
ajax.execute();
};
upload.execute();
}
function doDownFile(type)
{//文件下载
var designId = Z("#designId").val();
if (Z.V.isEmpty(designId))
{
parent.Z.alert("请选择一条订单");
return;
}
var attaIds = Z.FM.getCheckBoxValue("str_" + type, "");
if (Z.V.isEmpty(attaIds))
{
parent.Z.alert("请选择需要下载的文件");
return false;
}
if(${checkeds}){
parent.Z.alert("选中多条订单不支持下载,请重新选择");
return;
}
var delType_desabled = Z("#delete_"+type).attr("disabled");
var downloadType_desabled = Z("#download_"+type).attr("disabled");
Z("#delete_"+type).attr("disabled", true);
Z("#download_"+type).attr("disabled", true);
var ajax = new Z.Ajax();
ajax.setClassName("UploadFilePresenter");
ajax.setMethodName("doDownloadFile");
ajax.addParam("attaId", attaIds);
ajax.setFailure(function(){
Z("#delete_"+type).attr("disabled", delType_desabled);
Z("#download_"+type).attr("disabled", downloadType_desabled);
Z.alert(this.responseText,null, {width:320});
});
ajax.setSuccess(function(){
Z("#delete_"+type).attr("disabled", delType_desabled);
Z("#download_"+type).attr("disabled", downloadType_desabled);
var prefix = Z.l.protocol + "//" + Z.l.host ;
Z.L.href(prefix+"/downFile.htm?attaId=" + attaIds, zCallFrame);
var mainFrame = parent.parent.document.getElementById("mainFrame");
if (mainFrame)
console.log(mainFrame.src);
// window.open(prefix+"/downFile.htm?attaId=" + attaIds, 'downFile');mainFrame
});
ajax.setLoading(document);
ajax.execute();
}
function doDeleteFile(type)
{//删除文件
var designId = Z("#designId").val();
if (Z.V.isEmpty(designId))
{
parent.Z.alert("请选择一条订单");
return;
}
var attaIds = Z.FM.getCheckBoxValue("str_" + type, "");
if (Z.V.isEmpty(attaIds))
{
parent.Z.alert("请选择需要删除的文件");
return ;
}
if(${checkeds}){
parent.Z.alert("选中多条订单不支持删除,请重新选择");
return;
}
Z.confirm("确认删除此文件吗?", function()
{
var arr = Z.AR.toArray(attaIds, ",")
var ajax = new Z.Ajax();
ajax.setClassName("UploadFilePresenter");
ajax.setMethodName("doDeleteFile");
ajax.addParam(attaIds);
ajax.setFailure(function(){Z.alert(this.responseText,null, {width:320});});
ajax.setSuccess(function(){
Z.each(arr, function(id, i){
Z("#div_checkbox_"+id).remove();
});
});
ajax.execute();
}, {width:320});
}
function showThumImg(attaId, suffix)
{
doViewOssFile(attaId);//预览文件
Z("#thumImgs").html("");//清除;
if (suffix != "pdf")
{
var html = "<img class='z-pointer' onclick='showLargeImg(this)' class='z-mg-l10' src= '"+attaId+"-0-endFile'/>";
Z("#thumImgs").html(html);
}
else
{
var ajax = new Z.Ajax();
ajax.setClassName("UploadFilePresenter");
ajax.setMethodName("getPdfPages");
ajax.addParam("attaId", attaId);
ajax.setCallback(function()
{
var html = "";
var page = parseInt(this.responseText);
for (var i=1;i<=page;i++)
{
html += "<img class='z-pointer' width='162' onclick='showLargeImg(this)' class='z-mg-l6' src= '"+attaId+"-"+i+"-endFile'/>";
}
html += "<br>";
Z("#thumImgs").html(html);
});
ajax.execute();
}
}
function doViewOssFile(attaId)
{
var ajax = new Z.Ajax();
ajax.setClassName("UploadFilePresenter");
ajax.setMethodName("doGetOssFileUrl");
ajax.addParam("attaId", attaId);
ajax.setSuccess(function(){
var ossFileUrl = this.responseText;
if (Z.V.isNotEmptyBlank(ossFileUrl))
{
var elem = document.createElement("a");
elem.href = ossFileUrl;
elem.setAttribute("target", "_blank");
elem.click();
}
});
ajax.execute();
}
function showLargeImg(thisImg)
{
var dialog = new parent.Z.Dialog();
dialog.shadow = true;
dialog.title = "图片预览";
dialog.fixed = true;
dialog.url = "showLargeImg.htm?imgpath="+thisImg.src;
dialog.width = parent.Z.D.clientWidth()-600;
dialog.height = parent.Z.D.clientHeight()-400;
dialog.execute();
dialog.$background.remove();
}
function doCopyProductInfo(copyType)
{
if (copyType == 1)
{//复制文件名
var designId = "${order.getDesignId()}";
var buyerNick = "${order.getBuyerNick()}";
var reciverName = "${order.getUserContact()}";
var fileName = designId+ "-";
// if (buyerNick.indexOf("-") > 0)
// {
// fileName += reciverName;
// }
// else
// {
fileName += buyerNick;
// }
if (fileName == "-")
return;
Z.copy(fileName);
top.Z.tips("复制成功");
}
else
{//复制信息
if (Z("#copy_content").length == 0)
return;
Z.copy(Z("#copy_content").text());
top.Z.tips("复制成功");
}
}
</script>
${Htmls.toCallFrame()}
<input name="designId" id="designId" value="${order.getDesignId()}" type="hidden">
<table class="z-table z-bordered-line z-pd5 zi-bd z-bg-blue z-mg-t20">
<#for item : attaList>
<#if item.getId() == "copy">
<!--复制-->
<tr class="z-h40 z-bg-gray">
<td class="z-bold" colspan="2">产品信息:
<span style="margin-left:100px">
<button type="button" id="copy" class="z-button z-yellow" onclick="doCopyProductInfo(1);">复制文件名</button>
<button type="button" id="copy" class="z-button z-cyan" onclick="doCopyProductInfo();">复制信息</button>
</span>
</td>
</tr>
<tr class="z-h50">
<#if Validates.isNotEmpty(order)>
<td id="copy_content" colspan="2">${order.getDesignId()}-${order.getBuyerNick()}-${order.getOrderText()}</td>
<#else>
<td colspan="2"></td>
</#if>
</tr>
</#if>
<#if item.getId() == "userText" && Validates.isNotEmptyBlank(order.getUserText())>
<!--客户文本-->
<tr class="z-h40 z-bg-gray">
<td class="z-bold" colspan="2">客户文本</td>
</tr>
<tr class="z-h100">
<td colspan="2">
<textarea class="z-textarea z-w100p z-h100 ${zmr_color_class}" id="userText" name="userText" class="">${order.getUserText()}</textarea>
</td>
</tr>
</#if>
<#if item.getId() == "userNotice" && Validates.isNotEmptyBlank(order.getUserNotice())>
<!--注意事项-->
<tr class="z-h40 z-bg-gray">
<td class="z-bold" colspan="2">注意事项</td>
</tr>
<tr class="z-h80" >
<td colspan="2">
<textarea id="userNotice" name="userNotice" class="z-textarea z-w100p z-h80 ${zmr_color_class}">${order.getUserNotice()}</textarea>
</td>
</tr>
</#if>
<#if item.getType() == "file">
<!-- 文件资料-->
<tr class="z-h40 z-bg-gray">
<td>
<input type="checkbox" id="box_${item.getId()}" onclick="Z.FM.doSelectCheckBox('str_${item.getId()}', this.checked);" class="z-checkbox z-mg-l2" data-role="z-checkbox" data-class="${zmr_color_class}" > <b id="fileType_Text_${item.getId()}" class="z-pointer" onclick=" Z(this).parent().find('zcover>i.z-checkbox').click();">${item.getName()}</b>
</td>
<td class="z-text-right">
<#if item.getId() == "EndFile" && endFileLink != null>
<button id="copyLink_${item.getId()}" class="z-button z-cyan z-pd3" onclick="Z.copy('${endFileLink}');top.Z.tips('复制成功')">发送链接</span></button>
</#if>
<button id="upload_${item.getId()}" class="z-button z-pd3 ${zmr_color_class}" <#if !item.isAdd()>disabled=true</#if>>添加</button>
<button id="download_${item.getId()}" class="z-button z-orange z-pd3" onclick="doDownFile('${item.getId()}');">下载</button>
<button id="delete_${item.getId()}" class="z-button z-red z-pd3" onclick="doDeleteFile('${item.getId()}');" <#if !item.isDel()>disabled=true</#if>>删除</button>
</td>
</tr>
<tr class="z-h40">
<td colspan="2">
<div id="div_${item.getId()}" class="z-overflow-y-auto <#if item.getName()=="客户素材">z-h100<#elseif item.getName()=="印刷文件">z-h50<#else>z-h60</#if>">
<#for atta : fileList>
<#if Validates.isEqual(atta.getAttaModul(), item.getId())>
<div id="div_checkbox_${atta.getAttaId()}" class="z-text-ellipsis z-w300 z-pointer" onclick="<#if item.getId()=="EndFile"> showThumImg('${atta.getAttaId()}', '${atta.getFileType()}')</#if>" title="${atta.getFileName()}">
<input name="str_${item.getId()}" type="checkbox" data-attaId="${atta.getAttaId()}" data-attaUrl="${atta.getOssUrl()}" data-fileName="${atta.getFileName()}" class="z-checkbox" data-role="z-checkbox" data-class="${zmr_color_class}" value ="${atta.getAttaId()}"><span class="z-pd6" onclick="Z(this).parent().find('zcover>i.z-checkbox').click();">${atta.getFileName()}</span><br>
</div>
</#if>
</#for>
</div>
</td>
</tr>
</#if>
<#if item.getType() == "thumFile">
<!--缩略图-->
<tr class="z-h40 z-bg-gray">
<td class="z-bold" colspan="2">${item.getName()}</td>
</tr>
<tr height="200px" valign="top">
<td colspan="2">
<div id="thumImgs"><#if Validates.isNotEmpty(item.getSavePath())><img src="${item.getSavePath()}"></#if></div>
</td>
</tr>
</#if>
<#if item.getType() == "firstThumFile">
<!--初稿缩略图-->
<tr class="z-h40 z-bg-gray">
<td class="z-bold" colspan="2">${item.getName()}</td>
</tr>
<tr height="200px" valign="top">
<td colspan="2">
<#if order != null>
<div><img style="cursor: pointer;" src="${order.getDesignId()}-FristThumFile.png" onclick='showLargeImg(this)'></div>
</#if>
</td>
</tr>
</#if>
</#for>
<!--客服留言-->
<#if Validates.isNotEmptyBlank(order.getServicesMessage())>
<tr class="z-h40 z-bg-gray">
<td class="z-bold" colspan="2">客服留言</td>
</tr>
<tr class="z-h80">
<td colspan="2">
<textarea id="servicesMessage" name="servicesMessage" class="z-textarea z-w100p z-h80 ${zmr_color_class}">${order.getServicesMessage()}</textarea>
</td>
</tr>
</#if>
</table>