# 弹窗相关问题排查指南
# 一、前置操作:补丁更新
在开始排查问题前,请务必完成以下补丁更新步骤,以排除已知问题的干扰:
- 前端:优先安装最新的前端补丁
- 后端:优先建议安装后端合集补丁,若无合集补丁,请通过以下链接检查是否存在相关补丁。若存在,请先安装对应补丁再进行后续问题排查,避免因已知BUG导致。
补丁参考链接:[http://help.primeton.com/productcs/patches/]
# 二、常见问题
# 2.1 字段显示为ID而非名称
现象:单向n:1关联时,弹窗选择组件显示为ID,未显示预期名称
原因:组件绑定了ID字段,未绑定实体对象
解决方法:将组件绑定的字段从“字段id”修改为“实体”
# 2.2 机构/人员选择组件值不显示
现象:弹窗向父级页面添加数据,机构选择/人员选择组件值不显示
解决方法:赋值时需带上__XXXObject
__nameObject: row.__nameObject
# 2.3 弹窗选择确定前数据校验
需求:选择不符合条件的数据时,提示并禁用确定按钮
实现位置:绑定视图 → 动作设置 → 弹窗按钮 → 确定按钮 → 禁用控制(使用方法控制)
if(this.selectedItems.length) {
if(this.selectedItems[0].code !== 'zhangsan') {
this.$message({
message: '请选择code为zhangsan的数据',
type: 'warning'
});
return true; // true=禁用确定按钮
}
} else {
return false;
}
# 2.4 弹窗选择后刷新父页面列表
场景:弹窗选择数据保存后,父页面列表未刷新
实现步骤:
- 视图侧(视图加载后事件):
this.$bus.$on("action_reload_view", data => {
this.Api.doQuery();
})
- 表单侧(表单提交成功后事件):
this.$bus.$emit("action_reload_view", {})
# 2.5 弹窗发起流程后刷新列表
问题:通过弹窗发起流程后,需要刷新父页面列表
限制:产品不支持在发起流程的弹窗中执行onclose钩子函数
解决方案:在流程表单的“表单销毁前”事件中调用
this.opener.Api.doQuery();
# 2.6 删除选中值不触发值变化事件
问题:弹窗选择组件多选后,点击某个值后面的“x”删除该值,不触发值变化事件
说明:弹窗选择的确定选中事件不等于值变化事件
解决方法:使用高级中的监听事件替代
# 2.7 视图加载前事件status值
问题:弹窗选择组件绑定的视图,在加载前事件中打印this.status,结果为edit
说明:正常现象,lookup中视图的status固定为edit
# 2.8 查询实体筛选操作符不生效
现象:字段弹窗选择设置为另一查询实体,快速筛选选择“包含”后,查询效果仍是“等于”
原因:弹窗选择组件在做筛选时是引用类型、是对象,与文本字符的处理方式不同
# 2.9 弹窗高度设置不生效
问题:代码中设置height:'200px'不生效
原因:弹窗高度策略默认为自适应
解决方案:在dialog配置中添加"heightStrategy": "fixed"
"dialog": {
"heightStrategy": "fixed",
"height": "200px"
}