# 标题相关配置
# 内容标题配置图标
提示
当前暂不支持直接配置内容的标题图标,如果需要显示,可在对应内容模块的【图表配置】或【自定义js】内配置,图表配置的示例代码如下:
{
"iconAttrs": {
"name": "todoT"
}
}
# 标题右侧插槽
js示例
export default {
// 以下示例是写在块上的
title: {
// // 右侧自定义文本,返回html字符串
// rightFormat () {
// return `<div style="color: red">右侧自定义文本</div>`
// },
// // 点击右侧执行的回调(存在rightFormat或rightRender时生效)
// rightClick () {
// // this 指向所在块作用域(PanelBlock.vue 文件)
// this.$message.warning('右侧文本被点击')
// console.log(this)
// },
// 或者使用自定义渲染:优先级 leftFormat > leftRender
// 可设置多点击事件、使用 src\components\frame\Panel\PanelBlock\BlockTitle.vue 文件内有引用的/全局组件
// 如需使用自定义组件,需要在此文件内自定义引入
rightRender () {
// this 指向所在块作用域
return (
<span>
<bd-button icon={{name: 'search'}} type="primary" size="mini" nativeOn-click={(e) => {
// this 指向所在块作用域(PanelBlock.vue 文件)
console.log(this)
let searchItem = this.tempInfo.filterList.find(o => o.id === 'text')
if (!searchItem) {
// 添加或修改搜索传参
this.tempInfo.filterList.push({
id: 'text', // 参数的key,必须
value: '测试数据', // 参数的value,必须
isHide: true, // isHide 为true 时不会以搜索框的形式展示
// isDynamic: true, // 是否为动态参数(sql中以<<<fieldName>>>的形式书写),直观的表现为传参放在dynamicValues(true)或searchParams(false)内
tagName: '', // 参数放在searchParams内传值时,会传递给后台,默认空字符串,具体看sql代码需求
})
} else {
searchItem.value = '非第一次点击,防止重复添加'
}
// this.tempInfo.filterList 有更改的话,需要放在 nextTick 中search,否则数据存在延迟
this.$nextTick(() => {
// 搜索对应的块
this.search({text2: '与searchParams同级的参数'})
})
// ********** 如果需要单独请求【同块内的某个或几个内容】 *************
// this.search({}, [`content_${配置面板时设置的内容编码}`])
// ********** 如果需要请求此面板内【其他块】 *************
// this.panelScope.search({}, [`block_${配置面板时设置的块编码}`])
// ********** 如果需要请求此面板内【其他内容】 *************
// this.panelScope.search({}, [`block_${配置面板时设置的块编码}`, `content_${配置面板时设置的内容编码}`])
this.$message.warning('点击搜索按钮,加入了text参数,结果看请求')
e.stopPropagation() // 阻止事件冒泡,避免表格行被选中
}}></bd-button>
<bd-button icon="delete" type="danger" size="mini" nativeOn-click={(e) => {
this.search()
this.$message.warning('点击删除按钮,移除text2参数')
e.stopPropagation() // 阻止事件冒泡,避免表格行被选中
}}></bd-button>
</span>
)
}
}
}
# 标题左侧插槽
仅面板支持左侧插槽自定义渲染
js 示例
export default {
title: {
leftFormat () {
return `<div style="color: red">左侧自定义文本</div>`
},
// 点击右侧执行的回调(存在rightFormat或rightRender时生效)
leftClick () {
this.$message.warning('左侧文本被点击')
},
// 或者使用自定义渲染:优先级 leftFormat > leftRender
leftRender () {
return (
<span>右侧自定义渲染文本</span>
)
}
}
}