portal html css js resource

serviceIssue.js 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441
  1. $(document).ready(function() {
  2. loginStatus(); //判断个人是否登录
  3. valUser();
  4. var sevriceId = GetQueryString("sevriceId"),
  5. flag = GetQueryString("flag");
  6. if(sevriceId) {
  7. $("#deleteResource").removeClass("disableLi").addClass("deleteResource");
  8. getRecourceMe();
  9. }
  10. var userid = $.cookie("userid");
  11. var temp = [];
  12. var ue = UE.getEditor('editor', {});
  13. function ajaxRequist(url, obj, type, fn) {
  14. $.ajax({
  15. url: url,
  16. data: obj,
  17. dataType: 'json', //服务器返回json格式数据
  18. type: type, //支持'GET'和'POST'
  19. traditional: true,
  20. success: function(data) {
  21. if(data.success) {
  22. fn(data)
  23. }
  24. },
  25. error: function(xhr, type, errorThrown) {
  26. $.MsgBox.Alert('提示', '服务器请求失败');
  27. }
  28. });
  29. }
  30. /*获取资源信息*/
  31. function getRecourceMe() {
  32. $.ajax({
  33. "url": "/ajax/ware/qo",
  34. "type": "GET",
  35. "success": function(data) {
  36. if(data.success) {
  37. $("#uploadDd").siblings().remove();
  38. $("#fileList").append("<dd></dd><dd></dd>");
  39. temp = [];
  40. resourceHtml(data.data);
  41. }
  42. },
  43. "data": {
  44. "id": sevriceId
  45. },
  46. dataType: "json",
  47. 'error': function() {
  48. $.MsgBox.Alert('提示', '服务器连接超时!');
  49. }
  50. });
  51. }
  52. /*处理资源html代码*/
  53. function resourceHtml($da) {
  54. $("#resourceName").val($da.name); //名字
  55. if($da.cnt) { //厂商型号
  56. $("#modelNumber").val($da.cnt);
  57. autoGrow.call($("#modelNumber")[0])
  58. }
  59. if($da.cooperation) { //合作备注
  60. $("#remarkContent").val($da.cooperation);
  61. }
  62. if($da.keywords) {
  63. var oSub = $da.keywords.split(",");
  64. var oSt = "";
  65. for(var i = 0; i < oSub.length; i++) {
  66. oSt += '<li>' + oSub[i] + '<div class="closeThis"></div></li>'
  67. }
  68. $("#keyWordlist").html(oSt);
  69. if(oSub.length > 4) {
  70. $("#KeyWord").parent().addClass("displayNone");
  71. }
  72. } else {
  73. $("#keyWordlist").html("");
  74. }
  75. if($da.descp) { //编辑器
  76. ue.ready(function() {
  77. ue.setContent($da.descp);
  78. });
  79. }
  80. if($da.images) {
  81. var arr = [];
  82. var oImg = $da.images.split(",");
  83. for(var i = 0; i < oImg.length; i++) {
  84. var oString = '<dd>' +
  85. '<div class="imgItem">' +
  86. '<img src="' + "/data/ware" + oImg[i] + '"/>' +
  87. '</div>' +
  88. '<div class="file-panel">' +
  89. '<span class="cancel" flag=1></span>' +
  90. '</div>' +
  91. '</dd>'
  92. arr[i] = oString;
  93. temp[i] = oImg[i];
  94. }
  95. $("#fileList dd").eq(2).remove();
  96. if(oImg.length == 1) {
  97. $("#fileList").prepend(arr[0]);
  98. } else if(oImg.length == 2) {
  99. $("#fileList dd").eq(1).remove();
  100. $("#fileList").prepend(arr[1]);
  101. $("#fileList").prepend(arr[0]);
  102. } else if(oImg.length == 3) {
  103. $("#fileList dd").eq(1).remove();
  104. $("#fileList").prepend(arr[2]);
  105. $("#fileList").prepend(arr[1]);
  106. $("#fileList").prepend(arr[0]);
  107. }
  108. }
  109. }
  110. var uploader = WebUploader.create({
  111. auto: true,
  112. fileNumLimit: 3,
  113. swf: '../js/webuploader/Uploader.swf',
  114. server: '/ajax/ware/upload',
  115. fileSingleSizeLimit: 2 * 1024 * 1024,
  116. pick: {
  117. id: "#filePicker",
  118. multiple: false
  119. },
  120. accept: {
  121. title: 'Images',
  122. extensions: 'jpg,jpeg,png',
  123. mimeTypes: 'image/jpg,image/png,image/jpeg'
  124. }
  125. });
  126. // 当有文件添加进来的时候
  127. uploader.on('fileQueued', function(file) {
  128. var $len = $("#fileList").find("img").length;
  129. fileId = file.id;
  130. if($len == 0 || $len == 1) {
  131. var oRemove = $("#fileList").find("dd");
  132. oRemove.eq(oRemove.length - 1).remove();
  133. }
  134. var $li = $(
  135. '<dd>' +
  136. '<div class="imgItem" id="' + file.id + '">' +
  137. '<img />' +
  138. '</div>' +
  139. //'<div class="info">' + file.name + '</div>' +
  140. '</dd>'
  141. ),
  142. $btns = $('<div class="file-panel">' +
  143. '<span class="cancel"></span>' +
  144. '</div>').appendTo($li),
  145. $img = $li.find('img');
  146. var $list = $("#fileList");
  147. if($len == 1) {
  148. $list.find("dd").eq(0).after($li)
  149. } else if($len == 2) {
  150. $list.find("dd").eq(1).after($li)
  151. } else {
  152. $list.prepend($li);
  153. }
  154. // 创建缩略图
  155. // 如果为非图片文件,可以不用调用此方法。
  156. // thumbnailWidth x thumbnailHeight 为 100 x 100
  157. uploader.makeThumb(file, function(error, src) {
  158. if(error) {
  159. $img.replaceWith('<span>不能预览</span>');
  160. return;
  161. }
  162. $img.attr('src', src);
  163. }, 1, 1);
  164. });
  165. uploader.onError = function(code) {
  166. $.MsgBox.Alert('提示', '请上传jpg、jpeg、png格式的图片,大小不超过2M')
  167. };
  168. uploader.on('uploadSuccess', function(file, data) {
  169. if(data.success) {
  170. temp.push(data.data[0].uri);
  171. uploader.removeFile(fileId);
  172. } else {
  173. $.MsgBox.Alert('提示', '只支持jpeg/jpg/png格式的图片');
  174. }
  175. });
  176. /*删除图片*/
  177. $("#fileList").on("click", ".cancel", function() {
  178. var flag = $(this).attr("flag");
  179. var oNum = $(this).parents("dd").index();
  180. temp.splice(oNum, 1);
  181. $(this).parent().parent().remove();
  182. var $len = $("#fileList").find("img").length;
  183. if($len != 2) {
  184. $("#fileList").append("<dd></dd>")
  185. }
  186. });
  187. /*服务名称*/
  188. $("#resourceName").bind({
  189. focus: function() {
  190. $("#resourceNamePrompt").show();
  191. },
  192. blur: function() {
  193. $("#resourceNamePrompt").hide();
  194. },
  195. keyup: function() {
  196. if($(this).val().length > 30) {
  197. $(this).val($(this).val().substr(0, 30));
  198. }
  199. }
  200. })
  201. hotKey(".oinput");
  202. //校验关键字
  203. $("#KeyWord").on({
  204. focus: function() {
  205. $("#keyPrompt").text("最多可添加5个关键词,每个关键词15字以内");
  206. },
  207. blur: function() {
  208. $("#keyPrompt").text("");
  209. }
  210. })
  211. $("#keyWordlist").on("click", ".closeThis", function() {
  212. $(this).parent().remove();
  213. var liNum = $("#keyWordlist").find("li").length;
  214. if(liNum < 5) {
  215. $("#keyWordlist").parents(".keyResult").siblings("div.col-w-12").show();
  216. }
  217. })
  218. /*厂商型号*/
  219. $("#modelNumber").bind({
  220. focus: function() {
  221. $("#model").show();
  222. },
  223. blur: function() {
  224. $("#model").hide();
  225. },
  226. keyup: function() {
  227. if($(this).val().length > 250) {
  228. $(this).val($(this).val().substr(0, 250));
  229. }
  230. },
  231. input: function() {
  232. autoGrow.call(this);
  233. }
  234. });
  235. function autoGrow() {
  236. document.getElementById("tt").style.width = this.scrollWidth + "px";
  237. document.getElementById("tt").value = this.value;
  238. this.style.height = document.getElementById("tt").scrollHeight + "px";
  239. }
  240. $("#remarkContent").bind({
  241. focus: function() {
  242. $("#remark").show();
  243. },
  244. blur: function() {
  245. $("#remark").hide();
  246. }
  247. });
  248. /*合作备注*/
  249. limitObj("#remarkContent", 1000)
  250. /*发布*/
  251. $(".goFabu").click(function() {
  252. var oYes = term();
  253. if(oYes == 0) {
  254. return;
  255. }
  256. $.MsgBox.Confirm("提示", "确认发布该服务?", ajsPost);
  257. })
  258. /*预览*/
  259. $("#oPreview").click(function() {
  260. var oYes = term();
  261. if(oYes == 0) {
  262. return;
  263. }
  264. if(sevriceId) {
  265. ajsPost("/ajax/ware/draft/update", 1);
  266. } else {
  267. ajsPost("/ajax/ware/draft", 1);
  268. }
  269. })
  270. /*存草稿*/
  271. $("#oDraft").click(function() {
  272. var oYes = term();
  273. if(oYes == 0) {
  274. return;
  275. }
  276. if(sevriceId) {
  277. ajsPost("/ajax/ware/draft/update", 2);
  278. } else {
  279. ajsPost("/ajax/ware/draft", 2);
  280. }
  281. })
  282. /*删除*/
  283. $("#operateBlocko").on("click", ".deleteResource", function() {
  284. $.MsgBox.Confirm("提示", "确认删除该服务?", deleResource);
  285. })
  286. /*删除函数*/
  287. function deleResource() {
  288. $.ajax({
  289. "url": "/ajax/ware/delete",
  290. "type": "POST",
  291. "success": function(data) {
  292. if(data.success) {
  293. location.href = "serviceList.html"
  294. }
  295. },
  296. "data": {
  297. "id": sevriceId
  298. },
  299. "beforeSend": function() { /*console.log(this.data)*/ },
  300. "contentType": "application/x-www-form-urlencoded",
  301. dataType: "json"
  302. });
  303. }
  304. /*条件是否匹配*/
  305. function term() {
  306. var reName = $.trim($("#resourceName").val());
  307. if(reName == "") {
  308. $.MsgBox.Alert('提示', '请输入服务名称。');
  309. return 0;
  310. }
  311. }
  312. function relaResource() {
  313. var arr1 = $("#expertli").find(".selectAdd"),
  314. arr2 = [];
  315. for(var i = 0; i < arr1.length; i++) {
  316. arr2.push(arr1.eq(i).parents("li").attr("data-id"));
  317. }
  318. return arr2;
  319. }
  320. function keyW() {
  321. var industrys = $("#keyWordlist li");
  322. var industryAll = "";
  323. if(industrys.size() > 0) {
  324. for(var i = 0; i < industrys.size(); i++) {
  325. industryAll += industrys[i].innerText.trim();
  326. industryAll += ',';
  327. };
  328. industryAll = industryAll.substring(0, industryAll.length - 1);
  329. }
  330. return industryAll;
  331. }
  332. /*发布函数*/
  333. function ajsPost(pa1, pa2) {
  334. var oUrl;
  335. if(sevriceId) {
  336. oUrl = "/ajax/ware/publish/update";
  337. } else {
  338. oUrl = "/ajax/ware/publish";
  339. }
  340. if(pa1) {
  341. oUrl = pa1
  342. }
  343. var $data = {
  344. owner: userid,
  345. name: $("#resourceName").val(),
  346. cooperation: $("#remarkContent").val(),
  347. keywords: keyW(),
  348. cnt: $("#modelNumber").val(),
  349. descp: ue.getContent(),
  350. images: temp.join(","),
  351. resource: relaResource()
  352. };
  353. if(sevriceId) {
  354. $data.id = sevriceId;
  355. }
  356. ajaxRequist(oUrl, $data, "POST", function(data) {
  357. if(data.success) {
  358. if(pa2 == 1) {
  359. if(!sevriceId)
  360. sevriceId = data.data;
  361. $("#deleteResource").removeClass("disableLi").addClass("deleteResource");
  362. window.open("sevricePreview.html?sevriceId=" + sevriceId);
  363. getRecourceMe();
  364. //弹出预览
  365. } else if(pa2 == 2) {
  366. $("#deleteResource").removeClass("disableLi").addClass("deleteResource");
  367. if(!sevriceId)
  368. sevriceId = data.data;
  369. $.MsgBox.Alert('提示', '服务已保存草稿。');
  370. $("#mb_msgicon").css("background", 'url("images/sign_icon_chenggong_nor.png") 0% 0% / contain');
  371. getRecourceMe();
  372. } else {
  373. $.MsgBox.Alert("提示", "服务发表成功!", function articalList() {
  374. location.href = "serviceList.html";
  375. });
  376. $("#mb_msgicon").css("background", 'url("images/sign_icon_chenggong_nor.png") 0% 0% / contain');
  377. }
  378. } else {
  379. if(data.code == 90) {
  380. $.MsgBox.Alert('提示', '由于操作时间过久,上传图片已失效,请重新上传。');
  381. }
  382. }
  383. })
  384. }
  385. $("#expertli").on("click", "li", function() {
  386. if(!$(this).find(".selectNull").hasClass("selectAdd"))
  387. if($("#expertli").find(".selectAdd").length>=5) {
  388. $.MsgBox.Alert('提示','相关资源最多选择5个');
  389. return;
  390. }
  391. $(this).find(".selectNull").toggleClass("selectAdd");
  392. });
  393. ajaxRequist("/ajax/resource/qaProPublish", {
  394. "professorId": userid
  395. }, "get", function(data) {
  396. var data = data.data,
  397. oArr = [];
  398. if(data.length == 0) {
  399. $("#expertli").addClass("displayNone").siblings(".seRe").removeClass('displayNone');
  400. } else {
  401. for(var i = 0; i < data.length; i++) {
  402. oArr.push(data[i].resourceId);
  403. var str = '<li class="listy" data-id="' + data[i].resourceId + '">' +
  404. '<p class="col-w-9 h2font ellipsisSty-2 col childElement">' + data[i].resourceName + '</p>' +
  405. '<div class="selectNull"></div></li>'
  406. $("#expertli").append(str);
  407. }
  408. if(sevriceId)
  409. ajaxRequist("/ajax/ware/res", {
  410. "id": sevriceId
  411. }, "get", function(data) {
  412. var $data = data.data;
  413. outomost:
  414. for(var i = 0; i < $data.length; i++) {
  415. for(var j = 0; j < oArr.length; j++) {
  416. if($data[i].resource === oArr[j]) {
  417. $("#expertli").find(".selectNull").eq(j).addClass("selectAdd");
  418. continue outomost;
  419. }
  420. }
  421. }
  422. })
  423. }
  424. })
  425. })