portal html css js resource

resourceIssue.js 14KB

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