蓝湖优化

去除蓝湖顶部绑定手机提示bar,增加产品原型文档搜索

当前为 2022-05-08 提交的版本,查看 最新版本

// ==UserScript==
// @name         蓝湖优化
// @namespace    Pudon
// @match        *://*.lanhuapp.com/*
// @require      https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/1.12.4/jquery.min.js
// @version      0.0.1
// @grant        none
// @license      MIT
// @description  去除蓝湖顶部绑定手机提示bar,增加产品原型文档搜索
// ==/UserScript==

(function() {
  document.addEventListener('DOMNodeInserted', (e) => {
    var _el = e.target
    // 清除顶部绑定手机bar
    if (_el.className === 'onboarding' || _el.className === 'onboarding-top') {
        _el.remove()
    }
  }, false)
  
  if (!document.querySelector('.whole')) { return } 
  
  var vue = document.querySelector('.whole').__vue__
  vue.$watch('$route', async function (to, from) {
    if (to.name === 'product' && from.name !== 'product' && !document.querySelector('#fileSearch')) {
      // 等change-menu渲染出来
      while(!document.querySelector('.change-menu')) {
        await sleep(100)
      }
      addFn()
    }
  })
  
  var addFn = function() {
    var _btn = '<div class="search-bar" id="fileSearch" style="position: relative;"><img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03LjY2Njg4IDE1LjMwNTFDNS41NTgwNSAxMy4xOTYzIDUuNTU4MDUgOS43NzcxNyA3LjY2Njg4IDcuNjY4MzRDOS43NzU3MSA1LjU1OTUxIDEzLjE5NDggNS41NTk1MSAxNS4zMDM2IDcuNjY4MzRDMTcuNDEyNSA5Ljc3NzE3IDE3LjQxMjUgMTMuMTk2MyAxNS4zMDM2IDE1LjMwNTFDMTMuMTk0OCAxNy40MTM5IDkuNzc1NzEgMTcuNDEzOSA3LjY2Njg4IDE1LjMwNTFaTTYuODE4MzUgNi44MTk4MUM0LjI0MDg5IDkuMzk3MjcgNC4yNDA4OSAxMy41NzYyIDYuODE4MzUgMTYuMTUzNkM5LjI5ODUxIDE4LjYzMzggMTMuMjYxNSAxOC43Mjc0IDE1Ljg1MzYgMTYuNDM0NUwxOC4zOTEgMTguOTY0OEMxOC42MjQxIDE5LjE5NzIgMTkuMDAxMyAxOS4xOTY5IDE5LjIzNCAxOC45NjQyQzE5LjQ2NzEgMTguNzMxMSAxOS40NjY5IDE4LjM1MjkgMTkuMjMzNCAxOC4xMjAxTDE2LjY3MzQgMTUuNTY3M0MxOC43MTYgMTIuOTc3IDE4LjU0MjIgOS4yMDk5IDE2LjE1MjIgNi44MTk4MUMxMy41NzQ3IDQuMjQyMzUgOS4zOTU4MSA0LjI0MjM1IDYuODE4MzUgNi44MTk4MVoiIGZpbGw9IiM3ODc3ODIiLz4KPC9zdmc+Cg==" alt="search" class="search"><input type="text" placeholder="搜索" id="fileSearchInput"><img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgb3BhY2l0eT0iMC4wMSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSIjQzRDNEM0Ii8+CjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjgiIGZpbGw9IiNDNEM0QzQiIHN0cm9rZT0iI0M0QzRDNCIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4KPHBhdGggZD0iTTE0IDEwTDEwIDE0TTEwIDEwTDE0IDE0IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjEuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPgo=" alt="close" class="close" style="display: none;" id="fileSearchClear"></div>'
    $('.change-menu').after(_btn)
    $('.file-list').children().attr('id', 'fileList')
    var _rpList = $('.file-list').children().children()
  
    function trigger(t, e) {
      var n = document.createEvent('HTMLEvents')
      n.initEvent(e, !0, !0)
      t.dispatchEvent(n)
    }
  
    $('body').on('compositionstart','#fileSearchInput', function(e) {
      e.target.composing = true
    })
  
    $('body').on('compositionend','#fileSearchInput', function(e) {
      e.target.composing && (e.target.composing = false,
        trigger(e.target, 'input'))
    })
  
    // 监听输入
    $('body').on('input','#fileSearchInput', function(e) {
      if (e.target.composing) { return }
  
      // 控制清除按钮显示
      $(this).val() ? $('#fileSearchClear').show() : $('#fileSearchClear').hide()
      var _val = $(this).val()
      var _resList = _rpList.filter(function() {
        return $(this).find('span').text().indexOf(_val) > -1
      })
      $('#fileList').html(_resList)
    })
  
    // 监听清除按钮
    $('body').on('click','#fileSearchClear', function(e) {
      $('#fileSearchInput').val('')
      $('#fileSearchClear').hide()
      $('#fileList').html(_rpList)
    })
  }
  
  // 延迟函数
  const sleep = ms => new Promise(r => setTimeout(r, ms))
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址