Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
H
hel-developer-guide
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hel-guide
hel-developer-guide
Commits
56fcb785
Commit
56fcb785
authored
Jul 31, 2017
by
Jefferyne
Browse files
Options
Browse Files
Download
Plain Diff
Conflict resolution
parents
d2057ac4
dfcaeac1
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
280 additions
and
107 deletions
+280
-107
NumericTextBox.md
前端组件/NumericTextBox.md
+141
-107
消息机制.md
后端开发/消息机制.md
+139
-0
No files found.
前端组件/NumericTextBox.md
View file @
56fcb785
## NumericTextBox
提示:以下配置,方法和事件均为个人了解到的,不代表组件的全部。
### 使用方法:
提示:下面写到的都是常用的方法。
##### 1.[bind](http://docs.telerik.com/kendo-ui/api/javascript/ui/numerictextbox#configuration-value) 及默认值的设置
说明:设置默认值
```
html
//定义数据模型
<script>
var
viewModel
=
kendo
.
observable
({
enabled
:
false
,
//或者true
data
:
{
sumDueAmount
:
10000
},
});
</script>
//设置默认值
<h:hlsNumericTextBox
id=
"sumDueAmount"
bind=
"enabled: enabled, value:data.sumDueAmount"
style=
"width:100%"
/>
//设置文本框前面的名称
<h:hlsNumericTextBox
id=
"sumDueAmount"
bind=
"enabled: enabled, value:data.sumDueAmount"
prompt=
"注册资本:"
style=
"width:100%"
/>
//设置文本框前的名称的宽度
<h:hlsNumericTextBox
id=
"sumDueAmount"
bind=
"enabled: enabled, value:data.sumDueAmount"
prompt=
"注册资本:"
promptColspan=
"1"
style=
"width:100%"
/>
//设置文本的宽度
<h:hlsNumericTextBox
id=
"sumDueAmount"
bind=
"enabled: enabled, value:data.sumDueAmount"
colspan=
"3"
prompt=
"注册资本"
promptColspan=
"1"
style=
"width:100%"
/>
```
##### 2.[enable](http://docs.telerik.com/kendo-ui/api/javascript/ui/numerictextbox#methods-enable)
说明:是否启用编辑
```
html
//定义数据模型
<script>
var
viewModel
=
kendo
.
observable
({
enabled
:
false
,
//或者true
data
:
{
},
});
</script>
//设置是否编辑
<h:hlsNumericTextBox
id=
"sumDueAmount"
bind=
"enabled: enabled"
style=
"width:100%"
/>
```
![](
/assets/193025.png
)
##### 3.[readonly](http://docs.telerik.com/kendo-ui/api/javascript/ui/numerictextbox#methods-readonly)
说明:是否启用只读
```
html
<h:hlsNumericTextBox
id=
"numerictextbox"
/>
<script>
$
(
"#numerictextbox"
).
kendoNumericTextBox
();
var
numerictextbox
=
$
(
"#numerictextbox"
).
data
(
"kendoNumericTextBox"
);
numerictextbox
.
readonly
();
</script>
```
![](
/assets/93141.png
)
##### 4.[focus](http://docs.telerik.com/kendo-ui/api/javascript/ui/numerictextbox#methods-focus)
说明:聚焦
```
html
<h:hlsNumericTextBox
id=
"numerictextbox"
/>
<script>
$
(
"#numerictextbox"
).
kendoNumericTextBox
();
var
numerictextbox
=
$
(
"#numerictextbox"
).
data
(
"kendoNumericTextBox"
);
numerictextbox
.
focus
();
</script>
```
##### 5.[value](http://docs.telerik.com/kendo-ui/api/javascript/ui/numerictextbox#methods-value)
说明:获取和设置值
```
html
<script>
var
viewModel
=
kendo
.
observable
({
enabled
:
false
,
//或者true
data
:
{
sumDueAmount
:
10000
},
});
</script>
<h:hlsNumericTextBox
id=
"sumDueAmount"
bind=
"enabled: enabled, value:data.sumDueAmount"
colspan=
"3"
prompt=
"注册资本"
promptColspan=
"1"
style=
"width:100%"
/>
<script>
//获取值
var
value
=
viewModel
.
data
.
sumDueAmount
</script>
```
### 事件:
##### 1.[change](http://docs.telerik.com/kendo-ui/api/javascript/ui/numerictextbox#events-change)
```
html
<h:hlsNumericTextBox
id=
"numerictextbox"
/>
<script>
//方法一
$
(
"#numerictextbox"
).
kendoNumericTextBox
({
change
:
function
()
{
var
value
=
this
.
value
();
}
});
//方法二
$
(
"#numerictextbox"
).
kendoNumericTextBox
();
var
numerictextbox
=
$
(
"#numerictextbox"
).
data
(
"kendoNumericTextBox"
);
numerictextbox
.
bind
(
"change"
,
function
()
{
var
value
=
this
.
value
();
});
</script>
//方法三
<h:hlsNumericTextBox
id=
"numerictextbox"
bind=
"enabled: enabled, value:data.numerictextbox"
change=
"change"
style=
"width:100%"
/>
<script>
function
change
(){
alert
(
"改变事件"
)
}
</script>
```
### 配置:
提示:以下配置,方法和事件均为个人了解到的,不代表组件的全部。
##### 1.[culture](http://docs.telerik.com/kendo-ui/api/javascript/ui/numerictextbox#configuration-culture)[`String`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)_\(default: "en-US"\)_
```
html
...
...
@@ -15,7 +139,8 @@
For more information check this help topic:
http://docs.telerik.com/kendo-ui/framework/globalization/overview
-->
<input
id=
"numerictextbox"
/>
<h:hlsNumericTextBox
id=
"numerictextbox"
/>
//js实现
<script>
$
(
"#numerictextbox"
).
kendoNumericTextBox
({
...
...
@@ -29,7 +154,8 @@
说明:指定数量精度NumericTextBox时。 例如,如果小数是
`2`
和用户输入
`12.346`
,将成为价值
`12.35`
。 如果用户输入
`12.99`
,将成为价值
`13.00`
。
```
html
<input
id=
"numerictextbox"
/>
<h:hlsNumericTextBox
id=
"numerictextbox"
/>
//js实现
<script>
$
(
"#numerictextbox"
).
kendoNumericTextBox
({
...
...
@@ -41,7 +167,8 @@
##### 3.[downArrowText](http://docs.telerik.com/kendo-ui/api/javascript/ui/numerictextbox#configuration-downArrowText)[`String`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)_\(default: "Decrease value"\)_
```
html
<input
id=
"numerictextbox"
/>
<h:hlsNumericTextBox
id=
"numerictextbox"
/>
//js实现
<script>
$
(
"#numerictextbox"
).
kendoNumericTextBox
({
...
...
@@ -55,7 +182,7 @@
说明:假设以数字15输入,并把NumberitextBox的属性设为0.01,则显示的结果为15%。
```
html
<
input
id=
"numerictextbox"
/>
<
h:hlsNumericTextBoxi
id=
"numerictextbox"
/>
<script>
$
(
"#numerictextbox"
).
kendoNumericTextBox
({
...
...
@@ -75,7 +202,8 @@ $("#numerictextbox").kendoNumericTextBox({
说明: 设置控件显示的格式,常用的有c(货币形式)、n(数值形式)和p(百分比形式),实例中的c3表示货币形式,精确到小数后三位。
```
html
<input
id=
"numerictextbox"
/>
<h:hlsNumericTextBox
id=
"numerictextbox"
/>
//js实现
<script>
$
(
"#numerictextbox"
).
kendoNumericTextBox
({
format
:
"c3"
...
...
@@ -90,7 +218,8 @@ $("#numerictextbox").kendoNumericTextBox({
说明:限制显示的最大数
```
html
<input
id=
"numerictextbox"
/>
<h:hlsNumericTextBox
id=
"numerictextbox"
/>
//js实现
<script>
$
(
"#numerictextbox"
).
kendoNumericTextBox
({
max
:
100
...
...
@@ -105,7 +234,8 @@ $("#numerictextbox").kendoNumericTextBox({
说明:设置文本框里面的默认值
```
html
<input
id=
"numerictextbox"
/>
<h:hlsNumericTextBox
id=
"numerictextbox"
placeholder=
"Set A Value"
/>
//js实现
<script>
$
(
"#numerictextbox"
).
kendoNumericTextBox
({
placeholder
:
"Set A Value"
...
...
@@ -120,7 +250,7 @@ $("#numerictextbox").kendoNumericTextBox({
说明:当点击文框,是否允许设置显示的最大小数长度
```
html
<
input
id=
"numerictextbox"
/>
<
h:hlsNumericTextBox
id=
"numerictextbox"
/>
<script>
$
(
"#numerictextbox"
).
kendoNumericTextBox
({
decimals
:
3
,
...
...
@@ -136,7 +266,7 @@ $("#numerictextbox").kendoNumericTextBox({
说明:是否启用文本框右边的上下按钮
```
html
<
input
id=
"numerictextbox"
/>
<
h:hlsNumericTextBox
id=
"numerictextbox"
/>
<script>
$
(
"#numerictextbox"
).
kendoNumericTextBox
({
spinners
:
false
...
...
@@ -149,7 +279,7 @@ $("#numerictextbox").kendoNumericTextBox({
说明:点击右边上下按钮增加或者减少的值
```
html
<
input
id=
"numerictextbox"
/>
<
h:hlsNumericTextBox
id=
"numerictextbox"
/>
<script>
$
(
"#numerictextbox"
).
kendoNumericTextBox
({
step
:
0.1
...
...
@@ -157,101 +287,5 @@ $("#numerictextbox").kendoNumericTextBox({
</script>
```
##### 10.[value](http://docs.telerik.com/kendo-ui/api/javascript/ui/numerictextbox#configuration-value)[`Number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)_\(default: null\)_
说明:设置默认值
```
html
<input
id=
"numerictextbox"
/>
<script>
$
(
"#numerictextbox"
).
kendoNumericTextBox
({
value
:
10
});
</script>
```
### 方法:
##### 1.[enable](http://docs.telerik.com/kendo-ui/api/javascript/ui/numerictextbox#methods-enable)
说明:是否启用编辑
```
html
<input
id=
"numerictextbox"
disabled=
"disabled"
/>
<script>
$
(
"#numerictextbox"
).
kendoNumericTextBox
();
var
numerictextbox
=
$
(
"#numerictextbox"
).
data
(
"kendoNumericTextBox"
);
numerictextbox
.
enable
(
false
);
</script>
```
![](
/assets/193025.png
)
##### 2.[readonly](http://docs.telerik.com/kendo-ui/api/javascript/ui/numerictextbox#methods-readonly)
说明:是否启用只读
```
html
<input
id=
"numerictextbox"
/>
<script>
$
(
"#numerictextbox"
).
kendoNumericTextBox
();
var
numerictextbox
=
$
(
"#numerictextbox"
).
data
(
"kendoNumericTextBox"
);
numerictextbox
.
readonly
();
</script>
```
![](
/assets/93141.png
)
##### 3.[focus](http://docs.telerik.com/kendo-ui/api/javascript/ui/numerictextbox#methods-focus)
说明:聚焦
```
html
<input
id=
"numerictextbox"
/>
<script>
$
(
"#numerictextbox"
).
kendoNumericTextBox
();
var
numerictextbox
=
$
(
"#numerictextbox"
).
data
(
"kendoNumericTextBox"
);
numerictextbox
.
focus
();
</script>
```
##### 4.[value](http://docs.telerik.com/kendo-ui/api/javascript/ui/numerictextbox#methods-value)
说明:获取和设置值
```
html
<input
id=
"numerictextbox"
/>
<script>
$
(
"#numerictextbox"
).
kendoNumericTextBox
();
var
numerictextbox
=
$
(
"#numerictextbox"
).
data
(
"kendoNumericTextBox"
);
//获取值
var
value
=
numerictextbox
.
value
();
//设置值
numerictextbox
.
value
(
0.5
);
</script>
```
### 事件:
##### 1.[change](http://docs.telerik.com/kendo-ui/api/javascript/ui/numerictextbox#events-change)
```
html
<input
id=
"numerictextbox"
/>
<script>
//方法一
$
(
"#numerictextbox"
).
kendoNumericTextBox
({
change
:
function
()
{
var
value
=
this
.
value
();
}
});
//方法二
$
(
"#numerictextbox"
).
kendoNumericTextBox
();
var
numerictextbox
=
$
(
"#numerictextbox"
).
data
(
"kendoNumericTextBox"
);
numerictextbox
.
bind
(
"change"
,
function
()
{
var
value
=
this
.
value
();
});
</script>
```
后端开发/消息机制.md
0 → 100644
View file @
56fcb785
# 消息机制
## 1.简介
融租易 的消息系统提供
`唯一`
和
`广播`
以及
`主题`
三种模式,实现方式为 RabbitMQ。
### 1.1 RabbitMQ介绍
RabbitMQ 是实现 AMQP(高级消息队列协议)的消息中间件的一种,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。消息中间件主要用于组件之间的解耦。rabbitmq多应用于批量数据异步处理、并行任务串行化,高负载任务的负载均衡等 重量级,高并发,异步高可靠性场景。
### 1.2 配置rabbit
(1)用户要先在
`applicationContext-rabbitmq.xml`
中 添加
`<beans:import resource="rabbitmq.xml"/>`
。
(2)然后在
`config.properties`
中自行添加mq相关的配置如图:
![](
/assets/config.png
)
## 2 自定义消息
在融租易的接口管理的消息队列模块定义功中,提供了自定义队列和交换机的功能,可以根据配置实现自定义的队列和交换机的匹配,避免了在xml中的繁琐配置。
### 2.1 定义交换机
在接口管理的消息队列定义模块中,首先进行交换机的定义,界面如图:!
[](
/assets/exchange.png
)
注意:
交换机名称不可以重复定义,一个交换机可以对应多个队列。
交换机类型可以分为
**direct\(唯一模式\),topic\(主题模式\),fanout\(广播模式\),**
rabbitmq会根据你的交换机类型和定义的路由键,完成消息的转发
**。**
持久化(durable):交换机在服务关闭后,清除与否。
自动删除(auto-delete):当交换机没有队列绑定时,删除与否。
### 2.2 定义队列和路由键
定义完交换机后,你还需要定义你的队列和相应的匹配模式(既路由键)界面如图:!
[](
/assets/queue.png
)
注意:
队列名称不可以重复,但是一个队列可以对应多个交换机。
匹配模式(routing-key):此处的匹配模式即为路由键
持久化(durable):队列在服务关闭后,清除与否。
自动删除(auto-delete):当队列没有绑定交换机时,删除与否。
私有队列(exclusive): 仅创建者可以使用的私有队列,断开后自动删除.
## 3 发送消息/接收消息
在融租易中,消息的发送和接收都提供了可以直接调用的接口
### 3.1 消息的匹配规则
1.
唯一模式
\(
**Direct Exchange**
\)
:
处理路由键。需要将一个队列绑定到交换机上,要求该消息与一个特定的路由键完全匹配。这是一个完整的匹配。如果一个队列绑定到该交换机上要求路由键 “hls”,则只有被标记为“hls”的消息才被转发,不会转发hls.sys,也不会转发hls.fnd,只会转发hls。
2.
广播模式
\(
**Fanout Exchange**
\)
:
不处理路由键。你只需要简单的将队列绑定到交换机上。一个发送到交换机的消息都会被转发到与该交换机绑定的所有队列上。很像子网广播,每台子网内的主机都获得了一份复制的消息。Fanout交换机转发消息是最快的。
3.
主题模式
\(
**Topic Exchange**
\)
:
将路由键和某模式进行匹配。此时队列需要绑定要一个模式上。符号“
\#
”匹配一个或多个词,符号“
\*
”匹配不多不少一个词。因此“hls.
\#
”能够匹配到“hls.sys.adaptor”,但是“hls.
\*
” 只会匹配到“hls.sys”。
### 3.2 发送消息
融租易中,通过调用
`IRabbitProducerService`
接口中的
`sendMessage(JSONObject json)`
方法,来实现消息的发送
注意:
接口调用时必须使用spring中的注入方式。
json必须按照格式如:
```
json
{
"header"
:{
"orgCode"
:
"hls"
,
"apiName"
:
"demoMQ"
,
"sysCode"
:
"fnd"
,
"routingKey"
:
"hls"
,
"respCode"
:
"sys"
,
"respMsg"
:
"recived"
,
"transDate"
:
"Thu Jul 27 2017 10:47:17 GMT+0800 (CST)"
,
"transNo"
:
"123"
},
"busiData"
:{
"contractId"
:
1
},
"securityInfo"
:{
"userName"
:
"hd001"
,
"userPassword"
:
"123456"
}
}
```
### 3.3 接收消息
融租易中对消息的接收进行了统一处理,只需要单独编写业务的实现类即可(此处必须实现IRabbitMessageConsumerService接口),消息会先被内部的消息监听接口统一处理,然后再根据消息中的apiName找到对应的接口实现类,调用其中的process方法。
示例代码:
```
java
@Service
public
class
ConsumerDemoServiceImpl
implements
IRabbitMessageConsumerService
{
@Autowired
(
required
=
false
)
private
IRabbitProducerService
iRabbitProducerService
;
//消息发送类
@Autowired
private
IXXXService
service
;
//业务类
@Override
public
String
getApiName
()
{
return
"demoMQ"
;
}
@Override
public
void
process
(
JSONObject
json
)
{
//业务处理
service
.
doSomething
(
json
)
//返回消息
ResponseInfo
responseInfo
=
null
;
try
{
responseInfo
=
RabbitMQUtils
.
getResposeInfo
(
json
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
JSONObject
respose
=
new
JSONObject
().
fromObject
(
responseInfo
);
iRabbitProducerService
.
sendMessage
(
respose
);
}
}
```
###
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment