🔱: [client] sync upgrade with 6 commits [trident-sync]

perf: search校验失败后,refresh保持原来的formData
perf(search): validation支持

https://github.com/fast-crud/fast-crud/issues/200
chore: 增加search render示例
chore: 增加search render示例
chore: jsx文档
pull/14/head
GitHub Actions Bot 2023-06-07 19:24:02 +00:00
parent 164b90a22f
commit 9db57f0517
6 changed files with 51 additions and 7 deletions

View File

@ -8,7 +8,7 @@ import UiAntdv from "@fast-crud/ui-antdv";
import _ from "lodash-es";
import { useCrudPermission } from "../permission";
import { GetSignedUrl } from "/@/views/crud/component/uploader/s3/api";
import { message, notification } from "ant-design-vue";
import { notification } from "ant-design-vue";
function install(app: any, options: any = {}) {
app.use(UiAntdv);

View File

@ -1,6 +1,6 @@
import { requestForMock } from "/src/api/service";
const request = requestForMock;
const apiPrefix = "/mock/FeatureSearch";
const apiPrefix = "/mock/FeatureColumnResize";
export function GetList(query: any) {
return request({
url: apiPrefix + "/page",

View File

@ -1,6 +1,6 @@
import * as api from "./api";
import { AddReq, CreateCrudOptionsProps, CreateCrudOptionsRet, DelReq, dict, EditReq, UserPageQuery, UserPageRes } from "@fast-crud/fast-crud";
import { ref } from "vue";
export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOptionsRet {
const pageRequest = async (query: UserPageQuery): Promise<UserPageRes> => {
return await api.GetList(query);

View File

@ -1,6 +1,6 @@
import mockUtil from "/src/mock/base";
const options: any = {
name: "FeatureSearch",
name: "FeatureColumnResize",
idGenerator: 0
};
const list = [

View File

@ -1,6 +1,7 @@
import * as api from "./api";
import { AddReq, CreateCrudOptionsProps, CreateCrudOptionsRet, DelReq, dict, EditReq, UserPageQuery, UserPageRes } from "@fast-crud/fast-crud";
import { computed } from "vue";
import { message } from "ant-design-vue";
export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOptionsRet {
const pageRequest = async (query: UserPageQuery): Promise<UserPageRes> => {
@ -30,6 +31,7 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti
delRequest
},
search: {
validate: true,
initialForm: {
radio: null
},
@ -73,7 +75,15 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti
},
radio: {
title: "状态",
search: { show: true },
search: {
show: true,
rules: [
{
required: true,
message: "请选择状态"
}
]
},
type: "dict-radio",
dict: statusRef
},
@ -83,10 +93,41 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti
show: true
},
type: "text",
form: {
component: {
vModel: "checked",
render({ attrs }) {
return <a-switch {...attrs} />;
},
title: "自定义render可以继承component的属性,可以触发search的自动查询"
}
}
},
customRender2: {
title: "自定义render2",
search: {
show: true
},
type: "text",
form: {
component: {
render({ form }) {
//注意此处的v-model写法
return <a-switch v-model={[form.customRender2, "checked"]} title={"render配置在component之下注意vModel的写法,不能触发search的自动查询"} />;
}
}
}
},
customRender3: {
title: "自定义render3",
search: {
show: true
},
type: "text",
form: {
render({ form }) {
//注意此处的v-model写法
return <a-input v-model={[form.customRender, "value"]} />;
return <a-switch v-model={[form.customRender3, "checked"]} title={"render配置在form之下注意vModel的写法,不能触发search的自动查询"} />;
}
}
}

View File

@ -5,7 +5,10 @@ const options: any = {
};
const list = [
{
radio: "1"
radio: "1",
customRender: true,
customRender2: false,
customRender3: true
},
{
radio: "2"