赣州市洪水风险预警系统二维版本
xiebin
2023-03-02 b39483c96ae572121d3c619c0b9d37634e682cc4
1
2
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
define([
    "dojo",
    "dojo/_base/declare",
    "dijit/_WidgetBase",
    "dojo/dom-construct",
    "dojo/dom-attr",
    "dojo/dom-geometry",
    "dojo/window",
    "dojo/dom-style",
    "dojo/query",
    "dojo/_base/lang",
    "dojo/_base/fx",
    "dojo/on",
    "dojo/fx",
], function(
    dojo,
    declare,
    _WidgetBase,
    domConstruct,
    domAttr,
    domGeometry,
    win,
    domStyle,
    query,
    lang,
    fx,
    on,
    dojofx
) {
    var RL = declare([_WidgetBase], {
 
        /**
         * 背景
         */
        _divbg: null,
        _divContent: null,
        _span: null,
        _refNode: null,
        /**
         * 是否已经在显示
         */
        _isShow: false,
        _effectHandler: null,
        constructor: function(params, srcNodeRef, refNode) {
            var csspath = require.toUrl("controls/loader/Loader.css");
            dojo.create("link", {
                    href: csspath,
                    type: 'text/css',
                    rel: 'stylesheet'
                },
                document.getElementsByTagName('head')[0]);
            if (refNode) {
                this._refNode = refNode;
            } else {
                this._refNode = query("body")[0];
            }
        },
        postCreate: function() {
            this._divbg = domConstruct.create("div", {
                "class": "loader-background"
            });
            this._divContent = domConstruct.create("div", {
                "class": "loader-content"
            });
            this._span = domConstruct.create("span", {
                "class": "loader-text",
                "innerHTML": "正在加载,请稍等......"
            });
        },
        show: function(loadtext,opts) {
            if (loadtext !== undefined) {
                this._span.innerHTML = loadtext;
            } else {
                this._span.innerHTML = "正在加载,请稍等......";
            }
            if (this._isShow) {
                if (this._effectHandler) {
                    this._effectHandler.stop();
                    this._effectHandler = null;
                }
                return;
            }
            var left;
            var top;
 
            var vs = win.getBox();
            //        left = (vs.w/2)-(domStyle.get(this._divContent,"width")/2);
            //        top = (vs.h/2)-(domStyle.get(this._divContent,"height")/2);
            if (opts) {
                //var pos=,true);
                domStyle.set(this._refNode, "width", opts.w + "px");
                domStyle.set(this._refNode, "height", opts.h + "px");
                left = opts.x- (206 / 2);
                top = opts.y- (61 / 2);
            } else{
                left = (vs.w / 2) - (206 / 2);
                top = (vs.h / 2) - (61 / 2);
            }
 
            domStyle.set(this._divContent, "top", top.toString() + "px");
            domStyle.set(this._divContent, "left", left.toString() + "px");
            this._isShow = true;
            var refNode = this._refNode;
            domConstruct.place(this._divbg, refNode);
            domStyle.set(this._divbg, "opacity", "0.3");
            domConstruct.place(this._divContent, refNode);
            domStyle.set(this._divContent, "opacity", "0");
            domConstruct.place(this._span, this._divContent);
            fx.animateProperty({
                node: this._divbg,
                properties: {
                    opacity: {
                        start: 0,
                        end: 0.3
                    }
                }
            }).play();
            fx.fadeIn({
                node: this._divContent
            }).play();
            //fx.fadeOut({ node: this._span }).play();
        },
        hide: function() {
            if (this._isShow == false) {
                return;
            }
            //refNode = query("body")[0];
            var fade1 = fx.animateProperty({
                node: this._divbg,
                properties: {
                    opacity: {
                        start: 0.3,
                        end: 0
                    }
                }
            });
            var fade2 = fx.animateProperty({
                node: this._divContent,
                properties: {
                    opacity: {
                        start: 1,
                        end: 0
                    }
                }
            });
            var combine = dojofx.combine([fade1, fade2]);
 
            on(fade2, "End", lang.hitch(this, function() {
                domConstruct.destroy(this._divbg);
                domConstruct.destroy(this._divContent);
                this._isShow = false;
                this._effectHandler = null;
            }));
            this._effectHandler = combine.play();
        }
    });
    return RL;
});