keyWord.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409
  1. $(function(){
  2. $(".enterOne").focus(function(){
  3. $(".btnChoose").show();
  4. });
  5. $('.knowBtn').on('click',function(){
  6. $(".problemPop").hide();
  7. hasWords();
  8. $(".showKeyWord ul li").each(function(){
  9. var plus = $(this).find(".modify").css("display");
  10. if(plus === "block"){
  11. $(".addKeyWord").hide();
  12. }
  13. });
  14. });
  15. $(".problem").on('click',function(){
  16. $(".problemPop").css("display",'flex');
  17. $(".addKeyWord").hide();
  18. });
  19. function hasWords () {
  20. var showKeyWordLength = $(".showKeyWord ul").find('li').length;
  21. if(showKeyWordLength === 0){
  22. $(".enter.addkeyWord").show();
  23. $(".addKeyWord").hide();
  24. $(".showKeyWord").hide();
  25. } else {
  26. $(".enter.addkeyWord").hide();
  27. $(".showKeyWord").show();
  28. // $(".addKeyWord").show();
  29. sessionStorage.IOSsession = "ios";
  30. }
  31. if (getTotal() >= wordsLimit) {
  32. $('.addKeyWord').hide()
  33. $('.keyword-more-tips').show()
  34. $('.addAdjunctWord.add-append-btn').attr('disabled', true)
  35. $('.addExclusion.add-exclude-btn').attr('disabled', true)
  36. } else {
  37. $('.addKeyWord').show()
  38. $('.keyword-more-tips').hide()
  39. $('.addAdjunctWord.add-append-btn').removeAttr('disabled')
  40. $('.addExclusion.add-exclude-btn').removeAttr('disabled')
  41. }
  42. }
  43. hasWords();
  44. //添加按钮
  45. $(".addKeyWord i").on('click',function(){
  46. sessionStorage.removeItem("keyWord");
  47. window.location.href="/front/wx_dataExport/keyWordInput";
  48. });
  49. // 添加keyWords检查输入框内是否有文字,如果有才能点击添加按钮
  50. $('.addkeyWord input.enterOne').on('input', function() {
  51. var buttonDOM = $(this).siblings()[1].children[0];
  52. if ($(this).val().replace(/\s+/g,"").length >= 1) {
  53. buttonDOM.style.opacity = 1;
  54. buttonDOM.removeAttribute("disabled");
  55. //
  56. $(this).next().find(".appended").prop("disabled", false);
  57. $(this).next().find(".exclude").prop("disabled", false);
  58. }else {
  59. buttonDOM.style.opacity = .5;
  60. buttonDOM.setAttribute("disabled", true);
  61. //
  62. $(this).next().find(".appended").prop("disabled", true);
  63. $(this).next().find(".exclude").prop("disabled", true);
  64. }
  65. });
  66. $('textarea').each(function(i,dom){
  67. // console.log(i,dom)
  68. dom.style.height = dom.scrollHeight +'px';
  69. });
  70. $("textarea").on("input", function() {
  71. this.style.height = 'auto';
  72. this.style.height = this.scrollHeight + "px";
  73. });
  74. // 添加 按钮的点击事件
  75. $('.addkeyWord .btn .save').on('click', function(){
  76. var keyWord = $('.addkeyWord input.enterOne').val();
  77. keyWord = keyWord.replace(/(^\s*)|(\s*$)/g, "");
  78. if (keyWord.length > 20) {
  79. // var s = keyWord.slice(0,19);
  80. // $('.addkeyWord input.enterOne').val(s)
  81. weui.toast('关键词不能超过20字', {
  82. duration: 2000,
  83. className: 'text-overflow100',
  84. callback: function(){}
  85. });
  86. return
  87. }
  88. var keyWordHtml = "";
  89. var html = `
  90. <li>
  91. <div class="one">
  92. <div>
  93. <span>
  94. <strong> 关键词:</strong>
  95. <p class="key">${ keyWord }</p>
  96. </span>
  97. </div>
  98. <button class="editKeyWord"><i class="iconfont icon-xiugai"></i> 修改</button>
  99. </div>
  100. <div class="modify">
  101. <textarea name="" rows="1" placeholder="" maxlength="">${ keyWord}</textarea>
  102. <button class="addAdjunctWord">编辑 附加词</button>
  103. <button class="addExclusion">添加 排除词</button>
  104. <button class="deleteKey">删除</button>
  105. <button class="ascertainKey">确定</button>
  106. </div>
  107. </li>`;
  108. if(sessionStorage.keyWord!==""&&sessionStorage.keyWord!==undefined){
  109. var keys = JSON.parse(sessionStorage.keyWord);
  110. for(var i in keys){
  111. var append = keys[i].appended;
  112. var exclude = keys[i].exclude;
  113. // keys[i].keyWord = keyWord;
  114. if(keys[i].keyWord === turn){
  115. if(keyWord !== turn){
  116. keys[i].keyWord = keyWord
  117. }
  118. keyWordArr.push(keys[i]);
  119. localStorage.setItem("keyWord", JSON.stringify(keyWordArr));
  120. //
  121. if(append !== undefined && exclude === undefined){
  122. keyWordHtml += `
  123. <li>
  124. <div class="one">
  125. <div>
  126. <span>
  127. <strong> 关键词:</strong>
  128. <p class="key">${ keys[i].keyWord }</p>
  129. </span>
  130. <span>
  131. <strong> 附加词:</strong>
  132. <p class="addition">${ append }</p>
  133. </span>
  134. </div>
  135. <button class="editKeyWord"><i class="iconfont icon-xiugai"></i> 修改</button>
  136. </div>
  137. <div class="modify">
  138. <textarea name="" rows="1" placeholder="" maxlength="">${ keys[i].keyWord}</textarea>
  139. <button class="addAdjunctWord">编辑 附加词</button>
  140. <button class="addExclusion">添加 排除词</button>
  141. <button class="deleteKey">删除</button>
  142. <button class="ascertainKey">确定</button>
  143. </div>
  144. </li>`;
  145. }else if(append === undefined && exclude !== undefined){
  146. keyWordHtml += `
  147. <li>
  148. <div class="one">
  149. <div>
  150. <span>
  151. <strong> 关键词:</strong>
  152. <p class="key">${ keys[i].keyWord }</p>
  153. </span>
  154. <span>
  155. <strong> 排除词:</strong>
  156. <p class="exclusion">${ exclude }</p>
  157. </span>
  158. </div>
  159. <button class="editKeyWord"><i class="iconfont icon-xiugai"></i> 修改</button>
  160. </div>
  161. <div class="modify">
  162. <textarea name="" rows="1" placeholder="" maxlength="">${ keys[i].keyWord}</textarea>
  163. <button class="addAdjunctWord">编辑 附加词</button>
  164. <button class="addExclusion">添加 排除词</button>
  165. <button class="deleteKey">删除</button>
  166. <button class="ascertainKey">确定</button>
  167. </div>
  168. </li>`;
  169. }else if(append !== undefined && exclude !== undefined){
  170. keyWordHtml += `
  171. <li>
  172. <div class="one">
  173. <div>
  174. <span>
  175. <strong> 关键词:</strong>
  176. <p class="key">${ keys[i].keyWord }</p>
  177. </span>
  178. <span>
  179. <strong> 附加词:</strong>
  180. <p class="addition">${ append }</p>
  181. </span>
  182. <span>
  183. <strong> 排除词:</strong>
  184. <p class="exclusion">${ exclude }</p>
  185. </span>
  186. </div>
  187. <button class="editKeyWord"><i class="iconfont icon-xiugai"></i> 修改</button>
  188. </div>
  189. <div class="modify">
  190. <textarea name="" rows="1" placeholder="" maxlength="">${ keys[i].keyWord}</textarea>
  191. <button class="addAdjunctWord">编辑 附加词</button>
  192. <button class="addExclusion">添加 排除词</button>
  193. <button class="deleteKey">删除</button>
  194. <button class="ascertainKey">确定</button>
  195. </div>
  196. </li>`;
  197. }else if(append === undefined && exclude === undefined){
  198. keyWordHtml += `
  199. <li>
  200. <div class="one">
  201. <div>
  202. <span>
  203. <strong> 关键词:</strong>
  204. <p class="key">${ keys[i].keyWord }</p>
  205. </span>
  206. </div>
  207. <button class="editKeyWord"><i class="iconfont icon-xiugai"></i> 修改</button>
  208. </div>
  209. <div class="modify">
  210. <textarea name="" rows="1" placeholder="" maxlength="">${ keys[i].keyWord}</textarea>
  211. <button class="addAdjunctWord">编辑 附加词</button>
  212. <button class="addExclusion">添加 排除词</button>
  213. <button class="deleteKey">删除</button>
  214. <button class="ascertainKey">确定</button>
  215. </div>
  216. </li>`;
  217. }
  218. keyWordHtml = keyWordHtml.replace(/,/g, " ");
  219. //
  220. $('.showKeyWord > ul').prepend(keyWordHtml);
  221. // 隐藏
  222. $(".enter.addkeyWord").hide();
  223. $(".showKeyWord").show();
  224. $(".addKeyWord").show();
  225. $('.enter.addkeyWord > input').val('');
  226. var buttonDOM = $('.enter.addkeyWord .btn button')[0];
  227. buttonDOM.style.opacity = .5;
  228. buttonDOM.setAttribute("disabled", true);
  229. sessionStorage.IOSsession = "ios";
  230. return
  231. }
  232. }
  233. }
  234. if (keyWordArr==null){
  235. keyWordArr=[];
  236. }
  237. var Obj = {"keyWord": keyWord};
  238. keyWordArr.push(Obj);
  239. localStorage.setItem("keyWord", JSON.stringify(keyWordArr));
  240. $('.showKeyWord > ul').prepend(html);
  241. // 隐藏
  242. $(".enter.addkeyWord").hide();
  243. $(".showKeyWord").show();
  244. $(".addKeyWord").show();
  245. $('.enter.addkeyWord > input').val('');
  246. var buttonDOM = $('.enter.addkeyWord .btn button')[0];
  247. buttonDOM.style.opacity = .5;
  248. buttonDOM.setAttribute("disabled", true);
  249. sessionStorage.IOSsession = "ios";
  250. hasWords();
  251. });
  252. // 编辑
  253. $(".showKeyWord").on('click', '.editKeyWord',function(e){
  254. sessionStorage.removeItem("keyWord");
  255. let oSpan = $(this).parent().siblings().children('textarea');
  256. let val = $(oSpan).val();
  257. var keyWord = $(this).prev().children().find(".key").text();
  258. for(var i in keyWordArr){
  259. if(keyWordArr[i].keyWord === keyWord){
  260. var str = "";
  261. var strs = "";
  262. if(keyWordArr[i].appended !== null&&keyWordArr[i].appended !== undefined){
  263. var appended = keyWordArr[i].appended.length;
  264. if(appended < 1){
  265. str = "添加 附加词";
  266. $(".addAdjunctWord").addClass('add-append-btn')
  267. }else{
  268. str = "编辑 附加词 ("+appended+")";
  269. $(".addAdjunctWord").removeAttr('disabled').removeClass('add-append-btn')
  270. }
  271. }else{
  272. str = "添加 附加词";
  273. $(".addAdjunctWord").addClass('add-append-btn')
  274. }
  275. $(this).parent().next().find(".addAdjunctWord").text(str);
  276. if(keyWordArr[i].exclude !== null&&keyWordArr[i].exclude !== undefined){
  277. var exclude = keyWordArr[i].exclude.length;
  278. if(exclude < 1){
  279. strs = "添加 排除词";
  280. $(".addExclusion").addClass('add-exclude-btn')
  281. }else{
  282. strs = "编辑 排除词 ("+exclude+")";
  283. $(".addExclusion").removeAttr('disabled').removeClass('add-exclude-btn')
  284. }
  285. }else{
  286. strs = "添加 排除词";
  287. $(".addExclusion").addClass('add-exclude-btn')
  288. }
  289. $(this).parent().next().find(".addExclusion").text(strs);
  290. }
  291. }
  292. $(this).parent().hide();
  293. $(this).parent().siblings().show().parent().siblings().children('.modify').hide().siblings('.one').show()
  294. $(oSpan).val('').focus().val(val);
  295. hasWords()
  296. $(".addKeyWord").hide();
  297. });
  298. var u = navigator.userAgent;
  299. var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
  300. var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
  301. if(isAndroid){
  302. //防止键盘把当前输入框给挡住
  303. $('input[type="text"],textarea').focus(function () {
  304. var target = this;
  305. setTimeout(function(){
  306. target.scrollIntoViewIfNeeded();
  307. },400);
  308. });
  309. }
  310. // 编辑删除
  311. $('.showKeyWord').on('click', '.deleteKey', function(e) {
  312. var jQueryDOM = $(this).parents('li');
  313. var keyWord = $(this).parent().prev().find('.key').text();
  314. weui.confirm('确定要删除关键词?', {
  315. buttons: [{
  316. label: '取消',
  317. type: 'default',
  318. onClick: function(){
  319. }
  320. }, {
  321. label: '确定',
  322. type: 'primary',
  323. onClick: function(){
  324. keyWordArr = keyWordArr.filter((e=>{return e.keyWord!==keyWord}));
  325. localStorage.keyWord = JSON.stringify(keyWordArr);
  326. jQueryDOM.remove();
  327. sessionStorage.removeItem("keyWord");
  328. $(".addKeyWord").show();
  329. $(".btnChoose").hide();
  330. $(".appended").text("添加 附加词");
  331. $(".exclude").text("添加 排除词");
  332. //
  333. $('.addkeyWord input.enterOne').val("");
  334. //
  335. $(".appended").prop("disabled", true);
  336. $(".exclude").prop("disabled", true);
  337. //
  338. hasWords()
  339. }
  340. }]
  341. });
  342. // console.log('删除关键词:',$(this).parent().find('span').text())
  343. })
  344. // 编辑确定
  345. $('.showKeyWord').on('click', '.ascertainKey', function(e) {
  346. var $this = $(this);
  347. // var keyWord = $(this).siblings('span').text();
  348. var keyWord = $(this).siblings('textarea').val();
  349. var keyWords = $(this).parent().prev().find('.key').text();
  350. keyWord = keyWord.replace(/(^\s*)|(\s*$)/g, "");
  351. if ($(this).parent().find("textarea").val().replace(/\s+/g,"").length < 1) {
  352. weui.toast('关键词不能为空', {
  353. duration: 2000,
  354. className: 'text-overflow100',
  355. callback: function(){
  356. }
  357. });
  358. return
  359. }else if($(this).parent().find("textarea").val().length > 20){
  360. // var s = $(this).parent().find("span").text().slice(0,19);
  361. // $(this).parent().find("span").text(s);
  362. weui.toast('关键词不能超过20字', {
  363. duration: 2000,
  364. className: 'text-overflow100',
  365. callback: function(){}
  366. });
  367. return
  368. }else{
  369. for(var i in keyWordArr){
  370. if(keyWord !== keyWords){
  371. if(keyWordArr[i].keyWord === keyWord){
  372. weui.toast('关键词重复了', {
  373. duration: 2000,
  374. className: 'text-overflow100',
  375. callback: function(){}
  376. });
  377. return
  378. }
  379. }
  380. if(keyWordArr[i].keyWord === keyWords){
  381. keyWordArr[i].keyWord = keyWord;
  382. }
  383. }
  384. localStorage.keyWord = JSON.stringify(keyWordArr);
  385. $this.parent().siblings().find('.key').text(keyWord)
  386. $this.parent().hide().siblings().show()
  387. }
  388. // $(".addKeyWord").show();
  389. hasWords()
  390. })
  391. //去空格方法
  392. String.prototype.trim = function(){
  393. return this.replace(/(^\s*)|(\s*$)/g, ' ');
  394. }
  395. })