import gridHeader from './App_Expert/App_ExpertGridHeader'
//自定义选择数据源页面
import App_ExpertModelBody from './App_Expert/App_ExpertModelBody'
import { h, resolveComponent } from 'vue';
//声明vue对象
let $this;
let extension = {
components: {
gridHeader: gridHeader,
gridBody: {
render() {
return h(resolveComponent('ElAlert'), {
style: { 'margin-bottom': '12px' },
'show-icon': true,
closable: false,
}, [h('p', {}, '1、多个弹出框:手动创建一个页面,接着在表对应的js文件中引入页面放到gridHeader中'),
h('p', {}, ' 2、在手动创建的页面中,可以写任意代码,在js中通过this.$refs.gridHeader.xx即可访问页面的内容,具体见:App_Expert.js、App_ExpertGridHeader.vue')]);
}
},
gridFooter: '',
modelHeader: '',
modelBody: App_ExpertModelBody, //将选择数据源页面App_ExpertModelBody注册到弹出框中
modelFooter: ''
}, //动态扩充组件或组件路径
buttons: {
view: [{
name: "弹出框1",
icon: 'md-add',
index: 1,//添加到第一个按钮后面
type: 'primary',
onClick: function () {
$this.$refs.gridHeader.open1()
}
}]
},
methods: { //事件扩展
click1(){
this.$message.success('点击了提示')
},
onInited() {
$this = this;
//手动调度弹出框的高度
this.boxOptions.height = this.boxOptions.height + 90;
//手动设置表高度自动适应
this.height = this.height - 100;
},
onInit() {
this.editFormOptions.forEach(x => {
x.forEach(item => {
if (item.field == 'HeadImageUrl') {
//选择文件时
item.onChange=(files)=>{
console.log('选择文件事件')
//此处不返回true,会中断代码执行
return true;
}
//上传前
item.uploadBefore=(files)=>{
console.log('上传前')
return true;
}
//上传后
item.uploadAfter=(files)=>{
console.log('上传后')
return true;
}
}
})
})
//选择数据源功能
this.editFormOptions.forEach(x => {
x.forEach(item => {
if (item.field == 'ReallyName') {
//给编辑表单设置[选择数据]操作,extra具体配置见volform组件api
item.extra = {
icon: "el-icon-zoom-out",
text: "选择数据",
style: "color:#2196F3;font-size: 12px;cursor: pointer;",
click: item => {
this.$refs.modelBody.openDemo();
}
}
}
})
})
//设置保存后继续添加 ,不关闭当前窗口
//2021.04.11需要更新methods.js,ViewGrid.vue
this.continueAdd = true;
this.continueAddName = "连续添加";
//将编辑表单第一行第一列【名称】字段添加一个额外提示属性
this.editFormOptions[0][0].extra =
{
render: (h) => {
return
{/* 这里对应下面的#reference数据槽 */}
{{ reference: ()=>{return {this.click1()}} class='el-icon-warning-outline'>} }}
}
}
//设置界面上最多可显示的按钮数量
this.maxBtnLength = 6;
// 第2个弹出框操作
this.buttons.splice(2, 0, ...[{
name: "弹出框2",
icon: 'md-add',
type: 'success',
onClick: function () {
$this.$refs.gridHeader.open2()
}
},
{
name: "获取子组件对象",
icon: 'md-add',
type: 'warning',
onClick: function () {
this.$Message.info(this.$refs.gridHeader.getTestData())
}
}])
// 第3个弹出框操作
this.columns.forEach(x => {
if (x.field == "Resume") {
x.formatter = (row, column, event) => {
return '(弹出框3)' + row.Resume + ''
};
//绑定点击事件
x.click = (row, column, event) => {
$this.$refs.gridHeader.open3(row)
};
}
})
//启用多图上传,其他上传参数,参照volupload组件api
this.editFormOptions.forEach(x => {
x.forEach(item => {
if (item.field == 'HeadImageUrl') {
//item.type = 'file';
//设置成100%宽度
item.colSize = 12;
item.multiple = true;
//最多可以上传3张照片
item.maxFile = 3;
//限制图片大小,默认3M
item.maxSize = 3;
// item.append = true;
}
})
})
// //动态添加一行表单配置
// this.editFormOptions[2].splice(0, 1, ...[
// {
// colSize: 12,
// render: (h) => {
// return
//
// }
// }
// ])
},
}
};
export default extension;