portal html css js resource

cmp-productIssue.js 15KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593
  1. $(document).ready(function() {
  2. var resourceId = GetQueryString("productId");
  3. if(resourceId) {
  4. $("#deleteResource").removeClass("disableLi").addClass("deleteResource");
  5. getRecourceMe();
  6. }
  7. var orgId = $.cookie('orgId');
  8. if(orgId == "" || orgId == null || orgId == "null"){
  9. location.href = "cmp-settled-log.html";
  10. }
  11. var temp = [];
  12. var array = [];
  13. var oProfessor=[];
  14. var hbur,hburEnd;
  15. ue = UE.getEditor('editor', {});
  16. /*获取资源信息*/
  17. function getRecourceMe() {
  18. $.ajax({
  19. "url": "/ajax/product/qo",
  20. "type": "GET",
  21. "success": function(data) {
  22. console.log(data);
  23. if(data.success) {
  24. $("#uploadDd").siblings().remove();
  25. $("#fileList").append("<dd></dd><dd></dd>");
  26. temp=[];
  27. resourceHtml(data.data);
  28. }
  29. },
  30. "data": {
  31. "id": resourceId
  32. },
  33. dataType: "json",
  34. 'error': function() {
  35. $.MsgBox.Alert('提示', '服务器连接超时!');
  36. }
  37. });
  38. }
  39. /*处理资源html代码*/
  40. function resourceHtml($da) {
  41. $("#resourceName").val($da.name); //名字
  42. $("#application").val($da.cnt); //应用用途
  43. if($da.spec) { //厂商型号
  44. $("#modelNumber").val($da.spec);
  45. }
  46. if($da.parameter) { //性能参数
  47. $("#performancePa").val($da.parameter);
  48. }
  49. if($da.keywords) {
  50. var oSub = $da.keywords.split(",");
  51. var oSt = "";
  52. for(var i = 0; i < oSub.length; i++) {
  53. oSt += '<li>' + oSub[i] + '<div class="closeThis"></div></li>'
  54. }
  55. $("#keyWordlist").html(oSt);
  56. if(oSub.length>4){
  57. $("#KeyWord").parent().addClass("displayNone");
  58. }
  59. } else {
  60. $("#keyWordlist").html("");
  61. }
  62. if($da.descp) { //编辑器
  63. ue.ready(function() {
  64. ue.setContent($da.descp);
  65. });
  66. }
  67. if($da.price) {
  68. $("#priceInput").val($da.price);
  69. }
  70. if($da.producingArea) {
  71. $("#productAddressInput").val($da.producingArea);
  72. }
  73. if($da.images) {
  74. var arr = [];
  75. var oImg = $da.images.split(",");
  76. for(var i = 0; i < oImg.length; i++) {
  77. var oString = '<dd>' +
  78. '<div class="imgItem">' +
  79. '<img src="' + "/data/product/" + oImg[i] + '"/>' +
  80. '</div>' +
  81. '<div class="file-panel">' +
  82. '<span class="cancel" flag=1></span>' +
  83. '</div>' +
  84. '</dd>'
  85. arr[i] = oString;
  86. temp[i] = oImg[i];
  87. }
  88. $("#fileList dd").eq(2).remove();
  89. if(oImg.length == 1) {
  90. $("#fileList").prepend(arr[0]);
  91. } else if(oImg.length == 2) {
  92. $("#fileList dd").eq(1).remove();
  93. $("#fileList").prepend(arr[1]);
  94. $("#fileList").prepend(arr[0]);
  95. } else if(oImg.length == 3) {
  96. $("#fileList dd").eq(1).remove();
  97. $("#fileList").prepend(arr[2]);
  98. $("#fileList").prepend(arr[1]);
  99. $("#fileList").prepend(arr[0]);
  100. }
  101. }
  102. }
  103. var uploader = WebUploader.create({
  104. auto: true,
  105. fileNumLimit: 3,
  106. swf: '../js/webuploader/Uploader.swf',
  107. server: '/ajax/product/upload',
  108. fileSingleSizeLimit: 2 * 1024 * 1024,
  109. pick: {
  110. id: "#filePicker",
  111. multiple: false
  112. },
  113. accept: {
  114. title: 'Images',
  115. extensions: 'jpg,jpeg,png',
  116. mimeTypes: 'image/jpg,image/png'
  117. }
  118. });
  119. // 当有文件添加进来的时候
  120. uploader.on('fileQueued', function(file) {
  121. fileId = file.id;
  122. var $len = $("#fileList").find("img").length;
  123. if($len == 0 || $len == 1) {
  124. var oRemove = $("#fileList").find("dd");
  125. oRemove.eq(oRemove.length - 1).remove();
  126. }
  127. var $li = $(
  128. '<dd>' +
  129. '<div class="imgItem" id="' + file.id + '">' +
  130. '<img />' +
  131. '</div>' +
  132. //'<div class="info">' + file.name + '</div>' +
  133. '</dd>'
  134. ),
  135. $btns = $('<div class="file-panel">' +
  136. '<span class="cancel"></span>' +
  137. '</div>').appendTo($li),
  138. $img = $li.find('img');
  139. var $list = $("#fileList");
  140. if($len == 1) {
  141. $list.find("dd").eq(0).after($li)
  142. } else if($len == 2) {
  143. $list.find("dd").eq(1).after($li)
  144. } else {
  145. $list.prepend($li);
  146. }
  147. uploader.makeThumb(file, function(error, src) {
  148. if(error) {
  149. $img.replaceWith('<span>不能预览</span>');
  150. return;
  151. }
  152. $img.attr('src', src);
  153. }, 1, 1);
  154. });
  155. uploader.onError = function(code) {
  156. console.log(code)
  157. $.MsgBox.Alert('提示', '请上传jpg、jpeg、png格式的图片,大小不超过2M')
  158. };
  159. uploader.on('uploadSuccess', function(file, data) {
  160. if(data.success) {
  161. temp.push(data.data[0].uri);
  162. console.log(temp)
  163. uploader.removeFile(fileId);
  164. }else{
  165. $.MsgBox.Alert('提示', '只支持jpeg/jpg/png格式的图片');
  166. }
  167. });
  168. /*删除图片*/
  169. $("#fileList").on("click", ".cancel", function() {
  170. var flag = $(this).attr("flag");
  171. var oNum = $(this).parents("dd").index();
  172. temp.splice(oNum, 1);
  173. $(this).parent().parent().remove();
  174. var $len = $("#fileList").find("img").length;
  175. if($len != 2) {
  176. $("#fileList").append("<dd></dd>")
  177. }
  178. });
  179. /*资源名称*/
  180. $("#resourceName").bind({
  181. focus: function() {
  182. $("#resourceNamePrompt").show();
  183. },
  184. blur: function() {
  185. $("#resourceNamePrompt").hide();
  186. },
  187. keyup: function() {
  188. if($(this).val().length > 30) {
  189. $(this).val($(this).val().substr(0, 30));
  190. }
  191. }
  192. })
  193. hotKey(".oinput");
  194. //校验关键字
  195. $("#KeyWord").on({
  196. focus: function() {
  197. $("#keyPrompt").text("最多可添加5个关键词,每个关键词15字以内");
  198. },
  199. blur: function() {
  200. $("#keyPrompt").text("");
  201. }
  202. })
  203. $("#keyWordlist").on("click", ".closeThis", function() {
  204. $(this).parent().remove();
  205. var liNum = $("#keyWordlist").find("li").length;
  206. if(liNum < 5) {
  207. $("#keyWordlist").parents(".keyResult").siblings("div.col-w-12").show();
  208. }
  209. })
  210. /*厂商型号*/
  211. $("#modelNumber").bind({
  212. focus: function() {
  213. $("#model").show();
  214. },
  215. blur: function() {
  216. $("#model").hide();
  217. },
  218. keyup: function() {
  219. if($(this).val().length > 50) {
  220. $(this).val($(this).val().substr(0, 50));
  221. }
  222. }
  223. });
  224. $("#productAddressInput").bind({
  225. focus: function() {
  226. $("#productAddress").show();
  227. },
  228. blur: function() {
  229. $("#productAddress").hide();
  230. },
  231. keyup: function() {
  232. if($(this).val().length > 50) {
  233. $(this).val($(this).val().substr(0, 50));
  234. }
  235. }
  236. });
  237. $("#priceInput").bind({
  238. focus: function() {
  239. $("#price").show();
  240. },
  241. blur: function() {
  242. $("#price").hide();
  243. },
  244. keyup: function() {
  245. if($(this).val().length > 50) {
  246. $(this).val($(this).val().substr(0, 50));
  247. }
  248. }
  249. });
  250. /*应用用途*/
  251. limitObj("#application",250)
  252. /*性能参数*/
  253. limitObj("#performancePa",1000)
  254. /*发布*/
  255. $(".goFabu").click(function() {
  256. if($(this).hasClass("disableLi")){
  257. return;
  258. }
  259. var oYes = term();
  260. if(oYes == 0) {
  261. return;
  262. }
  263. $.MsgBox.Confirm("提示", "确认发布该产品?", ajsPost);
  264. })
  265. /*预览*/
  266. $("#oPreview").click(function() {
  267. if($(this).hasClass("disableLi")){
  268. return;
  269. }
  270. var oYes = term();
  271. if(oYes == 0) {
  272. return;
  273. }
  274. if(resourceId) {
  275. ajsPost("/ajax/product/draft/update", 1);
  276. }else {
  277. ajsPost("/ajax/product/draft", 1);
  278. }
  279. })
  280. /*存草稿*/
  281. $("#oDraft").click(function() {
  282. if($(this).hasClass("disableLi")){
  283. return;
  284. }
  285. var oYes = term();
  286. if(oYes == 0) {
  287. return;
  288. }
  289. if(resourceId) {
  290. ajsPost("/ajax/product/draft/update", 2);
  291. }else {
  292. ajsPost("/ajax/product/draft", 2);
  293. }
  294. })
  295. /*删除*/
  296. $("#operateBlocko").on("click", ".deleteResource", function() {
  297. $.MsgBox.Confirm("提示", "确认删除该产品?", deleResource);
  298. })
  299. /*删除函数*/
  300. function deleResource() {
  301. $.ajax({
  302. "url": "/ajax/product/delete",
  303. "type": "POST",
  304. "success": function(data) {
  305. console.log(data)
  306. if(data.success) {
  307. location.href = "cmp-productList.html"
  308. }
  309. },
  310. "data": {
  311. "id": resourceId
  312. },
  313. "beforeSend": function() { /*console.log(this.data)*/ },
  314. "contentType": "application/x-www-form-urlencoded",
  315. dataType: "json"
  316. });
  317. }
  318. /*条件是否匹配*/
  319. function term() {
  320. var $len = $("#fileList").find("img").length;
  321. var reName = $("#resourceName").val();
  322. var oIndustry = $("#application").val();
  323. var oLen=$("#expertli").find(".selectAdd").length
  324. if($len == 0) {
  325. $.MsgBox.Alert('提示', '请上传产品图片。');
  326. return 0;
  327. }
  328. if(reName == "") {
  329. $.MsgBox.Alert('提示', '请填写产品名称。');
  330. return 0;
  331. }
  332. if(oIndustry == "") {
  333. $.MsgBox.Alert('提示', '请填写产品简介。');
  334. return 0;
  335. }
  336. if(oLen==0) {
  337. $.MsgBox.Alert('提示', '至少选择一个联系人');
  338. return 0;
  339. }
  340. }
  341. /*发布函数*/
  342. function ajsPost(pa1, pa2) {
  343. var sdd=[];
  344. var sdf = $("#expertli").find(".selectAdd");
  345. for(var i=0;i<sdf.length;i++) {
  346. sdd.push(sdf.eq(i).parents("li").attr("id"));
  347. }
  348. var industrys = $("#keyWordlist li");
  349. var industryAll = "";
  350. if(industrys.size() > 0) {
  351. for(var i = 0; i < industrys.size(); i++) {
  352. industryAll += industrys[i].innerText.trim();
  353. industryAll += ',';
  354. };
  355. industryAll = industryAll.substring(0, industryAll.length - 1);
  356. }
  357. $(".operateBlock").find("li").addClass("disableLi");
  358. var oUrl = "/ajax/product/publish";
  359. if(resourceId) {
  360. oUrl = "/ajax/product/publish/update";
  361. }
  362. if(pa1) {
  363. oUrl = pa1
  364. }
  365. var $data = {};
  366. if(resourceId) {
  367. $data.id = resourceId;
  368. }
  369. $data.owner = orgId;
  370. $data.name = $("#resourceName").val(); //资源名字
  371. $data.keywords = industryAll;
  372. $data.cnt = $("#application").val();
  373. $data.spec = $("#modelNumber").val();
  374. $data.parameter = $("#performancePa").val();
  375. $data.descp = ue.getContent();
  376. $data.images = temp.join(",");
  377. $data.professor=sdd;
  378. $data.producingArea=$("#productAddressInput").val();
  379. $data.price = $("#priceInput").val()
  380. $.ajax({
  381. "url": oUrl,
  382. "type": "POST",
  383. "complete":function(){
  384. $(".operateBlock").find("li").removeClass("disableLi");
  385. },
  386. "success": function(data) {
  387. console.log(data)
  388. if(data.success) {
  389. if(pa2 == 1) {
  390. resourceId = data.data;
  391. $("#deleteResource").removeClass("disableLi").addClass("deleteResource");
  392. window.open("../productPreview.html?productId=" + data.data);
  393. getRecourceMe();
  394. //弹出预览
  395. } else if(pa2 == 2) {
  396. $("#deleteResource").removeClass("disableLi").addClass("deleteResource");
  397. if(!resourceId)
  398. resourceId = data.data;
  399. $.MsgBox.Alert('提示', '产品已保存草稿。');
  400. $("#mb_msgicon").css("background", 'url("images/sign_icon_chenggong_nor.png") 0% 0% / contain');
  401. getRecourceMe();
  402. } else {
  403. $.MsgBox.Alert('提示', '产品发布成功!');
  404. $("#mb_msgicon").css("background", 'url("images/sign_icon_chenggong_nor.png") 0% 0% / contain');
  405. location.href = "cmp-productList.html"
  406. }
  407. }else {
  408. if(data.code==90) {
  409. $.MsgBox.Alert('提示', '由于操作时间过久,上传图片已失效,请重新上传。');
  410. }
  411. }
  412. },
  413. "data": $data,
  414. "beforeSend": function() { /*console.log(this.data)*/ },
  415. "contentType": "application/x-www-form-urlencoded",
  416. "traditional": true,
  417. dataType: "json"
  418. });
  419. }
  420. DefaultContact()
  421. function DefaultContact() {
  422. $.ajax({
  423. url: "/ajax/org/linkman/queryAll",
  424. type: "GET",
  425. timeout: 10000,
  426. dataType: "json",
  427. async:"true",
  428. data: {
  429. "oid": orgId
  430. },
  431. success: function(data, textState) {
  432. if(data.success) {
  433. var $data = data.data;
  434. if($data.length) {
  435. oProfessor.push($data[0].pid);
  436. var oLength=$("#expertli").find("li");
  437. for(var i=0;i<oLength.length;i++) {
  438. var sid = oLength.eq(i).attr("id");
  439. if($data[0].pid ===sid) {
  440. oLength.eq(i).find("[flag]").addClass("selectAdd");
  441. break;
  442. }
  443. }
  444. }
  445. }
  446. },
  447. error: function(XMLHttpRequest, textStats, errorThrown) {
  448. $.MsgBox.Alert('提示', '服务器请求失败')
  449. }
  450. })
  451. }
  452. function UnauthorizedUser() {
  453. $.ajax({
  454. url: "/ajax/professor/qaOrgAuth",
  455. type: "GET",
  456. timeout: 10000,
  457. dataType: "json",
  458. async:"false",
  459. data: {
  460. "orgId": orgId,
  461. "orgAuth": 1
  462. },
  463. success: function(data, textState) {
  464. if(data.success) {
  465. console.log(data);
  466. unauthUser(data.data);
  467. }
  468. },
  469. error: function(XMLHttpRequest, textStats, errorThrown) {
  470. $.MsgBox.Alert('提示', '服务器请求失败')
  471. }
  472. })
  473. }
  474. UnauthorizedUser();
  475. function unauthUser($res) {
  476. if(resourceId) {
  477. selUse();
  478. }
  479. var osting=""
  480. for(var i = 0; i < $res.length; i++) {
  481. var img;
  482. //var styC="";
  483. var oClass = autho($res[i].authType, $res[i].orgAuth, $res[i].authStatus);
  484. var oTitle="";
  485. if(!resourceId) {
  486. /*if(i<5) {
  487. styC="selectAdd";
  488. oProfessor.push($res[i].id);
  489. }*/
  490. }
  491. if($res[i].title) {
  492. oTitle=$res[i].title;
  493. }else{
  494. if($res[i].office) {
  495. oTitle=$res[i].office;
  496. }
  497. }
  498. if($res[i].hasHeadImage) {
  499. img = "/images/head/" + $res[i].id + "_l.jpg";
  500. } else {
  501. img = "../images/default-photo.jpg"
  502. }
  503. var oSt = '<li class="flexCenter" style="cursor:pointer;" id="'+$res[i].id+'">'
  504. oSt += '<div class="madiaHead useHead" id="userimg" style="background-image: url('+img+');"></div>'
  505. oSt += '<div class = "madiaInfo">'
  506. oSt += '<p class = "ellipsisSty">'
  507. oSt += '<span class = "h1Font" id="name">'+$res[i].name+'</span><em class="authicon '+oClass.sty+'" title="'+oClass.title+'"></em >'
  508. oSt += '</p>'
  509. oSt += '<p class="h2Font ellipsisSty">'+oTitle+'</p>'
  510. oSt += '</div>'
  511. oSt += '<div class="selectNull " flag=1></div>'
  512. oSt += '</li>'
  513. osting+=oSt;
  514. }
  515. $("#expertli").html(osting);
  516. if(!resourceId) {
  517. DefaultContact()
  518. }
  519. }
  520. /*选择用户*/
  521. $("#expertli").on("click","li",function(){
  522. var userL=$("#expertli").find(".selectAdd").length;
  523. var oSel=$(this).find(".selectAdd").length;
  524. var oId=$(this).attr("id");
  525. $("#linkman").text("");
  526. if(oSel == 0) {
  527. if(userL == 5) {
  528. $("#linkman").text("最多可选5位联系人");
  529. return;
  530. }
  531. $(this).find('[flag]').addClass("selectAdd");
  532. oProfessor.push(oId);
  533. } else {
  534. $(this).find('[flag]').removeClass("selectAdd");
  535. for(var i=0;i<oProfessor.length;i++) {
  536. if(oId==oProfessor[i]) {
  537. oProfessor.splice(i, 1);
  538. }
  539. }
  540. }
  541. });
  542. function selUse() {
  543. $.ajax({
  544. url: "/ajax/product/pro",
  545. type: "GET",
  546. timeout: 10000,
  547. dataType: "json",
  548. async:true,
  549. data: {
  550. "id": resourceId,
  551. },
  552. success: function(data, textState) {
  553. console.log(data)
  554. if(data.success) {
  555. var arr=[];
  556. var arr1=[];
  557. var oLength=$("#expertli").find("li");
  558. for(var i=0;i<data.data.length;i++) {
  559. arr1.push(data.data[i].professor);
  560. }
  561. for(var i=0;i<oLength.length;i++) {
  562. arr.push(oLength.eq(i).attr("id"));
  563. }
  564. for(var i=0;i<arr1.length;i++) {
  565. oProfessor.push(arr1[i]);
  566. oLength.eq(arr.indexOf(arr1[i])).find("[flag]").addClass("selectAdd")
  567. }
  568. }
  569. },
  570. error: function(XMLHttpRequest, textStats, errorThrown) {
  571. $.MsgBox.Alert('提示', '服务器请求失败')
  572. }
  573. })
  574. }
  575. })