fix: remove PermissionButton wrappers from Upload components

This commit is contained in:
2026-07-05 21:37:47 +08:00
parent 940b587df9
commit b77e5a2f50
7 changed files with 197 additions and 268 deletions

3
WATCHDOG.yml Normal file
View File

@@ -0,0 +1,3 @@
advisors:
- name: default
model: deepseek/deepseek-v4-flash:xhigh

View File

@@ -226,7 +226,6 @@ const ClassroomsPage: React.FC = () => {
> >
</PermissionButton> </PermissionButton>
<PermissionButton permission="classroom:create" type="text">
<Upload <Upload
accept=".xlsx,.xls" accept=".xlsx,.xls"
showUploadList={false} showUploadList={false}
@@ -248,7 +247,6 @@ const ClassroomsPage: React.FC = () => {
> >
<Button icon={<UploadOutlined />}>Excel</Button> <Button icon={<UploadOutlined />}>Excel</Button>
</Upload> </Upload>
</PermissionButton>
<PermissionButton <PermissionButton
permission="classroom:view" permission="classroom:view"
icon={<DownloadOutlined />} icon={<DownloadOutlined />}

View File

@@ -349,7 +349,6 @@ const ExpensesPage: React.FC = () => {
onChange={(v) => setRoomTypeFilter(v)} onChange={(v) => setRoomTypeFilter(v)}
options={expenseTypeOptions} options={expenseTypeOptions}
/> />
<PermissionButton permission="expense:create" type="text">
<Upload <Upload
accept=".xlsx,.xls" accept=".xlsx,.xls"
showUploadList={false} showUploadList={false}
@@ -379,7 +378,6 @@ const ExpensesPage: React.FC = () => {
> >
<Button icon={<UploadOutlined />}>Excel</Button> <Button icon={<UploadOutlined />}>Excel</Button>
</Upload> </Upload>
</PermissionButton>
<PermissionButton <PermissionButton
permission="expense:view" permission="expense:view"
icon={<DownloadOutlined />} icon={<DownloadOutlined />}
@@ -484,7 +482,6 @@ const ExpensesPage: React.FC = () => {
onChange={(v) => setPersonalTypeFilter(v)} onChange={(v) => setPersonalTypeFilter(v)}
options={personalExpenseTypeOptions} options={personalExpenseTypeOptions}
/> />
<PermissionButton permission="expense:create" type="text">
<Upload <Upload
accept=".xlsx,.xls" accept=".xlsx,.xls"
showUploadList={false} showUploadList={false}
@@ -506,7 +503,6 @@ const ExpensesPage: React.FC = () => {
> >
<Button icon={<UploadOutlined />}></Button> <Button icon={<UploadOutlined />}></Button>
</Upload> </Upload>
</PermissionButton>
<PermissionButton <PermissionButton
permission="expense:view" permission="expense:view"
icon={<DownloadOutlined />} icon={<DownloadOutlined />}

View File

@@ -287,7 +287,6 @@ const OccupanciesPage: React.FC = () => {
> >
</PermissionButton> </PermissionButton>
<PermissionButton permission="occupancy:checkin" type="text">
<Upload <Upload
accept=".xlsx,.xls" accept=".xlsx,.xls"
showUploadList={false} showUploadList={false}
@@ -328,7 +327,6 @@ const OccupanciesPage: React.FC = () => {
</Button> </Button>
</Tooltip> </Tooltip>
</Upload> </Upload>
</PermissionButton>
<PermissionButton <PermissionButton
permission="occupancy:view" permission="occupancy:view"
icon={<DownloadOutlined />} icon={<DownloadOutlined />}

View File

@@ -330,7 +330,6 @@ const RoomsPage: React.FC = () => {
> >
宿 宿
</PermissionButton> </PermissionButton>
<PermissionButton permission="room:create" type="text">
<Upload <Upload
accept=".xlsx,.xls" accept=".xlsx,.xls"
showUploadList={false} showUploadList={false}
@@ -350,7 +349,6 @@ const RoomsPage: React.FC = () => {
> >
<Button icon={<UploadOutlined />}>Excel</Button> <Button icon={<UploadOutlined />}>Excel</Button>
</Upload> </Upload>
</PermissionButton>
<PermissionButton <PermissionButton
permission="room:view" permission="room:view"
icon={<DownloadOutlined />} icon={<DownloadOutlined />}

View File

@@ -275,7 +275,6 @@ const StudentsPage: React.FC = () => {
> >
</PermissionButton> </PermissionButton>
<PermissionButton permission="student:import" type="text">
<Upload <Upload
accept=".xlsx,.xls" accept=".xlsx,.xls"
showUploadList={false} showUploadList={false}
@@ -297,7 +296,6 @@ const StudentsPage: React.FC = () => {
> >
<Button icon={<UploadOutlined />}>Excel</Button> <Button icon={<UploadOutlined />}>Excel</Button>
</Upload> </Upload>
</PermissionButton>
<PermissionButton <PermissionButton
permission="student:view" permission="student:view"
icon={<DownloadOutlined />} icon={<DownloadOutlined />}

154
package-lock.json generated
View File

@@ -54,6 +54,7 @@
"@nestjs/jwt": "^11.0.2", "@nestjs/jwt": "^11.0.2",
"@nestjs/passport": "^11.0.5", "@nestjs/passport": "^11.0.5",
"@nestjs/platform-express": "^11.1.19", "@nestjs/platform-express": "^11.1.19",
"@nestjs/schedule": "^6.1.3",
"@nestjs/throttler": "^6.5.0", "@nestjs/throttler": "^6.5.0",
"@nestjs/typeorm": "^11.0.1", "@nestjs/typeorm": "^11.0.1",
"@types/multer": "^2.1.0", "@types/multer": "^2.1.0",
@@ -3086,6 +3087,19 @@
"node": ">= 0.6" "node": ">= 0.6"
} }
}, },
"node_modules/@nestjs/schedule": {
"version": "6.1.3",
"resolved": "https://registry.npmmirror.com/@nestjs/schedule/-/schedule-6.1.3.tgz",
"integrity": "sha512-RflMFOpR16Dwd1jAUbeB4mfGTCh65fvEdL4mSjQPJChpkRGRjIXjb+6YQcK2faQrVT60c9DmLmoVR7/ONCtuYQ==",
"license": "MIT",
"dependencies": {
"cron": "4.4.0"
},
"peerDependencies": {
"@nestjs/common": "^10.0.0 || ^11.0.0",
"@nestjs/core": "^10.0.0 || ^11.0.0"
}
},
"node_modules/@nestjs/schematics": { "node_modules/@nestjs/schematics": {
"version": "11.1.0", "version": "11.1.0",
"resolved": "https://registry.npmmirror.com/@nestjs/schematics/-/schematics-11.1.0.tgz", "resolved": "https://registry.npmmirror.com/@nestjs/schematics/-/schematics-11.1.0.tgz",
@@ -3605,9 +3619,6 @@
"arm64" "arm64"
], ],
"dev": true, "dev": true,
"libc": [
"glibc"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -3625,9 +3636,6 @@
"arm64" "arm64"
], ],
"dev": true, "dev": true,
"libc": [
"musl"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -3645,9 +3653,6 @@
"ppc64" "ppc64"
], ],
"dev": true, "dev": true,
"libc": [
"glibc"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -3665,9 +3670,6 @@
"riscv64" "riscv64"
], ],
"dev": true, "dev": true,
"libc": [
"glibc"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -3685,9 +3687,6 @@
"riscv64" "riscv64"
], ],
"dev": true, "dev": true,
"libc": [
"musl"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -3705,9 +3704,6 @@
"s390x" "s390x"
], ],
"dev": true, "dev": true,
"libc": [
"glibc"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -3725,9 +3721,6 @@
"x64" "x64"
], ],
"dev": true, "dev": true,
"libc": [
"glibc"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -3745,9 +3738,6 @@
"x64" "x64"
], ],
"dev": true, "dev": true,
"libc": [
"musl"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -3952,9 +3942,6 @@
"arm64" "arm64"
], ],
"dev": true, "dev": true,
"libc": [
"glibc"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -3972,9 +3959,6 @@
"arm64" "arm64"
], ],
"dev": true, "dev": true,
"libc": [
"musl"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -3992,9 +3976,6 @@
"ppc64" "ppc64"
], ],
"dev": true, "dev": true,
"libc": [
"glibc"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -4012,9 +3993,6 @@
"riscv64" "riscv64"
], ],
"dev": true, "dev": true,
"libc": [
"glibc"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -4032,9 +4010,6 @@
"riscv64" "riscv64"
], ],
"dev": true, "dev": true,
"libc": [
"musl"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -4052,9 +4027,6 @@
"s390x" "s390x"
], ],
"dev": true, "dev": true,
"libc": [
"glibc"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -4072,9 +4044,6 @@
"x64" "x64"
], ],
"dev": true, "dev": true,
"libc": [
"glibc"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -4092,9 +4061,6 @@
"x64" "x64"
], ],
"dev": true, "dev": true,
"libc": [
"musl"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -5010,9 +4976,6 @@
"arm64" "arm64"
], ],
"dev": true, "dev": true,
"libc": [
"glibc"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -5030,9 +4993,6 @@
"arm64" "arm64"
], ],
"dev": true, "dev": true,
"libc": [
"musl"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -5050,9 +5010,6 @@
"ppc64" "ppc64"
], ],
"dev": true, "dev": true,
"libc": [
"glibc"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -5070,9 +5027,6 @@
"s390x" "s390x"
], ],
"dev": true, "dev": true,
"libc": [
"glibc"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -5090,9 +5044,6 @@
"x64" "x64"
], ],
"dev": true, "dev": true,
"libc": [
"glibc"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -5110,9 +5061,6 @@
"x64" "x64"
], ],
"dev": true, "dev": true,
"libc": [
"musl"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -5622,6 +5570,12 @@
"@types/node": "*" "@types/node": "*"
} }
}, },
"node_modules/@types/luxon": {
"version": "3.7.2",
"resolved": "https://registry.npmmirror.com/@types/luxon/-/luxon-3.7.2.tgz",
"integrity": "sha512-gW+Oib+vUtGJBtNC8V9Reww0oIpusw+4m81uncg9REGZAJfqOQHfo/nkabnc7w0QReXyPqjrbWMJk6NuAkiX3Q==",
"license": "MIT"
},
"node_modules/@types/methods": { "node_modules/@types/methods": {
"version": "1.1.4", "version": "1.1.4",
"resolved": "https://registry.npmmirror.com/@types/methods/-/methods-1.1.4.tgz", "resolved": "https://registry.npmmirror.com/@types/methods/-/methods-1.1.4.tgz",
@@ -6210,9 +6164,6 @@
"arm64" "arm64"
], ],
"dev": true, "dev": true,
"libc": [
"glibc"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -6227,9 +6178,6 @@
"arm64" "arm64"
], ],
"dev": true, "dev": true,
"libc": [
"musl"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -6244,9 +6192,6 @@
"loong64" "loong64"
], ],
"dev": true, "dev": true,
"libc": [
"glibc"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -6261,9 +6206,6 @@
"loong64" "loong64"
], ],
"dev": true, "dev": true,
"libc": [
"musl"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -6278,9 +6220,6 @@
"ppc64" "ppc64"
], ],
"dev": true, "dev": true,
"libc": [
"glibc"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -6295,9 +6234,6 @@
"riscv64" "riscv64"
], ],
"dev": true, "dev": true,
"libc": [
"glibc"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -6312,9 +6248,6 @@
"riscv64" "riscv64"
], ],
"dev": true, "dev": true,
"libc": [
"musl"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -6329,9 +6262,6 @@
"s390x" "s390x"
], ],
"dev": true, "dev": true,
"libc": [
"glibc"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -6346,9 +6276,6 @@
"x64" "x64"
], ],
"dev": true, "dev": true,
"libc": [
"glibc"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -6363,9 +6290,6 @@
"x64" "x64"
], ],
"dev": true, "dev": true,
"libc": [
"musl"
],
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
@@ -8205,6 +8129,23 @@
"devOptional": true, "devOptional": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/cron": {
"version": "4.4.0",
"resolved": "https://registry.npmmirror.com/cron/-/cron-4.4.0.tgz",
"integrity": "sha512-fkdfq+b+AHI4cKdhZlppHveI/mgz2qpiYxcm+t5E5TsxX7QrLS1VE0+7GENEk9z0EeGPcpSciGv6ez24duWhwQ==",
"license": "MIT",
"dependencies": {
"@types/luxon": "~3.7.0",
"luxon": "~3.7.0"
},
"engines": {
"node": ">=18.x"
},
"funding": {
"type": "ko-fi",
"url": "https://ko-fi.com/intcreator"
}
},
"node_modules/cross-spawn": { "node_modules/cross-spawn": {
"version": "7.0.6", "version": "7.0.6",
"resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.6.tgz", "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.6.tgz",
@@ -11791,9 +11732,6 @@
"arm64" "arm64"
], ],
"dev": true, "dev": true,
"libc": [
"glibc"
],
"license": "MPL-2.0", "license": "MPL-2.0",
"optional": true, "optional": true,
"os": [ "os": [
@@ -11815,9 +11753,6 @@
"arm64" "arm64"
], ],
"dev": true, "dev": true,
"libc": [
"musl"
],
"license": "MPL-2.0", "license": "MPL-2.0",
"optional": true, "optional": true,
"os": [ "os": [
@@ -11839,9 +11774,6 @@
"x64" "x64"
], ],
"dev": true, "dev": true,
"libc": [
"glibc"
],
"license": "MPL-2.0", "license": "MPL-2.0",
"optional": true, "optional": true,
"os": [ "os": [
@@ -11863,9 +11795,6 @@
"x64" "x64"
], ],
"dev": true, "dev": true,
"libc": [
"musl"
],
"license": "MPL-2.0", "license": "MPL-2.0",
"optional": true, "optional": true,
"os": [ "os": [
@@ -12190,6 +12119,15 @@
"url": "https://github.com/sponsors/wellwelwel" "url": "https://github.com/sponsors/wellwelwel"
} }
}, },
"node_modules/luxon": {
"version": "3.7.2",
"resolved": "https://registry.npmmirror.com/luxon/-/luxon-3.7.2.tgz",
"integrity": "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==",
"license": "MIT",
"engines": {
"node": ">=12"
}
},
"node_modules/magic-string": { "node_modules/magic-string": {
"version": "0.30.17", "version": "0.30.17",
"resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.17.tgz", "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.17.tgz",