show_other.js 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. $(function () {
  2. var request = getRequest();
  3. if (
  4. JSON.stringify(request) == "{}" ||
  5. request.id === undefined ||
  6. request.q === undefined ||
  7. request.t === undefined
  8. ) {
  9. console.log("argument error.");
  10. return;
  11. }
  12. var keywordControl = $("#keyword");
  13. if (request.q !== undefined) keywordControl.val(request.q);
  14. $("#search").on("click", function (e) {
  15. e.preventDefault();
  16. var inputValue = keywordControl.val().trim();
  17. if (inputValue === "" || inputValue.replace(/[-_—]/g, "") === "") {
  18. keywordControl.focus();
  19. return;
  20. }
  21. var keylist = encodeURIComponent(inputValue);
  22. window.location.href = "list_index.html?q=" + keylist + (request.t === undefined ? "" : "&t=" + request.t);
  23. });
  24. $("#keyword").on("keyup", function (e) {
  25. e.preventDefault();
  26. if (e.keyCode === 13) {
  27. $("#search").click();
  28. }
  29. });
  30. $('#loading').modal('show');
  31. fetchJSON("/api/resource/up/view?id=" + request.id, {}, "get", function (ret) {
  32. $('#loading').modal('hide');
  33. if (ret.code !== 0) console.log(ret.msg);
  34. });
  35. fetchJSON("/api/resource/info?id=" + request.id, {}, "get", function (ret) {
  36. if (ret.code === 0) {
  37. var resource = ret.data;
  38. fetchJSON(
  39. "/api/query/query",
  40. {keyword: combineKeysToArray(resource.resourceName), type: request.t, page: 0, size: 10},
  41. "post",
  42. function (ret) {
  43. if (ret.code === 0) {
  44. if (ret.data.resources.length != 0) {
  45. $("#relatedResourcesWrapper").css("display", "block");
  46. fillRelatedResourceList(ret.data.resources, request.t, $("#relatedResources"), request.q);
  47. }
  48. } else console.log(ret.msg);
  49. }
  50. );
  51. $("#title").html(resource.resourceName);
  52. $("#department").html(resource.submitDepartment);
  53. $("#author").html(resource.resourceAuthor);
  54. $("#submitDate").html(toDateString(resource.resourceCompletionDate));
  55. $("#format").html(getFileExt(resource.resourceUrl));
  56. var starWrapper = $("<div>", {class: "star pull-left", style: "margin-bottom: 50px;"});
  57. var starSpan = $("<span>", {text: "满意度:"});
  58. starWrapper.append(starSpan);
  59. var b = parseInt(resource.satisfaction / 20);
  60. var c = resource.satisfaction % 20 == 0 ? 0 : 1;
  61. var rank = b + c;
  62. for (var j = 0; j < 5; j++) {
  63. if (j < rank)
  64. starWrapper.append(
  65. $("<span>", {
  66. id: "star" + j,
  67. class: "satisfaction icon cur",
  68. style: "cursor: pointer;",
  69. html: "&#xe644; &nbsp;"
  70. })
  71. );
  72. else
  73. starWrapper.append(
  74. $("<span>", {
  75. id: "star" + j,
  76. class: "satisfaction icon",
  77. style: "cursor: pointer;",
  78. html: "&#xe644; &nbsp;"
  79. })
  80. );
  81. }
  82. var url = resource.resourceUrl.toLowerCase();
  83. var player = $("<textarea>", {
  84. id: "player",
  85. class: "form-control",
  86. rows: 15,
  87. style: "resize: none; background-color:transparent; border: 0;"
  88. });
  89. $("#playerWrapper")
  90. .append($("<h4>", {text: "简要内容", style: "color: blue;"}))
  91. .append($("<br>"))
  92. .append(player);
  93. player.html(resource.description);
  94. $("#playerWrapper")
  95. .append($("<h4>", {text: "可用操作", style: "margin-top: 40px; color: blue;"}))
  96. .append($("<hr>"))
  97. .append(starWrapper);
  98. fetchJSON("/api/resource/downloadPermission", {}, "get", function (ret) {
  99. if (ret.code === 0) {
  100. if (ret.data === true) {
  101. $("#playerWrapper").append(
  102. $("<button>", {
  103. id: "download",
  104. class: "btn btn-primary icon pull-right",
  105. download: "",
  106. html: "&#xe6fe; 点击下载 (已下载" + resource.downloadTimes + "次)"
  107. })
  108. );
  109. var times = resource.downloadTimes;
  110. $("#download").on("click", function (e) {
  111. downloadResource("/api/resource/download?id=" + request.id);
  112. times++;
  113. $("#download").html("&#xe6fe; 点击下载 (已下载" + times + "次)");
  114. });
  115. }
  116. } else {
  117. console.log(ret.msg);
  118. }
  119. });
  120. fetchJSON("/api/user/isCollected?id="+resource.id,{}, "get", function (ret) {
  121. if (ret.code === 0) {
  122. $("#playerWrapper").prepend(
  123. $("<button>", {
  124. id: "collect",
  125. class: "btn btn-primary icon pull-right",
  126. style:"margin-right :10px",
  127. html: "&#xe6fe; 点击收藏"
  128. })
  129. );
  130. $("#collect").on("click", function (e) {
  131. collectResource(resource.id,1);
  132. $("#collect").hide();
  133. $("#collect1").show();
  134. });
  135. $("#playerWrapper").prepend(
  136. $("<button>", {
  137. id: "collect1",
  138. class: "btn btn-danger icon pull-right",
  139. style:"margin-right :10px",
  140. html: "&#xe6fe; 取消收藏"
  141. })
  142. );
  143. $("#collect1").on("click", function (e) {
  144. collectResource(resource.id,0);
  145. $("#collect").show();
  146. $("#collect1").hide();
  147. });
  148. if (ret.data === false) {
  149. $("#collect1").hide();
  150. }else
  151. {
  152. $("#collect").hide();
  153. }
  154. } else {
  155. console.log(ret.msg);
  156. }
  157. });
  158. $(".satisfaction").hover(
  159. function (e) {
  160. var id = this.id.replace("star", "");
  161. for (var i = 0; i <= id; i++) $("#star" + i).addClass("cur");
  162. },
  163. function (e) {
  164. for (var i = 0; i < 5; i++) if (i > rank - 1) $("#star" + i).removeClass("cur");
  165. }
  166. );
  167. $(".satisfaction").on("click", function (e) {
  168. var id = parseInt(this.id.replace("star", ""));
  169. rank = parseInt(id + 1);
  170. fetchJSON(
  171. "/api/resource/satisfaction?id=" + resource.id + "&satisfaction=" + (parseInt(id) + 1) * 20,
  172. {},
  173. "post",
  174. function (ret) {
  175. if (ret.code !== 0) console.log(ret.msg);
  176. }
  177. );
  178. });
  179. }
  180. else {
  181. console.log(ret.msg);
  182. }
  183. });
  184. fetchJSON("/api/query/related", {keyword: combineKeysToArray(request.q)}, "post", function (ret) {
  185. if (ret.code === 0) {
  186. if (ret.data.length != 0) {
  187. $("#relatedKeywordsWrapper").css("display", "block");
  188. fillRelatedKeywordList(ret.data, request.t, $("#relatedKeywords"));
  189. }
  190. } else {
  191. console.log(ret.msg);
  192. }
  193. });
  194. });