### 一，自定义按钮支持两种模式：
      1，如同当前申请类消息，多个接收人同时收到消息时，只要有一人处理，所有消息都处理。
      2，按钮于人员绑定，多个接收人收到消息时，各自的按钮状态独立显示。

### 二，自定义按钮
      支持 按钮名称，按钮的背景色自定义（可以支持固定的几组背景色让业务模块选择）
	  另外客户端需要考虑一下 如果按钮太多时，如何布局的问题。特别是h5/app

### 三,  自定义按钮的处理状态支持两种模式：
      1，直接调用http处理接口处理，根据http接口返回的data值回显数据。新增逻辑，返回状态为200，无data值时，隐藏界面按钮。
      2，借鉴目前事项卡片的方式，支持打开业务模块组件。 由im前端统一组件规范，由业务模块来实现。
### 四，统一组件实现逻辑；
            1，支持传递参数(im消息id，发送人uid，taskId, 按钮type)
            2，组件处理完成之后返回处理状态，im前端根据处理状态选择隐藏按钮.(例如返回成功隐藏按钮，返回失败不做处理)
            3，业务模块实现组件时，如果需要隐藏按钮，需要后端调用http接口将 im消息id传递到后台。
            4，组件管理的唯一标识由im前端统一管理处理。需要支持app。

### 五，app打开业务模块组件实现逻辑；
         1， app消息为原生开发，无法直接使用前端组件，因此由PC客户端提供统一的组件打开url地址；
		 2，app打开统一地址并传递组件相关参数（参数由PC客户端和app开发协商）， url地址代开之后根据传递的参数，调用业务模块的组件。
		 3，另外业务模块组件完成之后返回的状态码， 统一的url地址实现需要将此状态码传递给app。 
		 
		  例如，待办模块，消息格式中包含了待办组件相关信息。 app打开统一Url地址，并把待办组件信息传递过去。
		 统一的url地址根据参数打开待办模块组件。
		 待办模块组件处理完成之后（处理完成之后需要隐藏按钮），返回一个状态码给统一的url地址，并把状态码传递给app
		 （app根据这个状态码，决定是否需要隐藏消息中的按钮）
		  

### 开发内容：
1，im前端提供统一组件规范。业务模块按照规范实现业务组件（需要支持h5），提供提议的组件管理
2，im提供自定义按钮的消息格式，消息发送接口支持新的消息格式参数。im实现新的消息格式支持。
3，im提供根据消息id隐藏按钮的功能。
4，消息中心提供统一的dubbo接口，自定义按钮支持直接处理的时候，业务模块需要按照统一的规范实现dubbo接口。接口返回结果需要支持修改消息内容，隐藏按钮，标记处理，标记已读等逻辑 
5，消息中心提供按钮处理的http接口。
6，消息中心消息发送接口支持模块设置自定义按钮。
7，待办模块 标记完成功能 作为demo实例对接自定义按钮。
