代理界面元素
Window.BailHook(方法)
说明
对特定的界面元素进行代理,代理方法返回true时,则不显示原界面
语法
表达式.BailHook(CmbId)
表达式: Window
参数
参数名 | 是否必需 | 类型 | 描述 |
---|---|---|---|
CmbId | 是 | string | 界面元素ID,目前支持 RecordInfo (记录详情卡片) |
返回值
浏览器环境示例
javascript
async function example() {
await instance.ready();
const app = instance.Application;
const hook = await app.Window.BailHook("RecordInfo")
hook.InvokeSingle((params)=>{
console.log(params) // 移动端返回参数 {recordId: 'Jp', activeFieldId: 'E'}
// pc端返回参数 {recordId: 'Jp', isShowComment: false}
// 移动端和PC端 用到的参数都是 recordId,其它参数是界面区别
// 可以通过 await WPSOpenApi.Application.ActiveView.RecordRange(params.recordId).Value 读取记录的数据
const count = await Application.ActiveView.RecordRange.Count
const record = Application.ActiveView.RecordRange(params.recordId)
const values = await record.Value
const index = await record.Index // 注意 Index base 1, 可能有多条记录,返回 [index]
const prevRecord = Application.ActiveView.RecordRange(index.map(_=> _ - 1))
const nextRecord = Application.ActiveView.RecordRange(index.map(_=> _ + 1))
// 在这里实现自定义的界面逻辑,替换掉原来的界面
record.Select()
return true // return true 会不弹出原界面
})
}