additionWord.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405
  1. $(function(){
  2. $('.knowBtn').on('click',function(){
  3. $(".problemPop").hide()
  4. })
  5. $(".problem").on('click',function(){
  6. $(".problemPop").css("display",'flex');
  7. })
  8. function hasWords () {
  9. // var showKeyWordLength = $(".showKeyWord ul").find('li').length;
  10. // if(showKeyWordLength === 0){
  11. // $(".addkeyWord").show();
  12. // } else {
  13. // $(".addkeyWord").hide();
  14. // }
  15. $(".enter").hide();
  16. }
  17. // 把所有的附加词添加到数组里面
  18. var additionArr = []
  19. // 获取地址栏参数
  20. var addkey = location.search
  21. console.log(addkey)
  22. // 获取关键词设置
  23. if(addkey == '?addkey'){
  24. $(".addKeyWord i").hide()
  25. sessionStorage.setItem('ismodify',0)
  26. // if(JSON.stringify(additionArr) == '[]'){
  27. // sessionStorage.setItem('noaddition_key',JSON.stringify(additionArr))
  28. // }else{
  29. // sessionStorage.setItem('noaddition_key',JSON.stringify(unique(additionArr)))
  30. // }
  31. if(sessionStorage.getItem('iconClick') == 1){
  32. if(sessionStorage.getItem('isadd') == 1){
  33. console.log(JSON.parse(sessionStorage.getItem('addition_key')))
  34. additionArr = JSON.parse(sessionStorage.getItem('addition_key'))
  35. if(JSON.stringify(additionArr) == '[]'|| additionArr == null){
  36. $(".addKeyWord i").hide()
  37. }else{
  38. hasWords()
  39. $(".addKeyWord i").show()
  40. }
  41. var data = {
  42. course:additionArr
  43. }
  44. var comHTML = template('appendKeyWords',data)
  45. $('.showKeyWord>ul').html(comHTML)
  46. }
  47. }else{
  48. if(sessionStorage.getItem('isadd') == 1){
  49. console.log(JSON.parse(sessionStorage.getItem('noaddition_key')))
  50. noadditionArr = JSON.parse(sessionStorage.getItem('noaddition_key'))
  51. if(JSON.stringify(noadditionArr) == '[]'|| noadditionArr == null){
  52. $(".addKeyWord i").hide()
  53. }else{
  54. hasWords()
  55. $(".addKeyWord i").show()
  56. }
  57. var data = {
  58. course:noadditionArr
  59. }
  60. var comHTML = template('appendKeyWords',data)
  61. $('.showKeyWord>ul').html(comHTML)
  62. additionArr = noadditionArr
  63. }else{
  64. console.log(JSON.parse(sessionStorage.getItem('noaddition_key')))
  65. noadditionArr = JSON.parse(sessionStorage.getItem('noaddition_key'))
  66. if(JSON.stringify(noadditionArr) == '[]'|| noadditionArr == null){
  67. $(".addKeyWord i").hide()
  68. }else{
  69. hasWords()
  70. $(".addKeyWord i").show()
  71. }
  72. var data = {
  73. course:noadditionArr
  74. }
  75. var comHTML = template('appendKeyWords',data)
  76. $('.showKeyWord>ul').html(comHTML)
  77. // additionArr = noadditionArr
  78. }
  79. }
  80. }else{
  81. sessionStorage.setItem('ismodify',1)
  82. if(sessionStorage.getItem('isadd') == 0){
  83. vTools.ajax({
  84. url:'/subscribe/key/get',
  85. type:'POST',
  86. data:{},
  87. success:function(res) {
  88. console.log(res)
  89. var classindex = sessionStorage.getItem('classindex')
  90. if(res.data.data.length == classindex){
  91. classindex = parseInt(classindex)-1
  92. }else{
  93. classindex = sessionStorage.getItem('classindex')
  94. }
  95. var indexclick = sessionStorage.getItem('indexclick')
  96. console.log(res.data.data[classindex].a_key[indexclick].appendkey)
  97. if(res.data.data[classindex].a_key[indexclick].appendkey == null){
  98. res.data.data[classindex].a_key[indexclick].appendkey = []
  99. }
  100. additionArr = res.data.data[classindex].a_key[indexclick].appendkey
  101. if(JSON.stringify(additionArr) == '[]'){
  102. $(".addKeyWord i").hide()
  103. }else{
  104. hasWords()
  105. }
  106. var data = {
  107. course:additionArr
  108. }
  109. var comHTML = template('appendKeyWords',data)
  110. $('.showKeyWord>ul').html(comHTML)
  111. },
  112. error:function(err) {
  113. console.log(err)
  114. }
  115. })
  116. }else{
  117. console.log(JSON.parse(sessionStorage.getItem('addition_key')))
  118. additionArr = JSON.parse(sessionStorage.getItem('addition_key'))
  119. if(JSON.stringify(additionArr) == '[]'){
  120. $(".addKeyWord i").hide()
  121. }else{
  122. hasWords()
  123. }
  124. var data = {
  125. course:additionArr
  126. }
  127. var comHTML = template('appendKeyWords',data)
  128. $('.showKeyWord>ul').html(comHTML)
  129. }
  130. }
  131. // 添加按钮
  132. $(".addKeyWord i").on('click',function(){
  133. $(".addkeyWord").show()
  134. $(this).hide()
  135. $(".addkeyWord input").focus()
  136. $('.showKeyWord').find('.one').show()
  137. $('.showKeyWord').find('.modify').hide()
  138. })
  139. // 输入框自适应高度
  140. $('textarea').each(function(i,dom){
  141. // console.log(i,dom)
  142. dom.style.height = dom.scrollHeight +'px';
  143. })
  144. $("textarea").on("input", function() {
  145. this.style.height = 'auto';
  146. this.style.height = this.scrollHeight + "px";
  147. })
  148. // 添加keyWords检查输入框内是否有文字,如果有才能点击添加按钮
  149. $('.addkeyWord input.enterOne').on('input', function() {
  150. if ($(this).val().length >= 100) {
  151. var s = $(this).val().slice(0,100)
  152. $(this).val(s)
  153. weui.toast('排除词不能超过100字', {
  154. duration: 2000,
  155. className: 'text-overflow100',
  156. callback: function(){ console.log('close') }
  157. });
  158. return
  159. }
  160. var buttonDOM = $(this).siblings().find('button')[0]
  161. if ($(this).val().length >= 1) {
  162. buttonDOM.style.opacity = 1
  163. buttonDOM.removeAttribute("disabled")
  164. } else {
  165. buttonDOM.style.opacity = .5
  166. buttonDOM.setAttribute("disabled", true)
  167. }
  168. })
  169. // 添加 按钮的点击事件
  170. $('.addkeyWord .btn button').on('click', function(){
  171. // var timestamp = new Date().getTime();//动态生成不同的id,因为id唯一不能重复,所以 用时间戳 代替 防止重复
  172. // console.log(timestamp)
  173. var keyWord = $('.addkeyWord input.enterOne').val()
  174. // 去空格
  175. keyWord = keyWord.replace(/\s+/g, ' ').trim();
  176. var html = `<li>
  177. <div class="one">
  178. <div>
  179. <span>
  180. <p class="key">${ keyWord }</p>
  181. </span>
  182. </div>
  183. <button class="editKeyWord"><i class="iconfont icon-xiugai"></i> 修改</button>
  184. </div>
  185. <div class="modify">
  186. <textarea name="" rows="1" placeholder="" maxlength="20">${ keyWord}</textarea>
  187. <button class="deleteKey">删除</button>
  188. <button class="ascertainKey">确定</button>
  189. </div>
  190. </li>`
  191. $('.showKeyWord > ul').prepend(html)
  192. // 隐藏
  193. $(".addkeyWord").hide();
  194. $('.showKeyWord').show();
  195. $(".addKeyWord i").show()
  196. $('.enter.addkeyWord > input').val('')
  197. var buttonDOM = $('.enter.addkeyWord .btn button')[0]
  198. buttonDOM.style.opacity = .5
  199. buttonDOM.setAttribute("disabled", true)
  200. console.log(sessionStorage.getItem('iconClick'))
  201. var iconClicks = sessionStorage.getItem('iconClick')
  202. if(addkey == '?addkey'){
  203. sessionStorage.setItem('ismodify', 0)
  204. if(iconClicks == 0){
  205. $('.showKeyWord>ul').find('li').find('.one').find('.key').each(function(index,value){
  206. console.log(additionArr)
  207. additionArr.push(value.innerHTML)
  208. add_empty(additionArr)
  209. sessionStorage.setItem('noaddition_key',JSON.stringify(unique(additionArr)))
  210. })
  211. }else{
  212. $('.showKeyWord>ul').find('li').find('.one').find('.key').each(function(index,value){
  213. additionArr.push(value.innerHTML)
  214. add_empty(additionArr)
  215. sessionStorage.setItem('addition_key',JSON.stringify(unique(additionArr)))
  216. })
  217. }
  218. }else{
  219. sessionStorage.setItem('ismodify', 1)
  220. $('.showKeyWord>ul').find('li').find('.one').find('.key').each(function(index,value){
  221. additionArr.push(value.innerHTML)
  222. add_empty(additionArr)
  223. sessionStorage.setItem('addition_key',JSON.stringify(unique(additionArr)))
  224. })
  225. }
  226. })
  227. // 添加 取消按钮
  228. $('.addkeyWord .btn .cancel').on('click', function(){
  229. $(this).parents('.addkeyWord').hide()
  230. $(".addKeyWord i").show()
  231. })
  232. // 编辑
  233. _that = ''
  234. isClick = false
  235. $(".showKeyWord").on('click', '.editKeyWord',function(e){
  236. isClick = true
  237. _that = $(this)
  238. console.log(_that,isClick)
  239. $('.enter.addkeyWord').hide()
  240. $('.addKeyWord').hide()
  241. let oSpan = $(this).parent().siblings().children('textarea');
  242. console.log($(oSpan).val())
  243. let val = $(oSpan).val()
  244. $(this).parent().siblings().show().parents('li').siblings().children('.modify').hide().siblings('.one').show()
  245. $(oSpan).val('').focus().val(val)
  246. $(this).parent().hide()
  247. $(this).parent().siblings().css('display','block')
  248. })
  249. // 编辑 删除
  250. $('.showKeyWord').on('click', '.deleteKey', function(e) {
  251. var jQueryDOM = $(this).parents('li')
  252. var $that = $(this)
  253. weui.confirm('确定删除附加词?', {
  254. buttons: [{
  255. label: '取消',
  256. type: 'default',
  257. onClick: function () { console.log('不删了') }
  258. }, {
  259. label: '确定',
  260. type: 'primary',
  261. onClick: function () {
  262. console.log(JSON.parse(sessionStorage.getItem('addition_key')))
  263. var thatval = $that.siblings('textarea').val()
  264. console.log(thatval)
  265. // var additionkeyArr =JSON.parse(sessionStorage.getItem('addition_key'))
  266. console.log(additionArr)
  267. for(var i=0;i<additionArr.length;i++){
  268. console.log(additionArr[i])
  269. if(additionArr[i]==thatval){
  270. console.log(i)
  271. if(additionArr.length == 1){
  272. additionArr = []
  273. }else{
  274. additionArr.splice(i,1)
  275. }
  276. add_empty(additionArr)
  277. }
  278. }
  279. console.log(additionArr)
  280. if(addkey == '?addkey'){
  281. sessionStorage.setItem('ismodify',0)
  282. if(JSON.stringify(additionArr) == '[]'){
  283. sessionStorage.setItem('noaddition_key',JSON.stringify(additionArr))
  284. }else{
  285. sessionStorage.setItem('noaddition_key',JSON.stringify(unique(additionArr)))
  286. }
  287. if(JSON.stringify(additionArr) == '[]'){
  288. sessionStorage.setItem('addition_key',JSON.stringify(additionArr))
  289. }else{
  290. sessionStorage.setItem('addition_key',JSON.stringify(unique(additionArr)))
  291. }
  292. }else{
  293. sessionStorage.setItem('ismodify',1)
  294. if(JSON.stringify(additionArr) == '[]'){
  295. sessionStorage.setItem('addition_key',JSON.stringify(additionArr))
  296. }else{
  297. sessionStorage.setItem('addition_key',JSON.stringify(unique(additionArr)))
  298. }
  299. if(JSON.stringify(additionArr) == '[]'){
  300. sessionStorage.setItem('noaddition_key',JSON.stringify(additionArr))
  301. }else{
  302. sessionStorage.setItem('noaddition_key',JSON.stringify(unique(additionArr)))
  303. }
  304. }
  305. jQueryDOM.remove()
  306. hasWords()
  307. $('.addKeyWord').show()
  308. }
  309. }]
  310. });
  311. })
  312. // 判断附加词是否为空
  313. function add_empty(arr){
  314. console.log(arr)
  315. if(arr.length==0){
  316. sessionStorage.setItem('add_length',0)
  317. }else{
  318. sessionStorage.removeItem('add_length')
  319. }
  320. }
  321. // 编辑 确定
  322. $('.showKeyWord').on('click', '.ascertainKey', function(e) {
  323. $('.addKeyWord').show()
  324. if(isClick == false){
  325. }else{
  326. var $index = 0
  327. console.log($(_that).parent().find('.key').text())
  328. console.log(additionArr)
  329. // 循环数组得到点击那个修改按钮的下标
  330. additionArr.forEach(function(value,index){
  331. console.log($(_that).parent().find('.key').text())
  332. if($(_that).parent().find('.key').text() == value){
  333. console.log(index)
  334. $index = index
  335. }
  336. })
  337. // 得到下标后替换掉数组中这个下标的值,存入sessionstroage
  338. var $this = $(this)
  339. console.log($this)
  340. var keyWord = $(this).siblings('textarea').val()
  341. // 去空格
  342. keyWord = keyWord.replace(/\s+/g, ' ').trim();
  343. if(keyWord.length > 20){
  344. weui.toast('关键词不能超过20字', {
  345. duration: 2000,
  346. className: 'custom-toast',
  347. callback: function () { console.log('close') }
  348. });
  349. }else{
  350. $this.parent().siblings().find('.key').text(keyWord)
  351. console.log($this)
  352. additionArr.splice($index,1,keyWord)
  353. console.log(additionArr)
  354. // 保存在本地一个值,点击返回上一级的时候进入关键词设置页面
  355. if(addkey == '?addkey'){
  356. sessionStorage.setItem('ismodify',0)
  357. sessionStorage.setItem('noaddition_key',JSON.stringify(unique(additionArr)))
  358. }else{
  359. sessionStorage.setItem('ismodify',1)
  360. sessionStorage.setItem('addition_key',JSON.stringify(unique(additionArr)))
  361. }
  362. $this.parent().hide().siblings().show()
  363. $('.addKeyWord').show()
  364. }
  365. }
  366. })
  367. // 数组去重
  368. function unique(arr) {
  369. let newArr = [arr[0]];
  370. for (let i = 1; i < arr.length; i++) {
  371. let repeat = false;
  372. for (let j = 0; j < newArr.length; j++) {
  373. if (arr[i] === newArr[j]) {
  374. repeat = true;
  375. break;
  376. }else{
  377. }
  378. }
  379. if (!repeat) {
  380. newArr.push(arr[i]);
  381. }
  382. }
  383. return newArr;
  384. }
  385. //防止键盘把当前输入框给挡住
  386. $('input[type="text"],textarea').focus(function () {
  387. var target = this;
  388. setTimeout(function(){
  389. target.scrollIntoViewIfNeeded();
  390. },400);
  391. });
  392. })