# 视图查询问题排查指南
# 一、前置操作:补丁更新
在开始排查问题前,请务必完成以下补丁更新步骤,以排除已知问题的干扰:
- 前端: 优先安装最新的前端补丁
- 后端: 优先建议安装后端合集补丁,若无合集补丁通过以下链接检查是否存在相关补丁。若存在,请先安装对应补丁再进行后续问题排查
补丁参考链接:http://help.primeton.com/productcs/patches/
# 二、常见问题及解决方案
# 2.1 查询条件配置类问题
| 问题现象 | 可能原因 | 自查步骤 |
|---|---|---|
| 查询条件关系(并且/或者)不符合预期 | - 默认关系未手动切换 - 产品bug | 1. 检查快速筛选中的逻辑关系设置 2. 后端补丁:PLATFORM_8.3.3_AFCENTER_20250516_P2(修复1:n关联实体在1端视图使用n端条件联合查询结果不符合预期的问题) 3. 更新最新前端补丁 |
| 父子字典在视图查询中无法联动 | 视图配置未同步更新 | 删除视图上快速筛选中的相关字段配置后重新添加 |
| 查询条件设置为只读不生效 | 产品bug | 更新最新前端补丁 |
| 树形下拉“或”条件被转成and | 产品bug | 更新最新前端补丁 |
# 2.2 高级事件与代码定制类问题
| 问题现象 | 可能原因 | 自查步骤 |
|---|---|---|
| 视图查询前事件不生效或获取不到条件值 | - return false阻止查询 - 表格类型为树表 - finalCondition与condition混用 | 1. return false时同时设置this.loading = false 2. 用this.condition修改条件,避免与finalCondition混用 3. 树表只返回根节点,需特殊处理 |
| 阻止视图默认查询后页面一直转圈 | return false未设loading | 1. 视图加载前事件中return false可阻止视图查询 2. 同时设置this.loading = false可使页面不loading |
| 视图查询后this.data获取不到数据 | 树表返回异步 | 使用setTimeout延迟获取数据 |
| 视图查询报错ClassCastException | 简单字段绑定对象(1对多场景,主表字符串绑定子表格) | 子表格必须绑定对象,不能绑定字符串 |
| 视图过滤条件筛选空数据 | 查询条件配置不支持 | 在视图查询前事件中设置:this.$set(this.condition, '字段名', { "value": 'NULL', "op": "<>" }) |
# 2.3 空数据筛选类问题
| 问题现象 | 解决方案 |
|---|---|
| 字典下拉框需要增加【空状态】选项来过滤空数据 | 步骤1:快速筛选中添加条件,自定义数据来源于变量(如:v_querySupplierCodeStatus) 步骤2:视图加载前事件中获取字典并添加空选项: javascript<br>const dict = await this.Api.getDictByType('字典类型')<br>this.v_querySupplierCodeStatus.push({ name: '空', code: 'null' })<br>dict.forEach(item => {<br> this.v_querySupplierCodeStatus.push({ code: item.code, name: item.name })<br>})<br>步骤3:视图查询前事件中判断并修改查询条件: javascript<br>if (this.condition.字段名.value && this.condition.字段名.value === 'null') {<br> this.finalCondition.and.items.forEach(item => {<br> if (item.propertyName === '字段名') {<br> item.op = 'ISNULL'<br> }<br> })<br>}<br> |
| 筛选空字符串数据 | 在查询条件中使用op="empty":this.finalCondition.and.items.push({ propertyName: "字段名", op: "empty" }) |
# 2.4 性能优化类问题
| 问题现象 | 解决方案 |
|---|---|
| 视图查询中只希望查询指定列(避免大字段影响性能) | 在查询前事件中给this.finalCondition添加需要查询的属性:this.finalCondition.selectProperties = ["属性名1", "属性名2"] |
| 子表存在mediumtext大字段,导致接口返回数据量过大(30+M)、响应慢(30+s) | 步骤1:将子实体中text字段的实体字段类型改为clobString(只改实体) 步骤2:在主表单中开启“排除大字段” 说明:查询主表详情时就不会携带子表的大字段了 |
# 三、通用排查流程
# 1. 复现问题
明确操作步骤,确认问题是必现还是偶发。
# 2. 环境检查
- 记录产品版本(如Platform 8.3.x)和BuildID
- 浏览器控制台(F12)查看Console和Network报错
- 确认是否已安装最新前端或后端补丁(有合集补丁的版本建议打上合集补丁)
# 3. 配置核对
- 视图查询条件配置(字段、控件类型、默认值、关系)
- 实体配置(主键、数据源、关联关系)
- 资源容器绑定层级(表单 vs 字段)
# 4. 简化测试
- 新建最简单视图测试,排除项目配置干扰
- 移除自定义事件代码,测试原生功能是否正常
# 四、需要收集的信息(提工单)
# 基本信息
| 信息项 | 说明 |
|---|---|
| 问题描述 | 现象、预期结果、实际结果 |
| 环境信息 | 产品版本号、当前使用的前端补丁时间 |
| 复现信息 | 可提供构件包,或提供问题相关配置截图/录屏 |
# 日志信息
- Network中失败接口的请求参数和响应内容
- 日志文件:eos-trace.log