Commit 65f48332 by Tippi.Rao

dataEase 项目初始化

parents

要显示的修改太多。

为保证性能只显示 1000 of 1000+ 个文件。

# http://editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
insert_final_newline = false
trim_trailing_whitespace = false
# just a flag
ENV = 'development'
EDITOR=code
# base api
# VUE_APP_BASE_API = '/dev-api'
VUE_APP_BASE_API = 'http://192.168.1.100:8081/'
# vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable,
# to control whether the babel-plugin-dynamic-import-node plugin is enabled.
# It only does one thing by converting all import() to require().
# This configuration can significantly increase the speed of hot updates,
# when you have a large number of pages.
# Detail: https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/babel-preset-app/index.js
VUE_CLI_BABEL_TRANSPILE_MODULES = true
# just a flag
ENV = 'production'
# base api
# VUE_APP_BASE_API = 'http://localhost:8081/'
VUE_APP_BASE_API = '/'
NODE_ENV = production
# just a flag
ENV = 'staging'
# base api
VUE_APP_BASE_API = '/de-api/'
build/*.js
src/assets
src/styles/deicon/iconfont.js
src/components/canvas/assets/iconfont/iconfont.js
public
dist
node_modules
module.exports = {
root: true,
parserOptions: {
parser: 'babel-eslint',
sourceType: 'module'
},
env: {
browser: true,
node: true,
es6: true,
},
extends: ['plugin:vue/recommended', 'eslint:recommended'],
// add your custom rules here
//it is base on https://github.com/vuejs/eslint-config-vue
rules: {
"vue/singleline-html-element-content-newline": "off",
"vue/multiline-html-element-content-newline": "off",
"vue/no-mutating-props": "off",
"vue/multi-word-component-names": "off",
"vue/require-default-prop": "off",
"vue/no-v-html": "off",
'accessor-pairs': 2,
'arrow-spacing': [2, {
'before': true,
'after': true
}],
'block-spacing': [2, 'always'],
'brace-style': [2, '1tbs', {
'allowSingleLine': true
}],
'camelcase': [0, {
'properties': 'always'
}],
'comma-dangle': [2, 'never'],
'comma-spacing': [2, {
'before': false,
'after': true
}],
'comma-style': [2, 'last'],
'constructor-super': 2,
'curly': [2, 'multi-line'],
'dot-location': [2, 'property'],
'eol-last': 2,
'eqeqeq': ["error", "always", {
"null": "ignore"
}],
'generator-star-spacing': [2, {
'before': true,
'after': true
}],
'handle-callback-err': [2, '^(err|error)$'],
'indent': [2, 2, {
'SwitchCase': 1
}],
'jsx-quotes': [2, 'prefer-single'],
'key-spacing': [2, {
'beforeColon': false,
'afterColon': true
}],
'keyword-spacing': [2, {
'before': true,
'after': true
}],
'new-cap': [2, {
'newIsCap': true,
'capIsNew': false
}],
'new-parens': 2,
'no-array-constructor': 2,
'no-caller': 2,
'no-console': 'off',
'no-class-assign': 2,
'no-cond-assign': 2,
'no-const-assign': 2,
'no-control-regex': 0,
'no-delete-var': 2,
'no-dupe-args': 2,
'no-dupe-class-members': 2,
'no-dupe-keys': 2,
'no-duplicate-case': 2,
'no-empty-character-class': 2,
'no-empty-pattern': 2,
'no-eval': 2,
'no-ex-assign': 2,
'no-extend-native': 2,
'no-extra-bind': 2,
'no-extra-boolean-cast': 2,
'no-extra-parens': [2, 'functions'],
'no-fallthrough': 2,
'no-floating-decimal': 2,
'no-func-assign': 2,
'no-implied-eval': 2,
'no-inner-declarations': [2, 'functions'],
'no-invalid-regexp': 2,
'no-irregular-whitespace': 2,
'no-iterator': 2,
'no-label-var': 2,
'no-labels': [2, {
'allowLoop': false,
'allowSwitch': false
}],
'no-lone-blocks': 2,
'no-mixed-spaces-and-tabs': 2,
'no-multi-spaces': 2,
'no-multi-str': 2,
'no-multiple-empty-lines': [2, {
'max': 1
}],
'no-native-reassign': 2,
'no-negated-in-lhs': 2,
'no-new-object': 2,
'no-new-require': 2,
'no-new-symbol': 2,
'no-new-wrappers': 2,
'no-obj-calls': 2,
'no-octal': 2,
'no-octal-escape': 2,
'no-path-concat': 2,
'no-proto': 2,
'no-redeclare': 2,
'no-regex-spaces': 2,
'no-return-assign': [2, 'except-parens'],
'no-self-assign': 2,
'no-self-compare': 2,
'no-sequences': 2,
'no-shadow-restricted-names': 2,
'no-spaced-func': 2,
'no-sparse-arrays': 2,
'no-this-before-super': 2,
'no-throw-literal': 2,
'no-trailing-spaces': 2,
'no-undef': 2,
'no-undef-init': 2,
'no-unexpected-multiline': 2,
'no-unmodified-loop-condition': 2,
'no-unneeded-ternary': [2, {
'defaultAssignment': false
}],
'no-unreachable': 2,
'no-unsafe-finally': 2,
'no-unused-vars': [2, {
'vars': 'all',
'args': 'none'
}],
'no-useless-call': 2,
'no-useless-computed-key': 2,
'no-useless-constructor': 2,
'no-useless-escape': 0,
'no-whitespace-before-property': 2,
'no-with': 2,
'one-var': [2, {
'initialized': 'never'
}],
'operator-linebreak': [2, 'after', {
'overrides': {
'?': 'before',
':': 'before'
}
}],
'padded-blocks': [2, 'never'],
'quotes': [2, 'single', {
'avoidEscape': true,
'allowTemplateLiterals': true
}],
'semi': [2, 'never'],
'semi-spacing': [2, {
'before': false,
'after': true
}],
'space-before-blocks': [2, 'always'],
'space-before-function-paren': [2, 'never'],
'space-in-parens': [2, 'never'],
'space-infix-ops': 2,
'space-unary-ops': [2, {
'words': true,
'nonwords': false
}],
'spaced-comment': [2, 'always', {
'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ',']
}],
'template-curly-spacing': [2, 'never'],
'use-isnan': 2,
'valid-typeof': 2,
'wrap-iife': [2, 'any'],
'yield-star-spacing': [2, 'both'],
'yoda': [2, 'never'],
'prefer-const': 2,
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
'object-curly-spacing': [2, 'always', {
objectsInObjects: false
}],
'array-bracket-spacing': [2, 'never'],
"vue/no-use-v-if-with-v-for": ["error", {
"allowUsingIterationVar": true
}]
}
}
.DS_Store
node_modules/
dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
package-lock.json
tests/**/coverage/
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
language: node_js
node_js: 10
script: npm run test
notifications:
email: false
MIT License
Copyright (c) 2017-present PanJiaChen
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
module.exports = {
presets: [
'@vue/app'
],
plugins: [
'@babel/plugin-proposal-optional-chaining',
'@babel/plugin-proposal-nullish-coalescing-operator'
]
}
const { run } = require('runjs')
const chalk = require('chalk')
const config = require('../vue.config.js')
const rawArgv = process.argv.slice(2)
const args = rawArgv.join(' ')
if (process.env.npm_config_preview || rawArgv.includes('--preview')) {
const report = rawArgv.includes('--report')
run(`vue-cli-service build ${args}`)
const port = 9526
const publicPath = config.publicPath
var connect = require('connect')
var serveStatic = require('serve-static')
const app = connect()
app.use(
publicPath,
serveStatic('./dist', {
index: ['index.html', '/'],
link: ['link.html']
})
)
app.listen(port, function () {
console.log(chalk.green(`> Preview at http://localhost:${port}${publicPath}`))
if (report) {
console.log(chalk.green(`> Report at http://localhost:${port}${publicPath}report.html`))
}
})
} else {
run(`vue-cli-service build ${args}`)
}
{
"compilerOptions": {
"baseUrl": "./",
"paths": {
"@/*": ["src/*"]
}
},
"exclude": ["node_modules", "dist"]
}
import Mock from 'mockjs'
import { param2Obj } from '../src/utils'
import user from './user'
import table from './table'
const mocks = [
...user,
...table
]
// for front mock
// please use it cautiously, it will redefine XMLHttpRequest,
// which will cause many of your third-party libraries to be invalidated(like progress event).
export function mockXHR() {
// mock patch
// https://github.com/nuysoft/Mock/issues/300
Mock.XHR.prototype.proxy_send = Mock.XHR.prototype.send
Mock.XHR.prototype.send = function() {
if (this.custom.xhr) {
this.custom.xhr.withCredentials = this.withCredentials || false
if (this.responseType) {
this.custom.xhr.responseType = this.responseType
}
}
this.proxy_send(...arguments)
}
function XHR2ExpressReqWrap(respond) {
return function(options) {
let result = null
if (respond instanceof Function) {
const { body, type, url } = options
// https://expressjs.com/en/4x/api.html#req
result = respond({
method: type,
body: JSON.parse(body),
query: param2Obj(url)
})
} else {
result = respond
}
return Mock.mock(result)
}
}
for (const i of mocks) {
Mock.mock(new RegExp(i.url), i.type || 'get', XHR2ExpressReqWrap(i.response))
}
}
// for mock server
const responseFake = (url, type, respond) => {
return {
url: new RegExp(`${process.env.VUE_APP_BASE_API}${url}`),
type: type || 'get',
response(req, res) {
res.json(Mock.mock(respond instanceof Function ? respond(req, res) : respond))
}
}
}
export default mocks.map(route => {
return responseFake(route.url, route.type, route.response)
})
const chokidar = require('chokidar')
const bodyParser = require('body-parser')
const chalk = require('chalk')
const path = require('path')
const mockDir = path.join(process.cwd(), 'mock')
function registerRoutes(app) {
let mockLastIndex
const { default: mocks } = require('./index.js')
for (const mock of mocks) {
app[mock.type](mock.url, mock.response)
mockLastIndex = app._router.stack.length
}
const mockRoutesLength = Object.keys(mocks).length
return {
mockRoutesLength: mockRoutesLength,
mockStartIndex: mockLastIndex - mockRoutesLength
}
}
function unregisterRoutes() {
Object.keys(require.cache).forEach(i => {
if (i.includes(mockDir)) {
delete require.cache[require.resolve(i)]
}
})
}
module.exports = app => {
// es6 polyfill
require('@babel/register')
// parse app.body
// https://expressjs.com/en/4x/api.html#req.body
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({
extended: true
}))
const mockRoutes = registerRoutes(app)
var mockRoutesLength = mockRoutes.mockRoutesLength
var mockStartIndex = mockRoutes.mockStartIndex
// watch files, hot reload mock server
chokidar.watch(mockDir, {
ignored: /mock-server/,
ignoreInitial: true
}).on('all', (event, path) => {
if (event === 'change' || event === 'add') {
try {
// remove mock routes stack
app._router.stack.splice(mockStartIndex, mockRoutesLength)
// clear routes cache
unregisterRoutes()
const mockRoutes = registerRoutes(app)
mockRoutesLength = mockRoutes.mockRoutesLength
mockStartIndex = mockRoutes.mockStartIndex
} catch (error) {
console.error(chalk.redBright(error))
}
}
})
}
import Mock from 'mockjs'
const data = Mock.mock({
'items|30': [{
id: '@id',
title: '@sentence(10, 20)',
'status|1': ['published', 'draft', 'deleted'],
author: 'name',
display_time: '@datetime',
pageviews: '@integer(300, 5000)'
}]
})
export default [
{
url: '/dataease/table/list',
type: 'get',
response: config => {
const items = data.items
return {
code: 20000,
data: {
total: items.length,
items: items
}
}
}
}
]
const tokens = {
admin: {
token: 'admin-token'
},
editor: {
token: 'editor-token'
}
}
const users = {
'admin-token': {
roles: ['admin'],
introduction: 'I am a super administrator',
avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
name: 'Super Admin'
},
'editor-token': {
roles: ['editor'],
introduction: 'I am an editor',
avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
name: 'Normal Editor'
}
}
export default [
// user login
{
url: '/dataease/user/login',
type: 'post',
response: config => {
const { username } = config.body
const token = tokens[username]
// mock error
if (!token) {
return {
code: 60204,
message: 'Account and password are incorrect.'
}
}
return {
code: 20000,
data: token
}
}
},
// get user info
{
url: '/dataease/user/info*',
type: 'get',
response: config => {
const { token } = config.query
const info = users[token]
// mock error
if (!info) {
return {
code: 50008,
message: 'Login failed, unable to get user details.'
}
}
return {
code: 20000,
data: info
}
}
},
// user logout
{
url: '/dataease/user/logout',
type: 'post',
response: _ => {
return {
code: 20000,
data: 'success'
}
}
}
]
{
"name": "dataease",
"version": "1.18.9",
"description": "dataease front",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"serves": "node --max_old_space_size=4096 node_modules/@vue/cli-service/bin/vue-cli-service.js build",
"build:prod": "vue-cli-service build",
"build:stage": "vue-cli-service build --mode staging",
"dll": "webpack -p --progress --config ./webpack.dll.conf.js",
"preview": "node build/index.js --preview",
"lint": "eslint --ext .js,.vue src --fix",
"lint-staged": "lint-staged",
"svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml"
},
"husky": {
"hooks": {
"pre-commit": "npm run lint-staged"
}
},
"lint-staged": {
"src/**/*.js": "eslint --ext .js",
"src/**/*.vue": "eslint --ext .vue"
},
"dependencies": {
"@antv/g2plot": "^2.4.9",
"@antv/l7": "2.15.0",
"@antv/l7-component": "2.15.0",
"@antv/l7-core": "2.15.0",
"@antv/l7-layers": "2.15.0",
"@antv/l7-maps": "2.15.0",
"@antv/l7-renderer": "2.15.0",
"@antv/l7-scene": "2.15.0",
"@antv/l7-source": "2.15.0",
"@antv/l7-utils": "2.15.0",
"@antv/s2": "1.35.0",
"@antv/util": "^2.0.17",
"@riophae/vue-treeselect": "0.4.0",
"@tinymce/tinymce-vue": "^3.2.8",
"axios": "^0.21.3",
"core-js": "^2.6.5",
"echarts": "^5.0.1",
"element-resize-detector": "^1.2.3",
"element-ui": "2.15.7",
"file-saver": "^2.0.5",
"fit2cloud-ui": "^1.8.0",
"flv.js": "^1.6.2",
"html2canvasde": "^v1.1.4-de",
"jquery": "^3.1.1",
"js-base64": "^3.7.2",
"js-cookie": "2.2.0",
"js-pinyin": "^0.1.9",
"jsencrypt": "^3.0.0-rc.1",
"jspdf": "^2.3.1",
"jszip": "^3.10.1",
"lodash": "^4.17.21",
"lodash.isboolean": "^3.0.3",
"lodash.isempty": "^4.4.0",
"lodash.isinteger": "^4.0.4",
"lodash.isnull": "^3.0.0",
"lodash.isnumber": "^3.0.3",
"lodash.isobject": "^3.0.2",
"lodash.isstring": "^4.0.1",
"normalize.css": "7.0.0",
"nprogress": "0.2.0",
"screenfull": "4.2.0",
"sockjs-client": "^1.6.0",
"stompjs": "^2.3.3",
"svg-sprite-loader": "4.1.3",
"svgo": "1.2.2",
"tinymce": "^5.8.2",
"umy-ui": "^1.1.6",
"vue": "2.6.10",
"vue-clipboard2": "0.3.1",
"vue-codemirror": "^4.0.6",
"vue-friendly-iframe": "^0.20.0",
"vue-fullscreen": "^2.5.2",
"vue-i18n": "7.3.2",
"vue-json-views": "^1.3.0",
"vue-proportion-directive": "^1.1.0",
"vue-router": "3.0.6",
"vue-to-pdf": "^1.0.0",
"vue-uuid": "2.0.2",
"vue-video-player": "^5.0.2",
"vue2-ace-editor": "0.0.15",
"vuedraggable": "^2.24.3",
"vuex": "3.1.0",
"webpack": "^4.46.0",
"xlsx": "^0.17.0",
"xss": "^1.0.14"
},
"devDependencies": {
"@babel/core": "^7.4.0-0",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
"@babel/plugin-proposal-optional-chaining": "^7.18.6",
"@babel/register": "7.0.0",
"@vue/cli-plugin-babel": "3.6.0",
"@vue/cli-plugin-eslint": "^5.0.4",
"@vue/cli-service": "^3.3.1",
"add-asset-html-webpack-plugin": "^3.1.3",
"babel-eslint": "^10.1.0",
"chalk": "2.4.2",
"clean-webpack-plugin": "^1.0.1",
"connect": "3.6.6",
"copy-webpack-plugin": "^4.6.0",
"eslint": "^7.32.0",
"eslint-config-prettier": "^8.5.0",
"eslint-loader": "^4.0.2",
"eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-vue": "^9.1.0",
"html-webpack-plugin": "3.2.0",
"husky": "^8.0.1",
"less": "^3.0.0",
"less-loader": "^5.0.0",
"lint-staged": "^13.0.1",
"mockjs": "1.0.1-beta3",
"runjs": "^4.1.3",
"sass": "^1.33.0",
"sass-loader": "^7.1.0",
"script-ext-html-webpack-plugin": "2.1.3",
"script-loader": "^0.7.2",
"serve-static": "^1.13.2",
"vue-template-compiler": "2.6.10",
"vuetify": "^2.6.6",
"webpack-cli": "^3.2.3"
},
"engines": {
"node": ">=8.9",
"npm": ">= 3.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions"
]
}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>dataease-server</artifactId>
<groupId>io.dataease</groupId>
<version>${dataease.version}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>frontend</artifactId>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<frontend-maven-plugin.version>1.9.1</frontend-maven-plugin.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>${frontend-maven-plugin.version}</version>
<executions>
<execution>
<id>install node and npm</id>
<goals>
<goal>install-node-and-npm</goal>
</goals>
<configuration>
<!-- See https://nodejs.org/en/download/ for latest node and npm (lts) versions -->
<nodeVersion>v15.12.0</nodeVersion>
<npmVersion>7.6.3</npmVersion>
</configuration>
</execution>
<execution>
<id>npm install</id>
<goals>
<goal>npm</goal>
</goals>
<!-- Optional configuration which provides for running any npm command -->
<configuration>
<arguments>install</arguments>
</configuration>
</execution>
<execution>
<id>npm run build</id>
<goals>
<goal>npm</goal>
</goals>
<configuration>
<arguments>run build</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
// https://github.com/michael-ciniawsky/postcss-load-config
module.exports = {
'plugins': {
// to edit target browsers: use "browserslist" field in package.json
'autoprefixer': {}
}
}
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
preserveAspectRatio="none meet" viewBox="0 0 480 300" style="enable-background:new 0 0 480 300;" xml:space="preserve">
<style type="text/css">
.st0{fill:#1094E5;}
.st1{opacity:0.75;}
.st2{opacity:0.5;}
.st3{opacity:0.25;}
</style>
<g>
<g>
<path class="st0" d="M480.9,299.5H0.6V0.9h353l0.3,0.2l22.2,16.8h104.8V299.5z M2.3,297.8h476.9V19.6H375.6L353,2.6H2.3V297.8z"/>
</g>
</g>
<g>
<g>
<rect x="466.9" y="297.1" class="st0" width="14.7" height="2.9"/>
</g>
<g>
<rect x="472.8" y="291.2" transform="matrix(-1.836970e-16 1 -1 -1.836970e-16 772.8039 -187.5366)" class="st0" width="14.7" height="2.9"/>
</g>
</g>
<g>
<g>
<rect x="-5.9" y="291.3" transform="matrix(-1.836970e-16 1 -1 -1.836970e-16 294.2621 291.3384)" class="st0" width="14.7" height="2.9"/>
</g>
<g>
<rect y="297.1" transform="matrix(-1 -1.224647e-16 1.224647e-16 -1 14.7328 597.0763)" class="st0" width="14.7" height="2.9"/>
</g>
</g>
<g>
<g>
<rect x="0" y="0.1" transform="matrix(-1 -1.224647e-16 1.224647e-16 -1 14.7328 3.2131)" class="st0" width="14.7" height="2.9"/>
</g>
<g>
<rect x="-5.9" y="6" transform="matrix(6.123234e-17 -1 1 6.123234e-17 -6.0492 8.9729)" class="st0" width="14.7" height="2.9"/>
</g>
</g>
<g>
<polygon class="st0" points="409.2,15.9 387.8,15.9 374.5,5.9 395.9,5.9 "/>
</g>
<g class="st1">
<polygon class="st0" points="435.3,15.9 416.6,15.9 403.3,5.9 422,5.9 "/>
</g>
<g class="st2">
<polygon class="st0" points="458.7,15.9 442.7,15.9 429.4,5.9 445.5,5.9 "/>
</g>
<g class="st3">
<polygon class="st0" points="479.5,15.9 466.1,15.9 452.9,5.9 479.5,5.9 "/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
preserveAspectRatio="none meet" viewBox="0 0 480 300" style="enable-background:new 0 0 480 300;" xml:space="preserve">
<style type="text/css">
.st0{fill:#1094E5;}
.st1{opacity:0.8;fill:#1094E5;}
.st2{opacity:0.65;fill:#1094E5;}
.st3{opacity:0.35;fill:#1094E5;}
</style>
<polygon class="st0" points="0,86.7 1.1,87.8 1.1,92.3 0.6,92.7 0.6,134.6 0,134.6 "/>
<polygon class="st0" points="4.7,31.2 4.7,26.6 8,23.5 8,28.1 "/>
<polygon class="st1" points="4.7,35.9 4.7,32.2 8,29.1 8,32.8 "/>
<polygon class="st2" points="4.7,39.7 4.7,37 8,33.9 8,36.6 "/>
<polygon class="st3" points="4.7,42.8 4.7,40.9 8,37.8 8,44.1 "/>
<polygon class="st0" points="472.9,7.5 466.1,7.5 458.7,0 345,0 340.5,0 21.3,0 13.9,7.5 7.2,7.5 0,14.6 0,84.9 1.4,86.3 1.4,62.2
3.5,60.1 3.5,22.8 4.1,23.3 4.1,25.6 7.7,22.2 7.7,18.5 22,4.4 37.8,4.4 40.6,1.3 340.5,1.3 345,1.3 439.4,1.3 442.2,4.4 458,4.4
472.3,18.5 472.3,22.2 475.9,25.6 475.9,23.3 476.5,22.8 476.5,60.1 478.6,62.2 478.6,86.3 480,84.9 480,14.6 "/>
<polygon class="st0" points="480,86.7 478.9,87.8 478.9,92.3 479.4,92.7 479.4,134.6 480,134.6 "/>
<polygon class="st0" points="475.3,31.2 475.3,26.6 472,23.5 472,28.1 "/>
<polygon class="st1" points="475.3,35.9 475.3,32.2 472,29.1 472,32.8 "/>
<polygon class="st2" points="475.3,39.7 475.3,37 472,33.9 472,36.6 "/>
<polygon class="st3" points="475.3,42.8 475.3,40.9 472,37.8 472,44.1 "/>
<polygon class="st0" points="480,213.3 478.9,212.2 478.9,207.7 479.4,207.3 479.4,165.4 480,165.4 "/>
<polygon class="st0" points="475.3,268.8 475.3,273.4 472,276.5 472,271.9 "/>
<polygon class="st1" points="475.3,264.1 475.3,267.8 472,270.9 472,267.2 "/>
<polygon class="st2" points="475.3,260.3 475.3,263 472,266.1 472,263.4 "/>
<polygon class="st3" points="475.3,257.2 475.3,259.1 472,262.2 472,255.9 "/>
<polygon class="st0" points="478.6,213.7 478.6,237.8 476.5,239.9 476.5,277.2 475.9,276.7 475.9,274.4 472.3,277.8 472.3,281.5
458,295.6 442.2,295.6 439.4,298.7 353.7,298.7 340.5,298.7 40.6,298.7 37.8,295.6 22,295.6 7.7,281.5 7.7,277.8 4.1,274.4
4.1,276.7 3.5,277.2 3.5,239.9 1.4,237.8 1.4,213.7 0,215.1 0,285.4 7.2,292.5 13.9,292.5 21.3,300 340.5,300 353.7,300 458.7,300
466.1,292.5 472.9,292.5 480,285.4 480,215.1 "/>
<polygon class="st0" points="0,213.3 1.1,212.2 1.1,207.7 0.6,207.3 0.6,165.4 0,165.4 "/>
<polygon class="st0" points="4.7,268.8 4.7,273.4 8,276.5 8,271.9 "/>
<polygon class="st1" points="4.7,264.1 4.7,267.8 8,270.9 8,267.2 "/>
<polygon class="st2" points="4.7,260.3 4.7,263 8,266.1 8,263.4 "/>
<polygon class="st3" points="4.7,257.2 4.7,259.1 8,262.2 8,255.9 "/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
preserveAspectRatio="none meet" viewBox="0 0 480 300" style="enable-background:new 0 0 480 300;" xml:space="preserve">
<style type="text/css">
.st0{fill:#1094E5;}
</style>
<g>
<g>
<polygon class="st0" points="426,3.4 206.6,3.4 203.4,0.2 429,0.2 "/>
</g>
<g>
<polygon class="st0" points="479.9,50.1 479.3,50.1 479.3,2.1 430.6,2.1 427.2,5.8 205.4,5.8 201.8,2.1 10.8,2.1 1,12.2 1,15.8
0.4,15.8 0.4,12 0.4,11.9 10.5,1.4 202.1,1.4 205.7,5.1 426.9,5.1 430.3,1.4 479.9,1.4 "/>
</g>
<g>
<rect x="37.4" y="296.8" transform="matrix(-1 -1.224647e-16 1.224647e-16 -1 338.597 596.8842)" class="st0" width="263.9" height="3.2"/>
</g>
<g>
<polygon class="st0" points="468.8,298.9 0.6,298.9 0.6,263.5 1.3,263.5 1.3,298.2 468.5,298.2 478.3,288.1 478.3,281.8
476.3,277.7 476.3,274.8 479.9,271.2 479.9,272.2 477,275 477,277.6 479,281.7 479,288.4 478.9,288.5 "/>
</g>
<g>
<polygon class="st0" points="1.1,59.8 0.4,59.8 0.4,23.1 2.8,20.7 2.8,12.6 11.3,4 11.7,4.5 3.5,12.9 3.5,21 1.1,23.4 "/>
</g>
<g>
<polygon class="st0" points="4.3,18.5 2,18.5 0.9,20.4 2,22.3 4.3,22.3 5.4,20.4 "/>
</g>
<g>
<polygon class="st0" points="462.8,296.1 342.9,296.1 340.2,293.4 299.1,293.4 295.2,295.7 294.8,295.1 298.9,292.7 340.5,292.7
343.2,295.4 462.5,295.4 473.1,284.9 473.1,274.8 479,268.9 479,252.5 479.6,252.5 479.6,269.1 473.7,275.1 473.7,285.2
473.6,285.3 "/>
</g>
<g>
<polygon class="st0" points="478.7,283.3 463.5,298.6 468.7,298.6 478.8,288 "/>
</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
preserveAspectRatio="none meet" viewBox="0 0 480 300" style="enable-background:new 0 0 480 300;" xml:space="preserve">
<style type="text/css">
.st0{fill:#1094E5;}
</style>
<g>
<polygon class="st0" points="3.1,32 0.1,32 0.1,15.7 15.8,0 35.8,0 35.8,3 17,3 3.1,17 "/>
</g>
<g>
<polygon class="st0" points="479.9,35.8 476.9,35.8 476.9,17 463,3 447.9,3 447.9,0 464.2,0 479.9,15.7 "/>
</g>
<g>
<polygon class="st0" points="464.2,300 444.2,300 444.2,297 463,297 476.9,283 476.9,268 479.9,268 479.9,284.3 "/>
</g>
<g>
<polygon class="st0" points="32.1,300 15.8,300 0.1,284.3 0.1,264.3 3.1,264.3 3.1,283 17,297 32.1,297 "/>
</g>
<g>
<path class="st0" d="M459.7,293.4h-98.2L359,289H123l-2.5,4.3h-101L7.2,281.1V20.6L19.5,8.3h101l2.5,4.3H359l2.5-4.3h99.2L472,20.6
v260.4L459.7,293.4z M362.1,292.4h97.2l11.7-11.7V21L460.3,9.3h-98.2l-2.5,4.3H122.4l-2.5-4.3h-100L8.2,21v259.6l11.7,11.7h100
l2.5-4.3h237.2L362.1,292.4z"/>
</g>
<g>
<g>
<polygon class="st0" points="122.7,6.1 125.2,10.4 356.8,10.4 359.3,6.1 "/>
</g>
<g>
<polygon class="st0" points="359.3,295.6 356.8,291.3 125.2,291.3 122.7,295.6 "/>
</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
preserveAspectRatio="none meet" viewBox="0 0 480 300" style="enable-background:new 0 0 480 300;" xml:space="preserve">
<style type="text/css">
.st0{fill:#1094E5;}
</style>
<g>
<path class="st0" d="M475.8,295.8H4.3V5.3h471.5V295.8z M5.8,294.3h468.5V6.8H5.8V294.3z"/>
</g>
<polygon class="st0" points="43.5,4.7 27.3,4.7 22.9,4.7 8.4,4.7 3.3,4.7 3.3,9.8 3.3,24.3 3.3,28.7 3.3,44.9 6.5,44.9 6.5,26.6
8.4,25.3 8.4,9.8 23.9,9.8 25.2,7.9 43.5,7.9 "/>
<polygon class="st0" points="3.3,256.1 3.3,272.3 3.3,276.7 3.3,291.2 3.3,296.3 8.4,296.3 22.9,296.3 27.3,296.3 43.5,296.3
43.5,293.1 25.2,293.1 23.9,291.2 8.4,291.2 8.4,275.7 6.5,274.4 6.5,256.1 "/>
<polygon class="st0" points="436.7,296.3 452.9,296.3 457.3,296.3 471.7,296.3 476.9,296.3 476.9,291.2 476.9,276.7 476.9,272.3
476.9,256.1 473.7,256.1 473.7,274.4 471.7,275.7 471.7,291.2 456.2,291.2 455,293.1 436.7,293.1 "/>
<polygon class="st0" points="476.9,44.9 476.9,28.7 476.9,24.3 476.9,9.8 476.9,4.7 471.7,4.7 457.3,4.7 452.9,4.7 436.7,4.7
436.7,7.9 455,7.9 456.2,9.8 471.7,9.8 471.7,25.3 473.7,26.6 473.7,44.9 "/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
preserveAspectRatio="none meet" viewBox="0 0 480 300" style="enable-background:new 0 0 480 300;" xml:space="preserve">
<style type="text/css">
.st0{fill:#1094E5;}
.st1{fill:#1094E5;stroke:#231815;stroke-miterlimit:10;}
.st2{fill:#231815;}
.st3{fill:none;stroke:#231815;stroke-miterlimit:10;}
</style>
<g>
<path class="st0" d="M352.7,7l21.9,19.5l0.6,0.5h0.8H473v258.2l-5.8,6.8H13.1L7,286.1V14.3L13.5,7H352.7 M353.4,5H12.6L5,13.5V287
l7.3,7h455.9l6.8-8V25h-99.1L353.4,5L353.4,5z"/>
</g>
<g>
<g>
<polygon class="st0" points="8.9,31.3 3.9,35.4 3.9,11.3 11,4.3 65.4,4.3 59.8,9.3 13,9.3 8.9,13.4 "/>
</g>
</g>
<g>
<g>
<polygon class="st0" points="8.9,268.7 3.9,264.6 3.9,288.6 11,295.7 65.4,295.7 59.8,290.7 13,290.7 8.9,286.5 "/>
</g>
</g>
<g>
<g>
<polygon class="st0" points="471.6,268.7 476.6,264.6 476.6,288.6 469.5,295.7 415.1,295.7 420.7,290.7 467.5,290.7 471.6,286.5
"/>
</g>
</g>
<g>
<polygon class="st0" points="476.3,37.7 462.6,23.9 476.3,23.9 "/>
</g>
<g>
<polygon class="st0" points="471.3,31.3 435.3,31.3 422.4,23.5 376.6,23.5 360.3,9.1 47.3,9.1 47.3,8.1 360.7,8.1 377,22.5
422.6,22.5 435.6,30.3 471.3,30.3 "/>
</g>
<g>
<polygon class="st0" points="67.9,294 62.6,288.7 15.7,288.7 10.9,283.9 10.9,268.2 9,266.5 9,33.8 12.7,31.3 12.7,14.3 20.8,6.1
21.5,6.8 13.7,14.7 13.7,31.8 10,34.3 10,266 11.9,267.7 11.9,283.5 16.1,287.7 63,287.7 68.6,293.3 "/>
</g>
<g>
<rect x="471.3" y="69.7" class="st0" width="5.3" height="165.7"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
preserveAspectRatio="none meet" viewBox="0 0 480 300" style="enable-background:new 0 0 480 300;" xml:space="preserve">
<style type="text/css">
.st0{fill:#1094E5;}
.st1{fill:none;stroke:#231815;stroke-miterlimit:10;}
.st2{fill:none;stroke:#231815;stroke-width:3;stroke-miterlimit:10;}
</style>
<g>
<path class="st0" d="M476.5,296.5H3.5V3.5h473V296.5z M4.5,295.5h471V4.5H4.5V295.5z"/>
</g>
<g>
<polygon class="st0" points="5.5,13.8 2.5,13.8 2.5,2.5 13.8,2.5 13.8,5.5 5.5,5.5 "/>
</g>
<g>
<polygon class="st0" points="13.8,297.5 2.5,297.5 2.5,286.2 5.5,286.2 5.5,294.5 13.8,294.5 "/>
</g>
<g>
<polygon class="st0" points="477.5,297.5 466.2,297.5 466.2,294.5 474.5,294.5 474.5,286.2 477.5,286.2 "/>
</g>
<g>
<polygon class="st0" points="477.5,13.8 474.5,13.8 474.5,5.5 466.2,5.5 466.2,2.5 477.5,2.5 "/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
preserveAspectRatio="none meet" viewBox="0 0 480 300" style="enable-background:new 0 0 480 300;" xml:space="preserve">
<style type="text/css">
.st0{fill:#1094E5;}
.st1{opacity:0.25;}
.st2{fill-rule:evenodd;clip-rule:evenodd;fill:#1094E5;}
.st3{opacity:0.45;}
.st4{opacity:0.6;}
.st5{opacity:0.75;}
.st6{opacity:0.25;fill-rule:evenodd;clip-rule:evenodd;fill:#1094E5;}
.st7{opacity:0.45;fill-rule:evenodd;clip-rule:evenodd;fill:#1094E5;}
.st8{opacity:0.6;fill-rule:evenodd;clip-rule:evenodd;fill:#1094E5;}
.st9{opacity:0.75;fill-rule:evenodd;clip-rule:evenodd;fill:#1094E5;}
.st10{fill-rule:evenodd;clip-rule:evenodd;fill:none;stroke:#1094E5;stroke-width:3;stroke-miterlimit:10;}
</style>
<g>
<g>
<g>
<path class="st0" d="M467.7,298.5H2.5V25l12.1-13h101l9.8-10h353.1v282.9L467.7,298.5z M3.5,297.5h463.7l10.3-13V3H125.8L116,13
h-101L3.5,25.4V297.5z"/>
</g>
</g>
</g>
<g class="st1">
<polygon class="st2" points="71.4,1 62.4,10 70.4,10 79.4,1 "/>
</g>
<g class="st3">
<polygon class="st2" points="82.4,1 73.4,10 81.4,10 90.4,1 "/>
</g>
<g class="st4">
<polygon class="st2" points="93.4,1 84.4,10 92.4,10 101.4,1 "/>
</g>
<g class="st5">
<polygon class="st2" points="104.4,1 95.4,10 103.4,10 112.4,1 "/>
</g>
<g>
<polygon class="st2" points="115.4,1 106.4,10 114.4,10 123.4,1 "/>
</g>
<g>
<polygon class="st0" points="4.4,37.2 1.4,37.2 1.4,24.6 14,10.9 41.2,10.9 41.2,13.9 15.3,13.9 4.4,25.8 "/>
</g>
<g>
<polygon class="st0" points="20.8,299.5 1.3,299.5 1.3,282.8 4.3,282.8 4.3,296.5 20.8,296.5 "/>
</g>
<g>
<polygon class="st0" points="468.1,299.3 446.2,299.3 446.2,296.3 466.7,296.3 476.5,284 476.5,268.8 479.5,268.8 479.5,285 "/>
</g>
<g>
<polygon class="st0" points="479.5,15.2 476.5,15.2 476.5,3.6 464.2,3.6 464.2,0.6 479.5,0.6 "/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
preserveAspectRatio="none meet" viewBox="0 0 480 300" style="enable-background:new 0 0 480 300;" xml:space="preserve">
<style type="text/css">
.st0{fill:#1094E5;}
.st1{opacity:0.65;}
.st2{fill:none;stroke:#231815;stroke-width:2;stroke-miterlimit:10;}
.st3{fill:#231815;}
</style>
<g>
<polygon class="st0" points="9,35.7 7,35.7 7,6.2 201.7,6.2 201.7,8.2 9,8.2 "/>
</g>
<g>
<g>
<polygon class="st0" points="13,45.4 7,50.1 7,4.9 64.5,4.9 59,10.9 13,10.9 "/>
</g>
</g>
<g>
<polygon class="st0" points="407.5,288 6.5,288 6.5,165.3 13.3,159.9 13.3,119.3 10,115.9 10,45.6 12,45.6 12,115 15.3,118.5
15.3,160.9 8.5,166.3 8.5,286 407,286 422,278.8 422.9,280.6 "/>
</g>
<g>
<g>
<polygon class="st0" points="471.6,288.2 411.2,288.2 426.1,281.2 464.6,281.2 464.6,239.4 471.6,229.4 "/>
</g>
</g>
<g class="st1">
<polygon class="st0" points="464.4,236.7 462.8,235.6 469.8,225.9 469.8,177.6 465.3,175.1 465.3,57.1 469.8,54.6 469.8,7.1
214.1,7.1 207.4,13.8 150.6,13.8 150.6,11.8 206.6,11.8 213.3,5.1 471.8,5.1 471.8,55.8 467.3,58.3 467.3,174 471.8,176.5
471.8,226.5 "/>
</g>
<g>
<rect x="469.8" y="61.3" class="st0" width="2" height="111"/>
</g>
<g class="st1">
<rect x="8.5" y="120.3" class="st0" width="2" height="38.8"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
preserveAspectRatio="none meet" viewBox="0 0 480 300" style="enable-background:new 0 0 480 300;" xml:space="preserve">
<style type="text/css">
.st0{fill:#15709E;}
</style>
<g>
<path class="st0" d="M465.1,295.8H14.9L4.3,285.1V197l6.1-3.7v-86.5L4.3,103V14.9L14.9,4.3h450.1l10.7,10.7v87.7l-6.8,4.1v86.5
l6.8,4.1v87.7L465.1,295.8z M15.5,294.3h448.9l9.8-9.8v-86.2l-6.8-4.1v-88.2l6.8-4.1V15.6l-9.8-9.8H15.6l-9.8,9.8v86.6l6.1,3.7
v88.2l-6.1,3.7v86.7L15.5,294.3z"/>
</g>
<g>
<polygon class="st0" points="2.3,104.2 2.3,195.8 9.1,191.7 9.1,108.3 "/>
<polygon class="st0" points="477,195.8 477,104.2 470.2,108.3 470.2,191.7 "/>
</g>
<polygon class="st0" points="475.7,13.5 466.7,4.5 475.7,4.5 "/>
<polygon class="st0" points="466.7,295.7 475.7,286.7 475.7,295.7 "/>
<polygon class="st0" points="4.3,286.7 13.3,295.7 4.3,295.7 "/>
<polygon class="st0" points="13.3,4.5 4.3,13.5 4.3,4.5 "/>
</svg>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title></title>
</head>
<body>
<noscript>
<strong>We're sorry but <%= webpackConfig.name %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
</head>
<body style="height: 100%;">
<div id="link"></div>
</body>
<script>
function getQueryVariable(variable) {
let query = window.location.search.substring(1)
let vars = []
if (!query) {
query = document.cookie
vars = query.split(';')
} else {
vars = query.split('&')
}
for (var i = 0; i < vars.length; i++) {
const pair = vars[i].split('=')
if (pair[0].trim() === variable) {
return pair[1]
}
}
return (false)
}
const link = getQueryVariable('link')
const user = getQueryVariable('user')
const terminal = getQueryVariable('terminal')
const attachParams = getQueryVariable('attachParams')
let url = "/#/delink?link=" + encodeURIComponent(link)
if (terminal) {
url += '&terminal=' + terminal
}
if (user) {
url += '&user=' + encodeURIComponent(user)
}
if (attachParams) {
url += '&attachParams=' + encodeURIComponent(attachParams)
}
window.location.href = url
</script>
</html>
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>DataEase</title>
<style>
html,
body {
margin: 0 !important;
height: 100%;
}
.no-login-dynamic {
height: 100%;
background: url(./lic.png) no-repeat;
background-size: cover;
text-align: center;
}
span {
color: #000;
font-size: 25px;
font-weight: 500;
position: relative;
top: 130px;
}
</style>
</head>
<body style="height: 100%;">
<div class="no-login-dynamic">
<span>缺少许可</span>
</div>
</body>
<script>
document.getElementsByTagName("body")
</script>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>DataEase</title>
<style>
html,
body {
margin: 0 !important;
height: 100%;
}
.no-login-dynamic {
height: 100%;
background: url(./dynamic.gif) no-repeat;
background-size: cover;
text-align: center;
}
span {
color: #fff;
font-size: 25px;
font-weight: 500;
position: relative;
top: 30px;
}
</style>
</head>
<body style="height: 100%;">
<div id="de-nologin-div" class="no-login-dynamic">
<span>请先登录,即将跳转!</span>
</div>
</body>
<script>
const timer = setTimeout(() => {
window.location.href = "/";
}, 3500)
</script>
</html>
\ No newline at end of file
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
body {
background-color: #2f3742;
color: #dfe0e4;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
line-height: 1.4;
margin: 1rem;
}
a {
color: #4099ff;
}
table {
border-collapse: collapse;
}
/* Apply a default padding if legacy cellpadding attribute is missing */
table:not([cellpadding]) th,
table:not([cellpadding]) td {
padding: 0.4rem;
}
/* Set default table styles if a table has a positive border attribute
and no inline css */
table[border]:not([border="0"]):not([style*="border-width"]) th,
table[border]:not([border="0"]):not([style*="border-width"]) td {
border-width: 1px;
}
/* Set default table styles if a table has a positive border attribute
and no inline css */
table[border]:not([border="0"]):not([style*="border-style"]) th,
table[border]:not([border="0"]):not([style*="border-style"]) td {
border-style: solid;
}
/* Set default table styles if a table has a positive border attribute
and no inline css */
table[border]:not([border="0"]):not([style*="border-color"]) th,
table[border]:not([border="0"]):not([style*="border-color"]) td {
border-color: #6d737b;
}
figure {
display: table;
margin: 1rem auto;
}
figure figcaption {
color: #8a8f97;
display: block;
margin-top: 0.25rem;
text-align: center;
}
hr {
border-color: #6d737b;
border-style: solid;
border-width: 1px 0 0 0;
}
code {
background-color: #6d737b;
border-radius: 3px;
padding: 0.1rem 0.2rem;
}
.mce-content-body:not([dir=rtl]) blockquote {
border-left: 2px solid #6d737b;
margin-left: 1.5rem;
padding-left: 1rem;
}
.mce-content-body[dir=rtl] blockquote {
border-right: 2px solid #6d737b;
margin-right: 1.5rem;
padding-right: 1rem;
}
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
body{background-color:#2f3742;color:#dfe0e4;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem}a{color:#4099ff}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#6d737b}figure{display:table;margin:1rem auto}figure figcaption{color:#8a8f97;display:block;margin-top:.25rem;text-align:center}hr{border-color:#6d737b;border-style:solid;border-width:1px 0 0 0}code{background-color:#6d737b;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #6d737b;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #6d737b;margin-right:1.5rem;padding-right:1rem}
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
table {
border-collapse: collapse;
}
/* Apply a default padding if legacy cellpadding attribute is missing */
table:not([cellpadding]) th,
table:not([cellpadding]) td {
padding: 0.4rem;
}
/* Set default table styles if a table has a positive border attribute
and no inline css */
table[border]:not([border="0"]):not([style*="border-width"]) th,
table[border]:not([border="0"]):not([style*="border-width"]) td {
border-width: 1px;
}
/* Set default table styles if a table has a positive border attribute
and no inline css */
table[border]:not([border="0"]):not([style*="border-style"]) th,
table[border]:not([border="0"]):not([style*="border-style"]) td {
border-style: solid;
}
/* Set default table styles if a table has a positive border attribute
and no inline css */
table[border]:not([border="0"]):not([style*="border-color"]) th,
table[border]:not([border="0"]):not([style*="border-color"]) td {
border-color: #ccc;
}
figure {
display: table;
margin: 1rem auto;
}
figure figcaption {
color: #999;
display: block;
margin-top: 0.25rem;
text-align: center;
}
hr {
border-color: #ccc;
border-style: solid;
border-width: 1px 0 0 0;
}
code {
background-color: #e8e8e8;
border-radius: 3px;
padding: 0.1rem 0.2rem;
}
.mce-content-body:not([dir=rtl]) blockquote {
border-left: 2px solid #ccc;
margin-left: 1.5rem;
padding-left: 1rem;
}
.mce-content-body[dir=rtl] blockquote {
border-right: 2px solid #ccc;
margin-right: 1.5rem;
padding-right: 1rem;
}
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure{display:table;margin:1rem auto}figure figcaption{color:#999;display:block;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}code{background-color:#e8e8e8;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem}
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
@media screen {
html {
background: #f4f4f4;
min-height: 100%;
}
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
}
@media screen {
body {
background-color: #fff;
box-shadow: 0 0 4px rgba(0, 0, 0, 0.15);
box-sizing: border-box;
margin: 1rem auto 0;
max-width: 820px;
min-height: calc(100vh - 1rem);
padding: 4rem 6rem 6rem 6rem;
}
}
table {
border-collapse: collapse;
}
/* Apply a default padding if legacy cellpadding attribute is missing */
table:not([cellpadding]) th,
table:not([cellpadding]) td {
padding: 0.4rem;
}
/* Set default table styles if a table has a positive border attribute
and no inline css */
table[border]:not([border="0"]):not([style*="border-width"]) th,
table[border]:not([border="0"]):not([style*="border-width"]) td {
border-width: 1px;
}
/* Set default table styles if a table has a positive border attribute
and no inline css */
table[border]:not([border="0"]):not([style*="border-style"]) th,
table[border]:not([border="0"]):not([style*="border-style"]) td {
border-style: solid;
}
/* Set default table styles if a table has a positive border attribute
and no inline css */
table[border]:not([border="0"]):not([style*="border-color"]) th,
table[border]:not([border="0"]):not([style*="border-color"]) td {
border-color: #ccc;
}
figure figcaption {
color: #999;
margin-top: 0.25rem;
text-align: center;
}
hr {
border-color: #ccc;
border-style: solid;
border-width: 1px 0 0 0;
}
.mce-content-body:not([dir=rtl]) blockquote {
border-left: 2px solid #ccc;
margin-left: 1.5rem;
padding-left: 1rem;
}
.mce-content-body[dir=rtl] blockquote {
border-right: 2px solid #ccc;
margin-right: 1.5rem;
padding-right: 1rem;
}
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
@media screen{html{background:#f4f4f4;min-height:100%}}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif}@media screen{body{background-color:#fff;box-shadow:0 0 4px rgba(0,0,0,.15);box-sizing:border-box;margin:1rem auto 0;max-width:820px;min-height:calc(100vh - 1rem);padding:4rem 6rem 6rem 6rem}}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure figcaption{color:#999;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem}
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
line-height: 1.4;
margin: 1rem auto;
max-width: 900px;
}
table {
border-collapse: collapse;
}
/* Apply a default padding if legacy cellpadding attribute is missing */
table:not([cellpadding]) th,
table:not([cellpadding]) td {
padding: 0.4rem;
}
/* Set default table styles if a table has a positive border attribute
and no inline css */
table[border]:not([border="0"]):not([style*="border-width"]) th,
table[border]:not([border="0"]):not([style*="border-width"]) td {
border-width: 1px;
}
/* Set default table styles if a table has a positive border attribute
and no inline css */
table[border]:not([border="0"]):not([style*="border-style"]) th,
table[border]:not([border="0"]):not([style*="border-style"]) td {
border-style: solid;
}
/* Set default table styles if a table has a positive border attribute
and no inline css */
table[border]:not([border="0"]):not([style*="border-color"]) th,
table[border]:not([border="0"]):not([style*="border-color"]) td {
border-color: #ccc;
}
figure {
display: table;
margin: 1rem auto;
}
figure figcaption {
color: #999;
display: block;
margin-top: 0.25rem;
text-align: center;
}
hr {
border-color: #ccc;
border-style: solid;
border-width: 1px 0 0 0;
}
code {
background-color: #e8e8e8;
border-radius: 3px;
padding: 0.1rem 0.2rem;
}
.mce-content-body:not([dir=rtl]) blockquote {
border-left: 2px solid #ccc;
margin-left: 1.5rem;
padding-left: 1rem;
}
.mce-content-body[dir=rtl] blockquote {
border-right: 2px solid #ccc;
margin-right: 1.5rem;
padding-right: 1rem;
}
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem auto;max-width:900px}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure{display:table;margin:1rem auto}figure figcaption{color:#999;display:block;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}code{background-color:#e8e8e8;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem}
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection {
/* Note: this file is used inside the content, so isn't part of theming */
background-color: green;
display: inline-block;
opacity: 0.5;
position: absolute;
}
body {
-webkit-text-size-adjust: none;
}
body img {
/* this is related to the content margin */
max-width: 96vw;
}
body table img {
max-width: 95%;
}
body {
font-family: sans-serif;
}
table {
border-collapse: collapse;
}
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{background-color:green;display:inline-block;opacity:.5;position:absolute}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}body{font-family:sans-serif}table{border-collapse:collapse}
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
body.tox-dialog__disable-scroll {
overflow: hidden;
}
.tox-fullscreen {
border: 0;
height: 100%;
left: 0;
margin: 0;
overflow: hidden;
-ms-scroll-chaining: none;
overscroll-behavior: none;
padding: 0;
position: fixed;
top: 0;
touch-action: pinch-zoom;
width: 100%;
}
.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle {
display: none;
}
.tox.tox-tinymce.tox-fullscreen {
background-color: transparent;
z-index: 1200;
}
.tox-shadowhost.tox-fullscreen {
z-index: 1200;
}
.tox-fullscreen .tox.tox-tinymce-aux,
.tox-fullscreen ~ .tox.tox-tinymce-aux {
z-index: 1201;
}
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;left:0;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;position:fixed;top:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox.tox-tinymce.tox-fullscreen{background-color:transparent;z-index:1200}.tox-shadowhost.tox-fullscreen{z-index:1200}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection {
/* Note: this file is used inside the content, so isn't part of theming */
background-color: green;
display: inline-block;
opacity: 0.5;
position: absolute;
}
body {
-webkit-text-size-adjust: none;
}
body img {
/* this is related to the content margin */
max-width: 96vw;
}
body table img {
max-width: 95%;
}
body {
font-family: sans-serif;
}
table {
border-collapse: collapse;
}
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{background-color:green;display:inline-block;opacity:.5;position:absolute}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}body{font-family:sans-serif}table{border-collapse:collapse}
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
body.tox-dialog__disable-scroll {
overflow: hidden;
}
.tox-fullscreen {
border: 0;
height: 100%;
left: 0;
margin: 0;
overflow: hidden;
-ms-scroll-chaining: none;
overscroll-behavior: none;
padding: 0;
position: fixed;
top: 0;
touch-action: pinch-zoom;
width: 100%;
}
.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle {
display: none;
}
.tox.tox-tinymce.tox-fullscreen {
background-color: transparent;
z-index: 1200;
}
.tox-shadowhost.tox-fullscreen {
z-index: 1200;
}
.tox-fullscreen .tox.tox-tinymce-aux,
.tox-fullscreen ~ .tox.tox-tinymce-aux {
z-index: 1201;
}
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;left:0;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;position:fixed;top:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox.tox-tinymce.tox-fullscreen{background-color:transparent;z-index:1200}.tox-shadowhost.tox-fullscreen{z-index:1200}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
<template>
<div id="app">
<router-view />
<plugin-com v-show="false" ref="de-theme" component-name="ThemeSetting" />
<el-dialog
v-if="$route.path !== '/login'"
:visible.sync="showPasswordModifiedDialog"
append-to-body
:title="$t('user.change_password')"
:show-close="false"
>
<PasswordUpdateForm oldPwd="dataease" />
</el-dialog>
</div>
</template>
<script>
import PluginCom from "@/views/system/plugin/PluginCom";
import { mapState } from "vuex";
import PasswordUpdateForm from "@/views/system/user/PasswordUpdateForm.vue";
export default {
name: "App",
components: { PluginCom, PasswordUpdateForm },
computed: {
...mapState("user", ["passwordModified"]),
},
data() {
return {
showPasswordModifiedDialog: false,
};
},
mounted() {
const passwordModified = JSON.parse(
localStorage.getItem("passwordModified")
);
if (typeof passwordModified === "boolean") {
this.$store.commit("user/SET_PASSWORD_MODIFIED", passwordModified);
}
},
watch: {
passwordModified: {
handler(val) {
this.showPasswordModifiedDialog = !val;
},
immediate: true,
},
},
};
</script>
import request from '@/utils/request'
export function searchAppTemplate(data) {
return request({
url: '/appTemplate/find',
method: 'post',
loading: true,
hideMsg: true,
data
})
}
export function getCategories() {
return request({
url: '/template/market/categories',
method: 'get',
hideMsg: true,
loading: true
})
}
import request from '@/utils/request'
export function logGrid(page, size, data) {
return request({
url: '/app/log/logGrid/' + page + '/' + size,
method: 'post',
data,
loading: true
})
}
export function opTypes() {
return request({
url: '/app/log/opTypes',
method: 'post',
loading: true
})
}
export function exportExcel(data) {
return request({
url: '/app/log/export',
method: 'post',
loading: true,
responseType: 'blob',
data
})
}
export function deleteLogAndResource(data) {
return request({
url: '/app/log/deleteLog',
method: 'post',
data,
loading: true
})
}
import request from '@/utils/request'
export function queryAuthModel(data, loading = true, timeout = 60000) {
return request({
url: 'authModel/queryAuthModel',
method: 'post',
loading: loading,
data
})
}
import request from '@/utils/request'
export function queryBackground() {
return request({
url: 'background/findAll',
method: 'get'
})
}
import request from '@/utils/request'
export function post(url, data, loading = false) {
return request({
url: url,
method: 'post',
loading: loading,
data
})
}
export function tableField(id) {
return request({
url: '/dataset/table/getWithPermission/' + id,
method: 'post',
loading: false,
hideMsg: true,
timeout: 60000
})
}
export function getChartTree(data) {
return request({
url: 'api',
method: 'post',
loading: false,
data
})
}
export function chartCopy(id, panelId) {
return request({
url: '/chart/view/chartCopy/' + id + '/' + panelId,
method: 'post',
loading: false
})
}
export function chartBatchCopy(params, panelId) {
return request({
url: '/chart/view/chartBatchCopy/' + panelId,
method: 'post',
data: params,
loading: false
})
}
export function chartGroupTree(data) {
return request({
url: '/chart/group/tree',
method: 'post',
loading: false,
data
})
}
export function searchAdviceSceneId(panelId) {
return request({
url: '/chart/view/searchAdviceSceneId/' + panelId,
method: 'get',
loading: false
})
}
export function checkSameDataSet(viewIdSource, viewIdTarget) {
return request({
url: '/chart/view/checkSameDataSet/' + viewIdSource + '/' + viewIdTarget,
method: 'get',
loading: false
})
}
export function ajaxGetDataOnly(id, panelId, data) {
return request({
url: '/chart/view/getData/' + id + '/' + panelId,
method: 'post',
loading: false,
hideMsg: true,
data
})
}
export function pluginTypes() {
return request({
url: '/plugin/view/types',
method: 'post'
})
}
export function deleteCircle(id) {
return request({
url: '/chart/group/deleteCircle/' + id,
method: 'post',
loading: true
})
}
export function getChartDetails(id, panelId, data) {
return request({
url: '/chart/view/get/' + id + '/' + panelId,
method: 'post',
loading: false,
data
})
}
export function viewEditSave(panelId, data) {
return request({
url: '/chart/view/viewEditSave/' + panelId,
method: 'post',
loading: false,
data
})
}
export function resetViewCacheCallBack(viewId, panelId, callback) {
// 加载仪表板组件视图数据
resetViewCache(viewId, panelId).then(rep => {
callback(rep)
})
}
export function resetViewCache(viewId, panelId) {
return request({
url: '/chart/view/resetViewCache/' + viewId + '/' + panelId,
method: 'post',
loading: false
})
}
export function checkTitle(data) {
return request({
url: '/chart/view/checkTitle',
method: 'post',
data: data,
loading: false
})
}
export function viewPropsSave(panelId, data) {
return request({
url: '/chart/view/viewPropsSave/' + panelId,
method: 'post',
loading: false,
data
})
}
export const viewOptions = panelId => {
return request({
url: '/chart/view/viewOptions/' + panelId,
method: 'post'
})
}
export function getDatasourceRelationship(id) {
return request({
url: `/api/relation/datasource/${id}`,
method: 'get',
loading: true
})
}
export function getDatasetRelationship(id) {
return request({
url: `/api/relation/dataset/${id}`,
method: 'get',
loading: true
})
}
export function getPanelRelationship(id) {
return request({
url: `/api/relation/panel/${id}`,
method: 'get',
loading: true
})
}
import request from '@/utils/request'
export function loadTable(data) {
return request({
url: '/dataset/table/list',
method: 'post',
loading: true,
data
})
}
export function getScene(sceneId) {
return request({
url: '/dataset/group/getScene/' + sceneId,
loading: true,
method: 'post'
})
}
export function addGroup(data) {
return request({
url: '/dataset/group/save',
method: 'post',
loading: true,
data
})
}
export function delGroup(groupId) {
return request({
url: '/dataset/group/delete/' + groupId,
loading: true,
method: 'post'
})
}
export function addTable(data) {
return request({
url: '/dataset/table/update',
method: 'post',
loading: true,
data
})
}
export function alter(data) {
return request({
url: '/dataset/table/alter',
method: 'post',
loading: true,
data
})
}
export function delTable(tableId) {
return request({
url: '/dataset/table/delete/' + tableId,
loading: true,
method: 'post'
})
}
export function groupTree(data) {
return request({
url: '/dataset/group/tree',
method: 'post',
loading: true,
data
})
}
export function dsGroupTree(data) {
return request({
url: '/dataset/group/tree',
method: 'post',
loading: true,
data
})
}
export function listDatasource() {
return request({
url: '/datasource/list',
loading: true,
method: 'get'
})
}
export function getDatasetList() {
return request({
url: 'dataset/table/list',
loading: false,
method: 'post',
data: {}
})
}
export function getPanelGroupList() {
return request({
url: '/panel/group/list',
loading: false,
method: 'get'
})
}
export function listApiDatasource() {
return request({
url: '/datasource/list/api',
loading: true,
method: 'get'
})
}
export function getTable(id, hideMsg = false) {
return request({
url: '/dataset/table/get/' + id,
loading: false,
method: 'post',
hideMsg: hideMsg
})
}
export function getPreviewData(data) {
return request({
url: '/dataset/table/getPreviewData',
method: 'post',
loading: true,
data
})
}
export function fieldList(id, showLoading = true) {
return request({
url: '/dataset/field/list/' + id,
loading: showLoading,
method: 'post'
})
}
export function fieldListWithPermission(id, showLoading = true) {
//初始模板中的过滤组件无需走后台
if (id.indexOf('no_auth') > -1) {
return new Promise(function(resolve) {
resolve({
data: []
})
})
}
return request({
url: '/dataset/field/listWithPermission/' + id,
loading: showLoading,
method: 'post'
})
}
export function datasetParams(id, type, showLoading = true) {
return request({
url: '/dataset/table/params/' + id + '/' + type,
loading: showLoading,
method: 'post'
})
}
export function fieldListDQ(id, showLoading = true) {
return request({
url: '/dataset/field/listByDQ/' + id,
loading: showLoading,
method: 'post'
})
}
export function dateformats(id, showLoading = true) {
return request({
url: '/dataset/field/dateformats/' + id,
loading: showLoading,
method: 'post'
})
}
export function batchEdit(data) {
return request({
url: '/dataset/field/batchEdit',
method: 'post',
loading: true,
data
})
}
export function post(url, data, showLoading = true, timeout = 60000, hideMsg) {
return request({
url: url,
method: 'post',
loading: showLoading,
hideMsg,
data
})
}
export function mappingFieldValues(data) {
return request({
url: '/dataset/field/mappingFieldValues',
method: 'post',
loading: false,
data
})
}
export function linkMappingFieldValues(data) {
return request({
url: '/dataset/field/linkMappingFieldValues',
method: 'post',
loading: true,
data
})
}
export function multFieldValues(data) {
return request({
url: '/dataset/field/multFieldValues',
method: 'post',
loading: false,
data
})
}
export function linkMultFieldValues(data) {
return request({
url: '/dataset/field/linkMultFieldValues',
method: 'post',
loading: true,
data
})
}
export function isKettleRunning(showLoading = true) {
return request({
url: '/dataset/group/isKettleRunning',
method: 'post',
loading: showLoading
})
}
export function taskList(spage, size, data) {
return request({
url: '/dataset/group/isKettleRunning',
method: 'post',
// eslint-disable-next-line no-undef
loading: showLoading
})
}
export function datasetTaskList(page, size, data, loading) {
return request({
url: '/dataset/task/pageList/' + page + '/' + size,
method: 'post',
data,
loading: loading
})
}
export function datasetRowPermissionsList(datasetId, page, size, data, loading) {
return request({
url: 'plugin/dataset/rowPermissions/pageList/' + datasetId + '/' + page + '/' + size,
method: 'post',
data,
loading: loading
})
}
export function checkCustomDs() {
return request({
url: '/system/checkCustomDs',
method: 'post',
loading: true
})
}
export function exportExcel(data) {
return request({
url: '/dataset/taskLog/export',
method: 'post',
loading: true,
responseType: 'blob',
data
})
}
export function dsTable(page, size, id) {
return request({
url: '/datasource/getTables/' + id + '/' + page + '/' + size,
method: 'post'
})
}
export function exportDataset(data) {
// 初始化仪表板视图缓存
return request({
url: 'dataset/table/exportDataset',
method: 'post',
data: data,
loading: true,
responseType: 'blob'
})
}
export default { loadTable, getScene, addGroup, delGroup, addTable, delTable, groupTree, checkCustomDs, exportDataset }
import request from '@/utils/request'
const example = {
// 获取员工列表
staffList(data) {
return request.post(`/staff/findPage?pageNo=${data.pageNo - 1}&pageSize=${data.pageSize}`, {
name: data.name,
idCard: data.idCard,
mobile: data.mobile,
company: data.company,
department: data.department,
status: data.status,
reportTime: data.reportTime
})
},
// 删除员工信息
deleteByStaffInfo(id) {
return request.get('/staff/deleteById', {
params: {
id: id
}
})
}
}
export default example
/**
api接口的统一出口
*/
import example from './example'
export default {
example
// xxxx
}
import request from '@/utils/request'
export function validate(data) {
return request({
url: 'api/link/validate',
method: 'post',
loading: true,
hideMsg: true,
data
})
}
export function validatePwd(data) {
return request({
url: 'api/link/validatePwd',
method: 'post',
data
})
}
export function setPwd(data) {
return request({
url: 'api/link/resetPwd',
method: 'post',
data
})
}
export function setOverTime(data) {
return request({
url: 'api/link/resetOverTime',
method: 'post',
data
})
}
export function switchValid(data) {
return request({
url: 'api/link/switchLink',
method: 'post',
data
})
}
export function switchEnablePwd(data) {
return request({
url: 'api/link/enablePwd',
method: 'post',
data
})
}
export function viewLinkLog(data) {
return request({
url: 'api/link/viewLog',
method: 'post',
loading: true,
data
})
}
export function loadGenerate(resourceId) {
return request({
url: 'api/link/currentGenerate/' + resourceId,
method: 'post'
})
}
export function loadResource(resourceId,userId) {
return request({
url: 'api/link/resourceDetail/' + resourceId+'/'+ userId,
method: 'get'
})
}
export function viewInfo(id, panelId, data) {
return request({
url: 'api/link/viewDetail/' + id + '/' + panelId,
method: 'post',
hideMsg: true,
data
})
}
export function shortUrl(data) {
return request({
url: 'api/link/shortUrl',
method: 'post',
data
})
}
import request from '@/utils/request'
export const areaMapping = () => {
return request({
url: '/api/map/globalEntitys/0',
method: 'get',
loading: false
})
}
export const globalMapping = () => {
return request({
url: '/api/map/globalEntitys/0',
method: 'get',
loading: false
})
}
export function geoJson(areaCode) {
const countryCode = areaCode.substring(0, 3)
return request({
url: '/geo/full/' + countryCode + '/' + areaCode + '_full.json',
method: 'get',
loading: false
})
}
export function saveMap(data) {
return request({
url: '/api/map/saveMapNode',
method: 'post',
loading: true,
data
})
}
export function removeMap(data) {
return request({
url: '/api/map/delMapNode',
method: 'post',
loading: true,
data
})
}
import request from '@/utils/request'
export function saveEnshrine(panelGroupId, loading = true) {
return request({
url: '/api/store/' + panelGroupId,
method: 'post',
loading: loading
})
}
export function deleteEnshrine(id, loading = true) {
return request({
url: '/api/store/remove/' + id,
method: 'post',
loading: loading
})
}
export function enshrineList(data, loading = true) {
return request({
url: '/api/store/list',
method: 'post',
loading: loading,
data
})
}
export function starStatus(panelId) {
return request({
url: '/api/store/status/' + panelId,
method: 'post',
loading: false
})
}
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论