查询区API

  1. import {createPage} from 'nc-light-app';
  2. import {clickSearchBtn, initTemplate} from './events';
  3. class demo extends Component {
  4. constructor(props) {
  5. super(props);
  6. let {form, button, table, insertTable, search} = this.props;
  7. let {setSearchValue, setSearchValByField, getAllSearchData} = search;
  8. this.setSearchValByField = setSearchValByField;//设置查询区某个字段值
  9. this.getAllSearchData = getAllSearchData;//获取查询区所有字段数据
  10. }
  11. componentWillMount() {
  12. }
  13. /* 编辑后事件 */
  14. onAfterEvent(field, val){
  15. console.log(field);
  16. console.log(val)
  17. }
  18. /* 添加高级查询区中的页签 */
  19. addAdvTabs = () => {
  20. return [
  21. {
  22. name:'页签2', //页签名称
  23. content:<div>页签2内容</div> //页签内容
  24. },
  25. {
  26. name:'页签3',
  27. content:<div>页签3内容</div>
  28. }
  29. ]
  30. };
  31. /* 替换高级查询body区域 */
  32. replaceAdvBody = () => {
  33. return(
  34. <div>3333</div>
  35. )
  36. }
  37. //保存查询方案确定按钮事件,用于业务组返回自定义的查询条件
  38. saveSearchPlan = () => {
  39. console.log('返回自定义条件')
  40. return [
  41. {
  42. demo:'666'
  43. }
  44. ]
  45. }
  46. // 替换高级面板右侧body区域
  47. replaceRightBody = () => {
  48. return(
  49. <div>替换body右侧区域条件</div>
  50. )
  51. }
  52. //点击高级面板中的查询方案事件 ,返回查询方案信息,用于业务组为自定义查询区赋值
  53. clickPlanEve = (data) => {
  54. console.log(data)
  55. }
  56. // 高级查询面板中的清空按钮 点击事件钩子,用于业务组清除自定义查询条件值
  57. advSearchClearEve = () => {
  58. }
  59. render(){
  60. let {form, button, table, insertTable, search} = this.props;
  61. let {NCCreateSearch} = search;
  62. return(
  63. {NCCreateSearch(
  64. searchId,//模块id
  65. {
  66. clickSearchBtn, // 查询按钮点击事件回调,只返回公共查询条件,不包含自定义查询条件;如果有自定义查询条件,需要业务组在clickPlanEve方法中接收查询方案信息,并保存到业务组的state中,然后在 clickSearchBtn方法中自行合并公共条件和自定义条件。
  67. searchBtnName = '查询',
  68. onAfterEvent, // 编辑后事件
  69. showSearchBtn = true, // 是否显示查询按钮 ,默认显示
  70. showAdvBtn = true, // 是否显示高级查询按钮和查询方案按钮 ,默认显示
  71. showClearBtn = true, // 是否显示清空按钮
  72. showAdvSearchPlanBtn = true, // 高级面板中是否显示保存方案按钮
  73. replaceAdvBtnEve, // 业务组替换高级面板 (fun)
  74. replaceAdvBody, // 业务组替换高级面板中的body (fun)
  75. addAdvTabs, // 添加高级查询区自定义页签 (fun)
  76. addAdvBody, // 添加高级查询区自定义查询条件Dom (fun)
  77. replaceRightBody, // 添加高级查询区右侧区域自定义查询条件Dom (fun)
  78. // oid, // 查询模板的oid
  79. hideSearchCondition = false, // 隐藏候选条件
  80. saveSearchPlan, // 保存查询方案确定按钮事件 ,用于业务组返回自定义的查询条件
  81. clickPlanEve, // 点击高级面板中的查询方案事件 ,用于业务组为自定义查询区赋值
  82. clickAdvBtnEve, //单击高级之后的回调方法
  83. hideBtnArea = false, // 隐藏查询按钮区域,默认false
  84. advSearchClearEve, // 高级查询面板中的清空按钮 点击事件回调,用于业务组清除自定义查询条件值
  85. onlyShowSuperBtn = false, // 只显示高级按钮
  86. replaceSuperBtn = '高级', // 替换高级按钮
  87. onOperateTypeChange, // 操作符改变时的回调
  88. onlyShowAdvArea = false, //在查询区只显示 高级查询部分,
  89. renderCompleteEvent, //查询区渲染完成之后的回调事件
  90. statusChangeEvent, //切换查询区状态时的回调
  91. context = '', //如果业务组传了上下文进来,就用业务组的数据
  92. setInitValueEvent,//初始化四状态默认值的时候的回调函数
  93. onlyShowModal = false, //在查询区只显示 模态框,
  94. onlyShowModalCancelCallback // 只渲染modal时 关闭modal 触发的回调(配合onlyShowModal使用)
  95. }
  96. )}
  97. )
  98. }
  99. }
  100. //添加页面模板信息
  101. export default function initTemplate(meta) {
  102. let metas = {
  103. searchArea: {
  104. moduleType: 'search',
  105. items: [
  106. {
  107. attrcode: 'rangepicker',
  108. label: '区间日期',
  109. itemtype: 'rangepicker',
  110. required:true,
  111. visible:true,
  112. col: 3,
  113. leftspace: 0,
  114. rightspace: 0,
  115. "queryOperateType": "between",
  116. // initialvalue: {
  117. // value:'',
  118. // display:''
  119. // }
  120. },
  121. {
  122. "queryOperateType": "=",
  123. visible:true,
  124. attrcode: 'refer_1',
  125. label: '参照',
  126. itemtype: 'refer',
  127. refcode:'pk_org',
  128. col: 3,
  129. leftspace: 0,
  130. rightspace: 0,
  131. // initialvalue: {
  132. // value:'1',
  133. // display:'我是参照'
  134. // }
  135. },
  136. {
  137. "queryOperateType": "=",
  138. visible:true,
  139. attrcode: 'number1',
  140. label: '数字',
  141. itemtype: 'number',
  142. required:true,
  143. col: 3,
  144. leftspace: 0,
  145. rightspace: 0,
  146. // initialvalue: {
  147. // value:0,
  148. // display:''
  149. // },
  150. scale:2
  151. },
  152. {
  153. "queryOperateType": "=",
  154. visible:true,
  155. attrcode: 'bankname',
  156. label: '银行',
  157. itemtype: 'input',
  158. col: 3,
  159. leftspace: 0,
  160. rightspace: 0,
  161. // initialvalue: {
  162. // value:0,
  163. // display:''
  164. // },
  165. },
  166. {
  167. "queryOperateType": "=",
  168. visible:true,
  169. attrcode: 'investtype',
  170. label: '存款类型',
  171. itemtype: 'select',
  172. col: 3,
  173. leftspace: 0,
  174. rightspace: 0,
  175. // initialvalue: {
  176. // value:0,
  177. // display:''
  178. // },
  179. options: [{
  180. display: '活期',
  181. value: 0
  182. },
  183. {
  184. display: '三个月',
  185. value: 1
  186. },
  187. {
  188. display: '半年',
  189. value: 2
  190. },
  191. {
  192. display: '三年',
  193. value: 3
  194. },
  195. {
  196. display: '五年',
  197. value: 4
  198. }
  199. ]
  200. },
  201. {
  202. "queryOperateType": "=",
  203. visible:true,
  204. attrcode: 'beginmny',
  205. label: '起始理财金额',
  206. itemtype: 'number',
  207. col: 3,
  208. leftspace: 0,
  209. rightspace: 0,
  210. // initialvalue: {
  211. // value:0,
  212. // display:''
  213. // },
  214. },
  215. {
  216. "queryOperateType": "=",
  217. visible:true,
  218. attrcode: 'begindate',
  219. label: '起始购买日期',
  220. itemtype: 'datepicker',
  221. col: 3,
  222. leftspace: 0,
  223. rightspace: 0,
  224. // initialvalue: {
  225. // value:0,
  226. // display:''
  227. // },
  228. },
  229. {
  230. "queryOperateType": "=",
  231. visible:true,
  232. attrcode: 'enddate',
  233. label: '截止购买日期',
  234. itemtype: 'datepicker',
  235. col: 3,
  236. leftspace: 0,
  237. rightspace: 0,
  238. // initialvalue: {
  239. // value:0,
  240. // display:''
  241. // },
  242. },
  243. {
  244. "queryOperateType": "=",
  245. visible:true,
  246. attrcode: 'radioDemo',
  247. label: '单选',
  248. itemtype: 'radio',
  249. col: 3,
  250. leftspace: 0,
  251. rightspace: 0,
  252. // initialvalue: {
  253. // value:0,
  254. // display:''
  255. // },
  256. options: [
  257. {
  258. value:'0',
  259. display: '活期'
  260. },
  261. {
  262. value:'1',
  263. display: '一个月'
  264. },
  265. {
  266. value:'2',
  267. display: '一年'
  268. },
  269. ]
  270. },
  271. {
  272. "queryOperateType": "=",
  273. visible: true,
  274. attrcode: 'checkbox',
  275. label: '复选框',
  276. itemtype: 'checkbox',
  277. col: 3,
  278. leftspace: 0,
  279. rightspace: 0,
  280. // initialvalue: {
  281. // value: 1,
  282. // display: ''
  283. // },
  284. options: [
  285. {
  286. display: '篮球',
  287. value: 0
  288. }, {
  289. display: '跑步',
  290. value: 1
  291. }, {
  292. display: '游泳',
  293. value: 2
  294. }, {
  295. display: '羽毛球',
  296. value: 3
  297. }
  298. ]
  299. },
  300. {
  301. "queryOperateType": "=",
  302. visible: true,
  303. attrcode: 'switch',
  304. label: 'switch',
  305. itemtype: 'switch',
  306. col: 3,
  307. leftspace: 0,
  308. rightspace: 0,
  309. // initialvalue: {
  310. // value:true,
  311. // display:''
  312. // }
  313. },
  314. ]
  315. }
  316. };
  317. props.renderItem('search', 'searchArea', 'refer_1', refer('pk_org'));//参数:查询组件、组件id、字段attrcode、字段refcode
  318. props.meta.setMeta(metas)
  319. }

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’ 分别标识 简单查询,普通查询,高级查询

返回值说明 : 返回undefined

3.2.4 setSearchValue

调用样例 : setSearchValue(moduleId, data, callback)
说明 : 设置查询区数据 ,通常是用于将getAllSearchData 获取的数据 反写回查询区
参数说明:

参数 说明 类型 默认值 备注
moduleId 模板id String 必填 -
data 与getAllSearchData返回值结构一致 Object 必填 -
callback 设置成功的回调函数 Function - -

返回值说明 : 返回undefined

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’ 分别标识 简单查询,普通查询,高级查询

返回值说明 : 返回undefined

3.2.7 closeSearchPlanArea

调用样例 : closeSearchPlanArea(moduleId)
说明 : 关闭查询方案区域
参数说明:

参数 说明 类型 默认值 备注
moduleId 模板id String 必填 -

返回值说明 : 返回undefined

3.2.8 openAdvSearch

调用样例 : openAdvSearch(moduleId, status, callback)
说明 : 打开/关闭 高级查询面板
参数说明:

参数 说明 类型 默认值 备注
moduleId 模板id String 必填 -
status 打开或关闭的状态 Boolean 必填 true 打开 /false关闭
callback 完成的回调函数 Function 必填 -

返回值说明 : 返回undefined

3.2.9 setDisabled

调用样例 : setDisabled(moduleId, status)
说明 : 设置查询区不可编辑
参数说明:

参数 说明 类型 默认值 备注
moduleId 模板id String 必填 -
status 打开或关闭的状态 Boolean 必填 true 不可编辑 /false可以编辑

返回值说明 : 返回undefined

3.2.10 clearSearchArea

调用样例 : clearSearchArea(moduleId)
说明 : 清空查询区值方法
参数说明:

参数 说明 类型 默认值 备注
moduleId 模板id String 必填 -

返回值说明 : 返回undefined

3.2.11 getOprtypeByField

调用样例 : getOprtypeByField(moduleId, field)
说明 : 获取查询条件的操作符
参数说明:

参数 说明 类型 默认值 备注
moduleId 模板id String 必填 -
field 条件的attrcode String 必填 -

返回值说明 : 返回 Array 型的操作符列表

3.2.12 changeItemVisibleByField

调用样例 : changeItemVisibleByField(moduleId, field, status)
说明 : 修改条件可见性
参数说明:

参数 说明 类型 默认值 备注
moduleId 模板id String 必填 -
field 条件的attrcode String 必填 -
status 可见性 Boolean false -

返回值说明 : 返回undefined

3.2.13 setRequiredByField

调用样例 : setRequiredByField(moduleId, field, status)
说明 : 修改查询模板必输性
参数说明:

参数 说明 类型 默认值 备注
moduleId 模板id String 必填 -
field 条件的attrcode String 必填 -
status 必输性 Boolean 必填 -

返回值说明 : 返回undefined

3.2.14 setTemlateByField

调用样例 : setTemlateByField(moduleId, field, property, value)
说明 : 修改查询模板属性
参数说明:

参数 说明 类型 默认值 备注
moduleId 模板id String 必填 -
field 条件的attrcode String 必填 -
property String 必填 需要修改的属性名 -
value 需要修改的属性值 String、Object 必填 -

返回值说明 : 返回undefined

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之前,请一定要确认已经初始化了查询区并设置了模板
  • 查询组件只对查询条件负责,不对查询结果负责。
  • 存在多个查询区的情况下,请确认模板都是不同的。