├── .babelrc
├── .editorconfig
├── .gitignore
├── .postcssrc.js
├── README.md
├── build
├── build.js
├── check-versions.js
├── logo.png
├── utils.js
├── vue-loader.conf.js
├── webpack.base.conf.js
├── webpack.dev.conf.js
└── webpack.prod.conf.js
├── config
├── dev.env.js
├── index.js
└── prod.env.js
├── dist
├── index.html
└── static
│ ├── admin
│ ├── css
│ │ ├── base.css
│ │ ├── changelists.css
│ │ ├── dashboard.css
│ │ ├── fonts.css
│ │ ├── forms.css
│ │ ├── login.css
│ │ ├── rtl.css
│ │ └── widgets.css
│ ├── fonts
│ │ ├── LICENSE.txt
│ │ ├── README.txt
│ │ ├── Roboto-Bold-webfont.woff
│ │ ├── Roboto-Light-webfont.woff
│ │ └── Roboto-Regular-webfont.woff
│ ├── img
│ │ ├── LICENSE
│ │ ├── README.txt
│ │ ├── calendar-icons.svg
│ │ ├── gis
│ │ │ ├── move_vertex_off.svg
│ │ │ └── move_vertex_on.svg
│ │ ├── icon-addlink.svg
│ │ ├── icon-alert.svg
│ │ ├── icon-calendar.svg
│ │ ├── icon-changelink.svg
│ │ ├── icon-clock.svg
│ │ ├── icon-deletelink.svg
│ │ ├── icon-no.svg
│ │ ├── icon-unknown-alt.svg
│ │ ├── icon-unknown.svg
│ │ ├── icon-yes.svg
│ │ ├── inline-delete.svg
│ │ ├── search.svg
│ │ ├── selector-icons.svg
│ │ ├── sorting-icons.svg
│ │ ├── tooltag-add.svg
│ │ └── tooltag-arrowright.svg
│ └── js
│ │ ├── SelectBox.js
│ │ ├── SelectFilter2.js
│ │ ├── actions.js
│ │ ├── actions.min.js
│ │ ├── admin
│ │ ├── DateTimeShortcuts.js
│ │ └── RelatedObjectLookups.js
│ │ ├── calendar.js
│ │ ├── cancel.js
│ │ ├── change_form.js
│ │ ├── collapse.js
│ │ ├── collapse.min.js
│ │ ├── core.js
│ │ ├── inlines.js
│ │ ├── inlines.min.js
│ │ ├── jquery.init.js
│ │ ├── popup_response.js
│ │ ├── prepopulate.js
│ │ ├── prepopulate.min.js
│ │ ├── prepopulate_init.js
│ │ ├── timeparse.js
│ │ ├── urlify.js
│ │ └── vendor
│ │ ├── jquery
│ │ ├── LICENSE-JQUERY.txt
│ │ ├── jquery.js
│ │ └── jquery.min.js
│ │ └── xregexp
│ │ ├── LICENSE-XREGEXP.txt
│ │ ├── xregexp.js
│ │ └── xregexp.min.js
│ ├── css
│ ├── app.e4121f5aeed7fd820d95f8255be52c23.css
│ └── app.e4121f5aeed7fd820d95f8255be52c23.css.map
│ ├── fonts
│ ├── element-icons.535877f.woff
│ ├── element-icons.732389d.ttf
│ ├── fontawesome-webfont.674f50d.eot
│ ├── fontawesome-webfont.af7ae50.woff2
│ ├── fontawesome-webfont.b06871f.ttf
│ └── fontawesome-webfont.fee66e7.woff
│ ├── img
│ └── fontawesome-webfont.912ec66.svg
│ ├── js
│ ├── 0.efcf66cf2445601b6ad0.js
│ ├── 0.efcf66cf2445601b6ad0.js.map
│ ├── 1.2db9e0599011725d6bf0.js
│ ├── 1.2db9e0599011725d6bf0.js.map
│ ├── 10.407388e9f210b45d1773.js
│ ├── 10.407388e9f210b45d1773.js.map
│ ├── 11.5922e719e8b9319a4e2c.js
│ ├── 11.5922e719e8b9319a4e2c.js.map
│ ├── 12.45213864306021bb7bc8.js
│ ├── 12.45213864306021bb7bc8.js.map
│ ├── 13.158092e90ec01844c399.js
│ ├── 13.158092e90ec01844c399.js.map
│ ├── 14.bf640dda12084e5c88e4.js
│ ├── 14.bf640dda12084e5c88e4.js.map
│ ├── 15.b3d65c82ebaa949ec6c8.js
│ ├── 15.b3d65c82ebaa949ec6c8.js.map
│ ├── 16.f163e8109127cb189efb.js
│ ├── 16.f163e8109127cb189efb.js.map
│ ├── 17.d1a4c6c0730c30bd704c.js
│ ├── 17.d1a4c6c0730c30bd704c.js.map
│ ├── 18.9e5fed01b573e1c763de.js
│ ├── 18.9e5fed01b573e1c763de.js.map
│ ├── 19.41aa94d2b67125f13170.js
│ ├── 19.41aa94d2b67125f13170.js.map
│ ├── 2.d6f81c3b460e3920a599.js
│ ├── 2.d6f81c3b460e3920a599.js.map
│ ├── 20.65ab3f66920db2f63f27.js
│ ├── 20.65ab3f66920db2f63f27.js.map
│ ├── 21.b21155281a0ccb3d0269.js
│ ├── 21.b21155281a0ccb3d0269.js.map
│ ├── 22.4942918169a3e131f4dd.js
│ ├── 22.4942918169a3e131f4dd.js.map
│ ├── 23.f62c041a210451f272a7.js
│ ├── 23.f62c041a210451f272a7.js.map
│ ├── 24.d34ff2db70da91232c13.js
│ ├── 24.d34ff2db70da91232c13.js.map
│ ├── 25.8a5c83b0c11c426bfade.js
│ ├── 25.8a5c83b0c11c426bfade.js.map
│ ├── 26.6de0981dc513c5da4547.js
│ ├── 26.6de0981dc513c5da4547.js.map
│ ├── 27.2ac96b710145be684bd0.js
│ ├── 27.2ac96b710145be684bd0.js.map
│ ├── 28.c0591bc9a51f70533afb.js
│ ├── 28.c0591bc9a51f70533afb.js.map
│ ├── 29.e8687c7b1b2dbb298b31.js
│ ├── 29.e8687c7b1b2dbb298b31.js.map
│ ├── 3.11cb5c52477d4ef68429.js
│ ├── 3.11cb5c52477d4ef68429.js.map
│ ├── 30.e6af9a784c3590f53ef8.js
│ ├── 30.e6af9a784c3590f53ef8.js.map
│ ├── 31.aa0f5f0625b1d976c692.js
│ ├── 31.aa0f5f0625b1d976c692.js.map
│ ├── 32.26e4340c634f9c88f370.js
│ ├── 32.26e4340c634f9c88f370.js.map
│ ├── 33.75ec3191321ed9bd9479.js
│ ├── 33.75ec3191321ed9bd9479.js.map
│ ├── 34.245cae52d4cfaa106312.js
│ ├── 34.245cae52d4cfaa106312.js.map
│ ├── 35.eee041cce1bdedfd66fc.js
│ ├── 35.eee041cce1bdedfd66fc.js.map
│ ├── 36.6d0fa538e70a1f582013.js
│ ├── 36.6d0fa538e70a1f582013.js.map
│ ├── 37.788e8fa6ab19ba7f8cdd.js
│ ├── 37.788e8fa6ab19ba7f8cdd.js.map
│ ├── 38.02683971757af4db16da.js
│ ├── 38.02683971757af4db16da.js.map
│ ├── 39.5c6ba1157bd7425c3986.js
│ ├── 39.5c6ba1157bd7425c3986.js.map
│ ├── 4.ce9e38e7f2112f155b1f.js
│ ├── 4.ce9e38e7f2112f155b1f.js.map
│ ├── 40.3a6ea6dec373d2d235d2.js
│ ├── 40.3a6ea6dec373d2d235d2.js.map
│ ├── 41.a6084e625c1520b09cd3.js
│ ├── 41.a6084e625c1520b09cd3.js.map
│ ├── 42.aeb5dbbc384e7cf9b0ac.js
│ ├── 42.aeb5dbbc384e7cf9b0ac.js.map
│ ├── 5.c4c1b9f152954c17fb33.js
│ ├── 5.c4c1b9f152954c17fb33.js.map
│ ├── 6.d51738118a2a31c6d848.js
│ ├── 6.d51738118a2a31c6d848.js.map
│ ├── 7.810c755e8a5fdf630bae.js
│ ├── 7.810c755e8a5fdf630bae.js.map
│ ├── 8.76b53bcce266806372d2.js
│ ├── 8.76b53bcce266806372d2.js.map
│ ├── 9.d6738f4291fb740b9182.js
│ ├── 9.d6738f4291fb740b9182.js.map
│ ├── app.e6324777c22b81557aa6.js
│ ├── app.e6324777c22b81557aa6.js.map
│ ├── manifest.a975bce51d1d775fe3c3.js
│ ├── manifest.a975bce51d1d775fe3c3.js.map
│ ├── vendor.8bb10babaa0ffb2ca031.js
│ └── vendor.8bb10babaa0ffb2ca031.js.map
│ ├── rest_framework
│ ├── css
│ │ ├── bootstrap-tweaks.css
│ │ ├── bootstrap.min.css
│ │ ├── default.css
│ │ └── prettify.css
│ ├── docs
│ │ ├── css
│ │ │ ├── base.css
│ │ │ ├── bootstrap-theme.min.css
│ │ │ ├── bootstrap.min.css
│ │ │ ├── font-awesome-4.0.3.css
│ │ │ ├── highlight.css
│ │ │ └── jquery.json-view.min.css
│ │ ├── fonts
│ │ │ ├── fontawesome-webfont.eot
│ │ │ ├── fontawesome-webfont.svg
│ │ │ ├── fontawesome-webfont.ttf
│ │ │ ├── fontawesome-webfont.woff
│ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ └── glyphicons-halflings-regular.woff2
│ │ ├── img
│ │ │ ├── favicon.ico
│ │ │ └── grid.png
│ │ └── js
│ │ │ ├── api.js
│ │ │ ├── bootstrap.min.js
│ │ │ ├── highlight.pack.js
│ │ │ ├── jquery-1.10.2.min.js
│ │ │ └── jquery.json-view.min.js
│ ├── fonts
│ │ ├── glyphicons-halflings-regular.eot
│ │ ├── glyphicons-halflings-regular.svg
│ │ ├── glyphicons-halflings-regular.ttf
│ │ ├── glyphicons-halflings-regular.woff
│ │ └── glyphicons-halflings-regular.woff2
│ ├── img
│ │ ├── glyphicons-halflings-white.png
│ │ ├── glyphicons-halflings.png
│ │ └── grid.png
│ └── js
│ │ ├── ajax-form.js
│ │ ├── bootstrap.min.js
│ │ ├── coreapi-0.1.1.js
│ │ ├── csrf.js
│ │ ├── default.js
│ │ ├── jquery-1.12.4.min.js
│ │ └── prettify-min.js
│ └── rest_framework_docs
│ ├── css
│ └── style.css
│ ├── fonts
│ ├── FontAwesome.otf
│ ├── fontawesome-webfont.eot
│ ├── fontawesome-webfont.svg
│ ├── fontawesome-webfont.ttf
│ ├── fontawesome-webfont.woff
│ ├── fontawesome-webfont.woff2
│ ├── glyphicons-halflings-regular.eot
│ ├── glyphicons-halflings-regular.svg
│ ├── glyphicons-halflings-regular.ttf
│ ├── glyphicons-halflings-regular.woff
│ └── glyphicons-halflings-regular.woff2
│ ├── js
│ └── dist.min.js
│ └── less
│ └── style.less
├── django-static
├── admin
│ ├── css
│ │ ├── base.css
│ │ ├── changelists.css
│ │ ├── dashboard.css
│ │ ├── fonts.css
│ │ ├── forms.css
│ │ ├── login.css
│ │ ├── rtl.css
│ │ └── widgets.css
│ ├── fonts
│ │ ├── LICENSE.txt
│ │ ├── README.txt
│ │ ├── Roboto-Bold-webfont.woff
│ │ ├── Roboto-Light-webfont.woff
│ │ └── Roboto-Regular-webfont.woff
│ ├── img
│ │ ├── LICENSE
│ │ ├── README.txt
│ │ ├── calendar-icons.svg
│ │ ├── gis
│ │ │ ├── move_vertex_off.svg
│ │ │ └── move_vertex_on.svg
│ │ ├── icon-addlink.svg
│ │ ├── icon-alert.svg
│ │ ├── icon-calendar.svg
│ │ ├── icon-changelink.svg
│ │ ├── icon-clock.svg
│ │ ├── icon-deletelink.svg
│ │ ├── icon-no.svg
│ │ ├── icon-unknown-alt.svg
│ │ ├── icon-unknown.svg
│ │ ├── icon-yes.svg
│ │ ├── inline-delete.svg
│ │ ├── search.svg
│ │ ├── selector-icons.svg
│ │ ├── sorting-icons.svg
│ │ ├── tooltag-add.svg
│ │ └── tooltag-arrowright.svg
│ └── js
│ │ ├── SelectBox.js
│ │ ├── SelectFilter2.js
│ │ ├── actions.js
│ │ ├── actions.min.js
│ │ ├── admin
│ │ ├── DateTimeShortcuts.js
│ │ └── RelatedObjectLookups.js
│ │ ├── calendar.js
│ │ ├── cancel.js
│ │ ├── change_form.js
│ │ ├── collapse.js
│ │ ├── collapse.min.js
│ │ ├── core.js
│ │ ├── inlines.js
│ │ ├── inlines.min.js
│ │ ├── jquery.init.js
│ │ ├── popup_response.js
│ │ ├── prepopulate.js
│ │ ├── prepopulate.min.js
│ │ ├── prepopulate_init.js
│ │ ├── timeparse.js
│ │ ├── urlify.js
│ │ └── vendor
│ │ ├── jquery
│ │ ├── LICENSE-JQUERY.txt
│ │ ├── jquery.js
│ │ └── jquery.min.js
│ │ └── xregexp
│ │ ├── LICENSE-XREGEXP.txt
│ │ ├── xregexp.js
│ │ └── xregexp.min.js
├── rest_framework
│ ├── css
│ │ ├── bootstrap-tweaks.css
│ │ ├── bootstrap.min.css
│ │ ├── default.css
│ │ └── prettify.css
│ ├── docs
│ │ ├── css
│ │ │ ├── base.css
│ │ │ ├── bootstrap-theme.min.css
│ │ │ ├── bootstrap.min.css
│ │ │ ├── font-awesome-4.0.3.css
│ │ │ ├── highlight.css
│ │ │ └── jquery.json-view.min.css
│ │ ├── fonts
│ │ │ ├── fontawesome-webfont.eot
│ │ │ ├── fontawesome-webfont.svg
│ │ │ ├── fontawesome-webfont.ttf
│ │ │ ├── fontawesome-webfont.woff
│ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ └── glyphicons-halflings-regular.woff2
│ │ ├── img
│ │ │ ├── favicon.ico
│ │ │ └── grid.png
│ │ └── js
│ │ │ ├── api.js
│ │ │ ├── bootstrap.min.js
│ │ │ ├── highlight.pack.js
│ │ │ ├── jquery-1.10.2.min.js
│ │ │ └── jquery.json-view.min.js
│ ├── fonts
│ │ ├── glyphicons-halflings-regular.eot
│ │ ├── glyphicons-halflings-regular.svg
│ │ ├── glyphicons-halflings-regular.ttf
│ │ ├── glyphicons-halflings-regular.woff
│ │ └── glyphicons-halflings-regular.woff2
│ ├── img
│ │ ├── glyphicons-halflings-white.png
│ │ ├── glyphicons-halflings.png
│ │ └── grid.png
│ └── js
│ │ ├── ajax-form.js
│ │ ├── bootstrap.min.js
│ │ ├── coreapi-0.1.1.js
│ │ ├── csrf.js
│ │ ├── default.js
│ │ ├── jquery-1.12.4.min.js
│ │ └── prettify-min.js
└── rest_framework_docs
│ ├── css
│ └── style.css
│ ├── fonts
│ ├── FontAwesome.otf
│ ├── fontawesome-webfont.eot
│ ├── fontawesome-webfont.svg
│ ├── fontawesome-webfont.ttf
│ ├── fontawesome-webfont.woff
│ ├── fontawesome-webfont.woff2
│ ├── glyphicons-halflings-regular.eot
│ ├── glyphicons-halflings-regular.svg
│ ├── glyphicons-halflings-regular.ttf
│ ├── glyphicons-halflings-regular.woff
│ └── glyphicons-halflings-regular.woff2
│ ├── js
│ └── dist.min.js
│ └── less
│ └── style.less
├── images
└── cmdb-0.png
├── index.html
├── k8s-templates
├── config_maps
│ └── dev
│ │ ├── app-cmdb-frontend-nginx-conf.yml
│ │ └── nginx.conf
├── dev-frontend-cmdb.yaml
└── prod-frontend-cmdb.yaml
├── package-lock.json
├── package.json
├── package_upload.py
├── src
├── App 2.vue
├── App.vue
├── Blank 2.vue
├── Blank.vue
├── api
│ ├── index 2.js
│ └── index.js
├── assets
│ ├── logo 2.png
│ ├── logo-new 2.png
│ ├── logo-new.png
│ └── logo.png
├── c-test
│ ├── html-2 2.html
│ ├── html-2.html
│ ├── test-1 2.html
│ ├── test-1.html
│ ├── test-3 2.html
│ ├── test-3.html
│ ├── test-4 2.html
│ ├── test-4.html
│ ├── test-5 2.html
│ ├── test-5.html
│ ├── test-6 2.html
│ ├── test-6.html
│ ├── test-7 2.html
│ └── test-7.html
├── components
│ ├── CBox 2.vue
│ ├── CBox.vue
│ ├── CTooltipButton 2.vue
│ ├── CTooltipButton.vue
│ ├── CartPanel 2.vue
│ ├── CartPanel.vue
│ ├── DateFilter 2.vue
│ ├── DateFilter.vue
│ ├── DateRangeFilter 2.vue
│ ├── DateRangeFilter.vue
│ ├── DialogExport 2.vue
│ ├── DialogExport.vue
│ ├── Export 2.vue
│ ├── Export.vue
│ ├── HelloWorld 2.vue
│ ├── HelloWorld.vue
│ ├── InputList 2.vue
│ ├── InputList.vue
│ ├── Login 2.vue
│ ├── Login.vue
│ ├── NumberRangeFilter 2.vue
│ ├── NumberRangeFilter.vue
│ ├── OptionBar 2.vue
│ ├── OptionBar.vue
│ ├── Pagination 2.vue
│ ├── Pagination.vue
│ ├── Search 2.vue
│ ├── Search.vue
│ ├── app
│ │ ├── user-mgmt
│ │ │ ├── CreateUpdate 2.vue
│ │ │ ├── CreateUpdate.vue
│ │ │ ├── ResetPassword 2.vue
│ │ │ └── ResetPassword.vue
│ │ └── user
│ │ │ ├── Create 2.vue
│ │ │ └── Create.vue
│ ├── c-select
│ │ ├── navigation-mixin 2.js
│ │ ├── navigation-mixin.js
│ │ ├── option 2.vue
│ │ ├── option-group 2.vue
│ │ ├── option-group.vue
│ │ ├── option.vue
│ │ ├── scrollbar
│ │ │ ├── index 2.js
│ │ │ ├── index.js
│ │ │ └── src
│ │ │ │ ├── bar 2.js
│ │ │ │ ├── bar.js
│ │ │ │ ├── main 2.js
│ │ │ │ ├── main.js
│ │ │ │ ├── util 2.js
│ │ │ │ └── util.js
│ │ ├── select 2.vue
│ │ ├── select-dropdown 2.vue
│ │ ├── select-dropdown.vue
│ │ └── select.vue
│ └── dialogs
│ │ ├── LoginDialog 2.vue
│ │ └── LoginDialog.vue
├── config
│ ├── dev 2.js
│ ├── dev.js
│ ├── index 2.js
│ ├── index.js
│ ├── pro 2.js
│ └── pro.js
├── main 2.js
├── main.js
├── router
│ ├── _import_development 2.js
│ ├── _import_development.js
│ ├── _import_production 2.js
│ ├── _import_production.js
│ ├── index 2.js
│ ├── index.1 2.js
│ ├── index.1.js
│ ├── index.js
│ ├── menu 2.js
│ └── menu.js
├── store
│ ├── cookie 2.js
│ ├── cookie.js
│ ├── index 2.js
│ ├── index.js
│ ├── mutation 2.js
│ └── mutation.js
├── utils
│ ├── calc 2.js
│ ├── calc.js
│ ├── color 2.js
│ ├── color.js
│ ├── components 2.js
│ ├── components.js
│ ├── conversion 2.js
│ ├── conversion.js
│ ├── cookie 2.js
│ ├── cookie.js
│ ├── data_process 2.js
│ ├── data_process.js
│ ├── date 2.js
│ ├── date.js
│ ├── filters 2.js
│ ├── filters.js
│ ├── index 2.js
│ ├── index.js
│ ├── maps 2.js
│ ├── maps.js
│ ├── mixins 2.js
│ ├── mixins.js
│ ├── new_mixins
│ │ ├── action_dialog_mixin 2.js
│ │ ├── action_dialog_mixin.js
│ │ ├── chart_mixin 2.js
│ │ ├── chart_mixin.js
│ │ ├── create_update_dialog_mixin 2.js
│ │ ├── create_update_dialog_mixin.js
│ │ ├── detail_dialog_mixin 2.js
│ │ ├── detail_dialog_mixin.js
│ │ ├── dialog_mixin 2.js
│ │ ├── dialog_mixin.js
│ │ ├── drawer_mixin 2.js
│ │ ├── drawer_mixin.js
│ │ ├── index 2.js
│ │ ├── index.js
│ │ ├── list_mixin 2.js
│ │ └── list_mixin.js
│ ├── plugins 2.js
│ ├── plugins.js
│ ├── schema 2.js
│ ├── schema.js
│ ├── sso 2.js
│ ├── sso.js
│ ├── url 2.js
│ ├── url.js
│ ├── variables 2.js
│ ├── variables.js
│ ├── workorder 2.js
│ └── workorder.js
└── views
│ ├── ModifyData 2.vue
│ ├── ModifyData.vue
│ ├── deleted-display
│ ├── DisplayData 2.vue
│ ├── DisplayData.vue
│ └── components
│ │ ├── DataItem 2.vue
│ │ ├── DataItem.vue
│ │ ├── DeletedDataDetail 2.vue
│ │ └── DeletedDataDetail.vue
│ ├── department
│ ├── TableMgmt 2.vue
│ ├── TableMgmt.vue
│ └── components
│ │ ├── ChangeTable 2.vue
│ │ ├── ChangeTable.vue
│ │ ├── DeleteTable 2.vue
│ │ └── DeleteTable.vue
│ ├── display-data
│ ├── DisplayData 2.vue
│ ├── DisplayData.vue
│ └── components
│ │ ├── AddData 2.vue
│ │ ├── AddData.vue
│ │ ├── ChangeData 2.vue
│ │ ├── ChangeData.vue
│ │ ├── DataDetail 2.vue
│ │ ├── DataDetail.vue
│ │ ├── DataItem 2.vue
│ │ ├── DataItem.vue
│ │ ├── Export.vue
│ │ ├── HistoricalRecord 2.vue
│ │ ├── HistoricalRecord.vue
│ │ ├── Import.vue
│ │ ├── ListIndices.vue
│ │ ├── MenuItem.vue
│ │ ├── ShowTable 2.vue
│ │ └── ShowTable.vue
│ ├── layout
│ ├── Layout 2.vue
│ ├── Layout.vue
│ ├── components
│ │ ├── ResetPwd.vue
│ │ └── Token.vue
│ └── comps
│ │ ├── Aside 2.vue
│ │ ├── Aside.vue
│ │ ├── Header 2.vue
│ │ ├── Header.backvue
│ │ ├── Header.vue
│ │ └── MenuItem 2.vue
│ ├── login
│ ├── Login 2.vue
│ └── Login.vue
│ ├── table-mgmt
│ ├── TableMgmt 2.vue
│ ├── TableMgmt.vue
│ └── components
│ │ ├── ChangeTable 2.vue
│ │ ├── ChangeTable.vue
│ │ ├── DeleteTable 2.vue
│ │ ├── DeleteTable.vue
│ │ ├── Upload 2.vue
│ │ └── Upload.vue
│ ├── test
│ ├── Test1 2.vue
│ ├── Test1.vue
│ ├── Test2 2.vue
│ ├── Test2.vue
│ ├── Test3 2.vue
│ ├── Test3.vue
│ ├── Test4 2.vue
│ ├── Test4.vue
│ ├── Test5 2.vue
│ ├── Test5.vue
│ ├── Test6 2.vue
│ ├── Test6.vue
│ ├── components
│ │ ├── Child1 2.vue
│ │ ├── Child1.vue
│ │ ├── Dialog1 2.vue
│ │ ├── Dialog1.vue
│ │ ├── Dialog2 2.vue
│ │ └── Dialog2.vue
│ ├── js
│ │ └── test_1.js
│ ├── scrollbar
│ │ ├── index 2.js
│ │ ├── index.js
│ │ └── src
│ │ │ ├── bar 2.js
│ │ │ ├── bar.js
│ │ │ ├── main 2.js
│ │ │ ├── main.js
│ │ │ ├── util 2.js
│ │ │ └── util.js
│ ├── select
│ │ ├── index 2.js
│ │ ├── index.js
│ │ └── src
│ │ │ ├── navigation-mixin 2.js
│ │ │ ├── navigation-mixin.js
│ │ │ ├── option 2.vue
│ │ │ ├── option-group 2.vue
│ │ │ ├── option-group.vue
│ │ │ ├── option.vue
│ │ │ ├── select 2.vue
│ │ │ ├── select-dropdown 2.vue
│ │ │ ├── select-dropdown.vue
│ │ │ └── select.vue
│ └── test_1.html
│ ├── user-mgmt
│ ├── UserMgmt 2.vue
│ └── UserMgmt.vue
│ └── user
│ ├── User 2.vue
│ ├── User.vue
│ └── components
│ ├── ChangePassword 2.vue
│ ├── ChangePassword.vue
│ ├── ResetPassword 2.vue
│ └── ResetPassword.vue
├── static
└── .gitkeep
└── yarn.lock
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | ["env", {
4 | "modules": false,
5 | "targets": {
6 | "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
7 | }
8 | }],
9 | "stage-2"
10 | ],
11 | "plugins": ["transform-vue-jsx", "transform-runtime"]
12 | }
13 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | npm-debug.log*
4 | yarn-debug.log*
5 | yarn-error.log*
6 |
7 | # Editor directories and files
8 | .idea
9 | .vscode
10 | *.suo
11 | *.ntvs*
12 | *.njsproj
13 | *.sln
14 |
--------------------------------------------------------------------------------
/.postcssrc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/michael-ciniawsky/postcss-load-config
2 |
3 | module.exports = {
4 | "plugins": {
5 | "postcss-import": {},
6 | "postcss-url": {},
7 | // to edit target browsers: use "browserslist" field in package.json
8 | "autoprefixer": {}
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | # cmdb
6 |
7 | > CMDB 资产管理系统
8 |
9 | [](https://www.gnu.org/licenses/gpl-3.0)
10 | 
11 | 
12 | 
13 | 
14 |
15 | ## 知乎链接
16 | https://zhuanlan.zhihu.com/p/34191320
17 |
18 | ## 在线演示
19 | http://cmdb.mmtweb.xyz
20 | 用户名:admin 密码:cmdbcmdb (请不要修改)
21 |
22 | ## Build Setup
23 |
24 | ``` bash
25 | # install dependencies
26 | npm install
27 |
28 | # serve with hot reload at localhost:8080
29 | npm run dev
30 |
31 | # build for production with minification
32 | npm run build
33 |
34 | # build for production and view the bundle analyzer report
35 | npm run build --report
36 | ```
37 |
38 | For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).
39 |
--------------------------------------------------------------------------------
/build/build.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | require('./check-versions')()
3 |
4 | process.env.NODE_ENV = 'production'
5 |
6 | const ora = require('ora')
7 | const rm = require('rimraf')
8 | const path = require('path')
9 | const chalk = require('chalk')
10 | const webpack = require('webpack')
11 | const config = require('../config')
12 | const webpackConfig = require('./webpack.prod.conf')
13 |
14 | const spinner = ora('building for production...')
15 | spinner.start()
16 |
17 | rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
18 | if (err) throw err
19 | webpack(webpackConfig, (err, stats) => {
20 | spinner.stop()
21 | if (err) throw err
22 | process.stdout.write(stats.toString({
23 | colors: true,
24 | modules: false,
25 | children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
26 | chunks: false,
27 | chunkModules: false
28 | }) + '\n\n')
29 |
30 | if (stats.hasErrors()) {
31 | console.log(chalk.red(' Build failed with errors.\n'))
32 | process.exit(1)
33 | }
34 |
35 | console.log(chalk.cyan(' Build complete.\n'))
36 | console.log(chalk.yellow(
37 | ' Tip: built files are meant to be served over an HTTP server.\n' +
38 | ' Opening index.html over file:// won\'t work.\n'
39 | ))
40 | })
41 | })
42 |
--------------------------------------------------------------------------------
/build/check-versions.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const chalk = require('chalk')
3 | const semver = require('semver')
4 | const packageConfig = require('../package.json')
5 | const shell = require('shelljs')
6 |
7 | function exec (cmd) {
8 | return require('child_process').execSync(cmd).toString().trim()
9 | }
10 |
11 | const versionRequirements = [
12 | {
13 | name: 'node',
14 | currentVersion: semver.clean(process.version),
15 | versionRequirement: packageConfig.engines.node
16 | }
17 | ]
18 |
19 | if (shell.which('npm')) {
20 | versionRequirements.push({
21 | name: 'npm',
22 | currentVersion: exec('npm --version'),
23 | versionRequirement: packageConfig.engines.npm
24 | })
25 | }
26 |
27 | module.exports = function () {
28 | const warnings = []
29 |
30 | for (let i = 0; i < versionRequirements.length; i++) {
31 | const mod = versionRequirements[i]
32 |
33 | if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
34 | warnings.push(mod.name + ': ' +
35 | chalk.red(mod.currentVersion) + ' should be ' +
36 | chalk.green(mod.versionRequirement)
37 | )
38 | }
39 | }
40 |
41 | if (warnings.length) {
42 | console.log('')
43 | console.log(chalk.yellow('To use this template, you must update following to modules:'))
44 | console.log()
45 |
46 | for (let i = 0; i < warnings.length; i++) {
47 | const warning = warnings[i]
48 | console.log(' ' + warning)
49 | }
50 |
51 | console.log()
52 | process.exit(1)
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/build/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/build/logo.png
--------------------------------------------------------------------------------
/build/vue-loader.conf.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const utils = require('./utils')
3 | const config = require('../config')
4 | const isProduction = process.env.NODE_ENV === 'production'
5 | const sourceMapEnabled = isProduction
6 | ? config.build.productionSourceMap
7 | : config.dev.cssSourceMap
8 |
9 | module.exports = {
10 | loaders: utils.cssLoaders({
11 | sourceMap: sourceMapEnabled,
12 | extract: isProduction
13 | }),
14 | cssSourceMap: sourceMapEnabled,
15 | cacheBusting: config.dev.cacheBusting,
16 | transformToRequire: {
17 | video: ['src', 'poster'],
18 | source: 'src',
19 | img: 'src',
20 | image: 'xlink:href'
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/config/dev.env.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const merge = require('webpack-merge')
3 | const prodEnv = require('./prod.env')
4 |
5 | module.exports = merge(prodEnv, {
6 | NODE_ENV: '"development"'
7 | })
8 |
--------------------------------------------------------------------------------
/config/prod.env.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | module.exports = {
3 | NODE_ENV: '"production"'
4 | }
5 |
--------------------------------------------------------------------------------
/dist/index.html:
--------------------------------------------------------------------------------
1 | CMDB
--------------------------------------------------------------------------------
/dist/static/admin/css/dashboard.css:
--------------------------------------------------------------------------------
1 | /* DASHBOARD */
2 |
3 | .dashboard .module table th {
4 | width: 100%;
5 | }
6 |
7 | .dashboard .module table td {
8 | white-space: nowrap;
9 | }
10 |
11 | .dashboard .module table td a {
12 | display: block;
13 | padding-right: .6em;
14 | }
15 |
16 | /* RECENT ACTIONS MODULE */
17 |
18 | .module ul.actionlist {
19 | margin-left: 0;
20 | }
21 |
22 | ul.actionlist li {
23 | list-style-type: none;
24 | overflow: hidden;
25 | text-overflow: ellipsis;
26 | -o-text-overflow: ellipsis;
27 | }
28 |
--------------------------------------------------------------------------------
/dist/static/admin/css/fonts.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'Roboto';
3 | src: url('../fonts/Roboto-Bold-webfont.woff');
4 | font-weight: 700;
5 | font-style: normal;
6 | }
7 |
8 | @font-face {
9 | font-family: 'Roboto';
10 | src: url('../fonts/Roboto-Regular-webfont.woff');
11 | font-weight: 400;
12 | font-style: normal;
13 | }
14 |
15 | @font-face {
16 | font-family: 'Roboto';
17 | src: url('../fonts/Roboto-Light-webfont.woff');
18 | font-weight: 300;
19 | font-style: normal;
20 | }
21 |
--------------------------------------------------------------------------------
/dist/static/admin/fonts/README.txt:
--------------------------------------------------------------------------------
1 | Roboto webfont source: https://www.google.com/fonts/specimen/Roboto
2 | Weights used in this project: Light (300), Regular (400), Bold (700)
3 |
--------------------------------------------------------------------------------
/dist/static/admin/fonts/Roboto-Bold-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/admin/fonts/Roboto-Bold-webfont.woff
--------------------------------------------------------------------------------
/dist/static/admin/fonts/Roboto-Light-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/admin/fonts/Roboto-Light-webfont.woff
--------------------------------------------------------------------------------
/dist/static/admin/fonts/Roboto-Regular-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/admin/fonts/Roboto-Regular-webfont.woff
--------------------------------------------------------------------------------
/dist/static/admin/img/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Code Charm Ltd
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/dist/static/admin/img/README.txt:
--------------------------------------------------------------------------------
1 | All icons are taken from Font Awesome (http://fontawesome.io/) project.
2 | The Font Awesome font is licensed under the SIL OFL 1.1:
3 | - http://scripts.sil.org/OFL
4 |
5 | SVG icons source: https://github.com/encharm/Font-Awesome-SVG-PNG
6 | Font-Awesome-SVG-PNG is licensed under the MIT license (see file license
7 | in current folder).
8 |
--------------------------------------------------------------------------------
/dist/static/admin/img/calendar-icons.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/dist/static/admin/img/gis/move_vertex_off.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/dist/static/admin/img/gis/move_vertex_on.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/dist/static/admin/img/icon-addlink.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/dist/static/admin/img/icon-alert.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/dist/static/admin/img/icon-calendar.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/dist/static/admin/img/icon-changelink.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/dist/static/admin/img/icon-clock.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/dist/static/admin/img/icon-deletelink.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/dist/static/admin/img/icon-no.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/dist/static/admin/img/icon-unknown-alt.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/dist/static/admin/img/icon-unknown.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/dist/static/admin/img/icon-yes.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/dist/static/admin/img/inline-delete.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/dist/static/admin/img/search.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/dist/static/admin/img/sorting-icons.svg:
--------------------------------------------------------------------------------
1 |
20 |
--------------------------------------------------------------------------------
/dist/static/admin/img/tooltag-add.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/dist/static/admin/img/tooltag-arrowright.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/dist/static/admin/js/cancel.js:
--------------------------------------------------------------------------------
1 | (function($) {
2 | 'use strict';
3 | $(function() {
4 | $('.cancel-link').click(function(e) {
5 | e.preventDefault();
6 | window.history.back();
7 | });
8 | });
9 | })(django.jQuery);
10 |
--------------------------------------------------------------------------------
/dist/static/admin/js/change_form.js:
--------------------------------------------------------------------------------
1 | /*global showAddAnotherPopup, showRelatedObjectLookupPopup showRelatedObjectPopup updateRelatedObjectLinks*/
2 |
3 | (function($) {
4 | 'use strict';
5 | $(document).ready(function() {
6 | var modelName = $('#django-admin-form-add-constants').data('modelName');
7 | $('body').on('click', '.add-another', function(e) {
8 | e.preventDefault();
9 | var event = $.Event('django:add-another-related');
10 | $(this).trigger(event);
11 | if (!event.isDefaultPrevented()) {
12 | showAddAnotherPopup(this);
13 | }
14 | });
15 |
16 | if (modelName) {
17 | $('form#' + modelName + '_form :input:visible:enabled:first').focus();
18 | }
19 | });
20 | })(django.jQuery);
21 |
--------------------------------------------------------------------------------
/dist/static/admin/js/collapse.js:
--------------------------------------------------------------------------------
1 | /*global gettext*/
2 | (function($) {
3 | 'use strict';
4 | $(document).ready(function() {
5 | // Add anchor tag for Show/Hide link
6 | $("fieldset.collapse").each(function(i, elem) {
7 | // Don't hide if fields in this fieldset have errors
8 | if ($(elem).find("div.errors").length === 0) {
9 | $(elem).addClass("collapsed").find("h2").first().append(' (' + gettext("Show") +
11 | ')');
12 | }
13 | });
14 | // Add toggle to anchor tag
15 | $("fieldset.collapse a.collapse-toggle").click(function(ev) {
16 | if ($(this).closest("fieldset").hasClass("collapsed")) {
17 | // Show
18 | $(this).text(gettext("Hide")).closest("fieldset").removeClass("collapsed").trigger("show.fieldset", [$(this).attr("id")]);
19 | } else {
20 | // Hide
21 | $(this).text(gettext("Show")).closest("fieldset").addClass("collapsed").trigger("hide.fieldset", [$(this).attr("id")]);
22 | }
23 | return false;
24 | });
25 | });
26 | })(django.jQuery);
27 |
--------------------------------------------------------------------------------
/dist/static/admin/js/collapse.min.js:
--------------------------------------------------------------------------------
1 | (function(a){a(document).ready(function(){a("fieldset.collapse").each(function(b,c){0===a(c).find("div.errors").length&&a(c).addClass("collapsed").find("h2").first().append(' ('+gettext("Show")+")")});a("fieldset.collapse a.collapse-toggle").click(function(b){a(this).closest("fieldset").hasClass("collapsed")?a(this).text(gettext("Hide")).closest("fieldset").removeClass("collapsed").trigger("show.fieldset",[a(this).attr("id")]):a(this).text(gettext("Show")).closest("fieldset").addClass("collapsed").trigger("hide.fieldset",
2 | [a(this).attr("id")]);return!1})})})(django.jQuery);
3 |
--------------------------------------------------------------------------------
/dist/static/admin/js/jquery.init.js:
--------------------------------------------------------------------------------
1 | /*global django:true, jQuery:false*/
2 | /* Puts the included jQuery into our own namespace using noConflict and passing
3 | * it 'true'. This ensures that the included jQuery doesn't pollute the global
4 | * namespace (i.e. this preserves pre-existing values for both window.$ and
5 | * window.jQuery).
6 | */
7 | var django = django || {};
8 | django.jQuery = jQuery.noConflict(true);
9 |
--------------------------------------------------------------------------------
/dist/static/admin/js/popup_response.js:
--------------------------------------------------------------------------------
1 | /*global opener */
2 | (function() {
3 | 'use strict';
4 | var initData = JSON.parse(document.getElementById('django-admin-popup-response-constants').dataset.popupResponse);
5 | switch(initData.action) {
6 | case 'change':
7 | opener.dismissChangeRelatedObjectPopup(window, initData.value, initData.obj, initData.new_value);
8 | break;
9 | case 'delete':
10 | opener.dismissDeleteRelatedObjectPopup(window, initData.value);
11 | break;
12 | default:
13 | opener.dismissAddRelatedObjectPopup(window, initData.value, initData.obj);
14 | break;
15 | }
16 | })();
17 |
--------------------------------------------------------------------------------
/dist/static/admin/js/prepopulate.min.js:
--------------------------------------------------------------------------------
1 | (function(c){c.fn.prepopulate=function(e,f,g){return this.each(function(){var a=c(this),b=function(){if(!a.data("_changed")){var b=[];c.each(e,function(a,d){d=c(d);0
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/dist/static/fonts/element-icons.535877f.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/fonts/element-icons.535877f.woff
--------------------------------------------------------------------------------
/dist/static/fonts/element-icons.732389d.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/fonts/element-icons.732389d.ttf
--------------------------------------------------------------------------------
/dist/static/fonts/fontawesome-webfont.674f50d.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/fonts/fontawesome-webfont.674f50d.eot
--------------------------------------------------------------------------------
/dist/static/fonts/fontawesome-webfont.af7ae50.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/fonts/fontawesome-webfont.af7ae50.woff2
--------------------------------------------------------------------------------
/dist/static/fonts/fontawesome-webfont.b06871f.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/fonts/fontawesome-webfont.b06871f.ttf
--------------------------------------------------------------------------------
/dist/static/fonts/fontawesome-webfont.fee66e7.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/fonts/fontawesome-webfont.fee66e7.woff
--------------------------------------------------------------------------------
/dist/static/js/11.5922e719e8b9319a4e2c.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([11],{YoAx:function(e,t){},ggCq:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a("Utg8"),n=a("KcRu"),s={name:"Index",components:{CHeader:i.default,CAside:n.default},mounted:function(){},methods:{process_team:function(){var e=this;localStorage.getItem("current_user_has_team")||this.$c_master.get("user/user/team-name").then(function(t){t.data.team_name?localStorage.setItem("current_user_has_team","1"):e.$notify({title:"警告",message:"您还不属于任何团队 请前往 工单申请->其它->加入团队 申请加入团队 否者将导致部分工单审批无法正常流转",type:"warning",duration:0})})}}},o={render:function(){var e=this.$createElement,t=this._self._c||e;return t("section",{staticStyle:{display:"flex","flex-flow":"column",height:"100%","min-width":"1300px",overflow:"auto"}},[t("header",{staticStyle:{height:"80px"}},[t("c-header")],1),this._v(" "),t("section",{staticStyle:{flex:"1",display:"flex","flex-flow":"row"}},[t("c-aside",{staticStyle:{height:"100%"}}),this._v(" "),t("main",{staticStyle:{height:"100%",flex:"1",overflow:"auto"}},[t("div",{staticStyle:{margin:"20px"}},[t("router-view")],1)])],1)])},staticRenderFns:[]};var r=a("VU/8")(s,o,!1,function(e){a("YoAx")},"data-v-80184ab2",null);t.default=r.exports}});
2 | //# sourceMappingURL=11.5922e719e8b9319a4e2c.js.map
--------------------------------------------------------------------------------
/dist/static/js/14.bf640dda12084e5c88e4.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([14],{Aw5E:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i={render:function(){var e=this.$createElement,t=this._self._c||e;return t("div",[this._t("default"),this._v(" "),t("h1",[this._v("Child 1")])],2)},staticRenderFns:[]};var a=n("VU/8")({name:"child1"},i,!1,function(e){n("xMQx")},"data-v-6c12ea22",null);t.default=a.exports},xMQx:function(e,t){}});
2 | //# sourceMappingURL=14.bf640dda12084e5c88e4.js.map
--------------------------------------------------------------------------------
/dist/static/js/15.b3d65c82ebaa949ec6c8.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([15],{"7p0N":function(e,o,n){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var t=n("frb6");n("7+uW").default.component("Test6",t.default);var d={methods:{on_click:function(){console.log("on_click")}}},l={render:function(){var e=this,o=e.$createElement,n=e._self._c||o;return n("div",[n("el-dropdown",[n("span",{staticClass:"el-dropdown-link"},[e._v("\n 下拉菜单"),n("i",{staticClass:"el-icon-arrow-down el-icon--right"})]),e._v(" "),n("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[n("el-dropdown-item",[e._v("黄金糕")]),e._v(" "),n("el-dropdown-item",[e._v("狮子头")]),e._v(" "),n("el-dropdown-item",{on:{click:e.on_click}},[e._v("螺蛳粉")]),e._v(" "),n("el-dropdown-item",{attrs:{disabled:""}},[e._v("双皮奶")]),e._v(" "),n("el-dropdown-item",{attrs:{divided:""}},[e._v("蚵仔煎")])],1)],1)],1)},staticRenderFns:[]};var r=n("VU/8")(d,l,!1,function(e){n("Zk8R")},"data-v-669565e9",null);o.default=r.exports},Zk8R:function(e,o){}});
2 | //# sourceMappingURL=15.b3d65c82ebaa949ec6c8.js.map
--------------------------------------------------------------------------------
/dist/static/js/17.d1a4c6c0730c30bd704c.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([17],{Gh4l:function(e,t){},Ry5Y:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={render:function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticStyle:{width:"460px",margin:"30vh auto auto"}},[t("router-view")],1)},staticRenderFns:[]};var a=n("VU/8")({name:"user"},r,!1,function(e){n("Gh4l")},"data-v-5bfae116",null);t.default=a.exports}});
2 | //# sourceMappingURL=17.d1a4c6c0730c30bd704c.js.map
--------------------------------------------------------------------------------
/dist/static/js/20.65ab3f66920db2f63f27.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([20],{EHcN:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s={data:function(){return console.log("this.props.data:",this.data),{is_visible:!0,ddd:[{name:"zhangsan"}]}},props:["data","source"],mounted:function(){console.log("mounted"),console.log("data:",this.data),console.log("table_data:",this.table_data)},methods:{on_close:function(){this.$el.parentNode.removeChild(this.$el),this.$destroy()}}},n={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("el-dialog",{attrs:{width:"900px",title:e.data._index+" "+e.data._id+" 详细信息",visible:e.is_visible},on:{"update:visible":function(t){e.is_visible=t},close:e.on_close}},[a("div",[a("span",{staticClass:"label"},[e._v("创建者:")]),e._v(e._s(e.data._source["S-creator"])+"\n ")]),e._v(" "),a("div",[a("span",{staticClass:"label"},[e._v("创建时间:")]),e._v(e._s(e.data._source["S-creation-time"])+"\n ")]),e._v(" "),a("div",[a("span",{staticClass:"label"},[e._v("删除者:")]),e._v(e._s(e.data._source["S-delete-people"])+"\n ")]),e._v(" "),a("div",[a("span",{staticClass:"label"},[e._v("删除时间:")]),e._v(e._s(e.data._source["S-delete-time"])+"\n ")]),e._v(" "),e._l(e.data._source,function(t,s,n){return"S"!=s[0]?a("div",{key:n},[a("span",{staticClass:"label"},[e._v(e._s(s)+":")]),e._v(e._s(t)+"\n ")]):e._e()})],2)},staticRenderFns:[]};var i=a("VU/8")(s,n,!1,function(e){a("GdLW")},"data-v-13592fb9",null);t.default=i.exports},GdLW:function(e,t){}});
2 | //# sourceMappingURL=20.65ab3f66920db2f63f27.js.map
--------------------------------------------------------------------------------
/dist/static/js/23.f62c041a210451f272a7.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([23],{YrTf:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i={render:function(){this.$createElement;this._self._c;return this._m(0)},staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",[t("p",[this._v("dialog2")])])}]};var r=n("VU/8")({name:"dialog2"},i,!1,function(e){n("pgyX")},"data-v-0fde6146",null);t.default=r.exports},pgyX:function(e,t){}});
2 | //# sourceMappingURL=23.f62c041a210451f272a7.js.map
--------------------------------------------------------------------------------
/dist/static/js/27.2ac96b710145be684bd0.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([27],{uRvg:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var p={name:"ElSelectDropdown",componentName:"ElSelectDropdown",mixins:[n("lpOu").a],props:{placement:{default:"bottom-start"},boundariesPadding:{default:0},popperOptions:{default:function(){return{gpuAcceleration:!1}}},visibleArrow:{default:!0},appendToBody:{type:Boolean,default:!0}},data:function(){return{minWidth:""}},computed:{popperClass:function(){return this.$parent.popperClass}},watch:{"$parent.inputWidth":function(){this.minWidth=this.$parent.$el.getBoundingClientRect().width+"px"}},mounted:function(){var e=this;this.referenceElm=this.$parent.$refs.reference.$el,this.$parent.popperElm=this.popperElm=this.$el,this.$on("updatePopper",function(){e.$parent.visible&&e.updatePopper()}),this.$on("destroyPopper",this.destroyPopper)}},i={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-select-dropdown el-popper",class:[{"is-multiple":this.$parent.multiple},this.popperClass],style:{minWidth:this.minWidth}},[this._t("default")],2)},staticRenderFns:[]},r=n("VU/8")(p,i,!1,null,null,null);t.default=r.exports}});
2 | //# sourceMappingURL=27.2ac96b710145be684bd0.js.map
--------------------------------------------------------------------------------
/dist/static/js/28.c0591bc9a51f70533afb.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([28],{eNJv:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s={mixins:[i("ufP2").a],name:"ElOptionGroup",componentName:"ElOptionGroup",props:{label:String,disabled:{type:Boolean,default:!1}},data:function(){return{visible:!0}},watch:{disabled:function(e){this.broadcast("ElOption","handleGroupDisabled",e)}},methods:{queryChange:function(){this.visible=this.$children&&Array.isArray(this.$children)&&this.$children.some(function(e){return!0===e.visible})}},created:function(){this.$on("queryChange",this.queryChange)},mounted:function(){this.disabled&&this.broadcast("ElOption","handleGroupDisabled",this.disabled)}},l={render:function(){var e=this.$createElement,t=this._self._c||e;return t("ul",{directives:[{name:"show",rawName:"v-show",value:this.visible,expression:"visible"}],staticClass:"el-select-group__wrap"},[t("li",{staticClass:"el-select-group__title"},[this._v(this._s(this.label))]),this._v(" "),t("li",[t("ul",{staticClass:"el-select-group"},[this._t("default")],2)])])},staticRenderFns:[]},n=i("VU/8")(s,l,!1,null,null,null);t.default=n.exports}});
2 | //# sourceMappingURL=28.c0591bc9a51f70533afb.js.map
--------------------------------------------------------------------------------
/dist/static/js/29.e8687c7b1b2dbb298b31.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([29],{PXjp:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s={mixins:[i("ufP2").a],name:"ElOptionGroup",componentName:"ElOptionGroup",props:{label:String,disabled:{type:Boolean,default:!1}},data:function(){return{visible:!0}},watch:{disabled:function(e){this.broadcast("ElOption","handleGroupDisabled",e)}},methods:{queryChange:function(){this.visible=this.$children&&Array.isArray(this.$children)&&this.$children.some(function(e){return!0===e.visible})}},created:function(){this.$on("queryChange",this.queryChange)},mounted:function(){this.disabled&&this.broadcast("ElOption","handleGroupDisabled",this.disabled)}},l={render:function(){var e=this.$createElement,t=this._self._c||e;return t("ul",{directives:[{name:"show",rawName:"v-show",value:this.visible,expression:"visible"}],staticClass:"el-select-group__wrap"},[t("li",{staticClass:"el-select-group__title"},[this._v(this._s(this.label))]),this._v(" "),t("li",[t("ul",{staticClass:"el-select-group"},[this._t("default")],2)])])},staticRenderFns:[]},n=i("VU/8")(s,l,!1,null,null,null);t.default=n.exports}});
2 | //# sourceMappingURL=29.e8687c7b1b2dbb298b31.js.map
--------------------------------------------------------------------------------
/dist/static/js/3.11cb5c52477d4ef68429.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([3],{HdYL:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=n("7+uW"),i=(n("gyMJ"),{name:"data-item",props:["data"],methods:{on_show_detail:function(e){console.log("on_show_detail.data:",e);var t=new(a.default.component("DeletedDataDetail"))({propsData:{data:e,source:e._source}});t.$mount(),this.$el.appendChild(t.$el)}}}),l={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ul",{staticStyle:{"white-space":"nowrap",margin:"0px",padding:"0px"}},[n("li",{staticStyle:{display:"inline-block",border:"1px solid #E4E7ED",padding:"9px"}},[n("el-button",{staticStyle:{padding:"0px"},attrs:{icon:"el-icon-view"},on:{click:function(t){e.on_show_detail(e.data)}}})],1),e._v(" "),e._l(e.data._source,function(t,a,i){return"S"!=a[0]?n("li",{key:i,staticStyle:{display:"inline-block",border:"1px solid #E4E7ED",padding:"0 12px","font-size":"14px",height:"40px","line-height":"40px"},style:{color:null==t?"#C0C4CC":"#606266"}},[e._v("\n "+e._s(null==t?"null":t)+"\n ")]):e._e()})],2)},staticRenderFns:[]};var o=n("VU/8")(i,l,!1,function(e){n("dCqB")},"data-v-f01096d8",null);t.default=o.exports},dCqB:function(e,t){}});
2 | //# sourceMappingURL=3.11cb5c52477d4ef68429.js.map
--------------------------------------------------------------------------------
/dist/static/js/31.aa0f5f0625b1d976c692.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([31],{"7PrN":function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={data:function(){return{dialogVisible:!0}},methods:{handleClose:function(e){this.$confirm("确认关闭?").then(function(t){e()}).catch(function(e){})},do_destory:function(){console.log("do_destory"),this.$el.parentNode.removeChild(this.$el),this.$destroy()}},destroyed:function(){console.log("destroyed()")}},i={render:function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("el-dialog",{attrs:{title:"提示",visible:e.dialogVisible,width:"30%","before-close":e.handleClose},on:{"update:visible":function(t){e.dialogVisible=t}}},[o("span",[e._v("这是一段信息")]),e._v(" "),o("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[o("el-button",{on:{click:function(t){e.do_destory()}}},[e._v("取 消")]),e._v(" "),o("el-button",{attrs:{type:"primary"},on:{click:function(t){e.dialogVisible=!1}}},[e._v("确 定")])],1)])},staticRenderFns:[]},l=o("VU/8")(n,i,!1,null,null,null);t.default=l.exports}});
2 | //# sourceMappingURL=31.aa0f5f0625b1d976c692.js.map
--------------------------------------------------------------------------------
/dist/static/js/33.75ec3191321ed9bd9479.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([33],{ni3Y:function(e,a,t){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var l={render:function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("div",[t("el-table",{staticStyle:{width:"100%"},attrs:{data:e.tableData,fit:""}},[t("el-table-column",{attrs:{prop:"date",label:"日期"}}),e._v(" "),t("el-table-column",{attrs:{prop:"name",label:"姓名"}}),e._v(" "),t("el-table-column",{attrs:{prop:"address",label:"地址"}})],1),e._v(" "),e._l(["zhangsan","lisi"],function(a,l){return t("div",{key:l},[e._v("\n "+e._s(l)+e._s(a)+"\n ")])}),e._v(" "),t("el-form",[t("el-form-item",{attrs:{label:"ssss",required:e.fit}},[t("el-input",{model:{value:e.value,callback:function(a){e.value=a},expression:"value"}})],1)],1)],2)},staticRenderFns:[]},n=t("VU/8")({data:function(){return{fit:!0,value:"",tableData:[{date:"2016-05-02",name:"王小虎",address:"上海市普陀区金沙江路 1518 弄"},{date:"2016-05-04",name:"王小虎",address:"上海市普陀区金沙江路 1517 弄"},{date:"2016-05-01",name:"王小虎",address:"上海市普陀区金沙江路 1519 弄"},{date:"2016-05-03",name:"王小虎",address:"上海市普陀区金沙江路 1516 弄"}]}}},l,!1,null,null,null);a.default=n.exports}});
2 | //# sourceMappingURL=33.75ec3191321ed9bd9479.js.map
--------------------------------------------------------------------------------
/dist/static/js/35.eee041cce1bdedfd66fc.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([35],{Dh2E:function(e,l,a){"use strict";Object.defineProperty(l,"__esModule",{value:!0});var t={render:function(){var e=this,l=e.$createElement,a=e._self._c||l;return a("div",[a("c-select",{attrs:{multiple:"",filterable:"","allow-create":"","default-first-option":"",placeholder:"请选择文章标签"},model:{value:e.value10,callback:function(l){e.value10=l},expression:"value10"}})],1)},staticRenderFns:[]},n=a("VU/8")({data:function(){return{options5:[{value:"HTML",label:"HTML"},{value:"CSS",label:"CSS"},{value:"JavaScript",label:"JavaScript"}],value10:[]}},components:{}},t,!1,null,null,null);l.default=n.exports}});
2 | //# sourceMappingURL=35.eee041cce1bdedfd66fc.js.map
--------------------------------------------------------------------------------
/dist/static/js/36.6d0fa538e70a1f582013.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([36],{dcNB:function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a={render:function(){var t=this,e=t.$createElement,i=t._self._c||e;return t.item.children?i("el-submenu",{attrs:{index:t.item.name}},[i("template",{slot:"title"},[i("i",{staticClass:"fa",class:t.item.meta.icon,staticStyle:{"margin-right":"5px"}}),t._v(" "),i("span",{staticStyle:{display:"inline-block"}},[t._v(t._s(t.item.meta.name))])]),t._v(" "),t._l(t.item.children,function(e,a){return i("el-menu-item",{key:a,attrs:{index:e.name}},[i("i",{staticClass:"fa",class:e.meta.icon,staticStyle:{"margin-right":"5px"}}),t._v(" "),i("span",{staticStyle:{display:"inline-block",width:"140px"},attrs:{slot:"title"},slot:"title"},[t._v(t._s(e.meta.name))])])})],2):i("el-menu-item",{attrs:{index:t.item.name}},[i("i",{staticClass:"fa",class:t.item.meta.icon,staticStyle:{"margin-right":"5px"}}),t._v(" "),i("span",{staticStyle:{display:"inline-block"},attrs:{slot:"title"},slot:"title"},[t._v(t._s(t.item.meta.name))])])},staticRenderFns:[]},s=i("VU/8")({props:["item"]},a,!1,null,null,null);e.default=s.exports}});
2 | //# sourceMappingURL=36.6d0fa538e70a1f582013.js.map
--------------------------------------------------------------------------------
/dist/static/js/4.ce9e38e7f2112f155b1f.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([4],{Ionq:function(t,a,e){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var s={data:function(){return console.log("this.props.data:",this.data),{is_visible:!0,ddd:[{name:"zhangsan"}]}},props:["data","source"],mounted:function(){console.log("mounted"),console.log("data:",this.data),console.log("table_data:",this.table_data)},methods:{on_close:function(){this.$el.parentNode.removeChild(this.$el),this.$destroy()}}},i={render:function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("el-dialog",{attrs:{width:"800px",title:t.data._index+" "+t.data._id+" 详细信息",visible:t.is_visible},on:{"update:visible":function(a){t.is_visible=a},close:t.on_close}},[e("div",[e("span",{staticClass:"label"},[t._v("创建者:")]),t._v(t._s(t.data._source["S-creator"])+"\n ")]),t._v(" "),e("div",[e("span",{staticClass:"label"},[t._v("创建时间:")]),t._v(t._s(t.data._source["S-creation-time"])+"\n ")]),t._v(" "),e("div",[e("span",{staticClass:"label"},[t._v("最后修改人:")]),t._v(t._s(t.data._source["S-last-modified"])+"\n ")]),t._v(" "),t._l(t.data._source,function(a,s,i){return"S"!=s[0]?e("div",{key:i},[e("span",{staticClass:"label"},[t._v(t._s(s)+":")]),t._v(t._s(a)+"\n ")]):t._e()})],2)},staticRenderFns:[]};var n=e("VU/8")(s,i,!1,function(t){e("iHo7")},"data-v-ea1cd0a2",null);a.default=n.exports},iHo7:function(t,a){}});
2 | //# sourceMappingURL=4.ce9e38e7f2112f155b1f.js.map
--------------------------------------------------------------------------------
/dist/static/js/6.d51738118a2a31c6d848.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([6],{sMOm:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var a={render:function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",[t("el-input",{attrs:{placeholder:"请输入内容"},model:{value:e.input4,callback:function(n){e.input4=n},expression:"input4"}},[t("el-button",{attrs:{slot:"append",icon:"el-icon-search"},slot:"append"})],1)],1)},staticRenderFns:[]};var c=t("VU/8")({name:"Main"},a,!1,function(e){t("vGYZ")},"data-v-aa0f1f0c",null);n.default=c.exports},vGYZ:function(e,n){}});
2 | //# sourceMappingURL=6.d51738118a2a31c6d848.js.map
--------------------------------------------------------------------------------
/dist/static/js/9.d6738f4291fb740b9182.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([9],{"39DD":function(e,t){},QScC:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,l=n("bOdI"),s=n.n(l),o=n("IVjn"),a=(i={name:"Aside",data:function(){return{is_collapse:!0,api_url:window.location.protocol+"//"+window.location.host+"/api-docs"}},methods:function(){}},s()(i,"methods",{on_select:function(e,t){this.$router.push({name:e})}}),s()(i,"computed",{}),s()(i,"components",{CMenuItem:o.default}),i),c={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticStyle:{height:"100%",display:"flex"}},[n("el-menu",{staticClass:"el-menu-vertical-demo",staticStyle:{height:"100%",display:"inline-block"},attrs:{"default-active":e.$route.name,collapse:e.is_collapse},on:{select:e.on_select}},e._l(e.$store.state.filtered_menu,function(e,t){return n("c-menu-item",{key:t,attrs:{item:e}})})),e._v(" "),n("div",{staticStyle:{height:"100%",display:"flex","align-items":"center"}},[n("i",{staticClass:"fa fa-outdent",class:{"fa-rotate-180":e.is_collapse},staticStyle:{color:"#909399",cursor:"pointer"},on:{click:function(t){e.is_collapse=!e.is_collapse}}})])],1)},staticRenderFns:[]};var r=n("VU/8")(a,c,!1,function(e){n("39DD")},null,null);t.default=r.exports}});
2 | //# sourceMappingURL=9.d6738f4291fb740b9182.js.map
--------------------------------------------------------------------------------
/dist/static/rest_framework/css/default.css:
--------------------------------------------------------------------------------
1 |
2 | /* The navbar is fixed at >= 980px wide, so add padding to the body to prevent
3 | content running up underneath it. */
4 |
5 | h1 {
6 | font-weight: 300;
7 | }
8 |
9 | h2, h3 {
10 | font-weight: 300;
11 | }
12 |
13 | .resource-description, .response-info {
14 | margin-bottom: 2em;
15 | }
16 |
17 | .version:before {
18 | content: "v";
19 | opacity: 0.6;
20 | padding-right: 0.25em;
21 | }
22 |
23 | .version {
24 | font-size: 70%;
25 | }
26 |
27 | .format-option {
28 | font-family: Menlo, Consolas, "Andale Mono", "Lucida Console", monospace;
29 | }
30 |
31 | .button-form {
32 | float: right;
33 | margin-right: 1em;
34 | }
35 |
36 | td.nested {
37 | padding: 0 !important;
38 | }
39 |
40 | td.nested > table {
41 | margin: 0;
42 | }
43 |
44 | form select, form input, form textarea {
45 | width: 90%;
46 | }
47 |
48 | form select[multiple] {
49 | height: 150px;
50 | }
51 |
52 | /* To allow tooltips to work on disabled elements */
53 | .disabled-tooltip-shield {
54 | position: absolute;
55 | top: 0;
56 | right: 0;
57 | bottom: 0;
58 | left: 0;
59 | }
60 |
61 | .errorlist {
62 | margin-top: 0.5em;
63 | }
64 |
65 | pre {
66 | overflow: auto;
67 | word-wrap: normal;
68 | white-space: pre;
69 | font-size: 12px;
70 | }
71 |
72 | .page-header {
73 | border-bottom: none;
74 | padding-bottom: 0px;
75 | }
76 |
77 | #filtersModal form input[type=submit] {
78 | width: auto;
79 | }
80 |
81 | #filtersModal .modal-body h2 {
82 | margin-top: 0
83 | }
84 |
--------------------------------------------------------------------------------
/dist/static/rest_framework/css/prettify.css:
--------------------------------------------------------------------------------
1 | .com { color: #93a1a1; }
2 | .lit { color: #195f91; }
3 | .pun, .opn, .clo { color: #93a1a1; }
4 | .fun { color: #dc322f; }
5 | .str, .atv { color: #D14; }
6 | .kwd, .prettyprint .tag { color: #1e347b; }
7 | .typ, .atn, .dec, .var { color: teal; }
8 | .pln { color: #48484c; }
9 |
10 | .prettyprint {
11 | padding: 8px;
12 | background-color: #f7f7f9;
13 | border: 1px solid #e1e1e8;
14 | }
15 | .prettyprint.linenums {
16 | -webkit-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
17 | -moz-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
18 | box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
19 | }
20 |
21 | /* Specify class=linenums on a pre to get line numbering */
22 | ol.linenums {
23 | margin: 0 0 0 33px; /* IE indents via margin-left */
24 | }
25 | ol.linenums li {
26 | padding-left: 12px;
27 | color: #bebec5;
28 | line-height: 20px;
29 | text-shadow: 0 1px 0 #fff;
30 | }
--------------------------------------------------------------------------------
/dist/static/rest_framework/docs/css/jquery.json-view.min.css:
--------------------------------------------------------------------------------
1 | .json-view{position:relative}
2 | .json-view .collapser{width:20px;height:18px;display:block;position:absolute;left:-1.7em;top:-.2em;z-index:5;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAD1JREFUeNpiYGBgOADE%2F3Hgw0DM4IRHgSsDFOzFInmMAQnY49ONzZRjDFiADT7dMLALiE8y4AGW6LoBAgwAuIkf%2F%2FB7O9sAAAAASUVORK5CYII%3D);background-repeat:no-repeat;background-position:center center;opacity:.5;cursor:pointer}
3 | .json-view .collapsed{-ms-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-khtml-transform:rotate(-90deg);-webkit-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}
4 | .json-view .bl{display:block;padding-left:20px;margin-left:-20px;position:relative}
5 | .json-view{font-family:monospace}
6 | .json-view ul{list-style-type:none;padding-left:2em;border-left:1px dotted;margin:.3em}
7 | .json-view ul li{position:relative}
8 | .json-view .comments,.json-view .dots{display:none;-moz-user-select:none;-ms-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}
9 | .json-view .comments{padding-left:.8em;font-style:italic;color:#888}
10 | .json-view .bool,.json-view .null,.json-view .num,.json-view .undef{font-weight:700;color:#1A01CC}
11 | .json-view .str{color:#800}
--------------------------------------------------------------------------------
/dist/static/rest_framework/docs/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework/docs/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/dist/static/rest_framework/docs/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework/docs/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/dist/static/rest_framework/docs/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework/docs/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/dist/static/rest_framework/docs/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework/docs/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/dist/static/rest_framework/docs/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework/docs/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/dist/static/rest_framework/docs/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework/docs/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/dist/static/rest_framework/docs/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework/docs/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/dist/static/rest_framework/docs/img/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework/docs/img/favicon.ico
--------------------------------------------------------------------------------
/dist/static/rest_framework/docs/img/grid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework/docs/img/grid.png
--------------------------------------------------------------------------------
/dist/static/rest_framework/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/dist/static/rest_framework/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/dist/static/rest_framework/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/dist/static/rest_framework/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/dist/static/rest_framework/img/glyphicons-halflings-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework/img/glyphicons-halflings-white.png
--------------------------------------------------------------------------------
/dist/static/rest_framework/img/glyphicons-halflings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework/img/glyphicons-halflings.png
--------------------------------------------------------------------------------
/dist/static/rest_framework/img/grid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework/img/grid.png
--------------------------------------------------------------------------------
/dist/static/rest_framework/js/default.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function() {
2 | // JSON highlighting.
3 | prettyPrint();
4 |
5 | // Bootstrap tooltips.
6 | $('.js-tooltip').tooltip({
7 | delay: 1000,
8 | container: 'body'
9 | });
10 |
11 | // Deal with rounded tab styling after tab clicks.
12 | $('a[data-toggle="tab"]:first').on('shown', function(e) {
13 | $(e.target).parents('.tabbable').addClass('first-tab-active');
14 | });
15 |
16 | $('a[data-toggle="tab"]:not(:first)').on('shown', function(e) {
17 | $(e.target).parents('.tabbable').removeClass('first-tab-active');
18 | });
19 |
20 | $('a[data-toggle="tab"]').click(function() {
21 | document.cookie = "tabstyle=" + this.name + "; path=/";
22 | });
23 |
24 | // Store tab preference in cookies & display appropriate tab on load.
25 | var selectedTab = null;
26 | var selectedTabName = getCookie('tabstyle');
27 |
28 | if (selectedTabName) {
29 | selectedTabName = selectedTabName.replace(/[^a-z-]/g, '');
30 | }
31 |
32 | if (selectedTabName) {
33 | selectedTab = $('.form-switcher a[name=' + selectedTabName + ']');
34 | }
35 |
36 | if (selectedTab && selectedTab.length > 0) {
37 | // Display whichever tab is selected.
38 | selectedTab.tab('show');
39 | } else {
40 | // If no tab selected, display rightmost tab.
41 | $('.form-switcher a:first').tab('show');
42 | }
43 |
44 | $(window).load(function() {
45 | $('#errorModal').modal('show');
46 | });
47 | });
48 |
--------------------------------------------------------------------------------
/dist/static/rest_framework_docs/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework_docs/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/dist/static/rest_framework_docs/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework_docs/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/dist/static/rest_framework_docs/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework_docs/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/dist/static/rest_framework_docs/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework_docs/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/dist/static/rest_framework_docs/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework_docs/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/dist/static/rest_framework_docs/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework_docs/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/dist/static/rest_framework_docs/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework_docs/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/dist/static/rest_framework_docs/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework_docs/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/dist/static/rest_framework_docs/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/dist/static/rest_framework_docs/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/django-static/admin/css/dashboard.css:
--------------------------------------------------------------------------------
1 | /* DASHBOARD */
2 |
3 | .dashboard .module table th {
4 | width: 100%;
5 | }
6 |
7 | .dashboard .module table td {
8 | white-space: nowrap;
9 | }
10 |
11 | .dashboard .module table td a {
12 | display: block;
13 | padding-right: .6em;
14 | }
15 |
16 | /* RECENT ACTIONS MODULE */
17 |
18 | .module ul.actionlist {
19 | margin-left: 0;
20 | }
21 |
22 | ul.actionlist li {
23 | list-style-type: none;
24 | overflow: hidden;
25 | text-overflow: ellipsis;
26 | -o-text-overflow: ellipsis;
27 | }
28 |
--------------------------------------------------------------------------------
/django-static/admin/css/fonts.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'Roboto';
3 | src: url('../fonts/Roboto-Bold-webfont.woff');
4 | font-weight: 700;
5 | font-style: normal;
6 | }
7 |
8 | @font-face {
9 | font-family: 'Roboto';
10 | src: url('../fonts/Roboto-Regular-webfont.woff');
11 | font-weight: 400;
12 | font-style: normal;
13 | }
14 |
15 | @font-face {
16 | font-family: 'Roboto';
17 | src: url('../fonts/Roboto-Light-webfont.woff');
18 | font-weight: 300;
19 | font-style: normal;
20 | }
21 |
--------------------------------------------------------------------------------
/django-static/admin/fonts/README.txt:
--------------------------------------------------------------------------------
1 | Roboto webfont source: https://www.google.com/fonts/specimen/Roboto
2 | Weights used in this project: Light (300), Regular (400), Bold (700)
3 |
--------------------------------------------------------------------------------
/django-static/admin/fonts/Roboto-Bold-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/admin/fonts/Roboto-Bold-webfont.woff
--------------------------------------------------------------------------------
/django-static/admin/fonts/Roboto-Light-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/admin/fonts/Roboto-Light-webfont.woff
--------------------------------------------------------------------------------
/django-static/admin/fonts/Roboto-Regular-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/admin/fonts/Roboto-Regular-webfont.woff
--------------------------------------------------------------------------------
/django-static/admin/img/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Code Charm Ltd
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/django-static/admin/img/README.txt:
--------------------------------------------------------------------------------
1 | All icons are taken from Font Awesome (http://fontawesome.io/) project.
2 | The Font Awesome font is licensed under the SIL OFL 1.1:
3 | - http://scripts.sil.org/OFL
4 |
5 | SVG icons source: https://github.com/encharm/Font-Awesome-SVG-PNG
6 | Font-Awesome-SVG-PNG is licensed under the MIT license (see file license
7 | in current folder).
8 |
--------------------------------------------------------------------------------
/django-static/admin/img/calendar-icons.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/django-static/admin/img/gis/move_vertex_off.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/django-static/admin/img/gis/move_vertex_on.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/django-static/admin/img/icon-addlink.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/django-static/admin/img/icon-alert.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/django-static/admin/img/icon-calendar.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/django-static/admin/img/icon-changelink.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/django-static/admin/img/icon-clock.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/django-static/admin/img/icon-deletelink.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/django-static/admin/img/icon-no.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/django-static/admin/img/icon-unknown-alt.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/django-static/admin/img/icon-unknown.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/django-static/admin/img/icon-yes.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/django-static/admin/img/inline-delete.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/django-static/admin/img/search.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/django-static/admin/img/sorting-icons.svg:
--------------------------------------------------------------------------------
1 |
20 |
--------------------------------------------------------------------------------
/django-static/admin/img/tooltag-add.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/django-static/admin/img/tooltag-arrowright.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/django-static/admin/js/cancel.js:
--------------------------------------------------------------------------------
1 | (function($) {
2 | 'use strict';
3 | $(function() {
4 | $('.cancel-link').click(function(e) {
5 | e.preventDefault();
6 | window.history.back();
7 | });
8 | });
9 | })(django.jQuery);
10 |
--------------------------------------------------------------------------------
/django-static/admin/js/change_form.js:
--------------------------------------------------------------------------------
1 | /*global showAddAnotherPopup, showRelatedObjectLookupPopup showRelatedObjectPopup updateRelatedObjectLinks*/
2 |
3 | (function($) {
4 | 'use strict';
5 | $(document).ready(function() {
6 | var modelName = $('#django-admin-form-add-constants').data('modelName');
7 | $('body').on('click', '.add-another', function(e) {
8 | e.preventDefault();
9 | var event = $.Event('django:add-another-related');
10 | $(this).trigger(event);
11 | if (!event.isDefaultPrevented()) {
12 | showAddAnotherPopup(this);
13 | }
14 | });
15 |
16 | if (modelName) {
17 | $('form#' + modelName + '_form :input:visible:enabled:first').focus();
18 | }
19 | });
20 | })(django.jQuery);
21 |
--------------------------------------------------------------------------------
/django-static/admin/js/collapse.js:
--------------------------------------------------------------------------------
1 | /*global gettext*/
2 | (function($) {
3 | 'use strict';
4 | $(document).ready(function() {
5 | // Add anchor tag for Show/Hide link
6 | $("fieldset.collapse").each(function(i, elem) {
7 | // Don't hide if fields in this fieldset have errors
8 | if ($(elem).find("div.errors").length === 0) {
9 | $(elem).addClass("collapsed").find("h2").first().append(' (' + gettext("Show") +
11 | ')');
12 | }
13 | });
14 | // Add toggle to anchor tag
15 | $("fieldset.collapse a.collapse-toggle").click(function(ev) {
16 | if ($(this).closest("fieldset").hasClass("collapsed")) {
17 | // Show
18 | $(this).text(gettext("Hide")).closest("fieldset").removeClass("collapsed").trigger("show.fieldset", [$(this).attr("id")]);
19 | } else {
20 | // Hide
21 | $(this).text(gettext("Show")).closest("fieldset").addClass("collapsed").trigger("hide.fieldset", [$(this).attr("id")]);
22 | }
23 | return false;
24 | });
25 | });
26 | })(django.jQuery);
27 |
--------------------------------------------------------------------------------
/django-static/admin/js/collapse.min.js:
--------------------------------------------------------------------------------
1 | (function(a){a(document).ready(function(){a("fieldset.collapse").each(function(b,c){0===a(c).find("div.errors").length&&a(c).addClass("collapsed").find("h2").first().append(' ('+gettext("Show")+")")});a("fieldset.collapse a.collapse-toggle").click(function(b){a(this).closest("fieldset").hasClass("collapsed")?a(this).text(gettext("Hide")).closest("fieldset").removeClass("collapsed").trigger("show.fieldset",[a(this).attr("id")]):a(this).text(gettext("Show")).closest("fieldset").addClass("collapsed").trigger("hide.fieldset",
2 | [a(this).attr("id")]);return!1})})})(django.jQuery);
3 |
--------------------------------------------------------------------------------
/django-static/admin/js/jquery.init.js:
--------------------------------------------------------------------------------
1 | /*global django:true, jQuery:false*/
2 | /* Puts the included jQuery into our own namespace using noConflict and passing
3 | * it 'true'. This ensures that the included jQuery doesn't pollute the global
4 | * namespace (i.e. this preserves pre-existing values for both window.$ and
5 | * window.jQuery).
6 | */
7 | var django = django || {};
8 | django.jQuery = jQuery.noConflict(true);
9 |
--------------------------------------------------------------------------------
/django-static/admin/js/popup_response.js:
--------------------------------------------------------------------------------
1 | /*global opener */
2 | (function() {
3 | 'use strict';
4 | var initData = JSON.parse(document.getElementById('django-admin-popup-response-constants').dataset.popupResponse);
5 | switch(initData.action) {
6 | case 'change':
7 | opener.dismissChangeRelatedObjectPopup(window, initData.value, initData.obj, initData.new_value);
8 | break;
9 | case 'delete':
10 | opener.dismissDeleteRelatedObjectPopup(window, initData.value);
11 | break;
12 | default:
13 | opener.dismissAddRelatedObjectPopup(window, initData.value, initData.obj);
14 | break;
15 | }
16 | })();
17 |
--------------------------------------------------------------------------------
/django-static/admin/js/prepopulate.min.js:
--------------------------------------------------------------------------------
1 | (function(c){c.fn.prepopulate=function(e,f,g){return this.each(function(){var a=c(this),b=function(){if(!a.data("_changed")){var b=[];c.each(e,function(a,d){d=c(d);0
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/django-static/rest_framework/css/prettify.css:
--------------------------------------------------------------------------------
1 | .com { color: #93a1a1; }
2 | .lit { color: #195f91; }
3 | .pun, .opn, .clo { color: #93a1a1; }
4 | .fun { color: #dc322f; }
5 | .str, .atv { color: #D14; }
6 | .kwd, .prettyprint .tag { color: #1e347b; }
7 | .typ, .atn, .dec, .var { color: teal; }
8 | .pln { color: #48484c; }
9 |
10 | .prettyprint {
11 | padding: 8px;
12 | background-color: #f7f7f9;
13 | border: 1px solid #e1e1e8;
14 | }
15 | .prettyprint.linenums {
16 | -webkit-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
17 | -moz-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
18 | box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
19 | }
20 |
21 | /* Specify class=linenums on a pre to get line numbering */
22 | ol.linenums {
23 | margin: 0 0 0 33px; /* IE indents via margin-left */
24 | }
25 | ol.linenums li {
26 | padding-left: 12px;
27 | color: #bebec5;
28 | line-height: 20px;
29 | text-shadow: 0 1px 0 #fff;
30 | }
--------------------------------------------------------------------------------
/django-static/rest_framework/docs/css/jquery.json-view.min.css:
--------------------------------------------------------------------------------
1 | .json-view{position:relative}
2 | .json-view .collapser{width:20px;height:18px;display:block;position:absolute;left:-1.7em;top:-.2em;z-index:5;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAD1JREFUeNpiYGBgOADE%2F3Hgw0DM4IRHgSsDFOzFInmMAQnY49ONzZRjDFiADT7dMLALiE8y4AGW6LoBAgwAuIkf%2F%2FB7O9sAAAAASUVORK5CYII%3D);background-repeat:no-repeat;background-position:center center;opacity:.5;cursor:pointer}
3 | .json-view .collapsed{-ms-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-khtml-transform:rotate(-90deg);-webkit-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}
4 | .json-view .bl{display:block;padding-left:20px;margin-left:-20px;position:relative}
5 | .json-view{font-family:monospace}
6 | .json-view ul{list-style-type:none;padding-left:2em;border-left:1px dotted;margin:.3em}
7 | .json-view ul li{position:relative}
8 | .json-view .comments,.json-view .dots{display:none;-moz-user-select:none;-ms-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}
9 | .json-view .comments{padding-left:.8em;font-style:italic;color:#888}
10 | .json-view .bool,.json-view .null,.json-view .num,.json-view .undef{font-weight:700;color:#1A01CC}
11 | .json-view .str{color:#800}
--------------------------------------------------------------------------------
/django-static/rest_framework/docs/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework/docs/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/django-static/rest_framework/docs/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework/docs/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/django-static/rest_framework/docs/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework/docs/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/django-static/rest_framework/docs/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework/docs/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/django-static/rest_framework/docs/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework/docs/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/django-static/rest_framework/docs/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework/docs/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/django-static/rest_framework/docs/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework/docs/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/django-static/rest_framework/docs/img/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework/docs/img/favicon.ico
--------------------------------------------------------------------------------
/django-static/rest_framework/docs/img/grid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework/docs/img/grid.png
--------------------------------------------------------------------------------
/django-static/rest_framework/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/django-static/rest_framework/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/django-static/rest_framework/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/django-static/rest_framework/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/django-static/rest_framework/img/glyphicons-halflings-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework/img/glyphicons-halflings-white.png
--------------------------------------------------------------------------------
/django-static/rest_framework/img/glyphicons-halflings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework/img/glyphicons-halflings.png
--------------------------------------------------------------------------------
/django-static/rest_framework/img/grid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework/img/grid.png
--------------------------------------------------------------------------------
/django-static/rest_framework/js/default.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function() {
2 | // JSON highlighting.
3 | prettyPrint();
4 |
5 | // Bootstrap tooltips.
6 | $('.js-tooltip').tooltip({
7 | delay: 1000,
8 | container: 'body'
9 | });
10 |
11 | // Deal with rounded tab styling after tab clicks.
12 | $('a[data-toggle="tab"]:first').on('shown', function(e) {
13 | $(e.target).parents('.tabbable').addClass('first-tab-active');
14 | });
15 |
16 | $('a[data-toggle="tab"]:not(:first)').on('shown', function(e) {
17 | $(e.target).parents('.tabbable').removeClass('first-tab-active');
18 | });
19 |
20 | $('a[data-toggle="tab"]').click(function() {
21 | document.cookie = "tabstyle=" + this.name + "; path=/";
22 | });
23 |
24 | // Store tab preference in cookies & display appropriate tab on load.
25 | var selectedTab = null;
26 | var selectedTabName = getCookie('tabstyle');
27 |
28 | if (selectedTabName) {
29 | selectedTabName = selectedTabName.replace(/[^a-z-]/g, '');
30 | }
31 |
32 | if (selectedTabName) {
33 | selectedTab = $('.form-switcher a[name=' + selectedTabName + ']');
34 | }
35 |
36 | if (selectedTab && selectedTab.length > 0) {
37 | // Display whichever tab is selected.
38 | selectedTab.tab('show');
39 | } else {
40 | // If no tab selected, display rightmost tab.
41 | $('.form-switcher a:first').tab('show');
42 | }
43 |
44 | $(window).load(function() {
45 | $('#errorModal').modal('show');
46 | });
47 | });
48 |
--------------------------------------------------------------------------------
/django-static/rest_framework_docs/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework_docs/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/django-static/rest_framework_docs/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework_docs/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/django-static/rest_framework_docs/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework_docs/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/django-static/rest_framework_docs/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework_docs/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/django-static/rest_framework_docs/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework_docs/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/django-static/rest_framework_docs/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework_docs/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/django-static/rest_framework_docs/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework_docs/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/django-static/rest_framework_docs/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework_docs/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/django-static/rest_framework_docs/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/django-static/rest_framework_docs/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/images/cmdb-0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/images/cmdb-0.png
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | CMDB
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/k8s-templates/config_maps/dev/nginx.conf:
--------------------------------------------------------------------------------
1 | # For more information on configuration, see:
2 | # * Official English Documentation: http://nginx.org/en/docs/
3 | # * Official Russian Documentation: http://nginx.org/ru/docs/
4 |
5 | user nginx;
6 | worker_processes auto;
7 | error_log /var/log/nginx/error.log;
8 | pid /run/nginx.pid;
9 | daemon off;
10 |
11 | # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
12 | include /usr/share/nginx/modules/*.conf;
13 |
14 | events {
15 | worker_connections 1024;
16 | }
17 |
18 | http {
19 | log_format main '$remote_addr - $remote_user [$time_local] "$request" '
20 | '$status $body_bytes_sent "$http_referer" '
21 | '"$http_user_agent" "$http_x_forwarded_for"';
22 |
23 | access_log /var/log/nginx/access.log main;
24 |
25 | sendfile on;
26 | tcp_nopush on;
27 | tcp_nodelay on;
28 | keepalive_timeout 65;
29 | types_hash_max_size 2048;
30 |
31 | include /etc/nginx/mime.types;
32 | default_type application/octet-stream;
33 |
34 | server {
35 | listen 80 default_server;
36 | client_max_body_size 20m;
37 |
38 | location /api {
39 | include /etc/nginx/uwsgi_params;
40 | uwsgi_pass dev-cmdb:8091;
41 | }
42 |
43 | location / {
44 | index index.html;
45 | root /opt/dist;
46 | }
47 |
48 | location /admin {
49 | include /etc/nginx/uwsgi_params;
50 | uwsgi_pass dev-cmdb:8091;
51 | }
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/package_upload.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | #coding: utf-8
3 |
4 | import subprocess
5 | import datetime
6 |
7 | def run_cmd(cmd):
8 | code = subprocess.call(cmd, shell=True)
9 | if code > 1:
10 | raise Exception("'{}' 执行失败,返回code:{}".format(cmd, code))
11 |
12 | def get_current_branch():
13 | p = subprocess.Popen("git branch -a", shell=True, stdout=subprocess.PIPE,
14 | stderr=subprocess.PIPE)
15 | out, err = p.communicate()
16 | rows = out.decode().split("\n")
17 | for row in rows:
18 | if row[0] == "*":
19 | return row.split("* ")[1]
20 |
21 |
22 | if __name__ == '__main__':
23 | dt = datetime.datetime.now()
24 | msg = dt.strftime("%Y%m%d%H%M")
25 | current_branch = get_current_branch()
26 |
27 | run_cmd("npm run build")
28 | run_cmd("cp -r django-static/* dist/static")
29 | run_cmd("git add *")
30 | run_cmd("git commit -m {}".format(msg))
31 | run_cmd("git push origin {}".format(current_branch))
32 |
--------------------------------------------------------------------------------
/src/App 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
14 |
15 |
28 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
14 |
15 |
28 |
--------------------------------------------------------------------------------
/src/Blank 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/Blank.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/assets/logo 2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/src/assets/logo 2.png
--------------------------------------------------------------------------------
/src/assets/logo-new 2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/src/assets/logo-new 2.png
--------------------------------------------------------------------------------
/src/assets/logo-new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/src/assets/logo-new.png
--------------------------------------------------------------------------------
/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/src/assets/logo.png
--------------------------------------------------------------------------------
/src/c-test/html-2 2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | test-2
6 |
7 |
8 |
9 | zhang
10 | zhang
11 | - zhang
12 | - zhang
13 | - zhang
14 |
15 |
16 | - zssssssddjd
17 | - zddjd
18 | - zddjd
19 | - zddjd
20 | - zddjd
21 | - zddjd
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/src/c-test/html-2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | test-2
6 |
7 |
8 |
9 | zhang
10 | zhang
11 | - zhang
12 | - zhang
13 | - zhang
14 |
15 |
16 | - zssssssddjd
17 | - zddjd
18 | - zddjd
19 | - zddjd
20 | - zddjd
21 | - zddjd
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/src/c-test/test-1 2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | test-1
6 |
39 |
40 |
41 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/src/c-test/test-1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | test-1
6 |
39 |
40 |
41 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/src/c-test/test-4 2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Test 4
6 |
41 |
42 |
43 |
44 |
三列布局1
45 |
one
46 |
three
47 |
two
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/src/c-test/test-4.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Test 4
6 |
41 |
42 |
43 |
44 |
三列布局1
45 |
one
46 |
three
47 |
two
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/src/c-test/test-5 2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | test-5
6 |
7 |
8 |
9 |
123
10 |
11 |
njgnjfngj
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/c-test/test-5.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | test-5
6 |
7 |
8 |
9 |
123
10 |
11 |
njgnjfngj
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/c-test/test-6 2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Test 6
6 |
7 |
8 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/c-test/test-6.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Test 6
6 |
7 |
8 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/c-test/test-7 2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | test-7
6 |
7 |
8 | sss
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/c-test/test-7.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | test-7
6 |
7 |
8 | sss
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/components/CBox 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
10 |
11 |
14 |
--------------------------------------------------------------------------------
/src/components/CBox.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
10 |
11 |
14 |
--------------------------------------------------------------------------------
/src/components/CTooltipButton 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
39 |
40 |
42 |
--------------------------------------------------------------------------------
/src/components/CTooltipButton.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
39 |
40 |
42 |
--------------------------------------------------------------------------------
/src/components/CartPanel 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
{{ name }}
9 |
{{ count }}
10 |
11 |
12 |
13 |
14 |
15 |
43 |
44 |
46 |
--------------------------------------------------------------------------------
/src/components/CartPanel.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
{{ name }}
9 |
{{ count }}
10 |
11 |
12 |
13 |
14 |
15 |
43 |
44 |
46 |
--------------------------------------------------------------------------------
/src/components/DateFilter 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ label }}
4 |
11 |
12 |
13 |
14 |
15 |
44 |
45 |
48 |
--------------------------------------------------------------------------------
/src/components/DateFilter.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ label }}
4 |
11 |
12 |
13 |
14 |
15 |
44 |
45 |
48 |
--------------------------------------------------------------------------------
/src/components/Login 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 | 这是一段信息
8 |
12 |
13 |
14 |
15 |
33 |
34 |
37 |
--------------------------------------------------------------------------------
/src/components/Login.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 | 这是一段信息
8 |
12 |
13 |
14 |
15 |
33 |
34 |
37 |
--------------------------------------------------------------------------------
/src/components/NumberRangeFilter 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ label }}:
4 |
12 |
13 | -
14 |
22 |
23 |
24 |
25 |
26 |
27 |
53 |
54 |
57 |
--------------------------------------------------------------------------------
/src/components/NumberRangeFilter.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ label }}:
4 |
12 |
13 | -
14 |
22 |
23 |
24 |
25 |
26 |
27 |
53 |
54 |
57 |
--------------------------------------------------------------------------------
/src/components/OptionBar 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
15 |
16 |
24 |
--------------------------------------------------------------------------------
/src/components/OptionBar.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
15 |
16 |
24 |
--------------------------------------------------------------------------------
/src/components/Pagination 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
12 |
13 |
50 |
51 |
54 |
--------------------------------------------------------------------------------
/src/components/Pagination.vue:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
12 |
13 |
50 |
51 |
54 |
--------------------------------------------------------------------------------
/src/components/Search 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 | 搜索
8 |
9 |
10 |
11 |
35 |
36 |
39 |
--------------------------------------------------------------------------------
/src/components/Search.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 | 搜索
8 |
9 |
10 |
11 |
35 |
36 |
39 |
--------------------------------------------------------------------------------
/src/components/app/user-mgmt/ResetPassword 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | 提交
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/components/app/user-mgmt/ResetPassword.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | 提交
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/components/app/user/Create 2.vue:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/src/components/app/user/Create 2.vue
--------------------------------------------------------------------------------
/src/components/app/user/Create.vue:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/src/components/app/user/Create.vue
--------------------------------------------------------------------------------
/src/components/c-select/option-group 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | - {{ label }}
4 | -
5 |
8 |
9 |
10 |
11 |
12 |
61 |
--------------------------------------------------------------------------------
/src/components/c-select/option-group.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | - {{ label }}
4 | -
5 |
8 |
9 |
10 |
11 |
12 |
61 |
--------------------------------------------------------------------------------
/src/components/c-select/scrollbar/index 2.js:
--------------------------------------------------------------------------------
1 | import Scrollbar from './src/main';
2 |
3 | /* istanbul ignore next */
4 | Scrollbar.install = function(Vue) {
5 | Vue.component(Scrollbar.name, Scrollbar);
6 | };
7 |
8 | export default Scrollbar;
9 |
--------------------------------------------------------------------------------
/src/components/c-select/scrollbar/index.js:
--------------------------------------------------------------------------------
1 | import Scrollbar from './src/main';
2 |
3 | /* istanbul ignore next */
4 | Scrollbar.install = function(Vue) {
5 | Vue.component(Scrollbar.name, Scrollbar);
6 | };
7 |
8 | export default Scrollbar;
9 |
--------------------------------------------------------------------------------
/src/components/c-select/scrollbar/src/util 2.js:
--------------------------------------------------------------------------------
1 | export const BAR_MAP = {
2 | vertical: {
3 | offset: 'offsetHeight',
4 | scroll: 'scrollTop',
5 | scrollSize: 'scrollHeight',
6 | size: 'height',
7 | key: 'vertical',
8 | axis: 'Y',
9 | client: 'clientY',
10 | direction: 'top'
11 | },
12 | horizontal: {
13 | offset: 'offsetWidth',
14 | scroll: 'scrollLeft',
15 | scrollSize: 'scrollWidth',
16 | size: 'width',
17 | key: 'horizontal',
18 | axis: 'X',
19 | client: 'clientX',
20 | direction: 'left'
21 | }
22 | };
23 |
24 | export function renderThumbStyle({ move, size, bar }) {
25 | const style = {};
26 | const translate = `translate${bar.axis}(${ move }%)`;
27 |
28 | style[bar.size] = size;
29 | style.transform = translate;
30 | style.msTransform = translate;
31 | style.webkitTransform = translate;
32 |
33 | return style;
34 | };
35 |
--------------------------------------------------------------------------------
/src/components/c-select/scrollbar/src/util.js:
--------------------------------------------------------------------------------
1 | export const BAR_MAP = {
2 | vertical: {
3 | offset: 'offsetHeight',
4 | scroll: 'scrollTop',
5 | scrollSize: 'scrollHeight',
6 | size: 'height',
7 | key: 'vertical',
8 | axis: 'Y',
9 | client: 'clientY',
10 | direction: 'top'
11 | },
12 | horizontal: {
13 | offset: 'offsetWidth',
14 | scroll: 'scrollLeft',
15 | scrollSize: 'scrollWidth',
16 | size: 'width',
17 | key: 'horizontal',
18 | axis: 'X',
19 | client: 'clientX',
20 | direction: 'left'
21 | }
22 | };
23 |
24 | export function renderThumbStyle({ move, size, bar }) {
25 | const style = {};
26 | const translate = `translate${bar.axis}(${ move }%)`;
27 |
28 | style[bar.size] = size;
29 | style.transform = translate;
30 | style.msTransform = translate;
31 | style.webkitTransform = translate;
32 |
33 | return style;
34 | };
35 |
--------------------------------------------------------------------------------
/src/config/dev 2.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | export default {
4 | base_url: "http://localhost:8000/api/v1/",
5 | }
6 |
--------------------------------------------------------------------------------
/src/config/dev.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | export default {
4 | base_url: "http://localhost:8000/api/v1/",
5 | }
6 |
--------------------------------------------------------------------------------
/src/config/index 2.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | import dev from "./dev"
4 | import pro from "./pro"
5 |
6 | console.log("process.env.NODE_ENV: ", process.env.NODE_ENV)
7 |
8 | const export_config = Object.assign({}, dev,process.env.NODE_ENV === "production" ? pro : {})
9 |
10 | export default export_config
11 |
--------------------------------------------------------------------------------
/src/config/index.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | import dev from "./dev"
4 | import pro from "./pro"
5 |
6 | console.log("process.env.NODE_ENV: ", process.env.NODE_ENV)
7 |
8 | const export_config = Object.assign({}, dev,process.env.NODE_ENV === "production" ? pro : {})
9 |
10 | export default export_config
11 |
--------------------------------------------------------------------------------
/src/config/pro 2.js:
--------------------------------------------------------------------------------
1 |
2 | export default {
3 | base_url: window.location.protocol+"//"+window.location.host+"/api/v1/"
4 | }
5 |
--------------------------------------------------------------------------------
/src/config/pro.js:
--------------------------------------------------------------------------------
1 |
2 | export default {
3 | base_url: window.location.protocol+"//"+window.location.host+"/api/v1/"
4 | }
5 |
--------------------------------------------------------------------------------
/src/router/_import_development 2.js:
--------------------------------------------------------------------------------
1 | module.exports = file => require('@/views/' + file + '.vue').default // vue-loader at least v13.0.0+
2 |
--------------------------------------------------------------------------------
/src/router/_import_development.js:
--------------------------------------------------------------------------------
1 | module.exports = file => require('@/views/' + file + '.vue').default // vue-loader at least v13.0.0+
2 |
--------------------------------------------------------------------------------
/src/router/_import_production 2.js:
--------------------------------------------------------------------------------
1 | module.exports = file => () => import('@/views/' + file + '.vue')
2 |
--------------------------------------------------------------------------------
/src/router/_import_production.js:
--------------------------------------------------------------------------------
1 | module.exports = file => () => import('@/views/' + file + '.vue')
2 |
--------------------------------------------------------------------------------
/src/router/menu 2.js:
--------------------------------------------------------------------------------
1 |
2 | const _import = require('./_import_' + process.env.NODE_ENV)
3 |
4 | export const menu = [
5 | {
6 | path: "data",
7 | name: "data",
8 | component: _import("display-data/DisplayData"),
9 | meta: {
10 | name: " 主 页",
11 | icon: "fa-home",
12 | permissions: []
13 | }
14 | },
15 | {
16 | path: "deleted",
17 | name: "deleted",
18 | component: _import("deleted-display/DisplayData"),
19 | meta: {
20 | name: " 已删除",
21 | icon: "fa-recycle",
22 | permissions: []
23 | }
24 | },
25 | {
26 | path: "table-mgmt",
27 | name: "table-mgmt",
28 | component: _import("table-mgmt/TableMgmt"),
29 | meta: {
30 | name: " 表管理",
31 | icon: "fa-table",
32 | permissions: ["admin"]
33 | }
34 | },
35 | {
36 | path: "user-mgmt",
37 | name: "user-mgmt",
38 | component: _import("user-mgmt/UserMgmt"),
39 | meta: {
40 | name: " 用户管理",
41 | icon: "fa-users",
42 | permissions: ["admin"]
43 | }
44 | }
45 | ]
--------------------------------------------------------------------------------
/src/router/menu.js:
--------------------------------------------------------------------------------
1 |
2 | const _import = require('./_import_' + process.env.NODE_ENV)
3 |
4 | export const menu = [
5 | {
6 | path: "data",
7 | name: "data",
8 | component: _import("display-data/DisplayData"),
9 | meta: {
10 | name: " 主 页",
11 | icon: "fa-home",
12 | permissions: []
13 | }
14 | },
15 | {
16 | path: "deleted",
17 | name: "deleted",
18 | component: _import("deleted-display/DisplayData"),
19 | meta: {
20 | name: " 已删除",
21 | icon: "fa-recycle",
22 | permissions: []
23 | }
24 | },
25 | {
26 | path: "table-mgmt",
27 | name: "table-mgmt",
28 | component: _import("table-mgmt/TableMgmt"),
29 | meta: {
30 | name: " 表管理",
31 | icon: "fa-table",
32 | permissions: ["admin"]
33 | }
34 | },
35 | {
36 | path: "user-mgmt",
37 | name: "user-mgmt",
38 | component: _import("user-mgmt/UserMgmt"),
39 | meta: {
40 | name: " 用户管理",
41 | icon: "fa-users",
42 | permissions: ["admin"]
43 | }
44 | }
45 | ]
--------------------------------------------------------------------------------
/src/store/cookie 2.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | var set_cookie = (name, value, valid_time=1) => {
4 | var date = new Date()
5 | date.setTime(date.getTime()+valid_time*24*3600*1000)
6 | document.cookie = name+"="+value+";expires="+date.toString()
7 | }
8 |
9 | var get_cookie = (name) => {
10 | var cookies = document.cookie.split("; ")
11 | for(let i of cookies){
12 | var name_value = i.split("=")
13 | if(name==name_value[0]){
14 | return name_value[1]
15 | }
16 | }
17 | }
18 |
19 | export default {
20 | set_cookie,
21 | get_cookie
22 | }
23 |
--------------------------------------------------------------------------------
/src/store/cookie.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | var set_cookie = (name, value, valid_time=1) => {
4 | var date = new Date()
5 | date.setTime(date.getTime()+valid_time*24*3600*1000)
6 | document.cookie = name+"="+value+";expires="+date.toString()
7 | }
8 |
9 | var get_cookie = (name) => {
10 | var cookies = document.cookie.split("; ")
11 | for(let i of cookies){
12 | var name_value = i.split("=")
13 | if(name==name_value[0]){
14 | return name_value[1]
15 | }
16 | }
17 | }
18 |
19 | export default {
20 | set_cookie,
21 | get_cookie
22 | }
23 |
--------------------------------------------------------------------------------
/src/store/index 2.js:
--------------------------------------------------------------------------------
1 | import Vue from "vue"
2 | import Vuex from "vuex"
3 | import axios from "axios"
4 |
5 | import cookie from "./cookie"
6 | import * as mutation from "./mutation"
7 |
8 | Vue.use(Vuex)
9 |
10 | // var is_logged = false
11 | // if(cookie.get_cookie("token")){
12 | // console.log("token:"+cookie.get_cookie("token"))
13 | // is_logged = true
14 | // console.log("is_logged:", is_logged)
15 | // }
16 |
17 | const store = new Vuex.Store({
18 | state: {
19 | count: 0,
20 | token: localStorage.getItem("token")?localStorage.getItem("token"): null,
21 | username: cookie.get_cookie("username"),
22 | loading_num: 0,
23 | user_info: {},
24 | cancel_token: axios.CancelToken.source(),
25 | page_size: 0,
26 | next: "root",
27 | next_path: "/",
28 | filtered_menu: [],
29 | user_permissions: []
30 | },
31 | mutations: mutation
32 | })
33 |
34 | export default store
35 |
--------------------------------------------------------------------------------
/src/store/index.js:
--------------------------------------------------------------------------------
1 | import Vue from "vue"
2 | import Vuex from "vuex"
3 | import axios from "axios"
4 |
5 | import cookie from "./cookie"
6 | import * as mutation from "./mutation"
7 |
8 | Vue.use(Vuex)
9 |
10 | // var is_logged = false
11 | // if(cookie.get_cookie("token")){
12 | // console.log("token:"+cookie.get_cookie("token"))
13 | // is_logged = true
14 | // console.log("is_logged:", is_logged)
15 | // }
16 |
17 | const store = new Vuex.Store({
18 | state: {
19 | count: 0,
20 | token: localStorage.getItem("token")?localStorage.getItem("token"): null,
21 | username: cookie.get_cookie("username"),
22 | loading_num: 0,
23 | user_info: {},
24 | cancel_token: axios.CancelToken.source(),
25 | page_size: 0,
26 | next: "root",
27 | next_path: "/",
28 | filtered_menu: [],
29 | user_permissions: []
30 | },
31 | mutations: mutation
32 | })
33 |
34 | export default store
35 |
--------------------------------------------------------------------------------
/src/store/mutation 2.js:
--------------------------------------------------------------------------------
1 | import axios from "axios"
2 | import cookie from "./cookie"
3 |
4 | export function increment(state) {
5 | state.count++
6 | }
7 | export function logout(state) {
8 | // state.is_logged = false
9 | // cookie.set_cookie("token", "")
10 | // cookie.set_cookie("username", "")
11 | // state.token = ""
12 | // state.username = ""
13 | state.user_info = {}
14 | state.token = null
15 | localStorage.removeItem("token")
16 | }
17 |
18 | export const login = (state, data) => {
19 | state.token = "JWT " + data.token
20 | }
21 |
22 | export function reset_canceltoken(state) {
23 | state.cancel_token.cancel("跳转取消")
24 | state.cancel_token = axios.CancelToken.source()
25 | }
26 |
--------------------------------------------------------------------------------
/src/store/mutation.js:
--------------------------------------------------------------------------------
1 | import axios from "axios"
2 | import cookie from "./cookie"
3 |
4 | export function increment(state) {
5 | state.count++
6 | }
7 | export function logout(state) {
8 | // state.is_logged = false
9 | // cookie.set_cookie("token", "")
10 | // cookie.set_cookie("username", "")
11 | // state.token = ""
12 | // state.username = ""
13 | state.user_info = {}
14 | state.token = null
15 | localStorage.removeItem("token")
16 | }
17 |
18 | export const login = (state, data) => {
19 | state.token = "JWT " + data.token
20 | }
21 |
22 | export function reset_canceltoken(state) {
23 | state.cancel_token.cancel("跳转取消")
24 | state.cancel_token = axios.CancelToken.source()
25 | }
26 |
--------------------------------------------------------------------------------
/src/utils/calc 2.js:
--------------------------------------------------------------------------------
1 |
2 | const page_size = (line_height, other_height, mini=8) => {
3 | var page_size = Math.floor((window.innerHeight - other_height) / line_height)
4 | return page_size > mini ? page_size:mini
5 | }
6 |
7 |
8 | export default {
9 | page_size
10 | }
11 |
--------------------------------------------------------------------------------
/src/utils/calc.js:
--------------------------------------------------------------------------------
1 |
2 | const page_size = (line_height, other_height, mini=8) => {
3 | var page_size = Math.floor((window.innerHeight - other_height) / line_height)
4 | return page_size > mini ? page_size:mini
5 | }
6 |
7 |
8 | export default {
9 | page_size
10 | }
11 |
--------------------------------------------------------------------------------
/src/utils/color 2.js:
--------------------------------------------------------------------------------
1 |
2 | export const colors = [
3 | '#19d4ae', '#5ab1ef', '#fa6e86',
4 | '#ffb980', '#0067a6', '#c4b4e4',
5 | '#d87a80', '#9cbbff', '#d9d0c7',
6 | '#87a997', '#d49ea2', '#5b4947',
7 | '#7ba3a8'
8 | ]
9 |
10 | export default {}
--------------------------------------------------------------------------------
/src/utils/color.js:
--------------------------------------------------------------------------------
1 |
2 | export const colors = [
3 | '#19d4ae', '#5ab1ef', '#fa6e86',
4 | '#ffb980', '#0067a6', '#c4b4e4',
5 | '#d87a80', '#9cbbff', '#d9d0c7',
6 | '#87a997', '#d49ea2', '#5b4947',
7 | '#7ba3a8'
8 | ]
9 |
10 | export default {}
--------------------------------------------------------------------------------
/src/utils/components 2.js:
--------------------------------------------------------------------------------
1 |
2 | import Vue from "vue"
3 |
4 |
5 |
6 | import CInputList from "@/components/InputList"
7 | import CExport from "@/components/Export"
8 | import CSearch from "@/components/Search"
9 | import CPagination from "@/components/Pagination"
10 | import COptionBar from "@/components/OptionBar"
11 | import CDateRangeFilter from "@/components/DateRangeFilter"
12 | import CNumberRangeFilter from "@/components/NumberRangeFilter"
13 | import CDateFilter from "@/components/DateFilter"
14 | import CSelect from "@/components/c-select/select"
15 |
16 | const install = function (Vue, options) {
17 | Vue.component("CInputList", CInputList)
18 | Vue.component("CExport", CExport)
19 | Vue.component("CSearch", CSearch)
20 | Vue.component("COptionBar", COptionBar)
21 | Vue.component("CDateFilter", CDateFilter)
22 | Vue.component("CDateRangeFilter", CDateRangeFilter)
23 | Vue.component("CNumberRangeFilter", CNumberRangeFilter)
24 | Vue.component("CSelect", CSelect)
25 | }
26 |
27 | export default {
28 | install,
29 | }
30 |
--------------------------------------------------------------------------------
/src/utils/components.js:
--------------------------------------------------------------------------------
1 |
2 | import Vue from "vue"
3 |
4 |
5 |
6 | import CInputList from "@/components/InputList"
7 | import CExport from "@/components/Export"
8 | import CSearch from "@/components/Search"
9 | import CPagination from "@/components/Pagination"
10 | import COptionBar from "@/components/OptionBar"
11 | import CDateRangeFilter from "@/components/DateRangeFilter"
12 | import CNumberRangeFilter from "@/components/NumberRangeFilter"
13 | import CDateFilter from "@/components/DateFilter"
14 | import CSelect from "@/components/c-select/select"
15 |
16 | const install = function (Vue, options) {
17 | Vue.component("CInputList", CInputList)
18 | Vue.component("CExport", CExport)
19 | Vue.component("CSearch", CSearch)
20 | Vue.component("COptionBar", COptionBar)
21 | Vue.component("CDateFilter", CDateFilter)
22 | Vue.component("CDateRangeFilter", CDateRangeFilter)
23 | Vue.component("CNumberRangeFilter", CNumberRangeFilter)
24 | Vue.component("CSelect", CSelect)
25 | }
26 |
27 | export default {
28 | install,
29 | }
30 |
--------------------------------------------------------------------------------
/src/utils/conversion 2.js:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | const install = (Vue, options=null)=>{
5 | Vue.c_flow_conversion = (flow)=>{
6 | const UNITS = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB"]
7 | function conversion(flow, unit){
8 | var b = flow/1024
9 | if(b<0){
10 | return flow.toFixed(2) + UNITS[unit]
11 | }
12 | conversion(b, unit+1)
13 | }
14 | return conversion(flow, 0)
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/utils/conversion.js:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | const install = (Vue, options=null)=>{
5 | Vue.c_flow_conversion = (flow)=>{
6 | const UNITS = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB"]
7 | function conversion(flow, unit){
8 | var b = flow/1024
9 | if(b<0){
10 | return flow.toFixed(2) + UNITS[unit]
11 | }
12 | conversion(b, unit+1)
13 | }
14 | return conversion(flow, 0)
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/utils/cookie 2.js:
--------------------------------------------------------------------------------
1 |
2 | const set_cookie = (name, value, valid_time=1) => {
3 | var date = new Date()
4 | date.setTime(date.getTime()+valid_time*24*3600*1000)
5 | document.cookie = name+"="+value+";expires="+date.toString()
6 | }
7 |
8 | const get_cookie = (name) => {
9 | var cookies = document.cookie.split("; ")
10 | for(let i of cookies){
11 | var name_value = i.split("=")
12 | if(name==name_value[0]){
13 | return name_value[1]
14 | }
15 | }
16 | }
17 |
18 | export default {
19 | set_cookie,
20 | get_cookie
21 | }
22 |
--------------------------------------------------------------------------------
/src/utils/cookie.js:
--------------------------------------------------------------------------------
1 |
2 | const set_cookie = (name, value, valid_time=1) => {
3 | var date = new Date()
4 | date.setTime(date.getTime()+valid_time*24*3600*1000)
5 | document.cookie = name+"="+value+";expires="+date.toString()
6 | }
7 |
8 | const get_cookie = (name) => {
9 | var cookies = document.cookie.split("; ")
10 | for(let i of cookies){
11 | var name_value = i.split("=")
12 | if(name==name_value[0]){
13 | return name_value[1]
14 | }
15 | }
16 | }
17 |
18 | export default {
19 | set_cookie,
20 | get_cookie
21 | }
22 |
--------------------------------------------------------------------------------
/src/utils/data_process 2.js:
--------------------------------------------------------------------------------
1 |
2 | export const add_status_fields = (item) => {
3 | item.__editing = false
4 | item.__loading = false
5 | item.__loading1 = false
6 | item.__loading2 = false
7 | item.__loading3 = false
8 | item.__loading4 = false
9 | item.__loading_delete = false
10 | return item
11 | }
12 |
13 | export const add_format_dt_fields = (item, fields=[]) => {
14 | fields.forEach(field => {
15 | item[`${field}_format`] = item[field] ? item[field].substr(0, 16) : item[field]
16 | })
17 | return item
18 | }
19 |
20 | export const list_to_string = (data) => {
21 | for (let key in data){
22 | if(data[key] instanceof Array){
23 | data[key] = data[key].join("、")
24 | }
25 | }
26 | return data
27 | }
--------------------------------------------------------------------------------
/src/utils/data_process.js:
--------------------------------------------------------------------------------
1 |
2 | export const add_status_fields = (item) => {
3 | item.__editing = false
4 | item.__loading = false
5 | item.__loading1 = false
6 | item.__loading2 = false
7 | item.__loading3 = false
8 | item.__loading4 = false
9 | item.__loading_delete = false
10 | return item
11 | }
12 |
13 | export const add_format_dt_fields = (item, fields=[]) => {
14 | fields.forEach(field => {
15 | item[`${field}_format`] = item[field] ? item[field].substr(0, 16) : item[field]
16 | })
17 | return item
18 | }
19 |
20 | export const list_to_string = (data) => {
21 | for (let key in data){
22 | if(data[key] instanceof Array){
23 | data[key] = data[key].join("、")
24 | }
25 | }
26 | return data
27 | }
--------------------------------------------------------------------------------
/src/utils/date 2.js:
--------------------------------------------------------------------------------
1 |
2 | const date_to_string = (date)=>{
3 | return `${date.getFullYear()}-${date.getMonth()+1}-${date.getDate()} ${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`
4 | }
5 |
6 | const get_day_start = (day_ago)=>{
7 | var datetime = new Date()
8 | datetime.setTime(datetime.getTime() - 3600 * 1000 * 24 * day_ago)
9 | return new Date(datetime.getFullYear(), datetime.getMonth(), datetime.getDate(), 0, 0, 0)
10 | }
11 |
12 |
13 | const get_day_end = (day_ago)=>{
14 | var datetime = new Date()
15 | datetime.setTime(datetime.getTime() - 3600 * 1000 * 24 * day_ago)
16 | return new Date(datetime.getFullYear(), datetime.getMonth(), datetime.getDate(), 23, 59, 59)
17 | }
18 |
19 |
20 | export default {
21 | date_to_string,
22 | get_day_start,
23 | get_day_end
24 | }
25 |
--------------------------------------------------------------------------------
/src/utils/date.js:
--------------------------------------------------------------------------------
1 |
2 | const date_to_string = (date)=>{
3 | return `${date.getFullYear()}-${date.getMonth()+1}-${date.getDate()} ${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`
4 | }
5 |
6 | const get_day_start = (day_ago)=>{
7 | var datetime = new Date()
8 | datetime.setTime(datetime.getTime() - 3600 * 1000 * 24 * day_ago)
9 | return new Date(datetime.getFullYear(), datetime.getMonth(), datetime.getDate(), 0, 0, 0)
10 | }
11 |
12 |
13 | const get_day_end = (day_ago)=>{
14 | var datetime = new Date()
15 | datetime.setTime(datetime.getTime() - 3600 * 1000 * 24 * day_ago)
16 | return new Date(datetime.getFullYear(), datetime.getMonth(), datetime.getDate(), 23, 59, 59)
17 | }
18 |
19 |
20 | export default {
21 | date_to_string,
22 | get_day_start,
23 | get_day_end
24 | }
25 |
--------------------------------------------------------------------------------
/src/utils/filters 2.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | import Vue from "vue"
4 |
5 | Vue.filter("storage", (value) => {
6 | if (!value) {
7 | return value
8 | }
9 | const UNITS = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB"]
10 | function conversion(value, unit) {
11 | var b = value / 1024
12 | if (b < 1) {
13 | return value.toFixed(2) + " " + UNITS[unit]
14 | }
15 | return conversion(b, unit + 1)
16 | }
17 | return conversion(value, 0)
18 | })
19 |
20 | Vue.filter("c_datetime", (value) => {
21 | return value ? value.substr(0, 16) : value
22 | })
23 |
24 | Vue.filter("c_timestamp", (value) => {
25 | if (!value) {
26 | return value
27 | }
28 | var date = new Date(value)
29 | return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}T${date.getHours()}:${date.getMinutes()}`
30 | })
31 |
32 | Vue.filter('c_array_to_string', function (value) {
33 | if (!value) {
34 | return ""
35 | }
36 | if (value instanceof Array) {
37 | return value.join("、")
38 | }
39 | return value
40 | })
--------------------------------------------------------------------------------
/src/utils/filters.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | import Vue from "vue"
4 |
5 | Vue.filter("storage", (value) => {
6 | if (!value) {
7 | return value
8 | }
9 | const UNITS = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB"]
10 | function conversion(value, unit) {
11 | var b = value / 1024
12 | if (b < 1) {
13 | return value.toFixed(2) + " " + UNITS[unit]
14 | }
15 | return conversion(b, unit + 1)
16 | }
17 | return conversion(value, 0)
18 | })
19 |
20 | Vue.filter("c_datetime", (value) => {
21 | return value ? value.substr(0, 16) : value
22 | })
23 |
24 | Vue.filter("c_timestamp", (value) => {
25 | if (!value) {
26 | return value
27 | }
28 | var date = new Date(value)
29 | return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}T${date.getHours()}:${date.getMinutes()}`
30 | })
31 |
32 | Vue.filter('c_array_to_string', function (value) {
33 | if (!value) {
34 | return ""
35 | }
36 | if (value instanceof Array) {
37 | return value.join("、")
38 | }
39 | return value
40 | })
--------------------------------------------------------------------------------
/src/utils/index 2.js:
--------------------------------------------------------------------------------
1 |
2 | export const TYPE_MAP = {
3 | 0: "字符串",
4 | 1: "整数",
5 | 2: "浮点数",
6 | 3: "日期时间",
7 | 4: "日期",
8 | 5: "布尔",
9 | 6: "IP地址",
10 | }
11 |
--------------------------------------------------------------------------------
/src/utils/index.js:
--------------------------------------------------------------------------------
1 |
2 | export const TYPE_MAP = {
3 | 0: "字符串",
4 | 1: "整数",
5 | 2: "浮点数",
6 | 3: "日期时间",
7 | 4: "日期",
8 | 5: "布尔",
9 | 6: "IP地址",
10 | }
11 |
--------------------------------------------------------------------------------
/src/utils/maps 2.js:
--------------------------------------------------------------------------------
1 |
2 | const convert_to_filter = (dict) => {
3 | var ret = []
4 | for(let i in dict){
5 | ret.push({value: i, text: dict[i].label, label: dict[i].label})
6 | }
7 | return ret
8 | }
9 |
10 | export const STATUS = {
11 | 99: {label: "异常", color: "#909398"},
12 | 1: {label: "审批中", color: "#F6BB89"},
13 | 2: {label: "已撤销", color: "#2667A1"},
14 | 3: {label: "被驳回", color: "#EA7788"},
15 | 4: {label: "待接受", color: "#8EA898"},
16 | 5: {label: "已接受", color: "#8EA898"},
17 | 6: {label: "处理中", color: "#584A48"},
18 | 7: {label: "处理失败", color: "#E67470"},
19 | 8: {label: "已完成", color: "#6DB0EA"},
20 | 0: {label: "已确认", color: "#61D0B0"},
21 | }
22 |
23 | export const STATUS_FILTERS = convert_to_filter(STATUS)
24 |
25 | export default {
26 | STATUS,
27 | STATUS_FILTERS
28 | }
--------------------------------------------------------------------------------
/src/utils/maps.js:
--------------------------------------------------------------------------------
1 |
2 | const convert_to_filter = (dict) => {
3 | var ret = []
4 | for(let i in dict){
5 | ret.push({value: i, text: dict[i].label, label: dict[i].label})
6 | }
7 | return ret
8 | }
9 |
10 | export const STATUS = {
11 | 99: {label: "异常", color: "#909398"},
12 | 1: {label: "审批中", color: "#F6BB89"},
13 | 2: {label: "已撤销", color: "#2667A1"},
14 | 3: {label: "被驳回", color: "#EA7788"},
15 | 4: {label: "待接受", color: "#8EA898"},
16 | 5: {label: "已接受", color: "#8EA898"},
17 | 6: {label: "处理中", color: "#584A48"},
18 | 7: {label: "处理失败", color: "#E67470"},
19 | 8: {label: "已完成", color: "#6DB0EA"},
20 | 0: {label: "已确认", color: "#61D0B0"},
21 | }
22 |
23 | export const STATUS_FILTERS = convert_to_filter(STATUS)
24 |
25 | export default {
26 | STATUS,
27 | STATUS_FILTERS
28 | }
--------------------------------------------------------------------------------
/src/utils/new_mixins/drawer_mixin 2.js:
--------------------------------------------------------------------------------
1 |
2 | export default {
3 | props: {
4 | },
5 | data() {
6 | return {
7 | is_visible: true
8 | };
9 | },
10 | mounted() {
11 | },
12 | methods: {
13 | on_close(confirm = false) {
14 | if (confirm) {
15 | this.is_visible = true;
16 | this.$confirm("确认关闭", "警告", {
17 | confirmButtonText: "确定",
18 | cancelButtonText: "取消",
19 | type: "warning"
20 | })
21 | .then(() => {
22 | this._remote_child();
23 | this.$destroy();
24 | })
25 | .catch(() => { });
26 | } else {
27 | this._remote_child();
28 | this.$destroy();
29 | }
30 | },
31 | _remote_child() {
32 | if (this.$el.parentNode) {
33 | this.$el.parentNode.removeChild(this.$el);
34 | }
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/utils/new_mixins/drawer_mixin.js:
--------------------------------------------------------------------------------
1 |
2 | export default {
3 | props: {
4 | },
5 | data() {
6 | return {
7 | is_visible: true
8 | };
9 | },
10 | mounted() {
11 | },
12 | methods: {
13 | on_close(confirm = false) {
14 | if (confirm) {
15 | this.is_visible = true;
16 | this.$confirm("确认关闭", "警告", {
17 | confirmButtonText: "确定",
18 | cancelButtonText: "取消",
19 | type: "warning"
20 | })
21 | .then(() => {
22 | this._remote_child();
23 | this.$destroy();
24 | })
25 | .catch(() => { });
26 | } else {
27 | this._remote_child();
28 | this.$destroy();
29 | }
30 | },
31 | _remote_child() {
32 | if (this.$el.parentNode) {
33 | this.$el.parentNode.removeChild(this.$el);
34 | }
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/utils/new_mixins/index 2.js:
--------------------------------------------------------------------------------
1 | import l_chart_mixin from "./chart_mixin"
2 | import l_create_update_dialog_mixin from "./create_update_dialog_mixin"
3 | import l_dialog_mixin from "./dialog_mixin"
4 | import l_list_mixin from "./list_mixin"
5 | import l_detail_dialog_mixin from "./detail_dialog_mixin"
6 | import l_action_dialog_mixin from "./action_dialog_mixin"
7 |
8 | export const chart_mixin = l_chart_mixin
9 | export const create_update_dialog_mixin = l_create_update_dialog_mixin
10 | export const dialog_mixin = l_dialog_mixin
11 | export const list_mixin = l_list_mixin
12 | export const detail_dialog_mixin = l_detail_dialog_mixin
13 | export const action_dialog_mixin = l_action_dialog_mixin
14 |
15 | export default {
16 | chart_mixin: l_chart_mixin,
17 | create_update_dialog_mixin: l_create_update_dialog_mixin,
18 | dialog_mixin: l_dialog_mixin,
19 | list_mixin: l_list_mixin,
20 | detail_dialog_mixin: l_detail_dialog_mixin,
21 | action_dialog_mixin: l_action_dialog_mixin
22 | }
--------------------------------------------------------------------------------
/src/utils/new_mixins/index.js:
--------------------------------------------------------------------------------
1 | import l_chart_mixin from "./chart_mixin"
2 | import l_create_update_dialog_mixin from "./create_update_dialog_mixin"
3 | import l_dialog_mixin from "./dialog_mixin"
4 | import l_list_mixin from "./list_mixin"
5 | import l_detail_dialog_mixin from "./detail_dialog_mixin"
6 | import l_action_dialog_mixin from "./action_dialog_mixin"
7 |
8 | export const chart_mixin = l_chart_mixin
9 | export const create_update_dialog_mixin = l_create_update_dialog_mixin
10 | export const dialog_mixin = l_dialog_mixin
11 | export const list_mixin = l_list_mixin
12 | export const detail_dialog_mixin = l_detail_dialog_mixin
13 | export const action_dialog_mixin = l_action_dialog_mixin
14 |
15 | export default {
16 | chart_mixin: l_chart_mixin,
17 | create_update_dialog_mixin: l_create_update_dialog_mixin,
18 | dialog_mixin: l_dialog_mixin,
19 | list_mixin: l_list_mixin,
20 | detail_dialog_mixin: l_detail_dialog_mixin,
21 | action_dialog_mixin: l_action_dialog_mixin
22 | }
--------------------------------------------------------------------------------
/src/utils/sso 2.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/src/utils/sso 2.js
--------------------------------------------------------------------------------
/src/utils/sso.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/src/utils/sso.js
--------------------------------------------------------------------------------
/src/utils/url 2.js:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | const get_para = (name) => {
5 | var l = window.location.href.split("?")
6 | if(l.length == 1){
7 | return undefined
8 | }
9 | var ret = {}
10 | var l_2 = l[1].split("&")
11 | for (let k_v of l_2){
12 | let l_3 = k_v.split("=")
13 | ret[l_3[0]] = l_3[1]
14 | }
15 | console.log("ret:", ret)
16 | return ret[name]
17 | }
18 |
19 | export default {
20 | get_para
21 | }
22 |
--------------------------------------------------------------------------------
/src/utils/url.js:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | const get_para = (name) => {
5 | var l = window.location.href.split("?")
6 | if(l.length == 1){
7 | return undefined
8 | }
9 | var ret = {}
10 | var l_2 = l[1].split("&")
11 | for (let k_v of l_2){
12 | let l_3 = k_v.split("=")
13 | ret[l_3[0]] = l_3[1]
14 | }
15 | console.log("ret:", ret)
16 | return ret[name]
17 | }
18 |
19 | export default {
20 | get_para
21 | }
22 |
--------------------------------------------------------------------------------
/src/utils/variables 2.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/src/utils/variables 2.js
--------------------------------------------------------------------------------
/src/utils/variables.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/src/utils/variables.js
--------------------------------------------------------------------------------
/src/utils/workorder 2.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/src/utils/workorder 2.js
--------------------------------------------------------------------------------
/src/utils/workorder.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/src/utils/workorder.js
--------------------------------------------------------------------------------
/src/views/ModifyData 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
14 |
15 |
18 |
--------------------------------------------------------------------------------
/src/views/ModifyData.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
14 |
15 |
18 |
--------------------------------------------------------------------------------
/src/views/deleted-display/components/DataItem 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 | -
8 | {{ value==null?'null':value }}
9 |
10 |
11 |
12 |
13 |
34 |
35 |
38 |
--------------------------------------------------------------------------------
/src/views/deleted-display/components/DataItem.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 | -
8 | {{ value==null?'null':value }}
9 |
10 |
11 |
12 |
13 |
34 |
35 |
38 |
--------------------------------------------------------------------------------
/src/views/display-data/components/DataDetail 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 创建者:{{ data['_source']["S-creator"]}}
5 |
6 |
7 | 创建时间:{{ data['_source']["S-creation-time"]}}
8 |
9 |
10 | 最后修改人:{{ data['_source']["S-last-modified"]}}
11 |
12 |
13 | {{ k }}:{{ v }}
14 |
15 |
16 |
17 |
18 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/src/views/display-data/components/DataDetail.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 创建者:{{ data['_source']["_creator"]}}
5 |
6 |
7 | 创建时间:{{ data['_source']["_create_time"]}}
8 |
9 |
10 | 最后修改人:{{ data['_source']["_last_modified"]}}
11 |
12 |
13 | {{ k }}:{{ v }}
14 |
15 |
16 |
17 |
18 |
41 |
42 |
43 |
53 |
--------------------------------------------------------------------------------
/src/views/display-data/components/MenuItem.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {{ item.meta.name }}
6 |
7 |
8 |
9 | {{ child_item.meta.name }}
10 |
11 |
12 |
13 |
14 | {{ item.meta.name }}
15 |
16 |
17 |
18 |
19 |
24 |
25 |
--------------------------------------------------------------------------------
/src/views/layout/Layout 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
51 |
52 |
54 |
--------------------------------------------------------------------------------
/src/views/layout/components/Token.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{ token }}
7 |
8 |
9 |
12 |
13 |
14 |
15 |
20 |
21 |
24 |
--------------------------------------------------------------------------------
/src/views/layout/comps/Aside 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
15 |
40 |
41 |
47 |
--------------------------------------------------------------------------------
/src/views/layout/comps/MenuItem 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {{ item.meta.name }}
6 |
7 |
8 |
9 | {{ child_item.meta.name }}
10 |
11 |
12 |
13 |
14 | {{ item.meta.name }}
15 |
16 |
17 |
18 |
19 |
24 |
25 |
--------------------------------------------------------------------------------
/src/views/test/Test1 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
17 |
24 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/src/views/test/Test1.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
17 |
24 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/src/views/test/Test2 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | - sndndnjdndjsn
8 | - 22222222222222
9 |
10 |
18 |
19 | 将文件拖到此处,或点击上传
20 | 只能上传xlsx/csv文件
21 |
22 |
aaa
23 |
24 |
25 |
26 |
42 |
--------------------------------------------------------------------------------
/src/views/test/Test2.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
11 |
15 |
16 |
19 |
20 |
21 |
22 |
23 |
48 |
--------------------------------------------------------------------------------
/src/views/test/Test4 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | {{index}}{{item}}
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
54 |
--------------------------------------------------------------------------------
/src/views/test/Test4.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | {{index}}{{item}}
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
54 |
--------------------------------------------------------------------------------
/src/views/test/Test5 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 下拉菜单
6 |
7 |
8 | 黄金糕
9 | 狮子头
10 | 螺蛳粉
11 | 双皮奶
12 | 蚵仔煎
13 |
14 |
15 |
16 |
17 |
18 |
32 |
33 |
36 |
--------------------------------------------------------------------------------
/src/views/test/Test5.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 下拉菜单
6 |
7 |
8 | 黄金糕
9 | 狮子头
10 | 螺蛳粉
11 | 双皮奶
12 | 蚵仔煎
13 |
14 |
15 |
16 |
17 |
18 |
32 |
33 |
36 |
--------------------------------------------------------------------------------
/src/views/test/components/Child1 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
Child 1
7 |
8 |
9 |
10 |
15 |
16 |
19 |
--------------------------------------------------------------------------------
/src/views/test/components/Child1.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
Child 1
7 |
8 |
9 |
10 |
15 |
16 |
19 |
--------------------------------------------------------------------------------
/src/views/test/components/Dialog1 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 | 这是一段信息
8 |
12 |
13 |
14 |
15 |
43 |
--------------------------------------------------------------------------------
/src/views/test/components/Dialog1.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 | 这是一段信息
8 |
12 |
13 |
14 |
15 |
43 |
--------------------------------------------------------------------------------
/src/views/test/components/Dialog2 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
12 |
13 |
16 |
--------------------------------------------------------------------------------
/src/views/test/components/Dialog2.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
12 |
13 |
16 |
--------------------------------------------------------------------------------
/src/views/test/js/test_1.js:
--------------------------------------------------------------------------------
1 |
2 | function print() {
3 | console.log("aaa")
4 | }
5 |
--------------------------------------------------------------------------------
/src/views/test/scrollbar/index 2.js:
--------------------------------------------------------------------------------
1 | import Scrollbar from './src/main';
2 |
3 | /* istanbul ignore next */
4 | Scrollbar.install = function(Vue) {
5 | Vue.component(Scrollbar.name, Scrollbar);
6 | };
7 |
8 | export default Scrollbar;
9 |
--------------------------------------------------------------------------------
/src/views/test/scrollbar/index.js:
--------------------------------------------------------------------------------
1 | import Scrollbar from './src/main';
2 |
3 | /* istanbul ignore next */
4 | Scrollbar.install = function(Vue) {
5 | Vue.component(Scrollbar.name, Scrollbar);
6 | };
7 |
8 | export default Scrollbar;
9 |
--------------------------------------------------------------------------------
/src/views/test/scrollbar/src/util 2.js:
--------------------------------------------------------------------------------
1 | export const BAR_MAP = {
2 | vertical: {
3 | offset: 'offsetHeight',
4 | scroll: 'scrollTop',
5 | scrollSize: 'scrollHeight',
6 | size: 'height',
7 | key: 'vertical',
8 | axis: 'Y',
9 | client: 'clientY',
10 | direction: 'top'
11 | },
12 | horizontal: {
13 | offset: 'offsetWidth',
14 | scroll: 'scrollLeft',
15 | scrollSize: 'scrollWidth',
16 | size: 'width',
17 | key: 'horizontal',
18 | axis: 'X',
19 | client: 'clientX',
20 | direction: 'left'
21 | }
22 | };
23 |
24 | export function renderThumbStyle({ move, size, bar }) {
25 | const style = {};
26 | const translate = `translate${bar.axis}(${ move }%)`;
27 |
28 | style[bar.size] = size;
29 | style.transform = translate;
30 | style.msTransform = translate;
31 | style.webkitTransform = translate;
32 |
33 | return style;
34 | };
35 |
--------------------------------------------------------------------------------
/src/views/test/scrollbar/src/util.js:
--------------------------------------------------------------------------------
1 | export const BAR_MAP = {
2 | vertical: {
3 | offset: 'offsetHeight',
4 | scroll: 'scrollTop',
5 | scrollSize: 'scrollHeight',
6 | size: 'height',
7 | key: 'vertical',
8 | axis: 'Y',
9 | client: 'clientY',
10 | direction: 'top'
11 | },
12 | horizontal: {
13 | offset: 'offsetWidth',
14 | scroll: 'scrollLeft',
15 | scrollSize: 'scrollWidth',
16 | size: 'width',
17 | key: 'horizontal',
18 | axis: 'X',
19 | client: 'clientX',
20 | direction: 'left'
21 | }
22 | };
23 |
24 | export function renderThumbStyle({ move, size, bar }) {
25 | const style = {};
26 | const translate = `translate${bar.axis}(${ move }%)`;
27 |
28 | style[bar.size] = size;
29 | style.transform = translate;
30 | style.msTransform = translate;
31 | style.webkitTransform = translate;
32 |
33 | return style;
34 | };
35 |
--------------------------------------------------------------------------------
/src/views/test/select/index 2.js:
--------------------------------------------------------------------------------
1 | import Select from './src/select';
2 | import TmmSelect from './src/tmm-select';
3 |
4 | /* istanbul ignore next */
5 | Select.install = function(Vue) {
6 | Vue.component(Select.name, Select);
7 | Vue.component(TmmSelect.name, TmmSelect);
8 | };
9 |
10 | export default Select;
11 |
--------------------------------------------------------------------------------
/src/views/test/select/index.js:
--------------------------------------------------------------------------------
1 | import Select from './src/select';
2 | import TmmSelect from './src/tmm-select';
3 |
4 | /* istanbul ignore next */
5 | Select.install = function(Vue) {
6 | Vue.component(Select.name, Select);
7 | Vue.component(TmmSelect.name, TmmSelect);
8 | };
9 |
10 | export default Select;
11 |
--------------------------------------------------------------------------------
/src/views/test/select/src/option-group 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | - {{ label }}
4 | -
5 |
8 |
9 |
10 |
11 |
12 |
61 |
--------------------------------------------------------------------------------
/src/views/test/select/src/option-group.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | - {{ label }}
4 | -
5 |
8 |
9 |
10 |
11 |
12 |
61 |
--------------------------------------------------------------------------------
/src/views/test/test_1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Title
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/views/user/User 2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
16 |
--------------------------------------------------------------------------------
/src/views/user/User.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
16 |
--------------------------------------------------------------------------------
/static/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-cmdb/cmdb-web/0316b3d408b8067965e16fd72761248e82b25739/static/.gitkeep
--------------------------------------------------------------------------------