成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Vue3 開發(fā)拒絕 CV, 快使用 CRUD

開發(fā) 前端
今天我們來講一下"增刪改查"組件:crud-vue.一起來看看吧。

開發(fā)管理后臺基本是企業(yè)的日常需求, 基本每個前臺項目都必有一個后臺項目跟著, 雖然是必需品, 但是大家好像有不是那么在意他, 畢竟只有管理員用。

crud-vue通過簡單的JSON配置即可實現(xiàn)完整的"增刪改查".

注意: crud-vue是基于ant-design-vue的, 所以更進一步的開發(fā)中,可直接使用ant的組件

安裝

yarn add crud-vue
復制代碼

使用

下面是一個簡單的表格, 只需要配置columns和done字段.

columns就是"ant"組件庫中 table 組件的配置, 用來配置列.

done是"crud-vue"定義的字段, 值是個函數(shù), 用來格式化接口返回數(shù)據(jù), 函數(shù)返回{total:10,list:[{xx:1}]}這樣的數(shù)據(jù)表格就會顯示:

<script setup lang="ts">
import crud,{defineR} from 'crud-vue';
const primaryKey = 'id';
const r = defineR({
columns: [
{
title: 'name',
dataIndex: 'name',
},
{
title: '操作',
key: 'operation',
width: 250,
},
],
async done() {
const { data } = await http('/role');
return { list: data.list, total: data.total };
},
});
</script>
<template>
<crud :primaryKey="primaryKey" :r="r"></crud>
</template>
復制代碼

API

通過配置"crud-vue"組件的"c/u/r/d"4 個字段實現(xiàn)"增刪改查".

primaryKey(主鍵)

必填項, ant 中的a-table需要, 選用數(shù)據(jù)中的能"表示唯一的id"字段即可.

image

r(讀取)

必填項, 主要配置"表格"和"數(shù)據(jù)", 這里的表格實際就是??ant的table組件, 使用defineR函數(shù)定義.

const r = defineR({
// 列配置
columns: [{ title: 'name', dataIndex: 'name' }],
// 篩選條件配置
conditionItems: [{ name: 'name', is: 'a-input' }],
// 列表接口數(shù)據(jù)處理
async done() {
const { data } = await http('/user');
return { list: data.xxList, total: data.xxTotal };
},
});
復制代碼

查看"r"的完整文檔[1]

c(新增)

非必填, 用來構(gòu)造"新建"表單,用defineC函數(shù)來定義.

const c = defineC({
async before() {
await Promise.all([getRoleOptions(), getDepartmentOptions(), getPositionOptions()]);
},
async done(formData) {
const { status, data } = await http.post('/user', formData);
return [200 === status, data.msg];
},
formProps: { labelCol: { span: 2 } },
items: () => [
{ is: 'a-input', name: 'userName', label: '賬號', rules: [{ required: true, message: '必填項' }] },
{ is: 'a-input', name: 'realName', label: '姓名' },
復制代碼

查看"c"的完整文檔[2]

u(編輯)

非必填, 用來構(gòu)造"編輯"表單,用defineU函數(shù)來定義.基本和"c"的配置一樣.

查看"u"完整的文檔[3]

d(刪除)

非必填, 用來配置"刪除操作",用defineD函數(shù)來定義. d暫只有一個屬性done:

done

必填項, done是個函數(shù), 點擊"刪除"按鈕后觸發(fā), 函數(shù)內(nèi)需要寫請求刪除接口的邏輯.

const d = defineD({
async done(idList) {
// 判斷idList長度區(qū)分是否批量刪除
// 批量刪除
if (1 < idList.length) {
const { data, status } = await http.delete('/user/' + idList.join(','));
return [200 === status, data.msg];
} else {
// 刪除一條
const { data, status } = await http.delete('/user/' + idList[0]);
return [200 === status, data.msg];
}
},
});
復制代碼

可以通過done的參數(shù)來判斷是批量刪除還是單行刪除.

特別注意

  1.  done必須是一個返回"promise"的函數(shù), 也可以用"async", 其返回值也是"promise".
  2.  done函數(shù)的返回值必須是[boolean,string?]格式, "boolean"用來表示是否操作成功, "string"是選填,是成功/失敗后消息框顯示的文字, 如果不填, 不進行消息顯示.
責任編輯:龐桂玉 來源: 高級前端進階
相關(guān)推薦

2024-11-06 10:16:22

2021-12-01 08:11:44

Vue3 插件Vue應(yīng)用

2021-12-29 07:51:21

Vue3 插件Vue應(yīng)用

2021-11-30 08:19:43

Vue3 插件Vue應(yīng)用

2023-11-28 09:03:59

Vue.jsJavaScript

2020-09-19 21:15:26

Composition

2022-07-15 08:45:07

slotVue3

2021-04-26 18:27:39

Vue3開發(fā)運行

2024-12-30 14:40:20

2024-10-18 10:49:03

Actions異步函數(shù)

2021-12-02 05:50:35

Vue3 插件Vue應(yīng)用

2023-04-27 11:07:24

Setup語法糖Vue3

2021-01-15 05:16:37

Vue3開源代碼量

2024-03-01 11:32:22

Vue3APIVue.js

2022-11-01 11:55:27

ReactVue3

2022-02-18 09:39:51

Vue3.0Vue2.0Script Set

2024-10-14 09:34:39

vue3通信emit

2025-07-03 09:36:35

2025-06-12 09:18:22

2021-11-17 08:24:47

Vue3 插件Vue應(yīng)用
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 一区二区免费视频 | 欧美精品一区二区免费 | 超碰在线人人 | 亚洲精品免费在线 | 91精品国产91久久综合桃花 | 欧美一级视频免费看 | 久久综合av | 天天天天天天天干 | 精品欧美一区二区三区久久久 | 国产成人精品一区二区三区在线 | 精品视频在线观看 | 在线观看国产视频 | 成人国产一区二区三区精品麻豆 | 成人免费在线 | 欧美日韩在线播放 | 国产成人精品a视频一区www | 日日操视频 | 中文字幕在线免费视频 | 国产jizz女人多喷水99 | 91久久久久 | 国产高清视频在线观看播放 | www国产亚洲精品久久网站 | 91麻豆精品国产91久久久久久 | 免费一区二区 | 精品麻豆剧传媒av国产九九九 | 国产一区影院 | 天天拍天天插 | 久久草在线视频 | 精品视频一区二区三区在线观看 | 久久久久久亚洲 | 成人免费在线播放 | 女人天堂av | 久久久久国产一区二区三区 | 亚洲另类视频 | 一区二区av | 欧美日韩一区二区三区四区 | 一区二区av| 亚洲综合在线视频 | 国产成人精品一区二区 | 日日夜夜天天干 | 日韩成人在线网站 |