泛微OA样式优化

1.优化门户显示样式 2.优化文档显示样式 3.优化邮箱显示样式 4.优化流程显示样式 5.优化文档界面新增推送邮件功能

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

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name        泛微OA样式优化
// @namespace   Violentmonkey Scripts
// @match       *192.168.0.150:8888*
// @grant       none
// @version     2.3
// @author      meazin
// @license MIT
// @homepageURL  https://greasyfork.org/zh-CN/scripts/444493
// @description 1.优化门户显示样式 2.优化文档显示样式 3.优化邮箱显示样式 4.优化流程显示样式 5.优化文档界面新增推送邮件功能
// ==/UserScript==
$(function () {
    //优化门户首页显示
    setInterval(() => {
      $("body").css("color", "#202020");
  
      $(".wfremindimg")
        .siblings("a")
        .find("font")
        .css({ color: "red", "font-weight": "bold" });
  
      // $(".header").css({ "background-color": "#333" });
    }, 1000);
  
    setTimeout(() => {
      //全屏文档内容区
      $(".wea-doc-detail-content").css({
        width: "70%",
        margin: "0 auto",
        padding: "0",
      });
      //居中文档页面内容
      // $("#weaDocDetailHtmlContent").find("div").attr("align", "center");
      $("#weaDocDetailHtmlContent").css("padding", "20px");
      //折叠下方附件区
      $(".auto-extend-info-con").find(".anticon-cross").click();
    }, 1000);
  
    setInterval(() => {
      //移除底部编辑人信息
      if ($(".wea-doc-detail-content-text-sub")) {
        $(".wea-doc-detail-content-text-sub").hide();
      }
  
      //去除邮箱页头区域
      if ($(".wea-email-main").find(".wea-new-top")) {
        $(".wea-email-main").find(".wea-new-top").hide();
      }
    }, 1000);
  
    //如果是工作流程页面,则默认将文本输入框变更为文本域输入框
    if (location.href.indexOf("workflow") > -1) {
      setTimeout(function () {
        //将text转换为textarea
        var textList = $("input[type='text']");
        for (var i = 0; i < textList.length; i++) {
          var input = $(textList[i]);
          var id = input.attr("id");
          var textarea = $("<textarea></textarea>").attr({
            type: "textarea",
            class: input.attr("class"),
            name: input.attr("name"),
            style: input.attr("style"),
          });
          textarea.val(input.val());
          textarea.text(input.val());
          input.after(textarea).remove();
          textarea.attr("id", id);
          textarea.height(20);
  
          //监听文本值变化
          textarea.on("input propertychange", function (e) {
            $(e.target).val(e.target.value);
            $(e.target).text(e.target.value);
          });
        }
  
        var textareaList = $("textarea");
        for (var i = 0; i < textareaList.length; i++) {
          textareaList[i].style.height = textareaList[i].scrollHeight + 2 + "px";
  
          //监听文本域标签输入事件,自动撑高
          $(textareaList[i]).on("input propertychange", function (e) {
            //先设置为自动行高保证删除行时可自动伸缩
            e.target.style.height = "20px";
            e.target.style.height = e.target.scrollHeight + 2 + "px";
          });
        }
      }, 2000);
    }
    
    //文档模块追加推送邮件功能
    function addBtn() {
        var dropBtns=$(".wea-new-top-req-drop-btn")
        if(dropBtns.length==0)
        {
            return
        }
        $(dropBtns[0])
          .parent()
          .prepend(
            '<span style="display: inline-block; line-height: 28px; vertical-align: middle; margin-left: 10px;"><button ecid="_Route@ydk6el_Button@uolti6@BTN_SHARE_DOC_button@xq1ea3" type="button" class="ant-btn ant-btn-primary" id="sendMailBtn"><span>推送邮件</span></button></span>'
          );
        $("#sendMailBtn").on("click", sendMail);
      }
    
      function sendMail() {
          var locationUrl=$('.wea-new-top-req-drop-btn').context.URL;
        var matchs = locationUrl.match("(?<=id=).+(?=&)");
        if (matchs.length == 0) {
          return;
        }


        var userId = JSON.parse(localStorage.getItem("theme-account")).userid;
        var docId = matchs[0];
        var docTitle = $(".wea-new-top-req-title-text").find("[title]")[0]["title"];

        var linktype='37';
        var jumpUrl="";
        if(locationUrl.indexOf('document')>-1){
            linktype='37';
            jumpUrl=`/spa/document/index.jsp?router=1&amp;id=${docId}&amp;isovertime=#/main/document/detail`
        }
        if(locationUrl.indexOf('workflow')>-1){
            linktype='152';
            jumpUrl=`/workflow/request/ViewRequestForwardSPA.jsp?requestid=${docId}`
        }

        var mouldtext = `<div id="wea_rich_text_default_font" style="font-size:12px;"><p><a contenteditable="false" href="${jumpUrl}" linkid="${docId}" linktype="${linktype}" ondblclick="return false;" style="cursor:pointer;text-decoration:underline !important;margin-right:8px" target="_blank" unselectable="off">${docTitle}</a>&nbsp;</p>
        </div>`;
    
        $.get("/api/email/add/emailAdd").then((data) => {
          var sessionUuid = JSON.parse(data).email_sendsessionUUid;
          $.post("/api/email/base/send", {
            hrmAccountid: userId,
            isInternal: 1,
            isSendApart: 0,
            flag: -1,
            internaltonew: [],
            internalccnew: [],
            internalbccnew: [],
            usernameTo: [],
            usernameCc: [],
            usernameBcc: [],
            subject: docTitle,
            mouldtext: mouldtext,
            hasfile: 0,
            oldmailid: -1,
            priority: 0,
            savesend: 1,
            texttype: 0,
            needReceipt: 0,
            op_isTimingSend: 0,
            savedraft: 1,
            sessionUUid: sessionUuid,
          }).then((data) => {
            var mailId = JSON.parse(data).mailId;
            window.open(
              `/spa/email/static/index.html#/main/email/new?flag=4&id=${mailId}&isInternal=1`
            );
          });
        });
      }
    
      setTimeout(function () {
        addBtn();
      }, 1500);


  });