templatePreview.zml 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477
  1. ${request.getValidateScript()}
  2. ${Mydome()}
  3. <script>
  4. Z.onload(function()
  5. {//定义搜索框
  6. if (${display})
  7. Z("#templateTab li:nth-child(1)").click();
  8. else
  9. Z("#templateTab li:nth-child(2)").click();
  10. })
  11. function doSubmit(form)
  12. {
  13. if (!validateForm(form))
  14. return;
  15. var ajax = new Z.Ajax();
  16. ajax.setClassName("TemplatePreviewPresenter");
  17. ajax.setMethodName("doTemplateReplaceParam");
  18. ajax.setParamForm(form);
  19. ajax.setSuccess(function(){
  20. Z("#templateTab li:nth-child(1)").click();
  21. Z.tips("生成完成");
  22. });
  23. ajax.setFailureAlert();
  24. ajax.setLoading(form.submit, "<i class='z-ico z-loading'></i>正在生成...", {disabled:true});
  25. ajax.execute();
  26. }
  27. function doUploadOcrImage(data, suffix, fun)
  28. {//上传待识别图片
  29. var ajax = new Z.Ajax();
  30. ajax.setClassName("TemplatePreviewPresenter");
  31. ajax.setMethodName("doUploadOcrImage");
  32. ajax.addParam("data", data);
  33. ajax.addParam("suffix", suffix);
  34. ajax.setSuccess(function(){
  35. Z("#ocrText").val(ajax.responseText);
  36. if(typeof fun == "function")fun();
  37. });
  38. ajax.setFailure(function(){Z.alert(ajax.responseText);});
  39. ajax.setLoading(document, true);
  40. ajax.execute();
  41. }
  42. function doSaveOcrText(ocrText)
  43. {//保存识别文本
  44. var ajax = new Z.Ajax();
  45. ajax.setClassName("TemplatePreviewPresenter");
  46. ajax.setMethodName("doSaveOcrText");
  47. ajax.addParam("ocrText", ocrText);
  48. ajax.addParam("designId", '${order.getDesignId()}');
  49. ajax.setSuccess(function(){});
  50. ajax.setFailure(function(){Z.alert(ajax.responseText);});
  51. ajax.setLoading(document, true);
  52. ajax.execute();
  53. }
  54. function doDialog()
  55. {
  56. var dialog = new Z.Dialog();
  57. dialog.title = "截图(截屏后粘贴(CTRL+V)到输入框中)";
  58. dialog.url = "/copyImage.htm";
  59. dialog.width = 800;
  60. dialog.height = 400;
  61. dialog.execute();
  62. }
  63. function doTransforImage(type,data)
  64. {//图片转base64
  65. if (data.files && data.files[0])
  66. {//1.判断input标签的file是否存在
  67. var size = data.files[0].size;
  68. if(size/1024/1024 >2)
  69. {//检测图片大小
  70. alert("图片大小不能超过2M");
  71. return;
  72. }
  73. var reader = new FileReader();//2.实例化一个FileReader()接口
  74. reader.readAsDataURL(data.files[0]);//3.通过readAsDataURL()方法读取文件,将图片内嵌在网页之中
  75. reader.onload = function(evt)
  76. {//4.调用FileReader()的onload事件
  77. var url = data.value;
  78. var suffix=url.substring(url.lastIndexOf(".") + 1, url.length);//后缀名
  79. doUploadOcrImage(evt.target.result, suffix);
  80. }
  81. }
  82. }
  83. function doForwardEdit(mediaId)
  84. {
  85. var dialog = new Z.Dialog();
  86. dialog.id = "doForwardEdit";
  87. dialog.title = "新开窗口跳转";
  88. dialog.url = "templateToEdit.htm?mediaId=" + mediaId;
  89. dialog.width = 10;
  90. dialog.height = 10;
  91. dialog.fixed = true;
  92. dialog.timeout = 1*1000; //自动关闭
  93. dialog.execute();
  94. }
  95. function doTemplateDelete(mediaId)
  96. {//删除用户模板
  97. if (Z.V.isEmpty(mediaId))
  98. {
  99. Z.alert("请选择模板");
  100. return;
  101. }
  102. Z.confirm("你确定要删除该模板吗?", function(){
  103. var ajax = new Z.Ajax();
  104. ajax.setClassName("TemplatePresenter");
  105. ajax.setMethodName("doTemplateDelete");
  106. ajax.addParam("mediaId", mediaId);
  107. ajax.addParam("designId", '${order.getDesignId()}');
  108. ajax.setFailureAlert();
  109. ajax.setSuccess(function(){
  110. Z("#sel_" + mediaId).remove();
  111. Z.tips("删除成功");
  112. });
  113. ajax.execute();
  114. });
  115. }
  116. function doTemplateOrderCreate(designId)
  117. {
  118. if (Z.V.isEmpty(designId))
  119. {
  120. Z.alert("订单号不存在,请检查");
  121. return;
  122. }
  123. var ajax = new Z.Ajax();
  124. ajax.setClassName("TemplatePreviewPresenter");
  125. ajax.setMethodName("doCreateOrderTemplate");
  126. ajax.addParam("designId", ${designId});
  127. ajax.addParam("createChannel", "platform_design");
  128. ajax.setFailureAlert();
  129. ajax.setSuccess(function()
  130. {
  131. var obj = Z.J.toObject(this.responseText);
  132. var mediaId = obj.mediaId;
  133. var designWidth = obj.designWidth;
  134. var designHeight = obj.designHeight;
  135. var printWidth = obj.printWidth;
  136. var printHeight = obj.printHeight;
  137. var printKs = obj.printKs;
  138. var printMs = obj.printMs;
  139. var bleedSize = obj.bleedSize;
  140. var orderIsCardType = obj.orderIsCardType;
  141. var newLink = "/zhiqimMediaEditor/mediaDesign.htm?";
  142. newLink += "mediaId=" + mediaId + "&"
  143. newLink += "designWidth=" + designWidth + "&"
  144. newLink += "designHeight=" + designHeight + "&"
  145. newLink += "printWidth=" + printWidth + "&"
  146. newLink += "printHeight=" + printHeight + "&";
  147. newLink += "bleedSize=" + bleedSize + "&";
  148. newLink += "orderIsCardType=" + orderIsCardType + "&";
  149. window.open(newLink);
  150. window.location.reload();
  151. });
  152. ajax.execute();
  153. }
  154. function doParseText(type)
  155. {
  156. var userText = Z("#userText").val();
  157. if (Z.V.isEmpty(userText))
  158. {
  159. Z.alert("请输入客户文本");
  160. return;
  161. }
  162. var ocrText = Z("#ocrText").val();
  163. var ajax = new Z.Ajax();
  164. ajax.setClassName("TemplatePreviewPresenter");
  165. ajax.setMethodName("doParseParamData");
  166. ajax.addParam("type", type);
  167. ajax.addParam("paramData", userText + ocrText);
  168. ajax.setFailureAlert();
  169. ajax.setSuccess(function(){
  170. var strs = Z.Jsons.toObject(this.responseText);
  171. if (strs != "")
  172. {
  173. var value = "";
  174. for(var i= 0; i< strs.length; i++)
  175. {
  176. value += strs[i] +"\n";
  177. }
  178. Z("#paramData").val(value);
  179. }
  180. });
  181. ajax.setLoading(document, true);
  182. ajax.execute();
  183. }
  184. /** 选择模板 **/
  185. function doSelectTemplate(mediaId)
  186. {
  187. if (Z("#nav_" + mediaId).hasClass("selected")) {
  188. Z.tips("已选择!");
  189. return;
  190. }
  191. var ajax = new Z.Ajax();
  192. ajax.setClassName("TemplatePreviewPresenter");
  193. ajax.setMethodName("doTemplateCacheAdd");
  194. ajax.addParam("mediaId", mediaId);
  195. ajax.addParam("designId", '${order.getDesignId()}');
  196. ajax.setFailureAlert();
  197. ajax.setSuccess(function(){Z("#nav_" + mediaId).addClass("selected");Z.tips("选择成功!");});
  198. ajax.execute();
  199. }
  200. /** 取消模板 **/
  201. function unSelectTemplate(mediaId)
  202. {
  203. if (!Z("#nav_" + mediaId).hasClass("selected")) {
  204. Z.tips("已取消!");
  205. return;
  206. }
  207. var ajax = new Z.Ajax();
  208. ajax.setClassName("TemplatePreviewPresenter");
  209. ajax.setMethodName("doTemplateCacheDelete");
  210. ajax.addParam("mediaId", mediaId);
  211. ajax.addParam("designId", '${order.getDesignId()}');
  212. ajax.setFailureAlert();
  213. ajax.setSuccess(function(){Z("#nav_" + mediaId).removeClass("selected");Z.tips("取消成功!");});
  214. ajax.execute();
  215. }
  216. function doTemplateTypeQuery(page)
  217. {//查询模板
  218. var keyword = Z("#searchinput").val() || "";
  219. var queryType = Z("#queryType").val();
  220. var sort = Z('#searchSort').val();
  221. var ajax = new Z.Ajax();
  222. ajax.setClassName("TemplatePreviewPresenter");
  223. ajax.setMethodName("doTemplateTypeQuery");
  224. ajax.addParam("page", page);
  225. ajax.addParam("designId", "${designId}");
  226. ajax.addParam("typeId", "${order.getTypeId()}");
  227. ajax.addParam("queryType", queryType);
  228. ajax.addParam("keyword", keyword);
  229. ajax.addParam("sort", sort);
  230. ajax.setCallback("templateResult");
  231. ajax.setLoading("templateResult");
  232. ajax.execute();
  233. }
  234. function doTemplateExistQuery()
  235. {//查询已选模板
  236. var ajax = new Z.Ajax();
  237. ajax.setClassName("TemplatePreviewPresenter");
  238. ajax.setMethodName("doTemplateExistQuery");
  239. ajax.addParam("designId", "${designId}");
  240. ajax.addParam("typeId", "${order.getTypeId()}");
  241. ajax.setCallback("templateResult");
  242. ajax.setLoading("templateResult");
  243. ajax.execute();
  244. }
  245. function doChangeTab(ele, queryType)
  246. {//切换选项
  247. Z(ele).addClass("z-active").siblings("li").removeClass("z-active");
  248. Z('#queryType').val(queryType);
  249. if(queryType==''){
  250. Z("#templateLinkSpan").show();
  251. }else{
  252. Z("#templateLinkSpan").hide();
  253. }
  254. if (!queryType)
  255. {
  256. doTemplateExistQuery();
  257. }
  258. else
  259. {
  260. doTemplateTypeQuery(1);
  261. }
  262. }
  263. function getTemplateLink()
  264. {//生成模板链接
  265. Z.copy(window.location.host+"/templateCustomerPreview.htm?designId=${designId}&typeId=${order.getTypeId()}");
  266. top.Z.tips("复制成功");
  267. }
  268. function doKeywordQuery(page)
  269. {//关键词搜索
  270. var queryType = Z("#queryType").val();
  271. Z('li[data-type="'+queryType+'"]').addClass("z-active").siblings("li").removeClass("z-active");
  272. doTemplateTypeQuery(page);
  273. }
  274. function doModifyIndustry()//修改行业
  275. {
  276. var designId = Z("#designId").text();
  277. if(Z.V.isEmpty(designId))
  278. {
  279. Z.alert("请选择一条订单");
  280. return;
  281. }
  282. var dialog = new Z.Dialog();
  283. dialog.title = "修改行业";
  284. dialog.url = "/modifyIndustry.htm?designId="+designId+"&flag=1";
  285. dialog.width = 500;
  286. dialog.height = 300;
  287. dialog.execute();
  288. }
  289. function doReFreshIndustryInfo()
  290. {
  291. var ajax = new Z.Ajax();
  292. ajax.setClassName("TemplatePreviewPresenter");
  293. ajax.setMethodName("doReFreshIndustryInfo");
  294. ajax.addParam("designId", "${designId}");
  295. ajax.setFailureAlert();
  296. ajax.setSuccess(function(){
  297. var obj = Z.J.toObject(this.responseText);
  298. Z("#industryName").html(obj);
  299. });
  300. ajax.execute();
  301. }
  302. </script>
  303. <style>
  304. body{height:100%;}
  305. /*图片展示区*/
  306. .container{min-height:auto;background-color:#ffffff;}
  307. .mainbody{height:100%;}
  308. .content{height:calc(100% - 40px);overflow-y:auto;}
  309. form[name="theForm"]{float:left;width:100%;}
  310. /* tab标签 */
  311. .svgTemplateList .itemCtrBar{left:0;top:0;}
  312. #svgTemplateWrap{height:calc(100% - 176px)}
  313. #templateTab{float:none;}
  314. /*内容盒子*/
  315. #svgTemplateWrap > section{height:calc(100% - 50px);background:#ffffff;border:1px solid #dcdcdc;border-top:none;}
  316. /*模板列表*/
  317. .svgTemplateList{width:100%;height:100%;column-count:4;}
  318. .svgTemplateList .svgTemplateItem{width:100%;height:100%;text-align:center;padding:5px;background:#fff;border:1px solid #ccc;overflow:auto; position: relative;margin-bottom: 15px;}
  319. .svgTemplateItem > .templateItemBtn{padding:10%;left:0;top:0;display:flex;justify-content:space-around;align-items:center;align-content:center;}
  320. .svgTemplateItem > .templateItemBtn .z-button{display:none;}
  321. .svgTemplateItem > .templateItemBtn:hover{background:rgba(0,0,0,.2);}
  322. .svgTemplateItem > .templateItemBtn:hover .z-button{display:inline-block;}
  323. .svgTemplateItem .itemSelectedSign{display:none;width:0;height:0;right:5px;bottom:5px;border-width:30px;border-style:solid;border-color:transparent #28a3ef #28a3ef transparent;}
  324. .svgTemplateItem .itemSelectedSign > span{white-space:nowrap;left:-5px;color:#fff;top:5px;}
  325. .svgTemplateItem.selected .itemSelectedSign{display:block;}
  326. .showSvg {pointer-events:none;display: block;margin-top:2px;}
  327. .showSvg:first-child{margin-top:0;}
  328. .showSvg > svg {width:100%;height: auto;}
  329. /** 选中样式 **/
  330. .svgTemplateItem.selected{}
  331. </style>
  332. ${zhiqim_manager_breadcrumb_parent("/designOrder.htm", "设计订单", "订单模板设计")}
  333. <div class="content">
  334. ${Scripts.src("/zinc/js/global_2019010801.js")}
  335. ${Scripts.src("/zinc/js/zhiqim_search_auto_list.js")}
  336. <div class="z-tabnav-main z-blue z-mg-b10" style=" width: 478px;height: 44px; float:none">
  337. <nav>
  338. <div class="z-float-left z-mg10">
  339. <button name="button" class="z-button z-mg-r20" onclick="history.go(-1)"><i class="z-font z-return"></i>返回列表</button>
  340. </div>
  341. </nav>
  342. </div>
  343. <#-- 导航栏 -->
  344. <div class="boxs">
  345. <div class="bos z-blue">
  346. <nav>
  347. <div class="bos_son z-mg10 z-lh30">
  348. <span class=" z-mg-r10">订单号:<span id="designId" >${order.getDesignId()}</span></span></br>
  349. <span class="my_spans z-mg-r10">行业:<span id="industryName">${Global.get(DesignIndustryCache.class).getIndustryName(order.getIndustryId())}</span>
  350. <button style="margin: 0;position: absolute;top:40px;right:22px;" type="button "class="z-button ${zmr_color_class} z-mg-r6" onclick="doModifyIndustry();"><i class="z-font z-modify"></i>修改行业</button>
  351. </span>
  352. <span class=" z-mg-r10">产品名称:${order.getOrderText()}</span>
  353. <#if ZmrPathRule.check(request, "openWangWang")><span class="mybtn_style_two z-mg-r10"><button class="z-button z-mg-r3 ${zmr_color_class}" onclick="Global.openWangWangParam('${order.getBuyerNick()}');"><img src="/zinc/images/wangwang.png">旺旺联系</button></span></#if>
  354. <#if ZmrPathRule.check(request, "openQQ")><span class="mybtn_style_one z-mg-r10"><button class="z-button z-mg-r3 ${zmr_color_class}" onclick="Global.openQQParam('${order.getUserQq()}');"><img src="/zinc/images/qq.png">QQ联系</button></span></#if>
  355. </div>
  356. </nav>
  357. </div>
  358. <#-- 替换参数 -->
  359. <form name="theForm" action="javascript:void(0);" onsubmit="doSubmit(this);">
  360. <input name="paramCat" type="hidden" value="${order.getTypeId()}">
  361. <input name="designId" type="hidden" value="${order.getDesignId()}">
  362. <input name="typeId" type="hidden" value="${order.getTypeId()}">
  363. <input name="industryId" type="hidden" value="${order.getIndustryId()}">
  364. <div class="bos_two">
  365. <div class="bos_two_one">
  366. <p class="text"> 客户文本</p>
  367. <textarea name="userText" id="userText" class="my-textarea">${order.getUserText()}</textarea>
  368. </div>
  369. <!-- <i class="z-arrow z-right z-px8"></i></td>-->
  370. <div class="bos_two_one my_bos_two_one">
  371. <p class="text my_text">文本识别</p>
  372. <div class="btn" style="margin-bottom: 5px;">
  373. <button id="qrcodeId" type="button" class="z-button z-blue z-w80 z-pointer" style="position:absolute;pointer-events:none;">选择图片</button>
  374. <input style="width:80px; height:25px; opacity:0;" type="file" accept="image/png,image/jpeg,image/jpg" onchange="doTransforImage('qrcode', this);" single>
  375. &nbsp;&nbsp;
  376. <button type="button" class="z-button z-blue" onclick="doDialog()">截图粘贴</button>
  377. </div>
  378. <textarea name="ocrText" id="ocrText" class="my-textarea" onchange="doSaveOcrText(this.value)">${ocrText}</textarea>
  379. </div>
  380. <div class="bos_two_one my_bos_two_one">
  381. <p style="width: 100%; height:12px;"></p>
  382. <p class="text my_text">文本分析</p>
  383. <div class="btn" style="margin-bottom: 5px;">
  384. <button type="button" onclick="doParseText(1)" class="z-button z-blue">智能分析</button> &nbsp;&nbsp;
  385. <button type="button" onclick="doParseText(2)" class="z-button z-blue">普通分析</button>
  386. </div>
  387. <textarea name="paramData" id="paramData" class="my-textarea" >${paramData}</textarea>
  388. </div>
  389. <button name="submit" type="sumbit" class="my_btn z-button z-blue">
  390. 生<br>
  391. 成<br>
  392. 模<br>
  393. 板<br>
  394. </button>
  395. </div>
  396. </form>
  397. </div>
  398. <#-- 导航栏 -->
  399. <div class="boxs_two">
  400. <div id="svgTemplateWrap" style="height: 45px;" >
  401. <div id="templateTab" style="height: 45px;" class="boxs_sons z-tabnav-main z-blue">
  402. <input id="queryType" name="queryType" type="hidden" value="">
  403. <nav>
  404. <ul style="border: 1px solid #dcdcdc; height: 45px;width:796px;border-right:none;">
  405. <li onclick="doChangeTab(this, '');" data-type="">已选模板</li>
  406. <li onclick="doChangeTab(this, 'OLD');" data-type="OLD">客户历史模板</li>
  407. <li onclick="doChangeTab(this, 'RECOMMEND');" data-type="RECOMMEND">被分享模板</li>
  408. <li onclick="doChangeTab(this, 'COLLECT');" data-type="COLLECT">收藏模板</li>
  409. <li onclick="doChangeTab(this, 'KEYWORD');" data-type="KEYWORD">热搜模板</li>
  410. </ul>
  411. <span style="margin:0;height: 35px;" id="templateLinkSpan" name="templateLinkSpan">
  412. <button class="z-button z-purple" style="margin-bottom: 6px; height: 100%;margin-left: 20px;" onclick="getTemplateLink();">生成模板链接</button>
  413. </span>
  414. <span style="margin:0; height: 35px" class="my_z-float-rights">
  415. <button style="margin-left: 16px;" name="button" class="z-button ${zmr_color_class} mystyle" onclick="doTemplateOrderCreate('${order.getDesignId()}')" ><i class="z-font z-add"></i>创建订单模板</button>
  416. </span>
  417. </nav>
  418. </div>
  419. </div>
  420. <!-- <div class="boxs_svg" > -->
  421. <div style="margin-top: 20px;" id="templateResult" class="mystyle_svg z-active z-text-center"></div>
  422. <!-- </div> -->
  423. </div>
  424. ${zhiqim_manager_content_end()}
  425. <#-- 联系旺旺&联系QQ弹窗框 -->
  426. <iframe id="openFrm" class="z-hide" src="about:blank"></iframe>