- 查询区API
- 3. API
- 3.1 参数
- 3.2 查询区api
- 3.2.1 getAllSearchData
- 3.2.2 getQueryInfo
- 3.2.3 setSearchValByField
- 3.2.4 setSearchValue
- 3.2.5 getSearchValByField
- 3.2.6 setDisabledByField
- 3.2.7 closeSearchPlanArea
- 3.2.8 openAdvSearch
- 3.2.9 setDisabled
- 3.2.10 clearSearchArea
- 3.2.11 getOprtypeByField
- 3.2.12 changeItemVisibleByField
- 3.2.13 setRequiredByField
- 3.2.14 setTemlateByField
- 4 模板结构
- 5. 注意事项
- 3. API
查询区API
import {createPage} from 'nc-light-app';import {clickSearchBtn, initTemplate} from './events';class demo extends Component {constructor(props) {super(props);let {form, button, table, insertTable, search} = this.props;let {setSearchValue, setSearchValByField, getAllSearchData} = search;this.setSearchValByField = setSearchValByField;//设置查询区某个字段值this.getAllSearchData = getAllSearchData;//获取查询区所有字段数据}componentWillMount() {}/* 编辑后事件 */onAfterEvent(field, val){console.log(field);console.log(val)}/* 添加高级查询区中的页签 */addAdvTabs = () => {return [{name:'页签2', //页签名称content:<div>页签2内容</div> //页签内容},{name:'页签3',content:<div>页签3内容</div>}]};/* 替换高级查询body区域 */replaceAdvBody = () => {return(<div>3333</div>)}//保存查询方案确定按钮事件,用于业务组返回自定义的查询条件saveSearchPlan = () => {console.log('返回自定义条件')return [{demo:'666'}]}// 替换高级面板右侧body区域replaceRightBody = () => {return(<div>替换body右侧区域条件</div>)}//点击高级面板中的查询方案事件 ,返回查询方案信息,用于业务组为自定义查询区赋值clickPlanEve = (data) => {console.log(data)}// 高级查询面板中的清空按钮 点击事件钩子,用于业务组清除自定义查询条件值advSearchClearEve = () => {}render(){let {form, button, table, insertTable, search} = this.props;let {NCCreateSearch} = search;return({NCCreateSearch(searchId,//模块id{clickSearchBtn, // 查询按钮点击事件回调,只返回公共查询条件,不包含自定义查询条件;如果有自定义查询条件,需要业务组在clickPlanEve方法中接收查询方案信息,并保存到业务组的state中,然后在 clickSearchBtn方法中自行合并公共条件和自定义条件。searchBtnName = '查询',onAfterEvent, // 编辑后事件showSearchBtn = true, // 是否显示查询按钮 ,默认显示showAdvBtn = true, // 是否显示高级查询按钮和查询方案按钮 ,默认显示showClearBtn = true, // 是否显示清空按钮showAdvSearchPlanBtn = true, // 高级面板中是否显示保存方案按钮replaceAdvBtnEve, // 业务组替换高级面板 (fun)replaceAdvBody, // 业务组替换高级面板中的body (fun)addAdvTabs, // 添加高级查询区自定义页签 (fun)addAdvBody, // 添加高级查询区自定义查询条件Dom (fun)replaceRightBody, // 添加高级查询区右侧区域自定义查询条件Dom (fun)// oid, // 查询模板的oidhideSearchCondition = false, // 隐藏候选条件saveSearchPlan, // 保存查询方案确定按钮事件 ,用于业务组返回自定义的查询条件clickPlanEve, // 点击高级面板中的查询方案事件 ,用于业务组为自定义查询区赋值clickAdvBtnEve, //单击高级之后的回调方法hideBtnArea = false, // 隐藏查询按钮区域,默认falseadvSearchClearEve, // 高级查询面板中的清空按钮 点击事件回调,用于业务组清除自定义查询条件值onlyShowSuperBtn = false, // 只显示高级按钮replaceSuperBtn = '高级', // 替换高级按钮onOperateTypeChange, // 操作符改变时的回调onlyShowAdvArea = false, //在查询区只显示 高级查询部分,renderCompleteEvent, //查询区渲染完成之后的回调事件statusChangeEvent, //切换查询区状态时的回调context = '', //如果业务组传了上下文进来,就用业务组的数据setInitValueEvent,//初始化四状态默认值的时候的回调函数onlyShowModal = false, //在查询区只显示 模态框,onlyShowModalCancelCallback // 只渲染modal时 关闭modal 触发的回调(配合onlyShowModal使用)})})}}//添加页面模板信息export default function initTemplate(meta) {let metas = {searchArea: {moduleType: 'search',items: [{attrcode: 'rangepicker',label: '区间日期',itemtype: 'rangepicker',required:true,visible:true,col: 3,leftspace: 0,rightspace: 0,"queryOperateType": "between",// initialvalue: {// value:'',// display:''// }},{"queryOperateType": "=",visible:true,attrcode: 'refer_1',label: '参照',itemtype: 'refer',refcode:'pk_org',col: 3,leftspace: 0,rightspace: 0,// initialvalue: {// value:'1',// display:'我是参照'// }},{"queryOperateType": "=",visible:true,attrcode: 'number1',label: '数字',itemtype: 'number',required:true,col: 3,leftspace: 0,rightspace: 0,// initialvalue: {// value:0,// display:''// },scale:2},{"queryOperateType": "=",visible:true,attrcode: 'bankname',label: '银行',itemtype: 'input',col: 3,leftspace: 0,rightspace: 0,// initialvalue: {// value:0,// display:''// },},{"queryOperateType": "=",visible:true,attrcode: 'investtype',label: '存款类型',itemtype: 'select',col: 3,leftspace: 0,rightspace: 0,// initialvalue: {// value:0,// display:''// },options: [{display: '活期',value: 0},{display: '三个月',value: 1},{display: '半年',value: 2},{display: '三年',value: 3},{display: '五年',value: 4}]},{"queryOperateType": "=",visible:true,attrcode: 'beginmny',label: '起始理财金额',itemtype: 'number',col: 3,leftspace: 0,rightspace: 0,// initialvalue: {// value:0,// display:''// },},{"queryOperateType": "=",visible:true,attrcode: 'begindate',label: '起始购买日期',itemtype: 'datepicker',col: 3,leftspace: 0,rightspace: 0,// initialvalue: {// value:0,// display:''// },},{"queryOperateType": "=",visible:true,attrcode: 'enddate',label: '截止购买日期',itemtype: 'datepicker',col: 3,leftspace: 0,rightspace: 0,// initialvalue: {// value:0,// display:''// },},{"queryOperateType": "=",visible:true,attrcode: 'radioDemo',label: '单选',itemtype: 'radio',col: 3,leftspace: 0,rightspace: 0,// initialvalue: {// value:0,// display:''// },options: [{value:'0',display: '活期'},{value:'1',display: '一个月'},{value:'2',display: '一年'},]},{"queryOperateType": "=",visible: true,attrcode: 'checkbox',label: '复选框',itemtype: 'checkbox',col: 3,leftspace: 0,rightspace: 0,// initialvalue: {// value: 1,// display: ''// },options: [{display: '篮球',value: 0}, {display: '跑步',value: 1}, {display: '游泳',value: 2}, {display: '羽毛球',value: 3}]},{"queryOperateType": "=",visible: true,attrcode: 'switch',label: 'switch',itemtype: 'switch',col: 3,leftspace: 0,rightspace: 0,// initialvalue: {// value:true,// display:''// }},]}};props.renderItem('search', 'searchArea', 'refer_1', refer('pk_org'));//参数:查询组件、组件id、字段attrcode、字段refcodeprops.meta.setMeta(metas)}
3. API
3.1 参数
查询区参数是指在调用 NCCreateSearch(id,config) 方法时传入的静态参数,它一般是用来设置查询区初始状态和回调的。
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| id | 模板id | String | 必填 |
| config | 查询区的参数字典 | Object | 必填 |
config的 参数说明
| 参数 | 说明 | 类型 | 默认值 | 备注 |
|---|---|---|---|---|
| clickSearchBtn | 查询回调 | Function | 必填 | 无 |
| searchBtnName | 查询按钮名称 | Function | ‘查询’ | v1909以后不再支持 |
| onAfterEvent | 编辑后事件回调 | Function | 无 | 无 |
| showSearchBtn | 是否显示查询按钮 | Boolean | true | 无 |
| showAdvBtn | 是否显示高级查询按钮 | Boolean | true | 无 |
| showClearBtn | 是否显示清空按钮 | Boolean | true | 无 |
| showAdvSearchPlanBtn | 是否显示查询方案按钮 | Boolean | true | 无 |
| replaceAdvBtnEve | 业务组替换高级弹窗 | Function | 无 | 无 |
| replaceAdvBody | 业务组替换高级弹窗中的面板 | Function | 无 | 无 |
| addAdvTabs | 添加高级查询区自定义页签 | Function | 无 | 无 |
| addAdvBody | 添加高级查询区自定义查询条件Dom | Function | 无 | 无 |
| replaceRightBody | 添加高级查询区右侧区域自定义查询条件Dom | Function | 无 | 无 |
| hideSearchCondition | 隐藏候选条件 | Boolean | false | 无 |
| saveSearchPlan | 保存查询方案确定按钮事件 ,用于业务组返回自定义的查询条件 | Function | 无 | 无 |
| clickPlanEve | 点击高级面板中的查询方案事件 ,用于业务组为自定义查询区赋值 | Function | 无 | 无 |
| clickAdvBtnEve | 单击高级按钮之后的回调方法 | Function | 无 | 无 |
| hideBtnArea | 隐藏查询按钮区域 | Boolean | false | 无 |
| advSearchClearEve | 高级查询面板中的清空按钮 点击事件回调,用于业务组清除自定义查询条件值 | Function | 无 | 无 |
| onlyShowSuperBtn | 只显示高级按钮 | Boolean | false | 无 |
| replaceSuperBtn | 替换高级按钮中的文案 | String | “高级” | 无 |
| onOperateTypeChange | 查询条件操作符修改的回调函数 | Function | 无 | 无 |
| onlyShowAdvArea | 在查询区只显示 高级查询面板 | Boolean | false | 无 |
| onlyShowModal | 在查询区只显示 高级查询模态框 | Boolean | false | 无 |
| renderCompleteEvent | 查询区渲染完成之后的回调事件 | Function | 无 | 无 |
| statusChangeEvent | 切换查询区状态时的回调 | Function | 无 | 无 |
| context | 上下文 | Object | {} | 无 |
| setInitValueEvent | 初始化四状态默认值的时候的回调函数 | Function | 无 | 无 |
| useCache | 是否启用查询区缓存 | Boolean | true | 无 |
| isSynInitAdvSearch | 是否同步渲染高级查询区 | Boolean | false | 无 |
| onlyShowModalCancelCallback | 只渲染modal时 关闭modal 触发的回调 | Function | 无 | 无 |
| onlyShowPlan | 只显示方案列表和高级查询 | Boolean | false | 无 |
| searchModalTitle | 高级查询模态框标题 | String | “高级查询” | 无 |
| currentSearch | 多个查询组件同时存在时,用来标识当前查询组件 | Boolean | true | 无 |
3.2 查询区api
查询区api是指在获取模板数据并初始化查询区之后,可以调用的操纵查询区组件和数据的方法
3.2.1 getAllSearchData
调用样例 : getAllSearchData(moduleId, flag)
说明 : 用于获取查询区所有已有值得查询条件
参数说明:
| 参数 | 说明 | 类型 | 默认值 | 备注 |
|---|---|---|---|---|
| moduleId | 模板id | String | 必填 | - |
| flag | 是否启用必填校验 | Boolean | true | - |
返回值说明 : 返回一个Object 结构如下
| 参数 | 说明 | 类型 | 备注 |
|---|---|---|---|
| logic | 操作符 | String | - |
| conditions | 查询条件列表 | Array | - |
props.search.getAllSearchData(searchId);
3.2.2 getQueryInfo
调用样例 : getQueryInfo(moduleId, flag)
说明 : 用于获取查询区所有已有值得查询条件,与getAllSearchData功能类似,但返回结果不同
参数说明:
| 参数 | 说明 | 类型 | 默认值 | 备注 |
|---|---|---|---|---|
| moduleId | 模板id | String | 必填 | - |
| flag | 是否启用必填校验 | Boolean | true | - |
返回值说明 : 返回一个Object 结构如下
| 参数 | 说明 | 类型 | 备注 |
|---|---|---|---|
| queryAreaCode | 模板id | String | - |
| oid | 区域ID | String | - |
| querytype | 默认’tree’ | String | - |
| querycondition | 与getQueryInfo返回结构一致 | Object | - |
| nctz | 时区偏移 | Number | - |
3.2.3 setSearchValByField
调用样例 : setSearchValByField(moduleId, field, data, status)
说明 : 用于设置查询区具体某个字段数据
参数说明:
| 参数 | 说明 | 类型 | 默认值 | 备注 |
|---|---|---|---|---|
| moduleId | 模板id | String | 必填 | - |
| field | 条件的attrcode | String | 必填 | - |
| data | 条件的值 | Object | 必填 | 结构应为{display:””,value:””} |
| status | 设置的区域 | String | - | 默认是当前区域,可选值有’simple’, ‘normal’, ‘super’ 分别标识 简单查询,普通查询,高级查询 |
3.2.4 setSearchValue
调用样例 : setSearchValue(moduleId, data, callback)
说明 : 设置查询区数据 ,通常是用于将getAllSearchData 获取的数据 反写回查询区
参数说明:
| 参数 | 说明 | 类型 | 默认值 | 备注 |
|---|---|---|---|---|
| moduleId | 模板id | String | 必填 | - |
| data | 与getAllSearchData返回值结构一致 | Object | 必填 | - |
| callback | 设置成功的回调函数 | Function | - | - |
3.2.5 getSearchValByField
调用样例 : getSearchValByField(moduleId, field, status)
说明 : 获取查询区某个字段的数据
参数说明:
| 参数 | 说明 | 类型 | 默认值 | 备注 |
|---|---|---|---|---|
| moduleId | 模板id | String | 必填 | - |
| field | 条件的attrcode | String | 必填 | - |
| status | 设置的区域 | String | - | 默认是当前区域,可选值有’simple’, ‘normal’, ‘super’ 分别标识 简单查询,普通查询,高级查询 |
返回值说明 : 返回一个Object 结构如下
| 参数 | 说明 | 类型 | 备注 |
|---|---|---|---|
| value | 返回值 | 返回一个Object | { firstvalue: ‘’, secondvalue: ‘’ } |
| display | 显示得值 | String | - |
| oprtype | 操作符 | String | - |
3.2.6 setDisabledByField
调用样例 : setDisabledByField(moduleId, field, status)
说明 : 设置某个查询条件是否可用
参数说明:
| 参数 | 说明 | 类型 | 默认值 | 备注 |
|---|---|---|---|---|
| moduleId | 模板id | String | 必填 | - |
| field | 条件的attrcode | String | 必填 | - |
| status | 设置的区域 | String | - | 默认是当前区域,可选值有’simple’, ‘normal’, ‘super’ 分别标识 简单查询,普通查询,高级查询 |
3.2.7 closeSearchPlanArea
调用样例 : closeSearchPlanArea(moduleId)
说明 : 关闭查询方案区域
参数说明:
| 参数 | 说明 | 类型 | 默认值 | 备注 |
|---|---|---|---|---|
| moduleId | 模板id | String | 必填 | - |
3.2.8 openAdvSearch
调用样例 : openAdvSearch(moduleId, status, callback)
说明 : 打开/关闭 高级查询面板
参数说明:
| 参数 | 说明 | 类型 | 默认值 | 备注 |
|---|---|---|---|---|
| moduleId | 模板id | String | 必填 | - |
| status | 打开或关闭的状态 | Boolean | 必填 | true 打开 /false关闭 |
| callback | 完成的回调函数 | Function | 必填 | - |
3.2.9 setDisabled
调用样例 : setDisabled(moduleId, status)
说明 : 设置查询区不可编辑
参数说明:
| 参数 | 说明 | 类型 | 默认值 | 备注 |
|---|---|---|---|---|
| moduleId | 模板id | String | 必填 | - |
| status | 打开或关闭的状态 | Boolean | 必填 | true 不可编辑 /false可以编辑 |
3.2.10 clearSearchArea
调用样例 : clearSearchArea(moduleId)
说明 : 清空查询区值方法
参数说明:
| 参数 | 说明 | 类型 | 默认值 | 备注 |
|---|---|---|---|---|
| moduleId | 模板id | String | 必填 | - |
3.2.11 getOprtypeByField
调用样例 : getOprtypeByField(moduleId, field)
说明 : 获取查询条件的操作符
参数说明:
| 参数 | 说明 | 类型 | 默认值 | 备注 |
|---|---|---|---|---|
| moduleId | 模板id | String | 必填 | - |
| field | 条件的attrcode | String | 必填 | - |
3.2.12 changeItemVisibleByField
调用样例 : changeItemVisibleByField(moduleId, field, status)
说明 : 修改条件可见性
参数说明:
| 参数 | 说明 | 类型 | 默认值 | 备注 |
|---|---|---|---|---|
| moduleId | 模板id | String | 必填 - | |
| field | 条件的attrcode | String | 必填 | - |
| status | 可见性 | Boolean | false | - |
3.2.13 setRequiredByField
调用样例 : setRequiredByField(moduleId, field, status)
说明 : 修改查询模板必输性
参数说明:
| 参数 | 说明 | 类型 | 默认值 | 备注 |
|---|---|---|---|---|
| moduleId | 模板id | String | 必填 | - |
| field | 条件的attrcode | String | 必填 | - |
| status | 必输性 | Boolean | 必填 | - |
3.2.14 setTemlateByField
调用样例 : setTemlateByField(moduleId, field, property, value)
说明 : 修改查询模板属性
参数说明:
| 参数 | 说明 | 类型 | 默认值 | 备注 |
|---|---|---|---|---|
| moduleId | 模板id | String | 必填 | - |
| field | 条件的attrcode | String | 必填 | - |
| property | String | 必填 | 需要修改的属性名 | - |
| value | 需要修改的属性值 | String、Object | 必填 | - |
4 模板结构
4.1查询区模板整体结构
| 属性 | 说明 | 类型 | 备注 |
|---|---|---|---|
| items | 查询条件数组,用于渲染查询条件 | Array | 详情见4.2 |
| moduletype | 模板类型 | String | search |
| code | 模板编码 | String | 唯一标识模板 |
| name | 模板名称 | String | - |
| oid | 区域id | String | - |
| queryschemes | 查询方案列表 | Array | 详情见4.3 |
4.2查询条件结构
items的每一项结构如下
| 属性 | 说明 | 类型 | 备注 |
|---|---|---|---|
| isfixedcondition | 固定条件标识 | Boolean | - |
| required | 必填标识 | Boolean | - |
| disabled | 可编辑性标识 | Boolean | - |
| queryOperateType | 操作符 | String | =@is not null@is null 用@分割,默认取第一个 |
| visible | 可见性标识 | Boolean | - |
| label | 查询条件名称 | String | - |
| itemtype | 查询条件类型 | String | select、datepicker、number等 |
| col | 列宽 | Number | 查询区用不到 |
| leftspace | 左侧空白 | Number | 查询区用不到 |
| rightspace | 右侧空白 | Number | 查询区用不到 |
| maxlength | 最大长度 | Number | 如果是number类型的条件,会用到 |
| scale | 模板精度 | Number | 如果是number类型的条件,会用到,如果存在数据精度,会优先使用数据精度 |
| isdrag | 可拖拽的标识 | Boolean | 默认高级查询中的条件列表中,只会显示可以拖拽的条件 |
| max | 最大值 | Number | 如果是number类型的条件,会用到,2147483647 |
| min | 最小值 | Number | 如果是number类型的条件,会用到,-2147483648 |
| visibleposition | 排序标识 | String | 该字段用于辅助决定字段排序,但是具体的排序规则还需要根据是否是固定条件、必填条件等因素决定 |
| initialvalue | 条件默认值 | Object | {display:’’,//默认值的标题 value:’’//默认值,scale:’’//数据精度} |
4.3查询方案结构
| 属性 | 说明 | 类型 | 备注 |
|---|---|---|---|
| isquickqs | 是否是快速查询方案 | Boolean | 快速查询方案会优先显示,原则上只会有一个快速查询方案,如果有多个则会取最后一个作为快速方案解析 |
| isdefault | 是否是默认查询方案 | Boolean | 出厂预置的方案 |
| name | 方案名称 | String | - |
| pk_ncc_queryscheme | 方案编码 | String | - |
| renderobj4web | 方案的内容 | Array | 一般情况下不建议领域干涉本字段 |
5. 注意事项
- 在调用查询区api之前,请一定要确认已经初始化了查询区并设置了模板
- 查询组件只对查询条件负责,不对查询结果负责。
- 存在多个查询区的情况下,请确认模板都是不同的。
