designerTest.zml 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427
  1. ${zhiqim_manager_content()}
  2. ${Scripts.src(zhiqim.js)}
  3. ${Scripts.src(zhiqim_uploadlarge.js)}
  4. <script>
  5. Z.onload(function(){
  6. //考试状态
  7. var status = ${initialStatus};
  8. if(status == 10 ){
  9. doChangeStep(2)
  10. }else if(status == 20){
  11. doChangeStep(3)
  12. }else if(status == 30){
  13. doChangeStep(4)
  14. }else if(status == 40){
  15. doChangeStep(4)
  16. }else {
  17. doChangeStep(1)
  18. }
  19. //初始化上传组件
  20. initUploader("FUpload_Desgin","DesginFile","${desginPath}");
  21. initUploader("FUpload_End","EndFile","${endPath}");
  22. });
  23. //上传设计文件
  24. function initUploader(elem,fileType,path)
  25. {
  26. var questionsId = document.getElementById("questionsId").value;
  27. var upload = new Z.UploadLarge();
  28. upload.elem = elem;
  29. upload.showResult = false;
  30. upload.setFileDir(path);
  31. upload.fileCopy = true;
  32. upload.onSelected = function(fileName,FileType){
  33. var ajax = new Z.Ajax();
  34. ajax.setClassName("QuestionsFilePresenter");
  35. ajax.setMethodName("doCheckFileName");
  36. ajax.addParam(fileName);
  37. ajax.addParam(fileType);
  38. ajax.execute();
  39. this.setFileName(questionsId + "-" + fileName);
  40. };
  41. upload.onCompleted = function(fileId, fileName){
  42. var ajax = new Z.Ajax();
  43. ajax.setClassName("QuestionsFilePresenter");
  44. ajax.setMethodName("uploadQuestionsFile");
  45. ajax.addParam(questionsId);
  46. ajax.addParam(fileId);
  47. ajax.addParam(fileType);
  48. ajax.setFailure(function(){Z.alert(this.responseText);});
  49. ajax.setSuccess(function(){
  50. var obj = Z.J.toObject(this.responseText);
  51. var items = obj.attaList;
  52. var html = "";
  53. Z("#"+fileType).html("");//清除历史数据
  54. for (var i=0;i<items.length;i++)
  55. {
  56. var obj = items[i];
  57. html += obj.fileName + "&nbsp;&nbsp;&nbsp;" +'<a id="attaId" onclick="doDelete('+ obj.attaId +');"><span style="color:#008bd2">删除</span></a>'+"<br/><br/>";
  58. }
  59. Z("#"+fileType).htmlc(html);
  60. });
  61. ajax.setLoading(document);
  62. ajax.execute();
  63. };
  64. upload.execute();
  65. };
  66. function doChangeStep(step)
  67. {//1 表示问卷考核,2表示虚拟订单,3表示等待审核,4表示审核通过
  68. if (!step)
  69. return;
  70. if (!Z.V.isInteger(step))
  71. return;
  72. if (step == 1)
  73. {//切换步骤内容
  74. doUpdatePageCode(step);
  75. }
  76. else if (step == 2)
  77. {//切换步骤内容
  78. doUpdatePageCode(step);
  79. }
  80. else if (step == 3)
  81. {//切换步骤内容
  82. doUpdatePageCode(step);
  83. }
  84. else if (step == 4){
  85. doUpdatePageCode(step);
  86. }
  87. return;
  88. }
  89. //切换步骤内容
  90. function doUpdatePageCode(step)
  91. {
  92. //切换显示内容
  93. Z("div[id^='stepContent_']").hide();
  94. Z("div[id^='stepContent_"+step+"']").show();
  95. //显示步骤条
  96. step = step*1-1;
  97. var $step = Z("div.z-stepbar").children("nav");
  98. $step.removeClass("z-active");
  99. Z($step[step]).addClass("z-active");
  100. }
  101. //移除截图
  102. function doRemoveImg()
  103. {
  104. Z("#saveImgPath").remove();
  105. }
  106. //初始化监听考试截图
  107. (function(){
  108. var imgReader = function( item ){
  109. var blob = item.getAsFile(),
  110. reader = new FileReader();
  111. Z("#saveImgPath").remove();//删除历史图片
  112. // 读取文件后将其显示在网页中
  113. reader.onload = function(e){
  114. var img = new Image();
  115. var result = e.target.result;
  116. Z("#imgData").text(result);
  117. img.src = result;
  118. img.id = "saveImgPath";
  119. Z("#imgSrc").append(img);
  120. };
  121. // 读取文件
  122. reader.readAsDataURL(blob);
  123. };
  124. window.addEventListener( 'paste', function(e){
  125. // 添加到事件对象中的访问系统剪贴板的接口
  126. var clipboardData = e.clipboardData,
  127. i = 0,
  128. items, item, types;
  129. if(clipboardData){
  130. items = clipboardData.items;
  131. if( !items ){
  132. return;
  133. }
  134. item = items[0];
  135. // 保存在剪贴板中的数据类型
  136. types = clipboardData.types || [];
  137. for( ; i < types.length; i++ ){
  138. if( types[i] === 'Files' ){
  139. item = items[i];
  140. break;
  141. }
  142. }
  143. // 判断是否为图片数据
  144. if( item && item.kind === 'file' && item.type.match(/^image\//i) ){
  145. imgReader( item );
  146. }
  147. }
  148. });
  149. })();
  150. //提交成绩图
  151. function doDraftSubmit()
  152. {
  153. var questionsId = document.getElementById("questionsId").value;
  154. var data = Z("#imgData").text()
  155. if (Z.Validates.isEmpty(data))
  156. {
  157. Z.alert("考试成绩截图为空")
  158. return;
  159. }
  160. var ajax = new Z.Ajax();
  161. ajax.setClassName("DesignerTestPresenter");
  162. ajax.setMethodName("saveGrade");
  163. ajax.addParam(data);
  164. ajax.addParam(questionsId);
  165. ajax.setFailureAlert();
  166. ajax.setSuccess(function(){
  167. Z.success("操作成功",function(){parent.location.reload();});
  168. });
  169. ajax.setLoading("doDraftSubmit", '正在提交', {disabled:true});
  170. ajax.execute();
  171. }
  172. //考试地址
  173. function doAssessSite(){
  174. Z.alert("暂时不需要去考试,请直接随意截图提交。");
  175. }
  176. //提交审核
  177. function doSubmitAudit()
  178. {
  179. var questionsId = document.getElementById("questionsId").value;
  180. var ajax = new Z.Ajax();
  181. ajax.setClassName("DesignerTestPresenter");
  182. ajax.setMethodName("submitAudit");
  183. ajax.addParam(questionsId);
  184. ajax.setFailureAlert();
  185. ajax.setSuccess(function(){
  186. Z.success(("操作成功"),function(){
  187. parent.location.reload();
  188. });
  189. });
  190. ajax.execute();
  191. }
  192. //联系审核人
  193. function contectQQ(userQq)
  194. {
  195. if (!Z.V.isInteger(userQq))
  196. {
  197. Z.alert("QQ号不合法");
  198. return;
  199. }
  200. Z("#openFrm").attr("src","tencent://message/?uin="+userQq);
  201. }
  202. //重新考试
  203. function doRefreshAssess()
  204. {
  205. var questionsId = document.getElementById("questionsId").value;
  206. var ajax = new Z.Ajax();
  207. ajax.setClassName("DesignerTestPresenter");
  208. ajax.setMethodName("refreshAssess");
  209. ajax.addParam(questionsId);
  210. ajax.setFailureAlert();
  211. ajax.setSuccess(function(){
  212. Z.success("申请重新考核成功", function(){
  213. parent.location.reload();
  214. });
  215. });
  216. ajax.execute();
  217. }
  218. function downMaterialFile(attaId){
  219. if (Z.V.isEmpty(attaId))
  220. {
  221. Z.alert("请选择需要下载的素材");
  222. return ;
  223. }
  224. var mainFrame = parent.parent.document.URL;
  225. var mainSrc = mainFrame.src;
  226. var prefix = Z.l.protocol + "//" + Z.l.host ;
  227. var element1 = document.createElement("a");
  228. element1.href = prefix+"/downQuestionsFile.htm?attaId=" + attaId;
  229. Z.L.href(prefix+"/downQuestionsFile.htm?attaId=" + attaId, zCallFrame);
  230. }
  231. //删除文件
  232. function doDelete(attaId)
  233. {
  234. Z.confirm("您确定删除该文件吗?", function()
  235. {
  236. var ajax = new Z.Ajax();
  237. ajax.setClassName("DesignerTestPresenter");
  238. ajax.setMethodName("deleteFile");
  239. ajax.addParam(attaId);
  240. ajax.setFailureAlert();
  241. ajax.setSuccess(function(){
  242. Z.success("删除成功!", function(){
  243. parent.location.reload();
  244. });
  245. });
  246. ajax.execute()});
  247. }
  248. function showLargeImg()
  249. {
  250. var url="https://oss-89-taobao.oss-cn-shenzhen.aliyuncs.com/yangcai365_design/performance/questions_standard-1.png";
  251. var hostUrl = Z.l.protocol+'//'+Z.l.host;
  252. var dialog = new parent.Z.Dialog();
  253. dialog.shadow = true;
  254. dialog.title = "考试审核标准";
  255. dialog.fixed = true;
  256. dialog.url = hostUrl+"/showLargeImg.htm?imgpath="+url;
  257. dialog.width = parent.Z.D.clientWidth()-800;
  258. dialog.height = parent.Z.D.clientHeight()-200;
  259. dialog.execute();
  260. dialog.$background.remove();
  261. }
  262. </script>
  263. <div class="z-pd10 z-px16 z-bg-white" style="padding-top:20px">
  264. <input id="questionsId" type="hidden" value="${orderQuestions.getQuestionsId()}">
  265. <!-- 默认步骤条效果 -->
  266. <div class="z-stepbar z-blue">
  267. <nav class="z-active">
  268. <span class="z-round z-white z-mg-r5">1</span><span>问卷考核</span>
  269. </nav>
  270. <nav onclick="">
  271. <span class="z-round z-white z-mg-r5">2</span><span>虚拟订单</span>
  272. </nav>
  273. <nav onclick="">
  274. <span class="z-round z-white z-mg-r5">3</span><span>等待审核</span>
  275. </nav>
  276. <nav onclick="">
  277. <span class="z-round z-white z-mg-r5">4</span><span>审核结果</span>
  278. </nav>
  279. </div>
  280. <div id="stepContent_1">
  281. <br/>
  282. <table class="z-table z-bordered z-h50-tr z-pd10 z-bg-white" style="width:1100px;">
  283. <tr>
  284. <td width="10%">开始理论考试</td>
  285. <td width="*"><button class="z-button z-large z-w120 ${zmr_color_class}" onclick="doAssessSite();">前往考试</button>
  286. <font style="color:red">说明:为了提高审核通过率,请提交80分以上的截图,否则审核将不通过</font>
  287. </td>
  288. </tr>
  289. <tr>
  290. <td width="10%">考试成绩截图</td>
  291. <td width="*" height="550">完成考试成绩截图后,直接<font style="color:red"> CTRL+V </font>粘贴即可
  292. <div style="display:none" id="imgData"></div>
  293. <div id="imgSrc"></div>
  294. </td>
  295. </tr>
  296. <tr>
  297. <td colspan="2">
  298. <div class="z-text-center">
  299. <button class="z-button z-large z-red" onclick="doRemoveImg();"><i class="z-font z-delete"></i>删除截图</button>
  300. <button id="doDraftSubmit" class="z-button z-large z-blue" onclick="doDraftSubmit();"><i class="z-font z-save"></i>完成考试</button>
  301. <div>
  302. </td>
  303. </tr>
  304. </table>
  305. </div>
  306. <div id="stepContent_2">
  307. <br/>
  308. <form name="step2Form" action="javascript:void(0);" method="post" data-role="z-call-frame">
  309. <table class="z-table z-bordered z-h50-tr z-pd10 z-bg-white" style="width:1100px;">
  310. <tr>
  311. <td width="10%">设计要求</td>
  312. <td width="80%">${orderQuestions.getDesignRequirements()}</td>
  313. <td width="10%"><button type="button" class="z-button z-large z-blue z-w110 z-mg-t20 zi-mg-b20" onclick="showLargeImg()"><i class="z-font z-query"></i>审核标准</button></td>
  314. </tr>
  315. <tr>
  316. <td width="10%">设计素材</td>
  317. <td colspan="2">
  318. <#for item : materialFilerAttaList>
  319. ${item.getFileName()}&nbsp;&nbsp;&nbsp;<a href="javascript:downMaterialFile('${item.getAttaId()}')"><span style="color:#2483EB">下载</span></a><br/><br/>
  320. </#for>
  321. </td>
  322. </tr>
  323. <tr>
  324. <td width="10%">设计文件</td>
  325. <td width="80%" id="DesginFile">
  326. <#for item : desginFileAttaList>
  327. ${item.getFileName()}&nbsp;&nbsp;&nbsp;<a id="attaId" onclick="doDelete(${item.getAttaId()});"><span style="color:#2483EB">删除</sapn></a><br/><br/>
  328. </#for>
  329. </td>
  330. <td width="10%"><button id="FUpload_Desgin" type="button" class="z-button z-large z-blue z-w110 z-mg-t20 zi-mg-b20"><i class="z-font z-upload"></i>上传文件</button></td>
  331. </tr>
  332. <tr>
  333. <td width="10%">印刷文件<br/><font color="red"> pdf格式</font></td>
  334. <td width="80%" id="EndFile">
  335. <#for item : endFileAttaList>
  336. ${item.getFileName()}&nbsp;&nbsp;&nbsp;<a id="attaId" onclick="doDelete(${item.getAttaId()});"><span style="color:#2483EB">删除</sapn></a><br/><br/>
  337. </#for>
  338. </td>
  339. <td width="10%"><button id="FUpload_End" type="button" class="z-button z-large z-blue z-w110 z-mg-t20 zi-mg-b20"><i class="z-font z-upload"></i>上传文件</button></td>
  340. </tr>
  341. <tr>
  342. <td colspan="3">
  343. <div class="z-text-center">
  344. <button class="z-button z-large z-blue" onclick="doSubmitAudit();"><i class="z-font z-save"></i>提交审核</button>
  345. <div>
  346. </td>
  347. </tr>
  348. </table>
  349. </form>
  350. </div>
  351. <div id="stepContent_3">
  352. <div style="margin-top:10px">
  353. </div>
  354. <div>
  355. <br/><br/>
  356. <p style="margin-top:10px">
  357. <div>
  358. <h3>审核中,请通过微信扫码联系审核人员确认相关入驻事宜</h3>
  359. </div>
  360. </p>
  361. <br/><br/>
  362. </div>
  363. <img style="width:15%;" src="/zinc/images/VXQRcode.png">
  364. </div>
  365. <div id="stepContent_4">
  366. <#if initialStatus = 40>
  367. <div style="margin-top:10px">
  368. </div>
  369. <div>
  370. <br/><br/>
  371. <p style="margin-top:10px">
  372. <div>
  373. <h3><p style="color:#FF0000;font-weight:500">抱歉,审核未通过。未通过原因:${orderQuestions.getRemarks()}</p></h3>
  374. </div>
  375. </p>
  376. <h3>详情请通过微信扫码联系审核人员</h3>
  377. </div>
  378. <img style="width:15%;" src="/zinc/images/VXQRcode.png"> </br></br>
  379. <button id="doRefreshAssess" type="button" style="padding:7px;width:8%" class="z-button z-blue" onclick="doRefreshAssess();"><i class="z-font z-refresh"></i><font style="font-size:small">重新考核</font></button>
  380. <button id="showLargeImg" type="button" style="padding:7px;width:8%" class="z-button z-blue" onclick="showLargeImg();"><i class="z-font z-query"></i><font style="font-size:small">审核标准</font></button>
  381. </div>
  382. <#else>
  383. <div style="margin-top:10px">
  384. </div>
  385. <div>
  386. <br/><br/>
  387. <p style="margin-top:10px">
  388. <div>
  389. <h3 >恭喜你通过审核,请退出<span style="color:#FF0000">重新登录</span>设计平台,马上开始你的接单之旅吧!</h3>
  390. </div>
  391. </p>
  392. <br/><br/>
  393. </div>
  394. </div>
  395. </#if>
  396. </div>
  397. ${zhiqim_manager_content_end()}
  398. <#-- 联系QQ弹窗框 -->
  399. <iframe id="openFrm" class="z-hide" src="about:blank"></iframe>