Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Eladmin
Commits
40852235
Commit
40852235
authored
Nov 24, 2019
by
dqjdda
Browse files
Merge branch '2.4dev' into 2.3opt
parents
4681ca6e
776cee4b
Changes
89
Hide whitespace changes
Inline
Side-by-side
eladmin-system/src/main/resources/template/generator/front/eForm.ftl
View file @
40852235
<
template
>
<el-dialog :append-to-body="true" :close-on-click-modal="false" :before-close="cancel" :visible.sync="dialog" :title="isAdd ? '新增' : '编辑'" width="500px">
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
<el-form ref="form" :model="form"
<#if isNotNullColumns??>
:rules="rules"
</#if>
size="small" label-width="80px">
<#
if
columns??>
<#list columns as column>
<#if column.
changeColumnName != '$
{
pkChangeColName
}
'
>
<el-form-item label="<#if column.
columnComment
!= ''>$
{
column
.
columnComment
}
<#else>$
{
column
.changeColumnName
}
</#if>" <#if column.
columnKey = 'UNI'
>prop="$
{
column
.changeColumnName
}
"</#if>>
<#if column.
column
Type
!
= '
Timestamp
'>
<#if column.
formShow
>
<el-form-item label="<#if column.
remark
!= ''>$
{
column
.
remark
}
<#else>$
{
column
.changeColumnName
}
</#if>" <#if column.
istNotNull
>prop="$
{
column
.changeColumnName
}
"</#if>>
<#if column.
form
Type = '
Input
'>
<el-input v-model="form.$
{
column
.changeColumnName
}
" style="width: 370px;"/>
<#else >
<#elseif column.formType = 'Textarea'>
<el-input :rows="3" v-model="form.$
{
column
.changeColumnName
}
" type="textarea" style="width: 370px;"/>
<#elseif column.formType = 'Radio'>
<#if column.dictName??>
<el-radio v-for="item in dicts.$
{
column
.dictName
}
" :key="item.id" v-model="form.$
{
column
.changeColumnName
}
" :label="item.value">
{{
item
.label
}}
</el-radio>
<#else>
未设置字典,请手动设置 Radio
</#if>
<#elseif column.formType = 'Select'>
<#if column.dictName??>
<el-select v-model="form.$
{
column
.changeColumnName
}
" filterable placeholder="请选择">
<el-option
v-for="item in dicts.$
{
column
.dictName
}
"
:key="item.id"
:label="item.label"
:value="item.value"/>
</el-select>
<#else>
未设置字典,请手动设置 Select
</#if>
<#else>
<el-date-picker v-model="form.$
{
column
.changeColumnName
}
" type="datetime" style="width: 370px;"/>
</#if>
</el-form-item>
...
...
@@ -29,7 +49,12 @@ export default {
isAdd
:
{
type
:
B
oolean
,
required
:
true
}
<#
if
hasDict
>
,
dicts
:
{
type
:
O
bject
,
required
:
true
}
</#
if
>
},
data
()
{
return
{
...
...
@@ -42,13 +67,15 @@ export default {
</#
if
>
},
rules
:
{
<#
list
columns
as
column
>
<#
if
column
.columnKey
=
'
UNI
'>
<#
if
isNotNullColumns
??>
<#
list
isNotNullColumns
as
column
>
<#
if
column
.istNotNull
>
$
{
column
.changeColumnName
}:
[
{
required
:
true
,
message
:
'
please
enter
'
,
trigger
:
'
blur
'
}
]<#
if
(
column_has_next
)
>
,
</#
if
>
]<#
if
column_has_next
>
,
</#
if
>
</#
if
>
</#
list
>
</#
if
>
}
}
},
...
...
@@ -57,10 +84,23 @@ export default {
this
.resetForm
()
},
doSubmit
()
{
this
.loading
=
true
if
(
this
.isAdd
)
{
this
.doAdd
()
}
else
this
.doEdit
()
<#
if
isNotNullColumns
??>
this
.
$refs
['
form
']
.validate
((
valid
)
=>
{
if
(
valid
)
{
this
.loading
=
true
if
(
this
.isAdd
)
{
this
.doAdd
()
}
else
this
.doEdit
()
}
else
{
return
false
}
})
<#
else
>
this
.loading
=
true
if
(
this
.isAdd
)
{
this
.doAdd
()
}
else
this
.doEdit
()
</#
if
>
},
doAdd
()
{
add
(
this
.form
)
.then
(
res
=>
{
...
...
eladmin-system/src/main/resources/template/generator/front/index.ftl
View file @
40852235
...
...
@@ -9,6 +9,22 @@
<el-select v-model="query.type" clearable placeholder="类型" class="filter-item" style="width: 130px">
<el-option v-for="item in queryTypeOptions" :key="item.key" :label="item.display_name" :value="item.key"/>
</el-select>
<#
if
dateRanges??>
<#list dateRanges as column>
<#if column.queryType = 'DateRange'>
<el-date-picker
v-model="query.$
{
column
.changeColumnName
}
"
:default-time="['00:00:00','23:59:59']"
type="daterange"
range-separator=":"
class="el-range-editor--small filter-item"
style="height: 30.5px;width: 225px;"
value-format="yyyy-MM-dd HH:mm:ss"
start-placeholder="$
{
column
.changeColumnName
}
Start"
end-placeholder="$
{
column
.changeColumnName
}
End"/>
</#if>
</#list>
</#
if
>
<el-button class="filter-item" size="mini" type="success" icon="el-icon-search" @click="toQuery">搜索</el-button>
</#if>
<!-- 新增 -->
...
...
@@ -31,18 +47,36 @@
icon="el-icon-download"
@click="download">导出</el-button>
</div>
<!-- 多选删除 -->
<div v-permission="['admin','$
{
changeClassName
}
:del']" style="display: inline-block;">
<el-button
:loading="delAllLoading"
:disabled="data.length === 0 || $refs.table.selection.length === 0"
class="filter-item"
size="mini"
type="danger"
icon="el-icon-delete"
@click="open">删除</el-button>
</div>
</div>
<!--表单组件-->
<eForm ref="form" :is-add="isAdd"/>
<eForm ref="form" :is-add="isAdd"
<#if hasDict>:dicts="dict"</#if>
/>
<!--表格渲染-->
<el-table v-loading="loading" :data="data" size="small" style="width: 100%;">
<el-table v-loading="loading" ref="table" :data="data" size="small" style="width: 100%;">
<el-table-column type="selection" width="55"/>
<#if columns??>
<#list columns as column>
<#if column.columnShow = 'true'>
<#if column.columnType != 'Timestamp'>
<el-table-column prop="$
{
column
.changeColumnName
}
" label="<#if column.columnComment != ''>$
{
column
.columnComment
}
<#else>$
{
column
.changeColumnName
}
</#if>"/>
<#if column.columnShow>
<#if column.dictName??>
<el-table-column prop="$
{
column
.changeColumnName
}
" label="<#if column.remark != ''>$
{
column
.remark
}
<#else>$
{
column
.changeColumnName
}
</#if>">
<template slot-scope="scope">
{{
dict
.label
.$
{
column
.dictName
}
[
scope
.row
.$
{
column
.changeColumnName
}
]
}}
</template>
</el-table-column>
<#elseif column.columnType != 'Timestamp'>
<el-table-column prop="$
{
column
.changeColumnName
}
" label="<#if column.remark != ''>$
{
column
.remark
}
<#else>$
{
column
.changeColumnName
}
</#if>"/>
<#else>
<el-table-column prop="$
{
column
.changeColumnName
}
" label="<#if column.
columnComment
!= ''>$
{
column
.
columnComment
}
<#else>$
{
column
.changeColumnName
}
</#if>">
<el-table-column prop="$
{
column
.changeColumnName
}
" label="<#if column.
remark
!= ''>$
{
column
.
remark
}
<#else>$
{
column
.changeColumnName
}
</#if>">
<template slot-scope="scope">
<span>
{{
parseTime
(
scope
.row
.$
{
column
.changeColumnName
})
}}
</span>
</template>
...
...
@@ -83,7 +117,7 @@
<
script
>
import
checkPermission from '@/utils/permission'
import
initData from '@/mixins/initData'
import
{
del
,
download
$
{
className
}
}
from '@/api/$
{
changeClassName
}
'
import
{
del
,
download
$
{
className
}
,
delAll
}
from '@/api/$
{
changeClassName
}
'
<#
if
hasTimestamp>
import
{
parseTime
,
downloadFile
}
from '@/utils/index'
</#
if
>
...
...
@@ -91,14 +125,19 @@ import eForm from './form'
export
default
{
components
:
{
eForm
},
mixins
:
[
initData
]
,
<#
if
hasDict
>
dicts
:
[<#
if
hasDict
??><#
list
dicts
as
dict
>'$
{
dict
}
'<#
if
dict_has_next
>
,
</#
if
></#
list
></#
if
>]
,
</#
if
>
data
()
{
return
{
delLoading
:
false
,
delLoading
:
false
,
delAllLoading
:
false
,
<#
if
hasQuery
>
queryTypeOptions
:
[
<#
if
queryColumns
??>
<#
list
queryColumns
as
column
>
{
key
:
'$
{
column
.changeColumnName
}
'
,
display_name
:
'<#
if
column
.columnComment
!=
''>$
{
column
.columnComment
}
<#
else
>$
{
column
.changeColumnName
}
</#
if
>'
}
<#
if
column_has_next
>
,
</#
if
>
<#
if
column
.queryType
!=
'
D
ateRange
'>
{
key
:
'$
{
column
.changeColumnName
}
'
,
display_name
:
'<#
if
column
.remark
!=
''>$
{
column
.remark
}
<#
else
>$
{
column
.changeColumnName
}
</#
if
>'
}
<#
if
column_has_next
>
,
</#
if
>
</#
if
>
</#
list
>
</#
if
>
]
...
...
@@ -124,6 +163,16 @@ export default {
const
type
=
query
.type
const
value
=
query
.value
if
(
type
&&
value
)
{
this
.params
[
type
]
= value
}
<#
if
dateRanges
??>
<#
list
dateRanges
as
column
>
<#
if
column
.queryType
=
'
D
ateRange
'>
if
(
query
.$
{
column
.changeColumnName
})
{
this
.params
['$
{
column
.changeColumnName
}
S
tart
']
=
query
.$
{
column
.changeColumnName
}[
0
]
this
.params
['$
{
column
.changeColumnName
}
E
nd
']
=
query
.$
{
column
.changeColumnName
}[
1
]
}
</#
if
>
</#
list
>
</#
if
>
</#
if
>
return
true
},
...
...
@@ -171,6 +220,36 @@ export default {
})
.catch
(()
=>
{
this
.downloadLoading
=
false
})
},
doDelete
()
{
this
.delAllLoading
=
true
const
data
=
this
.
$refs
.table.selection
const
ids
=
[]
for
(
let
i
=
0
;
i
<
data
.length
;
i
++
)
{
ids
.push
(
data
[
i
]
.id
)
}
delAll
(
ids
)
.then
(
res
=>
{
this
.delAllLoading
=
false
this
.init
()
this
.dleChangePage
(
ids
.length
)
this
.
$notify
({
title
:
'删除成功'
,
type
:
'
success
'
,
duration
:
2500
})
})
.catch
(
err
=>
{
this
.delAllLoading
=
false
console
.log
(
err
.response.data.message
)
})
},
open
()
{
this
.
$confirm
(
'你确定删除选中的数据吗?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'
warning
'
})
.then
(()
=>
{
this
.doDelete
()
})
}
}
}
...
...
eladmin-system/src/test/java/me/zhengjie/EladminSystemApplicationTests.java
View file @
40852235
...
...
@@ -5,6 +5,9 @@ import org.junit.runner.RunWith;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
java.util.ArrayList
;
import
java.util.List
;
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
public
class
EladminSystemApplicationTests
{
...
...
@@ -13,5 +16,8 @@ public class EladminSystemApplicationTests {
public
void
contextLoads
()
{
}
public
static
void
main
(
String
[]
args
)
{
}
}
eladmin-tools/pom.xml
View file @
40852235
...
...
@@ -16,7 +16,6 @@
<mail.version>
1.4.7
</mail.version>
<qiniu.version>
[7.2.0, 7.2.99]
</qiniu.version>
<alipay.version>
3.1.0
</alipay.version>
<configuration.version>
1.9
</configuration.version>
</properties>
<dependencies>
...
...
@@ -34,19 +33,6 @@
<version>
${mail.version}
</version>
</dependency>
<!--模板引擎-->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-freemarker
</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-configuration/commons-configuration -->
<dependency>
<groupId>
commons-configuration
</groupId>
<artifactId>
commons-configuration
</artifactId>
<version>
${configuration.version}
</version>
</dependency>
<!--七牛云存储-->
<dependency>
<groupId>
com.qiniu
</groupId>
...
...
eladmin-tools/src/main/java/me/zhengjie/
modules/tools/
domain/AlipayConfig.java
→
eladmin-tools/src/main/java/me/zhengjie/domain/AlipayConfig.java
View file @
40852235
package
me.zhengjie.
modules.tools.
domain
;
package
me.zhengjie.domain
;
import
lombok.Data
;
import
javax.persistence.*
;
...
...
eladmin-tools/src/main/java/me/zhengjie/
modules/tools/
domain/EmailConfig.java
→
eladmin-tools/src/main/java/me/zhengjie/domain/EmailConfig.java
View file @
40852235
package
me.zhengjie.
modules.tools.
domain
;
package
me.zhengjie.domain
;
import
lombok.Data
;
...
...
eladmin-tools/src/main/java/me/zhengjie/
modules/tools/
domain/LocalStorage.java
→
eladmin-tools/src/main/java/me/zhengjie/domain/LocalStorage.java
View file @
40852235
package
me.zhengjie.
modules.tools.
domain
;
package
me.zhengjie.domain
;
import
lombok.*
;
import
cn.hutool.core.bean.BeanUtil
;
...
...
eladmin-tools/src/main/java/me/zhengjie/
modules/tools/
domain/Picture.java
→
eladmin-tools/src/main/java/me/zhengjie/domain/Picture.java
View file @
40852235
package
me.zhengjie.
modules.tools.
domain
;
package
me.zhengjie.domain
;
import
lombok.Data
;
import
org.hibernate.annotations.CreationTimestamp
;
...
...
eladmin-tools/src/main/java/me/zhengjie/
modules/tools/
domain/QiniuConfig.java
→
eladmin-tools/src/main/java/me/zhengjie/domain/QiniuConfig.java
View file @
40852235
package
me.zhengjie.
modules.tools.
domain
;
package
me.zhengjie.domain
;
import
lombok.Data
;
import
javax.persistence.*
;
...
...
eladmin-tools/src/main/java/me/zhengjie/
modules/tools/
domain/QiniuContent.java
→
eladmin-tools/src/main/java/me/zhengjie/domain/QiniuContent.java
View file @
40852235
package
me.zhengjie.
modules.tools.
domain
;
package
me.zhengjie.domain
;
import
lombok.Data
;
import
org.hibernate.annotations.UpdateTimestamp
;
...
...
eladmin-tools/src/main/java/me/zhengjie/
modules/tools/
domain/VerificationCode.java
→
eladmin-tools/src/main/java/me/zhengjie/domain/VerificationCode.java
View file @
40852235
package
me.zhengjie.
modules.tools.
domain
;
package
me.zhengjie.domain
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
...
...
eladmin-tools/src/main/java/me/zhengjie/
modules/tools/
domain/vo/EmailVo.java
→
eladmin-tools/src/main/java/me/zhengjie/domain/vo/EmailVo.java
View file @
40852235
package
me.zhengjie.
modules.tools.
domain.vo
;
package
me.zhengjie.domain.vo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
...
...
eladmin-tools/src/main/java/me/zhengjie/
modules/tools/
domain/vo/TradeVo.java
→
eladmin-tools/src/main/java/me/zhengjie/domain/vo/TradeVo.java
View file @
40852235
package
me.zhengjie.
modules.tools.
domain.vo
;
package
me.zhengjie.domain.vo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
...
...
eladmin-tools/src/main/java/me/zhengjie/modules/generator/domain/vo/ColumnInfo.java
deleted
100644 → 0
View file @
4681ca6e
package
me.zhengjie.modules.generator.domain.vo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* 列的数据信息
* @author Zheng Jie
* @date 2019-01-02
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
ColumnInfo
{
// 数据库字段名称
private
Object
columnName
;
// 允许空值
private
Object
isNullable
;
// 数据库字段类型
private
Object
columnType
;
// 数据库字段注释
private
Object
columnComment
;
// 数据库字段键类型
private
Object
columnKey
;
// 额外的参数
private
Object
extra
;
// 查询 1:模糊 2:精确
private
String
columnQuery
;
// 是否在列表显示
private
String
columnShow
;
}
eladmin-tools/src/main/java/me/zhengjie/
modules/tools/
repository/AlipayRepository.java
→
eladmin-tools/src/main/java/me/zhengjie/repository/AlipayRepository.java
View file @
40852235
package
me.zhengjie.
modules.tools.
repository
;
package
me.zhengjie.repository
;
import
me.zhengjie.
modules.tools.
domain.AlipayConfig
;
import
me.zhengjie.domain.AlipayConfig
;
import
org.springframework.data.jpa.repository.JpaRepository
;
/**
...
...
eladmin-tools/src/main/java/me/zhengjie/
modules/tools/
repository/EmailRepository.java
→
eladmin-tools/src/main/java/me/zhengjie/repository/EmailRepository.java
View file @
40852235
package
me.zhengjie.
modules.tools.
repository
;
package
me.zhengjie.repository
;
import
me.zhengjie.
modules.tools.
domain.EmailConfig
;
import
me.zhengjie.domain.EmailConfig
;
import
org.springframework.data.jpa.repository.JpaRepository
;
/**
...
...
eladmin-tools/src/main/java/me/zhengjie/
modules/tools/
repository/LocalStorageRepository.java
→
eladmin-tools/src/main/java/me/zhengjie/repository/LocalStorageRepository.java
View file @
40852235
package
me.zhengjie.
modules.tools.
repository
;
package
me.zhengjie.repository
;
import
me.zhengjie.
modules.tools.
domain.LocalStorage
;
import
me.zhengjie.domain.LocalStorage
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
...
...
eladmin-tools/src/main/java/me/zhengjie/
modules/tools/
repository/PictureRepository.java
→
eladmin-tools/src/main/java/me/zhengjie/repository/PictureRepository.java
View file @
40852235
package
me.zhengjie.
modules.tools.
repository
;
package
me.zhengjie.repository
;
import
me.zhengjie.
modules.tools.
domain.Picture
;
import
me.zhengjie.domain.Picture
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
...
...
eladmin-tools/src/main/java/me/zhengjie/
modules/tools/
repository/QiNiuConfigRepository.java
→
eladmin-tools/src/main/java/me/zhengjie/repository/QiNiuConfigRepository.java
View file @
40852235
package
me.zhengjie.
modules.tools.
repository
;
package
me.zhengjie.repository
;
import
me.zhengjie.
modules.tools.
domain.QiniuConfig
;
import
me.zhengjie.domain.QiniuConfig
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.Modifying
;
import
org.springframework.data.jpa.repository.Query
;
...
...
eladmin-tools/src/main/java/me/zhengjie/
modules/tools/
repository/QiniuContentRepository.java
→
eladmin-tools/src/main/java/me/zhengjie/repository/QiniuContentRepository.java
View file @
40852235
package
me.zhengjie.
modules.tools.
repository
;
package
me.zhengjie.repository
;
import
me.zhengjie.
modules.tools.
domain.QiniuContent
;
import
me.zhengjie.domain.QiniuContent
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
...
...
Prev
1
2
3
4
5
Next
Write
Preview
Supports
Markdown
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