feat: adjust
269
index.html
|
|
@ -1,153 +1,158 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" id="htmlRoot">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||
<meta name="renderer" content="webkit" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0"
|
||||
/>
|
||||
<title><%= VITE_GLOB_APP_TITLE %></title>
|
||||
<meta name="viewport"
|
||||
content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0" />
|
||||
<title>
|
||||
<%= VITE_GLOB_APP_TITLE %>
|
||||
</title>
|
||||
<link rel="icon" href="/favicon.ico" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="app">
|
||||
<style>
|
||||
html[data-theme='dark'] .app-loading {
|
||||
background-color: #2c344a;
|
||||
}
|
||||
|
||||
html[data-theme='dark'] .app-loading .app-loading-title {
|
||||
color: rgb(255 255 255 / 85%);
|
||||
}
|
||||
|
||||
.app-loading {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #f4f7f9;
|
||||
}
|
||||
|
||||
.app-loading .app-loading-wrap {
|
||||
display: flex;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
transform: translate3d(-50%, -50%, 0);
|
||||
}
|
||||
|
||||
.app-loading .dots {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 98px;
|
||||
}
|
||||
|
||||
.app-loading .app-loading-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-top: 30px;
|
||||
color: rgb(0 0 0 / 85%);
|
||||
font-size: 30px;
|
||||
}
|
||||
|
||||
.app-loading .app-loading-logo {
|
||||
display: block;
|
||||
width: 90px;
|
||||
margin: 0 auto;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.dot {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
box-sizing: border-box;
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
margin-top: 30px;
|
||||
transform: rotate(45deg);
|
||||
animation: ant-rotate 1.2s infinite linear;
|
||||
font-size: 32px;
|
||||
}
|
||||
|
||||
.dot i {
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
transform: scale(0.75);
|
||||
transform-origin: 50% 50%;
|
||||
animation: ant-spin-move 1s infinite linear alternate;
|
||||
border-radius: 100%;
|
||||
opacity: 0.3;
|
||||
background-color: #0065cc;
|
||||
}
|
||||
|
||||
.dot i:nth-child(1) {
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.dot i:nth-child(2) {
|
||||
top: 0;
|
||||
right: 0;
|
||||
animation-delay: 0.4s;
|
||||
}
|
||||
|
||||
.dot i:nth-child(3) {
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
animation-delay: 0.8s;
|
||||
}
|
||||
|
||||
.dot i:nth-child(4) {
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
animation-delay: 1.2s;
|
||||
}
|
||||
|
||||
@keyframes ant-rotate {
|
||||
to {
|
||||
transform: rotate(405deg);
|
||||
<div id="app">
|
||||
<style>
|
||||
html[data-theme='dark'] .app-loading {
|
||||
background-color: #2c344a;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes ant-rotate {
|
||||
to {
|
||||
transform: rotate(405deg);
|
||||
html[data-theme='dark'] .app-loading .app-loading-title {
|
||||
color: rgb(255 255 255 / 85%);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes ant-spin-move {
|
||||
to {
|
||||
opacity: 1;
|
||||
.app-loading {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #f4f7f9;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes ant-spin-move {
|
||||
to {
|
||||
opacity: 1;
|
||||
.app-loading .app-loading-wrap {
|
||||
display: flex;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
transform: translate3d(-50%, -50%, 0);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<div class="app-loading">
|
||||
<div class="app-loading-wrap">
|
||||
<img src="/resource/img/logo.png" class="app-loading-logo" alt="Logo" />
|
||||
<div class="app-loading-dots">
|
||||
<span class="dot dot-spin"><i></i><i></i><i></i><i></i></span>
|
||||
|
||||
.app-loading .dots {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 98px;
|
||||
}
|
||||
|
||||
.app-loading .app-loading-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-top: 30px;
|
||||
color: rgb(0 0 0 / 85%);
|
||||
font-size: 30px;
|
||||
}
|
||||
|
||||
.app-loading .app-loading-logo {
|
||||
display: block;
|
||||
width: 200px;
|
||||
margin: 0 auto;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.dot {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
box-sizing: border-box;
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
margin-top: 30px;
|
||||
transform: rotate(45deg);
|
||||
animation: ant-rotate 1.2s infinite linear;
|
||||
font-size: 32px;
|
||||
}
|
||||
|
||||
.dot i {
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
transform: scale(0.75);
|
||||
transform-origin: 50% 50%;
|
||||
animation: ant-spin-move 1s infinite linear alternate;
|
||||
border-radius: 100%;
|
||||
opacity: 0.3;
|
||||
background-color: #0065cc;
|
||||
}
|
||||
|
||||
.dot i:nth-child(1) {
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.dot i:nth-child(2) {
|
||||
top: 0;
|
||||
right: 0;
|
||||
animation-delay: 0.4s;
|
||||
}
|
||||
|
||||
.dot i:nth-child(3) {
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
animation-delay: 0.8s;
|
||||
}
|
||||
|
||||
.dot i:nth-child(4) {
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
animation-delay: 1.2s;
|
||||
}
|
||||
|
||||
@keyframes ant-rotate {
|
||||
to {
|
||||
transform: rotate(405deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes ant-rotate {
|
||||
to {
|
||||
transform: rotate(405deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes ant-spin-move {
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes ant-spin-move {
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<div class="app-loading">
|
||||
<div class="app-loading-wrap">
|
||||
<img src="/resource/img/logo.png" class="app-loading-logo" alt="Logo" />
|
||||
<div class="app-loading-dots">
|
||||
<span class="dot dot-spin"><i></i><i></i><i></i><i></i></span>
|
||||
</div>
|
||||
<!-- <div class="app-loading-title">
|
||||
<%= VITE_GLOB_APP_TITLE %>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="app-loading-title"><%= VITE_GLOB_APP_TITLE %></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="module" src="/src/main.ts"></script>
|
||||
<script type="module" src="/src/main.ts"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
@ -0,0 +1,539 @@
|
|||
{
|
||||
"name": "@vben/stylelint-config",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@vben/stylelint-config",
|
||||
"version": "1.0.0",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"postcss": "^8.4.38",
|
||||
"postcss-html": "^1.6.0",
|
||||
"postcss-less": "^6.0.0",
|
||||
"postcss-scss": "^4.0.9",
|
||||
"prettier": "^3.2.5",
|
||||
"stylelint": "^16.4.0",
|
||||
"stylelint-config-property-sort-order-smacss": "^10.0.0",
|
||||
"stylelint-config-recommended-scss": "^14.0.0",
|
||||
"stylelint-config-recommended-vue": "^1.5.0",
|
||||
"stylelint-config-standard": "^36.0.0",
|
||||
"stylelint-config-standard-scss": "^13.1.0",
|
||||
"stylelint-order": "^6.0.4",
|
||||
"stylelint-prettier": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"../../node_modules/.pnpm/postcss-html@1.6.0/node_modules/postcss-html": {
|
||||
"version": "1.6.0",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"htmlparser2": "^8.0.0",
|
||||
"js-tokens": "^8.0.0",
|
||||
"postcss": "^8.4.0",
|
||||
"postcss-safe-parser": "^6.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@ota-meshi/eslint-plugin": "^0.15.0",
|
||||
"autoprefixer": "^10.3.7",
|
||||
"chai": "~4.3.4",
|
||||
"codecov": "^3.8.3",
|
||||
"eslint": "^8.0.1",
|
||||
"eslint-config-prettier": "^8.3.0",
|
||||
"eslint-plugin-eslint-comments": "^3.2.0",
|
||||
"eslint-plugin-json-schema-validator": "^4.0.0",
|
||||
"eslint-plugin-jsonc": "^2.0.0",
|
||||
"eslint-plugin-n": "^16.6.2",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"eslint-plugin-node-dependencies": "^0.11.0",
|
||||
"eslint-plugin-prettier": "^5.0.0",
|
||||
"eslint-plugin-regexp": "^1.4.1",
|
||||
"eslint-plugin-vue": "^9.0.0",
|
||||
"eslint-plugin-yml": "^1.0.0",
|
||||
"mocha": "^10.0.0",
|
||||
"mocha-chai-jest-snapshot": "^1.1.3",
|
||||
"nyc": "^15.1.0",
|
||||
"postcss-less": "^6.0.0",
|
||||
"postcss-scss": "^4.0.1",
|
||||
"postcss-styl": "^0.12.0",
|
||||
"prettier": "^3.0.0",
|
||||
"stylelint": "^14.4.0",
|
||||
"stylelint-config-standard": "^28.0.0",
|
||||
"sugarss": "^4.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12 || >=14"
|
||||
}
|
||||
},
|
||||
"../../node_modules/.pnpm/postcss-less@6.0.0_postcss@8.4.38/node_modules/postcss-less": {
|
||||
"version": "6.0.0",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@commitlint/cli": "^12.1.4",
|
||||
"@commitlint/config-conventional": "^12.1.4",
|
||||
"ava": "^3.15.0",
|
||||
"cheerio": "^1.0.0-rc.10",
|
||||
"eslint-config-shellscape": "^2.0.2",
|
||||
"eslint-plugin-filenames": "^1.2.0",
|
||||
"is-absolute-url": "^3.0.0",
|
||||
"less": "^4.1.1",
|
||||
"lint-staged": "^11.0.0",
|
||||
"node-fetch": "^2.6.1",
|
||||
"nyc": "^15.1.0",
|
||||
"postcss": "^8.3.5",
|
||||
"postcss-parser-tests": "^8.3.5",
|
||||
"pre-commit": "^1.2.2",
|
||||
"url-join": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"postcss": "^8.3.5"
|
||||
}
|
||||
},
|
||||
"../../node_modules/.pnpm/postcss-scss@4.0.9_postcss@8.4.38/node_modules/postcss-scss": {
|
||||
"version": "4.0.9",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/postcss/"
|
||||
},
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/funding/github/npm/postcss-scss"
|
||||
},
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=12.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"postcss": "^8.4.29"
|
||||
}
|
||||
},
|
||||
"../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss": {
|
||||
"version": "8.4.38",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/postcss/"
|
||||
},
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/funding/github/npm/postcss"
|
||||
},
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"nanoid": "^3.3.7",
|
||||
"picocolors": "^1.0.0",
|
||||
"source-map-js": "^1.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || >=14"
|
||||
}
|
||||
},
|
||||
"../../node_modules/.pnpm/prettier@3.2.5/node_modules/prettier": {
|
||||
"version": "3.2.5",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
"prettier": "bin/prettier.cjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/prettier/prettier?sponsor=1"
|
||||
}
|
||||
},
|
||||
"../../node_modules/.pnpm/stylelint-config-property-sort-order-smacss@10.0.0_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-config-property-sort-order-smacss": {
|
||||
"version": "10.0.0",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"css-property-sort-order-smacss": "~2.2.0",
|
||||
"stylelint-order": "^6.0.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"coveralls": "^3.1.0",
|
||||
"eslint": "^8.2.0",
|
||||
"eslint-config-airbnb-base": "^15.0.0",
|
||||
"eslint-config-prettier": "^9.0.0",
|
||||
"eslint-plugin-import": "^2.25.2",
|
||||
"jest": "^29.0.1",
|
||||
"jest-light-runner": "^0.6.0",
|
||||
"prettier": "^3.0.0",
|
||||
"proxyquire": "^2.0.0",
|
||||
"stylelint": "^14.0.0 || ^15.0.0 || ^16.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.12.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"stylelint": "^14.0.0 || ^15.0.0 || ^16.0.0"
|
||||
}
|
||||
},
|
||||
"../../node_modules/.pnpm/stylelint-config-recommended-scss@14.0.0_postcss@8.4.38_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-config-recommended-scss": {
|
||||
"version": "14.0.0",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"postcss-scss": "^4.0.9",
|
||||
"stylelint-config-recommended": "^14.0.0",
|
||||
"stylelint-scss": "^6.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@stylelint/prettier-config": "^3.0.0",
|
||||
"@stylelint/remark-preset": "^5.0.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"eslint": "^8.55.0",
|
||||
"eslint-config-stylelint": "^20.0.0",
|
||||
"eslint-plugin-jest": "^27.6.0",
|
||||
"jest": "^29.7.0",
|
||||
"np": "^9.0.0",
|
||||
"npm-run-all2": "^5.0.2",
|
||||
"prettier": "^3.1.0",
|
||||
"remark-cli": "^12.0.0",
|
||||
"stylelint": "^16.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.12.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"postcss": "^8.3.3",
|
||||
"stylelint": "^16.0.2"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"postcss": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"../../node_modules/.pnpm/stylelint-config-recommended-vue@1.5.0_postcss-html@1.6.0_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-config-recommended-vue": {
|
||||
"version": "1.5.0",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"semver": "^7.3.5",
|
||||
"stylelint-config-html": ">=1.0.0",
|
||||
"stylelint-config-recommended": ">=6.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@ota-meshi/eslint-plugin": "^0.13.0",
|
||||
"eslint": "^8.0.0",
|
||||
"eslint-config-prettier": "^8.3.0",
|
||||
"eslint-plugin-eslint-comments": "^3.2.0",
|
||||
"eslint-plugin-json-schema-validator": "^4.0.0",
|
||||
"eslint-plugin-jsonc": "^2.0.0",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"eslint-plugin-prettier": "^4.0.0",
|
||||
"eslint-plugin-regexp": "^1.5.0",
|
||||
"eslint-plugin-vue": "^9.0.0",
|
||||
"eslint-plugin-yml": "^1.0.0",
|
||||
"mocha": "^10.0.0",
|
||||
"prettier": "^2.4.1",
|
||||
"stylelint": "^15.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12 || >=14"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ota-meshi"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"postcss-html": "^1.0.0",
|
||||
"stylelint": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"../../node_modules/.pnpm/stylelint-config-standard-scss@13.1.0_postcss@8.4.38_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-config-standard-scss": {
|
||||
"version": "13.1.0",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"stylelint-config-recommended-scss": "^14.0.0",
|
||||
"stylelint-config-standard": "^36.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@stylelint/prettier-config": "^3.0.0",
|
||||
"@stylelint/remark-preset": "^5.0.0",
|
||||
"eslint": "^8.57.0",
|
||||
"eslint-config-stylelint": "^21.0.0",
|
||||
"np": "^10.0.2",
|
||||
"npm-run-all2": "^5.0.2",
|
||||
"prettier": "^3.2.5",
|
||||
"remark-cli": "^12.0.0",
|
||||
"stylelint": "^16.3.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.12.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"postcss": "^8.3.3",
|
||||
"stylelint": "^16.3.1"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"postcss": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"../../node_modules/.pnpm/stylelint-config-standard@36.0.0_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-config-standard": {
|
||||
"version": "36.0.0",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"stylelint-config-recommended": "^14.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@stylelint/prettier-config": "^3.0.0",
|
||||
"@stylelint/remark-preset": "^5.0.0",
|
||||
"eslint": "^8.56.0",
|
||||
"eslint-config-stylelint": "^20.0.0",
|
||||
"husky": "^8.0.3",
|
||||
"lint-staged": "^15.2.0",
|
||||
"np": "^9.2.0",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"prettier": "^3.1.1",
|
||||
"remark-cli": "^12.0.0",
|
||||
"stylelint": "^16.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.12.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"stylelint": "^16.1.0"
|
||||
}
|
||||
},
|
||||
"../../node_modules/.pnpm/stylelint-order@6.0.4_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-order": {
|
||||
"version": "6.0.4",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"postcss": "^8.4.32",
|
||||
"postcss-sorting": "^8.0.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "^8.55.0",
|
||||
"eslint-config-hudochenkov": "^9.0.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"husky": "^8.0.3",
|
||||
"jest": "^29.7.0",
|
||||
"jest-light-runner": "^0.6.0",
|
||||
"jest-preset-stylelint": "^7.0.0",
|
||||
"jest-watch-typeahead": "^2.2.2",
|
||||
"lint-staged": "^15.2.0",
|
||||
"postcss-html": "^1.5.0",
|
||||
"postcss-less": "^6.0.0",
|
||||
"postcss-styled-syntax": "^0.5.0",
|
||||
"prettier": "~3.1.0",
|
||||
"prettier-config-hudochenkov": "^0.4.0",
|
||||
"stylelint": "^16.0.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"stylelint": "^14.0.0 || ^15.0.0 || ^16.0.1"
|
||||
}
|
||||
},
|
||||
"../../node_modules/.pnpm/stylelint-prettier@5.0.0_prettier@3.2.5_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-prettier": {
|
||||
"version": "5.0.0",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"prettier-linter-helpers": "^1.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "^8.44.0",
|
||||
"eslint-config-prettier": "^9.0.0",
|
||||
"eslint-plugin-n": "^16.3.1",
|
||||
"eslint-plugin-prettier": "^5.0.0",
|
||||
"postcss": "^8.4.25",
|
||||
"postcss-html": "^1.5.0",
|
||||
"postcss-markdown": "^1.2.0",
|
||||
"postcss-scss": "^4.0.6",
|
||||
"postcss-styled-syntax": "^0.5.0",
|
||||
"postcss-syntax": "^0.36.2",
|
||||
"prettier": "^3.0.0",
|
||||
"prettier-plugin-astro": "^0.12.1",
|
||||
"prettier-plugin-svelte": "^3.0.0",
|
||||
"strip-ansi": "^7.1.0",
|
||||
"stylelint": "^16.0.1",
|
||||
"stylelint-test-rule-node": "^0.2.0",
|
||||
"svelte": "^4.1.0",
|
||||
"typescript": "5.3.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.12.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"prettier": ">=3.0.0",
|
||||
"stylelint": ">=16.0.0"
|
||||
}
|
||||
},
|
||||
"../../node_modules/.pnpm/stylelint@16.4.0_typescript@5.4.5/node_modules/stylelint": {
|
||||
"version": "16.4.0",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@csstools/css-parser-algorithms": "^2.6.1",
|
||||
"@csstools/css-tokenizer": "^2.2.4",
|
||||
"@csstools/media-query-list-parser": "^2.1.9",
|
||||
"@csstools/selector-specificity": "^3.0.3",
|
||||
"@dual-bundle/import-meta-resolve": "^4.0.0",
|
||||
"balanced-match": "^2.0.0",
|
||||
"colord": "^2.9.3",
|
||||
"cosmiconfig": "^9.0.0",
|
||||
"css-functions-list": "^3.2.2",
|
||||
"css-tree": "^2.3.1",
|
||||
"debug": "^4.3.4",
|
||||
"fast-glob": "^3.3.2",
|
||||
"fastest-levenshtein": "^1.0.16",
|
||||
"file-entry-cache": "^8.0.0",
|
||||
"global-modules": "^2.0.0",
|
||||
"globby": "^11.1.0",
|
||||
"globjoin": "^0.1.4",
|
||||
"html-tags": "^3.3.1",
|
||||
"ignore": "^5.3.1",
|
||||
"imurmurhash": "^0.1.4",
|
||||
"is-plain-object": "^5.0.0",
|
||||
"known-css-properties": "^0.30.0",
|
||||
"mathml-tag-names": "^2.1.3",
|
||||
"meow": "^13.2.0",
|
||||
"micromatch": "^4.0.5",
|
||||
"normalize-path": "^3.0.0",
|
||||
"picocolors": "^1.0.0",
|
||||
"postcss": "^8.4.38",
|
||||
"postcss-resolve-nested-selector": "^0.1.1",
|
||||
"postcss-safe-parser": "^7.0.0",
|
||||
"postcss-selector-parser": "^6.0.16",
|
||||
"postcss-value-parser": "^4.2.0",
|
||||
"resolve-from": "^5.0.0",
|
||||
"string-width": "^4.2.3",
|
||||
"strip-ansi": "^7.1.0",
|
||||
"supports-hyperlinks": "^3.0.0",
|
||||
"svg-tags": "^1.0.0",
|
||||
"table": "^6.8.2",
|
||||
"write-file-atomic": "^5.0.1"
|
||||
},
|
||||
"bin": {
|
||||
"stylelint": "bin/stylelint.mjs"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@changesets/cli": "^2.27.1",
|
||||
"@changesets/get-github-info": "^0.6.0",
|
||||
"@jest/globals": "^29.7.0",
|
||||
"@stylelint/prettier-config": "^3.0.0",
|
||||
"@stylelint/remark-preset": "^5.0.0",
|
||||
"@types/balanced-match": "^1.0.4",
|
||||
"@types/css-tree": "^2.3.7",
|
||||
"@types/debug": "^4.1.12",
|
||||
"@types/file-entry-cache": "^5.0.4",
|
||||
"@types/global-modules": "^2.0.2",
|
||||
"@types/globjoin": "^0.1.2",
|
||||
"@types/imurmurhash": "^0.1.4",
|
||||
"@types/micromatch": "^4.0.7",
|
||||
"@types/normalize-path": "^3.0.2",
|
||||
"@types/postcss-less": "^4.0.6",
|
||||
"@types/postcss-resolve-nested-selector": "^0.1.3",
|
||||
"@types/postcss-safe-parser": "^5.0.4",
|
||||
"@types/svg-tags": "^1.0.2",
|
||||
"@types/write-file-atomic": "^4.0.3",
|
||||
"benchmark": "^2.1.4",
|
||||
"common-tags": "^1.8.2",
|
||||
"deepmerge": "^4.3.1",
|
||||
"eslint": "^8.57.0",
|
||||
"eslint-config-stylelint": "^21.0.0",
|
||||
"eslint-plugin-import": "^2.29.1",
|
||||
"eslint-plugin-jest": "^28.2.0",
|
||||
"husky": "^9.0.11",
|
||||
"jest": "^29.7.0",
|
||||
"jest-preset-stylelint": "^7.0.0",
|
||||
"jest-watch-typeahead": "^2.2.2",
|
||||
"lint-staged": "^15.2.2",
|
||||
"np": "^10.0.5",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"patch-package": "^8.0.0",
|
||||
"postcss-html": "^1.6.0",
|
||||
"postcss-import": "^16.1.0",
|
||||
"postcss-less": "^6.0.0",
|
||||
"postcss-sass": "^0.5.0",
|
||||
"postcss-scss": "^4.0.9",
|
||||
"remark-cli": "^12.0.0",
|
||||
"rollup": "^4.16.3",
|
||||
"sugarss": "^4.0.1",
|
||||
"typescript": "^5.4.5"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.12.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/stylelint"
|
||||
}
|
||||
},
|
||||
"node_modules/postcss": {
|
||||
"resolved": "../../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/postcss-html": {
|
||||
"resolved": "../../node_modules/.pnpm/postcss-html@1.6.0/node_modules/postcss-html",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/postcss-less": {
|
||||
"resolved": "../../node_modules/.pnpm/postcss-less@6.0.0_postcss@8.4.38/node_modules/postcss-less",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/postcss-scss": {
|
||||
"resolved": "../../node_modules/.pnpm/postcss-scss@4.0.9_postcss@8.4.38/node_modules/postcss-scss",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/prettier": {
|
||||
"resolved": "../../node_modules/.pnpm/prettier@3.2.5/node_modules/prettier",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/stylelint": {
|
||||
"resolved": "../../node_modules/.pnpm/stylelint@16.4.0_typescript@5.4.5/node_modules/stylelint",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/stylelint-config-property-sort-order-smacss": {
|
||||
"resolved": "../../node_modules/.pnpm/stylelint-config-property-sort-order-smacss@10.0.0_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-config-property-sort-order-smacss",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/stylelint-config-recommended-scss": {
|
||||
"resolved": "../../node_modules/.pnpm/stylelint-config-recommended-scss@14.0.0_postcss@8.4.38_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-config-recommended-scss",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/stylelint-config-recommended-vue": {
|
||||
"resolved": "../../node_modules/.pnpm/stylelint-config-recommended-vue@1.5.0_postcss-html@1.6.0_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-config-recommended-vue",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/stylelint-config-standard": {
|
||||
"resolved": "../../node_modules/.pnpm/stylelint-config-standard@36.0.0_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-config-standard",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/stylelint-config-standard-scss": {
|
||||
"resolved": "../../node_modules/.pnpm/stylelint-config-standard-scss@13.1.0_postcss@8.4.38_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-config-standard-scss",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/stylelint-order": {
|
||||
"resolved": "../../node_modules/.pnpm/stylelint-order@6.0.4_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-order",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/stylelint-prettier": {
|
||||
"resolved": "../../node_modules/.pnpm/stylelint-prettier@5.0.0_prettier@3.2.5_stylelint@16.4.0_typescript@5.4.5_/node_modules/stylelint-prettier",
|
||||
"link": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,148 @@
|
|||
{
|
||||
"name": "@vben/ts-config",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@vben/ts-config",
|
||||
"version": "1.0.0",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/node": "^20.12.7",
|
||||
"vite": "^5.2.10"
|
||||
}
|
||||
},
|
||||
"../../node_modules/.pnpm/@types+node@20.12.7/node_modules/@types/node": {
|
||||
"version": "20.12.7",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"undici-types": "~5.26.4"
|
||||
}
|
||||
},
|
||||
"../../node_modules/.pnpm/vite@5.2.10_@types+node@20.12.7_less@4.2.0_sass@1.75.0_terser@5.19.3/node_modules/vite": {
|
||||
"version": "5.2.10",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"esbuild": "^0.20.1",
|
||||
"postcss": "^8.4.38",
|
||||
"rollup": "^4.13.0"
|
||||
},
|
||||
"bin": {
|
||||
"vite": "bin/vite.js"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@ampproject/remapping": "^2.3.0",
|
||||
"@babel/parser": "^7.24.4",
|
||||
"@jridgewell/trace-mapping": "^0.3.25",
|
||||
"@polka/compression": "^1.0.0-next.25",
|
||||
"@rollup/plugin-alias": "^5.1.0",
|
||||
"@rollup/plugin-commonjs": "^25.0.7",
|
||||
"@rollup/plugin-dynamic-import-vars": "^2.1.2",
|
||||
"@rollup/plugin-json": "^6.1.0",
|
||||
"@rollup/plugin-node-resolve": "15.2.3",
|
||||
"@rollup/plugin-typescript": "^11.1.6",
|
||||
"@rollup/pluginutils": "^5.1.0",
|
||||
"@types/escape-html": "^1.0.4",
|
||||
"@types/pnpapi": "^0.0.5",
|
||||
"acorn": "^8.11.3",
|
||||
"acorn-walk": "^8.3.2",
|
||||
"artichokie": "^0.2.0",
|
||||
"cac": "^6.7.14",
|
||||
"chokidar": "^3.6.0",
|
||||
"connect": "^3.7.0",
|
||||
"convert-source-map": "^2.0.0",
|
||||
"cors": "^2.8.5",
|
||||
"cross-spawn": "^7.0.3",
|
||||
"debug": "^4.3.4",
|
||||
"dep-types": "link:./src/types",
|
||||
"dotenv": "^16.4.5",
|
||||
"dotenv-expand": "^11.0.6",
|
||||
"es-module-lexer": "^1.5.0",
|
||||
"escape-html": "^1.0.3",
|
||||
"estree-walker": "^3.0.3",
|
||||
"etag": "^1.8.1",
|
||||
"fast-glob": "^3.3.2",
|
||||
"http-proxy": "^1.18.1",
|
||||
"launch-editor-middleware": "^2.6.1",
|
||||
"lightningcss": "^1.24.1",
|
||||
"magic-string": "^0.30.9",
|
||||
"micromatch": "^4.0.5",
|
||||
"mlly": "^1.6.1",
|
||||
"mrmime": "^2.0.0",
|
||||
"open": "^8.4.2",
|
||||
"parse5": "^7.1.2",
|
||||
"pathe": "^1.1.2",
|
||||
"periscopic": "^4.0.2",
|
||||
"picocolors": "^1.0.0",
|
||||
"picomatch": "^2.3.1",
|
||||
"postcss-import": "^16.1.0",
|
||||
"postcss-load-config": "^4.0.2",
|
||||
"postcss-modules": "^6.0.0",
|
||||
"resolve.exports": "^2.0.2",
|
||||
"rollup-plugin-dts": "^6.1.0",
|
||||
"rollup-plugin-esbuild": "^6.1.1",
|
||||
"rollup-plugin-license": "^3.3.1",
|
||||
"sass": "^1.74.1",
|
||||
"sirv": "^2.0.4",
|
||||
"source-map-support": "^0.5.21",
|
||||
"strip-ansi": "^7.1.0",
|
||||
"strip-literal": "^2.1.0",
|
||||
"tsconfck": "^3.0.3",
|
||||
"tslib": "^2.6.2",
|
||||
"types": "link:./types",
|
||||
"ufo": "^1.5.3",
|
||||
"ws": "^8.16.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.0.0 || >=20.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/vitejs/vite?sponsor=1"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"fsevents": "~2.3.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@types/node": "^18.0.0 || >=20.0.0",
|
||||
"less": "*",
|
||||
"lightningcss": "^1.21.0",
|
||||
"sass": "*",
|
||||
"stylus": "*",
|
||||
"sugarss": "*",
|
||||
"terser": "^5.4.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@types/node": {
|
||||
"optional": true
|
||||
},
|
||||
"less": {
|
||||
"optional": true
|
||||
},
|
||||
"lightningcss": {
|
||||
"optional": true
|
||||
},
|
||||
"sass": {
|
||||
"optional": true
|
||||
},
|
||||
"stylus": {
|
||||
"optional": true
|
||||
},
|
||||
"sugarss": {
|
||||
"optional": true
|
||||
},
|
||||
"terser": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"resolved": "../../node_modules/.pnpm/@types+node@20.12.7/node_modules/@types/node",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/vite": {
|
||||
"resolved": "../../node_modules/.pnpm/vite@5.2.10_@types+node@20.12.7_less@4.2.0_sass@1.75.0_terser@5.19.3/node_modules/vite",
|
||||
"link": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,223 @@
|
|||
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.modifierNames = exports.foregroundColorNames = exports.default = exports.colorNames = exports.backgroundColorNames = void 0;const ANSI_BACKGROUND_OFFSET = 10;
|
||||
|
||||
const wrapAnsi16 = (offset = 0) => (code) => `\u001B[${code + offset}m`;
|
||||
|
||||
const wrapAnsi256 = (offset = 0) => (code) => `\u001B[${38 + offset};5;${code}m`;
|
||||
|
||||
const wrapAnsi16m = (offset = 0) => (red, green, blue) => `\u001B[${38 + offset};2;${red};${green};${blue}m`;
|
||||
|
||||
const styles = {
|
||||
modifier: {
|
||||
reset: [0, 0],
|
||||
// 21 isn't widely supported and 22 does the same thing
|
||||
bold: [1, 22],
|
||||
dim: [2, 22],
|
||||
italic: [3, 23],
|
||||
underline: [4, 24],
|
||||
overline: [53, 55],
|
||||
inverse: [7, 27],
|
||||
hidden: [8, 28],
|
||||
strikethrough: [9, 29]
|
||||
},
|
||||
color: {
|
||||
black: [30, 39],
|
||||
red: [31, 39],
|
||||
green: [32, 39],
|
||||
yellow: [33, 39],
|
||||
blue: [34, 39],
|
||||
magenta: [35, 39],
|
||||
cyan: [36, 39],
|
||||
white: [37, 39],
|
||||
|
||||
// Bright color
|
||||
blackBright: [90, 39],
|
||||
gray: [90, 39], // Alias of `blackBright`
|
||||
grey: [90, 39], // Alias of `blackBright`
|
||||
redBright: [91, 39],
|
||||
greenBright: [92, 39],
|
||||
yellowBright: [93, 39],
|
||||
blueBright: [94, 39],
|
||||
magentaBright: [95, 39],
|
||||
cyanBright: [96, 39],
|
||||
whiteBright: [97, 39]
|
||||
},
|
||||
bgColor: {
|
||||
bgBlack: [40, 49],
|
||||
bgRed: [41, 49],
|
||||
bgGreen: [42, 49],
|
||||
bgYellow: [43, 49],
|
||||
bgBlue: [44, 49],
|
||||
bgMagenta: [45, 49],
|
||||
bgCyan: [46, 49],
|
||||
bgWhite: [47, 49],
|
||||
|
||||
// Bright color
|
||||
bgBlackBright: [100, 49],
|
||||
bgGray: [100, 49], // Alias of `bgBlackBright`
|
||||
bgGrey: [100, 49], // Alias of `bgBlackBright`
|
||||
bgRedBright: [101, 49],
|
||||
bgGreenBright: [102, 49],
|
||||
bgYellowBright: [103, 49],
|
||||
bgBlueBright: [104, 49],
|
||||
bgMagentaBright: [105, 49],
|
||||
bgCyanBright: [106, 49],
|
||||
bgWhiteBright: [107, 49]
|
||||
}
|
||||
};
|
||||
|
||||
const modifierNames = Object.keys(styles.modifier);exports.modifierNames = modifierNames;
|
||||
const foregroundColorNames = Object.keys(styles.color);exports.foregroundColorNames = foregroundColorNames;
|
||||
const backgroundColorNames = Object.keys(styles.bgColor);exports.backgroundColorNames = backgroundColorNames;
|
||||
const colorNames = [...foregroundColorNames, ...backgroundColorNames];exports.colorNames = colorNames;
|
||||
|
||||
function assembleStyles() {
|
||||
const codes = new Map();
|
||||
|
||||
for (const [groupName, group] of Object.entries(styles)) {
|
||||
for (const [styleName, style] of Object.entries(group)) {
|
||||
styles[styleName] = {
|
||||
open: `\u001B[${style[0]}m`,
|
||||
close: `\u001B[${style[1]}m`
|
||||
};
|
||||
|
||||
group[styleName] = styles[styleName];
|
||||
|
||||
codes.set(style[0], style[1]);
|
||||
}
|
||||
|
||||
Object.defineProperty(styles, groupName, {
|
||||
value: group,
|
||||
enumerable: false
|
||||
});
|
||||
}
|
||||
|
||||
Object.defineProperty(styles, 'codes', {
|
||||
value: codes,
|
||||
enumerable: false
|
||||
});
|
||||
|
||||
styles.color.close = '\u001B[39m';
|
||||
styles.bgColor.close = '\u001B[49m';
|
||||
|
||||
styles.color.ansi = wrapAnsi16();
|
||||
styles.color.ansi256 = wrapAnsi256();
|
||||
styles.color.ansi16m = wrapAnsi16m();
|
||||
styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);
|
||||
styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);
|
||||
styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
|
||||
|
||||
// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js
|
||||
Object.defineProperties(styles, {
|
||||
rgbToAnsi256: {
|
||||
value(red, green, blue) {
|
||||
// We use the extended greyscale palette here, with the exception of
|
||||
// black and white. normal palette only has 4 greyscale shades.
|
||||
if (red === green && green === blue) {
|
||||
if (red < 8) {
|
||||
return 16;
|
||||
}
|
||||
|
||||
if (red > 248) {
|
||||
return 231;
|
||||
}
|
||||
|
||||
return Math.round((red - 8) / 247 * 24) + 232;
|
||||
}
|
||||
|
||||
return 16 +
|
||||
36 * Math.round(red / 255 * 5) +
|
||||
6 * Math.round(green / 255 * 5) +
|
||||
Math.round(blue / 255 * 5);
|
||||
},
|
||||
enumerable: false
|
||||
},
|
||||
hexToRgb: {
|
||||
value(hex) {
|
||||
const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
|
||||
if (!matches) {
|
||||
return [0, 0, 0];
|
||||
}
|
||||
|
||||
let [colorString] = matches;
|
||||
|
||||
if (colorString.length === 3) {
|
||||
colorString = [...colorString].map((character) => character + character).join('');
|
||||
}
|
||||
|
||||
const integer = Number.parseInt(colorString, 16);
|
||||
|
||||
return [
|
||||
/* eslint-disable no-bitwise */
|
||||
integer >> 16 & 0xFF,
|
||||
integer >> 8 & 0xFF,
|
||||
integer & 0xFF
|
||||
/* eslint-enable no-bitwise */];
|
||||
|
||||
},
|
||||
enumerable: false
|
||||
},
|
||||
hexToAnsi256: {
|
||||
value: (hex) => styles.rgbToAnsi256(...styles.hexToRgb(hex)),
|
||||
enumerable: false
|
||||
},
|
||||
ansi256ToAnsi: {
|
||||
value(code) {
|
||||
if (code < 8) {
|
||||
return 30 + code;
|
||||
}
|
||||
|
||||
if (code < 16) {
|
||||
return 90 + (code - 8);
|
||||
}
|
||||
|
||||
let red;
|
||||
let green;
|
||||
let blue;
|
||||
|
||||
if (code >= 232) {
|
||||
red = ((code - 232) * 10 + 8) / 255;
|
||||
green = red;
|
||||
blue = red;
|
||||
} else {
|
||||
code -= 16;
|
||||
|
||||
const remainder = code % 36;
|
||||
|
||||
red = Math.floor(code / 36) / 5;
|
||||
green = Math.floor(remainder / 6) / 5;
|
||||
blue = remainder % 6 / 5;
|
||||
}
|
||||
|
||||
const value = Math.max(red, green, blue) * 2;
|
||||
|
||||
if (value === 0) {
|
||||
return 30;
|
||||
}
|
||||
|
||||
// eslint-disable-next-line no-bitwise
|
||||
let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red));
|
||||
|
||||
if (value === 2) {
|
||||
result += 60;
|
||||
}
|
||||
|
||||
return result;
|
||||
},
|
||||
enumerable: false
|
||||
},
|
||||
rgbToAnsi: {
|
||||
value: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),
|
||||
enumerable: false
|
||||
},
|
||||
hexToAnsi: {
|
||||
value: (hex) => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),
|
||||
enumerable: false
|
||||
}
|
||||
});
|
||||
|
||||
return styles;
|
||||
}
|
||||
|
||||
const ansiStyles = assembleStyles();var _default =
|
||||
|
||||
ansiStyles;exports.default = _default; /* v7-28b0a5febe3644a0 */
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.isIgnoredByIgnoreFilesSync = exports.isIgnoredByIgnoreFiles = exports.isGitIgnoredSync = exports.isGitIgnored = exports.GITIGNORE_FILES_PATTERN = void 0;var _nodeProcess = _interopRequireDefault(require("node:process"));
|
||||
var _nodeFs = _interopRequireDefault(require("node:fs"));
|
||||
var _nodePath = _interopRequireDefault(require("node:path"));
|
||||
var _fastGlob = _interopRequireDefault(require("fast-glob"));
|
||||
var _ignore = _interopRequireDefault(require("ignore"));
|
||||
var _slash = _interopRequireDefault(require("slash"));
|
||||
var _utilities = require("./utilities.js");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
|
||||
|
||||
const ignoreFilesGlobOptions = {
|
||||
ignore: [
|
||||
'**/node_modules',
|
||||
'**/flow-typed',
|
||||
'**/coverage',
|
||||
'**/.git'],
|
||||
|
||||
absolute: true,
|
||||
dot: true
|
||||
};
|
||||
|
||||
const GITIGNORE_FILES_PATTERN = '**/.gitignore';exports.GITIGNORE_FILES_PATTERN = GITIGNORE_FILES_PATTERN;
|
||||
|
||||
const applyBaseToPattern = (pattern, base) => (0, _utilities.isNegativePattern)(pattern) ?
|
||||
'!' + _nodePath.default.posix.join(base, pattern.slice(1)) :
|
||||
_nodePath.default.posix.join(base, pattern);
|
||||
|
||||
const parseIgnoreFile = (file, cwd) => {
|
||||
const base = (0, _slash.default)(_nodePath.default.relative(cwd, _nodePath.default.dirname(file.filePath)));
|
||||
|
||||
return file.content.
|
||||
split(/\r?\n/).
|
||||
filter((line) => line && !line.startsWith('#')).
|
||||
map((pattern) => applyBaseToPattern(pattern, base));
|
||||
};
|
||||
|
||||
const toRelativePath = (fileOrDirectory, cwd) => {
|
||||
cwd = (0, _slash.default)(cwd);
|
||||
if (_nodePath.default.isAbsolute(fileOrDirectory)) {
|
||||
if ((0, _slash.default)(fileOrDirectory).startsWith(cwd)) {
|
||||
return _nodePath.default.relative(cwd, fileOrDirectory);
|
||||
}
|
||||
|
||||
throw new Error(`Path ${fileOrDirectory} is not in cwd ${cwd}`);
|
||||
}
|
||||
|
||||
return fileOrDirectory;
|
||||
};
|
||||
|
||||
const getIsIgnoredPredicate = (files, cwd) => {
|
||||
const patterns = files.flatMap((file) => parseIgnoreFile(file, cwd));
|
||||
const ignores = (0, _ignore.default)().add(patterns);
|
||||
|
||||
return (fileOrDirectory) => {
|
||||
fileOrDirectory = (0, _utilities.toPath)(fileOrDirectory);
|
||||
fileOrDirectory = toRelativePath(fileOrDirectory, cwd);
|
||||
return fileOrDirectory ? ignores.ignores((0, _slash.default)(fileOrDirectory)) : false;
|
||||
};
|
||||
};
|
||||
|
||||
const normalizeOptions = (options = {}) => ({
|
||||
cwd: (0, _utilities.toPath)(options.cwd) || _nodeProcess.default.cwd(),
|
||||
suppressErrors: Boolean(options.suppressErrors),
|
||||
deep: typeof options.deep === 'number' ? options.deep : Number.POSITIVE_INFINITY
|
||||
});
|
||||
|
||||
const isIgnoredByIgnoreFiles = async (patterns, options) => {
|
||||
const { cwd, suppressErrors, deep } = normalizeOptions(options);
|
||||
|
||||
const paths = await (0, _fastGlob.default)(patterns, { cwd, suppressErrors, deep, ...ignoreFilesGlobOptions });
|
||||
|
||||
const files = await Promise.all(
|
||||
paths.map(async (filePath) => ({
|
||||
filePath,
|
||||
content: await _nodeFs.default.promises.readFile(filePath, 'utf8')
|
||||
}))
|
||||
);
|
||||
|
||||
return getIsIgnoredPredicate(files, cwd);
|
||||
};exports.isIgnoredByIgnoreFiles = isIgnoredByIgnoreFiles;
|
||||
|
||||
const isIgnoredByIgnoreFilesSync = (patterns, options) => {
|
||||
const { cwd, suppressErrors, deep } = normalizeOptions(options);
|
||||
|
||||
const paths = _fastGlob.default.sync(patterns, { cwd, suppressErrors, deep, ...ignoreFilesGlobOptions });
|
||||
|
||||
const files = paths.map((filePath) => ({
|
||||
filePath,
|
||||
content: _nodeFs.default.readFileSync(filePath, 'utf8')
|
||||
}));
|
||||
|
||||
return getIsIgnoredPredicate(files, cwd);
|
||||
};exports.isIgnoredByIgnoreFilesSync = isIgnoredByIgnoreFilesSync;
|
||||
|
||||
const isGitIgnored = (options) => isIgnoredByIgnoreFiles(GITIGNORE_FILES_PATTERN, options);exports.isGitIgnored = isGitIgnored;
|
||||
const isGitIgnoredSync = (options) => isIgnoredByIgnoreFilesSync(GITIGNORE_FILES_PATTERN, options);exports.isGitIgnoredSync = isGitIgnoredSync; /* v7-0eff28242bf3ace2 */
|
||||
|
|
@ -0,0 +1,224 @@
|
|||
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.isDynamicPattern = exports.globbySync = exports.globbyStream = exports.globby = exports.generateGlobTasksSync = exports.generateGlobTasks = void 0;Object.defineProperty(exports, "isGitIgnored", { enumerable: true, get: function () {return _ignore.isGitIgnored;} });Object.defineProperty(exports, "isGitIgnoredSync", { enumerable: true, get: function () {return _ignore.isGitIgnoredSync;} });var _nodeFs = _interopRequireDefault(require("node:fs"));
|
||||
var _nodePath = _interopRequireDefault(require("node:path"));
|
||||
var _merge = _interopRequireDefault(require("merge2"));
|
||||
var _fastGlob = _interopRequireDefault(require("fast-glob"));
|
||||
var _dirGlob = _interopRequireDefault(require("dir-glob"));
|
||||
var _ignore = require("./ignore.js");
|
||||
|
||||
|
||||
|
||||
|
||||
var _utilities = require("./utilities.js");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
|
||||
|
||||
const assertPatternsInput = (patterns) => {
|
||||
if (patterns.some((pattern) => typeof pattern !== 'string')) {
|
||||
throw new TypeError('Patterns must be a string or an array of strings');
|
||||
}
|
||||
};
|
||||
|
||||
const toPatternsArray = (patterns) => {
|
||||
patterns = [...new Set([patterns].flat())];
|
||||
assertPatternsInput(patterns);
|
||||
return patterns;
|
||||
};
|
||||
|
||||
const checkCwdOption = (options) => {
|
||||
if (!options.cwd) {
|
||||
return;
|
||||
}
|
||||
|
||||
let stat;
|
||||
try {
|
||||
stat = _nodeFs.default.statSync(options.cwd);
|
||||
} catch {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!stat.isDirectory()) {
|
||||
throw new Error('The `cwd` option must be a path to a directory');
|
||||
}
|
||||
};
|
||||
|
||||
const normalizeOptions = (options = {}) => {
|
||||
options = {
|
||||
...options,
|
||||
ignore: options.ignore || [],
|
||||
expandDirectories: options.expandDirectories === undefined ?
|
||||
true :
|
||||
options.expandDirectories,
|
||||
cwd: (0, _utilities.toPath)(options.cwd)
|
||||
};
|
||||
|
||||
checkCwdOption(options);
|
||||
|
||||
return options;
|
||||
};
|
||||
|
||||
const normalizeArguments = (fn) => async (patterns, options) => fn(toPatternsArray(patterns), normalizeOptions(options));
|
||||
const normalizeArgumentsSync = (fn) => (patterns, options) => fn(toPatternsArray(patterns), normalizeOptions(options));
|
||||
|
||||
const getIgnoreFilesPatterns = (options) => {
|
||||
const { ignoreFiles, gitignore } = options;
|
||||
|
||||
const patterns = ignoreFiles ? toPatternsArray(ignoreFiles) : [];
|
||||
if (gitignore) {
|
||||
patterns.push(_ignore.GITIGNORE_FILES_PATTERN);
|
||||
}
|
||||
|
||||
return patterns;
|
||||
};
|
||||
|
||||
const getFilter = async (options) => {
|
||||
const ignoreFilesPatterns = getIgnoreFilesPatterns(options);
|
||||
return createFilterFunction(
|
||||
ignoreFilesPatterns.length > 0 && (await (0, _ignore.isIgnoredByIgnoreFiles)(ignoreFilesPatterns, options))
|
||||
);
|
||||
};
|
||||
|
||||
const getFilterSync = (options) => {
|
||||
const ignoreFilesPatterns = getIgnoreFilesPatterns(options);
|
||||
return createFilterFunction(
|
||||
ignoreFilesPatterns.length > 0 && (0, _ignore.isIgnoredByIgnoreFilesSync)(ignoreFilesPatterns, options)
|
||||
);
|
||||
};
|
||||
|
||||
const createFilterFunction = (isIgnored) => {
|
||||
const seen = new Set();
|
||||
|
||||
return (fastGlobResult) => {
|
||||
const path = fastGlobResult.path || fastGlobResult;
|
||||
const pathKey = _nodePath.default.normalize(path);
|
||||
const seenOrIgnored = seen.has(pathKey) || isIgnored && isIgnored(path);
|
||||
seen.add(pathKey);
|
||||
return !seenOrIgnored;
|
||||
};
|
||||
};
|
||||
|
||||
const unionFastGlobResults = (results, filter) => results.flat().filter((fastGlobResult) => filter(fastGlobResult));
|
||||
const unionFastGlobStreams = (streams, filter) => (0, _merge.default)(streams).pipe(new _utilities.FilterStream((fastGlobResult) => filter(fastGlobResult)));
|
||||
|
||||
const convertNegativePatterns = (patterns, options) => {
|
||||
const tasks = [];
|
||||
|
||||
while (patterns.length > 0) {
|
||||
const index = patterns.findIndex((pattern) => (0, _utilities.isNegativePattern)(pattern));
|
||||
|
||||
if (index === -1) {
|
||||
tasks.push({ patterns, options });
|
||||
break;
|
||||
}
|
||||
|
||||
const ignorePattern = patterns[index].slice(1);
|
||||
|
||||
for (const task of tasks) {
|
||||
task.options.ignore.push(ignorePattern);
|
||||
}
|
||||
|
||||
if (index !== 0) {
|
||||
tasks.push({
|
||||
patterns: patterns.slice(0, index),
|
||||
options: {
|
||||
...options,
|
||||
ignore: [
|
||||
...options.ignore,
|
||||
ignorePattern]
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
patterns = patterns.slice(index + 1);
|
||||
}
|
||||
|
||||
return tasks;
|
||||
};
|
||||
|
||||
const getDirGlobOptions = (options, cwd) => ({
|
||||
...(cwd ? { cwd } : {}),
|
||||
...(Array.isArray(options) ? { files: options } : options)
|
||||
});
|
||||
|
||||
const generateTasks = async (patterns, options) => {
|
||||
const globTasks = convertNegativePatterns(patterns, options);
|
||||
|
||||
const { cwd, expandDirectories } = options;
|
||||
|
||||
if (!expandDirectories) {
|
||||
return globTasks;
|
||||
}
|
||||
|
||||
const patternExpandOptions = getDirGlobOptions(expandDirectories, cwd);
|
||||
const ignoreExpandOptions = cwd ? { cwd } : undefined;
|
||||
|
||||
return Promise.all(
|
||||
globTasks.map(async (task) => {
|
||||
let { patterns, options } = task;
|
||||
|
||||
[
|
||||
patterns,
|
||||
options.ignore] =
|
||||
await Promise.all([
|
||||
(0, _dirGlob.default)(patterns, patternExpandOptions),
|
||||
(0, _dirGlob.default)(options.ignore, ignoreExpandOptions)]
|
||||
);
|
||||
|
||||
return { patterns, options };
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
const generateTasksSync = (patterns, options) => {
|
||||
const globTasks = convertNegativePatterns(patterns, options);
|
||||
|
||||
const { cwd, expandDirectories } = options;
|
||||
|
||||
if (!expandDirectories) {
|
||||
return globTasks;
|
||||
}
|
||||
|
||||
const patternExpandOptions = getDirGlobOptions(expandDirectories, cwd);
|
||||
const ignoreExpandOptions = cwd ? { cwd } : undefined;
|
||||
|
||||
return globTasks.map((task) => {
|
||||
let { patterns, options } = task;
|
||||
patterns = _dirGlob.default.sync(patterns, patternExpandOptions);
|
||||
options.ignore = _dirGlob.default.sync(options.ignore, ignoreExpandOptions);
|
||||
return { patterns, options };
|
||||
});
|
||||
};
|
||||
|
||||
const globby = normalizeArguments(async (patterns, options) => {
|
||||
const [
|
||||
tasks,
|
||||
filter] =
|
||||
await Promise.all([
|
||||
generateTasks(patterns, options),
|
||||
getFilter(options)]
|
||||
);
|
||||
const results = await Promise.all(tasks.map((task) => (0, _fastGlob.default)(task.patterns, task.options)));
|
||||
|
||||
return unionFastGlobResults(results, filter);
|
||||
});exports.globby = globby;
|
||||
|
||||
const globbySync = normalizeArgumentsSync((patterns, options) => {
|
||||
const tasks = generateTasksSync(patterns, options);
|
||||
const filter = getFilterSync(options);
|
||||
const results = tasks.map((task) => _fastGlob.default.sync(task.patterns, task.options));
|
||||
|
||||
return unionFastGlobResults(results, filter);
|
||||
});exports.globbySync = globbySync;
|
||||
|
||||
const globbyStream = normalizeArgumentsSync((patterns, options) => {
|
||||
const tasks = generateTasksSync(patterns, options);
|
||||
const filter = getFilterSync(options);
|
||||
const streams = tasks.map((task) => _fastGlob.default.stream(task.patterns, task.options));
|
||||
|
||||
return unionFastGlobStreams(streams, filter);
|
||||
});exports.globbyStream = globbyStream;
|
||||
|
||||
const isDynamicPattern = normalizeArgumentsSync(
|
||||
(patterns, options) => patterns.some((pattern) => _fastGlob.default.isDynamicPattern(pattern, options))
|
||||
);exports.isDynamicPattern = isDynamicPattern;
|
||||
|
||||
const generateGlobTasks = normalizeArguments(generateTasks);exports.generateGlobTasks = generateGlobTasks;
|
||||
const generateGlobTasksSync = normalizeArgumentsSync(generateTasksSync);exports.generateGlobTasksSync = generateGlobTasksSync; /* v7-5fbae7b710226867 */
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.toPath = exports.isNegativePattern = exports.FilterStream = void 0;var _nodeUrl = require("node:url");
|
||||
var _nodeStream = require("node:stream");
|
||||
|
||||
const toPath = (urlOrPath) => urlOrPath instanceof URL ? (0, _nodeUrl.fileURLToPath)(urlOrPath) : urlOrPath;exports.toPath = toPath;
|
||||
|
||||
class FilterStream extends _nodeStream.Transform {
|
||||
constructor(filter) {
|
||||
super({
|
||||
objectMode: true,
|
||||
transform(data, encoding, callback) {
|
||||
callback(undefined, filter(data) ? data : undefined);
|
||||
}
|
||||
});
|
||||
}
|
||||
}exports.FilterStream = FilterStream;
|
||||
|
||||
const isNegativePattern = (pattern) => pattern[0] === '!';exports.isNegativePattern = isNegativePattern; /* v7-259a918aa3543465 */
|
||||
|
|
@ -0,0 +1,122 @@
|
|||
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = prettyBytes;const BYTE_UNITS = [
|
||||
'B',
|
||||
'kB',
|
||||
'MB',
|
||||
'GB',
|
||||
'TB',
|
||||
'PB',
|
||||
'EB',
|
||||
'ZB',
|
||||
'YB'];
|
||||
|
||||
|
||||
const BIBYTE_UNITS = [
|
||||
'B',
|
||||
'KiB',
|
||||
'MiB',
|
||||
'GiB',
|
||||
'TiB',
|
||||
'PiB',
|
||||
'EiB',
|
||||
'ZiB',
|
||||
'YiB'];
|
||||
|
||||
|
||||
const BIT_UNITS = [
|
||||
'b',
|
||||
'kbit',
|
||||
'Mbit',
|
||||
'Gbit',
|
||||
'Tbit',
|
||||
'Pbit',
|
||||
'Ebit',
|
||||
'Zbit',
|
||||
'Ybit'];
|
||||
|
||||
|
||||
const BIBIT_UNITS = [
|
||||
'b',
|
||||
'kibit',
|
||||
'Mibit',
|
||||
'Gibit',
|
||||
'Tibit',
|
||||
'Pibit',
|
||||
'Eibit',
|
||||
'Zibit',
|
||||
'Yibit'];
|
||||
|
||||
|
||||
/*
|
||||
Formats the given number using `Number#toLocaleString`.
|
||||
- If locale is a string, the value is expected to be a locale-key (for example: `de`).
|
||||
- If locale is true, the system default locale is used for translation.
|
||||
- If no value for locale is specified, the number is returned unmodified.
|
||||
*/
|
||||
const toLocaleString = (number, locale, options) => {
|
||||
let result = number;
|
||||
if (typeof locale === 'string' || Array.isArray(locale)) {
|
||||
result = number.toLocaleString(locale, options);
|
||||
} else if (locale === true || options !== undefined) {
|
||||
result = number.toLocaleString(undefined, options);
|
||||
}
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
function prettyBytes(number, options) {
|
||||
if (!Number.isFinite(number)) {
|
||||
throw new TypeError(`Expected a finite number, got ${typeof number}: ${number}`);
|
||||
}
|
||||
|
||||
options = {
|
||||
bits: false,
|
||||
binary: false,
|
||||
space: true,
|
||||
...options
|
||||
};
|
||||
|
||||
const UNITS = options.bits ?
|
||||
options.binary ? BIBIT_UNITS : BIT_UNITS :
|
||||
options.binary ? BIBYTE_UNITS : BYTE_UNITS;
|
||||
|
||||
const separator = options.space ? ' ' : '';
|
||||
|
||||
if (options.signed && number === 0) {
|
||||
return ` 0${separator}${UNITS[0]}`;
|
||||
}
|
||||
|
||||
const isNegative = number < 0;
|
||||
const prefix = isNegative ? '-' : options.signed ? '+' : '';
|
||||
|
||||
if (isNegative) {
|
||||
number = -number;
|
||||
}
|
||||
|
||||
let localeOptions;
|
||||
|
||||
if (options.minimumFractionDigits !== undefined) {
|
||||
localeOptions = { minimumFractionDigits: options.minimumFractionDigits };
|
||||
}
|
||||
|
||||
if (options.maximumFractionDigits !== undefined) {
|
||||
localeOptions = { maximumFractionDigits: options.maximumFractionDigits, ...localeOptions };
|
||||
}
|
||||
|
||||
if (number < 1) {
|
||||
const numberString = toLocaleString(number, options.locale, localeOptions);
|
||||
return prefix + numberString + separator + UNITS[0];
|
||||
}
|
||||
|
||||
const exponent = Math.min(Math.floor(options.binary ? Math.log(number) / Math.log(1024) : Math.log10(number) / 3), UNITS.length - 1);
|
||||
number /= (options.binary ? 1024 : 1000) ** exponent;
|
||||
|
||||
if (!localeOptions) {
|
||||
number = number.toPrecision(3);
|
||||
}
|
||||
|
||||
const numberString = toLocaleString(Number(number), options.locale, localeOptions);
|
||||
|
||||
const unit = UNITS[exponent];
|
||||
|
||||
return prefix + numberString + separator + unit;
|
||||
} /* v7-a4da9a491bb897bd */
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = slash;function slash(path) {
|
||||
const isExtendedLengthPath = /^\\\\\?\\/.test(path);
|
||||
const hasNonAscii = /[^\u0000-\u0080]+/.test(path); // eslint-disable-line no-control-regex
|
||||
|
||||
if (isExtendedLengthPath || hasNonAscii) {
|
||||
return path;
|
||||
}
|
||||
|
||||
return path.replace(/\\/g, '/');
|
||||
} /* v7-56da1c6249207534 */
|
||||
|
|
@ -0,0 +1,225 @@
|
|||
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.Chalk = void 0;Object.defineProperty(exports, "backgroundColorNames", { enumerable: true, get: function () {return _index.backgroundColorNames;} });Object.defineProperty(exports, "backgroundColors", { enumerable: true, get: function () {return _index.backgroundColorNames;} });exports.chalkStderr = void 0;Object.defineProperty(exports, "colorNames", { enumerable: true, get: function () {return _index.colorNames;} });Object.defineProperty(exports, "colors", { enumerable: true, get: function () {return _index.colorNames;} });exports.default = void 0;Object.defineProperty(exports, "foregroundColorNames", { enumerable: true, get: function () {return _index.foregroundColorNames;} });Object.defineProperty(exports, "foregroundColors", { enumerable: true, get: function () {return _index.foregroundColorNames;} });Object.defineProperty(exports, "modifierNames", { enumerable: true, get: function () {return _index.modifierNames;} });Object.defineProperty(exports, "modifiers", { enumerable: true, get: function () {return _index.modifierNames;} });exports.supportsColorStderr = exports.supportsColor = void 0;var _ansiStyles = _interopRequireDefault(require("#ansi-styles"));
|
||||
var _supportsColor = _interopRequireDefault(require("#supports-color"));
|
||||
var _utilities = require("./utilities.js");
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var _index = require("./vendor/ansi-styles/index.js");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}const { stdout: stdoutColor, stderr: stderrColor } = _supportsColor.default;exports.supportsColorStderr = stderrColor;exports.supportsColor = stdoutColor;const GENERATOR = Symbol('GENERATOR');const STYLER = Symbol('STYLER');const IS_EMPTY = Symbol('IS_EMPTY'); // `supportsColor.level` → `ansiStyles.color[name]` mapping
|
||||
const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m'];const styles = Object.create(null);const applyOptions = (object, options = {}) => {if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {throw new Error('The `level` option should be an integer from 0 to 3');} // Detect level if not set manually
|
||||
const colorLevel = stdoutColor ? stdoutColor.level : 0;object.level = options.level === undefined ? colorLevel : options.level;};class Chalk {constructor(options) {// eslint-disable-next-line no-constructor-return
|
||||
return chalkFactory(options);}}exports.Chalk = Chalk;const chalkFactory = (options) => {const chalk = (...strings) => strings.join(' ');applyOptions(chalk, options);Object.setPrototypeOf(chalk, createChalk.prototype);return chalk;};function createChalk(options) {return chalkFactory(options);}Object.setPrototypeOf(createChalk.prototype, Function.prototype);for (const [styleName, style] of Object.entries(_ansiStyles.default)) {styles[styleName] = { get() {const builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);Object.defineProperty(this, styleName, { value: builder });return builder;} };}styles.visible = { get() {const builder = createBuilder(this, this[STYLER], true);Object.defineProperty(this, 'visible', { value: builder });return builder;} };const getModelAnsi = (model, level, type, ...arguments_) => {if (model === 'rgb') {if (level === 'ansi16m') {return _ansiStyles.default[type].ansi16m(...arguments_);}if (level === 'ansi256') {return _ansiStyles.default[type].ansi256(_ansiStyles.default.rgbToAnsi256(...arguments_));}return _ansiStyles.default[type].ansi(_ansiStyles.default.rgbToAnsi(...arguments_));}if (model === 'hex') {return getModelAnsi('rgb', level, type, ..._ansiStyles.default.hexToRgb(...arguments_));}return _ansiStyles.default[type][model](...arguments_);};const usedModels = ['rgb', 'hex', 'ansi256'];for (const model of usedModels) {styles[model] = { get() {const { level } = this;return function (...arguments_) {const styler = createStyler(getModelAnsi(model, levelMapping[level], 'color', ...arguments_), _ansiStyles.default.color.close, this[STYLER]);return createBuilder(this, styler, this[IS_EMPTY]);};} };const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);styles[bgModel] = { get() {const { level } = this;return function (...arguments_) {const styler = createStyler(getModelAnsi(model, levelMapping[level], 'bgColor', ...arguments_), _ansiStyles.default.bgColor.close, this[STYLER]);return createBuilder(this, styler, this[IS_EMPTY]);};} };}const proto = Object.defineProperties(() => {}, { ...styles, level: { enumerable: true, get() {return this[GENERATOR].level;}, set(level) {this[GENERATOR].level = level;} } });const createStyler = (open, close, parent) => {let openAll;let closeAll;if (parent === undefined) {openAll = open;closeAll = close;} else {openAll = parent.openAll + open;closeAll = close + parent.closeAll;}return { open, close, openAll, closeAll, parent };};const createBuilder = (self, _styler, _isEmpty) => {// Single argument is hot path, implicit coercion is faster than anything
|
||||
// eslint-disable-next-line no-implicit-coercion
|
||||
const builder = (...arguments_) => applyStyle(builder, arguments_.length === 1 ? '' + arguments_[0] : arguments_.join(' ')); // We alter the prototype because we must return a function, but there is
|
||||
// no way to create a function with a different prototype
|
||||
Object.setPrototypeOf(builder, proto);builder[GENERATOR] = self;builder[STYLER] = _styler;builder[IS_EMPTY] = _isEmpty;return builder;};const applyStyle = (self, string) => {if (self.level <= 0 || !string) {return self[IS_EMPTY] ? '' : string;}let styler = self[STYLER];if (styler === undefined) {return string;}const { openAll, closeAll } = styler;if (string.includes('\u001B')) {while (styler !== undefined) {// Replace any instances already present with a re-opening code
|
||||
// otherwise only the part of the string until said closing code
|
||||
// will be colored, and the rest will simply be 'plain'.
|
||||
string = (0, _utilities.stringReplaceAll)(string, styler.close, styler.open);styler = styler.parent;}} // We can move both next actions out of loop, because remaining actions in loop won't have
|
||||
// any/visible effect on parts we add here. Close the styling before a linebreak and reopen
|
||||
// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92
|
||||
const lfIndex = string.indexOf('\n');if (lfIndex !== -1) {string = (0, _utilities.stringEncaseCRLFWithFirstIndex)(string, closeAll, openAll, lfIndex);}return openAll + string + closeAll;};Object.defineProperties(createChalk.prototype, styles);const chalk = createChalk();const chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 });exports.chalkStderr = chalkStderr;var _default =
|
||||
|
||||
|
||||
|
||||
|
||||
chalk;exports.default = _default; /* v7-ee09f19624a0936b */
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.stringEncaseCRLFWithFirstIndex = stringEncaseCRLFWithFirstIndex;exports.stringReplaceAll = stringReplaceAll; // TODO: When targeting Node.js 16, use `String.prototype.replaceAll`.
|
||||
function stringReplaceAll(string, substring, replacer) {
|
||||
let index = string.indexOf(substring);
|
||||
if (index === -1) {
|
||||
return string;
|
||||
}
|
||||
|
||||
const substringLength = substring.length;
|
||||
let endIndex = 0;
|
||||
let returnValue = '';
|
||||
do {
|
||||
returnValue += string.slice(endIndex, index) + substring + replacer;
|
||||
endIndex = index + substringLength;
|
||||
index = string.indexOf(substring, endIndex);
|
||||
} while (index !== -1);
|
||||
|
||||
returnValue += string.slice(endIndex);
|
||||
return returnValue;
|
||||
}
|
||||
|
||||
function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {
|
||||
let endIndex = 0;
|
||||
let returnValue = '';
|
||||
do {
|
||||
const gotCR = string[index - 1] === '\r';
|
||||
returnValue += string.slice(endIndex, gotCR ? index - 1 : index) + prefix + (gotCR ? '\r\n' : '\n') + postfix;
|
||||
endIndex = index + 1;
|
||||
index = string.indexOf('\n', endIndex);
|
||||
} while (index !== -1);
|
||||
|
||||
returnValue += string.slice(endIndex);
|
||||
return returnValue;
|
||||
} /* v7-255e1aba69efb0ea */
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _unbuild = require("unbuild");var _default =
|
||||
|
||||
(0, _unbuild.defineBuildConfig)({
|
||||
clean: true,
|
||||
entries: ['src/index'],
|
||||
declaration: true,
|
||||
rollup: {
|
||||
emitCJS: true
|
||||
}
|
||||
});exports.default = _default; /* v7-e617738d05bbbbdb */
|
||||
|
|
@ -0,0 +1,182 @@
|
|||
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.createSupportsColor = createSupportsColor;exports.default = void 0;var _nodeProcess = _interopRequireDefault(require("node:process"));
|
||||
var _nodeOs = _interopRequireDefault(require("node:os"));
|
||||
var _nodeTty = _interopRequireDefault(require("node:tty"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
|
||||
|
||||
// From: https://github.com/sindresorhus/has-flag/blob/main/index.js
|
||||
/// function hasFlag(flag, argv = globalThis.Deno?.args ?? process.argv) {
|
||||
function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : _nodeProcess.default.argv) {
|
||||
const prefix = flag.startsWith('-') ? '' : flag.length === 1 ? '-' : '--';
|
||||
const position = argv.indexOf(prefix + flag);
|
||||
const terminatorPosition = argv.indexOf('--');
|
||||
return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
|
||||
}
|
||||
|
||||
const { env } = _nodeProcess.default;
|
||||
|
||||
let flagForceColor;
|
||||
if (
|
||||
hasFlag('no-color') ||
|
||||
hasFlag('no-colors') ||
|
||||
hasFlag('color=false') ||
|
||||
hasFlag('color=never'))
|
||||
{
|
||||
flagForceColor = 0;
|
||||
} else if (
|
||||
hasFlag('color') ||
|
||||
hasFlag('colors') ||
|
||||
hasFlag('color=true') ||
|
||||
hasFlag('color=always'))
|
||||
{
|
||||
flagForceColor = 1;
|
||||
}
|
||||
|
||||
function envForceColor() {
|
||||
if ('FORCE_COLOR' in env) {
|
||||
if (env.FORCE_COLOR === 'true') {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (env.FORCE_COLOR === 'false') {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);
|
||||
}
|
||||
}
|
||||
|
||||
function translateLevel(level) {
|
||||
if (level === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return {
|
||||
level,
|
||||
hasBasic: true,
|
||||
has256: level >= 2,
|
||||
has16m: level >= 3
|
||||
};
|
||||
}
|
||||
|
||||
function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
|
||||
const noFlagForceColor = envForceColor();
|
||||
if (noFlagForceColor !== undefined) {
|
||||
flagForceColor = noFlagForceColor;
|
||||
}
|
||||
|
||||
const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
|
||||
|
||||
if (forceColor === 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (sniffFlags) {
|
||||
if (hasFlag('color=16m') ||
|
||||
hasFlag('color=full') ||
|
||||
hasFlag('color=truecolor')) {
|
||||
return 3;
|
||||
}
|
||||
|
||||
if (hasFlag('color=256')) {
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
|
||||
// Check for Azure DevOps pipelines.
|
||||
// Has to be above the `!streamIsTTY` check.
|
||||
if ('TF_BUILD' in env && 'AGENT_NAME' in env) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (haveStream && !streamIsTTY && forceColor === undefined) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
const min = forceColor || 0;
|
||||
|
||||
if (env.TERM === 'dumb') {
|
||||
return min;
|
||||
}
|
||||
|
||||
if (_nodeProcess.default.platform === 'win32') {
|
||||
// Windows 10 build 10586 is the first Windows release that supports 256 colors.
|
||||
// Windows 10 build 14931 is the first release that supports 16m/TrueColor.
|
||||
const osRelease = _nodeOs.default.release().split('.');
|
||||
if (
|
||||
Number(osRelease[0]) >= 10 &&
|
||||
Number(osRelease[2]) >= 10_586)
|
||||
{
|
||||
return Number(osRelease[2]) >= 14_931 ? 3 : 2;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ('CI' in env) {
|
||||
if ('GITHUB_ACTIONS' in env || 'GITEA_ACTIONS' in env) {
|
||||
return 3;
|
||||
}
|
||||
|
||||
if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'BUILDKITE', 'DRONE'].some((sign) => sign in env) || env.CI_NAME === 'codeship') {
|
||||
return 1;
|
||||
}
|
||||
|
||||
return min;
|
||||
}
|
||||
|
||||
if ('TEAMCITY_VERSION' in env) {
|
||||
return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
|
||||
}
|
||||
|
||||
if (env.COLORTERM === 'truecolor') {
|
||||
return 3;
|
||||
}
|
||||
|
||||
if (env.TERM === 'xterm-kitty') {
|
||||
return 3;
|
||||
}
|
||||
|
||||
if ('TERM_PROGRAM' in env) {
|
||||
const version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);
|
||||
|
||||
switch (env.TERM_PROGRAM) {
|
||||
case 'iTerm.app':{
|
||||
return version >= 3 ? 3 : 2;
|
||||
}
|
||||
|
||||
case 'Apple_Terminal':{
|
||||
return 2;
|
||||
}
|
||||
// No default
|
||||
}
|
||||
}
|
||||
|
||||
if (/-256(color)?$/i.test(env.TERM)) {
|
||||
return 2;
|
||||
}
|
||||
|
||||
if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ('COLORTERM' in env) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
return min;
|
||||
}
|
||||
|
||||
function createSupportsColor(stream, options = {}) {
|
||||
const level = _supportsColor(stream, {
|
||||
streamIsTTY: stream && stream.isTTY,
|
||||
...options
|
||||
});
|
||||
|
||||
return translateLevel(level);
|
||||
}
|
||||
|
||||
const supportsColor = {
|
||||
stdout: createSupportsColor({ isTTY: _nodeTty.default.isatty(1) }),
|
||||
stderr: createSupportsColor({ isTTY: _nodeTty.default.isatty(2) })
|
||||
};var _default =
|
||||
|
||||
supportsColor;exports.default = _default; /* v7-75cc7f0b87ad9e85 */
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _unbuild = require("unbuild");var _default =
|
||||
|
||||
(0, _unbuild.defineBuildConfig)({
|
||||
clean: true,
|
||||
entries: ['src/index'],
|
||||
declaration: true,
|
||||
rollup: {
|
||||
emitCJS: true
|
||||
}
|
||||
});exports.default = _default; /* v7-e617738d05bbbbdb */
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"name": "@vben/types",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@vben/types",
|
||||
"version": "1.0.0",
|
||||
"license": "MIT"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
|
@ -53,7 +53,7 @@
|
|||
font-size: 14px;
|
||||
|
||||
img {
|
||||
width: @logo-width;
|
||||
// width: @logo-width;
|
||||
height: @logo-width;
|
||||
margin-right: 2px;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -179,9 +179,11 @@
|
|||
&-logo {
|
||||
height: @header-height;
|
||||
padding: 10px 4px 10px 10px;
|
||||
// add
|
||||
justify-content: center;
|
||||
|
||||
img {
|
||||
width: @logo-width;
|
||||
// width: @logo-width;
|
||||
height: @logo-width;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@
|
|||
},
|
||||
]"
|
||||
>
|
||||
<span class="text"> {{ title }}</span>
|
||||
<span class="text">{{ title }}</span>
|
||||
<Icon
|
||||
:size="16"
|
||||
:icon="getMixSideFixed ? 'ri:pushpin-2-fill' : 'ri:pushpin-2-line'"
|
||||
|
|
@ -368,7 +368,7 @@
|
|||
padding-left: 0 !important;
|
||||
|
||||
img {
|
||||
width: @logo-width;
|
||||
// width: @logo-width;
|
||||
height: @logo-width;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,181 +1,181 @@
|
|||
export default {
|
||||
api: {
|
||||
operationSuccess: 'Operation Success',
|
||||
operationFailed: 'Operation failed',
|
||||
errorTip: 'Error Tip',
|
||||
successTip: 'Success Tip',
|
||||
errorMessage: 'The operation failed, the system is abnormal!',
|
||||
timeoutMessage: 'Login timed out, please log in again!',
|
||||
apiTimeoutMessage: 'The interface request timed out, please refresh the page and try again!',
|
||||
apiRequestFailed: 'The interface request failed, please try again later!',
|
||||
networkException: 'network anomaly',
|
||||
networkExceptionMsg:
|
||||
'Please check if your network connection is normal! The network is abnormal',
|
||||
refreshBrowser: 'The network is busy now, please press F5 to refresh your browser',
|
||||
api: {
|
||||
operationSuccess: 'Operation Success',
|
||||
operationFailed: 'Operation failed',
|
||||
errorTip: 'Error Tip',
|
||||
successTip: 'Success Tip',
|
||||
errorMessage: 'The operation failed, the system is abnormal!',
|
||||
timeoutMessage: 'Login timed out, please log in again!',
|
||||
apiTimeoutMessage: 'The interface request timed out, please refresh the page and try again!',
|
||||
apiRequestFailed: 'The interface request failed, please try again later!',
|
||||
networkException: 'network anomaly',
|
||||
networkExceptionMsg:
|
||||
'Please check if your network connection is normal! The network is abnormal',
|
||||
refreshBrowser: 'The network is busy now, please press F5 to refresh your browser',
|
||||
|
||||
errMsg401: 'The user does not have permission (token, user name, password error)!',
|
||||
errMsg403: 'The user is authorized, but access is forbidden!',
|
||||
errMsg404: 'Network request error, the resource was not found!',
|
||||
errMsg405: 'Network request error, request method not allowed!',
|
||||
errMsg408: 'Network request timed out!',
|
||||
errMsg500: 'Server error, please contact the administrator!',
|
||||
errMsg501: 'The network is not implemented!',
|
||||
errMsg502: 'Network Error!',
|
||||
errMsg503: 'The service is unavailable, the server is temporarily overloaded or maintained!',
|
||||
errMsg504: 'Network timeout!',
|
||||
errMsg505: 'The http version does not support the request!',
|
||||
},
|
||||
app: {
|
||||
logoutTip: 'Reminder',
|
||||
logoutMessage: 'Confirm to exit the system?',
|
||||
menuLoading: 'Menu loading...',
|
||||
},
|
||||
errorLog: {
|
||||
tableTitle: 'Error log list',
|
||||
tableColumnType: 'Type',
|
||||
tableColumnDate: 'Time',
|
||||
tableColumnFile: 'File',
|
||||
tableColumnMsg: 'Error message',
|
||||
tableColumnStackMsg: 'Stack info',
|
||||
errMsg401: 'The user does not have permission (token, user name, password error)!',
|
||||
errMsg403: 'The user is authorized, but access is forbidden!',
|
||||
errMsg404: 'Network request error, the resource was not found!',
|
||||
errMsg405: 'Network request error, request method not allowed!',
|
||||
errMsg408: 'Network request timed out!',
|
||||
errMsg500: 'Server error, please contact the administrator!',
|
||||
errMsg501: 'The network is not implemented!',
|
||||
errMsg502: 'Network Error!',
|
||||
errMsg503: 'The service is unavailable, the server is temporarily overloaded or maintained!',
|
||||
errMsg504: 'Network timeout!',
|
||||
errMsg505: 'The http version does not support the request!',
|
||||
},
|
||||
app: {
|
||||
logoutTip: 'Reminder',
|
||||
logoutMessage: 'Confirm to exit the system?',
|
||||
menuLoading: 'Menu loading...',
|
||||
},
|
||||
errorLog: {
|
||||
tableTitle: 'Error log list',
|
||||
tableColumnType: 'Type',
|
||||
tableColumnDate: 'Time',
|
||||
tableColumnFile: 'File',
|
||||
tableColumnMsg: 'Error message',
|
||||
tableColumnStackMsg: 'Stack info',
|
||||
|
||||
tableActionDesc: 'Details',
|
||||
tableActionDesc: 'Details',
|
||||
|
||||
modalTitle: 'Error details',
|
||||
modalTitle: 'Error details',
|
||||
|
||||
fireVueError: 'Fire vue error',
|
||||
fireResourceError: 'Fire resource error',
|
||||
fireAjaxError: 'Fire ajax error',
|
||||
fireVueError: 'Fire vue error',
|
||||
fireResourceError: 'Fire resource error',
|
||||
fireAjaxError: 'Fire ajax error',
|
||||
|
||||
enableMessage: 'Only effective when useErrorHandle=true in `/src/settings/projectSetting.ts`.',
|
||||
},
|
||||
exception: {
|
||||
backLogin: 'Back Login',
|
||||
backHome: 'Back Home',
|
||||
subTitle403: "Sorry, you don't have access to this page.",
|
||||
subTitle404: 'Sorry, the page you visited does not exist.',
|
||||
subTitle500: 'Sorry, the server is reporting an error.',
|
||||
noDataTitle: 'No data on the current page.',
|
||||
networkErrorTitle: 'Network Error',
|
||||
networkErrorSubTitle:
|
||||
'Sorry,Your network connection has been disconnected, please check your network!',
|
||||
},
|
||||
lock: {
|
||||
unlock: 'Click to unlock',
|
||||
alert: 'Lock screen password error',
|
||||
backToLogin: 'Back to login',
|
||||
entry: 'Enter the system',
|
||||
placeholder: 'Please enter the lock screen password or user password',
|
||||
},
|
||||
login: {
|
||||
captcha: 'Verification code',
|
||||
backSignIn: 'Back sign in',
|
||||
mobileSignInFormTitle: 'Mobile sign in',
|
||||
qrSignInFormTitle: 'Qr sign in',
|
||||
emailFormTitle: 'Email sign in',
|
||||
signInFormTitle: 'Sign in',
|
||||
signUpFormTitle: 'Sign up',
|
||||
forgetFormTitle: 'Reset password',
|
||||
enableMessage: 'Only effective when useErrorHandle=true in `/src/settings/projectSetting.ts`.',
|
||||
},
|
||||
exception: {
|
||||
backLogin: 'Back Login',
|
||||
backHome: 'Back Home',
|
||||
subTitle403: "Sorry, you don't have access to this page.",
|
||||
subTitle404: 'Sorry, the page you visited does not exist.',
|
||||
subTitle500: 'Sorry, the server is reporting an error.',
|
||||
noDataTitle: 'No data on the current page.',
|
||||
networkErrorTitle: 'Network Error',
|
||||
networkErrorSubTitle:
|
||||
'Sorry,Your network connection has been disconnected, please check your network!',
|
||||
},
|
||||
lock: {
|
||||
unlock: 'Click to unlock',
|
||||
alert: 'Lock screen password error',
|
||||
backToLogin: 'Back to login',
|
||||
entry: 'Enter the system',
|
||||
placeholder: 'Please enter the lock screen password or user password',
|
||||
},
|
||||
login: {
|
||||
captcha: 'Verification code',
|
||||
backSignIn: 'Back sign in',
|
||||
mobileSignInFormTitle: 'Mobile sign in',
|
||||
qrSignInFormTitle: 'Qr sign in',
|
||||
emailFormTitle: 'Email sign in',
|
||||
signInFormTitle: 'Sign in',
|
||||
signUpFormTitle: 'Sign up',
|
||||
forgetFormTitle: 'Reset password',
|
||||
|
||||
signInTitle: 'Provide next-generation intelligent ERP system software for enterprises',
|
||||
signInDesc: '© 2023-2033 Wan Sen ERP - All Right Reserved',
|
||||
policy: 'I agree, to the WanSer ERP System Privacy Policy',
|
||||
scanSign: `scanning the code to complete the login`,
|
||||
signInTitle: 'Provide next-generation intelligent ERP system software for enterprises',
|
||||
signInDesc: '© 2023-2033 曲和科技 - All Right Reserved',
|
||||
policy: 'I agree, to the WanSer ERP System Privacy Policy',
|
||||
scanSign: `scanning the code to complete the login`,
|
||||
|
||||
loginButton: 'Sign in',
|
||||
registerButton: 'Sign up',
|
||||
rememberMe: 'Remember me',
|
||||
forgetPassword: 'Forget Password?',
|
||||
otherSignIn: 'Sign in with',
|
||||
loginButton: 'Sign in',
|
||||
registerButton: 'Sign up',
|
||||
rememberMe: 'Remember me',
|
||||
forgetPassword: 'Forget Password?',
|
||||
otherSignIn: 'Sign in with',
|
||||
|
||||
// notify
|
||||
loginSuccessTitle: 'Login successful',
|
||||
loginSuccessDesc: 'Welcome back',
|
||||
// notify
|
||||
loginSuccessTitle: 'Login successful',
|
||||
loginSuccessDesc: 'Welcome back',
|
||||
|
||||
// placeholder
|
||||
accountPlaceholder: 'Please input username',
|
||||
passwordPlaceholder: 'Please input password',
|
||||
captchaPlaceholder: 'Please input verification code',
|
||||
correctMobilePlaceholder: 'Please enter the correct phone number',
|
||||
correctEmailPlaceholder: 'Please enter the correct email address',
|
||||
smsPlaceholder: 'Please input sms code',
|
||||
mobilePlaceholder: 'Please input mobile',
|
||||
emailPlaceholder: 'Please input email',
|
||||
policyPlaceholder: 'Register after checking',
|
||||
diffPwd: 'The two passwords are inconsistent',
|
||||
// placeholder
|
||||
accountPlaceholder: 'Please input username',
|
||||
passwordPlaceholder: 'Please input password',
|
||||
captchaPlaceholder: 'Please input verification code',
|
||||
correctMobilePlaceholder: 'Please enter the correct phone number',
|
||||
correctEmailPlaceholder: 'Please enter the correct email address',
|
||||
smsPlaceholder: 'Please input sms code',
|
||||
mobilePlaceholder: 'Please input mobile',
|
||||
emailPlaceholder: 'Please input email',
|
||||
policyPlaceholder: 'Register after checking',
|
||||
diffPwd: 'The two passwords are inconsistent',
|
||||
|
||||
userName: 'Username',
|
||||
password: 'Password',
|
||||
confirmPassword: 'Confirm Password',
|
||||
newPassword: 'New Password',
|
||||
updatePassword: 'Change Password',
|
||||
email: 'Email',
|
||||
emailCode: 'Email code',
|
||||
smsCode: 'SMS code',
|
||||
mobile: 'Mobile',
|
||||
},
|
||||
user: {
|
||||
userList: 'User Table',
|
||||
name: 'Nick Name',
|
||||
status: 'Status',
|
||||
roleName: 'Role Name',
|
||||
department: 'Department',
|
||||
remake: 'Remark',
|
||||
addAccount: 'Add Account',
|
||||
editAccount: 'Edit Account',
|
||||
notAllowAddUser: 'The current tenant has reached the maximum number of users that can be added',
|
||||
// user table list action
|
||||
viewUserDetails: 'View User Details',
|
||||
editUserProfile: 'Edit User Profile',
|
||||
resetUserPassword: 'Reset User Password',
|
||||
confirmPasswordReset: 'Are you sure to reset the password to 123456',
|
||||
deleteUserAccount: 'Delete User Account'
|
||||
},
|
||||
tenant: {
|
||||
tenantList: 'Tenant List',
|
||||
addTenant: 'Add Tenant',
|
||||
editTenant: 'Edit Tenant',
|
||||
deleteTenant: 'Delete Tenant',
|
||||
form: {
|
||||
name: 'Tenant Name',
|
||||
status: 'Status',
|
||||
free: 'Free Tenant',
|
||||
pay: 'Pay Tenant',
|
||||
type: 'Type',
|
||||
remark: 'Remark',
|
||||
userNumLimit: 'User Number Limit',
|
||||
expireTime: 'Expire Time',
|
||||
noticeOne: 'Please default to select the tenant administrator role',
|
||||
noticeTwo: 'If not filled in, the default password is 123456',
|
||||
noticeThree: 'Cannot enter a username with admin',
|
||||
noticeFour: 'After expiration, all users under the tenant are unable to login and use the system',
|
||||
userName: 'Username',
|
||||
password: 'Password',
|
||||
confirmPassword: 'Confirm Password',
|
||||
newPassword: 'New Password',
|
||||
updatePassword: 'Change Password',
|
||||
email: 'Email',
|
||||
emailCode: 'Email code',
|
||||
smsCode: 'SMS code',
|
||||
mobile: 'Mobile',
|
||||
},
|
||||
user: {
|
||||
userList: 'User Table',
|
||||
name: 'Nick Name',
|
||||
status: 'Status',
|
||||
roleName: 'Role Name',
|
||||
department: 'Department',
|
||||
remake: 'Remark',
|
||||
addAccount: 'Add Account',
|
||||
editAccount: 'Edit Account',
|
||||
notAllowAddUser: 'The current tenant has reached the maximum number of users that can be added',
|
||||
// user table list action
|
||||
viewUserDetails: 'View User Details',
|
||||
editUserProfile: 'Edit User Profile',
|
||||
resetUserPassword: 'Reset User Password',
|
||||
confirmPasswordReset: 'Are you sure to reset the password to 123456',
|
||||
deleteUserAccount: 'Delete User Account'
|
||||
},
|
||||
tenant: {
|
||||
tenantList: 'Tenant List',
|
||||
addTenant: 'Add Tenant',
|
||||
editTenant: 'Edit Tenant',
|
||||
deleteTenant: 'Delete Tenant',
|
||||
form: {
|
||||
name: 'Tenant Name',
|
||||
status: 'Status',
|
||||
free: 'Free Tenant',
|
||||
pay: 'Pay Tenant',
|
||||
type: 'Type',
|
||||
remark: 'Remark',
|
||||
userNumLimit: 'User Number Limit',
|
||||
expireTime: 'Expire Time',
|
||||
noticeOne: 'Please default to select the tenant administrator role',
|
||||
noticeTwo: 'If not filled in, the default password is 123456',
|
||||
noticeThree: 'Cannot enter a username with admin',
|
||||
noticeFour: 'After expiration, all users under the tenant are unable to login and use the system',
|
||||
}
|
||||
},
|
||||
table: {
|
||||
add: 'Add Data',
|
||||
edit: 'Edit Data',
|
||||
delete: 'Delete Data',
|
||||
batchDelete: 'Batch Delete Data',
|
||||
exportData: 'Export Data',
|
||||
approve: 'Receipt Approval',
|
||||
reject: 'Receipt Rejection',
|
||||
audited: 'Audited',
|
||||
unaudited: 'Unaudited',
|
||||
viewReceiptDetails: 'View Receipt Detail',
|
||||
confirmDelete: 'Are you sure to delete this data?',
|
||||
confirmExport: 'Confirm Export',
|
||||
confirmExportTextOne: 'Export',
|
||||
confirmExportTextTwo: 'Data loading, please be patient',
|
||||
confirmExportTextThree: 'If you need to export detailed data (which may take a long time), please check the box below.',
|
||||
confirmExportTextFour: 'Need to export detailed data',
|
||||
type: 'Type',
|
||||
subType: 'Sub Type',
|
||||
},
|
||||
modal: {
|
||||
cover: 'Yes',
|
||||
cancel: 'No',
|
||||
},
|
||||
language: {
|
||||
enUS: 'English',
|
||||
zhCN: '简体中文',
|
||||
}
|
||||
},
|
||||
table: {
|
||||
add: 'Add Data',
|
||||
edit: 'Edit Data',
|
||||
delete: 'Delete Data',
|
||||
batchDelete: 'Batch Delete Data',
|
||||
exportData: 'Export Data',
|
||||
approve: 'Receipt Approval',
|
||||
reject: 'Receipt Rejection',
|
||||
audited: 'Audited',
|
||||
unaudited: 'Unaudited',
|
||||
viewReceiptDetails: 'View Receipt Detail',
|
||||
confirmDelete: 'Are you sure to delete this data?',
|
||||
confirmExport: 'Confirm Export',
|
||||
confirmExportTextOne: 'Export',
|
||||
confirmExportTextTwo: 'Data loading, please be patient',
|
||||
confirmExportTextThree: 'If you need to export detailed data (which may take a long time), please check the box below.',
|
||||
confirmExportTextFour: 'Need to export detailed data',
|
||||
type: 'Type',
|
||||
subType: 'Sub Type',
|
||||
},
|
||||
modal: {
|
||||
cover: 'Yes',
|
||||
cancel: 'No',
|
||||
},
|
||||
language: {
|
||||
enUS: 'English',
|
||||
zhCN: '简体中文',
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,174 +1,174 @@
|
|||
export default {
|
||||
api: {
|
||||
operationSuccess: '操作成功',
|
||||
operationFailed: '操作失败',
|
||||
errorTip: '错误提示',
|
||||
successTip: '成功提示',
|
||||
errorMessage: '操作失败,系统异常!',
|
||||
timeoutMessage: '登录超时,请重新登录!',
|
||||
apiTimeoutMessage: '接口请求超时,请刷新页面重试!',
|
||||
apiRequestFailed: '请求出错,请稍候重试',
|
||||
networkException: '网络异常',
|
||||
networkExceptionMsg: '网络异常,请检查您的网络连接是否正常!',
|
||||
refreshBrowser: '网络当前繁忙,请按F5刷新浏览器',
|
||||
api: {
|
||||
operationSuccess: '操作成功',
|
||||
operationFailed: '操作失败',
|
||||
errorTip: '错误提示',
|
||||
successTip: '成功提示',
|
||||
errorMessage: '操作失败,系统异常!',
|
||||
timeoutMessage: '登录超时,请重新登录!',
|
||||
apiTimeoutMessage: '接口请求超时,请刷新页面重试!',
|
||||
apiRequestFailed: '请求出错,请稍候重试',
|
||||
networkException: '网络异常',
|
||||
networkExceptionMsg: '网络异常,请检查您的网络连接是否正常!',
|
||||
refreshBrowser: '网络当前繁忙,请按F5刷新浏览器',
|
||||
|
||||
errMsg401: '用户没有权限(令牌、用户名、密码错误)!',
|
||||
errMsg403: '用户得到授权,但是访问是被禁止的。!',
|
||||
errMsg404: '网络请求错误,未找到该资源!',
|
||||
errMsg405: '网络请求错误,请求方法未允许!',
|
||||
errMsg408: '网络请求超时!',
|
||||
errMsg500: '服务器错误,请联系管理员!',
|
||||
errMsg501: '网络未实现!',
|
||||
errMsg502: '网络错误!',
|
||||
errMsg503: '服务不可用,服务器暂时过载或维护!',
|
||||
errMsg504: '网络超时!',
|
||||
errMsg505: 'http版本不支持该请求!',
|
||||
},
|
||||
app: { logoutTip: '温馨提醒', logoutMessage: '是否确认退出系统?', menuLoading: '菜单加载中...' },
|
||||
errorLog: {
|
||||
tableTitle: '错误日志列表',
|
||||
tableColumnType: '类型',
|
||||
tableColumnDate: '时间',
|
||||
tableColumnFile: '文件',
|
||||
tableColumnMsg: '错误信息',
|
||||
tableColumnStackMsg: 'stack信息',
|
||||
errMsg401: '用户没有权限(令牌、用户名、密码错误)!',
|
||||
errMsg403: '用户得到授权,但是访问是被禁止的。!',
|
||||
errMsg404: '网络请求错误,未找到该资源!',
|
||||
errMsg405: '网络请求错误,请求方法未允许!',
|
||||
errMsg408: '网络请求超时!',
|
||||
errMsg500: '服务器错误,请联系管理员!',
|
||||
errMsg501: '网络未实现!',
|
||||
errMsg502: '网络错误!',
|
||||
errMsg503: '服务不可用,服务器暂时过载或维护!',
|
||||
errMsg504: '网络超时!',
|
||||
errMsg505: 'http版本不支持该请求!',
|
||||
},
|
||||
app: { logoutTip: '温馨提醒', logoutMessage: '是否确认退出系统?', menuLoading: '菜单加载中...' },
|
||||
errorLog: {
|
||||
tableTitle: '错误日志列表',
|
||||
tableColumnType: '类型',
|
||||
tableColumnDate: '时间',
|
||||
tableColumnFile: '文件',
|
||||
tableColumnMsg: '错误信息',
|
||||
tableColumnStackMsg: 'stack信息',
|
||||
|
||||
tableActionDesc: '详情',
|
||||
tableActionDesc: '详情',
|
||||
|
||||
modalTitle: '错误详情',
|
||||
modalTitle: '错误详情',
|
||||
|
||||
fireVueError: '点击触发vue错误',
|
||||
fireResourceError: '点击触发资源加载错误',
|
||||
fireAjaxError: '点击触发ajax错误',
|
||||
fireVueError: '点击触发vue错误',
|
||||
fireResourceError: '点击触发资源加载错误',
|
||||
fireAjaxError: '点击触发ajax错误',
|
||||
|
||||
enableMessage: '只在`/src/settings/projectSetting.ts` 内的useErrorHandle=true时生效.',
|
||||
},
|
||||
exception: {
|
||||
backLogin: '返回登录',
|
||||
backHome: '返回首页',
|
||||
subTitle403: '抱歉,您无权访问此页面。',
|
||||
subTitle404: '抱歉,您访问的页面不存在。',
|
||||
subTitle500: '抱歉,服务器报告错误。',
|
||||
noDataTitle: '当前页无数据',
|
||||
networkErrorTitle: '网络错误',
|
||||
networkErrorSubTitle: '抱歉,您的网络连接已断开,请检查您的网络!',
|
||||
},
|
||||
lock: {
|
||||
unlock: '点击解锁',
|
||||
alert: '锁屏密码错误',
|
||||
backToLogin: '返回登录',
|
||||
entry: '进入系统',
|
||||
placeholder: '请输入锁屏密码或者用户密码',
|
||||
},
|
||||
login: {
|
||||
captcha: '验证码',
|
||||
backSignIn: '返回',
|
||||
signInFormTitle: '登录',
|
||||
mobileSignInFormTitle: '手机登录',
|
||||
qrSignInFormTitle: '扫码登录',
|
||||
emailFormTitle: '邮箱登录',
|
||||
signUpFormTitle: '注册租户',
|
||||
forgetFormTitle: '重置密码',
|
||||
enableMessage: '只在`/src/settings/projectSetting.ts` 内的useErrorHandle=true时生效.',
|
||||
},
|
||||
exception: {
|
||||
backLogin: '返回登录',
|
||||
backHome: '返回首页',
|
||||
subTitle403: '抱歉,您无权访问此页面。',
|
||||
subTitle404: '抱歉,您访问的页面不存在。',
|
||||
subTitle500: '抱歉,服务器报告错误。',
|
||||
noDataTitle: '当前页无数据',
|
||||
networkErrorTitle: '网络错误',
|
||||
networkErrorSubTitle: '抱歉,您的网络连接已断开,请检查您的网络!',
|
||||
},
|
||||
lock: {
|
||||
unlock: '点击解锁',
|
||||
alert: '锁屏密码错误',
|
||||
backToLogin: '返回登录',
|
||||
entry: '进入系统',
|
||||
placeholder: '请输入锁屏密码或者用户密码',
|
||||
},
|
||||
login: {
|
||||
captcha: '验证码',
|
||||
backSignIn: '返回',
|
||||
signInFormTitle: '登录',
|
||||
mobileSignInFormTitle: '手机登录',
|
||||
qrSignInFormTitle: '扫码登录',
|
||||
emailFormTitle: '邮箱登录',
|
||||
signUpFormTitle: '注册租户',
|
||||
forgetFormTitle: '重置密码',
|
||||
|
||||
signInTitle: '为企业提供下一代智能ERP系统软件',
|
||||
signInDesc: '© 2023-2033 Wan Sen ERP - All Right Reserved 版权所有',
|
||||
policy: '我同意,《万森ERP系统》隐私政策',
|
||||
scanSign: `扫码后点击"确认",即可完成登录`,
|
||||
signInTitle: '为企业提供下一代智能ERP系统软件',
|
||||
signInDesc: '© 2023-2033 曲和科技 - All Right Reserved 版权所有',
|
||||
policy: '我同意,《万森ERP系统》隐私政策',
|
||||
scanSign: `扫码后点击"确认",即可完成登录`,
|
||||
|
||||
loginButton: '登录',
|
||||
registerButton: '注册租户',
|
||||
rememberMe: '记住我',
|
||||
forgetPassword: '忘记密码?',
|
||||
otherSignIn: '其他登录方式',
|
||||
loginButton: '登录',
|
||||
registerButton: '注册租户',
|
||||
rememberMe: '记住我',
|
||||
forgetPassword: '忘记密码?',
|
||||
otherSignIn: '其他登录方式',
|
||||
|
||||
// notify
|
||||
loginSuccessTitle: '登录成功',
|
||||
loginSuccessDesc: '欢迎回来',
|
||||
// notify
|
||||
loginSuccessTitle: '登录成功',
|
||||
loginSuccessDesc: '欢迎回来',
|
||||
|
||||
// placeholder
|
||||
accountPlaceholder: '请输入账号',
|
||||
passwordPlaceholder: '请输入密码',
|
||||
captchaPlaceholder: '请输入验证码',
|
||||
smsPlaceholder: '请输入验证码',
|
||||
mobilePlaceholder: '请输入手机号码',
|
||||
emailPlaceholder: '请输入邮箱地址',
|
||||
policyPlaceholder: '勾选后才能注册',
|
||||
diffPwd: '两次输入密码不一致',
|
||||
correctMobilePlaceholder: '请输入正确的手机号码',
|
||||
correctEmailPlaceholder: '请输入正确的邮箱地址',
|
||||
userName: '账号',
|
||||
password: '密码',
|
||||
confirmPassword: '确认密码',
|
||||
newPassword: '新密码',
|
||||
updatePassword: '修改密码',
|
||||
email: '邮箱',
|
||||
emailCode: '邮箱验证码',
|
||||
smsCode: '短信验证码',
|
||||
mobile: '手机号码',
|
||||
},
|
||||
user: {
|
||||
userList: '用户列表',
|
||||
name: '昵称',
|
||||
status: '用户状态',
|
||||
roleName: '角色',
|
||||
department: '所属部门',
|
||||
remake: '备注',
|
||||
addAccount: '新增账户',
|
||||
editAccount: '编辑账户',
|
||||
notAllowAddUser: '当前租户可添加的用户数量已达上限',
|
||||
// 用户数据表格操作
|
||||
viewUserDetails: '查看用户详情',
|
||||
editUserProfile: '编辑用户资料',
|
||||
resetUserPassword: '重置密码',
|
||||
confirmPasswordReset: '确定重置密码为123456吗',
|
||||
deleteUserAccount: '删除账号'
|
||||
},
|
||||
tenant: {
|
||||
tenantList: '租户列表',
|
||||
addTenant: '新增租户',
|
||||
editTenant: '编辑租户',
|
||||
deleteTenant: '删除租户',
|
||||
form: {
|
||||
name: '租户名称',
|
||||
status: '租户状态',
|
||||
free: '免费租户',
|
||||
pay: '付费租户',
|
||||
type: '租户类型',
|
||||
remark: '备注',
|
||||
userNumLimit: '用户数量限制',
|
||||
expireTime: '到期时间',
|
||||
noticeOne: '请默认选择租户管理员角色',
|
||||
noticeTwo: '如果不填写,则默认密码为123456',
|
||||
noticeThree: '不能输入带有admin的用户名',
|
||||
noticeFour: '到期后租户下的所有用户无法登录使用系统',
|
||||
// placeholder
|
||||
accountPlaceholder: '请输入账号',
|
||||
passwordPlaceholder: '请输入密码',
|
||||
captchaPlaceholder: '请输入验证码',
|
||||
smsPlaceholder: '请输入验证码',
|
||||
mobilePlaceholder: '请输入手机号码',
|
||||
emailPlaceholder: '请输入邮箱地址',
|
||||
policyPlaceholder: '勾选后才能注册',
|
||||
diffPwd: '两次输入密码不一致',
|
||||
correctMobilePlaceholder: '请输入正确的手机号码',
|
||||
correctEmailPlaceholder: '请输入正确的邮箱地址',
|
||||
userName: '账号',
|
||||
password: '密码',
|
||||
confirmPassword: '确认密码',
|
||||
newPassword: '新密码',
|
||||
updatePassword: '修改密码',
|
||||
email: '邮箱',
|
||||
emailCode: '邮箱验证码',
|
||||
smsCode: '短信验证码',
|
||||
mobile: '手机号码',
|
||||
},
|
||||
user: {
|
||||
userList: '用户列表',
|
||||
name: '昵称',
|
||||
status: '用户状态',
|
||||
roleName: '角色',
|
||||
department: '所属部门',
|
||||
remake: '备注',
|
||||
addAccount: '新增账户',
|
||||
editAccount: '编辑账户',
|
||||
notAllowAddUser: '当前租户可添加的用户数量已达上限',
|
||||
// 用户数据表格操作
|
||||
viewUserDetails: '查看用户详情',
|
||||
editUserProfile: '编辑用户资料',
|
||||
resetUserPassword: '重置密码',
|
||||
confirmPasswordReset: '确定重置密码为123456吗',
|
||||
deleteUserAccount: '删除账号'
|
||||
},
|
||||
tenant: {
|
||||
tenantList: '租户列表',
|
||||
addTenant: '新增租户',
|
||||
editTenant: '编辑租户',
|
||||
deleteTenant: '删除租户',
|
||||
form: {
|
||||
name: '租户名称',
|
||||
status: '租户状态',
|
||||
free: '免费租户',
|
||||
pay: '付费租户',
|
||||
type: '租户类型',
|
||||
remark: '备注',
|
||||
userNumLimit: '用户数量限制',
|
||||
expireTime: '到期时间',
|
||||
noticeOne: '请默认选择租户管理员角色',
|
||||
noticeTwo: '如果不填写,则默认密码为123456',
|
||||
noticeThree: '不能输入带有admin的用户名',
|
||||
noticeFour: '到期后租户下的所有用户无法登录使用系统',
|
||||
}
|
||||
},
|
||||
table: {
|
||||
add: '新增',
|
||||
edit: '编辑',
|
||||
delete: '删除',
|
||||
batchDelete: '批量删除',
|
||||
exportData: '导出数据',
|
||||
approve: '审核',
|
||||
reject: '驳回',
|
||||
audited: '已审核',
|
||||
unaudited: '未审核',
|
||||
viewReceiptDetails: '查看单据详情',
|
||||
confirmDelete: '是否确认删除数据?',
|
||||
confirmExport: '确认导出',
|
||||
confirmExportTextOne: '导出',
|
||||
confirmExportTextTwo: '数据加载中,请耐心等待。',
|
||||
confirmExportTextThree: '如果您需要导出详细数据(可能需要很长时间),请勾选下面的框。',
|
||||
confirmExportTextFour: '需要导出详细数据',
|
||||
type: '类型',
|
||||
subType: '子类型',
|
||||
},
|
||||
modal: {
|
||||
cover: '确认',
|
||||
cancel: '取消',
|
||||
},
|
||||
language: {
|
||||
enUS: 'English',
|
||||
zhCN: '简体中文',
|
||||
}
|
||||
},
|
||||
table: {
|
||||
add: '新增',
|
||||
edit: '编辑',
|
||||
delete: '删除',
|
||||
batchDelete: '批量删除',
|
||||
exportData: '导出数据',
|
||||
approve: '审核',
|
||||
reject: '驳回',
|
||||
audited: '已审核',
|
||||
unaudited: '未审核',
|
||||
viewReceiptDetails: '查看单据详情',
|
||||
confirmDelete: '是否确认删除数据?',
|
||||
confirmExport: '确认导出',
|
||||
confirmExportTextOne: '导出',
|
||||
confirmExportTextTwo: '数据加载中,请耐心等待。',
|
||||
confirmExportTextThree: '如果您需要导出详细数据(可能需要很长时间),请勾选下面的框。',
|
||||
confirmExportTextFour: '需要导出详细数据',
|
||||
type: '类型',
|
||||
subType: '子类型',
|
||||
},
|
||||
modal: {
|
||||
cover: '确认',
|
||||
cancel: '取消',
|
||||
},
|
||||
language: {
|
||||
enUS: 'English',
|
||||
zhCN: '简体中文',
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,144 +1,144 @@
|
|||
interface GroupItem {
|
||||
title: string;
|
||||
icon: string;
|
||||
color: string;
|
||||
desc: string;
|
||||
date: string;
|
||||
group: string;
|
||||
title: string;
|
||||
icon: string;
|
||||
color: string;
|
||||
desc: string;
|
||||
date: string;
|
||||
group: string;
|
||||
}
|
||||
|
||||
interface NavItem {
|
||||
title: string;
|
||||
icon: string;
|
||||
color: string;
|
||||
title: string;
|
||||
icon: string;
|
||||
color: string;
|
||||
}
|
||||
|
||||
interface DynamicInfoItem {
|
||||
avatar: string;
|
||||
name: string;
|
||||
date: string;
|
||||
desc: string;
|
||||
avatar: string;
|
||||
name: string;
|
||||
date: string;
|
||||
desc: string;
|
||||
}
|
||||
|
||||
export const navItems: NavItem[] = [
|
||||
{
|
||||
title: '首页',
|
||||
icon: 'ion:home-outline',
|
||||
color: '#1fdaca',
|
||||
},
|
||||
{
|
||||
title: '仪表盘',
|
||||
icon: 'ion:grid-outline',
|
||||
color: '#bf0c2c',
|
||||
},
|
||||
{
|
||||
title: 'OA内部办公系统',
|
||||
icon: 'ion:layers-outline',
|
||||
color: '#e18525',
|
||||
},
|
||||
{
|
||||
title: '系统管理',
|
||||
icon: 'ion:settings-outline',
|
||||
color: '#3fb27f',
|
||||
},
|
||||
{
|
||||
title: '权限管理',
|
||||
icon: 'ion:key-outline',
|
||||
color: '#4daf1bc9',
|
||||
},
|
||||
{
|
||||
title: '报表查询',
|
||||
icon: 'ion:bar-chart-outline',
|
||||
color: '#00d8ff',
|
||||
},
|
||||
{
|
||||
title: '首页',
|
||||
icon: 'ion:home-outline',
|
||||
color: '#1fdaca',
|
||||
},
|
||||
{
|
||||
title: '仪表盘',
|
||||
icon: 'ion:grid-outline',
|
||||
color: '#bf0c2c',
|
||||
},
|
||||
{
|
||||
title: 'OA办公系统',
|
||||
icon: 'ion:layers-outline',
|
||||
color: '#e18525',
|
||||
},
|
||||
{
|
||||
title: '系统管理',
|
||||
icon: 'ion:settings-outline',
|
||||
color: '#3fb27f',
|
||||
},
|
||||
{
|
||||
title: '权限管理',
|
||||
icon: 'ion:key-outline',
|
||||
color: '#4daf1bc9',
|
||||
},
|
||||
{
|
||||
title: '报表查询',
|
||||
icon: 'ion:bar-chart-outline',
|
||||
color: '#00d8ff',
|
||||
},
|
||||
];
|
||||
|
||||
export const dynamicInfoItems: DynamicInfoItem[] = [
|
||||
{
|
||||
avatar: 'dynamic-avatar-1|svg',
|
||||
name: '小李',
|
||||
date: '刚刚',
|
||||
desc: `在 <a>A仓库</a> 采购了100个零件 <a>H3C</a>`,
|
||||
},
|
||||
{
|
||||
avatar: 'dynamic-avatar-2|svg',
|
||||
name: '艾文',
|
||||
date: '1个小时前',
|
||||
desc: `关注了 <a>小李</a> `,
|
||||
},
|
||||
{
|
||||
avatar: 'dynamic-avatar-3|svg',
|
||||
name: '克里斯',
|
||||
date: '1天前',
|
||||
desc: `发布了 <a>本月采购物料表</a> `,
|
||||
},
|
||||
{
|
||||
avatar: 'dynamic-avatar-4|svg',
|
||||
name: '赵伟',
|
||||
date: '2天前',
|
||||
desc: `发表文章 <a>企业如何集成GPT微调模型配合ERP使用</a> `,
|
||||
},
|
||||
{
|
||||
avatar: 'dynamic-avatar-5|svg',
|
||||
name: '皮特',
|
||||
date: '3天前',
|
||||
desc: `回复了 <a>赵伟</a> 的问题 <a>如何让用户能直接微调模型?</a>`,
|
||||
},
|
||||
{
|
||||
avatar: 'dynamic-avatar-6|svg',
|
||||
name: '杰克',
|
||||
date: '1周前',
|
||||
desc: `添加了会员 <a>检测公司的会员</a> `,
|
||||
},
|
||||
{
|
||||
avatar: 'dynamic-avatar-1|svg',
|
||||
name: '小李',
|
||||
date: '刚刚',
|
||||
desc: `在 <a>A仓库</a> 采购了100个零件 <a>H3C</a>`,
|
||||
},
|
||||
{
|
||||
avatar: 'dynamic-avatar-2|svg',
|
||||
name: '艾文',
|
||||
date: '1个小时前',
|
||||
desc: `关注了 <a>小李</a> `,
|
||||
},
|
||||
{
|
||||
avatar: 'dynamic-avatar-3|svg',
|
||||
name: '克里斯',
|
||||
date: '1天前',
|
||||
desc: `发布了 <a>本月采购物料表</a> `,
|
||||
},
|
||||
{
|
||||
avatar: 'dynamic-avatar-4|svg',
|
||||
name: '赵伟',
|
||||
date: '2天前',
|
||||
desc: `发表文章 <a>企业如何集成GPT微调模型配合ERP使用</a> `,
|
||||
},
|
||||
{
|
||||
avatar: 'dynamic-avatar-5|svg',
|
||||
name: '皮特',
|
||||
date: '3天前',
|
||||
desc: `回复了 <a>赵伟</a> 的问题 <a>如何让用户能直接微调模型?</a>`,
|
||||
},
|
||||
{
|
||||
avatar: 'dynamic-avatar-6|svg',
|
||||
name: '杰克',
|
||||
date: '1周前',
|
||||
desc: `添加了会员 <a>检测公司的会员</a> `,
|
||||
},
|
||||
];
|
||||
|
||||
export const groupItems: GroupItem[] = [
|
||||
{
|
||||
title: 'WanSen ERP Core',
|
||||
icon: 'carbon:logo-github',
|
||||
color: '',
|
||||
desc: 'ERP系统的API',
|
||||
group: '万森智能开源组',
|
||||
date: '2023-09-28',
|
||||
},
|
||||
{
|
||||
title: 'WanSen ERP',
|
||||
icon: 'ion:logo-vue',
|
||||
color: '#3fb27f',
|
||||
desc: '该项目使用了Vue3+Vite+Ant-Design',
|
||||
group: '前端开发小组',
|
||||
date: '2023-09-28',
|
||||
},
|
||||
{
|
||||
title: 'Html 5',
|
||||
icon: 'ion:logo-html5',
|
||||
color: '#e18525',
|
||||
desc: '该项目也使用了HTML5',
|
||||
group: '前端开发小组',
|
||||
date: '2023-10-01',
|
||||
},
|
||||
{
|
||||
title: 'Angular',
|
||||
icon: 'ion:logo-angular',
|
||||
color: '#bf0c2c',
|
||||
desc: '设计新的页面交互',
|
||||
group: 'UI组',
|
||||
date: '2023-10-01',
|
||||
},
|
||||
{
|
||||
title: 'React',
|
||||
icon: 'bx:bxl-react',
|
||||
color: '#00d8ff',
|
||||
desc: '下一步计划支持React重构',
|
||||
group: '前端开发小组',
|
||||
date: '2023-10-02',
|
||||
},
|
||||
{
|
||||
title: 'JavaScript',
|
||||
icon: 'ion:logo-javascript',
|
||||
color: '#EBD94E',
|
||||
desc: '我们也可使用javascript进行重写',
|
||||
group: '前端开发小组',
|
||||
date: '2023-10-03',
|
||||
},
|
||||
{
|
||||
title: 'WanSen ERP Core',
|
||||
icon: 'carbon:logo-github',
|
||||
color: '',
|
||||
desc: 'ERP系统的API',
|
||||
group: '万森智能开源组',
|
||||
date: '2023-09-28',
|
||||
},
|
||||
{
|
||||
title: 'WanSen ERP',
|
||||
icon: 'ion:logo-vue',
|
||||
color: '#3fb27f',
|
||||
desc: '该项目使用了Vue3+Vite+Ant-Design',
|
||||
group: '前端开发小组',
|
||||
date: '2023-09-28',
|
||||
},
|
||||
{
|
||||
title: 'Html 5',
|
||||
icon: 'ion:logo-html5',
|
||||
color: '#e18525',
|
||||
desc: '该项目也使用了HTML5',
|
||||
group: '前端开发小组',
|
||||
date: '2023-10-01',
|
||||
},
|
||||
{
|
||||
title: 'Angular',
|
||||
icon: 'ion:logo-angular',
|
||||
color: '#bf0c2c',
|
||||
desc: '设计新的页面交互',
|
||||
group: 'UI组',
|
||||
date: '2023-10-01',
|
||||
},
|
||||
{
|
||||
title: 'React',
|
||||
icon: 'bx:bxl-react',
|
||||
color: '#00d8ff',
|
||||
desc: '下一步计划支持React重构',
|
||||
group: '前端开发小组',
|
||||
date: '2023-10-02',
|
||||
},
|
||||
{
|
||||
title: 'JavaScript',
|
||||
icon: 'ion:logo-javascript',
|
||||
color: '#EBD94E',
|
||||
desc: '我们也可使用javascript进行重写',
|
||||
group: '前端开发小组',
|
||||
date: '2023-10-03',
|
||||
},
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
<template>
|
||||
<PageWrapper>
|
||||
<template #headerContent> <WorkbenchHeader /> </template>
|
||||
<template #headerContent><WorkbenchHeader /></template>
|
||||
<div class="lg:flex">
|
||||
<div class="lg:w-7/10 w-full !mr-4 enter-y">
|
||||
<ProjectCard :loading="loading" class="enter-y" />
|
||||
<!-- <ProjectCard :loading="loading" class="enter-y" /> -->
|
||||
<DynamicInfo :loading="loading" class="!my-4 enter-y" />
|
||||
</div>
|
||||
<div class="lg:w-3/10 w-full enter-y">
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
<div class="flex items-center absolute right-4 top-4">
|
||||
<AppDarkModeToggle class="enter-x mr-2" v-if="!sessionTimeout" />
|
||||
<AppLocalePicker
|
||||
class="text-white enter-x xl:text-gray-600"
|
||||
:show-text="false"
|
||||
v-if="!sessionTimeout && showLocale"
|
||||
class="text-white enter-x xl:text-gray-600"
|
||||
:show-text="false"
|
||||
v-if="!sessionTimeout && showLocale"
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
|
@ -19,12 +19,12 @@
|
|||
<AppLogo class="-enter-x" />
|
||||
<div class="my-auto">
|
||||
<img
|
||||
:alt="title"
|
||||
src="../../../assets/svg/login-box-bg.svg"
|
||||
class="w-1/2 -mt-16 -enter-x"
|
||||
:alt="title"
|
||||
src="../../../assets/svg/login-box-bg.svg"
|
||||
class="w-1/2 -mt-16 -enter-x"
|
||||
/>
|
||||
<div class="mt-10 font-medium text-white -enter-x">
|
||||
<span class="inline-block mt-4 text-3xl"> {{ t('sys.login.signInTitle') }}</span>
|
||||
<span class="inline-block mt-4 text-3xl">{{ t('sys.login.signInTitle') }}</span>
|
||||
</div>
|
||||
<div class="mt-5 font-normal text-white dark:text-gray-500 -enter-x">
|
||||
{{ t('sys.login.signInDesc') }}
|
||||
|
|
@ -33,8 +33,8 @@
|
|||
</div>
|
||||
<div class="flex w-full h-full py-5 xl:h-auto xl:py-0 xl:my-0 xl:w-6/12">
|
||||
<div
|
||||
:class="`${prefixCls}-form`"
|
||||
class="relative w-full px-5 py-8 mx-auto my-auto rounded-md shadow-md xl:ml-16 xl:bg-transparent sm:px-8 xl:p-4 xl:shadow-none sm:w-3/4 lg:w-2/4 xl:w-auto enter-x"
|
||||
:class="`${prefixCls}-form`"
|
||||
class="relative w-full px-5 py-8 mx-auto my-auto rounded-md shadow-md xl:ml-16 xl:bg-transparent sm:px-8 xl:p-4 xl:shadow-none sm:w-3/4 lg:w-2/4 xl:w-auto enter-x"
|
||||
>
|
||||
<LoginForm />
|
||||
<ForgetPasswordForm />
|
||||
|
|
@ -49,175 +49,175 @@
|
|||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { computed } from 'vue';
|
||||
import { AppLogo, AppLocalePicker, AppDarkModeToggle } from '/@/components/Application';
|
||||
import LoginForm from './LoginForm.vue';
|
||||
import ForgetPasswordForm from './ForgetPasswordForm.vue';
|
||||
import RegisterForm from './RegisterForm.vue';
|
||||
import MobileForm from './MobileForm.vue';
|
||||
import QrCodeForm from './QrCodeForm.vue';
|
||||
import { useGlobSetting } from '/@/hooks/setting';
|
||||
import { useI18n } from '/@/hooks/web/useI18n';
|
||||
import { useDesign } from '/@/hooks/web/useDesign';
|
||||
import { useLocaleStore } from '/@/store/modules/locale';
|
||||
import EmailForm from "@/views/sys/login/EmailForm.vue";
|
||||
import { computed } from 'vue';
|
||||
import { AppLogo, AppLocalePicker, AppDarkModeToggle } from '/@/components/Application';
|
||||
import LoginForm from './LoginForm.vue';
|
||||
import ForgetPasswordForm from './ForgetPasswordForm.vue';
|
||||
import RegisterForm from './RegisterForm.vue';
|
||||
import MobileForm from './MobileForm.vue';
|
||||
import QrCodeForm from './QrCodeForm.vue';
|
||||
import { useGlobSetting } from '/@/hooks/setting';
|
||||
import { useI18n } from '/@/hooks/web/useI18n';
|
||||
import { useDesign } from '/@/hooks/web/useDesign';
|
||||
import { useLocaleStore } from '/@/store/modules/locale';
|
||||
import EmailForm from '@/views/sys/login/EmailForm.vue';
|
||||
|
||||
defineProps({
|
||||
sessionTimeout: {
|
||||
type: Boolean,
|
||||
},
|
||||
});
|
||||
defineProps({
|
||||
sessionTimeout: {
|
||||
type: Boolean,
|
||||
},
|
||||
});
|
||||
|
||||
const globSetting = useGlobSetting();
|
||||
const { prefixCls } = useDesign('login');
|
||||
const { t } = useI18n();
|
||||
const localeStore = useLocaleStore();
|
||||
const showLocale = localeStore.getShowPicker;
|
||||
const title = computed(() => globSetting?.title ?? '');
|
||||
const globSetting = useGlobSetting();
|
||||
const { prefixCls } = useDesign('login');
|
||||
const { t } = useI18n();
|
||||
const localeStore = useLocaleStore();
|
||||
const showLocale = localeStore.getShowPicker;
|
||||
const title = computed(() => globSetting?.title ?? '');
|
||||
</script>
|
||||
<style lang="less">
|
||||
@prefix-cls: ~'@{namespace}-login';
|
||||
@logo-prefix-cls: ~'@{namespace}-app-logo';
|
||||
@countdown-prefix-cls: ~'@{namespace}-countdown-input';
|
||||
@dark-bg: #293146;
|
||||
@prefix-cls: ~'@{namespace}-login';
|
||||
@logo-prefix-cls: ~'@{namespace}-app-logo';
|
||||
@countdown-prefix-cls: ~'@{namespace}-countdown-input';
|
||||
@dark-bg: #293146;
|
||||
|
||||
html[data-theme='dark'] {
|
||||
.@{prefix-cls} {
|
||||
background-color: @dark-bg;
|
||||
|
||||
&::before {
|
||||
background-image: url('/@/assets/svg/login-bg-dark.svg');
|
||||
}
|
||||
|
||||
.ant-input,
|
||||
.ant-input-password {
|
||||
background-color: #232a3b;
|
||||
}
|
||||
|
||||
.ant-btn:not(.ant-btn-link):not(.ant-btn-primary) {
|
||||
border: 1px solid #4a5569;
|
||||
}
|
||||
|
||||
&-form {
|
||||
background: transparent !important;
|
||||
}
|
||||
|
||||
.app-iconify {
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
input.fix-auto-fill,
|
||||
.fix-auto-fill input {
|
||||
-webkit-text-fill-color: #c9d1d9 !important;
|
||||
box-shadow: inherit !important;
|
||||
}
|
||||
}
|
||||
|
||||
html[data-theme='dark'] {
|
||||
.@{prefix-cls} {
|
||||
background-color: @dark-bg;
|
||||
|
||||
&::before {
|
||||
background-image: url('/@/assets/svg/login-bg-dark.svg');
|
||||
}
|
||||
|
||||
.ant-input,
|
||||
.ant-input-password {
|
||||
background-color: #232a3b;
|
||||
}
|
||||
|
||||
.ant-btn:not(.ant-btn-link):not(.ant-btn-primary) {
|
||||
border: 1px solid #4a5569;
|
||||
}
|
||||
|
||||
&-form {
|
||||
background: transparent !important;
|
||||
}
|
||||
|
||||
.app-iconify {
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
input.fix-auto-fill,
|
||||
.fix-auto-fill input {
|
||||
-webkit-text-fill-color: #c9d1d9 !important;
|
||||
box-shadow: inherit !important;
|
||||
}
|
||||
}
|
||||
|
||||
.@{prefix-cls} {
|
||||
min-height: 100%;
|
||||
overflow: hidden;
|
||||
background-color: #fff;
|
||||
color: @text-color;
|
||||
|
||||
@media (max-width: @screen-xl) {
|
||||
background-color: #293146;
|
||||
|
||||
.@{prefix-cls}-form {
|
||||
background-color: #fff;
|
||||
color: @text-color;
|
||||
}
|
||||
}
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin-left: -48%;
|
||||
background-image: url('/@/assets/svg/login-bg.svg');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 100%;
|
||||
background-size: auto 100%;
|
||||
min-height: 100%;
|
||||
overflow: hidden;
|
||||
background-color: #fff;
|
||||
color: @text-color;
|
||||
|
||||
@media (max-width: @screen-xl) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
background-color: #293146;
|
||||
|
||||
.@{logo-prefix-cls} {
|
||||
position: absolute;
|
||||
top: 12px;
|
||||
height: 30px;
|
||||
|
||||
&__title {
|
||||
color: #fff;
|
||||
font-size: 16px;
|
||||
.@{prefix-cls}-form {
|
||||
background-color: #fff;
|
||||
color: @text-color;
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
width: 32px;
|
||||
}
|
||||
}
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin-left: -48%;
|
||||
background-image: url('/@/assets/svg/login-bg.svg');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 100%;
|
||||
background-size: auto 100%;
|
||||
|
||||
@media (max-width: @screen-xl) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.container {
|
||||
.@{logo-prefix-cls} {
|
||||
display: flex;
|
||||
width: 60%;
|
||||
height: 80px;
|
||||
position: absolute;
|
||||
top: 25px;
|
||||
height: 30px;
|
||||
|
||||
&__title {
|
||||
color: #fff;
|
||||
font-size: 24px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 48px;
|
||||
width: 65px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&-sign-in-way {
|
||||
.anticon {
|
||||
color: #888;
|
||||
font-size: 22px;
|
||||
cursor: pointer;
|
||||
.container {
|
||||
.@{logo-prefix-cls} {
|
||||
display: flex;
|
||||
width: 60%;
|
||||
height: 80px;
|
||||
|
||||
&:hover {
|
||||
color: @primary-color;
|
||||
&__title {
|
||||
color: #fff;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 65px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
input:not([type='checkbox']) {
|
||||
min-width: 360px;
|
||||
&-sign-in-way {
|
||||
.anticon {
|
||||
color: #888;
|
||||
font-size: 22px;
|
||||
cursor: pointer;
|
||||
|
||||
@media (max-width: @screen-xl) {
|
||||
min-width: 320px;
|
||||
&:hover {
|
||||
color: @primary-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: @screen-lg) {
|
||||
min-width: 260px;
|
||||
input:not([type='checkbox']) {
|
||||
min-width: 360px;
|
||||
|
||||
@media (max-width: @screen-xl) {
|
||||
min-width: 320px;
|
||||
}
|
||||
|
||||
@media (max-width: @screen-lg) {
|
||||
min-width: 260px;
|
||||
}
|
||||
|
||||
@media (max-width: @screen-md) {
|
||||
min-width: 240px;
|
||||
}
|
||||
|
||||
@media (max-width: @screen-sm) {
|
||||
min-width: 160px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: @screen-md) {
|
||||
min-width: 240px;
|
||||
.@{countdown-prefix-cls} input {
|
||||
min-width: unset;
|
||||
}
|
||||
|
||||
@media (max-width: @screen-sm) {
|
||||
min-width: 160px;
|
||||
.ant-divider-inner-text {
|
||||
color: @text-color-secondary;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.@{countdown-prefix-cls} input {
|
||||
min-width: unset;
|
||||
}
|
||||
|
||||
.ant-divider-inner-text {
|
||||
color: @text-color-secondary;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -1,31 +1,33 @@
|
|||
import { defineApplicationConfig } from '@vben/vite-config';
|
||||
|
||||
export default defineApplicationConfig({
|
||||
overrides: {
|
||||
optimizeDeps: {
|
||||
include: [
|
||||
'echarts/core',
|
||||
'echarts/charts',
|
||||
'echarts/components',
|
||||
'echarts/renderers',
|
||||
'qrcode',
|
||||
'@iconify/iconify',
|
||||
'ant-design-vue/es/locale/zh_CN',
|
||||
'ant-design-vue/es/locale/en_US',
|
||||
],
|
||||
},
|
||||
server: {
|
||||
port: 3000,
|
||||
proxy: {
|
||||
'/erp-api': {
|
||||
target: 'http://localhost:8088',
|
||||
changeOrigin: true,
|
||||
ws: true,
|
||||
// rewrite: (path) => path.replace(/^\/api/, ''),
|
||||
// only https
|
||||
overrides: {
|
||||
optimizeDeps: {
|
||||
include: [
|
||||
'echarts/core',
|
||||
'echarts/charts',
|
||||
'echarts/components',
|
||||
'echarts/renderers',
|
||||
'qrcode',
|
||||
'@iconify/iconify',
|
||||
'ant-design-vue/es/locale/zh_CN',
|
||||
'ant-design-vue/es/locale/en_US',
|
||||
],
|
||||
},
|
||||
server: {
|
||||
port: 3000,
|
||||
proxy: {
|
||||
'/erp-api': {
|
||||
target: 'http://58.49.150.163:8088',
|
||||
// target: 'https://eairp.cn',
|
||||
|
||||
}
|
||||
},
|
||||
changeOrigin: true,
|
||||
ws: true,
|
||||
// rewrite: (path) => path.replace(/^\/api/, ''),
|
||||
// only https
|
||||
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
|
|
|
|||