物业代码生成

This commit is contained in:
2025-06-18 11:03:42 +08:00
commit 1262d4c745
1881 changed files with 249599 additions and 0 deletions

19
packages/styles/README.md Normal file
View File

@@ -0,0 +1,19 @@
# @vben/styles
用于多个 `app` 公用的样式文件,继承了 `@vben-core/design` 的所有能力。业务上有通用的样式文件可以放在这里。
## 用法
### 添加依赖
```bash
# 进入目标应用目录,例如 apps/xxxx-app
# cd apps/xxxx-app
pnpm add @vben/styles
```
### 使用
```ts
import '@vben/styles';
```

View File

@@ -0,0 +1,34 @@
{
"name": "@vben/styles",
"version": "5.5.6",
"homepage": "https://github.com/vbenjs/vue-vben-admin",
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
"repository": {
"type": "git",
"url": "git+https://github.com/vbenjs/vue-vben-admin.git",
"directory": "packages/styles"
},
"license": "MIT",
"type": "module",
"exports": {
".": {
"types": "./src/index.ts",
"default": "./src/index.ts"
},
"./antd": {
"default": "./src/antd/index.css"
},
"./ele": {
"default": "./src/ele/index.css"
},
"./naive": {
"default": "./src/naive/index.css"
},
"./global": {
"default": "./src/global/index.scss"
}
},
"dependencies": {
"@vben-core/design": "workspace:*"
}
}

View File

@@ -0,0 +1,133 @@
/* ant-design-vue 组件库的一些样式重置 */
.ant-app {
width: 100%;
height: 100%;
overscroll-behavior: none;
color: inherit;
}
.ant-btn {
.anticon {
display: inline-flex;
}
/* * 修复按钮添加图标时的位置问题 */
> svg {
display: inline-block;
}
> svg + span {
margin-inline-start: 6px;
}
}
.ant-tag {
> svg {
display: inline-block;
}
> svg + span {
margin-inline-start: 4px;
}
}
.ant-message-notice-content,
.ant-notification-notice {
@apply dark:border-border/60 dark:border;
}
.form-valid-error {
/** select 选择器的样式 */
.ant-select:not(.valid-success) .ant-select-selector:not(.valid-success) {
border-color: hsl(var(--destructive)) !important;
}
.ant-select-focused .ant-select-selector {
box-shadow: 0 0 0 2px rgb(255 38 5 / 6%) !important;
}
/** 数字输入框样式 */
.ant-input-number-focused {
box-shadow: 0 0 0 2px rgb(255 38 5 / 6%);
}
/** 密码输入框样式 */
.ant-input-affix-wrapper:hover {
border-color: hsl(var(--destructive));
box-shadow: 0 0 0 2px rgb(255 38 5 / 6%);
}
.ant-input:not(.valid-success) {
border-color: hsl(var(--destructive)) !important;
}
}
/** 区间选择器下面来回切换时的样式 */
.ant-app .form-valid-error .ant-picker-active-bar {
background-color: hsl(var(--destructive));
}
/** 时间选择器的样式 */
.ant-app .form-valid-error .ant-picker-focused {
box-shadow: 0 0 0 2px rgb(255 38 5 / 6%);
}
/** 前后置小圆点样式 */
.dot-before-common {
@apply before:relative before:top-[-2px] before:mr-[5px] before:inline-block before:size-[6px] before:rounded-full before:content-[''];
}
.dot-before-red {
@apply dot-before-common before:bg-red-500;
}
.dot-before-green {
@apply dot-before-common before:bg-green-500;
}
/**
vxe表格右上角toolbar元素之间的间距
*/
.vxe-button + .vxe-button.type--button {
margin-left: 8px !important;
}
/**
vxe默认圆角
*/
html {
--vxe-ui-border-radius: 8px !important;
}
/**
vxe表格loading 只加载表格 不加载上面的表单
*/
.vxe-grid.is--loading::before {
content: none !important;
}
/**
自定义success按钮样式
ghost按钮专用!
*/
.btn-success {
color: hsl(var(--success)) !important;
border-color: hsl(var(--success)) !important;
}
.btn-success:hover {
color: hsl(var(--success) / 50%) !important;
border-color: hsl(var(--success) / 50%) !important;
}
html.dark button[disabled].btn-success {
color: rgb(242 242 242 / 25%) !important;
border-color: hsl(240deg 3.7% 22%) !important;
}
button[disabled].btn-success {
color: rgb(50 54 57 / 25%) !important;
border-color: hsl(240deg 5.9% 90%) !important;
}

View File

@@ -0,0 +1,44 @@
.el-card {
--el-card-border-radius: var(--radius) !important;
}
.form-valid-error {
/** select 选择器的样式 */
.el-select .el-select__wrapper {
box-shadow: 0 0 0 1px var(--el-color-danger) inset;
}
/** input 选择器的样式 */
.el-input .el-input__wrapper {
box-shadow: 0 0 0 1px var(--el-color-danger) inset;
}
/** radio和checkbox 选择器的样式 */
.el-radio .el-radio__inner,
.el-checkbox .el-checkbox__inner {
border: 1px solid var(--el-color-danger);
}
.el-checkbox-button .el-checkbox-button__inner,
.el-radio-button .el-radio-button__inner {
border: 1px solid var(--el-color-danger);
}
.el-checkbox-button:first-child .el-checkbox-button__inner,
.el-radio-button:first-child .el-radio-button__inner {
border-left: 1px solid var(--el-color-danger);
}
.el-checkbox-button:not(:first-child) .el-checkbox-button__inner,
.el-radio-button:not(:first-child) .el-radio-button__inner {
border-left: none;
}
.el-textarea .el-textarea__inner {
border: 1px solid var(--el-color-danger);
}
}
html .el-loading-mask {
z-index: 1000;
}

View File

@@ -0,0 +1 @@
@use '@vben-core/design/bem' as *;

View File

@@ -0,0 +1 @@
import '@vben-core/design';

View File

@@ -0,0 +1,20 @@
.form-valid-error {
.n-base-selection__state-border,
.n-input__state-border,
.n-radio-group__splitor {
border: var(--n-border-error);
}
.n-radio-group .n-radio-button,
.n-radio-group .n-radio-group__splitor {
--n-button-border-color: rgb(255 56 96);
}
.n-radio__dot {
--n-box-shadow: inset 0 0 0 1px rgb(255 56 96);
}
.n-checkbox-box__border {
--n-border: 1px solid rgb(255 56 96);
}
}

View File

@@ -0,0 +1,6 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"extends": "@vben/tsconfig/web.json",
"include": ["src"],
"exclude": ["node_modules"]
}