portal html css js resource

cmp-serviceIssue.js 17KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648
  1. $(function() {
  2. var orgId = $.cookie('orgId');
  3. var oProfessor = [];
  4. var sevriceId = GetQueryString("sevriceId");
  5. var re, reEnd, ue = UE.getEditor('editor', {}),
  6. temp = [];
  7. if(orgId == "" || orgId == null || orgId == "null") {
  8. location.href = "cmp-settled-log.html";
  9. }
  10. if(sevriceId) {
  11. $("#deleteResource").removeClass("disableLi").addClass("deleteResource");
  12. getRecourceMe();
  13. }
  14. function ajaxRequist(url, obj, type, fn) {
  15. $.ajax({
  16. url: url,
  17. data: obj,
  18. dataType: 'json', //服务器返回json格式数据
  19. type: type, //支持'GET'和'POST'
  20. traditional: true,
  21. success: function(data) {
  22. if(data.success) {
  23. fn(data)
  24. }
  25. },
  26. error: function(xhr, type, errorThrown) {
  27. $.MsgBox.Alert('提示', '服务器请求失败');
  28. }
  29. });
  30. } /*获取资源信息*/
  31. function getRecourceMe() {
  32. $.ajax({
  33. "url": "/ajax/ware/qo",
  34. "type": "GET",
  35. "success": function(data) {
  36. console.log(data);
  37. if(data.success) {
  38. $("#uploadDd").siblings().remove();
  39. $("#fileList").append("<dd></dd><dd></dd>");
  40. temp = [];
  41. resourceHtml(data.data);
  42. }
  43. },
  44. "data": {
  45. "id": sevriceId
  46. },
  47. dataType: "json",
  48. 'error': function() {
  49. $.MsgBox.Alert('提示', '服务器连接超时!');
  50. }
  51. });
  52. }
  53. /*处理资源html代码*/
  54. function resourceHtml($da) {
  55. $("#resourceName").val($da.name); //名字
  56. if($da.cnt) { //厂商型号
  57. $("#modelNumber").val($da.cnt);
  58. autoGrow.call($("#modelNumber")[0])
  59. }
  60. if($da.cooperation) { //合作备注
  61. $("#remarkContent").val($da.cooperation);
  62. }
  63. if($da.keywords) {
  64. var oSub = $da.keywords.split(",");
  65. var oSt = "";
  66. for(var i = 0; i < oSub.length; i++) {
  67. oSt += '<li>' + oSub[i] + '<div class="closeThis"></div></li>'
  68. }
  69. $("#keyWordlist").html(oSt);
  70. if(oSub.length > 4) {
  71. $("#KeyWord").parent().addClass("displayNone");
  72. }
  73. } else {
  74. $("#keyWordlist").html("");
  75. }
  76. if($da.descp) { //编辑器
  77. ue.ready(function() {
  78. ue.setContent($da.descp);
  79. });
  80. }
  81. if($da.images) {
  82. var arr = [];
  83. var oImg = $da.images.split(",");
  84. for(var i = 0; i < oImg.length; i++) {
  85. var oString = '<dd>' +
  86. '<div class="imgItem">' +
  87. '<img src="' + "/data/ware" + oImg[i] + '"/>' +
  88. '</div>' +
  89. '<div class="file-panel">' +
  90. '<span class="cancel" flag=1></span>' +
  91. '</div>' +
  92. '</dd>'
  93. arr[i] = oString;
  94. temp[i] = oImg[i];
  95. }
  96. $("#fileList dd").eq(2).remove();
  97. if(oImg.length == 1) {
  98. $("#fileList").prepend(arr[0]);
  99. } else if(oImg.length == 2) {
  100. $("#fileList dd").eq(1).remove();
  101. $("#fileList").prepend(arr[1]);
  102. $("#fileList").prepend(arr[0]);
  103. } else if(oImg.length == 3) {
  104. $("#fileList dd").eq(1).remove();
  105. $("#fileList").prepend(arr[2]);
  106. $("#fileList").prepend(arr[1]);
  107. $("#fileList").prepend(arr[0]);
  108. }
  109. }
  110. }
  111. var uploader = WebUploader.create({
  112. auto: true,
  113. fileNumLimit: 3,
  114. swf: '../js/webuploader/Uploader.swf',
  115. server: '/ajax/ware/upload',
  116. fileSingleSizeLimit: 2 * 1024 * 1024,
  117. pick: {
  118. id: "#filePicker",
  119. multiple: false
  120. },
  121. accept: {
  122. title: 'Images',
  123. extensions: 'jpg,jpeg,png',
  124. mimeTypes: 'image/jpg,image/png,image/jpeg'
  125. }
  126. });
  127. // 当有文件添加进来的时候
  128. uploader.on('fileQueued', function(file) {
  129. var $len = $("#fileList").find("img").length;
  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. } else {
  172. $.MsgBox.Alert('提示', '只支持jpeg/jpg/png格式的图片');
  173. }
  174. });
  175. /*删除图片*/
  176. $("#fileList").on("click", ".cancel", function() {
  177. var flag = $(this).attr("flag");
  178. var oNum = $(this).parents("dd").index();
  179. temp.splice(oNum, 1);
  180. $(this).parent().parent().remove();
  181. var $len = $("#fileList").find("img").length;
  182. if($len != 2) {
  183. $("#fileList").append("<dd></dd>")
  184. }
  185. });
  186. /*服务名称*/
  187. $("#resourceName").bind({
  188. focus: function() {
  189. $("#resourceNamePrompt").show();
  190. },
  191. blur: function() {
  192. $("#resourceNamePrompt").hide();
  193. },
  194. keyup: function() {
  195. if($(this).val().length > 30) {
  196. $(this).val($(this).val().substr(0, 30));
  197. }
  198. }
  199. })
  200. hotKey(".oinput");
  201. //校验关键字
  202. $("#KeyWord").on({
  203. focus: function() {
  204. $("#keyPrompt").text("最多可添加5个关键词,每个关键词15字以内");
  205. },
  206. blur: function() {
  207. $("#keyPrompt").text("");
  208. }
  209. })
  210. $("#keyWordlist").on("click", ".closeThis", function() {
  211. $(this).parent().remove();
  212. var liNum = $("#keyWordlist").find("li").length;
  213. if(liNum < 5) {
  214. $("#keyWordlist").parents(".keyResult").siblings("div.col-w-12").show();
  215. }
  216. })
  217. /*厂商型号*/
  218. $("#modelNumber").bind({
  219. focus: function() {
  220. $("#model").show();
  221. },
  222. blur: function() {
  223. $("#model").hide();
  224. },
  225. keyup: function() {
  226. if($(this).val().length > 250) {
  227. $(this).val($(this).val().substr(0, 250));
  228. }
  229. },
  230. input: function() {
  231. autoGrow.call(this);
  232. }
  233. });
  234. function autoGrow() {
  235. document.getElementById("tt").style.width = this.scrollWidth + "px";
  236. document.getElementById("tt").value = this.value;
  237. this.style.height = document.getElementById("tt").scrollHeight + "px";
  238. }
  239. $("#remarkContent").bind({
  240. focus: function() {
  241. $("#remark").show();
  242. },
  243. blur: function() {
  244. $("#remark").hide();
  245. }
  246. });
  247. /*合作备注*/
  248. limitObj("#remarkContent", 1000);
  249. /*发布*/
  250. $(".goFabu").click(function() {
  251. var oYes = term();
  252. if(oYes == 0) {
  253. return;
  254. }
  255. $.MsgBox.Confirm("提示", "确认发布该服务?", ajsPost);
  256. })
  257. /*预览*/
  258. $("#oPreview").click(function() {
  259. var oYes = term();
  260. if(oYes == 0) {
  261. return;
  262. }
  263. if(sevriceId) {
  264. ajsPost("/ajax/ware/draft/org/update", 1);
  265. } else {
  266. ajsPost("/ajax/ware/draft/org", 1);
  267. }
  268. })
  269. /*存草稿*/
  270. $("#oDraft").click(function() {
  271. var oYes = term();
  272. if(oYes == 0) {
  273. return;
  274. }
  275. if(sevriceId) {
  276. ajsPost("/ajax/ware/draft/org/update", 2);
  277. } else {
  278. ajsPost("/ajax/ware/draft/org", 2);
  279. }
  280. })
  281. /*删除*/
  282. $("#operateBlocko").on("click", ".deleteResource", function() {
  283. $.MsgBox.Confirm("提示", "确认删除该服务?", deleResource);
  284. })
  285. /*删除函数*/
  286. function deleResource() {
  287. $.ajax({
  288. "url": "/ajax/ware/delete",
  289. "type": "POST",
  290. "success": function(data) {
  291. if(data.success) {
  292. location.href = "cmp-serviceList.html"
  293. }
  294. },
  295. "data": {
  296. "id": sevriceId
  297. },
  298. "beforeSend": function() { /*console.log(this.data)*/ },
  299. "contentType": "application/x-www-form-urlencoded",
  300. dataType: "json"
  301. });
  302. }
  303. /*条件是否匹配*/
  304. function term() {
  305. var reName = $.trim($("#resourceName").val());
  306. if(reName == "") {
  307. $.MsgBox.Alert('提示', '请输入服务名称。');
  308. return 0;
  309. }
  310. }
  311. function keyW() {
  312. var industrys = $("#keyWordlist li");
  313. var industryAll = "";
  314. if(industrys.size() > 0) {
  315. for(var i = 0; i < industrys.size(); i++) {
  316. industryAll += industrys[i].innerText.trim();
  317. industryAll += ',';
  318. };
  319. industryAll = industryAll.substring(0, industryAll.length - 1);
  320. }
  321. return industryAll;
  322. }
  323. /*发布函数*/
  324. function ajsPost(pa1, pa2) {
  325. var oUrl;
  326. if(sevriceId) {
  327. oUrl = "/ajax/ware/publish/org/update";
  328. } else {
  329. oUrl = "/ajax/ware/publish/org";
  330. }
  331. if(pa1) {
  332. oUrl = pa1
  333. }
  334. var $data = {
  335. owner: orgId,
  336. name: $("#resourceName").val(),
  337. cooperation: $("#remarkContent").val(),
  338. keywords: keyW(),
  339. cnt: $("#modelNumber").val(),
  340. descp: ue.getContent(),
  341. images: temp.join(","),
  342. resource: resourcesli(),
  343. professor: oProfessor
  344. };
  345. if(sevriceId) {
  346. $data.id = sevriceId;
  347. }
  348. ajaxRequist(oUrl, $data, "POST", function(data) {
  349. if(data.success) {
  350. if(pa2 == 1) {
  351. if(!sevriceId)
  352. sevriceId = data.data;
  353. $("#deleteResource").removeClass("disableLi").addClass("deleteResource");
  354. window.open("../sevricePreview.html?sevriceId=" + sevriceId);
  355. getRecourceMe();
  356. //弹出预览
  357. } else if(pa2 == 2) {
  358. $("#deleteResource").removeClass("disableLi").addClass("deleteResource");
  359. if(!sevriceId)
  360. sevriceId = data.data;
  361. $.MsgBox.Alert('提示', '服务已保存草稿。');
  362. $("#mb_msgicon").css("background", 'url("images/sign_icon_chenggong_nor.png") 0% 0% / contain');
  363. getRecourceMe();
  364. } else {
  365. $.MsgBox.Alert('提示', '服务发布成功!');
  366. $("#mb_msgicon").css("background", 'url("images/sign_icon_chenggong_nor.png") 0% 0% / contain');
  367. location.href = "cmp-serviceList.html"
  368. }
  369. } else {
  370. if(data.code == 90) {
  371. $.MsgBox.Alert('提示', '由于操作时间过久,上传图片已失效,请重新上传。');
  372. }
  373. }
  374. })
  375. }
  376. function UnauthorizedUser() {
  377. $.ajax({
  378. url: "/ajax/professor/qaOrgAuth",
  379. type: "GET",
  380. timeout: 10000,
  381. dataType: "json",
  382. async: "false",
  383. data: {
  384. "orgId": orgId,
  385. "orgAuth": 1
  386. },
  387. success: function(data, textState) {
  388. if(data.success) {
  389. console.log(data);
  390. unauthUser(data.data);
  391. }
  392. },
  393. error: function(XMLHttpRequest, textStats, errorThrown) {
  394. $.MsgBox.Alert('提示', '服务器请求失败')
  395. }
  396. })
  397. }
  398. UnauthorizedUser();
  399. function unauthUser($res) {
  400. if(sevriceId) {
  401. selUse();
  402. }
  403. var osting = ""
  404. for(var i = 0; i < $res.length; i++) {
  405. var img;
  406. //var styC="";
  407. var oClass = autho($res[i].authType, $res[i].orgAuth, $res[i].authStatus);
  408. var oTitle = "";
  409. /*if(!resourceId) {
  410. }*/
  411. if($res[i].title) {
  412. oTitle = $res[i].title;
  413. } else {
  414. if($res[i].office) {
  415. oTitle = $res[i].office;
  416. }
  417. }
  418. if($res[i].hasHeadImage) {
  419. img = "/images/head/" + $res[i].id + "_l.jpg";
  420. } else {
  421. img = "../images/default-photo.jpg"
  422. }
  423. var oSt = '<li class="flexCenter" style="cursor:pointer;" id="' + $res[i].id + '">'
  424. oSt += '<div class="madiaHead useHead" id="userimg" style="background-image: url(' + img + ');"></div>'
  425. oSt += '<div class = "madiaInfo">'
  426. oSt += '<p class = "ellipsisSty">'
  427. oSt += '<span class = "h1Font" id="name">' + $res[i].name + '</span><em class="authicon ' + oClass.sty + '" title="' + oClass.title + '"></em >'
  428. oSt += '</p>'
  429. oSt += '<p class="h2Font ellipsisSty">' + oTitle + '</p>'
  430. oSt += '</div>'
  431. oSt += '<div class="selectNull " flag=1></div>'
  432. oSt += '</li>'
  433. osting += oSt;
  434. }
  435. $("#expertli").html(osting);
  436. }
  437. /*选择用户*/
  438. $("#expertli").on("click", "li", function() {
  439. var userL = $("#expertli").find(".selectAdd").length;
  440. var oSel = $(this).find(".selectAdd").length;
  441. var oId = $(this).attr("id");
  442. $("#linkman").text("");
  443. if(oSel == 0) {
  444. if(userL == 5) {
  445. $("#linkman").text("最多可选5个负责人");
  446. return;
  447. }
  448. $(this).find('[flag]').addClass("selectAdd");
  449. oProfessor.push(oId);
  450. } else {
  451. $(this).find('[flag]').removeClass("selectAdd");
  452. for(var i = 0; i < oProfessor.length; i++) {
  453. if(oId == oProfessor[i]) {
  454. oProfessor.splice(i, 1);
  455. }
  456. }
  457. }
  458. });
  459. function selUse() {
  460. $.ajax({
  461. url: "/ajax/ware/pro",
  462. type: "GET",
  463. timeout: 10000,
  464. dataType: "json",
  465. async: true,
  466. data: {
  467. "id": sevriceId,
  468. },
  469. success: function(data) {
  470. console.log(data)
  471. if(data.success) {
  472. var arr = [];
  473. var arr1 = [];
  474. var oLength = $("#expertli").find("li");
  475. for(var i = 0; i < data.data.length; i++) {
  476. arr1.push(data.data[i].id);
  477. }
  478. for(var i = 0; i < oLength.length; i++) {
  479. arr.push(oLength.eq(i).attr("id"));
  480. }
  481. for(var i = 0; i < arr1.length; i++) {
  482. oProfessor.push(arr1[i]);
  483. oLength.eq(arr.indexOf(arr1[i])).find("[flag]").addClass("selectAdd")
  484. }
  485. }
  486. },
  487. error: function(XMLHttpRequest, textStats, errorThrown) {
  488. $.MsgBox.Alert('提示', '服务器请求失败')
  489. }
  490. })
  491. }
  492. $("#checkZy").on("keyup", function() {
  493. var ti = $(this).val();
  494. re = ti;
  495. if($(this).val() == "") {
  496. return;
  497. }
  498. var _this = this;
  499. setTimeout(function() {
  500. if(ti === re && ti !== reEnd) {
  501. checkZy(_this, ti);
  502. }
  503. }, 500)
  504. })
  505. $("#checkZy").on("focus", function() {
  506. $(this).prev().find("span").text("最多选择5个资源");
  507. })
  508. $("#checkZy").on("blur", function() {
  509. $(this).prev().find("span").text("");
  510. })
  511. function checkZy(_this, prd) {
  512. reEnd = prd;
  513. $.ajax({
  514. "url": "/ajax/resource/lq/publish/org",
  515. "type": "get",
  516. "data": {
  517. "orgid": orgId,
  518. "resourceName": $("#checkZy").val(),
  519. "rows": 5
  520. },
  521. "success": function(data) {
  522. console.log(data);
  523. if(data.success) {
  524. if(data.data != "") {
  525. if(reEnd == prd) {
  526. $(_this).next().removeClass("displayNone");
  527. $("#resouselist").html("");
  528. for(var i = 0; i < data.data.length; i++) {
  529. var itemlist = '<li id="usid" class="flexCenter" >' +
  530. '<p class="h1Font ellipsisSty-2 childElement" id="resourceName"></p>' +
  531. '<div class="deleteThis"></div></li>'
  532. $itemlist = $(itemlist);
  533. $("#resouselist").append($itemlist);
  534. var datalist = data.data[i];
  535. $itemlist.attr("data-id", datalist.resourceId);
  536. $itemlist.find("#resourceName").text(datalist.resourceName);
  537. }
  538. }
  539. } else {
  540. $(_this).next().addClass("displayNone");
  541. }
  542. } else {
  543. $(_this).next().addClass("displayNone");
  544. }
  545. },
  546. "error": function() {
  547. $.MsgBox.Alert('提示', '链接服务器超时')
  548. }
  549. });
  550. }
  551. $("#resouselist").on("click", "li", function() {
  552. var _this = this;
  553. expertlist(_this, "该资源已选择");
  554. });
  555. function resourcesli() {
  556. var resourcesarray = [];
  557. $("#resources li").each(function(i) {
  558. var liid = $(this).attr("data-id");
  559. resourcesarray.push(liid);
  560. });
  561. return resourcesarray;
  562. }
  563. //点击右侧搜索出的专家和资源列表
  564. function expertlist(_this, title) {
  565. var liId = $(_this).html();
  566. var plength = $(_this).parents(".otherBlock").find(".addexpert li");
  567. for(var i = 0; i < plength.length; i++) {
  568. if(plength[i].innerHTML == liId) {
  569. $(_this).parents(".otherBlock").find(".aboutTit span").text(title);
  570. $(_this).parents(".otherBlock").find(".form-drop").addClass("displayNone");
  571. $(_this).parents(".otherBlock").find("input").val("");
  572. return;
  573. }
  574. }
  575. console.log(plength.length)
  576. if(plength.length >= 4) {
  577. $(_this).parents(".otherBlock").find("input").hide();
  578. $(_this).parents(".otherBlock").find(".addexpert").append($(_this).clone());
  579. $(_this).parents(".otherBlock").find("input").val("");
  580. $(_this).parents(".otherBlock").find(".form-drop").addClass("displayNone");
  581. } else {
  582. $(_this).parents(".otherBlock").find(".addexpert").append($(_this).clone());
  583. $(_this).parents(".otherBlock").find("input").val("");
  584. $(_this).parents(".otherBlock").find(".form-drop").addClass("displayNone");
  585. }
  586. }
  587. //删除右侧搜索出的专家和资源
  588. $(".addexpert").on("click", ".deleteThis", function() {
  589. var plength = $(this).parent().parent().find("li").length;
  590. if(plength < 6) {
  591. $(this).parents(".otherBlock").find("input").show();
  592. }
  593. $(this).parent().remove();
  594. })
  595. if(sevriceId) {
  596. ajaxRequist("/ajax/ware/res", {
  597. "id": sevriceId
  598. }, "get", function(data) {
  599. var $data = data.data;
  600. if($data.length>=5) {
  601. $("#checkZy").hide();
  602. }
  603. for(var i = 0; i < $data.length; i++) {
  604. (function(i) {
  605. ajaxRequist("/ajax/resource/queryOne", {
  606. "resourceId": $data[i].resource
  607. }, "get", function(data) {
  608. var $data = data.data;
  609. var itemlist = '<li id="usid" class="flexCenter" >' +
  610. '<p class="h1Font ellipsisSty-2 childElement" id="resourceName"></p>' +
  611. '<div class="deleteThis"></div></li>'
  612. var datalist = data.data;
  613. var $itemlist=$(itemlist);
  614. $("#resources").append($itemlist);
  615. $itemlist.attr("data-id", datalist.resourceId);
  616. $itemlist.find("#resourceName").text(datalist.resourceName);
  617. })
  618. })(i)
  619. }
  620. })
  621. }
  622. })