Blame view

src/Message/Message.js 2.25 KB
3a3ecabe   Imshann   init
1
2
  import style from "antd/lib/message/style/index.css";
  
710b4ac0   Imshann   优化
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
  angular
      .module("esNgAntd")
      .factory("message", function ($compile, $rootScope, esNgAntd) {
  
          function Message(type, content, second = 3) {
              esNgAntd.createStyle("ant-message", style);
  
                  if (!document.querySelector(".ant-message")) {
                      let wrapperTemplate = `<div class="ant-message"><span></span></div>`;
                      let wrapperElement = document.createElement("div");
                      wrapperElement.innerHTML = wrapperTemplate;
                      document.body.appendChild(wrapperElement);
                  }
  
                  let messageWrapperElement = document.createElement("div");
                  messageWrapperElement.innerHTML = this.getTemplate(
                      type,
                      content
                  );
                  let messageElement = messageWrapperElement.childNodes[0];
                  document
                      .querySelector(".ant-message span")
                      .appendChild(messageElement);
                  $compile(messageElement)($rootScope);
  
                  setTimeout(() => {
                      messageElement.remove();
                  }, second * 1000);
          }
  
          Message.prototype.getTemplate = function (type, content) {
              let icon = {
                  info: "InfoCircleFilled",
                  success: "CheckCircleFilled",
                  error: "CloseCircleFilled",
                  warning: "InfoCircleFilled",
              };
81f8a467   Imshann   调整组件前缀
40
              return `<div class="ant-message-notice"><div class="ant-message-notice-content"><div class="ant-message-custom-content ant-message-${type}"><antd-icon type="${icon[type]}"></antd-icon><span>${content}</span></div></div></div>`;
710b4ac0   Imshann   优化
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
              
          }
  
          return {
              info: function (content, second) {
                  new Message("info", content, second);
              },
              success: function (content, second) {
                  new Message("success", content, second);
              },
              error: function (content, second) {
                  new Message("error", content, second);
              },
              warning: function (content, second) {
                  new Message("warning", content, second);
              },
          };
      });