├── .babelrc ├── .editorconfig ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .idea ├── codeStyles │ └── codeStyleConfig.xml ├── dictionaries │ └── Administrator.xml ├── jsLibraryMappings.xml ├── jsLinters │ └── jshint.xml ├── misc.xml ├── modules.xml ├── vcs.xml ├── wherehows.iml └── workspace.xml ├── .postcssrc.js ├── .swp ├── README.md ├── app.js ├── 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 ├── common.js ├── config ├── dev.env.js └── prod.env.js ├── index.html ├── package.json ├── src ├── App.vue ├── assets │ ├── css │ │ ├── common.css │ │ └── elementUiEdit.less │ ├── element-theme │ │ └── element-variables.scss │ ├── font │ │ ├── iconfont.css │ │ ├── iconfont.eot │ │ ├── iconfont.js │ │ ├── iconfont.svg │ │ ├── iconfont.ttf │ │ └── iconfont.woff │ ├── images │ │ ├── Entry │ │ │ ├── icon_cxfx.png │ │ │ ├── icon_etl.png │ │ │ ├── icon_rwdd.png │ │ │ ├── icon_sjjc.png │ │ │ ├── icon_ysj.png │ │ │ ├── logo.png │ │ │ └── user.png │ │ ├── RelationalGraph │ │ │ ├── article.png │ │ │ └── st.png │ │ ├── approver-dispass.png │ │ ├── approver-flow.png │ │ ├── approver-pass.png │ │ ├── approver-wait.png │ │ ├── bg_body.png │ │ ├── bg_body_schema.png │ │ ├── box.png │ │ ├── brush_icon.png │ │ ├── business │ │ │ ├── bg.png │ │ │ ├── data_empty.png │ │ │ └── icon │ │ │ │ ├── fd.png │ │ │ │ ├── fh.png │ │ │ │ ├── gd.png │ │ │ │ ├── jx.svg │ │ │ │ ├── sq.png │ │ │ │ ├── sx.png │ │ │ │ ├── tj.png │ │ │ │ └── zk.png │ │ ├── checkBoxRed.png │ │ ├── dataImport.png │ │ ├── dataset.png │ │ ├── dataset_operate.png │ │ ├── download.png │ │ ├── favicon.ico │ │ ├── file_del.png │ │ ├── files-views.png │ │ ├── files │ │ │ └── no-data.png │ │ ├── folder_close.png │ │ ├── folder_open.png │ │ ├── gif │ │ │ ├── GIF.gif │ │ │ ├── GIF2.gif │ │ │ ├── GIF3.gif │ │ │ ├── GIF4.gif │ │ │ ├── GIF5.gif │ │ │ ├── GIF6.gif │ │ │ ├── GIF7.gif │ │ │ ├── GIF8.gif │ │ │ └── GIF9.gif │ │ ├── icon │ │ │ ├── SQL.png │ │ │ ├── checkbox-checked.png │ │ │ ├── checkbox-disabled.png │ │ │ ├── checkbox.png │ │ │ ├── db.png │ │ │ ├── email.png │ │ │ ├── icon1.png │ │ │ ├── icon1_active.png │ │ │ ├── icon2.png │ │ │ ├── icon2_active.png │ │ │ ├── icon3.png │ │ │ ├── icon3_active.png │ │ │ ├── icon4.png │ │ │ ├── icon41.png │ │ │ ├── icon41_active.png │ │ │ ├── icon4_active.png │ │ │ ├── icon5.png │ │ │ ├── icon5_active.png │ │ │ ├── icon6.png │ │ │ ├── icon6_active.png │ │ │ ├── icon7.png │ │ │ ├── icon7_active.png │ │ │ ├── icon8.png │ │ │ ├── icon8_active.png │ │ │ ├── plus.png │ │ │ ├── qx.png │ │ │ ├── qxyc.png │ │ │ ├── remove-hover.png │ │ │ ├── remove.png │ │ │ ├── sc.png │ │ │ ├── sc_.png │ │ │ ├── sort-icon.png │ │ │ └── yc.png │ │ ├── icon_add.png │ │ ├── icon_addTheme.png │ │ ├── icon_bang.png │ │ ├── icon_datePicker.png │ │ ├── icon_delectInput.png │ │ ├── icon_delectInputHover.png │ │ ├── icon_download.png │ │ ├── icon_login.png │ │ ├── icon_manage.png │ │ ├── icon_nav.png │ │ ├── icon_navSearch.png │ │ ├── icon_navSearchHover.png │ │ ├── icon_newdataset.png │ │ ├── icon_newflow.png │ │ ├── icon_noPass.png │ │ ├── icon_nodata.png │ │ ├── icon_nodata1.png │ │ ├── icon_pass.png │ │ ├── icon_pencil.png │ │ ├── icon_search.png │ │ ├── icon_select.png │ │ ├── icon_setting.png │ │ ├── icon_setting_old.png │ │ ├── icon_slideDown.png │ │ ├── icon_slideUp.png │ │ ├── icon_upload.png │ │ ├── icon_user.png │ │ ├── icon_user1.png │ │ ├── icon_zoom.png │ │ ├── icons.png │ │ ├── importExport │ │ │ └── icon.png │ │ ├── import_export_icon.png │ │ ├── leapavartar.png │ │ ├── leapavatar.png │ │ ├── left_close.png │ │ ├── left_close_active.png │ │ ├── left_open.png │ │ ├── left_open_active.png │ │ ├── lifecycle_warn_icon.png │ │ ├── loading.jpg │ │ ├── loading_bg.png │ │ ├── loading_left.gif │ │ ├── loading_right.gif │ │ ├── loading_s.gif │ │ ├── login_bg.jpg │ │ ├── logo.png │ │ ├── logo_login.png │ │ ├── logo_login_header.png │ │ ├── logo_pro.png │ │ ├── logo_project.png │ │ ├── logo_project_b.png │ │ ├── logo_s.png │ │ ├── main_nav_list.png │ │ ├── metaData │ │ │ ├── add_table.png │ │ │ ├── add_table_hover.png │ │ │ ├── header_operator.png │ │ │ ├── icon │ │ │ │ ├── bq.png │ │ │ │ ├── icon1.png │ │ │ │ ├── icon2.png │ │ │ │ ├── icon3.png │ │ │ │ ├── icon4.png │ │ │ │ ├── icon4_off.png │ │ │ │ ├── icon5.png │ │ │ │ ├── icon5_off.png │ │ │ │ ├── jm1.png │ │ │ │ ├── jm2.png │ │ │ │ ├── qx.png │ │ │ │ ├── sq.png │ │ │ │ └── zk.png │ │ │ ├── icon_app.png │ │ │ ├── icon_comment.png │ │ │ ├── icon_datasetTree.png │ │ │ ├── icon_description.png │ │ │ ├── icon_more.png │ │ │ ├── icon_quality.png │ │ │ ├── icon_question.png │ │ │ ├── icon_search.png │ │ │ ├── icon_tree-toggle.png │ │ │ ├── icon_usage.png │ │ │ ├── importExportIcon.png │ │ │ ├── import_export.png │ │ │ ├── import_export_icon.png │ │ │ ├── import_export_icon2.png │ │ │ ├── personal_icon.png │ │ │ └── view_control_icon.png │ │ ├── nav │ │ │ ├── icon_delectInput.png │ │ │ ├── icon_delectInputHover.png │ │ │ ├── icon_nav.png │ │ │ ├── icon_navSearch.png │ │ │ ├── icon_navSearchHover.png │ │ │ ├── icon_nav_personal.png │ │ │ └── metadata_icon.png │ │ ├── no-alert.png │ │ ├── nodata.png │ │ ├── owner_operation.png │ │ ├── personal_icon.png │ │ ├── private.png │ │ ├── search_close.png │ │ ├── search_close_active.png │ │ ├── search_icon.png │ │ ├── second_nav_active.png │ │ ├── source_nav.png │ │ ├── sub_logo.png │ │ ├── table_nodata.png │ │ ├── tj.png │ │ ├── toast │ │ │ ├── icon_close_error.png │ │ │ ├── icon_close_success.png │ │ │ ├── icon_close_warning.png │ │ │ ├── icon_type_error.png │ │ │ ├── icon_type_success.png │ │ │ └── icon_type_warning.png │ │ ├── user.png │ │ ├── wl.png │ │ ├── yw.png │ │ └── zy.png │ ├── js │ │ ├── CronGen.min.js │ │ └── go.js │ ├── less │ │ ├── Entry.less │ │ ├── header.less │ │ ├── metaData-nav.less │ │ ├── metaData.less │ │ ├── mixin.less │ │ ├── source.less │ │ └── vars.less │ └── libs │ │ ├── jsondiffpatch │ │ ├── .bowerrc │ │ ├── .codeclimate.yml │ │ ├── .jscsrc │ │ ├── .jshintrc │ │ ├── .npmignore │ │ ├── .travis.yml │ │ ├── MIT-LICENSE.txt │ │ ├── Makefile │ │ ├── README.md │ │ ├── badges.md │ │ ├── bin │ │ │ └── jsondiffpatch │ │ ├── bower.json │ │ ├── docs │ │ │ ├── arrays.md │ │ │ ├── deltas.md │ │ │ ├── formatters.md │ │ │ └── plugins.md │ │ ├── gulp-tasks │ │ │ └── fiberglass.js │ │ ├── gulpfile.js │ │ ├── jshintrc.json │ │ ├── karma.conf.js │ │ ├── package.json │ │ ├── public │ │ │ ├── demo │ │ │ │ ├── consoledemo.js │ │ │ │ ├── consoledemo.png │ │ │ │ ├── demo.js │ │ │ │ ├── index.html │ │ │ │ ├── left.json │ │ │ │ ├── numeric-plugin.js │ │ │ │ ├── right.json │ │ │ │ └── style.css │ │ │ ├── external │ │ │ │ └── diff_match_patch_uncompressed.js │ │ │ ├── formatters-styles │ │ │ │ ├── annotated.css │ │ │ │ └── html.css │ │ │ ├── index.html │ │ │ └── test │ │ │ │ └── index.html │ │ ├── src │ │ │ ├── clone.js │ │ │ ├── contexts │ │ │ │ ├── context.js │ │ │ │ ├── diff.js │ │ │ │ ├── patch.js │ │ │ │ └── reverse.js │ │ │ ├── date-reviver.js │ │ │ ├── diffpatcher.js │ │ │ ├── environment.js │ │ │ ├── filters │ │ │ │ ├── arrays.js │ │ │ │ ├── dates.js │ │ │ │ ├── lcs.js │ │ │ │ ├── nested.js │ │ │ │ ├── texts.js │ │ │ │ └── trivial.js │ │ │ ├── formatters │ │ │ │ ├── annotated.js │ │ │ │ ├── base.js │ │ │ │ ├── console.js │ │ │ │ ├── html.js │ │ │ │ ├── index.js │ │ │ │ └── jsonpatch.js │ │ │ ├── main-formatters.js │ │ │ ├── main-full.js │ │ │ ├── main.js │ │ │ ├── pipe.js │ │ │ └── processor.js │ │ └── test │ │ │ ├── .jshintrc │ │ │ ├── examples │ │ │ └── diffpatch.js │ │ │ ├── index.js │ │ │ ├── mocha.opts │ │ │ └── util │ │ │ └── globals.js │ │ ├── qtip │ │ ├── jquery.qtip.css │ │ ├── jquery.qtip.js │ │ ├── jquery.qtip.min.css │ │ ├── jquery.qtip.min.js │ │ └── jquery.qtip.min.map │ │ └── splitter │ │ ├── jquery.splitter.css │ │ └── jquery.splitter.js ├── components │ ├── Business │ │ ├── Index.vue │ │ └── children │ │ │ ├── AddDataset.vue │ │ │ ├── cascader │ │ │ └── src │ │ │ │ ├── main.vue │ │ │ │ └── menu.vue │ │ │ └── children │ │ │ ├── BusinessTree.vue │ │ │ └── BusinessTreeItem.vue │ ├── DataImport │ │ ├── DataImport.vue │ │ ├── DataImportJob.vue │ │ ├── DataImportManual.vue │ │ ├── DataImportRecord.vue │ │ ├── DataImportTemplate.vue │ │ ├── DataTreeDialog.vue │ │ └── UploadItem.vue │ ├── Files │ │ ├── Index.vue │ │ └── children │ │ │ ├── ExportTree.vue │ │ │ └── InputTag.vue │ ├── Footer.vue │ ├── Header.vue │ ├── Home │ │ ├── Home.vue │ │ ├── HomeIndex.vue │ │ ├── HomeSearch.vue │ │ ├── HomeTopList.vue │ │ ├── HomeUserInfo.vue │ │ ├── TopicTree.vue │ │ └── TopicTreeItem.vue │ ├── ImportExport │ │ ├── Index.vue │ │ └── children │ │ │ ├── Collection.vue │ │ │ ├── Export.vue │ │ │ ├── Import.vue │ │ │ └── children │ │ │ ├── CompleteData.vue │ │ │ ├── CreateTask.vue │ │ │ ├── DataImport.vue │ │ │ ├── HistoryList.vue │ │ │ ├── InsertData.vue │ │ │ ├── TaskList.vue │ │ │ ├── children │ │ │ ├── BlackList.vue │ │ │ └── HdfsSource.vue │ │ │ └── importHeaderItem.vue │ ├── MainNav.vue │ ├── MainPage.vue │ ├── MetaData │ │ ├── DataImport │ │ │ ├── DataImport.vue │ │ │ ├── DataImportJob.vue │ │ │ ├── DataImportManual.vue │ │ │ ├── DataImportRecord.vue │ │ │ ├── DataImportTemplate.vue │ │ │ ├── DataTreeDialog.vue │ │ │ └── UploadItem.vue │ │ ├── Dataset │ │ │ ├── Dataset.vue │ │ │ ├── DatasetDetail.vue │ │ │ ├── DatasetDetail │ │ │ │ ├── BusinessDetail.vue │ │ │ │ ├── BusinessTree.vue │ │ │ │ ├── BusinessTreeItem.vue │ │ │ │ ├── Comments.vue │ │ │ │ ├── DataHistory.vue │ │ │ │ ├── DataPermission.vue │ │ │ │ ├── DataTypeDetail.vue │ │ │ │ ├── DatabaseDetail.vue │ │ │ │ ├── DatasourceDetail.vue │ │ │ │ ├── Diagram.vue │ │ │ │ ├── Dialog │ │ │ │ │ ├── CompareDialog.vue │ │ │ │ │ └── TextDialog.vue │ │ │ │ ├── PermissionItemL.vue │ │ │ │ ├── PermissionItemR.vue │ │ │ │ ├── PermissionList.vue │ │ │ │ ├── Properties.vue │ │ │ │ ├── PropertiesEditor.vue │ │ │ │ ├── PropertyItem.vue │ │ │ │ ├── RelationalGraph.vue │ │ │ │ ├── SampleData.vue │ │ │ │ ├── Schema.vue │ │ │ │ ├── Storage.vue │ │ │ │ ├── TableDetail.vue │ │ │ │ ├── VersionControl.vue │ │ │ │ └── children │ │ │ │ │ └── LifeCycle.vue │ │ │ ├── DatasetTree.vue │ │ │ ├── DatasetTreeHeader.vue │ │ │ ├── DatasetTreeItem.vue │ │ │ ├── PhysicalExportTree │ │ │ │ ├── PhysicalExportTree.vue │ │ │ │ └── PhysicalExportTreeItem.vue │ │ │ └── chiildren │ │ │ │ └── TagDetail.vue │ │ ├── MetaData.vue │ │ ├── Nav.vue │ │ ├── Personal │ │ │ ├── Personal.vue │ │ │ ├── PersonalApproval.vue │ │ │ ├── PersonalAuthority.vue │ │ │ ├── PersonalChargeMaintain.vue │ │ │ ├── PersonalCollect.vue │ │ │ ├── PersonalDel.vue │ │ │ ├── PersonalMetaMaintain.vue │ │ │ ├── PersonalOwner.vue │ │ │ ├── PersonalOwnerTable.vue │ │ │ ├── PersonalRecord.vue │ │ │ ├── Setting.vue │ │ │ ├── Tag.vue │ │ │ ├── TagDetail.vue │ │ │ ├── TagList.vue │ │ │ └── chiildren │ │ │ │ └── Search.vue │ │ ├── Search.vue │ │ └── SearchResult.vue │ ├── Source │ │ ├── Detail │ │ │ ├── NumberRecord.vue │ │ │ ├── SourceDatabase.vue │ │ │ └── SourceDataset.vue │ │ ├── Source.vue │ │ ├── SourceHome.vue │ │ └── SourceList.vue │ └── common │ │ ├── Cron.vue │ │ ├── DatePicker.vue │ │ ├── Error.vue │ │ ├── ItemJump.vue │ │ ├── LineChart.vue │ │ ├── Loading │ │ ├── Loading.vue │ │ └── index.js │ │ ├── MoreLoading │ │ ├── MoreLoading.vue │ │ └── index.js │ │ ├── NoData │ │ ├── NoData.vue │ │ └── index.js │ │ ├── PieChart.vue │ │ ├── RankList.vue │ │ ├── Search.vue │ │ ├── SplitControler.vue │ │ ├── TableHeader │ │ ├── TableHeader.vue │ │ └── index.js │ │ ├── TableItemJump.vue │ │ ├── dialogItemTitle.vue │ │ └── index.js ├── config │ ├── env.js │ ├── fetch.js │ ├── http.js │ └── mUtils.js ├── directives │ ├── clickoutside.js │ ├── ellipsis.js │ ├── hiddenElement.js │ └── index.js ├── locale │ ├── en.js │ ├── international.js │ └── zh.js ├── main.js ├── mixins │ └── common.js ├── plugins │ ├── MessageBox │ │ ├── MessageBox.vue │ │ └── main.js │ └── index.js ├── router │ └── index.js ├── service │ └── getData.js ├── store │ ├── actions.js │ ├── index.js │ ├── mutation-types.js │ └── mutations.js ├── utils │ ├── bus.js │ ├── index.js │ └── validator.js └── vars.less └── static ├── a.json ├── alert.html ├── images └── favicon.ico └── outdatedbrowser ├── lang ├── ar.html ├── cs.html ├── da.html ├── de.html ├── el.html ├── en.html ├── es-pe.html ├── es.html ├── et.html ├── fa.html ├── fi.html ├── fr.html ├── hr.html ├── hu.html ├── id.html ├── it.html ├── ja.html ├── ko.html ├── lt.html ├── nb.html ├── nl.html ├── pl.html ├── pt-br.html ├── pt.html ├── ro.html ├── ru.html ├── sk.html ├── sl.html ├── sv.html ├── tr.html ├── uk.html ├── zh-cn.html └── zh-tw.html ├── outdatedbrowser.css ├── outdatedbrowser.js ├── outdatedbrowser.min.css ├── outdatedbrowser.min.js └── outdatedbrowser.scss /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["es2015", "stage-2", "env"], 3 | "plugins": ["transform-runtime", "transform-vue-jsx", "syntax-dynamic-import"], 4 | "comments": false 5 | } 6 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | end_of_line = crlf 7 | insert_final_newline = true 8 | trim_trailing_whitespace = true 9 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | build/*.js 2 | config/*.js 3 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | parser: 'babel-eslint', 4 | parserOptions: { 5 | sourceType: 'module' 6 | }, 7 | // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style 8 | extends: 'vue', 9 | // required to lint *.vue files 10 | plugins: [ 11 | 'vuefix', 12 | ], 13 | // add your custom rules here 14 | 'rules': { 15 | // allow paren-less arrow functions 16 | 'arrow-parens': 0, 17 | // allow async-await 18 | 'generator-star-spacing': 0, 19 | // allow debugger during development 20 | 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, 21 | 'semi': ['error', 'always'], 22 | 'no-const-assign': 'warn', 23 | 'eqeqeq': 'warn', 24 | 'brace-style': 0, 25 | 'no-mixed-spaces-and-tabs': 0, 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | npm-debug.log 3 | test/unit/coverage 4 | test/e2e/reports 5 | selenium-debug.log 6 | *.DS_Store 7 | /config/index.js 8 | -------------------------------------------------------------------------------- /.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /.idea/dictionaries/Administrator.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/jsLibraryMappings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.idea/jsLinters/jshint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 85 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/wherehows.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.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 | "browsers": "> 5%" 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /.swp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/.swp -------------------------------------------------------------------------------- /app.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var app = express(); 3 | var bodyParser = require('body-parser'); 4 | var morgan = require('morgan'); 5 | var ObjectID = require('mongodb').ObjectID; 6 | 7 | var MongoClient = require('mongodb').MongoClient; 8 | var mongoUrl = 'mongodb://localhost:27017/mission'; 9 | var _db; 10 | 11 | app.use(morgan('dev')); 12 | app.use(bodyParser.json()); 13 | app.use(express.static('dist')); 14 | 15 | MongoClient.connect(mongoUrl, function (err, db) { 16 | if (err) { 17 | console.error(err); 18 | return; 19 | } 20 | 21 | console.log('connected to mongo'); 22 | _db = db; 23 | app.listen(8888, function () { 24 | console.log('server is running...'); 25 | }); 26 | }); 27 | 28 | app.all("*", function (req, res, next) { 29 | res.header('Access-Control-Allow-Origin', '*'); 30 | res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With"); 31 | res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); 32 | if (req.method == 'OPTIONS') { 33 | res.send(200); 34 | } else { 35 | next(); 36 | } 37 | }); 38 | 39 | app.get('/time', function(req, res, next) { 40 | var collection = _db.collection('my_mission'); 41 | var time = 0; 42 | collection.find({}).toArray(function (err, ret) { 43 | if(err) { 44 | console.error(err); 45 | return; 46 | } 47 | 48 | ret.forEach(function (item, index) { 49 | time += +item.totalTime; 50 | }); 51 | res.json({errcode:0,errmsg:"ok",time:time}); 52 | }); 53 | }); 54 | 55 | app.get('/time-entries', function(req, res, next) { 56 | var collection = _db.collection('my_mission'); 57 | collection.find({}).toArray(function (err, ret) { 58 | if(err) { 59 | console.error(err); 60 | return; 61 | } 62 | res.json(ret); 63 | }); 64 | }); 65 | 66 | app.post('/create', function(req, res, next) { 67 | var mission = req.body; 68 | var collection = _db.collection('my_mission'); 69 | 70 | if(!mission.comment || !mission.totalTime || !mission.date) { 71 | res.send({errcode:-1,errmsg:"params missed"}); 72 | return; 73 | } 74 | 75 | collection.insert({comment: mission.comment, totalTime: mission.totalTime,date:mission.date}, function (err, ret) { 76 | if(err) { 77 | console.error(err); 78 | res.status(500).end(); 79 | } else { 80 | res.send({errcode:0,errmsg:"ok"}); 81 | } 82 | }); 83 | }); 84 | 85 | app.delete('/delete/:id', function (req, res, next) { 86 | var _id = req.params.id; 87 | var collection = _db.collection('my_mission'); 88 | console.log(_id) 89 | collection.remove({_id: new ObjectID(_id)} ,function (err, result) { 90 | if(err) { 91 | console.error(err); 92 | res.status(500).end(); 93 | } else { 94 | res.send({errcode:0,errmsg:"ok"}); 95 | } 96 | }); 97 | }); 98 | -------------------------------------------------------------------------------- /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/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/build/logo.png -------------------------------------------------------------------------------- /build/utils.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const path = require('path') 3 | const config = require('../config') 4 | const ExtractTextPlugin = require('extract-text-webpack-plugin') 5 | const packageConfig = require('../package.json') 6 | 7 | exports.assetsPath = function (_path) { 8 | const assetsSubDirectory = process.env.NODE_ENV === 'production' 9 | ? config.build.assetsSubDirectory 10 | : config.dev.assetsSubDirectory 11 | 12 | return path.posix.join(assetsSubDirectory, _path) 13 | } 14 | 15 | exports.cssLoaders = function (options) { 16 | options = options || {} 17 | 18 | const cssLoader = { 19 | loader: 'css-loader', 20 | options: { 21 | sourceMap: options.sourceMap 22 | } 23 | } 24 | 25 | const postcssLoader = { 26 | loader: 'postcss-loader', 27 | options: { 28 | sourceMap: options.sourceMap 29 | } 30 | } 31 | 32 | // generate loader string to be used with extract text plugin 33 | function generateLoaders (loader, loaderOptions) { 34 | const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader] 35 | 36 | if (loader) { 37 | loaders.push({ 38 | loader: loader + '-loader', 39 | options: Object.assign({}, loaderOptions, { 40 | sourceMap: options.sourceMap 41 | }) 42 | }) 43 | } 44 | 45 | // Extract CSS when that option is specified 46 | // (which is the case during production build) 47 | if (options.extract) { 48 | return ExtractTextPlugin.extract({ 49 | use: loaders, 50 | fallback: 'vue-style-loader' 51 | }) 52 | } else { 53 | return ['vue-style-loader'].concat(loaders) 54 | } 55 | } 56 | 57 | // https://vue-loader.vuejs.org/en/configurations/extract-css.html 58 | return { 59 | css: generateLoaders(), 60 | postcss: generateLoaders(), 61 | less: generateLoaders('less'), 62 | sass: generateLoaders('sass', { indentedSyntax: true }), 63 | scss: generateLoaders('sass'), 64 | stylus: generateLoaders('stylus'), 65 | styl: generateLoaders('stylus') 66 | } 67 | } 68 | 69 | // Generate loaders for standalone style files (outside of .vue) 70 | exports.styleLoaders = function (options) { 71 | const output = [] 72 | const loaders = exports.cssLoaders(options) 73 | 74 | for (const extension in loaders) { 75 | const loader = loaders[extension] 76 | output.push({ 77 | test: new RegExp('\\.' + extension + '$'), 78 | use: loader 79 | }) 80 | } 81 | 82 | return output 83 | } 84 | 85 | exports.createNotifierCallback = () => { 86 | const notifier = require('node-notifier') 87 | 88 | return (severity, errors) => { 89 | if (severity !== 'error') return 90 | 91 | const error = errors[0] 92 | const filename = error.file && error.file.split('!').pop() 93 | 94 | notifier.notify({ 95 | title: packageConfig.name, 96 | message: severity + ': ' + error.name, 97 | subtitle: filename || '', 98 | icon: path.join(__dirname, 'logo.png') 99 | }) 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /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 | postcss: [require('autoprefixer')({ browsers: ['last 2 versions'] })] 23 | } 24 | -------------------------------------------------------------------------------- /common.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([8,6,9],[]); -------------------------------------------------------------------------------- /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 | module.exports = { 2 | NODE_ENV: '"production"' 3 | } 4 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | LEAP Metadata 5 | 6 | 7 | 8 | 9 | 47 | 48 | 49 |
50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 42 | 50 | -------------------------------------------------------------------------------- /src/assets/font/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/font/iconfont.eot -------------------------------------------------------------------------------- /src/assets/font/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/font/iconfont.ttf -------------------------------------------------------------------------------- /src/assets/font/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/font/iconfont.woff -------------------------------------------------------------------------------- /src/assets/images/Entry/icon_cxfx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/Entry/icon_cxfx.png -------------------------------------------------------------------------------- /src/assets/images/Entry/icon_etl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/Entry/icon_etl.png -------------------------------------------------------------------------------- /src/assets/images/Entry/icon_rwdd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/Entry/icon_rwdd.png -------------------------------------------------------------------------------- /src/assets/images/Entry/icon_sjjc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/Entry/icon_sjjc.png -------------------------------------------------------------------------------- /src/assets/images/Entry/icon_ysj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/Entry/icon_ysj.png -------------------------------------------------------------------------------- /src/assets/images/Entry/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/Entry/logo.png -------------------------------------------------------------------------------- /src/assets/images/Entry/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/Entry/user.png -------------------------------------------------------------------------------- /src/assets/images/RelationalGraph/article.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/RelationalGraph/article.png -------------------------------------------------------------------------------- /src/assets/images/RelationalGraph/st.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/RelationalGraph/st.png -------------------------------------------------------------------------------- /src/assets/images/approver-dispass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/approver-dispass.png -------------------------------------------------------------------------------- /src/assets/images/approver-flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/approver-flow.png -------------------------------------------------------------------------------- /src/assets/images/approver-pass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/approver-pass.png -------------------------------------------------------------------------------- /src/assets/images/approver-wait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/approver-wait.png -------------------------------------------------------------------------------- /src/assets/images/bg_body.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/bg_body.png -------------------------------------------------------------------------------- /src/assets/images/bg_body_schema.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/bg_body_schema.png -------------------------------------------------------------------------------- /src/assets/images/box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/box.png -------------------------------------------------------------------------------- /src/assets/images/brush_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/brush_icon.png -------------------------------------------------------------------------------- /src/assets/images/business/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/business/bg.png -------------------------------------------------------------------------------- /src/assets/images/business/data_empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/business/data_empty.png -------------------------------------------------------------------------------- /src/assets/images/business/icon/fd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/business/icon/fd.png -------------------------------------------------------------------------------- /src/assets/images/business/icon/fh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/business/icon/fh.png -------------------------------------------------------------------------------- /src/assets/images/business/icon/gd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/business/icon/gd.png -------------------------------------------------------------------------------- /src/assets/images/business/icon/jx.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/images/business/icon/sq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/business/icon/sq.png -------------------------------------------------------------------------------- /src/assets/images/business/icon/sx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/business/icon/sx.png -------------------------------------------------------------------------------- /src/assets/images/business/icon/tj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/business/icon/tj.png -------------------------------------------------------------------------------- /src/assets/images/business/icon/zk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/business/icon/zk.png -------------------------------------------------------------------------------- /src/assets/images/checkBoxRed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/checkBoxRed.png -------------------------------------------------------------------------------- /src/assets/images/dataImport.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/dataImport.png -------------------------------------------------------------------------------- /src/assets/images/dataset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/dataset.png -------------------------------------------------------------------------------- /src/assets/images/dataset_operate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/dataset_operate.png -------------------------------------------------------------------------------- /src/assets/images/download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/download.png -------------------------------------------------------------------------------- /src/assets/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/favicon.ico -------------------------------------------------------------------------------- /src/assets/images/file_del.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/file_del.png -------------------------------------------------------------------------------- /src/assets/images/files-views.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/files-views.png -------------------------------------------------------------------------------- /src/assets/images/files/no-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/files/no-data.png -------------------------------------------------------------------------------- /src/assets/images/folder_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/folder_close.png -------------------------------------------------------------------------------- /src/assets/images/folder_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/folder_open.png -------------------------------------------------------------------------------- /src/assets/images/gif/GIF.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/gif/GIF.gif -------------------------------------------------------------------------------- /src/assets/images/gif/GIF2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/gif/GIF2.gif -------------------------------------------------------------------------------- /src/assets/images/gif/GIF3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/gif/GIF3.gif -------------------------------------------------------------------------------- /src/assets/images/gif/GIF4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/gif/GIF4.gif -------------------------------------------------------------------------------- /src/assets/images/gif/GIF5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/gif/GIF5.gif -------------------------------------------------------------------------------- /src/assets/images/gif/GIF6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/gif/GIF6.gif -------------------------------------------------------------------------------- /src/assets/images/gif/GIF7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/gif/GIF7.gif -------------------------------------------------------------------------------- /src/assets/images/gif/GIF8.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/gif/GIF8.gif -------------------------------------------------------------------------------- /src/assets/images/gif/GIF9.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/gif/GIF9.gif -------------------------------------------------------------------------------- /src/assets/images/icon/SQL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/SQL.png -------------------------------------------------------------------------------- /src/assets/images/icon/checkbox-checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/checkbox-checked.png -------------------------------------------------------------------------------- /src/assets/images/icon/checkbox-disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/checkbox-disabled.png -------------------------------------------------------------------------------- /src/assets/images/icon/checkbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/checkbox.png -------------------------------------------------------------------------------- /src/assets/images/icon/db.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/db.png -------------------------------------------------------------------------------- /src/assets/images/icon/email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/email.png -------------------------------------------------------------------------------- /src/assets/images/icon/icon1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon1.png -------------------------------------------------------------------------------- /src/assets/images/icon/icon1_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon1_active.png -------------------------------------------------------------------------------- /src/assets/images/icon/icon2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon2.png -------------------------------------------------------------------------------- /src/assets/images/icon/icon2_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon2_active.png -------------------------------------------------------------------------------- /src/assets/images/icon/icon3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon3.png -------------------------------------------------------------------------------- /src/assets/images/icon/icon3_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon3_active.png -------------------------------------------------------------------------------- /src/assets/images/icon/icon4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon4.png -------------------------------------------------------------------------------- /src/assets/images/icon/icon41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon41.png -------------------------------------------------------------------------------- /src/assets/images/icon/icon41_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon41_active.png -------------------------------------------------------------------------------- /src/assets/images/icon/icon4_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon4_active.png -------------------------------------------------------------------------------- /src/assets/images/icon/icon5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon5.png -------------------------------------------------------------------------------- /src/assets/images/icon/icon5_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon5_active.png -------------------------------------------------------------------------------- /src/assets/images/icon/icon6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon6.png -------------------------------------------------------------------------------- /src/assets/images/icon/icon6_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon6_active.png -------------------------------------------------------------------------------- /src/assets/images/icon/icon7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon7.png -------------------------------------------------------------------------------- /src/assets/images/icon/icon7_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon7_active.png -------------------------------------------------------------------------------- /src/assets/images/icon/icon8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon8.png -------------------------------------------------------------------------------- /src/assets/images/icon/icon8_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon8_active.png -------------------------------------------------------------------------------- /src/assets/images/icon/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/plus.png -------------------------------------------------------------------------------- /src/assets/images/icon/qx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/qx.png -------------------------------------------------------------------------------- /src/assets/images/icon/qxyc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/qxyc.png -------------------------------------------------------------------------------- /src/assets/images/icon/remove-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/remove-hover.png -------------------------------------------------------------------------------- /src/assets/images/icon/remove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/remove.png -------------------------------------------------------------------------------- /src/assets/images/icon/sc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/sc.png -------------------------------------------------------------------------------- /src/assets/images/icon/sc_.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/sc_.png -------------------------------------------------------------------------------- /src/assets/images/icon/sort-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/sort-icon.png -------------------------------------------------------------------------------- /src/assets/images/icon/yc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/yc.png -------------------------------------------------------------------------------- /src/assets/images/icon_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_add.png -------------------------------------------------------------------------------- /src/assets/images/icon_addTheme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_addTheme.png -------------------------------------------------------------------------------- /src/assets/images/icon_bang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_bang.png -------------------------------------------------------------------------------- /src/assets/images/icon_datePicker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_datePicker.png -------------------------------------------------------------------------------- /src/assets/images/icon_delectInput.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_delectInput.png -------------------------------------------------------------------------------- /src/assets/images/icon_delectInputHover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_delectInputHover.png -------------------------------------------------------------------------------- /src/assets/images/icon_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_download.png -------------------------------------------------------------------------------- /src/assets/images/icon_login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_login.png -------------------------------------------------------------------------------- /src/assets/images/icon_manage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_manage.png -------------------------------------------------------------------------------- /src/assets/images/icon_nav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_nav.png -------------------------------------------------------------------------------- /src/assets/images/icon_navSearch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_navSearch.png -------------------------------------------------------------------------------- /src/assets/images/icon_navSearchHover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_navSearchHover.png -------------------------------------------------------------------------------- /src/assets/images/icon_newdataset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_newdataset.png -------------------------------------------------------------------------------- /src/assets/images/icon_newflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_newflow.png -------------------------------------------------------------------------------- /src/assets/images/icon_noPass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_noPass.png -------------------------------------------------------------------------------- /src/assets/images/icon_nodata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_nodata.png -------------------------------------------------------------------------------- /src/assets/images/icon_nodata1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_nodata1.png -------------------------------------------------------------------------------- /src/assets/images/icon_pass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_pass.png -------------------------------------------------------------------------------- /src/assets/images/icon_pencil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_pencil.png -------------------------------------------------------------------------------- /src/assets/images/icon_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_search.png -------------------------------------------------------------------------------- /src/assets/images/icon_select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_select.png -------------------------------------------------------------------------------- /src/assets/images/icon_setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_setting.png -------------------------------------------------------------------------------- /src/assets/images/icon_setting_old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_setting_old.png -------------------------------------------------------------------------------- /src/assets/images/icon_slideDown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_slideDown.png -------------------------------------------------------------------------------- /src/assets/images/icon_slideUp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_slideUp.png -------------------------------------------------------------------------------- /src/assets/images/icon_upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_upload.png -------------------------------------------------------------------------------- /src/assets/images/icon_user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_user.png -------------------------------------------------------------------------------- /src/assets/images/icon_user1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_user1.png -------------------------------------------------------------------------------- /src/assets/images/icon_zoom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_zoom.png -------------------------------------------------------------------------------- /src/assets/images/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icons.png -------------------------------------------------------------------------------- /src/assets/images/importExport/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/importExport/icon.png -------------------------------------------------------------------------------- /src/assets/images/import_export_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/import_export_icon.png -------------------------------------------------------------------------------- /src/assets/images/leapavartar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/leapavartar.png -------------------------------------------------------------------------------- /src/assets/images/leapavatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/leapavatar.png -------------------------------------------------------------------------------- /src/assets/images/left_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/left_close.png -------------------------------------------------------------------------------- /src/assets/images/left_close_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/left_close_active.png -------------------------------------------------------------------------------- /src/assets/images/left_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/left_open.png -------------------------------------------------------------------------------- /src/assets/images/left_open_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/left_open_active.png -------------------------------------------------------------------------------- /src/assets/images/lifecycle_warn_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/lifecycle_warn_icon.png -------------------------------------------------------------------------------- /src/assets/images/loading.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/loading.jpg -------------------------------------------------------------------------------- /src/assets/images/loading_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/loading_bg.png -------------------------------------------------------------------------------- /src/assets/images/loading_left.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/loading_left.gif -------------------------------------------------------------------------------- /src/assets/images/loading_right.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/loading_right.gif -------------------------------------------------------------------------------- /src/assets/images/loading_s.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/loading_s.gif -------------------------------------------------------------------------------- /src/assets/images/login_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/login_bg.jpg -------------------------------------------------------------------------------- /src/assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/logo.png -------------------------------------------------------------------------------- /src/assets/images/logo_login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/logo_login.png -------------------------------------------------------------------------------- /src/assets/images/logo_login_header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/logo_login_header.png -------------------------------------------------------------------------------- /src/assets/images/logo_pro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/logo_pro.png -------------------------------------------------------------------------------- /src/assets/images/logo_project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/logo_project.png -------------------------------------------------------------------------------- /src/assets/images/logo_project_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/logo_project_b.png -------------------------------------------------------------------------------- /src/assets/images/logo_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/logo_s.png -------------------------------------------------------------------------------- /src/assets/images/main_nav_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/main_nav_list.png -------------------------------------------------------------------------------- /src/assets/images/metaData/add_table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/add_table.png -------------------------------------------------------------------------------- /src/assets/images/metaData/add_table_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/add_table_hover.png -------------------------------------------------------------------------------- /src/assets/images/metaData/header_operator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/header_operator.png -------------------------------------------------------------------------------- /src/assets/images/metaData/icon/bq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/bq.png -------------------------------------------------------------------------------- /src/assets/images/metaData/icon/icon1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/icon1.png -------------------------------------------------------------------------------- /src/assets/images/metaData/icon/icon2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/icon2.png -------------------------------------------------------------------------------- /src/assets/images/metaData/icon/icon3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/icon3.png -------------------------------------------------------------------------------- /src/assets/images/metaData/icon/icon4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/icon4.png -------------------------------------------------------------------------------- /src/assets/images/metaData/icon/icon4_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/icon4_off.png -------------------------------------------------------------------------------- /src/assets/images/metaData/icon/icon5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/icon5.png -------------------------------------------------------------------------------- /src/assets/images/metaData/icon/icon5_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/icon5_off.png -------------------------------------------------------------------------------- /src/assets/images/metaData/icon/jm1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/jm1.png -------------------------------------------------------------------------------- /src/assets/images/metaData/icon/jm2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/jm2.png -------------------------------------------------------------------------------- /src/assets/images/metaData/icon/qx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/qx.png -------------------------------------------------------------------------------- /src/assets/images/metaData/icon/sq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/sq.png -------------------------------------------------------------------------------- /src/assets/images/metaData/icon/zk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/zk.png -------------------------------------------------------------------------------- /src/assets/images/metaData/icon_app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon_app.png -------------------------------------------------------------------------------- /src/assets/images/metaData/icon_comment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon_comment.png -------------------------------------------------------------------------------- /src/assets/images/metaData/icon_datasetTree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon_datasetTree.png -------------------------------------------------------------------------------- /src/assets/images/metaData/icon_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon_description.png -------------------------------------------------------------------------------- /src/assets/images/metaData/icon_more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon_more.png -------------------------------------------------------------------------------- /src/assets/images/metaData/icon_quality.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon_quality.png -------------------------------------------------------------------------------- /src/assets/images/metaData/icon_question.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon_question.png -------------------------------------------------------------------------------- /src/assets/images/metaData/icon_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon_search.png -------------------------------------------------------------------------------- /src/assets/images/metaData/icon_tree-toggle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon_tree-toggle.png -------------------------------------------------------------------------------- /src/assets/images/metaData/icon_usage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon_usage.png -------------------------------------------------------------------------------- /src/assets/images/metaData/importExportIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/importExportIcon.png -------------------------------------------------------------------------------- /src/assets/images/metaData/import_export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/import_export.png -------------------------------------------------------------------------------- /src/assets/images/metaData/import_export_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/import_export_icon.png -------------------------------------------------------------------------------- /src/assets/images/metaData/import_export_icon2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/import_export_icon2.png -------------------------------------------------------------------------------- /src/assets/images/metaData/personal_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/personal_icon.png -------------------------------------------------------------------------------- /src/assets/images/metaData/view_control_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/view_control_icon.png -------------------------------------------------------------------------------- /src/assets/images/nav/icon_delectInput.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/nav/icon_delectInput.png -------------------------------------------------------------------------------- /src/assets/images/nav/icon_delectInputHover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/nav/icon_delectInputHover.png -------------------------------------------------------------------------------- /src/assets/images/nav/icon_nav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/nav/icon_nav.png -------------------------------------------------------------------------------- /src/assets/images/nav/icon_navSearch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/nav/icon_navSearch.png -------------------------------------------------------------------------------- /src/assets/images/nav/icon_navSearchHover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/nav/icon_navSearchHover.png -------------------------------------------------------------------------------- /src/assets/images/nav/icon_nav_personal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/nav/icon_nav_personal.png -------------------------------------------------------------------------------- /src/assets/images/nav/metadata_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/nav/metadata_icon.png -------------------------------------------------------------------------------- /src/assets/images/no-alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/no-alert.png -------------------------------------------------------------------------------- /src/assets/images/nodata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/nodata.png -------------------------------------------------------------------------------- /src/assets/images/owner_operation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/owner_operation.png -------------------------------------------------------------------------------- /src/assets/images/personal_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/personal_icon.png -------------------------------------------------------------------------------- /src/assets/images/private.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/private.png -------------------------------------------------------------------------------- /src/assets/images/search_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/search_close.png -------------------------------------------------------------------------------- /src/assets/images/search_close_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/search_close_active.png -------------------------------------------------------------------------------- /src/assets/images/search_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/search_icon.png -------------------------------------------------------------------------------- /src/assets/images/second_nav_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/second_nav_active.png -------------------------------------------------------------------------------- /src/assets/images/source_nav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/source_nav.png -------------------------------------------------------------------------------- /src/assets/images/sub_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/sub_logo.png -------------------------------------------------------------------------------- /src/assets/images/table_nodata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/table_nodata.png -------------------------------------------------------------------------------- /src/assets/images/tj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/tj.png -------------------------------------------------------------------------------- /src/assets/images/toast/icon_close_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/toast/icon_close_error.png -------------------------------------------------------------------------------- /src/assets/images/toast/icon_close_success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/toast/icon_close_success.png -------------------------------------------------------------------------------- /src/assets/images/toast/icon_close_warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/toast/icon_close_warning.png -------------------------------------------------------------------------------- /src/assets/images/toast/icon_type_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/toast/icon_type_error.png -------------------------------------------------------------------------------- /src/assets/images/toast/icon_type_success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/toast/icon_type_success.png -------------------------------------------------------------------------------- /src/assets/images/toast/icon_type_warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/toast/icon_type_warning.png -------------------------------------------------------------------------------- /src/assets/images/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/user.png -------------------------------------------------------------------------------- /src/assets/images/wl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/wl.png -------------------------------------------------------------------------------- /src/assets/images/yw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/yw.png -------------------------------------------------------------------------------- /src/assets/images/zy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/zy.png -------------------------------------------------------------------------------- /src/assets/less/Entry.less: -------------------------------------------------------------------------------- 1 | .content-main { 2 | height: 100%; 3 | background: #EDEEF0; 4 | padding: 15px; 5 | font-size: 12px !important; 6 | } 7 | .content-main h4 { 8 | font-weight: bold; 9 | font-size: 12px; 10 | } 11 | .header-til h3 { 12 | display: inline-block; 13 | margin: 0 0 15px 0; 14 | color: #757B87; 15 | font-size: 1.17em; 16 | } 17 | .header-til span { 18 | color: #757B87; 19 | } 20 | .use-project, .join-project { 21 | min-height: 280px; 22 | margin: 15px 0; 23 | padding: 15px; 24 | background: #FFF; 25 | box-shadow: 1px 0 5px #CCC; 26 | } 27 | .pro-item li { 28 | float: left; 29 | width: 24.1%; 30 | margin: 0 15px 30px 0; 31 | background: #EFF4F6; 32 | } 33 | .pro-item li:nth-child(4n) { 34 | margin-right: 0; 35 | } 36 | .pro-item li a { 37 | display: block; 38 | padding: 15px; 39 | height: 110px; 40 | text-decoration: none; 41 | } 42 | .pro-item .icon { 43 | float: left; 44 | width: 60px; 45 | height: 80px; 46 | margin-right: 10px; 47 | border-right: 1px solid #CDDADE; 48 | } 49 | .pro-item .icon-cxfx { 50 | background: url("~assets/images/Entry/icon_cxfx.png") left center no-repeat; 51 | } 52 | .pro-item .icon-etl { 53 | background: url("~assets/images/Entry/icon_etl.png") left center no-repeat; 54 | } 55 | .pro-item .icon-rwdd { 56 | background: url("~assets/images/Entry/icon_rwdd.png") left center no-repeat; 57 | } 58 | .pro-item .icon-ysj { 59 | background: url("~assets/images/Entry/icon_ysj.png") left center no-repeat; 60 | } 61 | .pro-item .icon-sjjc { 62 | background: url("~assets/images/Entry/icon_sjjc.png") left center no-repeat; 63 | } 64 | .pro-item h4 { 65 | margin: 5px 0; 66 | color: #444; 67 | } 68 | .pro-item p { 69 | margin: 0; 70 | color: #8A919E; 71 | } 72 | .copyright { 73 | text-align: center; 74 | color: #444; 75 | margin-top: 50px; 76 | } 77 | -------------------------------------------------------------------------------- /src/assets/less/header.less: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | *@header 4 | * 5 | */ 6 | @import './vars'; 7 | .header { 8 | width: 100%; 9 | height: 60px; 10 | font-size: 12px !important; 11 | .logo { 12 | width: 380px; 13 | height: 60px; 14 | background: @themeColor; 15 | } 16 | .menu { 17 | margin-left: 380px; 18 | height: 60px; 19 | background: @themeColor; 20 | } 21 | } 22 | .menu-nav li, .user-menu li { 23 | float: left; 24 | height: 60px; 25 | } 26 | .menu-nav .split-line { 27 | border-right: 1px solid #346F8D 28 | } 29 | .menu-nav li:last-of-type .split-line { 30 | border: 0; 31 | } 32 | .menu-nav li a, .menu-nav li i { 33 | display: inline-block; 34 | height: 60px; 35 | line-height: 60px; 36 | padding: 0 18px; 37 | text-align: center; 38 | color: #FFF; 39 | text-decoration: none; 40 | cursor: pointer; 41 | font-style: normal; 42 | } 43 | .menu-nav li a:hover, .menu-nav li.active a, .menu-nav li i:hover, .menu-nav li.active i { 44 | background: #01354F; 45 | } 46 | .menu-nav li.active .split-line { 47 | border-right: 1px solid transparent; 48 | } 49 | .user-menu li > a { 50 | display: inline-block; 51 | height: 60px; 52 | line-height: 60px; 53 | padding: 0 10px; 54 | text-align: center; 55 | color: #FFF; 56 | text-decoration: none; 57 | } 58 | .user-menu .user { 59 | position: relative; 60 | border-left: 1px solid #346F8D; 61 | background: #014263; 62 | padding-left: 5px; 63 | } 64 | .user-menu .user:hover .userInfo { 65 | display: block; 66 | } 67 | .user-menu .userInfo { 68 | display: none; 69 | position: absolute; 70 | right: 10px; 71 | width: 180px; 72 | height: 130px; 73 | padding: 10px; 74 | background: #FFF; 75 | box-shadow: 0 0 5px #AAA; 76 | z-index: 2300; 77 | } 78 | .arrow-up { 79 | position: absolute; 80 | top: -5px; 81 | right: 10px; 82 | width: 0; 83 | height: 0; 84 | border-left: 5px solid transparent; 85 | border-right: 5px solid transparent; 86 | border-bottom: 5px solid #FFF; 87 | } 88 | .user-menu p { 89 | margin: 0; 90 | padding: 10px; 91 | text-align: center; 92 | border-bottom: 1px solid #EEE; 93 | line-height: 18px; 94 | } 95 | .user-menu p a { 96 | line-height: 18px; 97 | } 98 | .user-menu p:last-child { 99 | border-bottom: 0; 100 | } 101 | .user-menu p a { 102 | color: #444; 103 | } 104 | .user-menu p a:hover { 105 | color: #F00; 106 | } 107 | -------------------------------------------------------------------------------- /src/assets/less/mixin.less: -------------------------------------------------------------------------------- 1 | @blue: #3190e8; 2 | @bc: #e4e4e4; 3 | @fc: #fff; 4 | @imgUrl: '../images'; 5 | 6 | // 背景图片地址和大小 7 | .bis(@url) { 8 | background-image: url("@{imgUrl}/@{url}"); 9 | background-repeat: no-repeat; 10 | background-size: 100% 100%; 11 | } 12 | .bi(@url) { 13 | background-image: url("@{imgUrl}/@{url}"); 14 | } 15 | .bg(@url, @color: #fff) { 16 | background: @color url("@{imgUrl}/@{url}") no-repeat; 17 | } 18 | 19 | //定位全屏 20 | .allcover { 21 | position: absolute; 22 | top: 0; 23 | right: 0; 24 | } 25 | 26 | //transform上下左右居中 27 | .ctt { 28 | position: absolute; 29 | top: 50%; 30 | left: 50%; 31 | transform: translate(-50%, -50%); 32 | } 33 | //定位上下左右居中 34 | .ctp(@width, @height) { 35 | position: absolute; 36 | top: 50%; 37 | left: 50%; 38 | margin-top: -@height/2; 39 | margin-left: -@width/2; 40 | } 41 | 42 | //定位上下居中 43 | .tb { 44 | position: absolute; 45 | top: 50%; 46 | transform: translateY(-50%); 47 | } 48 | 49 | //定位左右居中 50 | .lr { 51 | position: absolute; 52 | left: 50%; 53 | transform: translateX(-50%); 54 | } 55 | 56 | //宽高 57 | .wh(@width, @height) { 58 | width: @width; 59 | height: @height; 60 | } 61 | 62 | //字体大小、行高、字体 63 | .ft(@size, @line-height) { 64 | font-size: @size; 65 | line-height: @line-height; 66 | } 67 | 68 | //字体大小,颜色 69 | .sc(@size, @color) { 70 | font-size: @size; 71 | color: @color; 72 | } 73 | 74 | //flex 布局和 子元素 对其方式 75 | .fj(@type: space-between) { 76 | display: flex; 77 | justify-content: @type; 78 | 79 | } 80 | 81 | .ellipsis { 82 | overflow: hidden; 83 | text-overflow: ellipsis; 84 | white-space: nowrap; 85 | } 86 | -------------------------------------------------------------------------------- /src/assets/less/source.less: -------------------------------------------------------------------------------- 1 | .source-container { 2 | @headerHeight: 30px; 3 | background: #EDEEF0; 4 | height: calc(~"100% - @{headerHeight}"); 5 | overflow-y: auto; 6 | } 7 | .source-header { 8 | display: flex; 9 | justify-content: space-between; 10 | height: 60px; 11 | background: #FFF; 12 | border-bottom: 1px solid #D6D7DD; 13 | .source-title { 14 | float: left; 15 | a, span { 16 | display: inline-block; 17 | line-height: 60px; 18 | margin-right: 10px; 19 | } 20 | a { 21 | padding-left: 22px; 22 | font-weight: bold; 23 | font-size: 14px; 24 | } 25 | span { 26 | color: #9DAAB9; 27 | } 28 | .router-link-active { 29 | border: 0; 30 | background: transparent; 31 | } 32 | } 33 | .project-selector { 34 | float: right; 35 | padding: 10px; 36 | } 37 | } 38 | .chart-header-container { 39 | overflow: hidden; 40 | margin-bottom: 10px; 41 | display: flex; 42 | justify-content: space-between; 43 | .rank-list-select { 44 | position: static; 45 | } 46 | } 47 | .source-body { 48 | padding: 20px; 49 | > .row-List { 50 | min-height: 200px; 51 | } 52 | } 53 | .chartContainer { 54 | height: 400px; 55 | width: 100%; 56 | } 57 | .operate-type-add { 58 | color: #64BC89; 59 | } 60 | .operate-type-del { 61 | color: #F87D88; 62 | } 63 | .rankList-left { 64 | overflow: hidden; 65 | } 66 | .rankList-left .rankList-num { 67 | display: block; 68 | font-style: normal; 69 | width: 20px; 70 | height: 20px; 71 | text-align: center; 72 | line-height: 20px; 73 | border-radius: 50%; 74 | color: #FFF; 75 | margin-right: 15px 76 | } 77 | .rankList-left .rankList-name { 78 | float: left; 79 | } 80 | -------------------------------------------------------------------------------- /src/assets/less/vars.less: -------------------------------------------------------------------------------- 1 | @imgUrl: '../images'; 2 | 3 | @themeColor: #014B70; 4 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "public/components" 3 | } 4 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/.codeclimate.yml: -------------------------------------------------------------------------------- 1 | engines: 2 | eslint: 3 | enabled: true 4 | duplication: 5 | enabled: true 6 | config: 7 | languages: 8 | - javascript 9 | fixme: 10 | enabled: true 11 | ratings: 12 | paths: 13 | - src/**/*.js 14 | - test/**/*.js 15 | exclude_paths: 16 | - public/build/**/* 17 | - public/external/**/* 18 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/.jscsrc: -------------------------------------------------------------------------------- 1 | { 2 | "disallowCommaBeforeLineBreak": null, 3 | "disallowDanglingUnderscores": null, 4 | "disallowEmptyBlocks": true, 5 | "disallowImplicitTypeConversion": [ "string" ], 6 | "disallowKeywordsOnNewLine": [ "else" ], 7 | "disallowKeywords": [ "with" ], 8 | "disallowMixedSpacesAndTabs": true, 9 | "disallowMultipleLineBreaks": true, 10 | "disallowMultipleLineStrings": null, 11 | "disallowMultipleVarDecl": true, 12 | "disallowPaddingNewlinesInBlocks": null, 13 | "disallowQuotedKeysInObjects": null, 14 | "disallowSpaceAfterBinaryOperators": null, 15 | "disallowSpaceAfterLineComment": null, 16 | "disallowSpaceAfterObjectKeys": null, 17 | "disallowSpaceAfterPrefixUnaryOperators": true, 18 | "disallowSpaceBeforeBinaryOperators": null, 19 | "disallowSpaceBeforeBlockStatements": null, 20 | "disallowSpaceBeforePostfixUnaryOperators": true, 21 | "disallowSpacesInConditionalExpression": null, 22 | "disallowSpacesInFunctionDeclaration": null, 23 | "disallowSpacesInNamedFunctionExpression": null, 24 | "disallowSpacesInsideArrayBrackets": null, 25 | "disallowSpacesInsideObjectBrackets": null, 26 | "disallowSpacesInsideParentheses": null, 27 | "disallowTrailingComma": null, 28 | "disallowTrailingWhitespace": true, 29 | "disallowYodaConditions": true, 30 | "maximumLineLength": 120, 31 | "requireAlignedObjectValues": null, 32 | "requireBlocksOnNewline": true, 33 | "requireCamelCaseOrUpperCaseIdentifiers": "ignoreProperties", 34 | "requireCapitalizedConstructors": true, 35 | "requireCommaBeforeLineBreak": true, 36 | "requireCurlyBraces": [ "if", "else", "for", "while", "do", "try", "catch" ], 37 | "requireDotNotation": true, 38 | "requireKeywordsOnNewLine": null, 39 | "requireLineFeedAtFileEnd": true, 40 | "requireMultipleVarDecl": null, 41 | "requireOperatorBeforeLineBreak": true, 42 | "requirePaddingNewlinesInBlocks": null, 43 | "requireParenthesesAroundIIFE": true, 44 | "requireSpaceAfterBinaryOperators": null, 45 | "requireSpaceAfterKeywords": [ "if", "else", "return", "try", "catch" ], 46 | "requireSpaceAfterLineComment": null, 47 | "requireSpaceAfterObjectKeys": null, 48 | "requireSpaceAfterPrefixUnaryOperators": null, 49 | "requireSpaceBeforeBinaryOperators": true, 50 | "requireSpaceBeforeBlockStatements": true, 51 | "requireSpaceBeforePostfixUnaryOperators": null, 52 | "requireSpacesInConditionalExpression": true, 53 | "requireSpacesInFunctionDeclaration": { 54 | "beforeOpeningCurlyBrace": true 55 | }, 56 | "requireSpacesInFunctionExpression": { 57 | "beforeOpeningCurlyBrace": true 58 | }, 59 | "requireSpacesInNamedFunctionExpression": { 60 | "beforeOpeningCurlyBrace": true 61 | }, 62 | "requireSpacesInsideArrayBrackets": null, 63 | "requireSpacesInsideObjectBrackets": "allButNested", 64 | "requireSpacesInsideParentheses": null, 65 | "requireTrailingComma": null, 66 | "safeContextKeyword": true, 67 | "validateIndentation": 2, 68 | "validateJSDoc": { 69 | "checkParamNames": true, 70 | "requireParamTypes": true 71 | }, 72 | "validateLineBreaks": "LF", 73 | "validateQuoteMarks": true 74 | } -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./jshintrc.json" 3 | } 4 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | lib-cov 3 | *.seed 4 | *.log 5 | *.csv 6 | *.dat 7 | *.out 8 | *.pid 9 | *.gz 10 | .DS_Store 11 | 12 | pids 13 | logs 14 | results 15 | coverage 16 | 17 | npm-debug.log 18 | 19 | gh-pages -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.10" 4 | 5 | before_install: 6 | - "export BROWSERS=Firefox" 7 | - "export DISPLAY=:99.0" 8 | - "sh -e /etc/init.d/xvfb start" 9 | 10 | after_success: 11 | - npm run cover-publish 12 | addons: 13 | code_climate: 14 | repo_token: 15 | # # get your token from https://codeclimate.com/github/benjamine/jsondiffpatch 16 | # gem install travis 17 | # travis encrypt 18 | secure: "IZabDj3HrrCNOfhK0v+Q/am9AE5zYzF13IYB64q8wSUHcSxxhdrxSyLvjIiOfLe9W+h+MAW1+OuQkldUs/yd/fJjy44GE4ugUKY+9RP3TBm7hQRF4KEwIx2BMK4HVNazOkWz8nsnq4cfPy9pFEumcKb/O7TL2gK6RS6dIfNsKw0=" 19 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/MIT-LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/libs/jsondiffpatch/MIT-LICENSE.txt -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/Makefile: -------------------------------------------------------------------------------- 1 | 2 | bundle: node_modules 3 | @./node_modules/.bin/gulp bundle 4 | 5 | test: node_modules 6 | @./node_modules/.bin/gulp test 7 | node_modules: 8 | npm install 9 | watch: node_modules 10 | @./node_modules/.bin/gulp watch 11 | 12 | test-browser: node_modules 13 | @./node_modules/.bin/gulp test-browser 14 | watch-browser: node_modules 15 | @./node_modules/.bin/gulp watch-browser 16 | 17 | .PHONY: test watch bundle test-browser watch-browser 18 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/badges.md: -------------------------------------------------------------------------------- 1 | [![Build Status](https://secure.travis-ci.org/benjamine/jsondiffpatch.png)](http://travis-ci.org/benjamine/jsondiffpatch) 2 | [![Code Climate](https://codeclimate.com/github/benjamine/jsondiffpatch/badges/gpa.svg)](https://codeclimate.com/github/benjamine/jsondiffpatch) 3 | [![Test Coverage](https://codeclimate.com/github/benjamine/jsondiffpatch/badges/coverage.svg)](https://codeclimate.com/github/benjamine/jsondiffpatch) 4 | [![NPM version](https://badge.fury.io/js/jsondiffpatch.png)](http://badge.fury.io/js/jsondiffpatch) 5 | [![NPM dependencies](https://david-dm.org/benjamine/jsondiffpatch.png)](https://david-dm.org/benjamine/jsondiffpatch) 6 | [![Bower version](https://badge.fury.io/bo/jsondiffpatch.png)](http://badge.fury.io/bo/jsondiffpatch) 7 | 8 | [![browser support](https://ci.testling.com/benjamine/jsondiffpatch.png) 9 | ](https://ci.testling.com/benjamine/jsondiffpatch) 10 | 11 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/bin/jsondiffpatch: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var jsondiffpatch = require('../src/main'); 4 | 5 | var fs = require('fs'); 6 | 7 | var fileLeft = process.argv[2], fileRight = process.argv[3]; 8 | 9 | if (!fileLeft || !fileRight){ 10 | console.log('\n USAGE: jsondiffpatch left.json right.json'); 11 | return; 12 | } 13 | 14 | var left = JSON.parse(fs.readFileSync(fileLeft)); 15 | var right = JSON.parse(fs.readFileSync(fileRight)); 16 | 17 | var delta = jsondiffpatch.diff(left, right); 18 | jsondiffpatch.console.log(delta); 19 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jsondiffpatch", 3 | "description": "Diff & Patch for Javascript objects", 4 | "main": "public/build/jsondiffpatch.js", 5 | "license": "MIT", 6 | "authors": [ 7 | "Benjamin Eidelman " 8 | ], 9 | "repository": { 10 | "type": "git", 11 | "url": "git://github.com/benjamine/jsondiffpatch.git" 12 | }, 13 | "keywords": [ 14 | "json", 15 | "diff", 16 | "patch" 17 | ], 18 | "ignore": [ 19 | "test", 20 | "demo", 21 | "docs", 22 | ".travis.yml", 23 | "karma.conf.js", 24 | "gulpfile.js" 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/docs/formatters.md: -------------------------------------------------------------------------------- 1 | Formatters 2 | ========== 3 | 4 | Some formatters are included that let you convert a JSON delta into other formats, you can see some of these used in the [Live Demo](http://benjamine.github.com/jsondiffpatch/demo/index.html) 5 | 6 | Html 7 | ---- 8 | 9 | add ```build/formatters.js``` and ```src/formatters/html.css``` to your page, and: 10 | 11 | ``` javascript 12 | var delta = jsondiffpatch.diff(left, right); 13 | // left is optional, if specified unchanged values will be visible too 14 | document.getElementBy('the-diff').innerHTML = jsondiffpatch.formatters.html.format(delta, left); 15 | 16 | 17 | // Also you can dinamically show/hide unchanged values 18 | jsondiffpatch.formatters.html.showUnchanged(); 19 | jsondiffpatch.formatters.html.hideUnchanged(); 20 | // these will also adjust array move arrows (SVG), which is useful if something alters the html layout 21 | ``` 22 | 23 | Html can be generated sever-side the same way, just remember to include (or embed) ```/src/formatters/html.css``` when rendering. 24 | 25 | Annotated JSON 26 | ---- 27 | 28 | This will render the original JSON delta in html, with annotations aside explaining the meaning of each part. This attempts to make the JSON delta format self-explained. 29 | 30 | add ```build/formatters.js``` and ```src/formatters/annotated.css``` to your page, and: 31 | 32 | ``` javascript 33 | var delta = jsondiffpatch.diff(left, right); 34 | document.getElementBy('the-diff').innerHTML = jsondiffpatch.formatters.annotated.format(delta); 35 | ``` 36 | 37 | Html can be generated sever-side the same way, just remember to include (or embed) ```/src/formatters/annotated.css``` when rendering. 38 | 39 | Console 40 | ------- 41 | 42 | Node.js colored output (thanks to [chalk](https://github.com/sindresorhus/chalk)!). 43 | It's used by the CLI: 44 | 45 | ![console_demo!](../public/demo/consoledemo.png) 46 | 47 | but you can use it programmatically too: 48 | 49 | ``` javascript 50 | var delta = jsondiffpatch.diff(left, right); 51 | var output = jsondiffpatch.formatters.console.format(delta); 52 | console.log(delta); 53 | 54 | // or simply 55 | jsondiffpatch.console.log(delta); 56 | ``` 57 | 58 | Create one 59 | ---------- 60 | 61 | Of course, first step to create a formatters is understanding the [delta format](deltas.md). 62 | 63 | To simplify the creation of new formatters, you can base yours in the ```BaseFormatter``` included. All the builtin formatters do, check the [formatters](../src/formatters) folder to get started. 64 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/gulp-tasks/fiberglass.js: -------------------------------------------------------------------------------- 1 | var path = require('path'); 2 | var gulp = require('gulp'); 3 | var fiberglass = require('fiberglass'); 4 | 5 | fiberglass.tasks(gulp, path.join(__dirname, '..')).register( 6 | '' 7 | ); 8 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/gulpfile.js: -------------------------------------------------------------------------------- 1 | require('bulk-require')(__dirname + '/gulp-tasks', '*.js'); 2 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/karma.conf.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | config.set({ 3 | basePath: '.', 4 | frameworks: ['mocha'], 5 | files: [ 6 | 'public/build/jsondiffpatch.js', 7 | 'public/build/jsondiffpatch-formatters.js', 8 | 'public/external/diff_match_patch_uncompressed.js', 9 | 'public/build/test-bundle.js' 10 | ], 11 | reporters : ['spec', 'growler'] 12 | }); 13 | }; 14 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/public/demo/consoledemo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/libs/jsondiffpatch/public/demo/consoledemo.png -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/public/demo/left.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Pluto", 3 | "orbital_speed_kms": 4.7, 4 | "category": "planet", 5 | "composition": [ 6 | "methane", 7 | "nitrogen" 8 | ] 9 | } -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/public/demo/numeric-plugin.js: -------------------------------------------------------------------------------- 1 | /* 2 | Plugin a new diff filter 3 | */ 4 | (function() { 5 | var assertSame = function() {}; 6 | /* global jsondiffpatch */ 7 | var diffpatcher = jsondiffpatch.create(); 8 | var NUMERIC_DIFFERENCE = -8; 9 | 10 | var numericDiffFilter = function(context) { 11 | if (typeof context.left === 'number' && typeof context.right === 'number') { 12 | context.setResult([0, context.right - context.left, NUMERIC_DIFFERENCE]).exit(); 13 | } 14 | }; 15 | // a filterName is useful if I want to allow other filters to be inserted before/after this one 16 | numericDiffFilter.filterName = 'numeric'; 17 | 18 | // to decide where to insert your filter you can look at the pipe's filter list 19 | assertSame(diffpatcher.processor.pipes.diff.list(), ['collectChildren', 'trivial', 'dates', 'texts', 'objects', 'arrays']); 20 | 21 | // insert my new filter, right before trivial one 22 | diffpatcher.processor.pipes.diff.before('trivial', numericDiffFilter); 23 | 24 | // try it 25 | var delta = diffpatcher.diff({ 26 | population: 400 27 | }, { 28 | population: 403 29 | }); 30 | assertSame(delta, [0, 3, NUMERIC_DIFFERENCE]); 31 | 32 | /* 33 | Let's make the corresponding patch filter that will handle the new delta type 34 | */ 35 | 36 | var numericPatchFilter = function(context) { 37 | if (context.delta && Array.isArray(context.delta) && context.delta[2] === NUMERIC_DIFFERENCE) { 38 | context.setResult(context.left + context.delta[1]).exit(); 39 | } 40 | }; 41 | numericPatchFilter.filterName = 'numeric'; 42 | diffpatcher.processor.pipes.patch.before('trivial', numericPatchFilter); 43 | 44 | // try it 45 | var right = diffpatcher.patch({ 46 | population: 400 47 | }, delta); 48 | assertSame(right, { 49 | population: 403 50 | }); 51 | 52 | // patch twice! 53 | diffpatcher.patch(right, delta); 54 | assertSame(right, { 55 | population: 406 56 | }); 57 | 58 | /* 59 | To complete the plugin, let's add the reverse filter, so numeric deltas can be reversed 60 | (this is needed for unpatching too) 61 | */ 62 | 63 | var numericReverseFilter = function(context) { 64 | if (context.nested) { 65 | return; 66 | } 67 | if (context.delta && Array.isArray(context.delta) && context.delta[2] === NUMERIC_DIFFERENCE) { 68 | context.setResult([0, -context.delta[1], NUMERIC_DIFFERENCE]).exit(); 69 | } 70 | }; 71 | numericReverseFilter.filterName = 'numeric'; 72 | diffpatcher.processor.pipes.reverse.after('trivial', numericReverseFilter); 73 | 74 | // log pipe steps 75 | diffpatcher.processor.pipes.reverse.debug = true; 76 | 77 | // try it 78 | var reverseDelta = diffpatcher.reverse(delta); 79 | assertSame(reverseDelta, [0, -3, NUMERIC_DIFFERENCE]); 80 | 81 | // unpatch twice! 82 | diffpatcher.unpatch(right, delta); 83 | diffpatcher.unpatch(right, delta); 84 | assertSame(right, { 85 | population: 400 86 | }); 87 | 88 | })(); 89 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/public/demo/right.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Pluto", 3 | "orbital_speed_kms": 4.7, 4 | "category": "dwarf planet", 5 | "composition": [ 6 | "nitrogen", 7 | "methane", 8 | "carbon monoxide" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/public/demo/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: Georgia, serif; 3 | min-width: 600px; 4 | } 5 | 6 | h1 { 7 | margin: 4px; 8 | } 9 | 10 | header > * { 11 | display: inline-block; 12 | } 13 | 14 | #description { 15 | margin-left: 10px; 16 | font-size: x-large; 17 | } 18 | 19 | #external-link { 20 | font-size: smaller; 21 | vertical-align: top; 22 | margin-top: 10px; 23 | } 24 | 25 | h2 { 26 | display: inline-block; 27 | margin: 5px 0; 28 | } 29 | 30 | 31 | a#fork_me { 32 | position: absolute; 33 | top: 0; 34 | right: 0; 35 | } 36 | 37 | .json-input > div { 38 | float: left; 39 | width: 50%; 40 | } 41 | 42 | .json-input > div 43 | { 44 | text-align: center; 45 | } 46 | 47 | .CodeMirror 48 | { 49 | text-align: initial; 50 | border: 1px solid #ccc; 51 | } 52 | 53 | .json-input > div > textarea { 54 | width: 95%; 55 | height: 200px; 56 | } 57 | 58 | .prettyfy { 59 | font-weight: bold; 60 | font-size: smaller; 61 | margin-left: 5px; 62 | } 63 | 64 | .buttons { 65 | width: 100%; 66 | text-align:center; 67 | height: 1px; 68 | } 69 | 70 | .buttons > div 71 | { 72 | margin: 0 auto; 73 | } 74 | 75 | .json-error { 76 | background: #ffdfdf; 77 | -webkit-transition: all 1s; 78 | transition: all 1s; 79 | } 80 | 81 | .error-message { 82 | font-weight: bold; 83 | color: red; 84 | font-size: smaller; 85 | min-height: 20px; 86 | display: block; 87 | } 88 | 89 | .header-options { 90 | font-weight: normal; 91 | margin-left: 30px; 92 | display: inline-block; 93 | } 94 | 95 | #delta-panel-visual { 96 | width: 100%; 97 | overflow: auto; 98 | } 99 | 100 | #visualdiff { 101 | margin-top: 4px; 102 | } 103 | 104 | #json-delta { 105 | font-family: 'Bitstream Vera Sans Mono', 'DejaVu Sans Mono', Monaco, Courier, monospace; 106 | font-size: 12px; 107 | margin: 0; 108 | padding: 0; 109 | width: 100%; 110 | height: 200px; 111 | } 112 | 113 | #delta-panel-json > p { 114 | margin: 4px; 115 | } 116 | 117 | footer { 118 | font-size: small; 119 | text-align: center; 120 | margin: 40px; 121 | } 122 | 123 | .credits { 124 | font-size: smaller; 125 | } 126 | 127 | .credits a { 128 | text-decoration: none; 129 | color: black; 130 | } 131 | 132 | .credits a:hover { 133 | text-decoration: underline; 134 | } 135 | 136 | .results { 137 | margin-top: 20px; 138 | } 139 | 140 | .results > div { 141 | vertical-align: top; 142 | display: inline-block; 143 | } 144 | 145 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/public/formatters-styles/annotated.css: -------------------------------------------------------------------------------- 1 | .jsondiffpatch-annotated-delta { 2 | font-family: 'Bitstream Vera Sans Mono', 'DejaVu Sans Mono', Monaco, Courier, monospace; 3 | font-size: 12px; 4 | margin: 0; 5 | padding: 0 0 0 12px; 6 | display: inline-block; 7 | } 8 | .jsondiffpatch-annotated-delta pre { 9 | font-family: 'Bitstream Vera Sans Mono', 'DejaVu Sans Mono', Monaco, Courier, monospace; 10 | font-size: 12px; 11 | margin: 0; 12 | padding: 0; 13 | display: inline-block; 14 | } 15 | .jsondiffpatch-annotated-delta td { 16 | margin: 0; 17 | padding: 0; 18 | } 19 | .jsondiffpatch-annotated-delta td pre:hover { 20 | font-weight: bold; 21 | } 22 | td.jsondiffpatch-delta-note { 23 | font-style: italic; 24 | padding-left: 10px; 25 | } 26 | .jsondiffpatch-delta-note > div { 27 | margin: 0; 28 | padding: 0; 29 | } 30 | .jsondiffpatch-delta-note pre { 31 | font-style: normal; 32 | } 33 | .jsondiffpatch-annotated-delta .jsondiffpatch-delta-note { 34 | color: #777; 35 | } 36 | .jsondiffpatch-annotated-delta tr:hover { 37 | background: #ffc; 38 | } 39 | .jsondiffpatch-annotated-delta tr:hover > td.jsondiffpatch-delta-note { 40 | color: black; 41 | } 42 | .jsondiffpatch-error { 43 | background: red; 44 | color: white; 45 | font-weight: bold; 46 | } 47 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/public/test/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | jsondiffpatch behavior 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 44 | 45 | 46 |

jsondiffpatch behavior

47 | 55 |
56 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/src/clone.js: -------------------------------------------------------------------------------- 1 | 2 | var isArray = (typeof Array.isArray === 'function') ? 3 | // use native function 4 | Array.isArray : 5 | // use instanceof operator 6 | function(a) { 7 | return a instanceof Array; 8 | }; 9 | 10 | function cloneRegExp(re) { 11 | var regexMatch = /^\/(.*)\/([gimyu]*)$/.exec(re.toString()); 12 | return new RegExp(regexMatch[1], regexMatch[2]); 13 | } 14 | 15 | function clone(arg) { 16 | if (typeof arg !== 'object') { 17 | return arg; 18 | } 19 | if (arg === null) { 20 | return null; 21 | } 22 | if (isArray(arg)) { 23 | return arg.map(clone); 24 | } 25 | if (arg instanceof Date) { 26 | return new Date(arg.getTime()); 27 | } 28 | if (arg instanceof RegExp) { 29 | return cloneRegExp(arg); 30 | } 31 | var cloned = {}; 32 | for (var name in arg) { 33 | if (Object.prototype.hasOwnProperty.call(arg, name)) { 34 | cloned[name] = clone(arg[name]); 35 | } 36 | } 37 | return cloned; 38 | } 39 | 40 | module.exports = clone; 41 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/src/contexts/context.js: -------------------------------------------------------------------------------- 1 | 2 | var Pipe = require('../pipe').Pipe; 3 | 4 | var Context = function Context(){ 5 | }; 6 | 7 | Context.prototype.setResult = function(result) { 8 | this.result = result; 9 | this.hasResult = true; 10 | return this; 11 | }; 12 | 13 | Context.prototype.exit = function() { 14 | this.exiting = true; 15 | return this; 16 | }; 17 | 18 | Context.prototype.switchTo = function(next, pipe) { 19 | if (typeof next === 'string' || next instanceof Pipe) { 20 | this.nextPipe = next; 21 | } else { 22 | this.next = next; 23 | if (pipe) { 24 | this.nextPipe = pipe; 25 | } 26 | } 27 | return this; 28 | }; 29 | 30 | Context.prototype.push = function(child, name) { 31 | child.parent = this; 32 | if (typeof name !== 'undefined') { 33 | child.childName = name; 34 | } 35 | child.root = this.root || this; 36 | child.options = child.options || this.options; 37 | if (!this.children) { 38 | this.children = [child]; 39 | this.nextAfterChildren = this.next || null; 40 | this.next = child; 41 | } else { 42 | this.children[this.children.length - 1].next = child; 43 | this.children.push(child); 44 | } 45 | child.next = this; 46 | return this; 47 | }; 48 | 49 | exports.Context = Context; 50 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/src/contexts/diff.js: -------------------------------------------------------------------------------- 1 | var Context = require('./context').Context; 2 | var defaultClone = require('../clone'); 3 | 4 | var DiffContext = function DiffContext(left, right) { 5 | this.left = left; 6 | this.right = right; 7 | this.pipe = 'diff'; 8 | }; 9 | 10 | DiffContext.prototype = new Context(); 11 | 12 | DiffContext.prototype.setResult = function(result) { 13 | if (this.options.cloneDiffValues && typeof result === 'object') { 14 | var clone = typeof this.options.cloneDiffValues === 'function' ? 15 | this.options.cloneDiffValues : defaultClone; 16 | if (typeof result[0] === 'object') { 17 | result[0] = clone(result[0]); 18 | } 19 | if (typeof result[1] === 'object') { 20 | result[1] = clone(result[1]); 21 | } 22 | } 23 | return Context.prototype.setResult.apply(this, arguments); 24 | }; 25 | 26 | exports.DiffContext = DiffContext; 27 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/src/contexts/patch.js: -------------------------------------------------------------------------------- 1 | var Context = require('./context').Context; 2 | 3 | var PatchContext = function PatchContext(left, delta) { 4 | this.left = left; 5 | this.delta = delta; 6 | this.pipe = 'patch'; 7 | }; 8 | 9 | PatchContext.prototype = new Context(); 10 | 11 | exports.PatchContext = PatchContext; 12 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/src/contexts/reverse.js: -------------------------------------------------------------------------------- 1 | var Context = require('./context').Context; 2 | 3 | var ReverseContext = function ReverseContext(delta) { 4 | this.delta = delta; 5 | this.pipe = 'reverse'; 6 | }; 7 | 8 | ReverseContext.prototype = new Context(); 9 | 10 | exports.ReverseContext = ReverseContext; 11 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/src/date-reviver.js: -------------------------------------------------------------------------------- 1 | // use as 2nd parameter for JSON.parse to revive Date instances 2 | module.exports = function dateReviver(key, value) { 3 | var parts; 4 | if (typeof value === 'string') { 5 | parts = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d*))?(Z|([+\-])(\d{2}):(\d{2}))$/.exec(value); 6 | if (parts) { 7 | return new Date(Date.UTC(+parts[1], +parts[2] - 1, +parts[3], +parts[4], +parts[5], +parts[6], +(parts[7] || 0))); 8 | } 9 | } 10 | return value; 11 | }; 12 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/src/diffpatcher.js: -------------------------------------------------------------------------------- 1 | var Processor = require('./processor').Processor; 2 | var Pipe = require('./pipe').Pipe; 3 | var DiffContext = require('./contexts/diff').DiffContext; 4 | var PatchContext = require('./contexts/patch').PatchContext; 5 | var ReverseContext = require('./contexts/reverse').ReverseContext; 6 | 7 | var clone = require('./clone'); 8 | 9 | var trivial = require('./filters/trivial'); 10 | var nested = require('./filters/nested'); 11 | var arrays = require('./filters/arrays'); 12 | var dates = require('./filters/dates'); 13 | var texts = require('./filters/texts'); 14 | 15 | var DiffPatcher = function DiffPatcher(options) { 16 | this.processor = new Processor(options); 17 | this.processor.pipe(new Pipe('diff').append( 18 | nested.collectChildrenDiffFilter, 19 | trivial.diffFilter, 20 | dates.diffFilter, 21 | texts.diffFilter, 22 | nested.objectsDiffFilter, 23 | arrays.diffFilter 24 | ).shouldHaveResult()); 25 | this.processor.pipe(new Pipe('patch').append( 26 | nested.collectChildrenPatchFilter, 27 | arrays.collectChildrenPatchFilter, 28 | trivial.patchFilter, 29 | texts.patchFilter, 30 | nested.patchFilter, 31 | arrays.patchFilter 32 | ).shouldHaveResult()); 33 | this.processor.pipe(new Pipe('reverse').append( 34 | nested.collectChildrenReverseFilter, 35 | arrays.collectChildrenReverseFilter, 36 | trivial.reverseFilter, 37 | texts.reverseFilter, 38 | nested.reverseFilter, 39 | arrays.reverseFilter 40 | ).shouldHaveResult()); 41 | }; 42 | 43 | DiffPatcher.prototype.options = function() { 44 | return this.processor.options.apply(this.processor, arguments); 45 | }; 46 | 47 | DiffPatcher.prototype.diff = function(left, right) { 48 | return this.processor.process(new DiffContext(left, right)); 49 | }; 50 | 51 | DiffPatcher.prototype.patch = function(left, delta) { 52 | return this.processor.process(new PatchContext(left, delta)); 53 | }; 54 | 55 | DiffPatcher.prototype.reverse = function(delta) { 56 | return this.processor.process(new ReverseContext(delta)); 57 | }; 58 | 59 | DiffPatcher.prototype.unpatch = function(right, delta) { 60 | return this.patch(right, this.reverse(delta)); 61 | }; 62 | 63 | DiffPatcher.prototype.clone = function(value) { 64 | return clone(value); 65 | }; 66 | 67 | exports.DiffPatcher = DiffPatcher; 68 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/src/environment.js: -------------------------------------------------------------------------------- 1 | 2 | exports.isBrowser = typeof window !== 'undefined'; 3 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/src/filters/dates.js: -------------------------------------------------------------------------------- 1 | var diffFilter = function datesDiffFilter(context) { 2 | if (context.left instanceof Date) { 3 | if (context.right instanceof Date) { 4 | if (context.left.getTime() !== context.right.getTime()) { 5 | context.setResult([context.left, context.right]); 6 | } else { 7 | context.setResult(undefined); 8 | } 9 | } else { 10 | context.setResult([context.left, context.right]); 11 | } 12 | context.exit(); 13 | } else if (context.right instanceof Date) { 14 | context.setResult([context.left, context.right]).exit(); 15 | } 16 | }; 17 | diffFilter.filterName = 'dates'; 18 | 19 | exports.diffFilter = diffFilter; 20 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/src/filters/lcs.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | LCS implementation that supports arrays or strings 4 | 5 | reference: http://en.wikipedia.org/wiki/Longest_common_subsequence_problem 6 | 7 | */ 8 | 9 | var defaultMatch = function(array1, array2, index1, index2) { 10 | return array1[index1] === array2[index2]; 11 | }; 12 | 13 | var lengthMatrix = function(array1, array2, match, context) { 14 | var len1 = array1.length; 15 | var len2 = array2.length; 16 | var x, y; 17 | 18 | // initialize empty matrix of len1+1 x len2+1 19 | var matrix = [len1 + 1]; 20 | for (x = 0; x < len1 + 1; x++) { 21 | matrix[x] = [len2 + 1]; 22 | for (y = 0; y < len2 + 1; y++) { 23 | matrix[x][y] = 0; 24 | } 25 | } 26 | matrix.match = match; 27 | // save sequence lengths for each coordinate 28 | for (x = 1; x < len1 + 1; x++) { 29 | for (y = 1; y < len2 + 1; y++) { 30 | if (match(array1, array2, x - 1, y - 1, context)) { 31 | matrix[x][y] = matrix[x - 1][y - 1] + 1; 32 | } else { 33 | matrix[x][y] = Math.max(matrix[x - 1][y], matrix[x][y - 1]); 34 | } 35 | } 36 | } 37 | return matrix; 38 | }; 39 | 40 | var backtrack = function(matrix, array1, array2, index1, index2, context) { 41 | if (index1 === 0 || index2 === 0) { 42 | return { 43 | sequence: [], 44 | indices1: [], 45 | indices2: [] 46 | }; 47 | } 48 | 49 | if (matrix.match(array1, array2, index1 - 1, index2 - 1, context)) { 50 | var subsequence = backtrack(matrix, array1, array2, index1 - 1, index2 - 1, context); 51 | subsequence.sequence.push(array1[index1 - 1]); 52 | subsequence.indices1.push(index1 - 1); 53 | subsequence.indices2.push(index2 - 1); 54 | return subsequence; 55 | } 56 | 57 | if (matrix[index1][index2 - 1] > matrix[index1 - 1][index2]) { 58 | return backtrack(matrix, array1, array2, index1, index2 - 1, context); 59 | } else { 60 | return backtrack(matrix, array1, array2, index1 - 1, index2, context); 61 | } 62 | }; 63 | 64 | var get = function(array1, array2, match, context) { 65 | context = context || {}; 66 | var matrix = lengthMatrix(array1, array2, match || defaultMatch, context); 67 | var result = backtrack(matrix, array1, array2, array1.length, array2.length, context); 68 | if (typeof array1 === 'string' && typeof array2 === 'string') { 69 | result.sequence = result.sequence.join(''); 70 | } 71 | return result; 72 | }; 73 | 74 | exports.get = get; 75 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/src/formatters/index.js: -------------------------------------------------------------------------------- 1 | var environment = require('../environment'); 2 | 3 | exports.base = require('./base'); 4 | exports.html = require('./html'); 5 | exports.annotated = require('./annotated'); 6 | exports.jsonpatch = require('./jsonpatch'); 7 | 8 | if (!environment.isBrowser) { 9 | var consoleModuleName = './console'; 10 | exports.console = require(consoleModuleName); 11 | } 12 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/src/main-formatters.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = require('./formatters'); 3 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/src/main-full.js: -------------------------------------------------------------------------------- 1 | var environment = require('./environment'); 2 | 3 | if (environment.isBrowser) { 4 | /* global window */ 5 | /* jshint camelcase: false */ 6 | window.diff_match_patch = require('../public/external/diff_match_patch_uncompressed'); 7 | /* jshint camelcase: true */ 8 | } 9 | 10 | module.exports = require('./main'); 11 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/src/main.js: -------------------------------------------------------------------------------- 1 | 2 | var environment = require('./environment'); 3 | 4 | var DiffPatcher = require('./diffpatcher').DiffPatcher; 5 | exports.DiffPatcher = DiffPatcher; 6 | 7 | exports.create = function(options){ 8 | return new DiffPatcher(options); 9 | }; 10 | 11 | exports.dateReviver = require('./date-reviver'); 12 | 13 | var defaultInstance; 14 | 15 | exports.diff = function() { 16 | if (!defaultInstance) { 17 | defaultInstance = new DiffPatcher(); 18 | } 19 | return defaultInstance.diff.apply(defaultInstance, arguments); 20 | }; 21 | 22 | exports.patch = function() { 23 | if (!defaultInstance) { 24 | defaultInstance = new DiffPatcher(); 25 | } 26 | return defaultInstance.patch.apply(defaultInstance, arguments); 27 | }; 28 | 29 | exports.unpatch = function() { 30 | if (!defaultInstance) { 31 | defaultInstance = new DiffPatcher(); 32 | } 33 | return defaultInstance.unpatch.apply(defaultInstance, arguments); 34 | }; 35 | 36 | exports.reverse = function() { 37 | if (!defaultInstance) { 38 | defaultInstance = new DiffPatcher(); 39 | } 40 | return defaultInstance.reverse.apply(defaultInstance, arguments); 41 | }; 42 | 43 | exports.clone = function() { 44 | if (!defaultInstance) { 45 | defaultInstance = new DiffPatcher(); 46 | } 47 | return defaultInstance.clone.apply(defaultInstance, arguments); 48 | }; 49 | 50 | 51 | if (environment.isBrowser) { 52 | exports.homepage = '{{package-homepage}}'; 53 | exports.version = '{{package-version}}'; 54 | } else { 55 | var packageInfoModuleName = '../package.json'; 56 | var packageInfo = require(packageInfoModuleName); 57 | exports.homepage = packageInfo.homepage; 58 | exports.version = packageInfo.version; 59 | 60 | var formatterModuleName = './formatters'; 61 | var formatters = require(formatterModuleName); 62 | exports.formatters = formatters; 63 | // shortcut for console 64 | exports.console = formatters.console; 65 | } 66 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/src/processor.js: -------------------------------------------------------------------------------- 1 | 2 | var Processor = function Processor(options){ 3 | this.selfOptions = options || {}; 4 | this.pipes = {}; 5 | }; 6 | 7 | Processor.prototype.options = function(options) { 8 | if (options) { 9 | this.selfOptions = options; 10 | } 11 | return this.selfOptions; 12 | }; 13 | 14 | Processor.prototype.pipe = function(name, pipe) { 15 | if (typeof name === 'string') { 16 | if (typeof pipe === 'undefined') { 17 | return this.pipes[name]; 18 | } else { 19 | this.pipes[name] = pipe; 20 | } 21 | } 22 | if (name && name.name) { 23 | pipe = name; 24 | if (pipe.processor === this) { return pipe; } 25 | this.pipes[pipe.name] = pipe; 26 | } 27 | pipe.processor = this; 28 | return pipe; 29 | }; 30 | 31 | Processor.prototype.process = function(input, pipe) { 32 | var context = input; 33 | context.options = this.options(); 34 | var nextPipe = pipe || input.pipe || 'default'; 35 | var lastPipe, lastContext; 36 | while (nextPipe) { 37 | if (typeof context.nextAfterChildren !== 'undefined') { 38 | // children processed and coming back to parent 39 | context.next = context.nextAfterChildren; 40 | context.nextAfterChildren = null; 41 | } 42 | 43 | if (typeof nextPipe === 'string') { 44 | nextPipe = this.pipe(nextPipe); 45 | } 46 | nextPipe.process(context); 47 | lastContext = context; 48 | lastPipe = nextPipe; 49 | nextPipe = null; 50 | if (context) { 51 | if (context.next) { 52 | context = context.next; 53 | nextPipe = lastContext.nextPipe || context.pipe || lastPipe; 54 | } 55 | } 56 | } 57 | return context.hasResult ? context.result : undefined; 58 | }; 59 | 60 | exports.Processor = Processor; 61 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/test/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../jshintrc.json", 3 | // Custom Globals 4 | "predef" : [ 5 | "mocha", 6 | "describe", 7 | "when", 8 | "before", 9 | "beforeEach", 10 | "after", 11 | "afterEach", 12 | "it", 13 | "expect", 14 | "jsondiffpatch" 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/test/mocha.opts: -------------------------------------------------------------------------------- 1 | --reporter spec 2 | --growl 3 | --ui bdd 4 | test/index.js 5 | -------------------------------------------------------------------------------- /src/assets/libs/jsondiffpatch/test/util/globals.js: -------------------------------------------------------------------------------- 1 | 2 | global.when = function(){ 3 | var args = Array.prototype.slice.apply(arguments); 4 | args[0] = 'when ' + args[0]; 5 | describe.apply(this, args); 6 | }; 7 | global.expect = require('expect.js'); 8 | global.jsondiffpatch = (typeof window !== 'undefined' ? window.jsondiffpatch : null) || 9 | require('../../' + 'src/main.js'); 10 | -------------------------------------------------------------------------------- /src/assets/libs/splitter/jquery.splitter.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * StyleSheet for JQuery splitter Plugin 3 | * Copyright (C) 2010 Jakub Jankiewicz 4 | * 5 | * This program is free software: you can redistribute it and/or modify 6 | * it under the terms of the GNU Lesser General Public License as published by 7 | * the Free Software Foundation, either version 3 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU Lesser General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Lesser General Public License 16 | * along with this program. If not, see . 17 | */ 18 | .splitter_panel { 19 | position: relative; 20 | } 21 | .splitter_panel .vsplitter { 22 | background-color: #e2e2e2; 23 | cursor: col-resize; 24 | z-index: 900; 25 | width: 1px; 26 | } 27 | .splitter_panel .vsplitter:hover { 28 | background-color: #777; 29 | width: 4px; 30 | } 31 | 32 | .splitter_panel .hsplitter { 33 | background-color: #5F5F5F; 34 | cursor: row-resize; 35 | z-index: 800; 36 | height: 5px; 37 | } 38 | .splitter_panel .vsplitter.splitter-invisible, 39 | .splitter_panel .hsplitter.splitter-invisible { 40 | background: none; 41 | } 42 | .splitter_panel .vsplitter, .splitter_panel .left_panel, .splitter_panel .right_panel, 43 | .splitter_panel .hsplitter, .splitter_panel .top_panel, .splitter_panel .bottom_panel { 44 | position: absolute; 45 | overflow: auto; 46 | } 47 | .splitter_panel .vsplitter, .splitter_panel .left_panel, .splitter_panel .right_panel { 48 | height: 100%; 49 | } 50 | .splitter_panel .hsplitter, .splitter_panel .top_panel, .splitter_panel .bottom_panel { 51 | width: 100%; 52 | } 53 | .splitter_panel .top_panel, .splitter_panel .left_panel, .splitter_panel .vsplitter { 54 | top: 0; 55 | } 56 | .splitter_panel .top_panel, .splitter_panel .bottom_panel, .splitter_panel .left_panel, .splitter_panel .hsplitter { 57 | left: 0; 58 | } 59 | .splitter_panel .bottom_panel { 60 | bottom: 0; 61 | } 62 | .splitter_panel .right_panel { 63 | right: 0; 64 | } 65 | .splitterMask { 66 | position: absolute; 67 | left: 0; 68 | top: 0; 69 | right: 0; 70 | bottom: 0; 71 | z-index: 1000; 72 | } 73 | -------------------------------------------------------------------------------- /src/components/Business/children/children/BusinessTree.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 14 | 35 | -------------------------------------------------------------------------------- /src/components/DataImport/DataImport.vue: -------------------------------------------------------------------------------- 1 | 33 | 34 | 57 | 60 | -------------------------------------------------------------------------------- /src/components/DataImport/UploadItem.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 61 | 62 | 68 | -------------------------------------------------------------------------------- /src/components/Footer.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 14 | 15 | 18 | -------------------------------------------------------------------------------- /src/components/Home/Home.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /src/components/Home/HomeUserInfo.vue: -------------------------------------------------------------------------------- 1 | 15 | 24 | 66 | 67 | q 68 | -------------------------------------------------------------------------------- /src/components/Home/TopicTree.vue: -------------------------------------------------------------------------------- 1 | 8 | 17 | 40 | 41 | -------------------------------------------------------------------------------- /src/components/ImportExport/children/Collection.vue: -------------------------------------------------------------------------------- 1 | 4 | 7 | -------------------------------------------------------------------------------- /src/components/ImportExport/children/children/importHeaderItem.vue: -------------------------------------------------------------------------------- 1 | 14 | 39 | -------------------------------------------------------------------------------- /src/components/MainPage.vue: -------------------------------------------------------------------------------- 1 | 7 | 15 | 22 | -------------------------------------------------------------------------------- /src/components/MetaData/DataImport/DataImport.vue: -------------------------------------------------------------------------------- 1 | 33 | 34 | 57 | 60 | -------------------------------------------------------------------------------- /src/components/MetaData/DataImport/UploadItem.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 61 | 62 | 68 | -------------------------------------------------------------------------------- /src/components/MetaData/Dataset/DatasetDetail/BusinessTree.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 15 | 35 | -------------------------------------------------------------------------------- /src/components/MetaData/Dataset/DatasetDetail/PermissionItemR.vue: -------------------------------------------------------------------------------- 1 | 27 | 85 | 107 | -------------------------------------------------------------------------------- /src/components/MetaData/Dataset/DatasetDetail/PermissionList.vue: -------------------------------------------------------------------------------- 1 | 29 | 60 | 87 | -------------------------------------------------------------------------------- /src/components/MetaData/Dataset/DatasetDetail/PropertiesEditor.vue: -------------------------------------------------------------------------------- 1 | 20 | 79 | -------------------------------------------------------------------------------- /src/components/MetaData/Dataset/PhysicalExportTree/PhysicalExportTree.vue: -------------------------------------------------------------------------------- 1 | 12 | 31 | -------------------------------------------------------------------------------- /src/components/MetaData/MetaData.vue: -------------------------------------------------------------------------------- 1 | 7 | 28 | 29 | 33 | -------------------------------------------------------------------------------- /src/components/MetaData/Personal/Tag.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 39 | 40 | 43 | -------------------------------------------------------------------------------- /src/components/MetaData/Personal/chiildren/Search.vue: -------------------------------------------------------------------------------- 1 | 12 | 48 | 53 | -------------------------------------------------------------------------------- /src/components/Source/Source.vue: -------------------------------------------------------------------------------- 1 | 32 | 84 | 96 | -------------------------------------------------------------------------------- /src/components/Source/SourceList.vue: -------------------------------------------------------------------------------- 1 | 16 | 40 | 52 | -------------------------------------------------------------------------------- /src/components/common/Error.vue: -------------------------------------------------------------------------------- 1 | 6 | 15 | 21 | -------------------------------------------------------------------------------- /src/components/common/LineChart.vue: -------------------------------------------------------------------------------- 1 | 6 | 78 | 80 | -------------------------------------------------------------------------------- /src/components/common/Loading/Loading.vue: -------------------------------------------------------------------------------- 1 | 6 | 34 | 46 | -------------------------------------------------------------------------------- /src/components/common/Loading/index.js: -------------------------------------------------------------------------------- 1 | import Loading from './Loading'; 2 | 3 | Loading.install = function(Vue) { 4 | Vue.component(Loading.name, Loading); 5 | }; 6 | export default Loading; 7 | -------------------------------------------------------------------------------- /src/components/common/MoreLoading/MoreLoading.vue: -------------------------------------------------------------------------------- 1 | 31 | 47 | -------------------------------------------------------------------------------- /src/components/common/MoreLoading/index.js: -------------------------------------------------------------------------------- 1 | import MoreLoading from './MoreLoading' 2 | 3 | MoreLoading.install = function(Vue){ 4 | Vue.component(MoreLoading.name, MoreLoading) 5 | } 6 | export default MoreLoading 7 | -------------------------------------------------------------------------------- /src/components/common/NoData/NoData.vue: -------------------------------------------------------------------------------- 1 | 9 | 30 | 47 | -------------------------------------------------------------------------------- /src/components/common/NoData/index.js: -------------------------------------------------------------------------------- 1 | import NoData from './NoData'; 2 | 3 | NoData.install = function(Vue) { 4 | Vue.component(NoData.name, NoData); 5 | }; 6 | export default NoData; -------------------------------------------------------------------------------- /src/components/common/PieChart.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 75 | -------------------------------------------------------------------------------- /src/components/common/SplitControler.vue: -------------------------------------------------------------------------------- 1 | 7 | 31 | -------------------------------------------------------------------------------- /src/components/common/TableHeader/TableHeader.vue: -------------------------------------------------------------------------------- 1 | 26 | 47 | 70 | -------------------------------------------------------------------------------- /src/components/common/TableHeader/index.js: -------------------------------------------------------------------------------- 1 | import TableHeader from './TableHeader'; 2 | 3 | TableHeader.install = function(Vue) { 4 | Vue.component(TableHeader.name, TableHeader); 5 | }; 6 | export default TableHeader; -------------------------------------------------------------------------------- /src/components/common/TableItemJump.vue: -------------------------------------------------------------------------------- 1 | 23 | 88 | 105 | -------------------------------------------------------------------------------- /src/components/common/dialogItemTitle.vue: -------------------------------------------------------------------------------- 1 | 6 | 17 | 31 | -------------------------------------------------------------------------------- /src/components/common/index.js: -------------------------------------------------------------------------------- 1 | import TableHeader from "./TableHeader/index" 2 | import Loading from "./Loading/index" 3 | import NoData from "./NoData/index" 4 | import MoreLoading from './MoreLoading/index' 5 | 6 | const components = [ 7 | TableHeader, 8 | Loading, 9 | NoData, 10 | MoreLoading 11 | ] 12 | const commonComponents = { 13 | install(Vue) { 14 | components.map((val) => val.install(Vue)) 15 | } 16 | } 17 | 18 | export default commonComponents 19 | -------------------------------------------------------------------------------- /src/config/fetch.js: -------------------------------------------------------------------------------- 1 | import {baseUrl} from './env'; 2 | import {parsed} from './mUtils'; 3 | 4 | export default async (url = '', data = {}, type = 'GET', method = 'fetch') => { 5 | type = type.toUpperCase(); 6 | url = baseUrl + url; 7 | 8 | if (type === 'GET') { 9 | let dataStr = ''; //数据拼接字符串 10 | Object.keys(data).forEach(key => { 11 | dataStr += key + '=' + data[key] + '&'; 12 | }); 13 | 14 | if (dataStr !== '') { 15 | dataStr = dataStr.substr(0, dataStr.lastIndexOf('&')); 16 | url = url + '?' + dataStr; 17 | } 18 | } 19 | 20 | if (url.indexOf('?') >= 0) { //判断url中是否已经带有参数 21 | url = url + '&t=' + (new Date()).valueOf(); 22 | } else { 23 | url = url + '?t=' + (new Date()).valueOf(); 24 | } 25 | 26 | if (window.fetch && method === 'fetch') { 27 | let requestConfig = { 28 | credentials: 'include', 29 | method: type, 30 | headers: { 31 | 'Accept': 'application/json', 32 | 'Content-Type': 'application/json' 33 | }, 34 | mode: "cors" 35 | }; 36 | 37 | if (type === 'POST') { 38 | Object.defineProperty(requestConfig, 'body', { 39 | value: JSON.stringify(data) 40 | }); 41 | } 42 | 43 | try { 44 | const response = await fetch(url, requestConfig); 45 | return parsed(await response.json()); 46 | } catch (error) { 47 | throw new Error(error.message); 48 | } 49 | } else { 50 | return new Promise((resolve, reject) => { 51 | let requestObj; 52 | if (window.XMLHttpRequest) { 53 | requestObj = new XMLHttpRequest(); 54 | } else { 55 | requestObj = new ActiveXObject; 56 | } 57 | 58 | let sendData = ''; 59 | if (type === 'POST') { 60 | sendData = JSON.stringify(data); 61 | } 62 | 63 | requestObj.open(type, url, true); 64 | requestObj.setRequestHeader("Content-type", "application/json"); 65 | requestObj.send(sendData); 66 | 67 | requestObj.onreadystatechange = () => { 68 | if (requestObj.readyState === 4) { 69 | if (requestObj.status === 200) { 70 | let obj = requestObj.response; 71 | if (typeof obj !== 'object') { 72 | obj = JSON.parse(obj); 73 | } 74 | resolve(parsed(obj)); 75 | } else { 76 | reject(requestObj); 77 | } 78 | } 79 | }; 80 | }); 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /src/config/http.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * http请求配置 4 | */ 5 | import axios from 'axios'; 6 | import store from '../store'; 7 | import {codeMap} from '../config/env'; 8 | import {setStore} from '../config/mUtils'; 9 | import {Message} from 'element-ui'; 10 | 11 | /* 12 | * 13 | * 网页加载时,还没有请求 /lang 接口的时候,如果有提示错误信息,需要获取浏览器设置语言,以提供报错信息 14 | * Firefox Chrome Safari 用 navigator.language 15 | * IE 用 navigator.browserLanguage 16 | * 17 | * */ 18 | const navLang = (navigator.language || navigator.browserLanguage).toLowerCase(); 19 | let loginOutFlag = false; //用户是否已经登出标记,防止重复报错信息提示 20 | 21 | // axios 配置 22 | axios.defaults.headers.post['Content-Type'] = 'application/json'; 23 | 24 | // 请求拦截器 25 | axios.interceptors.request.use(function (config) { 26 | const url = config.url; 27 | if (url.indexOf("?") >= 0) {//判断url中是否已经带有参数 28 | config.url = url + "&t=" + (new Date()).valueOf(); 29 | } else { 30 | config.url = url + "?t=" + (new Date()).valueOf(); 31 | } 32 | return config; 33 | }, function (error) { 34 | return Promise.reject(error); 35 | }); 36 | 37 | // http response 响应拦截器 38 | axios.interceptors.response.use(function (response) { 39 | const url = response.config.url; //请求接口的url 40 | response.body = response.data; //兼容以前的vue-resource 41 | 42 | if (response.headers['content-type'].indexOf('application/json') > -1 && 43 | url.indexOf('/outerapi/v1/getOutterSql/key/') === -1) { //过滤掉文件上传请求,SQL查询的请求 44 | const code = response.data.statusCode; 45 | const lang = store.state.language; //获取当前设置的语言 46 | if (code === 407) { //用户当前是否已经登陆, 用户每次请求接口时,都要去判断是否已经登陆,否则跳转到登陆页面 47 | if (!loginOutFlag) { 48 | loginOutFlag = true; 49 | setStore("exitingURL", window.location.hash); //登出时候停留的页面保存起来 50 | 51 | //过滤掉这两个接口,因为当前还不确定用户的设置语言,只能以浏览器的设置完成提示 52 | if (url.indexOf('/authenticate') > -1 || url.indexOf('/lang') > -1) { 53 | Message.error(codeMap[navLang.includes('zh') ? 'zh' : 'en']['exit']); 54 | } else { 55 | Message.error(codeMap[lang]['exit']); 56 | } 57 | setTimeout(() => { 58 | window.location.href = "/login"; 59 | }, 2000); 60 | } 61 | } else if (code === 200 || code === 403) { 62 | return response; 63 | } else { 64 | Message({ 65 | showClose: true, 66 | type: 'warning', 67 | message: codeMap[lang][code] 68 | }); 69 | return response; 70 | } 71 | } else { 72 | return response; 73 | } 74 | }, function (error) { 75 | return Promise.reject(error); 76 | }); 77 | 78 | export default axios; 79 | -------------------------------------------------------------------------------- /src/config/mUtils.js: -------------------------------------------------------------------------------- 1 | import {Message} from 'element-ui'; 2 | import {codeMap} from './env'; 3 | 4 | /** 5 | * 获取成功之后的数据 6 | */ 7 | export const parsed = (data) => { 8 | if (data.statusCode === 200) { 9 | return data.message; 10 | } else { 11 | const statusCode = data.message; 12 | Message({ 13 | showClose: true, 14 | type: 'warning', 15 | message: codeMap[statusCode] 16 | }); 17 | throw new Error(statusCode); 18 | } 19 | }; 20 | 21 | /** 22 | * 存储localStorage 23 | */ 24 | export const setStore = (name, content) => { 25 | if (!name) return; 26 | if (typeof content !== 'string') { 27 | content = JSON.stringify(content); 28 | } 29 | window.localStorage.setItem(name, content); 30 | }; 31 | 32 | /** 33 | * 获取localStorage 34 | */ 35 | export const getStore = name => { 36 | if (!name) return; 37 | return window.localStorage.getItem(name); 38 | }; 39 | 40 | /** 41 | * 删除localStorage 42 | */ 43 | export const removeStore = name => { 44 | if (!name) return; 45 | window.localStorage.removeItem(name); 46 | }; 47 | -------------------------------------------------------------------------------- /src/directives/clickoutside.js: -------------------------------------------------------------------------------- 1 | const clickoutside = { 2 | name: "clickoutside", 3 | install: { 4 | // 初始化指令 5 | bind (el, binding, vnode) { 6 | function documentHandler (e) { 7 | // 这里判断点击的元素是否是本身,是本身,则返回 8 | if (el.contains(e.target)) { 9 | return false; 10 | } 11 | // 判断指令中是否绑定了函数 12 | if (binding.expression) { 13 | // 如果绑定了函数 则调用那个函数,此处binding.value就是handleClose方法 14 | binding.value(e); 15 | } 16 | } 17 | 18 | // 给当前元素绑定个私有变量,方便在unbind中可以解除事件监听 19 | el.__vueClickOutside__ = documentHandler; 20 | document.addEventListener('click', documentHandler); 21 | }, 22 | update () { 23 | }, 24 | unbind (el, binding) { 25 | // 解除事件监听 26 | document.removeEventListener('click', el.__vueClickOutside__); 27 | delete el.__vueClickOutside__; 28 | } 29 | } 30 | }; 31 | 32 | export default clickoutside; 33 | -------------------------------------------------------------------------------- /src/directives/ellipsis.js: -------------------------------------------------------------------------------- 1 | function concatClass(a, b) { 2 | if (a && a.indexOf(b) > -1) return a; 3 | return a ? b ? (a + ' ' + b) : a : (b || ''); 4 | }; 5 | 6 | const ellipsis = { 7 | name: "ellipsis", 8 | install: (el, {arg = '90%',value}) => { 9 | if (!value) { 10 | value = "" 11 | } 12 | const title = value.replace(/<.*?>/ig, ""); 13 | el.className = concatClass(el.className, "commom-overflow") 14 | el.innerHTML = value; 15 | el.style.maxWidth = arg.includes('%') ? arg : `${arg}px`; 16 | el.title = title; 17 | } 18 | } 19 | 20 | export default ellipsis 21 | -------------------------------------------------------------------------------- /src/directives/hiddenElement.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Bus from 'utils/bus' 3 | 4 | Vue.directive('hidden', { 5 | inserted (el, binding) { 6 | const doms = el.children 7 | const className = el.className 8 | function addEvent(){ 9 | getParent(event.target) 10 | function getParent(target){ 11 | if (target.className && target.className == className || target.className == 'advance-search-container') { 12 | return; 13 | } else if (target.tagName == 'BODY' && target.text != '高级搜索'){ 14 | window.removeEventListener('click', addEvent) 15 | el.style.display = 'none' 16 | Bus.$emit('hidden', false) 17 | return; 18 | } else { 19 | getParent(target.parentNode) 20 | } 21 | } 22 | } 23 | window.addEventListener('click', addEvent) 24 | } 25 | }) 26 | -------------------------------------------------------------------------------- /src/directives/index.js: -------------------------------------------------------------------------------- 1 | import ellipsis from './ellipsis'; 2 | import clickoutside from './clickoutside'; 3 | 4 | const directiveArr = [ 5 | ellipsis, 6 | clickoutside 7 | ]; 8 | 9 | function directive (Vue, ...rest) { 10 | return Vue.directive(...rest); 11 | } 12 | 13 | const directivesObj = { 14 | install (Vue) { 15 | directiveArr.map((val) => directive(Vue, val.name, val.install)); 16 | } 17 | }; 18 | export default directivesObj; 19 | -------------------------------------------------------------------------------- /src/locale/international.js: -------------------------------------------------------------------------------- 1 | import {cnContent} from './zh'; 2 | import {enContent} from './en'; 3 | 4 | export { 5 | cnContent, 6 | enContent 7 | }; 8 | -------------------------------------------------------------------------------- /src/plugins/MessageBox/MessageBox.vue: -------------------------------------------------------------------------------- 1 | 14 | 35 | 41 | -------------------------------------------------------------------------------- /src/plugins/MessageBox/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import MessageBox from './MessageBox.vue' 3 | 4 | function messageBox(options){ 5 | let instance; 6 | const MessageInstance = Vue.extend(MessageBox) 7 | let newEl = document.createElement('div'); 8 | newEl.className = 'message-box'; 9 | document.body.appendChild(newEl); 10 | instance = new MessageInstance().$mount(newEl); 11 | for(let prop in options){ 12 | instance[prop] = options[prop]; 13 | } 14 | return instance; 15 | } 16 | export default messageBox; 17 | -------------------------------------------------------------------------------- /src/plugins/index.js: -------------------------------------------------------------------------------- 1 | import messageBox from './MessageBox/main' 2 | import Vue from 'vue' 3 | const defaultOptions = { 4 | message: '确认删除?', 5 | title: '提示', 6 | callback: '' 7 | } 8 | const Plugins = { 9 | install: Vue => { 10 | Vue.prototype.$metaMessage = { 11 | confirm(options = defaultOptions){ 12 | return messageBox(options) 13 | } 14 | } 15 | } 16 | } 17 | export default Plugins 18 | -------------------------------------------------------------------------------- /src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import Vuex from 'vuex'; 3 | import mutations from './mutations'; 4 | import actions from './actions'; 5 | 6 | Vue.use(Vuex); 7 | let view = window.sessionStorage.getItem('viewActive'); 8 | export default new Vuex.Store({ 9 | state: { 10 | username: '', //用户名 11 | selectPath: '', 12 | datasetKeyword: '', //存储dataset搜索关键字 13 | flowKeyword: '', //存储flow搜索关键字 14 | saveUploadDate: '', //上传文件 15 | treeItemActive: { 16 | path: null, 17 | datasetId: null 18 | }, // 当前被选中 19 | defaultSort: '', 20 | viewData: { 21 | viewNotTable: [null], 22 | viewTable: { 23 | id: "", 24 | path: "" 25 | }, 26 | viewActive: view ? view : 'datatype' 27 | }, 28 | queryFlow: { 29 | process: { 30 | path: "" 31 | }, 32 | task: { 33 | path: "", 34 | id: "" 35 | }, 36 | isProcess: false 37 | }, //保存process 请求对象 38 | selectItem: "", //选择要移动到的项目 39 | checkList: [], 40 | isBusiness: true, 41 | isBusinessTitle: false, 42 | themeCheckList: [], 43 | headerNav: [], //header导航 44 | sourceUserMessage: {}, 45 | sourceTitle: '', 46 | fetchRouter: {}, 47 | language: 'zh', 48 | selectItems: [],//权限申请 49 | exportList: [],//导出元数据表, 50 | exportDBList: [],//导出元数据库, 51 | tableName: '', 52 | businessState: {}, 53 | hasTreeData: false, 54 | fetchTreeDataEndRequest: false, 55 | importPrivilege: false, 56 | dataStatus: 0, 57 | exportSearh: '', 58 | treeLoading: false, //树状图loading 59 | treeBusinessLoading: false, //物理视图loading 60 | collectCount: 0, 61 | fullLoading: false, 62 | fullTreeLoading: false, 63 | saveRouter: '', 64 | navIsData: true, 65 | isPrivate: 0, 66 | propEditPrivilege: false, 67 | setSourceLink: false, 68 | createTask: {}, 69 | addTables: [], 70 | saveBlackList: [], 71 | getSample: false, 72 | searchTable: [], 73 | cronValue: '* * * * * *', 74 | closeDialog: false, 75 | showCron: '', 76 | selectTables: [], 77 | exportTableSource: {}, 78 | testBlackList: [], 79 | saveSelectList: [], 80 | setSearchParams: {}, 81 | tableTypeOpts: '0,1,2', // 左侧菜单过滤条件 82 | modelOpen: false, 83 | manageInfo: {}, 84 | userInfo: {}, 85 | ownerActiveTab: {}, 86 | navVisible: false, 87 | clearTimeout: null, 88 | sourceType: 'all', 89 | versions: [], //当前表下所有的版本号数组 90 | isEditSetting: false //导入任务管理中,是否修改过配置. 91 | }, 92 | mutations, 93 | actions 94 | }); 95 | -------------------------------------------------------------------------------- /src/utils/bus.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | const Bus = new Vue() 3 | export default Bus; 4 | -------------------------------------------------------------------------------- /src/utils/index.js: -------------------------------------------------------------------------------- 1 | import {FormatSize} from 'mixins/common'; 2 | import Vue from 'vue'; 3 | import axios from 'axios'; 4 | 5 | const ChartColor = ['#fb7a53', '#ffbf01', '#ffdc16', '#92d14f', '#31c45e', '#50da9e', '#76e9e2', '#26d4ff', '#2cabf4', '#1064fe', '#f0f0f0']; 6 | 7 | const getData = async (vm, url) => { 8 | const res = await vm.axios.get(url); 9 | const {statusCode, message} = res.body; 10 | return statusCode === 200 ? message.records : []; 11 | }; 12 | 13 | /** 14 | * @desc 使用vue-resource第三方库访问后台服务器,返回封装后的Promise对象 15 | * @param {string} type HTTP请求方式, 默认GET. 16 | * @param {string} url 请求的接口地址, 格式: "/xxx..." 17 | * @param {object} vm vue实例 18 | * @param {object} data 请求的数据, object对象格式 19 | * 20 | */ 21 | function httpRequest ({ 22 | type = 'get', 23 | url = null, 24 | vm = this, 25 | data = null 26 | }) { 27 | return new Promise((resolve, reject) => { 28 | axios[type](url, data).then(res => { 29 | const {message, statusCode} = res.body; 30 | if (statusCode === 200) { 31 | resolve(message); 32 | } 33 | }); 34 | }); 35 | } 36 | 37 | /** 38 | * 39 | * @param {*} vm 40 | * @param {*} arr 41 | * @param {*} params 42 | * @param {*} bool 43 | */ 44 | 45 | const setRankList = (vm, arr, params = new Map(), bool = false) => { 46 | arr.map(item => { 47 | for (let [key, value] of params) { 48 | if (key == 'num') { 49 | vm.$set(item, key, bool ? FormatSize.methods.formatSize(item[value]) : item[value]); 50 | } else { 51 | vm.$set(item, key, item[value]); 52 | } 53 | } 54 | }); 55 | return arr; 56 | }; 57 | 58 | const strMapToObj = (map) => { 59 | let obj = Object.create(null); 60 | for (let [k, v] of map) { 61 | obj[k] = v; 62 | } 63 | return obj; 64 | }; 65 | 66 | const hiddenClick = (className, visible, vm) => { 67 | window.onclick = function (e) { 68 | let target = $(e.target).hasClass(className) || $(e.target).parents().hasClass(className); 69 | if (!target) { 70 | vm[visible] = false; 71 | } 72 | }; 73 | }; 74 | 75 | const clickCount = (datasetId) => { 76 | datasetId && axios.post(`/datasets/${datasetId}/access`).catch(err => console.log(err)); 77 | }; 78 | 79 | export { 80 | ChartColor, 81 | getData, 82 | setRankList, 83 | strMapToObj, 84 | httpRequest, 85 | hiddenClick, 86 | clickCount 87 | }; 88 | -------------------------------------------------------------------------------- /src/vars.less: -------------------------------------------------------------------------------- 1 | @imagesUrl : '../../assets/images'; 2 | -------------------------------------------------------------------------------- /static/alert.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Outdated Browser 6 | 7 | 8 | 9 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 | 32 | 33 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /static/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/static/images/favicon.ico -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/ar.html: -------------------------------------------------------------------------------- 1 |
متصفحك يحتاج تحديث!
2 |

الرجاء تحديث متصفحك لمشاهدة الموقع بشكل جيد۔ تحديث المتصفح الآن

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/cs.html: -------------------------------------------------------------------------------- 1 |
Váš prohlížeč je zastaralý!
2 |

Pro správné zobrazení těchto stránek aktualizujte svůj prohlížeč. Aktualizovat prohlížeč nyní

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/da.html: -------------------------------------------------------------------------------- 1 |
Din browser er forældet!
2 |

Opdatér din browser for at få vist denne hjemmeside ordentligt. Opdater min browser nu

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/de.html: -------------------------------------------------------------------------------- 1 |
Ihr Browser ist veraltet!
2 |

Bitte aktualisieren Sie Ihren Browser, um diese Website korrekt dazustellen. Den Browser jetzt aktualisieren

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/el.html: -------------------------------------------------------------------------------- 1 |
Το προγραμμα περιηγησης (φυλλομετρητης/browser) που χρησιμοποιεις για το internet δεν ειναι ενημερωμενο!
2 |

Ενημερωσε το προγραμμα περιηγησης για να δεις αυτη την ιστοσελιδα σωστα. Ενημερωση του προγραμματος περιηγησης τωρα

3 |

×

-------------------------------------------------------------------------------- /static/outdatedbrowser/lang/en.html: -------------------------------------------------------------------------------- 1 |
Your browser is out of date!
2 |

Update your browser to view this website correctly. Update my browser now

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/es-pe.html: -------------------------------------------------------------------------------- 1 |
¡Tu navegador no está actualizado!
2 |

Actualiza tu navegador para visualizar esta página correctamente. Actualizar mi navegador ahora!

3 |

×

-------------------------------------------------------------------------------- /static/outdatedbrowser/lang/es.html: -------------------------------------------------------------------------------- 1 |
¡Tu navegador está obsoleto!
2 |

Actualiza tu navegador para ver esta página correctamente. Actualizar mi navegador ahora

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/et.html: -------------------------------------------------------------------------------- 1 |
Sinu veebilehitseja on vananenud!
2 |

Palun uuenda oma veebilehitsejat, et näha lehekülge korrektselt. Uuenda oma veebilehitsejat kohe

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/fa.html: -------------------------------------------------------------------------------- 1 |
مرورگر شما منسوخ شده است!
2 |

جهت مشاهده صحیح این وبسایت، مرورگرتان را بروز رسانی نمایید. همین حالا مرورگرم را بروز کن

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/fi.html: -------------------------------------------------------------------------------- 1 |
Selaimesi on vanhentunut!
2 |

Lataa ajantasainen selain nähdäksesi tämän sivun oikein. Päivitä selaimeni nyt

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/fr.html: -------------------------------------------------------------------------------- 1 |
Votre navigateur est obsolète!
2 |

Mettez à jour votre navigateur pour afficher correctement ce site Web. Mettre à jour maintenant

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/hr.html: -------------------------------------------------------------------------------- 1 |
Vaš Internet preglednik nije ažuriran!
2 |

Ažurirajte Vaš preglednik za ispravan prikaz ove stranice. Ažuriraj odmah

3 |

×

-------------------------------------------------------------------------------- /static/outdatedbrowser/lang/hu.html: -------------------------------------------------------------------------------- 1 |
A böngészője elavult!
2 |

Frissítse vagy cserélje le a böngészőjét. A böngészőm frissítése

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/id.html: -------------------------------------------------------------------------------- 1 |
Browser yang Anda gunakan sudah ketinggalan zaman!
2 |

Perbaharuilah browser Anda agar bisa menjelajahi website ini dengan nyaman. Perbaharui browser sekarang

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/it.html: -------------------------------------------------------------------------------- 1 |
Il tuo browser non è aggiornato!
2 |

Aggiornalo per vedere questo sito correttamente. Aggiorna ora

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/ja.html: -------------------------------------------------------------------------------- 1 |
あなたのブラウザはもう古いです
2 |

こちらのサイトを閲覧するためには、ブラウザをアップグレードしてください。 ブラウザをアップグレードする

3 |

×

-------------------------------------------------------------------------------- /static/outdatedbrowser/lang/ko.html: -------------------------------------------------------------------------------- 1 |
브라우저가 오래되었습니다!
2 |

이 웹 페이지가 현재 브라우저에서는 정상적으로 보이지 않을 수 있습니다. 지금 브라우저를 업그레이드하세요!

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/lt.html: -------------------------------------------------------------------------------- 1 |
Jūsų naršyklės versija yra pasenusi!
2 |

Atnaujinkite savo naršyklę, kad galėtumėte peržiūrėti šią svetainę tinkamai. Atnaujinti naršyklę

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/nb.html: -------------------------------------------------------------------------------- 1 |
Nettleseren din er avleggs!
2 |

Oppdater nettleseren din for å oppleve nettstedet riktig. Oppdater nettleseren min nå

3 |

×

4 | 5 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/nl.html: -------------------------------------------------------------------------------- 1 |
Je gebruikt een verouderde browser!
2 |

Update je browser om deze website correct te bekijken. Update mijn browser nu

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/pl.html: -------------------------------------------------------------------------------- 1 |
Twoja przeglądarka jest przestarzała!
2 |

Zaktualizuj swoją przeglądarkę, aby poprawnie wyświetlić tę stronę. Zaktualizuj przeglądarkę już teraz

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/pt-br.html: -------------------------------------------------------------------------------- 1 |
O seu navegador está desatualizado!
2 |

Atualize o seu navegador para ter uma melhor experiência e visualização deste site. Atualize o seu navegador agora

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/pt.html: -------------------------------------------------------------------------------- 1 |
O seu browser está desatualizado!
2 |

Atualize o seu browser para ter uma melhor experiência e visualização deste site. Atualize o seu browser agora

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/ro.html: -------------------------------------------------------------------------------- 1 |
Navigatorul este învechit!
2 |

Actualizați navigatorul pentru a vizualiza corect acest site. Actualizați navigatorul acum!

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/ru.html: -------------------------------------------------------------------------------- 1 |
Ваш браузер устарел!
2 |

Обновите ваш браузер для правильного отображения этого сайта. Обновить мой браузер

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/sk.html: -------------------------------------------------------------------------------- 1 |
Váš prehliadač je zastaraný!
2 |

Pre správne zobrazenie tejto webstránky aktualizujte svoj prehliadač. Aktualizovať prehliadač teraz

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/sl.html: -------------------------------------------------------------------------------- 1 |
Vaš brskalnik je zastarel!
2 |

Za pravilen prikaz spletne strani posodobite vaš brskalnik. Posodobi brskalnik

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/sv.html: -------------------------------------------------------------------------------- 1 |
Din webbläsare stödjs ej längre!
2 |

Uppdatera din webbläsare för att webbplatsen ska visas korrekt. Uppdatera min webbläsare nu

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/tr.html: -------------------------------------------------------------------------------- 1 |
Tarayıcınız güncel değil!
2 |

Web sitemizi düzgün görüntülemek için tarayıcınızı güncelleyin.Şimdi güncelle

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/uk.html: -------------------------------------------------------------------------------- 1 |
Ваш браузер застарів!
2 |

Оновіть ваш браузер для правильного відображення цього сайта. Оновити мій браузер

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/zh-cn.html: -------------------------------------------------------------------------------- 1 |
您的浏览器已过时
2 |

要正常浏览本网站请升级您的浏览器。现在升级

3 |

×

4 | -------------------------------------------------------------------------------- /static/outdatedbrowser/lang/zh-tw.html: -------------------------------------------------------------------------------- 1 |
您的瀏覽器已過時
2 |

要正常瀏覽本網站請升級您的瀏覽器。 現在升級​​

3 |

×

-------------------------------------------------------------------------------- /static/outdatedbrowser/outdatedbrowser.css: -------------------------------------------------------------------------------- 1 | /*!-------------------------------------------------------------------- 2 | STYLES "Outdated Browser" 3 | Version: 1.1.2 - 2015 4 | author: Burocratik 5 | website: http://www.burocratik.com 6 | * @preserve 7 | -----------------------------------------------------------------------*/ 8 | #outdated{ 9 | display: none; position: fixed; top: 0; left: 0; width: 100%; height: 170px; 10 | text-align: center; text-transform: uppercase; z-index:1500; 11 | background-color: #f25648; color: #ffffff; 12 | } 13 | * html #outdated{position: absolute;} 14 | #outdated h6{font-size: 25px; line-height: 25px; margin: 30px 0 10px;} 15 | #outdated p{font-size: 12px; line-height: 12px; margin: 0;} 16 | #outdated #btnUpdateBrowser{ 17 | display: block; position: relative; padding: 10px 20px; margin: 30px auto 0; width: 230px; /*need for IE*/ 18 | color: #ffffff; text-decoration: none; border: 2px solid #ffffff; cursor: pointer; 19 | } 20 | #outdated #btnUpdateBrowser:hover{color: #f25648; background-color:#ffffff;} 21 | #outdated .last{position: absolute; top: 10px; right: 25px; width: 20px; height: 20px;} 22 | #outdated .last[dir='rtl']{right: auto !important; left: 25px !important;} 23 | #outdated #btnCloseUpdateBrowser{ 24 | display: block; position: relative; width: 100%; height: 100%; 25 | text-decoration: none; color: #ffffff; font-size: 36px; line-height: 36px; 26 | } 27 | -------------------------------------------------------------------------------- /static/outdatedbrowser/outdatedbrowser.min.css: -------------------------------------------------------------------------------- 1 | /*!-------------------------------------------------------------------- 2 | STYLES "Outdated Browser" 3 | Version: 1.1.2 - 2015 4 | author: Burocratik 5 | website: http://www.burocratik.com 6 | * @preserve 7 | -----------------------------------------------------------------------*/ 8 | #outdated{display:none;position:fixed;top:0;left:0;width:100%;height:170px;text-align:center;text-transform:uppercase;z-index:1500;background-color:#f25648;color:#fff}* html #outdated{position:absolute}#outdated h6{font-size:25px;line-height:25px;margin:30px 0 10px}#outdated p{font-size:12px;line-height:12px;margin:0}#outdated #btnUpdateBrowser{display:block;position:relative;padding:10px 20px;margin:30px auto 0;width:230px;color:#fff;text-decoration:none;border:2px solid #fff;cursor:pointer}#outdated #btnUpdateBrowser:hover{color:#f25648;background-color:#fff}#outdated .last{position:absolute;top:10px;right:25px;width:20px;height:20px}#outdated #btnCloseUpdateBrowser{display:block;position:relative;width:100%;height:100%;text-decoration:none;color:#fff;font-size:36px;line-height:36px} -------------------------------------------------------------------------------- /static/outdatedbrowser/outdatedbrowser.min.js: -------------------------------------------------------------------------------- 1 | /*!-------------------------------------------------------------------- 2 | JAVASCRIPT "Outdated Browser" 3 | Version: 1.1.2 - 2015 4 | author: Burocratik 5 | website: http://www.burocratik.com 6 | * @preserve 7 | -----------------------------------------------------------------------*/ 8 | var outdatedBrowser=function(t){function o(t){s.style.opacity=t/100,s.style.filter="alpha(opacity="+t+")"}function e(t){o(t),1==t&&(s.style.display="block"),100==t&&(u=!0)}function r(){var t=document.getElementById("btnCloseUpdateBrowser"),o=document.getElementById("btnUpdateBrowser");s.style.backgroundColor=bkgColor,s.style.color=txtColor,s.children[0].style.color=txtColor,s.children[1].style.color=txtColor,o.style.color=txtColor,o.style.borderColor&&(o.style.borderColor=txtColor),t.style.color=txtColor,t.onmousedown=function(){return s.style.display="none",!1},o.onmouseover=function(){this.style.color=bkgColor,this.style.backgroundColor=txtColor},o.onmouseout=function(){this.style.color=txtColor,this.style.backgroundColor=bkgColor}}function l(){var t=!1;if(window.XMLHttpRequest)t=new XMLHttpRequest;else if(window.ActiveXObject)try{t=new ActiveXObject("Msxml2.XMLHTTP")}catch(o){try{t=new ActiveXObject("Microsoft.XMLHTTP")}catch(o){t=!1}}return t}function a(t){var o=l();return o&&(o.onreadystatechange=function(){n(o)},o.open("GET",t,!0),o.send(null)),!1}function n(t){var o=document.getElementById("outdated");return 4==t.readyState&&(o.innerHTML=200==t.status||304==t.status?t.responseText:d,r()),!1}var s=document.getElementById("outdated");this.defaultOpts={bgColor:"#f25648",color:"#ffffff",lowerThan:"transform",languagePath:"../outdatedbrowser/lang/en.html"},t?("IE8"==t.lowerThan||"borderSpacing"==t.lowerThan?t.lowerThan="borderSpacing":"IE9"==t.lowerThan||"boxShadow"==t.lowerThan?t.lowerThan="boxShadow":"IE10"==t.lowerThan||"transform"==t.lowerThan||""==t.lowerThan||"undefined"==typeof t.lowerThan?t.lowerThan="transform":("IE11"==t.lowerThan||"borderImage"==t.lowerThan)&&(t.lowerThan="borderImage"),this.defaultOpts.bgColor=t.bgColor,this.defaultOpts.color=t.color,this.defaultOpts.lowerThan=t.lowerThan,this.defaultOpts.languagePath=t.languagePath,bkgColor=this.defaultOpts.bgColor,txtColor=this.defaultOpts.color,cssProp=this.defaultOpts.lowerThan,languagePath=this.defaultOpts.languagePath):(bkgColor=this.defaultOpts.bgColor,txtColor=this.defaultOpts.color,cssProp=this.defaultOpts.lowerThan,languagePath=this.defaultOpts.languagePath);var u=!0,i=function(){var t=document.createElement("div"),o="Khtml Ms O Moz Webkit".split(" "),e=o.length;return function(r){if(r in t.style)return!0;for(r=r.replace(/^[a-z]/,function(t){return t.toUpperCase()});e--;)if(o[e]+r in t.style)return!0;return!1}}();if(!i(""+cssProp)){if(u&&"1"!==s.style.opacity){u=!1;for(var c=1;100>=c;c++)setTimeout(function(t){return function(){e(t)}}(c),8*c)}" "===languagePath||0==languagePath.length?r():a(languagePath);var d='
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×

'}}; -------------------------------------------------------------------------------- /static/outdatedbrowser/outdatedbrowser.scss: -------------------------------------------------------------------------------- 1 | /*!-------------------------------------------------------------------- 2 | STYLES "Outdated Browser" 3 | Version: 1.1.2 - 2015 4 | author: Burocratik 5 | website: http://www.burocratik.com 6 | * @preserve 7 | -----------------------------------------------------------------------*/ 8 | #outdated { 9 | display: none; 10 | position: fixed; 11 | top: 0; 12 | left: 0; 13 | width: 100%; 14 | height: 170px; 15 | text-align: center; 16 | text-transform: uppercase; 17 | z-index:1500; 18 | background-color: #f25648; 19 | color: #ffffff; 20 | h6 { 21 | font-size: 25px; 22 | line-height: 25px; 23 | margin: 30px 0 10px; 24 | } 25 | p { 26 | font-size: 12px; 27 | line-height: 12px; 28 | margin: 0; 29 | } 30 | #btnUpdateBrowser { 31 | display: block; 32 | position: relative; 33 | padding: 10px 20px; 34 | margin: 30px auto 0; 35 | width: 230px; /*need for IE*/ 36 | color: #ffffff; 37 | text-decoration: none; 38 | border: 2px solid #ffffff; 39 | cursor: pointer; 40 | &:hover { 41 | color: #f25648; 42 | background-color:#ffffff; 43 | } 44 | } 45 | .last { 46 | position: absolute; 47 | top: 10px; 48 | right: 25px; 49 | width: 20px; 50 | height: 20px; 51 | &[dir='rtl'] { 52 | right: auto !important; 53 | left: 25px !important; 54 | } 55 | } 56 | #btnCloseUpdateBrowser{ 57 | display: block; 58 | position: relative; 59 | width: 100%; 60 | height: 100%; 61 | text-decoration: none; 62 | color: #ffffff; 63 | font-size: 36px; 64 | line-height: 36px; 65 | } 66 | * html & { 67 | position: absolute; 68 | } 69 | } 70 | --------------------------------------------------------------------------------