后台统计优化
This commit is contained in:
parent
5fcf789e63
commit
8dae15225e
354
Gemfile.lock
354
Gemfile.lock
|
@ -1,69 +1,69 @@
|
||||||
GEM
|
GEM
|
||||||
remote: https://gems.ruby-china.com/
|
remote: https://gems.ruby-china.com/
|
||||||
specs:
|
specs:
|
||||||
aasm (5.0.6)
|
aasm (5.2.0)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
actioncable (5.2.4.1)
|
actioncable (5.2.6)
|
||||||
actionpack (= 5.2.4.1)
|
actionpack (= 5.2.6)
|
||||||
nio4r (~> 2.0)
|
nio4r (~> 2.0)
|
||||||
websocket-driver (>= 0.6.1)
|
websocket-driver (>= 0.6.1)
|
||||||
actionmailer (5.2.4.1)
|
actionmailer (5.2.6)
|
||||||
actionpack (= 5.2.4.1)
|
actionpack (= 5.2.6)
|
||||||
actionview (= 5.2.4.1)
|
actionview (= 5.2.6)
|
||||||
activejob (= 5.2.4.1)
|
activejob (= 5.2.6)
|
||||||
mail (~> 2.5, >= 2.5.4)
|
mail (~> 2.5, >= 2.5.4)
|
||||||
rails-dom-testing (~> 2.0)
|
rails-dom-testing (~> 2.0)
|
||||||
actionpack (5.2.4.1)
|
actionpack (5.2.6)
|
||||||
actionview (= 5.2.4.1)
|
actionview (= 5.2.6)
|
||||||
activesupport (= 5.2.4.1)
|
activesupport (= 5.2.6)
|
||||||
rack (~> 2.0, >= 2.0.8)
|
rack (~> 2.0, >= 2.0.8)
|
||||||
rack-test (>= 0.6.3)
|
rack-test (>= 0.6.3)
|
||||||
rails-dom-testing (~> 2.0)
|
rails-dom-testing (~> 2.0)
|
||||||
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
||||||
actionview (5.2.4.1)
|
actionview (5.2.6)
|
||||||
activesupport (= 5.2.4.1)
|
activesupport (= 5.2.6)
|
||||||
builder (~> 3.1)
|
builder (~> 3.1)
|
||||||
erubi (~> 1.4)
|
erubi (~> 1.4)
|
||||||
rails-dom-testing (~> 2.0)
|
rails-dom-testing (~> 2.0)
|
||||||
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
||||||
active_decorator (1.3.2)
|
active_decorator (1.4.0)
|
||||||
activesupport
|
activesupport
|
||||||
activejob (5.2.4.1)
|
activejob (5.2.6)
|
||||||
activesupport (= 5.2.4.1)
|
activesupport (= 5.2.6)
|
||||||
globalid (>= 0.3.6)
|
globalid (>= 0.3.6)
|
||||||
activemodel (5.2.4.1)
|
activemodel (5.2.6)
|
||||||
activesupport (= 5.2.4.1)
|
activesupport (= 5.2.6)
|
||||||
activerecord (5.2.4.1)
|
activerecord (5.2.6)
|
||||||
activemodel (= 5.2.4.1)
|
activemodel (= 5.2.6)
|
||||||
activesupport (= 5.2.4.1)
|
activesupport (= 5.2.6)
|
||||||
arel (>= 9.0)
|
arel (>= 9.0)
|
||||||
activestorage (5.2.4.1)
|
activestorage (5.2.6)
|
||||||
actionpack (= 5.2.4.1)
|
actionpack (= 5.2.6)
|
||||||
activerecord (= 5.2.4.1)
|
activerecord (= 5.2.6)
|
||||||
marcel (~> 0.3.1)
|
marcel (~> 1.0.0)
|
||||||
activesupport (5.2.4.1)
|
activesupport (5.2.6)
|
||||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||||
i18n (>= 0.7, < 2)
|
i18n (>= 0.7, < 2)
|
||||||
minitest (~> 5.1)
|
minitest (~> 5.1)
|
||||||
tzinfo (~> 1.1)
|
tzinfo (~> 1.1)
|
||||||
acts-as-taggable-on (6.5.0)
|
acts-as-taggable-on (6.5.0)
|
||||||
activerecord (>= 5.0, < 6.1)
|
activerecord (>= 5.0, < 6.1)
|
||||||
acts_as_list (0.9.19)
|
acts_as_list (1.0.4)
|
||||||
activerecord (>= 3.0)
|
activerecord (>= 4.2)
|
||||||
addressable (2.7.0)
|
addressable (2.8.0)
|
||||||
public_suffix (>= 2.0.2, < 5.0)
|
public_suffix (>= 2.0.2, < 5.0)
|
||||||
ancestry (3.0.7)
|
ancestry (4.1.0)
|
||||||
activerecord (>= 3.2.0)
|
activerecord (>= 5.2.6)
|
||||||
annotate (2.6.5)
|
annotate (2.6.7)
|
||||||
activerecord (>= 2.3.0)
|
activerecord (>= 2.3.0)
|
||||||
rake (>= 0.8.7)
|
rake (~> 10.4.2, >= 10.4.2)
|
||||||
archive-zip (0.12.0)
|
archive-zip (0.12.0)
|
||||||
io-like (~> 0.3.0)
|
io-like (~> 0.3.0)
|
||||||
arel (9.0.0)
|
arel (9.0.0)
|
||||||
ast (2.4.0)
|
ast (2.4.2)
|
||||||
autoprefixer-rails (9.7.4)
|
autoprefixer-rails (10.3.3.0)
|
||||||
execjs
|
execjs (~> 2)
|
||||||
awesome_print (1.8.0)
|
awesome_print (1.9.2)
|
||||||
axlsx (3.0.0.pre)
|
axlsx (3.0.0.pre)
|
||||||
htmlentities (~> 4.3, >= 4.3.4)
|
htmlentities (~> 4.3, >= 4.3.4)
|
||||||
mimemagic (~> 0.3)
|
mimemagic (~> 0.3)
|
||||||
|
@ -72,40 +72,43 @@ GEM
|
||||||
axlsx_rails (0.5.2)
|
axlsx_rails (0.5.2)
|
||||||
actionpack (>= 3.1)
|
actionpack (>= 3.1)
|
||||||
axlsx (>= 2.0.1)
|
axlsx (>= 2.0.1)
|
||||||
backport (1.1.2)
|
backport (1.2.0)
|
||||||
benchmark (0.1.0)
|
benchmark (0.2.0)
|
||||||
bindex (0.8.1)
|
bindex (0.8.1)
|
||||||
bootsnap (1.4.6)
|
bootsnap (1.9.3)
|
||||||
msgpack (~> 1.0)
|
msgpack (~> 1.0)
|
||||||
bootstrap (4.3.1)
|
bootstrap (4.3.1)
|
||||||
autoprefixer-rails (>= 9.1.0)
|
autoprefixer-rails (>= 9.1.0)
|
||||||
popper_js (>= 1.14.3, < 2)
|
popper_js (>= 1.14.3, < 2)
|
||||||
sassc-rails (>= 2.0.0)
|
sassc-rails (>= 2.0.0)
|
||||||
builder (3.2.4)
|
builder (3.2.4)
|
||||||
bulk_insert (1.7.0)
|
bulk_insert (1.9.0)
|
||||||
activerecord (>= 3.2.0)
|
activerecord (>= 3.2.0)
|
||||||
capybara (3.15.1)
|
capybara (3.36.0)
|
||||||
addressable
|
addressable
|
||||||
|
matrix
|
||||||
mini_mime (>= 0.1.3)
|
mini_mime (>= 0.1.3)
|
||||||
nokogiri (~> 1.8)
|
nokogiri (~> 1.8)
|
||||||
rack (>= 1.6.0)
|
rack (>= 1.6.0)
|
||||||
rack-test (>= 0.6.3)
|
rack-test (>= 0.6.3)
|
||||||
regexp_parser (~> 1.2)
|
regexp_parser (>= 1.5, < 3.0)
|
||||||
xpath (~> 3.2)
|
xpath (~> 3.2)
|
||||||
chartkick (3.3.1)
|
chartkick (4.1.2)
|
||||||
childprocess (3.0.0)
|
childprocess (4.1.0)
|
||||||
chinese_pinyin (1.0.2)
|
chinese_pinyin (1.1.0)
|
||||||
chromedriver-helper (2.1.1)
|
chromedriver-helper (2.1.1)
|
||||||
archive-zip (~> 0.10)
|
archive-zip (~> 0.10)
|
||||||
nokogiri (~> 1.8)
|
nokogiri (~> 1.8)
|
||||||
chunky_png (1.3.11)
|
chunky_png (1.4.0)
|
||||||
concurrent-ruby (1.1.6)
|
concurrent-ruby (1.1.9)
|
||||||
connection_pool (2.2.2)
|
connection_pool (2.2.5)
|
||||||
crass (1.0.6)
|
crass (1.0.6)
|
||||||
deep_cloneable (3.0.0)
|
deep_cloneable (3.0.0)
|
||||||
activerecord (>= 3.1.0, < 7)
|
activerecord (>= 3.1.0, < 7)
|
||||||
diff-lcs (1.3)
|
diff-lcs (1.3)
|
||||||
diffy (3.3.0)
|
diffy (3.3.0)
|
||||||
|
domain_name (0.5.20190701)
|
||||||
|
unf (>= 0.0.5, < 1.0.0)
|
||||||
doorkeeper (5.5.1)
|
doorkeeper (5.5.1)
|
||||||
railties (>= 5)
|
railties (>= 5)
|
||||||
doorkeeper-jwt (0.4.1)
|
doorkeeper-jwt (0.4.1)
|
||||||
|
@ -119,93 +122,103 @@ GEM
|
||||||
elasticsearch-transport (7.5.0)
|
elasticsearch-transport (7.5.0)
|
||||||
faraday (>= 0.14, < 1)
|
faraday (>= 0.14, < 1)
|
||||||
multi_json
|
multi_json
|
||||||
enumerize (2.3.1)
|
enumerize (2.4.0)
|
||||||
activesupport (>= 3.2)
|
activesupport (>= 3.2)
|
||||||
erubi (1.9.0)
|
erubi (1.10.0)
|
||||||
et-orbi (1.2.4)
|
et-orbi (1.2.6)
|
||||||
tzinfo
|
tzinfo
|
||||||
execjs (2.7.0)
|
execjs (2.8.1)
|
||||||
faraday (0.15.4)
|
faraday (0.15.4)
|
||||||
multipart-post (>= 1.2, < 3)
|
multipart-post (>= 1.2, < 3)
|
||||||
ffi (1.12.2)
|
ffi (1.15.4)
|
||||||
font-awesome-sass (4.7.0)
|
font-awesome-sass (4.7.0)
|
||||||
sass (>= 3.2)
|
sass (>= 3.2)
|
||||||
fugit (1.4.1)
|
fugit (1.5.2)
|
||||||
et-orbi (~> 1.1, >= 1.1.8)
|
et-orbi (~> 1.1, >= 1.1.8)
|
||||||
raabro (~> 1.4)
|
raabro (~> 1.4)
|
||||||
globalid (0.4.2)
|
gitea-client (0.9.2)
|
||||||
activesupport (>= 4.2.0)
|
rest-client (~> 2.1.0)
|
||||||
|
globalid (1.0.0)
|
||||||
|
activesupport (>= 5.0)
|
||||||
grape-entity (0.7.1)
|
grape-entity (0.7.1)
|
||||||
activesupport (>= 4.0)
|
activesupport (>= 4.0)
|
||||||
multi_json (>= 1.3.2)
|
multi_json (>= 1.3.2)
|
||||||
groupdate (4.1.2)
|
groupdate (4.1.2)
|
||||||
activesupport (>= 4.2)
|
activesupport (>= 4.2)
|
||||||
harmonious_dictionary (0.0.1)
|
harmonious_dictionary (0.0.1)
|
||||||
hashie (3.6.0)
|
hashie (5.0.0)
|
||||||
htmlentities (4.3.4)
|
htmlentities (4.3.4)
|
||||||
i18n (1.8.2)
|
http-accept (1.7.0)
|
||||||
|
http-cookie (1.0.5)
|
||||||
|
domain_name (~> 0.5)
|
||||||
|
i18n (1.8.11)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
io-like (0.3.1)
|
io-like (0.3.1)
|
||||||
jaro_winkler (1.5.4)
|
jaro_winkler (1.5.4)
|
||||||
jbuilder (2.10.0)
|
jbuilder (2.11.3)
|
||||||
activesupport (>= 5.0.0)
|
activesupport (>= 5.0.0)
|
||||||
jquery-rails (4.3.5)
|
jquery-rails (4.4.0)
|
||||||
rails-dom-testing (>= 1, < 3)
|
rails-dom-testing (>= 1, < 3)
|
||||||
railties (>= 4.2.0)
|
railties (>= 4.2.0)
|
||||||
thor (>= 0.14, < 2.0)
|
thor (>= 0.14, < 2.0)
|
||||||
jwt (2.2.1)
|
jwt (2.3.0)
|
||||||
kaminari (1.2.0)
|
kaminari (1.2.1)
|
||||||
activesupport (>= 4.1.0)
|
activesupport (>= 4.1.0)
|
||||||
kaminari-actionview (= 1.2.0)
|
kaminari-actionview (= 1.2.1)
|
||||||
kaminari-activerecord (= 1.2.0)
|
kaminari-activerecord (= 1.2.1)
|
||||||
kaminari-core (= 1.2.0)
|
kaminari-core (= 1.2.1)
|
||||||
kaminari-actionview (1.2.0)
|
kaminari-actionview (1.2.1)
|
||||||
actionview
|
actionview
|
||||||
kaminari-core (= 1.2.0)
|
kaminari-core (= 1.2.1)
|
||||||
kaminari-activerecord (1.2.0)
|
kaminari-activerecord (1.2.1)
|
||||||
activerecord
|
activerecord
|
||||||
kaminari-core (= 1.2.0)
|
kaminari-core (= 1.2.1)
|
||||||
kaminari-core (1.2.0)
|
kaminari-core (1.2.1)
|
||||||
letter_avatar (0.3.8)
|
letter_avatar (0.3.9)
|
||||||
listen (3.1.5)
|
listen (3.1.5)
|
||||||
rb-fsevent (~> 0.9, >= 0.9.4)
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
||||||
rb-inotify (~> 0.9, >= 0.9.7)
|
rb-inotify (~> 0.9, >= 0.9.7)
|
||||||
ruby_dep (~> 1.2)
|
ruby_dep (~> 1.2)
|
||||||
loofah (2.4.0)
|
loofah (2.13.0)
|
||||||
crass (~> 1.0.2)
|
crass (~> 1.0.2)
|
||||||
nokogiri (>= 1.5.9)
|
nokogiri (>= 1.5.9)
|
||||||
mail (2.7.1)
|
mail (2.7.1)
|
||||||
mini_mime (>= 0.1.1)
|
mini_mime (>= 0.1.1)
|
||||||
marcel (0.3.3)
|
marcel (1.0.2)
|
||||||
mimemagic (~> 0.3.2)
|
|
||||||
maruku (0.7.3)
|
maruku (0.7.3)
|
||||||
method_source (0.9.2)
|
matrix (0.4.2)
|
||||||
mimemagic (0.3.10)
|
method_source (1.0.0)
|
||||||
|
mime-types (3.4.1)
|
||||||
|
mime-types-data (~> 3.2015)
|
||||||
|
mime-types-data (3.2022.0105)
|
||||||
|
mimemagic (0.4.3)
|
||||||
nokogiri (~> 1)
|
nokogiri (~> 1)
|
||||||
rake
|
rake
|
||||||
mini_mime (1.0.2)
|
mini_mime (1.1.2)
|
||||||
mini_portile2 (2.4.0)
|
mini_portile2 (2.6.1)
|
||||||
minitest (5.14.0)
|
minitest (5.14.4)
|
||||||
msgpack (1.3.3)
|
msgpack (1.4.2)
|
||||||
multi_json (1.14.1)
|
multi_json (1.15.0)
|
||||||
multi_xml (0.6.0)
|
multi_xml (0.6.0)
|
||||||
multipart-post (2.1.1)
|
multipart-post (2.1.1)
|
||||||
mustermann (1.1.1)
|
mustermann (1.1.1)
|
||||||
ruby2_keywords (~> 0.0.1)
|
ruby2_keywords (~> 0.0.1)
|
||||||
mysql2 (0.5.3)
|
mysql2 (0.5.3)
|
||||||
|
netrc (0.11.0)
|
||||||
nio4r (2.5.2)
|
nio4r (2.5.2)
|
||||||
nokogiri (1.10.8)
|
nokogiri (1.12.5)
|
||||||
mini_portile2 (~> 2.4.0)
|
mini_portile2 (~> 2.6.1)
|
||||||
oauth2 (1.4.4)
|
racc (~> 1.4)
|
||||||
|
oauth2 (1.4.7)
|
||||||
faraday (>= 0.8, < 2.0)
|
faraday (>= 0.8, < 2.0)
|
||||||
jwt (>= 1.0, < 3.0)
|
jwt (>= 1.0, < 3.0)
|
||||||
multi_json (~> 1.3)
|
multi_json (~> 1.3)
|
||||||
multi_xml (~> 0.5)
|
multi_xml (~> 0.5)
|
||||||
rack (>= 1.2, < 3)
|
rack (>= 1.2, < 3)
|
||||||
omniauth (1.9.0)
|
omniauth (1.9.1)
|
||||||
hashie (>= 3.4.6, < 3.7.0)
|
hashie (>= 3.4.6)
|
||||||
rack (>= 1.6.2, < 3)
|
rack (>= 1.6.2, < 3)
|
||||||
omniauth-cas (1.1.1)
|
omniauth-cas (2.0.0)
|
||||||
addressable (~> 2.3)
|
addressable (~> 2.3)
|
||||||
nokogiri (~> 1.5)
|
nokogiri (~> 1.5)
|
||||||
omniauth (~> 1.2)
|
omniauth (~> 1.2)
|
||||||
|
@ -213,108 +226,112 @@ GEM
|
||||||
oauth2 (~> 1.1)
|
oauth2 (~> 1.1)
|
||||||
omniauth (~> 1.9)
|
omniauth (~> 1.9)
|
||||||
parallel (1.19.1)
|
parallel (1.19.1)
|
||||||
parser (2.7.1.1)
|
parser (2.7.2.0)
|
||||||
ast (~> 2.4.0)
|
ast (~> 2.4.1)
|
||||||
pdfkit (0.8.4.1)
|
pdfkit (0.8.4.1)
|
||||||
polyamorous (2.3.2)
|
|
||||||
activerecord (>= 5.2.1)
|
|
||||||
popper_js (1.16.0)
|
popper_js (1.16.0)
|
||||||
powerpack (0.1.2)
|
powerpack (0.1.3)
|
||||||
prettier (0.18.2)
|
prettier (2.0.0)
|
||||||
public_suffix (4.0.3)
|
public_suffix (4.0.6)
|
||||||
puma (3.12.2)
|
puma (3.12.6)
|
||||||
raabro (1.4.0)
|
raabro (1.4.0)
|
||||||
rack (2.0.9)
|
racc (1.6.0)
|
||||||
|
rack (2.2.3)
|
||||||
rack-cors (1.1.1)
|
rack-cors (1.1.1)
|
||||||
rack (>= 2.0.0)
|
rack (>= 2.0.0)
|
||||||
rack-mini-profiler (2.0.1)
|
rack-mini-profiler (2.3.3)
|
||||||
rack (>= 1.2.0)
|
rack (>= 1.2.0)
|
||||||
rack-protection (2.0.8.1)
|
rack-protection (2.1.0)
|
||||||
rack
|
rack
|
||||||
rack-test (1.1.0)
|
rack-test (1.1.0)
|
||||||
rack (>= 1.0, < 3)
|
rack (>= 1.0, < 3)
|
||||||
rails (5.2.4.1)
|
rails (5.2.6)
|
||||||
actioncable (= 5.2.4.1)
|
actioncable (= 5.2.6)
|
||||||
actionmailer (= 5.2.4.1)
|
actionmailer (= 5.2.6)
|
||||||
actionpack (= 5.2.4.1)
|
actionpack (= 5.2.6)
|
||||||
actionview (= 5.2.4.1)
|
actionview (= 5.2.6)
|
||||||
activejob (= 5.2.4.1)
|
activejob (= 5.2.6)
|
||||||
activemodel (= 5.2.4.1)
|
activemodel (= 5.2.6)
|
||||||
activerecord (= 5.2.4.1)
|
activerecord (= 5.2.6)
|
||||||
activestorage (= 5.2.4.1)
|
activestorage (= 5.2.6)
|
||||||
activesupport (= 5.2.4.1)
|
activesupport (= 5.2.6)
|
||||||
bundler (>= 1.3.0)
|
bundler (>= 1.3.0)
|
||||||
railties (= 5.2.4.1)
|
railties (= 5.2.6)
|
||||||
sprockets-rails (>= 2.0.0)
|
sprockets-rails (>= 2.0.0)
|
||||||
rails-dom-testing (2.0.3)
|
rails-dom-testing (2.0.3)
|
||||||
activesupport (>= 4.2.0)
|
activesupport (>= 4.2.0)
|
||||||
nokogiri (>= 1.6)
|
nokogiri (>= 1.6)
|
||||||
rails-html-sanitizer (1.3.0)
|
rails-html-sanitizer (1.4.2)
|
||||||
loofah (~> 2.3)
|
loofah (~> 2.3)
|
||||||
rails-i18n (5.1.3)
|
rails-i18n (5.1.3)
|
||||||
i18n (>= 0.7, < 2)
|
i18n (>= 0.7, < 2)
|
||||||
railties (>= 5.0, < 6)
|
railties (>= 5.0, < 6)
|
||||||
railties (5.2.4.1)
|
railties (5.2.6)
|
||||||
actionpack (= 5.2.4.1)
|
actionpack (= 5.2.6)
|
||||||
activesupport (= 5.2.4.1)
|
activesupport (= 5.2.6)
|
||||||
method_source
|
method_source
|
||||||
rake (>= 0.8.7)
|
rake (>= 0.8.7)
|
||||||
thor (>= 0.19.0, < 2.0)
|
thor (>= 0.19.0, < 2.0)
|
||||||
rainbow (3.0.0)
|
rainbow (3.0.0)
|
||||||
rake (13.0.1)
|
rake (10.4.2)
|
||||||
ransack (2.3.2)
|
ransack (2.4.2)
|
||||||
activerecord (>= 5.2.1)
|
activerecord (>= 5.2.4)
|
||||||
activesupport (>= 5.2.1)
|
activesupport (>= 5.2.4)
|
||||||
i18n
|
i18n
|
||||||
polyamorous (= 2.3.2)
|
rb-fsevent (0.11.0)
|
||||||
rb-fsevent (0.10.3)
|
|
||||||
rb-inotify (0.10.1)
|
rb-inotify (0.10.1)
|
||||||
ffi (~> 1.0)
|
ffi (~> 1.0)
|
||||||
rchardet (1.8.0)
|
rchardet (1.8.0)
|
||||||
redcarpet (3.5.0)
|
redcarpet (3.5.1)
|
||||||
redis (4.1.3)
|
redis (4.5.1)
|
||||||
redis-actionpack (5.2.0)
|
redis-actionpack (5.2.0)
|
||||||
actionpack (>= 5, < 7)
|
actionpack (>= 5, < 7)
|
||||||
redis-rack (>= 2.1.0, < 3)
|
redis-rack (>= 2.1.0, < 3)
|
||||||
redis-store (>= 1.1.0, < 2)
|
redis-store (>= 1.1.0, < 2)
|
||||||
redis-activesupport (5.2.0)
|
redis-activesupport (5.2.1)
|
||||||
activesupport (>= 3, < 7)
|
activesupport (>= 3, < 7)
|
||||||
redis-store (>= 1.3, < 2)
|
redis-store (>= 1.3, < 2)
|
||||||
redis-rack (2.1.2)
|
redis-rack (2.1.3)
|
||||||
rack (>= 2.0.8, < 3)
|
rack (>= 2.0.8, < 3)
|
||||||
redis-store (>= 1.2, < 2)
|
redis-store (>= 1.2, < 2)
|
||||||
redis-rails (5.0.2)
|
redis-rails (5.0.2)
|
||||||
redis-actionpack (>= 5.0, < 6)
|
redis-actionpack (>= 5.0, < 6)
|
||||||
redis-activesupport (>= 5.0, < 6)
|
redis-activesupport (>= 5.0, < 6)
|
||||||
redis-store (>= 1.2, < 2)
|
redis-store (>= 1.2, < 2)
|
||||||
redis-store (1.8.2)
|
redis-store (1.9.0)
|
||||||
redis (>= 4, < 5)
|
redis (>= 4, < 5)
|
||||||
regexp_parser (1.7.0)
|
regexp_parser (2.2.0)
|
||||||
request_store (1.5.0)
|
request_store (1.5.0)
|
||||||
rack (>= 1.4)
|
rack (>= 1.4)
|
||||||
|
rest-client (2.1.0)
|
||||||
|
http-accept (>= 1.7.0, < 2.0)
|
||||||
|
http-cookie (>= 1.0.2, < 2.0)
|
||||||
|
mime-types (>= 1.16, < 4.0)
|
||||||
|
netrc (~> 0.8)
|
||||||
reverse_markdown (1.4.0)
|
reverse_markdown (1.4.0)
|
||||||
nokogiri
|
nokogiri
|
||||||
|
rexml (3.2.5)
|
||||||
roo (2.8.3)
|
roo (2.8.3)
|
||||||
nokogiri (~> 1)
|
nokogiri (~> 1)
|
||||||
rubyzip (>= 1.3.0, < 3.0.0)
|
rubyzip (>= 1.3.0, < 3.0.0)
|
||||||
roo-xls (1.2.0)
|
roo-xls (1.2.0)
|
||||||
nokogiri
|
nokogiri
|
||||||
roo (>= 2.0.0, < 3)
|
roo (= 2.8.3)
|
||||||
spreadsheet (> 0.9.0)
|
spreadsheet (> 0.9.0)
|
||||||
rqrcode (0.10.1)
|
rqrcode (0.10.1)
|
||||||
chunky_png (~> 1.0)
|
chunky_png (~> 1.0)
|
||||||
rqrcode_png (0.1.5)
|
rqrcode_png (0.1.5)
|
||||||
chunky_png
|
chunky_png
|
||||||
rqrcode
|
rqrcode
|
||||||
rspec-core (3.9.1)
|
rspec-core (3.9.3)
|
||||||
rspec-support (~> 3.9.1)
|
rspec-support (~> 3.9.3)
|
||||||
rspec-expectations (3.9.0)
|
rspec-expectations (3.9.4)
|
||||||
diff-lcs (>= 1.2.0, < 2.0)
|
diff-lcs (>= 1.2.0, < 2.0)
|
||||||
rspec-support (~> 3.9.0)
|
rspec-support (~> 3.9.0)
|
||||||
rspec-mocks (3.9.1)
|
rspec-mocks (3.9.1)
|
||||||
diff-lcs (>= 1.2.0, < 2.0)
|
diff-lcs (>= 1.2.0, < 2.0)
|
||||||
rspec-support (~> 3.9.0)
|
rspec-support (~> 3.9.0)
|
||||||
rspec-rails (3.9.0)
|
rspec-rails (3.9.1)
|
||||||
actionpack (>= 3.0)
|
actionpack (>= 3.0)
|
||||||
activesupport (>= 3.0)
|
activesupport (>= 3.0)
|
||||||
railties (>= 3.0)
|
railties (>= 3.0)
|
||||||
|
@ -322,7 +339,7 @@ GEM
|
||||||
rspec-expectations (~> 3.9.0)
|
rspec-expectations (~> 3.9.0)
|
||||||
rspec-mocks (~> 3.9.0)
|
rspec-mocks (~> 3.9.0)
|
||||||
rspec-support (~> 3.9.0)
|
rspec-support (~> 3.9.0)
|
||||||
rspec-support (3.9.2)
|
rspec-support (3.9.4)
|
||||||
rubocop (0.52.1)
|
rubocop (0.52.1)
|
||||||
parallel (~> 1.10)
|
parallel (~> 1.10)
|
||||||
parser (>= 2.4.0.2, < 3.0)
|
parser (>= 2.4.0.2, < 3.0)
|
||||||
|
@ -331,8 +348,8 @@ GEM
|
||||||
ruby-progressbar (~> 1.7)
|
ruby-progressbar (~> 1.7)
|
||||||
unicode-display_width (~> 1.0, >= 1.0.1)
|
unicode-display_width (~> 1.0, >= 1.0.1)
|
||||||
ruby-ole (1.2.12.2)
|
ruby-ole (1.2.12.2)
|
||||||
ruby-progressbar (1.10.1)
|
ruby-progressbar (1.11.0)
|
||||||
ruby2_keywords (0.0.2)
|
ruby2_keywords (0.0.5)
|
||||||
ruby_dep (1.5.0)
|
ruby_dep (1.5.0)
|
||||||
rubyzip (1.3.0)
|
rubyzip (1.3.0)
|
||||||
sass (3.7.4)
|
sass (3.7.4)
|
||||||
|
@ -340,13 +357,13 @@ GEM
|
||||||
sass-listen (4.0.0)
|
sass-listen (4.0.0)
|
||||||
rb-fsevent (~> 0.9, >= 0.9.4)
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
||||||
rb-inotify (~> 0.9, >= 0.9.7)
|
rb-inotify (~> 0.9, >= 0.9.7)
|
||||||
sass-rails (5.0.7)
|
sass-rails (5.1.0)
|
||||||
railties (>= 4.0.0, < 6)
|
railties (>= 5.2.0)
|
||||||
sass (~> 3.1)
|
sass (~> 3.1)
|
||||||
sprockets (>= 2.8, < 4.0)
|
sprockets (>= 2.8, < 4.0)
|
||||||
sprockets-rails (>= 2.0, < 4.0)
|
sprockets-rails (>= 2.0, < 4.0)
|
||||||
tilt (>= 1.1, < 3)
|
tilt (>= 1.1, < 3)
|
||||||
sassc (2.2.1)
|
sassc (2.4.0)
|
||||||
ffi (~> 1.9)
|
ffi (~> 1.9)
|
||||||
sassc-rails (2.1.2)
|
sassc-rails (2.1.2)
|
||||||
railties (>= 4.0.0)
|
railties (>= 4.0.0)
|
||||||
|
@ -354,31 +371,31 @@ GEM
|
||||||
sprockets (> 3.0)
|
sprockets (> 3.0)
|
||||||
sprockets-rails
|
sprockets-rails
|
||||||
tilt
|
tilt
|
||||||
searchkick (3.1.3)
|
searchkick (4.6.3)
|
||||||
activemodel (>= 4.2)
|
activemodel (>= 5)
|
||||||
elasticsearch (>= 5)
|
elasticsearch (>= 6, < 7.14)
|
||||||
hashie
|
hashie
|
||||||
selenium-webdriver (3.142.7)
|
selenium-webdriver (4.1.0)
|
||||||
childprocess (>= 0.5, < 4.0)
|
childprocess (>= 0.5, < 5.0)
|
||||||
|
rexml (~> 3.2, >= 3.2.5)
|
||||||
rubyzip (>= 1.2.2)
|
rubyzip (>= 1.2.2)
|
||||||
sidekiq (5.2.8)
|
sidekiq (6.3.1)
|
||||||
connection_pool (~> 2.2, >= 2.2.2)
|
connection_pool (>= 2.2.2)
|
||||||
rack (< 2.1.0)
|
rack (~> 2.0)
|
||||||
rack-protection (>= 1.5.0)
|
redis (>= 4.2.0)
|
||||||
redis (>= 3.3.5, < 5)
|
|
||||||
sidekiq-cron (1.2.0)
|
sidekiq-cron (1.2.0)
|
||||||
fugit (~> 1.1)
|
fugit (~> 1.1)
|
||||||
sidekiq (>= 4.2.1)
|
sidekiq (>= 4.2.1)
|
||||||
simple_form (5.0.2)
|
simple_form (5.1.0)
|
||||||
actionpack (>= 5.0)
|
actionpack (>= 5.2)
|
||||||
activemodel (>= 5.0)
|
activemodel (>= 5.2)
|
||||||
simple_xlsx_reader (1.0.4)
|
simple_xlsx_reader (1.0.4)
|
||||||
nokogiri
|
nokogiri
|
||||||
rubyzip
|
rubyzip
|
||||||
sinatra (2.0.8.1)
|
sinatra (2.1.0)
|
||||||
mustermann (~> 1.0)
|
mustermann (~> 1.0)
|
||||||
rack (~> 2.0)
|
rack (~> 2.2)
|
||||||
rack-protection (= 2.0.8.1)
|
rack-protection (= 2.1.0)
|
||||||
tilt (~> 2.0)
|
tilt (~> 2.0)
|
||||||
solargraph (0.38.6)
|
solargraph (0.38.6)
|
||||||
backport (~> 1.1)
|
backport (~> 1.1)
|
||||||
|
@ -394,43 +411,47 @@ GEM
|
||||||
thor (~> 1.0)
|
thor (~> 1.0)
|
||||||
tilt (~> 2.0)
|
tilt (~> 2.0)
|
||||||
yard (~> 0.9)
|
yard (~> 0.9)
|
||||||
spreadsheet (1.2.6)
|
spreadsheet (1.3.0)
|
||||||
ruby-ole (>= 1.0)
|
ruby-ole
|
||||||
spring (2.0.2)
|
spring (2.1.1)
|
||||||
activesupport (>= 4.2)
|
|
||||||
spring-watcher-listen (2.0.1)
|
spring-watcher-listen (2.0.1)
|
||||||
listen (>= 2.7, < 4.0)
|
listen (>= 2.7, < 4.0)
|
||||||
spring (>= 1.2, < 3.0)
|
spring (>= 1.2, < 3.0)
|
||||||
sprockets (3.7.2)
|
sprockets (3.7.2)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
rack (> 1, < 3)
|
rack (> 1, < 3)
|
||||||
sprockets-rails (3.2.1)
|
sprockets-rails (3.4.2)
|
||||||
actionpack (>= 4.0)
|
actionpack (>= 5.2)
|
||||||
activesupport (>= 4.0)
|
activesupport (>= 5.2)
|
||||||
sprockets (>= 3.0.0)
|
sprockets (>= 3.0.0)
|
||||||
thor (1.0.1)
|
thor (1.1.0)
|
||||||
thread_safe (0.3.6)
|
thread_safe (0.3.6)
|
||||||
tilt (2.0.10)
|
tilt (2.0.10)
|
||||||
turbolinks (5.2.1)
|
turbolinks (5.2.1)
|
||||||
turbolinks-source (~> 5.2)
|
turbolinks-source (~> 5.2)
|
||||||
turbolinks-source (5.2.0)
|
turbolinks-source (5.2.0)
|
||||||
tzinfo (1.2.6)
|
tzinfo (1.2.9)
|
||||||
thread_safe (~> 0.1)
|
thread_safe (~> 0.1)
|
||||||
uglifier (4.2.0)
|
uglifier (4.2.0)
|
||||||
execjs (>= 0.3.0, < 3)
|
execjs (>= 0.3.0, < 3)
|
||||||
unicode-display_width (1.6.1)
|
unf (0.1.4)
|
||||||
|
unf_ext
|
||||||
|
unf_ext (0.0.8.2)
|
||||||
|
unicode-display_width (1.8.0)
|
||||||
web-console (3.7.0)
|
web-console (3.7.0)
|
||||||
actionview (>= 5.0)
|
actionview (>= 5.0)
|
||||||
activemodel (>= 5.0)
|
activemodel (>= 5.0)
|
||||||
bindex (>= 0.4.0)
|
bindex (>= 0.4.0)
|
||||||
railties (>= 5.0)
|
railties (>= 5.0)
|
||||||
websocket-driver (0.7.1)
|
webrick (1.7.0)
|
||||||
|
websocket-driver (0.7.5)
|
||||||
websocket-extensions (>= 0.1.0)
|
websocket-extensions (>= 0.1.0)
|
||||||
websocket-extensions (0.1.4)
|
websocket-extensions (0.1.5)
|
||||||
wkhtmltopdf-binary (0.12.5.4)
|
wkhtmltopdf-binary (0.12.6.5)
|
||||||
xpath (3.2.0)
|
xpath (3.2.0)
|
||||||
nokogiri (~> 1.8)
|
nokogiri (~> 1.8)
|
||||||
yard (0.9.24)
|
yard (0.9.27)
|
||||||
|
webrick (~> 1.7.0)
|
||||||
|
|
||||||
PLATFORMS
|
PLATFORMS
|
||||||
ruby
|
ruby
|
||||||
|
@ -459,6 +480,7 @@ DEPENDENCIES
|
||||||
enumerize
|
enumerize
|
||||||
faraday (~> 0.15.4)
|
faraday (~> 0.15.4)
|
||||||
font-awesome-sass (= 4.7.0)
|
font-awesome-sass (= 4.7.0)
|
||||||
|
gitea-client (~> 0.9.1)
|
||||||
grape-entity (~> 0.7.1)
|
grape-entity (~> 0.7.1)
|
||||||
groupdate (~> 4.1.0)
|
groupdate (~> 4.1.0)
|
||||||
harmonious_dictionary (~> 0.0.1)
|
harmonious_dictionary (~> 0.0.1)
|
||||||
|
|
|
@ -1,10 +1,33 @@
|
||||||
class Admins::DashboardsController < Admins::BaseController
|
class Admins::DashboardsController < Admins::BaseController
|
||||||
def index
|
def index
|
||||||
@active_user_count = User.where(last_login_on: today).count
|
# 用户活跃数
|
||||||
@weekly_active_user_count = User.where(last_login_on: current_week).count
|
day_user_ids = CommitLog.where(created_at: today).pluck(:project_id).uniq
|
||||||
@month_active_user_count = User.where(last_login_on: current_month).count
|
weekly_user_ids = CommitLog.where(created_at: current_week).pluck(:project_id).uniq
|
||||||
|
month_user_ids = CommitLog.where(created_at: current_month).pluck(:project_id).uniq
|
||||||
|
@active_user_count = User.where(last_login_on: today).or(User.where(id: day_user_ids)).count
|
||||||
|
@weekly_active_user_count = User.where(last_login_on: current_week).or(User.where(id: weekly_user_ids)).count
|
||||||
|
@month_active_user_count = User.where(last_login_on: current_month).or(User.where(id: month_user_ids)).count
|
||||||
|
user_ids = User.where(created_on: pre_week).pluck(:id).uniq
|
||||||
|
weekly_keep_user_count = User.where(id: user_ids).where(last_login_on: current_week).count
|
||||||
|
@weekly_keep_rate = format("%.2f", weekly_keep_user_count > 0 ? weekly_keep_user_count / weekly_keep_user_count : 0)
|
||||||
|
|
||||||
@new_user_count = User.where(created_on: current_month).count
|
# 新用户注册数
|
||||||
|
@day_new_user_count = User.where(created_on: today).count
|
||||||
|
@weekly_new_user_count = User.where(created_on: current_week).count
|
||||||
|
@month_new_user_count = User.where(created_on: current_month).count
|
||||||
|
|
||||||
|
# 活跃项目数
|
||||||
|
day_project_ids = CommitLog.where(created_at: today).pluck(:project_id).uniq
|
||||||
|
weekly_project_ids = CommitLog.where(created_at: current_week).pluck(:project_id).uniq
|
||||||
|
month_project_ids = CommitLog.where(created_at: current_month).pluck(:project_id).uniq
|
||||||
|
@day_active_project_count = Project.where(updated_on: today).or(Project.where(id: day_project_ids)).count
|
||||||
|
@weekly_active_project_count = Project.where(updated_on: current_week).or(Project.where(id: weekly_project_ids)).count
|
||||||
|
@month_active_project_count = Project.where(updated_on: current_month).or(Project.where(id: month_project_ids)).count
|
||||||
|
|
||||||
|
# 新增项目数
|
||||||
|
@day_new_project_count = User.where(created_on: today).count
|
||||||
|
@weekly_new_project_count = User.where(created_on: current_week).count
|
||||||
|
@month_new_project_count = User.where(created_on: current_month).count
|
||||||
end
|
end
|
||||||
|
|
||||||
def month_active_user
|
def month_active_user
|
||||||
|
@ -48,4 +71,8 @@ class Admins::DashboardsController < Admins::BaseController
|
||||||
def current_month
|
def current_month
|
||||||
30.days.ago.beginning_of_day..Time.now.end_of_day
|
30.days.ago.beginning_of_day..Time.now.end_of_day
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def pre_week
|
||||||
|
14.days.ago.beginning_of_day..7.days.ago.beginning_of_day
|
||||||
|
end
|
||||||
end
|
end
|
|
@ -2,217 +2,57 @@
|
||||||
<% add_admin_breadcrumb('概览', admins_path) %>
|
<% add_admin_breadcrumb('概览', admins_path) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<div class="header bg-gradient-primary pb-8 pt-md-8">
|
<div class="box admin-list-container project-language-list-container">
|
||||||
<div class="container-fluid">
|
<table class="table table-hover text-center subject-list-table">
|
||||||
<div class="header-body">
|
<thead class="thead-light">
|
||||||
<!-- Card stats -->
|
<tr>
|
||||||
<div class="row">
|
<th width="20%">指标名称</th>
|
||||||
<div class="col-xl-3 col-lg-6">
|
<th width="20%">当日数</th>
|
||||||
<div class="card card-stats mb-4 mb-xl-0">
|
<th width="20%">七日内</th>
|
||||||
<div class="card-body">
|
<th width="20%">30日内</th>
|
||||||
<div class="row">
|
<th width="20%">周用户留存率</th>
|
||||||
<div class="col">
|
</tr>
|
||||||
<h5 class="card-title text-uppercase text-muted mb-0">当日活跃用户</h5>
|
</thead>
|
||||||
<span class="h2 font-weight-bold mb-0"><%= @active_user_count %></span>
|
<tbody>
|
||||||
</div>
|
<tr class="">
|
||||||
<div class="col-auto">
|
<td>
|
||||||
<div class="icon icon-shape rounded-circle shadow">
|
<button type="button" class="btn btn-primary" style="font-size:14px;width:85px;padding: 0; height:36px;background-color:#5475fb;border-radius:4px;border-color: #5475fb;">活跃用户</button>
|
||||||
<i class="fa fa-users"></i>
|
</td>
|
||||||
</div>
|
<td><%=@active_user_count %></td>
|
||||||
</div>
|
<td><%=@weekly_active_user_count %></td>
|
||||||
</div>
|
<td><%=@month_active_user_count %></td>
|
||||||
<!-- <p class="mt-3 mb-0 text-muted text-sm">-->
|
<td><%="#{@weekly_keep_rate.to_f * 100 }%" %></td>
|
||||||
<!-- <span class="text-success mr-2"><i class="fa fa-arrow-up"></i> 3.48%</span>-->
|
</td>
|
||||||
<!-- <span class="text-nowrap">Since last month</span>-->
|
</tr>
|
||||||
<!-- </p>-->
|
<tr>
|
||||||
</div>
|
<td>
|
||||||
</div>
|
<button type="button" class="btn btn-primary" style="font-size:14px;width:85px;padding: 0; height:36px;background-color:#36cfc9;border-radius:4px; border-color: #36cfc9;">新注册用户</button>
|
||||||
</div>
|
</td>
|
||||||
<div class="col-xl-3 col-lg-6">
|
<td><%=@day_new_user_count %></td>
|
||||||
<div class="card card-stats mb-4 mb-xl-0">
|
<td><%=@weekly_new_user_count %></td>
|
||||||
<div class="card-body">
|
<td><%=@month_new_user_count %></td>
|
||||||
<div class="row">
|
<td><%="--" %></td>
|
||||||
<div class="col">
|
</tr>
|
||||||
<h5 class="card-title text-uppercase text-muted mb-0">7天内活跃用户数</h5>
|
<tr>
|
||||||
<span class="h2 font-weight-bold mb-0"><%= @weekly_active_user_count %></span>
|
<td>
|
||||||
</div>
|
<button type="button" class="btn btn-primary" style="font-size:14px;width:85px;padding: 0; height:36px;background-color:#f89422;border-radius:4px; border-color: #f89422;">活跃项目</button>
|
||||||
<div class="col-auto">
|
</td>
|
||||||
<div class="icon icon-shape rounded-circle shadow">
|
<td><%=@day_active_project_count %></td>
|
||||||
<i class="fa fa-users"></i>
|
<td><%=@weekly_new_project_count %></td>
|
||||||
</div>
|
<td><%=@month_new_project_count %></td>
|
||||||
</div>
|
<td><%="--" %></td>
|
||||||
</div>
|
</tr>
|
||||||
<!-- <p class="mt-3 mb-0 text-muted text-sm">-->
|
<tr>
|
||||||
<!-- <span class="text-danger mr-2"><i class="fas fa-arrow-down"></i> 3.48%</span>-->
|
<td>
|
||||||
<!-- <span class="text-nowrap">Since last week</span>-->
|
<button type="button" class="btn btn-primary" style="font-size:14px;width:85px;padding: 0; height:36px;background-color:#9d74ff;border-radius:4px; border-color: #9d74ff;">新注册项目</button>
|
||||||
<!-- </p>-->
|
</td>
|
||||||
</div>
|
<td><%=@day_new_project_count %></td>
|
||||||
</div>
|
<td><%=@weekly_new_user_count %></td>
|
||||||
</div>
|
<td><%=@month_new_user_count %></td>
|
||||||
<div class="col-xl-3 col-lg-6">
|
<td><%="--" %></td>
|
||||||
<div class="card card-stats mb-4 mb-xl-0">
|
</tr>
|
||||||
<div class="card-body">
|
</tbody>
|
||||||
<div class="row">
|
</table>
|
||||||
<div class="col">
|
|
||||||
<h5 class="card-title text-uppercase text-muted mb-0">30天内活跃用户数</h5>
|
|
||||||
<span class="h2 font-weight-bold mb-0"><%= @month_active_user_count %></span>
|
|
||||||
</div>
|
|
||||||
<div class="col-auto">
|
|
||||||
<div class="icon icon-shape rounded-circle shadow">
|
|
||||||
<i class="fa fa-users"></i>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- <p class="mt-3 mb-0 text-muted text-sm">-->
|
|
||||||
<!-- <span class="text-warning mr-2"><i class="fas fa-arrow-down"></i> 1.10%</span>-->
|
|
||||||
<!-- <span class="text-nowrap">Since yesterday</span>-->
|
|
||||||
<!-- </p>-->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-xl-3 col-lg-6">
|
|
||||||
<div class="card card-stats mb-4 mb-xl-0">
|
|
||||||
<div class="card-body">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<h5 class="card-title text-uppercase text-muted mb-0">30天内新增用户数</h5>
|
|
||||||
<span class="h2 font-weight-bold mb-0"><%= @new_user_count %></span>
|
|
||||||
</div>
|
|
||||||
<div class="col-auto">
|
|
||||||
<div class="icon icon-shape rounded-circle shadow">
|
|
||||||
<i class="fa fa-user-plus"></i>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- <p class="mt-3 mb-0 text-muted text-sm">-->
|
|
||||||
<!-- <span class="text-success mr-2"><i class="fas fa-arrow-up"></i> 12%</span>-->
|
|
||||||
<!-- <span class="text-nowrap">Since last month</span>-->
|
|
||||||
<!-- </p>-->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div id="project-language-modals">
|
||||||
<div class="container-fluid mt--7 pie-statistic">
|
</div>
|
||||||
<div class="row mt-5">
|
|
||||||
<div class="col-xl-8 mb-5 mb-xl-0">
|
|
||||||
<div class="card shadow">
|
|
||||||
<!-- <div class="card-header border-0">-->
|
|
||||||
<!-- <div class="row align-items-center">-->
|
|
||||||
<!-- <h5 class="mb-0">近7天评测次数</h5>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- <div class="table-responsive">-->
|
|
||||||
<!-- <div id="evaluate-pie" class="pie"></div>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-xl-4">
|
|
||||||
<div class="card shadow">
|
|
||||||
<div class="card-header border-0">
|
|
||||||
<div class="row align-items-center">
|
|
||||||
<h5 class="mb-0">30天内新增用户</h5>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="table-responsive">
|
|
||||||
<div id="month-active-user" class="pie"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<!--<div class="container-fluid mt--7">-->
|
|
||||||
<!-- <div class="row mt-5">-->
|
|
||||||
<!-- <div class="col-xl-8 mb-5 mb-xl-0">-->
|
|
||||||
<!-- <div class="card shadow">-->
|
|
||||||
<!-- <div class="card-header border-0">-->
|
|
||||||
<!-- <div class="row align-items-center">-->
|
|
||||||
<!-- <div class="col">-->
|
|
||||||
<!-- <h3 class="mb-0">Page visits</h3>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- <div class="col text-right">-->
|
|
||||||
<!-- <a href="#!" class="btn btn-sm btn-primary">Test</a>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- <div class="table-responsive">-->
|
|
||||||
<!-- <table class="table align-items-center table-flush">-->
|
|
||||||
<!-- <thead class="thead-light">-->
|
|
||||||
<!-- <tr>-->
|
|
||||||
<!-- <th scope="col">Test</th>-->
|
|
||||||
<!-- <th scope="col">Test</th>-->
|
|
||||||
<!-- <th scope="col">Test</th>-->
|
|
||||||
<!-- <th scope="col">Test</th>-->
|
|
||||||
<!-- </tr>-->
|
|
||||||
<!-- </thead>-->
|
|
||||||
<!-- <tbody>-->
|
|
||||||
<%# 5.times do %>
|
|
||||||
<!-- <tr>-->
|
|
||||||
<!-- <th scope="row">/test/</th>-->
|
|
||||||
<!-- <td>4,569</td>-->
|
|
||||||
<!-- <td>340</td>-->
|
|
||||||
<!-- <td>-->
|
|
||||||
<!-- <i class="fas fa-arrow-up text-success mr-3"></i> 46,53%-->
|
|
||||||
<!-- </td>-->
|
|
||||||
<!-- </tr>-->
|
|
||||||
<%# end %>
|
|
||||||
<!-- </tbody>-->
|
|
||||||
<!-- </table>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- <div class="col-xl-4">-->
|
|
||||||
<!-- <div class="card shadow">-->
|
|
||||||
<!-- <div class="card-header border-0">-->
|
|
||||||
<!-- <div class="row align-items-center">-->
|
|
||||||
<!-- <div class="col">-->
|
|
||||||
<!-- <h3 class="mb-0">Test</h3>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- <div class="col text-right">-->
|
|
||||||
<!-- <a href="#!" class="btn btn-sm btn-primary">Test</a>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- <div class="table-responsive">-->
|
|
||||||
<!-- <table class="table align-items-center table-flush">-->
|
|
||||||
<!-- <thead class="thead-light">-->
|
|
||||||
<!-- <tr>-->
|
|
||||||
<!-- <th scope="col">Test</th>-->
|
|
||||||
<!-- <th scope="col">Test</th>-->
|
|
||||||
<!-- <th scope="col"></th>-->
|
|
||||||
<!-- </tr>-->
|
|
||||||
<!-- </thead>-->
|
|
||||||
<!-- <tbody>-->
|
|
||||||
<%# 5.times do %>
|
|
||||||
<!-- <tr>-->
|
|
||||||
<!-- <th scope="row">-->
|
|
||||||
<!-- Test-->
|
|
||||||
<!-- </th>-->
|
|
||||||
<!-- <td>-->
|
|
||||||
<!-- 1,480-->
|
|
||||||
<!-- </td>-->
|
|
||||||
<!-- <td>-->
|
|
||||||
<!-- <div class="d-flex align-items-center">-->
|
|
||||||
<!-- <span class="mr-2">60%</span>-->
|
|
||||||
<!-- <div>-->
|
|
||||||
<!-- <div class="progress">-->
|
|
||||||
<!-- <div class="progress-bar bg-gradient-danger" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 60%;"></div>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </td>-->
|
|
||||||
<!-- </tr>-->
|
|
||||||
<%# end %>
|
|
||||||
<!-- </tbody>-->
|
|
||||||
<!-- </table>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!--</div>-->
|
|
Loading…
Reference in New Issue