ap-dev 1.1.11 → 1.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dev/ApiPanel/menus.js +4 -1
- package/dev/ApiPanel/modules/ApiGrid.vue +1 -1
- package/dev/ApiPanel/modules/ApiJavaUtils.vue +5 -0
- package/dev/ApiPanel/modules/ApiVueUtils.vue +48 -0
- package/dev/ApiPanel/tabs/ApiApSqlCommon.vue +44 -32
- package/dev/ApiPanel/tabs/ApiApSqlFunction.vue +16 -16
- package/dev/ApiPanel/tabs/ApiApSqlKeyword.vue +33 -29
- package/dev/ApiPanel/tabs/ApiApSqlOperate.vue +14 -14
- package/dev/ApiPanel/tabs/ApiVueDateUtil.vue +44 -0
- package/dev/ApiPanel/tabs/ApiVueWebSocketUtil.vue +128 -0
- package/dev/ApiPanel/tabs/ApiWebSocketUtil.vue +47 -0
- package/dev/BackgroundPanel/index.vue +16 -15
- package/dev/ConfigPanel/DevDbSource.vue +108 -0
- package/dev/ConfigPanel/DevDbUserSource.vue +117 -0
- package/dev/ConfigPanel/DevMyConfig.vue +2 -2
- package/dev/ConfigPanel/index.vue +9 -4
- package/dev/DbDesignPanel/DevDbSync.vue +644 -0
- package/dev/DbDesignPanel/DevDbTable.vue +2 -2
- package/dev/DbDesignPanel/DevDbWord.vue +644 -0
- package/dev/DbDesignPanel/index.vue +6 -0
- package/dev/TemplatePanel/index.vue +17 -17
- package/package.json +1 -1
- package/dev/ConfigPanel/DevDbAuth.vue +0 -71
package/dev/ApiPanel/menus.js
CHANGED
|
@@ -271,7 +271,7 @@ toolbarBtn: ["add", "edit", "del", "cancel", "refresh", "save", "separator",
|
|
|
271
271
|
default: '无',
|
|
272
272
|
memo: '添加行时对象的默认值。<br>一对象:默认值。<br>二、方法:()方法返回默认值<br><span class="api-memo">注:和列的addDefaultValue效果相同,主要处理页面不需要显示的字段的默认值。</span>',
|
|
273
273
|
code: '<span class="api-code">// 1、对象形式:添加行的fdDeleted默认为0 <br>addDefaultObj: {fdDeleted:0}' +
|
|
274
|
-
'<br>// 2、方法形式:动态返回添加行的默认值 <br>addDefaultObj: () => {fdDeleted:0}</span>'
|
|
274
|
+
'<br>// 2、方法形式:动态返回添加行的默认值 <br>addDefaultObj: () => { return {fdDeleted:0} }</span>'
|
|
275
275
|
}
|
|
276
276
|
]
|
|
277
277
|
const gridAttrData_col = [
|
|
@@ -21,6 +21,7 @@ import ApiListUtil from './../tabs/ApiListUtil'
|
|
|
21
21
|
import ApiStringUtil from './../tabs/ApiStringUtil'
|
|
22
22
|
import ApiQyWxUtil from './../tabs/ApiQyWxUtil'
|
|
23
23
|
import ApiJavaCommonUtil from './../tabs/ApiJavaCommonUtil'
|
|
24
|
+
import ApiWebSocketUtil from './../tabs/ApiWebSocketUtil'
|
|
24
25
|
|
|
25
26
|
export default {
|
|
26
27
|
name: "ApiJavaUtils",
|
|
@@ -37,6 +38,7 @@ export default {
|
|
|
37
38
|
ApiStringUtil,
|
|
38
39
|
ApiQyWxUtil,
|
|
39
40
|
ApiJavaCommonUtil,
|
|
41
|
+
ApiWebSocketUtil
|
|
40
42
|
},
|
|
41
43
|
data() {
|
|
42
44
|
let opts = [
|
|
@@ -76,6 +78,9 @@ export default {
|
|
|
76
78
|
}, {
|
|
77
79
|
label: 'CacheUtil',
|
|
78
80
|
component: 'ApiCacheUtil',
|
|
81
|
+
},{
|
|
82
|
+
label: 'WebSocketUtil',
|
|
83
|
+
component: 'ApiWebSocketUtil',
|
|
79
84
|
},
|
|
80
85
|
];
|
|
81
86
|
return {
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<el-tabs v-model="activeName" tabPosition="left" class="api-tabs">
|
|
3
|
+
<template v-for="(item,index) in opts">
|
|
4
|
+
<el-tab-pane :label="item.label" :name="'tab' + index" class="api-tab">
|
|
5
|
+
<component :is="item.component"></component>
|
|
6
|
+
</el-tab-pane>
|
|
7
|
+
</template>
|
|
8
|
+
</el-tabs>
|
|
9
|
+
</template>
|
|
10
|
+
|
|
11
|
+
<script>
|
|
12
|
+
import ApiVueDateUtil from './../tabs/ApiVueDateUtil'
|
|
13
|
+
import ApiVueWebSocketUtil from './../tabs/ApiVueWebSocketUtil'
|
|
14
|
+
|
|
15
|
+
export default {
|
|
16
|
+
name: "ApiJavaUtils",
|
|
17
|
+
components: {
|
|
18
|
+
ApiVueDateUtil,
|
|
19
|
+
ApiVueWebSocketUtil,
|
|
20
|
+
},
|
|
21
|
+
data() {
|
|
22
|
+
let opts = [
|
|
23
|
+
{
|
|
24
|
+
label: "DateUtil",
|
|
25
|
+
component: "ApiVueDateUtil"
|
|
26
|
+
}, {
|
|
27
|
+
label: "WebSocketUtil",
|
|
28
|
+
component: "ApiVueWebSocketUtil"
|
|
29
|
+
}
|
|
30
|
+
];
|
|
31
|
+
return {
|
|
32
|
+
activeName: 'tab0',
|
|
33
|
+
opts: opts
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
</script>
|
|
38
|
+
|
|
39
|
+
<style scoped>
|
|
40
|
+
.api-tabs {
|
|
41
|
+
display: flex;
|
|
42
|
+
height: 100%;
|
|
43
|
+
}
|
|
44
|
+
.api-tabs /deep/ .el-tabs__content {
|
|
45
|
+
flex: 1;
|
|
46
|
+
overflow: scroll;
|
|
47
|
+
}
|
|
48
|
+
</style>
|
|
@@ -8,24 +8,32 @@
|
|
|
8
8
|
1、后端代码生成:***TF<br>
|
|
9
9
|
<br>
|
|
10
10
|
2、组装sql<br>
|
|
11
|
-
<div class="api-code">
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
.
|
|
16
|
-
.
|
|
17
|
-
.
|
|
18
|
-
.
|
|
11
|
+
<div class="api-code">
|
|
12
|
+
TDemoTF t1 = new TDemoTF();<br>
|
|
13
|
+
TDemoTypeTF t2 = new TDemoTypeTF();<br><br>
|
|
14
|
+
ApSql sql = new ApSql();<br>
|
|
15
|
+
sql.select(t1.fdName,t2.fdName)<br>
|
|
16
|
+
.from(t1.TDemo)<br>
|
|
17
|
+
.leftJoin(t2.TDemoType)<br>
|
|
18
|
+
.on(t1.fdTypeId.eq(t2.fdId))<br>
|
|
19
|
+
.where(t1.fdName.like("张%"))<br>
|
|
20
|
+
.and(t1.fdDisabled.eq(1))<br>
|
|
21
|
+
.orderBy(t1.fdName);</div>
|
|
19
22
|
<br>
|
|
20
23
|
3、执行sql:可返回四种类型的结果<br>
|
|
21
24
|
<div class="api-code">
|
|
22
25
|
// 1、返回 HashMap 类型的list<br>
|
|
23
26
|
List<HashMap> list1 = sql.execute();<br><br>
|
|
24
|
-
// 2
|
|
27
|
+
// 2、返回 HashMap 类型的list;分页处理<br>
|
|
28
|
+
// 参数:PageParam pp<br>
|
|
29
|
+
List<HashMap> list1 = sql.execute(pp);<br><br>
|
|
30
|
+
// 3、返回指定对象类型的list<br>
|
|
25
31
|
List<TDemo> list2 = sql.execute(TDemo.class);<br><br>
|
|
26
|
-
//
|
|
32
|
+
// 4、返回指定对象类型的list;分页<br>
|
|
33
|
+
List<TDemo> list2 = sql.execute(pp, TDemo.class);<br><br>
|
|
34
|
+
// 5、返回 HashMap (只需返回一条数据)<br>
|
|
27
35
|
HashMap obj2 = sql.executeOne();<br><br>
|
|
28
|
-
//
|
|
36
|
+
// 6、返回 指定对象 (只需返回一条数据)<br>
|
|
29
37
|
TDemo obj1 = sql.executeOne(TDemo.class);<br></div>
|
|
30
38
|
<br><br>
|
|
31
39
|
复杂sql示例:<br>
|
|
@@ -40,12 +48,13 @@
|
|
|
40
48
|
<api-content>
|
|
41
49
|
1、默认别名:t1、t2、...。<br>
|
|
42
50
|
默认添加bean属性名称。eg:t1.fd_name as fdName<br><br>
|
|
43
|
-
2
|
|
51
|
+
2、自定义别名:new TxxxTF("别名")<br>
|
|
44
52
|
<div class="api-code">// 例:同一个表,在SQL中多次使用时需要自定义别名。<br>
|
|
45
|
-
|
|
46
|
-
|
|
53
|
+
TDemoTF t1 = new TDemoTF("a1");<br>
|
|
54
|
+
TDemoTF t2 = new TDemoTF("a2");<br>
|
|
55
|
+
</div>
|
|
47
56
|
<br>
|
|
48
|
-
<span class="api-memo"
|
|
57
|
+
<span class="api-memo">注:通常使用默认别名即可。如果自定义别名,不能使用t1、t2、...防止冲突。</span>
|
|
49
58
|
</api-content>
|
|
50
59
|
<api-tittle2>
|
|
51
60
|
三、通用说明:字段别名(select时使用)
|
|
@@ -54,19 +63,19 @@
|
|
|
54
63
|
1、默认bean属性名称:"as 属性名"<br>
|
|
55
64
|
<div class="api-code">
|
|
56
65
|
// select t1.fd_name as fdName<br>
|
|
57
|
-
.select(
|
|
66
|
+
.select(t1.fdName)
|
|
58
67
|
</div>
|
|
59
68
|
<br>
|
|
60
69
|
2、存在函数时,默认添加f*:"as f*"<br>
|
|
61
70
|
<div class="api-code">
|
|
62
71
|
// select count(t1.fd_name) as f1<br>
|
|
63
|
-
.select(count(
|
|
72
|
+
.select(count(t1.fdName))
|
|
64
73
|
</div>
|
|
65
74
|
<br>
|
|
66
75
|
3、自定义别名:.as("****")<br>
|
|
67
76
|
<div class="api-code">
|
|
68
77
|
// select t1.fd_name as name<br>
|
|
69
|
-
.select(
|
|
78
|
+
.select(t1.fdName.as("name"))
|
|
70
79
|
</div>
|
|
71
80
|
</api-content>
|
|
72
81
|
<api-tittle2>
|
|
@@ -76,13 +85,13 @@
|
|
|
76
85
|
1、字段和字段:<br>
|
|
77
86
|
<div class="api-code">
|
|
78
87
|
// t1.fd_name= t2.fd_name<br>
|
|
79
|
-
|
|
88
|
+
t1.fdName.eq(t2.fdName)
|
|
80
89
|
</div>
|
|
81
90
|
<br>
|
|
82
91
|
2、字段和参数,默认添加f*:"as f*"<br>
|
|
83
92
|
<div class="api-code">
|
|
84
93
|
// t1.fd_name= '张三'<br>
|
|
85
|
-
|
|
94
|
+
t1.fdName.eq("张三")
|
|
86
95
|
</div>
|
|
87
96
|
<br>
|
|
88
97
|
</api-content>
|
|
@@ -95,9 +104,9 @@
|
|
|
95
104
|
// 例:select count(f1.fd_name)<br><br>
|
|
96
105
|
// 方式1(推荐):顶部import 静态方法<br>
|
|
97
106
|
import static com.ap.sql.ASL.count;<br>
|
|
98
|
-
.select(count(
|
|
107
|
+
.select(count(t1.fdName))<br><br>
|
|
99
108
|
// 方式2:直接调用<br>
|
|
100
|
-
.select(ASL.count(
|
|
109
|
+
.select(ASL.count(t1.fdName))
|
|
101
110
|
</div>
|
|
102
111
|
<br>
|
|
103
112
|
</api-content>
|
|
@@ -130,19 +139,22 @@ order by
|
|
|
130
139
|
|
|
131
140
|
|
|
132
141
|
// ApSql构造
|
|
142
|
+
TDemoTF t1 = new TDemoTF();
|
|
143
|
+
TDemoTypeTF t2 = new TDemoTypeTF();
|
|
144
|
+
|
|
133
145
|
ApSql sql = new ApSql();
|
|
134
|
-
sql.select(
|
|
135
|
-
substring(
|
|
136
|
-
|
|
146
|
+
sql.select(t1.fdName,
|
|
147
|
+
substring(t1.fdName, 1 ,2),
|
|
148
|
+
t2.fdName,
|
|
137
149
|
custom('lower(t1.fd_en_name) as fdEnName'))
|
|
138
|
-
.from(
|
|
139
|
-
.leftJoin(
|
|
140
|
-
.on(
|
|
141
|
-
.where(
|
|
142
|
-
.andPartStart(
|
|
143
|
-
.and(
|
|
150
|
+
.from(t1.TDemo)
|
|
151
|
+
.leftJoin(t2.TDemoType)
|
|
152
|
+
.on(t1.fdTypeId.eq(t2.fdId))
|
|
153
|
+
.where(t1.fdDate.lt(date_format('2021-11-08', 'Y-%m-%d')))
|
|
154
|
+
.andPartStart(t1.fdName.like( "张%"))
|
|
155
|
+
.and(t1.fdName.like( "李%"))
|
|
144
156
|
.partEnd()
|
|
145
|
-
.orderBy(
|
|
157
|
+
.orderBy(t1.fdName.desc());`
|
|
146
158
|
return {js1}
|
|
147
159
|
},
|
|
148
160
|
methods: {}
|
|
@@ -25,74 +25,74 @@ export default {
|
|
|
25
25
|
name: 'count',
|
|
26
26
|
memo: `格式:count(字段) <br>说明:计数`,
|
|
27
27
|
code: `<span class="api-code">// 例:select count(t1.fd_name) f1
|
|
28
|
-
.select(count(
|
|
28
|
+
.select(count(t1.fdName))</span>`
|
|
29
29
|
}, {
|
|
30
30
|
name: 'group_concat',
|
|
31
31
|
memo: `格式:group_concat(字段) <br>说明:聚合`,
|
|
32
32
|
code: `<span class="api-code">// 例:select group_concat(t1.fd_name) f1
|
|
33
|
-
.select(group_concat(
|
|
33
|
+
.select(group_concat(t1.fdName))</span>`
|
|
34
34
|
}, {
|
|
35
35
|
name: 'date_format',
|
|
36
36
|
memo: `格式:date_format(字段, "日期格式") <br>说明:日期格式化
|
|
37
37
|
<br>常用日期格式:%Y-%m-%d %H:%i:%S<br>例:2021-11-18 11:20:30`,
|
|
38
38
|
code: `<span class="api-code">// 例:select date_format(t1.fd_date, '%Y-%m-%d %H:%i:%S') f1
|
|
39
|
-
.select(date_format(
|
|
39
|
+
.select(date_format(t1.fdDate, "%Y-%m-%d %H:%i:%S"))</span>`
|
|
40
40
|
}, {
|
|
41
41
|
name: 'sum',
|
|
42
42
|
memo: `格式:sum(字段) <br>说明:求和`,
|
|
43
43
|
code: `<span class="api-code">// 例:select sum(t1.fd_type) f1
|
|
44
|
-
.select(sum(
|
|
44
|
+
.select(sum(t1.fdType))</span>`
|
|
45
45
|
}, {
|
|
46
46
|
name: 'avg',
|
|
47
47
|
memo: `格式:avg(字段) <br>说明:平均数`,
|
|
48
48
|
code: `<span class="api-code">// 例:select avg(t1.fd_type) f1
|
|
49
|
-
.select(avg(
|
|
49
|
+
.select(avg(t1.fdType))</span>`
|
|
50
50
|
}, {
|
|
51
51
|
name: 'substring',
|
|
52
52
|
memo: `格式:avg(字段, 开始位置, 截取长度) <br>说明:字符串切割`,
|
|
53
53
|
code: `<span class="api-code">// 例:select substring(t1.fd_name, 1, 2) f1
|
|
54
|
-
.select(substring(
|
|
54
|
+
.select(substring(t1.fdName, 1, 2))</span>`
|
|
55
55
|
}, {
|
|
56
56
|
name: 'ifnull',
|
|
57
57
|
memo: `格式:ifnull(字段, "参数") <br>说明:判断空`,
|
|
58
58
|
code: `<span class="api-code">// 例:select ifnull(t1.fd_name,t1.fd_comment) f1
|
|
59
|
-
.select(ifnull(
|
|
59
|
+
.select(ifnull(t1.fdName, t1.fdComment))
|
|
60
60
|
// 例:select ifnull(t1.fd_name, '空') f1
|
|
61
|
-
.select(ifnull(
|
|
61
|
+
.select(ifnull(t1.fdName, "空"))</span>`
|
|
62
62
|
}, {
|
|
63
63
|
name: 'if_',
|
|
64
64
|
memo: `格式:if(表达式, "参数", "参数") <br>说明:if为java关键字所以末端加了下划线`,
|
|
65
65
|
code: `<span class="api-code">// 例:select if(t1.fd_name='张三', '是张三', '不是张三') f1
|
|
66
|
-
.select(if(
|
|
66
|
+
.select(if(t1.fdName.eq("张三"), "是张三", "不是张三"))
|
|
67
67
|
// 例:select if(t1.fd_name='张三', t1.fd_comment, 'xxx') f1
|
|
68
|
-
.select(if(
|
|
68
|
+
.select(if(t1.fdName.eq("张三"), t1.fdCommont, "xxx"))</span>`
|
|
69
69
|
}, {
|
|
70
70
|
name: 'round',
|
|
71
71
|
memo: `格式:ROUND(字段) <br>说明:最近的整数(四舍五入)`,
|
|
72
72
|
code: `<span class="api-code">// 例:select round(t1.fd_count) f1
|
|
73
|
-
.select(round(
|
|
73
|
+
.select(round(t1.fdCount))</span>`
|
|
74
74
|
}, {
|
|
75
75
|
name: 'truncate',
|
|
76
76
|
memo: `格式:truncate(xx, y) <br>说明:数值 xx 保留到小数点后 y 位的值(不会进行四舍五入)`,
|
|
77
77
|
code: `<span class="api-code">// 例:select truncate(t1.fd_count, 2) f1
|
|
78
|
-
.select(truncate(
|
|
78
|
+
.select(truncate(t1.fdCount, 2))</span>`
|
|
79
79
|
}, {
|
|
80
80
|
name: 'max',
|
|
81
81
|
memo: `格式:max(字段) <br>说明:最大值`,
|
|
82
82
|
code: `<span class="api-code">// 例:select max(t1.fd_count) f1
|
|
83
|
-
.select(max(
|
|
83
|
+
.select(max(t1.fdCount))</span>`
|
|
84
84
|
}, {
|
|
85
85
|
name: 'min',
|
|
86
86
|
memo: `格式:min(字段) <br>说明:最小值`,
|
|
87
87
|
code: `<span class="api-code">// 例:select min(t1.fd_count) f1
|
|
88
|
-
.select(min(
|
|
88
|
+
.select(min(t1.fdCount))</span>`
|
|
89
89
|
}, {
|
|
90
90
|
name: 'concat',
|
|
91
91
|
memo: `格式:concat(xx,yy...) <br>说明:拼接`,
|
|
92
92
|
code: `<span class="api-code">// 例:select concat(t1.fd_name, "名字", "!") f1
|
|
93
|
-
.select(concat(
|
|
93
|
+
.select(concat(t1.fdName , "名字", "!"))
|
|
94
94
|
// 例:select concat(t1.fd_name, t1.fd_type) f1
|
|
95
|
-
.select(concat(
|
|
95
|
+
.select(concat(t1.fdName , t1.fdType))</span>`
|
|
96
96
|
}, {
|
|
97
97
|
name: 'custom',
|
|
98
98
|
memo: `格式:custom("参数") <br>说明:自定义任意字符串`,
|
|
@@ -27,13 +27,16 @@ export default {
|
|
|
27
27
|
2、表别名<br>
|
|
28
28
|
3、函数<br>`,
|
|
29
29
|
code: `<span class="api-code">// select示例:
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
.
|
|
30
|
+
TDemoTF t1 = new TDemoTF();
|
|
31
|
+
|
|
32
|
+
ApSql sql = new ApSql();
|
|
33
|
+
sql.select(
|
|
34
|
+
t1.fdName, // 默认 => t1.fd_name as fdName
|
|
35
|
+
t1.fdName.as("name"), // 字段别名 => t1.fd_name as name,
|
|
36
|
+
t1.fdName.tableAs("temp"), // 表别名 => temp.fd_name as fdName,
|
|
37
|
+
substring(t1.fdName, 1, 2), // 函数调用 => substring(t1.fd_name, 1, 2) as f1
|
|
38
|
+
substring(t1.fdName, 1, 2).tableAs("temp").as("name")) // 嵌套 => substring(temp.fd_name, 1, 2) as name
|
|
39
|
+
.from(t1.TDemo)</span>`
|
|
37
40
|
}, {
|
|
38
41
|
name: 'select distinct',
|
|
39
42
|
memo: `同select`,
|
|
@@ -43,85 +46,86 @@ export default {
|
|
|
43
46
|
name: 'from',
|
|
44
47
|
memo: `1、表别名`,
|
|
45
48
|
code: `<span class="api-code">// 1、默认别名:t_demo t1
|
|
46
|
-
.from(
|
|
49
|
+
.from(t1.TDemo)
|
|
47
50
|
// 2、自定义别名转为:t_demo tt
|
|
48
|
-
|
|
51
|
+
TDemoTF t1 = new TDemoTF("tt");
|
|
52
|
+
.from(t1.TDemo)</span>`
|
|
49
53
|
}, {
|
|
50
54
|
name: 'inner join ',
|
|
51
55
|
memo: `同from`,
|
|
52
56
|
code: `<span class="api-code">// 例:from t_demo1 t1 inner join t_demo2 t2:
|
|
53
|
-
.from(
|
|
57
|
+
.from(t1.TDemo).innerJoin(t2.TDemo)</span>`
|
|
54
58
|
}, {
|
|
55
59
|
name: 'left join ',
|
|
56
60
|
memo: `同from`,
|
|
57
61
|
code: `<span class="api-code">// 例:from t_demo1 t1 left join t_demo2 t2
|
|
58
|
-
.from(
|
|
62
|
+
.from(t1.TDemo).leftJoin(t2.TDemo)</span>`
|
|
59
63
|
}, {
|
|
60
64
|
name: 'right join ',
|
|
61
65
|
memo: `同from`,
|
|
62
66
|
code: `<span class="api-code">// 示例:from t_demo1 t1 right join t_demo2 t2
|
|
63
|
-
.from(
|
|
67
|
+
.from(t1.TDemo).rightJoin(t2.TDemo)</span>`
|
|
64
68
|
}, {
|
|
65
69
|
name: 'on',
|
|
66
70
|
memo: `字段连接`,
|
|
67
71
|
code: `<span class="api-code">// 1、单个条件:....on t1.fd_name= t2.fd_name
|
|
68
|
-
.on(
|
|
72
|
+
.on(t1.fdName.eq(t2.fdName))
|
|
69
73
|
// 2、多条件拼接:....on t1.fd_name= t2.fd_name and t1.fd_type=1
|
|
70
|
-
.on(
|
|
74
|
+
.on(t1.fdName.eq(t2.fdName)).and(t1.fdType.eq(1))</span>`
|
|
71
75
|
}, {
|
|
72
76
|
name: 'where',
|
|
73
77
|
memo: `where条件`,
|
|
74
78
|
code: `<span class="api-code">// 例:where t1.fd_name= '张三'
|
|
75
|
-
.where(
|
|
79
|
+
.where(t1.fdName.eq("张三"))
|
|
76
80
|
// 例:where t1.fd_name= t2.fd_name
|
|
77
|
-
.where(
|
|
81
|
+
.where(t1.fdName.eq(t2.fdName))</span>`
|
|
78
82
|
}, {
|
|
79
83
|
name: 'and',
|
|
80
84
|
memo: `and`,
|
|
81
85
|
code: `<span class="api-code">// 例:and t1.fd_name= '张三'
|
|
82
|
-
.and(
|
|
86
|
+
.and(t1.fdName.eq("张三"))
|
|
83
87
|
// 例:and t1.fd_name= t2.fd_name
|
|
84
|
-
.and(
|
|
88
|
+
.and(t1.fdName.eq(t2.fdName))</span>`
|
|
85
89
|
}, {
|
|
86
90
|
name: 'or',
|
|
87
91
|
memo: `or`,
|
|
88
92
|
code: `<span class="api-code">// 例:or t1.fd_name= '张三'
|
|
89
|
-
.or(
|
|
93
|
+
.or(t1.fdName.eq("张三"))
|
|
90
94
|
// 例:or t1.fd_name= t2.fd_name
|
|
91
|
-
.or(
|
|
95
|
+
.or(t1.fdName.eq(t2.fdName))</span>`
|
|
92
96
|
}, {
|
|
93
97
|
name: 'andPartStart',
|
|
94
98
|
memo: `带括号形式:and ()`,
|
|
95
99
|
code: `<span class="api-code">// 例:and ( t1.fd_name like '%张%' or t1.fd_name like '%李%')
|
|
96
|
-
.andPartStart(
|
|
100
|
+
.andPartStart(t1.fdName.like("%张%")).or(t1.fdName.like("%李%")).partEnd()</span>`
|
|
97
101
|
}, {
|
|
98
102
|
name: 'orPartStart',
|
|
99
103
|
memo: `带括号形式:or ()`,
|
|
100
104
|
code: `<span class="api-code">// 例:or ( t1.fd_name like '%张%' or t1.fd_name like '%李%')
|
|
101
|
-
.orPartStart(
|
|
105
|
+
.orPartStart(t1.fdName.like("%张%")).or(t1.fdName.like("%李%")).partEnd()</span>`
|
|
102
106
|
}, {
|
|
103
107
|
name: 'groupBy',
|
|
104
108
|
memo: `group by`,
|
|
105
109
|
code: `<span class="api-code">// 例:group by t1.fd_name
|
|
106
|
-
.groupBy(
|
|
110
|
+
.groupBy(t1.fdName)
|
|
107
111
|
// 例:group by t1.fd_name, t1.fd_type
|
|
108
|
-
.groupBy(
|
|
112
|
+
.groupBy(t1.fdName, t1.fdType)</span>`
|
|
109
113
|
}, {
|
|
110
114
|
name: 'having',
|
|
111
115
|
memo: `having`,
|
|
112
116
|
code: `<span class="api-code">// 例:having t1.fd_name= '张三'
|
|
113
|
-
.having(
|
|
117
|
+
.having(t1.fdName.eq("张三"))
|
|
114
118
|
// 例:having t1.fd_name= '张三' and t1.fd_type = 1
|
|
115
|
-
.having(
|
|
119
|
+
.having(t1.fdName.eq("张三")).and(t1.fdType.eq(1))</span>`
|
|
116
120
|
}, {
|
|
117
121
|
name: 'orderBy',
|
|
118
122
|
memo: `order by<br> 默认升序:asc`,
|
|
119
123
|
code: `<span class="api-code">// 例:order by t1.fd_name
|
|
120
|
-
.orderBy(
|
|
124
|
+
.orderBy(t1.fdName)
|
|
121
125
|
// 例:order by t1.fd_name, t1.fd_type
|
|
122
|
-
.orderBy(
|
|
126
|
+
.orderBy(t1.fdName, t1.fdType)
|
|
123
127
|
// 例:order by t1.fd_name asc, t1.fd_type desc
|
|
124
|
-
.orderBy(
|
|
128
|
+
.orderBy(t1.fdName.asc(), t1.fdType.desc())</span>`
|
|
125
129
|
}, {
|
|
126
130
|
name: 'limit',
|
|
127
131
|
memo: `limit`,
|
|
@@ -25,67 +25,67 @@ export default {
|
|
|
25
25
|
name: '=',
|
|
26
26
|
memo: `格式:字段.eq("参数") <br>说明:等于。参数可以是字段`,
|
|
27
27
|
code: `<span class="api-code">// 例:t1.fd_name = "张三"
|
|
28
|
-
|
|
28
|
+
t1.fdName.eq("张三")
|
|
29
29
|
// 例:t1.fd_name = t2.fd_name
|
|
30
|
-
|
|
30
|
+
t1.fdName.eq(t2.fdName)</span>`
|
|
31
31
|
}, {
|
|
32
32
|
name: '!=',
|
|
33
33
|
memo: `格式:字段.notEq("参数") <br>说明:不等于。参数可以是字段`,
|
|
34
34
|
code: `<span class="api-code">// 例:t1.fd_name != "张三"
|
|
35
|
-
|
|
35
|
+
t1.fdName.notEq("张三")
|
|
36
36
|
// 例:t1.fd_name != t2.fd_name
|
|
37
|
-
|
|
37
|
+
t1.fdName.notEq(t2.fdName)</span>`
|
|
38
38
|
}, {
|
|
39
39
|
name: '<',
|
|
40
40
|
memo: `格式:字段.lt("参数") <br>说明:小于。参数可以是字段`,
|
|
41
41
|
code: `<span class="api-code">// 例:t1.fd_count < 1
|
|
42
|
-
|
|
42
|
+
t1.fdCount.lt(1)</span>`
|
|
43
43
|
}, {
|
|
44
44
|
name: '<=',
|
|
45
45
|
memo: `格式:字段.ltEq("参数") <br>说明:小于等于。参数可以是字段`,
|
|
46
46
|
code: `<span class="api-code">// 例:t1.fd_count <= 1
|
|
47
|
-
|
|
47
|
+
t1.fdCount.ltEq(1)</span>`
|
|
48
48
|
}, {
|
|
49
49
|
name: '>',
|
|
50
50
|
memo: `格式:字段.gt("参数") <br>说明:大于。参数可以是字段`,
|
|
51
51
|
code: `<span class="api-code">// 例:t1.fd_count > 1
|
|
52
|
-
|
|
52
|
+
t1.fdCount.gt(1)</span>`
|
|
53
53
|
}, {
|
|
54
54
|
name: '>=',
|
|
55
55
|
memo: `格式:字段.gtEq("参数") <br>说明:大于等于。参数可以是字段`,
|
|
56
56
|
code: `<span class="api-code">// 例:t1.fd_count >= 1
|
|
57
|
-
|
|
57
|
+
t1.fdCount.gtEq(1)</span>`
|
|
58
58
|
}, {
|
|
59
59
|
name: 'like',
|
|
60
60
|
memo: `格式:字段.like("参数") <br>说明:like`,
|
|
61
61
|
code: `<span class="api-code">// 例:t1.fd_name like "张%"
|
|
62
|
-
|
|
62
|
+
t1.fdCount.like("张%")</span>`
|
|
63
63
|
}, {
|
|
64
64
|
name: 'is null',
|
|
65
65
|
memo: `格式:字段.isNull() <br>说明:为空`,
|
|
66
66
|
code: `<span class="api-code">// 例:t1.fd_name is null
|
|
67
|
-
|
|
67
|
+
t1.fdCount.isNull()</span>`
|
|
68
68
|
}, {
|
|
69
69
|
name: 'is not null',
|
|
70
70
|
memo: `格式:字段.isNotNull() <br>说明:不为空`,
|
|
71
71
|
code: `<span class="api-code">// 例:t1.fd_name is not null
|
|
72
|
-
|
|
72
|
+
t1.fdCount.isNotNull()</span>`
|
|
73
73
|
}, {
|
|
74
74
|
name: 'in',
|
|
75
75
|
memo: `格式:字段.in("参数","参数"...) <br>说明:包含。<br>参数可以是多个。<br>参数可以是list`,
|
|
76
76
|
code: `<span class="api-code">// 例:t1.fd_type in (1, 2, 3)
|
|
77
|
-
|
|
77
|
+
t1.fdType.in(1, 2, 2)
|
|
78
78
|
// 例:t1.fd_type in (1, 2, 3)
|
|
79
79
|
List list = new ArrayList<Integer>();
|
|
80
80
|
list.add(1);
|
|
81
81
|
list.add(2);
|
|
82
82
|
list.add(3);
|
|
83
|
-
|
|
83
|
+
t1.fdType.in(list)</span>`
|
|
84
84
|
}, {
|
|
85
85
|
name: 'between and',
|
|
86
86
|
memo: `格式:字段.between() <br>说明:不为空`,
|
|
87
87
|
code: `<span class="api-code">// 例:t1.fd_type between 1 and 3
|
|
88
|
-
|
|
88
|
+
t1.fdType.between(1, 3)</span>`
|
|
89
89
|
}
|
|
90
90
|
]
|
|
91
91
|
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div style="height: 100%">
|
|
3
|
+
<h3>日期工具类 - DateUtil</h3>
|
|
4
|
+
<api-table :data="methodData" :columns="methodCols"/>
|
|
5
|
+
</div>
|
|
6
|
+
</template>
|
|
7
|
+
|
|
8
|
+
<script>
|
|
9
|
+
import {ApiCode, ApiContent, ApiTable, ApiTittle1, ApiTittle2} from './../components'
|
|
10
|
+
|
|
11
|
+
export default {
|
|
12
|
+
name: 'ApiStringUtil',
|
|
13
|
+
components: {
|
|
14
|
+
ApiTable, ApiCode, ApiTittle1, ApiContent, ApiTittle2
|
|
15
|
+
},
|
|
16
|
+
data() {
|
|
17
|
+
const methodCols = [
|
|
18
|
+
{label: '方法名', prop: 'name', width: '220px'},
|
|
19
|
+
{label: '说明', prop: 'memo', width: '300px'},
|
|
20
|
+
{label: '示例代码', prop: 'code', minWidth: '100px'}]
|
|
21
|
+
const methodData = [
|
|
22
|
+
{
|
|
23
|
+
name: 'formatDate',
|
|
24
|
+
memo: `格式化日期<br><span class="api-memo">格式:yyyy-MM-dd hh:mm:ss。</span>`,
|
|
25
|
+
code: `<span class="api-code">// 1、导入方法
|
|
26
|
+
import {formatDate} from 'ap-util/util/DateUtil';
|
|
27
|
+
|
|
28
|
+
// 2、调用
|
|
29
|
+
let str = formatDate(new Date(), 'yyyy-MM-dd hh:mm:ss');
|
|
30
|
+
</span>`
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
|
|
34
|
+
return {
|
|
35
|
+
methodData,
|
|
36
|
+
methodCols
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
methods: {}
|
|
40
|
+
}
|
|
41
|
+
</script>
|
|
42
|
+
|
|
43
|
+
<style scoped>
|
|
44
|
+
</style>
|