From a634c8f2d10eddfd298d689a88d47e336d6143f4 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot Date: Sat, 11 Mar 2023 19:23:57 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=B1:=20[client]=20sync=20upgrade=20wit?= =?UTF-8?q?h=206=20commits=20[trident-sync]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit refactor: deploy refactor: deploy refactor: 1.10.0 refactor: 1 perf: 增加s3示例 --- packages/ui/certd-client/CHANGELOG.md | 23 +++++++++++++ packages/ui/certd-client/package.json | 8 ++--- packages/ui/certd-client/src/App.vue | 4 +-- .../src/plugin/fast-crud/index.tsx | 11 +++++-- .../crud/component/uploader/form/crud.jsx | 8 +++++ .../views/crud/component/uploader/s3/api.ts | 9 ++++-- .../views/crud/component/uploader/s3/crud.tsx | 32 +++++++++++-------- .../crud/component/uploader/s3/index.vue | 2 +- .../crud/component/uploader/s3/s3-server.ts | 16 +++++++--- .../src/views/crud/feature/index/crud.jsx | 2 +- .../src/views/crud/form/custom-form/crud.tsx | 5 ++- .../src/views/crud/form/independent/index.vue | 2 +- 12 files changed, 87 insertions(+), 35 deletions(-) diff --git a/packages/ui/certd-client/CHANGELOG.md b/packages/ui/certd-client/CHANGELOG.md index 35b4d5b3..4d5310c6 100644 --- a/packages/ui/certd-client/CHANGELOG.md +++ b/packages/ui/certd-client/CHANGELOG.md @@ -3,6 +3,29 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.10.0](https://github.com/fast-crud/fast-crud/compare/v1.9.2...v1.10.0) (2023-03-11) + + +### Bug Fixes + +* 行编辑支持多级表头 ([a547c99](https://github.com/fast-crud/fast-crud/commit/a547c99250f2d00b9d91c326364ccb81415c2772)) + + +### Features + +* fs-form-wrapper支持多实例 ([023cc1d](https://github.com/fast-crud/fast-crud/commit/023cc1d425d5b1fa618a3d13fe5c88c81671524d)) + + +### Performance Improvements + +* 完善文档,完善部分types ([8fff02d](https://github.com/fast-crud/fast-crud/commit/8fff02d758530bbb1212d7475dc94bc8b562ef97)) +* 优化d.ts类型 ([7a51aac](https://github.com/fast-crud/fast-crud/commit/7a51aace532ed6692f28a53332a2103a74f5827a)) +* 增加s3示例 ([9060b03](https://github.com/fast-crud/fast-crud/commit/9060b036ce9e36ef8f2ddc50b1362682c7d3aa7f)) + + + + + ## [1.9.2](https://github.com/fast-crud/fast-crud/compare/v1.9.1...v1.9.2) (2023-03-01) **Note:** Version bump only for package @fast-crud/fs-admin-antdv diff --git a/packages/ui/certd-client/package.json b/packages/ui/certd-client/package.json index 5a292c45..5dbec96f 100644 --- a/packages/ui/certd-client/package.json +++ b/packages/ui/certd-client/package.json @@ -1,6 +1,6 @@ { "name": "@fast-crud/fs-admin-antdv", - "version": "1.9.2", + "version": "1.10.0", "private": true, "scripts": { "dev": "vite", @@ -23,9 +23,9 @@ "@ant-design/colors": "^7.0.0", "@ant-design/icons-vue": "^6.1.0", "@aws-sdk/s3-request-presigner": "^3.288.0", - "@fast-crud/fast-crud": "workspace:^1.9.2", - "@fast-crud/fast-extends": "workspace:^1.9.2", - "@fast-crud/ui-antdv": "workspace:^1.9.2", + "@fast-crud/fast-crud": "^1.10.0", + "@fast-crud/fast-extends": "^1.10.0", + "@fast-crud/ui-antdv": "^1.10.0", "@iconify/iconify": "^3.1.0", "@iconify/json": "^2.2.32", "@purge-icons/generated": "^0.9.0", diff --git a/packages/ui/certd-client/src/App.vue b/packages/ui/certd-client/src/App.vue index f6fbad39..414d5081 100644 --- a/packages/ui/certd-client/src/App.vue +++ b/packages/ui/certd-client/src/App.vue @@ -1,8 +1,6 @@ diff --git a/packages/ui/certd-client/src/plugin/fast-crud/index.tsx b/packages/ui/certd-client/src/plugin/fast-crud/index.tsx index bf899ee0..0374810e 100644 --- a/packages/ui/certd-client/src/plugin/fast-crud/index.tsx +++ b/packages/ui/certd-client/src/plugin/fast-crud/index.tsx @@ -7,7 +7,8 @@ import "@fast-crud/fast-extends/dist/style.css"; import UiAntdv from "@fast-crud/ui-antdv"; import _ from "lodash-es"; import { useCrudPermission } from "../permission"; -import { TransformResProps } from "@fast-crud/fast-crud/src"; +import { TransformResProps } from "@fast-crud/fast-crud"; +import { GetSignedUrl } from "/@/views/crud/component/uploader/s3/api"; function install(app: any, options: any = {}) { app.use(UiAntdv); @@ -170,20 +171,24 @@ function install(app: any, options: any = {}) { domain: "http://d2p.file.handsfree.work/" }, s3: { + //同时也支持minio bucket: "fast-crud", sdkOpts: { s3ForcePathStyle: true, signatureVersion: "v4", region: "us-east-1", forcePathStyle: true, + //minio与s3完全适配 endpoint: "https://play.min.io", credentials: { + //不建议在客户端使用secretAccessKey来上传 accessKeyId: "Q3AM3UQ867SPQQA43P2F", //访问登录名 secretAccessKey: "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG" //访问密码 } }, - custom: { - // buildKey,获取授权等接口中将会传入 + //预签名配置,向后端获取上传的预签名连接 + async getSignedUrl(bucket: string, key: string, options: any) { + return await GetSignedUrl(bucket, key, "put"); }, successHandle(ret: any) { // 上传完成后可以在此处处理结果,修改url什么的 diff --git a/packages/ui/certd-client/src/views/crud/component/uploader/form/crud.jsx b/packages/ui/certd-client/src/views/crud/component/uploader/form/crud.jsx index 7a9cb064..ede816f8 100644 --- a/packages/ui/certd-client/src/views/crud/component/uploader/form/crud.jsx +++ b/packages/ui/certd-client/src/views/crud/component/uploader/form/crud.jsx @@ -95,6 +95,14 @@ export default function ({ expose }) { pictureCard2: { title: "通过urls显示", type: "image-uploader", + form: { + show: false, + component: { + uploader: { + type: "form" + } + } + }, column: { component: { urls: [ diff --git a/packages/ui/certd-client/src/views/crud/component/uploader/s3/api.ts b/packages/ui/certd-client/src/views/crud/component/uploader/s3/api.ts index 669524b9..c0db1ebf 100644 --- a/packages/ui/certd-client/src/views/crud/component/uploader/s3/api.ts +++ b/packages/ui/certd-client/src/views/crud/component/uploader/s3/api.ts @@ -1,5 +1,6 @@ import { requestForMock } from "/src/api/service"; -import { generateUrls } from "/@/views/crud/component/uploader/s3/s3-server"; +import { generateSignedUrl } from "/@/views/crud/component/uploader/s3/s3-server"; +import { SignedUrlType } from "@fast-crud/fast-extends"; const request = requestForMock; const apiPrefix = "/mock/S3Uploader"; export function GetList(query: any) { @@ -46,8 +47,10 @@ export function GetObj(id: any) { * 向后端请求获取预签名url * @param bucket * @param key + * @param type * @constructor */ -export async function GetSignedUrl(bucket: string, key: string) { - return await generateUrls(bucket, key); +export async function GetSignedUrl(bucket: string, key: string, type: SignedUrlType) { + //此处模拟获取预签名url + return await generateSignedUrl(bucket, key, type); } diff --git a/packages/ui/certd-client/src/views/crud/component/uploader/s3/crud.tsx b/packages/ui/certd-client/src/views/crud/component/uploader/s3/crud.tsx index ece50adb..e586d458 100644 --- a/packages/ui/certd-client/src/views/crud/component/uploader/s3/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/component/uploader/s3/crud.tsx @@ -1,6 +1,7 @@ import * as api from "./api"; -import { AddReq, CreateCrudOptionsProps, CreateCrudOptionsRet, DelReq, EditReq, UserPageQuery, UserPageRes } from "@fast-crud/fast-crud"; import { GetSignedUrl } from "./api"; +import { AddReq, CreateCrudOptionsProps, CreateCrudOptionsRet, DelReq, EditReq, UserPageQuery, UserPageRes } from "@fast-crud/fast-crud"; + export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOptionsRet { const pageRequest = async (query: UserPageQuery): Promise => { return await api.GetList(query); @@ -39,17 +40,27 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti file: { title: "S3上传", type: "file-uploader", + // 将被分发到 form.component 和 column.component之下 + async buildUrl(key: string) { + //向后端获取下载的预签名链接 + return await GetSignedUrl("fast-crud", key, "get"); + }, form: { component: { uploader: { type: "s3" - } + }, + valueType: "key" //返回值为key } } }, pictureCard: { title: "照片墙", type: "image-uploader", + async buildUrl(key: string) { + //向后端获取下载的预签名链接 + return await GetSignedUrl("fast-crud", key, "get"); + }, form: { component: { uploader: { @@ -57,26 +68,21 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti }, valueType: "key" } - }, - column: { - component: { - async buildUrl(key: string) { - const url = await GetSignedUrl("fast-crud", key); - debugger; - console.log("url", url); - return url; - } - } } }, cropper: { title: "裁剪", type: "cropper-uploader", + async buildUrl(key: string) { + //向后端获取下载的预签名链接 + return await GetSignedUrl("fast-crud", key, "get"); + }, form: { component: { uploader: { type: "s3" - } + }, + valueType: "key" } } } diff --git a/packages/ui/certd-client/src/views/crud/component/uploader/s3/index.vue b/packages/ui/certd-client/src/views/crud/component/uploader/s3/index.vue index e7e77709..af1cf4f0 100644 --- a/packages/ui/certd-client/src/views/crud/component/uploader/s3/index.vue +++ b/packages/ui/certd-client/src/views/crud/component/uploader/s3/index.vue @@ -6,7 +6,7 @@ 支持minio diff --git a/packages/ui/certd-client/src/views/crud/component/uploader/s3/s3-server.ts b/packages/ui/certd-client/src/views/crud/component/uploader/s3/s3-server.ts index faa6f708..ef16c92b 100644 --- a/packages/ui/certd-client/src/views/crud/component/uploader/s3/s3-server.ts +++ b/packages/ui/certd-client/src/views/crud/component/uploader/s3/s3-server.ts @@ -1,7 +1,8 @@ -import { S3Client, GetObjectCommand } from "@aws-sdk/client-s3"; +// @ts-ignore +import { S3Client, GetObjectCommand, PutObjectCommand } from "@aws-sdk/client-s3"; import { getSignedUrl } from "@aws-sdk/s3-request-presigner"; -export async function generateUrls(bucket: string, key: string) { +export async function generateSignedUrl(bucket: string, key: string, type: "put" | "get" = "get") { const client = new S3Client({ s3ForcePathStyle: true, signatureVersion: "v4", @@ -13,14 +14,19 @@ export async function generateUrls(bucket: string, key: string) { secretAccessKey: "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG" //访问密码 } }); - const getParams = { + const params = { Bucket: bucket, Key: key }; let url; - const getCmd = new GetObjectCommand(getParams); + let cmd; + if (type === "get") { + cmd = new GetObjectCommand(params); + } else { + cmd = new PutObjectCommand(params); + } try { - url = await getSignedUrl(client, getCmd); + url = await getSignedUrl(client, cmd); } catch (err) { console.log("Error getting signed URL ", err); } diff --git a/packages/ui/certd-client/src/views/crud/feature/index/crud.jsx b/packages/ui/certd-client/src/views/crud/feature/index/crud.jsx index 5c3f3105..1513e904 100644 --- a/packages/ui/certd-client/src/views/crud/feature/index/crud.jsx +++ b/packages/ui/certd-client/src/views/crud/feature/index/crud.jsx @@ -38,7 +38,7 @@ export default function ({ expose }) { //计算序号,你可以自定义计算规则,此处为翻页累加 let index = context.index ?? 1; let pagination = expose.crudBinding.value.pagination; - return ((pagination.currentPage ?? 1) - 1) * pagination.pageSize + index + 1; + return ((pagination.current ?? 1) - 1) * pagination.pageSize + index + 1; } } }, diff --git a/packages/ui/certd-client/src/views/crud/form/custom-form/crud.tsx b/packages/ui/certd-client/src/views/crud/form/custom-form/crud.tsx index 1858cda4..90f91de0 100644 --- a/packages/ui/certd-client/src/views/crud/form/custom-form/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/form/custom-form/crud.tsx @@ -1,7 +1,7 @@ import * as api from "./api.js"; import { AddReq, CreateCrudOptionsProps, CreateCrudOptionsRet, CrudExpose, CrudOptions, DelReq, dict, EditReq, useColumns, UserPageQuery, UserPageRes } from "@fast-crud/fast-crud"; import { message } from "ant-design-vue"; -import { useFormWrapper } from "@fast-crud/fast-crud/src"; +import { useFormWrapper } from "@fast-crud/fast-crud"; function useCustomFormWrapperDemo(crudExpose: CrudExpose) { let index = 0; @@ -33,6 +33,9 @@ function useCustomFormWrapperDemo(crudExpose: CrudExpose) { openCustomForm(); } } + }, + onOpened() { + console.log("fsFormWrapper", crudExpose.getFormWrapperRef()); } }, group: { diff --git a/packages/ui/certd-client/src/views/crud/form/independent/index.vue b/packages/ui/certd-client/src/views/crud/form/independent/index.vue index e2c35495..565597a4 100644 --- a/packages/ui/certd-client/src/views/crud/form/independent/index.vue +++ b/packages/ui/certd-client/src/views/crud/form/independent/index.vue @@ -49,7 +49,7 @@ import { defineComponent, ref } from "vue"; import { message } from "ant-design-vue"; import { useCrud, useExpose, useColumns, useFs } from "@fast-crud/fast-crud"; import createCrudOptions from "./crud"; -import { useFormWrapper } from "@fast-crud/fast-crud/src"; +import { useFormWrapper } from "@fast-crud/fast-crud"; function createFormOptionsFromCrudOptions() { const { buildFormOptions } = useColumns();