dataExport_exclude.html 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>排除词</title>
  8. <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/wx_dataExport/css/base.css?v={{Msg "seo" "version"}}">
  9. <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/wx_dataExport/iconfont/iconfont.css?v={{Msg "seo" "version"}}">
  10. <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/wx_dataExport/css/weui.min.css?v={{Msg "seo" "version"}}">
  11. <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/wx_dataExport/css/keyWord.css?v={{Msg "seo" "version"}}3">
  12. <script src="{{Msg "seo" "cdn"}}/wx_dataExport/js/rem.js"></script>
  13. {{include "/common/weixin.html"}}
  14. <script src="{{Msg "seo" "cdn"}}/wxswordfish/share.js?v={{Msg "seo" "version"}}"></script>
  15. </head>
  16. <style>
  17. .keyWord .enter .btn .save {
  18. float: right;
  19. }
  20. body{
  21. background: rgba(245,244,249,1);
  22. }
  23. .keyWord .addKeyWord {
  24. width:0;
  25. position: fixed;
  26. left: 44%;
  27. top: 85%;
  28. text-align: center;
  29. }
  30. .ios-user-select{
  31. -webket-user-select: text;
  32. }
  33. </style>
  34. <body>
  35. <div class="keyWord">
  36. <p class="title">示例:运维(排除词)</p>
  37. <!-- 添加附加词 -->
  38. <div class="enter addkeyWord">
  39. <input type="text" class="enterOne" placeholder="请输入排除词" />
  40. <div class="btn">
  41. <button class="save" disabled>确认</button>
  42. <button class="close">取消</button>
  43. </div>
  44. </div>
  45. <!-- 添加附加词显示列表 -->
  46. <div class="showKeyWord">
  47. <ul>
  48. </ul>
  49. </div>
  50. <div class="problem">
  51. 疑问解答 <i class="iconfont icon-wenhao"></i>
  52. </div>
  53. <div class="addKeyWord">
  54. <i class="iconfont icon-tianjia"></i>
  55. </div>
  56. <!-- 疑难问题弹窗 -->
  57. <div class="problemPop">
  58. <div class="problemPopContent">
  59. <h3>疑问解答</h3>
  60. <ul>
  61. <li>
  62. <p>例:某公司主营业务为软件系统开发</p>
  63. </li>
  64. <li>
  65. <h4>关键词:</h4>
  66. <p>目标信息中的关键性词语,如“软件系统”</p>
  67. </li>
  68. <li>
  69. <h4>附加词:</h4>
  70. <p>与关键词形成一体/组合,便于查找准确信息,如“开发”</p>
  71. </li>
  72. <li>
  73. <h4>排除词:</h4>
  74. <p>与关键词互斥,可排除一部分非目标信息,如“运维”</p>
  75. </li>
  76. </ul>
  77. <button class="knowBtn">我知道了</button>
  78. </div>
  79. </div>
  80. </div>
  81. <script src="{{Msg "seo" "cdn"}}/wx_dataExport/js/zepto.js?v={{Msg "seo" "version"}}"></script>
  82. <script src="{{Msg "seo" "cdn"}}/wx_dataExport/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
  83. <script>
  84. initShare({{.T.signature}},{{.T.openid}},2,"jy_wxmyorder",{{.T.nickname}},{{.T.avatar}});
  85. var keyWordArr = [];
  86. var keyWordsArr = [];
  87. var excludeArr = [];
  88. var url = location.href;
  89. var token = decodeURI(url.match(/=.*/)).replace("=", "");
  90. var tokens = "";
  91. if(token.indexOf("_in")===-1){
  92. tokens = token;
  93. }else{
  94. tokens = token.split("_")[0];
  95. }
  96. //
  97. if(sessionStorage.keyWord!==undefined && sessionStorage.keyWord!==""){
  98. if(localStorage.keyWord !== "" && localStorage.keyWord !== undefined){
  99. keyWordArr = JSON.parse(localStorage.keyWord);
  100. }
  101. keyWordsArr = JSON.parse(sessionStorage.keyWord);
  102. var shtml = "";
  103. for(var x in keyWordsArr){
  104. if(keyWordsArr[x].keyWord === tokens){
  105. excludeArr = keyWordsArr[x].exclude;
  106. if(excludeArr !== undefined){
  107. for(var y in excludeArr){
  108. shtml +=
  109. `<li>
  110. <div class="one">
  111. <div>
  112. <span>
  113. <p class="key">${ excludeArr[y] }</p>
  114. </span>
  115. </div>
  116. <button class="editKeyWord"><i class="iconfont icon-xiugai"></i> 修改</button>
  117. </div>
  118. <div class="modify">
  119. <span class="ios-user-select" contentEditable="true">${ excludeArr[y] }</span>
  120. <button class="deleteKey">删除</button>
  121. <button class="ascertainKey">确定</button>
  122. </div>
  123. </li>`
  124. }
  125. }
  126. }
  127. }
  128. $('.showKeyWord > ul').prepend(shtml);
  129. $(".enter.addKeyWord").hide();
  130. $(".showKeyWord").show();
  131. }else{
  132. if(localStorage.keyWord !== "" && localStorage.keyWord !== undefined){
  133. var keyWord = localStorage.keyWord;
  134. keyWordArr = JSON.parse(keyWord);
  135. var html = "";
  136. for(var i in keyWordArr){
  137. var keyWords = keyWordArr[i].keyWord;
  138. var excludes = keyWordArr[i].exclude;
  139. if(keyWords === tokens){
  140. excludeArr = excludes;
  141. if(excludes !== undefined){
  142. for(var m in excludes){
  143. html +=
  144. `<li>
  145. <div class="one">
  146. <div>
  147. <span>
  148. <p class="key">${ excludes[m] }</p>
  149. </span>
  150. </div>
  151. <button class="editKeyWord"><i class="iconfont icon-xiugai"></i> 修改</button>
  152. </div>
  153. <div class="modify">
  154. <span contentEditable="true">${ excludes[m] }</span>
  155. <button class="deleteKey">删除</button>
  156. <button class="ascertainKey">确定</button>
  157. </div>
  158. </li>`
  159. }
  160. }
  161. }
  162. }
  163. $('.showKeyWord > ul').prepend(html);
  164. }
  165. }
  166. $(function(){
  167. $('.knowBtn').on('click',function(){
  168. $(".problemPop").hide()
  169. });
  170. $(".problem").on('click',function(){
  171. $(".problemPop").css("display",'flex');
  172. });
  173. function hasWords () {
  174. var showKeyWordLength = $(".showKeyWord ul").find('li').length;
  175. if(showKeyWordLength === 0){
  176. $(".enter.addkeyWord").show();
  177. $(".addKeyWord").hide();
  178. $(".showKeyWord").hide();
  179. } else {
  180. $(".enter.addkeyWord").hide();
  181. $(".showKeyWord").show();
  182. $(".addKeyWord").show();
  183. }
  184. }
  185. hasWords();
  186. // 添加按钮
  187. $(".addKeyWord i").on('click',function(){
  188. var keyWord = tokens;
  189. // sessionStorage.removeItem("keyWord");
  190. if(token.indexOf("_in")===-1){
  191. window.location.href="/front/wx_dataExport/excludeInput?keyWord="+keyWord;
  192. }else{
  193. window.location.href="/front/wx_dataExport/excludeInput?keyWord="+keyWord+"_in";
  194. }
  195. });
  196. // 添加keyWords检查输入框内是否有文字,如果有才能点击添加按钮
  197. $('.addkeyWord input.enterOne').on('input', function() {
  198. var buttonDOM = $(this).siblings().find('button')[0];
  199. if ($(this).val().length >= 1) {
  200. buttonDOM.style.opacity = 1;
  201. buttonDOM.removeAttribute("disabled")
  202. } else {
  203. buttonDOM.style.opacity = .5;
  204. buttonDOM.setAttribute("disabled", true)
  205. }
  206. });
  207. // 添加 按钮的点击事件
  208. $('.addkeyWord .btn .save').on('click', function(){
  209. var exclude = $('.addkeyWord input.enterOne').val();
  210. if(excludeArr===undefined){
  211. excludeArr = [];
  212. }
  213. if (exclude.length >= 20) {
  214. var s = exclude.slice(0,19);
  215. $('.addkeyWord input.enterOne').val(s);
  216. weui.toast('排除词不能超过20字', {
  217. duration: 2000,
  218. className: 'text-overflow100',
  219. callback: function(){}
  220. });
  221. return
  222. }
  223. excludeArr.push(exclude);
  224. for(var i in keyWordArr){
  225. if(keyWordArr[i].keyWord === tokens){
  226. keyWordArr[i].exclude = excludeArr
  227. }
  228. }
  229. if(sessionStorage.keyWord!==undefined && sessionStorage.keyWord!==""){
  230. for(var m in keyWordsArr){
  231. if(keyWordsArr[m].keyWord === tokens){
  232. keyWordsArr[m].exclude = excludeArr
  233. }
  234. }
  235. keyWordArr.push(keyWordsArr[0]);
  236. for (var x = 0; x < keyWordArr.length; x++) {
  237. for (var j =x+1; j <keyWordArr.length; ) {
  238. if (keyWordArr[x].keyWord === keyWordArr[j].keyWord && keyWordArr[x].exclude === keyWordArr[j].exclude && keyWordArr[x].appended === keyWordArr[j].appended) {
  239. keyWordArr.splice(j, 1);
  240. }
  241. else j++;
  242. }
  243. }
  244. }
  245. // localStorage.keyWord = JSON.stringify(keyWordArr);
  246. sessionStorage.keyWord = JSON.stringify(keyWordsArr);
  247. var html = `<li>
  248. <div class="one">
  249. <div>
  250. <span>
  251. <p class="key">${ exclude }</p>
  252. </span>
  253. </div>
  254. <button class="editKeyWord"><i class="iconfont icon-xiugai"></i> 修改</button>
  255. </div>
  256. <div class="modify">
  257. <span contentEditable="true">${ exclude }</span>
  258. <button class="deleteKey">删除</button>
  259. <button class="ascertainKey">确定</button>
  260. </div>
  261. </li>`;
  262. $('.showKeyWord > ul').prepend(html);
  263. // 隐藏
  264. $(".enter.addkeyWord").hide();
  265. $(".showKeyWord").show();
  266. $(".addKeyWord").show();
  267. $('.enter.addkeyWord > input').val('');
  268. var buttonDOM = $('.enter.addkeyWord .btn button')[0];
  269. buttonDOM.style.opacity = .5;
  270. buttonDOM.setAttribute("disabled", true)
  271. });
  272. // 编辑
  273. $(".showKeyWord").on('click', '.editKeyWord',function(e){
  274. $('.modify span').each(function(item){
  275. $('.modify span')[0].contentEditable = true
  276. });
  277. keepLastIndex(e.target)
  278. // console.log($(this).parent().siblings().find('span').text())
  279. $(this).parent().hide();
  280. $(this).parent().siblings().css('display','block');
  281. $(".addKeyWord").hide();
  282. });
  283. // 编辑 删除
  284. $('.showKeyWord').on('click', '.deleteKey', function(e) {
  285. var exclude = $(this).parent().prev().find('.key').text();
  286. excludeArr.splice($.inArray(exclude, excludeArr),1);
  287. for(var i in keyWordArr){
  288. if(keyWordArr[i].keyWord === tokens){
  289. keyWordArr[i].exclude = excludeArr
  290. }
  291. }
  292. // localStorage.keyWord = JSON.stringify(keyWordArr);
  293. sessionStorage.keyWord = JSON.stringify(keyWordArr);
  294. $(this).parents('li').remove();
  295. $(".addKeyWord").show();
  296. hasWords()
  297. // console.log('删除附加词:',$(this).parent().find('span').text())
  298. })
  299. // 编辑 确定
  300. $('.showKeyWord').on('click', '.ascertainKey', function(e) {
  301. var exclude = $(this).siblings('span').text();
  302. var excludes = $(this).parent().prev().find('.key').text();
  303. if (exclude.length < 1) {
  304. weui.toast('排除词不能为空', {
  305. duration: 2000,
  306. className: 'text-overflow100',
  307. callback: function(){
  308. }
  309. });
  310. return
  311. }else if($(this).parent().find("span").text().length >= 20){
  312. var s = $(this).parent().find("span").text().slice(0,19);
  313. $(this).parent().find("span").text(s);
  314. weui.toast('排除词不能超过20字', {
  315. duration: 2000,
  316. className: 'text-overflow100',
  317. callback: function(){}
  318. });
  319. return
  320. }else{
  321. for(var i in excludeArr){
  322. if(excludeArr[i] === excludes){
  323. excludeArr[i] = exclude;
  324. }
  325. }
  326. for(var m in keyWordArr){
  327. if(keyWordArr[m].keyWord === tokens){
  328. keyWordArr[m].exclude = excludeArr
  329. }
  330. }
  331. // localStorage.keyWord = JSON.stringify(keyWordArr);
  332. sessionStorage.keyWord = JSON.stringify(keyWordArr);
  333. $(this).parent().siblings().find('.key').text(exclude);
  334. $(this).parent().hide().siblings().show()
  335. }
  336. $(".addKeyWord").show();
  337. });
  338. //去空格方法
  339. String.prototype.trim = function(){
  340. return this.replace(/(^\s*)|(\s*$)/g, ' ');
  341. };
  342. $('.addkeyWord .btn .close').on('click', function () {
  343. window.history.back();
  344. });
  345. function keepLastIndex(obj) {
  346. if (window.getSelection) {//ie11 10 9 ff safari
  347. obj.focus(); //解决ff不获取焦点无法定位问题
  348. var range = window.getSelection();//创建range
  349. range.selectAllChildren(obj);//range 选择obj下所有子内容
  350. range.collapseToEnd();//光标移至最后
  351. }
  352. else if (document.selection) {//ie10 9 8 7 6 5
  353. var range = document.selection.createRange();//创建选择对象
  354. range.moveToElementText(obj);//range定位到obj
  355. range.collapse(false);//光标移至最后
  356. range.select();
  357. }
  358. }
  359. })
  360. </script>
  361. {{include "/common/baiducc.html"}}
  362. </body>
  363. </html>