my crud
1.0.0
my-crud 是基于D2-Crud修改的vue 表格组件,包含简单的增删查改表单,比原版添加部分功能。
使用npm
npm i element-ui my-element-crud -S
在main.js
中写入以下内容:
import Vue from 'vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import D2Crud from 'my-element-crud'
Vue.use(ElementUI)
Vue.use(D2Crud)
new Vue({
el: '#app',
render: h => h(App)
})
之后就可以在项目中使用 D2-Crud
了。
externals: D2Crud
https://cdn.d2.pub/packages/@d2-projects/[email protected]/d2-crud.js
custom: [
{
text: '更多',
type: 'text',
// size: 'small',
sort: 8,
emit: 'custom-edit',
show: (index, row) => true,
more: [
{
text: '!!!!!',
emit: 'custom-pop',
show: (index, row) => true
}
]
}
]
mycom2: {
title: "自带选择框",
value: "",
_sort: 4,
component: {
name: "el-select",
options: [
{ label: "测试1", value: 1 },
{ label: "测试2", value: 2 },
],
// 事件绑定
'@change': (e) => {
console.log(this.rowHandle);
},
// 属性绑定
':size':'mini'
},
},
解决自带选择框 form-data-change 事件无法正确传递到父组件的问题
增加自定义查看按钮
增加查看功能,查看时元素默认disabled
自定义组件disabled 需要在props中增加 disabled: Boolean 组件属性写: :disabled="disabled"
使用:
<d2-crud v-bind:look-template="addTemplate"></d2-crud>
rowHandle: {
look: {
text: "查看",
emit: "lookHandle"
},
}
增加自定义按钮排序功能
使用:
rowHandle: {
minWidth: "180px",
look: {
text: "查看",
emit: "lookHandle",
sort: 3
},
customs: [{
text: '打卡记录',
emit: 'showRecord',
sort:2
}],
edit: {
text: "编辑",
emit: "editHandle",
type: "warning ",
sort: 1
},
}
rowHandle: {
lookNoEle: {
text: "查看",
emit: "lookHandle"
},
}
mycom: {
title: "选择框",
value: "",
component: {
name: testCom,
formatter(val) {
return val === 1 ? "测试1" : "测试2";
},
props: {
options: [
{ label: "测试1", value: 1 },
{ label: "测试2", value: 2 }
]
}
}
},
roleName: {
title: "角色名",
value: "",
class: "my_label",
component: {
placeholder: " 仅可输入英文大小写、数字"
}
},
-- 增加动态显示隐藏form表单
roleName: {
title: "角色名",
value: "",
class: "my_label",
component: {
show: this.show === 1
placeholder: " 仅可输入英文大小写、数字"
}
},
设置表单dialog的宽度 :add-width="400px" :edit-width="400px"
=======
父组件
<d2-crud
@componentEvent:coma="handle">
</d2-crud>
computed:{
addTemplate(){
return {
coma: {
title: "自定义选择框a",
value: "",
component: {
name: coma,
},
},
comb: {
title: "自定义选择框b",
value: "",
component: {
name: comb,
},
},
}
},
method:{
handle(data) {
this.$refs.d2Crud.getRef("comb").handleComponentEvent(data);
}}
组件A
<template>
<div>
<el-button @click="up">up123</el-button>
</div>
</template>
up() {
this.$emit("componentEvent", 123);
}
组件B
methods:{
handleComponentEvent(data){
this.data=data
}
}