keyWord.js 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017
  1. $(function () {
  2. //去空格方法
  3. // String.prototype.trim = function () {
  4. // return this.replace(/(^\s*)|(\s*$)/g, ' ');
  5. // }
  6. // 疑问解答相关操作
  7. $('.knowBtn').on('click', function () {
  8. $(".problemPop").hide()
  9. })
  10. $(".problem").on('click', function () {
  11. $(".problemPop").css("display", 'flex');
  12. })
  13. $(".enterOne").focus(function () {
  14. $(".btnChoose").show();
  15. })
  16. hasWords()
  17. function hasWords() {
  18. var showKeyWordLength = $(".showKeyWord ul").find('li').length;
  19. if (showKeyWordLength === 0) {
  20. $(".addkeyWord").show();
  21. } else {
  22. $(".addkeyWord").hide();
  23. }
  24. }
  25. // 输入框自适应高度
  26. $('textarea').each(function(i,dom){
  27. dom.style.height = dom.scrollHeight +'px';
  28. })
  29. $("textarea").on("input", function() {
  30. this.style.height = 'auto';
  31. this.style.height = this.scrollHeight + "px";
  32. })
  33. // 添加keyWords检查输入框内是否有文字,如果有才能点击添加按钮
  34. $('.addkeyWord input.enterOne').on('input', function () {
  35. var buttonDOM = $(this).siblings()[1].children[1]
  36. if ($(this).val().length >= 1) {
  37. buttonDOM.style.opacity = 1
  38. buttonDOM.removeAttribute("disabled")
  39. } else {
  40. buttonDOM.style.opacity = .5
  41. buttonDOM.setAttribute("disabled", true)
  42. }
  43. })
  44. // 添加 确认按钮的点击事件
  45. $('.addkeyWord').on('click', '.btn button',function () {
  46. if(sessionStorage.getItem('iconClick') == '1'){
  47. // 获取这个分类中有多少个关键词
  48. var classindex = sessionStorage.getItem('classindex')
  49. // console.log(resArr[classindex].a_key.length)
  50. var keynum = 0
  51. for(var i=0;i<resArr.length;i++){
  52. keynum += resArr[i].a_key.length
  53. }
  54. console.log(keynum)
  55. if(keynum+1>300){
  56. vTools.jLoading({
  57. content:'关键词最多300个',
  58. iconHide:true,
  59. duration:1500
  60. })
  61. }else{
  62. var dataindex = keynum
  63. // 关键词添加数量
  64. $('.keypushnum').html(dataindex+1)
  65. // 获取关键词
  66. var keyWord = $('.addkeyWord input.enterOne').val()
  67. // 去空格
  68. keyWord = keyWord.replace(/\s+/g, ' ').trim();
  69. var addition_keys = sessionStorage.getItem('addition_key')
  70. var add_html = ''
  71. if(addition_keys){
  72. addition_keys = JSON.parse(addition_keys)
  73. for(var i=0;i<addition_keys.length;i++){
  74. console.log(addition_keys[i])
  75. add_html += ' '+ addition_keys[i]
  76. }
  77. }else{
  78. addition_keys = []
  79. }
  80. var exc_html = ''
  81. var exclusive_keys = sessionStorage.getItem('exclusive_key')
  82. if(exclusive_keys){
  83. exclusive_keys = JSON.parse(exclusive_keys)
  84. for(var i=0;i<exclusive_keys.length;i++){
  85. console.log(exclusive_keys[i])
  86. exc_html += ' '+exclusive_keys[i]
  87. }
  88. }else{
  89. exclusive_keys = []
  90. }
  91. // sessionStorage.getItem('dataindex')
  92. // var dataindex = sessionStorage.getItem('dataindex')
  93. var html = `<li class="keyclassify-item" data-index="${dataindex}">
  94. <div class="one">
  95. <div>
  96. <span>
  97. <strong> 关键词:</strong>
  98. <p class="key">${keyWord}</p>
  99. </span>
  100. <span>
  101. <strong> 附加词:</strong>
  102. <p class="addition">
  103. <span class="add_empty" style="padding:0;padding-right:0.3rem;">${add_html }</span>
  104. </p>
  105. </span>
  106. <span>
  107. <strong> 排除词:</strong>
  108. <p class="exclusion">
  109. <span class="exc_empty" style="padding:0;padding-right:0.3rem;">${exc_html }</sapn>
  110. </p>
  111. </span>
  112. </div>
  113. <button class="editKeyWord"><i class="iconfont icon-xiugai"></i> 修改</button>
  114. </div>
  115. <div class="modify">
  116. <textarea name="" rows="1" placeholder="" maxlength="20">${keyWord}</textarea>
  117. <button class="addAdjunctWord">编辑 附加词</button>
  118. <button class="addExclusion">添加 排除词</button>
  119. <button class="deleteKey">删除</button>
  120. <button class="ascertainKey">确定</button>
  121. </div>
  122. </li>`
  123. // 关键词重复给出提示
  124. // isSame=0表示不重复,等于1重复
  125. var isSame = 0
  126. for(var i=0;i<resArr.length;i++){
  127. // console.log(resArr[i])
  128. for(j=0;j<resArr[i].a_key.length;j++){
  129. var datakey = resArr[i].a_key[j].key[0]
  130. if(datakey == keyWord){
  131. console.log(datakey)
  132. vTools.jLoading({
  133. content:'关键词不能重复',
  134. iconHide:true,
  135. duration:1500
  136. })
  137. isSame = 1
  138. return
  139. }
  140. }
  141. }
  142. console.log(isSame)
  143. if(isSame == 1){
  144. }else{
  145. $('.showKeyWord > ul').prepend(html)
  146. // 如果没有添加附加词和排除词,就不显示
  147. var add_empty = $('.addition')
  148. var exc_empty = $('.exclusion')
  149. for(var i=0;i<add_empty.length;i++){
  150. if(add_empty[i].children.length== 0){
  151. $('.addition:eq('+i+')').parent('span').hide()
  152. }else{
  153. $('.addition:eq('+i+')').parent('span').show()
  154. }
  155. }
  156. for(var i=0;i<exc_empty.length;i++){
  157. if(exc_empty[i].children.length == 0){
  158. $('.exclusion:eq('+i+')').parent('span').hide()
  159. }else{
  160. $('.exclusion:eq('+i+')').parent('span').show()
  161. }
  162. }
  163. // 添加完成隐藏输入框
  164. $(".addkeyWord").hide()
  165. // 还原状态
  166. $('.enter.addkeyWord > input').val('')
  167. var buttonDOM = $('.enter.addkeyWord .btn button')[0]
  168. buttonDOM.style.opacity = .5
  169. buttonDOM.setAttribute("disabled", true)
  170. // 添加关键词
  171. var addition_key = sessionStorage.getItem('addition_key')
  172. if(addition_key){
  173. addition_key = JSON.parse(addition_key)
  174. }else{
  175. addition_key = []
  176. }
  177. var exclusive_key = sessionStorage.getItem('exclusive_key')
  178. if(exclusive_key){
  179. exclusive_key = JSON.parse(exclusive_key)
  180. }else{
  181. exclusive_key = []
  182. }
  183. var newkey = {
  184. 'appendkey': addition_key,
  185. 'key': [keyWord],
  186. 'notkey':exclusive_key
  187. }
  188. // 获取点击的下标
  189. resArr[classindex].a_key.push(newkey)
  190. console.log(resArr)
  191. vTools.ajax({
  192. url:'/subscribe/key/update',
  193. type:'POST',
  194. data:{
  195. "delete_item":'',
  196. "update_item":{
  197. "before":'',
  198. "after":''
  199. },
  200. "a_items":resArr
  201. },
  202. success:function(res){
  203. console.log(res)
  204. $('.all-classify-column .classify-list .classify-item:eq('+classindex+')').find('.classify-item-detail').find('span').html(resArr[classindex].a_key.length)
  205. sessionStorage.removeItem('addition_key')
  206. sessionStorage.removeItem('exclusive_key')
  207. sessionStorage.removeItem('dataindex')
  208. $(".classify-item:eq("+classindex+")").find('.classify-item-r').trigger('click')
  209. },
  210. error:function(err){
  211. console.log(err)
  212. }
  213. })
  214. $('.addKeyWord').css({'display':'flex'})
  215. // 设置状态
  216. // setEmptyHistory()
  217. }
  218. }
  219. }
  220. })
  221. // // 点击取消
  222. $('.cancel').on('click',function(){
  223. if(sessionStorage.getItem('iconClick') == '1'){
  224. console.log($(this))
  225. $(this).parents('.addkeyWord').hide()
  226. $('.addKeyWord').css({'display':'flex'})
  227. sessionStorage.removeItem('addition_key')
  228. sessionStorage.removeItem('exclusive_key')
  229. }else{
  230. $(this).parents('.addkeyWord').hide()
  231. $('.addKeyWord').css({'display':'flex'})
  232. sessionStorage.removeItem('noaddition_key')
  233. sessionStorage.removeItem('noexclusive_key')
  234. }
  235. $(this).parents('.addkeyWord').find('.enterOne').val('')
  236. })
  237. // 编辑
  238. $(".showKeyWord").on('click', '.editKeyWord', function (e) {
  239. // 点击修改,把这一项的下标存入session
  240. sessionStorage.setItem('modifyindex',$(this).parent().parent().attr('data-index'))
  241. var classindex = sessionStorage.getItem('classindex')
  242. console.log(classindex)
  243. var modifyindex = sessionStorage.getItem('modifyindex')
  244. console.log(modifyindex)
  245. console.log(resArr)
  246. // var resArr_num = resArr[classindex].a_key[modifyindex]
  247. var addition_keyArr = sessionStorage.getItem('addition_key')
  248. var exclusive_keyArr = sessionStorage.getItem('exclusive_key')
  249. var parameter = location.search.split('?')[1]
  250. if(parameter == 'state=1'){
  251. if(resArr[classindex-1].a_key.length == 1){
  252. modifyindex = 0
  253. }
  254. var appendkey_num = JSON.stringify(resArr[classindex-1].a_key[modifyindex].appendkey)
  255. var notkey_num = JSON.stringify(resArr[classindex-1].a_key[modifyindex].notkey)
  256. }else{
  257. var appendkey_num = JSON.stringify(resArr[classindex].a_key[modifyindex].appendkey)
  258. var notkey_num = JSON.stringify(resArr[classindex].a_key[modifyindex].notkey)
  259. }
  260. console.log(appendkey_num.length)
  261. var add_length = sessionStorage.getItem('add_length')
  262. var exc_length = sessionStorage.getItem('exc_length')
  263. if(addition_keyArr == null || addition_keyArr == '[]'){
  264. if(appendkey_num == "[]" || add_length !=null){
  265. $(this).parent().siblings('.modify').find('.addAdjunctWord').html('添加附加词')
  266. }else{
  267. appendkey_num = JSON.parse(appendkey_num)
  268. $(this).parent().siblings('.modify').find('.addAdjunctWord').html('编辑附加词('+appendkey_num.length+')')
  269. }
  270. }else{
  271. addition_keyArr = JSON.parse(addition_keyArr)
  272. $(this).parent().siblings('.modify').find('.addAdjunctWord').html('编辑附加词('+addition_keyArr.length+')')
  273. }
  274. if(exclusive_keyArr == null || exclusive_keyArr == '[]'){
  275. if(notkey_num == "[]" || exc_length !=null){
  276. $(this).parent().siblings('.modify').find('.addExclusion ').html('添加排除词')
  277. }else{
  278. notkey_num = JSON.parse(notkey_num)
  279. $(this).parent().siblings('.modify').find('.addExclusion ').html('编辑排除词('+notkey_num.length+')')
  280. }
  281. }else{
  282. exclusive_keyArr = JSON.parse(exclusive_keyArr)
  283. $(this).parent().siblings('.modify').find('.addExclusion ').html('编辑排除词('+exclusive_keyArr.length+')')
  284. }
  285. console.log($(this).siblings('div').find('.addition').text())
  286. $('.enter.addkeyWord').hide()
  287. let oSpan = $(this).parent().siblings().children('textarea');
  288. console.log($(oSpan).val())
  289. let val = $(oSpan).val()
  290. $(this).parent().hide()
  291. $(this).parent().siblings().show().parent().siblings().children('.modify').hide().siblings('.one').show()
  292. $(oSpan).val('').focus().val(val)
  293. $('.addKeyWord').hide()
  294. // 修改的时候,如果把关键词清楚掉,不能保存
  295. var _that = $(this)
  296. _that.parent().siblings('.modify').find('textarea').on('input',function(){
  297. console.log($(this).val())
  298. if($(this).val()==''){
  299. _that.parent().siblings('.modify').find('.addAdjunctWord').attr('disabled',true)
  300. _that.parent().siblings('.modify').find('.addExclusion ').attr('disabled',true)
  301. _that.parent().siblings('.modify').find('.ascertainKey ').attr('disabled',true)
  302. }else{
  303. _that.parent().siblings('.modify').find('.addAdjunctWord').attr('disabled',false)
  304. _that.parent().siblings('.modify').find('.addExclusion ').attr('disabled',false)
  305. _that.parent().siblings('.modify').find('.ascertainKey ').attr('disabled',false)
  306. }
  307. })
  308. })
  309. // 编辑删除
  310. $('.showKeyWord').on('click', '.deleteKey', function (e) {
  311. var jQueryDOM = $(this).parents('li')
  312. console.log(jQueryDOM)
  313. var parameter = location.search.split('?')[1]
  314. console.log(resArr)
  315. // 获取点击分类的下标
  316. var classify_index = sessionStorage.getItem('classindex')
  317. var ArrLength = 0
  318. if(parameter == 'state=1'){
  319. ArrLength = resArr[classify_index-1].a_key.length
  320. }else{
  321. ArrLength = resArr[classify_index].a_key.length
  322. }
  323. console.log(ArrLength)
  324. weui.confirm('确定要删除关键词?', {
  325. buttons: [{
  326. label: '取消',
  327. type: 'default',
  328. onClick: function () { console.log('不删了') }
  329. }, {
  330. label: '确定',
  331. type: 'primary',
  332. onClick: function () {
  333. // console.log(resArr[classify_index].a_key)
  334. // console.log(jQueryDOM.find('textarea').val())
  335. // 如果一个分类里只有一个关键词,点击删除关键词则删除整个分类
  336. if(ArrLength == 1){
  337. if(parameter == 'state=1'){
  338. classify_index = parseInt(classify_index)-1
  339. }else{
  340. classify_index = sessionStorage.getItem('classindex')
  341. }
  342. console.log(resArr[classify_index])
  343. console.log(resArr[classify_index].s_item)
  344. var delete_item = resArr[classify_index].s_item
  345. resArr.splice(classify_index,1)
  346. // 删除关键词
  347. vTools.ajax({
  348. url:'/subscribe/key/update',
  349. type:'POST',
  350. data:{
  351. "delete_item":delete_item,
  352. "a_items":resArr
  353. },
  354. success:function(res){
  355. console.log(res)
  356. if(res.data.status == -2){
  357. vTools.jLoading({
  358. content:'关联有分发规则,不能删除',
  359. iconHide:true,
  360. duration:1500
  361. })
  362. return
  363. }
  364. jQueryDOM.remove()
  365. hasWords()
  366. location.reload()
  367. },
  368. error:function(err){
  369. console.log(err)
  370. }
  371. })
  372. init()
  373. $('.add-keyword-container').hide()
  374. $('.addbutton').show()
  375. }else{
  376. console.log(classify_index)
  377. if(parameter == 'state=1'){
  378. for(var i=0;i<resArr[classify_index-1].a_key.length;i++){
  379. if(resArr[classify_index-1].a_key[i].key[0] == jQueryDOM.find('textarea').val()){
  380. resArr[classify_index-1].a_key.splice(i,1)
  381. }
  382. }
  383. }else{
  384. for(var i=0;i<resArr[classify_index].a_key.length;i++){
  385. console.log(resArr[classify_index].a_key[i].key[0])
  386. if(resArr[classify_index].a_key[i].key[0] == jQueryDOM.find('textarea').val()){
  387. console.log(resArr[classify_index].a_key[i])
  388. resArr[classify_index].a_key.splice(i,1)
  389. }
  390. }
  391. }
  392. console.log(resArr)
  393. // var classindex = sessionStorage.getItem('classindex')
  394. // console.log(resArr[classindex].a_key.length)
  395. var keynum = 0
  396. for(var i=0;i<resArr.length;i++){
  397. keynum += resArr[i].a_key.length
  398. }
  399. var dataindex = keynum
  400. console.log(dataindex)
  401. // 删除关键词
  402. vTools.ajax({
  403. url:'/subscribe/key/update',
  404. type:'POST',
  405. data:{
  406. "delete_item":'',
  407. "update_item":{
  408. "before":'',
  409. "after":''
  410. },
  411. "a_items":resArr
  412. },
  413. success:function(res){
  414. console.log(res)
  415. if(res.data.status == -2){
  416. vTools.jLoading({
  417. content:'关联有分发规则,不能删除',
  418. iconHide:true,
  419. duration:1500
  420. })
  421. return
  422. }
  423. $('.keypushnum').html(dataindex)
  424. jQueryDOM.remove()
  425. hasWords()
  426. if(parameter == 'state=1'){
  427. $('.all-classify-column .classify-list .classify-item:eq('+classify_index+')').find('.classify-item-detail').find('span').html(resArr[classify_index-1].a_key.length)
  428. }else{
  429. $(".classify-item:eq("+classindex+")").find('.classify-item-r').trigger('click')
  430. $('.all-classify-column .classify-list .classify-item:eq('+classify_index+')').find('.classify-item-detail').find('span').html(resArr[classify_index].a_key.length)
  431. }
  432. },
  433. error:function(err){
  434. console.log(err)
  435. }
  436. })
  437. $('.addKeyWord').show()
  438. }
  439. }
  440. }]
  441. });
  442. console.log('删除关键词:', $(this).parent().find('textarea').val())
  443. })
  444. // 编辑确定
  445. $('.showKeyWord').on('click', '.ascertainKey', function (e) {
  446. var parameter = location.search.split('?')[1]
  447. if(parameter == 'state=1'){
  448. var $this = $(this)
  449. var keyWord = $(this).siblings('textarea').val()
  450. // 去空格
  451. keyWord = keyWord.replace(/\s+/g, ' ').trim();
  452. // 获取被点击的下标
  453. var classindex = JSON.parse(sessionStorage.getItem('classindex'))-1
  454. var modifyindex = sessionStorage.getItem('modifyindex')
  455. console.log(classindex)
  456. var beforekey = resArr[classindex].a_key[modifyindex].key[0]
  457. if(keyWord.length > 20){
  458. weui.toast('关键词不能超过20字', {
  459. duration: 2000,
  460. className: 'custom-toast',
  461. callback: function () { console.log('close') }
  462. });
  463. }else{
  464. // 关键词重复给出提示
  465. // isSame=0表示不重复,等于1重复
  466. var isSame = 0
  467. for(var i=0;i<resArr.length;i++){
  468. console.log(resArr[i])
  469. for(j=0;j<resArr[i].a_key.length;j++){
  470. var datakey = resArr[i].a_key[j].key[0]
  471. console.log(beforekey)
  472. if(datakey == keyWord && keyWord !== beforekey){
  473. vTools.jLoading({
  474. content:'关键词不能重复',
  475. iconHide:true,
  476. duration:1500
  477. })
  478. isSame = 1
  479. }else{
  480. isSame = 0
  481. }
  482. }
  483. }
  484. if(isSame == 1){
  485. }else{
  486. $this.parent().siblings().find('.key').text(keyWord)
  487. // 获取修改关键词参数
  488. var classify_s = $('.classify-detail').html()
  489. console.log(resArr)
  490. var newArr = resArr
  491. // var a_items = []
  492. console.log(newArr)
  493. newArr.forEach(function(value,index){
  494. if(value.s_item == classify_s){
  495. console.log(value,index)
  496. // 分类
  497. var keywordArr = []
  498. keywordArr.push(keyWord)
  499. console.log(keywordArr)
  500. // 附加词
  501. // 获取点击修改的下标
  502. var modifyindex = sessionStorage.getItem('modifyindex')
  503. var addition_key = sessionStorage.getItem('addition_key')
  504. if(addition_key == null){
  505. addition_key = newArr[index].a_key[modifyindex].appendkey
  506. }else{
  507. addition_key = JSON.parse(addition_key)
  508. }
  509. console.log(addition_key)
  510. // 排除词
  511. var exclusive_key = sessionStorage.getItem('exclusive_key')
  512. console.log(exclusive_key)
  513. if(exclusive_key == null){
  514. exclusive_key = newArr[index].a_key[modifyindex].notkey
  515. }else{
  516. exclusive_key = JSON.parse(exclusive_key)
  517. }
  518. console.log(exclusive_key)
  519. var keyparameter = {
  520. "key":keywordArr,
  521. "appendkey":addition_key,
  522. "notkey":exclusive_key
  523. }
  524. var modifyindex = sessionStorage.getItem('modifyindex')
  525. console.log(newArr[index].a_key)
  526. newArr[index].a_key.splice(modifyindex,1,keyparameter)
  527. }
  528. })
  529. console.log(newArr)
  530. // 获取点击的按钮
  531. var sureDom = $this.parent()
  532. // 修改关键词
  533. vTools.ajax({
  534. url:'/subscribe/key/update',
  535. type:'POST',
  536. data:{
  537. "a_items":newArr
  538. },
  539. success:function(res){
  540. console.log(res)
  541. if(res.data.status== 1){
  542. // console.log(JSON.parse(sessionStorage.getItem('addition_key'))[0])
  543. // console.log(JSON.parse(sessionStorage.getItem('exclusive_key'))[0])
  544. sureDom.hide().siblings('.one').show()
  545. var addition_keyArr = sessionStorage.getItem('addition_key')
  546. if(addition_keyArr){
  547. addition_keyArr = JSON.parse(addition_keyArr)
  548. var html=''
  549. for(var i = 0;i<addition_keyArr.length;i++){
  550. html += '<span style="padding:0;padding-right:0.3rem;">'+addition_keyArr[i]+'</span>'
  551. }
  552. sureDom.siblings('.one').find('div').find('.addition').html(html)
  553. }
  554. var exclusive_keyArr = sessionStorage.getItem('exclusive_key')
  555. if(exclusive_keyArr){
  556. exclusive_keyArr = JSON.parse(exclusive_keyArr)
  557. var htmls=''
  558. for(var i = 0;i<exclusive_keyArr.length;i++){
  559. console.log(exclusive_keyArr[i])
  560. htmls += '<span style="padding:0;padding-right:0.3rem;">'+exclusive_keyArr[i]+'</span>'
  561. }
  562. sureDom.siblings('.one').find('div').find('.exclusion').html(htmls)
  563. }
  564. // sureDom.siblings().find('div').find('.addition').html(JSON.parse(sessionStorage.getItem('addition_key'))[0])
  565. // sureDom.siblings().find('div').find('.exclusion').html(JSON.parse(sessionStorage.getItem('exclusive_key'))[0])
  566. sessionStorage.removeItem('addition_key')
  567. sessionStorage.removeItem('exclusive_key')
  568. sessionStorage.removeItem('isadd')
  569. // 如果没有添加附加词和排除词,就不显示
  570. var add_empty = $('.addition')
  571. var exc_empty = $('.exclusion')
  572. console.log(add_empty)
  573. console.log(exc_empty)
  574. for(var i=0;i<add_empty.length;i++){
  575. if(add_empty[i].children.length== 0){
  576. $('.addition:eq('+i+')').parent('span').hide()
  577. }else{
  578. $('.addition:eq('+i+')').parent('span').show()
  579. }
  580. }
  581. for(var i=0;i<exc_empty.length;i++){
  582. if(exc_empty[i].children.length == 0){
  583. $('.exclusion:eq('+i+')').parent('span').hide()
  584. }else{
  585. $('.exclusion:eq('+i+')').parent('span').show()
  586. }
  587. }
  588. }
  589. },
  590. error:function(err){
  591. console.log(err)
  592. }
  593. })
  594. // $this.parent().hide().siblings().show()
  595. $('.addKeyWord').show()
  596. }
  597. }
  598. // 如果没有添加附加词和排除词,就不显示
  599. var add_empty = $('.addition')
  600. var exc_empty = $('.exclusion')
  601. console.log(add_empty)
  602. console.log(exc_empty)
  603. for(var i=0;i<add_empty.length;i++){
  604. if(add_empty[i].children.length== 0){
  605. $('.addition:eq('+i+')').parent('span').hide()
  606. }else{
  607. $('.addition:eq('+i+')').parent('span').show()
  608. }
  609. }
  610. for(var i=0;i<exc_empty.length;i++){
  611. if(exc_empty[i].children.length == 0){
  612. $('.exclusion:eq('+i+')').parent('span').hide()
  613. }else{
  614. $('.exclusion:eq('+i+')').parent('span').show()
  615. }
  616. }
  617. }else{
  618. var $this = $(this)
  619. var keyWord = $(this).siblings('textarea').val()
  620. // 去空格
  621. keyWord = keyWord.replace(/\s+/g, ' ').trim();
  622. // 获取被点击的下标
  623. var classindex = sessionStorage.getItem('classindex')
  624. var modifyindex = sessionStorage.getItem('modifyindex')
  625. console.log(classindex)
  626. var beforekey = resArr[classindex].a_key[modifyindex].key[0]
  627. if(keyWord.length > 20){
  628. weui.toast('关键词不能超过20字', {
  629. duration: 2000,
  630. className: 'custom-toast',
  631. callback: function () { console.log('close') }
  632. });
  633. }else{
  634. // 关键词重复给出提示
  635. // isSame=0表示不重复,等于1重复
  636. var isSame = 0
  637. for(var i=0;i<resArr.length;i++){
  638. console.log(resArr[i])
  639. for(j=0;j<resArr[i].a_key.length;j++){
  640. var datakey = resArr[i].a_key[j].key[0]
  641. console.log(beforekey)
  642. if(datakey == keyWord && keyWord !== beforekey){
  643. vTools.jLoading({
  644. content:'关键词不能重复',
  645. iconHide:true,
  646. duration:1500
  647. })
  648. isSame = 1
  649. }else{
  650. isSame = 0
  651. }
  652. }
  653. }
  654. if(isSame == 1){
  655. }else{
  656. $this.parent().siblings().find('.key').text(keyWord)
  657. // 获取修改关键词参数
  658. var classify_s = $('.classify-detail').html()
  659. console.log(resArr)
  660. var newArr = resArr
  661. // var a_items = []
  662. console.log(newArr)
  663. newArr.forEach(function(value,index){
  664. if(value.s_item == classify_s){
  665. console.log(value,index)
  666. // 分类
  667. var keywordArr = []
  668. keywordArr.push(keyWord)
  669. console.log(keywordArr)
  670. // 附加词
  671. // 获取点击修改的下标
  672. var modifyindex = sessionStorage.getItem('modifyindex')
  673. var addition_key = sessionStorage.getItem('addition_key')
  674. if(addition_key == null){
  675. addition_key = newArr[index].a_key[modifyindex].appendkey
  676. }else{
  677. addition_key = JSON.parse(addition_key)
  678. }
  679. console.log(addition_key)
  680. // 排除词
  681. var exclusive_key = sessionStorage.getItem('exclusive_key')
  682. console.log(exclusive_key)
  683. if(exclusive_key == null){
  684. exclusive_key = newArr[index].a_key[modifyindex].notkey
  685. }else{
  686. exclusive_key = JSON.parse(exclusive_key)
  687. }
  688. console.log(exclusive_key)
  689. var keyparameter = {
  690. "key":keywordArr,
  691. "appendkey":addition_key,
  692. "notkey":exclusive_key
  693. }
  694. var modifyindex = sessionStorage.getItem('modifyindex')
  695. console.log(newArr[index].a_key)
  696. newArr[index].a_key.splice(modifyindex,1,keyparameter)
  697. }
  698. })
  699. console.log(newArr)
  700. // 获取点击的按钮
  701. var sureDom = $this.parent()
  702. // 修改关键词
  703. vTools.ajax({
  704. url:'/subscribe/key/update',
  705. type:'POST',
  706. data:{
  707. "a_items":newArr
  708. },
  709. success:function(res){
  710. console.log(res)
  711. if(res.data.status== 1){
  712. // console.log(JSON.parse(sessionStorage.getItem('addition_key'))[0])
  713. // console.log(JSON.parse(sessionStorage.getItem('exclusive_key'))[0])
  714. sureDom.hide().siblings('.one').show()
  715. var addition_keyArr = sessionStorage.getItem('addition_key')
  716. if(addition_keyArr){
  717. addition_keyArr = JSON.parse(addition_keyArr)
  718. var html=''
  719. for(var i = 0;i<addition_keyArr.length;i++){
  720. html += '<span style="padding:0;padding-right:0.3rem;">'+addition_keyArr[i]+'</span>'
  721. }
  722. sureDom.siblings('.one').find('div').find('.addition').html(html)
  723. }
  724. var exclusive_keyArr = sessionStorage.getItem('exclusive_key')
  725. if(exclusive_keyArr){
  726. exclusive_keyArr = JSON.parse(exclusive_keyArr)
  727. var htmls=''
  728. for(var i = 0;i<exclusive_keyArr.length;i++){
  729. console.log(exclusive_keyArr[i])
  730. htmls += '<span style="padding:0;padding-right:0.3rem;">'+exclusive_keyArr[i]+'</span>'
  731. }
  732. sureDom.siblings('.one').find('div').find('.exclusion').html(htmls)
  733. }
  734. // sureDom.siblings().find('div').find('.addition').html(JSON.parse(sessionStorage.getItem('addition_key'))[0])
  735. // sureDom.siblings().find('div').find('.exclusion').html(JSON.parse(sessionStorage.getItem('exclusive_key'))[0])
  736. sessionStorage.removeItem('addition_key')
  737. sessionStorage.removeItem('exclusive_key')
  738. sessionStorage.removeItem('isadd')
  739. // 如果没有添加附加词和排除词,就不显示
  740. var add_empty = $('.addition')
  741. var exc_empty = $('.exclusion')
  742. console.log(add_empty)
  743. console.log(exc_empty)
  744. for(var i=0;i<add_empty.length;i++){
  745. if(add_empty[i].children.length== 0){
  746. $('.addition:eq('+i+')').parent('span').hide()
  747. }else{
  748. $('.addition:eq('+i+')').parent('span').show()
  749. }
  750. }
  751. for(var i=0;i<exc_empty.length;i++){
  752. if(exc_empty[i].children.length == 0){
  753. $('.exclusion:eq('+i+')').parent('span').hide()
  754. }else{
  755. $('.exclusion:eq('+i+')').parent('span').show()
  756. }
  757. }
  758. }
  759. },
  760. error:function(err){
  761. console.log(err)
  762. }
  763. })
  764. // $this.parent().hide().siblings().show()
  765. $('.addKeyWord').show()
  766. }
  767. }
  768. // 如果没有添加附加词和排除词,就不显示
  769. var add_empty = $('.addition')
  770. var exc_empty = $('.exclusion')
  771. console.log(add_empty)
  772. console.log(exc_empty)
  773. for(var i=0;i<add_empty.length;i++){
  774. if(add_empty[i].children.length== 0){
  775. $('.addition:eq('+i+')').parent('span').hide()
  776. }else{
  777. $('.addition:eq('+i+')').parent('span').show()
  778. }
  779. }
  780. for(var i=0;i<exc_empty.length;i++){
  781. if(exc_empty[i].children.length == 0){
  782. $('.exclusion:eq('+i+')').parent('span').hide()
  783. }else{
  784. $('.exclusion:eq('+i+')').parent('span').show()
  785. }
  786. }
  787. }
  788. sessionStorage.removeItem('exc_length')
  789. sessionStorage.removeItem('add_length')
  790. })
  791. //防止键盘把当前输入框给挡住
  792. $('input[type="text"],textarea').focus(function () {
  793. var target = this;
  794. setTimeout(function(){
  795. target.scrollIntoViewIfNeeded();
  796. },400);
  797. });
  798. // 显示关键词分类弹框
  799. var modifyArr=[]
  800. $('.classify-r').on('click', function(){
  801. console.log(resArr)
  802. modifyArr = resArr
  803. console.log(modifyArr)
  804. // 如果是苹果手机,打开时候要设置top
  805. var agent = navigator.userAgent.toLowerCase();
  806. var dialog = $('.classify-edit-pop .weui-dialog')
  807. if( /iphone|ipod|ipad|ios/.test(agent) ){
  808. dialog.css({ 'top': '30%' })
  809. } else {
  810. dialog.css({ 'top': '50%' })
  811. }
  812. $('.classify-edit-pop').show()
  813. var currentClassifyName = $(this).find('.classify-detail').text()
  814. $('input.classify-keyword').val(currentClassifyName).focus()
  815. })
  816. console.log(modifyArr)
  817. // 改变关键词分类
  818. function changeDesc( value, desc) {
  819. console.log(modifyArr)
  820. for (var i in modifyArr) {
  821. if (modifyArr[i].s_item == value) {
  822. modifyArr[i].s_item = desc;
  823. console.log(modifyArr)
  824. // 修改关键词分类
  825. vTools.ajax({
  826. url:'/subscribe/key/update',
  827. type:'POST',
  828. data:{
  829. "update_item":{
  830. "before":value,
  831. "after":desc
  832. },
  833. "a_items":modifyArr
  834. },
  835. success:function(res){
  836. console.log(res)
  837. if(res.data.status == -1){
  838. vTools.jLoading({
  839. content:'此分类名已存在',
  840. iconHide:true,
  841. duration:1500,
  842. callback:function(){
  843. location.reload()
  844. }
  845. })
  846. return;
  847. }
  848. $('.classify-r .classify-detail').text(desc)
  849. location.reload()
  850. },
  851. error:function(err){
  852. console.log(err)
  853. }
  854. })
  855. }
  856. }
  857. }
  858. // 关键词分类 - 确定按钮点击事件
  859. $('.classify-edit-pop .dialog__btn_confirm').on('click', function() {
  860. var parameter = location.search.split('?')[1]
  861. if(sessionStorage.getItem('iconClick') == 0 && parameter == 'state=1'){
  862. var s = $('input.classify-keyword').val()
  863. // 去空格
  864. s = s.replace(/\s+/g, ' ').trim();
  865. if (s.length === 0) {
  866. return
  867. }
  868. // changeDesc(classifyName,s)
  869. var clone_classindex= sessionStorage.getItem('clone-classindex')
  870. var classindex= sessionStorage.getItem('classindex')
  871. var classifyName = sessionStorage.getItem('classifyName')
  872. for(i=0;i<resArr.length;i++){
  873. if(resArr[i].s_item == s&& classindex == clone_classindex){
  874. vTools.jLoading({
  875. content:'此分类名已存在',
  876. iconHide:true,
  877. duration:1500
  878. })
  879. return;
  880. }else if(s != classifyName && classindex !== clone_classindex){
  881. // 修改关键词分类
  882. var modifyresArr = []
  883. for(var j=0;j<resArr.length;j++){
  884. if(resArr[j].s_item == classifyName){
  885. resArr[j].s_item = s
  886. }
  887. }
  888. modifyresArr = resArr
  889. vTools.ajax({
  890. url:'/subscribe/key/update',
  891. type:'POST',
  892. data:{
  893. "update_item":{
  894. "before":classifyName,
  895. "after":s
  896. },
  897. "a_items":modifyresArr
  898. },
  899. success:function(res){
  900. console.log(res)
  901. if(res.data.status == -1){
  902. console.log('222222')
  903. vTools.jLoading({
  904. content:'此分类名已存在',
  905. iconHide:true,
  906. duration:1500,
  907. })
  908. $('.classify-edit-pop').show()
  909. $('.classify-r .classify-detail').text(classifyName)
  910. sessionStorage.setItem('classifyName',classifyName)
  911. sessionStorage.setItem('keyclassify',classifyName)
  912. return
  913. }
  914. $('.classify-r .classify-detail').text(s)
  915. // location.reload()
  916. },
  917. error:function(err){
  918. console.log(err)
  919. }
  920. })
  921. }
  922. }
  923. $('.classify-r .classify-detail').text(s)
  924. sessionStorage.setItem('classifyName',s)
  925. sessionStorage.setItem('keyclassify',s)
  926. // 关闭弹框后要重置input内容
  927. $('.classify-edit-pop').hide()
  928. $('input.classify-keyword').val('')
  929. }else{
  930. console.log(22)
  931. var classifyName = sessionStorage.getItem('classifyName')
  932. var s = $('input.classify-keyword').val()
  933. // 去空格
  934. s = s.replace(/\s+/g, ' ').trim();
  935. if (s.length === 0) {
  936. return
  937. }
  938. changeDesc(classifyName,s)
  939. // 关闭弹框后要重置input内容
  940. $('.classify-edit-pop').hide()
  941. $('input.classify-keyword').val('')
  942. }
  943. })
  944. // 关键词分类 - 取消按钮点击事件
  945. $('.classify-edit-pop .dialog__btn_cancel').on('click', function() {
  946. var parameter = location.search.split('?')[1]
  947. if(sessionStorage.getItem('iconClick') == 0 && parameter == 'state=1'){
  948. // changeDesc(classifyName,s)
  949. var classifyList = []
  950. var newclassify = ''
  951. for(i=0;i<resArr.length;i++){
  952. var samelist = resArr[i].s_item.indexOf('未分类')
  953. if(samelist != -1){
  954. classifyList.push(resArr[i].s_item)
  955. }
  956. }
  957. var sum = getClassifyName(classifyList)
  958. console.log(sum)
  959. var clone_classindex= sessionStorage.getItem('clone-classindex')
  960. var classindex= sessionStorage.getItem('classindex')
  961. if(classindex == clone_classindex){
  962. $('.classify-r .classify-detail').text(sum)
  963. sessionStorage.setItem('keyclassify',sum)
  964. }
  965. }
  966. $('.classify-edit-pop').hide()
  967. $('input.classify-keyword').val('')
  968. })
  969. })
  970. // 判断创建的分类名是否重复
  971. // 传入一个已经存在的未分类(数组)
  972. function getClassifyName(existed) {
  973. var index = existed.length + 1
  974. function getName() {
  975. var leadingString = '未分类'
  976. // 创建的未分类后面的数字
  977. var cName = leadingString + index
  978. // 判断数组中的每一项是否包含未分类 == -1说明不包含 否则包含:让数字加一知道不重复为止
  979. var ei = existed.indexOf(cName)
  980. if (ei === -1) {
  981. return cName
  982. } else {
  983. index ++
  984. console.log(index);
  985. return getName()
  986. }
  987. }
  988. return getName()
  989. }