[关闭]
@Wahson 2017-12-29T14:05:32.000000Z 字数 4339 阅读 915

MetaUI Tutorial

前端技术


服务配置

1. 首先在前端服务(i.e. kuaisuadmin)中添加maven依赖

  1. <dependency>
  2. <groupId>com.isuwang</groupId>
  3. <artifactId>dapeng-metaui-servlet</artifactId>
  4. <version>1.0.0</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>com.isuwang</groupId>
  8. <artifactId>dapeng-registry-zookeeper</artifactId>
  9. <version>1.2.1</version>
  10. </dependency>
  11. <dependency>
  12. <groupId>com.isuwang</groupId>
  13. <artifactId>dapeng-remoting-netty</artifactId>
  14. <version>1.2.1</version>
  15. </dependency>
  16. <dependency>
  17. <groupId>mysql</groupId>
  18. <artifactId>mysql-connector-java</artifactId>
  19. <version>5.1.25</version>
  20. </dependency>

dapeng-metaui-servlet Github地址,可clone下来本地安装。

2. 前端服务web.xml中配置servlet

  1. <servlet>
  2. <servlet-name>metadataServlet</servlet-name>
  3. <servlet-class>com.isuwang.dapeng.metadata.servlet.MetadataServlet</servlet-class>
  4. <init-param>
  5. <param-name>driverClassName</param-name>
  6. <param-value>com.mysql.jdbc.Driver</param-value>
  7. </init-param>
  8. </servlet>
  9. <servlet-mapping>
  10. <servlet-name>metadataServlet</servlet-name>
  11. <url-pattern>/dapeng/metadata</url-pattern>
  12. </servlet-mapping>

3. 在resource目录下添加init.properties配置文件,写入以下内容并修改数据库配置

  1. DB_METADB_URL=jdbc:mysql://192.168.5.194:3306/metadb?useUnicode=true&characterEncoding=utf8
  2. DB_METADB_USER=your-db-username
  3. DB_METADB_PASSWD=your-db-password

也可以设置系统的环境变量,如:
此处输入图片的描述
设置环境变量后,会优先读取环境变量的值。

4. 初始化数据库

  1. DROP DATABASE
  2. IF EXISTS metadb;
  3. CREATE DATABASE
  4. IF NOT EXISTS metadb DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  5. DROP TABLE IF EXISTS `metadb`.`fields`;
  6. CREATE TABLE `metadb`.`fields` (
  7. `id` int(11) NOT NULL AUTO_INCREMENT,
  8. `domain` varchar(50) NOT NULL COMMENT '领域,如orderdb',
  9. `entity` varchar(50) NOT NULL COMMENT '实体,如TOrder',
  10. `name` varchar(50) NOT NULL COMMENT '字段名,如"orderNo"',
  11. `element` varchar(50) DEFAULT NULL COMMENT '替换元素,如 "paper-input" ',
  12. `label` varchar(50) NOT NULL COMMENT '字段名,如"订单号"',
  13. `required` smallint(1) NOT NULL DEFAULT '0' COMMENT '是否必填 1: 是 0:否',
  14. `mutil` smallint(1) NOT NULL DEFAULT '0' COMMENT '多否多选 1: 是 0:否',
  15. `format` varchar(50) DEFAULT NULL COMMENT '显示格式,用于日期显示,如“yyyy-MM-dd”',
  16. `editable` smallint(1) NOT NULL DEFAULT '0' COMMENT '是否可编辑 1: 是 0:否',
  17. `validate` smallint(1) NOT NULL DEFAULT '0' COMMENT '前是否需要校验, 1: 是 0:否',
  18. `length` int(11) DEFAULT NULL COMMENT '字符允许长度',
  19. `max_length` int(11) DEFAULT NULL COMMENT '允许最大长度',
  20. `min_length` int(11) DEFAULT NULL COMMENT '允许最小长度',
  21. `regexp` varchar(50) DEFAULT NULL COMMENT '正则匹配',
  22. `prompt` varchar(50) DEFAULT NULL COMMENT '校验失败时的提示语,如“请输入备注”',
  23. `min` int(11) DEFAULT NULL COMMENT '数字最小值',
  24. `max` int(11) DEFAULT NULL COMMENT '数字最大值',
  25. `candidates` varchar(1000) DEFAULT NULL COMMENT '下拉选项中的值,json串,如 [{value:1,label:"男"},{value:2,label:"女"}]',
  26. `candidate_label` varchar(50) DEFAULT NULL COMMENT '组件显示字段名,针对下拉组件、radio-group组件等,“label”',
  27. `candidate_value` varchar(50) DEFAULT NULL COMMENT '组件值字段名,针对下拉组件、radio-group组件等,“value”',
  28. `placeholder` varchar(50) DEFAULT NULL COMMENT 'placeholder',
  29. `src_key` varchar(50) DEFAULT NULL COMMENT '源字段名',
  30. `visible` smallint(1) NOT NULL DEFAULT '1' COMMENT '界面是否可见 1: 是 0:否',
  31. `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  32. `created_by` int(11) DEFAULT NULL,
  33. `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  34. `updated_by` int(11) DEFAULT NULL,
  35. `disabled` smallint(1) NOT NULL DEFAULT '0'
  36. PRIMARY KEY (`id`),
  37. UNIQUE KEY `field_unique` (`domain`,`entity`,`name`) COMMENT '字段唯一约束'
  38. ) ENGINE=InnoDB AUTO_INCREMENT=262 DEFAULT CHARSET=utf8 COMMENT='字段元数据';

服务开发

https://github.com/isuwang/isuwang-soa

1. 编写thrift

Thrift元数据定义

2. 安装API

  1. mvn clean install

3. 安装API

4. 启动服务

前端使用

https://www.webcomponents.org/element/isuwang/metaui

1. 安装MetaUI

  1. bower install git://github.com/isuwang/metaui.git

2. 页面中引入元数据组件

  1. <link rel="import" href="../bower_components/metaui/utils/meta-constructor.html">
  2. <link rel="import" href="../bower_components/metaui/h2-crud.html">

3. 声明组件

meta-constructor src属性的值与servlet配置中的url-pattern是对应的。
option中必须传入serviceName以及version, methodName的值是页面数据查询的方法名。

  1. <dom-module id="test-index">
  2. <template>
  3. <h2-crud metadata="[[ metadata ]]"></h2-crud>
  4. <meta-constructor src="/dapeng/metadata" metadata="{{ metadata }}" option="[[ option ]]"></meta-constructor>
  5. </template>
  6. <script>
  7. class TestIndex extends Polymer.Element {
  8. static get is() {
  9. return "test-index";
  10. }
  11. static get properties() {
  12. return {
  13. metadata: {
  14. type: Object
  15. },
  16. option: {
  17. type: Object,
  18. value: function () {
  19. return {
  20. serviceName: "com.isuwang.soa.order.service.WaybillBizService",
  21. version: "1.0.0",
  22. methodName: "findWaybills"
  23. };
  24. }
  25. }
  26. };
  27. }
  28. }
  29. customElements.define(TestIndex.is, TestIndex);
  30. </script>
  31. </dom-module>
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注