From a929f8429dc4b3b876f2c6cdfdbc89896b773032 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot Date: Tue, 7 Nov 2023 19:24:00 +0000 Subject: [PATCH 01/12] =?UTF-8?q?=F0=9F=94=B1:=20[client]=20sync=20upgrade?= =?UTF-8?q?=20with=202=20commits=20[trident-sync]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit build: publish success --- packages/ui/certd-client/CHANGELOG.md | 6 ++++++ packages/ui/certd-client/package.json | 10 +++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/ui/certd-client/CHANGELOG.md b/packages/ui/certd-client/CHANGELOG.md index aa471051..50268564 100644 --- a/packages/ui/certd-client/CHANGELOG.md +++ b/packages/ui/certd-client/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.18.4](https://github.com/fast-crud/fast-crud/compare/v1.18.3...v1.18.4) (2023-11-07) + +### Bug Fixes + +* 修复afterSubmit返回false仍然关闭对话框的bug ([80337ff](https://github.com/fast-crud/fast-crud/commit/80337ffc46eda74d526562d9f27c43a2b6eb0534)) + ## [1.18.3](https://github.com/fast-crud/fast-crud/compare/v1.18.2...v1.18.3) (2023-10-26) **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 c8508e10..93b05c12 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.18.3", + "version": "1.18.4", "private": true, "scripts": { "dev": "vite", @@ -26,10 +26,10 @@ "@ant-design/icons-vue": "^6.1.0", "@aws-sdk/client-s3": "^3.383.0", "@aws-sdk/s3-request-presigner": "^3.383.0", - "@fast-crud/fast-crud": "^1.18.3", - "@fast-crud/fast-extends": "^1.18.3", - "@fast-crud/ui-antdv": "^1.18.3", - "@fast-crud/ui-interface": "^1.18.3", + "@fast-crud/fast-crud": "^1.18.4", + "@fast-crud/fast-extends": "^1.18.4", + "@fast-crud/ui-antdv": "^1.18.4", + "@fast-crud/ui-interface": "^1.18.4", "@iconify/iconify": "^3.1.1", "@iconify/json": "^2.2.98", "@purge-icons/generated": "^0.9.0", From 4e13843c78dc52bf50724e17c75cce0ef5d67da3 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot Date: Wed, 8 Nov 2023 19:24:13 +0000 Subject: [PATCH 02/12] =?UTF-8?q?=F0=9F=94=B1:=20[client]=20sync=20upgrade?= =?UTF-8?q?=20with=202=20commits=20[trident-sync]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit build: publish success --- packages/ui/certd-client/CHANGELOG.md | 6 ++++++ packages/ui/certd-client/package.json | 10 +++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/ui/certd-client/CHANGELOG.md b/packages/ui/certd-client/CHANGELOG.md index 50268564..52395cc4 100644 --- a/packages/ui/certd-client/CHANGELOG.md +++ b/packages/ui/certd-client/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.18.5](https://github.com/fast-crud/fast-crud/compare/v1.18.4...v1.18.5) (2023-11-08) + +### Bug Fixes + +* 修复form.value会覆盖初始值的bug ([050f889](https://github.com/fast-crud/fast-crud/commit/050f889dfbdfb38debcd7c8e4a455acf07198530)) + ## [1.18.4](https://github.com/fast-crud/fast-crud/compare/v1.18.3...v1.18.4) (2023-11-07) ### Bug Fixes diff --git a/packages/ui/certd-client/package.json b/packages/ui/certd-client/package.json index 93b05c12..a1e536a6 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.18.4", + "version": "1.18.5", "private": true, "scripts": { "dev": "vite", @@ -26,10 +26,10 @@ "@ant-design/icons-vue": "^6.1.0", "@aws-sdk/client-s3": "^3.383.0", "@aws-sdk/s3-request-presigner": "^3.383.0", - "@fast-crud/fast-crud": "^1.18.4", - "@fast-crud/fast-extends": "^1.18.4", - "@fast-crud/ui-antdv": "^1.18.4", - "@fast-crud/ui-interface": "^1.18.4", + "@fast-crud/fast-crud": "^1.18.5", + "@fast-crud/fast-extends": "^1.18.5", + "@fast-crud/ui-antdv": "^1.18.5", + "@fast-crud/ui-interface": "^1.18.5", "@iconify/iconify": "^3.1.1", "@iconify/json": "^2.2.98", "@purge-icons/generated": "^0.9.0", From 28cbefde0435befecfff80a17e3cfe5ce9841da7 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot Date: Sun, 19 Nov 2023 19:24:08 +0000 Subject: [PATCH 03/12] =?UTF-8?q?=F0=9F=94=B1:=20[client]=20sync=20upgrade?= =?UTF-8?q?=20with=202=20commits=20[trident-sync]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit feat(editable): editable优化重构,分三种模式:free、row、cell --- .../ui/certd-client/src/views/crud/feature/editable/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/certd-client/src/views/crud/feature/editable/index.vue b/packages/ui/certd-client/src/views/crud/feature/editable/index.vue index 2f1a1dce..5a1c9141 100644 --- a/packages/ui/certd-client/src/views/crud/feature/editable/index.vue +++ b/packages/ui/certd-client/src/views/crud/feature/editable/index.vue @@ -85,7 +85,7 @@ export default defineComponent({ crudExpose.editable.addRow(); }, editCol() { - crudExpose.editable.editCol({ cols: ["radio"] }); + crudExpose.editable.activeCols({ cols: ["radio"] }); } }; } From 2ea0c4885377d9ed28b813b52152a62bb032f177 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot Date: Mon, 20 Nov 2023 19:24:12 +0000 Subject: [PATCH 04/12] =?UTF-8?q?=F0=9F=94=B1:=20[client]=20sync=20upgrade?= =?UTF-8?q?=20with=208=20commits=20[trident-sync]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit build: publish success chore: chore: chore: chore: build: publish success chore: --- packages/ui/certd-client/.eslintrc.js | 1 + packages/ui/certd-client/CHANGELOG.md | 12 + packages/ui/certd-client/package.json | 10 +- packages/ui/certd-client/src/mock/base.ts | 59 ++++- .../src/router/source/modules/crud.ts | 47 +++- .../src/views/crud/editable/cell/api.ts | 66 ++++++ .../src/views/crud/editable/cell/crud.tsx | 206 ++++++++++++++++++ .../src/views/crud/editable/cell/index.vue | 90 ++++++++ .../src/views/crud/editable/cell/mock.ts | 25 +++ .../src/views/crud/editable/free/api.ts | 50 +++++ .../src/views/crud/editable/free/crud.tsx | 115 ++++++++++ .../src/views/crud/editable/free/index.vue | 76 +++++++ .../src/views/crud/editable/free/mock.ts | 24 ++ .../src/views/crud/editable/row/api.ts | 50 +++++ .../src/views/crud/editable/row/crud.tsx | 143 ++++++++++++ .../src/views/crud/editable/row/index.vue | 43 ++++ .../src/views/crud/editable/row/mock.ts | 24 ++ .../src/views/crud/editable/vmodel/api.ts | 50 +++++ .../src/views/crud/editable/vmodel/crud.tsx | 79 +++++++ .../views/crud/editable/vmodel/free/api.ts | 50 +++++ .../views/crud/editable/vmodel/free/crud.tsx | 89 ++++++++ .../views/crud/editable/vmodel/free/index.vue | 70 ++++++ .../views/crud/editable/vmodel/free/mock.ts | 20 ++ .../src/views/crud/editable/vmodel/index.vue | 40 ++++ .../src/views/crud/editable/vmodel/mock.ts | 20 ++ packages/ui/certd-client/tsconfig.json | 3 +- 26 files changed, 1443 insertions(+), 19 deletions(-) create mode 100644 packages/ui/certd-client/src/views/crud/editable/cell/api.ts create mode 100644 packages/ui/certd-client/src/views/crud/editable/cell/crud.tsx create mode 100644 packages/ui/certd-client/src/views/crud/editable/cell/index.vue create mode 100644 packages/ui/certd-client/src/views/crud/editable/cell/mock.ts create mode 100644 packages/ui/certd-client/src/views/crud/editable/free/api.ts create mode 100644 packages/ui/certd-client/src/views/crud/editable/free/crud.tsx create mode 100644 packages/ui/certd-client/src/views/crud/editable/free/index.vue create mode 100644 packages/ui/certd-client/src/views/crud/editable/free/mock.ts create mode 100644 packages/ui/certd-client/src/views/crud/editable/row/api.ts create mode 100644 packages/ui/certd-client/src/views/crud/editable/row/crud.tsx create mode 100644 packages/ui/certd-client/src/views/crud/editable/row/index.vue create mode 100644 packages/ui/certd-client/src/views/crud/editable/row/mock.ts create mode 100644 packages/ui/certd-client/src/views/crud/editable/vmodel/api.ts create mode 100644 packages/ui/certd-client/src/views/crud/editable/vmodel/crud.tsx create mode 100644 packages/ui/certd-client/src/views/crud/editable/vmodel/free/api.ts create mode 100644 packages/ui/certd-client/src/views/crud/editable/vmodel/free/crud.tsx create mode 100644 packages/ui/certd-client/src/views/crud/editable/vmodel/free/index.vue create mode 100644 packages/ui/certd-client/src/views/crud/editable/vmodel/free/mock.ts create mode 100644 packages/ui/certd-client/src/views/crud/editable/vmodel/index.vue create mode 100644 packages/ui/certd-client/src/views/crud/editable/vmodel/mock.ts diff --git a/packages/ui/certd-client/.eslintrc.js b/packages/ui/certd-client/.eslintrc.js index 1f4b3d0e..d873ce44 100644 --- a/packages/ui/certd-client/.eslintrc.js +++ b/packages/ui/certd-client/.eslintrc.js @@ -20,6 +20,7 @@ module.exports = { rules: { //"max-len": [0, 200, 2, { ignoreUrls: true }], "@typescript-eslint/no-unused-vars": "off", + "no-unused-vars": "off", "@typescript-eslint/ban-ts-ignore": "off", "@typescript-eslint/explicit-function-return-type": "off", "@typescript-eslint/no-explicit-any": "off", diff --git a/packages/ui/certd-client/CHANGELOG.md b/packages/ui/certd-client/CHANGELOG.md index 52395cc4..5ca51044 100644 --- a/packages/ui/certd-client/CHANGELOG.md +++ b/packages/ui/certd-client/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.19.1](https://github.com/fast-crud/fast-crud/compare/v1.19.0...v1.19.1) (2023-11-20) + +### Bug Fixes + +* 修复一些错误的类型定义 ([e098f51](https://github.com/fast-crud/fast-crud/commit/e098f511160148a824a1950bf4e85325c2ac50f0)) + +# [1.19.0](https://github.com/fast-crud/fast-crud/compare/v1.18.5...v1.19.0) (2023-11-20) + +### Features + +* **editable:** editable优化重构,分三种模式:free、row、cell,本次为破坏性更新,请谨慎升级 ([a592780](https://github.com/fast-crud/fast-crud/commit/a592780697dc723117bce8759b2c02223ed930c8)) + ## [1.18.5](https://github.com/fast-crud/fast-crud/compare/v1.18.4...v1.18.5) (2023-11-08) ### Bug Fixes diff --git a/packages/ui/certd-client/package.json b/packages/ui/certd-client/package.json index a1e536a6..ccbef7ba 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.18.5", + "version": "1.19.1", "private": true, "scripts": { "dev": "vite", @@ -26,10 +26,10 @@ "@ant-design/icons-vue": "^6.1.0", "@aws-sdk/client-s3": "^3.383.0", "@aws-sdk/s3-request-presigner": "^3.383.0", - "@fast-crud/fast-crud": "^1.18.5", - "@fast-crud/fast-extends": "^1.18.5", - "@fast-crud/ui-antdv": "^1.18.5", - "@fast-crud/ui-interface": "^1.18.5", + "@fast-crud/fast-crud": "^1.19.1", + "@fast-crud/fast-extends": "^1.19.1", + "@fast-crud/ui-antdv": "^1.19.1", + "@fast-crud/ui-interface": "^1.19.1", "@iconify/iconify": "^3.1.1", "@iconify/json": "^2.2.98", "@purge-icons/generated": "^0.9.0", diff --git a/packages/ui/certd-client/src/mock/base.ts b/packages/ui/certd-client/src/mock/base.ts index c5084a6a..7a8cecfa 100644 --- a/packages/ui/certd-client/src/mock/base.ts +++ b/packages/ui/certd-client/src/mock/base.ts @@ -1,7 +1,8 @@ import _ from "lodash-es"; function copyList(originList: any, newList: any, options: any, parentId?: any) { for (const item of originList) { - const newItem = { ...item, parentId }; + const newItem: any = _.cloneDeep(item); + newItem.parentId = parentId; newItem.id = ++options.idGenerator; newList.push(newItem); if (item.children != null) { @@ -293,6 +294,62 @@ const mockUtil: any = { data: list }; } + }, + { + path: "/mock/" + name + "/cellUpdate", + method: "post", + handle(req: any): any { + console.log("req", req); + let item = findById(req.body.id, list); + if (item) { + _.mergeWith(item, { [req.body.key]: req.body.value }, (objValue, srcValue) => { + if (srcValue == null) { + return; + } + // 如果被合并对象为数组,则直接被覆盖对象覆盖,只要覆盖对象不为空 + if (_.isArray(objValue)) { + return srcValue; + } + }); + } else { + item = { + id: ++options.idGenerator, + [req.body.key]: req.body.value + }; + list.unshift(item); + } + + return { + code: 0, + msg: "success", + data: item + }; + } + }, + { + path: "/mock/" + name + "/columnUpdate", + method: "post", + handle(req: any): any { + for (const item of req.body) { + const item2 = findById(item.id, list); + if (item2) { + _.mergeWith(item2, item, (objValue, srcValue) => { + if (srcValue == null) { + return; + } + // 如果被合并对象为数组,则直接被覆盖对象覆盖,只要覆盖对象不为空 + if (_.isArray(objValue)) { + return srcValue; + } + }); + } + } + return { + code: 0, + msg: "success", + data: null + }; + } } ]; } diff --git a/packages/ui/certd-client/src/router/source/modules/crud.ts b/packages/ui/certd-client/src/router/source/modules/crud.ts index b6291772..19216858 100644 --- a/packages/ui/certd-client/src/router/source/modules/crud.ts +++ b/packages/ui/certd-client/src/router/source/modules/crud.ts @@ -537,18 +537,6 @@ export const crudResources = [ path: "/crud/feature/height", component: "/crud/feature/height/index.vue" }, - { - title: "可编辑", - name: "FeatureEditable", - path: "/crud/feature/editable", - component: "/crud/feature/editable/index.vue" - }, - { - title: "行编辑", - name: "FeatureEditableRow", - path: "/crud/feature/editable-row", - component: "/crud/feature/editable-row/index.vue" - }, { title: "查询框", name: "FeatureSearch", @@ -623,6 +611,41 @@ export const crudResources = [ } ] }, + { + title: "可编辑", + name: "Editable", + path: "/crud/editable", + redirect: "/crud/editable/free", + meta: { + icon: "ion:extension-puzzle-outline" + }, + children: [ + { + title: "自由编辑", + name: "EditableFree", + path: "/crud/editable/free", + component: "/crud/editable/free/index.vue" + }, + { + title: "行编辑", + name: "EditableRow", + path: "/crud/editable/row", + component: "/crud/editable/row/index.vue" + }, + { + title: "单元格编辑", + name: "EditableCell", + path: "/crud/editable/cell", + component: "/crud/editable/cell/index.vue" + }, + { + title: "子表格编辑", + name: "EditableVModel", + path: "/crud/editable/vmodel", + component: "/crud/editable/vmodel/index.vue" + } + ] + }, { title: "插槽", name: "Slots", diff --git a/packages/ui/certd-client/src/views/crud/editable/cell/api.ts b/packages/ui/certd-client/src/views/crud/editable/cell/api.ts new file mode 100644 index 00000000..ec4489fe --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/cell/api.ts @@ -0,0 +1,66 @@ +// @ts-ignore +import { requestForMock } from "/src/api/service"; +const request = requestForMock; +const apiPrefix = "/mock/EditableCell"; +export function GetList(query: any) { + return request({ + url: apiPrefix + "/page", + method: "get", + data: query + }); +} + +export function AddObj(obj: any) { + return request({ + url: apiPrefix + "/add", + method: "post", + data: obj + }); +} + +export function UpdateObj(obj: any) { + return request({ + url: apiPrefix + "/update", + method: "post", + data: obj + }); +} + +export function DelObj(id: any) { + return request({ + url: apiPrefix + "/delete", + method: "post", + params: { id } + }); +} + +export function GetObj(id: any) { + return request({ + url: apiPrefix + "/get", + method: "get", + params: { id } + }); +} + +export function BatchDelete(ids: any) { + return request({ + url: apiPrefix + "/batchDelete", + method: "post", + data: { ids } + }); +} + +export function UpdateCell(id: number, key: string, value: any) { + return request({ + url: apiPrefix + "/cellUpdate", + method: "post", + data: { id, key, value } + }); +} +export function UpdateColumn(data) { + return request({ + url: apiPrefix + "/columnUpdate", + method: "post", + data + }); +} diff --git a/packages/ui/certd-client/src/views/crud/editable/cell/crud.tsx b/packages/ui/certd-client/src/views/crud/editable/cell/crud.tsx new file mode 100644 index 00000000..453043da --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/cell/crud.tsx @@ -0,0 +1,206 @@ +import * as api from "./api"; +import { dict, compute, CreateCrudOptionsProps, CreateCrudOptionsRet, UserPageQuery, UserPageRes, EditReq, DelReq, AddReq } from "@fast-crud/fast-crud"; +import { computed, reactive, ref } from "vue"; +import _ from "lodash-es"; +import { EditableEachCellsOpts } from "@fast-crud/fast-crud"; +export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOptionsRet { + const { crudBinding } = crudExpose; + const pageRequest = async (query: UserPageQuery): Promise => { + return await api.GetList(query); + }; + const editRequest = async ({ form, row }: EditReq) => { + form.id = row.id; + return await api.UpdateObj(form); + }; + const delRequest = async ({ row }: DelReq) => { + return await api.DelObj(row.id); + }; + + const addRequest = async ({ form }: AddReq) => { + return await api.AddObj(form); + }; + + const radioDictRef = dict({ + url: "/mock/dicts/OpenStatusEnum?single" + }); + + const radioColumnValue = ref(""); + function columnUpdate(event: Event) { + //批量设置值 + // _.forEach(crudBinding.value?.data, (item) => { + // item.radio = event.target.value; + // }); + crudExpose.editable.eachCells((opts: EditableEachCellsOpts) => { + const { key, cell, rowData } = opts; + if (key === "radio") { + if (cell.isEditing) { + //@ts-ignore + rowData.radio = event.target.value; + } + } + }); + } + const radioColumnEditor = reactive({ + editing: false, + loading: false, + onSubmit: async () => { + console.log("onSubmit"); + radioColumnEditor.loading = true; + try { + const data: any[] = []; + for (const row of crudBinding.value.data) { + data.push({ id: row.id, radio: row.radio }); + } + await api.UpdateColumn(data); + crudExpose.editable.persist(); + radioColumnEditor.editing = false; + } finally { + radioColumnEditor.loading = false; + } + }, + onCancel: () => { + console.log("cancel"); + crudExpose.editable.cancel(); + radioColumnEditor.editing = false; + }, + "onUpdate:editing": (value: boolean) => { + radioColumnEditor.editing = value; + if (value === true) { + crudExpose.editable.activeCols({ cols: ["radio"], showAction: false }); + } + }, + vSlots: { + edit: () => { + return ; + } + } + }); + + return { + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest + }, + actionbar: { + buttons: { + // add: { + // show: computed(() => { + // if (crudBinding.value) { + // return !crudBinding.value?.table.editable.enabled; + // } + // return false; + // }) + // }, + // addRow: { + // show: computed(() => { + // if (crudBinding.value) { + // return crudBinding.value?.table.editable.enabled; + // } + // return false; + // }) + // } + } + }, + table: { + editable: { + mode: "cell", + exclusive: true, + exclusiveEffect: "cancel", + async updateCell(opts) { + const { row, key, value } = opts; + return await api.UpdateCell(row.id, key, value); + } + }, + slots: { + //编辑列 + headerCell({ column }: any) { + if (column.key === "radio") { + return ( +
+ + {column.title} (点我批量编辑) + +
+ ); + } + } + } + }, + columns: { + id: { + title: "ID", + type: "number", + form: { + show: false + }, + column: { width: 80, align: "center" } + }, + disable: { + title: "禁止编辑", + type: "text", + column: { + editable: { + disabled: true //也可以配置为方法,根据条件禁用或启用编辑 + // disabled: ({ column, index, row }) => { + // return index % 2 === 0; + // } + } + } + }, + radio: { + title: "状态", + search: { show: true }, + type: "dict-radio", + dict: radioDictRef, + column: { + width: 300 + } + }, + name: { + title: "姓名", + type: "text", + form: { + rules: [ + { required: true, message: "请输入姓名" }, + { + type: "string", + min: 2, + max: 10, + message: "长度在 2 到 10 个字符" + } + ] + } + }, + address: { + title: "地址", + children: { + province: { + title: "省份", + search: { show: true }, + type: "text" + }, + city: { + title: "城市", + search: { show: true }, + type: "dict-select", + dict: dict({ + value: "id", + label: "text", + data: [ + { id: "sz", text: "深圳", color: "success" }, + { id: "gz", text: "广州", color: "primary" }, + { id: "bj", text: "北京" }, + { id: "wh", text: "武汉" }, + { id: "sh", text: "上海" } + ] + }) + } + } + } + } + } + }; +} diff --git a/packages/ui/certd-client/src/views/crud/editable/cell/index.vue b/packages/ui/certd-client/src/views/crud/editable/cell/index.vue new file mode 100644 index 00000000..52e4511b --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/cell/index.vue @@ -0,0 +1,90 @@ + + + diff --git a/packages/ui/certd-client/src/views/crud/editable/cell/mock.ts b/packages/ui/certd-client/src/views/crud/editable/cell/mock.ts new file mode 100644 index 00000000..c82de123 --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/cell/mock.ts @@ -0,0 +1,25 @@ +// @ts-ignore +import mockUtil from "/src/mock/base"; +const options: any = { + name: "EditableCell", + idGenerator: 0 +}; +const list = [ + { + radio: "1", + children: [ + { + radio: "2" + } + ] + }, + { + radio: "2" + }, + { + radio: "0" + } +]; +options.list = list; +const mock = mockUtil.buildMock(options); +export default mock; diff --git a/packages/ui/certd-client/src/views/crud/editable/free/api.ts b/packages/ui/certd-client/src/views/crud/editable/free/api.ts new file mode 100644 index 00000000..d2a3098e --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/free/api.ts @@ -0,0 +1,50 @@ +import { requestForMock } from "/src/api/service"; +const request = requestForMock; +const apiPrefix = "/mock/EditableFree"; +export function GetList(query: any) { + return request({ + url: apiPrefix + "/page", + method: "get", + data: query + }); +} + +export function AddObj(obj: any) { + return request({ + url: apiPrefix + "/add", + method: "post", + data: obj + }); +} + +export function UpdateObj(obj: any) { + return request({ + url: apiPrefix + "/update", + method: "post", + data: obj + }); +} + +export function DelObj(id: any) { + return request({ + url: apiPrefix + "/delete", + method: "post", + params: { id } + }); +} + +export function GetObj(id: any) { + return request({ + url: apiPrefix + "/get", + method: "get", + params: { id } + }); +} + +export function BatchDelete(ids: any) { + return request({ + url: apiPrefix + "/batchDelete", + method: "post", + data: { ids } + }); +} diff --git a/packages/ui/certd-client/src/views/crud/editable/free/crud.tsx b/packages/ui/certd-client/src/views/crud/editable/free/crud.tsx new file mode 100644 index 00000000..71b20de3 --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/free/crud.tsx @@ -0,0 +1,115 @@ +import * as api from "./api"; +import { dict, compute, CreateCrudOptionsProps, CreateCrudOptionsRet, UserPageQuery, UserPageRes, EditReq, DelReq, AddReq } from "@fast-crud/fast-crud"; +export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOptionsRet { + const { crudBinding } = crudExpose; + const pageRequest = async (query: UserPageQuery): Promise => { + return await api.GetList(query); + }; + const editRequest = async ({ form, row }: EditReq) => { + form.id = row.id; + return await api.UpdateObj(form); + }; + const delRequest = async ({ row }: DelReq) => { + return await api.DelObj(row.id); + }; + + const addRequest = async ({ form }: AddReq) => { + return await api.AddObj(form); + }; + + return { + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest + }, + actionbar: { + buttons: { + add: { + show: false + }, + addRow: { + show: true + } + } + }, + table: { + editable: { + mode: "free" + } + }, + pagination: { + pageSize: 5, + pageSizes: [5, 10, 20, 50, 100] + }, + columns: { + id: { + title: "ID", + type: "number", + form: { + show: false + }, + column: { width: 80, align: "center" } + }, + disable: { + title: "禁止编辑", + type: "text", + column: { + editable: { + disabled: true //也可以配置为方法,根据条件禁用或启用编辑 + // disabled: ({ column, index, row }) => { + // return index % 2 === 0; + // } + } + } + }, + radio: { + title: "状态", + search: { show: true }, + type: "dict-radio", + dict: dict({ + url: "/mock/dicts/OpenStatusEnum?single" + }) + }, + name: { + title: "姓名", + type: "text", + form: { + rules: [ + { required: true, message: "请输入姓名" }, + { min: 2, max: 10, message: "长度在 2 到 10 个字符" } + ] + } + }, + address: { + title: "地址", + children: { + province: { + title: "省份", + search: { show: true }, + type: "text" + }, + city: { + title: "城市", + search: { show: true }, + type: "dict-select", + dict: dict({ + value: "id", + label: "text", + data: [ + { id: "sz", text: "深圳", color: "success" }, + { id: "gz", text: "广州", color: "primary" }, + { id: "bj", text: "北京" }, + { id: "wh", text: "武汉" }, + { id: "sh", text: "上海" } + ] + }) + } + } + } + } + } + }; +} diff --git a/packages/ui/certd-client/src/views/crud/editable/free/index.vue b/packages/ui/certd-client/src/views/crud/editable/free/index.vue new file mode 100644 index 00000000..ff6c8777 --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/free/index.vue @@ -0,0 +1,76 @@ + + + diff --git a/packages/ui/certd-client/src/views/crud/editable/free/mock.ts b/packages/ui/certd-client/src/views/crud/editable/free/mock.ts new file mode 100644 index 00000000..e2471c7b --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/free/mock.ts @@ -0,0 +1,24 @@ +import mockUtil from "/src/mock/base"; +const options: any = { + name: "EditableFree", + idGenerator: 0 +}; +const list = [ + { + radio: "1", + children: [ + { + radio: "2" + } + ] + }, + { + radio: "2" + }, + { + radio: "0" + } +]; +options.list = list; +const mock = mockUtil.buildMock(options); +export default mock; diff --git a/packages/ui/certd-client/src/views/crud/editable/row/api.ts b/packages/ui/certd-client/src/views/crud/editable/row/api.ts new file mode 100644 index 00000000..cad7e571 --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/row/api.ts @@ -0,0 +1,50 @@ +import { requestForMock } from "/src/api/service"; +const request = requestForMock; +const apiPrefix = "/mock/EditableRow"; +export function GetList(query: any) { + return request({ + url: apiPrefix + "/page", + method: "get", + data: query + }); +} + +export function AddObj(obj: any) { + return request({ + url: apiPrefix + "/add", + method: "post", + data: obj + }); +} + +export function UpdateObj(obj: any) { + return request({ + url: apiPrefix + "/update", + method: "post", + data: obj + }); +} + +export function DelObj(id: any) { + return request({ + url: apiPrefix + "/delete", + method: "post", + params: { id } + }); +} + +export function GetObj(id: any) { + return request({ + url: apiPrefix + "/get", + method: "get", + params: { id } + }); +} + +export function BatchDelete(ids: any) { + return request({ + url: apiPrefix + "/batchDelete", + method: "post", + data: { ids } + }); +} diff --git a/packages/ui/certd-client/src/views/crud/editable/row/crud.tsx b/packages/ui/certd-client/src/views/crud/editable/row/crud.tsx new file mode 100644 index 00000000..ebdd18ce --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/row/crud.tsx @@ -0,0 +1,143 @@ +import * as api from "./api"; +import { AddReq, compute, CreateCrudOptionsProps, CreateCrudOptionsRet, DelReq, dict, 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); + }; + const editRequest = async ({ form, row }: EditReq) => { + form.id = row.id; + return await api.UpdateObj(form); + }; + const delRequest = async ({ row }: DelReq) => { + return await api.DelObj(row.id); + }; + + const addRequest = async ({ form }: AddReq) => { + const id = await api.AddObj(form); + return { id }; + }; + + return { + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest + }, + //将 addRow 按钮启用 + actionbar: { buttons: { add: { show: false }, addRow: { show: true } } }, + table: { + editable: { + enabled: true, + mode: "row" + } + }, + columns: { + id: { + title: "ID", + type: "number", + form: { + show: false + }, + column: { width: 80, align: "center" } + }, + disable: { + title: "禁止编辑", + type: "text", + column: { + editable: { + disabled: true //也可以配置为方法,根据条件禁用或启用编辑 + // disabled: ({ column, index, row }) => { + // return index % 2 === 0; + // } + } + } + }, + radio: { + title: "状态", + search: { show: true }, + type: "dict-radio", + dict: dict({ + url: "/mock/dicts/OpenStatusEnum?single" + }), + column: { + width: 300 + }, + form: { + rules: { + async asyncValidator(context) { + console.log("context", context); + return true; + }, + message: "远程校验测试" + } + } + }, + target: { + title: "根据状态动态显隐", + search: { show: true }, + type: "text", + form: { + conditionalRender: { + match: ({ form }) => { + return form.radio === "2"; + }, + render: ({ form }) => { + return
已停止
; + } + }, + show: compute(({ form }) => { + return form.radio !== "0"; + }) + } + }, + "user.name": { + title: "姓名", + type: "text", + form: { + key: ["user", "name"], + rules: [ + { required: true, message: "请输入姓名" }, + { + type: "string", + min: 2, + max: 10, + message: "长度在 2 到 10 个字符" + } + ] + } + }, + address: { + title: "地址", + children: { + province: { + title: "省份", + search: { show: true }, + type: "text", + form: { + rules: [{ required: true, message: "请输入省份" }] + } + }, + city: { + title: "城市", + search: { show: true }, + type: "dict-select", + dict: dict({ + value: "id", + label: "text", + data: [ + { id: "sz", text: "深圳", color: "success" }, + { id: "gz", text: "广州", color: "primary" }, + { id: "bj", text: "北京" }, + { id: "wh", text: "武汉" }, + { id: "sh", text: "上海" } + ] + }) + } + } + } + } + } + }; +} diff --git a/packages/ui/certd-client/src/views/crud/editable/row/index.vue b/packages/ui/certd-client/src/views/crud/editable/row/index.vue new file mode 100644 index 00000000..0d019c89 --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/row/index.vue @@ -0,0 +1,43 @@ + + + diff --git a/packages/ui/certd-client/src/views/crud/editable/row/mock.ts b/packages/ui/certd-client/src/views/crud/editable/row/mock.ts new file mode 100644 index 00000000..89207f5f --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/row/mock.ts @@ -0,0 +1,24 @@ +import mockUtil from "/src/mock/base"; +const options: any = { + name: "EditableRow", + idGenerator: 0 +}; +const list = [ + { + radio: "1", + children: [ + { + radio: "2" + } + ] + }, + { + radio: "2" + }, + { + radio: "0" + } +]; +options.list = list; +const mock = mockUtil.buildMock(options); +export default mock; diff --git a/packages/ui/certd-client/src/views/crud/editable/vmodel/api.ts b/packages/ui/certd-client/src/views/crud/editable/vmodel/api.ts new file mode 100644 index 00000000..aac4305d --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/vmodel/api.ts @@ -0,0 +1,50 @@ +import { requestForMock } from "/src/api/service"; +const request = requestForMock; +const apiPrefix = "/mock/EditableVModel"; +export function GetList(query: any) { + return request({ + url: apiPrefix + "/page", + method: "get", + data: query + }); +} + +export function AddObj(obj: any) { + return request({ + url: apiPrefix + "/add", + method: "post", + data: obj + }); +} + +export function UpdateObj(obj: any) { + return request({ + url: apiPrefix + "/update", + method: "post", + data: obj + }); +} + +export function DelObj(id: any) { + return request({ + url: apiPrefix + "/delete", + method: "post", + params: { id } + }); +} + +export function GetObj(id: any) { + return request({ + url: apiPrefix + "/get", + method: "get", + params: { id } + }); +} + +export function BatchDelete(ids: any) { + return request({ + url: apiPrefix + "/batchDelete", + method: "post", + data: { ids } + }); +} diff --git a/packages/ui/certd-client/src/views/crud/editable/vmodel/crud.tsx b/packages/ui/certd-client/src/views/crud/editable/vmodel/crud.tsx new file mode 100644 index 00000000..9dac282f --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/vmodel/crud.tsx @@ -0,0 +1,79 @@ +import * as api from "./api"; +import { dict, compute, CreateCrudOptionsProps, CreateCrudOptionsRet, UserPageQuery, UserPageRes, EditReq, DelReq, AddReq } from "@fast-crud/fast-crud"; +import EditableFreeSub from "./free/index.vue"; +export default function (props: CreateCrudOptionsProps): CreateCrudOptionsRet { + const { crudBinding } = props.crudExpose; + const { crudExpose } = props; + const pageRequest = async (query: UserPageQuery): Promise => { + return await api.GetList(query); + }; + const editRequest = async ({ form, row }: EditReq) => { + form.id = row.id; + return await api.UpdateObj(form); + }; + const delRequest = async ({ row }: DelReq) => { + return await api.DelObj(row.id); + }; + + const addRequest = async ({ form }: AddReq) => { + return await api.AddObj(form); + }; + + return { + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest + }, + form: { + wrapper: { + width: "80%" + }, + async beforeSubmit() { + const validate = await crudExpose.getFormComponentRef("subTable")?.validate(); + if (validate !== true) { + return false; + } + } + }, + columns: { + id: { + title: "ID", + type: "number", + form: { + show: false + }, + column: { width: 80, align: "center" } + }, + radio: { + title: "状态", + search: { show: true }, + type: "dict-radio", + dict: dict({ + url: "/mock/dicts/OpenStatusEnum?single" + }) + }, + subTable: { + title: "子表格", + type: "text", + form: { + component: { + name: EditableFreeSub, + vModel: "modelValue" + }, + col: { + span: 24 + } + }, + column: { + formatter: ({ row }) => { + return row.subTable?.length + "条数据"; + } + } + } + } + } + }; +} diff --git a/packages/ui/certd-client/src/views/crud/editable/vmodel/free/api.ts b/packages/ui/certd-client/src/views/crud/editable/vmodel/free/api.ts new file mode 100644 index 00000000..4d602ee8 --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/vmodel/free/api.ts @@ -0,0 +1,50 @@ +import { requestForMock } from "/src/api/service"; +const request = requestForMock; +const apiPrefix = "/mock/EditableFreeSub"; +export function GetList(query: any) { + return request({ + url: apiPrefix + "/page", + method: "get", + data: query + }); +} + +export function AddObj(obj: any) { + return request({ + url: apiPrefix + "/add", + method: "post", + data: obj + }); +} + +export function UpdateObj(obj: any) { + return request({ + url: apiPrefix + "/update", + method: "post", + data: obj + }); +} + +export function DelObj(id: any) { + return request({ + url: apiPrefix + "/delete", + method: "post", + params: { id } + }); +} + +export function GetObj(id: any) { + return request({ + url: apiPrefix + "/get", + method: "get", + params: { id } + }); +} + +export function BatchDelete(ids: any) { + return request({ + url: apiPrefix + "/batchDelete", + method: "post", + data: { ids } + }); +} diff --git a/packages/ui/certd-client/src/views/crud/editable/vmodel/free/crud.tsx b/packages/ui/certd-client/src/views/crud/editable/vmodel/free/crud.tsx new file mode 100644 index 00000000..8bd58ca9 --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/vmodel/free/crud.tsx @@ -0,0 +1,89 @@ +import * as api from "./api"; +import { dict, compute, CreateCrudOptionsProps, CreateCrudOptionsRet, UserPageQuery, UserPageRes, EditReq, DelReq, AddReq } from "@fast-crud/fast-crud"; +export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOptionsRet { + const { crudBinding } = crudExpose; + // const pageRequest = async (query: UserPageQuery): Promise => { + // return await api.GetList(query); + // }; + // const editRequest = async ({ form, row }: EditReq) => { + // form.id = row.id; + // return await api.UpdateObj(form); + // }; + // const delRequest = async ({ row }: DelReq) => { + // return await api.DelObj(row.id); + // }; + // + // const addRequest = async ({ form }: AddReq) => { + // return await api.AddObj(form); + // }; + + return { + crudOptions: { + actionbar: { + buttons: { + add: { + show: false + }, + addRow: { + show: true + } + } + }, + search: { + show: false + }, + toolbar: { + buttons: { + refresh: { + show: false + } + } + }, + mode: { + name: "local", + isMergeWhenUpdate: true, + isAppendWhenAdd: true + }, + table: { + editable: { + enabled: true, + mode: "free" + } + }, + pagination: { show: false, pageSize: 9999999 }, + columns: { + id: { + title: "ID", + type: "number", + form: { + show: false + }, + column: { width: 80, align: "center" } + }, + radio: { + title: "状态", + search: { show: true }, + type: "dict-radio", + dict: dict({ + url: "/mock/dicts/OpenStatusEnum?single" + }) + }, + name: { + title: "姓名", + type: "text", + form: { + rules: [ + { required: true, message: "请输入姓名" }, + { min: 2, max: 10, message: "长度在 2 到 10 个字符" } + ] + } + }, + createdAt: { + column: { + show: false + } + } + } + } + }; +} diff --git a/packages/ui/certd-client/src/views/crud/editable/vmodel/free/index.vue b/packages/ui/certd-client/src/views/crud/editable/vmodel/free/index.vue new file mode 100644 index 00000000..9c67a047 --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/vmodel/free/index.vue @@ -0,0 +1,70 @@ + + + diff --git a/packages/ui/certd-client/src/views/crud/editable/vmodel/free/mock.ts b/packages/ui/certd-client/src/views/crud/editable/vmodel/free/mock.ts new file mode 100644 index 00000000..faff20e7 --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/vmodel/free/mock.ts @@ -0,0 +1,20 @@ +import mockUtil from "/src/mock/base"; +const options: any = { + name: "EditableFreeSub", + idGenerator: 0 +}; +const list = [ + { + radio: "1", + name: "王强" + }, + { + radio: "2" + }, + { + radio: "0" + } +]; +options.list = list; +const mock = mockUtil.buildMock(options); +export default mock; diff --git a/packages/ui/certd-client/src/views/crud/editable/vmodel/index.vue b/packages/ui/certd-client/src/views/crud/editable/vmodel/index.vue new file mode 100644 index 00000000..eb5019ff --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/vmodel/index.vue @@ -0,0 +1,40 @@ + + + diff --git a/packages/ui/certd-client/src/views/crud/editable/vmodel/mock.ts b/packages/ui/certd-client/src/views/crud/editable/vmodel/mock.ts new file mode 100644 index 00000000..a43343c5 --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/vmodel/mock.ts @@ -0,0 +1,20 @@ +import mockUtil from "/src/mock/base"; +const options: any = { + name: "EditableVModel", + idGenerator: 0 +}; +const list = [ + { + radio: "1", + subTable: [{ id: 0, name: "王小虎" }] + }, + { + radio: "2" + }, + { + radio: "0" + } +]; +options.list = list; +const mock = mockUtil.buildMock(options); +export default mock; diff --git a/packages/ui/certd-client/tsconfig.json b/packages/ui/certd-client/tsconfig.json index c9ea1dd5..a9342927 100644 --- a/packages/ui/certd-client/tsconfig.json +++ b/packages/ui/certd-client/tsconfig.json @@ -1,7 +1,8 @@ { "compilerOptions": { // 这样就可以对 `this` 上的数据属性进行更严格的推断` - "noImplicitAny": true, + "noImplicitAny": false, + "allowJs": true, "target": "esnext", "module": "esnext", "strict": true, From 2277c879081046edc7cb76ca4aa69e1a35be642d Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot Date: Tue, 21 Nov 2023 19:24:11 +0000 Subject: [PATCH 05/12] =?UTF-8?q?=F0=9F=94=B1:=20[client]=20sync=20upgrade?= =?UTF-8?q?=20with=202=20commits=20[trident-sync]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit chore: --- .../ui/certd-client/src/views/crud/editable/cell/crud.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/ui/certd-client/src/views/crud/editable/cell/crud.tsx b/packages/ui/certd-client/src/views/crud/editable/cell/crud.tsx index 453043da..658d1500 100644 --- a/packages/ui/certd-client/src/views/crud/editable/cell/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/editable/cell/crud.tsx @@ -108,9 +108,11 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti editable: { mode: "cell", exclusive: true, - exclusiveEffect: "cancel", + //排他式激活效果,将其他行的编辑状态触发保存 + exclusiveEffect: "save", async updateCell(opts) { const { row, key, value } = opts; + //如果是添加,需要返回{[rowKey]:xxx},比如:{id:2} return await api.UpdateCell(row.id, key, value); } }, From 3393bde8203684bcbc605a2d1e4a9190b6e751f4 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot Date: Wed, 22 Nov 2023 19:24:09 +0000 Subject: [PATCH 06/12] =?UTF-8?q?=F0=9F=94=B1:=20[client]=20sync=20upgrade?= =?UTF-8?q?=20with=202=20commits=20[trident-sync]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit build: publish success --- packages/ui/certd-client/CHANGELOG.md | 4 ++++ packages/ui/certd-client/package.json | 10 +++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/ui/certd-client/CHANGELOG.md b/packages/ui/certd-client/CHANGELOG.md index 5ca51044..15ff7477 100644 --- a/packages/ui/certd-client/CHANGELOG.md +++ b/packages/ui/certd-client/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.19.2](https://github.com/fast-crud/fast-crud/compare/v1.19.1...v1.19.2) (2023-11-22) + +**Note:** Version bump only for package @fast-crud/fs-admin-antdv + ## [1.19.1](https://github.com/fast-crud/fast-crud/compare/v1.19.0...v1.19.1) (2023-11-20) ### Bug Fixes diff --git a/packages/ui/certd-client/package.json b/packages/ui/certd-client/package.json index ccbef7ba..0553a7f5 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.19.1", + "version": "1.19.2", "private": true, "scripts": { "dev": "vite", @@ -26,10 +26,10 @@ "@ant-design/icons-vue": "^6.1.0", "@aws-sdk/client-s3": "^3.383.0", "@aws-sdk/s3-request-presigner": "^3.383.0", - "@fast-crud/fast-crud": "^1.19.1", - "@fast-crud/fast-extends": "^1.19.1", - "@fast-crud/ui-antdv": "^1.19.1", - "@fast-crud/ui-interface": "^1.19.1", + "@fast-crud/fast-crud": "^1.19.2", + "@fast-crud/fast-extends": "^1.19.2", + "@fast-crud/ui-antdv": "^1.19.2", + "@fast-crud/ui-interface": "^1.19.2", "@iconify/iconify": "^3.1.1", "@iconify/json": "^2.2.98", "@purge-icons/generated": "^0.9.0", From 282f8b4e02277c1699323503cb8c33572cbfe97a Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot Date: Thu, 23 Nov 2023 19:24:19 +0000 Subject: [PATCH 07/12] =?UTF-8?q?=F0=9F=94=B1:=20[client]=20sync=20upgrade?= =?UTF-8?q?=20with=205=20commits=20[trident-sync]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit chore: chore: chore: editRequest 判断form.id不为空 chore: --- packages/ui/certd-client/src/mock/base.ts | 7 +- .../src/router/source/modules/crud.ts | 8 +- .../src/views/crud/advanced/big-data/crud.tsx | 4 +- .../views/crud/advanced/from-backend/crud.tsx | 4 +- .../crud/advanced/in-dialog/crud/crud.tsx | 4 +- .../src/views/crud/advanced/linkage/crud.tsx | 4 +- .../crud/advanced/local-pagination/crud.tsx | 4 +- .../crud/advanced/nest/aside-table/crud.tsx | 4 +- .../src/views/crud/advanced/nest/crud.tsx | 4 +- .../crud/advanced/nest/sub-table/crud.tsx | 4 +- .../crud/basis/column-merge-plugin/crud.tsx | 4 +- .../src/views/crud/basis/columns-set/crud.tsx | 4 +- .../views/crud/basis/compute-more/crud.tsx | 4 +- .../src/views/crud/basis/compute/crud.tsx | 4 +- .../src/views/crud/basis/custom/crud.tsx | 4 +- .../src/views/crud/basis/first/crud.ts | 4 +- .../src/views/crud/basis/i18n/crud.tsx | 4 +- .../src/views/crud/basis/layout-card/crud.tsx | 4 +- .../views/crud/basis/layout-custom/crud.tsx | 4 +- .../src/views/crud/basis/reset/crud.tsx | 4 +- .../views/crud/basis/value-change/crud.tsx | 4 +- .../src/views/crud/component/button/crud.tsx | 4 +- .../views/crud/component/cascader/crud.tsx | 4 +- .../views/crud/component/checkbox/crud.tsx | 4 +- .../src/views/crud/component/date/crud.tsx | 4 +- .../src/views/crud/component/editor/crud.tsx | 4 +- .../src/views/crud/component/icon/crud.tsx | 4 +- .../src/views/crud/component/json/crud.tsx | 4 +- .../src/views/crud/component/number/crud.tsx | 4 +- .../src/views/crud/component/radio/crud.tsx | 4 +- .../src/views/crud/component/select/crud.tsx | 4 +- .../src/views/crud/component/switch/crud.tsx | 4 +- .../crud/component/table-select/crud.tsx | 4 +- .../src/views/crud/component/text/crud.tsx | 4 +- .../src/views/crud/component/tree/crud.tsx | 4 +- .../crud/component/uploader/alioss/crud.tsx | 4 +- .../crud/component/uploader/cos/crud.tsx | 4 +- .../crud/component/uploader/cropper/crud.tsx | 4 +- .../crud/component/uploader/form/crud.tsx | 4 +- .../crud/component/uploader/qiniu/crud.tsx | 4 +- .../views/crud/component/uploader/s3/crud.tsx | 4 +- .../src/views/crud/debug/crud.tsx | 4 +- .../src/views/crud/dict/cloneable/crud.tsx | 4 +- .../src/views/crud/dict/prototype/crud.tsx | 4 +- .../views/crud/dict/shared/manager/crud.tsx | 4 +- .../src/views/crud/dict/shared/use/crud.tsx | 4 +- .../src/views/crud/dict/single/crud.tsx | 4 +- .../src/views/crud/editable/cell/crud.tsx | 4 +- .../src/views/crud/editable/free/crud.tsx | 4 +- .../src/views/crud/editable/row/crud.tsx | 4 +- .../editable/{vmodel/free => sub-crud}/api.ts | 2 +- .../src/views/crud/editable/sub-crud/crud.tsx | 92 +++++++++++++ .../views/crud/editable/sub-crud/index.vue | 43 +++++++ .../{vmodel/free => sub-crud}/mock.ts | 4 +- .../views/crud/editable/sub-crud/row/api.ts | 50 ++++++++ .../views/crud/editable/sub-crud/row/crud.tsx | 121 ++++++++++++++++++ .../crud/editable/sub-crud/row/index.vue | 104 +++++++++++++++ .../views/crud/editable/sub-crud/row/mock.ts | 22 ++++ .../src/views/crud/editable/vmodel/crud.tsx | 4 +- .../views/crud/editable/vmodel/free/crud.tsx | 18 +-- .../views/crud/feature/column-resize/crud.tsx | 4 +- .../views/crud/feature/column-sort/crud.tsx | 4 +- .../views/crud/feature/columns-set/crud.tsx | 4 +- .../views/crud/feature/editable-row/crud.tsx | 4 +- .../src/views/crud/feature/editable/crud.tsx | 4 +- .../src/views/crud/feature/expand/crud.tsx | 4 +- .../src/views/crud/feature/export/crud.tsx | 4 +- .../src/views/crud/feature/filter/crud.tsx | 4 +- .../src/views/crud/feature/fixed/crud.tsx | 4 +- .../views/crud/feature/header-group/crud.tsx | 4 +- .../src/views/crud/feature/header/crud.tsx | 4 +- .../src/views/crud/feature/height/crud.tsx | 4 +- .../src/views/crud/feature/hide/crud.tsx | 4 +- .../src/views/crud/feature/index/crud.tsx | 4 +- .../src/views/crud/feature/merge/crud.tsx | 4 +- .../src/views/crud/feature/remove/crud.tsx | 4 +- .../views/crud/feature/search-multi/crud.tsx | 4 +- .../src/views/crud/feature/search/crud.tsx | 4 +- .../crud/feature/selection-radio/crud.tsx | 4 +- .../src/views/crud/feature/selection/crud.tsx | 4 +- .../src/views/crud/feature/sortable/crud.tsx | 4 +- .../src/views/crud/feature/tabs/crud.tsx | 4 +- .../src/views/crud/feature/tree/crud.tsx | 4 +- .../views/crud/feature/value-builder/crud.tsx | 4 +- .../src/views/crud/form/base/crud.tsx | 4 +- .../src/views/crud/form/custom-form/crud.tsx | 4 +- .../src/views/crud/form/drawer/crud.tsx | 4 +- .../src/views/crud/form/group-tabs/crud.tsx | 4 +- .../src/views/crud/form/group/crud.tsx | 4 +- .../src/views/crud/form/helper/crud.tsx | 4 +- .../src/views/crud/form/inner/area/crud.tsx | 4 +- .../src/views/crud/form/inner/crud.tsx | 4 +- .../src/views/crud/form/layout-flex/crud.tsx | 4 +- .../src/views/crud/form/layout-grid/crud.tsx | 4 +- .../src/views/crud/form/layout/crud.tsx | 4 +- .../src/views/crud/form/nest/crud.tsx | 4 +- .../src/views/crud/form/new-page/crud.tsx | 4 +- .../src/views/crud/form/render/crud.tsx | 4 +- .../src/views/crud/form/reset/crud.tsx | 4 +- .../views/crud/form/single-column/crud.tsx | 4 +- .../src/views/crud/form/validation/crud.tsx | 4 +- .../src/views/crud/form/view/crud.tsx | 4 +- .../views/crud/row-handle/dropdown/crud.tsx | 4 +- .../views/crud/row-handle/tooltip/crud.tsx | 4 +- .../src/views/crud/slots/cell/crud.tsx | 4 +- .../src/views/crud/slots/form-item/crud.tsx | 4 +- .../src/views/crud/slots/form/crud.tsx | 4 +- .../src/views/crud/slots/layout/crud.tsx | 4 +- .../src/views/crud/slots/search/crud.tsx | 4 +- 109 files changed, 743 insertions(+), 120 deletions(-) rename packages/ui/certd-client/src/views/crud/editable/{vmodel/free => sub-crud}/api.ts (95%) create mode 100644 packages/ui/certd-client/src/views/crud/editable/sub-crud/crud.tsx create mode 100644 packages/ui/certd-client/src/views/crud/editable/sub-crud/index.vue rename packages/ui/certd-client/src/views/crud/editable/{vmodel/free => sub-crud}/mock.ts (78%) create mode 100644 packages/ui/certd-client/src/views/crud/editable/sub-crud/row/api.ts create mode 100644 packages/ui/certd-client/src/views/crud/editable/sub-crud/row/crud.tsx create mode 100644 packages/ui/certd-client/src/views/crud/editable/sub-crud/row/index.vue create mode 100644 packages/ui/certd-client/src/views/crud/editable/sub-crud/row/mock.ts diff --git a/packages/ui/certd-client/src/mock/base.ts b/packages/ui/certd-client/src/mock/base.ts index 7a8cecfa..1ddabc6c 100644 --- a/packages/ui/certd-client/src/mock/base.ts +++ b/packages/ui/certd-client/src/mock/base.ts @@ -2,7 +2,10 @@ import _ from "lodash-es"; function copyList(originList: any, newList: any, options: any, parentId?: any) { for (const item of originList) { const newItem: any = _.cloneDeep(item); - newItem.parentId = parentId; + if(parentId!= null && newItem.parentId == null){ + newItem.parentId = parentId; + } + newItem.id = ++options.idGenerator; newList.push(newItem); if (item.children != null) { @@ -215,7 +218,7 @@ const mockUtil: any = { return { code: 0, msg: "success", - data: req.body.id + data: _.cloneDeep(req.body) }; } }, diff --git a/packages/ui/certd-client/src/router/source/modules/crud.ts b/packages/ui/certd-client/src/router/source/modules/crud.ts index 19216858..950af05d 100644 --- a/packages/ui/certd-client/src/router/source/modules/crud.ts +++ b/packages/ui/certd-client/src/router/source/modules/crud.ts @@ -617,7 +617,7 @@ export const crudResources = [ path: "/crud/editable", redirect: "/crud/editable/free", meta: { - icon: "ion:extension-puzzle-outline" + icon: "ion:create-outline" }, children: [ { @@ -643,6 +643,12 @@ export const crudResources = [ name: "EditableVModel", path: "/crud/editable/vmodel", component: "/crud/editable/vmodel/index.vue" + }, + { + title: "子CRUD", + name: "EditableSubCrud", + path: "/crud/editable/sub-crud", + component: "/crud/editable/sub-crud/index.vue" } ] }, diff --git a/packages/ui/certd-client/src/views/crud/advanced/big-data/crud.tsx b/packages/ui/certd-client/src/views/crud/advanced/big-data/crud.tsx index ddf4ef9e..48ba09cd 100644 --- a/packages/ui/certd-client/src/views/crud/advanced/big-data/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/advanced/big-data/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/advanced/from-backend/crud.tsx b/packages/ui/certd-client/src/views/crud/advanced/from-backend/crud.tsx index 37613382..769ee3c5 100644 --- a/packages/ui/certd-client/src/views/crud/advanced/from-backend/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/advanced/from-backend/crud.tsx @@ -13,7 +13,9 @@ export default async function (props: CreateCrudOptionsProps): Promise { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/advanced/in-dialog/crud/crud.tsx b/packages/ui/certd-client/src/views/crud/advanced/in-dialog/crud/crud.tsx index 9788e26a..b08752a9 100644 --- a/packages/ui/certd-client/src/views/crud/advanced/in-dialog/crud/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/advanced/in-dialog/crud/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/advanced/linkage/crud.tsx b/packages/ui/certd-client/src/views/crud/advanced/linkage/crud.tsx index a18c8cdc..77e1da38 100644 --- a/packages/ui/certd-client/src/views/crud/advanced/linkage/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/advanced/linkage/crud.tsx @@ -5,7 +5,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/advanced/local-pagination/crud.tsx b/packages/ui/certd-client/src/views/crud/advanced/local-pagination/crud.tsx index 9b9891c6..1ed87a10 100644 --- a/packages/ui/certd-client/src/views/crud/advanced/local-pagination/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/advanced/local-pagination/crud.tsx @@ -37,7 +37,9 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat }; }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } await api.UpdateObj(form); //更新本地数据 const tableData = localDataRef.value; diff --git a/packages/ui/certd-client/src/views/crud/advanced/nest/aside-table/crud.tsx b/packages/ui/certd-client/src/views/crud/advanced/nest/aside-table/crud.tsx index dc8978da..ddbccd59 100644 --- a/packages/ui/certd-client/src/views/crud/advanced/nest/aside-table/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/advanced/nest/aside-table/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/advanced/nest/crud.tsx b/packages/ui/certd-client/src/views/crud/advanced/nest/crud.tsx index a0fe05b6..efbcb487 100644 --- a/packages/ui/certd-client/src/views/crud/advanced/nest/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/advanced/nest/crud.tsx @@ -8,7 +8,9 @@ export default function ({ crudExpose, context: { asideTableRef } }: CreateCrudO return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/advanced/nest/sub-table/crud.tsx b/packages/ui/certd-client/src/views/crud/advanced/nest/sub-table/crud.tsx index e4fa119b..52a7169c 100644 --- a/packages/ui/certd-client/src/views/crud/advanced/nest/sub-table/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/advanced/nest/sub-table/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose, context: { props, ctx } }: CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/basis/column-merge-plugin/crud.tsx b/packages/ui/certd-client/src/views/crud/basis/column-merge-plugin/crud.tsx index 85019be6..ad9dc9be 100644 --- a/packages/ui/certd-client/src/views/crud/basis/column-merge-plugin/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/basis/column-merge-plugin/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/basis/columns-set/crud.tsx b/packages/ui/certd-client/src/views/crud/basis/columns-set/crud.tsx index f62a9da7..60f2241c 100644 --- a/packages/ui/certd-client/src/views/crud/basis/columns-set/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/basis/columns-set/crud.tsx @@ -7,7 +7,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/basis/compute-more/crud.tsx b/packages/ui/certd-client/src/views/crud/basis/compute-more/crud.tsx index 73be370e..806bc87e 100644 --- a/packages/ui/certd-client/src/views/crud/basis/compute-more/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/basis/compute-more/crud.tsx @@ -7,7 +7,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/basis/compute/crud.tsx b/packages/ui/certd-client/src/views/crud/basis/compute/crud.tsx index caf67e0f..ef3db7c1 100644 --- a/packages/ui/certd-client/src/views/crud/basis/compute/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/basis/compute/crud.tsx @@ -10,7 +10,9 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/basis/custom/crud.tsx b/packages/ui/certd-client/src/views/crud/basis/custom/crud.tsx index 318f5f97..1d3ee4a7 100644 --- a/packages/ui/certd-client/src/views/crud/basis/custom/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/basis/custom/crud.tsx @@ -9,7 +9,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/basis/first/crud.ts b/packages/ui/certd-client/src/views/crud/basis/first/crud.ts index c0ed096a..41e6acf5 100644 --- a/packages/ui/certd-client/src/views/crud/basis/first/crud.ts +++ b/packages/ui/certd-client/src/views/crud/basis/first/crud.ts @@ -5,7 +5,9 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/basis/i18n/crud.tsx b/packages/ui/certd-client/src/views/crud/basis/i18n/crud.tsx index 48d9c48b..1cc13c44 100644 --- a/packages/ui/certd-client/src/views/crud/basis/i18n/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/basis/i18n/crud.tsx @@ -7,7 +7,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/basis/layout-card/crud.tsx b/packages/ui/certd-client/src/views/crud/basis/layout-card/crud.tsx index 0036ab86..d768ca8a 100644 --- a/packages/ui/certd-client/src/views/crud/basis/layout-card/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/basis/layout-card/crud.tsx @@ -7,7 +7,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/basis/layout-custom/crud.tsx b/packages/ui/certd-client/src/views/crud/basis/layout-custom/crud.tsx index af9062dd..29fbe63f 100644 --- a/packages/ui/certd-client/src/views/crud/basis/layout-custom/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/basis/layout-custom/crud.tsx @@ -7,7 +7,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/basis/reset/crud.tsx b/packages/ui/certd-client/src/views/crud/basis/reset/crud.tsx index 07f81503..1a83d2be 100644 --- a/packages/ui/certd-client/src/views/crud/basis/reset/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/basis/reset/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/basis/value-change/crud.tsx b/packages/ui/certd-client/src/views/crud/basis/value-change/crud.tsx index 975ea76d..65990784 100644 --- a/packages/ui/certd-client/src/views/crud/basis/value-change/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/basis/value-change/crud.tsx @@ -7,7 +7,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/component/button/crud.tsx b/packages/ui/certd-client/src/views/crud/component/button/crud.tsx index 94385795..03ca4bb3 100644 --- a/packages/ui/certd-client/src/views/crud/component/button/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/component/button/crud.tsx @@ -7,7 +7,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/component/cascader/crud.tsx b/packages/ui/certd-client/src/views/crud/component/cascader/crud.tsx index fa2aa0a2..c9f5a1be 100644 --- a/packages/ui/certd-client/src/views/crud/component/cascader/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/component/cascader/crud.tsx @@ -7,7 +7,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/component/checkbox/crud.tsx b/packages/ui/certd-client/src/views/crud/component/checkbox/crud.tsx index a35838dd..7741e2e8 100644 --- a/packages/ui/certd-client/src/views/crud/component/checkbox/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/component/checkbox/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/component/date/crud.tsx b/packages/ui/certd-client/src/views/crud/component/date/crud.tsx index 3e241355..052caa7d 100644 --- a/packages/ui/certd-client/src/views/crud/component/date/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/component/date/crud.tsx @@ -8,7 +8,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/component/editor/crud.tsx b/packages/ui/certd-client/src/views/crud/component/editor/crud.tsx index 3fcd7e02..c88a7034 100644 --- a/packages/ui/certd-client/src/views/crud/component/editor/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/component/editor/crud.tsx @@ -7,7 +7,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/component/icon/crud.tsx b/packages/ui/certd-client/src/views/crud/component/icon/crud.tsx index c8b55f0d..2ede7c46 100644 --- a/packages/ui/certd-client/src/views/crud/component/icon/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/component/icon/crud.tsx @@ -5,7 +5,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/component/json/crud.tsx b/packages/ui/certd-client/src/views/crud/component/json/crud.tsx index b2753af4..b57abafb 100644 --- a/packages/ui/certd-client/src/views/crud/component/json/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/component/json/crud.tsx @@ -5,7 +5,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/component/number/crud.tsx b/packages/ui/certd-client/src/views/crud/component/number/crud.tsx index 61c755bc..a72f88bc 100644 --- a/packages/ui/certd-client/src/views/crud/component/number/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/component/number/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/component/radio/crud.tsx b/packages/ui/certd-client/src/views/crud/component/radio/crud.tsx index a78acdbd..53eb38fe 100644 --- a/packages/ui/certd-client/src/views/crud/component/radio/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/component/radio/crud.tsx @@ -5,7 +5,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/component/select/crud.tsx b/packages/ui/certd-client/src/views/crud/component/select/crud.tsx index 8dbed6ad..d34c21bd 100644 --- a/packages/ui/certd-client/src/views/crud/component/select/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/component/select/crud.tsx @@ -46,7 +46,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/component/switch/crud.tsx b/packages/ui/certd-client/src/views/crud/component/switch/crud.tsx index 278283fa..ea7d9285 100644 --- a/packages/ui/certd-client/src/views/crud/component/switch/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/component/switch/crud.tsx @@ -5,7 +5,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/component/table-select/crud.tsx b/packages/ui/certd-client/src/views/crud/component/table-select/crud.tsx index acfaaa01..4b4e8067 100644 --- a/packages/ui/certd-client/src/views/crud/component/table-select/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/component/table-select/crud.tsx @@ -7,7 +7,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/component/text/crud.tsx b/packages/ui/certd-client/src/views/crud/component/text/crud.tsx index 46be924d..7579faaf 100644 --- a/packages/ui/certd-client/src/views/crud/component/text/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/component/text/crud.tsx @@ -7,7 +7,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/component/tree/crud.tsx b/packages/ui/certd-client/src/views/crud/component/tree/crud.tsx index 8a3300ec..b2e41d1d 100644 --- a/packages/ui/certd-client/src/views/crud/component/tree/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/component/tree/crud.tsx @@ -5,7 +5,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/component/uploader/alioss/crud.tsx b/packages/ui/certd-client/src/views/crud/component/uploader/alioss/crud.tsx index 762f2156..0cfb0a57 100644 --- a/packages/ui/certd-client/src/views/crud/component/uploader/alioss/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/component/uploader/alioss/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/component/uploader/cos/crud.tsx b/packages/ui/certd-client/src/views/crud/component/uploader/cos/crud.tsx index bd20eb7d..a0f8b7e5 100644 --- a/packages/ui/certd-client/src/views/crud/component/uploader/cos/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/component/uploader/cos/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/component/uploader/cropper/crud.tsx b/packages/ui/certd-client/src/views/crud/component/uploader/cropper/crud.tsx index fe827fd4..d7cb5ca3 100644 --- a/packages/ui/certd-client/src/views/crud/component/uploader/cropper/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/component/uploader/cropper/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/component/uploader/form/crud.tsx b/packages/ui/certd-client/src/views/crud/component/uploader/form/crud.tsx index de50d636..87911332 100644 --- a/packages/ui/certd-client/src/views/crud/component/uploader/form/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/component/uploader/form/crud.tsx @@ -7,7 +7,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/component/uploader/qiniu/crud.tsx b/packages/ui/certd-client/src/views/crud/component/uploader/qiniu/crud.tsx index 6e3d0f88..5f35c224 100644 --- a/packages/ui/certd-client/src/views/crud/component/uploader/qiniu/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/component/uploader/qiniu/crud.tsx @@ -5,7 +5,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { 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 e0f7be51..936c99d2 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 @@ -7,7 +7,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/debug/crud.tsx b/packages/ui/certd-client/src/views/crud/debug/crud.tsx index a919fec8..bbb1f4c6 100644 --- a/packages/ui/certd-client/src/views/crud/debug/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/debug/crud.tsx @@ -8,7 +8,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/dict/cloneable/crud.tsx b/packages/ui/certd-client/src/views/crud/dict/cloneable/crud.tsx index 72442e3a..b60884f1 100644 --- a/packages/ui/certd-client/src/views/crud/dict/cloneable/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/dict/cloneable/crud.tsx @@ -5,7 +5,9 @@ export default function createCrudOptions({}: CreateCrudOptionsProps): CreateCru return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/dict/prototype/crud.tsx b/packages/ui/certd-client/src/views/crud/dict/prototype/crud.tsx index e31ad7ef..6a9f7c45 100644 --- a/packages/ui/certd-client/src/views/crud/dict/prototype/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/dict/prototype/crud.tsx @@ -7,7 +7,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/dict/shared/manager/crud.tsx b/packages/ui/certd-client/src/views/crud/dict/shared/manager/crud.tsx index 5cceb4bb..d813167e 100644 --- a/packages/ui/certd-client/src/views/crud/dict/shared/manager/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/dict/shared/manager/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/dict/shared/use/crud.tsx b/packages/ui/certd-client/src/views/crud/dict/shared/use/crud.tsx index 33d0b214..9f46452e 100644 --- a/packages/ui/certd-client/src/views/crud/dict/shared/use/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/dict/shared/use/crud.tsx @@ -7,7 +7,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/dict/single/crud.tsx b/packages/ui/certd-client/src/views/crud/dict/single/crud.tsx index a0257edf..6461d3e4 100644 --- a/packages/ui/certd-client/src/views/crud/dict/single/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/dict/single/crud.tsx @@ -5,7 +5,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/editable/cell/crud.tsx b/packages/ui/certd-client/src/views/crud/editable/cell/crud.tsx index 658d1500..261f2a99 100644 --- a/packages/ui/certd-client/src/views/crud/editable/cell/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/editable/cell/crud.tsx @@ -9,7 +9,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/editable/free/crud.tsx b/packages/ui/certd-client/src/views/crud/editable/free/crud.tsx index 71b20de3..0880535c 100644 --- a/packages/ui/certd-client/src/views/crud/editable/free/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/editable/free/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/editable/row/crud.tsx b/packages/ui/certd-client/src/views/crud/editable/row/crud.tsx index ebdd18ce..ce4741db 100644 --- a/packages/ui/certd-client/src/views/crud/editable/row/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/editable/row/crud.tsx @@ -5,7 +5,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/editable/vmodel/free/api.ts b/packages/ui/certd-client/src/views/crud/editable/sub-crud/api.ts similarity index 95% rename from packages/ui/certd-client/src/views/crud/editable/vmodel/free/api.ts rename to packages/ui/certd-client/src/views/crud/editable/sub-crud/api.ts index 4d602ee8..22d2a630 100644 --- a/packages/ui/certd-client/src/views/crud/editable/vmodel/free/api.ts +++ b/packages/ui/certd-client/src/views/crud/editable/sub-crud/api.ts @@ -1,6 +1,6 @@ import { requestForMock } from "/src/api/service"; const request = requestForMock; -const apiPrefix = "/mock/EditableFreeSub"; +const apiPrefix = "/mock/EditableSubCrud"; export function GetList(query: any) { return request({ url: apiPrefix + "/page", diff --git a/packages/ui/certd-client/src/views/crud/editable/sub-crud/crud.tsx b/packages/ui/certd-client/src/views/crud/editable/sub-crud/crud.tsx new file mode 100644 index 00000000..c49cadb9 --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/sub-crud/crud.tsx @@ -0,0 +1,92 @@ +import * as api from "./api"; +import { dict, compute, CreateCrudOptionsProps, CreateCrudOptionsRet, UserPageQuery, UserPageRes, EditReq, DelReq, AddReq } from "@fast-crud/fast-crud"; +import EditableRowSub from "/@/views/crud/editable/sub-crud/row/index.vue"; +export default function (props: CreateCrudOptionsProps): CreateCrudOptionsRet { + const { crudBinding,crudRef } = props.crudExpose; + const { crudExpose } = props; + const pageRequest = async (query: UserPageQuery): Promise => { + return await api.GetList(query); + }; + const editRequest = async ({ form, row }: EditReq) => { + if (form.id == null) { + form.id = row.id; + } + return await api.UpdateObj(form); + }; + const delRequest = async ({ row }: DelReq) => { + return await api.DelObj(row.id); + }; + + const addRequest = async ({ form }: AddReq) => { + return await api.AddObj(form); + }; + + return { + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest + }, + form: { + wrapper: { + width: "80%" + }, + }, + columns: { + id: { + title: "ID", + type: "number", + form: { + show: false + }, + column: { width: 80, align: "center" } + }, + radio: { + title: "状态", + search: { show: true }, + type: "dict-radio", + dict: dict({ + url: "/mock/dicts/OpenStatusEnum?single" + }), + form:{ + rules: [{ required: true, message: "请选择状态" }] + } + }, + subTable: { + title: "子表格", + type: "text", + form: { + component: { + name: EditableRowSub, + id:compute(({form})=>{ + return form.id + }), + on:{ + async saveMain({form}){ + //保存主表 + const formRef = crudExpose.getFormRef() + const ret = await formRef.submit() + //将form改为编辑模式 + let formWrapperRef = crudExpose.getFormWrapperRef(); + formWrapperRef.setFormData(ret.res) + crudRef.value.formWrapperRef.formOptions.mode = "edit" + crudRef.value.formWrapperRef.title="编辑" + } + } + }, + col: { + span: 24 + }, + }, + column: { + formatter: ({ row }) => { + return "点击编辑查看子表"; + } + } + } + } + } + }; +} diff --git a/packages/ui/certd-client/src/views/crud/editable/sub-crud/index.vue b/packages/ui/certd-client/src/views/crud/editable/sub-crud/index.vue new file mode 100644 index 00000000..ce78a208 --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/sub-crud/index.vue @@ -0,0 +1,43 @@ + + + diff --git a/packages/ui/certd-client/src/views/crud/editable/vmodel/free/mock.ts b/packages/ui/certd-client/src/views/crud/editable/sub-crud/mock.ts similarity index 78% rename from packages/ui/certd-client/src/views/crud/editable/vmodel/free/mock.ts rename to packages/ui/certd-client/src/views/crud/editable/sub-crud/mock.ts index faff20e7..432236bc 100644 --- a/packages/ui/certd-client/src/views/crud/editable/vmodel/free/mock.ts +++ b/packages/ui/certd-client/src/views/crud/editable/sub-crud/mock.ts @@ -1,12 +1,12 @@ import mockUtil from "/src/mock/base"; const options: any = { - name: "EditableFreeSub", + name: "EditableSubCrud", idGenerator: 0 }; const list = [ { radio: "1", - name: "王强" + subTable: [{ id: 0, name: "王小虎" }] }, { radio: "2" diff --git a/packages/ui/certd-client/src/views/crud/editable/sub-crud/row/api.ts b/packages/ui/certd-client/src/views/crud/editable/sub-crud/row/api.ts new file mode 100644 index 00000000..fd58e2c3 --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/sub-crud/row/api.ts @@ -0,0 +1,50 @@ +import { requestForMock } from "/src/api/service"; +const request = requestForMock; +const apiPrefix = "/mock/EditableSubCrudTarget"; +export function GetList(query: any) { + return request({ + url: apiPrefix + "/page", + method: "get", + data: query + }); +} + +export function AddObj(obj: any) { + return request({ + url: apiPrefix + "/add", + method: "post", + data: obj + }); +} + +export function UpdateObj(obj: any) { + return request({ + url: apiPrefix + "/update", + method: "post", + data: obj + }); +} + +export function DelObj(id: any) { + return request({ + url: apiPrefix + "/delete", + method: "post", + params: { id } + }); +} + +export function GetObj(id: any) { + return request({ + url: apiPrefix + "/get", + method: "get", + params: { id } + }); +} + +export function BatchDelete(ids: any) { + return request({ + url: apiPrefix + "/batchDelete", + method: "post", + data: { ids } + }); +} diff --git a/packages/ui/certd-client/src/views/crud/editable/sub-crud/row/crud.tsx b/packages/ui/certd-client/src/views/crud/editable/sub-crud/row/crud.tsx new file mode 100644 index 00000000..19bf120a --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/sub-crud/row/crud.tsx @@ -0,0 +1,121 @@ +import { + AddReq, + CreateCrudOptionsProps, + CreateCrudOptionsRet, DelReq, + dict, + EditReq, + UserPageQuery, + UserPageRes +} from "@fast-crud/fast-crud"; +import * as api from "./api"; +export default function ({ crudExpose,context }: CreateCrudOptionsProps): CreateCrudOptionsRet { + const { crudBinding } = crudExpose; + const {parentIdRef} = context + const pageRequest = async (query: UserPageQuery): Promise => { + return await api.GetList(query); + }; + const editRequest = async ({ form, row }: EditReq) => { + if (form.id == null) { + form.id = row.id; + } + return await api.UpdateObj(form); + }; + const delRequest = async ({ row }: DelReq) => { + return await api.DelObj(row.id); + }; + + const addRequest = async ({ form }: AddReq) => { + return await api.AddObj(form); + }; + + return { + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest + }, + actionbar: { + buttons: { + add: { + show: false + }, + addRow: { + show: true + } + } + }, + search: { + show: false, + initialForm:{ + parentId:parentIdRef + } + }, + toolbar: { + buttons: { + refresh: { + show: false + } + } + }, + table: { + editable: { + enabled: true, + mode: "row", + activeDefault:false, + } + }, + // pagination: { show: false, pageSize: 9999999 }, + columns: { + id: { + title: "ID", + type: "number", + form: { + show: false + }, + column: { width: 80, align: "center" } + }, + radio: { + title: "状态", + search: { show: true }, + type: "dict-radio", + dict: dict({ + url: "/mock/dicts/OpenStatusEnum?single" + }), + form:{ + value:'1', + } + }, + name: { + title: "姓名", + type: "text", + form: { + rules: [ + { required: true, message: "请输入姓名" }, + { min: 2, max: 10, message: "长度在 2 到 10 个字符" } + ] + } + }, + parentId:{ + title: "父Id", + type: "number", + search:{ + show:true, + }, + form:{ + value:parentIdRef, + component:{ + disabled:true + } + } + }, + createdAt: { + column: { + show: false + } + } + } + } + }; +} diff --git a/packages/ui/certd-client/src/views/crud/editable/sub-crud/row/index.vue b/packages/ui/certd-client/src/views/crud/editable/sub-crud/row/index.vue new file mode 100644 index 00000000..df8b5b93 --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/sub-crud/row/index.vue @@ -0,0 +1,104 @@ + + + diff --git a/packages/ui/certd-client/src/views/crud/editable/sub-crud/row/mock.ts b/packages/ui/certd-client/src/views/crud/editable/sub-crud/row/mock.ts new file mode 100644 index 00000000..b35b22eb --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/editable/sub-crud/row/mock.ts @@ -0,0 +1,22 @@ +import mockUtil from "/src/mock/base"; +const options: any = { + name: "EditableSubCrudTarget", + idGenerator: 0 +}; +const list = [ + { + radio: "1", + name: "张三", + parentId:1 + }, + { + radio: "2", + parentId:2 + }, + { + parentId:3 + }, +]; +options.list = list; +const mock = mockUtil.buildMock(options); +export default mock; diff --git a/packages/ui/certd-client/src/views/crud/editable/vmodel/crud.tsx b/packages/ui/certd-client/src/views/crud/editable/vmodel/crud.tsx index 9dac282f..b91e83e9 100644 --- a/packages/ui/certd-client/src/views/crud/editable/vmodel/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/editable/vmodel/crud.tsx @@ -8,7 +8,9 @@ export default function (props: CreateCrudOptionsProps): CreateCrudOptionsRet { return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/editable/vmodel/free/crud.tsx b/packages/ui/certd-client/src/views/crud/editable/vmodel/free/crud.tsx index 8bd58ca9..96b88d23 100644 --- a/packages/ui/certd-client/src/views/crud/editable/vmodel/free/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/editable/vmodel/free/crud.tsx @@ -1,21 +1,7 @@ -import * as api from "./api"; -import { dict, compute, CreateCrudOptionsProps, CreateCrudOptionsRet, UserPageQuery, UserPageRes, EditReq, DelReq, AddReq } from "@fast-crud/fast-crud"; +import { CreateCrudOptionsProps, CreateCrudOptionsRet, dict } from "@fast-crud/fast-crud"; + export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOptionsRet { const { crudBinding } = crudExpose; - // const pageRequest = async (query: UserPageQuery): Promise => { - // return await api.GetList(query); - // }; - // const editRequest = async ({ form, row }: EditReq) => { - // form.id = row.id; - // return await api.UpdateObj(form); - // }; - // const delRequest = async ({ row }: DelReq) => { - // return await api.DelObj(row.id); - // }; - // - // const addRequest = async ({ form }: AddReq) => { - // return await api.AddObj(form); - // }; return { crudOptions: { diff --git a/packages/ui/certd-client/src/views/crud/feature/column-resize/crud.tsx b/packages/ui/certd-client/src/views/crud/feature/column-resize/crud.tsx index 788cd89f..6e4b4736 100644 --- a/packages/ui/certd-client/src/views/crud/feature/column-resize/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/feature/column-resize/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/feature/column-sort/crud.tsx b/packages/ui/certd-client/src/views/crud/feature/column-sort/crud.tsx index 11794a54..df885b76 100644 --- a/packages/ui/certd-client/src/views/crud/feature/column-sort/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/feature/column-sort/crud.tsx @@ -5,7 +5,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/feature/columns-set/crud.tsx b/packages/ui/certd-client/src/views/crud/feature/columns-set/crud.tsx index de504d61..5a38700d 100644 --- a/packages/ui/certd-client/src/views/crud/feature/columns-set/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/feature/columns-set/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/feature/editable-row/crud.tsx b/packages/ui/certd-client/src/views/crud/feature/editable-row/crud.tsx index b7849419..9804f887 100644 --- a/packages/ui/certd-client/src/views/crud/feature/editable-row/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/feature/editable-row/crud.tsx @@ -5,7 +5,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/feature/editable/crud.tsx b/packages/ui/certd-client/src/views/crud/feature/editable/crud.tsx index 7944f6f9..22105d59 100644 --- a/packages/ui/certd-client/src/views/crud/feature/editable/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/feature/editable/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/feature/expand/crud.tsx b/packages/ui/certd-client/src/views/crud/feature/expand/crud.tsx index 9bb65768..a1a76e6c 100644 --- a/packages/ui/certd-client/src/views/crud/feature/expand/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/feature/expand/crud.tsx @@ -7,7 +7,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/feature/export/crud.tsx b/packages/ui/certd-client/src/views/crud/feature/export/crud.tsx index 75b159cb..9c367423 100644 --- a/packages/ui/certd-client/src/views/crud/feature/export/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/feature/export/crud.tsx @@ -7,7 +7,9 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/feature/filter/crud.tsx b/packages/ui/certd-client/src/views/crud/feature/filter/crud.tsx index c480e862..b1f76742 100644 --- a/packages/ui/certd-client/src/views/crud/feature/filter/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/feature/filter/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/feature/fixed/crud.tsx b/packages/ui/certd-client/src/views/crud/feature/fixed/crud.tsx index 6cfa0c4f..777b1b6b 100644 --- a/packages/ui/certd-client/src/views/crud/feature/fixed/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/feature/fixed/crud.tsx @@ -5,7 +5,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/feature/header-group/crud.tsx b/packages/ui/certd-client/src/views/crud/feature/header-group/crud.tsx index 9ac49edf..709ffdf2 100644 --- a/packages/ui/certd-client/src/views/crud/feature/header-group/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/feature/header-group/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/feature/header/crud.tsx b/packages/ui/certd-client/src/views/crud/feature/header/crud.tsx index aafd7fb0..ab293411 100644 --- a/packages/ui/certd-client/src/views/crud/feature/header/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/feature/header/crud.tsx @@ -2,7 +2,9 @@ import * as api from "./api.js"; import { CreateCrudOptionsProps, dict, CreateCrudOptionsRet, EditReq, DelReq, AddReq } from "@fast-crud/fast-crud"; export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOptionsRet { const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/feature/height/crud.tsx b/packages/ui/certd-client/src/views/crud/feature/height/crud.tsx index 4bf77358..b2d4c4c0 100644 --- a/packages/ui/certd-client/src/views/crud/feature/height/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/feature/height/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/feature/hide/crud.tsx b/packages/ui/certd-client/src/views/crud/feature/hide/crud.tsx index f739203b..44eb9e19 100644 --- a/packages/ui/certd-client/src/views/crud/feature/hide/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/feature/hide/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/feature/index/crud.tsx b/packages/ui/certd-client/src/views/crud/feature/index/crud.tsx index c2d9eb1a..23c180a6 100644 --- a/packages/ui/certd-client/src/views/crud/feature/index/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/feature/index/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/feature/merge/crud.tsx b/packages/ui/certd-client/src/views/crud/feature/merge/crud.tsx index 1527eb49..e2182077 100644 --- a/packages/ui/certd-client/src/views/crud/feature/merge/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/feature/merge/crud.tsx @@ -5,7 +5,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/feature/remove/crud.tsx b/packages/ui/certd-client/src/views/crud/feature/remove/crud.tsx index df33f6af..26dd0d39 100644 --- a/packages/ui/certd-client/src/views/crud/feature/remove/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/feature/remove/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/feature/search-multi/crud.tsx b/packages/ui/certd-client/src/views/crud/feature/search-multi/crud.tsx index dfef9462..f85fd9e0 100644 --- a/packages/ui/certd-client/src/views/crud/feature/search-multi/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/feature/search-multi/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/feature/search/crud.tsx b/packages/ui/certd-client/src/views/crud/feature/search/crud.tsx index 6bac155c..92e77f5b 100644 --- a/packages/ui/certd-client/src/views/crud/feature/search/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/feature/search/crud.tsx @@ -8,7 +8,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/feature/selection-radio/crud.tsx b/packages/ui/certd-client/src/views/crud/feature/selection-radio/crud.tsx index 4f698eac..35dc3922 100644 --- a/packages/ui/certd-client/src/views/crud/feature/selection-radio/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/feature/selection-radio/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/feature/selection/crud.tsx b/packages/ui/certd-client/src/views/crud/feature/selection/crud.tsx index 44248f9e..6b8d1754 100644 --- a/packages/ui/certd-client/src/views/crud/feature/selection/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/feature/selection/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/feature/sortable/crud.tsx b/packages/ui/certd-client/src/views/crud/feature/sortable/crud.tsx index a1236ece..5a0b0a11 100644 --- a/packages/ui/certd-client/src/views/crud/feature/sortable/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/feature/sortable/crud.tsx @@ -5,7 +5,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/feature/tabs/crud.tsx b/packages/ui/certd-client/src/views/crud/feature/tabs/crud.tsx index 764f3f8e..f85fd593 100644 --- a/packages/ui/certd-client/src/views/crud/feature/tabs/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/feature/tabs/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/feature/tree/crud.tsx b/packages/ui/certd-client/src/views/crud/feature/tree/crud.tsx index c62be79f..3da1cb49 100644 --- a/packages/ui/certd-client/src/views/crud/feature/tree/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/feature/tree/crud.tsx @@ -7,7 +7,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/feature/value-builder/crud.tsx b/packages/ui/certd-client/src/views/crud/feature/value-builder/crud.tsx index 6bb5af69..6c739f94 100644 --- a/packages/ui/certd-client/src/views/crud/feature/value-builder/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/feature/value-builder/crud.tsx @@ -5,7 +5,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/form/base/crud.tsx b/packages/ui/certd-client/src/views/crud/form/base/crud.tsx index 2c39fb0f..9045f9f0 100644 --- a/packages/ui/certd-client/src/views/crud/form/base/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/form/base/crud.tsx @@ -8,7 +8,9 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { 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 90f91de0..73985ae5 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 @@ -87,7 +87,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/form/drawer/crud.tsx b/packages/ui/certd-client/src/views/crud/form/drawer/crud.tsx index e3c28280..d501e185 100644 --- a/packages/ui/certd-client/src/views/crud/form/drawer/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/form/drawer/crud.tsx @@ -5,7 +5,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/form/group-tabs/crud.tsx b/packages/ui/certd-client/src/views/crud/form/group-tabs/crud.tsx index 5a0d0fa5..5e41f415 100644 --- a/packages/ui/certd-client/src/views/crud/form/group-tabs/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/form/group-tabs/crud.tsx @@ -5,7 +5,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/form/group/crud.tsx b/packages/ui/certd-client/src/views/crud/form/group/crud.tsx index d9fbda5d..8379a33b 100644 --- a/packages/ui/certd-client/src/views/crud/form/group/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/form/group/crud.tsx @@ -7,7 +7,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/form/helper/crud.tsx b/packages/ui/certd-client/src/views/crud/form/helper/crud.tsx index bdfb2ef7..63eddf4f 100644 --- a/packages/ui/certd-client/src/views/crud/form/helper/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/form/helper/crud.tsx @@ -5,7 +5,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/form/inner/area/crud.tsx b/packages/ui/certd-client/src/views/crud/form/inner/area/crud.tsx index 1f2627a3..12cca181 100644 --- a/packages/ui/certd-client/src/views/crud/form/inner/area/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/form/inner/area/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/form/inner/crud.tsx b/packages/ui/certd-client/src/views/crud/form/inner/crud.tsx index 6efdfbdd..a812370b 100644 --- a/packages/ui/certd-client/src/views/crud/form/inner/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/form/inner/crud.tsx @@ -9,7 +9,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/form/layout-flex/crud.tsx b/packages/ui/certd-client/src/views/crud/form/layout-flex/crud.tsx index ac85344c..1350554d 100644 --- a/packages/ui/certd-client/src/views/crud/form/layout-flex/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/form/layout-flex/crud.tsx @@ -5,7 +5,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/form/layout-grid/crud.tsx b/packages/ui/certd-client/src/views/crud/form/layout-grid/crud.tsx index 1ed633e2..1903196f 100644 --- a/packages/ui/certd-client/src/views/crud/form/layout-grid/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/form/layout-grid/crud.tsx @@ -5,7 +5,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/form/layout/crud.tsx b/packages/ui/certd-client/src/views/crud/form/layout/crud.tsx index 49f7e23b..04f75b32 100644 --- a/packages/ui/certd-client/src/views/crud/form/layout/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/form/layout/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/form/nest/crud.tsx b/packages/ui/certd-client/src/views/crud/form/nest/crud.tsx index ee46c772..a8d24c60 100644 --- a/packages/ui/certd-client/src/views/crud/form/nest/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/form/nest/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/form/new-page/crud.tsx b/packages/ui/certd-client/src/views/crud/form/new-page/crud.tsx index 74a72057..32a97cdd 100644 --- a/packages/ui/certd-client/src/views/crud/form/new-page/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/form/new-page/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/form/render/crud.tsx b/packages/ui/certd-client/src/views/crud/form/render/crud.tsx index 6e704d54..1759d127 100644 --- a/packages/ui/certd-client/src/views/crud/form/render/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/form/render/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/form/reset/crud.tsx b/packages/ui/certd-client/src/views/crud/form/reset/crud.tsx index 6c9b8936..252935f3 100644 --- a/packages/ui/certd-client/src/views/crud/form/reset/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/form/reset/crud.tsx @@ -5,7 +5,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/form/single-column/crud.tsx b/packages/ui/certd-client/src/views/crud/form/single-column/crud.tsx index 3126bc39..73c30ea6 100644 --- a/packages/ui/certd-client/src/views/crud/form/single-column/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/form/single-column/crud.tsx @@ -5,7 +5,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/form/validation/crud.tsx b/packages/ui/certd-client/src/views/crud/form/validation/crud.tsx index 88144619..6396f5f8 100644 --- a/packages/ui/certd-client/src/views/crud/form/validation/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/form/validation/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/form/view/crud.tsx b/packages/ui/certd-client/src/views/crud/form/view/crud.tsx index da1f1c39..7c2108cd 100644 --- a/packages/ui/certd-client/src/views/crud/form/view/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/form/view/crud.tsx @@ -6,7 +6,9 @@ export default function ({}: CreateCrudOptionsProps): CreateCrudOptionsRet { return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/row-handle/dropdown/crud.tsx b/packages/ui/certd-client/src/views/crud/row-handle/dropdown/crud.tsx index 5f46713b..aba99e8d 100644 --- a/packages/ui/certd-client/src/views/crud/row-handle/dropdown/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/row-handle/dropdown/crud.tsx @@ -7,7 +7,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/row-handle/tooltip/crud.tsx b/packages/ui/certd-client/src/views/crud/row-handle/tooltip/crud.tsx index b3b7e505..029d8548 100644 --- a/packages/ui/certd-client/src/views/crud/row-handle/tooltip/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/row-handle/tooltip/crud.tsx @@ -7,7 +7,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/slots/cell/crud.tsx b/packages/ui/certd-client/src/views/crud/slots/cell/crud.tsx index b376a442..623a2ad8 100644 --- a/packages/ui/certd-client/src/views/crud/slots/cell/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/slots/cell/crud.tsx @@ -7,7 +7,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/slots/form-item/crud.tsx b/packages/ui/certd-client/src/views/crud/slots/form-item/crud.tsx index 7bb8e6b4..0064a216 100644 --- a/packages/ui/certd-client/src/views/crud/slots/form-item/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/slots/form-item/crud.tsx @@ -5,7 +5,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/slots/form/crud.tsx b/packages/ui/certd-client/src/views/crud/slots/form/crud.tsx index ef2c2757..c4665fd2 100644 --- a/packages/ui/certd-client/src/views/crud/slots/form/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/slots/form/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/slots/layout/crud.tsx b/packages/ui/certd-client/src/views/crud/slots/layout/crud.tsx index c34df26d..ee4a9585 100644 --- a/packages/ui/certd-client/src/views/crud/slots/layout/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/slots/layout/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { diff --git a/packages/ui/certd-client/src/views/crud/slots/search/crud.tsx b/packages/ui/certd-client/src/views/crud/slots/search/crud.tsx index 08696d8c..3018e225 100644 --- a/packages/ui/certd-client/src/views/crud/slots/search/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/slots/search/crud.tsx @@ -6,7 +6,9 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti return await api.GetList(query); }; const editRequest = async ({ form, row }: EditReq) => { - form.id = row.id; + if (form.id == null) { + form.id = row.id; + } return await api.UpdateObj(form); }; const delRequest = async ({ row }: DelReq) => { From 02bfbd501923368dcebb5ee6d279514bd3d93e13 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot Date: Wed, 6 Dec 2023 19:24:02 +0000 Subject: [PATCH 08/12] =?UTF-8?q?=F0=9F=94=B1:=20[client]=20sync=20upgrade?= =?UTF-8?q?=20with=202=20commits=20[trident-sync]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit perf: 增加formWatch示例 --- .../src/router/source/modules/crud.ts | 6 ++ .../src/views/crud/form/watch/api.ts | 43 +++++++++++ .../src/views/crud/form/watch/crud.tsx | 72 +++++++++++++++++++ .../src/views/crud/form/watch/index.vue | 33 +++++++++ .../src/views/crud/form/watch/mock.ts | 29 ++++++++ 5 files changed, 183 insertions(+) create mode 100644 packages/ui/certd-client/src/views/crud/form/watch/api.ts create mode 100644 packages/ui/certd-client/src/views/crud/form/watch/crud.tsx create mode 100644 packages/ui/certd-client/src/views/crud/form/watch/index.vue create mode 100644 packages/ui/certd-client/src/views/crud/form/watch/mock.ts diff --git a/packages/ui/certd-client/src/router/source/modules/crud.ts b/packages/ui/certd-client/src/router/source/modules/crud.ts index 950af05d..83a8854a 100644 --- a/packages/ui/certd-client/src/router/source/modules/crud.ts +++ b/packages/ui/certd-client/src/router/source/modules/crud.ts @@ -448,6 +448,12 @@ export const crudResources = [ name: "FormView", path: "/crud/form/view", component: "/crud/form/view/index.vue" + }, + { + title: "表单Watch", + name: "FormWatch", + path: "/crud/form/watch", + component: "/crud/form/watch/index.vue" } ] }, diff --git a/packages/ui/certd-client/src/views/crud/form/watch/api.ts b/packages/ui/certd-client/src/views/crud/form/watch/api.ts new file mode 100644 index 00000000..c7badfc5 --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/form/watch/api.ts @@ -0,0 +1,43 @@ +// @ts-ignore +import { requestForMock } from "/src/api/service"; +const request = requestForMock; +const apiPrefix = "/mock/FormWatch"; +export function GetList(query: any) { + return request({ + url: apiPrefix + "/page", + method: "get", + data: query + }); +} + +export function AddObj(obj: any) { + return request({ + url: apiPrefix + "/add", + method: "post", + data: obj + }); +} + +export function UpdateObj(obj: any) { + return request({ + url: apiPrefix + "/update", + method: "post", + data: obj + }); +} + +export function DelObj(id: any) { + return request({ + url: apiPrefix + "/delete", + method: "post", + params: { id } + }); +} + +export function GetObj(id: any) { + return request({ + url: apiPrefix + "/get", + method: "get", + params: { id } + }); +} diff --git a/packages/ui/certd-client/src/views/crud/form/watch/crud.tsx b/packages/ui/certd-client/src/views/crud/form/watch/crud.tsx new file mode 100644 index 00000000..52e4c0f8 --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/form/watch/crud.tsx @@ -0,0 +1,72 @@ +import * as api from "./api"; +import { AddReq, CreateCrudOptionsRet, DelReq, dict, EditReq, FormScopeContext, UserPageQuery, UserPageRes } from "@fast-crud/fast-crud"; + +export default function (): CreateCrudOptionsRet { + const pageRequest = async (query: UserPageQuery): Promise => { + return await api.GetList(query); + }; + const editRequest = async ({ form, row }: EditReq) => { + if (form.id == null) { + form.id = row.id; + } + return await api.UpdateObj(form); + }; + const delRequest = async ({ row }: DelReq) => { + return await api.DelObj(row.id); + }; + + const addRequest = async ({ form }: AddReq) => { + return await api.AddObj(form); + }; + + return { + crudOptions: { + settings: { + viewFormUseCellComponent: true + }, + request: { + pageRequest, + addRequest, + editRequest, + delRequest + }, + form: { + initialForm: { + name: "123" + }, + watch(context: FormScopeContext) { + const { form } = context; + form.c = form.a + form.b; + } + }, + columns: { + name: { + title: "姓名", + type: "text" + }, + age: { + title: "年龄", + type: "text" + }, + a: { + title: "a", + type: "number" + }, + b: { + title: "b", + type: "number" + }, + c: { + title: "c", + type: "number", + form: { + component: { + disabled: true + }, + helper: "c=a+b,实时计算" + } + } + } + } + }; +} diff --git a/packages/ui/certd-client/src/views/crud/form/watch/index.vue b/packages/ui/certd-client/src/views/crud/form/watch/index.vue new file mode 100644 index 00000000..0cd67f61 --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/form/watch/index.vue @@ -0,0 +1,33 @@ + + + diff --git a/packages/ui/certd-client/src/views/crud/form/watch/mock.ts b/packages/ui/certd-client/src/views/crud/form/watch/mock.ts new file mode 100644 index 00000000..5fe6a461 --- /dev/null +++ b/packages/ui/certd-client/src/views/crud/form/watch/mock.ts @@ -0,0 +1,29 @@ +//@ts-ignore +import mockUtil from "/src/mock/base"; + +const options: any = { + name: "FormWatch", + idGenerator: 0 +}; +const list = [ + { + name: "王小虎", + age: 15, + a: 1, + b: 2, + c: null + }, + { + name: "王小虎", + age: 15, + a: 1, + b: 3, + c: null + } +]; + +options.list = list; +options.copyTimes = 1000; +const mock = mockUtil.buildMock(options); + +export default mock; From b2abf1490b72f2d762d82b62bf73f32b4cea3d6d Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot Date: Fri, 15 Dec 2023 19:24:10 +0000 Subject: [PATCH 09/12] =?UTF-8?q?=F0=9F=94=B1:=20[client]=20sync=20upgrade?= =?UTF-8?q?=20with=202=20commits=20[trident-sync]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit build: publish success --- packages/ui/certd-client/CHANGELOG.md | 4 ++++ packages/ui/certd-client/package.json | 10 +++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/ui/certd-client/CHANGELOG.md b/packages/ui/certd-client/CHANGELOG.md index 15ff7477..bf09f26a 100644 --- a/packages/ui/certd-client/CHANGELOG.md +++ b/packages/ui/certd-client/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.19.3](https://github.com/fast-crud/fast-crud/compare/v1.19.2...v1.19.3) (2023-12-15) + +**Note:** Version bump only for package @fast-crud/fs-admin-antdv + ## [1.19.2](https://github.com/fast-crud/fast-crud/compare/v1.19.1...v1.19.2) (2023-11-22) **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 0553a7f5..23304f99 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.19.2", + "version": "1.19.3", "private": true, "scripts": { "dev": "vite", @@ -26,10 +26,10 @@ "@ant-design/icons-vue": "^6.1.0", "@aws-sdk/client-s3": "^3.383.0", "@aws-sdk/s3-request-presigner": "^3.383.0", - "@fast-crud/fast-crud": "^1.19.2", - "@fast-crud/fast-extends": "^1.19.2", - "@fast-crud/ui-antdv": "^1.19.2", - "@fast-crud/ui-interface": "^1.19.2", + "@fast-crud/fast-crud": "^1.19.3", + "@fast-crud/fast-extends": "^1.19.3", + "@fast-crud/ui-antdv": "^1.19.3", + "@fast-crud/ui-interface": "^1.19.3", "@iconify/iconify": "^3.1.1", "@iconify/json": "^2.2.98", "@purge-icons/generated": "^0.9.0", From 7d45db89bf3bd02f43ad118340b6ef0b5f521924 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot Date: Thu, 25 Jan 2024 19:23:52 +0000 Subject: [PATCH 10/12] =?UTF-8?q?=F0=9F=94=B1:=20[client]=20sync=20upgrade?= =?UTF-8?q?=20with=202=20commits=20[trident-sync]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit perf: 行编辑也支持排他式激活 Closes https://github.com/fast-crud/fast-crud/issues/332 --- packages/ui/certd-client/src/views/crud/editable/row/crud.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/ui/certd-client/src/views/crud/editable/row/crud.tsx b/packages/ui/certd-client/src/views/crud/editable/row/crud.tsx index ce4741db..7c955c68 100644 --- a/packages/ui/certd-client/src/views/crud/editable/row/crud.tsx +++ b/packages/ui/certd-client/src/views/crud/editable/row/crud.tsx @@ -15,8 +15,7 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti }; const addRequest = async ({ form }: AddReq) => { - const id = await api.AddObj(form); - return { id }; + return await api.AddObj(form); }; return { From 3e3373b8c72ccfde4992412400649de35e855e17 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot Date: Sun, 28 Jan 2024 19:24:14 +0000 Subject: [PATCH 11/12] =?UTF-8?q?=F0=9F=94=B1:=20[client]=20sync=20upgrade?= =?UTF-8?q?=20with=202=20commits=20[trident-sync]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit build: publish success --- packages/ui/certd-client/CHANGELOG.md | 7 +++++++ packages/ui/certd-client/package.json | 10 +++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/packages/ui/certd-client/CHANGELOG.md b/packages/ui/certd-client/CHANGELOG.md index bf09f26a..e96c8fdc 100644 --- a/packages/ui/certd-client/CHANGELOG.md +++ b/packages/ui/certd-client/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.20.0](https://github.com/fast-crud/fast-crud/compare/v1.19.3...v1.20.0) (2024-01-28) + +### Performance Improvements + +* 优化free模式,支持默认不激活 ([aeaf0a6](https://github.com/fast-crud/fast-crud/commit/aeaf0a683ecc24dcb86036daea363f3019347299)) +* first 增加 tour示例 ([b1ae0aa](https://github.com/fast-crud/fast-crud/commit/b1ae0aa2c901b38ca61151c4eba6e238b55fa0f0)) + ## [1.19.3](https://github.com/fast-crud/fast-crud/compare/v1.19.2...v1.19.3) (2023-12-15) **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 23304f99..b4bc2644 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.19.3", + "version": "1.20.0", "private": true, "scripts": { "dev": "vite", @@ -26,10 +26,10 @@ "@ant-design/icons-vue": "^6.1.0", "@aws-sdk/client-s3": "^3.383.0", "@aws-sdk/s3-request-presigner": "^3.383.0", - "@fast-crud/fast-crud": "^1.19.3", - "@fast-crud/fast-extends": "^1.19.3", - "@fast-crud/ui-antdv": "^1.19.3", - "@fast-crud/ui-interface": "^1.19.3", + "@fast-crud/fast-crud": "^1.20.0", + "@fast-crud/fast-extends": "^1.20.0", + "@fast-crud/ui-antdv": "^1.20.0", + "@fast-crud/ui-interface": "^1.20.0", "@iconify/iconify": "^3.1.1", "@iconify/json": "^2.2.98", "@purge-icons/generated": "^0.9.0", From 92f9371156fa78e1f3a0524c0d5a37d47c915f81 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot Date: Tue, 27 Feb 2024 19:24:07 +0000 Subject: [PATCH 12/12] =?UTF-8?q?=F0=9F=94=B1:=20[client]=20sync=20upgrade?= =?UTF-8?q?=20with=203=20commits=20[trident-sync]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit build: publish success fix: 修复1.20.0版本子表行編輯情況下,删除无效的bug Closes https://github.com/fast-crud/fast-crud/issues/362 --- packages/ui/certd-client/CHANGELOG.md | 4 ++++ packages/ui/certd-client/package.json | 11 ++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/ui/certd-client/CHANGELOG.md b/packages/ui/certd-client/CHANGELOG.md index e96c8fdc..b23a01db 100644 --- a/packages/ui/certd-client/CHANGELOG.md +++ b/packages/ui/certd-client/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.20.1](https://github.com/fast-crud/fast-crud/compare/v1.20.0...v1.20.1) (2024-02-27) + +**Note:** Version bump only for package @fast-crud/fs-admin-antdv + # [1.20.0](https://github.com/fast-crud/fast-crud/compare/v1.19.3...v1.20.0) (2024-01-28) ### Performance Improvements diff --git a/packages/ui/certd-client/package.json b/packages/ui/certd-client/package.json index b4bc2644..51ad88d8 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.20.0", + "version": "1.20.1", "private": true, "scripts": { "dev": "vite", @@ -26,12 +26,13 @@ "@ant-design/icons-vue": "^6.1.0", "@aws-sdk/client-s3": "^3.383.0", "@aws-sdk/s3-request-presigner": "^3.383.0", - "@fast-crud/fast-crud": "^1.20.0", - "@fast-crud/fast-extends": "^1.20.0", - "@fast-crud/ui-antdv": "^1.20.0", - "@fast-crud/ui-interface": "^1.20.0", + "@fast-crud/fast-crud": "^1.20.1", + "@fast-crud/fast-extends": "^1.20.1", + "@fast-crud/ui-antdv": "^1.20.1", + "@fast-crud/ui-interface": "^1.20.1", "@iconify/iconify": "^3.1.1", "@iconify/json": "^2.2.98", + "@iconify/vue": "^4.1.1", "@purge-icons/generated": "^0.9.0", "@soerenmartius/vue3-clipboard": "^0.1.2", "ant-design-vue": "^3.2.20",