config.zml 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921
  1. <#---------------------------------------------------->
  2. <#-- 以下为变量定义 ------------------------>
  3. <#---------------------------------------------------->
  4. <#--脚注标注-->
  5. <#var zmr_copyname="2021 秒绘科技"/>
  6. <#var zmr_copyright="Copyright&nbsp;&nbsp;&copy;&nbsp;"+zmr_copyname+"&nbsp;All&nbsp;Rights&nbsp;Reserved"/>
  7. ${Styles.src(zhiqim.css)}
  8. ${Scripts.src(zhiqim.js)}
  9. ${Styles.src(context.getRootPath("/zinc/css/yangcai_question_main_v1.4.0R2018031701.css"))}
  10. ${Scripts.src(context.getRootPath("/zinc/css/zhiqim_search_auto_list_v1.4.0R2018031701.js"))}
  11. <#--属性定义-->
  12. <#var name="设计运营后台"/>
  13. <#var version="V1.0"/>
  14. <#var zhiqim_uploadlarge.js = new ZmrCdnRuntime(context, "/service/res/zhiqim_upload_large_v1.5.0.r2018111001.js")/>
  15. <#--刷新左边区域自定义块-->
  16. <#function zhiqim_manager_topnav_left_defined()>
  17. <script>
  18. Z.onload(function()
  19. {
  20. });
  21. </script>
  22. </#function>
  23. <#-- 重写模板编辑版本号-->
  24. <#var media_editor_js_version="v1.5.0_r2020121101"/>
  25. <#-- 重写模板定稿、预览-->
  26. <#function zhqim_media_edit_print(mediaId)>
  27. <script>
  28. //提交初稿设计订单
  29. function doSubmitDraftOrderTempalte(mediaId)
  30. {
  31. var orderIsDzmpCardType = '${orderIsCardType}';
  32. if (orderIsDzmpCardType == 'true') {
  33. // 保存名片关联信息
  34. doUpdateCardInfo('${cardId}','${designId}', false);
  35. }
  36. // 保存后的回调方法
  37. function callbackAfterSave(mediaId)
  38. {
  39. var ajax2 = new Z.Ajax();
  40. ajax2.setClassName("TemplateOrderPresenter");
  41. ajax2.setMethodName("doSubmitDraftOrderTempalte");
  42. ajax2.addParam("mediaId", mediaId);
  43. ajax2.setFailure(function(){
  44. setTimeout(function()
  45. {
  46. doDraftOrder_ajaxLoading.close()
  47. Z.failure(ajax2.responseText);
  48. },400);
  49. });
  50. ajax2.setSuccess(function(){
  51. setTimeout(function()
  52. {
  53. doDraftOrder_ajaxLoading.close();
  54. Z.success("初稿成功");
  55. },400);
  56. });
  57. ajax2.execute();
  58. }
  59. // 1:定义加载框
  60. window.doDraftOrder_ajaxLoading = Z.loading({text:"正在提交初稿文件,请稍后...", shadow:true , width:400});
  61. if (hasSvg2pdfAPI)
  62. {
  63. doSubmitDraftLocalSave(callbackAfterSave, mediaId);
  64. }
  65. else
  66. {
  67. doAutoSaveMedia(callbackAfterSave, mediaId, true);
  68. }
  69. }
  70. //完成定稿,预览设计稿
  71. function doPreviewFinalOrderTempalte(mediaId)
  72. {
  73. //生成PDF文件并预览展示,保存后的回调方法
  74. function callbackAfterSave(mediaId)
  75. {
  76. var doHandle = (hasSvg2pdfAPI) ? 0 : 1;
  77. var ajax = new Z.Ajax();
  78. ajax.setClassName("TemplateOrderPresenter");
  79. ajax.setMethodName("doPreviewFinalOrderTempalte");
  80. ajax.addParam("mediaId", mediaId);
  81. ajax.addParam("doHandle", doHandle);
  82. ajax.setFailure(function(){
  83. previewFinal_ajaxLoading.close();
  84. Z.failure(ajax.responseText);
  85. });
  86. ajax.setSuccess(function(){
  87. doPreviewFinalOrderDialog(mediaId);
  88. });
  89. ajax.execute();
  90. }
  91. //检测订单模板的版面数
  92. var ajax = new Z.Ajax();
  93. ajax.setClassName("TemplateOrderPresenter");
  94. ajax.setMethodName("doCheckTempatePage");
  95. ajax.addParam("mediaId", mediaId);
  96. ajax.setFailure(function(){
  97. Z.failure(ajax.responseText);
  98. });
  99. ajax.setSuccess(function()
  100. {
  101. //加载框
  102. window.previewFinal_ajaxLoading = Z.loading({shadow: true, text:"定稿预览处理中...", width:200});
  103. if (hasSvg2pdfAPI)
  104. {
  105. callbackAfterSave(mediaId);
  106. }
  107. else
  108. {
  109. doAutoSaveMedia(callbackAfterSave, mediaId, true);
  110. }
  111. });
  112. ajax.setLoading(document, true);
  113. ajax.execute();
  114. }
  115. //预览定稿展示
  116. function doPreviewFinalOrderDialog(mediaId)
  117. {
  118. if (hasSvg2pdfAPI)
  119. {
  120. ServiceAPI.mediaId = mediaId;
  121. doPreviewFileLocalSave(previewFinal_ajaxLoading);
  122. }
  123. else
  124. {
  125. doPreviewDialogQuery(mediaId);
  126. }
  127. }
  128. function previewPdfLocal()
  129. {//重写pdfMaker,预览pdf方法
  130. // ajax 查询订单金额
  131. var amount = 0;
  132. var ajax = new Z.Ajax();
  133. ajax.setSync();
  134. ajax.setClassName("TemplateOrderPresenter");
  135. ajax.setMethodName("doQueryOrderAmount");
  136. ajax.addParam("mediaId", media.canvas.mediaId);
  137. ajax.setFailure(function(){
  138. previewFinal_ajaxLoading.close();
  139. });
  140. ajax.setSuccess(function(){
  141. amount = parseFloat(this.responseText || 0);
  142. });
  143. ajax.execute();
  144. if (amount <= 0)
  145. return doClearErrorLocalSave("订单金额查询有误!");
  146. previewFinal_ajaxLoading.close();
  147. var mediaId = ServiceAPI.mediaId;
  148. var height = Z.D.clientHeight() - 200;
  149. var html = '<div id="previewId" class="z-text-center" style="height:'+height+'px">';
  150. //html += ' <object type="text/html" width="100%" height="100%" data="'+objUrl+'"></object>';
  151. //html += ' <iframe width="100%" height="100%" src="'+objUrl.+'"></iframe>';
  152. //html += '<embed src="'+objUrl+'" type="application/pdf" width="100%" height="100%">';
  153. //html += '<embed src="'+objUrl+'" type="text/html" width="100%" height="100%">';
  154. //html += ' <object type="application/pdf" width="100%" height="100%" data="'+objUrl+'"></object>';
  155. html += '</div>';
  156. html += '<div class="z-absolute z-w100p z-h60 z-text-center z-bg-gray z-pd10" style="bottom:0;left:0">';
  157. html += ' <button id="save" type="button" class="z-button z-large z-w120 z-cyan"';
  158. html += 'onclick="confirmSubmitFinalOrderTempalte('+mediaId+','+amount+')">完成定稿</button>&nbsp;';
  159. html += ' <button type="button" class="z-button z-large z-mg-l10" onclick="previewPdfDialogLocal.close();">关闭</button>';
  160. html += '</div>';
  161. top.previewPdfDialogLocal = new Z.Dialog();
  162. previewPdfDialogLocal.title = "预览定稿文件";
  163. previewPdfDialogLocal.text = html;
  164. previewPdfDialogLocal.width = parseInt(Z.D.clientWidth()/2);
  165. previewPdfDialogLocal.height = parseInt(height + 60);
  166. previewPdfDialogLocal.fixed = true;
  167. previewPdfDialogLocal.execute();
  168. // 重写弹窗关闭方法
  169. var closeFun = previewPdfDialogLocal.close;
  170. previewPdfDialogLocal.close = function()
  171. {
  172. closeFun.call(previewPdfDialogLocal);
  173. previewPdfDialogLocal = null;
  174. doClearPreviewLocalSave();
  175. }
  176. previewPdfDialogLocal.$title.find(".z-font.z-error").hide();
  177. Z('<i class="z-font z-error"></i>').appendTo(previewPdfDialogLocal.$title).on("click",previewPdfDialogLocal.close);
  178. // pdfJs显示效果
  179. pdfjsLib.renderAllFromData({node:"#previewId",scale:300/72},ServiceAPI.pdfFinaly.result).then(function()
  180. {
  181. // 样式校准
  182. var previewWidth = Z.D.id("previewId").getBoundingClientRect().width - 30;
  183. var $$canvas = Z("#previewId canvas");
  184. $$canvas.each(function($canvas)
  185. {
  186. var canvasWidth = $canvas.width;
  187. if (previewWidth > canvasWidth)
  188. return;
  189. var canvasHeight = $canvas.height;
  190. $canvas.style.width = previewWidth + "px";
  191. $canvas.style.height = previewWidth/canvasWidth*canvasHeight + "px";
  192. });
  193. });
  194. }
  195. //定稿预览显示
  196. function doPreviewDialogQuery(mediaId)
  197. {
  198. //ajax查询处理状态
  199. function doQueryPreviewProgressing(mediaId)
  200. {
  201. var ajax = new Z.Ajax();
  202. ajax.setClassName("TemplateOrderPresenter");
  203. ajax.setMethodName("doQueryPreviewFinalOrderTempalteProgressing");
  204. ajax.addParam("mediaId", mediaId);
  205. ajax.setFailure(function(){
  206. previewFinal_ajaxLoading.close();
  207. Z.failure(ajax.responseText);
  208. });
  209. ajax.setSuccess(function(){
  210. var obj = Z.J.toObject(ajax.responseText);
  211. var mediaHandlePdfModel = obj.mediaHandlePdfModel;
  212. if (mediaHandlePdfModel)
  213. {
  214. console.log("预览处理状态:"+mediaHandlePdfModel.handleStatus)
  215. if (mediaHandlePdfModel.handleStatus == 0 || mediaHandlePdfModel.handleStatus == 1)
  216. {// 待处理 // 处理中
  217. setTimeout(doQueryPreviewProgressing, 5000, mediaId);
  218. }
  219. else if (mediaHandlePdfModel.handleStatus == 3)
  220. {//处理失败
  221. previewFinal_ajaxLoading.close();
  222. Z.failure(mediaHandlePdfModel.errorMsg);
  223. }
  224. else if (mediaHandlePdfModel.handleStatus == 2)
  225. {// 处理完成
  226. previewFinal_ajaxLoading.close();
  227. var height = Z.D.clientHeight() - 200;
  228. var amount = obj.amount;
  229. var html = '<div id="previewId" style="height:'+height+'px">';
  230. html += window.pdfjsLib?'':'<object type="text/html" width="100%" height="100%" data="'+obj.url+'"></object>';
  231. html += '</div>';
  232. html += '<div class="z-absolute z-w100p z-h60 z-text-center z-bg-gray z-pd10" style="bottom:0;left:0">';
  233. html += ' <button id="save" type="button" class="z-button z-large z-w120 z-cyan" onclick="confirmSubmitFinalOrderTempalte('+mediaId+','+amount+')">完成定稿</button>&nbsp;';
  234. html += ' <button type="button" class="z-button z-large z-mg-l10" onclick="Z.Dialog.close(location.hash);">关闭</button>';
  235. html += '</div>';
  236. var dialog = new Z.Dialog();
  237. dialog.title = "预览定稿文件";
  238. dialog.text = html;
  239. dialog.width = parseInt(Z.D.clientWidth()/2);
  240. dialog.height = parseInt(height + 60);
  241. dialog.fixed = true;
  242. dialog.execute();
  243. window.pdfjsLib && pdfjsLib.renderAll("#previewId", obj.url);
  244. }
  245. else
  246. {
  247. previewFinal_ajaxLoading.close();
  248. console.log("定稿预览收到异常处理状态")
  249. }
  250. }
  251. else
  252. {//查不到处理对象
  253. previewFinal_ajaxLoading.close();
  254. console.log("定稿预览找不到处理对象")
  255. Z.failure("预览处理失败");
  256. }
  257. });
  258. ajax.execute();
  259. }
  260. //延时处理 查询
  261. setTimeout(doQueryPreviewProgressing, 500, mediaId);
  262. }
  263. //确认定稿操作
  264. function confirmSubmitFinalOrderTempalte(mediaId, amount)
  265. {
  266. //提交定稿确认弹窗
  267. var tips = "确定完成对稿吗?定稿后该订单模板不再支持修改!";
  268. if (amount >= 10000)
  269. {
  270. tips="此订单金额较大,请仔细核对无误再定稿,以免造成售后损失。定稿后该订单模板不再支持修改!"
  271. }
  272. Z.confirm(tips, function()
  273. {
  274. var ajax = new Z.Ajax();
  275. ajax.setClassName("TemplateOrderPresenter");
  276. ajax.setMethodName("doCheckTempatePage");
  277. ajax.addParam("mediaId", mediaId);
  278. ajax.setFailure(function(){
  279. Z.failure(ajax.responseText);
  280. });
  281. ajax.setSuccess(function()
  282. {
  283. //加载筐
  284. window.submitFinal_ajaxLoading = Z.loading({shadow: true, text:"定稿处理中...", width:180});
  285. var doHandle = (hasSvg2pdfAPI) ? 0 : 1;
  286. var ajax2 = new Z.Ajax();
  287. ajax2.setClassName("TemplateOrderPresenter");
  288. ajax2.setMethodName("doSubmitFinalOrderTempalte");
  289. ajax2.addParam("mediaId", mediaId);
  290. ajax2.addParam("doHandle", doHandle);
  291. ajax2.setFailure(function(){
  292. window.submitFinal_ajaxLoading.close();
  293. Z.failure(ajax2.responseText);
  294. });
  295. ajax2.setSuccess(function()
  296. {
  297. //直接使用预览的pdf文件来定稿
  298. var obj = Z.J.toObject(this.responseText ? this.responseText : "{}");
  299. if(obj.success == "true")
  300. {
  301. submitFinal_ajaxLoading.close();
  302. Z.success("定稿完成", function(){Z.L.reload()});
  303. }
  304. else
  305. {
  306. //重新生成pdf文件来定稿
  307. if (hasSvg2pdfAPI)
  308. {
  309. doSubmitFinalLocalSave(this.responseText);
  310. }
  311. else
  312. {
  313. doSubmitFinalAjaxSave(mediaId);
  314. }
  315. }
  316. });
  317. ajax2.setLoading(document, true);
  318. ajax2.execute();
  319. });
  320. ajax.setLoading("save", '正在提交', {disabled:true});
  321. ajax.execute();
  322. });
  323. }
  324. //客户端提交定稿,生成PDF
  325. function doSubmitFinalLocalSave(responseText)
  326. {
  327. var fileData = Z.J.toObject(responseText);
  328. // 上传完成,更新数据
  329. var callback = function()
  330. {
  331. submitFinal_ajaxLoading.close();
  332. Z.success("定稿完成", function(){Z.L.reload()});
  333. }
  334. //上传pdf
  335. doUploadPdfLocal(fileData.fileName, fileData.uploadPath, callback, {
  336. className: "TemplateOrderPresenter",
  337. methodName: "doSubmitFinalLocalSave",
  338. mediaId: mediaId, // mediaID
  339. mediaUrl: ServiceAPI.imgPath, // 缩略图
  340. pdfPath: fileData.pdfPath, // pdf成品
  341. });
  342. }
  343. //ajax提交定稿,生成PDF
  344. function doSubmitFinalAjaxSave(mediaId)
  345. {//发送异步处理成功
  346. function queryProgressing(mediaId)
  347. {
  348. var ajax = new Z.Ajax();
  349. ajax.setClassName("TemplateOrderPresenter");
  350. ajax.setMethodName("doQueryFinalOrderTemplateProgressing");
  351. ajax.addParam("mediaId", mediaId);
  352. ajax.setFailure(function(){
  353. submitFinal_ajaxLoading.close();
  354. Z.failure(ajax.responseText);
  355. });
  356. ajax.setSuccess(function()
  357. {
  358. var obj = Z.J.toObject(ajax.responseText);
  359. var mediaHandlePdfModel = obj.mediaHandlePdfModel;
  360. if (mediaHandlePdfModel)
  361. {
  362. var handleStatus = mediaHandlePdfModel.handleStatus;
  363. console.log("定稿处理状态:"+handleStatus);
  364. if (handleStatus == 0 || handleStatus == 1)
  365. {//待处理 处理中
  366. setTimeout(queryProgressing, 500, mediaId)
  367. }
  368. else if (handleStatus == 2)
  369. {//处理完成
  370. submitFinal_ajaxLoading.close();
  371. Z.success("定稿完成", function(){Z.L.reload()});
  372. }
  373. else if (handleStatus == 3)
  374. {//处理失败
  375. submitFinajaxaxLoading.close();
  376. Z.failure(mediaHandlePdfModel.errorMsg);
  377. }
  378. else
  379. {
  380. submitFinal_ajaxLoading.close();
  381. console.log("定稿预览收到异常处理状态")
  382. }
  383. }
  384. else
  385. {//查不到处理对象
  386. submitFinal_ajaxLoading.close();
  387. console.log("定稿处理找不到处理对象");
  388. Z.failure("定稿处理失败");
  389. }
  390. });
  391. ajax.execute();
  392. }
  393. setTimeout(queryProgressing, 500, mediaId);
  394. }
  395. </script>
  396. <#if !isTemplateEdit>
  397. <style>
  398. .topnav .topToolBar .topToolRight{flex-basis: 480px;}
  399. .topnav .topToolRight #draftBtn{background-color:#009049;}
  400. .topnav .topToolRight #finalBtn{background-color:#de1e08;}
  401. </style>
  402. <div id="draftBtn" class="nav topTool" onclick="doSubmitDraftOrderTempalte('${mediaId}');">提交初稿</div>
  403. <div id="finalBtn" class="nav topTool" onclick="doPreviewFinalOrderTempalteCheckLabel('${mediaId}');">完成定稿</div>
  404. </#if>
  405. </#function>
  406. <#-- 重写模板左边订单选项-->
  407. <#function zhqim_media_edit_order_item_defined(mediaId)>
  408. <script>
  409. function openWangWang(buyerNick)
  410. {//打开旺旺
  411. Z("#openFrm").attr("src","http://amos.alicdn.com/msg.aw?v=2&uid="+buyerNick+"&site=cntaobao&s=2&charset=utz-8");
  412. }
  413. function openQQ(userQq)
  414. {//打开QQ
  415. if (!Z.V.isInteger(userQq))
  416. {
  417. Z.alert("客户未提供QQ号,请旺旺联系");
  418. return;
  419. }
  420. Z("#openFrm").attr("src","tencent://message/?uin="+userQq);
  421. }
  422. function doTemplateOrderEdit(mediaId)
  423. {//编辑
  424. Z.l.href ="/zhiqimMediaEditor/mediaDesign.htm?mediaId=" + mediaId;
  425. }
  426. function doTemplateOrderDelete(mediaId, designId)
  427. {//删除
  428. if (Z.V.isEmpty(mediaId))
  429. {
  430. Z.alert("请选择模板");
  431. return;
  432. }
  433. Z.confirm("你确定要删除该模板吗?", function(){
  434. var ajax = new Z.Ajax();
  435. ajax.setClassName("TemplatePresenter");
  436. ajax.setMethodName("doTemplateDelete");
  437. ajax.addParam("mediaId", mediaId);
  438. ajax.addParam("designId", designId);
  439. ajax.setFailureAlert();
  440. ajax.setSuccess(function(){
  441. Z.success("删除成功", function(){Z.L.reload();});
  442. });
  443. ajax.execute();
  444. });
  445. }
  446. function doTabnavCss(value)
  447. {
  448. if (value == 1)
  449. {
  450. Z("#tabnav_user").addClass("z-active");
  451. Z("#tabnav_template").removeClass("z-active");
  452. Z("#tabnav_user_content").addClass("z-active");
  453. Z("#tabnav_template_content").removeClass("z-active");
  454. }
  455. else if (value == 2)
  456. {
  457. Z("#tabnav_user").removeClass("z-active");
  458. Z("#tabnav_template").addClass("z-active");
  459. Z("#tabnav_user_content").removeClass("z-active");
  460. Z("#tabnav_template_content").addClass("z-active");
  461. }
  462. else if (value == 3)
  463. {
  464. Z("#tabnav_userText").addClass("z-active");
  465. Z("#tabnav_paramText").removeClass("z-active");
  466. Z("#tabnav_userText_content").addClass("z-active");
  467. Z("#tabnav_paramText_content").removeClass("z-active");
  468. }
  469. else if (value == 4)
  470. {
  471. Z("#tabnav_userText").removeClass("z-active");
  472. Z("#tabnav_paramText").addClass("z-active");
  473. Z("#tabnav_userText_content").removeClass("z-active");
  474. Z("#tabnav_paramText_content").addClass("z-active");
  475. }
  476. }
  477. function doQueryOrderInfo(mediaId)
  478. {//订单API
  479. var ajax = new Z.Ajax();
  480. ajax.setClassName("TemplateOrderPresenter");
  481. ajax.setMethodName("doTemplateOrderQuery");
  482. ajax.addParam("mediaId", mediaId);
  483. ajax.setCallback("side_order");
  484. ajax.setLoading("side_order");
  485. ajax.execute();
  486. }
  487. function doCopyOtherPage(mediaSrcId, bid, mediaId)
  488. {//复制其它页
  489. Z.confirm("你确定要复制该版面?", function()
  490. {
  491. // 新建 coverMaterial,字符串传参
  492. var lastBgObj = media.bgList[media.bgList.length - 1];
  493. var newBid = lastBgObj.bid + 1;
  494. var bgObj = new Z.Bg();
  495. bgObj.bid = newBid;
  496. media.bgList.push(bgObj);
  497. var newCMList = setCoverMaterial(bgObj, media.canvas.widthMm, media.canvas.heightMm);
  498. // ajax调用
  499. var ajax = new Z.Ajax();
  500. ajax.setClassName("MediaPresenter");
  501. ajax.setMethodName("doCopyOtherPage");
  502. ajax.addParam("mediaSrcId", mediaSrcId);
  503. ajax.addParam("bid", bid);
  504. ajax.addParam("newBid", newBid);
  505. ajax.addParam("mediaId", mediaId);
  506. ajax.addParam("coverMaterialList", Z.AR.toString(newCMList));
  507. ajax.setFailure(media.bgList.pop);
  508. ajax.setFailureAlert();
  509. ajax.setSuccess(function()
  510. {
  511. //定义 media
  512. var newMedia = Z.J.toObject(this.responseText);
  513. media = new Z.Media({canvas: newMedia.canvas, bgList: newMedia.bgList, materialList: newMedia.materialList, coverMaterialList: newMedia.coverMaterialList});
  514. //刷新画布
  515. loadCanvas();
  516. //刷新版面
  517. refreshPageList();
  518. Z.tips("复制成功");
  519. });
  520. ajax.setLoading(document);
  521. ajax.execute();
  522. });
  523. }
  524. function doDownFile(attaId)
  525. {//下载
  526. Z.l.href ="/templateDownload.htm?attaId=" + attaId + "&type=orderFile";
  527. }
  528. //标签选择客户类型
  529. function doSelectConsumerType(flag){
  530. Z("#consumerType_"+flag).addClass("z-blue").siblings("button").removeClass("z-blue");
  531. }
  532. //通过关键词查主行业
  533. function doQueryIndustryByKey(){
  534. var industryKey=Z("#industryKey").val();
  535. var labelOid = Z("#labelOid").val();
  536. var unmatchkey=Z("#unmatchkey").val();
  537. var ajax = new Z.Ajax();
  538. ajax.setClassName("TemplateOrderPresenter");
  539. ajax.setMethodName("doQueryIndustryByKey");
  540. ajax.addParam("industryKey",industryKey);
  541. ajax.addParam("labelOid",labelOid);
  542. ajax.addParam("unmatchkey",unmatchkey);
  543. ajax.setFailureAlert();
  544. ajax.setSuccess(function(){
  545. var map=Z.J.toObject(this.responseText);
  546. var industrys=map.industrys;
  547. var newUnmatchkey=map.unmatchkey;
  548. var htmlstr="";
  549. Z.each(industrys, function(industry, i){
  550. htmlstr+='<button id="industry_'+industry.industryId+'" type="button" class="z-button z-mg3 main-industry" value="'+industry.industryId+'" onclick="doQueryIndustryLabel('+industry.industryId+')">'+industry.industryName+'</button>';
  551. });
  552. Z("#mainIndustry").html(htmlstr);
  553. Z("#subIndustry").html("");
  554. Z("#applicationScenario").html("");
  555. Z("#designStyle").html("");
  556. Z("#unmatchkey").val(newUnmatchkey);
  557. // 推荐行业页面元素遍历拼接
  558. var recommendIndHtml = "";
  559. var recommendIndustrys = map.recommendIndustryList;
  560. Z.each(recommendIndustrys, function(industry, i){
  561. recommendIndHtml += '<button id="recommend_industry_'+industry.industryId+'" type="button" class="z-button z-mg3 recommend-industry" value="'+industry.industryId+'" onclick="doQueryIndustryLabel('+industry.industryId+', 1)">'+industry.industryName+'</button>';
  562. });
  563. Z("#recommendIndustry").html(recommendIndHtml);
  564. });
  565. ajax.setLoading("queryIndustryByKey", '<i class="z-font z-return"></i>正在处理',{disabled:true});
  566. ajax.execute();
  567. }
  568. function doQueryOrderLabel(mediaId){
  569. var ajax = new Z.Ajax();
  570. ajax.setClassName("TemplateOrderPresenter");
  571. ajax.setMethodName("doTemplateOrderLabelQuery");
  572. ajax.addParam("mediaId", mediaId);
  573. ajax.setCallback("side_label");
  574. ajax.setLoading("side_label");
  575. ajax.execute();
  576. }
  577. //查询标签
  578. function doQueryIndustryLabel(industryId, isRecommend){
  579. if(isRecommend)
  580. {
  581. Z("#recommend_industry_"+industryId).addClass("z-blue").siblings("button").removeClass("z-blue");
  582. Z(".main-industry").removeClass("z-blue");
  583. }
  584. else
  585. {
  586. Z("#industry_"+industryId).addClass("z-blue").siblings("button").removeClass("z-blue");
  587. Z(".recommend-industry").removeClass("z-blue");
  588. }
  589. var ajax = new Z.Ajax();
  590. ajax.setClassName("TemplateOrderPresenter");
  591. ajax.setMethodName("doQueryIndustryLabel");
  592. ajax.addParam("industryId",industryId);
  593. ajax.setFailureAlert();
  594. ajax.setSuccess(function(){
  595. var map=Z.J.toObject(this.responseText);
  596. var htmlSI="";
  597. var htmlAS="";
  598. var htmlDS="";
  599. var labelList=map.labelList;
  600. var dimensionList=map.dimensionList;
  601. var dimensionMap=new Map();
  602. for (var i in dimensionList) {
  603. dimensionMap.set(dimensionList[i].dimensionId,dimensionList[i].dimensionName);
  604. }
  605. Z.each(labelList, function(label, i){
  606. if("子行业"==dimensionMap.get(label.dimensionId)){
  607. htmlSI+='<button id="label_'+label.id+'" type="button" class="z-button z-mg3" value="'+label.id+'" onclick="doLabelSelected('+label.id+')">'+label.labelName+'</button>';
  608. }
  609. if("应用场景"==dimensionMap.get(label.dimensionId)){
  610. htmlAS+='<button id="label_'+label.id+'" type="button" class="z-button z-mg3" value="'+label.id+'" onclick="doLabelSelected('+label.id+')">'+label.labelName+'</button>';
  611. }
  612. if("设计风格"==dimensionMap.get(label.dimensionId)){
  613. htmlDS+='<button id="label_'+label.id+'" type="button" class="z-button z-mg3" value="'+label.id+'" onclick="doLabelSelected('+label.id+')">'+label.labelName+'</button>';
  614. }
  615. });
  616. Z("#subIndustry").html(htmlSI);
  617. Z("#applicationScenario").html(htmlAS);
  618. Z("#designStyle").html(htmlDS);
  619. });
  620. ajax.execute();
  621. }
  622. //选择标签
  623. function doLabelSelected(id){
  624. Z("#label_"+id).addClass("z-blue").siblings("button").removeClass("z-blue");
  625. }
  626. //保存标签
  627. function doSaveLabel(){
  628. var unmatchkey=Z("#unmatchkey").val();
  629. var labelOid = Z("#labelOid").val();
  630. var consumerType=Z("button[id^='consumerType'][class*='z-blue']").val();//客户类型
  631. var industryId=Z("div[id='mainIndustry'] button[class*='z-blue']").val();//主行业
  632. // 如果选择了推荐行业则保存时替换为主行业id
  633. var recommendIndustryId = Z("div[id='recommendIndustry'] button[class*='z-blue']").val();// 推荐行业
  634. if (!industryId)
  635. {
  636. if (Z.V.isEmpty(recommendIndustryId))
  637. {
  638. Z.alert("请选择主行业或者推荐行业");
  639. return;
  640. }
  641. industryId = recommendIndustryId;
  642. }
  643. var subIndustryId=Z("div[id='subIndustry'] button[class*='z-blue']").val();//子行业
  644. var applicationScenarioId=Z("div[id='applicationScenario'] button[class*='z-blue']").val();//应用场景
  645. var designStyleId=Z("div[id='designStyle'] button[class*='z-blue']").val();//设计风格
  646. var ajax = new Z.Ajax();
  647. ajax.setClassName("TemplateOrderPresenter");
  648. ajax.setMethodName("doSaveIndustryLabel");
  649. ajax.addParam("labelOid",labelOid);
  650. ajax.addParam("consumerType",consumerType);
  651. ajax.addParam("industryId",industryId);
  652. ajax.addParam("subIndustryId",subIndustryId);
  653. ajax.addParam("applicationScenarioId",applicationScenarioId);
  654. ajax.addParam("designStyleId",designStyleId);
  655. ajax.addParam("unmatchkey",unmatchkey);
  656. ajax.setFailureAlert();
  657. ajax.setSuccess(function(){
  658. Z("#unmatchkey").val("");
  659. Z.alert("保存成功");
  660. });
  661. ajax.setLoading("saveLabel", '<i class="z-font z-return"></i>正在处理',{disabled:true});
  662. ajax.execute();
  663. }
  664. function doCancelLabel(){
  665. Z("button[id^='consumerType'][class*='z-blue']").removeClass("z-blue");
  666. Z("div[id='mainIndustry'] button[class*='z-blue']").removeClass("z-blue");
  667. Z("div[id='subIndustry'] button[class*='z-blue']").removeClass("z-blue");
  668. Z("div[id='applicationScenario'] button[class*='z-blue']").removeClass("z-blue");
  669. Z("div[id='designStyle'] button[class*='z-blue']").removeClass("z-blue");
  670. Z("#subIndustry").html("");
  671. Z("#applicationScenario").html("");
  672. Z("#designStyle").html("");
  673. }
  674. function doPreviewFinalOrderTempalteCheckLabel(mediaId){
  675. /*
  676. if(orderIsCardType&&!curPageCardId){
  677. Z.alert("在定稿前请先生成电子名片二维码并保存");
  678. return;
  679. }
  680. */
  681. // 智能电子名片定稿时需要二次确认
  682. var orderIsDzmpCardType = '${orderIsCardType}';
  683. if (orderIsDzmpCardType == 'true') {
  684. beforeShowDzmpQrcode("endDraft");
  685. return;
  686. }
  687. doPreviewFinalOrderTempalte(mediaId);
  688. /* var ajax = new Z.Ajax();
  689. ajax.setClassName("TemplateOrderPresenter");
  690. ajax.setMethodName("doPreviewFinalOrderTempalteCheckLabel");
  691. ajax.addParam("mediaId",mediaId);
  692. ajax.setFailureAlert();
  693. ajax.setSuccess(function(){
  694. var map=Z.J.toObject(this.responseText);
  695. if(map.flag==false){
  696. var dialog = new Z.Dialog();
  697. dialog.title = "补充订单【"+map.designId+"】的标签信息";
  698. dialog.url = "/fillLabelInfo.htm?designId="+map.designId+"&mediaId="+mediaId;
  699. dialog.width = 900;
  700. dialog.height = 360;
  701. dialog.execute();
  702. }else{
  703. }
  704. });
  705. ajax.setLoading("finalBtn", '<i class="z-font z-return"></i>正在处理',{disabled:true});
  706. ajax.execute();
  707. */
  708. }
  709. </script>
  710. <li onclick="doChangeSidebar(this,'order');doQueryOrderInfo('${mediaId}');"><i class="z-font z-text zi-px24"></i><br>订单</li>
  711. <!-- <li id="label" onclick="doChangeSidebar(this,'label');doQueryOrderLabel('${mediaId}');"><i class="z-font z-add zi-px24"></i><br>标签</li> -->
  712. </#function>
  713. <!-- 重写我的素材选项-->
  714. <#function zhqim_media_my_material_defined()>
  715. <script>
  716. var allMaterialCatList = Z.J.toObject('${Global.get(MaterialCatCache.class).list()}'); // 素材分类对象
  717. Z.onload(function(){
  718. doQueryUserMaterial("1");
  719. });
  720. function doQueryUserMaterial(page)
  721. {//查询我的素材
  722. var ajax = new Z.Ajax();
  723. ajax.setClassName("UserMaterialPresenter");
  724. ajax.setMethodName("doQueryUserMaterial");
  725. ajax.addParam("page", page);
  726. ajax.setFailureAlert();
  727. ajax.setSuccess(function()
  728. {
  729. var list = Z.J.toObject(this.responseText);
  730. var ulHtml = "<ul>";
  731. for(var i=0;i<list.length;i++)
  732. {
  733. var data = list[i];
  734. ulHtml += '<li class="userMaterialListItem" onclick=addSvgCodeFromMine("' + data.svgId + '",' + 'doUseUserMaterial); oncontextmenu=\'tagMenuShowMine(event, "' + data.svgId + '");\'>' + data.svgCode;
  735. ulHtml += '</li>';
  736. }
  737. ulHtml += "</ul>";
  738. Z("#collection_result>.result-ul").html("").append(Z(ulHtml));
  739. });
  740. ajax.execute();
  741. }
  742. function doUseUserMaterial(svgId)
  743. {//使用素材
  744. // 主方法,ajax 调用
  745. var ajax = new Z.Ajax();
  746. ajax.setClassName("UserMaterialPresenter");
  747. ajax.setMethodName("getUserMaterialSvg");
  748. ajax.addParam(svgId);
  749. ajax.setFailure(function(){Z.failure(this.responseText);});
  750. ajax.setSuccess(function(){analysisOfResponseMine(this.responseText);});
  751. ajax.execute();
  752. }
  753. function doAddUserMaterial(typeCode, catCode, keywords, svgCode)
  754. {//添加素材
  755. var ajax = new Z.Ajax();
  756. ajax.setClassName("UserMaterialPresenter");
  757. ajax.setMethodName("doAddUserMaterial");
  758. ajax.addParam("typeCode", typeCode);
  759. ajax.addParam("catCode", catCode);
  760. ajax.addParam("keywords", keywords);
  761. ajax.addParam("svgCode", svgCode);
  762. ajax.setFailureAlert();
  763. ajax.setSuccess(function()
  764. {
  765. Z.alert("添加成功", function(){doQueryUserMaterial("1");});
  766. });
  767. ajax.execute();
  768. }
  769. function doDelUserMaterial(elem)
  770. {//删除个人素材
  771. var svgId = Z(elem).attr("data-svgid");
  772. var ajax = new Z.Ajax();
  773. ajax.setClassName("UserMaterialPresenter");
  774. ajax.setMethodName("doDelUserMaterial");
  775. ajax.addParam(svgId);
  776. ajax.setFailure(function(){Z.failure(this.responseText);});
  777. ajax.setSuccess(function(){doQueryUserMaterial("1");});
  778. ajax.execute();
  779. }
  780. /** 标签右键菜单 **/
  781. function tagMenuShowMine(event, svgId)
  782. {
  783. Z.E.forbidden(event);
  784. createContextMenu({
  785. "event": event,
  786. "elemId": "tagUserMaterialMenu",
  787. "editItem": [
  788. ["删除素材","doDelUserMaterial(this)"]
  789. ]
  790. });
  791. Z("#tagUserMaterialMenu ul:nth-child(1)>li:first-child").attr("data-svgid",svgId);
  792. }
  793. </script>
  794. <style>
  795. .userMaterialListItem{padding:5px;}
  796. .userMaterialListItem > svg{height:auto;}
  797. .
  798. </style>
  799. <div class="side-btnList">
  800. <span class="side-btnSelect active" data-type="0">全部</span>
  801. <span class="side-btnSelect" data-type="1" style="pointer-events:none;opacity:.7;">文字</span>
  802. <span class="side-btnSelect" data-type="2" style="pointer-events:none;opacity:.7;">图片</span>
  803. <span class="side-btnSelect" data-type="3" style="pointer-events:none;opacity:.7;">形状</span>
  804. <span class="side-btnSelect" data-type="4" style="pointer-events:none;opacity:.7;">二维码</span>
  805. </div>
  806. <div class="bjbox">
  807. <div id="collection_result" class="bjimg materialListShow">
  808. <div class="result-ul"></div>
  809. <div class="result-page"><span></span></div>
  810. <div class="result-tips z-text-center z-hide">已经到底了!!</div>
  811. </div>
  812. </div>
  813. </#function>
  814. <#--计算左侧宽高值-->
  815. <#function yangcai_calc_Left_width_height(width, height)>
  816. <script>
  817. function calcLeftWidthHeight()
  818. {
  819. Z("#left").css("width", Z.D.clientWidth() - ${zmr_sidebar_width} - 20 - ${width} - 5);//左20PD,右5PD
  820. Z("#left").css("height", Z.D.clientHeight() - ${zmr_topnav_height} - ${zmr_breadcrumb_height} - 20 - ${height} - 5);//上20PD,下5PD
  821. }
  822. Z.onload(calcLeftWidthHeight);
  823. Z(window).resize(calcLeftWidthHeight);
  824. </script>
  825. </#function>
  826. <#--计算指定元素的宽度-->
  827. <#function yangcai_designer_calc_width(width, containerId)>
  828. <script>
  829. function calcLeftWidthHeight()
  830. {
  831. Z("#${containerId}").css("width", Z.D.clientWidth() - ${zmr_sidebar_width} - 20 - ${width} - 5);//左20PD,右5PD
  832. }
  833. Z.onload(calcLeftWidthHeight);
  834. Z(window).resize(calcLeftWidthHeight);
  835. </script>
  836. </#function>
  837. <#function sweet_alert_reuse_method()>
  838. ${Scripts.src("/zinc/js/sweetalert2.min.js")}
  839. <link rel="stylesheet" href="/zinc/css/sweetalert2.min.css">
  840. </#function>
  841. <#function Mydome()>
  842. <link rel="stylesheet" href="/zinc/css/dome.css">
  843. </#function>