Commit 32cc0a74 authored by custom's avatar custom

Merge origin/master into master

parents 884e77d3 d900fb0c
## 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: {
sumDueAmount10000
},
});
</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>
```
# 消息机制
## 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);
}
}
```
###
......@@ -20,7 +20,6 @@
* III. 后端开发
* [3.1 消息机制](/后端开发/消息机制.md)
* [3.2 部署](/后端开发/deployment.md)
* IV. 前端开发
......@@ -30,5 +29,8 @@
* V. 框架功能描述
* 5.1 计划任务功能描述
* [5.2 消息机制](/框架功能描述/消息机制.md)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment