install commit!
3
.browserslistrc
Normal file
@ -0,0 +1,3 @@
|
||||
> 1%
|
||||
last 2 versions
|
||||
not ie <= 8
|
||||
15
.editorconfig
Normal file
@ -0,0 +1,15 @@
|
||||
# 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
|
||||
4
.eslintignore
Normal file
@ -0,0 +1,4 @@
|
||||
build/*.js
|
||||
src/assets
|
||||
public
|
||||
dist
|
||||
215
.eslintrc.js
Normal file
@ -0,0 +1,215 @@
|
||||
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/max-attributes-per-line': [2, {
|
||||
'singleline': 10,
|
||||
'multiline': {
|
||||
'max': 1,
|
||||
'allowFirstLine': false
|
||||
}
|
||||
}],
|
||||
'vue/html-self-closing': ['error', {
|
||||
'html': {
|
||||
'void': 'any',
|
||||
'normal': 'any',
|
||||
'component': 'any'
|
||||
},
|
||||
'svg': 'any',
|
||||
'math': 'any'
|
||||
}],
|
||||
'vue/singleline-html-element-content-newline': 'off',
|
||||
'vue/no-parsing-error': [2, { 'invalid-first-character-of-tag-name': false }],
|
||||
'vue/no-use-v-if-with-v-for': 'off',
|
||||
'vue/multiline-html-element-content-newline': 'off',
|
||||
'vue/name-property-casing': [0, 'PascalCase'],
|
||||
'vue/html-closing-bracket-newline': [0, {
|
||||
'singleline': 'never',
|
||||
'multiline': 'always'
|
||||
}],
|
||||
'vue/no-side-effects-in-computed-properties': 0,
|
||||
'accessor-pairs': 2, //在对象中使用getter/setter
|
||||
'arrow-spacing': [2, {
|
||||
'before': true,
|
||||
'after': true
|
||||
}], //=>的前/后括号
|
||||
'block-spacing': [2, 'always'], //块是否需要空格
|
||||
// if while function 后面的{必须与if在同一行,java风格。
|
||||
'brace-style': [2, '1tbs', {
|
||||
'allowSingleLine': true
|
||||
}],
|
||||
//强制驼峰法命名
|
||||
'camelcase': [0, {
|
||||
'properties': 'always'
|
||||
}],
|
||||
// 数组和对象键值对最后一个逗号, never参数:不能带末尾的逗号, always参数:必须带末尾的逗号,
|
||||
// always-multiline:多行模式必须带逗号,单行模式不能带逗号
|
||||
'comma-dangle': [2, 'never'],
|
||||
// 控制逗号前后的空格
|
||||
'comma-spacing': [2, {
|
||||
'before': false,
|
||||
'after': true
|
||||
}],
|
||||
'comma-style': [2, 'last'], // 控制逗号在行尾出现还是在行首出现
|
||||
// 强制在子类构造函数中用super()调用父类构造函数,TypeScrip的编译器也会提示
|
||||
'constructor-super': 2,
|
||||
// 强制object.key 中 . 的位置,参数:
|
||||
// property,'.'号应与属性在同一行
|
||||
// object, '.' 号应与对象名在同一行
|
||||
'dot-location': [2, 'property'],
|
||||
'eol-last': 2, // 文件末尾强制换行
|
||||
'eqeqeq': [2, 'allow-null'], // 使用 === 替代 ==
|
||||
'generator-star-spacing': 0, //生成器函数*的前后空格
|
||||
'handle-callback-err': 0, //nodejs 处理错误
|
||||
'indent': [2, 2, { //缩进风格
|
||||
'SwitchCase': 1
|
||||
}],
|
||||
// JSX 属性中一致使用双引号或单引号
|
||||
'jsx-quotes': [2, 'prefer-single'],
|
||||
//对象字面量中冒号的前后空格
|
||||
'key-spacing': [2, {
|
||||
'beforeColon': false,
|
||||
'afterColon': true
|
||||
}],
|
||||
'keyword-spacing': [2, {
|
||||
'before': true,
|
||||
'after': true
|
||||
}],
|
||||
//函数名首行大写必须使用new方式调用,首行小写必须用不带new方式调用
|
||||
'new-cap': [2, {
|
||||
'newIsCap': true,
|
||||
'capIsNew': false
|
||||
}],
|
||||
'new-parens': 2, //new时必须加小括号
|
||||
'no-array-constructor': 2, //禁止使用数组构造器
|
||||
'no-caller': 2, //禁止使用arguments.caller或arguments.callee
|
||||
'no-console': process.env.NODE_ENV === 'production' ? 2 : 0, //禁止使用console
|
||||
'no-class-assign': 2, //禁止给类赋值
|
||||
'no-cond-assign': 2, //禁止在条件表达式中使用赋值语句
|
||||
'no-const-assign': 2, //禁止修改const声明的变量
|
||||
'no-control-regex': 0, //禁止在正则表达式中使用控制字符
|
||||
'no-delete-var': 2, //不能对var声明的变量使用delete操作符
|
||||
'no-dupe-args': 2, //函数参数不能重复
|
||||
'no-dupe-class-members': 2, //不允许类中出现重复的声明
|
||||
'no-dupe-keys': 2, //在创建对象字面量时不允许键重复 {a:1,a:1}
|
||||
'no-duplicate-case': 2, //switch中的case标签不能重复
|
||||
'no-empty-character-class': 0, //正则表达式中的[]内容不能为空
|
||||
'no-empty-pattern': 0,
|
||||
'no-eval': 0, //禁止使用eval
|
||||
'no-ex-assign': 2, //禁止给catch语句中的异常参数赋值
|
||||
'no-extend-native': 2, //禁止扩展native对象
|
||||
'no-extra-bind': 2, //禁止不必要的函数绑定
|
||||
'no-extra-boolean-cast': 2, //禁止不必要的bool转换
|
||||
'no-extra-parens': [2, 'functions'], //禁止非必要的括号
|
||||
'no-fallthrough': 2, //禁止switch穿透
|
||||
'no-floating-decimal': 2, //禁止省略浮点数中的0 .5 3.
|
||||
'no-func-assign': 2, //禁止重复的函数声明
|
||||
'no-implied-eval': 2, //禁止使用隐式eval
|
||||
'no-inner-declarations': [2, 'functions'], //禁止在块语句中使用声明(变量或函数)
|
||||
'no-invalid-regexp': 2, //禁止无效的正则表达式
|
||||
'no-irregular-whitespace': 2, //不能有不规则的空格
|
||||
'no-iterator': 2, //禁止使用__iterator__ 属性
|
||||
'no-label-var': 2, //label名不能与var声明的变量名相同
|
||||
'no-labels': [2, { //禁止标签声明
|
||||
'allowLoop': false,
|
||||
'allowSwitch': false
|
||||
}],
|
||||
'no-lone-blocks': 2, //禁止不必要的嵌套块
|
||||
'no-mixed-spaces-and-tabs': 2, //禁止混用tab和空格
|
||||
'no-multi-spaces': 2, //不能用多余的空格
|
||||
'no-multi-str': 2, //字符串不能用\换行
|
||||
'no-multiple-empty-lines': [0, {
|
||||
'max': 1
|
||||
}], //空行最多不能超过1行
|
||||
'no-native-reassign': 2, //不能重写native对象
|
||||
'no-negated-in-lhs': 2, //in 操作符的左边不能有!
|
||||
'no-new-object': 2, //禁止使用new Object()
|
||||
'no-new-require': 2, //禁止使用new require
|
||||
'no-new-symbol': 2, //禁止使用new symbol
|
||||
'no-new-wrappers': 2, //禁止使用new创建包装实例,new String new Boolean new Number
|
||||
'no-obj-calls': 0, //不能调用内置的全局对象,比如Math() JSON()
|
||||
'no-octal': 2, //禁止使用八进制数字
|
||||
'no-octal-escape': 2, //禁止使用八进制转义序列
|
||||
'no-path-concat': 2, //node中不能使用__dirname或__filename做路径拼接
|
||||
'no-proto': 2, //禁止使用__proto__属性
|
||||
'no-redeclare': 2, //禁止重复声明变量
|
||||
'no-regex-spaces': 2, //禁止在正则表达式字面量中使用多个空格 /foo bar/
|
||||
'no-return-assign': [2, 'except-parens'], //return 语句中不能有赋值表达式
|
||||
'no-self-assign': 2, //自我分配
|
||||
'no-self-compare': 2, //不能比较自身
|
||||
'no-sequences': 2, //禁止使用逗号运算符
|
||||
'no-shadow-restricted-names': 2, //严格模式中规定的限制标识符不能作为声明时的变量名使用
|
||||
'no-spaced-func': 2, //函数调用时 函数名与()之间不能有空格
|
||||
'no-sparse-arrays': 2, //禁止稀疏数组, [1,,2]
|
||||
'no-this-before-super': 2, //在调用super()之前不能使用this或super
|
||||
'no-throw-literal': 2, //禁止抛出字面量错误 throw "error";
|
||||
'no-trailing-spaces': 0, //一行结束后面不要有空格
|
||||
'no-undef': 2, //不能有未定义的变量
|
||||
'no-undef-init': 2, //变量初始化时不能直接给它赋值为undefined
|
||||
'no-unexpected-multiline': 0, //避免多行表达式
|
||||
'no-unmodified-loop-condition': 0, //检查引用是否在循环中被修改
|
||||
'no-unneeded-ternary': 0, //禁止不必要的嵌套 var isYes = answer === 1 ? true : false;
|
||||
'no-unreachable': 2, //不能有无法执行的代码
|
||||
'no-unsafe-finally': 0,
|
||||
'no-unused-vars': [2, {
|
||||
'vars': 'all',
|
||||
'args': 'none'
|
||||
}], //不能有声明后未被使用的变量或参数
|
||||
'no-useless-call': 2, //禁止不必要的call和apply
|
||||
'no-useless-computed-key': 0, //没有必要使用带文字的计算属性
|
||||
'no-useless-constructor': 2, //可以在不改变类的工作方式的情况下安全地移除的类构造函数
|
||||
'no-useless-escape': 0,
|
||||
'no-whitespace-before-property': 0,
|
||||
'no-with': 2, //禁用with
|
||||
'one-var': 0, //连续声明
|
||||
'operator-linebreak': [2, 'after', {
|
||||
'overrides': {
|
||||
'?': 'before',
|
||||
':': 'before'
|
||||
}
|
||||
}], //换行时运算符在行尾还是行首
|
||||
'padded-blocks': 0, //块语句内行首行尾是否要空行
|
||||
'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': 0, //注释风格不要有空格什么的
|
||||
'template-curly-spacing': [2, 'never'],
|
||||
'use-isnan': 2, //禁止比较时使用NaN,只能用isNaN()
|
||||
'valid-typeof': 2, //必须使用合法的typeof的值
|
||||
'wrap-iife': [2, 'any'], //立即执行函数表达式的小括号风格
|
||||
'yield-star-spacing': 0,
|
||||
'yoda': [2, 'never'], //禁止尤达条件
|
||||
'prefer-const': 2, //首选const
|
||||
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, //禁止使用debugger
|
||||
'object-curly-spacing': [2, 'always', {
|
||||
objectsInObjects: false
|
||||
}], //大括号内是否允许不必要的空格
|
||||
'array-bracket-spacing': [2, 'never'] //是否允许非空数组里面有多余的空格
|
||||
}
|
||||
}
|
||||
35
.gitignore
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
.DS_Store
|
||||
node_modules
|
||||
/dist
|
||||
|
||||
/tests/e2e/videos/
|
||||
/tests/e2e/screenshots/
|
||||
|
||||
# local env files
|
||||
.env.local
|
||||
.env.*.local
|
||||
|
||||
# Log files
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
|
||||
# Editor directories and files
|
||||
.idea
|
||||
.vscode
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw*
|
||||
|
||||
# Lock File
|
||||
package-lock.json
|
||||
yarn.lock
|
||||
src/page/login/index copy.vue
|
||||
src/styles/login copy.scss
|
||||
src/styles/login copy 2.scss
|
||||
|
||||
*.zip
|
||||
/zip
|
||||
/target
|
||||
28
.gitlab-ci.yml
Normal file
@ -0,0 +1,28 @@
|
||||
|
||||
## GitLab CI/CD Config File
|
||||
|
||||
## https://ewiki.semi-tech.com/STC/CICD/index.md
|
||||
## https://docs.gitlab.com/ee/ci/index.html
|
||||
## https://docs.gitlab.com/ee/ci/yaml/index.html
|
||||
|
||||
---
|
||||
|
||||
variables:
|
||||
## `BOT_ALIAS` and `TEMPLATE_ALIAS` can be set here, or defined in your Group/Project > Settings > CI/CD > Variables
|
||||
## !!!: Project variables > Group variables > Instance(GitLab) variables > .yml job variables > .yml global variables
|
||||
## CI/CD variable precedence: https://docs.gitlab.com/ee/ci/variables/index.html#cicd-variable-precedence
|
||||
BOT_ALIAS: "TODO_replace_with_your_bot_alias"
|
||||
TEMPLATE_ALIAS: "sonar"
|
||||
VERBOSE: "false"
|
||||
|
||||
|
||||
default:
|
||||
tags:
|
||||
## public runners
|
||||
- public
|
||||
|
||||
include:
|
||||
## https://gitlab.semi-tech.com/stc/cicd/cicd-config
|
||||
- project: stc/cicd/cicd-config
|
||||
ref: master
|
||||
file: js.yml
|
||||
31
.npmrc
Normal file
@ -0,0 +1,31 @@
|
||||
registry=https://registry.npmmirror.com
|
||||
disturl=https://npmmirror.com/dist
|
||||
chromedriver-cdnurl=https://npmmirror.com/mirrors/chromedriver
|
||||
couchbase-binary-host-mirror=https://npmmirror.com/mirrors/couchbase/v{version}
|
||||
debug-binary-host-mirror=https://npmmirror.com/mirrors/node-inspector
|
||||
electron-mirror=https://npmmirror.com/mirrors/electron/
|
||||
flow-bin-binary-host-mirror=https://npmmirror.com/mirrors/flow/v
|
||||
fse-binary-host-mirror=https://npmmirror.com/mirrors/fsevents
|
||||
fuse-bindings-binary-host-mirror=https://npmmirror.com/mirrors/fuse-bindings/v{version}
|
||||
git4win-mirror=https://npmmirror.com/mirrors/git-for-windows
|
||||
gl-binary-host-mirror=https://npmmirror.com/mirrors/gl/v{version}
|
||||
grpc-node-binary-host-mirror=https://npmmirror.com/mirrors
|
||||
hackrf-binary-host-mirror=https://npmmirror.com/mirrors/hackrf/v{version}
|
||||
leveldown-binary-host-mirror=https://npmmirror.com/mirrors/leveldown/v{version}
|
||||
leveldown-hyper-binary-host-mirror=https://npmmirror.com/mirrors/leveldown-hyper/v{version}
|
||||
mknod-binary-host-mirror=https://npmmirror.com/mirrors/mknod/v{version}
|
||||
node-sqlite3-binary-host-mirror=https://npmmirror.com/mirrors
|
||||
node-tk5-binary-host-mirror=https://npmmirror.com/mirrors/node-tk5/v{version}
|
||||
nodegit-binary-host-mirror=https://npmmirror.com/mirrors/nodegit/v{version}/
|
||||
operadriver-cdnurl=https://npmmirror.com/mirrors/operadriver
|
||||
phantomjs-cdnurl=https://npmmirror.com/mirrors/phantomjs
|
||||
profiler-binary-host-mirror=https://npmmirror.com/mirrors/node-inspector/
|
||||
puppeteer-download-host=https://npmmirror.com/mirrors
|
||||
python-mirror=https://npmmirror.com/mirrors/python
|
||||
rabin-binary-host-mirror=https://npmmirror.com/mirrors/rabin/v{version}
|
||||
sass-binary-site=https://npmmirror.com/mirrors/node-sass
|
||||
sodium-prebuilt-binary-host-mirror=https://npmmirror.com/mirrors/sodium-prebuilt/v{version}
|
||||
sqlite3-binary-site=https://npmmirror.com/mirrors/sqlite3
|
||||
utf-8-validate-binary-host-mirror=https://npmmirror.com/mirrors/utf-8-validate/v{version}
|
||||
utp-native-binary-host-mirror=https://npmmirror.com/mirrors/utp-native/v{version}
|
||||
zmq-prebuilt-binary-host-mirror=https://npmmirror.com/mirrors/zmq-prebuilt/v{version}
|
||||
5
.postcssrc.js
Normal file
@ -0,0 +1,5 @@
|
||||
module.exports = {
|
||||
plugins: {
|
||||
autoprefixer: {}
|
||||
}
|
||||
}
|
||||
12
Dockerfile
Normal file
@ -0,0 +1,12 @@
|
||||
FROM node:14.18.3 as builder
|
||||
|
||||
WORKDIR /opt
|
||||
COPY .. .
|
||||
|
||||
RUN npm install -g cnpm --registry=https://registry.npm.taobao.org \
|
||||
&& cnpm install && cnpm run build
|
||||
|
||||
FROM nginx:1.19
|
||||
|
||||
COPY --from=builder /opt/web.conf /etc/nginx/conf.d/default.conf
|
||||
COPY --from=builder /opt/dist /opt/dist
|
||||
7
babel.config.js
Normal file
@ -0,0 +1,7 @@
|
||||
module.exports = {
|
||||
presets: [[
|
||||
'@vue/app',
|
||||
{ useBuiltIns: "entry" }
|
||||
]],
|
||||
plugins: ["@babel/plugin-proposal-optional-chaining", "@babel/plugin-transform-modules-commonjs"]
|
||||
}
|
||||
9
docker/Dockerfile
Normal file
@ -0,0 +1,9 @@
|
||||
FROM nginx
|
||||
|
||||
COPY ./dist /data
|
||||
|
||||
RUN rm /etc/nginx/conf.d/default.conf
|
||||
|
||||
ADD mom-ui.conf /etc/nginx/conf.d/default.conf
|
||||
|
||||
RUN /bin/bash -c 'echo init ok'
|
||||
19
docker/docker-compose.yaml
Normal file
@ -0,0 +1,19 @@
|
||||
version: '3'
|
||||
services:
|
||||
mom-ui:
|
||||
build:
|
||||
context: .
|
||||
restart: always
|
||||
container_name: mom-ui
|
||||
image: mom-ui
|
||||
networks:
|
||||
- mom_default
|
||||
external_links:
|
||||
- mom-gateway
|
||||
ports:
|
||||
- 80:80
|
||||
|
||||
# 加入到后端网络, 默认为 mom_default | docker network ls 查看
|
||||
networks:
|
||||
mom_default:
|
||||
external: true
|
||||
26
docker/mom-ui.conf
Normal file
@ -0,0 +1,26 @@
|
||||
server {
|
||||
listen 80;
|
||||
|
||||
gzip on;
|
||||
gzip_static on; # 需要http_gzip_static_module 模块
|
||||
gzip_min_length 1k;
|
||||
gzip_comp_level 4;
|
||||
gzip_proxied any;
|
||||
gzip_types text/plain text/xml text/css;
|
||||
gzip_vary on;
|
||||
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
|
||||
|
||||
# 前端打包好的dist目录文件
|
||||
root /data/;
|
||||
|
||||
# 若新增后端路由前缀注意在此处添加(|新增)
|
||||
location ~* ^/(code|auth|admin|monitor|actuator|gen|job|tx|act|mp|pay|jimu|aj|rpt|mes-core|pms|tooling|anomaly) {
|
||||
proxy_pass http://mom-gateway:9999;
|
||||
proxy_connect_timeout 15s;
|
||||
proxy_send_timeout 15s;
|
||||
proxy_read_timeout 15s;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto http;
|
||||
}
|
||||
}
|
||||
9
jsconfig.json
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"baseUrl": "./",
|
||||
"paths": {
|
||||
"@/*": ["src/*"]
|
||||
}
|
||||
},
|
||||
"exclude": ["node_modules", "dist"]
|
||||
}
|
||||
9
nlv-ui.iml
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
3
nodestatic.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"path": "dist"
|
||||
}
|
||||
108
package.json
Normal file
@ -0,0 +1,108 @@
|
||||
{
|
||||
"name": "nlv-ui",
|
||||
"version": "4.5.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "vue-cli-service serve",
|
||||
"build": "vue-cli-service build",
|
||||
"build:docker": "vue-cli-service build --dest=./docker/dist/",
|
||||
"lint": "vue-cli-service lint",
|
||||
"analyze": "vue-cli-service build --report",
|
||||
"build:rainbond": "vue-cli-service build --mode test --dest=./rainbond/dist/ && cd rainbond && (if exist .git rd /s /q .git) && copy web.conf dist && git init && git add . && git commit -m \"@deploy\" && git push -f https://gitee.com/forever_win/mom-ui-html-3peak.git master",
|
||||
"macbuild:rainbond": "vue-cli-service build --mode test --dest=./rainbond/dist/ && cd rainbond && rm -rf .git && cp web.conf dist && git init && git add . && git commit -m \"@deploy\" && git push -f https://gitee.com/forever_win/mom-ui-html-3peak.git master",
|
||||
"build:prd": "vue-cli-service build --mode production --dest=./rainbond/dist/ && cd rainbond && (if exist .git rd /s /q .git) && copy web.conf dist && git init && git add . && git commit -m \"@deploy\" && git push -f https://gitee.com/forever_win/mom-ui-html-prd-3peak.git master",
|
||||
"macbuild:prd": "vue-cli-service build --mode production --dest=./rainbond/dist/ && cd rainbond && rm -rf .git && cp web.conf dist && git init && git add . && git commit -m \"@deploy\" && git push -f https://gitee.com/forever_win/mom-ui-html-prd-3peak.git master"
|
||||
},
|
||||
"dependencies": {
|
||||
"@chenfengyuan/vue-qrcode": "^1.0.1",
|
||||
"@riophae/vue-treeselect": "0.4.0",
|
||||
"@tinymce/tinymce-vue": "^3.2.0",
|
||||
"@types/webpack-env": "^1.18.4",
|
||||
"@xkeshi/image-compressor": "^0.5.3",
|
||||
"avue-plugin-ueditor": "^0.1.4",
|
||||
"axios": "^0.18.0",
|
||||
"babel-polyfill": "^6.26.0",
|
||||
"bin-code-editor": "^0.9.0",
|
||||
"bpmn-js-create-append-anything": "^0.4.0",
|
||||
"bpmn-js-token-simulation": "0.10.0",
|
||||
"classlist-polyfill": "^1.2.0",
|
||||
"clipboard": "^2.0.4",
|
||||
"codemirror": "^5.53.2",
|
||||
"cropperjs": "^1.6.2",
|
||||
"crypto-js": "^3.1.9-1",
|
||||
"e-icon-picker": "^1.1.7",
|
||||
"echarts": "^4.9.0",
|
||||
"el-table-draggable": "^1.4.12",
|
||||
"element-ui": "2.15.8",
|
||||
"encryptlong": "^3.1.4",
|
||||
"exceljs": "^4.3.0",
|
||||
"file-saver": "^2.0.5",
|
||||
"highlight.js": "10.5.0",
|
||||
"js-beautify": "1.13.0",
|
||||
"js-cookie": "^2.2.0",
|
||||
"jsencrypt": "^3.3.2",
|
||||
"json-server": "^1.0.0-alpha.23",
|
||||
"jsplumb": "^2.9.2",
|
||||
"less": "^4.1.1",
|
||||
"less-loader": "^6.0.0",
|
||||
"lodash": "4.17.15",
|
||||
"moment": "^2.29.4",
|
||||
"nprogress": "^0.2.0",
|
||||
"pig-avue-form-design": "^1.5.15",
|
||||
"script-loader": "^0.7.2",
|
||||
"sockjs-client": "1.0.0",
|
||||
"stomp-websocket": "2.3.4-next",
|
||||
"svg-sprite-loader": "^5.1.1",
|
||||
"vue": "2.6.14",
|
||||
"vue-awesome": "^4.5.0",
|
||||
"vue-axios": "^2.1.2",
|
||||
"vue-clipboard2": "^0.3.0",
|
||||
"vue-cnname-avatar": "^1.0.6",
|
||||
"vue-codemirror": "^4.0.6",
|
||||
"vue-cron": "^1.0.9",
|
||||
"vue-echarts": "^4.1.0",
|
||||
"vue-i18n": "^8.28.2",
|
||||
"vue-json-editor": "^1.2.3",
|
||||
"vue-json-tree-view": "^2.1.4",
|
||||
"vue-quill-editor": "3.0.6",
|
||||
"vue-router": "^3.0.2",
|
||||
"vue-upload-component": "^2.8.23",
|
||||
"vuedraggable": "^2.24.3",
|
||||
"vuex": "^3.0.1",
|
||||
"webpack": "4.47.0",
|
||||
"xlsx": "^0.18.5",
|
||||
"xml-js": "^1.6.11"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/plugin-proposal-optional-chaining": "^7.21.0",
|
||||
"@babel/plugin-transform-modules-commonjs": "^7.22.5",
|
||||
"@vue/cli-plugin-babel": "^3.12.0",
|
||||
"@vue/cli-service": "^3.12.0",
|
||||
"benz-amr-recorder": "^1.0.14",
|
||||
"bpmn-js": "^14.2.0",
|
||||
"cache-loader": "^4.1.0",
|
||||
"chai": "^4.1.2",
|
||||
"compression-webpack-plugin": "^3.1.0",
|
||||
"filemanager-webpack-plugin": "^5.0.0",
|
||||
"sass": "1.32.13",
|
||||
"sass-loader": "10.1.1",
|
||||
"ts-loader": "^8.2.0",
|
||||
"typescript": "^5.3.3",
|
||||
"vue-class-component": "^7.2.6",
|
||||
"vue-pdf": "^4.3.0",
|
||||
"vue-property-decorator": "^9.1.2",
|
||||
"vue-template-compiler": "2.6.14",
|
||||
"vue-video-player": "^5.0.2",
|
||||
"webpack-war-plugin": "^1.0.0-beta.3"
|
||||
},
|
||||
"lint-staged": {
|
||||
"*.js": [
|
||||
"vue-cli-service lint",
|
||||
"git add"
|
||||
],
|
||||
"*.vue": [
|
||||
"vue-cli-service lint",
|
||||
"git add"
|
||||
]
|
||||
}
|
||||
}
|
||||
11
public/cdn/animate/3.5.2/animate.css
vendored
Normal file
59
public/cdn/avue/avue.css
Normal file
@ -0,0 +1,59 @@
|
||||
html,
|
||||
body,
|
||||
#app {
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.avue-home {
|
||||
background-color: #303133;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.avue-home__main {
|
||||
user-select: none;
|
||||
width: 100%;
|
||||
flex-grow: 1;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.avue-home__footer {
|
||||
width: 100%;
|
||||
flex-grow: 0;
|
||||
text-align: center;
|
||||
padding: 1em 0;
|
||||
}
|
||||
|
||||
.avue-home__footer > a {
|
||||
font-size: 12px;
|
||||
color: #ABABAB;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.avue-home__loading {
|
||||
height: 32px;
|
||||
width: 32px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.avue-home__title {
|
||||
color: #FFF;
|
||||
font-size: 14px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.avue-home__sub-title {
|
||||
color: #ABABAB;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.avue-tree__content {
|
||||
padding: 5px 0 0 5px !important;
|
||||
height: calc(100% - 32px);
|
||||
}
|
||||
4491
public/cdn/avue/index.css
Normal file
9
public/cdn/avue/index.js
Normal file
193
public/cdn/store/1.3.20/store.js
Normal file
@ -0,0 +1,193 @@
|
||||
'use strict'
|
||||
// Module export pattern from
|
||||
// https://github.com/umdjs/umd/blob/master/returnExports.js
|
||||
;(function (root, factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module.
|
||||
define([], factory)
|
||||
} else if (typeof exports === 'object') {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory()
|
||||
} else {
|
||||
// Browser globals (root is window)
|
||||
root.store = factory()
|
||||
}
|
||||
}(this, function () {
|
||||
// Store.js
|
||||
var store = {}
|
||||
|
||||
var win = (typeof window !== 'undefined' ? window : global)
|
||||
|
||||
var doc = win.document
|
||||
|
||||
var localStorageName = 'localStorage'
|
||||
|
||||
var scriptTag = 'script'
|
||||
|
||||
var storage
|
||||
|
||||
store.disabled = false
|
||||
store.version = '1.3.20'
|
||||
store.set = function (key, value) {}
|
||||
store.get = function (key, defaultVal) {}
|
||||
store.has = function (key) { return store.get(key) !== undefined }
|
||||
store.remove = function (key) {}
|
||||
store.clear = function () {}
|
||||
store.transact = function (key, defaultVal, transactionFn) {
|
||||
if (transactionFn == null) {
|
||||
transactionFn = defaultVal
|
||||
defaultVal = null
|
||||
}
|
||||
if (defaultVal == null) {
|
||||
defaultVal = {}
|
||||
}
|
||||
var val = store.get(key, defaultVal)
|
||||
transactionFn(val)
|
||||
store.set(key, val)
|
||||
}
|
||||
store.getAll = function () {}
|
||||
store.forEach = function () {}
|
||||
|
||||
store.serialize = function (value) {
|
||||
return JSON.stringify(value)
|
||||
}
|
||||
store.deserialize = function (value) {
|
||||
if (typeof value !== 'string') { return undefined }
|
||||
try { return JSON.parse(value) } catch (e) { return value || undefined }
|
||||
}
|
||||
|
||||
// Functions to encapsulate questionable FireFox 3.6.13 behavior
|
||||
// when about.config::dom.storage.enabled === false
|
||||
// See https://github.com/marcuswestin/store.js/issues#issue/13
|
||||
function isLocalStorageNameSupported () {
|
||||
try { return (localStorageName in win && win[localStorageName]) } catch (err) { return false }
|
||||
}
|
||||
|
||||
if (isLocalStorageNameSupported()) {
|
||||
storage = win[localStorageName]
|
||||
store.set = function (key, val) {
|
||||
if (val === undefined) { return store.remove(key) }
|
||||
storage.setItem(key, store.serialize(val))
|
||||
return val
|
||||
}
|
||||
store.get = function (key, defaultVal) {
|
||||
var val = store.deserialize(storage.getItem(key))
|
||||
return (val === undefined ? defaultVal : val)
|
||||
}
|
||||
store.remove = function (key) { storage.removeItem(key) }
|
||||
store.clear = function () { storage.clear() }
|
||||
store.getAll = function () {
|
||||
var ret = {}
|
||||
store.forEach(function (key, val) {
|
||||
ret[key] = val
|
||||
})
|
||||
return ret
|
||||
}
|
||||
store.forEach = function (callback) {
|
||||
for (var i = 0; i < storage.length; i++) {
|
||||
var key = storage.key(i)
|
||||
callback(key, store.get(key))
|
||||
}
|
||||
}
|
||||
} else if (doc && doc.documentElement.addBehavior) {
|
||||
var storageOwner,
|
||||
storageContainer
|
||||
// Since #userData storage applies only to specific paths, we need to
|
||||
// somehow link our data to a specific path. We choose /favicon.ico
|
||||
// as a pretty safe option, since all browsers already make a request to
|
||||
// this URL anyway and being a 404 will not hurt us here. We wrap an
|
||||
// iframe pointing to the favicon in an ActiveXObject(htmlfile) object
|
||||
// (see: http://msdn.microsoft.com/en-us/library/aa752574(v=VS.85).aspx)
|
||||
// since the iframe access rules appear to allow direct access and
|
||||
// manipulation of the document element, even for a 404 page. This
|
||||
// document can be used instead of the current document (which would
|
||||
// have been limited to the current path) to perform #userData storage.
|
||||
try {
|
||||
storageContainer = new ActiveXObject('htmlfile')
|
||||
storageContainer.open()
|
||||
storageContainer.write('<' + scriptTag + '>document.w=window</' + scriptTag + '><iframe src="/favicon.ico"></iframe>')
|
||||
storageContainer.close()
|
||||
storageOwner = storageContainer.w.frames[0].document
|
||||
storage = storageOwner.createElement('div')
|
||||
} catch (e) {
|
||||
// somehow ActiveXObject instantiation failed (perhaps some special
|
||||
// security settings or otherwse), fall back to per-path storage
|
||||
storage = doc.createElement('div')
|
||||
storageOwner = doc.body
|
||||
}
|
||||
var withIEStorage = function (storeFunction) {
|
||||
return function () {
|
||||
var args = Array.prototype.slice.call(arguments, 0)
|
||||
args.unshift(storage)
|
||||
// See http://msdn.microsoft.com/en-us/library/ms531081(v=VS.85).aspx
|
||||
// and http://msdn.microsoft.com/en-us/library/ms531424(v=VS.85).aspx
|
||||
storageOwner.appendChild(storage)
|
||||
storage.addBehavior('#default#userData')
|
||||
storage.load(localStorageName)
|
||||
var result = storeFunction.apply(store, args)
|
||||
storageOwner.removeChild(storage)
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
// In IE7, keys cannot start with a digit or contain certain chars.
|
||||
// See https://github.com/marcuswestin/store.js/issues/40
|
||||
// See https://github.com/marcuswestin/store.js/issues/83
|
||||
var forbiddenCharsRegex = new RegExp("[!\"#$%&'()*+,/\\\\:;<=>?@[\\]^`{|}~]", 'g')
|
||||
var ieKeyFix = function (key) {
|
||||
return key.replace(/^d/, '___$&').replace(forbiddenCharsRegex, '___')
|
||||
}
|
||||
store.set = withIEStorage(function (storage, key, val) {
|
||||
key = ieKeyFix(key)
|
||||
if (val === undefined) { return store.remove(key) }
|
||||
storage.setAttribute(key, store.serialize(val))
|
||||
storage.save(localStorageName)
|
||||
return val
|
||||
})
|
||||
store.get = withIEStorage(function (storage, key, defaultVal) {
|
||||
key = ieKeyFix(key)
|
||||
var val = store.deserialize(storage.getAttribute(key))
|
||||
return (val === undefined ? defaultVal : val)
|
||||
})
|
||||
store.remove = withIEStorage(function (storage, key) {
|
||||
key = ieKeyFix(key)
|
||||
storage.removeAttribute(key)
|
||||
storage.save(localStorageName)
|
||||
})
|
||||
store.clear = withIEStorage(function (storage) {
|
||||
var attributes = storage.XMLDocument.documentElement.attributes
|
||||
storage.load(localStorageName)
|
||||
for (var i = attributes.length - 1; i >= 0; i--) {
|
||||
storage.removeAttribute(attributes[i].name)
|
||||
}
|
||||
storage.save(localStorageName)
|
||||
})
|
||||
store.getAll = function (storage) {
|
||||
var ret = {}
|
||||
store.forEach(function (key, val) {
|
||||
ret[key] = val
|
||||
})
|
||||
return ret
|
||||
}
|
||||
store.forEach = withIEStorage(function (storage, callback) {
|
||||
var attributes = storage.XMLDocument.documentElement.attributes
|
||||
for (var i = 0, attr; attr = attributes[i]; ++i) {
|
||||
callback(attr.name, store.deserialize(storage.getAttribute(attr.name)))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
try {
|
||||
var testKey = '__storejs__'
|
||||
store.set(testKey, testKey)
|
||||
if (store.get(testKey) != testKey) { store.disabled = true }
|
||||
store.remove(testKey)
|
||||
} catch (e) {
|
||||
store.disabled = true
|
||||
}
|
||||
store.enabled = !store.disabled
|
||||
|
||||
return store
|
||||
}))
|
||||
BIN
public/favicon.ico
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/images/banner_control23b288.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
1
public/images/base.css.bak
Normal file
BIN
public/images/base_z36574a.png
Normal file
|
After Width: | Height: | Size: 95 KiB |
BIN
public/images/bg_mobile21d289.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
public/images/bg_mobile_foot_default2968da.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
public/images/bg_mobile_head_default2968da.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/images/card_tpl_deco.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
public/images/emoji218877.png
Normal file
|
After Width: | Height: | Size: 352 KiB |
BIN
public/images/emotion_editor_z3518e7.png
Normal file
|
After Width: | Height: | Size: 732 B |
BIN
public/images/file_doc_32.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
public/images/file_image_32.png
Normal file
|
After Width: | Height: | Size: 553 B |
BIN
public/images/file_pdf_32.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
public/images/file_ppt_32.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
public/images/file_txt_32.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
public/images/file_unknown_32.png
Normal file
|
After Width: | Height: | Size: 355 B |
BIN
public/images/file_xls_32.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
public/images/gantt/collapse.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
public/images/gantt/dispatch-insert.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
public/images/gantt/expand.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
public/images/gantt/green.ico
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
public/images/gantt/lock.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
public/images/gantt/red.ico
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
public/images/gantt/unlock.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
public/images/gantt/updown-arrow.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
public/images/gantt/user.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
public/images/gantt/zoom-in.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
public/images/gantt/zoom-out.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
public/images/history_msg35065c.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
public/images/icon13_arrow_right_gray218877.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
public/images/icon16_loading_light218877.gif
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
public/images/icon18_loading_default218877.gif
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
public/images/icon18_loading_primary218877.gif
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
public/images/icon32_loading_dark218877.gif
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
public/images/icon32_loading_light218877.gif
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
public/images/icon40_loading_gray218877.gif
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
BIN
public/images/icon40_loading_white218877.gif
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
public/images/icon_memu_function.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
public/images/icon_memu_function_selected.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
public/images/icon_memu_manage.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
public/images/icon_memu_manage_selected.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
public/images/icon_memu_statistics.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
public/images/icon_memu_statistics_selected.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
public/images/icon_menu_adclient.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
public/images/icon_menu_advert.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
public/images/icon_menu_advert_selected.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
public/images/icon_menu_host.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
public/images/icon_menu_host_selected.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
public/images/icon_menu_nav_next2968da.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
public/images/icon_menu_nav_prev2968da.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
public/images/icon_menu_service_selected.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
public/images/icon_menu_setting.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
public/images/icon_menu_setting_selected.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
public/images/icon_menu_store.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
public/images/icon_menu_store_selected.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
public/images/icon_noie6218877.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
1
public/images/index.css.bak
Normal file
BIN
public/images/index_z354723.png
Normal file
|
After Width: | Height: | Size: 228 B |
BIN
public/images/media_dialog_z27dcd8.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
public/images/msg_sender_z35e455.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
public/images/msg_tab_z25df2d.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
public/images/pic_menu_preview2968da.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
public/img/IEP-logo.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
public/img/bg/bg.png
Normal file
|
After Width: | Height: | Size: 477 KiB |
BIN
public/img/bg/cloud.jpg
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
public/img/bg/login.png
Normal file
|
After Width: | Height: | Size: 239 KiB |
BIN
public/img/bg/star-squashed.jpg
Normal file
|
After Width: | Height: | Size: 359 KiB |
BIN
public/img/code/qq-code.jpg
Normal file
|
After Width: | Height: | Size: 104 KiB |
BIN
public/img/code/wechat-code.jpg
Normal file
|
After Width: | Height: | Size: 206 KiB |
BIN
public/img/iep-icon.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
public/img/iep-logo-icon.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
public/img/login.png
Normal file
|
After Width: | Height: | Size: 239 KiB |
BIN
public/img/logo.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
public/img/notFound.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
public/img/white-logo.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
48
public/index.html
Normal file
@ -0,0 +1,48 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0" />
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
|
||||
<meta name="format-detection" content="telephone=no" />
|
||||
<!--避免微信管理防盗链机制-->
|
||||
<meta name="referrer" content="no-referrer" />
|
||||
<meta http-equiv="X-UA-Compatible" content="chrome=1" />
|
||||
<link rel="stylesheet" href="<%= BASE_URL %>cdn/animate/3.5.2/animate.css" />
|
||||
<link rel="stylesheet" href="<%= BASE_URL %>cdn/avue/avue.css" />
|
||||
<link rel="stylesheet" href="<%= BASE_URL %>cdn/avue/index.css" />
|
||||
<link rel="icon" href="<%= BASE_URL %>img/iep-icon.png" />
|
||||
<title>iMES</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<noscript>
|
||||
<strong>很抱歉,如果没有 JavaScript 支持,网站将不能正常工作。请启用浏览器的 JavaScript 然后继续。</strong>
|
||||
</noscript>
|
||||
<div id="app">
|
||||
<div class="avue-home">
|
||||
<div class="avue-home__main">
|
||||
<img class="avue-home__loading" src="./svg/loading-spin.svg" alt="loading" />
|
||||
<div class="avue-home__title">正在加载资源</div>
|
||||
<div class="avue-home__sub-title">初次加载资源可能需要较多时间 请耐心等待</div>
|
||||
</div>
|
||||
<div class="avue-home__footer">
|
||||
<a href="http://www.foreverwin.com.cn/" target="_blank"> Copyright © 2022 foreverwin.com</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- built files will be auto injected -->
|
||||
<script src="<%= BASE_URL %>cdn/avue/index.js" charset="utf-8"></script>
|
||||
<script>
|
||||
var _hmt = _hmt || [];
|
||||
(function () {
|
||||
var hm = document.createElement('script');
|
||||
hm.src = 'https://hm.baidu.com/hm.js?0625618efb027ed02e88da84c121652e';
|
||||
var s = document.getElementsByTagName('script')[0];
|
||||
s.parentNode.insertBefore(hm, s);
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||