portal html css js resource

cmp-productIssue.js 15KB

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