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;