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