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
}
}