feat: 管理后台增强——用户启停操作、shadcn日期区间/后缀标签组件

1. 用户管理页:新增启用状态列与启用/禁用操作按钮(对接 user/enable|disable)
2. 机构账号/记录查询页:时间区间改用官方 shadcn Range Picker 模式
   (Popover+Calendar mode=range 双月面板,新增 components/date-range-picker.tsx)
3. 上传配置页:文件类型限制改为标签式输入(新增 suffix-tag-input.tsx,
   Badge标签+回车添加+常用后缀快捷点选),替换自由文本框
4. 修复:.env 的 VITE_APP_TITLE 加引号,规避 Bun 1.3.10 env 解析
   对行尾多字节中文的截断(标题乱码"森睿智�")
5. 新增共享 hook hooks/use-user-status-actions.ts(从 org-account 迁出)
6. vite 代理保留 本地Docker(localhost:8080)/公司 两种目标,切换注释即可
This commit is contained in:
2026-09-15 12:16:14 +08:00
commit d92d7d6752
532 changed files with 177420 additions and 0 deletions

78
tailwind.config.js Normal file
View File

@@ -0,0 +1,78 @@
/** @type {import('tailwindcss').Config} */
import tailwindcssAnimate from "tailwindcss-animate";
export default {
darkMode: ["class"],
content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"],
theme: {
extend: {
boxShadow: {
xs: "0 1px 2px 0 rgba(0, 0, 0, 0.05)",
},
borderRadius: {
lg: 'var(--radius)',
md: 'calc(var(--radius) - 2px)',
sm: 'calc(var(--radius) - 4px)'
},
colors: {
white: "rgba(255, 255, 255, <alpha-value>)",
black: "rgba(0, 0, 0, <alpha-value>)",
background: 'hsla(var(--background), <alpha-value>)',
foreground: 'hsla(var(--foreground), <alpha-value>)',
card: {
DEFAULT: 'hsla(var(--card), <alpha-value>)',
foreground: 'hsla(var(--card-foreground), <alpha-value>)'
},
popover: {
DEFAULT: 'hsla(var(--popover), <alpha-value>)',
foreground: 'hsla(var(--popover-foreground), <alpha-value>)'
},
primary: {
DEFAULT: 'hsla(var(--primary), <alpha-value>)',
foreground: 'hsla(var(--primary-foreground), <alpha-value>)'
},
secondary: {
DEFAULT: 'hsla(var(--secondary), <alpha-value>)',
foreground: 'hsla(var(--secondary-foreground), <alpha-value>)'
},
muted: {
DEFAULT: 'hsla(var(--muted), <alpha-value>)',
foreground: 'hsla(var(--muted-foreground), <alpha-value>)'
},
accent: {
DEFAULT: 'hsla(var(--accent), <alpha-value>)',
foreground: 'hsla(var(--accent-foreground), <alpha-value>)'
},
destructive: {
DEFAULT: 'hsla(var(--destructive), <alpha-value>)',
foreground: 'hsla(var(--destructive-foreground), <alpha-value>)'
},
border: 'hsla(var(--border), <alpha-value>)',
input: 'hsla(var(--input), <alpha-value>)',
ring: 'hsla(var(--ring), <alpha-value>)',
chart: {
'1': 'hsla(var(--chart-1), <alpha-value>)',
'2': 'hsla(var(--chart-2), <alpha-value>)',
'3': 'hsla(var(--chart-3), <alpha-value>)',
'4': 'hsla(var(--chart-4), <alpha-value>)',
'5': 'hsla(var(--chart-5), <alpha-value>)'
},
sidebar: {
DEFAULT: 'hsla(var(--sidebar), <alpha-value>)',
foreground: 'hsla(var(--sidebar-foreground), <alpha-value>)',
primary: {
DEFAULT: 'hsla(var(--sidebar-primary), <alpha-value>)',
foreground: 'hsla(var(--sidebar-primary-foreground), <alpha-value>)'
},
accent: {
DEFAULT: 'hsla(var(--sidebar-accent), <alpha-value>)',
foreground: 'hsla(var(--sidebar-accent-foreground), <alpha-value>)'
},
border: 'hsla(var(--sidebar-border), <alpha-value>)',
ring: 'hsla(var(--sidebar-ring), <alpha-value>)'
}
}
}
},
plugins: [tailwindcssAnimate],
};