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

refactor: 1.11.9
refactor: 1.11.9
perf: 增加表单字段render示例
refactor: 删除无用的index
This commit is contained in:
GitHub Actions Bot
2023-03-28 19:24:02 +00:00
parent e7628bdbdd
commit 8aa8c5d8ae
9 changed files with 179 additions and 23 deletions
+1 -1
View File
@@ -21,7 +21,7 @@ _.forEach(viewMocks, (value) => {
list.forEach((apiFile: any) => {
for (const item of apiFile) {
mock.onAny(new RegExp(item.path)).reply(async (config) => {
mock.onAny(new RegExp(item.path)).reply(async (config: any) => {
console.log("------------fake request start -------------");
console.log("request:", config);
const data = config.data ? JSON.parse(config.data) : {};
@@ -418,6 +418,12 @@ export const crudResources = [
name: "FormNest",
path: "/crud/form/nest",
component: "/crud/form/nest/index.vue"
},
{
title: "字段组件周围render",
name: "FormRender",
path: "/crud/form/render",
component: "/crud/form/render/index.vue"
}
]
},
@@ -0,0 +1,42 @@
import { requestForMock } from "/src/api/service";
const request = requestForMock;
const apiPrefix = "/mock/FormRender";
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 + "/info",
method: "get",
params: { id }
});
}
@@ -0,0 +1,68 @@
import * as api from "./api";
import { AddReq, CreateCrudOptionsProps, CreateCrudOptionsRet, DelReq, EditReq, UserPageQuery, UserPageRes, useUi } from "@fast-crud/fast-crud";
export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOptionsRet {
const pageRequest = async (query: UserPageQuery): Promise<UserPageRes> => {
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 { ui } = useUi();
return {
crudOptions: {
request: {
pageRequest,
addRequest,
editRequest,
delRequest
},
columns: {
name: {
title: "演示表单组件周围的render",
type: "text",
form: {
helper: "演示组件周围自定义render",
topRender({ value }) {
return <a-tag color="red">topRender</a-tag>;
},
bottomRender({ value }) {
return <a-tag color="red">bottomRender {value ?? ""}</a-tag>;
},
prefixRender({ value }) {
return <a-tag color="red">prefixRender</a-tag>;
},
suffixRender({ value }) {
return <a-tag color="red">suffixRender</a-tag>;
}
}
},
render: {
title: "字段组件本身render",
type: "text",
form: {
helper: "组件本身render",
render({ form }) {
return (
<div>
<a-input v-model={[form.render, "value"]} />
render value : {form.render}
</div>
);
}
}
}
}
}
};
}
@@ -0,0 +1,33 @@
<template>
<fs-page>
<template #header>
<div class="title">表单字段组件周围的render</div>
<div class="more">
<a target="_blank" href="http://fast-crud.docmirror.cn/api/crud-options/columns.html#key-form-prefixrender">文档</a>
</div>
</template>
<fs-crud ref="crudRef" v-bind="crudBinding" />
</fs-page>
</template>
<script lang="ts">
import { defineComponent, onMounted } from "vue";
import { useFs } from "@fast-crud/fast-crud";
import createCrudOptions from "./crud";
export default defineComponent({
name: "FormRender",
setup() {
const { crudBinding, crudRef, crudExpose } = useFs({ createCrudOptions });
// 页面打开后获取列表数据
onMounted(() => {
crudExpose.doRefresh();
});
return {
crudBinding,
crudRef
};
}
});
</script>
@@ -0,0 +1,20 @@
import mockUtil from "/src/mock/base";
const options: any = {
name: "FormRender",
idGenerator: 0
};
const list = [
{
name: "王小虎"
},
{
name: "张三"
}
];
options.list = list;
options.copyTimes = 1000;
const mock = mockUtil.buildMock(options);
export default mock;