let extension = {
components: {
//动态扩充组件或组件路径
//表单header、content、footer对应位置扩充的组件
gridHeader: '', //{ template: "
扩展组xx件
" },
gridBody: '',
gridFooter: '',
//弹出框(修改、编辑、查看)header、content、footer对应位置扩充的组件
modelHeader: '',
modelBody: '',
modelFooter: ''
},
text: '点击行或者点击表格的编辑即可开启编辑功能',
tableAction: 'App_Transaction',
buttons: [], //扩展的按钮
methods: {
//事件扩展
onInit() {
//手动设置弹出框的高度与宽度
//判断有没有App_Transaction表修改的权限 ,无权限不开启编辑功能
if (!this.filterPermission('App_Transaction', 'Update')) {
return;
}
//开启编辑功能
this.doubleEdit = true;
//开启指定列可以编辑
//**注意,开启字段的编辑信息,如果调用框架的保存方法,代码生成器中必须设置了编辑行并生成了model否则验证通不过
this.columns.forEach((column) => {
if (column.field == 'Describe' || column.field == 'Name') {
column.edit = { type: 'text' };
}
if (column.field == 'TransactionType') {
column.edit = { type: 'switch' };
}
if (column.field == 'CowType') {
column.edit = { type: 'select' };
}
});
//动态添加操作列
this.columns.push({
field: '操作',
title: '操作',
align: 'center',
width: 120,
render: this.getRender()
});
},
beginEdit(row, column, index) {
console.log('编辑行:'+index)
//点击行编辑 return false阻止编辑(可以根据row不同的值判断当前是否可以编辑);
return true;
},
endEditBefore(row, column, index) {
//可以自动结束编辑时,自动执行保存,下面getRender的保存按钮去掉
// this.editSave();
return true;
},
editSave(row) {
//调用框架的默认保存方法
this.http
.post('/api/App_Transaction/update', { mainData: row }, true)
.then((x) => {
this.$Message.info('保存成功');
console.log('保存结果:' + JSON.stringify(x));
});
},
getRender() {
//生成最后一列操作列
return (h, { row, column, index }) => {
return h(
'div',
{
style: { color: '#0c83ff', 'font-size': '13px', cursor: 'pointer' }
},
[
h(
'a',
{
props: {},
style: { 'border-bottom': '1px solid' },
onClick: (e) => {
e.stopPropagation();
//取消其他行选中
this.$refs.table.$refs.table.clearSelection();
//设置当前后选中
this.$refs.table.$refs.table.toggleRowSelection(row);
this.del([row]);
}
},
'删除'
),
h(
'a',
{
props: {},
style: { 'margin-left': '9px', 'border-bottom': '1px solid' },
onClick: (e) => {
e.stopPropagation();
//将当前行设置为编辑行
this.$refs.table.edit.rowIndex = index;
}
},
'编辑'
),
h(
'a',
{
props: {},
style: { 'margin-left': '9px', 'border-bottom': '1px solid' },
onClick: (e) => {
e.stopPropagation();
//强制结束编辑
this.$refs.table.edit.rowIndex = -1;
//执行保存方法
this.editSave(row);
}
},
'保存'
)
]
);
};
}
}
};
export default extension;