27 changed files with 281 additions and 5 deletions
@ -0,0 +1,5 @@ |
|||
chrome >=89 |
|||
edge >=88 |
|||
firefox >=89 |
|||
safari >=15 |
|||
ios_saf >=15 |
@ -0,0 +1,14 @@ |
|||
################################################################# |
|||
# 强制对使用该基本代码的所有人实施一致的编码样式 |
|||
################################################################# |
|||
|
|||
# 顶级配置(即不集成父配置) |
|||
root = true |
|||
|
|||
# 针对所有文件 |
|||
[*] |
|||
charset = utf-8 # 字符集: utf-8 |
|||
indent_size = 2 # 缩进大小: 2 |
|||
indent_style = space # 缩进风格: 空格 |
|||
insert_final_newline = true # 是否在文件的最后插入一个空行 |
|||
trim_trailing_whitespace = true # 是否删除行尾的空格 |
@ -0,0 +1,36 @@ |
|||
module.exports = { |
|||
root: true, |
|||
|
|||
env: { |
|||
browser: true, |
|||
es2022: true, |
|||
"vue/setup-compiler-macros": true, |
|||
}, |
|||
|
|||
parserOptions:{ |
|||
ecmaVersion: 2022, |
|||
sourceType:"module", |
|||
}, |
|||
|
|||
extends:[ |
|||
"eslint:recommended", |
|||
"plugin:vue/vue3-recommended", |
|||
"plugin:@typescript-eslint/recommended", |
|||
"plugin:prettier/recommended", |
|||
], |
|||
|
|||
parser: "vue-eslint-parser", |
|||
parserOptions: { |
|||
ecmaVersion: 2022, |
|||
parser: "@typescript-eslint/parser", |
|||
sourceType: "module", |
|||
}, |
|||
|
|||
rules:{ |
|||
'semi':[1], |
|||
'@typescript-eslint/no-var-requires': 'off', |
|||
'@typescript-eslint/no-explicit-any': 'off', |
|||
"@typescript-eslint/no-unused-vars": 'off', |
|||
'vue/multi-word-component-names': 'off', /* 禁用 vue 组件名称检查规则 */ |
|||
}, |
|||
}; |
@ -0,0 +1,31 @@ |
|||
# Logs |
|||
logs |
|||
*.log |
|||
npm-debug.log* |
|||
yarn-debug.log* |
|||
yarn-error.log* |
|||
pnpm-debug.log* |
|||
lerna-debug.log* |
|||
|
|||
node_modules |
|||
.DS_Store |
|||
dist |
|||
dist-ssr |
|||
coverage |
|||
*.local |
|||
|
|||
/cypress/videos/ |
|||
/cypress/screenshots/ |
|||
|
|||
# Editor directories and files |
|||
.vscode/* |
|||
!.vscode/extensions.json |
|||
.idea |
|||
*.suo |
|||
*.ntvs* |
|||
*.njsproj |
|||
*.sln |
|||
*.sw? |
|||
|
|||
test-results/ |
|||
playwright-report/ |
@ -0,0 +1,11 @@ |
|||
# npm 仓库地址, 在 npm install 时使用 |
|||
registry=http://nexus.sc.io:8000/repository/npm-public/ |
|||
|
|||
# 用户邮箱 |
|||
email= |
|||
|
|||
# 注意: 以下 // 不是注释,不能去掉哦 |
|||
# 登录 npm 仓库的用户认证信息, 在 npm publish 时使用, publish 的 npm registry 在 package.json 文件中 publishConfig 部分配置 |
|||
# _authToken 可通过以下命令获取 |
|||
# curl -X PUT -H "Content-Type:application/json" -d '{"_id":"org.couchdb.user:admin","name":"admin","password":"admin"}' http://nexus.sc.io:8000/repository/npm-releases/-/user/org.couchdb.user:admin |
|||
//nexus.sc.io:8000/repository/npm-releases/:_authToken=NpmToken.193db44c-7ca5-3cb6-a990-d24b93fb0d10 |
@ -0,0 +1,3 @@ |
|||
build |
|||
dist |
|||
node_modules |
@ -0,0 +1,8 @@ |
|||
{ |
|||
"$schema": "https://json.schemastore.org/prettierrc", |
|||
"semi": true, |
|||
"tabWidth": 2, |
|||
"singleQuote": true, |
|||
"printWidth": 160, |
|||
"trailingComma": "all" |
|||
} |
@ -0,0 +1,16 @@ |
|||
module.exports = { |
|||
presets: [ |
|||
"@babel/preset-env", |
|||
[ |
|||
"@babel/preset-typescript", |
|||
{ |
|||
allExtensions: true, //支持所有文件扩展名 |
|||
}, |
|||
], |
|||
], |
|||
plugins: [ |
|||
"@babel/plugin-transform-class-properties", |
|||
"@babel/plugin-transform-object-rest-spread", |
|||
"@vue/babel-plugin-jsx", |
|||
] |
|||
} |
@ -0,0 +1,30 @@ |
|||
// 在浏览器 window 对象中新建名为 APP 的容器变量, 用于存放平台的全局变量
|
|||
window.APP = {}; |
|||
// 全局配置
|
|||
window.APP.configure ={ |
|||
// 应用上下文路径
|
|||
webContextPath: '[(@{/})]'.startsWith('[')? '/' : '[(@{/})]', |
|||
// 默认后端 API 请求的服务地址前缀
|
|||
apiContextPaths: { |
|||
DEFAULT: '[(@{/})]'.startsWith('[')? 'http://localhost:8080/' : '[(@{/})]', |
|||
}, |
|||
// 是否启用本地 mock
|
|||
enableLocalMock : false, |
|||
// mock 请求响应时间(单位:毫秒)
|
|||
localMockTimeout : 10, |
|||
// 是否启用使用远程服务端配置
|
|||
enableRemoteConfigure : true, |
|||
// 是否首先使用本地路由
|
|||
useLocaleRouterFirst : true, |
|||
// axios 配置
|
|||
axios : { |
|||
baseURL: '', |
|||
timeout: 1000 * 60, |
|||
crossdomain: true, |
|||
basicAuth: { |
|||
enable: true, |
|||
username: 'admin', |
|||
password: 'admin', |
|||
} |
|||
} |
|||
} |
Binary file not shown.
After Width: | Height: | Size: 85 B |
@ -0,0 +1 @@ |
|||
.luckysheet-datavisual-quick-menu{width:120px;overflow:auto;margin-top:15px}.luckysheet-datavisual-quick-menu::-webkit-scrollbar{display:none}.luckysheet-datavisual-quick-menu>div{text-align:left;padding:4px 4px;border-right:3px solid #fff;color:#777;cursor:pointer;line-height:1.4em;word-wrap:break-word}.luckysheet-datavisual-quick-menu>div:hover{color:#000}.luckysheet-datavisual-quick-menu>div i{width:15px}.luckysheet-datavisual-quick-menu>div:hover i{color:#ff7e7e}.luckysheet-datavisual-quick-menu>div.luckysheet-datavisual-quick-menu-active{border-right:3px solid #ff7e7e;color:#000;font-weight:700}.luckysheet-datavisual-quick-menu>div.luckysheet-datavisual-quick-menu-active:hover i{color:#000}.luckysheet-datavisual-quick-range{padding:5px 0}.luckysheet-datavisual-range-container{background:#fff;border:1px solid #d9d9d9;border-top:1px solid silver;min-width:20px;width:100%;max-width:200px;display:inline-block}.luckysheet-datavisual-range-container-focus{border:1px solid #4d90fe;box-shadow:inset 0 1px 2px rgba(0,0,0,.3);outline:none}.luckysheet-datavisual-range-input,.luckysheet-datavisual-range-input:focus{background:transparent!important;border:none!important;box-sizing:border-box;box-shadow:none;height:25px;margin:0;outline:none!important;padding:1px 8px!important;width:100%}.luckysheet-datavisual-range-button-container{overflow:hidden;padding:0 0 0 8px;text-align:right;width:21px}.luckysheet-datavisual-range-button-container div{padding:2px 10px 0 10px;font-size:18px;cursor:pointer;color:#6598f3}.luckysheet-datavisual-range-button-container div:hover{color:#ff7e7e}.luckysheet-datavisual-quick-m{margin-top:5px;min-height:500px;top:50px;font-size:12px}.luckysheet-datavisual-quick-list{left:110px;right:0;bottom:0;top:80px;position:absolute;overflow:auto;border-top:1px solid #e5e5e5;padding:5px 3px 35px 3px}.luckysheet-datavisual-quick-list-title{padding:4px 6px;background:#e5e5e5;margin-top:10px}.luckysheet-datavisual-quick-list-ul{overflow:hidden}.luckysheet-datavisual-quick-list-item{display:inline-block;margin:5px 8px;border:1px solid #dadada;width:100px;height:80px}.luckysheet-datavisual-quick-list-item:hover{border:1px solid #ff7e7e;box-shadow:0 0 20px #ff7e7e}.luckysheet-datavisual-quick-list-item img{display:inline-block;width:100px;height:80px}.luckysheet-datavisual-quick-list-item-active{border:1px solid #6598f3;box-shadow:0 0 20px #6598f3}.chart-base-slider .el-slider__runway.show-input{margin-right:72px}.chart-base-slider .el-slider__input.el-input-number--mini{width:56px}.chart-base-slider .input_content{margin:6px 0 0 5px}.title{font-weight:700}.el-row{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.chartSetting{width:100%;height:100%} |
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 31 KiB |
@ -0,0 +1,5 @@ |
|||
<template> |
|||
<w-platform-page></w-platform-page> |
|||
</template> |
|||
|
|||
<script setup lang="ts"></script> |
@ -0,0 +1,46 @@ |
|||
import packageJson from '../package.json'; |
|||
import { createApp } from 'vue'; |
|||
import platform from 'platform-core'; |
|||
import { ApplicationInitializer, ComponentManager } from 'platform-core'; |
|||
import localMocks from './mock'; |
|||
import localI18nMessages from './i18n'; |
|||
import localMenus from './menus/menus.json'; |
|||
import localRoutes from './routes/routes.json'; |
|||
import localComponents from './components'; |
|||
import App from './App.vue'; |
|||
|
|||
import 'platform-core/dist/css/platform-core.css'; |
|||
import './css/tailwind.css'; |
|||
|
|||
// 设置远程组件加载器
|
|||
// 覆盖 platform-core 包中的 remoteComponentLoader 函数
|
|||
// 只有在主前端项目中编写如下的 remoteComponentLoader 函数才能实现 webpack MF 的 shared 功能
|
|||
ComponentManager.setRemoteComponentLoader((moduleName: string, componentName: string): any => { |
|||
return async () => { |
|||
await __webpack_init_sharing__('default'); |
|||
const container = window[moduleName]; |
|||
if (container) { |
|||
await container.init(__webpack_share_scopes__.default); |
|||
const factory = await window[moduleName].get(componentName); |
|||
return factory(); |
|||
} else { |
|||
throw new Error('window["' + moduleName + '"] is undefined!'); |
|||
} |
|||
}; |
|||
}); |
|||
|
|||
//初始化平台
|
|||
ApplicationInitializer.initialize({ |
|||
moduleName: packageJson.name, |
|||
moduleVersion: packageJson.version, |
|||
localMocks: localMocks, |
|||
localI18nMessages: localI18nMessages, |
|||
localMenus: localMenus, |
|||
localRoutes: localRoutes, |
|||
localComponents: localComponents, |
|||
callback: () => { |
|||
const app = createApp(App); |
|||
app.use(platform); |
|||
app.mount('#app'); |
|||
}, |
|||
}); |
@ -0,0 +1,24 @@ |
|||
dependencies { |
|||
api( |
|||
project(":io.sc.platform.core"), |
|||
project(":io.sc.platform.orm"), |
|||
project(":io.sc.platform.mvc"), |
|||
|
|||
project(":io.sc.engine.st.frontend"), |
|||
) |
|||
} |
|||
|
|||
processResources { |
|||
filesMatching('**/*.java') { |
|||
filteringCharset = 'UTF-8' |
|||
filter(org.apache.tools.ant.filters.ReplaceTokens, beginToken: '', endToken: '',tokens: [version: '' + project.version]) |
|||
} |
|||
|
|||
doLast{ |
|||
// 为了能够兼容 eclipse 和 idea 两种开发环境,调整如下: |
|||
// 1. 将 environment.properties 文件放在了 src/main/resources 目录中 |
|||
// 2. 在打包时,将该文件删除 |
|||
delete "$buildDir/resources/main/running-mode.properties" |
|||
} |
|||
|
|||
} |
@ -0,0 +1,16 @@ |
|||
/* |
|||
* 自动组件扫描插件配置 |
|||
* 功能: 该插件配置为框架提供自动扫描组件的包名,配置的包名将会自动被 spring 进行扫描 |
|||
* 使用说明: |
|||
* includes: 包含自动扫描的包名列表 |
|||
* excludes: 排除自动扫描的包名列表 |
|||
* 注意: 当一个包名同时存在于 includes 和 excludes 中, excludes 优先, 即该包不会被自动扫描 |
|||
*/ |
|||
|
|||
{ |
|||
"includes":[ |
|||
"io.sc.engine.st.controller", |
|||
"io.sc.engine.st.service.impl" |
|||
], |
|||
"excludes":[] |
|||
} |
Loading…
Reference in new issue